(57)【要約】【課題】複数の計算ノードから構成される計算機システムの動作を停止せずに複数の計算機システムに分割するときに、分割前の計算機システム上のオペレーティングシステムが保持しているデータおよび動作状態を分割後の各計算機システムとなるところの計算ノード上に引き継ぐことを可能とした計算機システム、およびそのための計算ノードを提供すること。【解決手段】オペレーティングシステムが保持しているデータおよび動作状態の複製を、全ての分割される計算ノード上に作成する。計算ノード内にデータコピー実施手段３００、コピー対象アドレス表４００およびコピー対象アドレス表管理手段５００をもち、自計算ノードへの書き込みデータを他の計算ノードにもコピーする。【選択図】  図１
2005043940.tif 000002
【特許請求の範囲】
【請求項１】
２以上の計算ノードをもつ計算機システムであって、そのオペレーティングシステムの動作に必要なデータや動作状態を記憶しているアドレス範囲を保持する手段と、前記計算機システムが動作中に前記アドレス範囲へのデータの書き込みが生じた場合、前記計算機システムの分割後に前記計算機システムとは別の計算機システムとなる１または２以上の計算ノードに前記データと同一のデータを記憶せしめる手段とを備えたことを特徴とする計算機システム。
【請求項２】
独立して動作することが可能な１以上の計算ノードにより構成される計算機システムであって、
前記計算ノードが、プロセッサと、メモリと、Ｉ／Ｏ装置と、
該プロセッサとメモリとＩ／Ｏ装置が接続される制御装置と、
他の計算ノードと前記制御装置とを接続するノード間通信手段と、
前記計算ノード内のメモリおよびＩ／Ｏ装置への書き込みを検出し、前記計算機システムを構成する他の計算ノードに対してメモリおよびＩ／Ｏ装置への書き込みデータを送信し、他の計算ノードから受信したメモリおよびＩ／Ｏ装置への書き込みデータをメモリおよびＩ／Ｏ装置に書き込みを行うデータコピー実施手段と、
データコピーを実施するアドレスの範囲を記憶するコピー対象アドレス表を保持するメモリと、
前記コピー対象アドレス表の作成および更新を行うコピー対象アドレス表管理手段
とを有することを特徴とする計算機システム。
【請求項３】
独立して動作することが可能な１以上の計算ノードにより構成される計算機システムであって、
前記計算ノードが、プロセッサと、メモリと、Ｉ／Ｏ装置と、
該プロセッサとメモリとＩ／Ｏ装置が接続される制御装置と、
他の計算ノードと前記制御装置とを接続するノード間通信手段と、
前記計算ノード内のメモリおよびＩ／Ｏ装置への書き込みを検出し、前記計算機システムを構成する他の計算ノード内のメモリおよびＩ／Ｏ装置に対して書き込みを行うデータコピー実施手段と、
データコピーを実施するアドレスの範囲を記憶するコピー対象アドレス表を保持するメモリと、
前記コピー対象アドレス表の作成および更新を行うコピー対象アドレス表管理手段
とを有することを特徴とする計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、異なるタスクを複数のプロセッサに分散させて処理するマルチプロセッサ計算機システムおよびそれを構成する計算ノードに関する。
【０００２】
【従来の技術】
情報処理装置は、近年益々処理の高速化や処理量の増大化が要求されているが、これらの要求は単一のプロセッサからなるシステムの処理性能の限界を超えており、通常、複数のプロセッサでシステムを構築したマルチプロセッサシステムを用いて処理性能を向上させる方法が採用されている。マルチプロセッサシステムにおいては、与えられた異なるタスクを複数のプロセッサに分散して処理を行うことによって高速かつ大容量の処理を可能にしている。
【０００３】
プロセッサ数がおよそ十数個を超えるマルチプロセッサシステムにおいては、メモリやＩ／Ｏ装置などの計算機内の資源に対してシステムを構築する全てのプロセッサが対称に規則的に配置接続された密結合マルチプロセッサ方式あるいはシンメトリックマルチプロセッサ方式ではなく、主に計算機内の資源に対するプロセッサの配置接続が対称になっていない疎結合マルチプロセッサ方式、あるいは分散メモリ型マルチプロセッサ方式が採用されている。
【０００４】
疎結合マルチプロセッサ方式の一つの形態として、複数の計算ノードを接続することにより構成された計算機システムがある。ここで、計算ノードとは、独立して動作可能なノードのことであって、複数の計算ノード内にある制御装置を相互に接続することにより１つの疎結合マルチプロセッサ計算機システムとして動作することを可能にしている。
【０００５】
疎結合マルチプロセッサ方式の一例として、例えば特許文献１に開示されたものがある。この公報に開示されたものは、プロセスに対してプロセッサノードおよびプロセッサノード上の資源の適切な割当て、および適切なプロセスの配置やスケジューリングを可能とするために、処理を実行するプロセス群を定め、制御グループごとにその制御グループが動作するプロセッサノードとプロセッサノード上で割り当てられる計算資源量を規定するとともに、プロセスおよび一連の処理に関連付けられるプロセス群の実行様式を規定する情報を設定する制御グループ設定手段と、プロセスに対してそのプロセスが属する制御グループを表す属性を付与する制御グループ属性付与手段と、制御グループごとに所属するプロセス群に対して実行時に使用できる計算機資源の使用量を規定および保証し、制御グループの定義に応じたスケジューリング論理によってプロセスの実行制御を行うノード内プロセス制御／資源管理手段を設けたものである。
【０００６】
また、複数の計算ノードから構成された疎結合マルチプロセッサ方式の一例として、例えば特許文献２に開示されたものがある。この公報に開示されたものは、単独の計算機システムとして動作するか、他の計算ノードと合わせて１つの計算機システムとして動作するか、動作中の他の計算機システムに追加するかの起動形態を保持しておき、計算ノードの起動時に、これを参照するとともに動作中の計算機システムと通信し、当該計算ノードのメモリアドレスとＩ／Ｏバス番号などを計算機システムで一意となるように割り当てるようにするものである。
【０００７】
【特許文献１】
特開平８−１５２９０３号公報
【特許文献２】
特開２００３−３０１６４号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、上述した従来の疎結合マルチプロセッサ方式やクラスタシステムには次のような問題がある。すなわち、複数の計算ノードから構成され動作している計算機システムを、複数の計算機システムに分割する場合、分割前の計算機システム上のオペレーティングシステムが保持しているデータおよび動作状態を、分割後の各計算機システム上のオペレーティングシステムに引き継ぐためには、分割前のオペレーティングシステムがメモリおよびＩ／Ｏ装置上に保持しているデータおよび動作状態を分割後の各計算機システム上のオペレーティングシステムが保持するデータおよび動作状態にコピーする必要がある。分割前の計算機システムおよび分割後の各計算機システムの動作を停止せずに前記引き継ぎを実施するためには、分割前の計算機システムが動作中に、メモリおよびＩ／Ｏ装置上のデータを分割後に各計算機システムとなるところの計算ノードに対してコピーする必要がある。
【０００９】
上述した従来の疎結合マルチプロセッサ方式の場合、計算機システムの動作を停止せずに分割前の計算機システム上のオペレーティングシステムが保持しているデータおよび動作状態を分割後の各計算機システム上のオペレーティングシステムに引き継ぐことが考慮されていなかった。このため、オペレーティングシステムのデータおよび動作状態を引き継ぐためには、一度計算機システムの動作を停止し、分割後の計算機システムに対してメモリおよびＩ／Ｏ装置上のデータのコピーを実施したあと、再びシステムを起動させる必要があった。
【００１０】
本発明の目的は、複数の計算ノードから構成される計算機システムにおいて、動作を停止せずに複数の計算機システムに分割を行うときに、分割前の計算機システム上のオペレーティングシステムが保持しているデータおよび動作状態を分割後の各計算機システム上のオペレーティングシステムに引き継ぐことを可能とした計算機システムおよび該システムに用いられる計算ノードを提供することにある。
【００１１】
本発明の他の目的は、複数の計算ノードから構成される計算機システムにおいて、各計算ノードで内容が同一なメモリおよびＩ／Ｏ装置をもつ計算機システムを提供することにある。
【００１２】
【課題を解決するための手段】
本発明は、上記目的を達成するために、次の如き構成を有する。すなわち、計算ノード内では、プロセッサ、メモリ、Ｉ／Ｏ装置が制御装置を介して接続され、制御装置がプロセッサ、メモリ、Ｉ／Ｏ装置間のデータ転送を中継する。また、制御装置は、他の計算ノード内の制御装置とノード間通信手段を介して接続され、計算ノード間のデータ転送を中継する。
【００１３】
また、オペレーティングシステムが保持しているオペレーティングシステムの動作に必要なデータおよび動作状態の複製を、分割される全ての計算ノード上のメモリおよびＩ／Ｏ装置上に作成する。オペレーティングシステムがオペレーティングシステムの動作に必要なデータおよび動作状態を保持しているメモリおよびＩ／Ｏ装置のアドレス範囲に対して書き込みがあった場合に、この書き込みを検出し、他の計算ノードに該書き込みデータを送信し、他の計算ノード内では、受信した該書き込みデータをメモリおよびＩ／Ｏ装置に書き込む。
【００１４】
オペレーティングシステムがオペレーティングシステムの動作に必要なデータおよび動作状態を保持しているメモリおよびＩ／Ｏ装置のアドレス範囲は、コピー対象アドレス表として計算ノード内のメモリに格納しておき、メモリおよびＩ／Ｏ装置への書き込み時は、該コピー対象アドレス表を参照し、書き込みアドレスが該コピー対象アドレス表に一致する場合に他の計算ノードへ書き込みデータを送信する。書き込みデータを受信した計算ノード内では、前記コピー対象アドレス表を参照して、書き込みを行うメモリおよびＩ／Ｏ装置のアドレス範囲を決定し、データの書き込みを行う。
【００１５】
【発明の実施の形態】
以下、本発明の実施例を、図面を用いて詳細に説明する。図１は、本実施例に係るマルチプロセッサ計算機システムのブロック構成の一例を示す図である。同図に示すマルチプロセッサ計算機システムは、計算ノード１００と計算ノード１００’とそれらを相互に接続する媒体から構成される。
【００１６】
計算ノード１００内では、プロセッサ１１０およびプロセッサ１１１がプロセッサバス２００に接続されており、メモリ１３０がメモリバス２１０に接続されており、Ｉ／Ｏ装置１４０がＩ／Ｏバス２２０に接続されている。制御装置１２０はプロセッサバス２００とメモリバス２１０およびＩ／Ｏバス２２０を相互に接続し、これらのバス間のデータ転送を中継する。
【００１７】
例えば、Ｉ／Ｏ装置１４０とメモリ１３０間のデータ転送は、制御装置１２０を介して、Ｉ／Ｏバス２２０およびメモリバス２１０上でデータを転送することにより行われる。また、制御装置１２０はノード間通信手段１５０を介して他の計算ノード１００’に接続され、計算ノード間のデータ転送はこのノード間通信手段１５０を介して行われる。
【００１８】
図１では、プロセッサバス２００に２個のプロセッサ（プロセッサ１１０とプロセッサ１１１）が接続されている場合を示しているが、プロセッサの数は２個に制限されるものではなく、１個でも３個以上あってもよい。また、図１では、ノード間通信手段１５０を介して２個の計算ノードが接続されている場合を示しているが、計算ノードの数も２個に制限されるものではなく、３個以上あってもよい。
【００１９】
さらに、図１は、ノード間通信手段１５０は２個の計算ノードを相互に接続している場合を示しているが、接続形態はこのような接続形態に限定されない。例えば、接続形態としては、複数の計算ノードが同一の信号線に接続されるバス型、あるいは全ての計算ノードを１対１に接続する対向型、あるいは全ての計算ノードをスイッチを介して接続するスイッチ型などであってもよい。
【００２０】
データおよび動作状態というのは、オペレーティングシステムの動作に必要なデータ等である。例えば、Ｉ／Ｏ装置に関する情報（最大キューサイズ、現在実行中のトランザクション数、割り込み番号など）や、プロセスを管理する構造体や、各プロセスのスケジューリング優先度、時刻値、ディスクキャッシュのデータ、仮想メモリの内容や使用状況等である。オペレーティングシステムは起動時にこれらのデータを初期化し、動作中は更新などの管理をし続ける。分割後の計算機が再初期化をしないで済むように、分割前の計算機から分割後の計算機に対してこれらのデータを引き継がせる。
【００２１】
次に、本発明の特徴であるデータコピー実施手段３００、コピー対象アドレス表４００、コピー対象アドレス表管理手段５００について説明する。
【００２２】
コピー対象アドレス表４００は、上記のデータおよび動作状態をコピー対象とするものであり、他の計算ノードとの間でコピー処理の対象となるメモリおよびＩ／Ｏ装置のアドレス範囲を保持し、計算ノード内のメモリ１６０に格納される。このコピー対象アドレス表４００は、計算機システムを構成する計算ノードごとに作成する。コピー対象アドレス表４００内に保持するアドレス範囲は、その計算ノード内に存在するメモリおよびＩ／Ｏ装置のアドレス範囲であり、他の計算ノード内のメモリおよびＩ／Ｏ装置のアドレス範囲は保持しない。
【００２３】
データコピー実施手段３００は、メモリおよびＩ／Ｏ装置への書き込みがあった場合に、コピー対象アドレス表４００を参照する。データコピー実施手段３００は、書き込み先となるメモリおよびＩ／Ｏ装置のアドレスと、コピー対象アドレス表４００内に保持しているコピー処理の対象となるメモリおよびＩ／Ｏ装置のアドレス範囲とを比較する。コピー対象アドレス表４００内に、書き込む先のアドレス範囲と一致するアドレス範囲があった場合に、前記の書き込みデータから書き込みデータパケットを作成し、計算機システムを構成する他の全ての計算ノードに対して、書き込みデータパケットを送信する。
【００２４】
また、データコピー実施手段３００は、他の計算ノードから書き込みデータパケットを受信した場合に、コピー対象アドレス表４００を参照し、対応するメモリおよびＩ／Ｏ装置のアドレス範囲に対してデータを書き込む。このように、データコピー実施手段３００は、特定のメモリおよびＩ／Ｏ装置のアドレス範囲に対する書き込みを、他の複数の計算ノード上の特定のメモリおよびＩ／Ｏ装置のアドレス範囲にコピーを行う。
【００２５】
なお、図１では、書き込みデータパケットを作成して他の計算ノードに送信する処理と、書き込みデータパケットを受信してメモリおよびＩ／Ｏ装置に書き込む処理は、データコピー実施手段が行っているが、これらを別々の手段に分けて実現してもよい。
【００２６】
コピー対象アドレス表管理手段５００は、コピー対象アドレス表４００の作成、行の追加、削除、更新を行う。この処理は、計算機システム上で動作するアプリケーションの指示により実施することもできるし、計算機システムに組み込まれたサービスプロセッサの指示により実施することもできる。
【００２７】
なお、図１では、データコピー実施手段３００、コピー対象アドレス表４００、コピー対象アドレス表管理手段５００を制御装置１２０の外に設けた例を示しているが、これらを設ける場所は制御装置１２０の外に限らない。別の場所あるいは制御装置１２０内にデータコピー実施手段とコピー対象アドレス表およびコピー対象アドレス表管理手段の一部または全部の機能を設けて、制御装置１２０自身が書き込みデータのコピー、コピー対象アドレス表の保持、管理を行うようにしてもよい。また、データコピー実施手段３００、コピー対象アドレス表４００、コピー対象アドレス表管理手段５００は、制御装置１２０とメモリバス２１０との間、あるいは制御装置１２０とＩ／Ｏバス２２０との間に設けてもよい。
【００２８】
図２および図３は、コピー対象アドレス表の内容の一例を示す図である。図２に例示したコピー対象アドレス表４００において、コピー対象範囲番号４０１は、コピー対象となるメモリおよびＩ／Ｏ装置のアドレス範囲が複数存在する場合に、各アドレス範囲を区別するための番号を保持する。コピー対象開始アドレス４０２は、コピー対象となるメモリおよびＩ／Ｏ装置のアドレス範囲の開始アドレスを保持する。コピー対象サイズ４０３は、コピー対象となるメモリおよびＩ／Ｏ装置のアドレス範囲の大きさを保持する。図２に示した例では、コピーの対象となるメモリおよびＩ／Ｏ装置のアドレス範囲は３個存在し、アドレス１０００から１０９９、アドレス２５００から２９９９、アドレス５０００から５９９９がコピーの対象となる。
【００２９】
コピー対象アドレス表は計算機システムを構成する計算ノードごとに保持する。コピー対象番号の値が同じ行で示されるアドレス範囲に対応して、計算ノード間で書き込みのコピーを行う。例えば、計算ノード１００が図２に示すコピー対象アドレス表４００を保持し、計算ノード１００’が図３に示すコピー対象アドレス表４１０を保持する場合、コピー対象アドレス表４００のコピー対象範囲番号４０１の値が「１」の行で示されるアドレス範囲（１０００〜１０９９）と、コピー対象アドレス表４１０のコピー対象範囲番号４１１の値が「１」の行で示されるアドレス範囲（１１０００〜１１０９９）が対応する。すなわち、計算ノード１００のメモリまたはＩ／Ｏ装置のアドレス範囲１０００から１０９９までのアドレスに対して書き込みがあった場合、計算ノード１００’のメモリまたはＩ／Ｏ装置のアドレス範囲１１０００から１１０９９までのアドレスに対しても書き込みを行う。逆に、計算ノード１００’のメモリまたはＩ／Ｏ装置のアドレス範囲１１０００から１１０９９までのアドレスに対して書き込みがあった場合、計算ノード１００のメモリまたはＩ／Ｏ装置のアドレス範囲１０００から１０９９までのアドレスに対しても書き込みを行う。同様に、コピー対象アドレス表４００および４１０のコピー対象範囲番号４０１の値が「２」の行、および「３」の行に対しても、計算ノード１００および１００’間で書き込みのコピーを行う。
【００３０】
なお、前記の例では、計算機システムを構成する計算ノードが２個である場合の例を示したが、計算ノードが３個以上である場合についても同様である。すなわち、１つの計算ノード内でコピー対象アドレス表に示されるメモリおよびＩ／Ｏ装置のアドレス範囲に対して書き込みがあった場合、他の全計算ノードの対応するメモリおよびＩ／Ｏ装置のアドレス範囲に対して書き込みのコピーを行う。
【００３１】
書き込みのコピーを行うとき、元の書き込みデータのコピーを作成し、他の計算ノードに対してコピーした書き込みデータパケットを送信する。図４は、コピーされた書き込みデータパケットの一例を示す図である。図４において、コピー対象番号６０１は、コピー対象アドレス表４００のコピー対象番号４０１の値を保持する。コピー開始アドレス変位は、コピーされた書き込みデータが書き込まれるメモリおよびＩ／Ｏ装置のアドレスの、コピー対象アドレス表４００のコピー開始アドレス４０２からの変位を格納する。バイト数６０３は、コピーされた書き込みデータの大きさを格納する。データ６０４は、コピーされた書き込みデータを格納する。
【００３２】
例えば、計算ノード１００が図２に示すコピー対象アドレス表４００を保持し、計算ノード１００’が図３に示すコピー対象アドレス表４１０を保持する場合に、計算ノード１００のメモリまたはＩ／Ｏ装置のアドレス２５５０から２５６４までの１５バイトに対して書き込みがあったとき、一例として、図５の６１０と図６の６２０に示す書き込みデータパケットが作成され、計算ノード１００’に送信される。計算ノード１００’は、図５の書き込みデータパケットを受信後、アドレス１２０５０〜１２０５９に対してデータを書き込む。また、計算ノード１００’は、図６の書き込みデータパケットを受信後、アドレス１２０６０〜１２０６４に対してデータを書き込む。
【００３３】
図７は、書き込みデータパケットを作成する処理手順の実施例を示すフローチャートである。計算ノード１００内のデータコピー実施手段３００は、メモリおよびＩ／Ｏ装置に書き込みが行われるときに、書き込みデータパケットの作成処理を開始する（ステップＳ３０１）。データコピー実施手段３００は、書き込み先のアドレス範囲を取得し、このアドレス範囲と、コピー対象アドレス表４００の各行で示されるアドレス範囲とを比較する（ステップＳ３０２）。データコピー実施手段３００は、コピー対象アドレス表４００に、該書き込みアドレス範囲が含まれるか否か判断する（ステップＳ３０３）。コピー対象アドレス表４００に該書き込みアドレス範囲が含まれる場合、データコピー実施手段３００は書き込みデータパケット６００を作成し、他の全計算ノードに書き込みデータパケットを送信し（ステップＳ３０４）、処理を終了する。コピー対象アドレス表４００に該書き込みアドレス範囲が含まれない場合、データコピー実施手段３００は処理を終了する。
【００３４】
例えば、計算ノード１００が図２に示されるコピー対象アドレス表４００を保持し、計算ノード１００のメモリまたはＩ／Ｏ装置のアドレス２５５０から２５６４までの１５バイトに対して書き込みがあった場合を例に考える。データコピー実施手段３００は、まず、コピー対象アドレス表４００のコピー対象範囲番号「１」の行で示されるアドレス範囲（１０００〜１０９９）と、書き込み先のアドレス範囲（２５５０〜２５６４）とを比較する。両者に一致するアドレス範囲はないことが分かる。次に、コピー対象アドレス表４００のコピー対象範囲番号「２」の行で示されるアドレス範囲（２５００〜２９９９）と、書き込み先のアドレス範囲（２５５０〜２５６４）とを比較する。両者に一致するアドレス範囲が存在するので、この一致するアドレス範囲に対応する書き込みデータパケットを作成する。コピー開始アドレス変位の値が５０（＝２５５０−２５００）、バイト数１０の書き込みデータパケット６１０（図５）と、コピー開始アドレス変位の値が６０（＝２５５０＋１０−２５００）、バイト数５（１５−１０）の書き込みデータパケット６２０（図６）を作成する。なお、この例では、データの大きさが１０バイトと５バイトの２個の書き込みデータパケットを作成しているが、１５バイトの書き込みデータパケットを１個作成してもよいし、３個以上の書き込みデータパケットを作成してもよい。データコピー実施手段３００は、計算ノード１００’に対して、作成した書き込みデータパケットを送信する。
【００３５】
図８は、書き込みデータパケットをメモリおよびＩ／Ｏ装置に書き込む処理手順の実施例を示すフローチャートである。計算ノード１００内のデータコピー実施手段３００は、他の計算ノードから図４の書き込みデータパケット６００を受信したときに、書き込みデータパケット６００をメモリおよびＩ／Ｏ装置に書き込む処理を開始する（ステップＳ３１１）。データコピー実施手段３００は、受信した書き込みデータパケット６００のコピー対象範囲番号６０１の値と、コピー対象アドレス表４００の各行のコピー対象範囲番号４０１の値とを比較し（ステップＳ３１２）一致するか否か判断する（ステップＳ３１３）。コピー対象アドレス表４００の中に、データパケット６００のコピー対象範囲番号６０１の値と一致する値を持つ行が存在する場合、データコピー実施手段３００は、対象アドレス表４００の一致する行と、書き込みデータパケット６００から書き込み先のアドレス範囲を計算し（ステップＳ３１４）、メモリおよびＩ／Ｏ装置に書き込みデータパケットのデータを書き込み（ステップＳ３１５）、処理を終了する。コピー対象アドレス表４００の中に、データパケット６００のコピー対象範囲番号６０１の値と一致する値を持つ行が存在しない場合、データコピー実施手段３００はエラー処理を行い（ステップＳ３１６）、処理を終了する。
【００３６】
例えば、計算ノード１００が図３に示されるコピー対象アドレス表４１０を保持し、図５および図６に示す２個の書き込みデータパケット６１０および６２０を受信した場合を例に考える。データコピー実施手段３００は、書き込みデータパケット６１０を受信したとき、コピー対象アドレス表４１０のコピー対象範囲番号４１１と、コピー対象範囲番号６１１の値「２」とを比較する。一致する行が存在するので、書き込む先の開始アドレス１２０５０（＝１２０００＋５０）、バイト数１０を計算して、アドレス範囲（１２０５０〜１２０５９）に対して書き込みデータパケット６１０のデータを書き込む。書き込みデータパケット６２０を受信したときも同様にして、アドレス範囲（１２０６０〜１２０６４）に対して書き込みデータパケット６２０のデータを書き込む。
【００３７】
図９は、計算ノード間で書き込みデータをコピーするシステム構成の一例を示す図である。計算ノード１００のメモリ１３０またはＩ／Ｏ装置１４０に対して書き込みがあった場合に、データコピー実施手段３００は、コピー対象アドレス表４００を参照し、書き込みアドレスがコピー対象のアドレスである場合に計算ノード１００’のデータコピー実施手段３００’に書き込みデータパケットを送信する。計算ノード１００’のデータコピー実施手段３００’は、書き込みデータパケットを受信すると、コピー対象アドレス表４００’を参照し、対応するメモリ１３０’またはＩ／Ｏ装置１４０’に対してデータの書き込みを行う。
【００３８】
以上説明した本発明の実施の形態によると、コピー対象アドレスへの書き込みを検出した計算ノード１００内のデータコピー実施手段３００は、一度他の全計算ノード１００’のデータコピー手段３００’に書き込みデータパケット６００を送信し、該書き込みデータパケット６００を受信した計算ノード内１００’内のデータコピー実施３００’がメモリおよびＩ／Ｏ装置に対して書き込みを行っている。しかし、コピー対象アドレスへの書き込みを検出した計算ノード１００内のデータコピー実施手段３００が、他の全計算ノード内のメモリおよびＩ／Ｏ装置に対して直接書き込みを行う形態でもよい。
【００３９】
以下に、本発明の別の実施の形態を述べる。
図１０に、コピー対象アドレス表の内容の別の一例を示す。計算機システムを構成する全ての計算ノード内で、同一のコピー対象アドレス表４２０を保持する。前記のコピー対象アドレス表４００では、該コピー対象アドレス表４００が存在する計算ノードにおいてコピー対象となるメモリおよびＩ／Ｏ装置のアドレス範囲のみを保持していたが、コピー対象アドレス表４２０では、計算機システムを構成する全ての計算ノードにおけるコピー対象のメモリおよびＩ／Ｏ装置のアドレス範囲を保持する。図１０は、３個の計算ノードが計算機システムを構成する例を示している。コピー対象アドレス表４２０において、アドレス１０００からの１００バイト、アドレス２５００からの５００バイト、およびアドレス５０００からの１０００バイトが計算ノード１００に存在し、アドレス１１０００からの１００バイト、アドレス１２００からの５００バイト、およびアドレス２５０００からの１０００バイトが計算ノード１０１に存在し、アドレス３１０００からの１００バイト、アドレス３２０００からの５００バイト、およびアドレス３５５００からの１０００バイトが計算ノード１０２に存在する。
【００４０】
図１１は、コピー対象アドレス表として図１０の４２０を用いる場合に、書き込みデータをコピーして他の計算ノードのメモリおよびＩ／Ｏ装置に書き込む処理手順の実施例を示すフローチャートである。計算ノード１００内のデータコピー実施手段３００は、メモリおよびＩ／Ｏ装置に書き込みが行われるときに、書き込みデータのコピー処理を開始する（ステップＳ３２１）。データコピー実施手段３００は、書き込み先のアドレス範囲を取得し、このアドレス範囲と、コピー対象アドレス表４２０の各行で示されるアドレス範囲とを比較する（ステップＳ３２２）。データコピー実施手段３００は、コピー対象アドレス表４２０に、該書き込みアドレス範囲が含まれるか否か判断する（ステップＳ３２３）。コピー対象アドレス表４２０に該書き込みアドレス範囲が含まれる場合、データコピー実施手段３００は、コピー対象アドレス範囲４２１に同じ値を持つ他のアドレス範囲に対して書き込みを行い（ステップＳ３２４）、処理を終了する。
【００４１】
例えば、計算機システムが３個の計算ノード１００、１０１、および１０２から構成され、各計算ノードが図１０に示されるコピー対象アドレス表４２０を保持し、計算ノード１００のメモリまたはＩ／Ｏ装置のアドレス２５５０から２５６４までの１５バイトに対して書き込みがあった場合を例に考える。データコピー実施手段３００は、まず、コピー対象アドレス表４２０の１行目で示されるアドレス範囲（１０００〜１０９９）と、書き込み先のアドレス範囲（２５５０〜２５６４）とを比較する。両者に一致するアドレス範囲はないことが分かる。２行目（アドレス範囲：１１０００〜１１０９９）および３行目（アドレス範囲：３１０００〜３１０９９）とも比較し、一致するアドレス範囲はないことが分かる。次に、コピー対象アドレス表４２０の４行目で示されるアドレス範囲（２５００〜２９９９）と、書き込み先のアドレス範囲（２５５０〜２５６４）とを比較すると、両者に一致するアドレス範囲が存在する。この行のコピー対象範囲番号４２１の値は「２」であるので、コピー対象アドレス表４２０中でコピー対象範囲番号４２１に値「２」を持つ他の行（５行目と６行目）からアドレス範囲（１２０５０〜１２０６４および３２０５０〜３２０６４）を計算する。計算ノード１００のデータコピー実施手段は、計算ノード１０１のアドレス範囲（１２０５０〜１２０６４）、および計算ノード１０２のアドレス範囲（３２０５０〜３２０６４）に対して直接書き込みを行う。
【００４２】
前記のコピー対象アドレス表４２０の比較処理を高速化するための本発明の別の実施の形態として、図１２にコピー対象アドレス表の内容の別の一例を示す。コピー対象アドレス表４３０において、計算ノード番号４３１は、その行で示されるメモリおよびＩ／Ｏ装置のアドレス範囲が存在する計算ノードの番号を保持する。
【００４３】
コピー対象アドレス表として図１２の４３０を用いる場合、書き込みデータをコピーして他の計算ノードのメモリおよびＩ／Ｏ装置に書き込む処理手順は図１１に示したフローチャートとステップＳ３２２を除いて同じである。ステップ３２２では、データコピー実施手段３００は、コピー対象アドレス表４３０の各行のうち、計算ノード番号４３１が自分の計算ノード番号と等しい行だけを検索し、この行で示されるアドレス範囲と書き込み先のアドレス範囲とを比較する。このように、比較の回数を少なくすることで、データをコピーして他の計算ノードのメモリおよびＩ／Ｏ装置に書き込む処理を高速化することができる。
【００４４】
【発明の効果】
複数の計算ノードから構成される分割前の計算機システムの動作を停止することなく、オペレーティングシステムが保持しているデータおよび動作状態を分割後の各計算機システムとなるところの計算ノードに引き継ぐことが可能となる。
【図面の簡単な説明】
【図１】本発明の実施例に係る計算機システムのブロック構成の一例を示す図である。
【図２】コピー対象アドレス表の内容の一例を示す図である。
【図３】コピー対象アドレス表の内容の一例を示す図である。
【図４】コピーされた書き込みデータパケットの一例を示す図である。
【図５】コピーされた書き込みデータパケットの一例を示す図である。
【図６】コピーされた書き込みデータパケットの一例を示す図である。
【図７】書き込みデータパケットを作成する処理手順の実施例を示すフローチャートである。
【図８】書き込みデータパケットをメモリおよびＩ／Ｏ装置に書き込む処理手順の実施例を示すフローチャートである。
【図９】計算ノード間で書き込みデータをコピーするシステム構成の一例を示す図である。
【図１０】コピー対象アドレス表の内容の一例を示す図である。
【図１１】書き込みデータをコピーして他の計算ノードのメモリおよびＩ／Ｏ装置に書き込む処理手順の実施例を示すフローチャートである。
【図１２】コピー対象アドレス表の内容の一例を示す図である。
【符号の説明】
１００、１００’：計算ノード
１１０、１１１、１１０’、１１１’  ：プロセッサ
１２０、１２０’：制御装置
１３０、１３０’：メモリ
１４０、１４０’：Ｉ／Ｏ装置
１５０、１５０’：ノード間通信手段
１６０、１６０’：メモリ
２００、２００’：プロセッサバス
２１０、２１０’：メモリバス
２２０、２２０’：Ｉ／Ｏバス
３００、３００’：データコピー実施手段
４００、４００’、４１０、４２０、４３０：コピー対象アドレス表
５００、５００’：コピー対象アドレス表管理手段
６００、６１０、６２０：書き込みデータパケット
【図１】
2005043940.tif 000003
【図２】
2005043940.tif 000004
【図３】
2005043940.tif 000005
【図４】
2005043940.tif 000006
【図５】
2005043940.tif 000007
【図６】
2005043940.tif 000008
【図７】
2005043940.tif 000009
【図８】
2005043940.tif 000010
【図９】
2005043940.tif 000011
【図１０】
2005043940.tif 000012
【図１１】
2005043940.tif 000013
【図１２】
2005043940.tif 000014