(57)【要約】【課題】ゲストＯＳにＩ／Ｏデバイスを直接割当てた際のゲストＯＳマイグレーションを迅速に行うことを目的とする。【解決手段】第１の物理計算機のＶＭＭがゲストＯＳを第２の物理計算機へ移動させる場合には、ゲストＯＳの稼働中にＶＭＭがゲストＯＳに割り当てた第１のメモリを第２の物理計算機の第２のメモリへコピーし、第１のメモリの状態を、コピー済み領域、コピー中領域、未コピー領域の何れかに分類してＩ／Ｏスイッチへ通知し、Ｉ／Ｏスイッチが、Ｉ／ＯデバイスからＤＭＡ書き込みＴｘを受信すると、ＤＭＡ書き込みＴｘの宛先アドレスと第１のメモリの分類情報とを比較し、ＤＭＡ書き込みＴｘのアドレスがコピー済み領域の場合はＤＭＡ書き込みＴｘを第１のメモリと第２のメモリに書き込み、ＤＭＡ書き込みＴｘのアドレスがコピー中領域または未コピー領域の場合には、第１のメモリのみに書き込みを行う。【選択図】図１
2010039685.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサと第１のメモリを備えた第１の物理計算機と、
前記第１の物理計算機の計算機資源を仮想化して第１の仮想計算機を実行する第１の仮想化部と、
第２のプロセッサと第２のメモリを備えた第２の物理計算機と、
前記第２の物理計算機の計算機資源を仮想化して第２の仮想計算機を実行する第２の仮想化部と、
前記第１の物理計算機及び第２の物理計算機とＩ／Ｏデバイスを接続するＩ／Ｏスイッチと、
前記第１の仮想化部は、前記第１の仮想計算機で実行される第１のＯＳを前記第２の仮想計算機へ移動させるマイグレーション制御部を備えた複合型計算機であって、
前記第１の仮想化部は、
前記マイグレーション制御部が前記第１のＯＳを前記第２の仮想計算機へ移動させる場合には、前記第１のＯＳの稼働中に当該第１の仮想化部が前記第１のＯＳに割り当てた第１のメモリの領域を、前記第２の物理計算機の第２のメモリへコピーするバックグラウンドコピー部を有し、
当該バックグラウンドコピー部は、
前記第１のメモリの状態を、前記第２のメモリへのコピーが完了したコピー済み領域と、前記第２のメモリへのコピーを実行中のコピー中領域と、前記第２のメモリへのコピーが未了の未コピー領域の何れかに分類して、当該分類したメモリ状態と第１のメモリのアドレスとを分類情報として前記Ｉ／Ｏスイッチへ通知し、
前記Ｉ／Ｏデバイスは、予め割り当てられた前記第１の物理計算機の第１のＯＳに割り当てられた第１のメモリとの間でＤＭＡアクセスを行い、
前記Ｉ／Ｏスイッチは、
前記第１のＯＳに割り当てた前記Ｉ／ＯデバイスからＤＭＡ書き込みトランザクションを受信した場合には、当該ＤＭＡ書き込みトランザクションの宛先アドレスと前記第１のメモリの前記分類情報のアドレスとを比較して、当該ＤＭＡ書き込みトランザクションのアドレスが前記コピー済み領域の場合は当該ＤＭＡ書き込みトランザクションを前記第１のメモリと前記第２のメモリの両方にＤＭＡ書き込みを行い、当該ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第１のメモリのみにＤＭＡ書き込みを行うＩ／Ｏ制御部を有することを特徴とする複合型計算機。
【請求項２】
請求項１に記載の複合型計算機において、
前記Ｉ／Ｏ制御部は、
前記第１のＯＳに割当てたＩ／ＯデバイスからのＤＭＡ書き込みトランザクションを受信した場合は、当該ＤＭＡ書き込みトランザクションの宛先アドレスと前記第１のメモリの前記分類情報のアドレスとを比較して、当該ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域の場合には、前記第１のメモリにＤＭＡ書き込みを行い、前記第１のメモリに予め設定したアドレス格納領域に当該ＤＭＡ書き込みトランザクションのアドレス情報を格納し、
前記第１の仮想化部は、
前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第１のメモリから第２のメモリにコピーを行うことを特徴とする複合型計算機。
【請求項３】
請求項２に記載の複合型計算機において、
前記第１の仮想化部は、
前記バックグラウンドコピー部の進捗状態として、前記第１のメモリを、前記コピー済み領域と、前記コピー中領域と、前記未コピー領域の何れかに分類し、前記コピー中領域のコピーが完了した場合には、当該コピー中領域をコピー済み領域に再分類し、前記未コピー領域の一部、または、全部を新たにコピー中領域に再分類して、前記Ｉ／Ｏスイッチに通知し、前記コピー中領域からコピー済み領域に再分類された第１のメモリから第２のメモリへコピーを行うことを特徴とする複合型計算機。
【請求項４】
請求項１に記載の複合型計算機において、
前記Ｉ／Ｏ制御部は、
前記第１のＯＳに割当てたＩ／ＯデバイスからのＤＭＡ書き込みトランザクションを受信した場合は、当該ＤＭＡ書き込みトランザクションの宛先アドレスを前記第１のＯＳのゲスト物理アドレスから第１の物理計算機のホスト物理アドレスに変換してから第１のメモリに書き込みを行い、前記第２のメモリにＤＭＡ書き込みを行う場合には当該ＤＭＡ書き込みトランザクションの宛先アドレスを第１のＯＳのゲスト物理アドレスから第２の物理計算機のホスト物理アドレスに変換して前記第２のメモリに書き込みを行うことを特徴とする複合型計算機。
【請求項５】
請求項１に記載の複合型計算機において、
前記第１の物理計算機は、前記Ｉ／Ｏスイッチと第１のプロセッサおよび第１のメモリとを接続する第１の制御ハブを有し、
前記第１の制御ハブは前記第１の仮想計算機の第１のＯＳのゲスト物理アドレスから物理計算機の対応するホスト物理アドレスに変換する第１のアドレス変換部を有し、
前記第２の物理計算機は、前記Ｉ／Ｏスイッチと第２のプロセッサおよび第２のメモリを接続する第２の制御ハブを有し、
前記第２の制御ハブは前記第２の仮想計算機に移動させる前記第１のＯＳのゲスト物理アドレスから第２の物理計算機のホスト物理アドレスに変換する第２のアドレス変換部を有し、
前記第１の制御ハブは、前記Ｉ／ＯスイッチからＤＭＡ書き込みを受け付けた場合には、前記第１の物理計算機の第１のアドレス変換部で当該ＤＭＡ書き込みのアドレスを第１のＯＳのゲスト物理アドレスから第１の物理計算機のホスト物理アドレスに変換して第１のメモリへ書き込みを行い、
前記第２の制御ハブは、前記Ｉ／ＯスイッチからＤＭＡ書き込みを受け付けた場合には、前記第２の物理計算機の第２のアドレス変換部で当該ＤＭＡ書き込みのアドレスを前記第１のＯＳのゲスト物理アドレスから第２の物理計算機のホスト物理アドレスに変換して第２のメモリへ書き込みを行うことを特徴とする複合型計算機。
【請求項６】
請求項１に記載の複合型計算機において、
前記複合型計算機の前記第１の物理計算機上で動作する第１のＯＳを前記第２の物理計算機に移動することを管理する管理計算機を有し、
前記管理計算機は、第１のＯＳの移動開始時に前記第１の仮想化部にマイグレーション構成情報として、移動元と移動先の物理計算機の識別子と、移動元と移動先の仮想計算機の識別子と、移動元と移動先のゲスト物理アドレスからホスト物理アドレスの変換情報と、第１のＯＳに割当てられているＩ／Ｏデバイスの識別子を通知することを特徴とする複合型計算機。
【請求項７】
第１のプロセッサと第１のメモリを備えた第１の物理計算機と、前記第１の物理計算機の計算機資源を仮想化して第１の仮想計算機を実行する第１の仮想化部と、第２のプロセッサと第２のメモリを備えた第２の物理計算機と、前記第２の物理計算機の計算機資源を仮想化して第２の仮想計算機を実行する第２の仮想化部と、前記第１の物理計算機及び第２の物理計算機とＩ／Ｏデバイスを接続するＩ／Ｏスイッチと、を備えた複合型計算機で前記第１の仮想化部が、前記第１の仮想計算機で実行される第１のＯＳを前記第２の仮想計算機へ移動させる複合型計算機の制御方法であって、
前記第１の仮想化部が前記第１のＯＳを前記第２の仮想計算機へ移動させる場合には、前記第１のＯＳの稼働中に当該第１の仮想化部が前記第１のＯＳに割り当てた第１のメモリの領域を、前記第２の物理計算機の第２のメモリへコピーするステップと、
前記第１の仮想化部が、前記第１のメモリの状態を、前記第２のメモリへのコピーが完了したコピー済み領域と、前記第２のメモリへのコピーを実行中のコピー中領域と、前記第２のメモリへのコピーが未了の未コピー領域の何れかに分類して、当該分類したメモリ状態と第１のメモリのアドレスとを分類情報として前記Ｉ／Ｏスイッチへ通知するステップと、
前記Ｉ／Ｏスイッチが、前記第１のＯＳに割り当てた前記Ｉ／ＯデバイスからＤＭＡ書き込みトランザクションを受信した場合には、当該ＤＭＡ書き込みトランザクションの宛先アドレスと前記第１のメモリの前記分類情報のアドレスとを比較するステップと、
前記Ｉ／Ｏスイッチが、前記比較の結果、前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー済み領域の場合は当該ＤＭＡ書き込みトランザクションを前記第１のメモリと前記第２のメモリの両方にＤＭＡ書き込みを行うステップと、
前記Ｉ／Ｏスイッチが、前記比較の結果、前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第１のメモリのみにＤＭＡ書き込みを行うステップと、
を含むことを特徴とする複合型計算機の制御方法。
【請求項８】
請求項７に記載の複合型計算機の制御方法において、
前記Ｉ／Ｏスイッチが、前記比較の結果、前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第１のメモリのみにＤＭＡ書き込みを行うステップは、
前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域の場合には、前記第１のメモリにＤＭＡ書き込みを行い、前記第１のメモリに予め設定したアドレス格納領域に当該ＤＭＡ書き込みトランザクションのアドレス情報を格納するステップと、
前記第１の仮想化部が、前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第１のメモリから第２のメモリにコピーを行うステップと、
を含むことを特徴とする複合型計算機の制御方法。
【請求項９】
請求項８に記載の複合型計算機の制御方法において、
前記第１の仮想化部が、前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第１のメモリから第２のメモリにコピーを行うステップは、
前記コピー中領域のコピーが完了した場合には、当該コピー中領域をコピー済み領域に再分類し、前記未コピー領域の一部、または、全部を新たにコピー中領域に再分類して、前記Ｉ／Ｏスイッチに通知し、前記コピー中領域からコピー済み領域に再分類された第１のメモリから第２のメモリへコピーを行うことを特徴とする複合型計算機の制御方法。
【請求項１０】
請求項７に記載の複合型計算機の制御方法において、
前記Ｉ／Ｏスイッチが、前記第１のＯＳに割当てたＩ／ＯデバイスからのＤＭＡ書き込みトランザクションを受信した場合は、当該ＤＭＡ書き込みトランザクションの宛先アドレスを前記第１のＯＳのゲスト物理アドレスから第１の物理計算機のホスト物理アドレスに変換してから第１のメモリに書き込みを行い、前記第２のメモリにＤＭＡ書き込みを行う場合には当該ＤＭＡ書き込みトランザクションの宛先アドレスを第１のＯＳのゲスト物理アドレスから第２の物理計算機のホスト物理アドレスに変換して前記第２のメモリに書き込みを行うことを特徴とする複合型計算機の制御方法。
【請求項１１】
請求項７に記載の複合型計算機の制御方法において、
前記第１の物理計算機は、前記Ｉ／Ｏスイッチと第１のプロセッサおよび第１のメモリとを接続する第１の制御ハブを有し、
前記第１の制御ハブは前記第１の仮想計算機の第１のＯＳのゲスト物理アドレスから物理計算機の対応するホスト物理アドレスに変換する第１のアドレス変換部を有し、
前記第２の物理計算機は、前記Ｉ／Ｏスイッチと第２のプロセッサおよび第２のメモリを接続する第２の制御ハブを有し、
前記第２の制御ハブは前記第２の仮想計算機に移動させる前記第１のＯＳのゲスト物理アドレスから第２の物理計算機のホスト物理アドレスに変換する第２のアドレス変換部を有し、
前記第１の制御ハブが、前記Ｉ／ＯスイッチからＤＭＡ書き込みを受け付けた場合には、前記第１の物理計算機の第１のアドレス変換部で当該ＤＭＡ書き込みのアドレスを第１のＯＳのゲスト物理アドレスから第１の物理計算機のホスト物理アドレスに変換して第１のメモリへ書き込みを行うステップと、
前記第２の制御ハブが、前記Ｉ／ＯスイッチからＤＭＡ書き込みを受け付けた場合には、前記第２の物理計算機の第２のアドレス変換部で当該ＤＭＡ書き込みのアドレスを前記第１のＯＳのゲスト物理アドレスから第２の物理計算機のホスト物理アドレスに変換して第２のメモリへ書き込みを行うステップと、
をさらに含むことを特徴とする複合型計算機の制御方法。
【請求項１２】
請求項７に記載の複合型計算機の制御方法において、
前記複合型計算機の前記第１の物理計算機上で動作する第１のＯＳを前記第２の物理計算機に移動することを管理する管理計算機をさらに有し、
前記管理計算機が、第１のＯＳの移動開始時に前記第１の仮想化部へマイグレーション構成情報として、移動元と移動先の物理計算機の識別子と、移動元と移動先の仮想計算機の識別子と、移動元と移動先のゲスト物理アドレスからホスト物理アドレスの変換情報と、第１のＯＳに割当てられているＩ／Ｏデバイスの識別子を通知するステップをさらに含むことを特徴とする複合型計算機の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つの計算機に複数の仮想計算機を構成し、それぞれの仮想計算機上でＯSを動作させる仮想サーバ技術に関し、特に仮想計算機上のＯＳを異なる計算機間で移動させる技術、すなわち、ゲストＯＳマイグレーション技術に関するものである。
【背景技術】
【０００２】
企業内のＩＴシステムは、業務毎の情報を処理するＡＰ（Application）サーバと、業務の情報を蓄積保存するＤＢ（Data Base）サーバ等の業務毎に様々なサーバから構成される。これらサーバにはＣＰＵ、メモリ、Ｉ／Ｏデバイス等から成る計算機が用いられている。上記のようにＩＴシステムは、多くのサーバから構成されるため１つの装置に複数の計算機を集約することが可能なブレードサーバが用いられている。この種のブレードサーバは、例えば、特許文献１が知られている。
【０００３】
近年、半導体技術の向上によりひとつのＣＰＵに複数のプロセッサコアを搭載するマルチコア化によるＣＰＵの処理性能を向上させることが行われている。ＣＰＵの処理性能向上に伴い、１台の計算機上に１つのＡＰサーバやＤＢサーバを動作させるだけだと、ＣＰＵの処理能力が余ってしまうケースがある。そのため、ＣＰＵの処理能力を効率的に使用するため１台の計算機に複数の仮想的な計算機を稼動させる仮想計算機技術が用いられるようになってきている。個々の仮想計算機上では、ＯＳとＡＰサーバやＤＢサーバのソフトウェアが動作し、１台の計算機に複数のＡＰサーバやＤＢサーバを集約することが可能である。
【０００４】
仮想化技術では、計算機上に仮想化ソフトウェア、いわゆる、仮想マシンモニタ（ＶＭＭ：Virtual Machine Monitor）を動作させ、仮想化ソフトウェア上に仮想計算機を生成する。個々の仮想計算機上では、それぞれ独立したＯＳを動作させることができる。ここで、仮想計算機上で動作するＯＳを非仮想化環境の計算機上で動作するＯＳと区別するためゲストＯＳと呼ぶ。仮想化技術では、ある計算機上の仮想計算機上で動作するゲストＯＳのＯＳイメージを、別の計算機上の仮想計算機上に移動し動作させるゲストＯＳマイグレーションという機能を提供する技術が知られている（例えば、非特許文献１）。このゲストＯＳマイグレーションを用いると、例えば、ゲストＯＳが動作する計算機を保守するために停止させたい場合に、ゲストＯＳを別の計算機に移動させることにより、ユーザの業務サーバを停止すること無しに、元の計算機を停止、保守することが可能となる。
【０００５】
業務として使う現用系とバックアップとして使う待機系とする従来型のシステムでは、現用系と待機系の両方にＯＳやソフトウェアのライセンスが必要に対して、ゲストＯＳマイグレーションでは１個のＯＳ及びソフトウェアのライセンスで済むため、ライセンス料の節約になる。そのためゲストＯＳマイグレーションは、ＩＴシステムの実運用においても徐々に使われるようになってきている。
【０００６】
一方、計算機では他の計算機とのネットワーク通信やストレージ装置の接続にＮＩＣ（Network Interface Card）やＦＣ−ＨＢＡ（Fiber Channel-Host Bus Adapter）等のＩ／Ｏデバイスが用いられるが、ブレードサーバ等では計算機（１枚のブレード）毎に必要なＩ／Ｏ数が異なるため、計算機に割当てるＩ／Ｏデバイス数を柔軟にする必要がある。このような問題を補う技術として、複数の計算機と複数のＩ／ＯデバイスであるＰＣＩ（Peripheral Component Interconnect）デバイスとを接続可能とするマルチルートＰＣＩスイッチ技術が知られている（例えば、非特許文献２）。この技術では、１つの計算機に接続可能なＰＣＩデバイスの個数をスケーラブルに変えることが可能である。
【特許文献１】特開２００２−３２１５３号
【非特許文献１】「Live Migration of Virtual Machines」、Christopher Clark 他著、NSDI'05:2nd Symposium on Networked Systems Design & Implementation発行。
【非特許文献２】「Advanced Switching Technology Tech Brief」、ＡＳＩ−ＳＩＧ発行
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のような仮想化技術において、Ｉ／ＯデバイスをゲストＯＳに割当てる方法には、一般的に、（１）物理Ｉ／Ｏデバイスを仮想化ソフトウェアが制御し、仮想化ソフトウェアが仮想的なＩ／ＯデバイスをゲストＯＳに提供する方法、と、（２）物理Ｉ／Ｏデバイスを仮想化ソフトウェアの制御無しに直接ゲストＯＳに割当てる方法、との２つの方法がある。
【０００８】
前者（１）の方法は、仮想Ｉ／Ｏデバイスを仮想化ソフトウェアが制御可能であるためゲストＯＳマイグレーションが容易に可能である反面、仮想化ソフトウェアの処理が必要なため性能が低下するという問題がある。逆に後者（２）の方法は、Ｉ／ＯデバイスをゲストＯＳに直接割当てるため、性能の低下がない反面、ゲストＯＳマイグレーションではＩ／Ｏデバイスを移動元の物理計算機から移動先の物理計算機に接続を変える必要があるため、Ｉ／Ｏデバイスが両計算機から物理的に接続されている必要がある。このＩ／Ｏデバイスを両計算機に接続するには、上記のマルチルートＩ／Ｏスイッチ技術を用いることで可能である。すなわち、ゲストＯＳマイグレーションの前後でマルチルートＩＯスイッチの設定を変更し、Ｉ／Ｏデバイスの接続先を移動元計算機から移動先計算機に変更すればよい。なお、上記非特許文献２では、上記（１）の方法のゲストＯＳマイグレーションについて記載されている。
【０００９】
ところが、上記のようなマルチルートＩ／Ｏスイッチ技術を用いたゲストＯＳマイグレーションでは、次のような問題点があることが本発明者により見出された。
【００１０】
業務に用いられるサーバでは、アプリケーション間の通信でのタイムアウト等を防ぐためゲストＯＳの停止時間を短くする必要がある。一方、ゲストＯＳマイグレーションでは、ゲストＯＳのメモリイメージを移動先の計算機上の仮想計算機のメモリ領域にコピーする必要がある。例えば、移動対象のゲストＯＳの割当てメモリサイズが５ＧＢのとき、標準的なインターフェースであるギガビットイーサネット（登録商標、以下同じ）でメモリイメージをコピーした場合は、メモリのコピーに最低でも４０秒かかることになる。ゲストＯＳの停止時にメモリコピーを行う場合、ゲストＯＳの停止時間が上記のケースでは４０秒以上かかることになり、業務向けサーバには許容できない停止時間である。そこで、ゲストＯＳの停止中にメモリコピーを行うのではなく、ゲストＯＳ動作中にメモリコピーを行い、ゲスト停止中は動作中にメモリコピーができなかった分の最小限のメモリコピーとし、ゲスト停止時間を短くする必要がある。このようなゲストＯＳ動作中のメモリコピーをバックグラウンドコピーと呼ぶ。バックグラウンドコピーでは、ゲストＯＳが動作しているためコピー済のメモリ領域にＣＰＵやＩ／Ｏからメモリの更新（Ｗｒｉｔｅ）があり、この更新分については再コピーする必要がある。そのため、メモリコピー用の移動元計算機と移動先計算機間のインターフェースのメモリコピー速度に対して、ゲストＯＳに割当てたＩ／Ｏデバイスのメモリ更新速度が大きいと、再コピーが必要なメモリサイズが小さくならないという課題がある。
【００１１】
スループットが大きいインターフェースは、一般的に高価なため計算機毎に搭載するのはコスト高となってしまう。スループットが大きいインターフェースとしては、例えば、１０ギガビットイーサネット、ＩｎｆｉｎｉＢａｎｄがある。また、上述の通りゲストＯＳの割当てメモリサイズが大きいほどコピー時間が掛かるため、メモリサイズが大きいほどコピー完了までの間に更新されるメモリ量が増加し、上記課題と同様に再コピーが必要なメモリサイズが小さくならないという課題がある。
【００１２】
そこで本発明では、上記（２）のゲストＯＳにＩ／Ｏデバイスを直接割当てた際のゲストＯＳマイグレーションのバックグランドコピーにおいて、上記の課題の解決のため、マルチルートＩ／Ｏスイッチに、コピー済み領域へのＩ／Ｏデバイスからの更新、いわゆる、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ（トランザクション）については、Ｔｘ（トランザクション、以下同様）を複製し、移動先の物理計算機上の移動先仮想計算機のメモリ領域にもＤＭＡ＿Ｗｒｉｔｅを実行して迅速なゲストＯＳマイグレーションを実現することを目的とする。
【００１３】
本発明の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
本発明は、第１のプロセッサと第１のメモリを備えた第１の物理計算機と、前記第１の物理計算機の計算機資源を仮想化して第１の仮想計算機を実行する第１の仮想化部と、第２のプロセッサと第２のメモリを備えた第２の物理計算機と、前記第２の物理計算機の計算機資源を仮想化して第２の仮想計算機を実行する第２の仮想化部と、前記第１の物理計算機及び第２の物理計算機とＩ／Ｏデバイスを接続するＩ／Ｏスイッチと、を備えた複合型計算機で前記第１の仮想化部が、前記第１の仮想計算機で実行される第１のＯＳを前記第２の仮想計算機へ移動させる複合型計算機の制御方法であって、前記第１の仮想化部が前記第１のＯＳを前記第２の仮想計算機へ移動させる場合には、前記第１のＯＳの稼働中に当該第１の仮想化部が第１のメモリを前記第１のＯＳに割り当てたメモリ領域を、前記第２の物理計算機の第２のメモリへコピーするステップと、前記第１の仮想化部が、前記第１のメモリの状態を、前記第２のメモリへのコピーが完了したコピー済み領域と、前記第２のメモリへのコピーを実行中のコピー中領域と、前記第２のメモリへのコピーが未了の未コピー領域の何れかに分類して、当該分類したメモリ状態と第１のメモリのアドレスとを分類情報として前記Ｉ／Ｏスイッチへ通知するステップと、前記Ｉ／Ｏスイッチが、前記第１のＯＳに割り当てた前記Ｉ／ＯデバイスからＤＭＡ書き込みトランザクションを受信した場合には、当該ＤＭＡ書き込みトランザクションの宛先アドレスと前記第１のメモリの前記分類情報のアドレスとを比較するステップと、前記Ｉ／Ｏスイッチが、前記比較の結果、前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー済み領域の場合は当該ＤＭＡ書き込みトランザクションを前記第１のメモリと前記第２のメモリの両方にＤＭＡ書き込みを行うステップと、前記Ｉ／Ｏスイッチが、前記比較の結果、前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第１のメモリのみにＤＭＡ書き込みを行うステップと、を含む。
【００１５】
また、前記Ｉ／Ｏスイッチが、前記比較の結果、前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第１のメモリのみにＤＭＡ書き込みを行うステップは、前記ＤＭＡ書き込みトランザクションのアドレスが前記コピー中領域の場合には、前記第１のメモリにＤＭＡ書き込みを行い、前記第１のメモリに予め設定したアドレス格納領域に当該ＤＭＡ書き込みトランザクションのアドレス情報を格納するステップと、前記第１の仮想化部が、前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第１のメモリから第２のメモリにコピーを行うステップと、を含む。
【発明の効果】
【００１６】
本発明により、バックグラウンドコピーを用いたゲストＯＳ（第１のＯＳ）マイグレーションにおいて、マイグレーション対象のゲストＯＳのメモリコピー用のインターフェースのスループットが低くても、ゲストＯＳの停止時に再コピーが必要なメモリのサイズを小さくすることができ、ゲストＯＳの停止時間を短くすることが可能である。
【００１７】
また、本発明により、バックグラウンドコピーを用いたゲストＯＳマイグレーションにおいて、ゲストＯＳに割当てたメモリサイズによらず、ゲストＯＳの停止時に再コピーが必要なメモリ領域のサイズを一定であり、ゲストＯＳに割当てたメモリサイズが大きくても再コピーが必要なメモリ領域のサイズを小さくすることができ、ゲストＯＳの停止時間を短くすることが可能である。
【００１８】
さらに、メモリコピーに用いるインターフェースの種類やゲストＯＳの割当てメモリサイズ等の計算機環境に依存せず、ゲストＯＳマイグレーション時のゲストＯＳの停止時間を確実に小さくすることが可能であり、ユーザ業務やアプリケーションサーバ等に与える影響を最小限にしてゲストＯＳマイグレーションを実施できる。また、ゲストＯＳマイグレーションの計算機環境の制約が緩和されるため、ゲストＯＳマイグレーションの用途を広げることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するために全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は原則として省略する。
【００２０】
先ず本発明の第１の実施の形態による複合型計算機の構成について説明する。図１は本発明の第１の実施の形態による複合型計算機のブロック図である。
【００２１】
図１に示すように、本実施の形態において複合型計算機は、１以上の物理計算機１０１１、１０１２と、複数の物理計算機１０１１、１０１２をＩ／Ｏデバイスに接続可能な１以上のマルチルートＩ／Ｏスイッチ１０２と、マルチルートＩ／Ｏスイッチ１０２に接続される１以上のＩ／Ｏデバイス１０３１、１０３２と、物理計算機１０１１、１０１２とマルチルートＩ／Ｏスイッチ１０２に接続された１以上の装置制御部１０４から構成される。
【００２２】
物理計算機１０１１、１０１２とＩ／Ｏデバイス１０３１、１０３２とは、Ｉ／Ｏインターフェース１５０によりマルチルートＩ／Ｏスイッチ１０２経由で接続される。また、装置制御部１０４と物理計算機１０１１、１０１２、マルチルートＩ／Ｏスイッチ１０２は、制御インターフェース１５３により接続される。複合型計算機の管理を行う管理者は、装置制御部１０４の管理用端末１０５により複合型計算機の管理を行う。管理用端末１０５は、管理インターフェース１５２により装置制御部１０４と接続される。
【００２３】
装置制御部１０４は、装置制御ソフトウェア１４０、マイグレーション管理ソフトウェア１４１、マイグレーション構成情報１４２から構成される。装置制御ソフトウェア１４０は、物理計算機１０１１、１０１２と、マルチルートＩ／Ｏスイッチ１０２の電源制御と、物理計算機１０１１、１０１２とＩ／Ｏデバイス１０３１、１０３２の接続についてマルチルートＩ／Ｏスイッチ１０２に設定する機能を持つ。
【００２４】
マイグレーション管理ソフトウェア１４１は、管理用端末１０５によりゲストＯＳマイグレーションの実行要求を受けて、物理計算機１０１１、１０１２の仮想マシンモニタ（ＶＭＭ）１２０１、１２０２から仮想計算機１２３１、１２３２、ゲストＯＳ  １２４１、１２４２の情報を取得し、マイグレーション構成情報１４２に保存する機能、ゲストＯＳマイグレーションの進捗を管理する機能を持つ。
【００２５】
物理計算機１０１１、１０１２は、ハードウェア構成要素１０６と、ハードウェア構成要素１０６上で動作する仮想マシンモニタ１２０１、１２０２と、仮想マシンモニタ１２０１、１２０２上で動作する仮想計算機１２３１、１２３２から構成される。
【００２６】
ハードウェア構成要素１０６は、１以上のＣＰＵ（プロセッサ）１０８と、１以上のチップセット（制御ハブ）１０７と、１以上のメモリ１０９１、１０９２と、１以上のゲストＯＳマイグレーションに用いるゲストＯＳのメモリコピー用のＩ／Ｏ１１０を備える。なお、チップセット１０７は、ＣＰＵ１０８とメモリ１０９１を接続するメモリコントロールハブの機能と、ＣＰＵ１０８とマルチルートＩ／Ｏスイッチ１０２のＩ／Ｏデバイス１３０１を接続するＩ／Ｏ制御ハブの機能を有する。なお、チップセット１０７はメモリコントロールハブとＩ／Ｏ制御ハブを分離して実装することができる。
【００２７】
仮想計算機１２３１、１２３２上では、それぞれゲストＯＳ１２４１、１２４２が動作する。このような複合型計算機において、ゲストＯＳマイグレーションは、移動元物理計算機１０１１から移動先物理計算機１０１２に、移動元ゲストＯＳ１２４１を移動先ゲストＯＳ１２４２に移動を行う。Ｉ／Ｏデバイス１０３１は移動対象のゲストＯＳ１２４２に直接割当てられていて、移動前は移動元ゲストＯＳ１２４１に割当てられ、移動後は移動先ゲストＯＳ１２４２に割当てが変更される。
【００２８】
移動元のメモリ１０９１は、少なくとも移動元ゲストＯＳ１２４１のメモリ領域（ゲストメモリ）１１１１と、仮想マシンモニタ１２０１が利用するメモリ領域（ＶＭＭ領域）１１２から成る。また、移動元ゲストＯＳ１２４１のメモリ領域１１１１の内容を複写する移動先のメモリ１０９２は、少なくとも移動先ゲストＯＳ１２４２のメモリ領域（ゲストメモリ）１１１２から成る。ゲストＯＳマイグレーション時は、移動元ゲストＯＳ１２４１が動作中に、移動元仮想マシンモニタ１２０１のバックグラウンドコピー制御部１２１の制御により、移動元ゲストＯＳ１２４１のメモリ領域１１１１を移動先ゲストＯＳ１２４１のメモリ領域１１１２にバックグラウンドコピー１６０を行う。このバックグランドコピー１６０は、メモリコピー用のインターフェース１１０により、インターフェース配線１５１経由で行われる。
【００２９】
移動元仮想マシンモニタ１２０１は、少なくとも、マイグレーション制御部１２２１とバックグランドコピー制御部１２１から構成される。移動先仮想マシンモニタ１２０２は、少なくとも、マイグレーション制御部１２２２から構成される。マイグレーション制御部１２２１、１２２２は、マイグレーション管理ソフトウェア１４１からの要求により、仮想計算機１２３１、１２３２の電源制御と、ゲストＯＳ１２４１、１２４２のスケジューリングの制御と、マルチルートＩ／Ｏスイッチ１０２の制御を行う。バックグランドコピー制御部１２１は、ゲストＯＳ１２４１のメモリ領域１１１１のコピーの進捗管理、インターフェース１１０経由のメモリコピーの制御を行う。
【００３０】
マルチルートＩ／Ｏスイッチ１０２は、物理計算機１０１１、１０１２を接続する１以上の上流Ｐｏｒｔ１３２と、Ｉ／Ｏデバイス１０３１，１０３２を接続する１以上の下流Ｐｏｒｔ１３３と、スイッチ回路部１３１、本発明のハードウェア機能を持つ下流ポートＩ／Ｏ制御部１３０から構成される。上流Ｐｏｒｔ１３２とスイッチ回路部１３１、スイッチ回路部１３１と下流ポートＩ／Ｏ制御部１３０、下流ポートＩ／Ｏ制御部１３０と下流Ｐｏｒｔ１３３は、それぞれＩ／Ｏスイッチ内インターフェース１５４で接続されている。
【００３１】
下流ポートＩ／Ｏ制御部１３０は、Ｉｎｂｏｕｎｄ＿Ｔｘ（インバウンドトランザクション）制御部１３４と、マイグレーションＴｘ制御部１＿１３５と、マイグレーションＴｘ制御部レジスタ１＿１３６から構成される。下流ポートＩ／Ｏ制御部１３０の各構成要素の機能については後述する。なお、以下の説明ではＴｘはトランザクションを意味する。また、Ｉｎｂｏｕｎｄ＿Ｔｘは、Ｉ／Ｏデバイスから物理計算機（または仮想計算機）へ向かうトランザクションを示す。
【００３２】
次に第１の実施の形態による複合型計算機が保持する情報について図２〜図５を用いて詳しく説明する。図２は第１の実施の形態による複合型計算機のマイグレーション構成情報の一例を示した説明図、図３は第１の実施の形態による複合型計算機のマイグレーション対象ゲストＯＳのホスト物理アドレス情報の一例を示した説明図、図４は第１の実施の形態による複合型計算機のマイグレーション対象のＩ／Ｏデバイス情報の一例を示した説明図、である。
【００３３】
装置制御部１０４で保持するマイグレーション構成情報１４２は、マイグレーション基本情報、マイグレーション対象ゲストＯＳのホスト物理アドレス情報、マイグレーション対象のＩ／Ｏデバイス情報から成る。マイグレーション基本情報は、表形式で表すと図２のＦＴ２に示すように、少なくとも、マイグレーションの移動元の情報Ｋ２０１として、物理計算機１０１１の識別子Ｇ２０１と、物理計算機１０１１で稼動する仮想計算機１２３１の識別子Ｇ２０２と、物理計算機１０１１に割当てた仮想Ｉ／Ｏスイッチ識別子Ｇ２０３と、マイグレーション対象のゲストＯＳ１２４１に直接割当てしたデバイスの有無を示す情報Ｇ２０４と、マイグレーションの移動先の情報Ｋ２０２として、移動先の物理計算機１０１２の識別子Ｇ２０１、移動先の仮想計算機１２３２の識別子Ｇ２０２、移動先の物理計算機１０１２に割当てた仮想Ｉ／Ｏスイッチ識別子Ｇ２０３、とから成る。なお、マルチルートＩ／Ｏスイッチ１０２では、複数の物理計算機でＩ／Ｏスイッチ共有するためにＩ／Ｏスイッチに内に物理計算機毎に仮想的なＩ／Ｏスイッチを構成するが、上記仮想Ｉ／Ｏスイッチ識別子Ｇ２０３とは、この仮想的なＩ／Ｏスイッチに対する識別子である。図２のマイグレーション基本情報ＦＴ２では、物理計算機１０１１の識別子Ｇ２０１が「１」、物理計算機１０１２の識別子Ｇ２０１が「２」、仮想計算機１２３１の識別子Ｇ２０２が「１」、仮想計算機１２３２の識別子Ｇ２０２が「４」、移動元の仮想Ｉ／Ｏスイッチ識別子Ｇ２０３が「３」、移動先の仮想Ｉ／Ｏスイッチ識別子Ｇ２０３が「５」の場合を示している。
【００３４】
マイグレーション管理ソフトウェア１４１は、物理計算機の識別子Ｇ２０１、仮想計算機の識別子Ｇ２０２の情報を、例えば、複合型計算機の管理者により管理用端末１０５経由の要求により取得し、仮想Ｉ／Ｏスイッチ識別子Ｇ２０３の情報を、例えば、装置制御ソフトウェア１４０から取得し、引継ぎデバイスの有無Ｇ２０４の情報を、例えば、移動元の仮想マシンモニタ１２０１から取得する。
【００３５】
マイグレーション対象ゲストＯＳのホスト物理アドレス情報は、表形式で表すと図３Ａ、３Ｂに示すように、移動元ゲストＯＳ１２４１のホスト物理アドレス情報ＦＴ３１と、移動先ゲストＯＳ１２４２のホスト物理アドレス情報ＦＴ３２となる。図３Ａ、３ＢではゲストＯＳ１２４１、１２４２に対するホスト物理メモリの割当ての情報を示しており、ゲストＯＳ１２４１、１２４２に割当てたメモリ領域のゲストＯＳが認識する物理アドレスの開始アドレスを示すゲスト物理アドレスＫ３０１と、ゲスト物理アドレスＫ３０１に対応する物理計算機の物理アドレスを示すホスト物理アドレスＫ３０２と、割当てたメモリ領域のサイズＫ３０３、の列で構成される。
【００３６】
一般的に、ゲストＯＳに割当てるホスト物理メモリは、不連続な複数のメモリ領域を割当て可能なため、ホスト物理アドレス情報は、割当てたメモリ領域の数分のゲスト物理アドレスＫ３０１、ホスト物理アドレスＫ３０２、メモリ領域のサイズＫ３０３の組をメモリ領域の数に応じて持つことになる。図３Ａ、図３Ｂの例では、移動元ゲストＯＳ１２４１についてはｎ個のメモリ領域を、移動先ゲストＯＳ１２４２についてはｍ個のメモリ領域を、割当てた場合の情報を示している。ゲストＯＳ１２４１、１２４２へのホスト物理メモリの割当ては、仮想マシンモニタ１２０１、１２０２が行うため、マイグレーション管理ソフトウェア１４１はホスト物理アドレス情報を仮想マシンモニタ１２０１、１２０２からゲスト物理アドレスＫ３０１とホスト物理アドレスＫ３０２及びサイズＫ３０３を取得する。
【００３７】
マイグレーション対象のＩ／Ｏデバイス情報は、表形式で表すと図４のＦＴ４に示すように、少なくとも、Ｉ／Ｏデバイスの識別子Ｋ４０１と、Ｉ／Ｏデバイスが接続されているＩ／Ｏスイッチの番号Ｋ４０２と、Ｉ／Ｏデバイスが接続されているＩ／ＯスイッチのＰｏｒｔの番号Ｋ４０３、の列で構成される。
【００３８】
ここで、例えば、Ｉ／ＯデバイスがＰＣＩ（Peripheral Component Interconnect）デバイスの場合は、Ｉ／Ｏデバイスの識別子は、Ｂｕｓ番号、Ｄｅｖｉｃｅ番号、ＦｕｎｃｔＩ／Ｏｎ番号から成る。図４のＧ４０１に示すＩ／Ｏデバイスの例では、Ｉ／Ｏデバイスの識別子Ｋ４０１が１５：０：０、Ｉ／Ｏスイッチの番号Ｋ４０２が１、Ｐｏｒｔ番号Ｋ４０３が３、の場合を示している。
【００３９】
マイグレーション対象のＩ／Ｏデバイスの識別子Ｋ４０１は移動元の仮想マシンモニタ１２０１が保持しているので、マイグレーション管理ソフトウェア１４１はＩ／Ｏデバイスの識別子Ｋ４０１を仮想マシンモニタ１２０１から取得する。また、Ｉ／Ｏデバイスが接続されたスイッチ番号Ｋ４０２とＰｏｒｔ番号Ｋ４０３は、装置制御ソフトウェア１４０が保持しているので、マイグレーション管理ソフトウェア１４１はスイッチ番号Ｋ４０２とＰｏｒｔ番号Ｋ４０３を装置制御ソフトウェア１４０から取得する。以上、複合型計算機が保持する情報についての説明である。
【００４０】
次に第１の実施の形態による複合型計算機のバックグランドコピーについて図１、図５を用いて詳しく説明する。図５は第１の実施の形態による複合型計算機のバックグラウンドコピー時の移動元ゲストＯＳのメモリ空間の一例を示した説明図である。
【００４１】
移動元の物理計算機１０１１で稼動する仮想マシンモニタ１２０１では、バックグラウンドコピー時にバックグランドコピー制御部１２１が、移動元ゲストＯＳ１２４１のゲストメモリ１１１１を複数のメモリ領域に分割して、図５に示すバックグラウンドコピーの１フェーズでは上記分割したメモリ領域の１つ分のコピーを行い、分割したメモリ領域をすべて移動先ゲストメモリ１１１２へコピーするまで上記フェーズを繰り返す。
【００４２】
図５の例では、バックグラウンドコピーのＮフェーズ目１１１１１とＮ＋１フェーズ目１１１１２の移動元ゲストＯＳ１２４１のゲストメモリ１１１１の状態を示している。図５に示すように、バックグランドコピー制御部１２１は、フェーズ毎に、（１）コピー済領域５０１１、５０１２、（２）コピー中領域５０２１、５０２２、（３）未コピー領域５０３１、５０３２、の３つの領域に分けて管理する。
【００４３】
図５においてＧＰＡ＿ＭＡＸはゲストメモリ１１１１の最大アドレスである。ＧＰＡ１＿Ｎ、ＧＰＡ２＿Ｎは、それぞれＮフェーズ目のコピー中領域５０２１の領域を示す最小アドレス、最大アドレスである。ＧＰＡ１＿Ｎ＋１、ＧＰＡ２＿Ｎ＋１は、それぞれＮ＋１フェーズ目のコピー中領域５０２２の領域を示す最小アドレス、最大アドレスである。なお、図５の例では、簡単のため（１）〜（３）の各領域とも連続したメモリ領域となっているが、一般的に不連続なメモリ領域としても良い。
【００４４】
バックグラウンドコピー制御部１２１は、Ｎフェーズ目に（１）〜（３）の領域５０１１、５０２１、５０３１を、図１に示すコンフィグレーションインターフェース１６１経由でＩ／Ｏスイッチ１０２のマイグレーション対象のＩ／Ｏデバイス１０３１が接続された下流ポートＩ／Ｏ制御部１３０のマイグレーションＴｘ制御部レジスタ１＿１３６に設定する。なお、マイグレーション対象のＩ／Ｏデバイス１０３１の位置の情報はマイグレーション構成情報に保持されているので、バックグラウンドコピー制御部１２１はマイグレーション管理ソフトウェア１４１からＩ／Ｏデバイス１０３１の位置の情報を取得する。また、バックグランドコピー制御部１２１は、ゲストメモリ１１１１のメモリ領域を分割するに当たって、所定のサイズ単位やアドレスが連続する領域単位など周知の手法を用いることができる。
【００４５】
次にバックグランドコピーのＮフェーズ目の下流ポートＩ／Ｏ制御部１３０の制御について説明する。
【００４６】
下流ポートＩ／Ｏ制御部１３０がＩ／Ｏデバイス１０３１からＩｎｂｏｕｎｄ＿Ｔｘ１６２を受信した場合は、図１において、Ｉｎｂｏｕｎｄ＿Ｔｘ制御部１３４経由でＴｘの転送１６３が行われる。Ｉｎｂｏｕｎｄ＿Ｔｘがマイグレーション対象のゲストＯＳ１２４１向けのＤＭＡ＿Ｔｘの場合は、Ｔｘのアドレスをゲスト物理アドレスからホスト物理アドレスに変換して移動元ＯＳのゲストメモリ１１１１にＤＭＡアクセス１６３が行われる。
【００４７】
このＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４の通常のＩｎｂｏｕｎｄ＿Ｔｘの転送処理（１６３）に加え、マイグレーション対象のゲストＯＳ１２４１向けのＤＭＡ＿Ｔｘの場合はマイグレーションＴｘ制御部１＿１３５が以下の処理を行う。
【００４８】
Ｉｎｂｏｕｎｄ＿Ｔｘ１６２がＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの場合で、宛先アドレスが図５に示した（１）コピー済領域５０１１の場合は、マイグレーションＴｘ制御部１＿１３５でＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを複製して、移動先ＯＳのゲストメモリ１１１２に複製したＤＭＡ＿Ｗｒｉｔｅ＿ＴｘのＤＭＡ＿Ｗｒｉｔｅ１６５を行う。
【００４９】
従来例では、（１）コピー済領域５０１１へのＤＭＡ＿Ｗｒｉｔｅがある場合は移動元のメモリが更新されるため移動先のゲストメモリ１１１２は再コピーが必要であるのに対し、本発明によれば移動元へのＤＭＡ＿Ｗｒｉｔｅが発生しても、移動先のゲストメモリ１１１２が移動元のゲストメモリ１１１１と同時に更新されるため再コピーを不要にすることができる。
【００５０】
一方、Ｉｎｂｏｕｎｄ＿Ｔｘ１６２がＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの場合で、宛先アドレスが（２）コピー中領域５０１２の場合は、バックグラウンドコピーとＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘによるメモリ更新が同時に行われるため、上記（１）コピー済領域５０１１の場合のように、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを複製して移動先ＯＳのゲストメモリ１１１２にＤＭＡ＿Ｗｒｉｔｅ１６５を行った場合に、ＤＭＡ＿Ｗｒｉｔｅ１６５とバックグランドコピー１６０のメモリ更新順序が保証できない。
【００５１】
そこで、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスが（２）コピー中領域５０１２の場合は、仮想マシンモニタ１２０１のメモリ領域（ＶＭＭ領域）１１２内のアドレスリストバッファ１１３に、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスをリストとして記録１６４を行っておく。コピー中領域５０１２の複製が完了した後、仮想マシンモニタ１２０１のマイグレーション制御部１２２１が、このアドレスリストバッファ１１３に保存されたメモリ領域について、移動先ゲストメモリ１１１２へ再コピーを行う。これにより、コピー中領域５０２１の内容を、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘによる移動元ゲストメモリ１１１１の更新と同一の内容を移動先ゲストメモリ１１１２へ適用することができる。
【００５２】
なお、Ｉｎｂｏｕｎｄ＿Ｔｘ１６２がＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの場合で、宛先アドレスが（３）未コピー領域５０１３の場合は、以降のバックグラウンドコピーのフェーズでコピーが実行されるため、マイグレーションＴｘ制御部１＿１３５では処理は行わず、Ｉｎｂｏｕｎｄ＿Ｔｘ制御部１３４の通常のＩｎｂｏｕｎｄ＿Ｔｘの転送処理のみが行われる。
【００５３】
移動先のゲストメモリ１１１２でＤＭＡ転送により再コピーが必要なメモリ領域のサイズは、本発明により、
ＭＳ１／ＭＳｔ                      （式１）
のサイズに減らすことが可能である。ここで、ＭＳ１は１フェーズでコピーするメモリサイズ（Ｇbyte）、ＭＳｔは移動元ゲストＯＳの全メモリサイズ、である。例えば、移動元ゲストＯＳの全メモリサイズが５ＧＢで、１フェーズでコピーするメモリサイズが１００ＭＢの時は、再コピーが必要なメモリサイズを１／５０に大幅に減らすことが可能である。また、本発明での再コピーが必要なメモリサイズは、次式で表される。
ＵＲｉ×ＭＳｔ／Ｖｃ×ＭＳ１／ＭＳｔ＝ＵＲｉ×ＭＳ１／Ｖｃ    （式２）
となる。ここで、ＵＲｉはＩ／ＯデバイスがゲストＯＳのメモリ領域１１１１をＤＭＡ＿Ｗｒｉｔｅで転送するメモリ更新速度（例えば、ＭＢ／ｓｅｃ）で、Ｖｃはバックグラウンドコピーのコピーの速度（例えば、ＭＢ／ｓｅｃ）である。上記式２から、再コピーが必要なメモリサイズはゲストＯＳの全メモリサイズＭＳｔに依存しないことが分かる。従って、ゲストＯＳ１２４１の停止時に再コピーが必要なメモリコピーを行う場合に、本発明によりゲストＯＳの全メモリサイズに依存しないでゲストＯＳ１２４１の停止時間を一定にすることが可能である。
【００５４】
次に第１の実施の形態による複合型計算機のアドレスリストバッファ１１３について図６を用いて詳しく説明する。図６は第１の実施の形態による複合型計算機のバックグラウンドコピー時に生成されるアドレスリストバッファの一例を示した説明図である。図６の例では、図１のアドレスリストバッファ１１３は、Ａ、Ｂの２面のアドレスリストバッファ１１３１、１１３２から構成される。このように２面のアドレスリストバッファ１１３１、１１３２を持つのは、ゲストＯＳマイグレーションのバックグランドコピー時に、アドレスリストバッファ１１３はマイグレーションＴｘ制御部１＿１３５からの書込み６０２と仮想マシンモニタ１２０１からの読込み６０３が同時に行われ、バッファのクリア時にマイグレーションＴｘ制御部１＿１３５からの書込み漏れを防ぐためである。すなわち、図６の例ではアドレスリストバッファＡ１１３１をマイグレーションＴｘ制御部１＿１３５からの書込み６０２用、アドレスリストバッファＡ１１３２を仮想マシンモニタ１２０１からの読込み６０３用とし、仮想マシンモニタ１２０１からの読込み６０３が完了したら、アドレスリストバッファＡ／Ｂを入れ替えて、アドレスリストバッファＡ１１３１を読込み６０３用、アドレスリストバッファＢ１１３２を書込み用６０２として使用する。図６の例では、アドレスリストバッファ１１３１、１１３２は、１エントリ６０１が８Ｂ（Ｂｙｔｅ）のリスト構造を示している。ここで各エントリを８Ｂとしたのは、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスが６４ｂｉｔであることを想定したためで、宛先アドレスを示すのに必要なｂｉｔ数が変われば、１エントリのサイズは適宜変更することができる。アドレスリストバッファＡ／Ｂの切換えは、仮想マシンモニタ１２０１がコンフィグレーションインターフェース６０４を介してマイグレーションＴｘ制御部１＿１３５に指令する。
【００５５】
なお、図６の例ではアドレスリストバッファ１１３にＡ／Ｂの２面を用いたが、他の実施形態としてリングバッファ１面のような構造でも良い。
【００５６】
次に第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０について図７〜図１３を用いて詳しく説明する。図７は第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０の回路の一例を示したブロック図、図８は第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０のアドレスリスト記録制御レジスタ７１１の一例を示した説明図、図９は第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０の移動元アドレス情報レジスタ７１２の一例を示した説明図、図１０は第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０の移動先アドレス情報レジスタ７１３の一例を示した説明図、図１１は第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０のアドレス領域設定レジスタ７１５の一例を示した説明図、図１２は第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０のマイグレーションＴｘ制御有効レジスタ７１６の一例を示した説明図、図１３は第１の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部の移動対象デバイス設定レジスタ７１７の一例を示した説明図、である。
【００５７】
図７に示すように、下流ポートＩ／Ｏ制御部１３０は、Ｉｎｂｏｕｎｄ＿Ｔｘ制御部１３４、マイグレーションＴｘ制御部１＿１３５、マイグレーションＴｘ制御部レジスタ１＿１３６、とＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４、マイグレーションＴｘ制御部１＿１３５からのＴｘ間の調停を行い上流（物理計算機側）に転送する調停回路７０１から構成される。マイグレーションＴｘ制御部レジスタ１＿１３６は、レジスタ群７１１〜７１７から構成される。
【００５８】
アドレスリスト記録制御レジスタ７１１は、図８に示すように、ＤＭＡ＿Ｗｒｉｔｅ＿ＴｘのＴｘの宛先アドレスを記録するアドレスリスト保存バッファＡ／Ｂの領域を示すレジスタ８０１、８０２と、下流ポートＩ／Ｏ制御部１３０からアドレスリストを書き込むバッファＡ／Ｂを指定するレジスタ８０３と、Ｔｘの宛先アドレスが先にアドレスリストを記録した宛先アドレスと近い場合にアドレスリストの記録を抑止することを指定する連続アドレスのリスト記録抑止指定レジスタ８０４と、アドレスリストの記録を抑止する宛先アドレスのアドレス範囲を示す連続アドレスサイズの指定レジスタ８０５とから構成される。一般に、ＤＭＡアクセスはメモリの連続領域へのアクセスが多いため、上記連続アドレスのリスト記録抑止することにより、アドレスリスト保存バッファへの記録量を減らすことが可能である。すなわち、アドレスリストバッファ１１３のために確保するメモリ量を減らすことが可能である。
【００５９】
移動元アドレス情報レジスタ７１２は、図９に示すように、ｎ個のメモリ領域に対する、移動元ゲストＯＳ１２４１のメモリ領域ｎの開始ゲスト物理アドレスを指定するレジスタ９０１１〜９０１ｎ、移動元ゲストＯＳ１２４１のメモリ領域ｎのサイズを指定するレジスタ９０２１〜９０２ｎ、移動元ゲストＯＳ１２４１のメモリ領域ｎに対応する開始ホスト物理アドレス（オフセット）を指定するレジスタ９０３１〜９０３ｎ、から構成される。
【００６０】
移動元アドレス情報レジスタ７１２に設定される情報は、マイグレーション構成情報１４２のマイグレーション対象ゲストＯＳのホスト物理アドレス情報で、図３ＡのＦＴ３１に示した情報である。移動元の物理計算機１０１１のマイグレーション制御部１２２１は、マイグレーション管理ソフトウェア１４１からマイグレーション対象ゲストＯＳのホスト物理アドレス情報を取得し、この移動元アドレス情報レジスタ７１２にアドレス情報の設定を行う。
【００６１】
移動先アドレス情報レジスタ７１３は、上記移動元アドレスリスト記録制御レジスタ７１１と似たようなレジスタであるが、図１０に示すように、ｍ個のメモリ領域に対する、移動先ゲストＯＳ１２４２のメモリ領域ｍの開始ゲスト物理アドレスを指定するレジスタ１００１１〜１００１ｍ、移動先ゲストＯＳ１２４２のメモリ領域ｍのサイズを指定するレジスタ１００２１〜１００２ｍ、移動先ゲストＯＳ１２４２のメモリ領域ｍに対応する開始ホスト物理アドレス（オフセット）を指定するレジスタ１００３１〜１００３ｍ、から構成される。
【００６２】
移動先アドレス情報レジスタ７１３に設定される情報は、マイグレーション構成情報１４２のマイグレーション対象ゲストＯＳのホスト物理アドレス情報で、図３ＢのＦＴ３２に示した情報である。マイグレーション制御部１２２１は、マイグレーション管理ソフトウェア１４１からマイグレーション対象ゲストＯＳのホスト物理アドレス情報を取得し、この移動先アドレス情報レジスタ７１３にアドレス情報の設定を行う。
【００６３】
移動先物理計算機情報レジスタ７１４は、移動先の物理計算機１０１２を指定するもので、例えば、物理計算機１０１２に割当てた仮想Ｉ／Ｏスイッチの識別子で指定する。これは、マイグレーション構成情報１４２のマイグレーション基本情報、すなわち、図２の移動先Ｋ２０２の仮想Ｉ／Ｏスイッチの識別子Ｇ２０３に示した情報である。
【００６４】
マイグレーション制御部１２２１は、マイグレーション管理ソフトウェア１４１からマイグレーション基本情報を取得し、移動先物理計算機情報レジスタ７１４に移動先の物理計算機の設定を行う。
【００６５】
アドレス領域設定レジスタ７１５は、図１１に示すように、図５で述べたバックグランドコピー時の（１）コピー済領域と（２）コピー中領域とを指定するレジスタである。図１１の例では、（２）コピー中領域としてＰ個のメモリ領域を指定するレジスタ１１０１１〜１１０１Ｐ、（１）コピー済領域としてＱ個のメモリ領域を指定するレジスタ１１０２１〜１１０２Ｑから構成される。図５で述べたとおり、バックグラウンドコピーのフェーズによって（１）コピー済領域と（２）コピー中領域の量（または数）が変化するので、バックグラウンドコピー制御部１２１は、フェーズ毎にアドレス領域設定レジスタ７１５を再設定する。
【００６６】
マイグレーションＴｘ制御有効レジスタ７１６は、図１２に示すように、マイグレーションＴｘ制御部１＿１３５の機能であるアドレスリスト記録を有効にする指定を行うレジスタ１２００１とＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製を有効にする指定を行うレジスタ１２００２、から構成される。マイグレーションＴｘ制御有効レジスタ７１６は、ゲストＯＳマイグレーション開始時に、マイグレーション制御部１２２１により設定される。
【００６７】
対象デバイス設定レジスタ７１７は、図１３に示すように、下流ポートＩ／Ｏ制御部１３０の下流側（Ｉ／Ｏデバイス側）に接続されたＩ／Ｏデバイス１０３１が持つＫ個のＩ／Ｏデバイス機能に対して、デバイスＩＤを指定するレジスタ１３０１１〜１３０１Ｋと、該当デバイスＩＤがマイグレーション対象のゲストＯＳ１２４１に直接割当てられているかを指定するレジスタ１３０２１〜１３０２Ｋとから構成される。
【００６８】
複数のＩ／Ｏデバイス機能を持つＩ／Ｏデバイスの例として、ＰＣＩデバイスにおける、マルチファンクションデバイス、マルチＰｏｒｔデバイス、ＰＣＩ−ＳＩＧのＳＲ−Ｉ／ＯＶ（Single Root - I／O Virtualization）、または、ＭＲ−Ｉ／ＯＶ（Multi Root - I/O Virtualization）対応デバイス等がある。
【００６９】
対象デバイス設定レジスタ７１７に設定される情報は、マイグレーション構成情報１４２のマイグレーション対象のＩ／Ｏデバイス情報で、図４のＦＴ４に示した情報である。マイグレーション制御部１２２１は、マイグレーション管理ソフトウェア１４１からマイグレーション対象のＩ／Ｏデバイス情報を取得し、対象デバイス設定レジスタ７１７に取得したデバイス情報の設定を行う。上記マイグレーションＴｘ制御レジスタ部１＿１３６のレジスタは、図７に示す制御Ｉ／Ｆ７３６経由でソフトウェアにより制御される。
【００７０】
次に、図７のＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４の構成について説明する。下流側から受信したＩ／Ｏデバイスのトランザクションとして、Ｉ／Ｏデバイス１０３１からＣＰＵ１０８向きのＩｎｂｏｕｎｄ＿Ｔｘ７２０は、ＴＬＰデコーダ７０３でＴｘのＴＬＰ（Transaction Layer Packet）ヘッダ７２１が解析されＴｘ種類７２２が判定される。Ｔｘ種７２２としては、例えば、Memory Read／Write Request、Message Request、Completion等がある。ＤＭＡ＿Ｔｘ７２３は、移動元ゲストアドレス変換部７０４で、移動元アドレス情報レジスタ７１２の情報７４２によりＴｘの宛先アドレスが移動元ゲストＯＳ１２４１のゲスト物理アドレスから物理計算機１０１１のホスト物理アドレスに変換されたＴｘ７２４が生成され、選択回路７０２によりＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４の出力Ｉｎｂｏｕｎｄ＿Ｔｘ７２５として出力され、さらに調停回路７０１を経由して上流７２６に転送される。
【００７１】
ＤＭＡ＿Ｔｘ以外のＴｘについてはＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４をスルーして、選択回路７０２によりＩｎｂｏｕｎｄ＿Ｔｘ制御部の出力Ｉｎｂｏｕｎｄ＿Ｔｘ７２５として、さらに調停回路７０１を経由して上流７２６に転送される。
【００７２】
次に、図７のマイグレーションＴｘ制御部１＿１３５の構成について説明する。マルチルートＩ／Ｏスイッチ１０２の下流側から受信したＩｎｂｏｕｎｄ＿Ｔｘ７２０は、移動対象デバイス判定部７０５でＴｘのＴＬＰヘッダ７２７が解析されＴＬＰの種類がＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘであるかと、移動対象デバイス設定レジスタ７１７の情報７４７を基に、マイグレーションＴｘ制御が有効なＴｘであるかが判定７２９される。マイグレーション有効判定７２９は、機能選択回路７０６によりマイグレーションＴｘ制御有効レジスタ７１６の情報７４６を基にアドレスリスト記録とＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製がそれぞれ有効か否かが判定される。アドレスリスト記録とＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製の１以上が有効な場合、アドレスレンジ判定部７０７は、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレス７２８とアドレス領域設定レジスタ７１５の情報７４５から宛先アドレス７２８が（１）コピー済の領域７３１か、（２）コピー中の領域７３０かを判定する。
【００７３】
（２）コピー中の領域７３０の場合は、アドレスリスト記録制御部７１０は、宛先アドレス７２８とアドレスリスト記録制御レジスタ７１１の情報７４１から、アドレスリスト保存バッファＡ／Ｂを指定するレジスタ８０３１によって指定されたアドレスリストバッファ１１３に宛先アドレス７２８を記録するアドレスリスト記録用のＤＭＡ＿Ｔｘ７３４を生成する。アドレスリスト記録用Ｔｘ７３４は、調停回路７０１を経由して上流７２６に転送される。
【００７４】
（１）コピー済の領域７３１の場合は、ルーティング変更部７０８が、移動先物理計算機情報レジスタ７１４の情報７４４から複製するＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先へのルーティング情報７３３を出力する。次に、移動元ゲストアドレス変換部７０９は、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ７３２と、ルーティング情報７３３と、移動先アドレス情報レジスタ７１３の情報７４３とにより、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ７３２を複製し、移動先物理計算機１０１２へ転送されるようにルーティング情報７３３を変更し、Ｔｘの宛先アドレスが移動先ゲストＯＳ１２４２のゲスト物理アドレスから移動先物理計算機１０１２のホスト物理アドレスに変換された複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ７３５を生成する。複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ７３５は、調停回路７０１を経由して上流７２６に転送され、移動先の物理計算機１０１２の移動先ゲストメモリ１１１２へ至る。
【００７５】
次に第１の実施の形態による複合型計算機の制御方法について説明する。最初に、ゲストＯＳマイグレーションの制御方法について図１４を用いて説明する。図１４は本発明の第１の実施形態による複合型計算機のゲストＯＳマイグレーションの制御方法の一例を示したフローチャートである。ゲストＯＳマイグレーションは、複合型計算機の管理者が管理用端末１０５経由でゲストＯＳマイグレーションの指示があった場合に、装置制御部１０４のマイグレーション管理ソフトウェア１４１によりゲストＯＳマイグレーション処理が開始される（ステップＳ１４０１）。ここでは、複合型計算機の管理者からの指令をゲストＯＳマイグレーション開始の契機としているが、ソフトウェアによる契機、例えば、複合型計算機の運用管理ソフトウェア（図示省略）が物理計算機１０１１のハートビート等から異常の発生を監視して、異常を検知したことをゲストＯＳマイグレーション開始の契機としても良い。
【００７６】
マイグレーション管理ソフトウェア１４１は、ゲストＯＳマイグレーションの構成管理として、ステップＳ１４０１で管理用端末１０５から指示された移動元と移動先の物理計算機１０１１、１０１２と、仮想計算機１２３１、１２３２と、ゲストＯＳ１２４１、１２４２の情報を、仮想マシンモニタ１２０１、１２０２と、装置制御ソフトウェア１４０から取得し、マイグレーション構成情報１４２に保存する（ステップＳ１４０２）。なお、このステップＳ１４０２において、移動先の物理計算機１０１２に十分な計算機資源があり、ゲストＯＳマイグレーションが可能か否かのチェックと、移動先の仮想計算機１２３２の生成と、移動先ゲストＯＳ１２４２のメモリ領域１１１２の割当て、等が行われる。これらの処理は公知または周知の手法を用いれば良く、装置制御部１０４の装置制御ソフトウェア１４０が、計算機資源のチェックを行ってから移動先の物理計算機１０１２へ仮想計算機１２３２の生成を指令し、移動先ゲストＯＳ１２４２のメモリ領域１１１２の割当てを指令することができる。
【００７７】
次に、移動元のマイグレーション制御部１２２１は、マルチルートＩ／Ｏスイッチ１０２のマイグレーションＴｘ制御部レジスタ１＿１３６にマイグレーションの初期設定を行う（ステップＳ１４０３）。この初期設定では以下の設定を行う。
【００７８】
移動元のマイグレーション制御部１２２１は、マイグレーションＴｘ制御部レジスタ１＿１３６のアドレスリスト記録制御レジスタ７１１に対して、アドレスリスト記録バッファ関連レジスタ８０１〜８０３の設定と、連続アドレスのリスト記録抑止指定レジスタ８０４の設定とを行い、さらに、連続アドレスのリスト記録抑止を実行する時は連続アドレスサイズの指定レジスタ８０５の設定を行う。
【００７９】
移動元のマイグレーション制御部１２２１は、移動元アドレス情報レジスタ７１２に移動元ゲストＯＳ１２４１のホスト物理アドレス情報を設定する。また、移動元のマイグレーション制御部１２２１は、移動先アドレス情報レジスタ７１３に移動先ゲストＯＳ１２４２のホスト物理アドレス情報を設定する。さらに、移動元のマイグレーション制御部１２２１は、移動先物理計算機情報レジスタ７１４に移動先物理計算機１０１２に割当てた仮想Ｉ／Ｏスイッチ識別子Ｇ２０３を設定する。移動対象デバイス設定レジスタ７１７に移動元ゲストＯＳ１２４１に直接割当てしたＩ／Ｏデバイス１０３１のデバイスＩＤに対してマイグレーション対象指定の設定を行う。
【００８０】
次に移動元の物理計算機１０１１のバックグラウンドコピー制御部１２１は、バックグラウンドコピーの初期設定として、移動元ゲストＯＳのメモリ領域１１１１をバックグランドコピーの各フェーズで転送するメモリ領域に分割する（ステップＳ１４０４）。また、このステップＳ１４０４では、バックグラウンドコピー用のインターフェース１１０の初期設定も行う。
【００８１】
次に、バックグラウンドコピー制御部１２１は、上述したようにバックグラウンドコピーのフェーズ１の処理を行う。先ず、バックグラウンドコピー制御部１２１は、フェーズ１での図５に示す（１）コピー済領域５０１１、（２）コピー中領域５０２１、（３）未コピー領域５０３１のメモリ領域を、アドレス領域設定レジスタ７１５に設定する（ステップＳ１４０５）。なお、最初のフェーズ１では、マイグレーションＴｘ制御有効レジスタ７１６にアドレスリスト記録の有効設定１２００１とＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製の有効設定１２００２を行い、マイグレーションＴｘ制御部１＿１３５の回路が有効になるように設定を行う。
【００８２】
次に、バックグラウンドコピー制御部１２１は、フェーズ１の（２）コピー中領域５０２１のメモリコピーを実施する（ステップＳ１４０６）。次に、上記で分割した移動元ゲストＯＳ１２４１のメモリ領域１１１１の全フェーズのメモリコピーが完了したかを判定する（ステップＳ１４０７）。全フェーズが完了していない場合は、次のフェーズのメモリコピー処理として、ステップＳ１４０５〜ステップＳ１４０７の処理を行う。一方、全フェーズが完了した場合は、移動元のマイグレーション制御部１２２１は、移動元仮想計算機１２３１のスケジューリングを停止して、移動元ゲストＯＳ１２４１を停止させる（ステップＳ１４０８）。
【００８３】
次にマイグレーション制御部１２２１は、アドレスリストバッファ１１３からＤＭＡ＿Ｗｒｉｔｅによりメモリ更新があったアドレスリストを取得し、当該アドレスのメモリ領域を移動先ゲストＯＳのメモリ領域１１１２に再コピーを実施する（ステップＳ１４０９）。ここでは、本ステップＳ１４０９でアドレスリストを取得しているが、マイグレーション制御部１２２１がステップＳ１４０５〜ステップＳ１４０７のバックグラウンドコピー中にも、アドレスリストバッファＡ／Ｂ１１３１、１１３２を切替える方法で、随時アドレスリストを取得し、再コピーが必要なアドレスを別途管理しても良い。
【００８４】
以上のステップで移動元ゲストＯＳ１２４１を移動先ゲストＯＳ１２４２へ移動させる準備が完了するので、マイグレーション管理ソフトウェア１４１は、装置制御ソフトウェア１４０経由で、移動対象のＩ／Ｏデバイス１０３１が移動先の物理計算機１０１２に接続されるように、マルチルートＩ／Ｏスイッチ１０２の設定を変更する。
【００８５】
また、移動元の物理計算機１０１１のマイグレーション制御部１２２１は、マイグレーションＴｘ制御部１＿１３５のアドレスリスト記録の有効指定１２００１を無効に設定し、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製の有効指定１２００２を無効に設定する（ステップＳ１４１０）。
【００８６】
次に、移動先の仮想マシンモニタ１２０２のマイグレーション制御部１２２２は、マイグレーション対象のＩ／Ｏデバイス１０３１を移動先ゲストＯＳ１２４２に直接割当て、移動先の仮想計算機１２３２のスケジューリングを開始する。これにより移動先ゲストＯＳ１２４２が動作を開始し、ゲストＯＳマイグレーションが完了する（ステップＳ１４１１）。マイグレーション管理ソフトウェア１４１は、管理用端末１０５経由で複合型計算機の管理者にゲストＯＳマイグレーションが完了したことを通知する（ステップＳ１４１２）。
【００８７】
以上が、ゲストＯＳマイグレーションの制御方法である。ゲストＯＳが停止する時間は、図１４のＳ１４０８〜Ｓ１４１１までのＴｓに示す期間であり、再メモリコピー（ステップＳ１４０９）の処理時間、すなわち、再コピーが必要なメモリ領域のサイズの大きさでゲストＯＳの停止時間が決まる。
【００８８】
上記処理により、マイグレーションの開始が装置制御部１０４から移動元の物理計算機１０１１に指令されると、バックグラウンドコピー部１２１により、移動元のゲストＯＳ１２４１に割り当てられたゲストメモリ１１１１を移動先ゲストメモリ１１１２へコピーするバックグラウンドコピーが実行される。移動元のゲストＯＳ１２４１の稼働中にバックグラウンドコピーを行うので、ゲストＯＳ１２４１がＩ／Ｏデバイスに対してＤＭＡ読み込みを要求すると、Ｉ／ＯデバイスはＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを返信することになる。このとき、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスがコピー中領域５０３１であると、マルチルートＩ／Ｏスイッチ１０２のマイグレーションＴｘ制御部１３５は、コピー中領域５０３１に対するＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスを移動元の物理計算機１０１１のアドレスリストバッファ１１３に格納する。そして、移動元のマイグレーション制御部１２２１は、バックグラウンドコピーが完了した後に、移動元の仮想計算機１２３１をさせた後にアドレスリストバッファ１１３に格納されているアドレスについて移動元ゲストメモリ１１１１から移動先ゲストメモリ１１１２へ再度コピーを行うことで、移動元ゲストメモリ１１１１と移動先ゲストメモリ１１１２の内容が同一であることを保証することができる。この後、移動元のゲストＯＳ１２４１に割り当てられていたＩ／Ｏデバイスを移動先の物理計算機１０１２へ切り替えてから、移動先の仮想計算機１２３２とゲストＯＳ１２４２を起動してマイグレーションを完了する。
【００８９】
次に下流ポートＩ／Ｏ制御部１３０の制御方法について図１５を用いて説明する。図１５は本発明の第１の実施形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０で行われる処理の一例を示したフローチャートである。下流ポートＩ／Ｏ制御部１３０は、下流側からＩｎｂｏｕｎｄ＿Ｔｘ７２０を受信すると（ステップＳ１５０１）、ＴｘのＴＬＰヘッダ部分からＴｘの種別がＤＭＡか否かを判定する（ステップＳ１５０２）。ＴｘがＤＭＡでないときは、受信Ｔｘ７２０をそのまま上流側に転送する（ステップＳ１５０３）。
【００９０】
一方、ＴｘがＤＭＡのときは、さらにＴｘがＤＭＡ＿Ｗｒｉｔｅか否か判定する（ステップＳ１５０４）。ＴｘがＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの時はマイグレーション制御部１＿１３５の処理を実行し（ステップＳ１５０５）、ＴｘがＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘでないときは、マイグレーション制御部１＿１３５の処理を実行しない。なお、マイグレーション制御部１＿１３５の制御方法については、図１６を用いて後述する。
【００９１】
次に、下流ポートＩ／Ｏ制御部１３０は、ＤＭＡ＿Ｔｘの宛先アドレスを、移動元ゲストＯＳ１２４１のゲスト物理アドレスから移動元物理計算機１０１１のホスト物理アドレスに変換を行い、ＤＭＡ＿Ｔｘを上流側に転送を行う（ステップＳ１５０６）。
【００９２】
次にマイグレーションＴｘ制御部１＿１３５の制御方法について図１６を用いて説明する。図１６は本発明の第１の実施形態による複合型計算機のマイグレーションＴｘ制御部１＿１３５の制御方法の一例を示したフローチャートである。
【００９３】
上記図１５のステップＳ１５０４で、ＩｎｂｏｕｎｄのＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを受信するとマイグレーションＴｘ制御部１＿１３５の処理が行われる（ステップＳ１６０１）。マイグレーションＴｘ制御部１＿１３５は、受信したＴｘ７２０のＴＬＰヘッダ７２７を解析し、マイグレーション対象のＩ／Ｏデバイス１０３１からのＴｘか否か判定を行う（ステップＳ１６０２）。受信したＴｘ７２０がマイグレーション対象ではない場合は、マイグレーションＴｘ制御部１＿１３５の処理を終了する。一方、受信したＴｘ７２０がマイグレーション対象の場合は、受信Ｔｘ７２０の宛先アドレスが、図５に示す（１）コピー済領域５０１１、（２）コピー中領域５０２１、（３）未コピー領域５０３１のどの領域か判定を行う（ステップＳ１６０３）。
【００９４】
受信したＴｘ７２０の宛先アドレスが（３）未コピー領域５０３１の場合は、マイグレーションＴｘ制御部１＿１３５の処理を終了する。宛先アドレスが（１）コピー済領域５０１１の場合は、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製が有効か否かを判定し（ステップＳ１６０４）、複製が有効な場合は複製したＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを転送する移動先物理計算機１０１２へのルーティング設定を行う（ステップＳ１６０５）。
【００９５】
次に、マイグレーションＴｘ制御部１＿１３５は、複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスを、移動先ゲストＯＳ１２４２のゲスト物理アドレスから移動元物理計算機１０１２のホスト物理アドレスに変換し（ステップＳ１６０６）、複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ７３５を上流側に転送し（ステップＳ１６０７）、マイグレーションＴｘ制御部１＿１３５の処理を終了する。
【００９６】
上記ステップＳ１６０４の判定で、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製が無効の場合は、マイグレーションＴｘ制御部１＿１３５の処理を終了する。一方、ステップＳ１６０３の判定で、宛先アドレスが（２）コピー中領域５０１２の場合は、マイグレーションＴｘ制御有効レジスタ７１６を参照してアドレスリストの記録が有効か否かを判定する（ステップＳ１６０８）。この判定の結果アドレスリストの記録が有効の場合は、マイグレーションＴｘ制御部１＿１３５は、アドレスリスト記録制御レジスタ７１１を参照して連続アドレスのアドレスリスト記録抑止８０４が有効か否かを判定する（ステップＳ１６０９）。
【００９７】
連続アドレスのアドレスリスト記録抑止８０４が有効の場合は、受信Ｔｘ＿７２０の宛先アドレス値と、以前に記録したアドレス値とが、図８の連続アドレスサイズの指定レジスタ８０５のサイズ内でオフセットが一致しているか判定を行う（ステップＳ１６１０）。ステップＳ１６０９の判定で、連続アドレスのアドレスリスト記録抑止８０４が無効の場合は、ステップＳ１６１０の処理は行わずにステップＳ１６１１へ進む。ステップＳ１６１０の判定で、オフセットが一致していない場合は、受信Ｔｘ７２０の宛先アドレスをアドレスリストバッファ１１３に記録するためのアドレスリスト記録Ｔｘ７３４を生成して上流側に転送を行う（ステップＳ１６１１）。
【００９８】
次に、今回記録したアドレス値を記録済みのアドレス値として、マイグレーションＴｘ制御部１＿１３５の回路の内部で保持し（ステップＳ１６１２）、マイグレーションＴｘ制御部１＿１３５の処理を終了する。また、ステップＳ１６０８の判定でアドレスリストの記録が有効の場合、および、ステップＳ１６１０の判定でオフセットが一致している場合は、マイグレーションＴｘ制御部１＿１３５の処理を終了する。
【００９９】
このように、ゲストＯＳマイグレーションを行う際には、バックグラウンドコピーでコピー中領域５０２１に移動元のゲストＯＳ１２４１宛のＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘが発生すると、マイグレーションＴｘ制御部１＿１３５が移動元の仮想マシンモニタ１２０１のメモリ領域１１２内のアドレスリストバッファ１１３にＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスを記録しておき、コピー中領域５０２１のコピーが完了した後に、移動元のマイグレーション制御部１２２１がアドレスリストバッファ１１３の宛先アドレスの移動元ゲストメモリ１１１１の内容を移動先ゲストメモリ１１１２へコピーする。したがって、コピー中領域５０２１の内容を、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘによる移動元ゲストメモリ１１１１の更新と同一の内容を移動先ゲストメモリ１１１２へ適用することが可能となる。
【０１００】
そして、ゲストＯＳマイグレーションの際に、移動元ゲストメモリ１１１１から移動先ゲストメモリ１１１２へコピーするメモリのサイズを、バックグラウンドコピーの１フェーズのサイズに低減できるので、前記従来例に比して移動元から移動先へのメモリのコピーに要する時間を大幅に低減することが可能となって、マイグレーション中のゲストＯＳの停止時間を大幅に短縮することが可能となる。
【０１０１】
このように、本発明によれば、バックグラウンドコピーを用いたゲストＯＳマイグレーションにおいて、マイグレーション対象のゲストＯＳのメモリコピー用のインターフェース１６０のスループットが小さくても、ゲストＯＳの停止時に再コピーが必要なメモリ領域のサイズを小さくすることができ、ゲストＯＳの停止時間を短くすることが可能である。
【０１０２】
そして、ゲストＯＳに割当てたメモリサイズによらず、ゲストＯＳの停止時に再コピーが必要なメモリ領域のサイズはバックグラウンドコピーの１フェーズであり、ゲストＯＳに割当てたメモリサイズが大きくても再コピーが必要なメモリ領域のサイズを小さくすることができ、ゲストＯＳの停止時間を短くすることが可能である。
【０１０３】
上記により、メモリコピー用のインターフェース種やゲストＯＳの割当てメモリサイズ等の計算機環境に依存せず、ゲストＯＳマイグレーション時のゲストＯＳの停止時間を確実に小さくすることが可能であり、ユーザ業務やアプリケーションサーバ等に与える影響を最小限にしてゲストＯＳマイグレーションを実施できる。また、ゲストＯＳマイグレーションの計算機環境の制約が緩和されるため、ゲストＯＳマイグレーションの用途を広げることができる。
【０１０４】
以上が、第１の実施の形態による複合型計算機の制御方法である。
【０１０５】
＜第２実施形態＞
次に本発明の第２の実施の形態による複合型計算機の構成について説明する。第２の実施例における複合型計算機の構成は、図１に示した本発明の第１の実施例の複合型計算機の構成と、マルチルートＩ／Ｏスイッチの内部の構成が異なる以外は同じである。従って、以下では第１の実施形態と異なる分部についてだけ説明し、同一の部分については説明を省略する。
【０１０６】
図１７は本発明の第２の実施の形態による複合型計算機のブロック図である。図１７に示すように、マルチルートＩ／Ｏスイッチ１０２は、図１で示した物理計算機を接続する１以上の上流Ｐｏｒｔ１３２とＩ／Ｏデバイスを接続する１以上の下流Ｐｏｒｔ１３３と、スイッチ回路部１３１と、下流ポートＩ／Ｏ制御部１３０と、に加えて転送制御部１７０３、から構成される。
【０１０７】
転送制御部１７０３は、Ｉ／Ｏスイッチ内インターフェース１５４によりスイッチ回路部１３１に接続される。また、下流ポートＩ／Ｏ制御部１３０は、第１の実施形態と同一のＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４と、第１の実施形態と異なるマイグレーションＴｘ制御部２＿１７０１とマイグレーションＴｘ制御部レジスタ２＿１７０２から構成される。転送制御部１７０３は、マイグレーションＴｘ制御部３＿１７０４とマイグレーションＴｘ制御部レジスタ３＿１７０５から構成される。
【０１０８】
第２の実施形態では、マイグレーションＴｘ制御部２＿１７０１は、マイグレーションＴｘ制御対象となるＴｘを判定し、Ｉｎｂｏｕｎｄ＿Ｔｘ＿をそのまま複製して複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１７１０を生成し、一旦マイグレーションＴｘ制御部３＿１７０４に転送する。マイグレーションＴｘ制御部３＿１７０４は、転送されたＩｎｂｏｕｎｄ＿Ｔｘの複製である複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１７１０を受信し、Ｔｘ＿１７１０の宛先アドレスが、図５に示した移動元ゲストＯＳのメモリ領域１１１１の（１）コピー済領域５０１１の場合は、マイグレーションＴｘ制御部３＿１７０４でＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを複製して、移動先ＯＳのゲストメモリ１１１２にＤＭＡ＿Ｗｒｉｔｅ１７１２を行う。
【０１０９】
一方、図５に示した移動元ゲストＯＳのメモリ領域１１１１の（１）コピー中領域５０１２の場合は、マイグレーションＴｘ制御部３＿１７０４は、アドレスリスト記録Ｔｘ１７１１を生成し、仮想マシンモニタ１２０１のメモリ領域１１２内のアドレスリストバッファ１１３に、受信Ｔｘ１７１０の宛先アドレスをリストとして記録を行う。
【０１１０】
図１に示した第１の実施形態では、マイグレーションＴｘ制御部１＿１３５の回路は、下流Ｐｏｒｔ１３３の個数分必要である。一方、図１７に示す第２の実施形態では、マイグレーションＴｘ制御部１＿１３５の回路のうち、マイグレーションＴｘ制御部３＿１７０４に相当するＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを複製する回路とアドレスリスト記録Ｔｘを生成する回路、および、それらの回路に関連するレジスタであるマイグレーションＴｘ制御部レジスタ３＿１７０５を複数の下流Ｐｏｒｔ１３３で共有して使うことにより１個分の回路を設けることで済む。
【０１１１】
従って、図１７に示す第２の実施形態の方が、図１に示した第１の実施形態に比べて、マルチルートＩ／Ｏスイッチ１０２に実装するＬＳＩの回路規模が小さくて済むというメリットがある。
【０１１２】
次に本発明の第２の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０と転送制御部１７０３について図１８、図１９を用いて詳しく説明する。
【０１１３】
図１８は第２の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０の回路の一例を示したブロック図、図１９は第２の実施の形態による複合型計算機の転送制御部３＿１７０４の回路の一例を示したブロック図である。
【０１１４】
第２の実施形態で下流ポートＩ／Ｏ制御部１３０は、図１８に示すように、Ｉｎｂｏｕｎｄ＿Ｔｘ制御部１３４と、マイグレーションＴｘ制御部２＿１７０１と、マイグレーションＴｘ制御部レジスタ２＿１７０２と、Ｉｎｂｏｕｎｄ＿Ｔｘ制御部１３４と、マイグレーションＴｘ制御部２＿１７０１からのＴｘ間を調停し、上流に転送する調停回路７０１から構成される。
【０１１５】
Ｉｎｂｏｕｎｄ＿Ｔｘ制御部１３４は、本発明の第１の実施形態と同じである。マイグレーションＴｘ制御部レジスタ２＿１７０２は、移動元アドレス情報レジスタ７１２と、マイグレーションＴｘ制御有効レジスタ７１６と、移動対象デバイス設定レジスタ７１７から構成される。これらのレジスタの構成は、本発明の第１の実施形態と同じである。
【０１１６】
次にマイグレーションＴｘ制御部２＿１７０１の回路について説明する。下流側から受信したＩｎｂｏｕｎｄ＿Ｔｘ７２０は、移動対象デバイス判定部７０５でＴｘのＴＬＰヘッダ７２７が解析されＴＬＰの種類がＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘであるか否かと、移動対象デバイスレジスタ７１７の情報７４７を基に、マイグレーションＴｘ制御が有効なＴｘか否かが判定７２９される。マイグレーション有効判定７２９は、機能選択回路７０６によりマイグレーションＴｘ制御有効レジスタ７１６の情報７４６を基にアドレスリスト記録とＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製がそれぞれ有効か否かが判定される。アドレスリスト記録とＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの複製の１以上が有効な場合、複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ転送部１８０１は、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ７３２を複製し、宛先を転送制御部１７０３とした複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１８０２を生成する。複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１８０２は、調停回路７０１を経由して上流７２６に転送される。
【０１１７】
第２の実施形態で転送制御部１７０３は、図１９に示すように、マイグレーションＴｘ制御部レジスタ３＿１７０５と、マイグレーションＴｘ制御部３＿１７０４と、マイグレーションＴｘ制御部３＿１７０４からの出力Ｔｘ間を調停し、上流に転送する調停回路７０１から構成される。
【０１１８】
マイグレーションＴｘ制御部レジスタ３＿１７０５は、アドレスリスト記録制御レジスタ７１１と、移動先アドレス情報レジスタ７１３と、移動先物理計算機情報レジスタ７１４と、アドレス領域設定レジスタ７１５、から構成される。これらのレジスタの構成は、本発明の第１の実施形態と同じである。
【０１１９】
次にマイグレーションＴｘ制御部３＿１７０４の回路について説明する。マイグレーションＴｘ制御部３＿１７０４は、入力側からマルチルートＩ／Ｏスイッチ１０２の各下流Ｐｏｒｔ１３３の下流ポートＩ／Ｏ制御部１３０から転送された複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１８０２を受信する。
【０１２０】
アドレスレンジ判定部７０７は、複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１８０２の宛先アドレス１９１１とアドレス領域設定レジスタ７１５の情報７４５から宛先アドレス１９１１が（１）コピー済の領域１９１３か、（２）コピー中の領域１９１２かを判定する。（２）コピー中の領域１９１２の場合は、アドレスリスト記録制御部７１０は、宛先アドレス１９１１とアドレスリスト記録制御レジスタ７１１の情報７４１から、アドレスリスト保存バッファＡ／Ｂを指定するレジスタ８０３１によって指定された移動元の物理計算機１０１１のアドレスリストバッファ１１３に宛先アドレス１９１１を記録するアドレスリスト記録用のＤＭＡ＿Ｔｘ１９１５を生成する。アドレスリスト記録用Ｔｘ＿１９１５は、調停回路１９０１を経由して出力１９１７として転送される。
【０１２１】
（１）コピー済の領域１９１３の場合は、ルーティング変更部７０８は、移動先物理計算機情報レジスタ７１４の情報７４４から複製するＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先へのルーティング情報１９１４を出力する。次に、移動元ゲストアドレス変換部７０９は、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１８０２と、ルーティング情報１９１４と、移動先アドレス情報レジスタ７１３の情報７４３とにより、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１８０２を複製し、移動先物理計算機１０１２へ転送されるようにルーティング情報１９１４に変更し、Ｔｘの宛先アドレスが移動先ゲストＯＳ１２４２のゲスト物理アドレスから移動先物理計算機１０１２のホスト物理アドレスに変換された複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１９１６を生成する。複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ１９１６は、調停回路１９０１を経由して出力１９１７として移動先ゲストメモリ１１１２へ転送される。
【０１２２】
以上のような第２実施形態においても、上記第１の実施形態と同様の作用、効果を得ることができる。
【０１２３】
＜第３実施形態＞
次に本発明の第３の実施の形態による複合型計算機の構成について説明する。第３の実施形態における複合型計算機の構成は、図１に示した本発明の第１の実施形態の複合型計算機の構成と、マルチルートＩ／Ｏスイッチ１０２の下流ポートＩ／Ｏ制御部１３０内部の構成と物理計算機１０１１、１０１２上のチップセット１０７の内部の構成が異なる以外は同じである。従って、以下では第１の実施形態と異なる分部についてだけ説明し、同一の部分については説明を省略する。
【０１２４】
図２０は本発明の第３の実施の形態による複合型計算機のブロック図である。図２０に示すように、下流ポートＩ／Ｏ制御部１３０は、第１の実施形態と異なるマイグレーションＴｘ制御部４＿２００２とマイグレーションＴｘ制御部レジスタ４＿２００３から構成され、図１に示す第１の実施形態のＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４は持たない。第２の実施形態では、Ｉ／Ｏデバイス１０３１からのＴｘは、下流ポートＩ／Ｏ制御部１３０をスルーして、Ｉｎｂｏｕｎｄ＿Ｔｘ２０１０は、移動元物理計算機１０１１のチップセット１０７のゲストアドレス変換部２００１１に転送される。
【０１２５】
ゲストアドレス変換部２００１１では、受信したＴｘ２０１０がＤＭＡ＿Ｔｘの場合に宛先アドレスを移動元ゲストＯＳ１２４１のゲスト物理アドレスから移動元物理計算機１０１１のホスト物理アドレスに変換し２０１１、移動元ゲストＯＳのメモリ領域１１１１に転送される。また、マイグレーションＴｘ制御部４＿２００２は、図１に示す第１の実施形態と同様にアドレスリスト記録Ｔｘ１６４と複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ２０１２を生成するが、第３の実施形態では、マイグレーションＴｘ制御部４＿２００２で複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ２０１２の宛先アドレス変換は行わずに、移動先物理計算機１０１２のチップセット１０７のゲストアドレス変換部２００１２に転送される。移動先物理計算機１０１２のゲストアドレス変換部２００１２では、受信した複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ２０１２の宛先アドレスを移動先ゲストＯＳ１２４２のゲスト物理アドレスから移動先物理計算機１０１２のホスト物理アドレスに変換し２０１３、移動先ゲストＯＳのメモリ領域１１１２に転送する。
【０１２６】
なお、この種のチップセット上のゲストアドレス変換部２００１０，２００１２については、特開２００４−２２０２１８号公報に開示された構成を用いることができる。
【０１２７】
次に本発明の第３の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０について図２１を用いて詳しく説明する。図２１は第３の実施の形態による複合型計算機の下流ポートＩ／Ｏ制御部１３０の回路の一例を示したブロック図である。第３の実施形態で下流ポートＩ／Ｏ制御部１３０は、図２１に示すように、マイグレーションＴｘ制御部４＿２００２と、マイグレーションＴｘ制御部レジスタ４＿２００３とマイグレーションＴｘ制御部４＿２００２からのＴｘ間を調停し、上流に転送する調停回路７０１から構成され、図１に示した第１の実施形態のＩｎｂｏｕｎｄ＿Ｔｘ制御部１３４が無い構成である。
【０１２８】
マイグレーションＴｘ制御部レジスタ４＿２００３は、アドレスリスト記録制御レジスタ７１１と、移動先物理計算機情報レジスタ７１４と、アドレス領域設定レジスタ７１５と、マイグレーションＴｘ制御有効レジスタ７１６と、移動対象デバイス設定レジスタ７１７から構成される。これらのレジスタの構成は、本発明の第１の実施形態と同じである。
【０１２９】
第３の実施形態の下流ポートＩ／Ｏ制御部１３０では、下流から受信したＩｎｂｏｕｎｄ＿Ｔｘ７２０は、処理無しで、調停回路７０１を経由して上流７２６に転送される。また、マイグレーションＴｘ制御部４＿２００２は、図７に示した第１の実施形態のマイグレーションＴｘ制御部１＿１３５の移動先ゲストアドレス変換部７０９が、複製ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ転送部２１０１に置き換わった構成で、他の回路については同一である。つまり、図２１に示す第３の実施形態では、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘを複製する際にＴｘの宛先アドレスを変更していないＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘ２１１０を生成し、調停回路７０１を経由して上流７２６に転送される。一方、アドレスリスト記録Ｔｘの生成に関しては、図７に示す第１の実施形態と同じ回路である。
【０１３０】
以上のような第３実施形態においても、ＤＭＡ＿Ｗｒｉｔｅ＿Ｔｘの宛先アドレスの変換を移動元と移動先の物理計算機１０１１、１０２１のチップセット１０７でそれぞれ行うことで、上記第１の実施形態と同様の作用、効果を得ることができる。
【０１３１】
なお、上記各実施形態では、ＣＰＵ１０８とチップセット１０７が分離した構成を示したが、ＣＰＵ１０８とチップセット１０７を同一のＬＳＩに実装しても良い。
【０１３２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１３３】
以上のように、本発明は、計算機の仮想化技術、特に、仮想計算機上のゲストＯＳを物理計算機間で移動させるゲストＯＳマイグレーションを行う計算機システムに適用することができる。
【図面の簡単な説明】
【０１３４】
【図１】本発明の第１の実施の形態を示し、複合型計算機のブロック図である。
【図２】は第１の実施の形態を示し、複合型計算機のマイグレーション構成情報の一例を示した説明図である。
【図３Ａ】第１の実施の形態を示し、複合型計算機のマイグレーション対象ゲストＯＳの移動元のホスト物理アドレス情報の一例を示した説明図である。
【図３Ｂ】第１の実施の形態を示し、複合型計算機のマイグレーション対象ゲストＯＳの移動先のホスト物理アドレス情報の一例を示した説明図である。
【図４】第１の実施の形態を示し、複合型計算機のマイグレーション対象のＩ／Ｏデバイス情報の一例を示した説明図である。
【図５】第１の実施の形態を示し、複合型計算機のバックグラウンドコピー時の移動元ゲストＯＳのメモリ空間の一例を示した説明図である。
【図６】第１の実施の形態を示し、複合型計算機のバックグラウンドコピー時に生成されるアドレスリストバッファの一例を示した説明図である。
【図７】第１の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部の回路の一例を示したブロック図である。
【図８】第１の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部のアドレスリスト記録制御レジスタの一例を示した説明図である。
【図９】第１の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部の移動元アドレス情報レジスタの一例を示した説明図である。
【図１０】第１の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部の移動先アドレス情報レジスタの一例を示した説明図である。
【図１１】第１の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部のアドレス領域設定レジスタの一例を示した説明図である。
【図１２】第１の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部のマイグレーションＴｘ制御有効レジスタの一例を示した説明図である。
【図１３】第１の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部の移動対象デバイス設定レジスタの一例を示した説明図である。
【図１４】本発明の第１の実施形態を示し、複合型計算機のゲストＯＳマイグレーションの制御の一例を示したフローチャートである。
【図１５】本発明の第１の実施形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部で行われる処理の一例を示したフローチャートである。
【図１６】本発明の第１の実施形態を示し、複合型計算機のマイグレーションＴｘ制御部１で行われる制御の一例を示したフローチャートである。
【図１７】本発明の第２の実施の形態を示し、複合型計算機のブロック図である。
【図１８】第２の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部の回路の一例を示したブロック図である。
【図１９】第２の実施の形態を示し、複合型計算機の転送制御部の回路の一例を示したブロック図である。
【図２０】本発明の第３の実施の形態を示し、複合型計算機のブロック図である。
【図２１】第３の実施の形態を示し、複合型計算機の下流ポートＩ／Ｏ制御部の回路の一例を示したブロック図である。
【符号の説明】
【０１３５】
１０２  マルチルートＩ／Ｏスイッチ
１０３１、１０３２  Ｉ／Ｏデバイス
１０４  装置制御部
１０５  管理用端末
１０７  チップセット
１０８  ＣＰＵ
１１３  アドレスリストバッファ
１２１  バックグラウンドコピー制御部
１３０  下流ポートＩ／Ｏ制御部
１３１  スイッチ回路部
１３４  Ｉｎｂｏｕｎｄ＿Ｔｘ制御部
１３５  マイグレーションＴｘ制御部１
１３６  マイグレーションＴｘ制御部レジスタ１
１４０  装置制御ソフトウェア
１４１  マイグレーション管理ソフトウェア
１４２  マイグレーション構成情報
１０１１、１０１２  移動元物理計算機
１０９１、１０９２  メモリ
１１１１  移動元ゲストＯＳメモリ
１１１２  移動先ゲストＯＳメモリ
１２０１、１２０２  仮想マシンモニタ
１２２１、１２２２  マイグレーション制御部
１２３１  移動元仮想計算機
１２３２  移動先仮想計算機
１２４１  移動元ゲストＯＳ
１２４２  移動先ゲストＯＳ
【図１】
2010039685.tif 000003
【図２】
2010039685.tif 000004
【図３Ａ】
2010039685.tif 000005
【図３Ｂ】
2010039685.tif 000006
【図４】
2010039685.tif 000007
【図５】
2010039685.tif 000008
【図６】
2010039685.tif 000009
【図７】
2010039685.tif 000010
【図８】
2010039685.tif 000011
【図９】
2010039685.tif 000012
【図１０】
2010039685.tif 000013
【図１１】
2010039685.tif 000014
【図１２】
2010039685.tif 000015
【図１３】
2010039685.tif 000016
【図１４】
2010039685.tif 000017
【図１５】
2010039685.tif 000018
【図１６】
2010039685.tif 000019
【図１７】
2010039685.tif 000020
【図１８】
2010039685.tif 000021
【図１９】
2010039685.tif 000022
【図２０】
2010039685.tif 000023
【図２１】
2010039685.tif 000024