(57)【要約】【課題】仮想計算機の移動を行う場合に、簡単な手順で、安全に移動処理を行うことができる仮想計算機システムの制御方法を提供する。【解決手段】仮想計算機システムの制御方法において、実計算機（１０６）上で動作している仮想計算機（１０９）を別の実計算機（１０７）上に移動させる際、管理サーバ（１０１）により、移動元の仮想計算機（１０９）を停止させ、移動先の仮想計算機（１１０）を別の実計算機（１０７）上に定義し、その起動を抑止した状態で、移動元の仮想計算機（１０９）の仮想ネットワークアドレスおよび仮想ストレージインターフェイスアドレスを、移動先の仮想計算機（１１０）に定義された仮想ネットワークアドレスおよび仮想ストレージインターフェイスアドレスと交換した後、移動先の仮想計算機（１１０）の起動の抑止を解除する。【選択図】図３
2010033404.tif 000002
【特許請求の範囲】
【請求項１】
複数の実計算機と、システムディスクと、仮想計算機の制御を行う管理部とを備え、前記実計算機上の制御部により複数の論理的な仮想計算機を動作させ、前記仮想計算機のそれぞれは論理的な通信ネットワークインターフェイスおよび論理的なストレージ接続インターフェイスを有し、それぞれアドレス情報として、仮想ネットワークアドレスおよび仮想ストレージインターフェイスアドレスを有し、前記論理的なストレージ接続インターフェイスに前記仮想計算機を起動するシステムが格納された前記システムディスクが接続された仮想計算機システムの制御方法であって、
前記実計算機上で動作している前記仮想計算機を別の前記実計算機上に移動させる際、
前記管理部により、
移動元の前記仮想計算機を停止させ、
移動先の前記仮想計算機を別の前記実計算機上に定義し、
その起動を抑止した状態で、移動元の前記仮想計算機の構成情報及び移動先の前記仮想計算機の構成情報を変更し、
前記構成情報の変更後に、移動先の前記仮想計算機の起動の抑止を解除することを特徴とする仮想計算機システムの制御方法。
【請求項２】
請求項１記載の仮想計算機システムの制御方法において、
前記構成情報は、仮想ネットワークアドレス、前記仮想ストレージインターフェイスアドレス及び時刻差分情報のうち、少なくとも１つであることを特徴とする仮想計算機システムの制御方法。
【請求項３】
請求項１記載の仮想計算機システムの制御方法において、
移動元の前記仮想計算機の構成情報及び移動先の前記仮想計算機の構成情報を変更する際、
前記管理部により、移動元の前記仮想計算機の前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスを、移動先の前記仮想計算機に上書きし、移動元の前記仮想計算機の前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスを無効データとすることを特徴とする仮想計算機システムの制御方法。
【請求項４】
請求項１記載の仮想計算機システムの制御方法において、
移動元の前記仮想計算機の構成情報及び移動先の前記仮想計算機の構成情報を変更する際、
前記管理部により、移動元の前記仮想計算機の前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスを、移動先の前記仮想計算機に定義された前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスと交換することを特徴とする仮想計算機システムの制御方法。
【請求項５】
請求項１記載の仮想計算機システムの制御方法において、
前記管理部により、移動元の前記仮想計算機の起動を抑止することを特徴とする仮想計算機システムの制御方法。
【請求項６】
請求項１記載の仮想計算機システムの制御方法において、
前記管理部により、同一ネットワークに接続されている前記実計算機に散在している前記仮想計算機を動作させている前記制御部のネットワークアドレスを探索することを特徴とする仮想計算機システムの制御方法。
【請求項７】
請求項１記載の仮想計算機システムの制御方法において、
前記管理部により、同一ネットワークに接続されている前記実計算機に散在している前記仮想実計算機の仮想ネットワークアドレスを探索し、前記仮想ネットワークアドレスを持つ前記仮想実計算機が、現在どの前記実計算機上で動作しているかを探索することを特徴とする仮想計算機システムの制御方法。
【請求項８】
請求項１記載の仮想計算機システムの制御方法において、
前記管理部は、前記複数の実計算機と接続され前記仮想計算機の管理を行う管理サーバに含まれることを特徴とする仮想計算機システムの制御方法。
【請求項９】
複数の実計算機と、システムディスクと、仮想計算機の制御を行う管理部とを備え、前記実計算機上の制御部により複数の論理的な仮想計算機を動作させ、前記仮想計算機のそれぞれは論理的な通信ネットワークインターフェイスおよび論理的なストレージ接続インターフェイスを有し、それぞれアドレス情報として、仮想ネットワークアドレスおよび仮想ストレージインターフェイスアドレスを有し、前記論理的なストレージ接続インターフェイスに前記仮想計算機を起動するシステムが格納された前記システムディスクが接続された仮想計算機システムであって、
前記実計算機上で動作している前記仮想計算機を別の前記実計算機上に移動させる際、
前記管理部は、
移動元の前記仮想計算機を停止させ、
移動先の前記仮想計算機を別の前記実計算機上に定義し、
その起動を抑止した状態で、移動元の前記仮想計算機の構成情報及び移動先の前記仮想計算機の構成情報を変更し、
前記構成情報の変更後に、移動先の前記仮想計算機の起動の抑止を解除することを特徴とする仮想計算機システム。
【請求項１０】
請求項９記載の仮想計算機システムにおいて、
前記構成情報は、仮想ネットワークアドレス、前記仮想ストレージインターフェイスアドレス及び時刻差分情報のうち、少なくとも１つであることを特徴とする仮想計算機システム。
【請求項１１】
請求項９記載の仮想計算機システムにおいて、
移動元の前記仮想計算機の構成情報及び移動先の前記仮想計算機の構成情報を変更する際、
前記管理部は、移動元の前記仮想計算機の前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスを、移動先の前記仮想計算機に上書きし、移動元の前記仮想計算機の前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスを無効データとすることを特徴とする仮想計算機システム。
【請求項１２】
請求項９記載の仮想計算機システムにおいて、
移動元の前記仮想計算機の構成情報及び移動先の前記仮想計算機の構成情報を変更する際、
前記管理部は、移動元の前記仮想計算機の前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスを、移動先の前記仮想計算機に定義された前記仮想ネットワークアドレスおよび前記仮想ストレージインターフェイスアドレスと交換することを特徴とする仮想計算機システム。
【請求項１３】
請求項９記載の仮想計算機システムにおいて、
前記管理部は、移動元の前記仮想計算機の起動を抑止することを特徴とする仮想計算機システム。
【請求項１４】
請求項９記載の仮想計算機システムにおいて、
前記管理部は、同一ネットワークに接続されている前記実計算機に散在している前記仮想計算機を動作させている前記制御部のネットワークアドレスを探索することを特徴とする仮想計算機システム。
【請求項１５】
請求項９記載の仮想計算機システムにおいて、
前記管理部は、同一ネットワークに接続されている前記実計算機に散在している前記仮想実計算機の仮想ネットワークアドレスを探索し、前記仮想ネットワークアドレスを持つ前記仮想実計算機が、現在どの前記実計算機上で動作しているかを探索することを特徴とする仮想計算機システム。
【請求項１６】
請求項９記載の仮想計算機システムにおいて、
前記管理部は、前記複数の実計算機と接続され前記仮想計算機の管理を行う管理サーバに含まれることを特徴とする仮想計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システムの制御方法に関し、特に、仮想計算機が持つ外部とのインターフェイスとしてネットワークインターフェイスとストレージインターフェイスを対象に、周囲の機器から透過的に扱い、仮想計算機群について情報を集約していない管理サーバを用いて、実計算機をまたいだ仮想計算機の移動を安全に行う制御方法に関する。
【背景技術】
【０００２】
仮想計算機は実計算機の資源を有効に利用するための手段として実用化されている技術である。特に、利用率が低い複数の実計算機を仮想計算機として動作させる運用に変えることで資源を集約し、ストレージやネットワーク、電力などを節約する用途が注目されている。
【０００３】
仮想計算機は、物理的な資源の集約や電力の節約など、得られる利点は多いが、近年では仮想計算機の管理が複雑化していることが問題となっている。多数の仮想計算機を扱う場合にこの傾向は顕著に現れる。
【０００４】
ある実計算機上で動作していた１つの仮想計算機上のゲストシステムをいったん停止し、別の実計算機上の１つの仮想計算機上で動作させることを、仮想計算機を移動することであると定義すると、例えば、仮想計算機を実計算機をまたいで移動させるような運用や管理を行うときには、それぞれの仮想計算機がどのような状況にあり、仮想計算機を移動させるときには仮想計算機に接続されている機器にどのような影響があるのかを把握した管理が必要となり、管理サーバを含め、実計算機、仮想計算機の全てを考慮し、複雑なシステムとして扱うことになる。
【０００５】
このようなシステムとして、ＥＳＸ  Ｓｅｒｖｅｒ  ３ｉ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｇｕｉｄｅ（非特許文献１）、Ｃｉｓｃｏ  ＭＤＳ  ａｎｄ  Ｅｍｕｌｅｘ  Ｖｉｒｔｕａｌ  ＨＢＡ  Ｓｏｌｕｔｉｏｎｓ  ｆｏｒ  ＶＭｗａｒｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ３（非特許文献２）に記載された技術があった。
【非特許文献１】ＥＳＸ  Ｓｅｒｖｅｒ  ３ｉ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｇｕｉｄｅ、インターネット＜URL:http://www.vmware.com/pdf/vi3_35/esx_3i_e/r35/vi3_35_25_3i_server_config.pdf＞
【非特許文献２】Ｃｉｓｃｏ  ＭＤＳ  ａｎｄ  Ｅｍｕｌｅｘ  Ｖｉｒｔｕａｌ  ＨＢＡ  Ｓｏｌｕｔｉｏｎｓ  ｆｏｒ  ＶＭｗａｒｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ３、インターネット＜URL:http://www.emulex.com/white/hba/CiscoEmulexVirtualizationforVMware.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１、２に記載のように、実計算機をまたいで仮想計算機を移動させるときには、仮想計算機の周辺の環境に影響を及ぼさないように管理ソフトウェアがネットワークの制御やストレージの制御を行っているが、これらの管理ソフトウェアは仮想計算機を制御するソフトウェアとは別のものとして提供されており、それぞれの機器が仮想計算機の移動と干渉した不具合を起こさないように留意しつつ操作する必要があり、複雑な制御が必要である。
【０００７】
例えば、ストレージについては移動元となる実計算機と移動先となる実計算機からのアクセスを許可しなければならない。また、仮想計算機が格納されているストレージが移動元と移動先の実計算機からのアクセスを行えなければ、実計算機をまたいだ仮想計算機の移動ができない。
【０００８】
そのため、従来では、実計算機をまたいだ仮想計算機の移動を実現するためには、仮想計算機のストレージとして利用する媒体について、移動先となりうる複数の実計算機からのアクセスを許可する。この仕組みを利用することで、移動元となる実計算機と移動先となる実計算機から、同一のディスクにアクセスすることができ、実計算機をまたいだ仮想計算機の移動が可能となるが、これは複数の実計算機、さらには複数の仮想計算機から同時にアクセスすることを可能としていた。
【０００９】
仮想計算機上で起動するＯＳを格納するような一般的なディスクでは、複数の計算機から共有された環境で利用することを前提にした仕組みを持たないため、複数の計算機から同時にアクセスしたディスクはファイルシステムの整合性が取れなくなり、破損してしまうという問題がある。
【００１０】
また、ストレージコントローラにはこのような危険性を排除するために、ディスクと実計算機のストレージインターフェイスを対応付ける仕組みを持つものがあるが、この機能を利用したストレージは特定のストレージインターフェイスからのアクセスのみしか受け付けないため、実計算機をまたいで仮想計算機を移動させるにはストレージコントローラの管理ソフトウェアを用いてストレージコントローラを制御することが必要となる。
【００１１】
また、同時起動を防いだり、ネットワークやストレージの状況を把握するために集約的な管理サーバが必要となり、この集約的な管理サーバに障害が発生した場合に仮想計算機の運用についての情報が失われ、それぞれの仮想計算機がどの実計算機で稼動しているか、また、どのような状態であるかを把握することが困難である。
【００１２】
例えば、非特許文献２に示す技術では、１台の仮想計算機を別の実計算機に移動させた場合に、仮想計算機が保持しているストレージ接続用のインターフェイスである仮想ＦＣ−ＨＢＡの持つ仮想ＷＷＮを変更する必要がない旨が記載されている。
【００１３】
この方式を採用すればストレージコントローラ内のディスクと計算機のストレージインターフェイスを対応付ける仕組みに対して、仮想計算機を移動することによるＷＷＮに関する設定変更をする必要がない。
【００１４】
しかしながら、非特許文献２の技術によれば、仮想計算機を実計算機間で移動した際に、どの仮想ＷＷＮがどの実計算機上で使われているか、あるいは新たな仮想計算機に対して新たな仮想ＷＷＮを割り当てるとき、どのような値のＷＷＮを割り当てれば重複が発生しないかを管理する手段が必要となり、その管理手段が障害により失われると仮想ＷＷＮの割り当て管理ができなくなるという課題がある。
【００１５】
ここで、図１０および図１１により、従来の仮想計算機システムが複雑な制御による具体的な問題点について説明する。図１０および図１１は従来の仮想計算機システムの制御における具体的な問題点を説明するための説明図であり、図１０は実計算機を用いてスケールイン・スケールアウトを行う場合、図１１は仮想サーバ技術で仮想計算機を移動する場合を示している。
【００１６】
図１０において、システムは管理サーバ（３０１）、３台の実計算機（３０２，３０３，３０４）、ＦＣスイッチ（３３１）、Ｅｔｈｅｒｎｅｔ（登録商標）スイッチ（３３２）、ロードバランサ（３３３）、ストレージ装置（３４１）、そしてロードバランサの外にある外部ネットワーク（３３５）からなる。実計算機は物理ＦＣ  ＨＢＡ（３１１，３１２，３１５，３１６，３１９，３２０）と物理ＮＩＣ（３１３，３１４，３１７，３１８，３２１，３２２）を持つほか、管理用のＮＩＣ（３０８，３０９，３１０）も備えている。
【００１７】
また、ＬＵ１０（３４４）に格納された業務システム１（３２１）とＬＵ３０（３４６）に格納された業務システム３（３２３）が同じ機能を持ち、ロードバランサを用いてこのふたつのシステムをロードバランサルールＡにより、負荷分散している。
【００１８】
ＬＵ２０（３４５）に格納された業務システム２（３２２）とＬＵ４０（３４７）に格納された業務システム４（３２３）は同じ機能を持つシステムだが、業務システム２のみが起動されているとする。
【００１９】
このとき、業務システム３の処理能力が不要となり、業務システム４（３２４）を起動し、業務システム２との間でロードバランサルールＢにより負荷を分散する構成に変更する必要が生じた場合には以下のような作業が必要となる。
【００２０】
（１）管理サーバ（３０１）がＮＩＣ（３０７）を用いて、実計算機３のＮＩＣ（３１０）を経由して実計算機３で動作する業務システム３に停止を指示する。
【００２１】
（２）管理サーバ（３０１）がＮＩＣを用いて、ストレージコントローラ（３４２）へＮＩＣ（３０５）を経由して、ＬＵＮセキュリティ定義（３４３）を変更するよう、指示する。
【００２２】
＊ＬＵ３０  ⇔  ＷＷＮ３０
↓変更
＊ＬＵ４０  ⇔  ＷＷＮ３０
なお、ストレージコントローラに指示を与えるため、管理サーバ（３０１）にはストレージコントローラの管理ソフトウェア（３２５）が必要である。
【００２３】
（３）管理サーバ（３０１）がＮＩＣを用いて、ロードバランサへＮＩＣ（３０６）を経由してロードバランサ内で管理されているルールテーブル（３３４）に格納されているロードバランサルールＡから業務システム３の登録を解除する。
【００２４】
＊業務システム１  ⇔  業務システム３
↓変更
＊業務システム１
なお、ロードバランサに指示を与えるため、管理サーバ（３０１）にはロードバランサの管理ソフトウェア（３２６）が必要である。
【００２５】
（４）管理サーバ（３０１）がＮＩＣを用いて、ロードバランサへＮＩＣを経由してロードバランサルールＢに業務システム４の登録を追加する。
【００２６】
＊業務システム２
↓変更
＊業務システム２  ⇔  業務システム４
上記と同様にこの操作ではロードバランサに指示を与えるため、管理サーバ（３０１）にはロードバランサに対応した管理ソフトウェアのインストールが必要である。
【００２７】
（５）管理サーバ（３０１）がＮＩＣを用いて、実計算機３のＮＩＣを経由して実計算機３の起動を指示する。
【００２８】
以上のような手順が発生し、実計算機の管理のみでは制御することができず、ストレージコントローラやロードバランサの管理が必要となるという問題がある。
【００２９】
また、図１１において、システムは管理サーバ（４０１）、２台の実計算機（４０６，４０７）、ＦＣスイッチ（４４０）、Ｅｔｈｅｒｎｅｔ（登録商標）スイッチ（４４１）、ロードバランサ（４４２）、ストレージ（４４７）、外部ネットワーク（４４３）で構成されている。実計算機ではＬＰＡＲ１（４０８），ＬＰＡＲ２（４０９），ＬＰＡＲ３（４１１）の仮想計算機が動作し、その上でＯＳ１（４１２）、ＯＳ２（４１３）、ＯＳ３（４１４）のシステムが動作している。
【００３０】
仮想計算機を移動させるときには、移動元と移動先で同一の情報を用いるなどのことがないよう、管理サーバ（４０１）が仮想計算機についての構成情報を集約的に管理している。ＬＰＡＲ２を移動元実計算機（４０６）から移動先実計算機（４０７）へ移動させるときには管理サーバ（４０１）が管理している情報を用い、以下のような処理を行う。
【００３１】
（１）管理サーバ（４０１）がＮＩＣ（４０５）を用いて、移動元の仮想計算機のＮＩＣ（４６０）を経由し、移動元の仮想計算機のハイパバイザエージェント（４２９）へ移動元仮想計算機の停止を要求する。
【００３２】
（２）管理サーバ（４０１）がＮＩＣ（４０５）を用いて、移動先の仮想計算機のＮＩＣ（４３１）を経由し、移動先の仮想計算機のハイパバイザエージェント（４３０）へ移動先仮想計算機（４１０）の起動を要求する。
【００３３】
管理サーバ（４０１）ではこれらの段階について、移動元の仮想計算機と移動先の仮想計算機で重複する情報を保持しないかをＣＰＵ（４０２），主記憶（４０３），ストレージ（４０４）を用いて管理する。
【００３４】
具体的には物理ＦＣ  ＨＢＡ（４３２，４３３，４３６，４３７）を仮想化した仮想ＦＣ  ＨＢＡ（４１５，４１７，４１９，４２１）や物理ＮＩＣ（４３４，４３５，４３８，４３９）を仮想化した仮想ＮＩＣ（４１６，４１８，４２０，４２２）の情報が重複していないかをハイパバイザ（４２３，４２４）が保持する仮想ＦＣ  ＨＢＡ管理テーブル（４２５，４２７）や仮想ＮＩＣ管理テーブル（４２６，４２８）を参照する。
【００３５】
なお、従来のシステムではＷＷＮやＭＡＣアドレスの仮想化は行わないことが一般的で、物理的なＷＷＮやＭＡＣアドレスが仮想計算機によって利用される。
【００３６】
また、仮想サーバのシステムでは特殊なファイルシステムにより、１つのＬＵに複数のＯＳが格納されることがある。このシステムではＯＳ１の区画（４５０）とＯＳ２の区画（４５１）がＬＵ２０（４４８）に格納されている。
【００３７】
また、ＯＳ３の区画（４５２）はＬＵ３０（４４９）に格納されている。このシステムにおいて、以下のような短所がある。
【００３８】
（１）実計算機がハイパバイザを用いずにＬＵにアクセスしたとき、予期しないファイルシステムにアクセスしてしまい、ディスクを破損するおそれがある。
【００３９】
（２）管理サーバ（４０１）が集約的に仮想計算機についての構成情報を保持しているため、他の計算機では代替することができない。
【００４０】
（３）ＷＷＮの仮想化に対応していないため、管理者はストレージコントローラ（４４４）のＬＵＮセキュリティ定義（４４５）について以下のように定義し、ＬＵ２０を複数のＷＷＮに開放する。複数のサーバからアクセス可能であるため、サーバが同時に動作したときにディスク内容を破損してしまうおそれがある。
【００４１】
＊ＬＵ１０（４４６）⇔ＷＷＮ１０
＊ＬＵ２０（４６１）⇔ＷＷＮ２０
＊ＬＵ２０（４６１）⇔ＷＷＮ３０
＊ＬＵ３０（４６２）⇔ＷＷＮ４０
そこで、本発明の目的は、仮想計算機の移動を行う場合に、簡単な手順で、安全に移動処理を行うことができる仮想計算機システムの制御方法を提供することにある。
【００４２】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００４３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００４４】
すなわち、代表的なものの概要は、実計算機上で動作している仮想計算機を別の実計算機上に移動させる際、管理部により、移動元の仮想計算機を停止させ、移動先の仮想計算機を別の実計算機上に定義し、その起動を抑止した状態で、移動元の仮想計算機の構成情報及び移動先の仮想計算機の構成情報を変更し、構成情報の変更後に、移動先の仮想計算機の起動の抑止を解除するものである。
【発明の効果】
【００４５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００４６】
すなわち、代表的なものによって得られる効果は、仮想計算機のＭＡＣアドレスと仮想ＷＷＮが移動の前後で変化しないため、ルータやロードバランサなどのネットワーク機器やＳＡＮストレージ装置の設定を変更する必要がなく、仮想計算機の移動のための制御手順を簡単にできる。
【００４７】
また、仮想計算機１台とストレージ装置内のＬＵを１対１に対応付けたまま移動ができるので、誤って別のサーバがそのＬＵを重複してアクセスすることによるディスクデータの破壊が発生することがない、という信頼性上の効果がある。
【発明を実施するための最良の形態】
【００４８】
まず、本発明の概要について説明する。
【００４９】
本発明では、仮想計算機を移動するときにネットワークとストレージについて、別の管理ソフトウェアに影響を及ぼさないために、移動元の仮想計算機と移動先の仮想計算機のネットワークインターフェイスとストレージインターフェイスが仮想計算機の周辺から同じ見え方にする。
【００５０】
このようにネットワークインターフェイスとストレージインターフェイスを透過的に扱うことで、仮想計算機が抽象化され、仮想計算機がどのような実計算機で動作していてもネットワークやストレージの管理ソフトウェアに影響することなく仮想計算機を運用することができる。
【００５１】
また、仮想計算機の周辺から透過的なネットワークインターフェイスとストレージインターフェイスを構成するために、仮想計算機の移動の際には、移動元仮想計算機が持つ仮想ＭＡＣアドレスと仮想ＷＷＮを、移動先仮想計算機が持つ仮想ＭＡＣアドレスと仮想ＷＷＮを交換して設定する手段を設ける。
【００５２】
物理的なネットワークインターフェイスの識別子であるＭＡＣアドレスと物理的なストレージインターフェイスの識別子であるＷＷＮについて仮想化を行うことで、管理サーバは仮想計算機の移動において、移動元の仮想計算機と移動先の計算機で仮想ＭＡＣアドレスと仮想ＷＷＮを交換し、仮想計算機がどの実計算機で動作しているものであっても、ネットワークの管理ソフトウェアやストレージの管理ソフトウェアでは同じ仮想計算機として扱う。
【００５３】
これにより、ネットワークの管理ソフトウェアやストレージの管理ソフトウェアでは仮想計算機の移動にともなう操作が不要となる。しかし、仮想ＭＡＣアドレスと仮想ＷＷＮを交換する手段を提供したときに、移動元の仮想計算機と移動先の仮想計算機で仮想ＭＡＣアドレスおよび仮想ＷＷＮが重複する可能性がある。例えば、これらが重複した複数の仮想計算機が同時に起動すると、ネットワークやストレージに対して、物理的な識別子が重複してしまうため、予期しないネットワークアドレスが付与されることや複数の計算機からの同時のアクセスによりストレージが破壊される可能性がある。
【００５４】
本発明ではインターフェイスの識別子が重複した複数の仮想計算機が同時に起動することを防ぐため、仮想計算機に起動を抑止する機能を用いる。また、仮想計算機の移動作業途中でハードウェア障害やソフトウェア障害などが発生したり、移動作業の管理が不十分であったりするとどの仮想計算機がどの実計算機で動作中なのかが分からなくなる場合があるので、このような仮想計算機の配置情報を分析して表示する手段を設ける。
【００５５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００５６】
図１により、本発明の一実施の形態に係る制御方法が適用された仮想計算機システムの構成について説明する。図１は本発明の一実施の形態に係る制御方法が適用された仮想計算機システムの構成を示す構成図である。
【００５７】
図１において、仮想計算機システムは、ＣＰＵ（１０２）、主記憶（１０３）、ストレージ（１０４）、ネットワークインターフェイス（１０５）を持つ管理部である管理サーバ（１０１）、２つの実計算機（１０６，１０７）、ＦＣスイッチ（１４０），Ｅｔｈｅｒｎｅｔ（登録商標）スイッチ（１４１）、ロードバランサ（１４２）、ストレージ装置（１４９）から構成され、外部ネットワーク（１４３）に通じている。
【００５８】
このとき、実計算機（１０６，１０７）で、制御部となるハイパバイザ（１２３，１２４）が動作し、ハイパバイザ（１２３，１２４）はハイパバイザエージェント（１２９，１３０）からの指示で仮想計算機を管理する。
【００５９】
ハイパバイザエージェント（１２９，１３０）はネットワークインターフェイス（１５０，１３１）を用い、管理サーバ（１０１）から指示を受けることでハイパバイザ（１２３，１２４）の挙動を変化させることができる。
【００６０】
ハイパバイザ（１２３，１２４）は、物理ＦＣ  ＨＢＡ（１３２，１３３，１３６，１３７）を仮想計算機（１０８，１０９，１１１）で共有して利用するために、物理ＦＣ  ＨＢＡと仮想ＦＣ  ＨＢＡ（１１５，１１７，１２１）を関連付けるための仮想ＦＣ  ＨＢＡ管理テーブル（１２５，１２７）をもっている。
【００６１】
同様に物理ＮＩＣ（１３４，１３５，１３８，１３９）を仮想計算機で共有して利用するために、物理ＮＩＣと仮想ＮＩＣ（１１６，１１８，１２２）を関連付けるための仮想ＮＩＣ管理テーブル（１２６，１２８）をもっている。
【００６２】
このとき、仮想計算機（１０８）ではＬＵ１０（１４６）に格納されているＯＳ１（１１２）が動作し、仮想計算機（１０９）ではＬＵ２０（１４７）に格納されているＯＳ２（１１３）が動作し、仮想計算機（１１１）ではＬＵ３０（１４８）に格納されているＯＳ３（１１４）がそれぞれ並列に動作している。
【００６３】
なお、ストレージコントローラ（１４４）ではＬＵＮセキュリティ定義（１４５）を操作し、仮想ＦＣ  ＨＢＡ（１１５）からはＬＵ１０（１４６）へのアクセスのみを許可し、仮想ＦＣ  ＨＢＡ（１１７）からはＬＵ２０（１４７）へのアクセスのみを許可し、仮想ＦＣ  ＨＢＡ（１２１）からはＬＵ３０（１４８）へのアクセスのみを許可している。
【００６４】
次に、図２〜図４により、本発明の一実施の形態に係る制御方法による仮想計算機の移動動作について説明する。図２〜図４は本発明の一実施の形態に係る制御方法による仮想計算機の移動動作を説明するための説明図であり、仮想計算機の同時起動を防止し、安全に移動させるために管理サーバ（１０１）からハイパバイザ（１２３，１２４）へ定められた順で指示を出すことでハイパバイザ（１２３，１２４）が処理を行う際の処理時の仮想計算機システムの状態を示している。
【００６５】
（１）まず、図２に示すように管理サーバ（１０１）が移動先の仮想計算機（１１０）を定義する。この仮想計算機（１１０）は他の仮想計算機（１０８，１０９、１１１）と同様に仮想ＦＣ  ＨＢＡ（１１９）と仮想ＮＩＣ（１２０）をもつ。
【００６６】
（２）移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）が管理サーバ（１０１）からの指示により、定義した移動先の仮想計算機（１１０）の起動を抑止する。起動の抑止をされた仮想計算機は停止した状態から起動することができない。
【００６７】
（３）移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）が管理サーバ（１０１）からの指示により、移動元の仮想計算機（１０９）のＯＳ２を停止する。ＯＳ２が停止されたことにより、ＬＵ２０（１４７）へのディスクアクセスがなくなる。
【００６８】
（４）管理サーバ（１０１）は移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）に仮想計算機の状態を問い合わせ、移動元仮想計算機（１０９）が停止していることを確認する。
【００６９】
（５）移動元の実計算機（１０６）で動作しているハイパバイザエージェント（１２９）が管理サーバ（１０１）からの指示により移動元の仮想計算機（１０９）の起動を抑止する。
【００７０】
（６）管理サーバ（１０１）が移動元の仮想計算機（１０９）と移動先の仮想計算機（１１０）の仮想ＷＷＮを交換する。交換は以下の（ａ）〜（ｄ）の手順で行われる。
【００７１】
（ａ）管理サーバ（１０１）が移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）から移動元の仮想計算機（１０９）の仮想ＦＣ  ＨＢＡ（１１７）に設定されている仮想ＷＷＮを取得する。取得した仮想ＷＷＮは管理サーバ（１０１）の主記憶（１０３）に記憶する。
【００７２】
（ｂ）管理サーバ（１０１）が移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）から移動先の仮想計算機（１１０）の仮想ＦＣ  ＨＢＡ（１１９）に設定されている仮想ＷＷＮを取得する。取得した仮想ＷＷＮは管理サーバ（１０１）の主記憶（１０３）に記憶する。
【００７３】
（ｃ）管理サーバ（１０１）が移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）に指示を出し、移動先の仮想計算機（１１０）の仮想ＦＣ  ＨＢＡ（１１９）に取得した移動元の仮想計算機（１０９）の仮想ＷＷＮの設定を要求する。管理サーバ（１０１）は応答で設定の完了を確認する。
【００７４】
（ｄ）管理サーバ（１０１）が移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）に指示を出し、移動元の仮想計算機（１０９）の仮想ＦＣ  ＨＢＡ（１１７）に取得した移動先の仮想計算機（１１０）の仮想ＷＷＮの設定を要求する。管理サーバ（１０１）は応答で設定の完了を確認する。
【００７５】
（７）移動元の仮想計算機（１０９）と移動先の仮想計算機（１１０）の仮想ＮＩＣ（１１８，１２０）について仮想ＭＡＣアドレスの交換を行う。この交換の手順は上記（ａ）〜（ｄ）の手順と同様とする。
【００７６】
（８）移動元の仮想計算機（１０９）と移動先の仮想計算機（１１０）の時刻差分情報を交換する。交換の手順は上記（ａ）〜（ｄ）の手順と同様とする。なお、時刻差分情報はハイパバイザ（１２３，１２４）が管理している仮想計算機の情報に含まれている。
【００７７】
なお、この時点の状態を示したものが図３である。
【００７８】
（９）移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）が管理サーバ（１０１）からの指示により、移動先の仮想計算機（１１０）の起動の抑止を解除する。
【００７９】
（１０）移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）が管理サーバ（１０１）からの指示により、移動先の仮想計算機（１１０）を起動する。
【００８０】
これにより、図４に示すような状態となり、移動先の仮想計算機（１１０）でＯＳ２が起動する。
【００８１】
以上の手順で安全に仮想計算機を実計算機をまたいで移動させることができる。ただし、移動元の仮想計算機（１０９）と移動先の仮想計算機（１１０）の間での構成情報（仮想ＷＷＮ，仮想ＭＡＣアドレス，時刻差分情報）の交換についてはそれぞれ順不同で行うことができる。
【００８２】
また、同じ移動の手順を同一の組の仮想計算機の間で行うときには、移動元であった仮想計算機が移動の完了後に定義済みの仮想計算機として残るため、移動先の仮想計算機を定義する手順については不要である。
【００８３】
次に、図５により、本発明の一実施の形態に係る制御方法による仮想計算機の移動シーケンスについて説明する。図５は本発明の一実施の形態に係る制御方法による仮想計算機の移動シーケンスを示す図であり、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）、管理サーバ（１０１）、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）に注目して表している。図５に示した制御手順をＬＰＡＲ移動シーケンスとする。
【００８４】
（１）管理サーバ（１０１）が、移動元計算機で動作するハイパバイザエージェント（１２９）に起動抑止処理への対応を確認する（ステップ２０１）。これは、後ほど移動元の仮想計算機（１０９）と移動先の仮想計算機（１１０）との間で仮想ＷＷＮや仮想ＭＡＣアドレスなどの構成情報を交換するときに双方の仮想計算機（１０９，１１０）が起動抑止処理を行わなければ、安全な状態で構成情報を交換できないためである。
【００８５】
（２）管理サーバ（１０１）が、移動先計算機で動作するハイパバイザエージェント（１３０）に移動先の仮想計算機（１１０）について自動起動の無効を確認する（ステップ２０２）。自動起動が有効であると移動先の実計算機（１０７）で予期しない再起動が発生したときに、仮想計算機（１１０）が予期しない構成情報を保持して起動する可能性があり、安全ではないためである。
【００８６】
（３）管理サーバ（１０１）が、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）に移動元の仮想計算機（１０９）の起動状態を確認する（ステップ２０３）。管理サーバ（１０１）は起動状態の確認によって、移動元の仮想計算機（１０９）を停止する必要があるかを判断する。
【００８７】
（４）管理サーバ（１０１）が、移動先の実計算機（１０６）で動作するハイパバイザエージェント（１２９）に移動先の仮想計算機（１１０）に起動抑止処理を行うように指示する（ステップ２０４）。移動先の仮想計算機（１１０）はこの起動抑止処理によって、起動を抑止され、構成情報を交換する間に起動することを防ぐことができ、安全に構成情報を交換することができる。
【００８８】
（５）管理サーバ（１０１）は、ステップ２０３において、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）に移動元の仮想計算機（１０９）の起動状態を確認したときに、起動されている状態であった場合に、移動元計算機で動作するハイパバイザエージェントに移動元仮想計算機の停止処理を要求する（ステップ２０５）。仮想計算機が起動している状態では安全に仮想計算機を移動させることができないためである。
【００８９】
（６）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）はステップ２０５による停止処理の要求を受け付け、正常に処理されたことを確認することで、仮想計算機の停止を確認する（ステップ２０６）。
【００９０】
（７）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）に対し、移動元の仮想計算機（１０９）の起動抑止処理を行う（ステップ２０７）。この段階で移動元の仮想計算機（１０９）の起動を抑止することで、移動元の仮想計算機（１０９）と移動先の仮想計算機（１１０）が起動抑止状態となり、構成情報の交換をしている間も双方の仮想計算機（１０９，１１０）が起動することなく、安全に構成情報を交換できる。
【００９１】
（８）管理サーバ（１０１）は、移動元計算機で動作するハイパバイザエージェントへ移動元仮想計算機のＦＣ情報の取得を要求する（ステップ２０８）。この要求で仮想計算機がどの物理ＦＣ  ＨＢＡを利用しているのか、また仮想ＦＣ  ＨＢＡに設定されている仮想ＷＷＮを取得する。
【００９２】
（９）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ移動先の仮想計算機（１１０）のＦＣ情報の取得を要求する（ステップ２０９）。
【００９３】
（１０）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）に移動先の仮想計算機（１１０）の仮想ＷＷＮの設定を要求する（ステップ２１０）。設定を要求する仮想ＷＷＮの値はステップ２０８でのＦＣ情報の取得による情報に含まれるものである。
【００９４】
（１１）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）に移動元の仮想計算機（１０９）の仮想ＷＷＮの設定を要求する（ステップ２１１）。設定を要求する仮想ＷＷＮの値は、ステップ２０９でのＦＣ情報の取得による情報に含まれるものである。
【００９５】
（１２）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）へ移動元の仮想計算機（１０９）の仮想ＭＡＣアドレスの取得を要求する（ステップ２１２）。
【００９６】
（１３）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ移動先の仮想計算機（１１０）の仮想ＭＡＣアドレスの取得を要求する（ステップ２１３）。
【００９７】
（１４）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ移動先の仮想計算機（１１０）の仮想ＭＡＣアドレスの設定を要求する（ステップ２１４）。設定を要求する仮想ＭＡＣアドレスの値は、ステップ２１２での移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）への仮想ＭＡＣアドレスの取得に含まれるものである。
【００９８】
（１５）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）へ移動元の仮想計算機（１０９）の仮想ＭＡＣアドレスの設定を要求する（ステップ２１５）。設定を要求する仮想ＭＡＣアドレスの値は、ステップ２１３での移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）への仮想ＭＡＣアドレスの取得に含まれるものである。
【００９９】
（１６）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）へ移動元の仮想計算機（１０９）についての時刻差分情報の取得を要求する（ステップ２１６）。この時刻差分情報には移動元の仮想計算機（１０９）と移動元の実計算機（１０６）のハイパバイザ（１２３）の間の時刻差分情報が含まれている。
【０１００】
（１７）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ移動先の仮想計算機（１１０）についての時刻差分情報の取得を要求する（ステップ２１７）。この時刻差分情報には移動先の仮想計算機（１１０）と移動先の実計算機（１０７）のハイパバイザ（１２４）の間の時刻差分情報が含まれている。
【０１０１】
（１８）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ移動先の仮想計算機（１１０）の時刻差分情報の設定を要求する（ステップ２１８）。設定を要求する時刻差分情報は、ステップ２１６での移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）へ要求した時刻差分情報の取得に含まれているものである。
【０１０２】
（１９）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）へ移動元の仮想計算機（１０９）の時刻差分情報の設定を要求する（ステップ２１９）。設定を要求する時刻差分情報は、ステップ２１７での移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ要求した時刻差分情報の取得に含まれているものである。
【０１０３】
（２０）管理サーバ（１０１）は、移動元の実計算機（１０６）で動作するハイパバイザエージェント（１２９）へ構成情報の保存を要求する（ステップ２２０）。構成情報を保存することで、以後、移動元の実計算機（１０６）が再起動しても、仮想計算機（１０９）が移動された状態で起動する。
【０１０４】
（２１）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ構成情報の保存を要求する（ステップ２２１）。構成情報を保存することで、以後、移動先の実計算機（１０７）が再起動しても、仮想計算機（１１０）が移動された状態で起動する。
【０１０５】
（２２）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１０３）へ移動先の仮想計算機（１１０）の起動抑止解除を要求する（ステップ２２２）。これにより、ＬＰＡＲ移動フローの開始直後に行ったステップ２０４での起動抑止処理が解除され、移動先の仮想計算機（１１０）が起動できる状態となる。
【０１０６】
（２３）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ移動先の仮想計算機（１１０）の起動処理を要求する（ステップ２２３）。起動処理の要求を受け取った仮想計算機（１１０）は移動元の仮想計算機（１０９）がアクセスしていたディスクから起動する。
【０１０７】
（２４）管理サーバ（１０１）は、移動先の実計算機（１０７）で動作するハイパバイザエージェント（１３０）へ移動先の仮想計算機（１１０）の起動状態を確認する（ステップ２２４）。移動先の仮想計算機（１１０）の起動状態を確認することで、正常に仮想計算機の移動が行われたと判断し、ＬＰＡＲ移動フローは終了となる。
【０１０８】
次に、図６により、本発明の一実施の形態に係る制御方法による仮想計算機の移動処理を行うスクリプトプログラムの処理について説明する。図６は本発明の一実施の形態に係る制御方法による仮想計算機の移動処理を行うスクリプトプログラムの処理を示すフローチャートであり、このスクリプトプログラムは、管理サーバ（１０１）上で実行されている。なお、図６において、同様の処理が続く部分については省略した。省略部分を含む各処理の動作は以下で説明するとおりである。
【０１０９】
なお、それぞれの処理は、管理サーバ（１０１）から、移動元と移動先それぞれのＬＰＡＲが構成されている実計算機（１０６，１０７）で動作するハイパバイザエージェント（１２９，１３０）に指示を送ることで実現される。
【０１１０】
（１）スクリプトプログラムが起動の指示を管理サーバ（１０１）から受けたときに開始する（ステップ５００）。
【０１１１】
（２）ＣｏｎｆｉｒｍＳｒｃＬｐａｒＳｕｐｐｏｒｔＡｃｔＩｎｈｉｂｉｔＡｃｔｉｏｎ［移動元ＬＰＡＲが起動抑止に対応していることを確認する］（ステップ５０１）。
【０１１２】
（３）直前の処理に成功したか否かを判断し（ステップ５０２）、ステップ５０２で直前の処理に成功していない場合は、処理を続行するか否かを判断する（ステップ５０３）。続行するか否かの判断材料は管理サーバ（１０１）の入力から与えられる。ステップ５０２で直前の処理に成功した場合、またはステップ５０３で処理を続行する場合、次のステップに進み、ステップ５０３で処理を続行しない場合は、異常終了として、スクリプトが異常に終了した状態を管理サーバ（１０１）に応答する（ステップ５１１）。
【０１１３】
（４）ＣｏｎｆｉｒｍＳｒｃＬｐａｒＡｕｔｏＡｃｔＮｏＡｃｔｉｏｎ［移動元ＬＰＡＲの自動起動が無効であることを確認する］（ステップ５０４）。
【０１１４】
（５）直前の処理に成功したか否かを判断し（ステップ５０５）、ステップ５０５で直前の処理に成功していない場合は、処理を続行するか否かを判断する（ステップ５０６）。続行するか否かの判断材料は管理サーバ（１０１）の入力から与えられる。ステップ５０５で直前の処理に成功した場合、またはステップ５０６で処理を続行する場合、次のステップに進み、ステップ５０６で処理を続行しない場合は、異常終了として、スクリプトが異常に終了した状態を管理サーバ（１０１）に応答する（ステップ５１１）。
【０１１５】
以下、各処理の後に、ステップ５０２およびステップ５０３（ステップ５０５およびステップ５０６）の処理が行われ、直前の処理に成功した場合、または処理を続行する場合、次のステップに進み、処理を続行しない場合は、異常終了として処理される。
【０１１６】
（６）ＣｏｎｆｉｒｍＳｒｃＬｐａｒＡｃｔＡｃｔｉｏｎ［移動元ＬＰＡＲが起動状態であることを確認する］（ステップ５０７）。
【０１１７】
以下、図示しないが、各処理を行う。
【０１１８】
（７）ＲｅｑｕｅｓｔＤｅｓｔＬｐａｒＡｃｔＩｎｈｉｂｉｔＹｅｓＡｃｔｉｏｎ［移動先ＬＰＡＲに起動抑止状態を設定する］。
【０１１９】
（８）ＲｅｑｕｅｓｔＳｒｃＬｐａｒＤｅａｃｔＡｃｔｉｏｎ［移動元ＬＰＡＲの停止を要求する］。
【０１２０】
（９）ＣｏｎｆｉｒｍＳｒｃＬｐａｒＤｅａｃｔＡｃｔｉｏｎ［移動元ＬＰＡＲの停止を確認する］。
【０１２１】
（１０）ＲｅｑｕｅｓｔＳｒｃＬｐａｒＡｃｔＩｎｈｉｂｉｔＹｅｓＡｃｔｉｏｎ［移動元ＬＰＡＲに起動抑止状態を設定する］。
【０１２２】
（１１）ＳｅｔＳｒｃＬｐａｒＶｆｃＮｕｍｂｅｒＩｎｈｉｂｉｔＹｅｓＡｃｔｉｏｎ［移動元ＬＰＡＲの仮想ＦＣの分割識別子を固定する］。
【０１２３】
（１２）ＳｅｔＤｅｓｔＬｐａｒＶｆｃＮｕｍｂｅｒＩｎｈｉｂｉｔＹｅｓＡｃｔｉｏｎ［移動先ＬＰＡＲの仮想ＦＣの分割識別子を固定する］。
【０１２４】
（１３）ＧｅｔＳｒｃＬｐａｒＡｕｔｏＶｎｉｃＡｃｔｉｏｎ［移動元ＬＰＡＲの仮想ＮＩＣの情報を取得する］。
【０１２５】
（１４）ＧｅｔＤｅｓｔＬｐａｒＡｕｔｏＶｎｉｃＡｃｔｉｏｎ［移動先ＬＰＡＲの仮想ＮＩＣの情報を取得する］。
【０１２６】
（１５）ＳｅｔＤｅｓｔＬｐａｒＡｕｔｏＶｎｉｃＡｃｔｉｏｎ［移動先ＬＰＡＲの仮想ＮＩＣの情報を設定する］。
【０１２７】
（１６）ＳｅｔＳｒｃＬｐａｒＡｕｔｏＶｎｉｃＡｃｔｉｏｎ［移動元ＬＰＡＲの仮想ＮＩＣの情報を設定する］。
【０１２８】
（１７）ＧｅｔＳｒｃＬｐａｒＰｈｙｓｉｃａｌＦＣＡｃｔｉｏｎ［移動元ＬＰＡＲの実ＦＣの情報を取得する］。
【０１２９】
（１８）ＧｅｔＳｒｃＬｐａｒＬｏｇｉｃａｌＦＣＡｃｔｉｏｎ［移動元ＬＰＡＲの仮想ＦＣの情報を取得する］。
【０１３０】
（１９）ＧｅｔＤｅｓｔＬｐａｒＰｈｙｓｉｃａｌＦＣＡｃｔｉｏｎ［移動先ＬＰＡＲの実ＦＣの情報を取得する］。
【０１３１】
（２０）ＧｅｔＤｅｓｔＬｐａｒＬｏｇｉｃａｌＦＣＡｃｔｉｏｎ［移動先ＬＰＡＲの仮想ＦＣの情報を取得する］。
【０１３２】
（２１）ＳｅｔＤｅｓｔＬｐａｒＷＷＮＡｃｔｉｏｎ［移動先ＬＰＡＲの仮想ＷＷＮの情報を設定する］。
【０１３３】
（２２）ＳｅｔＳｒｃＬｐａｒＷＷＮＡｃｔｉｏｎ［移動元ＬＰＡＲの仮想ＷＷＮの情報を設定する］。
【０１３４】
（２３）ＧｅｔＳｒｃＬｐａｒＲＴＣＤｉｆｆｅｒｅｎｃｅＡｃｔｉｏｎ［移動元ＬＰＡＲの時刻差分情報を取得する］。
【０１３５】
（２４）ＧｅｔＤｅｓｔＬｐａｒＲＴＣＤｉｆｆｅｒｅｎｃｅＡｃｔｉｏｎ［移動先ＬＰＡＲの時刻差分情報を取得する］。
【０１３６】
（２５）ＳｅｔＤｅｓｔＬｐａｒＲＴＣＤｉｆｆｅｒｅｎｃｅＡｃｔｉｏｎ［移動先ＬＰＡＲの時刻差分情報を設定する］。
【０１３７】
（２６）ＳｅｔＳｒｃＬｐａｒＲＴＣＤｉｆｆｅｒｅｎｃｅＡｃｔｉｏｎ［移動先ＬＰＡＲの時刻差分情報を設定する］。
【０１３８】
（２７）ＲｅｑｕｅｓｔＳｒｃＬｐａｒＳａｖｅＣｏｎｆｉｇＡｃｔｉｏｎ［移動元ＬＰＡＲの構成情報の保存を要求する］。
【０１３９】
（２８）ＣｏｎｆｉｒｍＳｒｃＬｐａｒＳａｖｅＣｏｎｆｉｇＡｃｔｉｏｎ［移動元ＬＰＡＲの構成情報の保存を確認する］。
【０１４０】
（２９）ＲｅｑｕｅｓｔＤｅｓｔＬｐａｒＳａｖｅＣｏｎｆｉｇＡｃｔｉｏｎ［移動先ＬＰＡＲの構成情報の保存を要求する］。
【０１４１】
（３０）ＣｏｎｆｉｒｍＤｅｓｔＬｐａｒＳａｖｅＣｏｎｆｉｇＡｃｔｉｏｎ［移動先ＬＰＡＲの構成情報の保存を確認する］。
【０１４２】
（３１）ＲｅｑｕｅｓｔＤｅｓｔＬｐａｒＡｃｔＩｎｈｉｂｉｔＮｏＡｃｔｉｏｎ［移動先ＬＰＡＲの起動抑止状態を解除する］。
【０１４３】
（３２）ＲｅｑｕｅｓｔＤｅｓｔＬｐａｒＡｃｔＡｃｔｉｏｎ［移動先ＬＰＡＲの起動を要求する］。
【０１４４】
（３３）ＣｏｎｆｉｒｍＤｅｓｔＬｐａｒＡｃｔＡｃｔｉｏｎ［移動先ＬＰＡＲの起動を確認する］。
【０１４５】
（３４）  全ての処理が終了すると正常終了として、スクリプトが正常に終了した状態を管理サーバ（１０１）に応答する（ステップ５１０）。
【０１４６】
次に、図７〜図９により、本発明の一実施の形態に係る制御方法による仮想計算機の配置情報の分析処理について説明する。図７は本発明の一実施の形態に係る制御方法による仮想ＷＷＮを解析するスクリプトプログラムの動作を示すフローチャート、図８は本発明の一実施の形態に係る制御方法による仮想ＭＡＣアドレスを解析するスクリプトプログラムの動作を示すフローチャート、図９は本発明の一実施の形態に係る制御方法によるハイパバイザエージェントを探索するスクリプトプログラムの動作を示すフローチャートであり、この各スクリプトプログラムは、管理サーバ（１０１）上で実行されている。
【０１４７】
まず、仮想ＷＷＮを解析するスクリプトプログラムの動作は、図７に示すように以下に説明するとおりである。
【０１４８】
（１）スクリプトプログラムは管理サーバ（１０１）から起動の指示を受けたときに開始する（ステップ６００）。
【０１４９】
（２）ＷＷＰＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｐｏｒｔ  Ｎａｍｅ）かＷＷＮＮ（Ｗｏｒｌｄ＿Ｗｉｄｅ＿Ｎｏｄｅ＿Ｎａｍｅ）かを解析する（ステップ６０１）。仮想ＷＷＮの最下位１ビット目からの１ビットはＷＷＰＮかＷＷＮＮかを示している。スクリプトプログラムはこの情報を取り出す。
【０１５０】
（３）シャーシ固有のシリアル番号を解析する（ステップ６０２）。仮想ＷＷＮの最下位２ビット目からの１５ビットはシャーシに固有なシリアル番号を示している。スクリプトプログラムはこの情報を取り出す。
【０１５１】
（４）パーティション番号を解析する（ステップ６０３）。仮想ＷＷＮの最下位１７ビット目からの３ビットはパーティション番号を示している。スクリプトプログラムはこの情報を取り出す。
【０１５２】
（５）物理ＦＣ  ＨＢＡの相対スロット番号を解析する（ステップ６０４）。仮想ＷＷＮの最下位２０ビット目からの４ビットは物理ＦＣ  ＨＢＡの相対スロット番号を示している。スクリプトプログラムはこの情報を取り出す。なお、相対スロット番号とは物理的なブレード位置と物理ＦＣ  ＨＢＡが取り付けられている物理的な位置の差分を取り、相対的な表現にしたものである。
【０１５３】
（６）物理ＦＣ  ＨＢＡのポート番号を解析する（ステップ６０５）。仮想ＷＷＮの最下位２４ビット目からの１ビットは物理ＦＣ  ＨＢＡ上でどのポート番号にあたるかを示している。スクリプトプログラムはこの情報を取り出す。
【０１５４】
（７）ベンダ固有の番号と照合する（ステップ６０６）。仮想ＷＷＮの最下位２５ビット目から２４ビットはベンダに固有な番号を示している。スクリプトプログラムはこの情報を取り出し、予期したベンダ固有の値と一致していることを確認する。
【０１５５】
（８）仮想ＦＣ  ＨＢＡ識別番号を解析する（ステップ６０７）。仮想ＷＷＮの最下位４９ビット目から３ビットは仮想ＦＣの識別番号を示している。スクリプトプログラムはこの情報を取り出す。なお、仮想ＦＣ  ＨＢＡの識別番号とは、物理ＦＣ  ＨＢＡを複数の仮想ＦＣ  ＨＢＡとして仮想化したときに、仮想ＦＣ  ＨＢＡのそれぞれを識別するために付与される仮想ＦＣ  ＨＢＡに固有な値である。
【０１５６】
（９）プラットフォームを解析する（ステップ６０８）。仮想ＷＷＮの最下位５２ビット目から３ビットはプラットフォームを示している。スクリプトプログラムはこの情報を取り出す。なお、プラットフォームとはハードウェア製品につけられた名前のことである。
【０１５７】
（１０）予約された値に一致するかを照合する（ステップ６０９）。仮想ＷＷＮの最下位５５ビット目から２ビットは予約された値が格納されている。スクリプトプログラムはこの情報を取り出し、予約された値と一致しているかを確認する。
【０１５８】
（１１）ベンダ管理番号を解析する（ステップ６１０）。仮想ＷＷＮの最下位５７ビット目から４ビットはベンダ管理番号を示している。スクリプトプログラムはこの情報を取り出す。ベンダ管理番号とは、ベンダに与えられたＷＷＮ空間について、重複しないように、ベンダが用途別に割り当てた値である。
【０１５９】
（１２）既定の値に一致するかを照合する（ステップ６１１）。仮想ＷＷＮの最下位６１ビット目から４ビットは既定されている。スクリプトプログラムはこの情報を取り出し、既定された値と一致することを確認する。
【０１６０】
（１３）全ての情報を取り出し、解析を終えたスクリプトプログラムは終了する（ステップ６１２）。
【０１６１】
また、仮想ＭＡＣアドレスを解析するスクリプトプログラムの動作は、図８に示すように以下に説明するとおりである。
【０１６２】
（１）スクリプトプログラムは管理サーバ（１０１）から開始の指示を受けることで仮想ＭＡＣアドレスの解析を開始する（ステップ６２０）。
【０１６３】
（２）ベンダ識別番号と照合する（ステップ６２１）。仮想ＭＡＣアドレスの上位１バイト目からの３バイトはベンダ識別番号を示している。スクリプトプログラムはこの情報を取り出し、期待した値と一致することを確認する。
【０１６４】
（３）仮想ＮＩＣシステム識別番号を解析する（ステップ６２２）。仮想ＭＡＣアドレスの上位４バイト目からの２バイトは仮想ＮＩＣシステム識別番号を基に生成されている。この情報は仮想ＮＩＣシステム識別番号と１対１で対応している。スクリプトプログラムはこの情報を取り出し、解析し、仮想ＮＩＣシステム識別番号を取り出す。
【０１６５】
（４）ＬＰＡＲ番号を解析する（ステップ６２３）。仮想ＭＡＣアドレスの上位６バイト目からの１バイトはＬＰＡＲ番号を基に生成されている。この情報はＬＰＡＲ番号と１対１で対応している。スクリプトプログラムはこの情報を取り出し、解析し、ＬＰＡＲ番号を取り出す。
【０１６６】
（５）全ての情報を取り出し、解析を終えたスクリプトプログラムは終了する（ステップ６２４）。
【０１６７】
また、ハイパバイザエージェントを探索するスクリプトプログラムの動作は、図９に示すように以下に説明するとおりである。
【０１６８】
ハイパバイザエージェント（１２９，１３０）は、ＬＰＡＲの特別な一種として構成されており、ＭＡＣアドレスを解析し、特定の条件を満足するとき、具体的にはＬＰＡＲの管理番号が１７番であるときにハイパバイザエージェントとして一覧表示する。
【０１６９】
（１）スクリプトプログラムは管理サーバ（１０１）からの起動の指示を受けたときに実行を開始する（ステップ７００）。
【０１７０】
（２）ＩＣＭＰエコー要求をブロードキャストする（ステップ７０１）。スクリプトプログラムは管理サーバ（１０１）を通し、同じネットワークの全ての計算機に対してＩＣＭＰエコー要求をブロードキャストする。このとき、ＩＣＭＰエコー要求の送信を行うために、ＩＰアドレスからＭＡＣアドレスを引き出すために、ＡＲＰ要求を送信する。ＡＲＰ要求によって解決されたＩＰアドレスとＭＡＣアドレスはＡＲＰテーブルに格納される。
【０１７１】
（３）ＩＣＭＰエコー応答を受信する（ステップ７０２）。ＩＣＭＰエコー要求を受信した計算機はＩＣＭＰエコー要求の送信元へＩＣＭＰエコー応答を送信する。スクリプトプログラムはこのＩＣＭＰエコー応答を受信する。
【０１７２】
（４）テーブルにＭＡＣアドレスとＩＰアドレスを登録する（ステップ７０３）。ＩＣＭＰエコー要求のブロードキャストとＩＣＭＰエコー応答の受信を終えたシステムのＡＲＰテーブルには同じネットワークのＩＰアドレスとＭＡＣアドレスの対が登録されている。スクリプトプログラムはテーブルにこのＭＡＣアドレスとＩＰアドレスの対を登録する。
【０１７３】
（５）テーブルからＭＡＣアドレスを取り出し解析する（ステップ７０４）。スクリプトプログラムはテーブルに登録したＭＡＣアドレスとＩＰアドレスの対から１つを取り出し、ＭＡＣアドレスについてそのＭＡＣアドレスが仮想ＭＡＣアドレスであると仮定して解析する。
【０１７４】
（６）テーブルに格納されたＭＡＣアドレス全てについての解析が終わったかを判断する（ステップ７０５）。ＭＡＣアドレスの解析は、テーブルに格納された数だけ行う。
【０１７５】
（７）ステップ７０５でテーブルに格納されたＭＡＣアドレス全てについての解析が終わっていない場合は、繰り返しステップ７０４での解析結果がハイパバイザエージェントを示しているかを判断する（ステップ７０６）。スクリプトプログラムはステップ７０４での解析結果についてＭＡＣアドレスがハイパバイザエージェントのものと期待されるかを判断する。
【０１７６】
（８）ステップ７０６で解析結果がハイパバイザエージェントを示していない場合は、ステップ７０４に戻り、ステップ７０６で解析結果がハイパバイザエージェントを示している場合は、テーブルから解析したＭＡＣアドレスに対応するＩＰアドレスを取り出し、そのＩＰアドレスと解析したＭＡＣアドレスの対を表示する（ステップ７０７）。
【０１７７】
（９）ステップ７０５で、テーブルに格納されたＭＡＣアドレス全てについての解析が終わり、ハイパバイザエージェントのＩＰアドレスとＭＡＣアドレスの対と期待される情報を全て出力したスクリプトプログラムは終了する（ステップ７０８）。
【０１７８】
以上の仮想ＷＷＮの解析、仮想ＭＡＣアドレスの解析、ハイパバイザエージェントの探索により、仮想計算機の配置情報を分析することができ、仮想計算機を移動した結果として、現在どの実計算機上で仮想計算機が動作しているかを容易に判断することができる。
【０１７９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１８０】
例えば、本実施の形態では、仮想計算機を移動する際に、移動元の仮想計算機と、移動先の仮想計算機の各情報を入れ替えることにより、移動を行うようにしているが、移動先の仮想計算機の情報に、移動元の仮想計算機の情報を上書きするようにしてもよい。その場合は、移動元の仮想計算機の情報を意味のない情報にするなどして、移動先の仮想計算機とは異なる情報とすればよい。
【０１８１】
また、本実施の形態では、管理サーバにより、仮想計算機の移動処理を行っているが、管理サーバ以外の管理部により、仮想計算機の移動処理を行うようにしてもよい。
【産業上の利用可能性】
【０１８２】
本発明は、計算機を多数運用するデータセンタなどにおいて、省エネルギーを目的に、あるいはトータルの計算機台数を無駄に増加させないようにするためシステムの負荷を監視しながら仮想計算機を特定の実計算機に移動して、空いた実計算機の電源を切断し、別用途に用いるなど効率的な計算機利用を図るシステムなどの広く適用可能である。
【０１８３】
また、実計算機のハードウェア保守のとき、仮想計算機を別の実計算機に移動させることにより、保守のためのシステム停止時間を最小限にするシステムなどにも広く適用可能である。
【図面の簡単な説明】
【０１８４】
【図１】本発明の一実施の形態に係る制御方法が適用された仮想計算機システムの構成を示す構成図である。
【図２】本発明の一実施の形態に係る制御方法による仮想計算機の移動動作を説明するための説明図である。
【図３】本発明の一実施の形態に係る制御方法による仮想計算機の移動動作を説明するための説明図である。
【図４】本発明の一実施の形態に係る制御方法による仮想計算機の移動動作を説明するための説明図である。
【図５】本発明の一実施の形態に係る制御方法による仮想計算機の移動シーケンスを示す図である。
【図６】本発明の一実施の形態に係る制御方法による仮想計算機の移動処理を行うスクリプトプログラムの処理を示すフローチャートである。
【図７】本発明の一実施の形態に係る制御方法による仮想ＷＷＮを解析するスクリプトプログラムの動作を示すフローチャートである。
【図８】本発明の一実施の形態に係る制御方法による仮想ＭＡＣアドレスを解析するスクリプトプログラムの動作を示すフローチャートである。
【図９】本発明の一実施の形態に係る制御方法によるハイパバイザエージェントを探索するスクリプトプログラムの動作を示すフローチャートである。
【図１０】従来の仮想計算機システムの制御における具体的な問題点を説明するための説明図である。
【図１１】従来の仮想計算機システムの制御における具体的な問題点を説明するための説明図である。
【符号の説明】
【０１８５】
１０１…管理サーバ、１０２…ＣＰＵ、１０３…主記憶、１０４…ストレージ、１０５…ネットワークインターフェイス、１０６，１０７…実計算機、１０８，１０９，１１０，１１１…仮想計算機、１１５，１１７，１２１…仮想ＦＣ  ＨＢＡ、１１６，１１８，１２２…仮想ＮＩＣ、１２３，１２４…ハイパバイザ、１２５，１２７…仮想ＦＣ  ＨＢＡ管理テーブル、１２６，１２８…仮想ＮＩＣ管理テーブル、１２９，１３０…ハイパバイザエージェント、１３１，１５０…ネットワークインターフェイス、１３２，１３３，１３６，１３７…物理ＦＣ  ＨＢＡ、１３４，１３５，１３８，１３９…物理ＮＩＣ、１４０…ＦＣスイッチ，１４１…Ｅｔｈｅｒｎｅｔ（登録商標）スイッチ、１４２…ロードバランサ、１４３…外部ネットワーク、１４４…ストレージコントローラ、１４５…ＬＵＮセキュリティ定義、１４９…ストレージ装置、１４６，１４７，１４８…ＬＵ。
【図１】
2010033404.tif 000003
【図２】
2010033404.tif 000004
【図３】
2010033404.tif 000005
【図４】
2010033404.tif 000006
【図５】
2010033404.tif 000007
【図６】
2010033404.tif 000008
【図７】
2010033404.tif 000009
【図８】
2010033404.tif 000010
【図９】
2010033404.tif 000011
【図１０】
2010033404.tif 000012
【図１１】
2010033404.tif 000013
【手続補正書】
【提出日】平成21年6月22日(2009.6.22)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
このようなシステムとして、ＥＳＸ  Ｓｅｒｖｅｒ  ３ｉ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｇｕｉｄｅ（非特許文献１）、Ｃｉｓｃｏ  ＭＤＳ  ａｎｄ  Ｅｍｕｌｅｘ  Ｖｉｒｔｕａｌ  ＨＢＡ  Ｓｏｌｕｔｉｏｎｓ  ｆｏｒ  ＶＭｗａｒｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ３（非特許文献２）に記載された技術があった。
【非特許文献１】ＥＳＸ  Ｓｅｒｖｅｒ  ３ｉ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｇｕｉｄｅ，Ｓｔｏｒａｇｅ，７−Ｒａｗ  Ｄｅｖｉｃｅ  Ｍａｐｐｉｎｇ−Ｂｅｎｅｆｉｔｓ  ｏｆ  Ｒａｗ  ｄｅｖｉｃｅ  Ｍａｐｐｉｎｇ，（ｐ１１３−１１５）、インターネット＜URL:http://www.vmware.com/pdf/vi3_35/esx_3i_e/r35/vi3_35_25_3i_server_config.pdf＞
【非特許文献２】Ｃｉｓｃｏ  ＭＤＳ  ａｎｄ  Ｅｍｕｌｅｘ  Ｖｉｒｔｕａｌ  ＨＢＡ  Ｓｏｌｕｔｉｏｎｓ  ｆｏｒ  ＶＭｗａｒｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ３，６．Ａｒｒａｙ  ｌｅｖｅｌ  ＬＵＮ  Ｍａｓｋｉｎｇ，Ｍａｐｐｉｎｇ  ａｎｄ  ＶＭｏｔｉｏｎ，（ｐ１２−１４）、インターネット＜URL:http://www.emulex.com/white/hba/CiscoEmulexVirtualizationforVMware.pdf＞