(57)【要約】【課題】  移送元ノードの環境を移送先ノードにそのまま引き継ぐことが出来るノード移送装置、ノード代替装置及びそのプログラムを提供する。【解決手段】  ノード移送装置１と、ノード移送装置１と同一のハードウェア構成を備え、ノード移送装置１に対して外部記憶装置３に書き出されるノード移送装置１のメモリ領域のコピーに基づいて、ノード移送装置１のプロセスを引き継ぐノード代替装置２とから構成されるコンピュータシステムにおいて、ノード移送装置１が、ノード移送プロセス以外のノード移送装置１において実行中のプロセスをすべて停止したサスペンド状態において、ノード移送装置１上の主記憶装置上の物理メモリ領域に記憶された情報と、ノード移送装置１上の補助記憶装置上の仮想メモリ領域に記憶された情報とを外部記憶装置３にすべて書き出す。【選択図】  図４
2005070952.tif 000002
【特許請求の範囲】
【請求項１】
ノード移送装置と、前記ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置とから構成されるコンピュータシステムにおけるノード移送装置であって、
ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、
前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報と、前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶された情報とを前記外部の記憶装置にすべて書き出す
ことを特徴とするノード移送装置。
【請求項２】
前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶された情報のうち、
前記ノード移送装置において実行中のプロセスが使用していない仮想メモリ領域の情報以外の情報を前記外部の記憶装置にすべて書き出す
ことを特徴とする請求項１に記載のノード移送装置。
【請求項３】
ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、
前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報をすべて前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に書き出した後、
当該仮想メモリ領域に記憶された情報を前記外部の記憶装置にすべて書き出す
ことを特徴とする請求項１又は請求項２に記載のノード移送装置。
【請求項４】
ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、
前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報のうち、
カーネルに割り当てられたメモリ領域に記憶された情報以外を前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に書き出した後、
前記物理メモリ領域にリザーブ領域を割り当て、
前記カーネルに割り当てられたメモリ領域に記憶された情報をリザーブ領域に書き出し、当該リザーブ領域に記憶された情報をすべて前記仮想メモリ領域に書き出した後、
当該仮想メモリ領域に記憶された情報を前記外部の記憶装置にすべて書き出す
ことを特徴とする請求項１又は請求項２に記載のノード移送装置。
【請求項５】
ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置であって、
ノード移送待機プロセス以外の前記ノード代替装置において実行中のプロセスをすべて停止したサスペンド状態において、
前記ノード移送装置がノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において前記外部の記憶装置に書き出した前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の主記憶装置上の物理メモリ領域に書き出すとともに、
前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の補助記憶装置上の仮想メモリ領域に書き出し、
前記物理メモリ領域及び仮想メモリ領域へ書き出したコピーに基づいて、前記ノード移送装置において実行中だったプロセスを復帰する
ことを特徴とするノード代替装置。
【請求項６】
ノード移送装置と、前記ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置とから構成されるコンピュータシステムにおけるノード移送装置にノード移送処理を実行させるプログラムであって、
ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、
前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報と、前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶された情報とを前記外部の記憶装置にすべて書き出す処理
を実行させるためのノード移送プログラム。
【請求項７】
ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置にノード代替処理を実行させるためのプログラムであって、
ノード移送待機プロセス以外の前記ノード代替装置において実行中のプロセスをすべて停止したサスペンド状態において、
前記ノード移送装置がノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において前記外部の記憶装置に書き出した前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の主記憶装置上の物理メモリ領域に書き出す処理と、
前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の補助記憶装置上の仮想メモリ領域に書き出す処理と、
前記物理メモリ領域及び仮想メモリ領域へ書き出したコピーに基づいて、前記ノード移送装置において実行中だったプロセスを復帰する処理と
を実行させるためのノード代替プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移送元であるノード移送装置、ノード移送装置と同一のハードウェア構成を備え、ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、ノード移送装置のプロセスを引き継ぐノード代替装置及びそのプログラムに関する。
【背景技術】
【０００２】
複数のコモディティＰＣによるサーバ（ＰＣクラスタ）は、高可用性と柔軟なスケーラビリテイを持ったサーバ機能を安価に実現することができ、従来、盛んに開発が行なわれている。ＰＣクラスタでは、ハードやソフトの追加や変更等のためにノードを停止させてメンテナンス行う必要があるが、サービス全体としてはノード停止の影響を最小限に抑える必要がある。
そこで、ノードの可用性を高めるためには、動作中のノード（主ノード）に対してその代替となるノード（代替ノード）を用意する。主ノードの処理を代替ノードに移すこと（移送）で主ノードが停止・メンテナンス中の場合でも、走行中のサービスを継続することが可能である。ノード処理の移送に関する技術として以下のようなものがある。
【０００３】
ＰＣクラスタにおいて、特定のノードの環境を他のノードに移行する場合には、ロールフォワード方式が一般的である。ロールフォワード方式とは、移行元ノードで実行されているプロセスのプログラムを移行先ノードで実行し直し、移行前と同じプロセスの状態に復元する方式である。
また、クラスタでないスタンドアロンのノード環境を他のノードに移行する方式として仮想計算機方式がある。仮想計算機方式は、ソフトウェアを用いて仮想的なノード環境を構築し、当該仮想ノードを他のノードの仮想ノード環境に移行する方式である。
また、同一ノードにおいてサスペンドさせたプロセスをリジュームする技術として、特許文献１には、電源切断時に動作していたネットワーク上の他の端末に存在するアプリケーションを電源切断時と同じ状態で再起動する複数端末アプリケーションの起動方法に関する発明が開示されている。
【特許文献１】特開２０００−３２２２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上述した従来の技術においては次のような問題がある。
まずロールフォワード方式では、移行元ノードで実行されていたプロセスの内部状態は、移行先ノードにおいてリセットされる。このため、アプリケーションレベルで、プロセスの途中状態からのロールフォワード（最新の状態までの再トレース）が必要となる。これは、アプリケーションに依存する処理であることから対応できるアプリケーションが限定されてしまうという問題がある。
また、資源予約機能のないＯＳ環境では、移行時に再起動されたアプリケーションに割り当てられるリソースＩＤ（プロセス識別子やソケットのポート番号）などが移行前後で異なってしまうため、完全な透過性を保障できないという問題点がある。
さらに、アプリケーションレベルでは、同一のものが起動されるがノード自身は移行前と異なっているものなので、ネットワークインターフェースで使われるIPアドレスが変化してしまう。そのために、ネットワークレイヤでのアドレス変換が必要である。ところが、このような変換を行った場合、移行元ノート及び移行先ノードの内部や外部（同一ネットワーク外のネットワーク機器のルーティングテーブルなど）に影響が及ぶため、このような変換を移行後の長期にわたって行い続けることは管理を煩雑にするという問題点がある。
【０００５】
また、仮想計算機方式では、目的のＯＳは仮想計算機上で動作するが、仮想計算機ソフトウェアのオーバーヘッドがある。このため、通常の使用時にも仮想計算機ソフトウェアにＣＰＵを消費され、１００％の性能を発揮できないという問題点がある。
また、仮想計算機ソフトがサポートしているデバイスしか、仮想計算機上では利用できないという問題点がある。
【０００６】
本発明は、このような事情を考慮してなされたものであり、その目的は、移送元ノードの環境を移送先ノードにそのまま引き継ぐことが出来るノード移送装置、ノード代替装置及びそのプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
この発明は上記の課題を解決すべくなされたもので、本発明は、ノード移送装置と、前記ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置とから構成されるコンピュータシステムにおけるノード移送装置であって、ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報と、前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶された情報とを前記外部の記憶装置にすべて書き出すことを特徴とする。
【０００８】
また、本発明は、前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶された情報のうち、前記ノード移送装置において実行中のプロセスが使用していない仮想メモリ領域の情報以外の情報を前記外部の記憶装置にすべて書き出すことを特徴とする。
【０００９】
また、本発明は、ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報をすべて前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に書き出した後、当該仮想メモリ領域に記憶された情報を前記外部の記憶装置にすべて書き出すことを特徴とする。
【００１０】
また、本発明は、ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報のうち、カーネルに割り当てられたメモリ領域に記憶された情報以外を前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に書き出した後、前記物理メモリ領域にリザーブ領域を割り当て、前記カーネルに割り当てられたメモリ領域に記憶された情報をリザーブ領域に書き出し、当該リザーブ領域に記憶された情報をすべて前記仮想メモリ領域に書き出した後、当該仮想メモリ領域に記憶された情報を前記外部の記憶装置にすべて書き出すことを特徴とする。
【００１１】
また、本発明は、ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置であって、ノード移送待機プロセス以外の前記ノード代替装置において実行中のプロセスをすべて停止したサスペンド状態において、前記ノード移送装置がノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において前記外部の記憶装置に書き出した前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の主記憶装置上の物理メモリ領域に書き出すとともに、前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の補助記憶装置上の仮想メモリ領域に書き出し、前記物理メモリ領域及び仮想メモリ領域へ書き出したコピーに基づいて、前記ノード移送装置において実行中だったプロセスを復帰することを特徴とする。
【００１２】
また、本発明は、ノード移送装置と、前記ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置とから構成されるコンピュータシステムにおけるノード移送装置にノード移送処理を実行させるプログラムであって、ノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報と、前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶された情報とを前記外部の記憶装置にすべて書き出す処理を実行させるためのノード移送プログラムである。
【００１３】
また、本発明は、ノード移送装置と同一のハードウェア構成を備え、前記ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、前記ノード移送装置のプロセスを引き継ぐノード代替装置にノード代替処理を実行させるためのプログラムであって、ノード移送待機プロセス以外の前記ノード代替装置において実行中のプロセスをすべて停止したサスペンド状態において、前記ノード移送装置がノード移送プロセス以外の前記ノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において前記外部の記憶装置に書き出した前記ノード移送装置上の主記憶装置上の物理メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の主記憶装置上の物理メモリ領域に書き出す処理と、前記ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶されたすべての情報を、前記ノード代替装置上の補助記憶装置上の仮想メモリ領域に書き出す処理と、前記物理メモリ領域及び仮想メモリ領域へ書き出したコピーに基づいて、前記ノード移送装置において実行中だったプロセスを復帰する処理とを実行させるためのノード代替プログラムである。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、ノード移送装置と、ノード移送装置と同一のハードウェア構成を備え、ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、ノード移送装置のプロセスを引き継ぐノード代替装置とから構成されるコンピュータシステムにおいて、ノード移送装置が、ノード移送プロセス以外のノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において、ノード移送装置上の主記憶装置上の物理メモリ領域に記憶された情報と、ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶された情報とを外部の記憶装置にすべて書き出す。
したがって、移送元ノードの環境を外部の記憶装置を介して、移送先ノードにそのまま引き継ぐことが出来る効果が得られる。
【００１５】
また、本発明によれば、ノード移送装置と同一のハードウェア構成を備え、ノード移送装置に対して外部の記憶装置に書き出されるノード移送装置のメモリ領域のコピーに基づいて、ノード移送装置のプロセスを引き継ぐノード代替装置が、ノード移送待機プロセス以外のノード代替装置において実行中のプロセスをすべて停止したサスペンド状態において、ノード移送装置がノード移送プロセス以外のノード移送装置において実行中のプロセスをすべて停止したサスペンド状態において外部の記憶装置に書き出したノード移送装置上の主記憶装置上の物理メモリ領域に記憶されたすべての情報を、ノード代替装置上の主記憶装置上の物理メモリ領域に書き出すとともに、ノード移送装置上の補助記憶装置上の仮想メモリ領域に記憶されたすべての情報を、ノード代替装置上の補助記憶装置上の仮想メモリ領域に書き出し、物理メモリ領域及び仮想メモリ領域へ書き出したコピーに基づいて、ノード移送装置において実行中だったプロセスを復帰する。
したがって、移送元ノードの環境を外部の記憶装置を介して、移送先ノードにそのまま引き継ぐことが出来る効果が得られる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態について説明する。
まず本発明の基本的な考え方について説明する。
本発明は、ノートＰＣなどで行われているハイバネーションをネットワーク経由で行うことで、同一構成の他のノード上でリジュームを行う方式を採用する。
ハイバネ−ションとは、ノードの電源切断オプションの1つであり、ハイバネーションを指示すると、その時点で主記憶装置に記憶されている情報や、各種のハードウェアステータスを補助記憶装置のハイバネーション領域に記録して、電源を落とす。再度電源を投入すると、ハイバネーション領域に記録された情報が主記憶装置に再度書き込まれ、前回にハイバネーションを開始した時点の状態が復帰される。これにより、実行中だったプロセスを復帰する。
すなわち、ハイバネーションはサスペンドとリジュームを同一のノードで行うことを前提としており、物理メモリなどの揮発記憶領域を内蔵ハードディスクのような不揮発の媒体に記録し、またリジューム特にこれを復元する。
一方、本発明は、移送元ノードと別の移送先ノードにおいてノード環境のリジュームを行う。すなわち、揮発性主記憶装置の物理メモリ領域のみならず、補助記憶装置の仮想メモリ領域（スワップ領域）のように、ハイバネーションでは関知しないメモリ領域についても、移送先ノードに転送を行う必要がある。以下、このような考え方に基づいて、本発明の実施形態について説明する。
【実施例１】
【００１７】
以下、図面を参照して、本発明のノード移送装置とノード代替装置とから構成されるコンピュータシステムの一実施形態について説明する。図１は、本実施形態のノード移送装置１とノード代替装置２から構成されるコンピュータシステムの構成図である。
図１に示すように、本実施形態のコンピュータシステムは、ＰＣクラスタを構成する同一仕様のｎ台のサービス提供ノードと、サービス提供ノードと同一仕様の代替ノード（ノード代替装置２）とから構成される。移送元ノードとなるノード移送装置１は、通常運用時において、サービス提供ノードとして処理を行い、メンテナンス等のためにサービス提供ノードを停止させる場合、運用停止したサービス提供ノードをノード移送装置１とする。
そして、ノード移送装置１のノード環境をノード代替装置２に移送して、ノード移送装置１を停止する。その場合、ノード移送装置１で動作していたプロセスやセッションはそのままノード代替装置２に引き継がれる。さらにノード代替装置２から、このＰＣクラスタ内の別のサービス提供ノードに再移送する場合もある。
【００１８】
すなわち、ノード移送装置１は、処理の引継ぎに必要なノード資源として、主記憶装置の物理メモリ領域に記憶された情報（ＣＰＵコンテキストを含む）と、補助記憶装置の仮想メモリ領域（スワップ領域）に記憶された情報と、ファイルシステムとをノード移送装置１と異なる外部記憶装置３にすべて書き出す。
また、ノード代替装置２は、上述したようにノード移送装置１と同一のハードウェア構成を備え、外部記憶装置３に書き出されるノード移送装置１のメモリ領域のコピーに基づいて、ノード移送装置１のプロセスを引き継ぐ。
【００１９】
図２は、本実施形態のノード移送装置１、ノード代替装置２の構成を示すブロック図である。図２に示すように、ノード移送装置１は、制御部１１と、主記憶装置１２と、補助記憶装置１３と、ネットワークインターフェイス部１４とから構成され、ノード代替装置２は、制御部２１と、主記憶装置２２と、補助記憶装置２３と、ネットワークインターフェイス部２４とから構成される。
制御部１１は、主記憶装置１２、補助記憶装置１３、ネットワークインターフェイス部１４におけるデータ入出力を制御するＣＰＵ等で構成され、ノード移送プロセス以外のノード移送装置１において実行中のプロセスをすべて停止したサスペンド状態において、ノード資源として、主記憶装置の物理メモリ領域に記憶された情報（ＣＰＵコンテキストを含む）と、補助記憶装置の仮想メモリ領域（スワップ領域）に記憶された情報と、ファイルシステムとをノード移送装置１と異なる外部記憶装置３に移送する処理を行う。
【００２０】
このとき、補助記憶装置１３の仮想メモリ領域に記憶された情報のうち、ノード移送装置１において実行中のプロセスが使用していない仮想メモリ領域の情報以外の情報を外部記憶装置３にすべて書き出すことも考えられる。
また他の実施形態としては、ノード移送プロセス以外のノード移送装置１において実行中のプロセスをすべて停止したサスペンド状態において、主記憶装置１２の物理メモリ領域に記憶された情報をすべて補助記憶装置１３の仮想メモリ領域に書き出した後、当該仮想メモリ領域に記憶された情報を外部記憶装置３に書き出すことも考えられる。
さらに、他の実施形態としては、ノード移送プロセス以外のノード移送装置１において実行中のプロセスをすべて停止したサスペンド状態において、主記憶装置１２の物理メモリ領域に記憶された情報のうち、カーネル（ＯＳ）に割り当てられたメモリ領域に記憶された情報以外を補助記憶装置１３の仮想メモリ領域に書き出した後、物理メモリ領域にリザーブ領域を割り当て、カーネルに割り当てられたメモリ領域に記憶された情報をリザーブ領域に書き出し、当該リザーブ領域に記憶された情報をすべて仮想メモリ領域に書き出した後、当該仮想メモリ領域に記憶された情報を外部記憶装置３に書き出すようにすることも考えられる。
【００２１】
主記憶装置１２は、ＲＡＭ等の揮発性記憶装置で構成され、物理メモリ領域にリソースＩＤ（プロセス識別子やポート番号等）やＩＰアドレス等のアプリケーションプロセスの引継ぎに必要な情報を記憶する。
補助記憶装置１３は、主記憶装置１２の物理メモリ領域を補完するための仮想メモリ領域（スワップ領域）を有するローカルストレージであり、ページング方式やセグメント方式によりスワップ領域を管理する。通常時において、スワップ領域はＯＳに管理され、実行中のプロセスが使用中のページと、使用中でないページとをページ管理情報として記録している。
ネットワークインターフェイス部１４は、ＬＡＮ等のネットワークとのデータ入出力を管理し、ファイルサーバ等で構成される外部記憶装置３と接続される。
【００２２】
制御部２１は、制御部１１と同様に、主記憶装置２２、補助記憶装置２３、ネットワークインターフェイス部２４におけるデータ入出力を制御するＣＰＵ等で構成され、ノード移送待機プロセス以外のノード代替装置２において実行中のプロセスをすべて停止したサスペンド状態において、ノード移送装置１がノード移送プロセス以外のノード移送装置１において実行中のプロセスをすべて停止したサスペンド状態において外部記憶装置３に書き出した主記憶装置１２の物理メモリ領域に記憶されたすべての情報を、主記憶装置２２の物理メモリ領域に書き出すとともに、補助記憶装置１３の仮想メモリ領域に記憶されたすべての情報を、補助記憶装置２３の仮想メモリ領域に書き出し、物理メモリ領域及び仮想メモリ領域へ書き出したコピーに基づいて、ノード移送装置１において実行中だったプロセスを復帰する処理を行う。
【００２３】
主記憶装置２２は、主記憶装置１２と同様に、ＲＡＭ等の揮発性記憶装置で構成され、物理メモリ領域に、主記憶装置１２の物理メモリ領域に記憶されたすべての情報（リソースＩＤ（プロセス識別子やポート番号等）やＩＰアドレス等のアプリケーションプロセスの引継ぎに必要な情報）が書き出される。
補助記憶装置２３は、補助記憶装置１３と同様に、主記憶装置１２の物理メモリ領域を補完するための仮想メモリ領域（スワップ領域）を有するローカルストレージである。
ネットワークインターフェイス部２４は、ネットワークインターフェイス部１４と同様に、ＬＡＮ等のネットワークとのデータ入出力を管理し、外部記憶装置３を介して、ノード移送装置１と接続される。
【００２４】
次に、図面を参照して、本実施形態のノード移送装置１及びノード代替装置２の動作について説明する。図３、図４は、本実施形態のノード移送装置１とノード代替装置２との間におけるノード移送処理の概略図、シーケンス図である。
まず起動時において、ノード移送装置１は外部記憶装置３と接続して、予め記憶されたカーネルイメージを読み込んで、通常運用を開始する。
図３、４に示すように、通常運用時において（図４のステップＳ１）、サスペンドを開始すると（ステップＳ２）、ノード移送装置１は、物理メモリ領域において、実行中のプロセスが必要とするページをスワップインし、不必要なページをスワップアウトしながら処理を行う。具体的には、制御部１１は、サスペンド指示によって、プロセスをフリーズさせ（ステップＳ３）、フリーズさせたプロセスのプロセスコンテクストを補助記憶装置１３のスワップ領域に書き込む（ステップＳ４）。次に、制御部１１は、物理メモリ領域の情報を補助記憶装置１３のスワップ領域に強制スワップアウトし、外部記憶装置３と接続して（ステップＳ５）、スワップ領域のサスペンドイメージを外部記憶装置３に転送する（ステップＳ６）。
【００２５】
以下、まず物理メモリ領域の転送処理について詳述する。
クラスタＰＣにおいて、スワップ領域の使用量がゼロになることは希である。また、物理メモリ領域の使用量とスワップ領域の使用量を合計したものが、物理メモリ領域のメモリ容量を上回ることも多い。さらに、スワップ領域は物理メモリの延長として利用するようにＯＳのメモリ管理機構が構成されているため、スワップ領域と物理メモリの親和性は高い。
以上より、ノード移送装置１から外部記憶装置３に物理メモリ領域の内容を直接転送するのではなく、物理メモリ領域に記憶された情報をすべて一旦スワップ領域へスワップアウトした後、このスワップ領域全体をまとめて転送する。
【００２６】
物理メモリを一旦スワップ領域にすべて書き出す方式は、以下のように行う。
すなわち、制御部１１は、まず他の全プロセスを、サスペンド処理プロセス以外のプロセスが動作しない特殊な停止状態に置く（プロセスのフリーズ）。
次に、制御部１１は、物理メモリ上にダミーページを可能な限り確保する。
そうすると、ＯＳのメモリ管理機構により、制御部１１は、従来のプロセスが使用していた主記憶装置１２上のメモリページを補助記憶装置１３上のローカルのスワップ領域にスワップアウトする（図５の（ａ）を参照）。
しかし、ここで、カーネルが占めているメモリ空間やＩＯ用のバッファなど、スワップアウト不可能なページは、そのままメモリ内に残る。本明細書ではこれをリサーブドページと呼ぶ。
そこで、リサーブドページについて、制御部１１は、リザーブページと同容量だけのスワップアウト用ページバッファを確保し、各々のページをページバッファにコピーする（図５の（ｂ）を参照）。ページバッファの各ページは、リザーブドページではないので、ページバッファはすべてスワップアウトされる（図５の（ｃ）を参照）。
以上により、物理メモリ領域に記憶された情報（メモリイメージ）がすべてスワップ領域に転送される。
【００２７】
次にスワップ領域の転送処理について説明する。
一般にスワップ領域のすべてのページ領域を使い切ることは稀である。これは、スワップ領域があくまで物理メモリ領域の不足を補う補助的な機構であり、スワップ領域に完全に依存したシステム構成を取るとパフォーマンスが著しく悪化するという問題があるためである。したがって、ノード移送装置１は、スワップ領域の使用中のページのみを転送する。
【００２８】
具体的には、ノード移送装置１上のＯＳにノード移送機能を組み込むことで、制御部１１は、カーネルプロセスが管理しているスワップ領域のページ管理データを読み込んで、スワップ領域の各ページの使用状況を把握する。
そして、制御部１１は、スワップ領域の各ページの使用状況に基づいて、実行中のプロセスが使用しているページのみを選択し、ネットワークインターフェイス１４を介して、外部記憶装置３に転送する。このとき、制御部１１は、選択したページの転送記録をマッピングしておき、同様に、外部記憶装置３に転送する。
以上により、制御部１１は、スワップ領域のサスペンドイメージを外部記憶装置３に転送する。そして、転送処理完了後、制御部１１は、外部記憶装置３との接続を切断してシャットダウンする（ステップＳ７、Ｓ８）。
【００２９】
ノード代替装置２はノード移送装置１と同様に、起動時において外部記憶装置３と接続して、予め記憶されたカーネルイメージを読み込む（ステップＳ１０、Ｓ１１）。次に、ノード代替装置２は、外部記憶装置３に記憶されたノード移送装置１のスワップ領域のサスペンドイメージを読み込んで外部記憶装置３との接続を切断する。
そして、ノード代替装置２は、リジューム処理を開始し、ノード移送装置１でフリーズさせたプロセスを復帰させる。
具体的には、制御部２１は、ハイバネーション領域に記録された情報と同様に、サスペンドイメージを主記憶装置２２に読み込んで、前回にハイバネーションを開始した時点と同様に、ノード移送装置１でフリーズさせたプロセスの状態を復帰させる。これにより、実行中だったプロセスを復帰する。
【００３０】
以上説明したように、本実施形態のノード移送装置１及びノード代替装置２によれば、ノード移送装置１において、その環境（物理メモリやローカルのファイルシステム）を凍結し、凍結したノード環境をネットワーク経由でノード代替装置２に転送する。そして、ノード代替装置２において、凍結した環境を解凍する。
したがって、ノード移送装置１におけるノード環境をノード代替装置２に移送することが出来る効果が得られる。より具体的には、本実施形態のノード移送装置１及びノード代替装置２によれば、アプリケーションを実行させているＯＳの環境を含めて、ノード移送装置１の環境をノード代替装置２に移行する。また移行前に走行していたプロセスは一切終了することなく、移行先の計算機に引き継がれる。また、移行前、移行後は、ＯＳがネイティブ環境で動作する。
すなわち、同一のノードにおいて、ＯＳやプロセスを終了しないでノードの電源断を行う機能（ハイバネーション）とは、復帰する同一ノードではなく、異なるノードであるところが特徴的である。
【００３１】
すなわち、本実施形態のノード移送装置１及びノード代替装置２によれば、ＰＣクラスタ環境において、全体のサービスを停止することなく、特定のノードをハードメンテナンスするために、当該ノード上で実行している処理を、他の予備系のノードに移行させることにより、全体としてのサービスを継続する。これにより、移行の際に実行されていたプロセスの内部状態は保持されるため、ロールフォワード方式のアプリケーションの用途が限定されるという問題が解決でき、完全に透過的な移行が実現できる効果が得られる。
また、移行時のアドレス変換も発生しないため、外部ネットワークへの影響を最小限に抑えることが出来る効果が得られる。
また、仮想計算機方式のようにＣＰＵパワーを他のＯＳによって消費されてしまうことはないため、通常動作時はＣＰＵの性能をすべて利用することができるので、処理能力の低下を防止することが出来る効果が得られる。
また、移送元ノードが移送先の代替ノードを特定する必要がないため、代替ノードの管理を外部で行う場合、ノード移送管理を簡略化することができる効果が得られる。
【００３２】
なお、上記実施形態においては、外部記憶装置３を介して、ノード移送装置１のスワップ領域のサスペンドイメージをノード代替装置２から読み込む場合の例を示したが、本発明はこれに限られるものではなく、外部記憶装置３を介さずに直接サスペンドイメージを転送するようにしてもよい。具体的には、図６に示すように、ノード代替装置２を移送待機状態（アイドル状態）にしておいて、ノード移送装置１でフリーズさせたプロセスをスワップ領域に書き込んだ後、これを転送し、転送されたサスペンドイメージを読み込んでリジュームする。
このように構成することで、外部記憶装置３を介さずに、ノード移送装置１からノード代替装置２へノード環境を移行することが出来る。したがって、外部記憶装置３のハードウェアコストが削減できる効果が得られる。
【００３３】
なお、上記実施形態においては、ノード資源の具体例については、特に限定しなかったが、例えば図７に示すように、ノード資源の階層構成を定義した場合、アプリケーションレベルのノード環境とともに、ＯＳレベルのノード環境をすべて移行すると換言することが出来る。
参考として、図８にロールフォワード方式、図９に分散ＯＳ型、図１０に仮想計算機型によるノード資源の階層構成図を示す。
既に述べたように、ロールフォワード方式では、移行元ノードで実行されていたアプリケーションを移行先ノードで新規に立ち上げて、スナップショットを利用して、当該アプリケーションの状態を移送元ノードと同じ状態に再実行するのに対して、本実施形態のノード移送装置１及びノード代替装置２では、ＯＳレベルのノード環境も移行している。
また、分散ＯＳ型では、ノード間でＯＳが分散メモリを管理しながら、連携して動作するのに対して、本実施形態のノード移送装置１及びノード代替装置２では、分散メモリを用いない。
また、仮想計算機型では、仮想計算機エミュレータを用いるのに対して、本実施形態のノード移送装置１及びノード代替装置２では、仮想計算機エミュレータを用いない。
【００３４】
また、上記実施形態においては、補助記憶装置１３のローカルファイルシステムを補助記憶装置２３にマウントする方法について、特に限定しなかったが、例えば、上述した主記憶１２の物理メモリ領域や補助記憶装置１３のスワップ領域を外部記憶装置３に転送する場合と同様に、補助記憶装置１３のローカルファイルシステムを一旦、外部記憶装置３に書き出して、リジューム時に、補助記憶装置２３で読み込む構成とすることが考えられる。また、他の実施形態として、ノード移送装置１とノード代替装置２に共通のローカルファイルシステムを予め外部記憶装置３に書き込んでおき、同様に、リジューム時に、補助記憶装置２３で読み込む構成とするようにしてもよい。
【００３５】
上述したノード移送処理、ノード代替処理に関する一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。
すなわち、ノード移送装置１及びノード代替装置２における、各処理手段、処理部は、ＣＰＵ等の中央演算処理装置がＲＯＭやＲＡＭ等の主記憶装置に上記プログラムを読み出して、情報の加工・演算処理を実行することにより、実現されるものである。
ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【００３６】
【図１】本実施形態のノード移送装置１とノード代替装置２から構成されるコンピュータシステムの構成図。
【図２】本実施形態のノード移送装置１、ノード代替装置２の構成を示すブロック図。
【図３】本実施形態のノード移送装置１とノード代替装置２との間におけるノード移送処理の概略図。
【図４】本実施形態のノード移送装置１とノード代替装置２との間におけるノード移送処理のシーケンス図。
【図５】物理メモリ領域からスワップ領域にスワップアウトする様子を示す説明図。
【図６】本実施形態のノード移送装置１とノード代替装置２との間で直接スワップ領域のサスペンドイメージを転送する様子を示すシーケンス図。
【図７】本実施形態のノード移送装置１及びノード代替装置２の階層構成図。
【図８】ロールフォワード方式のノード資源の階層構成図。
【図９】分散ＯＳ型のノード資源の階層構成図。
【図１０】仮想計算機型のノード資源の階層構成図。
【符号の説明】
【００３７】
１…ノード移送装置
２…ノード代替装置
３…外部記憶装置
１１、２１…制御部
１２、２２…主記憶装置
１３、２３…補助記憶装置
１４、２４…ネットワークインターフェイス部
【図１】
2005070952.tif 000003
【図２】
2005070952.tif 000004
【図３】
2005070952.tif 000005
【図４】
2005070952.tif 000006
【図５】
2005070952.tif 000007
【図６】
2005070952.tif 000008
【図７】
2005070952.tif 000009
【図８】
2005070952.tif 000010
【図９】
2005070952.tif 000011
【図１０】
2005070952.tif 000012