説明

仮想計算機システム及び仮想計算機移行制御方法

【課題】別々のSAN環境のためストレージ装置のボリュームを共有できない場合でも仮想サーバのライブマイグレーションを可能とする仮想計算機システム及び仮想計算機移行制御方法を提案する。
【解決手段】移行元仮想サーバと移行先仮想サーバの夫々には、夫々の管理OSが管理する論理ボリュームと各仮想OSが管理する論理ボリュームとを割り当てるボリューム割当て部と、論理ボリュームを識別するボリューム識別情報と夫々の管理OSが管理する論理ボリュームとを対応付けて管理するボリューム情報管理部と、ボリューム識別情報に基づいて、移行元仮想サーバと移行先仮想サーバとが同一の論理ボリュームを対象論理ボリュームとして識別する識別部と、移行元仮想サーバの仮想OSが使用するメモリ領域内のデータを移行先仮想サーバに移行し、移行中に更新されるメモリ領域内の更新データを移行先仮想サーバに移行する仮想OS移行部と、を備えることとした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想計算機システム及び仮想計算機移行方法に関し、特に複数の仮想OS(Operation System)を搭載する仮想サーバを使用する仮想計算機システムに適用する。
【背景技術】
【0002】
従来から、サーバのハードウェアを仮想化し、その仮想ハードウェア上で仮想OSを動作させる仮想マシン技術が知られている。この仮想マシン技術においては、仮想ハードウェアを複数用意して複数の仮想OSを同時に動作させることができる、仮想サーバが使用される。本来ならば複数のサーバ上でそれぞれ動作させる複数のOSを仮想サーバ内に複数の仮想OSとして統合できるので、サーバ運用コストを削減することができる。
【0003】
また、仮想マシン技術においては、特許文献1に開示されるように、一方の仮想サーバで動作する仮想OSを他方の仮想サーバに移行するライブマイグレーション機能も発達している。ライブマイグレーション機能は、一方の仮想サーバがリードライト中であっても他方の仮想サーバに仮想OSを移行できる。
【0004】
一方、ストレージ装置を用いてデータを格納する場合には、複数のハードディスクをRAID(Redundant Array of Independent/Inexpensive Disks)方式で管理する方法がある。そして、多数のハードディスクが提供する物理的な記憶領域上には、少なくとも1つ以上の論理的なボリューム(以下、これをボリュームという)が形成される。
【特許文献1】特開平10−283210号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
仮想サーバとストレージ装置とは、高速ネットワークの1つであるSAN(Storage Area Network)を介して接続される。しかしながら、一方の仮想サーバと他方の仮想サーバとの距離が離れている等の理由から、両仮想サーバが別々のSAN環境にある場合には、一方の仮想サーバで動作する仮想OSを他方の仮想サーバに移行することはできない、という問題が生じる。
【0006】
加えて、このような別々のSAN環境においては、一方の仮想サーバは他方の仮想サーバと接続されるストレージ装置内のボリュームを共有することはできない。
【0007】
そこで、本発明は、別々のSAN環境であるためにストレージ装置のボリュームを共有できない場合でも、仮想サーバのライブマイグレーションを可能とする仮想計算機システム及び仮想計算機移行制御方法を提案しようとするものである。
【課題を解決するための手段】
【0008】
かかる課題を解決するため本発明の仮想計算機システムにおいては、1又は複数の仮想OSと、1又は複数の仮想OSを管理する管理OSと、を有する移行元仮想サーバ及び移行先仮想サーバと、管理サーバからのデータを格納するハードディスク上の記憶領域から提供される複数の論理ボリュームを有する複数のストレージ装置と、を有し、移行元仮想サーバと移行先仮想サーバとは、第1ネットワークを介して相互に接続され、移行元仮想サーバは、第2ネットワークを介してストレージ装置と接続され、移行先仮想サーバは、第3ネットワークを介して他のストレージ装置と接続され、移行元仮想サーバと移行先仮想サーバの夫々には、夫々の管理OSが管理する論理ボリュームと、各仮想OSが管理する論理ボリュームと、を割り当てるボリューム割当て部と、論理ボリュームを識別するボリューム識別情報と、夫々の管理OSが管理する論理ボリュームと、を対応付けて管理するボリューム情報管理部と、ボリューム識別情報に基づいて、移行元仮想サーバと移行先仮想サーバとが同一の論理ボリュームを対象論理ボリュームとして識別する識別部と、移行元仮想サーバの仮想OSが使用するメモリ領域内のデータを移行先仮想サーバに移行し、移行中に更新されるメモリ領域内の更新データを移行先仮想サーバに移行する仮想OS移行部と、を備えることを特徴とする。
【0009】
その結果、別々のネットワーク環境にあっても両仮想サーバはストレージ装置のボリュームを共有することができ、一方の仮想サーバから他方の仮想サーバに仮想OSを移行することができる。
【0010】
また、本発明においては、1又は複数の仮想OSと、1又は複数の仮想OSを管理する管理OSと、を有する移行元仮想サーバ及び移行先仮想サーバと、管理サーバからのデータを格納するハードディスク上の記憶領域から提供される複数の論理ボリュームを有する複数のストレージ装置と、を有し、移行元仮想サーバと移行先仮想サーバとは、第1ネットワークを介して相互に接続され、移行元仮想サーバは、第2ネットワークを介してストレージ装置と接続され、移行先仮想サーバは、第3ネットワークを介して他のストレージ装置と接続される仮想計算機システムの仮想計算機移行制御方法であって、夫々の管理OSが管理する論理ボリュームと、各仮想OSが管理する論理ボリュームと、を割り当てるボリューム割当てステップと、論理ボリュームを識別するボリューム識別情報と、夫々の管理OSが管理する論理ボリュームと、を対応付けて管理するボリューム情報管理ステップと、ボリューム識別情報に基づいて、移行元仮想サーバと移行先仮想サーバとが同一の論理ボリュームを対象論理ボリュームとして識別する識別ステップと、移行元仮想サーバの仮想OSが使用するメモリ領域内のデータを移行先仮想サーバに移行し、移行中に更新されるメモリ領域内の更新データを移行先仮想サーバに移行する仮想OS移行ステップと、を備えることを特徴とする。
【0011】
その結果、別々のネットワーク環境にあっても両仮想サーバはストレージ装置のボリュームを共有することができ、一方の仮想サーバから他方の仮想サーバに仮想OSを移行することができる。
【発明の効果】
【0012】
本発明によれば、別々のSAN環境であるためにストレージ装置のボリュームを共有できない場合でも、仮想サーバのライブマイグレーションを実行することができる。
【発明を実施するための最良の形態】
【0013】
以下図面について、本発明の一実施の形態を詳述する。
【0014】
(1)第1の実施の形態
(1−1)第1の実施の形態による仮想計算機システムの構成
(1−1−1)仮想計算機システムのハードウェア構成
図1において、1は全体として本実施の形態による仮想計算機システムを示す。この記憶システム1は、複数の仮想サーバ2A,2B間がIP(Internet Protocol)ネットワーク3を介して接続され、仮想サーバ2Aが第1のSAN4Aを介してストレージ装置5Aと接続され、仮想サーバ2Bが第2のSAN4Bを介してストレージ装置5Bと接続されることにより構成されている。
【0015】
仮想サーバ2A,2Bは、それぞれ別々のSAN4A、4Bに接続されている。このため、仮想サーバの区別をする場合にはA,Bと記載するが、特に区別をする必要がない場合にはA,B記載をせずに説明する。SAN4A,4B及びストレージ装置5A,5Bの場合も同様である。
【0016】
仮想サーバ2は、CPU(Central Processing Unit)20やメインメモリ21等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。また仮想サーバ2は、ストレージ装置5との接続インタフェースであるHBA(Host Bus Adapter)22、仮想サーバ2内のデータを記憶するローカルディスク23、及び、他の仮想サーバ2との接続インタフェースであるNIC(Network Interface Card)24等のハードウェア25を備える。
【0017】
このハードウェア25は、仮想サーバ2の操作等を行うモニタ26やキーボード27の情報入出力装置と接続される。CPU20、メインメモリ21、及び、ハードウェア25は、バス28を介して接続される。
【0018】
図2に示すように、仮想サーバ2のメインメモリ21には、後述するボリューム割当テーブル210、メモリ領域管理テーブル211、メモリ差分管理テーブル212、及び、ボリューム情報管理テーブル213が格納される。なお、図2は、移行元仮想サーバ2Aのメインメモリ21Aを示しているが、移行先仮想サーバ2Bも同様の構成である。
【0019】
ストレージ装置5は、図1に示すように、1又は複数備えられ、複数のボリューム60からなるディスクユニット部6と、複数のボリューム60をRAID方式で管理するコントローラ部7とを備えて構成される。
【0020】
ディスクユニット部6は、複数のボリューム60を形成させる多数のハードディスク(図示せず)が構成されている。ハードディスクは、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスク、又はSATA(Serial AT Attachment)ディスクや光ディスク等の安価なディスクから構成される。
【0021】
ボリューム60には、それぞれ固有の識別子(LUN:Logical Unit Number)が割り当てられる。データの入出力は、この識別子と、各ブロックにそれぞれ割り当てられるそのブロックに固有の番号(LBA:Logical Block Address)と、の組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【0022】
コントローラ部7は、チャネルアダプタ70、I/O(Input/Output)キャッシュ71、共有メモリ72、ディスクアダプタ73がスイッチ74を介して接続されて構成される。
【0023】
チャネルアダプタ70は、チャネルプロセッサ700、ローカルメモリ701及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、SAN4に接続するためのFC(Fible Channel)ポート702を備える。チャネルアダプタ70は、仮想サーバ2から送信される各種コマンドを解釈して、必要な処理を実行する。チャネルアダプタ70のFCポート702には、それぞれを識別するためのネットワークアドレス(例えば、WWN)が割当てられており、これによりチャネルアダプタ7がそれぞれ個別にNAS(Network Attached Storage)として使用できるようになされている。
【0024】
I/Oキャッシュ71は、チャネルアダプタ70及びディスクアダプタ73により共有される記憶メモリである。このI/Oキャッシュ71は、主にストレージ装置5に入出力する仮想サーバ2のデータを一時的に記憶するために利用される。
【0025】
共有メモリ72は、チャネルアダプタ70及びディスクアダプタ73により共有される記憶メモリである。共有メモリ72は、主にストレージ装置5の電源投入時にシステムボリュームから読み出されたシステム構成情報及び各種制御プログラムや、仮想サーバ2からのコマンドなどを記憶するために利用される。共有メモリ72内には、ディスクユニット部6にある複数のボリューム60を管理するリソース情報管理部720を備える。
【0026】
ディスクアダプタ73は、ディスクプロセッサ730やローカルメモリ731等を備えたマイクロコンピュータシステムとして構成され、ディスクユニット部6との通信時におけるプロトコル制御を行うインタフェースとして機能する。ディスクアダプタ73は、例えばファイバーチャネルケーブルを介して対応するディスクユニット部6と接続されており、ファイバーチャネルプロトコルに従ってディスクユニット部6との間のデータの授受を行う。
【0027】
チャネルアダプタ70、I/Oキャッシュ71、共有メモリ72及びディスクアダプタ73間のデータやコマンドの授受は、スイッチ74を介して行われる。スイッチ74は、例えば高速スイッチングによりデータ伝送を行う超高速クロスバススイッチなどのスイッチ又はバス等で構成される。
【0028】
このように本実施の形態による仮想計算機システム1は、それぞれの仮想サーバ2A、2Bがそれぞれ別々のSAN4A、4Bを介して、それぞれ別々のストレージ装置5A、5Bと接続される構成である。このため、仮想サーバ2Bは、仮想サーバ2Aと接続されるストレージ装置5A内に形成されるボリューム60を共有することはできない環境にある。本実施の形態による発明は、このような環境下において、仮想サーバ間で仮想OSの移行(ライブマイグレーション)を実行することを特徴とする。
【0029】
(1−1−2)仮想サーバのソフトウェア構成
では次に、上述の仮想サーバ2のソフトウェア構成について説明する。以下では、移行対象の仮想OSを有する移行元仮想サーバを仮想サーバ2A、移行後の仮想OSを有する移行先仮想サーバを仮想サーバ2Bとして説明する。
【0030】
具体的なソフトウェア構成を図3に示す。まず移行元仮想サーバ2Aは、1台のサーバマシン上で、アプリケーションAPを動作させる仮想OS(以下、ゲストOSという)を複数同時に動作させるサーバである。移行元仮想サーバ2Aは、このゲストOS80Aの他、管理OS81A、仮想マシンモニタ82A、及び、上述したハードウェア25Aを備えている。
【0031】
ゲストOS80Aには、アプリケーションAP上のユーザデータを記憶するために、複数のボリュームa,bを認識する。
【0032】
管理OS81Aは、移行元仮想サーバ2A上のハードウェアリソースの管理と、複数のゲストOS80Aの管理を行うOSであり、ボリューム1、2を認識している。なお、この管理OS81Aは、仮想サーバ2によっては、後述する仮想マシンモニタ82Aに実装されている場合もある。
【0033】
また、管理OS81Aには、移行元仮想サーバ2Aと移行先仮想サーバ2Bとの間でデータの授受を行うためのI/O受信プロセス810A、複数のゲストOS80Aが認識するボリュームa,bと管理OS81Aが認識するボリューム1、2との対応付けを管理するゲストOS管理ファイル811A、ゲストOS80Aが認識するボリュームa,bに対応付けて形成するボリューム用デバイスファイル814A、が主に備えられる。
【0034】
I/O受信プロセス810Aは、移行先仮想サーバ2B内のI/O発信プロセス810Bが認識するボリュームとI/O受信プロセス810Aが認識するボリュームとの対応づけを行ったり、リードやライト等のI/O要求コマンドを発行する管理OS上で動作させたりするプロセスである。
【0035】
またI/O受信プロセス810AはIPネットワーク3を使用してデータの授受を行うためのネットワークデバイス812Aと接続され、ネットワークデバイス812AはアプリケーションAPがIPネットワーク3を利用するたびに呼び出されるNIC(Network Interface Card)ドライバ813Aと接続されている。
【0036】
ボリューム用デバイスファイル814Aは、ストレージ装置5A内に形成されるボリューム1,2を認識するためのデバイスファイルであり、ストレージ装置5A内に形成されるボリューム1,2の数に対応して形成される。そして、ストレージ装置5A内のボリューム1,2をブロックデバイス8140Aが認識し、認識したボリューム1,2に対応してデバイスドライバ8141Aが登録される。
【0037】
また、ボリューム用デバイスファイル814Aは、SAN4を利用するたびに呼び出されるHBAドライバ815Aと接続されている。なお、HBAドライバ815Aも、ボリューム用デバイスファイル814Aの数分有するが、図中では記載を省略している。
【0038】
仮想マシンモニタ82Aは、複数のゲストOS80Aがそれぞれ行うアプリケーション処理を調整して、どのゲストOS80Aのアプリケーション処理を実行するかの切り替え処理を行う。この切り替えは高速で行われるため、複数のゲストOS80Aが同時に動作しているようにみえる。
【0039】
ハードウェア25Aでは、上述したHBA22AがHBAドライバ815Aと接続され、NIC24がNICドライバ813Aと接続される。
【0040】
移行先仮想サーバ2Bは、移行元仮想サーバ2Aで動作するゲストOS80Aのライブマイグレーションを実行しない状態でのソフトウェア構成を示す。移行先仮想サーバ2Bは、管理OS81B、仮想マシンモニタ82B、及び、上述したハードウェア25Bを備えている。
【0041】
そして管理OS81Aには、移行元仮想サーバ2Aと移行先仮想サーバ2Bとの間でデータの授受を行うためのI/O発信プロセス810B、ライブマイグレーション後のゲストOS80が認識するボリュームと管理OS81Bが認識するボリュームとの対応付けを管理するゲストOS管理ファイル811B、が主に備えられる。
【0042】
なお、ネットワークデバイス812B、NICドライバ813B、仮想マシンモニタ82B、及び、NIC24Bは上述した移行元仮想サーバ2Aと同様の構成のため説明を省略する。
【0043】
(1−2)テーブル構成
それでは次に、仮想サーバ2のメインメモリ21に格納される各種テーブル構成について説明する。
【0044】
(1−2−1)ボリューム割当テーブル
ボリューム割当テーブル210は、メインメモリ21のゲストOS構成管理ファイル811内に格納されているテーブルであり、ストレージ装置5A上のどのボリューム60をどのゲストOS80に認識させるかを定めるテーブルである。
【0045】
ボリューム割当テーブル210は、複数のゲストOSを識別する識別情報を示した「ゲストOS識別情報」欄2100、ストレージ装置5A上のボリューム60を管理OS81上で管理しているボリューム名を示した「管理OS上のボリューム名」欄2101、及び、ストレージ装置5A上のボリューム60をゲストOS80上で管理しているボリューム名を示した「ゲストOS上のボリューム名」欄2102から構成される。図4に示すように、ストレージ装置5A上のボリューム60を管理OS81上で管理しているボリューム名と、ストレージ装置5A上のボリューム60をゲストOS80上で管理しているボリューム名と、を対応付ける。
【0046】
(1−2−2)メモリ領域管理テーブル
メモリ領域管理テーブル211は、どのゲストOS80がメインメモリ21上の領域どの範囲を使用しているかを管理するテーブルである。ライブマイグレーションを実行する際は、この管理テーブル211に基づいて、メインメモリ21領域内にあるライブマイグレーション対象のゲストOS80のデータをコピーして移行先仮想サーバ2Bに送信する。
【0047】
メモリ領域管理テーブル211は、図5に示すように、「ゲストOS識別情報」欄2110、ゲストOS80内のデータを格納する開始アドレスを示した「メモリ上の領域開始アドレス」欄2111、及び、ゲストOS80内のデータを格納する終了アドレスを示した「メモリ上の領域終了アドレス」欄2112から構成される。
【0048】
なお、「ゲストOS識別情報」欄2110は、上述した「ゲストOS識別情報」欄2100と同様の内容なので、説明を省略する。
【0049】
(1−2−3)メモリ差分管理テーブル
メモリ差分管理テーブル212は、メインメモリ21領域内のライブマイグレーション対象のゲストOS80のデータを移行先仮想サーバ2Bに送信している間にも更新されるゲストOS80のデータを差分データとして管理するテーブルである。
【0050】
メモリ差分管理テーブル212は、図6に示すように、「ゲストOS識別情報」欄2120、差分データを処理するために付される管理番号を示した「メモリ差分シーケンシャル番号」欄2121、及び、差分データをメインメモリ21領域内に格納したアドレスを示した「変更アドレス」欄2122から構成される。
【0051】
なお、「ゲストOS識別情報」欄2120は、上述した「ゲストOS識別情報」欄2100と同様の内容なので、説明を省略する。
【0052】
(1−2−4)ボリューム情報管理テーブル
ボリューム情報管理テーブル213は、図7に示すように、I/O受信プロセス810A又はI/O発信プロセス810B内に格納されるテーブルであって、ストレージ装置5Aのボリューム識別情報と各管理OS81が認識するボリューム名とを対応付けるテーブルである。したがって、ボリューム情報管理テーブル213は、管理OSごとに保持される。
【0053】
ボリューム情報管理テーブル213は、ボリューム60の管理番号を示した「ボリューム管理番号」欄2130、「管理OS上のボリューム名」欄2131、ストレージ装置5Aの製造番号を示した「ストレージ装置製造番号」欄2132、ボリュームの識別情報を示した「ボリューム識別情報」欄2133、及び、ライブマイグレーションの元又は先のIPアドレスを示した「リモート側管理OS識別情報」欄2134から構成される。
【0054】
例えば、移行元仮想サーバ2Aの場合には、「リモート側管理OS識別情報」欄2134にはライブマイグレーション先の移行先仮想サーバ2BのIPアドレスが登録される。一方、移行先仮想サーバ2Bの場合には、「リモート側管理OS識別情報」欄2134にはライブマイグレーション元の移行元仮想サーバ2AのIPアドレスが登録される。
【0055】
なお、「管理OS上のボリューム名」欄2131は、上述した「管理OS上のボリューム名」欄2101と同様の内容なので、説明を省略する。
【0056】
(1−3)ライブマイグレーション処理
上述のソフトウェア構成やテーブル構成に基づいて、移行元仮想サーバ2AにあるゲストOS80をどのように移行先仮想サーバ2Bに移行するかについて説明する。
【0057】
(1−3−1)ボリューム認識処理
まず、ライブマイグレーションを実行するための事前の準備として、移行元仮想サーバ2Aと移行先仮想サーバ2Bとが認識(識別)できる共通のボリューム60を設定する必要がある。
【0058】
具体的には、図8及び図9に示すように、ユーザが情報入出力装置26A、27Aを使用して、管理OS81AにI/O受信設定コマンドを発行する。I/O受信設定コマンドは、I/O受信設定コマンドであるコマンド名と、実行に必要な情報であるユーザID及びパスワードと、からなる。そしてユーザは移行元仮想サーバ2Aの管理OS81A上で移行先仮想サーバ2Bの管理OS81Bから接続がある際の認証に使用する、ユーザID及びパスワードを設定する(S1)。設定された情報は、I/O受信プロセス810Aが保持する。
【0059】
次に、ユーザが管理OS81AにI/O受信ボリューム設定コマンドを発行し、管理OS81Aが認識しているボリューム60Aのうち、どのボリューム60Aを移行先仮想サーバ2Bの管理OS81Bにも認識させるかを設定する(S2)。I/O受信ボリューム設定コマンドは、I/O受信ボリューム設定コマンドであるコマンド名と、実行に必要な情報であるボリューム名及び認識を許可する管理OSの識別情報と、からなる。設定された情報は、I/O受信プロセス810Aのボリューム情報管理テーブル213Aに保持する。ここまでで、移行元仮想サーバ2Aに関する事前準備は終了する。
【0060】
その後ユーザは、任意のタイミングで、移行先仮想サーバ2Bの管理OS81Bにボリューム認識コマンドを発行する(S3)。ボリューム認識コマンドは、I/O受信ボリューム設定コマンドで許可されたボリュームを別の管理OSで認識するためのコマンドであり、ボリューム認識コマンドとするコマンド名と、管理OS81Bを示すIPアドレス、認識するストレージ装置5Aの製造番号、ボリューム識別情報、ユーザID及びパスワードと、からなる。
【0061】
ボリューム認識コマンドをI/O発信プロセス810Bが受け取ると、当該コマンドを認識要求としてI/O受信プロセス810Aに送信する(S4)。
【0062】
I/O受信プロセス810Aは、認識要求を受け取ると、ユーザID及びパスワードを確認し、ログインを完了させる(S5)。
【0063】
管理OS81Aは、移行先仮想サーバ2Bに認識させるボリューム60Aをボリューム情報管理テーブル213Aから1つ選択し、移行先仮想サーバ2Bが選択したボリューム60Aに対してアクセス可能か否かを確認する(S6)。アクセス可能であれば、ボリューム情報管理テーブル213Aに、移行先仮想サーバ2Bの管理OS81Bを示すIPアドレスを登録する(S7)。管理OS81Aは、ボリューム情報管理テーブル213Aから選択したボリューム60と対応付けられるゲストOS80をライブマイグレーションの対象とする。
【0064】
その後I/O受信プロセス810Aは、ボリューム情報管理テーブル213Aから選択したボリューム60のボリューム識別情報をI/O発信プロセス810Bに送信する(S8)。
【0065】
I/O発信プロセス810Bは、ボリューム識別情報を受け取ると(S9)、対象となるボリュームのブロックデバイス8140Bを作成し、リモートデバイスドライバ8141Bを作成したブロックデバイス8140Bに登録して、ボリューム用デバイスファイル814Bを作成する(S10)。ブロックデバイス8140Bは、対象となるボリュームの数に応じて作成され、リモートデバイスドライバ8141Bもボリュームの数に応じてブロックデバイス8140Bに登録される。
【0066】
I/O発信プロセス810Bは、受け取ったボリューム識別情報を、I/O発信プロセス810B内にあるボリューム情報管理テーブル213Bに登録し、受け取ったボリューム識別情報に基づいて管理OS81Bが認識するボリューム名も登録する(S11)。
【0067】
そして、管理OS81Bは、ゲストOS構成管理ファイル811B内のボリューム割当テーブル210Bに、ライブマイグレーションの対象となるゲストOSが認識するボリューム名と、管理OS81Bが認識するボリューム名と、を作成する(S12)。
【0068】
以上により、移行元仮想サーバ2Aと移行先仮想サーバ2Bとが、共通のボリュームを認識することができる。この様子を図10に示す。
【0069】
図10に示すように、移行元仮想サーバ2Aと移行先仮想サーバ2Bとが共通して認識する2つのボリューム識別情報として00:03:01及び00:03:02を例示する。移行元仮想サーバ2Aと移行先仮想サーバ2Bとが上記ボリューム認識処理を実行することで、ボリューム識別情報00:03:01及び00:03:02に対応する管理OS81A上のボリューム1及びボリューム2が設定される。ボリューム1及びボリューム2は管理OS81Aが認識するボリューム名である。
【0070】
一方、ボリューム識別情報00:03:01及び00:03:02に対応して管理OS81B上のボリューム21及びボリューム22が設定される。ボリューム21及びボリューム22は、管理OS81Bが認識するボリューム名である。
【0071】
そして、ボリューム識別情報00:03:01及び00:03:02を、ゲストOS80Aはボリュームa及びボリュームbとして認識しているため、移行元仮想サーバ2A側では、ボリューム1とボリュームa、ボリューム2とボリュームbとを対応付ける。また、移行先仮想サーバ2B側では、ボリューム21とボリュームa、ボリューム22とボリュームbとを対応付ける。
【0072】
なお、I/O受発信プロセス810AB間にボリューム識別情報を使用するのは、管理OS81Aが再起動等によって、管理OS81A上のボリューム名が変更する場合があるからである。
【0073】
(1−3−2)ライブマイグレーション処理
移行元仮想サーバ2Aと移行先仮想サーバ2Bとが認識できる共通のボリューム60を設定した後、引き続き、移行元仮想サーバ2A上のゲストOSを移行先仮想サーバ2Bに移行するライブマイグレーション処理について説明する。
【0074】
移行元仮想サーバ2A及び移行先仮想サーバ2Bは、上述に説明したボリューム認識処理を実行すると(S1~S12)、ライブマイグレーション処理を開始する。
【0075】
具体的には、図11に示すように、移行元仮想サーバ2Aの管理OS81Aは、メモリ領域管理テーブル211Aを参照し、ライブマイグレーションの対象となるゲストOS80Aのメモリイメージを移行先仮想サーバ2Bの管理OS81Bに送信する(S13)。ここでメモリイメージとは、ライブマイグレーションの対象となるゲストOSが使用するメインメモリ21の領域に格納されるデータをいう。
【0076】
ゲストOS80Aのメモリイメージを受信した移行先仮想サーバ2Bの管理OS81Bは、受信が完了した旨を移行元仮想サーバ2Aの管理OS81Aに通知する(S14)。
【0077】
その後、移行元仮想サーバ2Aの管理OS81Aは、メモリ差分管理テーブル212Aを参照し、メモリイメージを送信中にメインメモリ21の領域に更新された差分データを差分メモリイメージとして移行先仮想サーバ2Bの管理OS81Bに送信する。差分メモリイメージの送信完了後、移行元仮想サーバ2Aの管理OS81Aは、差分メモリイメージを送信中に、メインメモリ21の領域に更新された更なる差分メモリイメージも送信する。そうして移行元仮想サーバ2Aの管理OS81Aは、メモリイメージ送信中に更新されるメモリイメージの差分が十分に小さくなると、ゲストOS80Aの処理を一旦停止して、全ての差分メモリイメージを移行先仮想サーバ2Bの管理OS81Bに送信する(S15)。
【0078】
移行先仮想サーバ2Bの管理OS81Bは、メモリイメージ及び差分メモリイメージを全て受け取ると、ゲストOS80Aのメモリイメージとライブマイグレーション後のゲストOS80Bのメモリイメージとの同期が完了したことを移行元仮想サーバ2Aの管理OS81Aに送信する(S16)。
【0079】
移行元仮想サーバ2Aの管理OS81Aは、同期完了した通知を受け取ると、ゲストOS80Aを停止させ、この旨を移行先仮想サーバ2Bの管理OS81Bに通知する(S17)。
【0080】
移行先仮想サーバ2Bの管理OS81Bは、ゲストOS80Aの停止通知を受け取ると、移行先仮想サーバ2B側で、ゲストOS80Bを開始させる(S18)。
【0081】
その後、移行元仮想サーバ2Aの管理OS81A上で、ゲストOS80Aが停止し(S19)、移行先仮想サーバ2Bの管理OS81B上で、ゲストOS80Bが開始する(S20)。このように、ライブマイグレーション処理を実行後の仮想計算機システム1を図12に示す。
【0082】
ユーザは、ライブマイグレーションが正常に実行されたことを、移行元仮想サーバ2A又は移行先仮想サーバ2Bのモニタ26A,26Bから確認することができる。
【0083】
図13は、ユーザが移行元仮想サーバ2Aのモニタ26Aからライブマイグレーションが正常に実行されたこと確認できる画面S1を示す。
【0084】
画面表示D1は、「ボリューム名」欄100D、「ストレージ装置製造番号」欄101D、「ボリューム識別情報」欄102D、「リモート/ローカルボリューム識別情報」欄103D、及び、「リモート側の管理OS識別情報」欄104Dを示す。ボリューム名は、管理OS81Aが認識するストレージ装置5Aのボリューム名を示す。リモート/ローカルボリューム識別情報は、管理OS81Aが該当するボリューム60を外部に割り当てているのか、又は、管理OS81Aが該当するボリューム60を外部から取り込んでいるか、の識別情報を示す。例えば、管理OS81Aが該当するボリュームを外部の管理OSに割り当てている場合には、「export」で表示され、管理OS81Aが該当するボリュームを外部の管理OSから取り込んでいる場合には、「import」で表示される。リモート側の管理OS識別情報は、リモート先の管理OS81のIPアドレスを示す。
【0085】
画面表示D1は、管理OS81Aが認識するボリューム1は、「192.168.0.2」のIPアドレスを持つ外部の管理OS81に割り当てられていることを示す。
【0086】
図14には、ユーザが移行先仮想サーバ2Bのモニタ26Bからライブマイグレーションが正常に実行されたこと確認できる画面S2を示す。
【0087】
画面表示D2は、管理OS81Bが認識するボリューム21は、「192.168.0.1」のIPアドレスを持つ管理OS81から取り込んでいることを示す。なお、画面表示欄200D〜204Dは、上述の内容と同様なので、説明を省略する。
【0088】
以上のように、移行元仮想サーバ2A及び移行先仮想サーバ2Bが事前にボリューム認識処理を行うことで、円滑にゲストOSのライブマイグレーションを実現できる。
【0089】
(1−3−3)プロセス間通信処理
次に、ボリューム認識処理の終了後、移行先仮想サーバ2Bは、移行元仮想サーバ2Aに対してボリューム60が正しく認識されているかの確認を定期的に行うプロセス間通信処理について説明する。
【0090】
まず、図15に示すように、移行先仮想サーバ2BのI/O発信プロセス810Bは、任意のタイミングでプロセス間通信処理を開始する(S30)。そして、I/O発信プロセス810Bは、I/O受信プロセス810Aにログインを実行し(S31)、ログイン成功すると(S31:YES)、移行先仮想サーバ2B側から発行するI/OをI/O受信プロセス810Aに送信できる状態になるので(S32)、ライブマイグレーションを実行後のゲストOSがI/O要求した場合には、ここで後述するI/O処理を実行する。
【0091】
その後、I/O発信プロセス810Bは、移行元仮想サーバ2A側が認識するボリュームが削除されたか否かを確認し(S33)、削除されている場合には(S33:YES)、このままプロセス間通信処理を終了する(S37)。
【0092】
一方、I/O発信プロセス810Bは、移行元仮想サーバ2A側が認識するボリュームが削除されていないことを確認すると(S33:NO)、移行元仮想サーバ2Aに対してI/Oが成功した場合又は定期的にポーリングが行われた場合から規定時間が経過したか否かを判断する(S34)。なお、I/Oが成功した場合とは、移行元仮想サーバ2A側が認識するボリュームに対して正しくI/Oが行われたことを示す。
【0093】
I/O発信プロセス810Bは、規定時間経過していると判断すると(S34:YES)、I/O受信プロセス810Aへのポーリングを行い、ポーリングが成功した場合には(S35:YES)、ステップS32のステップを実行する。また、I/O発信プロセス810Bは、規定時間を経過していないと判断した場合も(S34:NO)、ステップS32のステップを実行する。
【0094】
なお、I/O発信プロセス810Bは、I/O受信プロセス810Aへのポーリングが失敗した場合には(S35:NO)、エラー表示をしてそのまま終了する(S36)。
【0095】
(1−3−4)リード処理
では上述のように、ライブマイグレーションを実行した後のゲストOS80Bが、ストレージ装置5Aのボリューム60に対してリード要求を行った場合の、リード処理について説明する。
【0096】
まず、図16及び図17に示すように、ゲストOS80B上のアプリケーションAPが、ゲストOS80Bが認識するボリュームにリード要求を行うとこの処理が開始する(S40)。
【0097】
アプリケーションAPからリード要求がなされると、仮想マシンモニタ82Bがハードウェア25Bへのアクセスを検知して、仮想マシンモニタ82B内のハードウェア処理割り込み部820Bが、リード要求及びI/O対象(リード対象)のボリューム名を管理OS81Bに送信する(S41)。例えば、I/O対象のボリューム名としてボリュームaを指定するとする。
【0098】
ここで、ハードウェア処理割り込み部820Bとは、移行先仮想サーバ2Bの仮想マシンモニタ82Bに備えられるものであり、アプリケーションAPからI/O要求に基づいてハードウェア25Bへのアクセスを検知すると、ハードウェア25BにI/O要求を渡さずにボリューム用デバイスファイル814BにI/O要求を渡すための割り込み機能を有することをいう。
【0099】
次に、管理OS81Bは、ボリューム割り当てテーブル210Bを参照し、I/O対象(リード対象)のボリューム名に対応する管理OS81B上のボリューム名を特定し、特定したボリュームに対してリード要求を行う。例えば、管理OS81B上のボリューム名としてボリューム21を特定する、とする(S42)。
【0100】
ボリューム21のボリューム用デバイスファイル814Bに登録されたリモートボリューム用ドライバ8141Bが、I/O発信プロセス810Bにリード要求を送信する(S43)。
【0101】
I/O発信プロセス810Bは、移行元仮想サーバ2AのI/O受信プロセス810AにIPネットワークを介してリード要求を送信する(S44)。
【0102】
I/O受信プロセス810Aは、移行先仮想サーバ2BのI/O発信プロセス810Bからリード要求を受け取る(S45)。このとき、図18に示すように、プロセス間で送受信されるリード要求の内容は、リード処理の順番を示すシーケンシャルナンバーR0、リード対象のボリューム60が所属するストレージ装置製造番号R1、リード対象のボリューム識別情報R2、SCSIコマンド(リードコマンド)R3、リード対象のボリューム60のアドレスを示すリードデータアドレスR4、及び、実際のリードデータの長さを示すデータ長R5、である。
【0103】
I/O受信プロセス810Aは、ボリューム情報テーブル213Aを参照し、リード対象のボリューム識別情報に対応する管理OS81A上のボリューム名を特定する(S46)。例えば、管理OS81A上のボリューム名として、ボリューム1を特定する、とする。
【0104】
I/O受信プロセス810Aは、ボリューム1に対してリード要求を行い、ボリューム1からリードデータを受け取り(S47)、IPネットワーク3を介してI/O発信プロセス810Bにリードデータを送信する(S48)。
【0105】
このとき、図19に示すように、プロセス間でリードデータを送信する内容は、シーケンシャルナンバーR0、リード対象のボリューム60が所属するストレージ装置製造番号R1、リード対象のボリューム識別情報R2、SCSIコマンド(リードコマンド)R3、リードデータアドレスR4、リードデータのデータ長R5、及びリードデータR6である。
【0106】
I/O発信プロセス810Bは、リードデータを受け取ると、ボリューム21のボリューム用デバイスファイル814Bに登録されたリモートボリューム用ドライバ8141Bにリードデータを渡す(S49)。
【0107】
ボリューム21のボリューム用デバイスファイル814Bに登録されたリモートボリューム用ドライバ8141Bは、リードデータをメインメモリ21B上の領域に記録する(S50)。そして仮想マシンモニタ82Bのハードウェア処理割り込み部820BがゲストOS80Bに処理を戻し、アプリケーションAPがリードデータを受け取ると、リード処理を終了する(S51)。
【0108】
このように、仮想計算機システム1はライブマイグレーションの実行後であっても、リード処理を正常に実行することができる。
【0109】
(1−3−5)ライト処理
では引き続き、ライブマイグレーションを実行した後のゲストOS80Bが、ストレージ装置5Aのボリューム60に対してライト要求を行った場合の、ライト処理について説明する。
【0110】
まず、図20及び図21に示すように、ゲストOS80B上のアプリケーションAPが、ゲストOS80Bが認識するボリュームにライト要求を行うとこの処理が開始する(S60)。
【0111】
アプリケーションAPからライト要求がなされると、仮想マシンモニタ82Bがハードウェア25Bへのアクセスを検知して、仮想マシンモニタ82B内のハードウェア処理割り込み部が、ライト要求、ライトデータ、及びI/O対象(ライト対象)のボリューム名を管理OS81Bに送信する(S61)。例えば、I/O対象のボリューム名としてボリュームaを指定するとする。
【0112】
次に、管理OS81Bは、ボリューム割り当てテーブル210Bを参照し、I/O対象(ライト対象)のボリューム名に対応する管理OS81B上のボリューム名を特定し、特定したボリュームに対してライト要求を行う。例えば、管理OS81B上のボリューム名としてボリューム21を特定する、とする(S62)。
【0113】
ボリューム21のボリューム用デバイスファイル814Bに登録されたリモートボリューム用ドライバ8141Bが、I/O発信プロセス810Bにライト要求及びライトデータを送信する(S63)。
【0114】
I/O発信プロセス810Bは、移行元仮想サーバ2AのI/O受信プロセス810AにIPネットワーク3を介してライト要求およびライトデータを送信する(S64)。
【0115】
I/O受信プロセス810Aは、移行先仮想サーバ2BのI/O発信プロセス810Bからライト要求及びライトデータを受け取る(S65)。このとき、図22に示すように、プロセス間で送受信されるライト要求の内容は、ライト処理の順番を示すシーケンシャルナンバーW0、ライト対象のボリューム60が所属するストレージ装置製造番号W1、ライト対象のボリューム識別情報W2、SCSIコマンド(ライトコマンド)W3、ライト対象のボリューム60のアドレスを示すライトデータアドレスW4、実際のライトデータの長さを示すライトデータのデータ長W5、及び、ライトデータW6である。
【0116】
図23に示すように、実際にライト要求の内容をI/O発信プロセス810BからI/O受信プロセス810Aに送信する場合には、いくつかのパケットに分割し、分割したパケットを分割データD1〜D3として送信する。加えて、図24に示すように、送信する内容には、それぞれの分割データD1〜D3の分割データ識別情報d1〜d3と、IPネットワーク3における各通信プロトコル層のヘッダH1〜H3と、が付加される。分割データ識別情報とは、ライト要求の1つの内容として元に戻すために必要なシーケンシャルナンバーと分割データ番号とを含む分割データの識別情報である。
【0117】
I/O受信プロセス810Aは、ボリューム情報テーブル213Aを参照し、ライト対象のボリューム識別情報に対応する管理OS81A上のボリューム名を特定する(S66)。例えば、管理OS81A上のボリューム名として、ボリューム1を特定する、とする。
【0118】
I/O受信プロセス810Aは、ボリューム1に対してライト要求を行う(S67)。I/O受信プロセス810Aは、ボリューム1にライトデータが格納された場合には成功である旨のライト結果を、又は、ライトデータが格納されなかった場合には失敗である旨のライト結果を、ボリューム1から受け取ると、IPネットワーク3を介してI/O発信プロセス810Bにライト結果を送信する(S68)。
【0119】
このとき、図25に示すように、プロセス間でライト結果を送信する内容は、シーケンシャルナンバーW0、ライト対象のボリューム60が所属するストレージ装置製造番号W1、ライト対象のボリューム識別情報W2、SCSIコマンド(ライトコマンド)W3、ライトデータアドレスW4、及び、ライト結果W7である。
【0120】
I/O発信プロセス810Bは、ライト結果を受け取ると、ボリューム21のボリューム用デバイスファイル814Bに登録されたリモートボリューム用ドライバ8141Bにライト結果を渡す(S69)。
【0121】
ボリューム21のボリューム用デバイスファイル814Bに登録されたリモートボリューム用ドライバ8141Bは、ライト結果をメインメモリ21B上の領域に記録する(S70)。そして仮想マシンモニタ82Bのハードウェア処理割り込み部820BがゲストOS80Bに処理を戻し、アプリケーションAPがライト結果を受け取ると、ライト処理を終了する(S71)。
【0122】
このように、仮想計算機システム1はライブマイグレーションの実行後であっても、ライト処理を正常に実行することができる。
【0123】
I/O受信プロセス810A及びI/O発信プロセス810Bは、プロセス間通信のために、それぞれのプロセス内にスレッドを設けてもよい。具体的には、それぞれのプロセス内に、ボリューム用デバイスファイルの数に応じたスレッドを設ける。例えば、I/O受信プロセス810A内にボリューム1用スレッド及びボリューム2用スレッドを設ける。ボリューム1用スレッドはボリューム1用デバイスファイル及びネットワークデバイスと接続され、ボリューム2用スレッドも同様に、ボリューム2用デバイスファイル及びネットワークデバイスと接続される。同様に、I/O発信プロセス810B内にボリューム21用スレッド及びボリューム22用スレッドを設ける。ボリューム21用スレッドはリモートボリューム21用デバイスファイル及びネットワークデバイスと接続され、ボリューム22用スレッドはリモートボリューム21用デバイスファイル及びネットワークデバイスと接続される。
【0124】
(1−4)第1の実施の形態の効果
以上のように、複数の仮想サーバがストレージ装置のボリュームを共有できない場合であっても、仮想サーバのライブマイグレーションを実行することができる。
【0125】
また、ライブマイグレーションの実行後には、ライブマイグレーションを移行した移行先仮想サーバから共通のボリュームにI/O処理を実行することができる。
【0126】
(2)第2の実施の形態
次に、第2の実施の形態による仮想計算機システム100について以下に説明する。
【0127】
(2−1)ソフトウェア構成
本実施の形態による仮想計算機システム100のソフトウェア構成は、図26に示すように、第1の実施の形態の仮想計算機システム1で説明をした各種ソフトウェア構成に加えて、それぞれの管理OS81A´,B´内にコピープロセス816、リモート用デバイスファイル818及び、差分管理ボリューム用デバイスファイル817を備える。
【0128】
コピープロセス816は、ストレージ装置5A、5Bのボリューム60A、60B間でデータコピーをするためのものであり、図27に示すように、後述するコピーペア管理テーブル214及びコピー差分管理テーブル215を有する。コピープロセスがデータコピー及び差分データを実行することで、結果としてデータ移行が成立する。
【0129】
リモート用デバイスファイル818は、移行先仮想サーバ2B´に接続されるボリューム60Bをリモートで認識するためのスペシャルファイルである。
【0130】
差分管理ボリューム用デバイスファイル817は、データコピー(データ移行)をしている間にもゲストOS80AのアプリケーションAPから発行されるI/O要求によって更新される差分データのアドレスをコピープロセス816に通知するためのデバイスファイルであり、差分管理ボリューム用のブロックデバイス(図示せず)とデバイスドライバ(図示せず)とを備える。
【0131】
仮想計算機システム100では、このようにコピープロセス816及び差分管理ボリューム用デバイスファイル817を備えているため、第1の実施の形態で説明をした移行元仮想サーバ2Aを移行元仮想サーバ2A´とし、第1の実施の形態で説明をした移行先仮想サーバ2Bを移行先仮想サーバ2B´と新たに記載する。また、仮想サーバ2A´及び仮想サーバ2B´内にある各種構成のうち、第1の実施の形態で説明した各種構成と同一の構成には、同一の符号を付して説明する。
【0132】
第2の実施の形態では、移行元仮想サーバ2A´と移行先仮想サーバ2B´との間でデータの授受を行うためにデータを発信するI/O発信プロセス810A´は、移行元仮想サーバ2A´に有する。一方、移行元仮想サーバ2A´と移行先仮想サーバ2B´との間でデータの授受を行うためにデータを受信するI/O受信プロセス810B´は、移行先仮想サーバ2B´に有するものとする。
【0133】
本実施の形態による仮想計算機システム100は、それぞれの仮想サーバ2A´、2B´がそれぞれ別々のSAN4A、4Bを介して、それぞれ別々のストレージ装置5A、5Bと接続される構成である。このため、お互いの仮想サーバ2A´、2B´は、それぞれの仮想サーバ2A´、2B´に接続されるストレージ装置5A、5B内に形成されるボリューム60A、60Bを共有することはできない環境にある。本実施の形態による発明は、このような環境下において、ストレージ装置5A、5Bのボリューム60A、60B間でデータ移行(データマイグレーション)を実行した後、仮想サーバ2A´、2B´間で仮想OSの移行(ライブマイグレーション)を実行することを特徴とする。
【0134】
第2の実施の形態では、第1の実施の形態で説明をした移行先仮想サーバ2Bに接続されるストレージ装置5A内のボリューム60Aにあるデータを、ストレージ装置5Bのボリューム60Bに移行する場合を説明する。また、ライブマイグレーションについては、第1の実施の形態と同様に、仮想サーバ2A´にあるゲストOS80Cを仮想サーバ2B´に移行する場合について説明する。
【0135】
(2−2)各種テーブル構成
(2−2−1)コピーペア管理テーブル
コピーペア管理テーブル214は、図28に示すように、データコピー先のボリュームと、特定のボリュームへのデータコピー中にも更新される差分データを格納する差分管理ボリュームと、の対応関係を管理するテーブルであり、コピープロセス816内に保持されるテーブルである。また、コピーペア管理テーブル214は、差分データのコピーをする際の管理番号となる「コピーペア管理番号」欄2140、移行先仮想サーバ2B´の管理OS81B´が認識するボリューム名を示す「コピー先のボリューム名」欄2141、及び、移行元仮想サーバ2A´の管理OS81A´が認識し、コピー先のボリュームに格納する差分データを格納する差分管理ボリューム名を示す「コピー元のボリューム名」欄2142とから構成される。
【0136】
(2−2−2)コピー差分管理テーブル
コピー差分管理テーブル215は、図29に示すように、特定のボリュームへのデータコピー中にも更新される差分データを管理するためのテーブルであり、コピープロセス816内に保持されるテーブルである。また、コピー差分管理テーブル215は、「コピーペア管理番号」欄2150、差分データの処理順番を示す「シリアルナンバー」欄2151、及び、差分データが生じたコピー元のボリューム60Aの先頭ブロックアドレスを示す「先頭ブロックアドレス」欄2152から構成される。
【0137】
例えば、コピーペア管理番号が0001で管理されるボリューム5と差分管理ボリューム用1デバイスファイル817とのペア関係がある場合に、コピープロセス816が、シリアルナンバー順に更新された先頭ブロックアドレスに基づいて、ボリューム60Aから差分データを読み出し、I/O発信プロセス810A´に送信する。その後、I/O発信プロセス810A´が、移行先仮想サーバ2B´の管理OS81B´が認識するボリューム5に差分データを送信すると、I/O受信プロセス810B´が、ボリューム5に対応するボリューム60Bに差分データを書き込むことになる。
【0138】
(2−2−3)フラグテーブル
フラグテーブル216は、図30に示すように、コピープロセス816がデータコピー及び差分データコピーを実行する際に必要なテーブルであり、メインメモリ21内の保持されるテーブルである。
【0139】
またフラグテーブル216は、「I/O保留指示フラグ」欄2160、「ボリューム切替指示フラグ」欄2161、「タイムアウトフラグ」欄2162、及び、「ボリューム切替済フラグ」欄2162から構成される。
【0140】
I/O保留指示フラグは、コピープロセス816がコピー元のボリューム60Aに対して、差分データの入出力(I/O)を保留する指示を示すフラグであり、保留指示を行うと「1」のフラグが立つ。
【0141】
ボリューム切替指示フラグは、コピー元のボリューム60Aからコピー先のボリューム60BにI/Oの対象を切り替える指示を示すフラグであり、切替指示を行うと「1」のフラグが立つ。
【0142】
ライムアウトフラグは、コピー元のボリューム60Aがコピープロセス816に対して、差分データの入出力の保留時間がタイムアウトすることを示すフラグであり、タイムアウトすると「1」のフラグが立つ。
【0143】
ボリューム切替済フラグは、コピー元のボリューム60Aからコピー先のボリューム60BにI/Oの対象を切り替えることに成功したことをコピープロセスに通知するフラグであり、成功すると「1」のフラグが立つ。
【0144】
(2−3)データマイグレーション処理
それでは、上述のソフトウェア構成やテーブル構成に基づいて、ストレージ装置5Aのボリューム60A内にあるデータを、どのようにストレージ装置5Bのボリューム60B内に移行するか、について説明する。
【0145】
(2−3−1)ボリューム認識処理
まず、データマイグレーションを実行するための事前の準備として、仮想サーバ2A´と仮想サーバ2B´とが認識(識別)できる共通のボリューム60Bを設定する必要がある。
【0146】
なお、共通のボリューム60Bを認識するにあたり、第1の実施の形態では、移行先仮想サーバ2B内にあるI/O発信プロセス810Bが移行元仮想サーバ2A内にあるI/O受信プロセス810Aにアクセスをしてボリューム60Aを共通認識したが、第2の実施の形態では、移行元仮想サーバ2A´内にあるI/O発信プロセス810A´が移行先仮想サーバ2B´内にあるI/O受信プロセス810B´にアクセスをしてボリューム60Bを共通認識する場合を説明する。
【0147】
具体的には、図31及び図32に示すように、ユーザが情報入出力装置26B、27Bを使用して、管理OS81B´にI/O受信設定コマンドを発行する。I/O受信設定コマンドについては、第1の実施の形態で説明をしたので省略する。そしてユーザは仮想サーバ2B´の管理OS81B´上で、仮想サーバ2A´の管理OS81A´から接続がある際の認証に使用する、ユーザID及びパスワードを設定する(S81)。設定された情報は、I/O受信プロセス810B´が保持する。
【0148】
次に、ユーザが管理OS81B´にI/O受信ボリューム設定コマンドを発行し、管理OS81B´が認識しているボリューム60Bのうち、どのボリューム60Bを仮想サーバ2A´の管理OS81A´にも認識させるかを設定する(S82)。I/O受信ボリューム設定コマンドの内容については、第1の実施の形態で説明をしたので省略する。設定された情報は、I/O受信プロセス810B´内のボリューム情報管理テーブル213Bに保持する。ここまでで、事前準備は終了する。
【0149】
その後ユーザは、任意のタイミングで、仮想サーバ2A´の管理OS81A´にボリューム認識コマンドを発行する(S83)。ボリューム認識コマンドの内容については、第1の実施の形態で説明をしたので省略する。
【0150】
ボリューム認識コマンドをI/O発信プロセス810A´が受け取ると、当該コマンドを認識要求としてI/O受信プロセス810B´に送信する(S84)。
【0151】
I/O受信プロセス810B´は、認識要求を受け取ると、ユーザID及びパスワードを確認し、ログインを完了させる(S85)。
【0152】
管理OS81B´は、仮想サーバ2A´に認識させるボリューム60Bをボリューム情報管理テーブル213Bから1つ選択し、仮想サーバ2A´が選択したボリューム60Bに対してアクセス可能か否かを確認する(S86)。管理OS81B´は、アクセス可能であれば、ボリューム情報管理テーブル213Bに、管理OS81A´を示すIPアドレスを登録する(S87)。
【0153】
ここで例えば、管理OS81B´は、アクセス可能なボリューム60Bとして、ボリューム識別情報「01:20:01」をもつボリューム60Bを、ボリューム情報管理テーブル213Bから特定する、とする。管理OS81B´は、対象ボリューム60Bを、管理OS81B´が認識するボリューム31と特定する。
【0154】
その後I/O受信プロセス810B´は、ボリューム情報管理テーブル213Bから選択したボリューム60Bのボリューム識別情報をI/O発信プロセス810A´に送信する(S88)。
【0155】
I/O発信プロセス810A´は、ボリューム識別情報を受け取ると(S89)、対象となる移行先仮想サーバ2B´が認識するボリュームのデバイスファイル819Aを作成する。デバイスファイル819Aは、ブロックデバイスを登録して、デバイスドライバを当該ブロックデバイスに登録することで作成できる(S90)。
【0156】
具体的には、I/O受信プロセス810B´からボリューム31のボリューム識別情報が送られてくるので、I/O発信プロセス810A´は、ボリューム31を管理OS81A´が認識するボリューム5として設定すると、ボリューム5用のデバイスファイル814Aを作成する。これにより、移行元仮想サーバ2A´は、移行先仮想サーバ2B´が認識するボリュームをリモートで認識することができる。
【0157】
I/O発信プロセス810A´は、受け取ったボリューム識別情報を、I/O発信プロセス810A´内にあるボリューム情報管理テーブル213Aに登録し、受け取ったボリューム識別情報に基づいて管理OS81A´が認識するボリューム名も登録する。ブロックデバイス(図示せず)は、対象となるボリュームの数に応じて作成され、リモートボリューム用ドライバ(図示せず)もボリュームの数に応じてブロックデバイス8140Bに登録される(S91)。例えば、管理OS81A´は、対象となるボリューム名をボリューム5と登録する。
【0158】
I/O発信プロセス810A´は、ボリューム識別情報と、管理OS81A´が認識する移行先仮想サーバ2B´に接続されるボリューム名との対応をボリューム情報管理テーブル213Aに登録する(S92)。例えば、I/O発信プロセス810A´は、ボリューム5とボリューム識別情報「01:20:01」とをボリューム情報管理テーブル213Aに登録する。
【0159】
以上のように、ボリューム認識処理を実行後の様子を、図33に示す。移行元仮想サーバ2A´及び移行先仮想サーバ2B´が、ストレージ装置5Bのボリューム60Bを共通に認識できる。このようにして、仮想サーバ2A´、2B´は、ボリューム認識処理を終了する。
【0160】
(2−3−2)データ初回コピー処理
それでは次に、データ移行対象のボリューム60A内のデータ及び差分データを移行元仮想サーバ2A´で管理し、最終的には全データを移行先仮想サーバ2B´に送信するためのデータ初回コピー処理を説明する。
【0161】
まず、図34に示すように、ユーザがコピーペア作成コマンドを発行すると(S100)、移行元仮想サーバ2A´のコピープロセス816Aが、差分データを管理するために、コピー元のボリュームとコピー先のボリュームとを設定する(S101)。
【0162】
例えば、コピープロセス816Aは、コピー元のボリューム60Aのボリューム識別情報として「00:03:01」を設定し、コピー先のボリュームとして、ボリューム5(移行先仮想サーバ2B´に接続されるボリューム60Bであって、管理OS81A´が認識するボリューム名)を設定する。そうすると、コピープロセス816Aは、コピー元の差分データを管理するデバイスファイルとして差分管理ボリューム1用デバイスファイル817Aを設定し、コピー先のボリューム5用デバイスファイル819Aと、を設定する。
【0163】
コピーペア作成コマンドとは、コピープロセスでコピーを実行する2つのボリュームを設定するコマンドであり、コピーペア作成コマンドとするコマンド名と、当該コマンドを実行するために必要な情報である、コピーペア管理番号、コピー元ボリューム名及びコピー先ボリューム名と、からなる。
【0164】
設定された情報は、コピープロセス816Aがコピーペア管理テーブル214Aに登録する(S102)。
【0165】
ユーザがコピー開始コマンドをコピープロセス816Aに対して発行する(S103)。コピー開始コマンドとは、コピーペア作成コマンドに基づいて設定したペアのコピーを開始するコマンドであり、コピー開始コマンドとするコマンド名と、当該コマンドを実行するために必要な情報である、コピーペア管理番号と、からなる。
【0166】
コピー開始コマンドをコピープロセス816Aが受け取ると、コピープロセス816Aはコピー元のボリューム60A内に差分データが発生するかどうかを監視するように、対象の差分管理ボリューム用デバイスファイル817Aに指示をする(S104)。
【0167】
差分管理ボリューム用デバイスファイル817Aは、当該指示に従って、ボリューム識別情報「00:03:01」のボリューム60Aを監視する状態にすると、監視開始完了をコピープロセス816Aに通知する(S105)。
【0168】
監視開始完了をコピープロセス816Aが受け取ると、初回のコピーを開始する(S106)。
【0169】
具体的には、コピープロセス816Aは、コピー元のボリューム60Aのデータを、ボリューム5用デバイスファイル819Aに送信する。その後、ボリューム5用デバイスファイル819Aが、I/O発信プロセス810A´にデータを送信すると、データを受け取ったI/O発信プロセス810A´がIPネットワーク3を介してI/O受信プロセス810B´に送信する。I/O受信プロセス810B´が受け取ったデータをコピー先のボリューム31にコピーを開始する。
【0170】
図35は、移行元仮想サーバ2A´と移行先仮想サーバ2B´との間でコピーを実行中の様子を示す。ユーザは、コピー元とコピー先のボリュームが同容量であるボリュームを選択することが望ましい。
【0171】
その後、差分管理ボリューム用デバイスファイル817Aは、対象のコピー元のボリューム60Aに対してライト(I/O)があると、ボリューム名と差分データを格納した先頭ブロックアドレスとを差分情報としてコピープロセス816Aに通知する(S107)。
【0172】
コピープロセス816Aは、差分情報を受け取ると、この情報をコピー差分管理テーブル215Aに登録すると(S108)、データ初回コピー処理を終了する。
【0173】
(2−3−3)コピープロセス側のデータコピー処理
初回コピーを終えた移行元仮想サーバ2A´のコピープロセス816Aが、その後どのように差分データを管理するかの、データコピー処理を説明する。
【0174】
図36及び図37に示すように、コピープロセス816Aは、データ初回コピー処理を終了すると、引き続き、データコピー処理を開始する(S120)。コピープロセス816Aは、差分データを移行先仮想サーバ2B´の対象ボリュームにコピーする処理を開始する。
【0175】
コピープロセス816Aは、コピー差分管理テーブル215Aに登録される差分データに関する差分情報の個数をチェックし(S121)、登録される差分情報の個数が予め設定される差分情報の規定個数より少ないか否かを判断する(S122)。個数とは、コピー元のボリューム60A内をブロック単位で管理した場合のブロック個数であり、例えば規定個数を1000ブロックと設定される。
【0176】
コピープロセス816Aは、登録される差分情報の個数が予め設定される差分情報の規定個数以上である場合には(S122:NO)、そのまま規定個数分の差分データをペア対象のボリューム5用デバイスドライバ819Aに送信し(S123)、再びステップS121に戻る。
【0177】
一方、コピープロセス816Aは、登録される差分情報の個数が予め設定される差分情報の規定個数より少ない場合には(S122:YES)、移行元仮想サーバ2A´側に少ない差分データが溜まっていることになるので、I/O保留指示フラグ欄2160のフラグを立てて、コピー元のボリューム60Aを一時的に受信させない状態にする(S124)。
【0178】
受信させない状態で、コピープロセス816Aは、差分データをペア対象のボリューム5用デバイスドライバ819Aに送信する(S125)。
【0179】
コピープロセス816Aは、差分管理ボリューム用デバイスファイル817Aに差分データの入出力の対象となるコピー元のボリューム60Aをコピー先のボリューム60Bに切り替えるように指示をすると、ボリューム切替指示フラグ欄2161のフラグを立てる(S126)。
【0180】
このとき、差分管理ボリューム用デバイスファイル817Aは、HBAドライバ815Aへの接続を、ボリューム5用のデバイスドライバ819Aへの接続に切り替える。この切替により、I/Oの対象を、コピー元のボリューム60Aからコピー先のボリューム60Bに切り替えることができる。
【0181】
次にコピープロセス816Aは、差分データの入出力の対象となるコピー元のボリューム60Aを切り替えるボリューム切替済フラグ欄2163のフラグをチェックし(S127)、差分管理ボリューム用デバイスファイル817Aが次の対象となるコピー元のボリューム60Aの切り替えを行っていない場合には(S127:NO)、差分管理ボリューム用デバイスファイル817Aがコピープロセス816Aに対して、差分データの入出力の保留時間がタイムアウトか否かを判断する(S128)。
【0182】
そしてコピープロセス816Aは、タイムアウトフラグ欄2162が「0」であると判断すると(S128:NO)、タイムアウトになっていないので、ストレージ装置5Aに対してボリューム切替指示を行い、ボリューム切替済を確認して、ボリューム切替済フラグ欄2163のフラグを立てる。
【0183】
一方、コピープロセス816Aは、タイムアウトフラグ欄2162が「1」であると判断すると(S128:YES)、タイムアウトになった回数は予め設定する規定回数以上か否かを判断し(S129)、規定回数以上であれば(S129:YES)、エラー終了する(S130)。
【0184】
タイムアウトになった回数が規定回数より少ない場合には(S129:NO)、コピープロセスは、再びステップS121の処理を実行する。
【0185】
ステップS127において、差分データの入出力の対象となるコピー元のボリューム60Aを切り替えるボリューム切替済フラグ欄2163のフラグが「1」になっている場合には(S127:YES)、コピープロセス816Aは、コピー成功として(S131)、この処理を終了する(S132)。
【0186】
その後、コピープロセス816Aは、ボリューム5用デバイスファイル819Aにデータを送信すると、当該データを受け取ったボリューム5用デバイスファイル819AがI/O発信プロセス810Aにデータを送信する。そして移行元仮想サーバ2A´のI/O発信プロセス810Aから移行先仮想サーバ2B´のI/O受信プロセス810Bに全データを送信し、対応するボリューム31にコピーされることとなる。
【0187】
(2−3−4)差分管理ボリューム用デバイスファイル側のデータコピー処理
初回コピーを終えた移行元仮想サーバ2A´の差分管理ボリューム用デバイスファイルが、その後どのように差分データを管理するかの、データコピー処理を説明する。差分管理ボリューム用デバイスファイル817A側のデータコピー処理は、上述したコピープロセス816A側のデータコピー処理と並行に行われる。
【0188】
図38及び図39に示すように、差分管理ボリューム用デバイスファイル817Aは、初回コピーを終了すると、データコピー処理を開始する(S140)。
【0189】
次に差分管理ボリューム用デバイスファイル817Aは、ゲストOS80Aからのライト(I/O)要求を監視する(S141)。ライト要求に基づいて差分データが生じるため、差分管理ボリューム用デバイスファイル817Aが監視する必要がある。
【0190】
差分管理ボリューム用デバイスファイル817Aは、ゲストOS80Aからライト(I/O)要求があると(S142:YES)、シリアルナンバーと差分データの先頭ブロックアドレスとをコピー差分管理テーブル215Aに登録し(S143)、I/O保留指示フラグ欄2160のフラグをチェックする(S144)。
【0191】
差分管理ボリューム用デバイスファイル817Aは、ゲストOS80Aからライト(I/O)要求がない場合には(S142:NO)、そのままI/O保留指示フラグ欄2160をチェックし(S144)、フラグが「0」ならば(S144:NO)ステップS141に再び戻るが、フラグが「1」ならば(S144:YES)I/O保留指示フラグ欄2160のフラグを立てる(S145)。
【0192】
差分管理ボリューム用デバイスファイル817Aは、コピー元のボリューム60Aに対してI/Oが行われないように保留状態にすると(S146)、ボリューム切替フラグ欄2161のフラグをチェックし、コピー先のボリューム60Bに切り替えてあるか否かを判断する(S147)。
【0193】
差分管理ボリューム用デバイスファイル817Aは、コピー先のボリューム60Bに切り替えていないと判断すると(S147:NO)、引き続きI/Oの保留時間が予め規定している時間を超えているかどうか判断する(S148)。
【0194】
そして、差分管理ボリューム用デバイスファイル817Aは、I/Oの保留時間が予め規定している時間を超えていないと判断すると(S148:NO)、再びステップS147に戻るが、I/Oの保留時間が予め規定している時間を超えていると判断すると(S148:YES)、タイムアウトフラグを立てて(S149)、ステップS141に戻る。
【0195】
ステップS147において、差分管理ボリューム用デバイスファイル817Aは、コピー先のボリューム60Bに切り替えていると判断すると(S147:YES)、コピー先のボリューム用デバイスファイル817Aに切り替えてボリューム切替を行い(S150)、ボリューム切替済フラグ欄2163にフラグを立てた後(S151)、データコピー処理を終了する(S152)。
【0196】
以上により、データマイグレーションは完了する。このときの様子を図40に示す。コピー元のボリューム60Aからコピー先のボリューム60Bにデータコピーが完了後、コピー元のボリューム60Aとコピー先のボリューム60Bボリュームとを同期させて、ボリュームの切替も完了した様子を示している。
【0197】
(2−4)ライブマイグレーション処理
上述のソフトウェア構成やテーブル構成に基づいて、データマイグレーションの実行後に移行元仮想サーバ2AにあるゲストOS80をどのように移行先仮想サーバ2Bに移行するかについて説明する。
【0198】
具体的には、図41及び図42に示すように、移行元仮想サーバ2A´又は移行先仮想サーバ2B´は、ボリューム認識処理Aを実行してボリュームを認識する。ボリューム認識処理Aとは、上述したステップS81〜ステップS92までの処理をいう。
【0199】
次に、移行元仮想サーバ2A´又は移行先仮想サーバ2B´は、データ初回コピー処理Bを実行して初回のデータのコピーをする。データ初回コピー処理Bとは、上述したステップS100〜ステップS108までの処理をいう。
【0200】
その後、移行元仮想サーバ2A´は、データコピー処理Cを実行して、コピー中の差分データを移行先仮想サーバ2B´側にコピーをし、移行元仮想サーバ2A´と移行先仮想サーバ2B´とを同期させてボリュームの切替を行う。データコピー処理Cとは、ステップS120〜ステップS132、及び、ステップS140〜ステップS151までの処理をいう。
【0201】
また、ゲストOS80AからI/O要求があると、移行元仮想サーバ2A´又は移行先仮想サーバ2B´は、プロセス間通信処理Dを実行してI/O受発信プロセス810間でI/Oのやり取りを行う。プロセス間通信処理Dとは、ステップS30〜ステップ37までの処理をいう。
【0202】
そして、移行元仮想サーバ2A´又は移行先仮想サーバ2B´は、ステップS160〜ステップS167までの処理をステップS13〜ステップS20と同様の手順で実行し、図43に示すように、移行先仮想サーバ2B´内へのライブマイグレーションを完了する。
【0203】
(2−5)第2の実施の形態の効果
以上のように、複数の仮想サーバがストレージ装置のボリュームを共有できない場合であっても、データのマイグレーション、及び、仮想サーバのライブマイグレーションを実行することができる。
【0204】
また、ライブマイグレーションの実行後には、ライブマイグレーションを移行した移行先仮想サーバから共通のボリュームにI/O処理を実行することができる。
【産業上の利用可能性】
【0205】
本発明は、1又は複数のストレージ装置、1又は複数の仮想OSを有する仮想計算機システムや、その他の形態の仮想計算機システムに広く適用することができる。
【図面の簡単な説明】
【0206】
【図1】第1の実施の形態における仮想計算機システムのハードウェア構成を示すブロック図である。
【図2】第1の実施の形態におけるメインメモリの内容を示す図表である。
【図3】第1の実施の形態における仮想計算機システムのソフトウェア構成を示すブロック図である。
【図4】第1の実施の形態におけるボリューム割当テーブルを示す図表である。
【図5】第1の実施の形態におけるメモリ領域管理テーブルを示す図表である。
【図6】第1の実施の形態におけるメモリ差分管理テーブルを示す図表である。
【図7】第1の実施の形態におけるボリューム情報管理テーブルを示す図表である。
【図8】第1の実施の形態におけるボリューム認識処理を示すフローチャートである。
【図9】第1の実施の形態におけるボリューム認識処理を示すフローチャートである。
【図10】第1の実施の形態において、ボリューム認識処理を説明するブロック図である。
【図11】第1の実施の形態におけるライブマイグレーション処理を示すフローチャートである。
【図12】第1の実施の形態におけるライブマイグレーション処理を説明するブロック図である
【図13】第1の実施の形態における移行元仮想サーバのモニタ画面である。
【図14】第1の実施の形態におけるチ移行先仮想サーバのモニタ画面である。
【図15】第1の実施の形態におけるプロセス間通信処理を示すフローチャートである。
【図16】第1の実施の形態におけるリード処理を示すフローチャートである。
【図17】第1の実施の形態におけるリード処理を示すフローチャートである。
【図18】第1の実施の形態におけるリード要求時のコマンドを説明する説明図である。
【図19】第1の実施の形態におけるリード要求時のコマンドを説明する説明図である。
【図20】第1の実施の形態におけるライト処理を示すフローチャートである。
【図21】第1の実施の形態におけるライト処理を示すフローチャートである。
【図22】第1の実施の形態におけるライト要求時のコマンドを説明する説明図である。
【図23】第1の実施の形態におけるライト要求時のコマンドを説明する説明図である。
【図24】第1の実施の形態における分割データの内容を示す説明図である。
【図25】第1の実施の形態におけるライト要求時のコマンドを説明する説明図である。
【図26】第2の実施の形態における仮想計算機システムのソフトウェア構成を示すブロック図である。
【図27】第2の実施の形態におけるメインメモリの内容を示す図表である。
【図28】第2の実施の形態におけるコピーペア管理テーブルを示す図表である。
【図29】第2の実施の形態におけるコピー差分管理テーブルを示す図表である。
【図30】第2の実施の形態におけるフラグテーブルを示す図表である。
【図31】第2の実施の形態におけるボリューム認識処理を示すフローチャートである。
【図32】第2の実施の形態におけるボリューム認識処理を示すフローチャートである。
【図33】第2の実施の形態におけるボリューム認識処理を説明するブロック図である。
【図34】第2の実施の形態におけるデータ初回コピー処理を示すフローチャートである。
【図35】第2の実施の形態におけるデータ初回コピー処理を説明するブロック図である。
【図36】第2の実施の形態におけるコピープロセス側データコピー処理を示すフローチャートである。
【図37】第2の実施の形態におけるコピープロセス側データコピー処理を示すフローチャートである。
【図38】第2の実施の形態における差分管理ボリューム用デバイスファイル側データコピー処理を示すフローチャートである。
【図39】第2の実施の形態における差分管理ボリューム用デバイスファイル側データコピー処理を示すフローチャートである。
【図40】第2の実施の形態におけるデータコピー処理を説明する説明図である。
【図41】第2の実施の形態におけるデータマイグレーション処理を示すフローチャートである。
【図42】第2の実施の形態におけるデータマイグレーション処理を示すフローチャートである。
【図43】第2の実施の形態におけるデータマイグレーション処理を説明するブロック図である。
【符号の説明】
【0207】
1……仮想計算機システム、2A、2A´……移行元仮想サーバ、2B、2B´……移行先仮想サーバ、3……IPネットワーク、4A、4B……SAN、5A、5B……ストレージ装置、60A、60B……ボリューム、210……ボリューム割当テーブル、211……メモリ領域管理テーブル、212……メモリ差分管理テーブル、213……ボリューム情報管理テーブル、214……コピーペア管理テーブル、215……コピー差分管理テーブル、810A、810B´……I/O発信プロセス、810B、810A´……I/O受信プロセス。

