(57)【要約】【課題】通信品質の低下を防ぐこと。【解決手段】処理部１ｂは、ネットワークの所定区間に流れるパケットを複製した複製パケットを取得し、記憶部１ａに格納する。処理部１ｂは、クライアント７，８，・・・によるアクセス先の仮想マシン２ａ，２ｂ，３ａ，３ｂを複製パケットから特定する。処理部１ｂは、仮想マシン２ａ，２ｂ，３ａ，３ｂのクライアント７，８，・・・への応答時間を複製パケットから算出する。処理部１ｂは、応答時間が所定時間を超えた仮想マシン２ａが稼働する第１物理マシン２を、定期的に発行される所定の存在確認要求への応答に基づいて推定する。処理部１ｂは、第２物理マシン３で稼働しており仮想マシン２ａと共通の機能をもつ仮想マシン３ｂを特定する。処理部１ｂは、仮想マシン２ａへのパケットを仮想マシン３ｂへ転送する制御を行う。【選択図】図１
2018110359.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークの所定区間に流れるパケットを複製した複製パケットを取得し、
クライアントによるアクセス先の仮想マシンを前記複製パケットから特定し、
前記仮想マシンの前記クライアントへの応答時間を前記複製パケットから算出し、
算出した前記応答時間が所定時間を超えた第１仮想マシンが稼働する第１物理マシンを、定期的に発行される所定の存在確認要求への応答に基づいて推定し、第２物理マシンで稼働しており前記第１仮想マシンと共通の機能をもつ第２仮想マシンを特定し、
前記第１仮想マシンへの前記パケットを前記第２仮想マシンへ転送する制御を行う、
処理をコンピュータに実行させる仮想マシン管理プログラム。
【請求項２】
前記制御では、前記第１仮想マシンを宛先とする転送対象のパケットを受信しても破棄する設定を前記第１仮想マシンに追加し、前記転送対象のパケットに対応する前記複製パケットの宛先を前記第２仮想マシンに変更して前記ネットワークに送信する、請求項１記載の仮想マシン管理プログラム。
【請求項３】
前記制御では、前記第１仮想マシンを宛先とする前記パケットの宛先を前記第２仮想マシンに変更する設定、および、変更後の前記パケットを転送する設定を、前記第１仮想マシンが接続されている仮想スイッチに追加する、請求項１記載の仮想マシン管理プログラム。
【請求項４】
前記第２仮想マシンの特定では、前記第２仮想マシンがない場合、前記第２仮想マシンを前記第２物理マシンにより起動させる、請求項１乃至３の何れか１項に記載の仮想マシン管理プログラム。
【請求項５】
前記所定の存在確認要求は、前記複製パケットのうち、前記第１仮想マシンが他の仮想マシンを宛先として送信したＡＲＰ（Address Resolution Protocol）要求のパケットであり、
前記第２仮想マシンの特定では、複数の宛先への前記ＡＲＰ要求に対して共通のＭＡＣ（Media Access Control）アドレスが応答されると、前記複数の宛先の中から前記第２仮想マシンを特定する、
請求項１乃至４の何れか１項に記載の仮想マシン管理プログラム。
【請求項６】
前記制御では、前記第１仮想マシンに対してアクセス実績のある複数のクライアントのうち前記第１仮想マシンに現在アクセスしている前記クライアントを特定し、特定した前記クライアントを送信元とする前記パケットを転送の対象外とする、請求項１乃至５の何れか１項に記載の仮想マシン管理プログラム。
【請求項７】
ネットワークの所定区間に流れるパケットを複製した複製パケットを記憶する記憶部と、
クライアントによるアクセス先の仮想マシンを前記複製パケットから特定し、前記仮想マシンの前記クライアントへの応答時間を前記複製パケットから算出し、算出した前記応答時間が所定時間を超えた第１仮想マシンが稼働する第１物理マシンを、定期的に発行される所定の存在確認要求への応答に基づいて推定し、第２物理マシンで稼働しており前記第１仮想マシンと共通の機能をもつ第２仮想マシンを特定し、前記第１仮想マシンへの前記パケットを前記第２仮想マシンへ転送する制御を行う処理部と、
を有する仮想マシン管理装置。
【請求項８】
コンピュータが、
ネットワークの所定区間に流れるパケットを複製した複製パケットを取得し、
クライアントによるアクセス先の仮想マシンを前記複製パケットから特定し、
前記仮想マシンの前記クライアントへの応答時間を前記複製パケットから算出し、
算出した前記応答時間が所定時間を超えた第１仮想マシンが稼働する第１物理マシンを、定期的に発行される所定の存在確認要求への応答に基づいて推定し、第２物理マシンで稼働しており前記第１仮想マシンと共通の機能をもつ第２仮想マシンを特定し、
前記第１仮想マシンへの前記パケットを前記第２仮想マシンへ転送する制御を行う、
仮想マシン管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想マシン管理プログラム、仮想マシン管理装置および仮想マシン管理方法に関する。
【背景技術】
【０００２】
情報処理の分野では、物理的なコンピュータ（物理マシンや物理ホストと呼ぶことがある）上で、複数の仮想的なコンピュータ（仮想マシンや論理ホストと呼ぶことがある）を動作させる仮想化技術が利用されている。各仮想マシン上では、ＯＳ（Operating System）などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。例えば、ハイパーバイザと呼ばれるソフトウェアが、ＣＰＵ（Central Processing Unit）の処理能力やＲＡＭ（Random Access Memory）の記憶領域を、演算のリソースとして複数の仮想マシンに割り振ることがある。
【０００３】
ところで、情報処理システムでは、所定のサービスを提供する物理マシンや仮想マシンを複数設けることで、処理の分散化による応答性能の向上や、処理の冗長化による可用性の向上などを図ることがある。
【０００４】
例えば、あるプロバイダのシステム資源にインターネット接続サービスを継続することが不可能になる障害が発生した場合に、他プロバイダのシステム資源を利用してインターネット接続サービスを継続可能にする提案がある。
【０００５】
また、処理要求に基づく処理を実行する仮想マシンを複数管理し、故障した仮想マシンの処理を別の仮想マシンに切り替えるネットワーク管理装置の提案もある。
更に、リクエストに対するサービス毎のＱｏＳ（Quality of Service）違反を監視し、ＱｏＳ違反を検出した場合、リクエストの処理を、システム内のリソース再割当てで対応するか、他ネットワークシステムに振り分けるかを決定する情報処理装置の提案もある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３４２１８１号公報
【特許文献２】特開２０１４−２３０２３４号公報
【特許文献３】国際公開第２０１２／０７７３９０号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
物理マシンを管理者側で管理し、ユーザには物理マシンを意識させずに、仮想マシンの利用環境を提供するサービスがある。当該サービスにおいて、仮想マシンによる通信品質を監視し、通信品質の低下に応じて、ある仮想マシンの処理（あるいは処理の一部）を別の仮想マシンに代替させる運用を、ユーザにより行えるようにすることが考えられる。
【０００８】
しかし、ユーザにより利用されるアプリケーションは、利用中の仮想マシンが、何れの物理マシンで動作しているのか把握できないことがある。このため、ユーザのアプリケーションは、ある仮想マシンの処理を、当該仮想マシンと同じ物理マシン上で動作する別の仮想マシンに代替させる可能性がある。仮想マシンによる通信品質の低下の要因は、物理マシンの高負荷にあることが少なくない。元の仮想マシンと代替先の仮想マシンとが同じ物理マシン上にあると、通信品質の低下を十分に改善できない可能性がある。
【０００９】
１つの側面では、本発明は、通信品質の低下を防ぐことを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、仮想マシン管理プログラムが提供される。仮想マシン管理プログラムは、ネットワークの所定区間に流れるパケットを複製した複製パケットを取得し、クライアントによるアクセス先の仮想マシンを複製パケットから特定し、仮想マシンのクライアントへの応答時間を複製パケットから算出し、算出した応答時間が所定時間を超えた第１仮想マシンが稼働する第１物理マシンを、定期的に発行される所定の存在確認要求への応答に基づいて推定し、第２物理マシンで稼働しており第１仮想マシンと共通の機能をもつ第２仮想マシンを特定し、第１仮想マシンへのパケットを第２仮想マシンへ転送する制御を行う、処理をコンピュータに実行させる。
【発明の効果】
【００１１】
１つの側面では、通信品質の低下を防ぐことができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の仮想マシン管理装置を示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】第２の実施の形態の実行サーバのハードウェア例を示す図である。
【図４】ハイパーバイザの例を示す図である。
【図５】仮想マシンの例を示す図である。
【図６】管理用の仮想マシンの機能例を示す図である。
【図７】パケットキャプチャの例を示す図である。
【図８】ＡＲＰ要求／応答の例（その１）を示す図である。
【図９】ＡＲＰ要求／応答の例（その２）を示す図である。
【図１０】ＶＭテーブルの例を示す図である。
【図１１】アクセス履歴テーブルの例を示す図である。
【図１２】ＶＭ収容サーバ管理テーブルの例を示す図である。
【図１３】ＡＲＰ結果テーブルの例を示す図である。
【図１４】品質計測テーブルの例を示す図である。
【図１５】管理画面の表示例を示す図である。
【図１６】監視の例を示すフローチャートである。
【図１７】物理サーバ推定の例を示すフローチャートである。
【図１８】アクセス制御の例を示すフローチャートである。
【図１９】アクセス制御の例を示す図である。
【図２０】アクセス制御を開始する契機の他の例（その１）を示す図である。
【図２１】アクセス制御を開始する契機の他の例（その２）を示す図である。
【図２２】アクセス制御の他の例（その１）を示す図である。
【図２３】アクセス制御の他の例（その２）を示す図である。
【図２４】アクセス制御の他の例（その３）を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の仮想マシン管理装置を示す図である。仮想マシン管理装置１、物理マシン２，３および負荷分散装置４は、ネットワーク５に接続されている。仮想マシン管理装置１は、物理マシン２，３および負荷分散装置４とネットワーク５を介して通信する。
【００１４】
物理マシン２，３は、プロセッサ、メモリおよび通信インタフェースなどのハードウェアを有し、ハードウェアのリソースを用いて仮想マシンを動作させる物理的なコンピュータである。例えば、物理マシン２，３は、それぞれがハイパーバイザを実行し、ハイパーバイザによりハードウェアのリソースを仮想マシンに割り振る。
【００１５】
物理マシン２は、仮想マシン２ａ，２ｂおよび仮想スイッチ２ｃを有する。仮想マシン２ａ，２ｂは、物理マシン２上で動作する仮想的なコンピュータである。仮想スイッチ２ｃは、仮想マシン２ａ，２ｂおよびネットワーク５と接続され、仮想マシン２ａ，２ｂと他の仮想マシンとの間の通信を中継する仮想的なスイッチである。
【００１６】
物理マシン３は、仮想マシン３ａ，３ｂおよび仮想スイッチ３ｃを有する。仮想マシン３ａ，３ｂは、物理マシン３上で動作する仮想的なコンピュータである。仮想スイッチ３ｃは、仮想マシン３ａ，３ｂおよびネットワーク５と接続され、仮想マシン３ａ，３ｂと他の仮想マシンとの間の通信を中継する仮想的なスイッチである。ネットワーク５は、仮想スイッチ２ｃ，３ｃによって形成される論理的なネットワークを含む。
【００１７】
負荷分散装置４は、サービスに対する要求を、何れかの仮想マシンに振り分ける。負荷分散装置４は、ロードバランサ（ＬＢ：Load Balancer）と呼ばれることもある。負荷分散装置４は、仮想マシンによって実現されてもよい。例えば、負荷分散装置４は、ネットワーク６にも接続されている。負荷分散装置４は、ネットワーク６に接続されたクライアント７，８，・・・から、サービスに対する要求を受信する。そして、負荷分散装置４は、所定の負荷分散ルール（例えば、ラウンドロビン、最小コネクション数または最小応答時間など）に基づき、複数の仮想マシンのうちの何れかの仮想マシンを選択する。負荷分散装置４は、選択した仮想マシンに、クライアント７，８，・・・から受信した要求を送信する。
【００１８】
仮想マシン管理装置１は、仮想マシン２ａ，２ｂ，３ａ，３ｂの運用を管理するコンピュータである。仮想マシン管理装置１の機能は、物理マシンにより実現されてもよいし、仮想マシンにより実現されてもよい。例えば、仮想マシン管理装置１は、システム全体を管理する管理者ではなく、クライアント７，８を使用するユーザによって運用される。ここで、仮想マシン管理装置１は、仮想マシン２ａ，２ｂ，３ａ，３ｂを動作させる物理マシンの数や、仮想マシン２ａ，２ｂ，３ａ，３ｂが何れの物理マシン上で動作しているかを把握していない。
【００１９】
このようなシステムにおいて、仮想マシン管理装置１は、複数の仮想マシンにより提供されるサービスについて、通信品質を監視し、通信品質の低下を抑える機能を提供する。
ここで、例えば、仮想マシン２ａ，２ｂ，３ｂは、サービスＸを提供する。仮想マシン３ａは、サービスＹを提供する。サービスＸにアクセスするための仮想マシン２ａのアドレス（例えば、ＩＰ（Internet Protocol）アドレス）をＸ１とする。サービスＸにアクセスするための仮想マシン２ｂのアドレスをＸ２とする。サービスＹにアクセスするための仮想マシン３ａのアドレスをＹ１とする。サービスＸにアクセスするための仮想マシン３ｂのアドレスをＸ３とする。負荷分散装置４は、サービスＸに対する要求を、仮想マシン２ａ，２ｂ，３ｂに分散して振り分けることになる。この場合、仮想マシン管理装置１は、次のように、サービスＸに関する通信品質の低下を抑える制御を行う。
【００２０】
仮想マシン管理装置１は、記憶部１ａおよび処理部１ｂを有する。記憶部１ａは、ＲＡＭなどの揮発性記憶装置でもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部１ｂは、ＣＰＵ、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。処理部１ｂはプログラムを実行するプロセッサでもよい。「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）が含まれ得る。
【００２１】
記憶部１ａは、テーブルＴ１を記憶する。テーブルＴ１は、仮想マシンのアドレスと当該仮想マシンを動作させていると推定される物理マシンの識別情報（例えば、物理マシン番号（＃））との対応関係を示す情報である。ここで、物理マシンの識別情報は、仮想マシン管理装置１内で、物理マシンを区別できる情報であればよい。テーブルＴ１は、処理部１ｂによって生成され、記憶部１ａに格納される。なお、仮想マシン２ａ，２ｂ，３ａ，３ｂおよびクライアント７，８，・・・のアドレスは、記憶部１ａに予め格納されている。
【００２２】
処理部１ｂは、ネットワーク５の所定区間に流れるパケットを複製した複製パケットを取得する。例えば、処理部１ｂは、次のように、仮想スイッチ２ｃ，３ｃから、複製パケットを取得する。
【００２３】
仮想スイッチ２ｃは、仮想的なポートｐ１，ｐ２を有する。ポートｐ１は、仮想マシン２ａと接続される。ポートｐ２は、仮想マシン２ｂと接続される。仮想スイッチ２ｃは、ポートｐ１を経由するパケット（ポートｐ１と仮想マシン２ａとの間の区間を流れるパケット）を複製し、複製したパケット（複製パケット）を仮想マシン管理装置１に送信する。仮想スイッチ２ｃは、ポートｐ２を経由するパケット（ポートｐ２と仮想マシン２ｂとの間の区間を流れるパケット）を複製し、複製パケットを仮想マシン管理装置１に送信する。処理部１ｂは、仮想スイッチ２ｃにより送信された複製パケットを受信し、記憶部１ａに格納する。
【００２４】
同様に、仮想スイッチ３ｃは、仮想的なポートｐ３，ｐ４を有する。ポートｐ３は、仮想マシン３ａと接続される。ポートｐ４は、仮想マシン３ｂと接続される。仮想スイッチ３ｃは、ポートｐ３を経由するパケット（ポートｐ３と仮想マシン３ａとの間の区間を流れるパケット）を複製し、複製パケットを仮想マシン管理装置１に送信する。仮想スイッチ３ｃは、ポートｐ４を経由するパケット（ポートｐ４と仮想マシン３ｂとの間の区間を流れるパケット）を複製し、複製パケットを仮想マシン管理装置１に送信する。処理部１ｂは、仮想スイッチ３ｃにより送信された複製パケットを受信し、記憶部１ａに格納する。
【００２５】
処理部１ｂは、クライアント７，８，・・・によるアクセス先の仮想マシンを、記憶部１ａに記憶された複製パケットから特定する。例えば、処理部１ｂは、複製パケットのヘッダを参照し、送信元アドレスがクライアント７，８，・・・の何れかのアドレスである複製パケットを特定する。そして、処理部１ｂは、当該複製パケットの宛先アドレスから、クライアント７，８，・・・によるアクセス先の仮想マシンを特定する。
【００２６】
処理部１ｂは、仮想マシン２ａ，２ｂ，３ｂのクライアント７，８，・・・への応答時間を複製パケットから算出する。例えば、処理部１ｂは、あるリクエストパケットの受信時刻と、当該リクエストパケットに対するレスポンスパケットの受信時刻との時間差の平均値を応答時間とする。処理部１ｂは、複製パケットの内容により、仮想マシン２ａ，２ｂ，３ｂによる応答時間の変化を監視する。
【００２７】
処理部１ｂは、算出した応答時間が所定時間を超えた第１仮想マシンが稼働する第１物理マシンを、定期的に発行される所定の存在確認要求への応答に基づいて推定する。所定時間は、記憶部１ａに予め設定される。
【００２８】
存在確認要求の一例として、ＡＲＰ（Address Resolution Protocol）要求が考えられる。ＡＲＰは、ＩＰアドレスを基に、イーサネット（登録商標）におけるＭＡＣ（Media Access Control）アドレスを得るためのプロトコルである。ＡＲＰ要求は、ＡＲＰの問い合わせに用いられるリクエストであり、問い合わせ対象のＩＰアドレスを宛先とし、送信元クライアントのＩＰアドレスを送信元として、通常、同一サブネット内にブロードキャストされる。ただし、ＡＲＰテーブルのリフレッシュ時など、ユニキャストでＡＲＰ要求が送信されることもある。
【００２９】
ここで、仮想スイッチ２ｃ，３ｃは、ＡＲＰ要求に対して、次の（１）、（２）の動作を行う。次のような動作を行う仮想スイッチ２ｃ，３ｃの一例として、ＯｐｅｎｖＳｗｉｔｃｈが挙げられる。
【００３０】
（１）仮想スイッチ２ｃは、仮想スイッチ２ｃに直接接続する仮想マシン宛のＡＲＰ要求を、仮想マシン２ａ，２ｂの何れかから受信すると、宛先の仮想マシンにＡＲＰ要求を転送する（仮想スイッチ２ｃに接続する他の仮想マシンにブロードキャストしてもよい）。仮想スイッチ２ｃは、ＡＲＰ要求の宛先の仮想マシンからＡＲＰ応答を受信すると、要求元の仮想マシンにＡＲＰ応答を転送する。ここで、仮想スイッチ２ｃに直接接続する仮想マシンとは、物理マシン２で動作する仮想マシン２ａ，２ｂである。例えば、仮想スイッチ２ｃは、仮想マシン２ｂのＩＰアドレスを問い合わせ先とするＡＲＰ要求を仮想マシン２ａから受信すると、仮想マシン２ｂにＡＲＰ要求を転送する。仮想スイッチ２ｃは、ＡＲＰ要求に対するＡＲＰ応答を仮想マシン２ｂから受信すると、仮想マシン２ａにＡＲＰ応答を転送する。
【００３１】
（２）仮想スイッチ２ｃは、仮想スイッチ２ｃに直接接続していない仮想マシン宛のＡＲＰ要求を、仮想マシン２ａ，２ｂの何れかから受信すると、要求元の仮想マシンが接続されるポート（ポートｐ１，ｐ２の何れか）のＭＡＣアドレスを応答する。ここで、仮想スイッチ２ｃに直接接続していない仮想マシンとは、物理マシン２以外の物理マシン３で動作する仮想マシン３ａ，３ｂである。例えば、仮想スイッチ２ｃは、仮想マシン３ａのＩＰアドレスを問い合わせ先とするＡＲＰ要求を仮想マシン２ａから受信すると、ＡＲＰ要求の転送を行わずに、ポートｐ１のＭＡＣアドレスを含むＡＲＰ応答を生成し、仮想マシン２ａに送信する。
【００３２】
仮想スイッチ３ｃも、仮想マシン３ａ，３ｂからのＡＲＰ要求を、仮想スイッチ２ｃと同様に処理する。
すると、処理部１ｂは、例えば、記憶部１ａに記憶された複製パケットに含まれるＡＲＰ要求およびＡＲＰ応答に基づいて、次のように仮想マシン２ａ，２ｂ，３ａ，３ｂと２つの物理マシンとの対応を把握できる。
【００３３】
すなわち、仮想マシン２ａによるＡＲＰ要求に対するＡＲＰ応答に着目すると、仮想マシン２ｂのＩＰアドレスを宛先とするＡＲＰ要求の応答として、ＭＡＣアドレスＭ１（仮想マシン２ｂのＭＡＣアドレス）が返される。一方、仮想マシン３ａ，３ｂそれぞれのＩＰアドレスを宛先とするＡＲＰ要求の応答として、同じＭＡＣアドレスＭ２（ポートｐ１のＭＡＣアドレス）が返される。この場合、処理部１ｂは、仮想マシン２ａと、仮想マシン３ａ，３ｂの組とが、別個の物理マシンで動作していると推定する。また、処理部１ｂは、仮想マシン２ｂと、仮想マシン３ａ，３ｂの組とが別個の物理マシンで動作していると推定する。
【００３４】
一方、処理部１ｂは、仮想マシン２ａ，２ｂについては、同じ物理マシンで動作していると推定する。なぜなら、仮に、仮想マシン２ｂが仮想マシン２ａとは別の物理マシンにあるならば、仮想マシン３ａ，３ｂからのＡＲＰ応答と同様に、仮想マシン２ｂからのＡＲＰ応答でもＭＡＣアドレスＭ２が応答されるはずだからである。すなわち、上記の例では、仮想マシン２ｂは、複数の仮想マシンから応答されたＭＡＣアドレスＭ２とは異なるＭＡＣアドレスＭ１を応答しているためである。
【００３５】
そして、処理部１ｂは、サービスＸについて、仮想マシン２ａのアドレスＸ１および仮想マシン２ｂのアドレスＸ２を、物理マシン＃１に対応付け、仮想マシン３ｂのアドレスＸ３を、物理マシン＃２に対応付ける。処理部１ｂは、この対応付けの結果をテーブルＴ１に登録する。なお、処理部１ｂは、仮想マシン２ｂ，３ａ，３ｂの何れのＡＲＰ要求に着目しても同じ結果を得られる。
【００３６】
例えば、仮想マシン２ａ（第１仮想マシンに相当）による応答時間が所定時間を超えた場合を考える。すなわち、アドレスＸ１を宛先とする要求に対する応答に遅延が発生した場合である。この場合、処理部１ｂは、仮想マシン２ａが稼働する物理マシン＃１（第１物理マシンに相当）を、上記のＡＲＰ要求への応答に基づいて推定できることになる。ここで、処理部１ｂは、仮想マシン２ａが稼働する物理マシンの識別情報（物理マシン＃１）を特定できていればよく、物理マシン＃１が具体的にどの物理マシンであるかを把握しなくてもよい。
【００３７】
そして、処理部１ｂは、第１物理マシンとは異なる第２物理マシンで稼働しており第１仮想マシンと共通の機能をもつ第２仮想マシンを特定する。テーブルＴ１の例によれば、共通の機能であるサービスＸを提供する仮想マシン２ａ，２ｂ，３ｂのうち、仮想マシン２ａを動作させる物理マシン（物理マシン２）とは異なる物理マシン（物理マシン３）で稼働する仮想マシン３ｂが存在する。したがって、処理部１ｂは、第２仮想マシンとして、仮想マシン３ｂ（仮想マシン３ｂのアドレスＸ３）を特定する。
【００３８】
処理部１ｂは、第１仮想マシンへのパケットを第２仮想マシンへ転送する制御を行う。例えば、処理部１ｂは、仮想マシン２ａへのパケットを仮想マシン３ｂへ転送する制御を行う。より具体的には、処理部１ｂは、過去に仮想マシン２ａにアクセスしていたが現在は仮想マシン２ａにアクセスしていないクライアントからの要求を今後受け付けた場合に、当該クライアントからの要求を、仮想マシン３ｂに転送する。このように、通信中のパケットを転送対象外とすることで、既存のアクセスへの影響を抑えられる。
【００３９】
処理部１ｂによるパケットの転送制御の方法には幾つかの方法が考えられる。
一例では、処理部１ｂは、転送対象とするクライアントのアドレスを送信元とするパケットを受信しても破棄するための設定を、仮想マシン２ａに行う。そして、処理部１ｂは、複製パケットのうち、転送対象のクライアントのアドレスを送信元とし、仮想マシン２ａのアドレスを宛先とする複製パケットの宛先を、仮想マシン３ｂのアドレスに変更して、当該複製パケットをネットワーク５に転送する。
【００４０】
あるいは、処理部１ｂは、転送対象のクライアントのアドレスを送信元とし、仮想マシン２ａのアドレスを宛先とするパケットの宛先を、仮想マシン３ｂのアドレスに変更して、当該パケットをネットワーク５に転送する設定を、仮想スイッチ２ｃに追加してもよい。仮想スイッチ２ｃとして、前述のＯｐｅｎｖＳｗｉｔｃｈのようなＯｐｅｎｆｌｏｗ（登録商標）スイッチを用いる場合、処理部１ｂは、仮想スイッチ２ｃのフローテーブルに、上記の転送のためのフローエントリを追加してもよい。
【００４１】
ここで、例えば、クラウドコンピューティングによるコンピュータの利用形態では、ユーザに物理マシンを意識させずに、仮想マシンの利用環境を提供するサービスがある。このようなサービスにおいて、仮想マシンによる通信品質を監視し、通信品質の低下に応じて、ある仮想マシンの処理（あるいは処理の一部）を別の仮想マシンに代替させる運用を、ユーザ側の判断により行えるようにすることが考えられる。
【００４２】
しかし、ユーザにより利用されるアプリケーションは、利用中の仮想マシンが、何れの物理マシンで動作しているのか把握できないことがある。また、ある仮想マシンが具体的にどの物理マシンで動作しているかという情報がシステム管理者からユーザ側へ提供されていなければ、仮想マシンがどの物理マシンで動作しているかをユーザ側で把握することは困難である。
【００４３】
その場合、ユーザが利用するアプリケーションは、例えば、通信品質が低下した仮想マシン２ａの処理を、仮想マシン２ａと同じ物理マシン２上で動作する仮想マシン２ｂに代替させる可能性がある。ところが、仮想マシン２ａによる通信品質の低下の要因は、物理マシン２の高負荷にあることが少なくない。仮想マシン２ａと代替先の仮想マシン２ｂとが同じ物理マシン２上にあると、物理マシン２に負荷がかかる状況が変わらないので、通信品質の低下を十分に改善できない可能性がある。
【００４４】
そこで、仮想マシン管理装置１は、各仮想マシンが発行する所定の存在確認要求に基づいて、応答遅延が増した第１仮想マシンが動作する第１物理マシンとは異なる第２物理マシン上の第２仮想マシンを特定する。そして、仮想マシン管理装置１は、第１仮想マシンへの要求の一部を第２仮想マシンに振り分ける。
【００４５】
これにより、仮想マシン管理装置１は、第１物理マシンとは異なる第２物理マシン上の第２仮想マシンに対して、適切に処理を振り分けることが可能となる。第１物理マシンの負荷の一部が第２物理マシンに分配されることで、第１物理マシンの負荷が低減され、仮想マシン２ａの通信品質が低下することを防げる。
【００４６】
なお、存在確認要求は、例えば、仮想マシン２ａ，２ｂ，３ａ，３ｂにより各仮想マシンのＩＰアドレス宛に発行されるｐｉｎｇでもよい。ｐｉｎｇは、ＩＣＭＰ（Internet Control Message Protocol）のｅｃｈｏコマンドを発行することで、宛先ＩＰアドレスの装置（本例では仮想マシン）の存在を確認する（疎通確認を行う）要求である。
【００４７】
以下では、仮想マシンの利用環境をユーザに提供する情報処理システムを具体的に例示し、仮想マシン管理装置１の機能を更に詳細に説明する。
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムの例を示す図である。第２の実施の形態の情報処理システムは、実行サーバ１００，２００，３００，４００および管理サーバ５００を含む。実行サーバ１００，２００，３００，４００および管理サーバ５００は、ネットワーク１０に接続されている。ネットワーク１０は、例えば、ＬＡＮ（Local Area Network）である。ネットワーク１０は、ネットワーク２０に接続されている。ネットワーク２０は、ＬＡＮでもよいし、ＷＡＮ（Wide Area Network）やインターネットなどでもよい。ネットワーク２０には、クライアント６００，７００，・・・が接続されている。
【００４８】
実行サーバ１００，２００，３００，４００は、仮想マシンの実行に用いられるサーバコンピュータ（物理マシン）である。実行サーバ１００，２００，３００上の仮想マシンは、Ｗｅｂサーバとして機能し、テナントの業務を支援する所定のＷｅｂサービスを提供する。テナントに属する複数のユーザは、クライアント６００，７００，・・・（例えば、クライアント６００，７００，・・・上のＷｅｂブラウザの機能）を用いて、当該Ｗｅｂサービスを利用する。
【００４９】
実行サーバ１００は、テナントが利用する実行サーバ１００，２００，３００上の仮想マシンの運用管理を行う管理用の仮想マシンも実行する。
また、実行サーバ４００は、負荷分散機能をもつ仮想マシンを実行する。負荷分散機能をもつ仮想マシンは、各仮想マシンのＷｅｂサーバに対するリクエストを、クライアント６００，７００，・・・から受信し、所定の負荷分散ルールに従って、各仮想マシンにリクエストを振り分ける。
【００５０】
管理サーバ５００は、実行サーバ１００，２００，３００，４００上への新たな仮想マシンの起動や停止などを制御するサーバコンピュータである。
クライアント６００，７００，・・・は、複数のユーザによる操作を受け付けるクライアントコンピュータである。複数のユーザは、クライアント６００，７００，・・・を用いて、実行サーバ１００，２００，３００上の仮想マシンが提供するＷｅｂサービスを利用する。
【００５１】
第２の実施の形態の情報処理システムでは、実行サーバ１００，２００，３００，４００および管理サーバ５００などの仮想マシン実行用のハードウェアは、仮想マシンの利用環境を提供するサービス事業者によって用意される。このため、テナントは、これらのハードウェアを自身で所有しなくてよい。このように、自身でハードウェアを所有せずに、ネットワークを介して、仮想マシン上のソフトウェアを利用するコンピュータの利用形態は、クラウドコンピューティングと呼ばれることがある。クラウドコンピューティングの環境を提供するサービス（クラウドサービスと称することがある）を実現するソフトウェア基盤の一例として、ＯＰＥＮＳＴＡＣＫ（登録商標）が挙げられる。
【００５２】
ここで、クライアント６００，７００，・・・は、アクセス先の仮想マシンが何れの実行サーバで動作しているかを把握していない。また、実行サーバ１００，２００，３００，４００上のユーザが利用する各仮想マシンも、自仮想マシンや他の仮想マシンが何れの物理マシン上で動作しているかを把握していない。
【００５３】
なお、実行サーバ１００は、第１の実施の形態の仮想マシン管理装置１の一例である。実行サーバ１００，２００，３００は、第１の実施の形態の物理マシン２，３の一例である。実行サーバ４００は、第１の実施の形態の負荷分散装置４の一例である。
【００５４】
図３は、第２の実施の形態の実行サーバのハードウェア例を示す図である。実行サーバ１００は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。各ハードウェアは実行サーバ１００のバスに接続されている。実行サーバ２００，３００，４００、管理サーバ５００およびクライアント６００，７００も実行サーバ１００と同様のハードウェアを用いて実現できる。
【００５５】
プロセッサ１０１は、実行サーバ１００の情報処理を制御するハードウェアである。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００５６】
ＲＡＭ１０２は、実行サーバ１００の主記憶装置である。ＲＡＭ１０２は、プロセッサ１０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０２は、プロセッサ１０１による処理に用いる各種データを記憶する。
【００５７】
ＨＤＤ１０３は、実行サーバ１００の補助記憶装置である。ＨＤＤ１０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、ＯＳのプログラム、アプリケーションプログラム、および各種データを記憶する。実行サーバ１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００５８】
画像信号処理部１０４は、プロセッサ１０１からの命令に従って、実行サーバ１００に接続されたディスプレイ１１に画像を出力する。ディスプレイ１１として、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００５９】
入力信号処理部１０５は、実行サーバ１００に接続された入力デバイス１２から入力信号を取得し、プロセッサ１０１に出力する。入力デバイス１２として、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００６０】
媒体リーダ１０６は、記録媒体１３に記録されたプログラムやデータを読み取る装置である。記録媒体１３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体１３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ１０６は、例えば、プロセッサ１０１からの命令に従って、記録媒体１３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００６１】
通信インタフェース１０７は、ネットワーク１０を介して他の装置と通信を行うハードウェアである。通信インタフェース１０７は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
【００６２】
図４は、ハイパーバイザの例を示す図である。実行サーバ１００は、ハイパーバイザＶ１を実行する。ハイパーバイザＶ１は、実行サーバ１００のハードウェアリソースＲ１を、仮想マシン１１０，１２０，１３０に割り振ることで、実行サーバ１００上に、仮想マシン１１０，１２０，１３０を動作させる。ハードウェアリソースＲ１は、プロセッサ１０１、ＲＡＭ１０２、ＨＤＤ１０３および通信インタフェース１０７などのハードウェアのリソースを含む。仮想マシン１１０，１２０，１３０は、ハードウェアリソースＲ１を用いて動作する仮想的なコンピュータである。なお、実行サーバ２００，３００，４００も同様に、ハイパーバイザを実行する。
【００６３】
図５は、仮想マシンの例を示す図である。実行サーバ１００は、仮想マシン１１０，１２０，１３０および仮想スイッチ１４０を有する。
仮想マシン１１０は、管理用の仮想マシンである。仮想マシン１１０は、仮想マシンの運用管理のための機能をテナントに提供する。仮想マシン１２０は、ＷｅｂサーバＡ１を実行する。仮想マシン１３０は、ＷｅｂサーバＡ２を実行する。仮想スイッチ１４０は、仮想マシン１１０，１２０，１３０およびネットワーク１０と接続され、仮想マシン１１０，１２０，１３０と他の仮想マシンとの間の通信を中継する仮想的なスイッチである。
【００６４】
実行サーバ２００は、仮想マシン２１０，２２０および仮想スイッチ２３０を有する。
仮想マシン２１０は、ＷｅｂサーバＡ３を実行する。仮想マシン２２０は、ＷｅｂサーバＢ１を実行する。仮想スイッチ２３０は、仮想マシン２１０，２２０およびネットワーク１０と接続され、仮想マシン２１０，２２０と他の仮想マシンとの間の通信を中継する仮想的なスイッチである。
【００６５】
実行サーバ３００は、仮想マシン３１０，３２０および仮想スイッチ３３０を有する。
仮想マシン３１０は、ＷｅｂサーバＡ４を実行する。仮想マシン３２０は、ＷｅｂサーバＢ２を実行する。仮想スイッチ３３０は、仮想マシン３１０，３２０およびネットワーク１０と接続され、仮想マシン３１０，３２０と他の仮想マシンとの間の通信を中継する仮想的なスイッチである。
【００６６】
ここで、ＷｅｂサーバＡ１，Ａ２，Ａ３，Ａ４は、テナントの業務を支援するＷｅｂサービスＡを提供するＷｅｂサーバである。仮想マシン１２０，１３０，２１０，３１０は、ＷｅｂサービスＡを提供する共通の機能をもつことになる。また、ＷｅｂサーバＢ１，Ｂ２は、テナントの業務を支援するＷｅｂサービスＢを提供するＷｅｂサーバである。仮想マシン２２０および仮想マシン３２０は、ＷｅｂサービスＢを提供する共通の機能をもつことになる。
【００６７】
このように、実行サーバ１００，２００，３００それぞれは、２以上の仮想マシンを実行する。実行サーバ１００，２００，３００それぞれは、図示したよりも多くの数の仮想マシンを実行してもよい。
【００６８】
実行サーバ４００は、仮想マシン４１０および仮想スイッチ４２０を有する。
仮想マシン４１０は、ＬＢ４１１を実行する。ＬＢ４１１は、クライアント６００，７００，・・・からのリクエストを受信し、受信したリクエストを所定の負荷分散ルールに従って、何れかの仮想マシンに振り分ける。負荷分散ルールとしては、例えば、ラウンドロビン、最小コネクション数（確立されているＴＣＰ（Transmission Control Protocol）コネクションが最小のＷｅｂサーバに振り分け）、および、最小応答時間（応答時間が最小のＷｅｂサーバに振り分け）などが考えられる。
【００６９】
ＬＢ４１１は、ＷｅｂサービスＡに対するリクエストを、仮想マシン１２０，１３０，２１０，３１０に振り分ける。ＬＢ４１１は、ＷｅｂサービスＢに対するリクエストを、仮想マシン２２０，３２０に振り分ける。ＬＢ４１１は、あるクライアントからのリクエストを、ある仮想マシンに振り分けると、当該クライアントのリクエストを、その後も継続して（例えば、ＨＴＴＰ（HyperText Transfer Protocol）のセッションが切れるまで）該当の仮想マシンに振り分ける。
【００７０】
仮想スイッチ４２０は、仮想マシン４１０およびネットワーク１０と接続され、仮想マシン４１０と他の仮想マシンとの間の通信を中継する仮想的なスイッチである。
仮想マシン１１０，１２０，１３０，２１０，２２０，３１０，３２０，４１０は、ある１つのテナントによって利用されている。該当のテナントに所属する複数のユーザは、クライアント６００，７００，・・・を用いて、仮想マシン１１０，１２０，１３０，２１０，２２０，３１０，３２０，４１０が提供するＷｅｂサービスＡ，Ｂを利用する。
【００７１】
第２の実施の形態の情報処理システムの通信プロトコルにはＩＰが用いられる。ＩＰのＰＤＵ（Protocol Data Unit）は、パケットと呼ばれる。また、仮想マシンはＶＭ（Virtual Machine）と呼ばれることもある。更に、仮想スイッチ１４０，２３０，３３０，４２０を実現するソフトウェアの一例として、ＯｐｅｎｖＳｗｉｔｃｈが挙げられる。
【００７２】
第２の実施の形態の情報処理システムでは、ＬＢ４１１により仮想マシンに対する負荷を分散することで、各仮想マシンが過負荷にならないようにしている。ただし、使用状況によっては、実行サーバ１００，２００，３００の負荷が高まって、何れかの仮想マシンの処理性能が低下することがある。そこで、管理用の仮想マシン１１０は、仮想マシンの性能の低下を抑える機能を提供する。
【００７３】
図６は、管理用の仮想マシンの機能例を示す図である。仮想マシン１１０は、記憶部１１１、ミラーパケット受信部１１２、品質計測部１１３、ＦＷ（FireWall）制御部１１４、パケット宛先変更部１１５、パケット通信部１１６および仮想マシン追加指示部１１７を有する。
【００７４】
記憶部１１１は、仮想マシン１１０に割り当てられたＲＡＭ１０２やＨＤＤ１０３の記憶領域を用いて実現される。ミラーパケット受信部１１２、品質計測部１１３、ＦＷ制御部１１４、パケット宛先変更部１１５、パケット通信部１１６および仮想マシン追加指示部１１７は、仮想マシン１１０に割り当てられたＲＡＭ１０２の記憶領域に格納されたプログラムを、仮想マシン１１０に割り当てられたプロセッサ１０１の演算リソースを用いて実行することで実現される。
【００７５】
記憶部１１１は、品質計測部１１３による通信品質の計測およびパケットの転送制御に用いられる各種の情報を記憶する。具体的には、記憶部１１１は、ＶＭテーブル、アクセス履歴テーブル、ＶＭ収容サーバ管理テーブル、ＡＲＰ結果テーブルおよび品質計測テーブルを記憶する。
【００７６】
ＶＭテーブルは、システム内に存在する仮想マシンのＩＰアドレスのリストである。アクセス履歴テーブルは、仮想マシンにアクセスしたクライアントのＩＰアドレスの履歴の情報である。ＶＭ収容サーバ管理テーブルは、仮想マシンが配置された物理マシンの区別に用いられる情報である。ＡＲＰ結果テーブルは、仮想マシンによるＡＲＰ応答の内容の一覧である。品質計測テーブルは、仮想マシンに関する通信品質の計測結果の記録である。
【００７７】
ミラーパケット受信部１１２は、仮想スイッチ１４０，２３０，３３０から仮想マシン１１０に送信されるミラーパケットを受信する。ミラーパケット受信部１１２は、受信したミラーパケットを品質計測部１１３に渡す。ここで、ミラーパケットとは、仮想スイッチ１４０，２３０，３３０の所定のポートを経由するパケットの複製（複製パケット）である。当該ミラーパケットは、仮想マシン１２０，１３０，２１０，２２０，３１０，３２０により送受信されるパケットの複製を含む。スイッチ（物理スイッチや仮想スイッチ）により複製されたミラーパケットを収集する技術は、パケットキャプチャと呼ばれることもある。
【００７８】
品質計測部１１３は、ミラーパケットに含まれる各仮想マシンへのＡＲＰ応答を参照して、各仮想マシンが配置されている物理マシンの相違を推定する（具体的な方法は後述される）。品質計測部１１３は、推定結果を、ＶＭ収容サーバ管理テーブルに登録する。
【００７９】
品質計測部１１３は、ミラーパケットを参照して、仮想マシン１２０，１３０，２１０，２２０，３１０，３２０によるクライアント６００，７００，・・・に対する応答時間や損失パケット数を監視する。品質計測部１１３は、応答時間や損失パケット数の監視に応じて、仮想マシン１２０，１３０，２１０，２２０，３１０，３２０の通信品質の変化を検出する。品質計測部１１３は、通信品質の低下の兆候を検出すると、ＦＷ制御部１１４およびパケット宛先変更部１１５に、パケット転送を指示する。
【００８０】
このとき、品質計測部１１３は、ＶＭ収容サーバ管理テーブルに基づいて、転送元の仮想マシンが動作する物理マシンと、転送先の仮想マシンが動作する物理マシンとが異なるように、転送先の仮想マシンを決定する。そして、品質計測部１１３は、パケット転送の制御を指示する際に、転送対象とするパケットに含まれる宛先ＩＰアドレスおよび送信元ＩＰアドレスの組、および、新たな転送先の宛先ＩＰアドレスをパケット宛先変更部１１５に通知する。また、品質計測部１１３は、転送対象のパケットに対応するミラーパケットをパケット宛先変更部１１５に提供する。
【００８１】
また、品質計測部１１３は、あるサービスについて、パケットの転送先の仮想マシンがない場合、該当のサービスを提供する新規の仮想マシンの追加を仮想マシン追加指示部１１７に通知する。品質計測部１１３は、パケットの転送先として選択可能な新規の仮想マシンが追加された後に、上記のパケット転送の指示を行う。
【００８２】
ＦＷ制御部１１４は、仮想マシン１２０，１３０，２１０，２２０，３１０，３２０のファイアウォールの設定を制御する。ＦＷ制御部１１４は、品質計測部１１３の指示に応じて、転送対象となるパケットの元の宛先の仮想マシンに、所定のクライアントのＩＰアドレスを送信元とするパケットを受信しても破棄するフィルタ設定をファイアウォールに追加するよう指示する。例えば、仮想マシン上のＯＳとして、Ｌｉｎｕｘ（登録商標）を用いる場合、ｉｐｔａｂｌｅｓと呼ばれるファイアウォール機能を利用することが考えられる。その場合、ＦＷ制御部１１４は、上記のフィルタ設定をｉｐｔａｂｌｅｓに追加するように該当の仮想マシンに指示する。
【００８３】
パケット宛先変更部１１５は、品質計測部１１３から取得したミラーパケットの宛先ＩＰアドレスを、転送先のＩＰアドレスに変更する。パケット宛先変更部１１５は、宛先変更後のミラーパケットを、パケット通信部１１６に提供する。
【００８４】
パケット通信部１１６は、パケットの送信やミラーパケット以外のパケットの受信を行う。例えば、パケット通信部１１６は、ＡＲＰ要求のパケットの送信や、ＡＲＰ応答のパケットの受信を行う。また、パケット通信部１１６は、パケット宛先変更部１１５から取得した宛先変更後のミラーパケットを、仮想スイッチ１４０を介して、ネットワーク１０に送信する。
【００８５】
仮想マシン追加指示部１１７は、所定のサービスについて新規の仮想マシンを追加する旨の指示を、品質計測部１１３から取得する。仮想マシン追加指示部１１７は、当該指示に応じて、該当のサービスを提供する新規の仮想マシンの起動を、管理サーバ５００に、依頼する。仮想マシン追加指示部１１７は、新規の仮想マシンの起動完了の通知を管理サーバ５００から取得すると、その旨を品質計測部１１３に通知する。
【００８６】
管理サーバ５００は、仮想マシン追加制御部５１０を有する。仮想マシン追加制御部５１０は、管理サーバ５００が備えるＲＡＭに記憶されたプログラムを、管理サーバ５００が備えるプロセッサにより実行することで実現される。
【００８７】
仮想マシン追加制御部５１０は、新規の仮想マシンの起動の依頼を仮想マシン追加指示部１１７から受け付けると、依頼されたサービスを提供する仮想マシンを何れかの実行サーバにより起動させる。仮想マシン追加制御部５１０は、起動が完了すると、新規の仮想マシンの起動完了の通知を、実行サーバ１００に送信する。仮想マシン追加制御部５１０は、新たな仮想マシンを起動する場合、特定の実行サーバに仮想マシンが偏らないように、実行サーバを順番に選択して、仮想マシンを起動させる。仮想マシン追加制御部５１０は、ＯＰＥＮＳＴＡＣＫにおけるＮｏｖａと呼ばれるコンポーネントにより実現されてもよい。
【００８８】
図７は、パケットキャプチャの例を示す図である。仮想スイッチ１４０は、仮想マシン１２０，１３０と仮想スイッチ１４０との間の区間を経由して送受信されるパケットを複製し、複製されたパケット（ミラーパケット）を仮想マシン１１０に送信する。また、仮想スイッチ２３０は、仮想マシン２１０，２２０と仮想スイッチ２３０との間の区間を経由して送受信されるパケットを複製し、複製されたパケットを仮想マシン１１０に送信する。更に、仮想スイッチ３３０は、仮想マシン３１０，３２０と仮想スイッチ３３０との間の区間を経由して送受信されるパケットを複製し、複製されたパケットを仮想マシン１１０に送信する。仮想スイッチ１４０，２３０，３３０は、ミラーパケットを仮想マシン１１０に転送するための論理的な通信経路を、Ｗｅｂサービスに用いられる通信経路とは別個に設けることができる。なお、何れの場合も、複製元であるオリジナルのパケットは、元の宛先に到達することになる。
【００８９】
そして、仮想マシン１１０は、仮想スイッチ１４０，２３０，３３０により送信されたミラーパケットを受信し、記憶部１１１に格納する。
第２の実施の形態の情報処理システムでは、テナントが利用する仮想マシン１１０において、パケットキャプチャを行える。テナントは、キャプチャされたミラーパケットを解析することで、各仮想マシンによる通信品質を監視できる。上記のパケットキャプチャは、例えば、ＴａａＳ（Tap as a Service）と呼ばれる技術により実現される。また、仮想スイッチ１４０，２３０，３３０は、上記のミラーパケットの送信のための設定情報を予め保持する。
【００９０】
仮想マシン１１０は、ミラーパケットを解析することで、ある仮想マシンと別の仮想マシンとが、同じ実行サーバ上で動作しているのか、それとも別の実行サーバ上で動作しているのかを判定する。具体的には、仮想マシン１１０は、ミラーパケットのうち、各仮想マシンにより定期的に送受信されるＡＲＰ要求およびＡＲＰ応答に着目する。
【００９１】
図８は、ＡＲＰ要求／応答の例（その１）を示す図である。仮想スイッチ１４０，２３０，３３０を実現するソフトウェアとして、ＯｐｅｎｖＳｗｉｔｃｈを想定する。また、各仮想マシンのＩＰアドレスは次の通りである（何れもサブネットマスクを“／２４”とする）。
【００９２】
仮想マシン１１０のＩＰアドレスは、“１９２．１６８．１００．２０１”である。仮想マシン１２０のＩＰアドレスは、“１９２．１６８．１００．１０１”である。仮想マシン１３０のＩＰアドレスは、“１９２．１６８．１００．１０２”である。仮想マシン２１０のＩＰアドレスは、“１９２．１６８．１００．１０３”である。仮想マシン２２０のＩＰアドレスは、“１９２．１６８．１００．１１１”である。仮想マシン３１０のＩＰアドレスは、“１９２．１６８．１００．１０４”である。仮想マシン３２０のＩＰアドレスは、“１９２．１６８．１００．１１２”である。
【００９３】
仮想スイッチ１４０は、ＡＲＰ要求に対して、次の制御を行う。
（１）仮想スイッチ１４０は、仮想スイッチ１４０に直接接続されている仮想マシンに対するＡＲＰ要求を受信すると、宛先の仮想マシンに対してＡＲＰ要求を転送する（仮想スイッチ１４０に接続された他の仮想マシンにブロードキャストしてもよい）。仮想スイッチ１４０は、ＡＲＰ要求の宛先の仮想マシンからＡＲＰ要求に対するＡＲＰ応答を受信すると、ＡＲＰ応答を要求元の仮想マシンに転送する。
【００９４】
（２）仮想スイッチ１４０は、仮想スイッチ１４０に直接接続されていない仮想マシンに対するＡＲＰ要求を受信すると、当該仮想マシンにＡＲＰ要求を転送せずに、仮想マシン１１０が接続されているポートのＭＡＣアドレスをＡＲＰ応答として返す。このときのＡＲＰ応答の送信元ＩＰアドレスは、当該ＡＲＰ応答に対応するＡＲＰ要求の宛先ＩＰアドレスとなる。したがって、仮想マシン１１０は、仮想スイッチ１４０により生成されたＡＲＰ応答を受信すると、当該ＡＲＰ応答を、自身が送信したＡＲＰ要求の宛先の仮想マシンから応答されたものであると認識する。
【００９５】
仮想スイッチ２３０，３３０も、ＡＲＰ要求に対して仮想スイッチ１４０と同様の制御を行う。
一例として、仮想マシン１１０が、仮想マシン１２０のＩＰアドレスを宛先とするＡＲＰ要求を送信した場合を考える。仮想スイッチ１４０は、仮想マシン１１０により送信されたＡＲＰ要求を受信すると、仮想マシン１２０にＡＲＰ要求を転送する。仮想マシン１２０は、ＡＲＰ要求を受信する。仮想マシン１２０は、ＡＲＰ要求に対して、自身のＭＡＣアドレス“ＭＡＣ１”を含むＡＲＰ応答を返す。仮想スイッチ１４０は、ＡＲＰ応答を仮想マシン１１０に転送する。
【００９６】
次に、仮想マシン１１０が、仮想マシン１３０のＩＰアドレスを宛先とするＡＲＰ要求を送信した場合を考える。仮想スイッチ１４０は、仮想マシン１１０により送信されたＡＲＰ要求を受信すると、仮想マシン１３０にＡＲＰ要求を転送する。仮想マシン１３０は、ＡＲＰ要求を受信する。仮想マシン１３０は、ＡＲＰ要求に対して、自身のＭＡＣアドレス“ＭＡＣ２”を含むＡＲＰ応答を返す。仮想スイッチ１４０は、ＡＲＰ応答を仮想マシン１１０に転送する。
【００９７】
次に、仮想マシン１１０が、仮想マシン２１０のＩＰアドレスを宛先とするＡＲＰ要求を送信した場合を考える。仮想スイッチ１４０は、仮想マシン１１０により送信されたＡＲＰ要求を受信する。仮想スイッチ１４０は、ＡＲＰ要求の宛先が自身に直接接続されていないことを確認する。すると、仮想スイッチ１４０は、ＡＲＰ要求を転送せずに、仮想マシン１１０が接続された仮想スイッチ１４０のポートのＭＡＣアドレス“ＭＡＣ３”を含むＡＲＰ応答を仮想マシン１１０に返す。ここで、仮想スイッチ１４０に直接接続されていない仮想マシンは、実行サーバ２００上の仮想スイッチ２３０または実行サーバ３００上の仮想スイッチ３３０に直接接続されていることになる。したがって、仮想スイッチ１４０に直接接続されていない仮想マシンは、実行サーバ１００とは異なる実行サーバ上で動作する仮想マシンである。
【００９８】
仮想マシン１１０が、仮想マシン２２０，３１０，３２０のＩＰアドレスを宛先とするＡＲＰ要求を送信した場合も同様に、仮想スイッチ１４０は、ＭＡＣアドレス“ＭＡＣ３”を含むＡＲＰ応答を仮想マシン１１０に返す。
【００９９】
仮想スイッチ１４０による以上の制御から、仮想マシン１１０は、各仮想マシンを２つのグループに分類する。
すなわち、仮想マシン１１０は、ＡＲＰ要求に対して他の仮想マシンと重複しないＭＡＣアドレスを応答した仮想マシンの集合を、第１のグループとする。図８の例の場合、第１のグループには、仮想マシン１２０，１３０が属する。
【０１００】
また、仮想マシン１１０は、ＡＲＰ要求に対して他の仮想マシンと重複するＭＡＣアドレスを応答した仮想マシン（実際には仮想スイッチ１４０が応答している）の集合を、第２のグループとする。図８の例では、第２のグループには、仮想マシン２１０，２２０，３１０，３２０が属する。
【０１０１】
そして、仮想マシン１１０は、第１のグループに属する仮想マシンと、第２のグループに属する仮想マシンとは、異なる実行サーバ上に存在すると推定する。なぜなら、上記のように、仮想スイッチ１４０は、異なる実行サーバ上にある複数の仮想マシンを宛先とするＡＲＰ要求に対しては、同じＭＡＣアドレス“ＭＡＣ３”を応答するからである。
【０１０２】
また、仮想マシン１１０は、第１のグループに属する仮想マシンが複数のとき、これら複数の仮想マシンが同じ実行サーバ上にあると推定する。上述のように、異なる実行サーバ上にある仮想マシンであれば、ＭＡＣアドレス“ＭＡＣ３”が応答されるはずだからである。
【０１０３】
なお、全ての仮想マシンから応答されたＭＡＣアドレスが全て別個の場合も考えられる。この場合、仮想マシン１１０は、各仮想マシンのうちの何れが別の実行サーバ上にあるかを区別できないので、全ての仮想マシンが同じ実行サーバ上にあるとみなす。
【０１０４】
こうして、仮想マシン１１０は、第１のグループに属する仮想マシンと、第２のグループに属する仮想マシンとが別個の実行サーバ上で動作していることを切り分けることができる。仮想マシン１１０は、第２のグループに属する複数の仮想マシンについて、上記の分類を繰り返し行える。具体的には次の通りである。
【０１０５】
図９は、ＡＲＰ要求／応答の例（その２）を示す図である。仮想マシン２１０が、仮想マシン２２０のＩＰアドレスを宛先とするＡＲＰ要求を送信した場合を考える。仮想スイッチ２３０は、仮想マシン２１０により送信されたＡＲＰ要求を受信すると、仮想マシン２２０にＡＲＰ要求を転送する。仮想マシン２２０は、ＡＲＰ要求を受信する。仮想マシン２２０は、ＡＲＰ要求に対して、自身のＭＡＣアドレス“ＭＡＣ４”を含むＡＲＰ応答を返す。仮想スイッチ２３０は、ＡＲＰ応答を仮想マシン２１０に転送する。
【０１０６】
次に、仮想マシン２１０が、仮想マシン３１０のＩＰアドレスを宛先とするＡＲＰ要求を送信した場合を考える。仮想スイッチ２３０は、仮想マシン２１０により送信されたＡＲＰ要求を受信する。仮想スイッチ２３０は、ＡＲＰ要求の宛先が自身に直接接続されていないことを確認する。すると、仮想スイッチ２３０は、ＡＲＰ要求を転送せずに、仮想マシン２１０が接続された仮想スイッチ２３０のポートのＭＡＣアドレス“ＭＡＣ５”を含むＡＲＰ応答を仮想マシン２１０に返す。
【０１０７】
仮想マシン２１０が、仮想マシン１１０，１２０，１３０，３１０，３２０のＩＰアドレスを宛先とするＡＲＰ要求を送信した場合も同様に、仮想スイッチ２３０は、ＭＡＣアドレス“ＭＡＣ５”を含むＡＲＰ応答を仮想マシン２１０に返す。
【０１０８】
仮想マシン１１０は、キャプチャされたミラーパケットを参照することで、仮想マシン２１０が受信したＡＲＰ応答の内容を把握する。
そして、仮想マシン１１０は、このＡＲＰ応答の内容を基に、図８において第２のグループに分類した仮想マシン２１０，２２０，３１０，３２０を更に２つのグループに分類する。
【０１０９】
すなわち、仮想マシン１１０は、ＡＲＰ要求の送信元の仮想マシン２１０と、ＡＲＰ要求に対して他の仮想マシンと重複しないＭＡＣアドレスを応答した仮想マシン２２０の集合を、第３のグループとする。この場合、仮想マシン２１０，２２０は、同じ実行サーバ上にあると推定される。
【０１１０】
また、仮想マシン１１０は、ＡＲＰ要求に対して他の仮想マシンと重複するＭＡＣアドレスを応答した仮想マシン３１０，３２０（実際には仮想スイッチ２３０が応答している）の集合を、第４のグループとする。
【０１１１】
こうして、仮想マシン１１０は、第３のグループに属する仮想マシンと、第４のグループに属する仮想マシンとが別個の実行サーバ上で動作していることを更に切り分けることができる。
【０１１２】
図１０は、ＶＭテーブルの例を示す図である。ＶＭテーブル１４１は、記憶部１１１に予め格納される。ＶＭテーブル１４１は、ＶＭのＩＰアドレスおよび監視対象フラグの項目を含む。
【０１１３】
ＶＭのＩＰアドレスの項目には、仮想マシンのＩＰアドレスが登録される。監視対象フラグの項目には、通信品質の監視対象とするか否かを示すフラグが登録される。フラグ“ＴＲＵＥ”は、監視対象とすることを示す。フラグ“ＦＡＬＳＥ”は、監視対象としないことを示す。
【０１１４】
例えば、ＶＭテーブル１４１には、ＶＭのＩＰアドレスが“１９２．１６８．１００．１０１”、監視対象フラグが“ＴＲＵＥ”という情報が登録されている。これは、ＩＰアドレス“１９２．１６８．１００．１０１”に対応する仮想マシン１２０を通信品質の監視対象とすることを示す。
【０１１５】
また、例えば、ＶＭテーブル１４１には、ＶＭのＩＰアドレスが“１９２．１６８．１００．１１１”、監視対象フラグが“ＦＡＬＳＥ”という情報が登録されている。これは、ＩＰアドレス“１９２．１６８．１００．１１１”に対応する仮想マシン２２０を通信品質の監視対象としないことを示す。
【０１１６】
ＶＭテーブル１４１には、他の仮想マシンについても同様に、監視対象フラグが登録されている。
ここで、第２の実施の形態の例では、ＷｅｂサービスＡを提供する仮想マシン１１０，１２０，２１０，３１０が監視対象としてユーザにより予め選択されており、ＷｅｂサービスＢを提供する仮想マシン２２０，３２０は監視対象として選択されていない。ＶＭテーブル１４１において、各仮想マシンが提供するＷｅｂサービスの識別情報を登録する項目を設けてもよい。
【０１１７】
図１１は、アクセス履歴テーブルの例を示す図である。アクセス履歴テーブル１４２は、品質計測部１１３により作成され、記憶部１１１に格納される。アクセス履歴テーブル１４２は、ＶＭのＩＰアドレスおよびクライアントのＩＰアドレスの項目を含む。
【０１１８】
ＶＭのＩＰアドレスの項目には、通信品質の監視対象となっている仮想マシンのＩＰアドレスが登録される。クライアントのＩＰアドレスの項目には、該当の仮想マシンに対して過去にアクセスしたクライアントのＩＰアドレスが登録される。
【０１１９】
例えば、アクセス履歴テーブル１４２には、ＶＭのＩＰアドレスが“１９２．１６８．１００．１０１”、クライアントのＩＰアドレスが“１１１．２００．１００．１１，１１１．２００．１００．１３，１１１．２００．１００．２５，・・・”という情報が登録されている。これは、ＩＰアドレス“１９２．１６８．１００．１０１”に対応する仮想マシン１２０に対して、ＩＰアドレス“１１１．２００．１００．１１，１１１．２００．１００．１３，１１１．２００．１００．２５，・・・”に対応する複数のクライアントからのアクセスがあったことを示す。
【０１２０】
アクセス履歴テーブル１４２には、ＶＭテーブル１４１で監視対象フラグが“ＴＲＵＥ”に設定されている各仮想マシンのＩＰアドレスに対応付けて、クライアントのＩＰアドレスが登録される。
【０１２１】
図１２は、ＶＭ収容サーバ管理テーブルの例を示す図である。ＶＭ収容サーバ管理テーブル１４３は、品質計測部１１３により作成され、記憶部１１１に格納される。ＶＭ収容サーバ管理テーブル１４３は、ＶＭのＩＰアドレス、収容サーバ対応情報および収容サーバ識別番号の項目を含む。
【０１２２】
ＶＭのＩＰアドレスの項目には、仮想マシンのＩＰアドレスが登録される。収容サーバ対応情報の項目には、該当の仮想マシンのＩＰアドレスに対してＡＲＰ応答されたＭＡＣアドレスが登録される。収容サーバ識別番号の項目には、該当の仮想マシンを動作させる実行サーバを区別するための識別番号が登録される。収容サーバ識別番号は、収容サーバ対応情報に対して一意に定められる番号である。品質計測部１１３は、例えば、図８，図９の分類によって、グループが確定された順に、“１”，“２”，“３”，・・・と昇順に、収容サーバ識別番号を付与する。
【０１２３】
例えば、ＶＭ収容サーバ管理テーブル１４３には、ＶＭのＩＰアドレスが“１９２．１６８．１００．１０１”、収容サーバ対応情報が“ｌｏｃａｌ”、収容サーバ識別番号が“１”という情報が登録されている。これは、ＩＰアドレス“１９２．１６８．１００．１０１”に対応する仮想マシン１２０が、収容サーバ対応情報“ｌｏｃａｌ”で識別される実行サーバ上で動作しており、当該実行サーバが収容サーバ識別番号“１”で識別されることを示す。なお、収容サーバ対応情報“ｌｏｃａｌ”は、１回目の分類によって、収容サーバ対応情報が確定されたことを示す。
【０１２４】
また、ＶＭ収容サーバ管理テーブル１４３には、ＶＭのＩＰアドレスが“１９２．１６８．１００．１０２”、収容サーバ対応情報が“ｌｏｃａｌ”、収容サーバ識別番号が“１”という情報が登録されている。これは、ＩＰアドレス“１９２．１６８．１００．１０２”に対応する仮想マシン１３０が、収容サーバ対応情報“ｌｏｃａｌ”で識別される実行サーバ上で動作しており、当該実行サーバが収容サーバ識別番号“１”で識別されることを示す。
【０１２５】
ここで、ＶＭ収容サーバ管理テーブル１４３によれば、仮想マシン１２０，１３０は、品質計測部１１３により、同じ実行サーバ上で動作しているとみなされていることになる。
【０１２６】
また、ＶＭ収容サーバ管理テーブル１４３には、ＶＭのＩＰアドレスが“１９２．１６８．１００．１０３”、収容サーバ対応情報が“ＭＡＣ３”、収容サーバ識別番号が“２”という情報が登録されている。これは、ＩＰアドレス“１９２．１６８．１００．１０３”に対応する仮想マシン２１０が、収容サーバ対応情報“ＭＡＣ３”で識別される実行サーバ上で動作しており、当該実行サーバが収容サーバ識別番号“２”で識別されることを示す。
【０１２７】
また、ＶＭ収容サーバ管理テーブル１４３には、ＶＭのＩＰアドレスが“１９２．１６８．１００．１０４”、収容サーバ対応情報が“ＭＡＣ５”、収容サーバ識別番号が“３”という情報が登録されている。これは、ＩＰアドレス“１９２．１６８．１００．１０４”に対応する仮想マシン３１０が、収容サーバ対応情報“ＭＡＣ５”で識別される実行サーバ上で動作しており、当該実行サーバが収容サーバ識別番号“３”で識別されることを示す。
【０１２８】
ＶＭ収容サーバ管理テーブル１４３には、ＶＭテーブル１４１において、監視対象フラグ“ＴＲＵＥ”であるＩＰアドレスに関するレコードが登録される。
ここで、収容サーバ対応情報および収容サーバ識別番号は、ある仮想マシンと別の仮想マシンとを動作させる実行サーバ（収容サーバ）が同じか、または、異なるかを区別できさえすればよい。すなわち、収容サーバ対応情報および収容サーバ識別番号は、該当の実行サーバが具体的にどれであるかを識別可能な情報でなくてもよい。
【０１２９】
更に、第２の実施の形態の例では、システム上の仮想マシンのうち、ＷｅｂサービスＡを提供する仮想マシン１１０，１２０，２１０，３１０のみが監視対象として選択されている。このため、ＶＭ収容サーバ管理テーブル１４３に登録されている情報は、何れも共通のＷｅｂサービスＡを提供する仮想マシンに関する情報となる。一方、複数のＷｅｂサービスに関する仮想マシン群を監視対象とする場合も考えられる。この場合、該当の仮想マシンが提供するＷｅｂサービスの識別情報を登録する項目を、ＶＭ収容サーバ管理テーブル１４３に設けてもよい。あるいは、品質計測部１１３は、ＶＭ収容サーバ管理テーブル１４３を、Ｗｅｂサービス毎に作成してもよい。該当の仮想マシンが提供するＷｅｂサービスを区別可能にするためである。
【０１３０】
図１３は、ＡＲＰ結果テーブルの例を示す図である。ＡＲＰ結果テーブル１４４は、品質計測部１１３によって作成され、記憶部１１１に格納される。ＡＲＰ結果テーブル１４４は、送信元ＩＰアドレス、宛先ＩＰアドレスおよび宛先ＭＡＣアドレスの項目を含む。
【０１３１】
送信元ＩＰアドレスの項目には、ＡＲＰ要求の送信元ＩＰアドレスが登録される。宛先ＩＰアドレスの項目には、ＡＲＰ要求の宛先ＩＰアドレスが登録される。宛先ＭＡＣアドレスの項目には、ＡＲＰ要求に対するＡＲＰ応答により応答されたＭＡＣアドレス（宛先ＩＰアドレスに対応するＭＡＣアドレス）が登録される。
【０１３２】
例えば、ＡＲＰ結果テーブル１４４には、送信元ＩＰアドレスが“１９２．１６８．１００．２０１”、宛先ＩＰアドレスが“１９２．１６８．１００．１０１”、宛先ＭＡＣアドレスが“ＭＡＣ１”という情報が登録されている。これは、送信元ＩＰアドレス“１９２．１６８．１００．２０１”、宛先ＩＰアドレス“１９２．１６８．１００．１０１”であるＡＲＰ要求に対して、ＭＡＣアドレス“ＭＡＣ１”が応答されたことを示す。
【０１３３】
ＡＲＰ結果テーブル１４４には、仮想マシン１１０，１２０，１３０，２１０，２２０，３１０，３２０により定期的に送信されるＡＲＰ要求とＡＲＰ要求に対するＡＲＰ応答の内容が登録される。
【０１３４】
図１４は、品質計測テーブルの例を示す図である。品質計測テーブル１４５は、品質計測部１１３によって作成され、記憶部１１１に格納される。品質計測テーブル１４５は、送信元ＩＰアドレス、宛先ＩＰアドレス、送信パケット数、受信パケット数、送信側損失パケット数、受信側損失パケット数、応答時間（最大）、応答時間（平均）および状態の項目を含む。
【０１３５】
送信元ＩＰアドレスの項目には、パケットの送信元ＩＰアドレスが登録される。宛先ＩＰアドレスの項目には、パケットの宛先ＩＰアドレスが登録される。送信パケット数の項目には、送信元から送信されたパケットの総数が登録される。受信パケット数の項目には、宛先から送信されたパケットの総数が登録される。送信側損失パケット数の項目には、送信元から送信されたパケットのうち、損失されたパケットの総数が登録される。受信側損失パケット数の項目には、宛先から送信されたパケットのうち、損失されたパケットの総数が登録される。応答時間（最大）の項目には、応答時間の最大値が登録される。応答時間（平均）の項目には、応答時間の平均値が登録される。応答時間の最大値および平均値の単位は秒である。状態の項目には、損失パケット数や応答時間に応じた現在の通信品質の評価結果が登録される。
【０１３６】
例えば、品質計測テーブル１４５には、送信元ＩＰアドレスが“１１１．２００．１００．１１”、宛先ＩＰアドレスが“１９２．１６８．１００．１０１”、送信パケット数が“１００００”、受信パケット数が“１５０００”、送信側損失パケット数が“１０００”、受信側損失パケット数が“２０００”、応答時間（最大）が“３”、応答時間（平均）が“２．５”、状態が“劣化”という情報が登録される。
【０１３７】
これは、送信元ＩＰアドレス“１１１．２００．１００．１１”に対応するクライアントから宛先ＩＰアドレス“１９２．１６８．１００．１０１”に対応する仮想マシン１２０へのパケットに基づく通信品質の計測結果を表すレコードである。具体的には、当該クライアントから仮想マシン１２０への要求パケットの総数が１００００であり、仮想マシン１２０から当該クライアントへの応答パケットの総数が１５０００であったことを示す。また、要求パケットについて損失パケットの総数が１０００であり、応答パケットについて損失パケットの総数が２０００であったことを示す。また、仮想マシン１２０から当該クライアントへの応答時間の最大値が３秒であり、応答時間の平均値が２．５秒であることを示す。更に、現在の通信品質の状態が劣化（あるいは、劣化の兆候あり）と判断されていることを示す。
【０１３８】
ここで、品質計測部１１３は、例えば、損失パケットの有無を、パケットのＩＰヘッダに含まれるシーケンス番号の欠落により検出する。品質計測部１１３は、検出した損失パケットの数をカウントすることで、送信側損失パケット数および受信側損失パケット数それぞれをカウントする。また、品質計測部１１３は、例えば、要求パケットを受信した時刻と当該要求パケットに対する応答パケットを受信した時刻との時間差を応答時間とする。
【０１３９】
状態の判定方法の一例として、品質計測部１１３は、送信側損失パケット数、受信側損失パケット数、応答時間の最大値および平均値のそれぞれに閾値を設定し、何れかの値が該当の項目に対する閾値を超えた場合に、状態を“劣化”と判断することが考えられる。品質計測部１１３は、何れの値も閾値を超えていない場合は、状態を“正常”と判断する。
【０１４０】
品質計測部１１３は、複製パケットに含まれる送信元ＩＰアドレスおよび宛先ＩＰアドレスの組毎にレコードを作成し、品質計測テーブル１４５に登録する。
図１５は、管理画面の表示例を示す図である。管理画面１５１は、通信品質の劣化が発生し、パケットの転送制御が開始された場合に、品質計測部１１３により生成され、クライアント６００，７００，・・・のうちの何れかのクライアントに出力される。クライアントは、管理画面１５１を、当該クライアントのディスプレイに表示させる。
【０１４１】
例えば、管理画面１５１は、品質劣化が発生したことを示すメッセージ、発生日時、品質劣化が発生した仮想マシンのＩＰアドレス、当該仮想マシンに対する切り替え先の仮想マシンのＩＰアドレス、および、切り替えにより影響を受けるクライアントのＩＰアドレスを含む。切り替えにより影響を受けるクライアントのＩＰアドレスは、転送対象となるパケットの送信元ＩＰアドレスに相当する。また、図１５では、ユーザに対するメッセージであるため、ユーザにとって理解し易いように、仮想マシンに相当する仮想的なコンピュータを「サーバ」と表記する例を示している。
【０１４２】
更に、品質計測部１１３により品質劣化の回復が検出されると、管理画面１５１には、品質劣化が回復したことを示すメッセージ、および、回復日時が、品質計測部１１３により追加される。
【０１４３】
次に、仮想マシン１１０による通信品質の監視に応じた運用管理の手順を説明する。
図１６は、監視の例を示すフローチャートである。以下、図１６に示す手順をステップ番号に沿って説明する。
【０１４４】
（Ｓ１１）品質計測部１１３は、ＶＭテーブル１４１を取得し、記憶部１１１に格納する。例えば、品質計測部１１３は、クライアント６００から、監視の開始の通知とともに、ＶＭテーブル１４１の入力を受け付けることで、ＶＭテーブル１４１を取得し、当該監視の処理を開始する。
【０１４５】
（Ｓ１２）品質計測部１１３は、パケットキャプチャを開始する。具体的には、品質計測部１１３は、仮想スイッチ１４０，２３０，３３０に対してパケットのミラーリングの開始を指示し、ミラーパケット受信部１１２によるミラーパケットの受信を開始させる。ここで、ミラーリングの開始とは、図７で説明したパケットの複製および複製されたパケット（ミラーパケット）の仮想マシン１１０への送信の開始を意味する。品質計測部１１３は、ミラーパケット受信部１１２により受信されたミラーパケットを取得し、記憶部１１１に格納する。
【０１４６】
（Ｓ１３）品質計測部１１３は、ＶＭテーブル１４１に登録されている全ての仮想マシン（全ＶＭ）に対し、ＡＲＰを実行する。具体的には、品質計測部１１３は、ＶＭテーブル１４１に登録されている全ての仮想マシンのＩＰアドレスを宛先とするＡＲＰ要求を仮想マシン毎に生成し、パケット通信部１１６に提供する。パケット通信部１１６は、生成されたＡＲＰ要求を仮想スイッチ１４０に送出する。パケット通信部１１６は、ＡＲＰ要求に対するＡＲＰ応答を受信し、品質計測部１１３に提供する。品質計測部１１３は、ＡＲＰ要求およびＡＲＰ応答の内容を、記憶部１１１に記憶されたＡＲＰ結果テーブル１４４に登録する。この段階では、ＡＲＰ結果テーブル１４４には、図１３で例示されているレコードのうち、送信元ＩＰアドレスが仮想マシン１１０のＩＰアドレス“１９２．１６８．１００．２０１”のレコードのみが登録されることになる。
【０１４７】
（Ｓ１４）品質計測部１１３は、監視対象の仮想マシンのＭＡＣアドレスを抽出する。具体的には、品質計測部１１３は、監視対象フラグが“ＴＲＵＥ”である仮想マシンのＩＰアドレスをＶＭテーブル１４１から抽出する。そして、品質計測部１１３は、ＶＭテーブル１４１から抽出したＩＰアドレスを宛先ＩＰアドレスとするレコードに登録されているＭＡＣアドレスを、ＡＲＰ結果テーブル１４４から抽出する。
【０１４８】
例えば、品質計測部１１３は、一意のＭＡＣアドレスが応答された仮想マシン１２０，１３０のＩＰアドレスに対して、収容サーバ対応情報“ｌｏｃａｌ”、収容サーバ識別番号“１”とするレコードをＶＭ収容サーバ管理テーブル１４３に登録する。品質計測部１１３は、同じＭＡＣアドレス“ＭＡＣ３”が応答された仮想マシン２１０，３１０のＩＰアドレスに対して、収容サーバ対応情報“ＭＡＣ３”、収容サーバ識別番号“２”とするレコードをＶＭ収容サーバ管理テーブル１４３に登録する。
【０１４９】
（Ｓ１５）品質計測部１１３は、ＡＲＰ結果テーブル１４４を参照して、同じＭＡＣアドレスが応答された複数の宛先ＩＰアドレスがあるか否かを判定する。ある場合、処理はステップＳ１６に進む。ない場合、処理はステップＳ２３に進む。
【０１５０】
（Ｓ１６）品質計測部１１３は、物理サーバ推定処理を実行する。物理サーバ推定処理とは、監視対象の複数の仮想マシンと物理サーバ（すなわち、実行サーバ）との対応を推定する処理である。物理サーバ推定処理の詳細は、後述される。
【０１５１】
（Ｓ１７）品質計測部１１３は、キャプチャされたミラーパケットの監視に基づく通信品質の計測を開始する。すなわち、品質計測部１１３は、通信品質の計測結果を、記憶部１１１に記憶された品質計測テーブル１４５に登録する処理を開始する。
【０１５２】
（Ｓ１８）品質計測部１１３は、通信品質の劣化（品質劣化）を検出したか否かを判定する。検出した場合、処理はステップＳ１９に進む。検出しない場合、処理はステップＳ２０に進む。ここで、品質劣化の検出の判定は、図１４で例示した損失パケット数と閾値との比較や、応答時間の最大値（または平均値）と閾値との比較に応じて行われる。
【０１５３】
（Ｓ１９）品質計測部１１３は、アクセス制御処理を実行する。アクセス制御処理とは、品質劣化の検出された仮想マシンを宛先とするパケットの一部を、別の実行サーバ上の別の仮想マシンに転送する処理である。アクセス制御処理の詳細は、後述される。
【０１５４】
（Ｓ２０）品質計測部１１３は、パケットキャプチャにより、監視対象の仮想マシンへのアクセスを受信したか否かを判定する。監視対象の仮想マシンへのアクセスを受信した場合、処理はステップＳ２１に進む。監視対象の仮想マシンへのアクセスを受信していない場合、処理はステップＳ２３に進む。監視対象の仮想マシンへのアクセスは、ＶＭテーブル１４１のレコードのうち、監視対象フラグ“ＴＲＵＥ”が設定されたＩＰアドレスを宛先とするミラーパケットに相当する。
【０１５５】
（Ｓ２１）品質計測部１１３は、ステップＳ２０で着目したパケットの宛先ＩＰアドレスに対し、該当のパケットの送信元ＩＰアドレスが、アクセス履歴テーブル１４２のクライアントのＩＰアドレスとして記録済であるか否かを判定する。記録済の場合、処理はステップＳ２３に進む。記録済でない場合、処理はステップＳ２２に進む。
【０１５６】
（Ｓ２２）品質計測部１１３は、ステップＳ２０で着目したパケットの宛先ＩＰアドレス（監視対象の仮想マシンのＩＰアドレス）に対して、該当のパケットの送信元ＩＰアドレスを、アクセス履歴テーブル１４２のクライアントのＩＰアドレスとして記録する。
【０１５７】
（Ｓ２３）品質計測部１１３は、監視の処理を継続するか否かを判定する。継続する場合、処理はステップＳ１８に進む。継続しない場合、処理は終了する。例えば、品質計測部１１３は、クライアント６００から監視の処理の終了の入力を受け付けた際に、監視の処理を継続しないと判定する。あるいは、品質計測部１１３は、予め定められたスケジュールに従って、監視の開始や監視の終了のタイミングを計ってもよい。
【０１５８】
図１７は、物理サーバ推定の例を示すフローチャートである。以下、図１７に示す手順をステップ番号に沿って説明する。以下の手順は、図１６のステップＳ１６に相当する。
（Ｓ３１）品質計測部１１３は、キャプチャされたミラーパケットのうち、仮想マシン１２０，１３０，２１０，２２０，３１０，３２０（仮想マシン１１０以外の他の仮想マシン）によるＡＲＰ応答の受信結果を、ＡＲＰ結果テーブル１４４に記録する。この段階で、ＡＲＰ結果テーブル１４４には、図１３で例示されているレコードのうち、送信元ＩＰアドレスが仮想マシン１１０のＩＰアドレス“１９２．１６８．１００．２０１”以外であるレコードが登録されることになる。
【０１５９】
（Ｓ３２）品質計測部１１３は、ＡＲＰ結果テーブル１４４を参照して、ステップＳ３１で登録された宛先ＩＰアドレス（ＡＲＰ要求の宛先）について、同じＭＡＣアドレスが応答された複数の宛先ＩＰアドレスがあるか否かを判定する。ある場合、処理はステップＳ３３に進む。ない場合、処理は終了する。
【０１６０】
ステップＳ１５に加えて、ステップＳ３２の判定を行う理由は、ステップＳ１５において、全ての宛先ＩＰアドレスに対して応答されたＭＡＣアドレスが同じであった場合に、各仮想マシンの実行サーバへの所属をそれ以上絞り込めるかを判断するためである。ステップＳ３２でＮｏの場合、仮想マシン１１０以外の他の仮想マシンについて、どの仮想マシンとどの仮想マシンとがそれぞれ別個の実行サーバ上にあるかを区別できないことになる。このため、ステップＳ３２でＮｏの場合、品質計測部１１３は、仮想マシン１１０以外の他の仮想マシンが全て同一の実行サーバ上にあるとみなす。
【０１６１】
（Ｓ３３）品質計測部１１３は、ＡＲＰ結果テーブル１４４を参照して、下記のステップＳ３４，Ｓ３５の手順により未解析である仮想マシンのうちの１つ（ＶＭｘと称する）が受信したＡＲＰ応答のＭＡＣアドレスを取得する。ここで、ステップＳ３４，Ｓ３５の解析対象となるＶＭｘは、監視対象の仮想マシンのうち、ＶＭ収容サーバ管理テーブル１４３における収容サーバ対応情報が“ｌｏｃａｌ”以外の仮想マシンである（“ｌｏｃａｌ”のものは“ｌｏｃａｌ”で確定する）。本例では、ステップＳ３３を最初に実行するときに未解析である仮想マシンは、仮想マシン２１０，３１０である。
【０１６２】
（Ｓ３４）品質計測部１１３は、ＶＭ収容サーバ管理テーブル１４３においてＶＭｘに関連付けられたＭＡＣアドレスａとは異なる複数の同一ＭＡＣアドレスｂが、ＡＲＰ結果テーブル１４４にあるか否かを判定する。ある場合、処理はステップＳ３５に進む。ない場合、処理は終了する。
【０１６３】
例えば、ＶＭｘが仮想マシン２１０（ＩＰアドレス“１９２．１６８．１００．１０３”）である場合を考える。この場合、ＶＭ収容サーバ管理テーブル１４３において、ＶＭｘに関連付けられたＭＡＣアドレス（すなわち、収容サーバ対応情報の値）は“ＭＡＣ３”（＝ＭＡＣアドレスａ）である。品質計測部１１３は、ステップＳ３３で取得したＭＡＣアドレス（仮想マシン２１０が受信したＡＲＰ応答結果）において、仮想マシン３１０，３２０のＩＰアドレスに対する同一ＭＡＣアドレス“ＭＡＣ５”（＝ＭＡＣアドレスｂ）を検出する。よって、この場合、品質計測部１１３は、ステップＳ３４の判定をＹｅｓとする。
【０１６４】
（Ｓ３５）品質計測部１１３は、ＶＭｘを除き実行サーバへの所属が未確定であり、かつ、ＶＭｘが受信したＡＲＰ応答でＭＡＣアドレスｂであった監視対象の仮想マシン（ＶＭｙと称する）のＭＡＣアドレスを、ＭＡＣアドレスｂに関連付ける。
【０１６５】
例えば、品質計測部１１３は、実行サーバへの所属が未確定である仮想マシン３１０のＩＰアドレスに対し、収容サーバ対応情報として“ＭＡＣ５”（＝ＭＡＣアドレスｂ）および収容サーバ識別番号“３”を、ＶＭ収容サーバ管理テーブル１４３に登録する。この段階で、ＶＭｘ（この場合、仮想マシン２１０）に対する所属先サーバ（具体的には、ＶＭ収容サーバ管理テーブル１４３に登録された収容サーバ対応情報“ＭＡＣ３”および収容サーバ識別番号“２”）が確定となる。
【０１６６】
（Ｓ３６）品質計測部１１３は、監視対象の各仮想マシンのうち、キャプチャ結果を未解析のものがあるか否かを判定する。未解析の仮想マシンがある場合、処理はステップＳ３３に進む。未解析の仮想マシンがない場合、処理は終了する。
【０１６７】
このように、品質計測部１１３は、仮想マシンの実行サーバへの所属状況を段階的に判断していく。
図１８は、アクセス制御の例を示すフローチャートである。以下、図１８に示す手順をステップ番号に沿って説明する。以下の手順は、図１６のステップＳ１９に相当する。
【０１６８】
（Ｓ４１）品質計測部１１３は、品質劣化した仮想マシン（ＶＭ）を収容する実行サーバを特定する。具体的には、品質計測部１１３は、品質の劣化が検出された仮想マシンのＩＰアドレスに対応する収容サーバ対応情報（または、収容サーバ識別番号）を、ＶＭ収容サーバ管理テーブル１４３から特定する。
【０１６９】
（Ｓ４２）品質計測部１１３は、品質劣化した仮想マシン上のＷｅｂサーバと同じサービスのＷｅｂサーバが他の実行サーバにあるか否かを判定する。ある場合、処理はステップＳ４３に進む。ない場合、処理は、ステップＳ５３に進む。本例では、ＶＭ収容サーバ管理テーブル１４３には、ＷｅｂサービスＡを提供する仮想マシンに関するレコードが登録されている。このため、ステップＳ４１で特定した収容サーバ対応情報とは異なる収容サーバ対応情報に対応付けられた仮想マシンのＩＰアドレスがＶＭ収容サーバ管理テーブル１４３に登録されていれば、同じサービスのＷｅｂサーバが他の実行サーバにあることになる。一方、ステップＳ４１で特定した収容サーバ対応情報と異なる収容サーバ対応情報に対応付けられた仮想マシンのＩＰアドレスがＶＭ収容サーバ管理テーブル１４３に登録されていなければ、同じサービスのＷｅｂサーバが他の実行サーバにないことになる。また、品質計測部１１３は、収容サーバ対応情報に代えて、収容サーバ識別番号を用いても、収容サーバ識別番号が同じか否かの判定に応じてステップＳ４２の判定を行える。
【０１７０】
（Ｓ４３）品質計測部１１３は、品質劣化した仮想マシン上のＷｅｂサーバと同じサービスを提供する他の実行サーバ上のＷｅｂサーバを１つ選択する。選択候補が複数の場合、品質計測部１１３は、通信品質の劣化が生じていない仮想マシン上のＷｅｂサーバの中から、ラウンドロビンや負荷が最小のものを選択するといった方法で、１つのＷｅｂサーバを選択する。
【０１７１】
（Ｓ４４）品質計測部１１３は、アクセス履歴テーブル１４２を参照して、品質劣化した仮想マシンにアクセスしたクライアントのＩＰアドレスを取得し、ＦＷ制御部１１４に提供する。
【０１７２】
（Ｓ４５）品質計測部１１３は、キャプチャされたミラーパケットを参照して、品質劣化した仮想マシンと現在通信中のクライアントのＩＰアドレスを取得し、ＦＷ制御部１１４に提供する。
【０１７３】
（Ｓ４６）ＦＷ制御部１１４は、品質劣化した仮想マシンのｉｐｔａｂｌｅｓの設定を、当該仮想マシンに指示する。具体的には、ＦＷ制御部１１４は、品質劣化した仮想マシンにアクセスしたクライアントのＩＰアドレスのうち、現在通信中（現在アクセス中）のクライアントのＩＰアドレス以外のＩＰアドレスを送信元とするパケットを受信しても破棄する設定の追加を指示する。品質劣化した仮想マシンは、当該指示に応じて、ｉｐｔａｂｌｅｓに対して設定を追加する。以後、品質劣化した仮想マシンは、今回設定したＩＰアドレスを送信元とするパケットを受信しても破棄する。
【０１７４】
（Ｓ４７）品質計測部１１３は、品質劣化発生を出力する。具体的には、品質計測部１１３は、品質劣化発生に関するメッセージを含む管理画面１５１をクライアント６００に送信する。出力される管理画面１５１は、品質劣化が発生したことを示すメッセージ、発生日時、品質劣化が発生した仮想マシンのＩＰアドレス、切り替え先の仮想マシンのＩＰアドレス、および、切り替えにより影響を受けるクライアントのＩＰアドレスを含む。ただし、この段階では、管理画面１５１は、品質回復に関するメッセージを含まない。また、品質計測部１１３は、パケット宛先変更部１１５およびパケット通信部１１６にパケットの転送制御の開始を通知する。
【０１７５】
（Ｓ４８）品質計測部１１３は、キャプチャされたミラーパケットを監視して、制御対象のクライアントからのアクセスを受信したか否かを判定する。受信した場合、処理はステップＳ４９に進む。受信しない場合、処理はステップＳ４８に進む（制御対象のクライアントからのアクセスを受信するまで待機する）。ここで、制御対象のクライアントとは、ステップＳ４４で取得したＩＰアドレスに対応するクライアントのうち、ステップＳ４５の時点で品質劣化した仮想マシンと通信中ではなかったクライアントである。制御対象のクライアントからのアクセスは、制御対象のクライアントのＩＰアドレスが送信元であるパケットに相当する。
【０１７６】
（Ｓ４９）パケット宛先変更部１１５は、キャプチャした受信パケット（ミラーパケット）の宛先ＩＰアドレスを、切り替え先の仮想マシン（切り替え先ＶＭ）のＩＰアドレスに変更する。パケット通信部１１６は、宛先変更後のパケットを転送する。ここで、切り替え先の仮想マシンは、ステップＳ４３で選択されたＷｅｂサーバを実行する仮想マシンである。
【０１７７】
（Ｓ５０）品質計測部１１３は、品質計測テーブル１４５を参照して、品質劣化が検出された仮想マシンについて、通信品質が回復したか否かを判定する。回復した場合、処理はステップＳ５１に進む。回復していない場合、処理はステップＳ４８に進む。
【０１７８】
（Ｓ５１）ＦＷ制御部１１４は、ステップＳ４６で指示したｉｐｔａｂｌｅｓの設定を、ステップＳ４６の前の設定に戻す指示を、通信品質が回復した仮想マシンに送信する。通信品質が回復した仮想マシンは、ｉｐｔａｂｌｅｓの設定を元の状態に戻し、破棄対象としていたパケットの破棄を中止する。また、品質計測部１１３は、パケット宛先変更部１１５およびパケット通信部１１６に該当の仮想マシンに対するパケットの転送制御の終了を通知する。以後、パケット宛先変更部１１５およびパケット通信部１１６は、パケットの宛先変更や宛先変更後のパケットの転送を停止する。
【０１７９】
（Ｓ５２）品質計測部１１３は、品質回復を出力する。具体的には、品質計測部１１３は、品質回復に関するメッセージを含む管理画面１５１をクライアント６００に送信する。そして、処理は終了する。
【０１８０】
（Ｓ５３）仮想マシン追加指示部１１７は、仮想マシン追加制御部５１０に仮想マシン（ＶＭ）作成を要求する。当該要求は、新たに作成する仮想マシンのＩＰアドレスを含む。仮想マシン追加指示部１１７は、新たな仮想マシンの作成が完了した旨の通知を仮想マシン追加制御部５１０から受信する。
【０１８１】
（Ｓ５４）品質計測部１１３は、キャプチャされたミラーパケットを参照して、品質劣化した仮想マシンを送信元とし、新規に作成された仮想マシン（新規ＶＭ）を含む各仮想マシンを宛先として行われたＡＲＰの結果を取得する。
【０１８２】
（Ｓ５５）品質計測部１１３は、新たに作成された仮想マシンが品質劣化した仮想マシン（ＶＭ）と異なる実行サーバにあるか否かを判定する。異なる実行サーバにある場合、処理はステップＳ５７に進む。異なる実行サーバにない場合（すなわち、同じ実行サーバにある場合）、処理はステップＳ５６に進む。例えば、ステップＳ５４で取得したＡＲＰ結果について、新規ＶＭの応答ＭＡＣアドレスｃが他の仮想マシンからのＭＡＣアドレスとしても応答されている場合、新規ＶＭは、品質劣化した仮想マシンとは異なる実行サーバ上にあることになる。一方、新規ＶＭの応答ＭＡＣアドレスｃが他の仮想マシンの何れの応答ＭＡＣアドレスとも一致しない場合、新規ＶＭが品質劣化した仮想マシンと同じ実行サーバ上にある可能性を否定できない。このため、新規ＶＭは、品質劣化した仮想マシンと同じ実行サーバ上にあると推定される。
【０１８３】
（Ｓ５６）仮想マシン追加指示部１１７は、仮想マシン追加制御部５１０にＶＭ作成を再要求する。当該要求は、新たに作成する仮想マシンのＩＰアドレスを含む。仮想マシン追加指示部１１７は、新たな仮想マシンの作成が完了した旨の通知を仮想マシン追加制御部５１０から受信する。前述のように、仮想マシン追加制御部５１０は、新たな仮想マシンを起動させる実行サーバを順番に選択するので、再要求後に作成された仮想マシンは、品質劣化した仮想マシンとは異なる実行サーバ上にある可能性が高いと考えられる。
【０１８４】
（Ｓ５７）品質計測部１１３は、新規ＶＭ（ステップＳ５３〜Ｓ５６の手順により最も新しく作成された仮想マシン）を切り替え先に決定する。そして、処理はステップＳ４４に進む。
【０１８５】
なお、仮想マシン１１０は、ステップＳ５６の後に、ステップＳ５４，Ｓ５５を再度実行してもよい。
このようにして、仮想マシン１１０は、通信品質が劣化した仮想マシンに対する一部の要求パケットを、当該仮想マシンを動作させる実行サーバとは別の実行サーバ上にある別の仮想マシンに転送する。別の実行サーバ上で動作し、同じＷｅｂサービスを提供する別の仮想マシンがない場合には、仮想マシン１１０は、管理サーバ５００により新規仮想マシンを起動させて、新規仮想マシンが別の実行サーバ上にあれば、新規仮想マシンに要求パケットを転送する。
【０１８６】
図１９は、アクセス制御の例を示す図である。ここでは、一例として、仮想マシン１１０が仮想マシン１２０において通信品質の劣化を検出した場合を考える。ＷｅｂサーバＡ１に対するアクセス実績のあるクライアントは、クライアント６００，７００を含む。このうち、クライアント７００は、通信品質の劣化が検出された時点において、ＷｅｂサーバＡ１にアクセスしていたとする。一方、クライアント６００は、通信品質の劣化が検出された時点において、ＷｅｂサーバＡ１にはアクセスしていなかったとする。
【０１８７】
仮想マシン１１０は、例えば、仮想マシン１２０を動作させる実行サーバ１００とは異なる実行サーバ２００で動作し、ＷｅｂサービスＡを提供する仮想マシンとして、仮想マシン２１０を特定する。仮想マシン１１０は、仮想マシン１２０へのクライアント６００からのパケットを、仮想マシン２１０に転送すると決定する。
【０１８８】
具体的には、仮想マシン１１０は、仮想マシン１２０のファイアウォール（例えば、ｉｐｔａｂｌｅｓ）に、クライアント６００のＩＰアドレスを送信元とするパケットを破棄する旨の設定を追加するよう仮想マシン１２０に指示する。すると、その後、仮想マシン１２０において、クライアント６００からのパケットが遮断される（当該パケットを受信しても破棄される）。一方、仮想マシン１２０は、クライアント７００のＩＰアドレスを送信元とするパケットについては、遮断しない。
【０１８９】
仮想マシン１１０は、仮想スイッチ１４０，２３０により複製されたパケット（ミラーパケット）を受信している。その後、仮想マシン１１０は、宛先ＩＰアドレスが仮想マシン１２０のＩＰアドレスであり、送信元ＩＰアドレスがクライアント６００のＩＰアドレスであるミラーパケットを受信すると、当該宛先ＩＰアドレスを、仮想マシン２１０のＩＰアドレスに変更する。仮想マシン１１０は、宛先変更後のミラーパケットを転送する。仮想マシン２１０は、宛先変更後のミラーパケットを受信し、当該ミラーパケットに応じた処理を実行して、クライアント６００に実行結果を応答する。
【０１９０】
このように、仮想マシン１１０は、通信品質の劣化が検出された時点において、ＷｅｂサーバＡ１にアクセスしていなかったクライアント６００をアクセス制御の対象とする。一方、仮想マシン１１０は、通信品質の劣化が検出された時点においてＷｅｂサーバＡ１にアクセスしていたクライアント７００をアクセス制御の対象としない。これにより、クライアント７００によるＷｅｂサーバＡ１のＷｅｂアクセスへの影響を抑えて、パケット転送を行える。また、仮想マシン１１０がミラーパケットを用いて仮想マシン２１０へのパケット転送を行うことで、仮想スイッチ１４０に対するテナントの設定変更を許容していないシステムでもパケット転送を実現できる。
【０１９１】
なお、アクセス制御を開始する契機としては、品質劣化を検出した場合以外にも種々の方法が考えられる。
図２０は、アクセス制御を開始する契機の他の例（その１）を示す図である。例えば、通信品質の劣化とまではいかなくても、仮想マシン１１０は、特定の仮想マシンの負荷が比較的高い状態が所定時間継続している場合に、該当の仮想マシンから他の実行サーバ上の仮想マシンへと所定のクライアントのアクセス先を変更してもよい。仮想マシンの負荷が比較的高い状態にあることは、仮想マシンに割り当てられた演算リソース（プロセッサ、ＲＡＭまたは通信インタフェースなど）の使用率と、所定の閾値との比較によって判断することが考えられる。
【０１９２】
例えば、仮想マシン１１０は、ＷｅｂサーバＡ１，Ａ２，Ａ３に対するアクセス数やトラフィック量などを、Ｗｅｂサーバ間で比較し、比較的アクセス頻度の多いＷｅｂサーバに対する一部のアクセスを、他のＷｅｂサーバへ移動させてもよい。より具体的には、仮想マシン１２０に対する単位時間当たりのアクセス数が１００であり、実行サーバ１００とは異なる実行サーバ２００にある仮想マシン２１０に対する単位時間当たりのアクセス数が１０である場合を考える。この場合、仮想マシン１１０は、仮想マシン１２０のＷｅｂサーバＡ１に対するクライアント６００のアクセスを、仮想マシン２１０に転送するように制御してもよい。
【０１９３】
図２１は、アクセス制御を開始する契機の他の例（その２）を示す図である。また、仮想マシン１１０は、一定時間使用されていない仮想マシン２１０がある場合に、実行サーバ２００とは異なる実行サーバ１００で動作する仮想マシン１２０へのアクセスの一部を、仮想マシン２１０に転送するように制御してもよい。これにより、仮想マシン２１０におけるＷｅｂサーバＡ３の性能を測定し、当該ＷｅｂサーバＡ３が正常に稼働しているかを確認することも考えられる。
【０１９４】
また、仮想マシン１１０は、一定期間内の各Ｗｅｂサーバに対するアクセス数を計測し、アクセス数の少ないＷｅｂサーバが存在する場合に、他の実行サーバ上のＷｅｂサーバのアクセスを、アクセス数の少ないＷｅｂサーバに移動させてもよい。より具体的には、仮想マシン２１０に対する一定期間内のアクセス数が０であるとき、仮想マシン１１０は、仮想マシン１２０のＷｅｂサーバＡ１に対するクライアント６００のアクセスを、仮想マシン２１０に転送するように制御してもよい。
【０１９５】
また、アクセス制御の方法としては、上記のように、仮想マシン１１０がミラーパケットの宛先を変換して、パケット転送を行う他にも種々の方法が考えられる。
図２２は、アクセス制御の他の例（その１）を示す図である。クラウドサービスでは、テナントによる仮想スイッチ１４０の設定変更が許容されている場合もある。この場合、仮想マシン１１０は、パケットの宛先アドレスの変換を仮想スイッチ１４０に指示し、仮想スイッチ１４０によりアクセス制御を実行させてもよい。
【０１９６】
例えば、仮想スイッチ１４０がＯＰＥＮＦＬＯＷスイッチである場合を考える。仮想マシン１１０は、クライアント６００のＩＰアドレスを送信元とし、仮想マシン１２０のＩＰアドレスを宛先とするパケットに対し、宛先を仮想マシン２１０のＩＰアドレスに変換するフローエントリを、仮想スイッチ１４０のフローテーブルに追加してもよい。このようにすれば、該当のパケットのアドレス変換、および、パケット転送を、仮想スイッチ１４０により実行させることができる。
【０１９７】
図２３は、アクセス制御の他の例（その２）を示す図である。また、仮想マシン１２０，１３０の応答時間が非常に長い場合には、ファイアウォール（ｉｐｔａｂｌｅｓ）の設定変更ではなく、ＷｅｂサーバＡ１，Ａ２（あるいは、仮想マシン１２０，１３０）を停止させてもよい。この場合、ＬＢ４１１によるパケットの振り分け先候補から仮想マシン１２０，１３０が除外される。したがって、実行サーバ１００上の仮想マシン１２０，１３０に対する全てのアクセスは、実行サーバ２００上の仮想マシン２１０および実行サーバ３００上の仮想マシン３１０（ただし、図２３では、実行サーバ３００の図示を省略している）に移動される。応答時間があまりにも長い場合には、既存のアクセスにも問題があると考えられる。このような場合には、仮想マシン１１０は、既存のアクセスごとアクセス先を移動させることで、応答性能の改善を図れる。
【０１９８】
図２４は、アクセス制御の他の例（その３）を示す図である。仮想マシン１１０は、クライアント６００によるアクセスを仮想マシン１２０から仮想マシン２１０へ移す場合に、クライアント６００に対して、仮想マシン２１０へのリダイレクション指示を送信してもよい。この場合も、仮想マシン１１０は、仮想マシン１２０のファイアウォールに対して、クライアント６００のＩＰアドレスを送信元とするパケットを破棄する設定を追加する。その上で、仮想マシン１１０は、キャプチャしたミラーパケットにより、クライアント６００による仮想マシン１２０へのアクセスを検出すると、仮想マシン２１０にアクセスするようリダイレクション指示をクライアント６００に送信する。リダイレクション指示には、仮想マシン２１０のＩＰアドレスが含まれる。すると、クライアント６００は、仮想マシン２１０のＩＰアドレスを宛先とした要求パケットを再送信することで、仮想マシン２１０にアクセスすることができる。
【０１９９】
ここで、例えば、クラウドコンピューティングによるコンピュータの利用形態では、上記のようにテナントのユーザに物理マシンを意識させずに、仮想マシンの利用環境を提供するサービスがある。このようなサービスにおいて、仮想マシンによる通信品質を監視し、通信品質の低下に応じて、ある仮想マシンの処理（あるいは処理の一部）を別の仮想マシンに代替させる運用を、ユーザ側のアプリケーションの機能により行えるようにすることが考えられる。
【０２００】
しかし、ユーザにより利用されるアプリケーションは、利用中の仮想マシンが、何れの実行サーバで動作しているのか把握できないことがある。また、ある仮想マシンが具体的にどの実行サーバで動作しているかという情報が、システム管理者からユーザ側へ提供されていなければ、仮想マシンがどの物理マシンで動作しているかをユーザ側で把握することは困難である。
【０２０１】
その場合、ユーザが利用するアプリケーションは、例えば、通信品質が低下した仮想マシンの処理を、仮想マシンと同じ実行サーバ上で動作する仮想マシンに代替させる可能性がある。ところが、仮想マシンによる通信品質の低下の要因は、実行サーバの高負荷にあることが少なくない。仮想マシンと代替先の仮想マシンとが同じ実行サーバ上にあると、実行サーバに負荷がかかる状況が変わらないので、通信品質の低下を十分に改善できない可能性がある。
【０２０２】
そこで、管理用の仮想マシン１１０は、各仮想マシンが発行する所定の存在確認要求に基づいて、応答遅延が増した第１仮想マシンが動作する実行サーバとは異なる実行サーバ上の第２仮想マシンを特定する。そして、仮想マシン１１０は、第１仮想マシンへの要求の一部を第２仮想マシンに振り分ける。
【０２０３】
これにより、仮想マシン１１０は、第１仮想マシンが動作する実行サーバとは異なる実行サーバ上の第２仮想マシンに対して、適切に処理を振り分けることが可能となる。切り替え元の実行サーバの負荷の一部が、切り替え先の実行サーバに分配されることで、切り替え元の実行サーバの負荷が低減され、仮想マシンの通信品質が低下することを防げる。
【０２０４】
なお、存在確認要求としてＡＲＰ要求を例示したが、例えば、仮想マシン１１０は、当該存在確認要求として、各仮想マシンにより他仮想マシンのＩＰアドレス宛に発行されるｐｉｎｇを用いてもよい。
【０２０５】
なお、第１の実施の形態の情報処理は、処理部１ｂにプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、プロセッサ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１３に記録できる。
【０２０６】
例えば、プログラムを記録した記録媒体１３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体１３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０２０７】
１  仮想マシン管理装置
１ａ  記憶部
１ｂ  処理部
２，３  物理マシン
２ａ，２ｂ，３ａ，３ｂ  仮想マシン
２ｃ，３ｃ  仮想スイッチ
４  負荷分散装置
５，６  ネットワーク
７，８  クライアント
ｐ１，ｐ２，ｐ３，ｐ４  ポート
Ｔ１  テーブル
【図１】
2018110359.tif 000003
【図２】
2018110359.tif 000004
【図３】
2018110359.tif 000005
【図４】
2018110359.tif 000006
【図５】
2018110359.tif 000007
【図６】
2018110359.tif 000008
【図７】
2018110359.tif 000009
【図８】
2018110359.tif 000010
【図９】
2018110359.tif 000011
【図１０】
2018110359.tif 000012
【図１１】
2018110359.tif 000013
【図１２】
2018110359.tif 000014
【図１３】
2018110359.tif 000015
【図１４】
2018110359.tif 000016
【図１５】
2018110359.tif 000017
【図１６】
2018110359.tif 000018
【図１７】
2018110359.tif 000019
【図１８】
2018110359.tif 000020
【図１９】
2018110359.tif 000021
【図２０】
2018110359.tif 000022
【図２１】
2018110359.tif 000023
【図２２】
2018110359.tif 000024
【図２３】
2018110359.tif 000025
【図２４】
2018110359.tif 000026