説明

仮想計算機制御方法

【課題】仮想計算機移動の際の構成の再設定の煩雑さを解消するとともに、仮想計算機および仮想計算機制御プログラムの移動、複製あるいは保存を行うことによってシステムの可用性を向上する。
【解決手段】実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を情報伝達手段を介して他の実計算機に転送し、他の実計算機において転送された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報に基づいて仮想計算機および仮想計算機制御プログラムを構築する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、実計算機上で動作する仮想計算機の制御方法に係わり、特に実計算機間で仮想計算機および制御プログラムを移動または複製する制御方法に関する。
【背景技術】
【0002】
図3は仮想計算機の実計算機間の移動の例を示す。仮想計算機システムとは1つの実計算機上で仮想計算機制御プログラムを動作させることにより、あたかも複数の計算機が存在するように動作するシステムである。図3の例においては仮想計算機制御プログラム1(203)と仮想計算機制御プログラム2(206)が情報伝達手段207で接続されており、仮想計算機制御プログラムの制御下で情報伝達手段を通じて他の実計算機内に仮想計算機を移動させるものである。
【0003】
仮想計算機の移動を行う場合、例えば、実計算機1(200)上の仮想計算機1(201)を実計算機2(204)上に移動させるには、実計算機2(204)上であらかじめ制御プログラム2(206)を起動し、仮想計算機1(205)の構成を設定しておく。その上で仮想計算機の情報、データを情報伝達手段を介して実計算機2(204)上の仮想計算機制御プログラム2(206)に転送し、すべてのデータ転送が終わった後、仮想計算機制御プログラム2(206)は記憶媒体の再接続等を行い、仮想計算機1(205)を再開する。
【0004】
このような仮想計算機の移動方式の例としては特開平10−283210号公報において示されている。
【0005】
【特許文献1】特開平10−283210号
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来の仮想計算機の移動方式においては以下のような制約が生じる。
【0007】
他実計算機上に仮想計算機を移動させる場合に予め仮想計算機制御プログラムを移動先の実計算機上で起動した後、移動する仮想計算機の構成の再設定や、記憶媒体が実計算機間で共有されていない場合は、記憶媒体の再接続を行う必要がある。図3の例では実計算機1(200)に接続されている記憶媒体(208)を実計算機2(204)につなぎかえる必要がある。
【0008】
また、実計算機上で複数の仮想計算機が動作し、それらの仮想計算機の全てを移動させようとする場合、複数回の移動オペレーションおよび仮想計算機構成設定を行う必要があり、煩雑である。
さらに実計算機上でハードウェア障害が発生し、仮想計算機制御プログラムが障害を検出し、その影響でそれ以上の仮想計算機制御処理ができなくなる要因が発生した場合、仮想計算機の移動やシステムの継続稼動が行えなくなるといった問題点も存在する
本発明は仮想計算機移動の際の構成の再設定の煩雑さを解消することを目的とするとともに、仮想計算機および仮想計算機制御プログラムの移動、複製あるいは保存を行うことによってシステムの可用性向上を目的とする。
【課題を解決するための手段】
【0009】
上記の問題点を解決するために、本発明は、実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、この一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を情報伝達手段を介して他の実計算機に転送し、他の実計算機において転送された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報に基づいて仮想計算機および仮想計算機制御プログラムを構築する。
【0010】
また本発明は、仮想計算機システムを動作させる複数の実計算機を管理するコンソールより移動指示を発行し、それを受けた仮想計算機制御プログラムが、稼動中の自身、および仮想計算機を一時停止させ、それらをデータ化し、ファームウェアを介して実計算機の通信手段を使用して、移動または複製先実計算機上のファームウェアに対してデータを転送し、移動または複製先実計算機上のファームウェアはそのデータを受け取った後、仮想計算機制御プログラムを再開する。仮想計算機制御プログラムは仮想計算機の構成情報を有しているため仮想計算機の構成を自動的に再構築し、仮想計算機の再開を行うことができるため、仮想計算機の構成の再設定の煩雑さが解消される。
【0011】
また任意の時点で仮想計算機および仮想計算機制御プログラムのデータを採取し記憶媒体に保存することにより、実計算機上で障害が発生し、それ以上システムとしての処理が行えなくなった場合に、採取されたデータの時点から仮想計算機および仮想計算機制御プログラムの再開が可能となる。
【発明の効果】
【0012】
本発明により仮想計算機移動の際の構成の再設定の煩雑さを解決することができる。また、仮想計算機制御プログラムに障害発生時にそれ以上の仮想計算機制御処理が行えなくなるような場合、自身及びその上で動作する仮想計算機を他実計算機へ移動する機能を持たせることにより、可用性を損なうことなくシステムの効率的な運用が可能となる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施例を示す。図1はサーバシステムの一例で実計算機10、20が接合機器34で接合され、各物理計算機との情報伝達手段として各実計算機上に実装されたBMC(ベースボードマネージメントコントローラ)15、25と各BMCを統括するSVP(サービスプロセッサ)31およびそのSVP31のコンソールとして接続される端末機器32、および記憶媒体33からなる。
【0014】
なお、記憶媒体30は各実計算機へ切り替えて使用することが可能な記憶媒体であり、SVP31のコマンドにより切り替え可能である。
【0015】
また、各実計算機上のBMCは仮想計算機制御プログラム及びファームウェアと通信可能な手段を有している。仮想計算機制御プログラムとファームウェアとのやりとりはファームウェアの提供する関数をコールすることにより行う。
【0016】
このシステムを用いて実計算機10から実計算機20への仮想計算機11、12および仮想計算機制御プログラム13の移動または複製の例を説明する。なお、記憶媒体30は実計算機10上のいづれかの仮想計算機に割り当てられているものとする。
【0017】
コンソール32よりSVP31を介して仮想計算機移動要求が入力されたならば、SVP31はBMC15に対して仮想計算機11、12および仮想計算機制御プログラム13の移動要求を伝達する。
仮想計算機制御プログラム13はBMC15から割り込み、またはポーリングにより仮想計算機11、12および仮想計算機制御プログラム13の移動要求を受け取る。
【0018】
移動要求を受け取った仮想計算機制御プログラム13は仮想計算機11、12を一時停止させる。仮想計算機を停止させるとは、仮想計算機として動作するプロセスを停止させることである。仮想計算機移動要求があったならば仮想計算機制御プログラム13は実計算機内の各プロセッサ上で動作中の仮想計算機11、12の全てのプロセスを停止させる。
【0019】
プロセスを停止させるタイミングは仮想計算機プロセスのタイムスライス、または仮想計算機プロセスが命令のエミュレーション中であったならば、そのエミュレーションが終了した時点のいずれかで停止させる。
【0020】
なお、仮想計算機上のOSがI/OのDMA転送中、または割り込み待ちであった場合はその完了を待ち、以降それぞれの仮想計算機の状態が更新されない時点になった上で前述の停止タイミングを待ち、プロセスを停止させる。
【0021】
すべての仮想計算機プロセスが停止したならば仮想計算機制御プログラム13は自身の現在実行中の全てのプロセスを停止させる。
【0022】
仮想計算機制御プログラムのプロセスを停止させるタイミングは仮想計算機制御プログラムがI/OのDMA転送中、または割り込み待ちであった場合はその完了を待ち、以降仮想計算機制御プログラムの状態が更新されない時点になった上でタイムスライスが発生した時点である。
【0023】
これら全てのプロセスの停止が終了した時点で、仮想計算機制御プログラム13が有する仮想計算機移動処理プロセスを起動する。このプロセスでは各仮想計算機および仮想計算機制御プログラムの状態、構成、現在使用しているメモリ範囲、メモリデータ等の情報を構築し、ファームウェア14に対してそのデータを伝達する処理を行う。
【0024】
図2に上記プロセスのデータ情報の構築により作成される図1の事例のデータの構成図を示す。作成されるデータは大別して仮想計算機データと仮想計算機制御プログラムデータに分かれる。
【0025】
仮想計算機11データ100には論理プロセッサ数、メモリ容量などの仮想計算機構成データ101、各論理プロセッサのレジスタ値を有する論理プロセッサ状態データ102、仮想計算機の使用するI/O(記憶媒体等)の構成、およびI/Oデバイスの状態及びI/Oに記録されているデータを有するI/O情報103、仮想計算機11が使用しているメモリのアドレスおよびメモリ内容を有するメモリ情報104が存在する。これらの情報は仮想計算機11データ100、仮想計算機12データ105というように仮想計算機毎に存在する。
【0026】
仮想計算機制御プログラム13データ110には実計算機を構成するデータ111(I/Oデバイスの数、搭載メモリ容量、物理プロセッサ数等)、各物理プロセッサのレジスタ値を有する物理プロセッサ状態データ112、それぞれの仮想計算機に割り当てているメモリ、プロセッサ数、I/Oデバイス数の情報を有する物理資源割り当てデータ113、仮想計算機制御プログラム13が使用する物理メモリアドレスおよびその内容を有するメモリ情報114、仮想計算機制御プログラム13が使用するI/Oの構成、およびI/Oに記録されているデータを有するI/O情報115が存在する。
【0027】
データの構築が終了したならば、仮想計算機移動処理プロセスはファームウェア14の関数を前述のデータおよび移動先実計算機(図1の場合実計算機20)を引数として与え、コールする。
ファームウェア14は仮想計算機制御プログラム13から転送要求を示す関数コールを受けたならばBMC15を介して転送先BMC25に対してデータを送信する。
転送先BMC25はデータを受け取ったならば割り込みまたはポーリングによりデータの移動要求をファームウェア24に伝達する。
【0028】
ファームウェア24は移動要求を受け取ったならば、BMC25、15を介してファームウェア14と通信を行い、前述のデータを受信する。
ファームウェア24は受信したデータに基づいて、実計算機20上のメモリにデータを順次展開し、仮想計算機制御プログラム23を構築する。
【0029】
このとき、移動先実計算機上に記憶媒体等の仮想計算機および仮想計算機制御プログラムを構成するのに必要なI/Oデバイスがない場合はデータに基づいてSVP31へI/O切り替え要求を発行し、実計算機10から実計算機20へのI/Oの切り替え処理を行う。この場合、I/Oデバイスの内容はそのまま維持されるため、I/Oデバイスのデータのリストア行わなくてもよいが、仮想計算機および仮想計算機制御プログラムの複製は行えず移動のみとなる。
【0030】
移動先実計算機上に記憶媒体等の仮想計算機および仮想計算機制御プログラムを構成するのに必要なI/Oデバイスが存在し、それを使用する場合はその記憶媒体にI/Oデバイスのデータのリストアを行う。この場合は仮想計算機および仮想計算機制御プログラムの移動または複製が可能となる。
ファームウェア24は仮想計算機制御プログラム23の構築およびデータの受信が完了したならば、制御権を仮想計算機制御プログラム23に移す。
【0031】
仮想計算機制御プログラム23は制御権が移ったならば、物理資源割り当てデータ113および仮想計算機11データ100、仮想計算機12データ105から、移動前の仮想計算機11、12と同じ構成である仮想計算機21、22を自動構築する。
【0032】
仮想計算機制御プログラム23はすべての仮想計算機の構築が終了したならば、各物理プロセッサの状態を再設定し、各仮想計算機に順次起動をかけることにより、仮想計算機11、12および仮想計算機制御プログラム13の移動を完了する。
【0033】
データ転送完了後、移動の場合は実計算機10上の仮想計算機制御プログラム13は実計算機を10のシャットダウン処理を行う。複製であった場合は仮想計算機制御プログラム13は仮想計算機11、12を再開させ、引き続き稼動を行う。
【0034】
次に、仮想計算機及び仮想計算機制御プログラムを移動または複製するのではなく、稼動時複製データ採取のみを行う場合を図1の実計算機10を例に説明する。
【0035】
SVP31はコンソール32から稼動時データ採取要求が入力されたならば、SVP31はBMC15に対して仮想計算機11、12および仮想計算機制御プログラム13の稼動時データを採取要求を伝達する。
仮想計算機制御プログラム13はBMC15から割り込み、またはポーリングにより仮想計算機11、12および仮想計算機制御プログラム13の稼動時データを採取要求を受け取る。
【0036】
データ採取要求を受け取った仮想計算機制御プログラム13は仮想計算機11、12を一時停止させる。
移動時と同様に、仮想計算機制御プログラム13は実計算機内の各プロセッサ上で動作中の仮想計算機11、12の全てのプロセスを停止させる。移動時と同様にプロセスを停止させるタイミングは仮想計算機プロセスのタイムスライス、または仮想計算機プロセスが命令のエミュレーション中であったならば、そのエミュレーションが終了した時点のいずれかで停止させる。
【0037】
なお、仮想計算機上のOSがI/OのDMA転送中、または割り込み待ちであった場合はその完了を待ち、以降それぞれの仮想計算機の状態が更新されない時点になった上で前述の停止タイミングを待ち、プロセスを停止させる。
【0038】
すべての仮想計算機プロセスが停止したならば仮想計算機制御プログラム13は自身の現在実行中の全てのプロセスを停止させる。
【0039】
仮想計算機制御プログラムのプロセスを停止させるタイミングは仮想計算機制御プログラムがI/OのDMA転送中、または割り込み待ちであった場合はその完了を待ち、以降仮想計算機制御プログラムの状態が更新されない時点になった上でタイムスライスが発生した時点である。
【0040】
すべてのプロセスが停止したならば仮想計算機制御プログラム13が有する各仮想計算機および仮想計算機制御プログラムの状態、構成、現在使用しているメモリデータ等の情報を構築するプロセスを起動し、移動時同様、図2に示されるデータを構築する。
【0041】
データの構築が終わったならば、プロセスはファームウェア14の関数を前述のデータおよび、データを記憶させる記憶媒体(本ケースにおいては記憶媒体33)を引数として与え、コールする。
【0042】
ファームウェア14は仮想計算機制御プログラム13から保存要求を示す関数コールを受けたならばBMC15を介してSVP31に対してデータの記憶媒体33への保存要求を発行する。SVP31はその要求を受け取ったならば、記憶媒体33への保存を開始する。
【0043】
すべてのデータの記憶媒体33への保存が終了したならば、SVP31はBMC15を介してファームウェア14に対して終了報告を行う。ファームウェア14はSVP31より終了報告を受け取ったならば、仮想計算機制御プログラム13に制御権を戻し、仮想計算機制御プログラム13を再開する。
【0044】
これにより、仮想計算機及び仮想計算機制御プログラムのデータ採取を行うことが可能となる。
【図面の簡単な説明】
【0045】
【図1】本発明の一実施例に係る仮想計算機システムの構成図である。
【図2】仮想計算機および仮想計算機制御プログラムを移動する際にデータ化するデータの構成図である。
【図3】現在実現されている一般的な仮想計算機移動方式の概略図である。
【符号の説明】
【0046】
10 実計算機
11 仮想計算機
12 仮想計算機
13 仮想計算機制御プログラム
14 ファームウェア
15 ベースボードマネジメントコントローラ(BMC)
20 実計算機
21 仮想計算機
22 仮想計算機
23 仮想計算機制御プログラム
24 ファームウェア
25 ベースボードマネジメントコントローラ(BMC)
30 記憶媒体
31 サービスプロセッサ(SVP)
32 コンソール
33 記憶媒体
100 仮想計算機11データ
101 仮想計算機構成データ
102 論理プロセッサ状態データ
103 仮想計算機I/O情報
104 仮想計算機メモリ情報
105 仮想計算機12データ
110 仮想計算機制御プログラム13データ
111 実計算機構成データ
112 物理プロセッサ状態データ
113 物理資源割り当てデータ
114 仮想計算機制御プログラムメモリ情報
115 仮想計算機制御プログラムI/O情報
200 実計算機1
201 仮想計算機1
202 仮想計算機2
203 仮想計算機制御プログラム
204 実計算機2
205 仮想計算機1
206 仮想計算機制御プログラム2
207 情報伝達手段

