(57)【特許請求の範囲】
【請求項１】
各実計算機で実計算機資源に共通の論理名称を付与し、第１の実計算機から第２の実計算機にオペレーティングシステムを移動する仮想計算機システム間の仮想計算機移動制御方法であって、
第１の実計算機上で稼動する第１の仮想計算機で動作するオペレーティングシステムによって使用される計算機資源の論理名称と仮想計算機構成との対応関係を示す仮想計算機構成情報を、第１の仮想計算機制御プログラムの制御の下で、第１及び第２の仮想計算機制御プログラム間でのオペレーティングシステムの移動命令に応じて、第１の実計算機上で動作する第１の仮想計算機制御プログラムから第２の実計算機上で動作する第２の仮想計算機制御プログラムに転送し、
第２の仮想計算機制御プログラムの制御の下で、前記仮想計算機構成情報に基づいて、前記第２の実計算機上に第２の仮想計算機を生成し、
前記第２の仮想計算機制御プログラムからの要求に応じて、前記第１の実計算機上の前記オペレーティングシステムの動作を抑止し、
前記オペレーティングシステムを再開するのに必要なレジスタ情報を、前記第１の仮想計算機制御プログラムの制御の下で、前記第１の仮想計算機制御プログラムから前記第２の仮想計算機制御プログラムヘ送り、
前記第２の仮想計算機制御プログラムの制御の下で、前記レジスタ情報を用いて、前記第２の仮想計算機上で、前記抑止のステップから、前記オペレーティングシステムの動作を再開し、且つ、
前記第２の仮想計算機制御プログラムは、前記仮想計算機構成情報を前記第１の仮想計算機制御プログラムから受け取って、前記第２の仮想計算機が前記第２の実計算機で生成できるかどうかを決定する、
ことを特徴とする仮想計算機システム間の仮想計算機移動制御方法。
【請求項２】
前記第１の仮想計算機制御プログラムは、前記レジスタ情報を前記第１の仮想計算機制御プログラムから前記第２の仮想計算機制御プログラムに送る前に、前記オペレーティングシステムの動作を抑止する、
ことを特徴とする請求項１記載の仮想計算機システム間の仮想計算機移動制御方法。
【請求項３】
前記第２の仮想計算機制御プログラムは、前記第２の実計算機の仮想計算機構成情報に応じて、前記第１の仮想計算機制御プログラムに対して、前記第２の仮想計算機を引き続いて生成させ、
前記第１の仮想計算機制御プログラムは、現在の入出力操作が完了し、その後前記入出力操作の要求を前記第２の仮想計算機制御プログラムに送るまで、入出力操作の要求を保持し、
前記第２の仮想計算機制御プログラムは、前記第１の仮想計算機制御プログラムからの前記入出力操作の要求に基づいて、入出力操作を再開し、
前記第２の仮想計算機制御プログラムは、前記第１の仮想計算機制御プログラムから前記仮想計算機構成情報を受け取って、前記第２の仮想計算機が前記第２の実計算機に生成できるかどうかを決定する、
ことを特徴とする請求項１記載の仮想計算機システム間の仮想計算機移動制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の実計算機で構成される疎結合マルチプロセッサシステムの仮想計算機システムに係り、特に、ある実計算機上の仮想計算機システム上で稼働中のオペレーティングシステム（仮想計算機）を、他の実計算機上の仮想計算機システムへ移動する制御方法に関する。
【０００２】
【従来の技術】
従来、図１に示すように、磁気ディスク装置１３１や磁気テープ装置１３２などの計算機資源１３を複数の実計算機１０，１１で共用し、実計算機１０，１１間が情報伝達手段１２で接続されている疎結合マルチプロセッサシステム（ＬＣＭＰ：Ｌoosely Ｃoupled Ｍultiprocessor）で、各々の実計算機１０，１１上で仮想計算機システムが動作するような仮想計算機システム構成において、仮想計算機システム間で仮想計算機制御プログラム（ＶＭＣＰ：Ｖirtual Ｍachine Ｃontrol Ｐrogram）１０１，１１２の制御下で情報伝達手段１２を通じて、他の実計算機内の仮想計算機システムに接続されたコンソール１４や、スプールファイル１５などへの入出力を行うことは実現されている。しかし、例えば仮想計算機システム１０（実計算機１０）上に仮想計算機（ＶＭ：Ｖirtual Ｍachine)１０２，１０３などを一旦生成すると、そのＶＭは生成した仮想計算機システム内で固定され、すなわち、ＶＭ１０２，１０３が実計算機１０に固定され、他の仮想計算機システム（実計算機１１）の例えばＶＭ１１３へ移動することができなかった。このため、稼働や運用上、次のような制約があった。
【０００３】
(１)  稼働ＶＭ数の増加や、ＶＭ上のオペレーティングシステム（ＯＳ）での主記憶装置、拡張記憶装置、命令プロセッサ（ＩＰ）、または入出力チャネルなどの計算機資源の使用率増加により、ＬＣＭＰ内の特定の実計算機に負荷が集中してＶＭ上のＯＳが十分なサービスを受けられない状態で、他の実計算機では計算機資源の使用率が低い場合でも、ＶＭが実計算機に固定されているため、計算機資源の使用率が低い他の実計算機資源を利用することはできない。
【０００４】
(２)  実計算機ハードウェアの保守等を目的として、ある実計算機を計画停止させる場合も、ＶＭが実計算機に固定されているため、停止させる実計算機のＶＭ上のＯＳの運用も停止しなければならない。
【０００５】
(３)  上記(１)、(２)の何れの場合も、他の実計算機の計算機資源を利用するには、ＯＳの運用を一旦停止して、他の実計算機にＶＭを生成してＯＳを再起動しなければならない。
【０００６】
【発明が解決しようとする課題】
従来技術では、一度生成したＶＭを、ＯＳ稼働中に他の実計算機で動作する仮想計算機システム上のＶＭに移動することはできなかった。ＶＭ上のＯＳが動作中に、他の実計算機で動作する仮想計算機システム上のＶＭに移動してＯＳの動作を継続するためには、以下の課題がある。
【０００７】
(１)  第１の課題は、移動元のＶＭ構成と移動先のＶＭ構成に関するものである。ＯＳでは、ＯＳの起動時にハードウェア構成を認識して、その構成情報を主記憶内に取り込み、管理している。そのため、ＶＭの実計算機間移動により、例えば図１でＶＭ１０３をＶＭ１１３に移動させる場合、移動元ＶＭ１０３と移動先ＶＭ１１３において、ＶＭの主記憶サイズ、ＶＭの拡張記憶サイズ、ＩＰ台数、及び入出力構成に違いがあると、移動元ＯＳ１０５が主記憶内に管理していたＶＭ上のハードウェア構成と、移動先ＯＳ１１５のＶＭハードウエア構成に違いが生じ、ＯＳ１１５の動作が保証されない問題がある。移動元ＶＭ１０３に割り当てられていたＬＣＭＰ内で共用している実計算機資源１３についても、移動先ＶＭ１１３において同一のものを割り当てる必要がある。
【０００８】
特に入出力構成に関しては、所謂拡張チャネルシステム（Ｅxtended ＣhannelＳystem：ＥＣＳ）の場合、チャネルと入出力装置（デバイス）との接続状態に関係なく、デバイスと１対１にサブチャネルが割り当てられており、プログラムは、デバイスに対応するサブチャネル番号と、図３に示すような動作要求ブロック（ＯＲＢ）３０を指定して入出力起動命令（Ｓtart Ｓubchannel：ＳＳＣＨ）を発行する。つまり、移動元ＶＭ１０３に割り当てられていたＬＣＭＰ内で共用している実計算機資源１３である入出力装置１３１、１３２について、移動先ＶＭ１１３においても同一のものを割り当てられているだけでなく、入出力装置に対応するサブチャネルの並びも同一でなければならない。また、プログラムからは、サブチャネル情報読み出し命令（Ｓtore Ｓubchannel：ＳＴＳＣＨ）で、図３に示すような各サブチャネルのパス管理制御語（ＰＭＣＷ）３１とサブチャネル状態語（ＳＣＳＷ）３２を読み出すことができ、パス管理制御語３１には、そのサブチャネルが使用する入出力装置までの入出力経路情報として、パス設定マスク（ＰＩＭ）、パス使用可能マスク（ＰＡＭ）、とチャネルの物理的なアドレスを示すＣＨＰＩＤ０〜ＣＨＰＩＤ７などが格納される。それら入出力経路情報も移動元ＶＭ１０３と移動先ＶＭ１１３で同一でなければならない。
【０００９】
(２)  第２の課題は、ＶＭ停止・再開始に関するものである。ＯＳが動作している間は、主記憶装置に代表される仮想資源を更新する可能性があり、ＯＳを動作させた状態のまま、他の計算機にその情報を移動することはできない。すなわち、ＶＭを移動させるためには一時的にＶＭの動作を停止して、転送後にＶＭを再開始する必要がある。ＶＭのプロセッサ資源、すなわち仮想命令プロセッサの停止・再起動は、当該ＶＭへの実命令プロセッサの割り当てを制御することで行うことができるが、命令プロセッサ動作とは非同期に動作している入出力動作にも主記憶を更新する可能性があり、その動作を停止する必要がある。しかし、実行中の非同期動作を強制的に停止すれば、その再起動は困難であり、どのように非同期動作を停止・再起動させるかが問題であった。
【００１０】
本発明の第１の目的は、複数の実計算機上の仮想計算機システム間において、あるＶＭ上で動作しているＯＳを他の実計算機のＶＭへの移動を可能として、実計算機間での計算機資源の有効利用を可能にすることである。本発明の第２の目的は、ＶＭの実計算機間の移動によりシステム運用の柔軟性を向上させることである。
【００１１】
【課題を解決するための手段】
上記の課題を解決するために、本発明では、各仮想計算機システムで実計算機資源に論理名称を付加する手段を設けて、各実計算機間で共用する計算機資源については、各仮想計算機システムで同一の論理名称を付与する。計算機資源に付与された論理名称は、各仮想計算機システム制御プログラム（ＶＭＣＰ）内で管理する。移動元の仮想計算機システムには、移動するＶＭのＶＭ構成情報として、その仮想資源構成情報と対応する実資源の論理名称を移動先の仮想計算機システムに転送する手段を設け、移動先の仮想計算機システムには、受信した論理名称にもとづき、移動元ＶＭと同一ＶＭ構成の生成可否を判断し、同一ＶＭ構成を生成する手段を設ける。さらに、移動元の仮想計算機システムには、移動するＶＭに割り当てた仮想資源の情報を読み出し送信する手段を設け、移動先の仮想計算機システムには、受信した仮想資源情報を当該ＶＭに格納し、ＶＭ動作を再開始する手段を設ける。これにより、ある計算機上のＶＭを他の計算機上に移動することが可能になる。
【００１２】
また、移動元の仮想計算機システムでは、仮想命令プロセッサと非同期に動作する非同期動作状態をＶＭＣＰ内に管理し、非同期動作状態を判断することでＶＭ転送開始可否を判断する手段を提供する。さらに、移動元の仮想計算機システムでは、ＯＳの発行する新たな非同期動作要求を保留して、これを非同期動作要求情報として転送する手段を設け、移動先の仮想計算機システムでは、該非同期動作要求情報を受信することで、保留された非同期動作要求の動作を再開始する手段を設ける。これにより、ＯＳで非同期動作要求を停止することなく他の計算機上に移動して動作させることが可能になる。
【００１３】
【発明の実施の形態】
以下、本発明の一実施例を図２乃至図１２により説明する。なお、ここでは、命令プロセッサ、主記憶装置、拡張記憶装置及び入出力装置などを、対象とする仮想資源としている。また、拡張チャネルシステム（ＥＣＳ）による入出力動作を、対象とする非同期動作としている。
【００１４】
図２は本発明の一実施例の仮想計算機システムを示すブロック図である。仮想計算機システム２０，２２の稼働に先立ち、仮想計算機システムのシステムゼネレーションで、ゼネレーション情報２４，２５に仮想計算機（ＶＭ）で使用する実計算機資源の構成定義２４２，２５２、及び各計算機資源に対応させた論理名称２４１，２５１を指定する。このとき実計算機間で共用する装置については、各仮想計算機システム２０，２２で同一の論理名称を指定する。この論理名称２４１，２５１により、各仮想計算機システム間２０、２２で共有している資源を認識可能にする。この論理名称と実計算機構成定義情報（２４１と２４２，２５１と２５２）は仮想計算機システム２０，２２が格納されている記憶媒体（システムボリーム）上に格納され、仮想計算機システム２０，２２の動作開始時に各ＶＭＣＰ内の実資源管理テーブル２０１，２２１の論理名称情報２０１２，２２１２に読み込まれ、管理される。
【００１５】
ＶＭ２０３，２０６やＶＭ２２６の生成（ログオン）処理では、仮想資源管理テーブル２０２，２２２にＶＭ構成情報２０２１，２２２１を生成して、あらかじめＶＭに対して定義されたＶＭディレクトリ情報に従い、仮想資源を占有または共有させることにより各ＶＭ２０３，２０６，２２６へ割り当てる。このＶＭへの割り当て状態は、仮想資源管理テーブル２０２，２２２のＶＭ割り当て情報２０２２、２２２２及び実資源管理テーブル２０１、２２１の割り当て情報２０１１，２２１１で管理される。
【００１６】
先に述べたように、ＥＣＳでは、入出力装置（デバイス）を１対１に対応するサブチャネルで扱い、計算機システム内でサブチャネル番号は０から昇順に割り当てられている。そのため、仮想計算機システムにおいても実サブチャネルの仮想化を行い、入出力装置の割り当て毎にサブチャネル番号０から順次割り当てている。仮想入出力装置の割り当て情報は、仮想資源管理テーブル２０２，２２２内に、図４の仮想サブチャネル管理テーブル４０に示す構成で、各仮想サブチャネルの情報を格納、管理している。図４において、仮想入出力装置のＶＭへの割り当て時、図３のパス管理制御語（ＰＭＣＷ）に相当する仮想ＰＭＣＷ情報４０１１の入出力パス情報（ＰＩＭ，ＰＡＭ，ＣＨＰＩＤ０〜ＣＨＰＩＤ７）には、対応する実サブチャネル情報を格納する。ＳＴＳＣＨ命令シミュレーションでは、仮想ＰＭＣＷ４０１１に格納されている内容をＶＭ主記憶に格納することで行う。なお、図２中の非同期動作管理テーブル２０７，２２７は、便宜上、仮想資源管理テーブル２０２，２２２内の仮想サブチャネルテーブル４０における非同期動作状態フラグ４０１２と非同期動作保留フラグ４０１４のみを抽出して示したものである。
【００１７】
図５は、本発明の一実施例のＶＭ移動制御を示す全体的フローチャートである。以下、図２に示す仮想計算機システム２０のＶＭ２０３上のＯＳ２０４を、他の仮想計算機システム２０のＶＭ２２３上にＯＳ２２４として移動する場合を例にして説明する。
【００１８】
〈移動ＶＭ構成の通知〉
仮想計算機システムを制御するシステムコンソールからＶＭ移動を指示するコマンドを投入するか、またはＶＭ上で動作しているＯＳからのＶＭ移動を指示するハンドシェイク命令を通じて、ＶＭ移動要求がＶＭ移動要求受付手段２１０に通知され、ＶＭ構成情報通知手段２１１に渡される。ＶＭ移動要求通知を受け取ると、ＶＭ構成通知手段２１１では、仮想資源管理テーブル２０２から、ＶＭ構成情報２０２１、仮想資源のＶＭ割り当て情報２０２２、及び、ＶＭ２０３に割り当てている仮想資源に対応する実資源の論理名称２０１２を読み出し、図６に示すようなＶＭ構成情報テーブル６０を作成して格納する。ここで、ＶＭ移動元とＶＭ移動先でのサブチャネル番号を同一にすることを目的として、該テーブル６０の仮想入出力装置構成情報６４には、図４の仮想サブチャネル管理テーブル４０を参照して、仮想サブチャネル番号順に、移動元ＶＭに割り当てられている入出力装置（仮想サブチャネル）の情報を格納する。
【００１９】
ＶＭ構成通知手段２１１は、当該ＶＭ構成情報テーブル６０を、実計算機間の情報伝達手段１２を通じて、他の仮想計算機システム２２に送信し、ＶＭ構成の生成を要求する（ステップ５０１）。
【００２０】
〈同一ＶＭ構成の生成〉
仮想計算機システム２２の同一構成生成可否判断手段２３１では、実計算機間の情報伝達手段１２を通じて、仮想計算機システム２０からのＶＭ構成情報テーブル６０を受信すると（ステップ５１１）、該ＶＭ構成情報テーブル６０と実資源管理テーブル２２１の情報から、同一ＶＭ構成を生成可能か否か判断する（ステップ５１２）。図７は、この同一ＶＭ構成生成可否判定の詳細フローチャートを示したもので、移動元ＶＭと同じ主記憶サイズ、拡張記憶サイズ、仮想プロセッサ台数を割り当てることができるか否か、さらに、移動元ＶＭの割り当てられていた仮想入出力装置が移動先の仮想計算機システム２２の計算機に構成されているか、あるいは、計算機に構成されているが、既に他のＶＭに占有して割り当てられているか、等を順次チェックして（ステップ７０１〜７０７）、同一ＶＭ構成生成が可能あるいは不可能を判定する（ステップ７０８，７０９）。
【００２１】
ここで留意すべき点は、同一入出力装置を割り当て可能かを判断するだけで、入出力経路に関する移動元ＶＭと移動先ＶＭ間での違いはＶＭＣＰが入出力経路の仮想化を行い吸収する。
【００２２】
同一ＶＭ構成の生成が可能と判断された場合、同一ＶＭ構成生成手段２３２では、仮想資源管理テーブル２２２に生成するＶＭ２２３のＶＭ構成情報を追加する。即ち、ステップ５１１で受信したＶＭ構成情報テーブル６０（図６）に格納されている移動元ＶＭ２０３の情報に従い、対応する移動先の計算機資源（主記憶、拡張記憶、命令プロセッサ、入出力装置）を割り当て、仮想資源管理テーブル２３２のＶＭ割り当て情報２２２２の更新、及び実資源管理テーブル２２１の割り当て情報２２１１を更新することで、移動元ＶＭ２０３と同一ＶＭ２２３の生成を行う（ステップ５１３）。
【００２３】
ここで、仮想入出力装置に対する仮想サブチャネル番号は、入出力装置のＶＭ割り当て毎に番号０から昇順に割り当てられるため、移動元ＶＭ２０３の入出力装置構成がサブチャネル番号順に格納されている仮想入出力装置構成情報６４
（図６）の順番に従い、入出力装置を移動先ＶＭ２２３に割り当てていくことで、サブチャネル番号を含めた、同一入出力構成を生成する。また、仮想資源管理テーブル２２２内には、仮想入出力装置の割り当て毎に、図４に示す仮想サブチャネル管理テーテーブルが生成され、そのテーブル内の仮想ＰＭＣＷ情報（デバイス番号、ＰＩＭ、ＰＡＭ、ＣＨＰＩＤ０〜ＣＨＰＩＤ７）には、仮想入出力装置情報６４に格納された値を格納する。これにより、ＯＳから見える入出力パス構成（ＳＴＳＣＨ命令で格納されるＰＭＣＷ内の情報）も同一構成にする。
【００２４】
なお、移動元ＶＭでの仮想入出力パス情報は、実サブチャネル情報の値を使用しているため実入出力経路情報と一致しているが、移動先ＶＭでの仮想入出力パス構成と実入出力パス構成とは必ずしも一致しない。この不一致が問題となるのは、入出力起動命令（ＳＳＣＨ）の入出力パス選択である。ＳＳＣＨ命令は、ＯＲＢ（図３）の論理パスマスク（ＬＰＭ）に指定されたパスマスクとパス設定マスク（ＰＩＭ）、パス使用可能マスク（ＰＡＭ）との論理積を取った値を選択パスマスク（ＳＰＭ）として、その結果（ＳＰＭ）が１となったビットに対応する入出力パスの中から入出力パスを選択して入出力動作の起動を行う。つまり、移動先ＶＭにおいて、ＯＳの入出力起動のＳＰＭに対応する実入出力パスが存在しない場合、移動元では正常終了していた入出力が移動先ＶＭでは入出力エラーとなる（入出力起動失敗：ＳＳＣＨ命令の結果の条件コード３、または入出力割込みで遅延条件コード３）。
【００２５】
このような移動元と移動先の実入出力パスの違いは、非同期動作要求シミュレーション手段２１６にて、ＳＳＣＨ命令シミュレーションを図９のように実行することで解決する。図９において、仮想の入出力パス構成内でＯＳが指定したＬＰＭから生成されるＳＰＭを仮想ＳＰＭと呼び、ＯＳの指定したＬＰＭ、仮想ＰＩＭ、仮想ＰＡＭの論理積として求める（ステップ９０１）。仮想ＳＰＭの値が０の場合、入出力起動失敗をシミュレーションする（ステップ９０２，９１５）。仮想ＳＰＭの値が１の場合、命令発行元ＶＭがＶＭ移動準備中でないと、実の入出力パス構成内のＳＰＭを実ＳＰＭと呼び、仮想ＳＰＭ、実ＰＩＭ、実ＰＡＭの論理積で求める（ステップ９０３，９０７）。そして、実ＳＰＭの値が０以外の場合、ＯＳが指定した入出力パスに対応する実入出力パスが存在するため、実ＬＰＭに実ＳＰＭの値をセットして実計算機に対してＳＳＣＨ命令を発行する
（ステップ９０８，９０９，９１１，９１２）。一方、実ＳＰＭの値が０の場合、ＯＳが指定した入出力パスに対応する実入出力パスが存在しないため、実ＰＩＭと実ＰＡＭの論理積値を実ＬＰＭにセットして（ステップ９１０）、実計算機に対してＳＳＣＨ命令を発行することで、入出力エラー（入出力起動失敗）となることを回避する（ステップ９１１，９１２）。ＳＳＣＨ命令を発行したなら、対象の仮想サブチャネル管理テーブル４０（図４）の非同期動作状態フラグを１にセットし、入出力起動成功をシミュレーションする（ステップ９１３，９１４）。なお、入出力起動成功時の入出力終了割込み処理を図１０に示す。
【００２６】
以上のようなＳＳＣＨ命令シミュレーションにより、移動元ＶＭと移動先ＶＭとで、サブチャネル番号、および入出力経路情報が同一なＶＭ構成を生成して、移動先においてＯＳの発行する入出力動作要求も正常に実行することが可能となる。
【００２７】
〈同一ＶＭ構成生成の応答〉
同一ＶＭ構成の生成後、仮想計算機システム２２では、実計算機間の情報通信手段１２を通じて、ＶＭ生成成功を移動要求元の仮想計算機システム２０に応答し、移動元ＶＭ２０３からの仮想資源情報の受信を待つことになる（ステップ５１４）。一方、同一構成のＶＭを生成できないと判断した場合、仮想計算機システム２２は、移動要求元の仮想計算機システム２０にＶＭ生成失敗を応答して、ＶＭ移動制御の実行を中断・終了させる（ステップ５１９）。移動元では、移動先からＶＭ生成失敗の応答を受信した場合、同一ＶＭ構成の生成に失敗したと判定して以後のＶＭ移動制御の実行を中断終了させる（ステップ５０２，５０３）。
【００２８】
以上により、異なったＶＭ構成を生成することなく、計算機間でのＶＭ構成（本例では、ＶＭ２０３と２２３）の同一性を保証することが可能となる。
【００２９】
〈非同期動作停止〉
入出力動作は、命令プロセッサとは非同期に行われ、入出力動作中は主記憶が更新される可能性があり、実行中の入出力動作の完了を待たずにＶＭの主記憶を他の実計算機のＶＭに移動した場合、移動元ＶＭと移動先ＶＭの主記憶の内容が異なる可能性がある。すなわち、非同期の入出力動作の完了を待たなければＶＭの移動を行うことはできない。
【００３０】
そこで、移動元仮想計算機システム２０では、移動先仮想計算機システム２２からＶＭ生成要求の応答を受信し（ステップ５０２）、同一ＶＭ構成の生成に成功したことを確認すると（ステップ５０３）、非同期動作要求シミュレーション手段２１６にてＯＳ２０４の発行する新たな非同期動作命令２０５の要求を保留するとともに（ステップ５０４）、ＶＭ停止可否判断手段２１５にて非同期動作である入出力動作が完了したことを確認する（ステップ５０５）。図８に、ＶＭ停止可否判断手段２１５での非同期動作停止状態の判断処理フローチャートを示す。また、図９のＳＳＣＨ命令シミュレーション中のステップ９０４〜９０６が、非同期動作要求シミュレーション手段２１６での新たな非同期動作命令要求の保留処理を示している。
【００３１】
仮想計算機システム２０のＶＭＣＰ内で管理される非同期動作管理テーブル２０７は、仮想入出力装置に対応して非同期動作状態情報２２７１と非同期動作要求保留情報２２７２を持ち、図４に示す仮想入出力装置に対応する仮想サブチャネル管理テーテーブル４０内の非同期動作状態フラグ４０１３、非同期動作保留フラグ４０１４と、非同期動作要求保留情報４０１５として管理される。図９に示す対象とする仮想サブチャネルに対する入出力起動（ＳＳＣＨ）命令のシミュレーションにおいて、実計算機に対して入出力起動命令を発行し入出力起動に成功した場合に、その値を１にセットする（ステップ９１３）。また、図１０に示すように、対象とする仮想装置の実計算機上での入出力動作が完了した場合に非同期動作状態フラグの値を０にリセットして（ステップ９２１）、ＶＭに入出力割込みシミュレーションを行う（ステップ９２２，９２３，９２４）。ＶＭ停止可否判断手段２１５では、図８に示すように、非同期動作である入出力動作が停止しているか否か、この非同期動作状態フラグの値を参照して非同期動作状態を判断する。すなわち、ＶＭ２０３の全仮想装置に対応する非同期動作状態フラグの値が０であれば、非同期動作が停止状態であると判断できる（ステップ８０１，８０２，８０３，８０４）。またＶＭ２０３の１台以上の仮想装置で入出力動作が行われていれば、非同期動作状態フラグの値が１の仮想装置があり、非同期動作中と判断できる（ステップ８０１，８０５）。
【００３２】
ここで、ＶＭ停止可否判断手段２１５だけで非同期動作の停止を待つ場合、非同期動作である入出力動作は、複数の入出力装置にたいして平行して動作可能であり、通常、ＯＳでは複数の入出力装置に対して入出力を起動しており、全ての入出力装置で入出力動作が行われていない状態の発生確率は非常に低くなる。そのため、非同期動作要求シミュレーション手段２１６では、ＯＳ２０４の発行する新たな非同期動作命令２０５の要求を保留して、非同期動作管理テーブル２０７内にその要求を保留することで非同期動作が行われていない状態を作り出す（ステップ５０４）。
【００３３】
具体的には、ＯＳの発行する非同期動作命令２０５である入出力起動命令を、ＶＭＣＰでの命令シミュレーション時にＶＭ移動準備中であれば、図３に示す入出力起動命令のオペランドである動作要求ブロック（ＯＲＢ）３０を非同期動作要求保留情報４０１５に格納して、非同期動作要求を保留中であることを示すフラグ、非同期動作保留フラグを１セットする。そして、図４に示す仮想サブチャネル管理テーブル４０の仮想ＳＣＳＷ情報４０１２のスタート保留を示すフラグを１セットすることで、入出力動作要求がＥＣＳ内に保留され、入出力動作が開始されていないスタート保留状態をシミュレーションする。
【００３４】
非同期動作要求シミュレーション手段２１６では、入出力起動命令を実計算機に対して発行せずに、入出力起動に成功した状態をシミュレーションして完了させる（ステップ９０３，９０４，９０５，９０６，９１４）。非同期動作保留フラグ４０１４、及び非同期動作要求保留情報４０１５は、ＶＭ移動後に他の実計算機上の仮想計算機システム２２で、入出力動作の再開始に利用される。
【００３５】
非同期動作要求シミュレーション２１６により非同期動作が保留・停止されて、ＶＭ停止可否判断２１５によりＶＭ停止可能と判断した場合、仮想資源情報の更新が行われないようにＶＭ停止手段２１４によりＶＭ２０３の停止を行う（ステップ５０６）。即ち、ＶＭ停止手段２１４では、移動元ＶＭ２０３の仮想プロセッサに対して実プロセッサ資源の割り当てを中止する。これにより、移動先と移動元の仮想資源情報の同一性を保証する。
【００３６】
〈ＶＭの移動・動作再開始〉
移動元の仮想計算機システム２０では、ＶＭ停止手段２１４によるＶＭ停止後、仮想資源情報読み出し送信手段２１３により、図１２に示すような仮想資源情報（主記憶、拡張記憶、命令プロセッサ、入出力装置、およびサブチャネルなど）を読み出し、実計算機間の情報伝達手段１２を通じて、ＶＭ移動先の仮想計算機システム２２に送信する（ステップ５０７）。ＶＭ移動先の仮想計算機システム２２では、仮想資源情報受信格納手段２３３により、受信した仮想資源情報を、既に同一ＶＭ構成生成手段２３２で割り当て済みの、各々対応する仮想資源内に格納する（ステップ５１５）。
【００３７】
引き続いて、移動元の仮想計算機システム２０の非同期動作管理情報送信手段２１７では、非同期動作要求を記憶保持している非同期動作管理テーブル２０７を非同期動作管理情報として、実計算機間の情報伝達手段１２を通じて、ＶＭ移動先の仮想計算機システム２２に送信する（ステップ５０８）。ＶＭ移動先の仮想計算機システム２２の非同期動作管理情報受信手段２３７では、受信した非同期動作管理情報を非同期動作管理テーブル２２７に格納する（ステップ５１６）。
【００３８】
以上により、仮想計算機システム間の情報伝達は完了する。その後、次のようにして、仮想計算機システム２０では、移動元ＶＭ２０３の後処理が行われ、仮想計算機システム２２では、移動先ＶＭ２２３の動作再開始を行う。
【００３９】
ＶＭ情報の転送が完了した移動元の仮想計算機システム２０では、ＶＭ構成消滅手段２１２によりＶＭ２０３を消滅させる（ステップ５０９）。具体的には、ＶＭ２０３に割り当てていた仮想資源に対応する実資源管理情報（２０１１）を未割り当て状態に更新して、仮想資源（主記憶、拡張記憶、命令プロセッサ、入出力装置）を解放する。このＶＭ（１０３）の消滅により、仮想計算機システム２０では、負荷が低減する。
【００４０】
一方、ＶＭ情報の転送が完了した移動先ＶＭ２２３では、保留していた非同期動作要求の動作、及び仮想命令プロセッサの動作を開始させることでＯＳの動作を継続させる（ステップ５１７，５１８）。図１１に非同期動作の再開始処理フローを示す。
【００４１】
非同期動作要求開始手段２３６では、移動元から転送された非同期動作管理テーブル内２２７の非同期動作要求を再開始させる。図４に示すように、非同期動作要求の保留状態は、非同期動作保留フラグ４０１４で管理しており、該非同期動作保留フラグが１にセットされている仮想入出力装置全てについて、非同期動作保留情報２２７２に格納されているＯＳが発行した入出力起動命令（ＳＳＣＨ）のＯＲＢ内のＣＣＷアドレスが示すチャネル制御語（ＣＣＷ）を仮想アドレスから実アドレスに変換して、実計算機に対して入出力起動命令を発行する（ステップ９３１，９３２，９３３，９３４，９３５，９３６，９３７）。移動先ＶＭでＣＣＷ仮想アドレスから実アドレスの変換を行うことで、移動元ＶＭと移動先ＶＭに割り当てられた主記憶上の位置（実アドレス）が異なっていてもＶＭの移動を可能にしている。これにより、移動元ＶＭ（１０３）で保留した非同期動作である入出力動作が、ＶＭ移動に伴い、移動先の仮想計算機システム内で実行可能となる。
【００４２】
次に、ＶＭ再開始手段２３４では、ＶＭ停止手段２１４により停止したＶＭを、移動先ＶＭ（１０３）の仮想プロセッサに対して実プロセッサ資源を割り当てることでＶＭの動作を再開始させる。
【００４３】
以上の制御により、ＯＳ上で非同期動作の停止、あるいはＯＳの運用停止等の操作を行わずに、ＶＭの移動指示により、他の実計算機のＶＭ上にＯＳを移動させ、ＯＳの動作を継続することが可能となる。
【００４４】
【発明の効果】
本発明によれば、複数の実計算機上に互いに仮想計算機システムを構築して動作する疎結合マルチプロセッサシステムにおいて、ある仮想計算機システム上で動作しているオペレーティングシステム（仮想計算機）を、他の実計算機の仮想計算機システム上の仮想計算機への移動を可能にすることで、計算機資源の有効利用が可能となる。また、実計算機ハードウェアの保守を目的とした実計算機の計画停止に備えて、仮想計算機の実計算機間移動を行うことでシステム運用の柔軟性を向上することができる。
【図面の簡単な説明】
【図１】疎結合マルチプロセッサ構成の仮想計算機システムの一般的ブロック図である。
【図２】本発明による仮想計算機システムの一実施例の概念を示す全体的ブロック図である。
【図３】本発明の一実施例で対象とする拡張チャネルシステムの入出力関連命令の制御ブロックを示す図である。
【図４】本発明の一実施例で対象とする仮想入出力装置に対応する仮想サブチャネルを管理するテーブルを示す図である。
【図５】本発明の一実施例のＶＭ移動制御を示す全体的フローチャートである。
【図６】本発明の一実施例の同一構成ＶＭを生成するために実計算機間で転送される情報テーブルを示す図である。
【図７】本発明の一実施例の同一構成ＶＭの生成可否を判定する論理を示すフローチャートである。
【図８】本発明の一実施例の移動ＶＭに関連する全ての非同期動作が停止したことを判定する論理を示すフローチャートである。
【図９】本発明の一実施例の入出力起動命令シミュレーションの論理を示すフローチャートである。
【図１０】本発明の一実施例の入出力割込みシミュレーションの論理を示すフローチャートである。
【図１１】本発明の一実施例の保留した非同期動作の再開始の論理を示すフローチャートである。
【図１２】本発明の一実施例の仮想計算機システム間で移動するＶＭ資源情報を示す図である。
【符号の説明】
２０，２２    仮想計算機システム
２４，２５    ゼネレーション情報
２０１，２２１  実資源管理テーブル
２０２，２２２  仮想資源管理テーブル
２０３，２２３  ＶＭ
２０７，２２７  非同期動作管理テーブル
２１１  ＶＭ構成情報通知手段
２１２  ＶＭ構成消滅手段
２１３  仮想資源情報読み出し送信手段
２１４  ＶＭ停止手段
２１５  ＶＭ停止可否判断手段
２１６  非同期動作要求シミュレーション手段
２１７  非同期動作管理情報送信手段
２３１  同一構成生成可否判断手段
２３２  同一ＶＭ構成生成手段
２３３  仮想資源情報受信格納手段
２３４  ＶＭ再開始手段
２３６  非同期動作要求再開始手段
２３７  非同期動作管理情報受信手段
【図１】
0003653159.tif 000002
【図２】
0003653159.tif 000003
【図３】
0003653159.tif 000004
【図４】
0003653159.tif 000005
【図５】
0003653159.tif 000006
【図６】
0003653159.tif 000007
【図７】
0003653159.tif 000008
【図８】
0003653159.tif 000009
【図９】
0003653159.tif 000010
【図１０】
0003653159.tif 000011
【図１１】
0003653159.tif 000012
【図１２】
0003653159.tif 000013