(57)【要約】      （修正有）【課題】仮想計算機移動の際の構成の再設定の煩雑さを解消するとともに、仮想計算機および仮想計算機制御プログラムの移動、複製あるいは保存を行うことによってシステムの可用性を向上する。【解決手段】実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を情報伝達手段を介して他の実計算機に転送し、他の実計算機において転送された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報に基づいて仮想計算機および仮想計算機制御プログラムを構築する。【選択図】  図１
2006072591.tif 000002
【特許請求の範囲】
【請求項１】
複数の実計算機が互に情報の伝達を行う情報伝達手段を有し、それぞれの実計算機において仮想計算機制御プログラムにより仮想計算機を動作させる仮想計算機システムにおいて、一つの実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、該一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、該データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を前記情報伝達手段を介して他の実計算機に転送し、該他の実計算機において前記転送された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報に基づいて仮想計算機および仮想計算機制御プログラムを構築することを特徴とする仮想計算機制御方法。
【請求項２】
前記データ情報の転送先実計算機に構築された仮想計算機および仮想計算機制御プログラムの稼動を開始後、前記データ情報の転送元実計算機上の仮想計算機および仮想計算機制御プログラムを再稼動することにより仮想計算機および仮想計算機制御プログラムの複製を実現することを特徴とする請求項１記載の仮想計算機制御方法。
【請求項３】
前記データ情報の転送先実計算機に構築された仮想計算機および仮想計算機制御プログラムの稼動を開始後、前記情報データの転送元実計算機をシャットダウンすることにより仮想計算機および仮想計算機制御プログラムの移動を実現することを特徴とする請求項１記載の仮想計算機制御方法。
【請求項４】
複数の実計算機が互に情報の伝達を行う情報伝達手段を有し、それぞれの実計算機において仮想計算機制御プログラムにより仮想計算機を動作させる仮想計算機システムにおいて、記憶装置を備えた実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、該一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、該データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を前記記憶装置に保存しておき、システム障害時に前記保存したデータ情報を当該実計算機に転送して仮想計算機および仮想計算機制御プログラムを再開することを特徴とする仮想計算機制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実計算機上で動作する仮想計算機の制御方法に係わり、特に実計算機間で仮想計算機および制御プログラムを移動または複製する制御方法に関する。
【背景技術】
【０００２】
図３は仮想計算機の実計算機間の移動の例を示す。仮想計算機システムとは１つの実計算機上で仮想計算機制御プログラムを動作させることにより、あたかも複数の計算機が存在するように動作するシステムである。図３の例においては仮想計算機制御プログラム１（２０３）と仮想計算機制御プログラム２（２０６）が情報伝達手段２０７で接続されており、仮想計算機制御プログラムの制御下で情報伝達手段を通じて他の実計算機内に仮想計算機を移動させるものである。
【０００３】
仮想計算機の移動を行う場合、例えば、実計算機１（２００）上の仮想計算機１（２０１）を実計算機２（２０４）上に移動させるには、実計算機２（２０４）上であらかじめ制御プログラム２（２０６）を起動し、仮想計算機１（２０５）の構成を設定しておく。その上で仮想計算機の情報、データを情報伝達手段を介して実計算機２（２０４）上の仮想計算機制御プログラム２（２０６）に転送し、すべてのデータ転送が終わった後、仮想計算機制御プログラム２（２０６）は記憶媒体の再接続等を行い、仮想計算機１（２０５）を再開する。
【０００４】
このような仮想計算機の移動方式の例としては特開平１０−２８３２１０号公報において示されている。
【０００５】
【特許文献１】特開平１０−２８３２１０号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の仮想計算機の移動方式においては以下のような制約が生じる。
【０００７】
他実計算機上に仮想計算機を移動させる場合に予め仮想計算機制御プログラムを移動先の実計算機上で起動した後、移動する仮想計算機の構成の再設定や、記憶媒体が実計算機間で共有されていない場合は、記憶媒体の再接続を行う必要がある。図３の例では実計算機１（２００）に接続されている記憶媒体（２０８）を実計算機２（２０４）につなぎかえる必要がある。
【０００８】
また、実計算機上で複数の仮想計算機が動作し、それらの仮想計算機の全てを移動させようとする場合、複数回の移動オペレーションおよび仮想計算機構成設定を行う必要があり、煩雑である。
さらに実計算機上でハードウェア障害が発生し、仮想計算機制御プログラムが障害を検出し、その影響でそれ以上の仮想計算機制御処理ができなくなる要因が発生した場合、仮想計算機の移動やシステムの継続稼動が行えなくなるといった問題点も存在する
本発明は仮想計算機移動の際の構成の再設定の煩雑さを解消することを目的とするとともに、仮想計算機および仮想計算機制御プログラムの移動、複製あるいは保存を行うことによってシステムの可用性向上を目的とする。
【課題を解決するための手段】
【０００９】
上記の問題点を解決するために、本発明は、実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、この一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を情報伝達手段を介して他の実計算機に転送し、他の実計算機において転送された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報に基づいて仮想計算機および仮想計算機制御プログラムを構築する。
【００１０】
また本発明は、仮想計算機システムを動作させる複数の実計算機を管理するコンソールより移動指示を発行し、それを受けた仮想計算機制御プログラムが、稼動中の自身、および仮想計算機を一時停止させ、それらをデータ化し、ファームウェアを介して実計算機の通信手段を使用して、移動または複製先実計算機上のファームウェアに対してデータを転送し、移動または複製先実計算機上のファームウェアはそのデータを受け取った後、仮想計算機制御プログラムを再開する。仮想計算機制御プログラムは仮想計算機の構成情報を有しているため仮想計算機の構成を自動的に再構築し、仮想計算機の再開を行うことができるため、仮想計算機の構成の再設定の煩雑さが解消される。
【００１１】
また任意の時点で仮想計算機および仮想計算機制御プログラムのデータを採取し記憶媒体に保存することにより、実計算機上で障害が発生し、それ以上システムとしての処理が行えなくなった場合に、採取されたデータの時点から仮想計算機および仮想計算機制御プログラムの再開が可能となる。
【発明の効果】
【００１２】
本発明により仮想計算機移動の際の構成の再設定の煩雑さを解決することができる。また、仮想計算機制御プログラムに障害発生時にそれ以上の仮想計算機制御処理が行えなくなるような場合、自身及びその上で動作する仮想計算機を他実計算機へ移動する機能を持たせることにより、可用性を損なうことなくシステムの効率的な運用が可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施例を示す。図１はサーバシステムの一例で実計算機１０、２０が接合機器３４で接合され、各物理計算機との情報伝達手段として各実計算機上に実装されたＢＭＣ（ベースボードマネージメントコントローラ）１５、２５と各ＢＭＣを統括するＳＶＰ（サービスプロセッサ）３１およびそのＳＶＰ３１のコンソールとして接続される端末機器３２、および記憶媒体３３からなる。
【００１４】
なお、記憶媒体３０は各実計算機へ切り替えて使用することが可能な記憶媒体であり、ＳＶＰ３１のコマンドにより切り替え可能である。
【００１５】
また、各実計算機上のＢＭＣは仮想計算機制御プログラム及びファームウェアと通信可能な手段を有している。仮想計算機制御プログラムとファームウェアとのやりとりはファームウェアの提供する関数をコールすることにより行う。
【００１６】
このシステムを用いて実計算機１０から実計算機２０への仮想計算機１１、１２および仮想計算機制御プログラム１３の移動または複製の例を説明する。なお、記憶媒体３０は実計算機１０上のいづれかの仮想計算機に割り当てられているものとする。
【００１７】
コンソール３２よりＳＶＰ３１を介して仮想計算機移動要求が入力されたならば、ＳＶＰ３１はＢＭＣ１５に対して仮想計算機１１、１２および仮想計算機制御プログラム１３の移動要求を伝達する。
仮想計算機制御プログラム１３はＢＭＣ１５から割り込み、またはポーリングにより仮想計算機１１、１２および仮想計算機制御プログラム１３の移動要求を受け取る。
【００１８】
移動要求を受け取った仮想計算機制御プログラム１３は仮想計算機１１、１２を一時停止させる。仮想計算機を停止させるとは、仮想計算機として動作するプロセスを停止させることである。仮想計算機移動要求があったならば仮想計算機制御プログラム１３は実計算機内の各プロセッサ上で動作中の仮想計算機１１、１２の全てのプロセスを停止させる。
【００１９】
プロセスを停止させるタイミングは仮想計算機プロセスのタイムスライス、または仮想計算機プロセスが命令のエミュレーション中であったならば、そのエミュレーションが終了した時点のいずれかで停止させる。
【００２０】
なお、仮想計算機上のＯＳがＩ／ＯのＤＭＡ転送中、または割り込み待ちであった場合はその完了を待ち、以降それぞれの仮想計算機の状態が更新されない時点になった上で前述の停止タイミングを待ち、プロセスを停止させる。
【００２１】
すべての仮想計算機プロセスが停止したならば仮想計算機制御プログラム１３は自身の現在実行中の全てのプロセスを停止させる。
【００２２】
仮想計算機制御プログラムのプロセスを停止させるタイミングは仮想計算機制御プログラムがＩ／ＯのＤＭＡ転送中、または割り込み待ちであった場合はその完了を待ち、以降仮想計算機制御プログラムの状態が更新されない時点になった上でタイムスライスが発生した時点である。
【００２３】
これら全てのプロセスの停止が終了した時点で、仮想計算機制御プログラム１３が有する仮想計算機移動処理プロセスを起動する。このプロセスでは各仮想計算機および仮想計算機制御プログラムの状態、構成、現在使用しているメモリ範囲、メモリデータ等の情報を構築し、ファームウェア１４に対してそのデータを伝達する処理を行う。
【００２４】
図２に上記プロセスのデータ情報の構築により作成される図１の事例のデータの構成図を示す。作成されるデータは大別して仮想計算機データと仮想計算機制御プログラムデータに分かれる。
【００２５】
仮想計算機１１データ１００には論理プロセッサ数、メモリ容量などの仮想計算機構成データ１０１、各論理プロセッサのレジスタ値を有する論理プロセッサ状態データ１０２、仮想計算機の使用するＩ／Ｏ（記憶媒体等）の構成、およびＩ／Ｏデバイスの状態及びＩ／Ｏに記録されているデータを有するＩ／Ｏ情報１０３、仮想計算機１１が使用しているメモリのアドレスおよびメモリ内容を有するメモリ情報１０４が存在する。これらの情報は仮想計算機１１データ１００、仮想計算機１２データ１０５というように仮想計算機毎に存在する。
【００２６】
仮想計算機制御プログラム１３データ１１０には実計算機を構成するデータ１１１（Ｉ／Ｏデバイスの数、搭載メモリ容量、物理プロセッサ数等）、各物理プロセッサのレジスタ値を有する物理プロセッサ状態データ１１２、それぞれの仮想計算機に割り当てているメモリ、プロセッサ数、Ｉ／Ｏデバイス数の情報を有する物理資源割り当てデータ１１３、仮想計算機制御プログラム１３が使用する物理メモリアドレスおよびその内容を有するメモリ情報１１４、仮想計算機制御プログラム１３が使用するＩ／Ｏの構成、およびＩ／Ｏに記録されているデータを有するＩ／Ｏ情報１１５が存在する。
【００２７】
データの構築が終了したならば、仮想計算機移動処理プロセスはファームウェア１４の関数を前述のデータおよび移動先実計算機（図１の場合実計算機２０）を引数として与え、コールする。
ファームウェア１４は仮想計算機制御プログラム１３から転送要求を示す関数コールを受けたならばＢＭＣ１５を介して転送先ＢＭＣ２５に対してデータを送信する。
転送先ＢＭＣ２５はデータを受け取ったならば割り込みまたはポーリングによりデータの移動要求をファームウェア２４に伝達する。
【００２８】
ファームウェア２４は移動要求を受け取ったならば、ＢＭＣ２５、１５を介してファームウェア１４と通信を行い、前述のデータを受信する。
ファームウェア２４は受信したデータに基づいて、実計算機２０上のメモリにデータを順次展開し、仮想計算機制御プログラム２３を構築する。
【００２９】
このとき、移動先実計算機上に記憶媒体等の仮想計算機および仮想計算機制御プログラムを構成するのに必要なＩ／Ｏデバイスがない場合はデータに基づいてＳＶＰ３１へＩ／Ｏ切り替え要求を発行し、実計算機１０から実計算機２０へのＩ／Ｏの切り替え処理を行う。この場合、Ｉ／Ｏデバイスの内容はそのまま維持されるため、Ｉ／Ｏデバイスのデータのリストア行わなくてもよいが、仮想計算機および仮想計算機制御プログラムの複製は行えず移動のみとなる。
【００３０】
移動先実計算機上に記憶媒体等の仮想計算機および仮想計算機制御プログラムを構成するのに必要なＩ／Ｏデバイスが存在し、それを使用する場合はその記憶媒体にＩ／Ｏデバイスのデータのリストアを行う。この場合は仮想計算機および仮想計算機制御プログラムの移動または複製が可能となる。
ファームウェア２４は仮想計算機制御プログラム２３の構築およびデータの受信が完了したならば、制御権を仮想計算機制御プログラム２３に移す。
【００３１】
仮想計算機制御プログラム２３は制御権が移ったならば、物理資源割り当てデータ１１３および仮想計算機１１データ１００、仮想計算機１２データ１０５から、移動前の仮想計算機１１、１２と同じ構成である仮想計算機２１、２２を自動構築する。
【００３２】
仮想計算機制御プログラム２３はすべての仮想計算機の構築が終了したならば、各物理プロセッサの状態を再設定し、各仮想計算機に順次起動をかけることにより、仮想計算機１１、１２および仮想計算機制御プログラム１３の移動を完了する。
【００３３】
データ転送完了後、移動の場合は実計算機１０上の仮想計算機制御プログラム１３は実計算機を１０のシャットダウン処理を行う。複製であった場合は仮想計算機制御プログラム１３は仮想計算機１１、１２を再開させ、引き続き稼動を行う。
【００３４】
次に、仮想計算機及び仮想計算機制御プログラムを移動または複製するのではなく、稼動時複製データ採取のみを行う場合を図１の実計算機１０を例に説明する。
【００３５】
ＳＶＰ３１はコンソール３２から稼動時データ採取要求が入力されたならば、ＳＶＰ３１はＢＭＣ１５に対して仮想計算機１１、１２および仮想計算機制御プログラム１３の稼動時データを採取要求を伝達する。
仮想計算機制御プログラム１３はＢＭＣ１５から割り込み、またはポーリングにより仮想計算機１１、１２および仮想計算機制御プログラム１３の稼動時データを採取要求を受け取る。
【００３６】
データ採取要求を受け取った仮想計算機制御プログラム１３は仮想計算機１１、１２を一時停止させる。
移動時と同様に、仮想計算機制御プログラム１３は実計算機内の各プロセッサ上で動作中の仮想計算機１１、１２の全てのプロセスを停止させる。移動時と同様にプロセスを停止させるタイミングは仮想計算機プロセスのタイムスライス、または仮想計算機プロセスが命令のエミュレーション中であったならば、そのエミュレーションが終了した時点のいずれかで停止させる。
【００３７】
なお、仮想計算機上のＯＳがＩ／ＯのＤＭＡ転送中、または割り込み待ちであった場合はその完了を待ち、以降それぞれの仮想計算機の状態が更新されない時点になった上で前述の停止タイミングを待ち、プロセスを停止させる。
【００３８】
すべての仮想計算機プロセスが停止したならば仮想計算機制御プログラム１３は自身の現在実行中の全てのプロセスを停止させる。
【００３９】
仮想計算機制御プログラムのプロセスを停止させるタイミングは仮想計算機制御プログラムがＩ／ＯのＤＭＡ転送中、または割り込み待ちであった場合はその完了を待ち、以降仮想計算機制御プログラムの状態が更新されない時点になった上でタイムスライスが発生した時点である。
【００４０】
すべてのプロセスが停止したならば仮想計算機制御プログラム１３が有する各仮想計算機および仮想計算機制御プログラムの状態、構成、現在使用しているメモリデータ等の情報を構築するプロセスを起動し、移動時同様、図２に示されるデータを構築する。
【００４１】
データの構築が終わったならば、プロセスはファームウェア１４の関数を前述のデータおよび、データを記憶させる記憶媒体（本ケースにおいては記憶媒体３３）を引数として与え、コールする。
【００４２】
ファームウェア１４は仮想計算機制御プログラム１３から保存要求を示す関数コールを受けたならばＢＭＣ１５を介してＳＶＰ３１に対してデータの記憶媒体３３への保存要求を発行する。ＳＶＰ３１はその要求を受け取ったならば、記憶媒体３３への保存を開始する。
【００４３】
すべてのデータの記憶媒体３３への保存が終了したならば、ＳＶＰ３１はＢＭＣ１５を介してファームウェア１４に対して終了報告を行う。ファームウェア１４はＳＶＰ３１より終了報告を受け取ったならば、仮想計算機制御プログラム１３に制御権を戻し、仮想計算機制御プログラム１３を再開する。
【００４４】
これにより、仮想計算機及び仮想計算機制御プログラムのデータ採取を行うことが可能となる。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施例に係る仮想計算機システムの構成図である。
【図２】仮想計算機および仮想計算機制御プログラムを移動する際にデータ化するデータの構成図である。
【図３】現在実現されている一般的な仮想計算機移動方式の概略図である。
【符号の説明】
【００４６】
１０  実計算機
１１  仮想計算機
１２  仮想計算機
１３  仮想計算機制御プログラム
１４  ファームウェア
１５  ベースボードマネジメントコントローラ（ＢＭＣ）
２０  実計算機
２１  仮想計算機
２２  仮想計算機
２３  仮想計算機制御プログラム
２４  ファームウェア
２５  ベースボードマネジメントコントローラ（ＢＭＣ）
３０  記憶媒体
３１  サービスプロセッサ（ＳＶＰ）
３２  コンソール
３３  記憶媒体
１００  仮想計算機１１データ
１０１  仮想計算機構成データ
１０２  論理プロセッサ状態データ
１０３  仮想計算機Ｉ／Ｏ情報
１０４  仮想計算機メモリ情報
１０５  仮想計算機１２データ
１１０  仮想計算機制御プログラム１３データ
１１１  実計算機構成データ
１１２  物理プロセッサ状態データ
１１３  物理資源割り当てデータ
１１４  仮想計算機制御プログラムメモリ情報
１１５  仮想計算機制御プログラムＩ／Ｏ情報
２００  実計算機１
２０１  仮想計算機１
２０２  仮想計算機２
２０３  仮想計算機制御プログラム
２０４  実計算機２
２０５  仮想計算機１
２０６  仮想計算機制御プログラム２
２０７  情報伝達手段
【図１】
2006072591.tif 000003
【図２】
2006072591.tif 000004
【図３】
2006072591.tif 000005