【特許請求の範囲】
【請求項1】
複数の実計算機が互に情報の伝達を行う情報伝達手段を有し、それぞれの実計算機において仮想計算機制御プログラムにより仮想計算機を動作させる仮想計算機システムにおいて、一つの実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、該一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、該データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を前記情報伝達手段を介して他の実計算機に転送し、該他の実計算機において前記転送された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報に基づいて仮想計算機および仮想計算機制御プログラムを構築することを特徴とする仮想計算機制御方法。
【請求項2】
前記データ情報の転送先実計算機に構築された仮想計算機および仮想計算機制御プログラムの稼動を開始後、前記データ情報の転送元実計算機上の仮想計算機および仮想計算機制御プログラムを再稼動することにより仮想計算機および仮想計算機制御プログラムの複製を実現することを特徴とする請求項1記載の仮想計算機制御方法。
【請求項3】
前記データ情報の転送先実計算機に構築された仮想計算機および仮想計算機制御プログラムの稼動を開始後、前記情報データの転送元実計算機をシャットダウンすることにより仮想計算機および仮想計算機制御プログラムの移動を実現することを特徴とする請求項1記載の仮想計算機制御方法。
【請求項4】
複数の実計算機が互に情報の伝達を行う情報伝達手段を有し、それぞれの実計算機において仮想計算機制御プログラムにより仮想計算機を動作させる仮想計算機システムにおいて、記憶装置を備えた実計算機で稼動中の仮想計算機および仮想計算機制御プログラムを一時停止させ、該一時停止させた仮想計算機および仮想計算機制御プログラムの状態をデータ情報としてデータ化し、該データ化された仮想計算機および仮想計算機制御プログラムの状態に関するデータ情報を前記記憶装置に保存しておき、システム障害時に前記保存したデータ情報を当該実計算機に転送して仮想計算機および仮想計算機制御プログラムを再開することを特徴とする仮想計算機制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2006−72591(P2006−72591A)
【公開日】平成18年3月16日(2006.3.16)
【国際特許分類】
【出願番号】特願2004−253729(P2004−253729)
【出願日】平成16年9月1日(2004.9.1)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】