JP5262404B2 - 複合型計算機及び複合型計算機の制御方法 - Google Patents

複合型計算機及び複合型計算機の制御方法 Download PDF

Info

Publication number
JP5262404B2
JP5262404B2 JP2008200682A JP2008200682A JP5262404B2 JP 5262404 B2 JP5262404 B2 JP 5262404B2 JP 2008200682 A JP2008200682 A JP 2008200682A JP 2008200682 A JP2008200682 A JP 2008200682A JP 5262404 B2 JP5262404 B2 JP 5262404B2
Authority
JP
Japan
Prior art keywords
memory
address
computer
migration
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008200682A
Other languages
English (en)
Other versions
JP2010039685A (ja
Inventor
貴成 馬場
雄次 對馬
敬太郎 上原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008200682A priority Critical patent/JP5262404B2/ja
Publication of JP2010039685A publication Critical patent/JP2010039685A/ja
Application granted granted Critical
Publication of JP5262404B2 publication Critical patent/JP5262404B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、1つの計算機に複数の仮想計算機を構成し、それぞれの仮想計算機上でOSを動作させる仮想サーバ技術に関し、特に仮想計算機上のOSを異なる計算機間で移動させる技術、すなわち、ゲストOSマイグレーション技術に関するものである。
企業内のITシステムは、業務毎の情報を処理するAP(Application)サーバと、業務の情報を蓄積保存するDB(Data Base)サーバ等の業務毎に様々なサーバから構成される。これらサーバにはCPU、メモリ、I/Oデバイス等から成る計算機が用いられている。上記のようにITシステムは、多くのサーバから構成されるため1つの装置に複数の計算機を集約することが可能なブレードサーバが用いられている。この種のブレードサーバは、例えば、特許文献1が知られている。
近年、半導体技術の向上によりひとつのCPUに複数のプロセッサコアを搭載するマルチコア化によるCPUの処理性能を向上させることが行われている。CPUの処理性能向上に伴い、1台の計算機上に1つのAPサーバやDBサーバを動作させるだけだと、CPUの処理能力が余ってしまうケースがある。そのため、CPUの処理能力を効率的に使用するため1台の計算機に複数の仮想的な計算機を稼動させる仮想計算機技術が用いられるようになってきている。個々の仮想計算機上では、OSとAPサーバやDBサーバのソフトウェアが動作し、1台の計算機に複数のAPサーバやDBサーバを集約することが可能である。
仮想化技術では、計算機上に仮想化ソフトウェア、いわゆる、仮想マシンモニタ(VMM:Virtual Machine Monitor)を動作させ、仮想化ソフトウェア上に仮想計算機を生成する。個々の仮想計算機上では、それぞれ独立したOSを動作させることができる。ここで、仮想計算機上で動作するOSを非仮想化環境の計算機上で動作するOSと区別するためゲストOSと呼ぶ。仮想化技術では、ある計算機上の仮想計算機上で動作するゲストOSのOSイメージを、別の計算機上の仮想計算機上に移動し動作させるゲストOSマイグレーションという機能を提供する技術が知られている(例えば、非特許文献1)。このゲストOSマイグレーションを用いると、例えば、ゲストOSが動作する計算機を保守するために停止させたい場合に、ゲストOSを別の計算機に移動させることにより、ユーザの業務サーバを停止すること無しに、元の計算機を停止、保守することが可能となる。
業務として使う現用系とバックアップとして使う待機系とする従来型のシステムでは、現用系と待機系の両方にOSやソフトウェアのライセンスが必要に対して、ゲストOSマイグレーションでは1個のOS及びソフトウェアのライセンスで済むため、ライセンス料の節約になる。そのためゲストOSマイグレーションは、ITシステムの実運用においても徐々に使われるようになってきている。
一方、計算機では他の計算機とのネットワーク通信やストレージ装置の接続にNIC(Network Interface Card)やFC−HBA(Fiber Channel-Host Bus Adapter)等のI/Oデバイスが用いられるが、ブレードサーバ等では計算機(1枚のブレード)毎に必要なI/O数が異なるため、計算機に割当てるI/Oデバイス数を柔軟にする必要がある。このような問題を補う技術として、複数の計算機と複数のI/OデバイスであるPCI(Peripheral Component Interconnect)デバイスとを接続可能とするマルチルートPCIスイッチ技術が知られている(例えば、非特許文献2)。この技術では、1つの計算機に接続可能なPCIデバイスの個数をスケーラブルに変えることが可能である。
特開2002−32153号 「Live Migration of Virtual Machines」、Christopher Clark 他著、NSDI'05:2nd Symposium on Networked Systems Design & Implementation発行。 「Advanced Switching Technology Tech Brief」、ASI−SIG発行
上記のような仮想化技術において、I/OデバイスをゲストOSに割当てる方法には、一般的に、(1)物理I/Oデバイスを仮想化ソフトウェアが制御し、仮想化ソフトウェアが仮想的なI/OデバイスをゲストOSに提供する方法、と、(2)物理I/Oデバイスを仮想化ソフトウェアの制御無しに直接ゲストOSに割当てる方法、との2つの方法がある。
前者(1)の方法は、仮想I/Oデバイスを仮想化ソフトウェアが制御可能であるためゲストOSマイグレーションが容易に可能である反面、仮想化ソフトウェアの処理が必要なため性能が低下するという問題がある。逆に後者(2)の方法は、I/OデバイスをゲストOSに直接割当てるため、性能の低下がない反面、ゲストOSマイグレーションではI/Oデバイスを移動元の物理計算機から移動先の物理計算機に接続を変える必要があるため、I/Oデバイスが両計算機から物理的に接続されている必要がある。このI/Oデバイスを両計算機に接続するには、上記のマルチルートI/Oスイッチ技術を用いることで可能である。すなわち、ゲストOSマイグレーションの前後でマルチルートIOスイッチの設定を変更し、I/Oデバイスの接続先を移動元計算機から移動先計算機に変更すればよい。なお、上記非特許文献2では、上記(1)の方法のゲストOSマイグレーションについて記載されている。
ところが、上記のようなマルチルートI/Oスイッチ技術を用いたゲストOSマイグレーションでは、次のような問題点があることが本発明者により見出された。
業務に用いられるサーバでは、アプリケーション間の通信でのタイムアウト等を防ぐためゲストOSの停止時間を短くする必要がある。一方、ゲストOSマイグレーションでは、ゲストOSのメモリイメージを移動先の計算機上の仮想計算機のメモリ領域にコピーする必要がある。例えば、移動対象のゲストOSの割当てメモリサイズが5GBのとき、標準的なインターフェースであるギガビットイーサネット(登録商標、以下同じ)でメモリイメージをコピーした場合は、メモリのコピーに最低でも40秒かかることになる。ゲストOSの停止時にメモリコピーを行う場合、ゲストOSの停止時間が上記のケースでは40秒以上かかることになり、業務向けサーバには許容できない停止時間である。そこで、ゲストOSの停止中にメモリコピーを行うのではなく、ゲストOS動作中にメモリコピーを行い、ゲスト停止中は動作中にメモリコピーができなかった分の最小限のメモリコピーとし、ゲスト停止時間を短くする必要がある。このようなゲストOS動作中のメモリコピーをバックグラウンドコピーと呼ぶ。バックグラウンドコピーでは、ゲストOSが動作しているためコピー済のメモリ領域にCPUやI/Oからメモリの更新(Write)があり、この更新分については再コピーする必要がある。そのため、メモリコピー用の移動元計算機と移動先計算機間のインターフェースのメモリコピー速度に対して、ゲストOSに割当てたI/Oデバイスのメモリ更新速度が大きいと、再コピーが必要なメモリサイズが小さくならないという課題がある。
スループットが大きいインターフェースは、一般的に高価なため計算機毎に搭載するのはコスト高となってしまう。スループットが大きいインターフェースとしては、例えば、10ギガビットイーサネット、InfiniBandがある。また、上述の通りゲストOSの割当てメモリサイズが大きいほどコピー時間が掛かるため、メモリサイズが大きいほどコピー完了までの間に更新されるメモリ量が増加し、上記課題と同様に再コピーが必要なメモリサイズが小さくならないという課題がある。
そこで本発明では、上記(2)のゲストOSにI/Oデバイスを直接割当てた際のゲストOSマイグレーションのバックグランドコピーにおいて、上記の課題の解決のため、マルチルートI/Oスイッチに、コピー済み領域へのI/Oデバイスからの更新、いわゆる、DMA_Write_Tx(トランザクション)については、Tx(トランザクション、以下同様)を複製し、移動先の物理計算機上の移動先仮想計算機のメモリ領域にもDMA_Writeを実行して迅速なゲストOSマイグレーションを実現することを目的とする。
本発明の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本発明は、第1のプロセッサと第1のメモリを備えた第1の物理計算機と、前記第1の物理計算機の計算機資源を仮想化して第1の仮想計算機を実行する第1の仮想化部と、第2のプロセッサと第2のメモリを備えた第2の物理計算機と、前記第2の物理計算機の計算機資源を仮想化して第2の仮想計算機を実行する第2の仮想化部と、前記第1の物理計算機及び第2の物理計算機とI/Oデバイスを接続するI/Oスイッチと、を備えた複合型計算機で前記第1の仮想化部が、前記第1の仮想計算機で実行される第1のOSを前記第2の仮想計算機へ移動させる複合型計算機の制御方法であって、前記第1の仮想化部が前記第1のOSを前記第2の仮想計算機へ移動させる場合には、前記第1のOSの稼働中に当該第1の仮想化部が第1のメモリを前記第1のOSに割り当てたメモリ領域を、前記第2の物理計算機の第2のメモリへコピーするステップと、前記第1の仮想化部が、前記第1のメモリの状態を、前記第2のメモリへのコピーが完了したコピー済み領域と、前記第2のメモリへのコピーを実行中のコピー中領域と、前記第2のメモリへのコピーが未了の未コピー領域の何れかに分類して、当該分類したメモリ状態と第1のメモリのアドレスとを分類情報として前記I/Oスイッチへ通知するステップと、前記I/Oスイッチが、前記第1のOSに割り当てた前記I/OデバイスからDMA書き込みトランザクションを受信した場合には、当該DMA書き込みトランザクションの宛先アドレスと前記第1のメモリの前記分類情報のアドレスとを比較するステップと、前記I/Oスイッチが、前記比較の結果、前記DMA書き込みトランザクションのアドレスが前記コピー済み領域の場合は当該DMA書き込みトランザクションを前記第1のメモリと前記第2のメモリの両方にDMA書き込みを行うステップと、前記I/Oスイッチが、前記比較の結果、前記DMA書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第1のメモリのみにDMA書き込みを行うステップと、を含む。
また、前記I/Oスイッチが、前記比較の結果、前記DMA書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第1のメモリのみにDMA書き込みを行うステップは、前記DMA書き込みトランザクションのアドレスが前記コピー中領域の場合には、前記第1のメモリにDMA書き込みを行い、前記第1のメモリに予め設定したアドレス格納領域に当該DMA書き込みトランザクションのアドレス情報を格納するステップと、前記第1の仮想化部が、前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第1のメモリから第2のメモリにコピーを行うステップと、を含む。
本発明により、バックグラウンドコピーを用いたゲストOS(第1のOS)マイグレーションにおいて、マイグレーション対象のゲストOSのメモリコピー用のインターフェースのスループットが低くても、ゲストOSの停止時に再コピーが必要なメモリのサイズを小さくすることができ、ゲストOSの停止時間を短くすることが可能である。
また、本発明により、バックグラウンドコピーを用いたゲストOSマイグレーションにおいて、ゲストOSに割当てたメモリサイズによらず、ゲストOSの停止時に再コピーが必要なメモリ領域のサイズを一定であり、ゲストOSに割当てたメモリサイズが大きくても再コピーが必要なメモリ領域のサイズを小さくすることができ、ゲストOSの停止時間を短くすることが可能である。
さらに、メモリコピーに用いるインターフェースの種類やゲストOSの割当てメモリサイズ等の計算機環境に依存せず、ゲストOSマイグレーション時のゲストOSの停止時間を確実に小さくすることが可能であり、ユーザ業務やアプリケーションサーバ等に与える影響を最小限にしてゲストOSマイグレーションを実施できる。また、ゲストOSマイグレーションの計算機環境の制約が緩和されるため、ゲストOSマイグレーションの用途を広げることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するために全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は原則として省略する。
先ず本発明の第1の実施の形態による複合型計算機の構成について説明する。図1は本発明の第1の実施の形態による複合型計算機のブロック図である。
図1に示すように、本実施の形態において複合型計算機は、1以上の物理計算機1011、1012と、複数の物理計算機1011、1012をI/Oデバイスに接続可能な1以上のマルチルートI/Oスイッチ102と、マルチルートI/Oスイッチ102に接続される1以上のI/Oデバイス1031、1032と、物理計算機1011、1012とマルチルートI/Oスイッチ102に接続された1以上の装置制御部104から構成される。
物理計算機1011、1012とI/Oデバイス1031、1032とは、I/Oインターフェース150によりマルチルートI/Oスイッチ102経由で接続される。また、装置制御部104と物理計算機1011、1012、マルチルートI/Oスイッチ102は、制御インターフェース153により接続される。複合型計算機の管理を行う管理者は、装置制御部104の管理用端末105により複合型計算機の管理を行う。管理用端末105は、管理インターフェース152により装置制御部104と接続される。
装置制御部104は、装置制御ソフトウェア140、マイグレーション管理ソフトウェア141、マイグレーション構成情報142から構成される。装置制御ソフトウェア140は、物理計算機1011、1012と、マルチルートI/Oスイッチ102の電源制御と、物理計算機1011、1012とI/Oデバイス1031、1032の接続についてマルチルートI/Oスイッチ102に設定する機能を持つ。
マイグレーション管理ソフトウェア141は、管理用端末105によりゲストOSマイグレーションの実行要求を受けて、物理計算機1011、1012の仮想マシンモニタ(VMM)1201、1202から仮想計算機1231、1232、ゲストOS 1241、1242の情報を取得し、マイグレーション構成情報142に保存する機能、ゲストOSマイグレーションの進捗を管理する機能を持つ。
物理計算機1011、1012は、ハードウェア構成要素106と、ハードウェア構成要素106上で動作する仮想マシンモニタ1201、1202と、仮想マシンモニタ1201、1202上で動作する仮想計算機1231、1232から構成される。
ハードウェア構成要素106は、1以上のCPU(プロセッサ)108と、1以上のチップセット(制御ハブ)107と、1以上のメモリ1091、1092と、1以上のゲストOSマイグレーションに用いるゲストOSのメモリコピー用のI/O110を備える。なお、チップセット107は、CPU108とメモリ1091を接続するメモリコントロールハブの機能と、CPU108とマルチルートI/Oスイッチ102のI/Oデバイス1301を接続するI/O制御ハブの機能を有する。なお、チップセット107はメモリコントロールハブとI/O制御ハブを分離して実装することができる。
仮想計算機1231、1232上では、それぞれゲストOS1241、1242が動作する。このような複合型計算機において、ゲストOSマイグレーションは、移動元物理計算機1011から移動先物理計算機1012に、移動元ゲストOS1241を移動先ゲストOS1242に移動を行う。I/Oデバイス1031は移動対象のゲストOS1242に直接割当てられていて、移動前は移動元ゲストOS1241に割当てられ、移動後は移動先ゲストOS1242に割当てが変更される。
移動元のメモリ1091は、少なくとも移動元ゲストOS1241のメモリ領域(ゲストメモリ)1111と、仮想マシンモニタ1201が利用するメモリ領域(VMM領域)112から成る。また、移動元ゲストOS1241のメモリ領域1111の内容を複写する移動先のメモリ1092は、少なくとも移動先ゲストOS1242のメモリ領域(ゲストメモリ)1112から成る。ゲストOSマイグレーション時は、移動元ゲストOS1241が動作中に、移動元仮想マシンモニタ1201のバックグラウンドコピー制御部121の制御により、移動元ゲストOS1241のメモリ領域1111を移動先ゲストOS1241のメモリ領域1112にバックグラウンドコピー160を行う。このバックグランドコピー160は、メモリコピー用のインターフェース110により、インターフェース配線151経由で行われる。
移動元仮想マシンモニタ1201は、少なくとも、マイグレーション制御部1221とバックグランドコピー制御部121から構成される。移動先仮想マシンモニタ1202は、少なくとも、マイグレーション制御部1222から構成される。マイグレーション制御部1221、1222は、マイグレーション管理ソフトウェア141からの要求により、仮想計算機1231、1232の電源制御と、ゲストOS1241、1242のスケジューリングの制御と、マルチルートI/Oスイッチ102の制御を行う。バックグランドコピー制御部121は、ゲストOS1241のメモリ領域1111のコピーの進捗管理、インターフェース110経由のメモリコピーの制御を行う。
マルチルートI/Oスイッチ102は、物理計算機1011、1012を接続する1以上の上流Port132と、I/Oデバイス1031,1032を接続する1以上の下流Port133と、スイッチ回路部131、本発明のハードウェア機能を持つ下流ポートI/O制御部130から構成される。上流Port132とスイッチ回路部131、スイッチ回路部131と下流ポートI/O制御部130、下流ポートI/O制御部130と下流Port133は、それぞれI/Oスイッチ内インターフェース154で接続されている。
下流ポートI/O制御部130は、Inbound_Tx(インバウンドトランザクション)制御部134と、マイグレーションTx制御部1_135と、マイグレーションTx制御部レジスタ1_136から構成される。下流ポートI/O制御部130の各構成要素の機能については後述する。なお、以下の説明ではTxはトランザクションを意味する。また、Inbound_Txは、I/Oデバイスから物理計算機(または仮想計算機)へ向かうトランザクションを示す。
次に第1の実施の形態による複合型計算機が保持する情報について図2〜図5を用いて詳しく説明する。図2は第1の実施の形態による複合型計算機のマイグレーション構成情報の一例を示した説明図、図3は第1の実施の形態による複合型計算機のマイグレーション対象ゲストOSのホスト物理アドレス情報の一例を示した説明図、図4は第1の実施の形態による複合型計算機のマイグレーション対象のI/Oデバイス情報の一例を示した説明図、である。
装置制御部104で保持するマイグレーション構成情報142は、マイグレーション基本情報、マイグレーション対象ゲストOSのホスト物理アドレス情報、マイグレーション対象のI/Oデバイス情報から成る。マイグレーション基本情報は、表形式で表すと図2のFT2に示すように、少なくとも、マイグレーションの移動元の情報K201として、物理計算機1011の識別子G201と、物理計算機1011で稼動する仮想計算機1231の識別子G202と、物理計算機1011に割当てた仮想I/Oスイッチ識別子G203と、マイグレーション対象のゲストOS1241に直接割当てしたデバイスの有無を示す情報G204と、マイグレーションの移動先の情報K202として、移動先の物理計算機1012の識別子G201、移動先の仮想計算機1232の識別子G202、移動先の物理計算機1012に割当てた仮想I/Oスイッチ識別子G203、とから成る。なお、マルチルートI/Oスイッチ102では、複数の物理計算機でI/Oスイッチ共有するためにI/Oスイッチに内に物理計算機毎に仮想的なI/Oスイッチを構成するが、上記仮想I/Oスイッチ識別子G203とは、この仮想的なI/Oスイッチに対する識別子である。図2のマイグレーション基本情報FT2では、物理計算機1011の識別子G201が「1」、物理計算機1012の識別子G201が「2」、仮想計算機1231の識別子G202が「1」、仮想計算機1232の識別子G202が「4」、移動元の仮想I/Oスイッチ識別子G203が「3」、移動先の仮想I/Oスイッチ識別子G203が「5」の場合を示している。
マイグレーション管理ソフトウェア141は、物理計算機の識別子G201、仮想計算機の識別子G202の情報を、例えば、複合型計算機の管理者により管理用端末105経由の要求により取得し、仮想I/Oスイッチ識別子G203の情報を、例えば、装置制御ソフトウェア140から取得し、引継ぎデバイスの有無G204の情報を、例えば、移動元の仮想マシンモニタ1201から取得する。
マイグレーション対象ゲストOSのホスト物理アドレス情報は、表形式で表すと図3A、3Bに示すように、移動元ゲストOS1241のホスト物理アドレス情報FT31と、移動先ゲストOS1242のホスト物理アドレス情報FT32となる。図3A、3BではゲストOS1241、1242に対するホスト物理メモリの割当ての情報を示しており、ゲストOS1241、1242に割当てたメモリ領域のゲストOSが認識する物理アドレスの開始アドレスを示すゲスト物理アドレスK301と、ゲスト物理アドレスK301に対応する物理計算機の物理アドレスを示すホスト物理アドレスK302と、割当てたメモリ領域のサイズK303、の列で構成される。
一般的に、ゲストOSに割当てるホスト物理メモリは、不連続な複数のメモリ領域を割当て可能なため、ホスト物理アドレス情報は、割当てたメモリ領域の数分のゲスト物理アドレスK301、ホスト物理アドレスK302、メモリ領域のサイズK303の組をメモリ領域の数に応じて持つことになる。図3A、図3Bの例では、移動元ゲストOS1241についてはn個のメモリ領域を、移動先ゲストOS1242についてはm個のメモリ領域を、割当てた場合の情報を示している。ゲストOS1241、1242へのホスト物理メモリの割当ては、仮想マシンモニタ1201、1202が行うため、マイグレーション管理ソフトウェア141はホスト物理アドレス情報を仮想マシンモニタ1201、1202からゲスト物理アドレスK301とホスト物理アドレスK302及びサイズK303を取得する。
マイグレーション対象のI/Oデバイス情報は、表形式で表すと図4のFT4に示すように、少なくとも、I/Oデバイスの識別子K401と、I/Oデバイスが接続されているI/Oスイッチの番号K402と、I/Oデバイスが接続されているI/OスイッチのPortの番号K403、の列で構成される。
ここで、例えば、I/OデバイスがPCI(Peripheral Component Interconnect)デバイスの場合は、I/Oデバイスの識別子は、Bus番号、Device番号、FunctI/On番号から成る。図4のG401に示すI/Oデバイスの例では、I/Oデバイスの識別子K401が15:0:0、I/Oスイッチの番号K402が1、Port番号K403が3、の場合を示している。
マイグレーション対象のI/Oデバイスの識別子K401は移動元の仮想マシンモニタ1201が保持しているので、マイグレーション管理ソフトウェア141はI/Oデバイスの識別子K401を仮想マシンモニタ1201から取得する。また、I/Oデバイスが接続されたスイッチ番号K402とPort番号K403は、装置制御ソフトウェア140が保持しているので、マイグレーション管理ソフトウェア141はスイッチ番号K402とPort番号K403を装置制御ソフトウェア140から取得する。以上、複合型計算機が保持する情報についての説明である。
次に第1の実施の形態による複合型計算機のバックグランドコピーについて図1、図5を用いて詳しく説明する。図5は第1の実施の形態による複合型計算機のバックグラウンドコピー時の移動元ゲストOSのメモリ空間の一例を示した説明図である。
移動元の物理計算機1011で稼動する仮想マシンモニタ1201では、バックグラウンドコピー時にバックグランドコピー制御部121が、移動元ゲストOS1241のゲストメモリ1111を複数のメモリ領域に分割して、図5に示すバックグラウンドコピーの1フェーズでは上記分割したメモリ領域の1つ分のコピーを行い、分割したメモリ領域をすべて移動先ゲストメモリ1112へコピーするまで上記フェーズを繰り返す。
図5の例では、バックグラウンドコピーのNフェーズ目11111とN+1フェーズ目11112の移動元ゲストOS1241のゲストメモリ1111の状態を示している。図5に示すように、バックグランドコピー制御部121は、フェーズ毎に、(1)コピー済領域5011、5012、(2)コピー中領域5021、5022、(3)未コピー領域5031、5032、の3つの領域に分けて管理する。
図5においてGPA_MAXはゲストメモリ1111の最大アドレスである。GPA1_N、GPA2_Nは、それぞれNフェーズ目のコピー中領域5021の領域を示す最小アドレス、最大アドレスである。GPA1_N+1、GPA2_N+1は、それぞれN+1フェーズ目のコピー中領域5022の領域を示す最小アドレス、最大アドレスである。なお、図5の例では、簡単のため(1)〜(3)の各領域とも連続したメモリ領域となっているが、一般的に不連続なメモリ領域としても良い。
バックグラウンドコピー制御部121は、Nフェーズ目に(1)〜(3)の領域5011、5021、5031を、図1に示すコンフィグレーションインターフェース161経由でI/Oスイッチ102のマイグレーション対象のI/Oデバイス1031が接続された下流ポートI/O制御部130のマイグレーションTx制御部レジスタ1_136に設定する。なお、マイグレーション対象のI/Oデバイス1031の位置の情報はマイグレーション構成情報に保持されているので、バックグラウンドコピー制御部121はマイグレーション管理ソフトウェア141からI/Oデバイス1031の位置の情報を取得する。また、バックグランドコピー制御部121は、ゲストメモリ1111のメモリ領域を分割するに当たって、所定のサイズ単位やアドレスが連続する領域単位など周知の手法を用いることができる。
次にバックグランドコピーのNフェーズ目の下流ポートI/O制御部130の制御について説明する。
下流ポートI/O制御部130がI/Oデバイス1031からInbound_Tx162を受信した場合は、図1において、Inbound_Tx制御部134経由でTxの転送163が行われる。Inbound_Txがマイグレーション対象のゲストOS1241向けのDMA_Txの場合は、Txのアドレスをゲスト物理アドレスからホスト物理アドレスに変換して移動元OSのゲストメモリ1111にDMAアクセス163が行われる。
このInbound_Tx制御部134の通常のInbound_Txの転送処理(163)に加え、マイグレーション対象のゲストOS1241向けのDMA_Txの場合はマイグレーションTx制御部1_135が以下の処理を行う。
Inbound_Tx162がDMA_Write_Txの場合で、宛先アドレスが図5に示した(1)コピー済領域5011の場合は、マイグレーションTx制御部1_135でDMA_Write_Txを複製して、移動先OSのゲストメモリ1112に複製したDMA_Write_TxのDMA_Write165を行う。
従来例では、(1)コピー済領域5011へのDMA_Writeがある場合は移動元のメモリが更新されるため移動先のゲストメモリ1112は再コピーが必要であるのに対し、本発明によれば移動元へのDMA_Writeが発生しても、移動先のゲストメモリ1112が移動元のゲストメモリ1111と同時に更新されるため再コピーを不要にすることができる。
一方、Inbound_Tx162がDMA_Write_Txの場合で、宛先アドレスが(2)コピー中領域5012の場合は、バックグラウンドコピーとDMA_Write_Txによるメモリ更新が同時に行われるため、上記(1)コピー済領域5011の場合のように、DMA_Write_Txを複製して移動先OSのゲストメモリ1112にDMA_Write165を行った場合に、DMA_Write165とバックグランドコピー160のメモリ更新順序が保証できない。
そこで、DMA_Write_Txの宛先アドレスが(2)コピー中領域5012の場合は、仮想マシンモニタ1201のメモリ領域(VMM領域)112内のアドレスリストバッファ113に、DMA_Write_Txの宛先アドレスをリストとして記録164を行っておく。コピー中領域5012の複製が完了した後、仮想マシンモニタ1201のマイグレーション制御部1221が、このアドレスリストバッファ113に保存されたメモリ領域について、移動先ゲストメモリ1112へ再コピーを行う。これにより、コピー中領域5021の内容を、DMA_Write_Txによる移動元ゲストメモリ1111の更新と同一の内容を移動先ゲストメモリ1112へ適用することができる。
なお、Inbound_Tx162がDMA_Write_Txの場合で、宛先アドレスが(3)未コピー領域5013の場合は、以降のバックグラウンドコピーのフェーズでコピーが実行されるため、マイグレーションTx制御部1_135では処理は行わず、Inbound_Tx制御部134の通常のInbound_Txの転送処理のみが行われる。
移動先のゲストメモリ1112でDMA転送により再コピーが必要なメモリ領域のサイズは、本発明により、
MS1/MSt (式1)
のサイズに減らすことが可能である。ここで、MS1は1フェーズでコピーするメモリサイズ(Gbyte)、MStは移動元ゲストOSの全メモリサイズ、である。例えば、移動元ゲストOSの全メモリサイズが5GBで、1フェーズでコピーするメモリサイズが100MBの時は、再コピーが必要なメモリサイズを1/50に大幅に減らすことが可能である。また、本発明での再コピーが必要なメモリサイズは、次式で表される。
URi×MSt/Vc×MS1/MSt=URi×MS1/Vc (式2)
となる。ここで、URiはI/OデバイスがゲストOSのメモリ領域1111をDMA_Writeで転送するメモリ更新速度(例えば、MB/sec)で、Vcはバックグラウンドコピーのコピーの速度(例えば、MB/sec)である。上記式2から、再コピーが必要なメモリサイズはゲストOSの全メモリサイズMStに依存しないことが分かる。従って、ゲストOS1241の停止時に再コピーが必要なメモリコピーを行う場合に、本発明によりゲストOSの全メモリサイズに依存しないでゲストOS1241の停止時間を一定にすることが可能である。
次に第1の実施の形態による複合型計算機のアドレスリストバッファ113について図6を用いて詳しく説明する。図6は第1の実施の形態による複合型計算機のバックグラウンドコピー時に生成されるアドレスリストバッファの一例を示した説明図である。図6の例では、図1のアドレスリストバッファ113は、A、Bの2面のアドレスリストバッファ1131、1132から構成される。このように2面のアドレスリストバッファ1131、1132を持つのは、ゲストOSマイグレーションのバックグランドコピー時に、アドレスリストバッファ113はマイグレーションTx制御部1_135からの書込み602と仮想マシンモニタ1201からの読込み603が同時に行われ、バッファのクリア時にマイグレーションTx制御部1_135からの書込み漏れを防ぐためである。すなわち、図6の例ではアドレスリストバッファA1131をマイグレーションTx制御部1_135からの書込み602用、アドレスリストバッファA1132を仮想マシンモニタ1201からの読込み603用とし、仮想マシンモニタ1201からの読込み603が完了したら、アドレスリストバッファA/Bを入れ替えて、アドレスリストバッファA1131を読込み603用、アドレスリストバッファB1132を書込み用602として使用する。図6の例では、アドレスリストバッファ1131、1132は、1エントリ601が8B(Byte)のリスト構造を示している。ここで各エントリを8Bとしたのは、DMA_Write_Txの宛先アドレスが64bitであることを想定したためで、宛先アドレスを示すのに必要なbit数が変われば、1エントリのサイズは適宜変更することができる。アドレスリストバッファA/Bの切換えは、仮想マシンモニタ1201がコンフィグレーションインターフェース604を介してマイグレーションTx制御部1_135に指令する。
なお、図6の例ではアドレスリストバッファ113にA/Bの2面を用いたが、他の実施形態としてリングバッファ1面のような構造でも良い。
次に第1の実施の形態による複合型計算機の下流ポートI/O制御部130について図7〜図13を用いて詳しく説明する。図7は第1の実施の形態による複合型計算機の下流ポートI/O制御部130の回路の一例を示したブロック図、図8は第1の実施の形態による複合型計算機の下流ポートI/O制御部130のアドレスリスト記録制御レジスタ711の一例を示した説明図、図9は第1の実施の形態による複合型計算機の下流ポートI/O制御部130の移動元アドレス情報レジスタ712の一例を示した説明図、図10は第1の実施の形態による複合型計算機の下流ポートI/O制御部130の移動先アドレス情報レジスタ713の一例を示した説明図、図11は第1の実施の形態による複合型計算機の下流ポートI/O制御部130のアドレス領域設定レジスタ715の一例を示した説明図、図12は第1の実施の形態による複合型計算機の下流ポートI/O制御部130のマイグレーションTx制御有効レジスタ716の一例を示した説明図、図13は第1の実施の形態による複合型計算機の下流ポートI/O制御部の移動対象デバイス設定レジスタ717の一例を示した説明図、である。
図7に示すように、下流ポートI/O制御部130は、Inbound_Tx制御部134、マイグレーションTx制御部1_135、マイグレーションTx制御部レジスタ1_136、とInbound_Tx制御部134、マイグレーションTx制御部1_135からのTx間の調停を行い上流(物理計算機側)に転送する調停回路701から構成される。マイグレーションTx制御部レジスタ1_136は、レジスタ群711〜717から構成される。
アドレスリスト記録制御レジスタ711は、図8に示すように、DMA_Write_TxのTxの宛先アドレスを記録するアドレスリスト保存バッファA/Bの領域を示すレジスタ801、802と、下流ポートI/O制御部130からアドレスリストを書き込むバッファA/Bを指定するレジスタ803と、Txの宛先アドレスが先にアドレスリストを記録した宛先アドレスと近い場合にアドレスリストの記録を抑止することを指定する連続アドレスのリスト記録抑止指定レジスタ804と、アドレスリストの記録を抑止する宛先アドレスのアドレス範囲を示す連続アドレスサイズの指定レジスタ805とから構成される。一般に、DMAアクセスはメモリの連続領域へのアクセスが多いため、上記連続アドレスのリスト記録抑止することにより、アドレスリスト保存バッファへの記録量を減らすことが可能である。すなわち、アドレスリストバッファ113のために確保するメモリ量を減らすことが可能である。
移動元アドレス情報レジスタ712は、図9に示すように、n個のメモリ領域に対する、移動元ゲストOS1241のメモリ領域nの開始ゲスト物理アドレスを指定するレジスタ9011〜901n、移動元ゲストOS1241のメモリ領域nのサイズを指定するレジスタ9021〜902n、移動元ゲストOS1241のメモリ領域nに対応する開始ホスト物理アドレス(オフセット)を指定するレジスタ9031〜903n、から構成される。
移動元アドレス情報レジスタ712に設定される情報は、マイグレーション構成情報142のマイグレーション対象ゲストOSのホスト物理アドレス情報で、図3AのFT31に示した情報である。移動元の物理計算機1011のマイグレーション制御部1221は、マイグレーション管理ソフトウェア141からマイグレーション対象ゲストOSのホスト物理アドレス情報を取得し、この移動元アドレス情報レジスタ712にアドレス情報の設定を行う。
移動先アドレス情報レジスタ713は、上記移動元アドレスリスト記録制御レジスタ711と似たようなレジスタであるが、図10に示すように、m個のメモリ領域に対する、移動先ゲストOS1242のメモリ領域mの開始ゲスト物理アドレスを指定するレジスタ10011〜1001m、移動先ゲストOS1242のメモリ領域mのサイズを指定するレジスタ10021〜1002m、移動先ゲストOS1242のメモリ領域mに対応する開始ホスト物理アドレス(オフセット)を指定するレジスタ10031〜1003m、から構成される。
移動先アドレス情報レジスタ713に設定される情報は、マイグレーション構成情報142のマイグレーション対象ゲストOSのホスト物理アドレス情報で、図3BのFT32に示した情報である。マイグレーション制御部1221は、マイグレーション管理ソフトウェア141からマイグレーション対象ゲストOSのホスト物理アドレス情報を取得し、この移動先アドレス情報レジスタ713にアドレス情報の設定を行う。
移動先物理計算機情報レジスタ714は、移動先の物理計算機1012を指定するもので、例えば、物理計算機1012に割当てた仮想I/Oスイッチの識別子で指定する。これは、マイグレーション構成情報142のマイグレーション基本情報、すなわち、図2の移動先K202の仮想I/Oスイッチの識別子G203に示した情報である。
マイグレーション制御部1221は、マイグレーション管理ソフトウェア141からマイグレーション基本情報を取得し、移動先物理計算機情報レジスタ714に移動先の物理計算機の設定を行う。
アドレス領域設定レジスタ715は、図11に示すように、図5で述べたバックグランドコピー時の(1)コピー済領域と(2)コピー中領域とを指定するレジスタである。図11の例では、(2)コピー中領域としてP個のメモリ領域を指定するレジスタ11011〜1101P、(1)コピー済領域としてQ個のメモリ領域を指定するレジスタ11021〜1102Qから構成される。図5で述べたとおり、バックグラウンドコピーのフェーズによって(1)コピー済領域と(2)コピー中領域の量(または数)が変化するので、バックグラウンドコピー制御部121は、フェーズ毎にアドレス領域設定レジスタ715を再設定する。
マイグレーションTx制御有効レジスタ716は、図12に示すように、マイグレーションTx制御部1_135の機能であるアドレスリスト記録を有効にする指定を行うレジスタ12001とDMA_Write_Txの複製を有効にする指定を行うレジスタ12002、から構成される。マイグレーションTx制御有効レジスタ716は、ゲストOSマイグレーション開始時に、マイグレーション制御部1221により設定される。
対象デバイス設定レジスタ717は、図13に示すように、下流ポートI/O制御部130の下流側(I/Oデバイス側)に接続されたI/Oデバイス1031が持つK個のI/Oデバイス機能に対して、デバイスIDを指定するレジスタ13011〜1301Kと、該当デバイスIDがマイグレーション対象のゲストOS1241に直接割当てられているかを指定するレジスタ13021〜1302Kとから構成される。
複数のI/Oデバイス機能を持つI/Oデバイスの例として、PCIデバイスにおける、マルチファンクションデバイス、マルチPortデバイス、PCI−SIGのSR−I/OV(Single Root - I/O Virtualization)、または、MR−I/OV(Multi Root - I/O Virtualization)対応デバイス等がある。
対象デバイス設定レジスタ717に設定される情報は、マイグレーション構成情報142のマイグレーション対象のI/Oデバイス情報で、図4のFT4に示した情報である。マイグレーション制御部1221は、マイグレーション管理ソフトウェア141からマイグレーション対象のI/Oデバイス情報を取得し、対象デバイス設定レジスタ717に取得したデバイス情報の設定を行う。上記マイグレーションTx制御レジスタ部1_136のレジスタは、図7に示す制御I/F736経由でソフトウェアにより制御される。
次に、図7のInbound_Tx制御部134の構成について説明する。下流側から受信したI/Oデバイスのトランザクションとして、I/Oデバイス1031からCPU108向きのInbound_Tx720は、TLPデコーダ703でTxのTLP(Transaction Layer Packet)ヘッダ721が解析されTx種類722が判定される。Tx種722としては、例えば、Memory Read/Write Request、Message Request、Completion等がある。DMA_Tx723は、移動元ゲストアドレス変換部704で、移動元アドレス情報レジスタ712の情報742によりTxの宛先アドレスが移動元ゲストOS1241のゲスト物理アドレスから物理計算機1011のホスト物理アドレスに変換されたTx724が生成され、選択回路702によりInbound_Tx制御部134の出力Inbound_Tx725として出力され、さらに調停回路701を経由して上流726に転送される。
DMA_Tx以外のTxについてはInbound_Tx制御部134をスルーして、選択回路702によりInbound_Tx制御部の出力Inbound_Tx725として、さらに調停回路701を経由して上流726に転送される。
次に、図7のマイグレーションTx制御部1_135の構成について説明する。マルチルートI/Oスイッチ102の下流側から受信したInbound_Tx720は、移動対象デバイス判定部705でTxのTLPヘッダ727が解析されTLPの種類がDMA_Write_Txであるかと、移動対象デバイス設定レジスタ717の情報747を基に、マイグレーションTx制御が有効なTxであるかが判定729される。マイグレーション有効判定729は、機能選択回路706によりマイグレーションTx制御有効レジスタ716の情報746を基にアドレスリスト記録とDMA_Write_Txの複製がそれぞれ有効か否かが判定される。アドレスリスト記録とDMA_Write_Txの複製の1以上が有効な場合、アドレスレンジ判定部707は、DMA_Write_Txの宛先アドレス728とアドレス領域設定レジスタ715の情報745から宛先アドレス728が(1)コピー済の領域731か、(2)コピー中の領域730かを判定する。
(2)コピー中の領域730の場合は、アドレスリスト記録制御部710は、宛先アドレス728とアドレスリスト記録制御レジスタ711の情報741から、アドレスリスト保存バッファA/Bを指定するレジスタ8031によって指定されたアドレスリストバッファ113に宛先アドレス728を記録するアドレスリスト記録用のDMA_Tx734を生成する。アドレスリスト記録用Tx734は、調停回路701を経由して上流726に転送される。
(1)コピー済の領域731の場合は、ルーティング変更部708が、移動先物理計算機情報レジスタ714の情報744から複製するDMA_Write_Txの宛先へのルーティング情報733を出力する。次に、移動元ゲストアドレス変換部709は、DMA_Write_Tx732と、ルーティング情報733と、移動先アドレス情報レジスタ713の情報743とにより、DMA_Write_Tx732を複製し、移動先物理計算機1012へ転送されるようにルーティング情報733を変更し、Txの宛先アドレスが移動先ゲストOS1242のゲスト物理アドレスから移動先物理計算機1012のホスト物理アドレスに変換された複製DMA_Write_Tx735を生成する。複製DMA_Write_Tx735は、調停回路701を経由して上流726に転送され、移動先の物理計算機1012の移動先ゲストメモリ1112へ至る。
次に第1の実施の形態による複合型計算機の制御方法について説明する。最初に、ゲストOSマイグレーションの制御方法について図14を用いて説明する。図14は本発明の第1の実施形態による複合型計算機のゲストOSマイグレーションの制御方法の一例を示したフローチャートである。ゲストOSマイグレーションは、複合型計算機の管理者が管理用端末105経由でゲストOSマイグレーションの指示があった場合に、装置制御部104のマイグレーション管理ソフトウェア141によりゲストOSマイグレーション処理が開始される(ステップS1401)。ここでは、複合型計算機の管理者からの指令をゲストOSマイグレーション開始の契機としているが、ソフトウェアによる契機、例えば、複合型計算機の運用管理ソフトウェア(図示省略)が物理計算機1011のハートビート等から異常の発生を監視して、異常を検知したことをゲストOSマイグレーション開始の契機としても良い。
マイグレーション管理ソフトウェア141は、ゲストOSマイグレーションの構成管理として、ステップS1401で管理用端末105から指示された移動元と移動先の物理計算機1011、1012と、仮想計算機1231、1232と、ゲストOS1241、1242の情報を、仮想マシンモニタ1201、1202と、装置制御ソフトウェア140から取得し、マイグレーション構成情報142に保存する(ステップS1402)。なお、このステップS1402において、移動先の物理計算機1012に十分な計算機資源があり、ゲストOSマイグレーションが可能か否かのチェックと、移動先の仮想計算機1232の生成と、移動先ゲストOS1242のメモリ領域1112の割当て、等が行われる。これらの処理は公知または周知の手法を用いれば良く、装置制御部104の装置制御ソフトウェア140が、計算機資源のチェックを行ってから移動先の物理計算機1012へ仮想計算機1232の生成を指令し、移動先ゲストOS1242のメモリ領域1112の割当てを指令することができる。
次に、移動元のマイグレーション制御部1221は、マルチルートI/Oスイッチ102のマイグレーションTx制御部レジスタ1_136にマイグレーションの初期設定を行う(ステップS1403)。この初期設定では以下の設定を行う。
移動元のマイグレーション制御部1221は、マイグレーションTx制御部レジスタ1_136のアドレスリスト記録制御レジスタ711に対して、アドレスリスト記録バッファ関連レジスタ801〜803の設定と、連続アドレスのリスト記録抑止指定レジスタ804の設定とを行い、さらに、連続アドレスのリスト記録抑止を実行する時は連続アドレスサイズの指定レジスタ805の設定を行う。
移動元のマイグレーション制御部1221は、移動元アドレス情報レジスタ712に移動元ゲストOS1241のホスト物理アドレス情報を設定する。また、移動元のマイグレーション制御部1221は、移動先アドレス情報レジスタ713に移動先ゲストOS1242のホスト物理アドレス情報を設定する。さらに、移動元のマイグレーション制御部1221は、移動先物理計算機情報レジスタ714に移動先物理計算機1012に割当てた仮想I/Oスイッチ識別子G203を設定する。移動対象デバイス設定レジスタ717に移動元ゲストOS1241に直接割当てしたI/Oデバイス1031のデバイスIDに対してマイグレーション対象指定の設定を行う。
次に移動元の物理計算機1011のバックグラウンドコピー制御部121は、バックグラウンドコピーの初期設定として、移動元ゲストOSのメモリ領域1111をバックグランドコピーの各フェーズで転送するメモリ領域に分割する(ステップS1404)。また、このステップS1404では、バックグラウンドコピー用のインターフェース110の初期設定も行う。
次に、バックグラウンドコピー制御部121は、上述したようにバックグラウンドコピーのフェーズ1の処理を行う。先ず、バックグラウンドコピー制御部121は、フェーズ1での図5に示す(1)コピー済領域5011、(2)コピー中領域5021、(3)未コピー領域5031のメモリ領域を、アドレス領域設定レジスタ715に設定する(ステップS1405)。なお、最初のフェーズ1では、マイグレーションTx制御有効レジスタ716にアドレスリスト記録の有効設定12001とDMA_Write_Txの複製の有効設定12002を行い、マイグレーションTx制御部1_135の回路が有効になるように設定を行う。
次に、バックグラウンドコピー制御部121は、フェーズ1の(2)コピー中領域5021のメモリコピーを実施する(ステップS1406)。次に、上記で分割した移動元ゲストOS1241のメモリ領域1111の全フェーズのメモリコピーが完了したかを判定する(ステップS1407)。全フェーズが完了していない場合は、次のフェーズのメモリコピー処理として、ステップS1405〜ステップS1407の処理を行う。一方、全フェーズが完了した場合は、移動元のマイグレーション制御部1221は、移動元仮想計算機1231のスケジューリングを停止して、移動元ゲストOS1241を停止させる(ステップS1408)。
次にマイグレーション制御部1221は、アドレスリストバッファ113からDMA_Writeによりメモリ更新があったアドレスリストを取得し、当該アドレスのメモリ領域を移動先ゲストOSのメモリ領域1112に再コピーを実施する(ステップS1409)。ここでは、本ステップS1409でアドレスリストを取得しているが、マイグレーション制御部1221がステップS1405〜ステップS1407のバックグラウンドコピー中にも、アドレスリストバッファA/B1131、1132を切替える方法で、随時アドレスリストを取得し、再コピーが必要なアドレスを別途管理しても良い。
以上のステップで移動元ゲストOS1241を移動先ゲストOS1242へ移動させる準備が完了するので、マイグレーション管理ソフトウェア141は、装置制御ソフトウェア140経由で、移動対象のI/Oデバイス1031が移動先の物理計算機1012に接続されるように、マルチルートI/Oスイッチ102の設定を変更する。
また、移動元の物理計算機1011のマイグレーション制御部1221は、マイグレーションTx制御部1_135のアドレスリスト記録の有効指定12001を無効に設定し、DMA_Write_Txの複製の有効指定12002を無効に設定する(ステップS1410)。
次に、移動先の仮想マシンモニタ1202のマイグレーション制御部1222は、マイグレーション対象のI/Oデバイス1031を移動先ゲストOS1242に直接割当て、移動先の仮想計算機1232のスケジューリングを開始する。これにより移動先ゲストOS1242が動作を開始し、ゲストOSマイグレーションが完了する(ステップS1411)。マイグレーション管理ソフトウェア141は、管理用端末105経由で複合型計算機の管理者にゲストOSマイグレーションが完了したことを通知する(ステップS1412)。
以上が、ゲストOSマイグレーションの制御方法である。ゲストOSが停止する時間は、図14のS1408〜S1411までのTsに示す期間であり、再メモリコピー(ステップS1409)の処理時間、すなわち、再コピーが必要なメモリ領域のサイズの大きさでゲストOSの停止時間が決まる。
上記処理により、マイグレーションの開始が装置制御部104から移動元の物理計算機1011に指令されると、バックグラウンドコピー部121により、移動元のゲストOS1241に割り当てられたゲストメモリ1111を移動先ゲストメモリ1112へコピーするバックグラウンドコピーが実行される。移動元のゲストOS1241の稼働中にバックグラウンドコピーを行うので、ゲストOS1241がI/Oデバイスに対してDMA読み込みを要求すると、I/OデバイスはDMA_Write_Txを返信することになる。このとき、DMA_Write_Txの宛先アドレスがコピー中領域5031であると、マルチルートI/Oスイッチ102のマイグレーションTx制御部135は、コピー中領域5031に対するDMA_Write_Txの宛先アドレスを移動元の物理計算機1011のアドレスリストバッファ113に格納する。そして、移動元のマイグレーション制御部1221は、バックグラウンドコピーが完了した後に、移動元の仮想計算機1231をさせた後にアドレスリストバッファ113に格納されているアドレスについて移動元ゲストメモリ1111から移動先ゲストメモリ1112へ再度コピーを行うことで、移動元ゲストメモリ1111と移動先ゲストメモリ1112の内容が同一であることを保証することができる。この後、移動元のゲストOS1241に割り当てられていたI/Oデバイスを移動先の物理計算機1012へ切り替えてから、移動先の仮想計算機1232とゲストOS1242を起動してマイグレーションを完了する。
次に下流ポートI/O制御部130の制御方法について図15を用いて説明する。図15は本発明の第1の実施形態による複合型計算機の下流ポートI/O制御部130で行われる処理の一例を示したフローチャートである。下流ポートI/O制御部130は、下流側からInbound_Tx720を受信すると(ステップS1501)、TxのTLPヘッダ部分からTxの種別がDMAか否かを判定する(ステップS1502)。TxがDMAでないときは、受信Tx720をそのまま上流側に転送する(ステップS1503)。
一方、TxがDMAのときは、さらにTxがDMA_Writeか否か判定する(ステップS1504)。TxがDMA_Write_Txの時はマイグレーション制御部1_135の処理を実行し(ステップS1505)、TxがDMA_Write_Txでないときは、マイグレーション制御部1_135の処理を実行しない。なお、マイグレーション制御部1_135の制御方法については、図16を用いて後述する。
次に、下流ポートI/O制御部130は、DMA_Txの宛先アドレスを、移動元ゲストOS1241のゲスト物理アドレスから移動元物理計算機1011のホスト物理アドレスに変換を行い、DMA_Txを上流側に転送を行う(ステップS1506)。
次にマイグレーションTx制御部1_135の制御方法について図16を用いて説明する。図16は本発明の第1の実施形態による複合型計算機のマイグレーションTx制御部1_135の制御方法の一例を示したフローチャートである。
上記図15のステップS1504で、InboundのDMA_Write_Txを受信するとマイグレーションTx制御部1_135の処理が行われる(ステップS1601)。マイグレーションTx制御部1_135は、受信したTx720のTLPヘッダ727を解析し、マイグレーション対象のI/Oデバイス1031からのTxか否か判定を行う(ステップS1602)。受信したTx720がマイグレーション対象ではない場合は、マイグレーションTx制御部1_135の処理を終了する。一方、受信したTx720がマイグレーション対象の場合は、受信Tx720の宛先アドレスが、図5に示す(1)コピー済領域5011、(2)コピー中領域5021、(3)未コピー領域5031のどの領域か判定を行う(ステップS1603)。
受信したTx720の宛先アドレスが(3)未コピー領域5031の場合は、マイグレーションTx制御部1_135の処理を終了する。宛先アドレスが(1)コピー済領域5011の場合は、DMA_Write_Txの複製が有効か否かを判定し(ステップS1604)、複製が有効な場合は複製したDMA_Write_Txを転送する移動先物理計算機1012へのルーティング設定を行う(ステップS1605)。
次に、マイグレーションTx制御部1_135は、複製DMA_Write_Txの宛先アドレスを、移動先ゲストOS1242のゲスト物理アドレスから移動元物理計算機1012のホスト物理アドレスに変換し(ステップS1606)、複製DMA_Write_Tx735を上流側に転送し(ステップS1607)、マイグレーションTx制御部1_135の処理を終了する。
上記ステップS1604の判定で、DMA_Write_Txの複製が無効の場合は、マイグレーションTx制御部1_135の処理を終了する。一方、ステップS1603の判定で、宛先アドレスが(2)コピー中領域5012の場合は、マイグレーションTx制御有効レジスタ716を参照してアドレスリストの記録が有効か否かを判定する(ステップS1608)。この判定の結果アドレスリストの記録が有効の場合は、マイグレーションTx制御部1_135は、アドレスリスト記録制御レジスタ711を参照して連続アドレスのアドレスリスト記録抑止804が有効か否かを判定する(ステップS1609)。
連続アドレスのアドレスリスト記録抑止804が有効の場合は、受信Tx_720の宛先アドレス値と、以前に記録したアドレス値とが、図8の連続アドレスサイズの指定レジスタ805のサイズ内でオフセットが一致しているか判定を行う(ステップS1610)。ステップS1609の判定で、連続アドレスのアドレスリスト記録抑止804が無効の場合は、ステップS1610の処理は行わずにステップS1611へ進む。ステップS1610の判定で、オフセットが一致していない場合は、受信Tx720の宛先アドレスをアドレスリストバッファ113に記録するためのアドレスリスト記録Tx734を生成して上流側に転送を行う(ステップS1611)。
次に、今回記録したアドレス値を記録済みのアドレス値として、マイグレーションTx制御部1_135の回路の内部で保持し(ステップS1612)、マイグレーションTx制御部1_135の処理を終了する。また、ステップS1608の判定でアドレスリストの記録が有効の場合、および、ステップS1610の判定でオフセットが一致している場合は、マイグレーションTx制御部1_135の処理を終了する。
このように、ゲストOSマイグレーションを行う際には、バックグラウンドコピーでコピー中領域5021に移動元のゲストOS1241宛のDMA_Write_Txが発生すると、マイグレーションTx制御部1_135が移動元の仮想マシンモニタ1201のメモリ領域112内のアドレスリストバッファ113にDMA_Write_Txの宛先アドレスを記録しておき、コピー中領域5021のコピーが完了した後に、移動元のマイグレーション制御部1221がアドレスリストバッファ113の宛先アドレスの移動元ゲストメモリ1111の内容を移動先ゲストメモリ1112へコピーする。したがって、コピー中領域5021の内容を、DMA_Write_Txによる移動元ゲストメモリ1111の更新と同一の内容を移動先ゲストメモリ1112へ適用することが可能となる。
そして、ゲストOSマイグレーションの際に、移動元ゲストメモリ1111から移動先ゲストメモリ1112へコピーするメモリのサイズを、バックグラウンドコピーの1フェーズのサイズに低減できるので、前記従来例に比して移動元から移動先へのメモリのコピーに要する時間を大幅に低減することが可能となって、マイグレーション中のゲストOSの停止時間を大幅に短縮することが可能となる。
このように、本発明によれば、バックグラウンドコピーを用いたゲストOSマイグレーションにおいて、マイグレーション対象のゲストOSのメモリコピー用のインターフェース160のスループットが小さくても、ゲストOSの停止時に再コピーが必要なメモリ領域のサイズを小さくすることができ、ゲストOSの停止時間を短くすることが可能である。
そして、ゲストOSに割当てたメモリサイズによらず、ゲストOSの停止時に再コピーが必要なメモリ領域のサイズはバックグラウンドコピーの1フェーズであり、ゲストOSに割当てたメモリサイズが大きくても再コピーが必要なメモリ領域のサイズを小さくすることができ、ゲストOSの停止時間を短くすることが可能である。
上記により、メモリコピー用のインターフェース種やゲストOSの割当てメモリサイズ等の計算機環境に依存せず、ゲストOSマイグレーション時のゲストOSの停止時間を確実に小さくすることが可能であり、ユーザ業務やアプリケーションサーバ等に与える影響を最小限にしてゲストOSマイグレーションを実施できる。また、ゲストOSマイグレーションの計算機環境の制約が緩和されるため、ゲストOSマイグレーションの用途を広げることができる。
以上が、第1の実施の形態による複合型計算機の制御方法である。
<第2実施形態>
次に本発明の第2の実施の形態による複合型計算機の構成について説明する。第2の実施例における複合型計算機の構成は、図1に示した本発明の第1の実施例の複合型計算機の構成と、マルチルートI/Oスイッチの内部の構成が異なる以外は同じである。従って、以下では第1の実施形態と異なる分部についてだけ説明し、同一の部分については説明を省略する。
図17は本発明の第2の実施の形態による複合型計算機のブロック図である。図17に示すように、マルチルートI/Oスイッチ102は、図1で示した物理計算機を接続する1以上の上流Port132とI/Oデバイスを接続する1以上の下流Port133と、スイッチ回路部131と、下流ポートI/O制御部130と、に加えて転送制御部1703、から構成される。
転送制御部1703は、I/Oスイッチ内インターフェース154によりスイッチ回路部131に接続される。また、下流ポートI/O制御部130は、第1の実施形態と同一のInbound_Tx制御部134と、第1の実施形態と異なるマイグレーションTx制御部2_1701とマイグレーションTx制御部レジスタ2_1702から構成される。転送制御部1703は、マイグレーションTx制御部3_1704とマイグレーションTx制御部レジスタ3_1705から構成される。
第2の実施形態では、マイグレーションTx制御部2_1701は、マイグレーションTx制御対象となるTxを判定し、Inbound_Tx_をそのまま複製して複製DMA_Write_Tx1710を生成し、一旦マイグレーションTx制御部3_1704に転送する。マイグレーションTx制御部3_1704は、転送されたInbound_Txの複製である複製DMA_Write_Tx1710を受信し、Tx_1710の宛先アドレスが、図5に示した移動元ゲストOSのメモリ領域1111の(1)コピー済領域5011の場合は、マイグレーションTx制御部3_1704でDMA_Write_Txを複製して、移動先OSのゲストメモリ1112にDMA_Write1712を行う。
一方、図5に示した移動元ゲストOSのメモリ領域1111の(1)コピー中領域5012の場合は、マイグレーションTx制御部3_1704は、アドレスリスト記録Tx1711を生成し、仮想マシンモニタ1201のメモリ領域112内のアドレスリストバッファ113に、受信Tx1710の宛先アドレスをリストとして記録を行う。
図1に示した第1の実施形態では、マイグレーションTx制御部1_135の回路は、下流Port133の個数分必要である。一方、図17に示す第2の実施形態では、マイグレーションTx制御部1_135の回路のうち、マイグレーションTx制御部3_1704に相当するDMA_Write_Txを複製する回路とアドレスリスト記録Txを生成する回路、および、それらの回路に関連するレジスタであるマイグレーションTx制御部レジスタ3_1705を複数の下流Port133で共有して使うことにより1個分の回路を設けることで済む。
従って、図17に示す第2の実施形態の方が、図1に示した第1の実施形態に比べて、マルチルートI/Oスイッチ102に実装するLSIの回路規模が小さくて済むというメリットがある。
次に本発明の第2の実施の形態による複合型計算機の下流ポートI/O制御部130と転送制御部1703について図18、図19を用いて詳しく説明する。
図18は第2の実施の形態による複合型計算機の下流ポートI/O制御部130の回路の一例を示したブロック図、図19は第2の実施の形態による複合型計算機の転送制御部3_1704の回路の一例を示したブロック図である。
第2の実施形態で下流ポートI/O制御部130は、図18に示すように、Inbound_Tx制御部134と、マイグレーションTx制御部2_1701と、マイグレーションTx制御部レジスタ2_1702と、Inbound_Tx制御部134と、マイグレーションTx制御部2_1701からのTx間を調停し、上流に転送する調停回路701から構成される。
Inbound_Tx制御部134は、本発明の第1の実施形態と同じである。マイグレーションTx制御部レジスタ2_1702は、移動元アドレス情報レジスタ712と、マイグレーションTx制御有効レジスタ716と、移動対象デバイス設定レジスタ717から構成される。これらのレジスタの構成は、本発明の第1の実施形態と同じである。
次にマイグレーションTx制御部2_1701の回路について説明する。下流側から受信したInbound_Tx720は、移動対象デバイス判定部705でTxのTLPヘッダ727が解析されTLPの種類がDMA_Write_Txであるか否かと、移動対象デバイスレジスタ717の情報747を基に、マイグレーションTx制御が有効なTxか否かが判定729される。マイグレーション有効判定729は、機能選択回路706によりマイグレーションTx制御有効レジスタ716の情報746を基にアドレスリスト記録とDMA_Write_Txの複製がそれぞれ有効か否かが判定される。アドレスリスト記録とDMA_Write_Txの複製の1以上が有効な場合、複製DMA_Write_Tx転送部1801は、DMA_Write_Tx732を複製し、宛先を転送制御部1703とした複製DMA_Write_Tx1802を生成する。複製DMA_Write_Tx1802は、調停回路701を経由して上流726に転送される。
第2の実施形態で転送制御部1703は、図19に示すように、マイグレーションTx制御部レジスタ3_1705と、マイグレーションTx制御部3_1704と、マイグレーションTx制御部3_1704からの出力Tx間を調停し、上流に転送する調停回路701から構成される。
マイグレーションTx制御部レジスタ3_1705は、アドレスリスト記録制御レジスタ711と、移動先アドレス情報レジスタ713と、移動先物理計算機情報レジスタ714と、アドレス領域設定レジスタ715、から構成される。これらのレジスタの構成は、本発明の第1の実施形態と同じである。
次にマイグレーションTx制御部3_1704の回路について説明する。マイグレーションTx制御部3_1704は、入力側からマルチルートI/Oスイッチ102の各下流Port133の下流ポートI/O制御部130から転送された複製DMA_Write_Tx1802を受信する。
アドレスレンジ判定部707は、複製DMA_Write_Tx1802の宛先アドレス1911とアドレス領域設定レジスタ715の情報745から宛先アドレス1911が(1)コピー済の領域1913か、(2)コピー中の領域1912かを判定する。(2)コピー中の領域1912の場合は、アドレスリスト記録制御部710は、宛先アドレス1911とアドレスリスト記録制御レジスタ711の情報741から、アドレスリスト保存バッファA/Bを指定するレジスタ8031によって指定された移動元の物理計算機1011のアドレスリストバッファ113に宛先アドレス1911を記録するアドレスリスト記録用のDMA_Tx1915を生成する。アドレスリスト記録用Tx_1915は、調停回路1901を経由して出力1917として転送される。
(1)コピー済の領域1913の場合は、ルーティング変更部708は、移動先物理計算機情報レジスタ714の情報744から複製するDMA_Write_Txの宛先へのルーティング情報1914を出力する。次に、移動元ゲストアドレス変換部709は、DMA_Write_Tx1802と、ルーティング情報1914と、移動先アドレス情報レジスタ713の情報743とにより、DMA_Write_Tx1802を複製し、移動先物理計算機1012へ転送されるようにルーティング情報1914に変更し、Txの宛先アドレスが移動先ゲストOS1242のゲスト物理アドレスから移動先物理計算機1012のホスト物理アドレスに変換された複製DMA_Write_Tx1916を生成する。複製DMA_Write_Tx1916は、調停回路1901を経由して出力1917として移動先ゲストメモリ1112へ転送される。
以上のような第2実施形態においても、上記第1の実施形態と同様の作用、効果を得ることができる。
<第3実施形態>
次に本発明の第3の実施の形態による複合型計算機の構成について説明する。第3の実施形態における複合型計算機の構成は、図1に示した本発明の第1の実施形態の複合型計算機の構成と、マルチルートI/Oスイッチ102の下流ポートI/O制御部130内部の構成と物理計算機1011、1012上のチップセット107の内部の構成が異なる以外は同じである。従って、以下では第1の実施形態と異なる分部についてだけ説明し、同一の部分については説明を省略する。
図20は本発明の第3の実施の形態による複合型計算機のブロック図である。図20に示すように、下流ポートI/O制御部130は、第1の実施形態と異なるマイグレーションTx制御部4_2002とマイグレーションTx制御部レジスタ4_2003から構成され、図1に示す第1の実施形態のInbound_Tx制御部134は持たない。第2の実施形態では、I/Oデバイス1031からのTxは、下流ポートI/O制御部130をスルーして、Inbound_Tx2010は、移動元物理計算機1011のチップセット107のゲストアドレス変換部20011に転送される。
ゲストアドレス変換部20011では、受信したTx2010がDMA_Txの場合に宛先アドレスを移動元ゲストOS1241のゲスト物理アドレスから移動元物理計算機1011のホスト物理アドレスに変換し2011、移動元ゲストOSのメモリ領域1111に転送される。また、マイグレーションTx制御部4_2002は、図1に示す第1の実施形態と同様にアドレスリスト記録Tx164と複製DMA_Write_Tx2012を生成するが、第3の実施形態では、マイグレーションTx制御部4_2002で複製DMA_Write_Tx2012の宛先アドレス変換は行わずに、移動先物理計算機1012のチップセット107のゲストアドレス変換部20012に転送される。移動先物理計算機1012のゲストアドレス変換部20012では、受信した複製DMA_Write_Tx2012の宛先アドレスを移動先ゲストOS1242のゲスト物理アドレスから移動先物理計算機1012のホスト物理アドレスに変換し2013、移動先ゲストOSのメモリ領域1112に転送する。
なお、この種のチップセット上のゲストアドレス変換部20010,20012については、特開2004−220218号公報に開示された構成を用いることができる。
次に本発明の第3の実施の形態による複合型計算機の下流ポートI/O制御部130について図21を用いて詳しく説明する。図21は第3の実施の形態による複合型計算機の下流ポートI/O制御部130の回路の一例を示したブロック図である。第3の実施形態で下流ポートI/O制御部130は、図21に示すように、マイグレーションTx制御部4_2002と、マイグレーションTx制御部レジスタ4_2003とマイグレーションTx制御部4_2002からのTx間を調停し、上流に転送する調停回路701から構成され、図1に示した第1の実施形態のInbound_Tx制御部134が無い構成である。
マイグレーションTx制御部レジスタ4_2003は、アドレスリスト記録制御レジスタ711と、移動先物理計算機情報レジスタ714と、アドレス領域設定レジスタ715と、マイグレーションTx制御有効レジスタ716と、移動対象デバイス設定レジスタ717から構成される。これらのレジスタの構成は、本発明の第1の実施形態と同じである。
第3の実施形態の下流ポートI/O制御部130では、下流から受信したInbound_Tx720は、処理無しで、調停回路701を経由して上流726に転送される。また、マイグレーションTx制御部4_2002は、図7に示した第1の実施形態のマイグレーションTx制御部1_135の移動先ゲストアドレス変換部709が、複製DMA_Write_Tx転送部2101に置き換わった構成で、他の回路については同一である。つまり、図21に示す第3の実施形態では、DMA_Write_Txを複製する際にTxの宛先アドレスを変更していないDMA_Write_Tx2110を生成し、調停回路701を経由して上流726に転送される。一方、アドレスリスト記録Txの生成に関しては、図7に示す第1の実施形態と同じ回路である。
以上のような第3実施形態においても、DMA_Write_Txの宛先アドレスの変換を移動元と移動先の物理計算機1011、1021のチップセット107でそれぞれ行うことで、上記第1の実施形態と同様の作用、効果を得ることができる。
なお、上記各実施形態では、CPU108とチップセット107が分離した構成を示したが、CPU108とチップセット107を同一のLSIに実装しても良い。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
以上のように、本発明は、計算機の仮想化技術、特に、仮想計算機上のゲストOSを物理計算機間で移動させるゲストOSマイグレーションを行う計算機システムに適用することができる。
本発明の第1の実施の形態を示し、複合型計算機のブロック図である。 は第1の実施の形態を示し、複合型計算機のマイグレーション構成情報の一例を示した説明図である。 第1の実施の形態を示し、複合型計算機のマイグレーション対象ゲストOSの移動元のホスト物理アドレス情報の一例を示した説明図である。 第1の実施の形態を示し、複合型計算機のマイグレーション対象ゲストOSの移動先のホスト物理アドレス情報の一例を示した説明図である。 第1の実施の形態を示し、複合型計算機のマイグレーション対象のI/Oデバイス情報の一例を示した説明図である。 第1の実施の形態を示し、複合型計算機のバックグラウンドコピー時の移動元ゲストOSのメモリ空間の一例を示した説明図である。 第1の実施の形態を示し、複合型計算機のバックグラウンドコピー時に生成されるアドレスリストバッファの一例を示した説明図である。 第1の実施の形態を示し、複合型計算機の下流ポートI/O制御部の回路の一例を示したブロック図である。 第1の実施の形態を示し、複合型計算機の下流ポートI/O制御部のアドレスリスト記録制御レジスタの一例を示した説明図である。 第1の実施の形態を示し、複合型計算機の下流ポートI/O制御部の移動元アドレス情報レジスタの一例を示した説明図である。 第1の実施の形態を示し、複合型計算機の下流ポートI/O制御部の移動先アドレス情報レジスタの一例を示した説明図である。 第1の実施の形態を示し、複合型計算機の下流ポートI/O制御部のアドレス領域設定レジスタの一例を示した説明図である。 第1の実施の形態を示し、複合型計算機の下流ポートI/O制御部のマイグレーションTx制御有効レジスタの一例を示した説明図である。 第1の実施の形態を示し、複合型計算機の下流ポートI/O制御部の移動対象デバイス設定レジスタの一例を示した説明図である。 本発明の第1の実施形態を示し、複合型計算機のゲストOSマイグレーションの制御の一例を示したフローチャートである。 本発明の第1の実施形態を示し、複合型計算機の下流ポートI/O制御部で行われる処理の一例を示したフローチャートである。 本発明の第1の実施形態を示し、複合型計算機のマイグレーションTx制御部1で行われる制御の一例を示したフローチャートである。 本発明の第2の実施の形態を示し、複合型計算機のブロック図である。 第2の実施の形態を示し、複合型計算機の下流ポートI/O制御部の回路の一例を示したブロック図である。 第2の実施の形態を示し、複合型計算機の転送制御部の回路の一例を示したブロック図である。 本発明の第3の実施の形態を示し、複合型計算機のブロック図である。 第3の実施の形態を示し、複合型計算機の下流ポートI/O制御部の回路の一例を示したブロック図である。
符号の説明
102 マルチルートI/Oスイッチ
1031、1032 I/Oデバイス
104 装置制御部
105 管理用端末
107 チップセット
108 CPU
113 アドレスリストバッファ
121 バックグラウンドコピー制御部
130 下流ポートI/O制御部
131 スイッチ回路部
134 Inbound_Tx制御部
135 マイグレーションTx制御部1
136 マイグレーションTx制御部レジスタ1
140 装置制御ソフトウェア
141 マイグレーション管理ソフトウェア
142 マイグレーション構成情報
1011、1012 移動元物理計算機
1091、1092 メモリ
1111 移動元ゲストOSメモリ
1112 移動先ゲストOSメモリ
1201、1202 仮想マシンモニタ
1221、1222 マイグレーション制御部
1231 移動元仮想計算機
1232 移動先仮想計算機
1241 移動元ゲストOS
1242 移動先ゲストOS

Claims (12)

  1. 第1のプロセッサと第1のメモリを備えた第1の物理計算機と、
    前記第1の物理計算機の計算機資源を仮想化して第1の仮想計算機を実行する第1の仮想化部と、
    第2のプロセッサと第2のメモリを備えた第2の物理計算機と、
    前記第2の物理計算機の計算機資源を仮想化して第2の仮想計算機を実行する第2の仮想化部と、
    前記第1の物理計算機及び第2の物理計算機とI/Oデバイスを接続するI/Oスイッチと、
    前記第1の仮想化部は、前記第1の仮想計算機で実行される第1のOSを前記第2の仮想計算機へ移動させるマイグレーション制御部を備えた複合型計算機であって、
    前記第1の仮想化部は、
    前記マイグレーション制御部が前記第1のOSを前記第2の仮想計算機へ移動させる場合には、前記第1のOSの稼働中に当該第1の仮想化部が前記第1のOSに割り当てた第1のメモリの領域を、前記第2の物理計算機の第2のメモリへコピーするバックグラウンドコピー部を有し、
    当該バックグラウンドコピー部は、
    前記第1のメモリの状態を、前記第2のメモリへのコピーが完了したコピー済み領域と、前記第2のメモリへのコピーを実行中のコピー中領域と、前記第2のメモリへのコピーが未了の未コピー領域の何れかに分類して、当該分類したメモリ状態と第1のメモリのアドレスとを分類情報として前記I/Oスイッチへ通知し、
    前記I/Oデバイスは、予め割り当てられた前記第1の物理計算機の第1のOSに割り当てられた第1のメモリとの間でDMAアクセスを行い、
    前記I/Oスイッチは、
    前記第1のOSに割り当てた前記I/OデバイスからDMA書き込みトランザクションを受信した場合には、当該DMA書き込みトランザクションの宛先アドレスと前記第1のメモリの前記分類情報のアドレスとを比較して、当該DMA書き込みトランザクションのアドレスが前記コピー済み領域の場合は当該DMA書き込みトランザクションを前記第1のメモリと前記第2のメモリの両方にDMA書き込みを行い、当該DMA書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第1のメモリのみにDMA書き込みを行うI/O制御部を有することを特徴とする複合型計算機。
  2. 請求項1に記載の複合型計算機において、
    前記I/O制御部は、
    前記第1のOSに割当てたI/OデバイスからのDMA書き込みトランザクションを受信した場合は、当該DMA書き込みトランザクションの宛先アドレスと前記第1のメモリの前記分類情報のアドレスとを比較して、当該DMA書き込みトランザクションのアドレスが前記コピー中領域の場合には、前記第1のメモリにDMA書き込みを行い、前記第1のメモリに予め設定したアドレス格納領域に当該DMA書き込みトランザクションのアドレス情報を格納し、
    前記第1の仮想化部は、
    前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第1のメモリから第2のメモリにコピーを行うことを特徴とする複合型計算機。
  3. 請求項2に記載の複合型計算機において、
    前記第1の仮想化部は、
    前記バックグラウンドコピー部の進捗状態として、前記第1のメモリを、前記コピー済み領域と、前記コピー中領域と、前記未コピー領域の何れかに分類し、前記コピー中領域のコピーが完了した場合には、当該コピー中領域をコピー済み領域に再分類し、前記未コピー領域の一部、または、全部を新たにコピー中領域に再分類して、前記I/Oスイッチに通知し、前記コピー中領域からコピー済み領域に再分類された第1のメモリから第2のメモリへコピーを行うことを特徴とする複合型計算機。
  4. 請求項1に記載の複合型計算機において、
    前記I/O制御部は、
    前記第1のOSに割当てたI/OデバイスからのDMA書き込みトランザクションを受信した場合は、当該DMA書き込みトランザクションの宛先アドレスを前記第1のOSのゲスト物理アドレスから第1の物理計算機のホスト物理アドレスに変換してから第1のメモリに書き込みを行い、前記第2のメモリにDMA書き込みを行う場合には当該DMA書き込みトランザクションの宛先アドレスを第1のOSのゲスト物理アドレスから第2の物理計算機のホスト物理アドレスに変換して前記第2のメモリに書き込みを行うことを特徴とする複合型計算機。
  5. 請求項1に記載の複合型計算機において、
    前記第1の物理計算機は、前記I/Oスイッチと第1のプロセッサおよび第1のメモリとを接続する第1の制御ハブを有し、
    前記第1の制御ハブは前記第1の仮想計算機の第1のOSのゲスト物理アドレスから物理計算機の対応するホスト物理アドレスに変換する第1のアドレス変換部を有し、
    前記第2の物理計算機は、前記I/Oスイッチと第2のプロセッサおよび第2のメモリを接続する第2の制御ハブを有し、
    前記第2の制御ハブは前記第2の仮想計算機に移動させる前記第1のOSのゲスト物理アドレスから第2の物理計算機のホスト物理アドレスに変換する第2のアドレス変換部を有し、
    前記第1の制御ハブは、前記I/OスイッチからDMA書き込みを受け付けた場合には、前記第1の物理計算機の第1のアドレス変換部で当該DMA書き込みのアドレスを第1のOSのゲスト物理アドレスから第1の物理計算機のホスト物理アドレスに変換して第1のメモリへ書き込みを行い、
    前記第2の制御ハブは、前記I/OスイッチからDMA書き込みを受け付けた場合には、前記第2の物理計算機の第2のアドレス変換部で当該DMA書き込みのアドレスを前記第1のOSのゲスト物理アドレスから第2の物理計算機のホスト物理アドレスに変換して第2のメモリへ書き込みを行うことを特徴とする複合型計算機。
  6. 請求項1に記載の複合型計算機において、
    前記複合型計算機の前記第1の物理計算機上で動作する第1のOSを前記第2の物理計算機に移動することを管理する管理計算機を有し、
    前記管理計算機は、第1のOSの移動開始時に前記第1の仮想化部にマイグレーション構成情報として、移動元と移動先の物理計算機の識別子と、移動元と移動先の仮想計算機の識別子と、移動元と移動先のゲスト物理アドレスからホスト物理アドレスの変換情報と、第1のOSに割当てられているI/Oデバイスの識別子を通知することを特徴とする複合型計算機。
  7. 第1のプロセッサと第1のメモリを備えた第1の物理計算機と、前記第1の物理計算機の計算機資源を仮想化して第1の仮想計算機を実行する第1の仮想化部と、第2のプロセッサと第2のメモリを備えた第2の物理計算機と、前記第2の物理計算機の計算機資源を仮想化して第2の仮想計算機を実行する第2の仮想化部と、前記第1の物理計算機及び第2の物理計算機とI/Oデバイスを接続するI/Oスイッチと、を備えた複合型計算機で前記第1の仮想化部が、前記第1の仮想計算機で実行される第1のOSを前記第2の仮想計算機へ移動させる複合型計算機の制御方法であって、
    前記第1の仮想化部が前記第1のOSを前記第2の仮想計算機へ移動させる場合には、前記第1のOSの稼働中に当該第1の仮想化部が前記第1のOSに割り当てた第1のメモリの領域を、前記第2の物理計算機の第2のメモリへコピーするステップと、
    前記第1の仮想化部が、前記第1のメモリの状態を、前記第2のメモリへのコピーが完了したコピー済み領域と、前記第2のメモリへのコピーを実行中のコピー中領域と、前記第2のメモリへのコピーが未了の未コピー領域の何れかに分類して、当該分類したメモリ状態と第1のメモリのアドレスとを分類情報として前記I/Oスイッチへ通知するステップと、
    前記I/Oスイッチが、前記第1のOSに割り当てた前記I/OデバイスからDMA書き込みトランザクションを受信した場合には、当該DMA書き込みトランザクションの宛先アドレスと前記第1のメモリの前記分類情報のアドレスとを比較するステップと、
    前記I/Oスイッチが、前記比較の結果、前記DMA書き込みトランザクションのアドレスが前記コピー済み領域の場合は当該DMA書き込みトランザクションを前記第1のメモリと前記第2のメモリの両方にDMA書き込みを行うステップと、
    前記I/Oスイッチが、前記比較の結果、前記DMA書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第1のメモリのみにDMA書き込みを行うステップと、
    を含むことを特徴とする複合型計算機の制御方法。
  8. 請求項7に記載の複合型計算機の制御方法において、
    前記I/Oスイッチが、前記比較の結果、前記DMA書き込みトランザクションのアドレスが前記コピー中領域または未コピー領域の場合には、前記第1のメモリのみにDMA書き込みを行うステップは、
    前記DMA書き込みトランザクションのアドレスが前記コピー中領域の場合には、前記第1のメモリにDMA書き込みを行い、前記第1のメモリに予め設定したアドレス格納領域に当該DMA書き込みトランザクションのアドレス情報を格納するステップと、
    前記第1の仮想化部が、前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第1のメモリから第2のメモリにコピーを行うステップと、
    を含むことを特徴とする複合型計算機の制御方法。
  9. 請求項8に記載の複合型計算機の制御方法において、
    前記第1の仮想化部が、前記コピー中領域のコピーが完了した後に、前記アドレス格納領域に格納した前記アドレス情報を取得し、当該アドレス情報が指し示す前記第1のメモリから第2のメモリにコピーを行うステップは、
    前記コピー中領域のコピーが完了した場合には、当該コピー中領域をコピー済み領域に再分類し、前記未コピー領域の一部、または、全部を新たにコピー中領域に再分類して、前記I/Oスイッチに通知し、前記コピー中領域からコピー済み領域に再分類された第1のメモリから第2のメモリへコピーを行うことを特徴とする複合型計算機の制御方法。
  10. 請求項7に記載の複合型計算機の制御方法において、
    前記I/Oスイッチが、前記第1のOSに割当てたI/OデバイスからのDMA書き込みトランザクションを受信した場合は、当該DMA書き込みトランザクションの宛先アドレスを前記第1のOSのゲスト物理アドレスから第1の物理計算機のホスト物理アドレスに変換してから第1のメモリに書き込みを行い、前記第2のメモリにDMA書き込みを行う場合には当該DMA書き込みトランザクションの宛先アドレスを第1のOSのゲスト物理アドレスから第2の物理計算機のホスト物理アドレスに変換して前記第2のメモリに書き込みを行うことを特徴とする複合型計算機の制御方法。
  11. 請求項7に記載の複合型計算機の制御方法において、
    前記第1の物理計算機は、前記I/Oスイッチと第1のプロセッサおよび第1のメモリとを接続する第1の制御ハブを有し、
    前記第1の制御ハブは前記第1の仮想計算機の第1のOSのゲスト物理アドレスから物理計算機の対応するホスト物理アドレスに変換する第1のアドレス変換部を有し、
    前記第2の物理計算機は、前記I/Oスイッチと第2のプロセッサおよび第2のメモリを接続する第2の制御ハブを有し、
    前記第2の制御ハブは前記第2の仮想計算機に移動させる前記第1のOSのゲスト物理アドレスから第2の物理計算機のホスト物理アドレスに変換する第2のアドレス変換部を有し、
    前記第1の制御ハブが、前記I/OスイッチからDMA書き込みを受け付けた場合には、前記第1の物理計算機の第1のアドレス変換部で当該DMA書き込みのアドレスを第1のOSのゲスト物理アドレスから第1の物理計算機のホスト物理アドレスに変換して第1のメモリへ書き込みを行うステップと、
    前記第2の制御ハブが、前記I/OスイッチからDMA書き込みを受け付けた場合には、前記第2の物理計算機の第2のアドレス変換部で当該DMA書き込みのアドレスを前記第1のOSのゲスト物理アドレスから第2の物理計算機のホスト物理アドレスに変換して第2のメモリへ書き込みを行うステップと、
    をさらに含むことを特徴とする複合型計算機の制御方法。
  12. 請求項7に記載の複合型計算機の制御方法において、
    前記複合型計算機の前記第1の物理計算機上で動作する第1のOSを前記第2の物理計算機に移動することを管理する管理計算機をさらに有し、
    前記管理計算機が、第1のOSの移動開始時に前記第1の仮想化部へマイグレーション構成情報として、移動元と移動先の物理計算機の識別子と、移動元と移動先の仮想計算機の識別子と、移動元と移動先のゲスト物理アドレスからホスト物理アドレスの変換情報と、第1のOSに割当てられているI/Oデバイスの識別子を通知するステップをさらに含むことを特徴とする複合型計算機の制御方法。
JP2008200682A 2008-08-04 2008-08-04 複合型計算機及び複合型計算機の制御方法 Expired - Fee Related JP5262404B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008200682A JP5262404B2 (ja) 2008-08-04 2008-08-04 複合型計算機及び複合型計算機の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008200682A JP5262404B2 (ja) 2008-08-04 2008-08-04 複合型計算機及び複合型計算機の制御方法

Publications (2)

Publication Number Publication Date
JP2010039685A JP2010039685A (ja) 2010-02-18
JP5262404B2 true JP5262404B2 (ja) 2013-08-14

Family

ID=42012182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008200682A Expired - Fee Related JP5262404B2 (ja) 2008-08-04 2008-08-04 複合型計算機及び複合型計算機の制御方法

Country Status (1)

Country Link
JP (1) JP5262404B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4947081B2 (ja) * 2009-03-30 2012-06-06 日本電気株式会社 パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム
JP5585820B2 (ja) * 2010-04-14 2014-09-10 株式会社日立製作所 データ転送装置、計算機システム及びメモリコピー装置
JP5477168B2 (ja) * 2010-05-27 2014-04-23 日本電気株式会社 マルチホストシステム
JP5469022B2 (ja) * 2010-09-07 2014-04-09 株式会社日立製作所 計算機システム、計算機間メモリコピー方法、及びスイッチ
WO2012063334A1 (ja) * 2010-11-10 2012-05-18 株式会社日立製作所 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ
CN102073462B (zh) * 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、***和虚拟机监控器
US9253100B2 (en) 2010-12-10 2016-02-02 Alcatel Lucent Asynchronous virtual machine replication
JP5573649B2 (ja) * 2010-12-17 2014-08-20 富士通株式会社 情報処理装置
WO2012101759A1 (ja) * 2011-01-25 2012-08-02 富士通株式会社 プロセッサ処理方法、およびプロセッサシステム
JP5742387B2 (ja) 2011-03-31 2015-07-01 富士通株式会社 情報処理システム、及びi/oスイッチ装置
JP5760647B2 (ja) * 2011-04-27 2015-08-12 日本電気株式会社 仮想環境における仮想ルーティング方法及び仮想ルーティングシステム
JP6007547B2 (ja) 2012-03-30 2016-10-12 日本電気株式会社 仮想化システム、スイッチコントローラ、ファイバチャネルスイッチ、マイグレーション方法、マイグレーションプログラム
JP6028415B2 (ja) * 2012-06-28 2016-11-16 日本電気株式会社 仮想サーバ環境のデータ移行制御装置、方法、システム
WO2014030221A1 (ja) * 2012-08-22 2014-02-27 株式会社日立製作所 仮想計算機システム、管理計算機及び仮想計算機管理方法
JP2015170242A (ja) * 2014-03-10 2015-09-28 富士通株式会社 中継プログラム、中継方法、および中継装置
JP2016018298A (ja) 2014-07-07 2016-02-01 富士通株式会社 通知変換プログラム及び通知変換方法
JP6835474B2 (ja) * 2016-02-26 2021-02-24 日本電気株式会社 ストレージ装置の制御装置、ストレージ装置の制御方法、およびストレージ装置の制御プログラム
JP2018136814A (ja) * 2017-02-23 2018-08-30 日本電信電話株式会社 アプリケーション冗長化管理システムおよびアプリケーション冗長化管理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184799A (ja) * 1997-12-19 1999-07-09 Toshiba Corp メモリデータ転送方法ならびに装置
JP3565767B2 (ja) * 2000-07-19 2004-09-15 トラストガード株式会社 カートリッジ型サーバユニットおよび該サーバユニット搭載用筐体ならびにサーバ装置
JP4214682B2 (ja) * 2001-01-24 2009-01-28 株式会社日立製作所 計算機およびその入出力手段
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7730486B2 (en) * 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
JP5116497B2 (ja) * 2008-01-31 2013-01-09 株式会社日立製作所 情報処理システム、i/oスイッチ及びi/oパスの交替処理方法
JP2009294828A (ja) * 2008-06-04 2009-12-17 Hitachi Ltd Pciスイッチ、仮想ツリー切り替え方法、及びpciスイッチシステム

Also Published As

Publication number Publication date
JP2010039685A (ja) 2010-02-18

Similar Documents

Publication Publication Date Title
JP5262404B2 (ja) 複合型計算機及び複合型計算機の制御方法
US11636015B2 (en) Storage system and control software deployment method
CN112148421B (zh) 虚拟机迁移的方法以及装置
US7484029B2 (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
JP4681505B2 (ja) 計算機システム、管理計算機及びプログラム配布方法
JP6055310B2 (ja) 仮想記憶ターゲットオフロード技術
JP5692065B2 (ja) 計算機システムにおける仮想装置の高速移動システム及び管理装置並びにその方法及びそのプログラム
US8171176B2 (en) Method for selective replication of physical devices on a virtual self-configuring zoning expander
US20080294888A1 (en) Deploy target computer, deployment system and deploying method
US20220138063A1 (en) System, and control method and program for input/output requests for storage systems
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
JP2006085543A (ja) 仮想計算機システム
US20130283264A1 (en) Method for selective replication of physical devices on a virtual self-configuring zoning expander
US10761859B2 (en) Information processing system, management device, and method for controlling information processing system
US9658786B2 (en) Setting optimal space allocation policy for creating dependent snapshots to enhance application write performance and reduce resource usage
US10762021B2 (en) Information processing system, and control method of information processing system
WO2023093418A1 (zh) 数据迁移方法、装置及电子设备
JP5511546B2 (ja) フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法
WO2018083724A1 (ja) 仮想計算機システム及び仮想計算機のマイグレーション方法
JP2021082182A (ja) 情報処理システム、ストレージ制御プログラム、及び、ストレージ制御装置
WO2018011881A1 (ja) ストレージ装置及び計算機システム
WO2018016041A1 (ja) ストレージシステム
JP2009223400A (ja) コンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110502

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees