(57)【特許請求の範囲】
【請求項１】
物理サーバ上で動作する仮想マシンの移動を、前記仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示するＶＭ管理装置と、
移動対象となる仮想マシンのメモリイメージの転送経路に応じたメモリイメージ転送用フローをスイッチに設定し、前記移動先の仮想マシンモニタ宛の通信を制御するためのフローである移動先ＶＭ宛通信用フローを生成するコントローラと、
前記メモリイメージ転送用フローに示されたルールに従うメモリイメージを、前記メモリイメージ転送用フローに示されたアクションに従って、移動先の仮想マシンに転送し、前記移動先ＶＭ宛通信用フローに示されたルールに従う前記仮想マシン宛のパケットデータを、前記移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送し、移動を完了した仮想マシンからのパケットデータが、自身に設定されたフローに示されたルールに適合しない場合、前記パケットデータに含まれる第１データを前記コントローラに通知するスイッチと
を具備する
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
移動対象となる仮想マシン、移動元の仮想マシンモニタ、移動先となる仮想マシンモニタを指定して、前記ＶＭ管理装置及び前記コントローラに対し仮想マシンの移動を指示する統合管理装置を更に具備し、
前記コントローラは、前記指示に応じて、指定された移動対象となる仮想マシンのメモリイメージの転送経路を算出し、前記転送経路上のスイッチに設定する前記メモリイメージ転送用フローを生成し、
前記ＶＭ管理装置は、前記指示に応じて、指定された移動対象となる仮想マシンのメモリイメージを、前記移動先となる仮想マシンモニタ上に生成された仮想マシン宛に転送するように、前記移動元及び前記移動先の仮想マシンモニタを制御する
コンピュータシステム。
【請求項３】
物理サーバ上で動作する仮想マシンの移動を、前記仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示するＶＭ管理装置と、
前記移動先の仮想マシンモニタ宛の通信を制御するためのフローである移動先ＶＭ宛通信用フローを生成するコントローラと、
前記移動先ＶＭ宛通信用フローに示されたルールに従う前記仮想マシン宛のパケットデータを、前記移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送し、移動を完了した仮想マシンからのパケットデータが、自身に設定されたフローに示されたルールに適合しない場合、前記パケットデータに含まれる第１データを前記コントローラに通知するスイッチと、
移動対象となる仮想マシン、移動元の仮想マシンモニタ、移動先となる仮想マシンモニタを指定して、前記コントローラに対し仮想マシンの移動を指示する統合管理装置と
を具備し、
前記コントローラは、前記指示に応じて、前記移動対象となる仮想マシンに関わる通信経路を算出し、前記通信経路上のスイッチに設定する前記移動先ＶＭ宛通信用フローを生成する
コンピュータシステム。
【請求項４】
請求項３に記載のコンピュータシステムにおいて、
前記コントローラは、移動対象となる仮想マシンに関わる通信経路を選択し、当該通信経路の端点の一方を、移動対象となる仮想マシンから移動先となる仮想マシンへ変更し、移動先の仮想マシン宛の通信経路とする
コンピュータシステム。
【請求項５】
請求項４に記載のコンピュータシステムにおいて、
前記コントローラは、稼動した仮想マシンからのＲＡＲＰ（Ｒｅｖｅｒｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）を受信したスイッチからの通知に基づいて、保持する通信経路から、前記移動先の仮想マシン宛の通信経路を選択し、前記選択された通信経路上のスイッチに設定する移動先ＶＭ宛通信用フローを、保持するフローから選択し、前記選択された通信経路上のスイッチに設定する
コンピュータシステム。
【請求項６】
物理サーバ上で動作する仮想マシンの移動を、前記仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示するＶＭ管理装置と、
前記移動先の仮想マシンモニタ宛の通信を制御するためのフローである移動先ＶＭ宛通信用フローを生成するコントローラと、
前記移動先ＶＭ宛通信用フローに示されたルールに従う前記仮想マシン宛のパケットデータを、前記移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送し、移動を完了した仮想マシンからのパケットデータが、自身に設定されたフローに示されたルールに適合しない場合、前記パケットデータに含まれる第１データを前記コントローラに通知するスイッチと
を具備し、
前記コントローラは、稼動した仮想マシンによるＲＡＲＰ（Ｒｅｖｅｒｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）送信を検出したスイッチと、保持する通信経路から抽出した通信経路における端点との相違に基づいて、前記仮想マシンの接続先の変更を検出する
コンピュータシステム。
【請求項７】
請求項６に記載のコンピュータシステムにおいて、
前記コントローラは、保持する通信経路から、稼動した仮想マシンによるＲＡＲＰ送信に含まれるＭＡＣアドレスに基づいて通信経路を抽出し、前記抽出された通信経路における仮想マシンと異なる側の端点と、前記ＲＡＲＰ送信を検出した端点と間の通信経路を移動先の仮想マシン宛の通信経路として算出し、前記通信経路上のスイッチに設定する前記移動先ＶＭ宛通信用フローを生成する
コンピュータシステム。
【請求項８】
請求項１から７のいずれか１項に記載のコンピュータシステムにおいて、
前記コントローラは、通信路を設定し、トポロジ情報を用いて前記設定された通信経路上のスイッチを特定し、前記特定されたスイッチに対応するルール及びアクションを前記特定されたスイッチに対するフローとしてフローテーブルに記録する
コンピュータシステム。
【請求項９】
請求項１から８のいずれか１項に記載のコンピュータシステムにおいて、
前記ルールは、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）に従ったパケットデータのヘッダ情報に含まれる、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ１からレイヤ４のアドレスや識別子の組み合わせによって規定される
コンピュータシステム。
【請求項１０】
ＶＭ管理装置が、物理サーバ上で動作する仮想マシンの移動を、前記仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示するステップと、
コントローラが、移動対象となる仮想マシンのメモリイメージの転送経路に応じたメモリイメージ転送用フローをスイッチに設定するステップと、
前記スイッチが、前記メモリイメージ転送用フローに示されたルールに従うメモリイメージを、前記メモリイメージ転送用フローに示されたアクションに従って移動先の仮想マシンに転送するステップと
前記コントローラが、前記移動先の仮想マシンモニタ宛の通信を制御するためのフローである移動先ＶＭ宛通信用フローを生成するステップと、
前記スイッチが、前記移動先ＶＭ宛通信用フローに示されたルールに従う前記仮想マシン宛のパケットデータを、前記移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送するステップと、
移動を完了した仮想マシンから受信したパケットデータが、前記スイッチに設定されたフローに示されたルールに適合しない場合、前記スイッチが前記パケットデータに含まれる第１データを前記コントローラに通知するステップと
を具備する
仮想マシンのマイグレーション方法。
【請求項１１】
請求項１０に記載の仮想マシンのマイグレーション方法において、
統合管理装置が、移動対象となる仮想マシン、移動元の仮想マシンモニタ、移動先となる仮想マシンモニタを指定して、前記ＶＭ管理装置及び前記コントローラに対し仮想マシンの移動を指示するステップと、
前記ＶＭ管理装置が、前記統合管理装置からの前記指示に応じて、指定された移動対象となる仮想マシンのメモリイメージを、前記移動先となる仮想マシンモニタ上に生成された仮想マシン宛に転送するように、前記移動元及び前記移動先の仮想マシンモニタを制御するステップと
を更に具備し、
前記ＶＭ管理装置が仮想マシンの移動を指示するステップは、前記統合管理装置からの前記指示に応じて行われ、
前記コントローラがメモリイメージ転送用フローをスイッチに設定するステップは、
前記統合管理装置からの前記指示に応じて行われ、
前記コントローラが、前記指示に応じて、指定された移動対象となる仮想マシンのメモリイメージの転送経路を算出するステップと、
前記コントローラが、前記転送経路上のスイッチに設定する前記メモリイメージの転送用フローを生成するステップを備える
仮想マシンのマイグレーション方法。
【請求項１２】
ＶＭ管理装置が、物理サーバ上で動作する仮想マシンの移動を、前記仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示するステップと、
統合管理装置が、移動対象となる仮想マシン、移動元の仮想マシンモニタ、移動先となる仮想マシンモニタを指定して、コントローラに対し仮想マシンの移動を指示するステップと、
前記コントローラが、前記指示に応じて、前記移動元の仮想マシンモニタと前記移動先の仮想マシンモニタとの間で前記移動対象となる仮想マシンのメモリイメージを転送するための通信経路を算出するステップと、
前記コントローラが、前記通信経路上のスイッチに設定する移動先ＶＭ宛通信用フローを生成するステップと、
移動先ＶＭ宛通信用フローは、前記移動先の仮想マシンモニタ宛の通信を制御するためのフローであり、
前記スイッチが、前記移動先ＶＭ宛通信用フローに示されたルールに従う前記仮想マシン宛のパケットデータを、前記移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送するステップと、
移動を完了した仮想マシンからのパケットデータが、自身に設定されたフローに示されたルールに適合しない場合、前記スイッチが前記パケットデータに含まれる第１データを前記コントローラに通知するステップと
を具備する
仮想マシンのマイグレーション方法。
【請求項１３】
請求項１２に記載の仮想マシンのマイグレーション方法において、
前記移動先の仮想マシン宛の通信経路を算出するステップは、
前記コントローラが、移動対象となる仮想マシンに関わる通信経路を選択するステップと、
前記コントローラが、前記選択された通信経路の端点の一方を、移動対象となる仮想マシンから移動先となる仮想マシンへ変更し、移動先の仮想マシン宛の通信経路とするステップと
を備える
仮想マシンのマイグレーション方法。
【請求項１４】
請求項１３に記載の仮想マシンのマイグレーション方法において、
前記コントローラが、移動対象となる仮想マシンに関わる通信経路を選択するステップは、
前記コントローラが、稼動した仮想マシンからのＲＡＲＰ（Ｒｅｖｅｒｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）送信を受信したスイッチからの通知に基づいて、保持する通信経路から、前記移動先の仮想マシン宛の通信経路を選択するステップを備え、
前記コントローラが、前記通信経路上のスイッチに設定する移動先ＶＭ宛通信用フローを生成するステップは、
前記コントローラが、前記選択された通信経路上のスイッチに設定する移動先ＶＭ宛通信用フローを保持するフローから選択するステップを備え、
前記スイッチが、前記移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送するステップは、
前記コントローラが、前記選択された通信経路上のスイッチに前記選択した移動先ＶＭ宛通信用フローを設定するステップと、
前記スイッチが、前記設定された移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送するステップと
を備える
仮想マシンのマイグレーション方法。
【請求項１５】
ＶＭ管理装置が、物理サーバ上で動作する仮想マシンの移動を、前記仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示するステップと、
コントローラが、前記移動先の仮想マシンモニタ宛の通信を制御するためのフローである移動先ＶＭ宛通信用フローを生成するステップと、
スイッチが、前記移動先ＶＭ宛通信用フローに示されたルールに従う前記仮想マシン宛のパケットデータを、前記移動先ＶＭ宛通信用フローに示されたアクションに従って移動先の仮想マシンに転送するステップと、
移動を完了した仮想マシンから受信したパケットデータが、前記スイッチに設定されたフローに示されたルールに適合しない場合、前記スイッチが前記パケットデータに含まれる第１データを前記コントローラに通知するステップと、
前記コントローラが、稼動した仮想マシンによるＲＡＲＰ（Ｒｅｖｅｒｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）送信を検出したスイッチと、保持する通信経路から抽出した通信経路における端点との相違に基づいて、前記仮想マシンの接続先の変更を検出するステップ
を具備する
仮想マシンのマイグレーション方法。
【請求項１６】
請求項１５に記載の仮想マシンのマイグレーション方法において、
前記コントローラが、移動先ＶＭ宛通信用フローを生成するステップは、
前記コントローラが、保持する通信経路から、稼動した仮想マシンによるＲＡＲＰ送信に含まれるＭＡＣアドレスに基づいて通信経路を抽出するステップと、
前記コントローラが、前記抽出された通信経路における仮想マシンと異なる側の端点と、前記ＲＡＲＰ送信を検出した端点と間の通信経路を移動先の仮想マシン宛の通信経路として算出するステップと、
前記コントローラが、前記通信経路上のスイッチに設定する前記移動先ＶＭ宛通信用フローを生成するステップと
を備える
仮想マシンのマイグレーション方法。
【請求項１７】
請求項１０から１６のいずれか１項に記載の仮想マシンのマイグレーション方法において、
前記ルールは、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）に従ったパケットデータのヘッダ情報に含まれる、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ１からレイヤ４のアドレスや識別子の組み合わせによって規定される
仮想マシンのマイグレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、及び仮想マシンのマイグレーション方法に関し、特に、ネットワーク環境及びＩＴ環境を一元管理しながら仮想マシンのマイグレーションが可能なコンピュータシステムに関する。
【背景技術】
【０００２】
近年、複数の仮想マシンを１台の物理サーバ上で稼動させることで、より柔軟なシステム構成が可能になってきた。このようなシステムでは、稼動中の仮想マシンを止めずに他の物理サーバや、メモリ領域に仮想マシンを移動させるライブマイグレーション技術によって、障害回避やシステムの負荷分散等を実現することができる。
【０００３】
ライブマイグレーションに関する技術として、例えば、ＷＯ２００５／０８３５６９（特許文献１参照）、特開２００９−１４６１０６（特許文献２参照）、特開２００４−７８４６５（特許文献３参照）が知られている。
【０００４】
特許文献１には、稼動サーバの切替制御手段と、コネクション先を、メインサーバを含むターゲット網からバックアップサーバを含む切替先ターゲット網に切り替えるコネクション制御手段とを備えるネットワークシステムが記載されている。このような構成により、特許文献１に記載のシステムは、ユーザのサービス停止と通信の再設定なしにプロセスマイグレーションを行うことが可能となる。
【０００５】
特許文献２には、仮想ポートの付加先となる物理ポートを他の物理ポートに移行し、移行先の物理ポートの識別情報に基づいてスイッチユニットのルーティングテーブルを更新することで、同一ストレージへのアクセスパスを変更するストレージシステムが記載されている。
【０００６】
特許文献３には、プロセスマイグレーション処理時の移動対象プロセスの停止時間を短縮させる技術が記載されている。
【０００７】
複数のコンピュータがネットワークを介して接続されたコンピュータシステムでは、通常、ネットワーク側を管理するネットワーク管理者と、コンピュータ側を管理するＩＴ（情報技術）管理者とがそれぞれ個別に存在する。ＩＴ管理者は、コンピュータ側の負荷（例えばＣＰＵやメモリの使用率）を考慮して仮想マシンのマイグレーションを行うが、ネットワーク側の負荷等を考慮せずに行う場合が多い。仮想マシンのメモリイメージを移動させる場合、ネットワークを経由してデータの送信が行われることがある。この間、ネットワーク側は、メモリイメージの移動を考慮せずに仮想マシンへのアクセスを継続している。このため、仮想マシンの移動によって生じるトラフィックが、移動対象となる仮想マシンや他の仮想マシンへの通信を阻害する恐れがある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】ＷＯ２００５／０８３５６９
【特許文献２】特開２００９−１４６１０６
【特許文献３】特開２００４−７８４６５
【発明の概要】
【発明が解決しようとする課題】
【０００９】
このように、コンピュータシステムでは、ネットワーク側とＩＴ側とで別々の管理が行われているため、仮想マシンのマイグレーションのための設定は、ネットワーク側とＩＴ側のそれぞれにおいて個別に行われる。しかし、ネットワーク側及びＩＴ（コンピュータ）側の両方への影響を考慮して仮想マシンのマイグレーションを行うためには、ネットワーク側とＩＴ側の両方の設定を一元的に管理することが好ましい。
【００１０】
以上のことから、本発明の目的は、ネットワーク側及びコンピュータ側を一元的に制御して仮想マシンのマイグレーションを実行可能なコンピュータシステムを提供することにある。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために、［発明を実施するための形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１２】
本発明によるコンピュータシステムは、ＶＭ管理装置（２）、オープンフローコントローラ（３）、スイッチ（４ｉ）を具備する。ＶＭ管理装置（２）は、物理サーバ（５、６）上で動作する仮想マシンの移動を、仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示する。スイッチ（４ｉ）は、移動を完了した仮想マシンからのパケットデータが、自身に設定されたフローに示されたルールに適合しない場合、パケットデータのＭＡＣアドレスをオープンフローコントローラ（３）に通知する。オープンフローコントローラ（３）は、通知されたＭＡＣアドレスに応じて生成された移動先ＶＭ宛通信用フローを、スイッチ（４ｉ）に設定する。スイッチ（４ｉ）は、移動先ＶＭ宛通信用フローに示されたルール（４４４）に従う仮想マシン宛のパケットデータを、移動先ＶＭ宛通信用フローに示されたアクション（４４５）に従って移動先の仮想マシンに転送する。
【００１３】
本発明による仮想マシンのマイグレーション方法は、ＶＭ管理装置（２）が、物理サーバ（５、６）上で動作する仮想マシンの移動を、仮想マシンを管理する仮想マシンモニタと移動先の仮想マシンモニタとに指示するステップと、移動を完了した仮想マシンから受信したパケットデータが、スイッチ（４ｉ）に設定されたフローに示されたルールに適合しない場合、当該パケットデータのＭＡＣアドレスをオープンフローコントローラ（３）に通知するステップと、オープンフローコントローラ（３）が、通知されたＭＡＣアドレスに応じて生成された移動先ＶＭ宛通信用フローを、スイッチ（４ｉ）に設定するステップと、スイッチ（４ｉ）が、移動先ＶＭ宛通信用フローに示されたルール（４４４）に従う仮想マシン宛のパケットデータを、移動先ＶＭ宛通信用フローに示されたアクション（４４５）に従って移動先の仮想マシンに転送するステップとを具備する。
【発明の効果】
【００１５】
本発明によれば、ネットワーク側及びコンピュータ側を一元的に制御して仮想マシンのマイグレーションを実行することができる。
【００１６】
又、仮想マシンのライブマイグレーションにおけるパケットロスを削減することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明によるコンピュータシステムの第１及び第２の実施の形態における構成を示す図である。
【図２】図２は、本発明によるＶＭ管理装置の構成を示す図である。
【図３】図３は、本発明によるオープンフローコントローラの構成を示す図である。
【図４】図４は、本発明によるオープンフローコントローラが保持するフローテーブルの構成の一例を示す図である。
【図５】図５は、本発明によるオープンフローコントローラが保持するトポロジ情報の一例を示す図である。
【図６】図６は、本発明によるオープンフローコントローラが保持する通信経路情報の一例を示す図である。
【図７】図７は、本発明に係るオープンフロースイッチの構成を示す図である。
【図８】図８は、本発明によるスイッチが保持するフローテーブルの一例を示す図である。
【図９】図９は、本発明に係るオープンフロー制御を説明するための図である。
【図１０】図１０は、仮想マシンのマイグレーション処理における準備処理の第１の実施の形態を説明するシーケンス図である。
【図１１】図１１は、仮想マシンのマイグレーション処理におけるメモリイメージ転送処理の第１及び第２の実施の形態を説明するシーケンス図である。
【図１２】図１２は、仮想マシンのマイグレーション処理におけるアクセス先切り替え処理の第１の実施の形態を説明するシーケンス図である。
【図１３】図１３は、仮想マシンのマイグレーション処理における準備処理の第２の実施の形態を説明するシーケンス図である。
【図１４】図１４は、仮想マシンのマイグレーション処理におけるアクセス先切り替え処理の第２の実施の形態を説明するシーケンス図である。
【図１５】図１５は、本発明によるコンピュータシステムの第３の実施の形態における構成を示す図である。
【図１６】図１６は、仮想マシンのマイグレーション処理におけるアクセス先切り替え処理の第３の実施の形態を説明するシーケンス図である。
【図１７】図１７は、本発明によるコンピュータシステムの第４の実施の形態における構成を示す図である。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００１９】
１．第１の実施の形態
（コンピュータシステムの構成）
図１から図９を参照して、本発明によるコンピュータシステムの第１の実施の形態における構成を説明する。図１は、本発明によるコンピュータシステムの第１及び第２の実施の形態における構成を示す図である。本発明によるコンピュータシステムは、統合管理装置１、仮想マシン管理装置２（以下、ＶＭ管理装置２と称す）、オープンフローコントローラ３（以下、ＯＦＣ３と称す）、スイッチ群４（以下、ＯＦＳ群４：オープンフロースイッチ群と称す）、物理サーバ５、６、記憶装置７（例示：シェアードディスク）を具備する。
【００２０】
物理サーバ５、６は、少なくとも１つのオープンフロースイッチを有するＯＦＳ群４を介して相互に接続される。又、物理サーバ５、６は、ＯＦＳ群４を介してインターネットに例示される外部ネットワーク８に接続される。尚、本実施の形態では２つの物理サーバ５、６が例示されるが、物理サーバの数はこれに限らない。
【００２１】
物理サーバ５、６は、それぞれＣＰＵやＲＡＭを備えるコンピュータ装置であり、相互に共通又は別々の記憶装置７に格納されたプログラムを実行することで、少なくとも１つの仮想マシンを実現する。詳細には、物理サーバ５は、ＣＰＵ（図示なし）や記憶装置７の使用領域を論理分割又は物理分割することで実現される仮想マシン１０１〜１０ｎ（ｎは自然数）を備える。あるいは、仮想マシン１０１〜１０ｎは、ホストオペレーションシステム（ＨＯＳ）上でエミュレートされたゲストオペレーションシステム（ＧＯＳ）又はＧＯＳ上で動作するソフトウェアによって実現されてもよい。仮想マシン１０１〜１０ｎは、記憶装置７に記録されたプログラムをＣＰＵ（図示なし）によって実行することで実現される仮想マシンモニタ１０（以下、ＶＭＭ１０と称す）によって管理される。物理サーバ６も物理サーバ５と同様に、少なくとも１つの仮想マシン２０１〜２０ｍ（ｍは自然数）が実装され、それぞれ、ＶＭＭ２０によって管理される。
【００２２】
仮想マシン１０１〜１０ｎ、２０１〜２０ｍが使用するディスクイメージ（メモリイメージ）は、シェアードディスクに格納されることが好適である。シェアードディスクは、例えばＦＣ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ）やＥｔｈｅｒ（登録商標）等で接続されたディスクアレイ、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、データベースサーバ等に例示される。
【００２３】
ＶＭＭ１０による仮想マシン１０１〜１０ｎの管理方法及びＶＭＭ２０による仮想マシン２０１〜２０ｍの管理方法は、従来と同様である。例えば、ＶＭＭ１０は、仮想マシン１０１〜１０ｎが使用するメモリイメージを管理し、ＶＭＭ２０は、仮想マシン２０１〜２０ｍが使用するメモリイメージを管理する。
【００２４】
仮想マシン１０１〜１０ｎは、ＶＭＭ１０によって管理される仮想スイッチ１１及び物理ＮＩＣ（図示なし）を介して他の装置（例えば外部ネットワーク８上のコンピュータ装置や、他の物理サーバ６内の仮想マシン）とデータの送受信を行う。本実施の形態では、一例としてＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）に従ったパケット通信が行われる。同様に仮想マシン２０１〜２０ｍは、仮想スイッチ２１を介して他の装置とデータの送受信を行う。又、同一物理サーバ内における仮想マシン間の通信も仮想スイッチ１１、２１を介して行われる。
【００２５】
本発明に係る仮想マシン１０１〜１０ｎ、２０１〜２０ｍは、他のＶＭＭや物理サーバに移動してもＭＡＣアドレスは変わらないものとする。又、仮想スイッチ１１、２１は、後述するオープンフロー技術によって制御されても良いし、従来どおりのスイッチング動作（レイヤ２）を行っても良い。ただし、以下に示す実施の形態における仮想スイッチ１１、２１は、オープンフローに対応しているものとして説明する。更に、仮想マシン１０１〜１０ｎ、２０１〜２０ｍと物理サーバ外部とはブリッジ接続されている。すなわち、仮想マシン１０１〜１０ｎ、２０１〜２０ｍのＭＡＣアドレスやＩＰアドレスによって外部から直接通信ができる。
【００２６】
ＶＭ管理装置２は、物理サーバ５、６上で動作する仮想マシン１０１〜１０ｎ、２０１〜２０ｍを管理する。図２は、本発明によるＶＭ管理装置１の構成を示す図である。ＶＭ管理装置２は、ＣＰＵ及び記憶装置を備えるコンピュータによって実現されることが好適である。ＶＭ管理装置２では、図示しないＣＰＵが記憶装置に格納されたプログラムを実行することで、図２に示すＶＭマイグレーション制御部３２１と、ＶＭＭ管理部３２２の各機能が実現される。
【００２７】
ＶＭマイグレーション制御部３２１は、仮想マシンのマイグレーションを制御する。詳細には、ＶＭマイグレーション制御部３２１は、記憶装置に記録されているＶＭＭ管理情報３２３に基づいて移動対象となる仮想マシンと、移動先となる仮想マシンモニタとを指定し、仮想マシンのマイグレーションを移動元及び移動先の仮想マシンモニタに指示する。これにより、指示された仮想マシンモニタ間で仮想マシンのマイグレーションが実行される。
【００２８】
ＶＭＭ管理部３２２は、管理下の仮想マシンモニタや仮想スイッチに関する情報（ＶＭＭ管理情報３２３）を管理する。ＶＭＭ管理情報３２３は、仮想マシンモニタの識別子や仮想マシンモニタが管理する仮想マシンに関する情報（ＶＭＭ情報３２４）と、仮想スイッチの識別子や仮想スイッチが接続する仮想マシンに関する情報（ＶＳＷ情報３２５）とを備える。ＶＭＭ情報３２４とＶＳＷ情報３２５は、仮想スイッチを管理する仮想マシンモニタ毎に対応付けられて記録されていることが好ましい。
【００２９】
ＶＭＭ管理情報３２３は、予め記憶装置に記録されていても良いし、ＶＭＭ１０、２０から周期的又は任意の時期に取得してもよい。ＶＭＭ１０、２０からＶＭＭ管理情報３２３を取得する場合、ＶＭＭ管理部３２２による指示に応じてＶＭＭ１０、２０からＶＭＭ管理情報３２３を取得し、これによって記憶装置内のＶＭＭ管理情報３２３を更新することが好ましい。これにより、仮想マシンのマイグレーション後に変更された仮想マシンの移動先や仮想スイッチの接続先を監視することが可能となる。
【００３０】
ＯＦＣ３は、オープンフロー技術により、システム内の通信を制御する。オープンフロー技術とは、コントローラ（ここではＯＦＣ３）が、ルーティングポリシー（フロー：ルール＋アクション）に従い、マルチレイヤ及びフロー単位の経路情報をスイッチに設定し、経路制御やノード制御を行う技術を示す。これにより、経路制御機能がルータやスイッチから分離され、コントローラによる集中制御によって最適なルーティング、トラフィック管理が可能となる。オープンフロー技術が適用されるスイッチ（ＯＦＳ群４）は、従来のルータやスイッチのようにパケットやフレームの単位ではなく、ＥＮＤ２ＥＮＤのフローとして通信を取り扱う。
【００３１】
詳細には、ＯＦＣ３は、スイッチやノード毎にフロー（ルール＋アクション）を設定することで当該スイッチやノードの動作（例えばパケットデータの中継動作）を制御する。ここで、ＯＦＣ３によって制御されるスイッチは、ＯＦＳ群４や仮想スイッチ１１、２１等に例示され、ＯＦＣ３によって制御されるノードは、仮想マシン１０１〜１０ｎ、２０１〜２０ｍ、ＶＭＭ１０、２０、物理サーバ５、６、記憶装置７等に例示される。
【００３２】
図３は、本発明によるＯＦＣ３の構成を示す図である。ＯＦＣ３は、ＣＰＵ及び記憶装置を備えるコンピュータによって実現されることが好適である。ＯＦＣ３では、図示しないＣＰＵが記憶装置に格納されたプログラムを実行することで、図３に示すスイッチ制御部３３１、フロー管理部３３２、フロー生成部３３３の各機能が実現される。
【００３３】
スイッチ制御部３３１は、フローテーブル３３４に従ってスイッチやノード毎にフロー（ルール＋アクション）の設定又は削除を行う。本発明に係るスイッチやノードは、設定されたフローを参照し、受信パケットのヘッダ情報に応じたルールに対応するアクション（例えばパケットデータの中継や破棄）を実行する。ルール及びアクションの詳細は後述する。
【００３４】
図４は、本発明によるＯＦＣ３が保持するフローテーブル３３４の構成の一例を示す図である。図４を参照して、フローテーブル３３４には、フローを特定するためのフロー識別子４４１、当該フローの設定対象（スイッチやノード）を識別する識別子（対象装置４４２）、経路情報４４３、ルール４４４、アクション情報４４５、設定情報４４６が対応付けられて設定される。フローテーブル３３４には、ＯＦＣ３の制御対象となる全てのスイッチやノードに対するフロー（ルール４４４＋アクション情報４４５）が設定される。フローテーブル３３４には、フロー毎のＱｏＳや暗号化に関する情報など、通信の扱い方が定義されてもかまない。
【００３５】
ルール４４４には、例えば、ＴＣＰ／ＩＰのパケットデータにおけるヘッダ情報に含まれる、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ１からレイヤ４のアドレスや識別子の組み合わせが規定される。例えば、図９に示すレイヤ１の物理ポート、レイヤ２のＭＡＣアドレス、レイヤ３のＩＰアドレス、レイヤ４のポート番号、ＶＬＡＮタグのそれぞれの組み合わせがルール４４４として設定される。ここで、ルール４４４に設定されるポート番号等の識別子やアドレス等は、所定の範囲が設定されても構わない。又、宛先や送信元のアドレス等を区別してルール４４４として設定されることが好ましい。例えば、ＭＡＣ宛先アドレスの範囲や、接続先のアプリケーションを特定する宛先ポート番号の範囲、接続元のアプリケーションを特定する送信元ポート番号の範囲がルール４４４として設定される。更に、データ転送プロトコルを特定する識別子をルール４４４として設定してもよい。
【００３６】
アクション情報４４５には、例えばＴＣＰ／  ＩＰのパケットデータを処理する方法が規定される。例えば、受信パケットデータを中継するか否かを示す情報や、中継する場合はその送信先が設定される。又、アクション情報４４５には、パケットデータの複製や、破棄することを指示する情報が設定されてもよい。
【００３７】
経路情報４４３は、フロー（ルール４４４＋アクション情報４４５）を適用する経路を特定する情報である。これは、後述する通信経路情報３３６に対応付けられた識別子である。
【００３８】
設定情報４４６は、フロー（ルール４４４＋アクション情報４４５）が現在、通信経路やスイッチ等に設定されているか否かを示す情報（「設定済み」又は「未設定」）を含む。設定情報４４６は、対象装置４４２や経路情報４４３に対応付けられているため、通信経路にフローが設定されているか否かを確認できるとともに、通信経路上のスイッチやノード毎にフローが設定されているか否かを確認することができる。又、設定情報４４６は、生成されたフローが使用可能な状態（有効）か使用不可能な状態（無効）かを示す情報を含む。スイッチ制御部３３１は、設定情報４４６を参照し、有効なフローのみをスイッチ（ＯＦＳ）やノードに設定し、無効なフローは設定しない。
【００３９】
フロー管理部３３２は、フローテーブル３３４を参照して、スイッチやノードから通知されたファーストパケットのヘッダ情報に対応するフロー（ルール４４４＋アクション情報４４５）を抽出し、スイッチ制御部３３１に通知する。又、フロー管理部３３２は、フロー生成部３３３によって生成されたフロー（ルール４４４＋アクション情報４４５）にフロー識別子４４１をつけて記憶装置に記録する。この際、フローを適用する通信経路の識別子（経路情報４４３）やフローを適用するスイッチやノードの識別子（対象装置４４２）が、フロー（ルール４４４＋アクション情報４４５）に付されて記録される。
【００４０】
フロー生成部３３３は、トポロジ情報３３５を用いて通信経路を算出し、算出結果を通信経路情報３３６として記憶装置に記録する。ここでは、通信経路の端点となるノードと、通信経路上のスイッチ及びノードが設定される。又、フロー生成部３３３は、通信経路情報３３６に基づいて通信経路上のスイッチやノードに設定するフロー（ルール４４４＋アクション情報４４５）を設定する。
【００４１】
トポロジ情報３３５は、スイッチ（例えば、ＯＦＳ群４や仮想スイッチ１１、２１等）やノード（例えば、仮想マシン１０１〜１０ｎ、２０１〜２０ｍ、ＶＭＭ１０、２０、物理サーバ５、６、記憶装置７等）、外部ネットワーク８（例えばインターネット）等の接続状況に関する情報を含む。具体的には、トポロジ情報３３５として、スイッチやノード（装置）を特定する装置識別子４５１に、当該装置のポート数４５２やポート接続先情報４５３が対応付けられて記憶装置に記録される。ポート接続先情報４５３は、接続相手を特定する接続種別（スイッチ／ノード／外部ネットワーク）や接続先を特定する情報（スイッチの場合はスイッチＩＤ、ノードの場合はＭＡＣアドレス、外部ネットワークの場合は外部ネットワークＩＤ）が含まれる。
【００４２】
通信経路情報３３６は、通信経路を特定するための情報である。詳細には、通信経路情報３３６として、ノード（例えば、仮想マシン１０１〜１０ｎ、２０１〜２０ｍ、ＶＭＭ１０、２０、物理サーバ５、６、記憶装置７等）群、あるいは、外部ネットワークインタフェースを端点として指定する端点情報４６１と、通過するスイッチ（例えば、ＯＦＳ群４や仮想スイッチ１１、２１等）とポートの対群を指定する通過スイッチ情報４６２と、付随情報４６３とが対応付けられて記憶装置に記録される。例えば、通信経路が外部ネットワークとノードとを接続する経路である場合、外部ネットワークＩＤとノードのＭＡＣアドレスが端点情報４６１として記録される。あるいは、通信経路がノード間を接続する経路である場合、両端点となるノードのそれぞれのＭＡＣアドレス対が端点情報４６１として記録される。通過スイッチ情報４６２は、端点情報４６１で示される端点間の通信経路上に設けられるスイッチ（オープンフロースイッチや仮想スイッチ）の識別子を含む。又、通過スイッチ情報４６２は、当該スイッチに設定されるフロー（ルール４４４＋アクション情報４４５）と当該スイッチとを対応づけるための情報を含んでも良い。付随情報４６３は、端点が変更された後の経路上のスイッチ（通過スイッチ）に関する情報を含む。
【００４３】
本発明によるフロー管理部３３２は、仮想マシンのマイグレーション指示（移動準備指示）に応じてフロー生成部３３３を制御して、メモリイメージを転送するためのフロー（メモリイメージ転送用フロー）を生成させるとともに、スイッチ制御部３３１を制御して、メモリイメージ転送用フローをメモリイメージ転送経路上のＯＦＳやノードに設定させる。又、本発明によるフロー管理部３３２は、仮想マシンのマイグレーション指示（移動準備指示）に応じてフロー生成部３３３を制御して、移動後の仮想マシンに対するアクセス用のフロー（移動先ＶＭ宛通信用フロー）を生成させるとともに、スイッチ制御部３３１を制御して、移動先ＶＭ宛通信用フローを移動先ＶＭ宛通信経路上のＯＦＳやノードに設定させる。
【００４４】
ＯＦＳ群４は、少なくとも１つのオープンフロースイッチ４１〜４ｉ（ｉは自然数）を備える。図７は、本発明に係るオープンフロースイッチ４ｉ（以下、ＯＦＳ４ｉと称す）の構成を示す図である。ＯＦＳ４ｉは、ＯＦＣ３によって設定されたフローテーブル３４３に従って受信パケットの処理方法（アクション）を決定する。ＯＦＳ４ｉは、転送処理部３４１とフロー管理部３４２を備える。転送処理部３４１とフロー管理部３４２は、ハードウェアで構成されても、ＣＰＵによって実行されるソフトウェアで実現してもどちらでも良い。
【００４５】
ＯＦＳ４ｉの記憶装置には、図８に示すようなフローテーブル３４３が設定される。フロー管理部３４２は、ＯＦＣ３から取得したフロー（ルール４４４＋アクション情報４４５）をフローテーブル３４３に設定する。又、転送処理部３４１によって受信された受信パケットのヘッダ情報が、フローテーブル３４３に記録されたルール４４４に適合（一致）する場合、フロー管理部３４２は、当該ルール４４４に対応するアクション情報４４５を転送処理部３４１に通知する。一方、転送処理部３４１によって受信された受信パケットのヘッダ情報が、フローテーブル３４３に記録されたルール４４４に適合（一致）しない場合、フロー管理部３４２は、ファーストパケットを受信したことをＯＦＣ３に通知するとともに、当該ヘッダ情報をＯＦＣ３に送信する。
【００４６】
転送処理部３４１は、受信パケットのヘッダ情報に応じた転送処理を行う。詳細には、転送処理部３４１は、受信したパケットデータからヘッダ情報を抽出し、フロー管理部３４２に通知する。フロー管理部３４２からアクション情報４４５を受け取ると、アクション情報４４５に従った処理を行う。例えば、アクション情報４４５に示された転送先のノードに受信パケットデータを転送する。又、フローテーブル３４３に規定されたルール４４４にないパケットデータが受信した場合、当該パケットデータを所定の期間保持し、ＯＦＣ３からフローが設定される（フローテーブル３４３が更新される）まで待機する。
【００４７】
具体的には、ルール４４４：ＭＡＣ送信元アドレス（Ｌ２）が“Ａ１〜Ａ３”、ＩＰ宛先アドレス（Ｌ３）が“Ｂ１〜Ｂ３”、プロトコルが“ｈｔｔｐ”、宛先ポート番号（Ｌ４）が“Ｃ１〜Ｃ３”と、アクション情報４４５：“物理サーバ５の仮想マシン１０１に中継”とが対応付けられているフローが設定されたＯＦＳ４ｉの動作を説明する。ＭＡＣ送信元アドレス（Ｌ２）が“Ａ１”、ＩＰ宛先アドレス（Ｌ３）が“Ｂ２”、プロトコルが“ｈｔｔｐ”、宛先ポート番号（Ｌ４）が“Ｃ３”であるパケットデータを受信した場合、ＯＦＳ４ｉは、ヘッダ情報が当該ルール４４４に一致していると判断し、受信したパケットデータを仮想マシン１０１に転送する。一方、ＭＡＣ送信元アドレス（Ｌ２）が“Ａ５”、ＩＰ宛先アドレス（Ｌ３）が“Ｂ２”、プロトコルが“ｈｔｔｐ”、宛先ポート番号（Ｌ４）が“Ｃ４”であるパケットデータを受信した場合、ＯＦＳ４ｉは、ヘッダ情報が当該ルール４４４に一致しないと判断し、ファーストパケット受信の旨をＯＦＣ３に通知するとともに当該ヘッダ情報をＯＦＣ３に送信する。ＯＦＣ３は、フローテーブル３３４から受信したヘッダ情報に対応するフロー（ルール４４４＋アクション情報４４５）を抽出し、ＯＦＳ４ｉに送信する。尚、フローテーブル３３４に適切なフローがない場合は、新たにフローを作成してもよい。ＯＦＳｉ４ｉは送信されたフローを自身のフローテーブル３４３に設定し、これに従った、受信パケットの中継処理を実行する。
【００４８】
以上のように、本発明によるコンピュータシステムは、オープンフロー技術（プログラマブルフロー技術とも呼ぶ）が適用されている。尚、ＯＦＳ群４の他、仮想スイッチ１１、２１も、ＯＦＳ４ｉと同様に、ＯＦＣ３によってフローが設定されるフローテーブルを備えても良い。この場合、ＯＦＣ３は、ＯＦＳ群４と同様に、仮想スイッチ１１、２１の動作を制御することができる。
【００４９】
第１の実施の形態におけるコンピュータシステムは、ＶＭ管理装置２とＯＦＣ３を制御する統合管理装置１を具備する。統合管理装置１は、ＣＰＵ及び記憶装置を備えるコンピュータによって実現されることが好適である。統合管理装置１は、入力装置（例示：キーボード、マウス）や、ＶＭ管理装置２又はＯＦＣ３から送信される各種情報を視認可能に表示する表示装置（例示：モニタ、プリンタ）を備えることが好適である。ユーザ（管理者）は、統合管理装置１を用いてＶＭ管理装置２及びＯＦＣ３を制御し、仮想マシンのマイグレーションを実行する。
【００５０】
統合管理装置１、ＶＭ管理装置２、及びＯＦＣ３のそれぞれは、同じコンピュータ装置でも、それぞれ別のコンピュータ装置に実装されてもどちらでも構わない。
【００５１】
（仮想マシンのマイグレーション動作）
次に、図１０から図１２を参照して、本発明による仮想マシンのマイグレーション動作の第１の実施の形態を説明する。図１０は、仮想マシンのマイグレーション処理における準備処理の第１の実施の形態を説明するシーケンス図である。
【００５２】
管理者は、図示しない入力装置を操作して、仮想マシンのマイグレーション（以下、ＶＭマイグレーションと称す）を統合管理装置１に指示する。この際、移動する仮想マシン（以下、移動対象ＶＭと称す）が動作する物理サーバ（又は仮想マシンモニタ）、移動対象ＶＭ、及び移動先となる物理サーバ（又は仮想マシンモニタ）が指定される。統合管理装置１は、ＶＭマイグレーション指示に応じてＶＭ管理装置２に対し情報通知指示を発行する（ステップＳ１０１）。ここでは、統合管理装置１は、移動元及び移動先の物理サーバにおける仮想マシンモニタの情報を通知する指示を発行する。ＶＭ管理装置２は、移動元及び移動先の物理サーバにおけるＶＭＭ管理情報３２３を統合管理装置１に送信する（ステップＳ１０２）。これにより、統合管理装置１は、移動元の仮想マシンモニタ（以下、移動元ＶＭＭと称す）と、移動対象ＶＭに関する情報、及び移動先の仮想マシンモニタ（以下、移動先ＶＭＭと称す）と移動先の仮想スイッチ（以下、移動先ＶＳＷと称す）に関する情報を取得する。
【００５３】
統合管理装置１は、ＶＭＭ管理情報３２３を取得すると、移動準備指示をＯＦＣ３に発行する（ステップＳ１０３）。この際、統合管理装置１は、ＶＭＭ管理情報３２３に基づいて、移動元ＶＭＭ、移動対象ＶＭ、移動先ＶＭＭ、及び移動先ＶＳＷを、ＯＦＣ３に指定する。
【００５４】
移動準備指示を受けたＯＦＣ３は、先ずメモリイメージの移動のための通信経路及びフローの設定を行う。ＯＦＣ３は、トポロジ情報３３５に基づいて移動元ＶＭＭと移動先ＶＭＭとの間で移動対象ＶＭのメモリイメージを転送するための通信経路（メモリイメージ転送経路）を算出する（ステップＳ１０４）。ここでは、移動前の移動対象ＶＭのメモリイメージが格納される領域と、移動後の移動対象ＶＭのメモリイメージが格納される領域とが両端点として設定され、メモリイメージ転送経路として算出される。算出されたメモリイメージ転送経路に関する情報は通信経路情報３３６として記録される。
【００５５】
ＯＦＣ３は、ステップＳ１０４で算出したメモリイメージ転送経路上にある各ＯＦＳ４ｉに設定すべきフロー（メモリイメージ転送用フロー）を生成する（ステップＳ１０５）。ＯＦＳ４ｉ毎に生成されたメモリイメージ転送用フロー（ルール４４４＋アクション情報４４５）は、各ＯＦＳ４ｉに対応付けられてフローテーブル３３４に登録される。この際、メモリイメージ転送用フローの設定情報４４６は、「未設定」及び「無効」に設定される。
【００５６】
ＯＦＣ３は、メモリイメージ転送用フローを各ＯＦＳ４ｉやノードに設定する（ステップＳ１０６〜Ｓ１０８）。詳細には、ＯＦＣ３は、メモリイメージ転送用フローの設定を、通信経路上の対応するＯＦＳ４ｉに指示する（ステップＳ１０６）。フローの設定が指示されたＯＦＳ４ｉは、それぞれに送信されたフロー（ルール４４４＋アクション情報４４５）を自身のフローテーブル３４３に設定する（ステップＳ１０７）。フローの設定が完了したＯＦＳ４ｉは、フロー設定完了をＯＦＣ３に報告する（ステップＳ１０８）。ここで、メモリイメージ転送用フローは、ＯＦＳ４ｉ以外にも、メモリイメージ転送経路上のノードにも設定される。又、仮想スイッチがオープンフロー技術に対応した構成である場合、メモリイメージ転送用フローは、メモリイメージ転送経路上の仮想スイッチに設定される。ＯＦＳ４ｉや仮想スイッチに設定されたメモリイメージ転送用フローの設定情報４４６は、「設定済み」及び「有効」に設定される。
【００５７】
次にＯＦＣ３は、ＶＭマイグレーション後の移動対象ＶＭ（以下、移動先ＶＭと称す）に対するアクセスのための通信経路及びフローの設定を行う。先ず、ＯＦＣ３は、移動先ＶＭへの通信経路（移動先ＶＭ宛通信経路）を算出する（ステップＳ１０９）。詳細には、ＯＦＣ３は、予め保持する有効な通信経路情報３３６から移動対象ＶＭに関わる通信経路の通信経路情報３３６を選択する。ここで、有効な通信経路（有効な通信経路情報３３６）とは、ＯＦＳ４ｉに設定可能なフローが存在する通信経路を示す。そしてＯＦＣ３は、トポロジ情報３３５を利用して、選択した通信経路の一方を移動対象ＶＭから、移動先ＶＭが接続する仮想スイッチに変更して通信経路を修正し、移動先ＶＭ宛通信経路として算出する。算出された移動先ＶＭ宛通信経路に関する情報は通信経路情報３３６として記録される。
【００５８】
ＯＦＣ３は、ステップＳ１０９で算出した移動先ＶＭ宛通信経路上にある各ＯＦＳ４ｉに設定すべきフロー（移動先ＶＭ宛通信用フロー）を生成する（ステップＳ１１０）。ＯＦＳ４ｉ毎に生成された移動先ＶＭ宛通信用フロー（ルール４４４＋アクション情報４４５）は、各ＯＦＳ４ｉに対応付けられてフローテーブル３３４に登録される。この際、移動先ＶＭ宛通信用フローの設定情報４４６は、「未設定」及び「無効」に設定される。
【００５９】
ＯＦＣ３は、移動先ＶＭ宛通信用フローを生成すると、移動準備の完了を統合管理装置１に報告する（ステップＳ１１１）。
【００６０】
以上のように、本実施の形態における準備処理では、移動対象ＶＭのメモリイメージの転送経路の算出及びその移動を制御するためのフローの設定と、移動先ＶＭに対するアクセスのための通信経路の算出及びその通信を制御するためのフローの生成が行われる。第１の実施の形態では、ＯＦＳ４ｉへのメモリイメージ転送用フローの設定と、移動先ＶＭ宛通信用フローの作成が終了した段階で、移動準備が終了する。
【００６１】
図１１は、仮想マシンのマイグレーション処理におけるメモリイメージ転送処理の第１の実施の形態を説明するシーケンス図である。図１１を参照して、移動準備完了報告を受け取った統合管理装置１は、マイグレーション指示をＶＭ管理装置２に発行する（ステップＳ２０１）。ＶＭ管理装置２は、準備処理において指定された移動元ＶＭＭ（ここでは一例としてＶＭＭ１０）と移動先ＶＭＭ（ここでは一例としてＶＭＭ２０）に対し、マイグレーション指示を発行する（ステップＳ２０２、Ｓ２０３）。この際、移動対象ＶＭをＶＭＭ１０、２０に通知する。尚、ステップＳ２０１におけるマイグレーション指示の際、移動元ＶＭＭと移動先ＶＭＭを指定してもよい。
【００６２】
ＶＭ管理装置２からのマイグレーション指示に応じてＶＭＭ１０、２０間において仮想マシンのメモリイメージの転送が行われる（ステップＳ２０４〜Ｓ２１２）。詳細には、移動先ＶＭＭ（以下、移動先ＶＭＭ２０）においてＶＭ管理装置２から指定されたＶＭが作成される（ステップＳ２０４）。移動元ＶＭＭ（以下、移動元ＶＭＭ１０）は、移動先ＶＭＭ２０から通知されたＶＭ作成完了報告に応じて移動対象ＶＭのメモリイメージを転送する（ステップＳ２０５〜Ｓ２０７）。ステップＳ２０４において作成されたＶＭ宛にメモリイメージを転送する。メモリイメージは、ステップＳ１０４〜Ｓ１０７で設定されたメモリイメージ転送経路を経由して転送される。この際、メモリイメージ転送経路上のＯＦＳ４ｉは、ステップＳ１０７で設定されたメモリイメージ転送用フローに従いメモリイメージを転送する。
【００６３】
メモリイメージの転送中において、移動対象ＶＭ以外の他の仮想マシンへのアクセス（例えばテータ転送）が生じた場合、当該アクセスに係るＯＦＳ４ｉは、自身のフローテーブル３４３に設定されたフローに従って、受信パケットのヘッダ情報に対応するアクション（例えばデータの中継処理）を実行する。ここで、メモリイメージ転送経路をマイグレーションに関係のない他の仮想マシンへのアクセスを妨げないような経路に設定することで、他の仮想マシンへの通信を妨げることなく移動対象ＶＭを移動することが可能となる。
【００６４】
一方、メモリイメージの転送中において、移動対象ＶＭ宛へのアクセスが生じた場合（例えば、移動対象ＶＭ宛のデータが転送された場合）、移動対象ＶＭへの通信経路上のＯＦＳ４ｉは、自身のフローテーブル３４３に設定されたフローに従って、受信パケットのヘッダ情報に対応するアクション（例えばデータの中継処理）を実行する。ここでは、移動対象ＶＭがＶＭＭ１０上で動作しているものとしてフローが設定されているため、移動対象ＶＭ宛のデータは、物理サーバ５上の移動対象ＶＭに転送される。移動元ＶＭＭ１０は、転送された移動対象ＶＭ宛のデータを移動対象ＶＭのメモリページに記録する。
【００６５】
メモリイメージの転送中においても、移動対象ＶＭのプロセス処理や、移動対象ＶＭ宛に転送されるデータによってメモリページが変更される場合がある。変更されたメモリページは、コピー対象として記憶装置の変更ページ記録領域に記録される（ステップＳ２０８）。変更ページの記録処理は、移動先ＶＭが稼動を開始するまで行われることが好ましい。
【００６６】
移動対象ＶＭに関連する全てのメモリイメージの転送が終了すると、移動元ＶＭＭ１０は、変更ページを、ステップＳ１０４〜Ｓ１０７において設定されたメモリイメージ転送用経路を介して移動先ＶＭＭ２０に転送する（ステップＳ２０９）。ただし、移動対象ＶＭに関連する全てのメモリイメージの転送が終了したときに記録されている変更ページの数が、所定の数以下の場合、ステップＳ２０９に変更ページの転送処理は省略されることが好ましい。又、ステップＳ２０９の変更ページの転送処理の間にも、メモリページが変更される場合がある。このため、ステップＳ２０９では、移動元ＶＭＭ１０は、変更ページ記録領域中の変更ページを更に別の領域に記録し、当該変更ページ記録領域をクリアしてから変更ページを移動先ＶＭＭ２０に転送する。
【００６７】
移動対象ＶＭに関連する全てのメモリイメージの転送（変更ページの転送も含む）が終了すると、移動元ＶＭＭ１０上で動作する移動対象ＶＭ（以下、移動元ＶＭと称す）の動作を停止する（ステップＳ２１０）。この際、移動元ＶＭの仮想の練ってワークインタフェースも停止する。尚、移動元ＶＭＭ１０は、ステップＳ２０９において変更ページの転送と変更ページの記録を繰り返し、変更ページの数が所定の数以下となったとき移動元ＶＭを停止することが好ましい。移動元ＶＭの停止後、移動元ＶＭＭ１０は、変更ページを、ステップＳ１０４〜Ｓ１０７において設定されたメモリイメージ転送用経路を介して移動先ＶＭＭ２０に転送する（ステップＳ２１１）。これによって、移動元ＶＭＭ１０から移動先ＶＭＭへのメモリイメージの転送が完了する。ここで、移動先ＶＭＭ２０上で作成されたＶＭ（以下、移動先ＶＭと称す）が稼動し始めても良いが、移動元ＶＭと移動先ＶＭのメモリイメージの一致判定が行われることが好ましい。詳細には、移動元ＶＭの停止を確認した移動元ＶＭＭ１０は、転送確認指示を移動先ＶＭＭ２０に発行する（ステップＳ２１２）。移動先ＶＭＭ２０は、転送確認指示に応じて移動先ＶＭのメモリイメージを、ステップＳ１０４〜Ｓ１０７において設定されたメモリイメージ転送用経路を介して移動元ＶＭＭ１０に転送する（ステップＳ２１３）。移動元ＶＭＭ１０は、移動先ＶＭＭ２０から転送されたメモリイメージと移動元ＶＭのメモリイメージとが一致するか否かを判定する（ステップＳＳ２１４）。
【００６８】
ステップＳ２１６において、移動先ＶＭと移動元ＶＭのメモリイメージの一致が確認されると、移動元ＶＭＭ１０から移動先ＶＭＭ２０に対して一致確認完了報告が通知される（ステップＳ２１５）。一致確認完了報告を受けた移動先ＶＭＭ２０は、移動先ＶＭを稼動させる（ステップＳ２１６）。この際、移動先ＶＭの仮想のネットワークインタフェースも稼動状態となる。
【００６９】
一方、ステップＳ２１６において、移動先ＶＭと移動元ＶＭのメモリイメージが一致しない場合、一致しないメモリページの転送処理が行われる（図示なし）。
【００７０】
以上のように、統合管理装置１によって指定された経路（メモリイメージ転送用経路）を利用してＶＭのメモリイメージの転送が行われる。この際、移動元ＶＭへのアクセスは、ＯＦＳ群４に移動前に設定されていたフローに従って行われる。このため、移動元ＶＭに対する通信を中断することなく当該ＶＭのメモリイメージを転送することができる。又、メモリイメージ転送用経路は、統合管理装置１によって任意に設定することが可能であるため、他の仮想マシンに対する通信を阻害することのない経路を選定することができる。これにより、他の仮想マシンに対する通信に影響しないメモリイメージの転送が可能となる。
【００７１】
通常、物理サーバが同一サブネットに属する場合、レイヤ２のスイッチを介して物理サーバ間のデータ転送が行われるが、物理サーバが、異なるサブネットに属する場合、物理サーバ間にレイヤ３スイッチを用意する必要がある。一方、本発明ではレイヤ１からレイヤ４のアドレスや識別子の組み合わせによってアクション（例えば中継動作）が決まるオープンフロー技術を利用してメモリイメージの転送を行っている。このため、物理サーバ５、６が異なるサブネットに属する場合でも、フローの設定を変更するだけで物理サーバ間のデータ転送が可能となる。
【００７２】
図１２は、仮想マシンのマイグレーション処理におけるアクセス先切り替え処理の第１の実施の形態を説明するシーケンス図である。ここでは、ステップＳ２１８において稼動した移動先ＶＭをＶＭ２０ｍとして、移動元ＶＭから移動先ＶＭ２０ｍへのアクセス先の切替動作を説明する。図１２を参照して、移動先ＶＭＭ２０上で作成されたＶＭ２０ｍは、稼動状態となると、先ずＲＡＲＰ（Ｒｅｖｅｒｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）送信する（ステップＳ３０１）。ＲＡＲＰは、仮想スイッチ２１によって検出され、ＯＦＳ４ｉに転送される。ＲＡＲＰを検出したＯＦＳ４ｉは、検出したＲＡＲＰをＯＦＣ３に通知する（ステップＳ３０２）。詳細には、稼動状態となった移動先のＶＭからのＲＡＲＰ送信によるパケットデータを受信したＯＦＳ４ｉは、当該パケットデータに適合するフロー（ルール）が設定されていないことから、ファーストパケットを受信したことをＯＦＣ３に通知する。この際、当該パケットデータ又はパケットデータに含まれるＭＡＣアドレスをＯＦＣ３に通知する。ＯＦＣ３は通知されたＭＡＣアドレスに対応する通信経路を移動先ＶＭ宛通信経路として選択し、選択した移動先ＶＭ宛通信経路上のスイッチに設定する移動先ＶＭ宛通信用フローを選択する。ここでは、ＯＦＳ４ｉからＲＡＲＰのパケットデータが転送され、ＯＦＣ３は、ＲＡＲＰ送信したＶＭ２０ｍのＭＡＣアドレスを取得する。
【００７３】
ＯＦＣ３は、保持している有効な通信経路情報３３６のうち、ステップＳ３０２で通知されたＲＡＲＰ（ＭＡＣアドレス）に該当する通信経路（通信経路情報３３６）を選択する（Ｓ３０３）。ここでは、ステップＳ１０９で算出された移動先ＶＭ宛通信経路の中からＲＡＲＰ（ＭＡＣアドレス）を通過する通信経路が選択される。続いてＯＦＣ３は、ステップＳ１１０で生成された移動先ＶＭ宛通信用フローを、選択された通信経路上のＯＦＳ４ｉやノードに設定する（ステップＳ３０４〜Ｓ３０７）。詳細には、ＯＦＣ３は、通信経路情報３３６及びトポロジ情報３３５から、選択された移動先ＶＭ宛通信経路上のノード及びＯＦＳ４ｉを抽出し、それぞれに対応する移動先ＶＭ宛通信用フローを選択する（ステップＳ３０４）。そして、ＯＦＳ４ｉ毎に選択した移動先ＶＭ宛通信用フローの設定指示を発行する（ステップＳ３０５）。ＯＦＳ４ｉは、移動先ＶＭ宛通信用フローの設定指示に応じて、送信された移動先ＶＭ宛通信用フローを自身のフローテーブル３４３に設定する（ステップＳ３０６）。フローの設定が終了したＯＦＳ４ｉはフロー設定完了報告をＯＦＣ３に通知する（ステップＳ３０７）。ＯＦＳ４ｉに設定された移動先ＶＭ宛通信用フローの設定情報４４６は、「設定済み」及び「有効」に設定される。
【００７４】
ＯＦＣ３は、移動先ＶＭ宛通信経路上のノード及びＯＦＳ４ｉに移動先ＶＭ宛通信用フローを設定し、その設定完了を確認すると、トポロジ情報３３５を用いて移動先ＶＭと仮想スイッチ２１との間を接続するためのフローを生成する（ステップＳ３０８）。ＯＦＣ３は、生成したフローを仮想スイッチ２１に設定する（ステップＳ３０９、Ｓ３１０）。詳細には、ＯＦＣ３はステップＳ３０８で生成したフローの設定指示を仮想スイッチ２１に対して発行する（ステップＳ３０９）。仮想スイッチ２１は、フローの設定指示に応じて、ＯＦＣ３から送信されたフローを自身のフローテーブル３４３に設定する（ステップＳ３１０）。フローの設定が終了した仮想スイッチ２１はフロー設定完了報告をＯＦＣ３に通知する（ステップＳ３１１）。仮想スイッチ２１に設定された移動先ＶＭ宛通信用フローの設定情報４４６は、「設定済み」及び「有効」に設定される。
【００７５】
ＯＦＣ３は、移動先ＶＭ２０ｍと仮想スイッチ２１との間を接続するフローの設定完了を確認すると、移動元ＶＭ宛のフローを選択し、当該フローの削除指示を発行する（ステップＳ３１２、Ｓ３１３）。該当するＯＦＳ４ｉやノードは、移動元ＶＭ宛のフローを削除又は使用不可に設定する（ステップＳ３１４）。フローの削除が終了したＯＦＳ４ｉやノードはフロー削除完了報告をＯＦＣ３に通知する（ステップＳ３１５）。移動元ＶＭ宛の通信経路上のＯＦＳ４ｉやノードにおける移動元ＶＭ宛のフローの削除を確認すると、ＯＦＣ３は、移動先ＶＭ宛通信用フローを現在使用するフローとして設定し、移動元ＶＭ宛通信用フローを使用しないフローとして設定する（ステップＳ３１６）。ここでは、各フロー（ルール４４４＋アクション情報４４５）に対応する設定情報４４６に使用又は不使用（有効又は無効）のどちらかを示す情報が設定される。この際、使用しない移動元ＶＭ宛通信用フローはフローテーブル３３４から削除されても良い。しかし、使用しないフローを削除せず、設定情報４４６の変更によってフローの使用、不使用（有効又は無効）を設定することで、移動した仮想マシンを元の物理サーバ又はＶＭＭに移動する場合等において、再度フローを作成せずにフローの設定が可能となる。
【００７６】
以降、移動先ＶＭ２０ｍ宛の通信は、各ＯＦＳ４ｉに設定された移動先ＶＭ宛通信用フローに従って、物理サーバ６（ＶＭＭ２０）上で動作するＶＭＭ２０に対して実行される。
【００７７】
以上のように、本発明によるマイグレーション方法によれば、仮想マシンへの通信を中断させることなく、当該仮想マシンのマイグレーションが可能となる。本実施の形態では、異なる物理サーバ間のマイグレーションを一例として説明したが、同一物理サーバ内でのマイグレーションも同様な方法により実現できる。
【００７８】
又、本発明によれば、メモリイメージの転送のための設定や、移動先ＶＭへの通信のための設定を統合管理装置１によって一元的に実施できる。すなわち、仮想マシンのマイグレーションを１つの管理部門によって制御することが可能となる。従って、本発明によれば、従来、ネットワーク管理者やＩＴ管理者によって別々に管理されていたコンピュータシステムを、１つの管理部門によって管理及び運営することが可能となる。
【００７９】
尚、仮想スイッチ２１が通常のスイッチング（レイヤ２）動作を行う仮想スイッチである場合、ステップＳ３０８〜Ｓ３１１の処理は省略される。
【００８０】
２．第２の実施の形態
次に、図１１、図１３及び図１４を参照して、本発明によるコンピュータシステムにおける仮想マシンのマイグレーション方法の第２の実施の形態を説明する。第２の実施の形態におけるコンピュータ装置の構成は、第１の実施の形態と同様であるので、その説明は省略する。以下では、第１の実施の形態と異なる動作について説明する。又、第１の実施の形態と同様な動作には同じ符号を付して説明する。
【００８１】
第２の実施の形態における仮想マシンのマイグレーション方法では、移動準備処理の段階においてＯＦＳ４ｉに移動先ＶＭ宛通信用フローが設定される。これにより、移動対象ＶＭ宛のパケットデータはｄｕｐｌｉｃａｔｅされて移動元ＶＭ及び移動先ＶＭの両方に転送される。第１の実施の形態では、移動対象ＶＭのメモリイメージの転送後に移動先ＶＭ宛通信用フローが設定されるため、移動対象ＶＭの停止からから移動先ＶＭ宛通信用フローの設定（移動対象ＶＭに対するアクセス先の切替）までの期間は、パケットロスが発生する場合がある。しかし、第２の実施の形態では、移動準備の段階で移動元ＶＭ宛のフローと移動先ＶＭ宛のフローの両方が設定されるため、移動先ＶＭへのアクセス先を切り替える際のパケットロスの発生を防ぐことができる。
【００８２】
図１３は、仮想マシンのマイグレーション処理における準備処理の第２の実施の形態を説明するシーケンス図である。図１３を参照して、第２の実施の形態における準備処理では、先ずステップＳ１０１〜Ｓ１１０の処理が第１の実施の形態と同様に行われる。第２の実施の形態では、ＯＦＣ３は、移動先ＶＭ宛通信用フローを移動準備段階で各ＯＦＳ４ｉに設定する（ステップＳ４０１〜Ｓ４０３）。詳細には、ＯＦＣ３は、通信経路情報３３６及びトポロジ情報３３５から、選択された移動先ＶＭ宛通信経路上のノード及びＯＦＳ４ｉを抽出し、それぞれに対応する移動先ＶＭ宛通信用フローを選択する。そして、ＯＦＳ４ｉ毎に選択した移動先ＶＭ宛通信用フローの設定指示を発行する（ステップＳ４０１）。ＯＦＳ４ｉは、移動先ＶＭ宛通信用フローの設定指示に応じて、送信された移動先ＶＭ宛通信用フローを自身のフローテーブル３４３に設定する（ステップＳ４０２）。フローの設定が終了したＯＦＳ４ｉはフロー設定完了報告をＯＦＣ３に通知する（ステップＳ４０３）。ＯＦＳ４ｉに設定された移動先ＶＭ宛通信用フローの設定情報４４６は、「設定済み」及び「有効」に設定される。
【００８３】
ＯＦＣ３は、移動先ＶＭ宛通信用フローの設定が完了すると、移動準備の完了を統合管理装置１に報告する（ステップＳ４０５）。
【００８４】
以上のように、本実施の形態における準備処理では、移動対象ＶＭのメモリイメージの転送経路及びその移動を制御するためのフローの設定と、移動先ＶＭに対するアクセスのための通信経路及びその通信を制御するためのフローの設定が行われる。第２の実施の形態では、ＯＦＳ４ｉへのメモリイメージ転送用フロー及び移動先ＶＭ宛通信用フローの設定が終了した段階で、移動準備が終了する。
【００８５】
図１１を参照して、第２の実施の形態におけるイメージ転送処理では、先ずステップＳ２０１〜Ｓ２０７の処理（メモリイメージの転送処理）が、第１の実施の形態と同様に行われる。メモリイメージの転送中において、移動対象ＶＭ以外の他の仮想マシンへのアクセス（例えばテータ転送）が生じた場合、当該アクセスに係るＯＦＳ４ｉは、自身のフローテーブル３４３に設定されたフローに従って、受信パケットのヘッダ情報に対応するアクション（例えばデータの中継処理）を実行する。ここで、メモリイメージ転送経路をマイグレーションに関係のない他の仮想マシンへのアクセスを妨げないような経路に設定することで、他の仮想マシンへの通信を妨げることなく移動対象ＶＭを移動することが可能となる。
【００８６】
一方、メモリイメージの転送中において、移動対象ＶＭ宛へのアクセスが生じた場合（例えば、移動対象ＶＭ宛のデータが転送された場合）、移動対象ＶＭへの通信経路上のＯＦＳ４ｉは、自身のフローテーブル３４３に設定されたフローに従って、受信パケットのヘッダ情報に対応するアクション（例えばデータの中継処理）を実行する。本実施の形態では、移動対象ＶＭがＶＭＭ１０及びＶＭＭ２０上で動作しているものとしてフローが設定されているため、移動対象ＶＭ宛のデータはコピーされて、物理サーバ５上の移動対象ＶＭ（移動元ＶＭ）と物理サーバ６上に生成された移動先ＶＭの両方に転送される。移動元ＶＭＭ１０は、転送された移動対象ＶＭ宛のデータを移動対象ＶＭのメモリページに記録する。この際、移動先ＶＭＭ２０においても、転送された移動対象ＶＭ宛のデータは移動先ＶＭのメモリページに記録される。
【００８７】
メモリイメージの転送中においても、移動対象ＶＭのプロセス処理や、移動対象ＶＭ宛に転送されるデータによってメモリページが変更される場合がある。変更されたメモリページは、コピー対象として記憶装置の変更ページ記録領域に記録される（ステップＳ２０８）。変更ページの記録処理は、移動先ＶＭが稼動を開始するまで行われることが好ましい。
【００８８】
以降、変更ページの記録（ステップＳ２０８）から移動先ＶＭの稼動（ステップＳ２１６）まで、第１の実施の形態と同様の処理が行われる。
【００８９】
以上のように、第２の実施の形態におけるマイグレーション方法は、第１の実施の形態と同様に統合管理装置１によって指定された経路（メモリイメージ転送用経路）を利用してＶＭのメモリイメージの転送が行われる。この際、移動元ＶＭへのアクセスは、ＯＦＳ群４に移動前に設定されていたフローに従って行われるため、移動元ＶＭに対する通信を中断することなく当該ＶＭのメモリイメージを転送することができる。又、メモリイメージ転送用経路は、統合管理装置１によって任意に設定することが可能であるため、他の仮想マシンに対する通信を阻害することのない経路を選定することができる。これにより、他の仮想マシンに対する通信に影響しないメモリイメージの転送が可能となる。
【００９０】
図１４は、仮想マシンのマイグレーション処理におけるアクセス先切り替え処理の第２の実施の形態を説明するシーケンス図である。図１４を参照して、第２の実施の形態におけるアクセス先切り替え処理では、先ずステップＳ３０１〜Ｓ３０１の通信路選択処理が、第１の実施の形態と同様に行われる。続いて、第１の実施の形態で行われるＯＦＳ４ｉへの移動先ＶＭ宛通信用フローの設定処理（ステップＳ３０４〜Ｓ３０７）は、移動準備処理において実行されるため、ここでは省略される。
【００９１】
以降、移動先ＶＭと仮想スイッチ２１との間を接続するためのフローの生成処理（ステップＳ３０８）からフロー設定処理（ステップＳ３１６）まで、第１の実施の形態と同様の処理が行われる。
【００９２】
以上のように、第２の実施の形態では、準備処理の段階で、移動元ＶＭ宛のフローと移動先ＶＭ宛のフローの両方が設定される。このため、ステップＳ２１３における移動元ＶＭの停止からステップＳ３１６におけるフロー設定までの間において、移動対象ＶＭ宛に転送されたデータは破棄されることなく移動先ＶＭに到達する。このように、本実施の形態におけるコンピュータシステムでは、仮想マシンのマイグレーション中におけるパケットロスを防止することができる。又、外部ネットワーク８側から仮想マシンのマイグレーションが意識されることはない。
【００９３】
更に、本実施の形態では、ＶＭの移動後の新規通信経路（移動先ＶＭ宛通信経路）に対応するフロー（移動先ＶＭ宛通信用フロー）を、移動準備処理の段階において設定している。このため、本実施の形態における新規通信経路を確立する時間は、ＶＭの移動を検出してから新規通信経路を確立する第１の実施の形態に比べて短縮される。
【００９４】
３．第３の実施の形態
次に、図１５及び図１６を参照して、本発明によるコンピュータシステムにおける仮想マシンのマイグレーション方法の第３の実施の形態を説明する。図１５は、本発明によるコンピュータシステムの第３の実施の形態における構成を示す図である。図１５を参照して、第３の実施の形態におけるコンピュータ装置の構成は、第１の実施の形態におけるコンピュータシステムから統合管理装置１を除いた構成である。以下では、第１の実施の形態と異なる動作について説明する。又、第１の実施の形態と同様な動作には同じ符号を付して説明する。
【００９５】
第３の実施の形態における仮想マシンのマイグレーション方法では、ＶＭ管理装置２のみにＶＭマイグレーションのための設定をし、ＯＦＣ３は、仮想マシンの移動先を検出してデータの転送先を変更するフロー設定を実行する。このため、第３の実施の形態では、統合管理装置１によるＶＭ管理装置２及びＯＦＣ３の制御が行われない。すなわち、第３の実施の形態では、ＶＭ管理装置２とＯＦＣ３との連携は行われない。従って、第３の実施の形態における仮想マシンのマイグレーション方法では、第１、第２の実施の形態のような移動準備処理は行われない。
【００９６】
メモリイメージの転送処理に先立ち、管理者は、図示しない入力装置を操作して、ＶＭマイグレーションをＶＭ管理装置２に指示する。この際、移動対象ＶＭが動作する物理サーバ（又は仮想マシンモニタ）、移動対象ＶＭ、及び移動先となる物理サーバ（又は仮想マシンモニタ）が指定される。第１及び第２の実施の形態とは異なり、管理者による操作（指示）に応じてＶＭ管理装置２は、ＶＭＭ１０、２０にマイグレーション指示を発行する。以降、従来技術と同様に、移動対象ＶＭのメモリイメージの転送処理が行われる。すなわち、移動先ＶＭＭにおけるＶＭの作成及び移動対象ＶＭのメモリイメージの移動先ＶＭへの転送処理が行われる。この際、転送中に変更されたメモリページの記録、変更等も従来と同様な方法で行われる。メモリイメージの転送が完了時において、メモリイメージの転送中に変更されたメモリページ数が所定の数以下である場合は、移動元ＶＭと移動先ＶＭのメモリイメージの一致判定が行われ、一致した場合、移動元ＶＭは停止し、移動先ＶＭは稼動状態となる。一方、変更されたメモリページ数が所定の数より多い場合、変更ページ数が所定の数以下になるまで変更ページの再送が行われる。
【００９７】
図１６は、仮想マシンのマイグレーション処理におけるアクセス先切り替え処理の第３の実施の形態を説明するシーケンス図である。ここでは、稼動した移動先ＶＭをＶＭ２０ｍとして、移動元ＶＭから移動先ＶＭ２０ｍへのアクセス先の切替動作を説明する。図１６を参照して、移動先ＶＭＭ２０上で作成されたＶＭ２０ｍは、稼動状態となると、先ずＲＡＲＰ（Ｒｅｖｅｒｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）送信する（ステップＳ５０１）。ＲＡＲＰは、仮想スイッチ２１によって検出され、ＯＦＳ４ｉに転送される。ＲＡＲＰを検出したＯＦＳ４ｉは、検出したＲＡＲＰをＯＦＣ３に通知する（ステップＳ５０２）。詳細には、稼動状態となった移動先のＶＭからのＲＡＲＰ送信によるパケットデータを受信したＯＦＳ４ｉは、当該パケットデータに適合するフロー（ルール）が設定されていないことから、ファーストパケットを受信したことをＯＦＣ３に通知する。この際、当該パケットデータ又はパケットデータに含まれるＭＡＣアドレスをＯＦＣ３に通知する。ＯＦＣ３は通知されたＭＡＣアドレスに対応する通信経路を移動先ＶＭ宛通信経路として選択し、移動先ＶＭ宛通信用フローを生成する。ここでは、ＯＦＳ４ｉからＲＡＲＰのパケットデータが転送され、ＯＦＣ３は、ＲＡＲＰ送信したＶＭ２０ｍのＭＡＣアドレスを取得する。
【００９８】
ＯＦＣ３は、仮想スイッチ２１（又はＯＦＳ４ｉ）からのＲＡＲＰ通知に基づいて、稼動を開始した仮想マシン（移動先ＶＭ２０ｍ）の接続先の変更を検出する（ステップＳ５０３）。詳細には、ＯＦＣ３は、保持している有効な通信経路情報３３６のうち、ステップＳ５０２で通知されたＲＡＲＰに該当する通信経路（通信経路情報３３６）を検索（抽出）する。具体的には、ＯＦＣ３は、通知されたＲＡＲＰに含まれるＭＡＣアドレスを端点とする通信経路（通信経路情報３３６）を抽出する。そして、ＯＦＣ３は、検索（抽出）された通信経路上の端点であるＶＭ（又は物理サーバ）の接続先と、ＲＡＲＰ送信を受信した仮想スイッチ２１（又はＯＦＳ４ｉ）とが異なることを検出する。これにより、ＯＦＣ３は、稼動状態となった仮想マシン（移動先ＶＭ２０ｍ）の接続先が変更されたことを検出することができる。尚、物理サーバ５、６が同一のＯＦＳ４ｉに接続されている場合も、ＯＦＳ４ｉが接続されたポートは物理サーバ毎に異なる。このため、ＯＦＣ３において検索（抽出）された通信経路上の端点である物理サーバの接続先ポートと、ＲＡＲＰ送信を受信したスイッチの接続先ポートとが異なることを検出することで、仮想マシンの移動を検出することができる。
【００９９】
ＯＦＣ３は、移動先ＶＭ２０ｍの接続先の変更を検出すると、移動元ＶＭに関連した通信経路を、移動先ＶＭ２０ｍに再現する（ステップＳ５０４〜Ｓ５１６）。詳細には、ＯＦＣ３は、ステップＳ５０３において検索した通信経路におけるＶＭと異なる側の端点と、ステップＳ５０２においてＲＡＲＰ送信を検出した端点と間の通信経路（移動先ＶＭ宛通信経路）を、トポロジ情報３３５を用いて算出する（ステップＳ５０４）。算出された移動先ＶＭ宛通信経路に関する情報は通信経路情報３３６として記録される。ＯＦＣ３は、ステップＳ５０４で算出した移動先ＶＭ宛通信経路上にある各ＯＦＳ４ｉに設定すべきフロー（移動先ＶＭ宛通信用フロー）を生成する（ステップＳ５０５）。ＯＦＳ４ｉ毎に生成された移動先ＶＭ宛通信用フロー（ルール４４４＋アクション情報４４５）は、各ＯＦＳ４ｉに対応付けられてフローテーブル３３４に登録される。この際、移動先ＶＭ宛通信用フローの設定情報４４６は、「未設定」及び「無効」に設定される。
【０１００】
続いてＯＦＣ３は、ステップＳ５０５で生成された移動先ＶＭ宛通信用フローを、ステップＳ５０４において算出された通信経路上のＯＦＳ４ｉや仮想スイッチ２１に設定する（ステップＳ５０６〜Ｓ５１１）。詳細には、ＯＦＣ３は、通信経路情報３３６及びトポロジ情報３３５から、算出された移動先ＶＭ宛通信経路上のＯＦＳ４ｉや仮想スイッチ２１を抽出し、それぞれに対応する移動先ＶＭ宛通信用フローの設定指示を、ＯＦＳ４ｉや仮想スイッチ２１に発行する（ステップＳ５０６、Ｓ５０７）。ＯＦＳ４ｉや仮想スイッチ２１は、移動先ＶＭ宛通信用フローの設定指示に応じて、送信された移動先ＶＭ宛通信用フローを自身のフローテーブル３４３に設定する（ステップＳ５０８、Ｓ５１０）。そして、フローの設定が終了したＯＦＳ４ｉや仮想スイッチ２１はフロー設定完了報告をＯＦＣ３に通知する（ステップＳ５０９、Ｓ５１１）。ＯＦＳ４ｉや仮想スイッチ２１に設定された移動先ＶＭ宛通信用フローの設定情報４４６は、「設定済み」及び「有効」に設定される。
【０１０１】
ＯＦＣ３は、ＯＦＳ４ｉ及び仮想スイッチ２１に対する移動先ＶＭ宛通信用フローの設定完了を確認すると、移動元ＶＭ宛のフローを選択し、当該フローの削除指示を発行する（ステップＳ５１２、Ｓ５１３）。該当するＯＦＳ４ｉや仮想スイッチ２１は、移動元ＶＭ宛のフローを削除又は使用不可に設定する（ステップＳ５１４）。フローの削除が終了したＯＦＳ４ｉや仮想スイッチ２１はフロー削除完了報告をＯＦＣ３に通知する（ステップＳ５１５）。移動元ＶＭ宛の通信経路上のＯＦＳ４ｉやノードにおける移動元ＶＭ宛のフローの削除を確認すると、ＯＦＣ３は、移動先ＶＭ宛通信用フローを現在使用するフローとして設定し、移動元ＶＭ宛通信用フローを使用しないフローとして設定する（ステップＳ５１６）。ここでは、各フロー（ルール４４４＋アクション情報４４５）に対応する設定情報４４６に使用又は不使用のどちらかを示す情報が設定される。この際、使用しない移動元ＶＭ宛通信用フローはフローテーブル３３４から削除されても良い。しかし、使用しないフローを削除せず、設定情報４４６の変更によってフローの使用、不使用を設定することで、移動した仮想マシンを元の物理サーバ又はＶＭＭに移動する場合等において、再度フローを作成せずにフローの設定が可能となる。
【０１０２】
以上のように、第３の実施の形態では、ＯＦＣ３によるメモリページの転送経路の制御はできないが、ＶＭ管理装置２のみに移動対象ＶＭと移動先ＶＭＭを設定するだけで、仮想マシンの移動と、移動先ＶＭへのアクセス先の変更を制御することができる。すなわち、第３の実施の形態におけるコンピュータシステムにおいても、ＶＭマイグレーションを１つの管理部門によって一元的に制御することが可能となる。
【０１０３】
上述の第３の実施の形態では、ＲＡＲＰ送信に応じて移動先ＶＭ宛の通信経路の算出及びフローが生成されたが、ＶＭＭ間の通信状況に応じて通信経路の算出及びフローの生成が行われても良い。この場合、ＯＦＣ３は、ＶＭＭ間の通信を監視し、メモリページの転送開始に応じて有効となる移動先ＶＭ宛通信経路を算出し、各ＯＦＳ４ｉ及び仮想スイッチ２１に設定するフロー（ルール４４４＋アクション情報４４５）を生成する。これにより、図１６に示すステップＳ５０１〜Ｓ５１１の処理を短縮することができる。又、移動元ＶＭの停止から移動先ＶＭ宛通信用フローの設定までの時間を短縮することができるため、この間に発生するパケットロスの量を低減することができる。
【０１０４】
４．第４の実施の形態
図１７は、第４の実施の形態におけるコンピュータシステムの構成を示す図である。第４の実施の形態におけるコンピュータシステムは、第１、第２の実施の形態におけるコンピュータシステムに加えて、外部ネットワーク８とＯＦＳ群４との間に設けられたロードバランサ９を更に備える。
【０１０５】
ロードバランサ９は、物理サーバ５、６におけるＶＭＭ１０１〜１０ｎ、２０１〜２０ｍに対する負荷分散を行う。第４の実施の形態におけるコンピュータシステムでは、第１から第３の実施の形態のいずれかと同様にＶＭマイグレーションが行われる。ただし、第４の実施の形態では、統合管理装置１又はＶＭ管理装置２は、ＶＭマイグレーションの実行指示を行う段階においてロードバランサ９に対し、移動元ＶＭに対する処理（アクセス）が発生しないように指示する。これにより、変更ページの記録及び転送が省略、又は、その処理量が低減されるため、ＶＭマイグレーションの時間が短縮される。又、移動対象ＶＭのメモリページの転送の間、移動元ＶＭに対する負荷が減少する。
【０１０６】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。例えば、第１、第２、第４の実施の形態におけるＶＭマイグレーション方法において、メモリイメージ転送経路のＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を他の通信よりも高優先度に設定してもよい。これにより、ＶＭマイグレーションに要する時間を短縮することができる。あるいは、メモリイメージ転送経路のＱｏＳを他の通信よりも低優先度に設定してもよい。この場合、ＶＭマイグレーションが他の通信に与える影響を軽減することができる。更に、第１、第２、第４の実施の形態におけるＶＭマイグレーションの事前準備（移動準備処理）のうち、移動先ＶＭ宛通信経路の算出及び移動先ＶＭ宛通信用フローの生成を、メモリイメージの転送と同時並行的に実行してもよい。これにより、ネットワーク側から見た移動準備処理時間が短縮されるとともに、ＶＭマイグレーションの処理時間が短縮される。
【０１０７】
ＯＦＣ３は、ＲＡＲＰ送信によって通知されたＭＡＣアドレスを用いて、「移動先ＶＭ宛通信経路の選択」や「ＶＭの移動先の変更の確認を確認」を行ったが、これに限らない。例えば、マイグレーション後、稼動状態となった移動先のＶＭによって送信されたパケットデータを受信したＯＦＳ４ｉは、当該パケットデータに適合するフロー（ルール）が設定されていないことから、ファーストパケットを受信したことをＯＦＣ３に通知する。この際、当該パケットデータのＭＡＣアドレスをＯＦＣ３に通知する。ＯＦＣ３は通知されたＭＡＣアドレスに対応する通信経路を移動先ＶＭ宛通信経路として選択し、移動先ＶＭ宛通信用フローを生成する。あるいは、ＯＦＣ３は、同様にファーストパケットの通知によって取得したＭＡＣアドレスを端点とする通信経路を抽出し、当該通信経路上の端点であるＶＭの接続先と、当該パケットデータを受信したスイッチとが異なることを検出することで受信の接続先の変更を確認してもよい。
【符号の説明】
【０１０８】
１：統合管理装置
２：ＶＭ管理装置
３：オープンフローコントローラ（ＯＦＣ）
４：オープンフロースイッチ群（ＯＦＳ群）
４ｉ：オープンフロースイッチ（ＯＦＳ）
５、６：物理サーバ
７：記憶装置
８：外部ネットワーク
９：ロードバランサ
１０１〜１０ｎ、２０１〜２０ｍ：仮想マシン（ＶＭ）
１０、２０：仮想マシンモニタ（ＶＭＭ）
１１、２１：仮想スイッチ（ＶＳＷ）
【図１】
0005446040.tif 000002
【図２】
0005446040.tif 000003
【図３】
0005446040.tif 000004
【図４】
0005446040.tif 000005
【図５】
0005446040.tif 000006
【図６】
0005446040.tif 000007
【図７】
0005446040.tif 000008
【図８】
0005446040.tif 000009
【図９】
0005446040.tif 000010
【図１０】
0005446040.tif 000011
【図１１】
0005446040.tif 000012
【図１２】
0005446040.tif 000013
【図１３】
0005446040.tif 000014
【図１４】
0005446040.tif 000015
【図１５】
0005446040.tif 000016
【図１６】
0005446040.tif 000017
【図１７】
0005446040.tif 000018