【特許請求の範囲】
【請求項1】
1又は複数の仮想OSと、前記1又は複数の仮想OSを管理する管理OSと、を有する移行元仮想サーバ及び移行先仮想サーバと、
前記管理サーバからのデータを格納するハードディスク上の記憶領域から提供される複数の論理ボリュームを有する複数のストレージ装置と、を有し、
前記移行元仮想サーバと前記移行先仮想サーバとは、第1ネットワークを介して相互に接続され、
前記移行元仮想サーバは、第2ネットワークを介して前記ストレージ装置と接続され、前記移行先仮想サーバは、第3ネットワークを介して他のストレージ装置と接続され、
前記移行元仮想サーバと前記移行先仮想サーバの夫々には、
夫々の管理OSが管理する前記論理ボリュームと、各仮想OSが管理する前記論理ボリュームと、を割り当てるボリューム割当て部と、
前記論理ボリュームを識別するボリューム識別情報と、夫々の管理OSが管理する前記論理ボリュームと、を対応付けて管理するボリューム情報管理部と、
前記ボリューム識別情報に基づいて、前記移行元仮想サーバと前記移行先仮想サーバとが同一の論理ボリュームを対象論理ボリュームとして識別する識別部と、
前記移行元仮想サーバの仮想OSが使用するメモリ領域内のデータを前記移行先仮想サーバに移行し、前記移行中に更新される前記メモリ領域内の更新データを前記移行先仮想サーバに移行する仮想OS移行部と、
を備えることを特徴とする仮想計算機システム。
【請求項2】
前記仮想OS移行部では、前記移行元仮想サーバ又は前記移行先仮想サーバのいずれか一方にI/O受信プロセスを有し、他方にI/O発信プロセスを有し、前記I/O受信プロセス及び前記I/O発信プロセスが前記ボリューム識別情報を送受信する
ことを特徴とする請求項1記載の仮想計算機システム。
【請求項3】
前記移行元管理サーバは、
前記移行元管理サーバ内で管理し前記移行先仮想サーバに接続される移行先対象の論理ボリュームと、前記移行元仮想サーバに接続される移行元対象の論理ボリュームと、をペア設定して管理するコピーペア管理部と、
前記移行元対象の論理ボリューム内のデータを前記移行先対象の論理ボリュームに移行中に前記第仮想OSが発行するI/O要求に基づいて更新される前記移行元対象の論理ボリュームのアドレスと、前記ペア設定と、を対応付けて管理するコピー差分管理部と、
前記移行元対象の論理ボリューム内のデータを前記移行先対象の論理ボリューム内に移行し、前記移行中に前記移行元対象の論理ボリューム内に格納される更新データを前記移行先対象の論理ボリュームに移行するデータ移行部と、
をさらに有することを特徴とする請求項1記載の仮想計算機システム。
【請求項4】
前記データ移行部では、前記移行元仮想サーバと前記移行先仮想サーバとに夫々有するコピープロセスが前記データ又は前記更新データを、前記移行元仮想サーバ又は前記移行先仮想サーバのいずれか一方に有するI/O受信プロセスと他方に有するI/O発信プロセスとで送受信する
ことを特徴とする請求項3記載の仮想計算機システム。
【請求項5】
1又は複数の仮想OSと、前記1又は複数の仮想OSを管理する管理OSと、を有する移行元仮想サーバ及び移行先仮想サーバと、
前記管理サーバからのデータを格納するハードディスク上の記憶領域から提供される複数の論理ボリュームを有する複数のストレージ装置と、を有し、
前記移行元仮想サーバと前記移行先仮想サーバとは、第1ネットワークを介して相互に接続され、
前記移行元仮想サーバは、第2ネットワークを介して前記ストレージ装置と接続され、前記移行先仮想サーバは、第3ネットワークを介して他のストレージ装置と接続される仮想計算機システムの仮想計算機移行制御方法であって、
夫々の管理OSが管理する前記論理ボリュームと、各仮想OSが管理する前記論理ボリュームと、を割り当てるボリューム割当てステップと、
前記論理ボリュームを識別するボリューム識別情報と、夫々の管理OSが管理する前記論理ボリュームと、を対応付けて管理するボリューム情報管理ステップと、
前記ボリューム識別情報に基づいて、前記移行元仮想サーバと前記移行先仮想サーバとが同一の論理ボリュームを対象論理ボリュームとして識別する識別ステップと、
前記移行元仮想サーバの仮想OSが使用するメモリ領域内のデータを前記移行先仮想サーバに移行し、前記移行中に更新される前記メモリ領域内の更新データを前記移行先仮想サーバに移行する仮想OS移行ステップと、
を備えることを特徴とする仮想計算機移行制御方法。
【請求項6】
前記仮想OS移行ステップでは、前記移行元仮想サーバ又は前記移行先仮想サーバのいずれか一方にI/O受信プロセスを有し、他方にI/O発信プロセスを有し、前記I/O受信プロセス及び前記I/O発信プロセスが前記ボリューム識別情報を送受信する
ことを特徴とする請求項5記載の仮想計算機移行制御方法。
【請求項7】
前記移行元管理サーバ内で管理し前記移行先仮想サーバに接続される移行先対象の論理ボリュームと、前記移行元仮想サーバに接続される移行元対象の論理ボリュームと、をペア設定して管理するコピーペア管理ステップと、
前記移行元対象の論理ボリューム内のデータを前記移行先対象の論理ボリュームに移行中に前記第仮想OSが発行するI/O要求に基づいて更新される前記移行元対象の論理ボリュームのアドレスと、前記ペア設定と、を対応付けて管理するコピー差分管理ステップと、
前記移行元対象の論理ボリューム内のデータを前記移行先対象の論理ボリューム内に移行し、前記移行中に前記移行元対象の論理ボリューム内に格納される更新データを前記移行先対象の論理ボリュームに移行するデータ移行ステップと、
をさらに有することを特徴とする請求項5記載の仮想計算機移行制御方法。
【請求項8】
前記データ移行ステップでは、前記移行元仮想サーバと前記移行先仮想サーバとに夫々有するコピープロセスが前記データ又は前記更新データを、前記移行元仮想サーバ又は前記移行先仮想サーバのいずれか一方に有するI/O受信プロセスと他方に有するI/O発信プロセスとで送受信する
ことを特徴とする請求項7記載の仮想計算機移行制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate