(57)【特許請求の範囲】
【請求項１】
仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザと、
少なくとも、前記ハイパーバイザ上において同一階層で並列に稼働する、仮想スイッチを備えた第１仮想マシン及び該第１仮想マシンに従属する子仮想マシン並びに第２仮想マシンと
を備え、
前記子仮想マシンは前記第１仮想マシンと仮想ネットワークにより接続され、前記第２仮想マシンと前記子仮想マシンとのデータ通信が、少なくとも、前記第１仮想マシンの仮想スイッチ並びに前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークを経由して行われ、
前記子仮想マシンの従属先が前記第１仮想マシンから前記第２仮想マシンへと移動するときに、前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークが切断される一方で、前記第２仮想マシン及び前記子仮想マシン間の仮想ネットワークが接続される情報処理装置。
【請求項２】
前記子仮想マシンは、前記第１仮想マシン及び前記第２仮想マシンの両方に従属し、前記第１仮想マシンと仮想ネットワーク接続される一方で、さらに前記第２仮想マシンと仮想ネットワーク接続され、
前記子仮想マシンに対するデータ通信が、少なくとも、前記第１仮想マシンの仮想スイッチ並びに前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワーク、又は、前記第２仮想マシンの仮想スイッチ並びに前記第２仮想マシン及び前記子仮想マシン間の仮想ネットワークを経由して行われる請求項１に記載の情報処理装置。
【請求項３】
仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザ及び該ハイパーバイザの制御を行うコントローラと、
前記ハイパーバイザの制御下において稼働する仮想マシンであって、自仮想マシンに従属する子仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第１仮想マシンと、
自仮想マシンに従属する仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第２仮想マシンと
を備え、
前記第１仮想マシンの擬似ハイパーバイザは、該第１仮想マシンに従属する子仮想マシンの制御指示を該第１仮想マシンの管理部から受信したときに、該制御指示を前記コントローラに送信し、
前記コントローラは、前記制御指示を受信したときに、該制御指示に基づいて前記子仮想マシンの制御を行うように前記ハイパーバイザを制御し、
前記子仮想マシンは、前記第１仮想マシン及び前記第２仮想マシンの両方に従属し、前記第１仮想マシン及び前記第２仮想マシンのそれぞれの擬似ハイパーバイザが、それぞれの管理部から受信した前記子仮想マシンの制御指示を前記コントローラに送信する情報処理装置。
【請求項４】
前記子仮想マシンは前記第１仮想マシンと仮想ネットワークにより接続され、前記第１仮想マシン以外の他の仮想マシンと前記子仮想マシンとのデータ通信が、少なくとも、前記第１仮想マシンの仮想スイッチ並びに前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークを経由して行われる請求項３に記載の情報処理装置。
【請求項５】
前記コントローラは、前記第１仮想マシンの擬似ハイパーバイザから受信した前記子仮想マシンの制御指示が該子仮想マシンの配備指示であるときに、該子仮想マシンを配備するとともに、前記第１仮想マシン及び該子仮想マシン間の仮想ネットワークを接続するように前記ハイパーバイザを制御する請求項３に記載の情報処理装置。
【請求項６】
前記コントローラは、前記子仮想マシンの制御指示が、前記子仮想マシンの従属先を前記第１仮想マシンから前記第２仮想マシンへと移動させる指示であるときに、前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークを切断し、前記第２仮想マシン及び前記子仮想マシン間の仮想ネットワークを接続するようにハイパーバイザを制御する請求項４に記載の情報処理装置。
【請求項７】
前記子仮想マシンは、前記第１仮想マシンと仮想ネットワーク接続される一方で、前記第２仮想マシンと仮想ネットワーク接続されており、
前記コントローラは、前記子仮想マシンの制御指示が、前記子仮想マシンの削除指示であるときに、該制御指示の送信元の仮想マシン及び前記子仮想マシン間の仮想ネットワークの接続を切断し、該切断後に前記子仮想マシンに接続する他の仮想マシンが存在しないときにのみ、該子仮想マシン自体を削除するように前記ハイパーバイザを制御する請求項３又は４に記載の情報処理装置。
【請求項８】
仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザ及び該ハイパーバイザの制御を行うコントローラと、
前記ハイパーバイザの制御下において稼働する仮想マシンであって、自仮想マシンに従属する子仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第１仮想マシンと、
自仮想マシンに従属する仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第２仮想マシンと
を備えた情報処理装置において、
前記第１仮想マシンの擬似ハイパーバイザが、該第１仮想マシンに従属する子仮想マシンの制御指示を該第１仮想マシンの管理部から受信したときに、該制御指示を前記コントローラに送信し、
前記コントローラが、前記制御指示を受信したときに、該制御指示に基づいて前記子仮想マシンの制御を行うように前記ハイパーバイザを制御し、
前記子仮想マシンは、前記第１仮想マシン及び前記第２仮想マシンの両方に従属したときに、前記第１仮想マシン及び前記第２仮想マシンのそれぞれの擬似ハイパーバイザが、それぞれの管理部から受信した前記子仮想マシンの制御指示を前記コントローラに送信する情報処理方法。
【請求項９】
仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザ及び該ハイパーバイザの制御を行うコントローラと、
前記ハイパーバイザの制御下において稼働する仮想マシンであって、自仮想マシンに従属する子仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第１仮想マシンと、
自仮想マシンに従属する仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第２仮想マシンと
を備えた情報処理装置に、
前記第１仮想マシンの擬似ハイパーバイザが、該第１仮想マシンに従属する子仮想マシンの制御指示を該第１仮想マシンの管理部から受信したときに、該制御指示を前記コントローラに送信する手順と、
前記コントローラが、前記制御指示を受信したときに、該制御指示に基づいて前記子仮想マシンの制御を行うように前記ハイパーバイザを制御する手順と、
前記子仮想マシンは、前記第１仮想マシン及び前記第２仮想マシンの両方に従属したときに、前記第１仮想マシン及び前記第２仮想マシンのそれぞれの擬似ハイパーバイザが、それぞれの管理部から受信した前記子仮想マシンの制御指示を前記コントローラに送信する手順を実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置において仮想化環境を構築する技術に関する。
【背景技術】
【０００２】
情報処理装置上に仮想化環境を構築し、仮想マシン（ＶＭ：Virtual Machine）を稼働させる技術がある。仮想化環境が構築された情報処理装置においては、仮想化された物理資源がＶＭに割当てられる。かかる仮想化環境において、ＶＭの状態を管理する技術の一例として、次のような技術がある。すなわち、ＶＭで実行されるゲストＯＳが特定のＶＭで実行されるホストＯＳを介して物理資源にアクセスする構成を有する計算機において、ホストＯＳでエージェントプログラムを実行する。エージェントプログラムは、当該計算機に接続された管理装置から命令を受信すると、ＶＭ群と物理資源の間に介在する仮想マシン制御部が備えるＡＰＩ（Application Program Interface）から必要なものを呼び出して実行し、ＶＭの状態を管理装置に送信する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２１７７０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、例えば、このような仮想化環境を構築するための技術を開発する側の環境に着目すると、実際の仮想化環境と同様のシステム構成で動作確認をすることが望ましい。しかし、仮想化技術を適用したシステムは、ＶＭを稼働させる情報処理装置が多数接続された大規模システムとなることも多い。かかるシステム構成を開発段階で構築するには相応の物理資源が必要となってしまい、コスト面等に鑑みて難しい。
【０００５】
以上のような問題点に鑑み、本技術は、１つの側面において、仮想化技術を適用したシステムを、限られた物理資源を用いて模擬することを可能にし、仮想化技術の開発支援を実現することを目的とする。
【課題を解決するための手段】
【０００６】
本技術は、１つの側面において、仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザと、少なくとも、前記ハイパーバイザ上において同一階層で並列に稼働する、仮想スイッチを備えた第１仮想マシン及び前記第１仮想マシンに従属する子仮想マシン並びに第２仮想マシンとを備える。そして、前記子仮想マシンは前記第１仮想マシンと仮想ネットワークにより接続され、前記第２仮想マシンと前記子仮想マシンとのデータ通信が、少なくとも、前記第１仮想マシンの仮想スイッチ並びに前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークを経由して行われ、前記子仮想マシンの従属先が前記第１仮想マシンから前記第２仮想マシンへと移動するときに、前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークが切断される一方で、前記第２仮想マシン及び前記子仮想マシン間の仮想ネットワークが接続される。
【０００７】
また、本技術は、１つの側面において、仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザ、及び該ハイパーバイザの制御を行うコントローラと、前記ハイパーバイザの制御下において稼働する仮想マシンであって、自仮想マシンに従属する子仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第１仮想マシンと、自仮想マシンに従属する仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第２仮想マシンとを備える。そして、前記第１仮想マシンの擬似ハイパーバイザは、該第１仮想マシンに従属する子仮想マシンの制御指示を該第１仮想マシンの管理部から受信したときに、該制御指示を前記コントローラに送信する。さらに、前記コントローラは、前記制御指示を受信したときに、該制御指示に基づいて前記子仮想マシンの制御を行うように前記ハイパーバイザを制御し、前記子仮想マシンは、前記第１仮想マシン及び前記第２仮想マシンの両方に従属したときに、前記第１仮想マシン及び前記第２仮想マシンのそれぞれの擬似ハイパーバイザが、それぞれの管理部から受信した前記子仮想マシンの制御指示を前記コントローラに送信する。
【発明の効果】
【０００８】
本技術によれば、仮想化技術を適用したシステムを、限られた物理資源を用いて模擬することが可能になり、仮想化技術の開発支援が実現される。
【図面の簡単な説明】
【０００９】
【図１】仮想化技術を適用した情報処理システムの一例の説明図である。
【図２】仮想化技術を適用した情報処理システムを模擬的に構築した情報処理装置の一例の説明図である。
【図３】ゲストＶＭに従属する子ゲストＶＭの制御指示の流れの一例を示すシーケンス図である。
【図４】ゲストＶＭ間のデータの流れの一例を示すシーケンス図である。
【図５】仮想ネットワークの接続形態の一例を示す説明図である。
【図６】ＶＭＭコントローラのテーブルの一例を示す説明図である。
【図７】擬似ＶＭＭのテーブルの一例を示す説明図である。
【図８】擬似ＶＭＭのテーブルの一例を示す説明図である。
【図９】擬似ＶＭＭで実行される子ゲストＶＭ制御処理の一例を示すフローチャートである。
【図１０】ＶＭＭコントローラで実行される子ゲストＶＭ制御処理の一例を示すフローチャートである。
【図１１】ＶＭＭコントローラで実行される多重子ゲストＶＭ制御処理の一例を示すフローチャートである。
【図１２】子ゲストＶＭ配備処理における仮想ネットワークの接続態様の一例を示す説明図である。
【図１３】子ゲストＶＭ配備処理における仮想ネットワークの接続態様の一例を示す説明図である。
【図１４】子ゲストＶＭ移動処理における仮想ネットワークの接続態様の一例を示す説明図である。
【図１５】子ゲストＶＭ移動処理における仮想ネットワークの接続態様の一例を示す説明図である。
【図１６】子ゲストＶＭ移動処理における仮想ネットワークの接続態様の一例を示す説明図である。
【図１７】多重子ゲストＶＭ配備処理における仮想ネットワークの接続態様の一例を示す説明図である。
【図１８】多重子ゲストＶＭ配備処理における仮想ネットワークの接続態様の一例を示す説明図である。
【図１９】ハードウェア構成の一例を示す説明図である。
【発明を実施するための形態】
【００１０】
［１．実施形態の概要］
近年、情報処理装置の物理資源を仮想化し、ネットワークを介してユーザに提供するサービスが普及してきている。かかるサービスを提供する情報処理システムでは、情報処理装置においてハイパーバイザ（ＶＭＭ：Virtual Machine Monitor）が動作し、仮想化された物理資源が割当てられたゲストＶＭが稼働する。ゲストＶＭでは、ユーザの情報処理業務を実現するアプリケーションプログラム等が実行される。
【００１１】
ここで、例えば、このような仮想化環境を構築するための技術を開発する側の環境に着目すると、実際の仮想化環境と同様のシステム構成で動作確認をすることが望ましい。なお、仮想化技術を適用した情報処理システムにおける通常の運用機能等の開発においては、例えばＶＭＭシミュレータ等を用い、ＶＭを実際に構築せずに動作確認を行うことも可能ではある。かかる開発作業においては、少なくとも、ＶＭＭ側からＶＭが存在するように見えていれば十分なこともあるからである。
【００１２】
しかし、近年、仮想化技術を適用した情報処理システムにおいて、例えば、サービス品質維持の観点から、各ＶＭに十分な物理資源が割当てられ正常に動作しているかを監視する性能管理等が重要視されてきている。かかるＶＭの性能管理を行うエージェントを開発する際には、特に、単に情報処理装置全体の物理資源の使用状態を把握するのみならず、エージェントが実際のＶＭ上で正常に動作し、ＶＭ上でそれぞれのＶＭの性能情報を収集できること等を動作検証することが求められる。かかる動作検証を行うためには、開発段階において実際にＶＭを稼働させることを要する。
【００１３】
また、性能管理を行うエージェントの開発段階の動作検証においては、実際の情報処理システムと同様のシステム構成において、ＶＭの性能管理がシステム全体として正常に行われるかを検証することが望ましい。しかし、実際にユーザにサービスを提供する情報処理システムは、多数の情報処理装置において多数のＶＭが動作する大規模環境であることもある。このような場合、開発環境において、実際の情報処理システムと同様の大規模なシステムを構築することは困難であった。
【００１４】
このため、本実施形態では、一例として、仮想化技術を適用した情報処理システムにおける性能管理技術の開発等を行うための環境として、仮想化技術を適用した情報処理システムを１つの情報処理装置上において模擬的に構築することが可能な技術について説明する。
【００１５】
具体的には、本実施形態では、１つの情報処理装置において、ゲストＶＭをＶＭＭ上に階層的に構築する。しかし、いわゆるＶＭｏｎＶＭのように、構造上、ゲストＶＭの上でさらにゲストＶＭを稼働させるのではなく、複数のゲストＶＭをＶＭＭ上の同一階層に並列に構築し、仮想ネットワークの接続態様によって、１つのゲストＶＭを他のゲストＶＭに従属させ、あたかもゲストＶＭが階層的に構築されているように模擬する。なお、本明細書において、「あるゲストＶＭが他のゲストＶＭに従属する」とは、「あるゲストＶＭが他のゲストＶＭの制御下で動作する」ことを意味する。以下、他のゲストＶＭに従属するゲストＶＭを「子ゲストＶＭ」と表現する。
【００１６】
このとき、ゲストＶＭ同士の仮想ネットワークの接続形態に着目した一側面として、本実施形態では、第１ゲストＶＭとそのゲストＶＭに従属する子ゲストＶＭが仮想ネットワークによって接続され、他の第２ゲストＶＭから子ゲストＶＭに対するデータ通信は、第１ゲストＶＭの仮想スイッチ並びに第１ゲストＶＭ及び子ゲストＶＭ間の仮想ネットワークを経由するようにする。すなわち、通常、ある情報処理装置が、仮想化環境が構築された他の情報処理装置のゲストＶＭにアクセスするときに、まず当該仮想化環境が構築された情報処理装置にアクセスし、その後、情報処理装置内の仮想スイッチによってゲストＶＭにデータ通信が行われるのと同様に、第２ゲストＶＭからは、第１ゲストＶＭに対してデータ通信を行うのみであり、当該データ通信は、第１ゲストＶＭの仮想スイッチを介して、子ゲストＶＭに転送される。
【００１７】
また、ゲストＶＭの制御に着目した一側面として、本実施形態では、情報処理装置においてＶＭＭ上で稼働するゲストＶＭに、自ゲストＶＭに従属する子ゲストＶＭの管理を行う管理エージェント（管理部）及び擬似ＶＭＭ（擬似ハイパーバイザ）を実装させる。なお、これは、仮想化環境が構築された通常の情報処理装置が、自装置内で稼働するゲストＶＭを管理する管理エージェント及びＶＭＭを実装するのと同様である。そして、ゲストＶＭが子ゲストＶＭの制御を行うときには、管理エージェントが擬似ＶＭＭに子ゲストＶＭの制御指示を送信する。しかし、擬似ＶＭＭは実際のＶＭＭと異なり、自ら子ゲストＶＭの制御を行うのではなく、ＶＭＭのコントローラに対し、子ゲストＶＭの制御指示を依頼する。ＶＭＭコントローラは、擬似ＶＭＭからの制御指示に応じ、ＶＭＭを制御する。この場合、管理エージェント側から見ると、通常の仮想化環境が構築された情報処理等値における管理エージェントがゲストＶＭの制御指示をＶＭＭに出すのと同様に、子ゲストＶＭの制御指示を擬似ＶＭＭに出すことができる。
【００１８】
かかる技術を前述のような情報処理システムの開発環境に適用すれば、例えば、情報処理システムの構成要素である情報処理装置自体及び情報処理装置上で動作するゲストＶＭを、１つの情報処理装置上で模擬的に構築することができる。この場合、ゲストＶＭが実際の情報処理システムの情報処理装置に相当し、子ゲストＶＭが、情報処理装置上で動作するゲストＶＭに相当することとなる。
【００１９】
［２．システム構成］
＜模擬していない実際の情報処理システムの説明＞
初めに、仮想化技術を適用した通常の情報処理システム（すなわち、模擬していない実際の情報処理システム）について簡単に説明する。図１は、かかる情報処理システムの一例の説明図である。なお、本明細書で以下に説明する実施形態は、原則としてＸｅｎ（登録商標）のＶＭＭを用いた仮想化環境を前提とするが、例えばＶＭＷａｒe（登録商標）等、他のＶＭＭを用いた仮想化環境においても、構成の一部を適宜変更することによって同様の技術を適用することは可能である。
【００２０】
本情報処理システムは、情報処理装置の一例としてのサーバ５００及び管理サーバ６００を有する。サーバ５００及び管理サーバ６００は、物理スイッチ７００を介してネットワーク接続されている。
【００２１】
サーバ５００は、仮想化環境が構築されており、ＶＭＭ５１０及びＶＭ管理ブロック５２０を備える。また、ＶＭＭ５１０上ではゲストＶＭ５３０が起動されている。なお、説明の簡略化のため、仮想化環境が構築されたサーバ５００が１つであるものとして説明を行うが、かかる仮想化環境が構築されたサーバは１つとは限らない。
【００２２】
管理サーバ６００では、ＶＭ管理マネージャ６１０が稼働している。ＶＭ管理マネージャ６１０は、サーバ５００で動作するゲストＶＭの管理を行う。例えば、仮想化環境が構築されたサーバ５００と同様のサーバが複数存在する場合には、ＶＭ管理マネージャ６１０は、どのサーバにどのようにゲストＶＭを配備するかを管理する。そして、ＶＭ管理マネージャ２１０は、必要に応じて、物理ＮＩＣ６２０からネットワークを介して、サーバ５００に対し、ゲストＶＭの配備、移動又は削除の指示を送信する。
【００２３】
次に、サーバ５００に構築された仮想化環境についてさらに説明する。
ＶＭＭ５１０は、ゲストＶＭ５３０の配置、移動、削除等の制御を直接行うとともに、ゲストＶＭ間のデータ通信等を可能にする仮想ネットワークを提供する。なお、説明の簡略化のため、ゲストＶＭ５３０が１つであるものとして説明を行うが、かかるゲストＶＭ５３０は１つとは限らない。
【００２４】
ＶＭ管理ブロック５２０は、サーバ５００内で動作するゲストＶＭ５３０の配置、移動、削除等の管理を行うＶＭ管理エージェント５２１、ＶＭＭ５１０を制御するための制御ＩＦ５２２、並びに、ゲストＶＭ間の仮想ネットワークやサーバ５００の物理ＮＩＣ５４０との間のネットワークのスイッチングを行うスイッチ５２３を備える。（なお、本明細書及び図面において、単にスイッチと表記する場合は、仮想スイッチを指すものとする。）ゲストＶＭ間のデータ通信は、ＶＭ管理ブロック５２０のスイッチ５２３を介して行われる。
ゲストＶＭ１３０は、ＶＭＭ５１０上で稼働し、ユーザの情報処理業務を実現する様々なアプリケーションを実行する。
【００２５】
ここで、図１に示すゲストＶＭ５３０は、ＶＭ管理ブロック５２０との間のデータ通信に用いる仮想ネットワーク５３２に接続するためのＮＩＣ５３１を備える。（なお、本明細書及び図面において、単にＮＩＣと表記する場合は、仮想ＮＩＣを指すものとする。）この仮想ネットワーク５３２は、ゲストＶＭ５３０側のＮＩＣ５３１及びＶＭ管理ブロック５２０側のＮＩＣ５２４を介し、ゲストＶＭ５３０とＶＭ管理ブロック５２０とを接続している。ＶＭ管理ブロック５２０側は、さらに、サーバ５００の物理ＮＩＣ５４０を介して他の物理サーバである管理サーバ６００と通信を行うためのＮＩＣ５２５を備える。そして、スイッチ５２３が、ゲストＶＭ５３０及び管理サーバ６００との間のデータ通信が行われるようにスイッチングを行う。すなわち、管理サーバ６００は、ゲストＶＭ５３０にアクセスするときには、まず、サーバ５００の物理ＮＩＣ５４０に対してアクセスし、スイッチ５２３及び仮想ネットワーク５３２を介して、ゲストＶＭ５３０との通信が可能となる。
【００２６】
なお、図１において図示を省略しているが、当該情報処理システムは、仮想化技術により仮想化された物理資源の提供先となるユーザのシステムとも通信可能に接続されている。
【００２７】
＜情報処理システムを模擬した情報処理装置の説明＞
次に、かかる図１に示した情報処理システムを、仮想化環境が構築された１つの情報処理装置において模擬的に構築したシステム構成の一例について、図２を参照しながら説明する。
【００２８】
情報処理装置の一例であるサーバ１０は、ＶＭＭ２０、ＶＭ管理ブロック３０を備える。さらに、ＶＭＭ２０上において、ゲストＶＭ４０、子ゲストＶＭ５０及び管理ゲストＶＭ６０が稼働している。ここで、前述の図１で示した情報処理システムと対比すると、ゲストＶＭ４０がサーバ５００に対応し、管理ゲストＶＭ６０がサーバ２００に対応する。さらに、子ゲストＶＭ６０が、サーバ５００上で動作するゲストＶＭ５３０に対応する。すなわち、図２では、図１の情報処理システムにおける物理サーバであるサーバ５００及びサーバ６００が、サーバ１０のＶＭＭ２０上で動作するゲストＶＭ４０及びゲストＶＭ６０として模擬的に構築されている。そして、サーバ５００上で動作するゲストＶＭ５３０も同じく、ＶＭＭ２０上で動作するゲストＶＭ５０として模擬的に構築されている。このように、各ゲストＶＭ、すなわち、ゲストＶＭ４０、子ゲストＶＭ５０及び管理ゲストＶＭ６０は、いずれもＶＭＭ２０上において同一階層で並列に稼働している。
【００２９】
ＶＭＭ２０は、図１のＶＭＭ１１０と同様に、各ゲストＶＭの配置、移動、削除等の制御を直接行うとともに、ゲストＶＭ間の通信や、あるゲストＶＭと他の物理サーバとの通信を可能にする仮想ネットワークを提供する。なお、本実施形態では、サーバ１０内で情報処理システム全体を模擬しているため、他の物理サーバとの通信を行う仮想ネットワークについては説明を省略する。
【００３０】
ＶＭ管理ブロック３０は、ＶＭＭコントローラ３１を備える。ＶＭＭコントローラ３１は、後述する擬似ＶＭＭ４１から受信する制御指示に基づき、ＶＭＭ２０に対し、サーバ１０で動作する子ゲストＶＭ５０の配置、移動、削除等の指示を出したり、仮想ネットワークの構築を指示したりすることによって、ＶＭＭ２０を制御する。ここで、ＶＭＭコントローラ３１は、サーバ１０が備える記憶装置に格納されたテーブル３２を参照する。このテーブル３２の内訳については後述する。さらに、ＶＭ管理ブロック３０は、ＶＭＭ２０を制御するための制御ＩＦ３４、並びに、ゲストＶＭ間の仮想ネットワークにおけるデータ通信のスイッチングを行うスイッチ３３を備える。
【００３１】
図１のサーバ５００に相当するゲストＶＭ４０は、擬似ＶＭＭ４１及び擬似ＶＭＭ４１の制御を行う子ＶＭ管理ブロック４２を備える。擬似ＶＭＭ４１は、図１のＶＭＭ５１０に対応し、子ＶＭ管理ブロック４２は、図１のＶＭ管理ブロック５２０に対応する。
【００３２】
擬似ＶＭＭ４１は、ゲストＶＭ４０において、ＶＭＭの機能を模擬したものである。ただし、実際のＶＭＭと異なり、擬似ＶＭＭ４１は、ゲストＶＭ４０に従属する子ゲストＶＭの配置、移動、削除等の制御を直接行わず、これらの制御指示を、実際のＶＭＭであるＶＭＭ２０の制御を行うＶＭ管理ブロック３０のＶＭＭコントローラ３１に送信する。かかる処理の際、擬似ＶＭＭ４１は、サーバ１０が備える記憶装置に格納されたテーブル４３を参照する。このテーブル４３の内訳については後述する。
【００３３】
子ＶＭ管理ブロック４２は、ＶＭ管理エージェント４４（管理部）を備える。ＶＭ管理エージェント４４は、ゲストＶＭ４０に従属する子ゲストＶＭ５０の配置、移動、削除等の管理を行う。さらに、子ＶＭ管理ブロック４２は、擬似ＶＭＭ４１を制御するための制御ＩＦ４４、並びに、ゲストＶＭ４０及びＶＭ管理ブロック３０間のデータ通信のスイッチングを行うスイッチ４５を備える。また、子ＶＭ管理ブロック４２は、ＶＭ管理ブロック４０との間の仮想ネットワーク２１に接続するためのＮＩＣ４６及び仮想ネットワーク２２に接続するためのＮＩＣ４７を備える。
【００３４】
子ゲストＶＭ５０では、ユーザの情報処理業務を実現する様々なアプリケーションが実行される。また、子ゲストＶＭ５０は、ＶＭ管理ブロック３０との間の仮想ネットワーク２３に接続するためのＮＩＣ５１を備える。
【００３５】
管理ゲストＶＭ６０では、ＶＭ管理マネージャ６１が稼働している。ＶＭ管理マネージャ６１は、図１におけるＶＭ管理マネージャ６１０に対応し、サーバ１０で動作するゲストＶＭ４０（複数存在すれば全て）に従属する子ゲストＶＭ５０の管理を行う。また、管理ゲストＶＭ６０は、ＶＭ管理ブロック３０との間の仮想ネットワーク２４に接続するためのＮＩＣ６２を備える。
【００３６】
［３．各構成要素間におけるデータの流れ］
次に、図２に示したサーバ１０におけるＶＭＭ２０及びＶＭ管理ブロック３０、ゲストＶＭ４０、子ゲストＶＭ５０並びに管理ゲストＶＭ６０におけるデータの流れについて、図３〜図４を参照しながら説明する。
【００３７】
図３は、ゲストＶＭ４０に従属する子ゲストＶＭ５０の制御指示（例えば、子ゲストＶＭ５０の配置、削除、移動等）の流れについて示している。
管理ゲストＶＭ６０のＶＭ管理マネージャ６１は、ＮＩＣ６２から仮想ネットワーク２４を経由して、ＶＭ管理ブロック３０に子ゲストＶＭ５０の制御指示を送信する（１，２）。この制御指示は、ＶＭ管理ブロック３０において、仮想ネットワーク２４に接続されたＮＩＣ３４から受信される（３）。この制御指示は、ゲストＶＭ４０が送信先となっているため、制御指示は、スイッチ３３においてスイッチングされ（４）、ゲストＶＭ４０との間の仮想ネットワーク２１に接続されたＮＩＣ３５から、仮想ネットワーク２１を経由してゲストＶＭ４０に送信される（５）。ゲストＶＭ４０では、ＮＩＣ４６を介して制御指示を受信すると（６）、ＶＭ管理エージェント４４が、制御指示に応じた処理を行う（７）。
【００３８】
当該（７）の処理の内容として、具体的には、ＶＭ管理エージェント４４は、擬似ＶＭＭ４１に対し、子ゲストＶＭ５０の制御指示を送信する（２１）。しかし、擬似ＶＭＭ４１では、自ら子ゲストＶＭ５０の制御を行うことができないため、実際には、さらに、ＶＭ管理ブロック３０にＶＭの制御指示を送信する。具体的には、擬似ＶＭＭ４１は、制御指示を、ＶＭ管理ブロック３０との間の仮想ネットワーク２１に接続するＮＩＣ４６から、ＶＭ管理ブロック３０に送信する（２１，２２）。ＶＭ管理ブロック３０は、仮想ネットワーク２１に接続されたＮＩＣ３５から、制御指示を受信する（２３）。そして、ＶＭ管理ブロック３０のＶＭＭコントローラ３１がＶＭＭを制御し（２４）、ＶＭＭ２０が、子ゲストＶＭ５０の制御（配備、削除、移動等）を行う（３１）。ＶＭＭコントローラ３１は、ＶＭＭ２０における子ゲストＶＭ５０の制御が完了すると、完了応答を、仮想ネットワーク２１に接続されたＮＩＣ３５から、仮想ネットワーク２１を経由して、ゲストＶＭ４０に送信する（２５）。ゲストＶＭ４０では、ＮＩＣ４６を介して完了応答を受信すると（２６）、擬似ＶＭＭ４１が、ＶＭ管理エージェント４４に完了応答を返信する（２７）。
【００３９】
ＶＭ管理エージェント４４は、完了応答を受信すると、管理ゲストＶＭ６０に対し、完了応答を送信する。このとき、この完了応答は、再びＶＭ管理ブロック３０を経由して管理ゲストＶＭ６０に送信される。具体的には、ＶＭ管理エージェント４４は、完了応答を、ＮＩＣ４６から仮想ネットワーク２１を経由してＶＭ管理ブロック３０に送信する（８）。この完了応答は、ＶＭ管理ブロック３０においてＮＩＣ３５から受信される（９）。この完了応答は、管理ゲストＶＭ６０が送信先となっているため、スイッチ３３が、完了応答をスイッチングし（１０）、管理ゲストＶＭ６０との間の仮想ネットワーク２４に接続されたＮＩＣ３４から、管理ゲストＶＭ６０に送信する（１１）。管理ゲストＶＭ６０では、ＶＭ管理ブロック３０との仮想ネットワーク２４に接続されたＮＩＣ６２から、完了応答を受信する（１２，１３）。
【００４０】
図４は、サーバ１０で稼働するゲストＶＭ間で仮想ネットワークを用いてデータ通信を行う様々な例のうち、ＶＭ制御指示を伴わない通常のデータ（例えばゲストＶＭにおけるアプリケーションの処理データや、ゲストＶＭの性能管理情報等）の流れについて示している。
【００４１】
図４の上段は、管理ゲストＶＭ６０からゲストＶＭ４０にデータを送信する場合のシーケンスを示す。
管理ゲストＶＭ６０のＶＭ管理マネージャ６１は、ＮＩＣ６２から仮想ネットワーク２４を経由して、ＶＭ管理ブロック３０に対し、ゲストＶＭ４０を送信先としたデータを送信する（１，２）。このデータは、ＶＭ管理ブロック３０において、仮想ネットワーク２４に接続されたＮＩＣ３４から受信される（３）。ＶＭ管理ブロック３０のスイッチ３３は、受信したデータをスイッチングし（４）、ゲストＶＭ４０との仮想ネットワーク２１に接続されたＮＩＣ３５から、ゲストＶＭ４０に送信する（５）。ゲストＶＭ４０では、仮想ネットワーク２１に接続されたＮＩＣ４６からデータを受信し（６）、ＶＭ管理エージェント４４がデータを処理する（７）。
【００４２】
図４の中段は、管理ゲストＶＭ６０から子ゲストＶＭ５０にデータを送信する場合のシーケンスを示す。この場合、子ゲストＶＭ５０は、図１の実環境でいえばサーバ５００上で稼働するゲストＶＭ１３０なので、図２のサーバ１０の模擬環境においても、データは、サーバ５００に対応するゲストＶＭ４０を経由することとなる。
【００４３】
管理ゲストＶＭ６０のＶＭ管理マネージャ６１は、ＮＩＣ６２から仮想ネットワーク２４を経由して、ＶＭ管理ブロック３０に対し、ゲストＶＭ４０を送信先とし、さらにその送信先の内訳として子ゲストＶＭ５０を最終送信先としたデータを送信する（１，２）。このデータは、ＶＭ管理ブロック３０において、仮想ネットワーク２４に接続されたＮＩＣ３４から受信される（３）。ＶＭ管理ブロック３０のスイッチ３３は、受信したデータをスイッチングし（４）、ゲストＶＭ４０との仮想ネットワーク２１に接続されたＮＩＣ３５から、ゲストＶＭ４０に送信する（５）。ゲストＶＭ４０では、仮想ネットワーク２１に接続されたＮＩＣ４６からデータを受信する（６）。
【００４４】
ここで、ゲストＶＭ４０では、ＮＩＣ４６を介してデータを受信すると、データの最終送信先が子ゲストＶＭ５０となっているため、スイッチ４５においてスイッチングを行う（７）。すなわち、ゲストＶＭ４０のスイッチ４５は、受信したデータをスイッチングし、仮想ネットワーク２２に接続された仮想ＮＩＣ４７を介してＶＭ管理ブロック３０に送信する（８）。このデータは、ＶＭ管理ブロック３０においてＮＩＣ３６を介して受信される（９）。ＶＭ管理ブロック３０のスイッチ３３は、受信したデータをスイッチングし（１０）、子ゲストＶＭ５０との仮想ネットワーク２３に接続されたＮＩＣ３７から、子ゲストＶＭ５０に送信する（１１）。子ゲストＶＭ５０では、仮想ネットワーク２３に接続されたＮＩＣ５１からデータを受信し（１２）、子ゲストＶＭで実行されるアプリケーションが受信データを処理する（１３）。
【００４５】
図４の下段は、ゲストＶＭ４０から子ゲストＶＭ５０にデータを送信する場合のシーケンスを示す。
ゲストＶＭ４０のＶＭ管理エージェント４４が子ゲストＶＭ５０を送信先としたデータを送信すると、このデータは、子ゲストＶＭ５０に接続するための仮想ネットワーク２２に接続するＮＩＣ４７を介して、ＶＭ管理ブロック３０に送信される（１，２）。このデータは、ＶＭ管理ブロック３０において、仮想ネットワーク２２に接続されたＮＩＣ３６から受信される（３）。ＶＭ管理ブロック３０のスイッチ３３は、受信したデータをスイッチングし（４）、子ゲストＶＭ５０との仮想ネットワーク２３に接続されたＮＩＣ３７から、子ゲストＶＭ５０に送信する（５）。子ゲストＶＭ５０では、仮想ネットワーク２３に接続されたＮＩＣ５１からデータを受信し（６）、子ゲストＶＭで実行されるアプリケーションが受信データを処理する（７）。
【００４６】
［４．仮想ネットワークの接続形態の具体例］
次に、前述のようなサーバ１０において、複数のゲストＶＭ４０及び子ゲストＶＭ５０が起動された状態の仮想ネットワークの接続形態につき、図５に具体例を示して詳細に説明する。なお、図５においては、原則として仮想ネットワークの接続形態の説明に直接関連する構成要素以外については表記を省略している。
【００４７】
本具体例では、管理ゲストＶＭ６０、第１ゲストＶＭ４０Ａ及び第２ゲストＶＭ４０Ｂ、第１ゲストＶＭ４０Ａの子ゲストＶＭである第１子ゲストＶＭ５０Ａ及び第２子ゲストＶＭ５０Ｂ、並びに、第１ゲストＶＭ４０Ａ及び第２ゲストＶＭ４０Ｂの両方が共有する子ゲストＶＭである多重子ゲストＶＭ５０Ｃが稼働している。なお、多重子ゲストＶＭの内容については後述する。
【００４８】
図５に示す仮想ネットワークの接続形態について説明する。例えば、図５の管理ゲストＶＭ６０は、ＮＩＣ［eth0］を介し、仮想ネットワーク１０１によって、ＶＭ管理ブロック３０のＮＩＣ［vif9.0］と接続されている。仮想ネットワークを介して通信されるデータは、少なくとも、送信先のゲストＶＭ４０又は子ゲストＶＭ５０のＮＩＣを特定するＩＰアドレスを有している。例えば、仮想ネットワーク１０１を経由してＶＭ管理ブロック３０が受信したデータは、スイッチ３３において、送信先のゲストＶＭ４０又は子ゲストＶＭ５０に応じて異なる仮想ネットワークにスイッチングされる。
【００４９】
例えば、送信先が第１ゲストＶＭ４０Ａのときには、ＮＩＣ［vif1.0］にスイッチングされ、仮想ネットワーク１０２を経由し、第１ゲストＶＭ４０ＡのＮＩＣ［eth0］へとデータ通信が行われる。また、送信先が第２ゲストＶＭ４０Ｂのときには、ＮＩＣ［vif5.0］にスイッチングされ、仮想ネットワーク１０３を経由し、第２ゲストＶＭ４０ＢのＮＩＣ［eth0］へと接続される。
【００５０】
一方、送信先が第１ゲストＶＭ４０Ａであって最終送信先が第１子ゲストＶＭ５０Ａのときには、まず第１ゲストＶＭ４０Ａを介してデータ通信が行われる。具体的には、管理ゲストＶＭ６０がＮＩＣ［eth0］を介してデータを送信した場合、このデータ通信は、まず、ＮＩＣ［vif1.0］にスイッチングされ、仮想ネットワーク１０２を経由し、第１ゲストＶＭ４０ＡのＮＩＣ［eth0］へと接続される。そして、第１ゲストＶＭ４０Ａのスイッチ４５１にて、ＮＩＣ［vif1.1］へとスイッチングされ、仮想ネットワーク１０４を経由し、ＶＭ管理ブロック３０のＮＩＣ［vif1.2］へとデータ通信が行われる。さらに、スイッチ３３において、ＮＩＣ［vif2.1］にスイッチングされ、仮想ネットワーク１０５を経由し、第１子ゲストＶＭ５０ＡのＮＩＣ［eth0］へとデータ通信が行われる。また、送信先が第２子ゲストＶＭ５０Ｂのときも同様に、ＮＩＣ［vif1.0］から仮想ネットワーク１０２を経由して第１ゲストＶＭ４０ＡのＮＩＣ［eth0］へと接続された後、第１ゲストＶＭ４０Ａのスイッチ４５１にて、ＮＩＣ［vif2.0］へとスイッチングされる。そして、仮想ネットワーク１０６を経由し、ＶＭ管理ブロック３０のＮＩＣ［vif1.3］へとデータ通信が行われ、ＮＩＣ［vif3.0］にスイッチングされる。そして、仮想ネットワーク１０７を経由し、第２子ゲストＶＭ５０ＢのＮＩＣ［eth0］へとデータ通信が行われる。
【００５１】
なお、図５の第１ゲストＶＭ４０Ａ等において、例えば、ＮＩＣ［vif1.0］と［eth1］が対応させて表記されている。これは、ＶＭＭ２０によってＮＩＣが生成されて［eth0］以外の実ＩＦ名が割当てられると、ＶＭ内部で認識する内部ＩＦ名が生成（変換）されるからであり、図５ではその両方について示している。他のＮＩＣについても同様である。なお、かかる変換処理は、仮想化環境の種別（Ｘｅｎ等）に依存するものであり、必ず行われるものでもない。
ここで、前述のデータの送信元と送信先が逆の場合には、前述の通信ルートと逆のルートを辿ることとなる（以下同様）。
【００５２】
第１ゲストＶＭ４０Ａと第１子ゲストＶＭ５０Ａとの通信ルートは、例えば次のようになる。すなわち、第１ゲストＶＭ４０Ａは、第１子ゲストＶＭ５０Ａが送信先であるデータを送信するときには、ＮＩＣ［vif1.0］から仮想ネットワーク１０８を介してＶＭ管理ブロックのＮＩＣ［vif1.1］に送信する。このデータ通信は、スイッチ３３でＮＩＣ［vif2.0］にスイッチングされ、仮想ネットワーク１０９を介して第１子ゲストＶＭ５０ＡのＮＩＣ［eth0］にて受信される。一方で、第１ゲストＶＭ４０Ａと第２子ゲストＶＭ５０Ｂとの通信ルートは次のようになる。すなわち、第１ゲストＶＭ４０Ａは、第２子ゲストＶＭ５０Ｂが送信先であるデータを送信するときには、ＮＩＣ［vif2.0］から仮想ネットワーク１０６を介してＶＭ管理ブロックのＮＩＣ［vif1.2］に送信する。このデータ通信は、スイッチ３３でＮＩＣ［vif2.1］にスイッチングされ、仮想ネットワーク１０７を介して第２子ゲストＶＭ５０ＢのＮＩＣ［eth0］にて受信される。
【００５３】
次に、多重子ゲストＶＭ５０Ｃと他のゲストＶＭとの接続形態について説明する。ここで、「多重子ゲストＶＭ」とは、サーバ１０に構築しているようなシステムの模擬環境において、複数のゲストＶＭ４０の子ゲストＶＭとして多重的に従属させるように設定をした子ゲストＶＭである。換言すれば、多重子ゲストＶＭは、複数のゲストＶＭによって共有（共用）される子ゲストＶＭである。このように多重子ゲストＶＭを用いることによって、実際のＶＭの稼働数を少なくし、使用する物理資源を制限した状態で、大規模環境を模擬することができる。図５の例の多重子ゲストＶＭ５０Ｃは、第１ゲストＶＭ４０Ａに従属する子ゲストＶＭであると同時に、第２ゲストＶＭ４０Ｂに従属する子ゲストＶＭでもある。
【００５４】
第１ゲストＶＭ４０Ａと多重子ゲストＶＭ５０Ｃとの通信ルートは次のようになる。すなわち、第１ゲストＶＭ４０Ａは、多重ゲストＶＭ５０Ｃが送信先であるデータを送信するときには、ＮＩＣ［vif6.0］から仮想ネットワーク１０９を介してＶＭ管理ブロック３０のＮＩＣ［vif1.4］に送信する。このデータ通信は、スイッチ３３でＮＩＣ［vif4.0］にスイッチングされ、仮想ネットワーク１１０を介して多重ゲストＶＭ５０ＣのＮＩＣ［eth0］に接続される。
【００５５】
一方で、第２ゲストＶＭ４０Ｂと多重ゲストＶＭ５０Ｃとの通信ルートは次のようになる。すなわち、第２ゲストＶＭ４０Ｂは、多重ゲストＶＭ５０Ｃが送信先であるデータを送信するときには、ＮＩＣ［vif7.0］から仮想ネットワーク１１１を介してＶＭ管理ブロック３０のＮＩＣ［vif5.1］に送信する。このデータ通信は、スイッチでＮＩＣ［vif4.1］にスイッチングされ、仮想ネットワーク１１２を介して多重ゲストＶＭ５０ＣのＮＩＣ［eth1］に接続される。
【００５６】
なお、多重ゲストＶＭ５０Ｃ側では、どのゲストＶＭ４０の子ゲストＶＭとして動作するかによって、送信するデータの通信ルートを適宜変更する。また、ゲストＶＭ４０からアクセスがなされたとき、例えば、どのＮＩＣを介してアクセスがなされたか等によって、どのゲストＶＭの子ゲストＶＭとしてアクセスがなされたかを特定することができる。具体的には、例えば、多重ゲストＶＭ５０Ｃは、従属先である複数のゲストＶＭ４０のそれぞれとの通信に用いるＮＩＣのＩＰアドレスと、複数のゲストＶＭ４０のそれぞれのＩＰアドレスが対応付けられたリストを有している。なお、新たなゲストＶＭ４０との接続が生成された場合には、このリストの情報が追加されることとなる。そして、多重ゲストＶＭ５０Ｃは、例えば、いずれかのゲストＶＭ４０からＶＭ管理ブロック３０を介して問合せを受信すると、どのＩＰアドレス宛に問合せがあったかを判定する。そして、リストを参照し、問合せがあったＩＰアドレスに応じて、どの子ゲストＶＭとして処理をするかを切り分ける。そして、問合せを受信したＮＩＣから、特定したゲストＶＭ４０の子ゲストＶＭとして、特定したゲストＶＭ４０のＩＰアドレス宛てに応答を送信する。また、同様にして、多重子ゲストＶＭ５０Ｃに対する問合せに含められる、ゲストＶＭ４０ごとに定められた多重子ゲストＶＭ５０Ｃの呼出名等を用いて、通信先のゲストＶＭ４０を特定することも可能である。このような処理により、多重子ゲストＶＭ５０Ｃ側においても、従属先の複数のゲストＶＭ４０とのデータ通信を区別して行うことが実現できる。
【００５７】
なお、このようなシステムの模擬環境において、多重子ゲストＶＭを用いることは当然ながら必須ではない。図５の例では、第１ゲストＶＭ４０Ａ及び第２ゲストＶＭ４０Ｂのそれぞれに対して別個の子ゲストＶＭ５０を稼働させてもよい。
【００５８】
［５．テーブルの構造及びデータの具体例］
次に、ＶＭ管理ブロック３０のＶＭＭコントローラ３１が用いるテーブル３２及びゲストＶＭ４０の擬似ＶＭＭ４１が用いるテーブル４３につき、図５に示した具体例に対応するデータが格納された状態を図６〜図８に示して説明する。
【００５９】
ＶＭＭコントローラ３１は、ＶＭプール管理表、稼働中ＶＭ管理表、稼働中子ＶＭ管理表及び稼働中多重ＶＭ管理表を用いて、サーバ１０で稼働するゲストＶＭ４０及び子ゲストＶＭ５０（多重子ゲストＶＭを含む）を管理している。これらの各テーブルの情報は、ＶＭＭコントローラ３１が後述するＶＭ制御処理を行うときに、適宜参照又は更新する。
【００６０】
ＶＭＭコントローラ３１のＶＭプール管理表は、模擬環境であるサーバ１０において稼働させる（すなわち模擬する）可能性がある全ての子ゲストＶＭ５０に関する情報が全て格納されるテーブルである。換言すれば、サーバ１０で稼働される子ゲストＶＭ５０は、このＶＭプール管理表に登録されていることを前提とする。ＶＭプール管理表のデータは、予めシステム管理者等が設定しておく。ＶＭプール管理表は、図６（Ａ）に示すように、実ＶＭ名、ＮＩＣ数、多重ＶＭフラグ及び多重ＶＭ用呼出名の項目を含む。実ＶＭ名とは、ＶＭＭ２０が認識する子ゲストＶＭの名称である。ＮＩＣ数は、各子ゲストＶＭが備えるＮＩＣの数である。多重ＶＭフラグは、ＶＭが多重子ゲストＶＭであるか否かを示すフラグである。多重ＶＭ用呼出名は、ＶＭが多重子ゲストＶＭである場合において、従属先のゲストＶＭごとに定められる呼出名である。例えば、多重子ゲストＶＭ５０Ｃは、実ＶＭ名が「MUL_VM_X」という１つの子ゲストＶＭであるが、第１ゲストＶＭ４０Ａからの多重ＶＭ用呼出名が「SV_A_VM_X」である一方、第２ゲストＶＭ４０Ｂからの多重ＶＭ用呼出名は「SV_B_VM_X」である。
【００６１】
ＶＭＭコントローラ３１の稼働中ＶＭ管理表は、サーバ１０において現在稼働しているゲストＶＭ４０に関する情報が格納されるテーブルである。稼働中ＶＭ管理表は、図６（Ｂ）に示すように、実ＶＭ名、実ＶＭＩＤ、ＮＩＣの項目を含む。実ＶＭＩＤは、ゲストＶＭごとに振られる番号である。ＮＩＣは、ゲストＶＭ４０への仮想ネットワークに接続された、ＶＭ管理ブロック３０のＮＩＣを示す。
【００６２】
ＶＭＭコントローラ３１の稼働中子ＶＭ管理表は、サーバ１０において現在稼働している子ゲストＶＭ５０に関する情報が格納されるテーブルである。稼働中子ＶＭ管理表は、図６（Ｃ）に示すように、実ＶＭ名、実ＶＭＩＤ、擬似ＶＭＭ稼働ＶＭ、並びに、ＮＩＣとして、ＶＭ側ＩＦ名及び擬似ＶＭＭ側ＩＦ名の項目を含む。擬似ＶＭＭ稼働ＶＭは、子ゲストＶＭを制御する擬似ＶＭＭ４１が稼働しているゲストＶＭ４０、すなわち、子ゲストＶＭの従属先のゲストＶＭ４０の実ＶＭ名を示す。また、ＮＩＣのＶＭ側ＩＦ名は、子ゲストＶＭ５０との仮想ネットワークに接続された、ＶＭ管理ブロックにおけるＮＩＣを示す。一方、擬似ＶＭＭ側ＩＦ名は、子ゲストＶＭ５０を制御する擬似ＶＭＭ４１が稼働するゲストＶＭ４０との仮想ネットワークに接続された、ＶＭ管理ブロックにおけるＮＩＣを示す（括弧の中は、ゲストＶＭ４０側で初期設定されたＮＩＣを示す）。
【００６３】
ＶＭＭコントローラ３１の稼働中多重ＶＭ管理表は、サーバ１０において現在稼働している子ゲストＶＭ５０のうち、多重子ゲストＶＭ５０に関する情報が格納されるテーブルである。稼働中多重ＶＭ管理表は、図６（Ｄ）に示すように、実ＶＭ名、実ＶＭＩＤ、多重ＶＭ用呼出名、擬似ＶＭＭ稼働ＶＭ、並びに、ＮＩＣとして、ＶＭ側ＩＦ名及び擬似ＶＭＭ側ＩＦ名の項目を含む。
【００６４】
一方、各ゲストＶＭ４０の擬似ＶＭＭ４１は、従属ＶＭプール管理表及び稼働中従属子ＶＭ管理表を用いて、自ゲストＶＭ４０に従属する子ゲストＶＭ５０を管理する。図７に示すのが、第１ゲストＶＭ４０Ａの擬似ＶＭＭ４１Ａが管理する表であり、図８に示すのが、第２ゲストＶＭ４０Ｂの擬似ＶＭＭ４１Ｂが管理する表である。第１ゲストＶＭ４０Ａ及び第２ゲストＶＭ４０Ｂのいずれも、管理するテーブルの構造自体は同じである。これらの各テーブルの情報は、擬似ＶＭＭ４１が後述するＶＭ制御処理を行うときに、適宜参照又は更新する。
【００６５】
擬似ＶＭＭ４１の従属ＶＭプール管理表は、模擬環境であるサーバ１０において稼働させる可能性がある子ゲストＶＭのうち、自ゲストＶＭ４０に従属する全ての子ゲストＶＭに関する情報が格納されるテーブルである。このテーブルのデータは、予めシステム管理者等が設定しておく。内部ＶＭ管理表は、図６（Ａ）及び図７（Ａ）に示すように、内部ＶＭ名、実ＶＭ名、ＮＩＣ数の項目を含む。内部ＶＭ名は、擬似ＶＭＭ４１が稼働するゲストＶＭ４０内部で認識する子ゲストＶＭ名である一方、実ＶＭ名は、ＶＭＭ２０側で認識するＶＭ名である。ＮＩＣ数は、子ゲストＶＭ５０が備えるＮＩＣの数である。
【００６６】
擬似ＶＭＭ４１の稼働中従属ＶＭ管理表は、サーバ１０において現在稼働している、自ゲストＶＭ４０に従属する子ゲストＶＭに関する情報が格納されるテーブルである。稼働中対象ＶＭ管理表は、図６（Ｂ）及び図７（Ｂ）に示すように、内部ＶＭ名、内部ＶＭＩＤ、実ＶＭ名、ＮＩＣ数、及び、当該ＶＭに接続するためのＮＩＣとして、内部ＩＦ名及び実ＩＦ名の項目を含む。内部ＶＭＩＤは、擬似ＶＭＭ４１が認識する子ゲストＶＭの番号である。ＮＩＣの内部ＩＦ名（eth）は、子ゲストＶＭ５０への仮想ネットワークに接続されたＮＩＣを示す。一方、実ＩＦ名（vif）は、ゲストＶＭ４０が配備されたときにＶＭＭ２０によって初期設定されたＮＩＣを示す。擬似ＶＭＭ４１では、前述したように、ＶＭＭ２０によってＮＩＣが生成されて実ＩＦ名が割当てられると、ＶＭ内部で認識する内部ＩＦ名に変換するため、稼働中従属ＶＭ管理表ではその対応関係を保持している。
【００６７】
［６．擬似ＶＭＭ及びＶＭＭコントローラによる子ゲストＶＭの制御処理］
次に、実環境におけるゲストＶＭの制御処理に相当する処理、すなわち、ゲストＶＭ４０に従属する子ゲストＶＭ５０の制御を行う際に、擬似ＶＭＭ４１及びＶＭＭコントローラ３１で実行される処理について、図９〜図１１を参照しながら説明する。
【００６８】
図９は、擬似ＶＭＭ４１による子ゲストＶＭ５０の制御処理を示す。
Ｓ１にて、擬似ＶＭＭ４１が、ゲストＶＭ４０のＶＭ管理エージェント４４からＶＭ制御指示のコマンドを受信する。この制御指示では、内部ＶＭ名が指定されている。なお、前提として、ＶＭ管理エージェント４４は、管理ゲストＶＭ６０のＶＭ管理マネージャ６１からＶＭ制御指示を受信したことを契機として、制御指示のコマンドを擬似ＶＭＭ４１に送信する。
【００６９】
Ｓ２にて、擬似ＶＭＭ４１は、制御指示の対象の子ゲストＶＭ５０が、従属ＶＭプール管理表に登録されているか否かを判定する。登録されていればＳ３に進み（Ｙｅｓ）、登録されていなければＳ１９に進む（Ｎｏ）。
【００７０】
Ｓ３にて、擬似ＶＭＭ４１は、従属ＶＭプール管理表を参照し、制御指示の対象の子ゲストＶＭ５０の内部ＶＭ名を、ＶＭＭ２０が認識可能な実ＶＭ名に変換する。
Ｓ４にて、擬似ＶＭＭ４１は、制御指示が、ＶＭ配備に係るものであるか否かを判定する。ＶＭ配備に係るものであればＳ６に進み（Ｙｅｓ）、ＶＭ配備に係るものでなければＳ５に進む（Ｎｏ）。
【００７１】
Ｓ５にて、擬似ＶＭＭ４１は、制御指示が、ＶＭ移動の制御指示であって移動先のゲストＶＭ４０における指示（以下、ＶＭ移動（移動先）の制御指示、と表記する）に係るものであるか否かを判定する。ＶＭ移動（移動先）に係るものであればＳ６に進み（Ｙｅｓ）、ＶＭ移動に係るものでなければＳ７に進む（Ｎｏ）。
【００７２】
Ｓ６にて、擬似ＶＭＭ４１は、制御指示の対象の子ゲストＶＭ５０が、稼働中従属ＶＭ管理表にすでに登録されているか否かを判定する。登録されていなければＳ８に進み（Ｙｅｓ）、登録されていればＳ１９に進む（Ｎｏ）。
【００７３】
Ｓ７にて、擬似ＶＭＭ４１は、制御指示の対象の子ゲストＶＭ５０が、稼働中従属ＶＭ管理表に登録されていないか否かを判定する。なお、このＳ７の判定は、ＶＭ配備又はＶＭ移動（移動先）に係るもの以外のＶＭ制御指示、例えば、ＶＭ削除や、ＶＭ移動の制御指示であって移動元のゲストＶＭ４０における指示（以下、ＶＭ移動（移動元）の制御指示、と表記する）に係るものに対して適用されることとなる。登録されていなければＳ１９に進み（Ｙｅｓ）、登録されていればＳ８に進む（Ｎｏ）。
【００７４】
Ｓ８にて、擬似ＶＭＭ４１は、ＶＭ管理ブロック３０にＶＭ制御指示を送信し、ＶＭ制御の処理を依頼する。この制御指示では、制御対象の子ゲストＶＭ５０の実ＶＭ名が指定されている。
【００７５】
Ｓ９にて、擬似ＶＭＭ４１は、制御指示に基づくＶＭ制御が正常に終了したか否か、換言すれば、ＶＭ管理ブロック３０から正常終了の応答があったか否かを判定する。正常終了の応答があった場合にはＳ１０に進み（Ｙｅｓ）、エラー応答があった場合にはＳ１９に進む（Ｎｏ）。
【００７６】
Ｓ１０にて、擬似ＶＭＭ４１は、従属ＶＭプール管理表を参照し、ＶＭＭ２０から正常応答のあった、制御指示の対象の子ゲストＶＭの実ＶＭ名を、内部ＶＭ名に変換する。
Ｓ１１にて、擬似ＶＭＭ４１は、制御指示が、ＶＭ配備に係るものであるか否かを判定する。ＶＭ配備に係るものであればＳ１３に進み（Ｙｅｓ）、ＶＭ配備に係るものでなければＳ１２に進む（Ｎｏ）。
【００７７】
Ｓ１２にて、擬似ＶＭＭ４１は、制御指示が、ＶＭ移動（移動先）に係るものであるか否かを判定する。ＶＭ移動（移動先）に係るものであればＳ１３に進み（Ｙｅｓ）、ＶＭ移動（移動先）に係るものでなければＳ１５に進む（Ｎｏ）。
【００７８】
Ｓ１３にて、擬似ＶＭＭ４１は、ＶＭＭ２０によって生成されたＮＩＣの実ＩＦ名（eth）を、内部ＩＦ名（vif）に変更する。
Ｓ１４にて、擬似ＶＭＭ４１は、稼働中従属ＶＭ管理表に、制御指示の対象の子ゲストＶＭの情報を登録する。具体的には、擬似ＶＭＭ４１は、子ゲストＶＭ５０の内部ＶＭＩＤを割り振り、内部ＶＭ名、内部ＶＭＩＤ、実ＶＭ名、ＮＩＣの内部ＩＦ名及び実ＩＦ名を登録する。
【００７９】
Ｓ１５にて、擬似ＶＭＭ４１は、制御指示が、ＶＭ削除に係るものであるか否かを判定する。ＶＭ削除に係るものであればＳ１７に進み（Ｙｅｓ）、ＶＭ削除に係るものでなければＳ１６に進む（Ｎｏ）。
【００８０】
Ｓ１６にて、擬似ＶＭＭ４１は、制御指示が、ＶＭ移動（移動元）に係るものであるか否かを判定する。ＶＭ移動（移動元）に係るものであればＳ１７に進み（Ｙｅｓ）、ＶＭ移動（移動元）に係るものでなければＳ１８に進む（Ｎｏ）。
【００８１】
Ｓ１７にて、擬似ＶＭＭ４１は、制御指示の対象の子ゲストＶＭの情報を、稼働中従属ＶＭ管理表から削除する。
Ｓ１８にて、擬似ＶＭＭ４１は、ＶＭ管理エージェント４４に対し、制御指示に係るＶＭ制御が完了した旨の正常応答を送信する。
【００８２】
Ｓ１９にて、擬似ＶＭＭ４１は、ＶＭ管理エージェント４４に対し、制御指示に係るＶＭ制御が異常終了した旨のエラー応答を送信する。
次に、ゲストＶＭ４０の子ゲストＶＭ５０の制御を行う際に、ＶＭＭコントローラ３１で実行される処理のうち、多重子ゲストＶＭ５０でない通常の子ゲストＶＭ５０を対象としたＶＭ制御指示に基づく制御処理について、図１０を参照しながら説明する。
【００８３】
Ｓ２１にて、ＶＭＭコントローラ３１は、ゲストＶＭ４０の擬似ＶＭＭ４１から制御指示のコマンドを受信する。このＶＭ制御指示では、制御対象の子ゲストＶＭ５０につき、前述の擬似ＶＭＭ４１内の処理によって内部ＶＭ名から変換された実ＶＭ名が指定されており、また、当該ＶＭが多重子ゲストＶＭでないことを示す識別子が含まれている。
【００８４】
Ｓ２２にて、ＶＭＭコントローラ３１は、制御指示の対象の子ゲストＶＭ５０が、ＶＭプール管理表に登録されているか否かを判定する。登録されていればＳ２３に進み（Ｙｅｓ）、登録されていなければＳ４８に進む（Ｎｏ）。
【００８５】
Ｓ２３にて、ＶＭＭコントローラ３１は、制御指示が、ＶＭ配備に係るものであるか否かを判定する。ＶＭ配備に係るものであればＳ２４に進み（Ｙｅｓ）、ＶＭ配備に係るものでなければＳ３０に進む（Ｎｏ）。
【００８６】
Ｓ２４にて、ＶＭＭコントローラ３１は、配備指示の対象の子ゲストＶＭ５０が、稼働中子ＶＭ管理表にすでに登録されているか否かを判定する。対象子ゲストＶＭが登録されている場合にはＳ４８に進み（Ｙｅｓ）、登録されていない場合にはＳ２５に進む（Ｎｏ）。
【００８７】
Ｓ２５にて、ＶＭＭコントローラ３１は、ＶＭＭ２０に対し、配備指示の対象の子ゲストＶＭ５０の配備指示のコマンドを発行する。ＶＭＭ２０では、当該コマンドに応じて、子ゲストＶＭ５０を配備する処理を行う。
【００８８】
Ｓ２６にて、ＶＭＭコントローラ３１は、ＶＭ配備が正常に終了したか否か、換言すれば、ＶＭＭ２０から正常終了の応答があったか否かを判定する。正常終了の応答があった場合にはＳ２７に進み（Ｙｅｓ）、エラー応答があった場合にはＳ４８に進む（Ｎｏ）。
【００８９】
Ｓ２７にて、ＶＭＭコントローラ３１は、ＶＭ管理ブロック３０側において、配備した子ゲストＶＭに接続するためのＮＩＣを追加する。一方で、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、配備指示の送信元のゲストＶＭ４０に新たなＮＩＣを追加する。そして、当該追加したＮＩＣと接続するためのＮＩＣをＶＭ管理ブロック３０側にも追加する。
【００９０】
Ｓ２８にて、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、配備した子ゲストＶＭ５０のＮＩＣと配備指示の送信元のゲストＶＭ４０のＮＩＣとを、仮想ネットワークによって接続する。このとき、スイッチ３３にて、配備した子ゲストＶＭ５０との間の仮想ネットワークと配備指示の送信元のゲストＶＭ４０との間の仮想ネットワークとを接続するようにスイッチングの設定を行う。
【００９１】
Ｓ２９にて、ＶＭＭコントローラ３１は、稼働中子ＶＭ管理表に、配備した子ゲストＶＭの情報を登録する。具体的には、ＶＭＭコントローラ３１は、配備した子ゲストＶＭの実ＶＭＩＤを割り振り、実ＶＭ名、実ＶＭＩＤ、擬似ＶＭＭ稼働ＶＭ（すなわち、配備指示の送信元のゲストＶＭ４０）、ＮＩＣのＶＭ側ＩＦ名（子ゲストＶＭ５０側に接続するＮＩＣのＩＦ名）及び擬似ＶＭＭ側ＩＦ名（擬似ＶＭＭ４１側に接続するＮＩＣのＩＦ名）を登録する。
【００９２】
Ｓ３０にて、ＶＭＭコントローラ３１は、制御指示が、ＶＭ削除に係るものであるか否かを判定する。ＶＭ削除に係るものであればＳ３１に進み（Ｙｅｓ）、ＶＭ削除に係るものでなければＳ３７に進む（Ｎｏ）。
【００９３】
Ｓ３１にて、ＶＭＭコントローラ３１は、削除指示の対象の子ゲストＶＭ５０が、稼働中ＶＭ管理表に登録されているか否かを判定する。登録されていればＳ３２に進み（Ｙｅｓ）、登録されていなければＳ４８に進む（Ｎｏ）。
【００９４】
Ｓ３２にて、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、削除指示の対象の子ゲストＶＭ５０とＶＭ削除指示の送信元のゲストＶＭ４０との接続を切断する。
Ｓ３３にて、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、削除指示の送信元のゲストＶＭ４０から、削除指示の対象の子ゲストＶＭ５０に接続されたＮＩＣを削除する。さらに、ＶＭＭコントローラ３１は、ＶＭ管理ブロック３０から、削除指示の対象の子ゲストＶＭ５０に接続されたＮＩＣを削除する。
【００９５】
Ｓ３４にて、ＶＭＭコントローラ３１は、ＶＭＭ２０に対し、削除指示の対象の子ゲストＶＭ５０の削除指示のコマンドを発行する。ＶＭＭ２０では、当該コマンドに応じて、子ゲストＶＭ５０を削除する処理を行う。
【００９６】
Ｓ３５にて、ＶＭＭコントローラ３１は、ＶＭ削除が正常に終了したか否か、換言すれば、ＶＭＭ２０から正常終了の応答があったか否かを判定する。正常終了の応答があった場合にはＳ３６に進み（Ｙｅｓ）、エラー応答があった場合にはＳ４８に進む（Ｎｏ）。
【００９７】
Ｓ３６にて、ＶＭＭコントローラ３１は、稼働中ＶＭ管理表から、削除した子ゲストＶＭ５０の情報を削除する。
Ｓ３７にて、ＶＭＭコントローラ３１は、ＶＭ制御指示が、ＶＭ移動（移動元）に係るものであるか否かを判定する。ＶＭ移動（移動元）に係るものであればＳ３８に進み（Ｙｅｓ）、ＶＭ移動（移動元）に係るものでなければＳ４２に進む（Ｎｏ）。
【００９８】
Ｓ３８にて、ＶＭＭコントローラ３１は、ＶＭ移動指示の対象の子ゲストＶＭが、稼働中子ＶＭ管理表に登録されているか否かを判定する。登録されていればＳ３９に進み（Ｙｅｓ）、登録されていなければＳ４８に進む（Ｎｏ）。
【００９９】
Ｓ３９にて、ＶＭＭコントローラ３１は、移動指示の対象の子ゲストＶＭ５０と移動指示の送信元のゲストＶＭ４０（すなわち、移動対象の子ゲストＶＭ５０の移動前における従属先のゲストＶＭ４０）との仮想ネットワークの接続を切断する。
【０１００】
Ｓ４０にて、ＶＭＭコントローラ３１は、移動指示の送信元のゲストＶＭ４０から、移動指示の対象の子ゲストＶＭ５０に接続されたＮＩＣを削除する。
Ｓ４１にて、ＶＭＭコントローラ３１は、稼働中ＶＭ管理表に、移動指示の対象子ゲストＶＭ５０の情報を反映させる。なお、この段階では、移動制御の途中段階であるため、具体的には、ＶＭＭコントローラ３１は、例えば、移動対象の子ゲストＶＭ５０の擬似ＶＭＭ稼働ＶＭ及びＮＩＣの擬似ＶＭＭ側ＩＦ名を一時的にブランクにする等の変更を行う。
【０１０１】
Ｓ４２にて、ＶＭＭコントローラ３１は、制御指示が、ＶＭ移動（移動先）に係るものであるか否かを判定する。ＶＭ移動（移動先）に係るものであればＳ４３に進み（Ｙｅｓ）、ＶＭ移動（移動先）に係るものでなければＳ４７に進む（Ｎｏ）。なお、ここでＳ４７に進む場合とは、例えば、制御指示の一種として、子ゲストＶＭ５０の状態取得の指示等の場合が考えられる。本説明では、かかる状態取得の処理等の説明は省略する。
【０１０２】
Ｓ４３にて、ＶＭＭコントローラ３１は、移動指示の対象の子ゲストＶＭが、稼働中子ＶＭ管理表に登録されているか否かを判定する。登録されていればＳ４４に進み（Ｙｅｓ）、登録されていなければＳ４８に進む（Ｎｏ）。
【０１０３】
Ｓ４４にて、ＶＭＭコントローラ３１は、移動指示の送信元のゲストＶＭ（すなわち、移動対象の子ゲストＶＭ５０の移動後の従属先のゲストＶＭ）に、移動指示の対象の子ゲストＶＭ５０に接続するためのＮＩＣを追加する。
【０１０４】
Ｓ４５にて、ＶＭＭコントローラ３１は、移動指示の対象の子ゲストＶＭ５０のＮＩＣと移動指示の送信元のゲストＶＭ４０のＮＩＣとを、仮想ネットワークによって接続する。このとき、スイッチ３３にて、移動した子ゲストＶＭ５０との間の仮想ネットワークと移動指示の送信元のゲストＶＭ４０との間の仮想ネットワークとを接続するようにスイッチングの設定を行う。
【０１０５】
Ｓ４６にて、ＶＭＭコントローラ３１は、稼働中子ＶＭ管理表に、移動した子ゲストＶＭ５０の情報を反映させる。具体的には、ＶＭＭコントローラ３１は、稼働中子ＶＭ管理表につき、移動した子ゲストＶＭ５０の擬似ＶＭＭ稼働ＶＭを、ＶＭ移動指示の送信元のゲストＶＭに変更するとともに、ＮＩＣの擬似ＶＭＭ側ＩＦ名を変更する。
【０１０６】
Ｓ４７にて、ＶＭＭコントローラ３１は、擬似ＶＭＭ４１に対し、ＶＭ制御指示に係るＶＭ制御が完了した旨の正常応答を送信する。
Ｓ４８にて、ＶＭＭコントローラ３１は、擬似ＶＭＭ４１に対し、ＶＭ制御指示に係るＶＭ制御が異常終了した旨のエラー応答を送信する。
【０１０７】
次に、ゲストＶＭ４０の子ゲストＶＭ５０の制御を行う際に、ＶＭＭコントローラ３１で実行される処理のうち、多重子ゲストＶＭ５０を対象としたＶＭ制御指示に基づくＶＭ制御処理について、図１１を参照しながら説明する。
【０１０８】
Ｓ５１にて、ＶＭＭコントローラ３１は、ゲストＶＭ４０の擬似ＶＭＭ４１から制御指示のコマンドを受信する。このＶＭ制御指示では、制御対象の多重子ゲストＶＭ５０につき、前述の擬似ＶＭＭ４１内の処理によって内部ＶＭ名から変換された実ＶＭ名（すなわち、ＶＭＭコントローラ３１がＶＭプール管理表等で保持している多重ＶＭ用呼出名）が指定されており、また、当該ＶＭが多重子ゲストＶＭであることを示す識別子が含まれている。
【０１０９】
Ｓ５２にて、ＶＭＭコントローラ３１は、制御指示の対象の多重子ゲストＶＭ５０が、ＶＭプール管理表に登録されているか否かを判定する。登録されていればＳ５３に進み（Ｙｅｓ）、登録されていなければＳ８０に進む（Ｎｏ）。
【０１１０】
Ｓ５３にて、ＶＭＭコントローラ３１は、制御指示が、ＶＭ配備に係るものであるか否かを判定する。ＶＭ配備に係るものであればＳ５４に進み（Ｙｅｓ）、ＶＭ配備に係るものでなければＳ６１に進む（Ｎｏ）。
【０１１１】
Ｓ５４にて、ＶＭＭコントローラ３１は、配備指示の対象の多重子ゲストＶＭ５０が、稼働中多重ＶＭ管理表にすでに登録されているか否かを判定する。登録されていればＳ５５に進み（Ｙｅｓ）、登録されていなければＳ５６に進む（Ｎｏ）。
【０１１２】
Ｓ５５にて、ＶＭＭコントローラ３１は、配備指示の対象の多重子ゲストＶＭ５０に、配備指示の送信元のゲストＶＭ４０とのデータ通信を行うためのＮＩＣを追加する。
Ｓ５６にて、ＶＭＭコントローラ３１は、ＶＭＭ２０に対し、配備指示の対象の多重子ゲストＶＭ５０の配備指示のコマンドを発行する。ＶＭＭ２０では、当該コマンドに応じて、多重子ゲストＶＭ５０を配備する処理を行う。
【０１１３】
Ｓ５７にて、ＶＭＭコントローラ３１は、ＶＭ配備が正常に終了したか否か、換言すれば、ＶＭＭ２０から正常終了の応答があったか否かを判定する。正常終了の応答があった場合にはＳ５８に進み（Ｙｅｓ）、エラー応答があった場合にはＳ８０に進む（Ｎｏ）。
【０１１４】
Ｓ５８にて、ＶＭＭコントローラ３１は、ＶＭ管理ブロック３０側において、ＮＩＣの追加を行った又は新たに配備した多重子ゲストＶＭ５０のＮＩＣに接続するためのＮＩＣを追加する。一方で、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、配備指示の送信元のゲストＶＭ４０に新たにＮＩＣを追加する。そして、当該追加したＮＩＣと接続するためのＮＩＣをＶＭ管理ブロック３０側にも追加する。
【０１１５】
Ｓ５９にて、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、ＮＩＣの追加を行った又は新たに配備した多重子ゲストＶＭのＮＩＣと配備指示の送信元のゲストＶＭのＮＩＣとを、仮想ネットワークによって接続する。このとき、スイッチ３３にて、配備した子ゲストＶＭとの間の仮想ネットワークとＶＭ制御指示の送信元のゲストＶＭ４０との間の仮想ネットワークとを接続するようにスイッチングの設定を行う。
【０１１６】
Ｓ６０にて、ＶＭＭコントローラ３１は、稼働中多重ＶＭ管理表に、配備した多重子ゲストＶＭ５０の情報を登録する。具体的には、ＶＭＭコントローラ３１は、多重子ゲストＶＭ５０を新たに配備した場合には、配備した多重子ゲストＶＭの実ＶＭＩＤを割り振り、実ＶＭ名、実ＶＭＩＤ、多重ＶＭ呼出名、擬似ＶＭＭ稼働ＶＭ（すなわち、配備指示の送信元のゲストＶＭ）、ＮＩＣのＶＭ側ＩＦ名（多重子ゲストＶＭ５０側に接続するＮＩＣのＩＦ名）及び擬似ＶＭＭ側ＩＦ名（擬似ＶＭＭ４１側に接続するＮＩＣのＩＦ名）を登録する。また、既に配備済みの多重子ゲストＶＭ５０に新たに擬似ＶＭＭ稼働ＶＭを接続した場合には、配備指示の送信元のゲストＶＭ４０からの多重ＶＭ呼出名、擬似ＶＭＭ稼働ＶＭ、ＮＩＣのＶＭ側ＩＦ名及び擬似ＶＭＭ側ＩＦ名を追加する。
【０１１７】
Ｓ６１にて、ＶＭＭコントローラ３１は、ＶＭ制御指示が、ＶＭ削除に係るものであるか否かを判定する。ＶＭ削除に係るものであればＳ６２に進み（Ｙｅｓ）、ＶＭ削除に係るものでなければＳ６９に進む（Ｎｏ）。
【０１１８】
Ｓ６２にて、ＶＭＭコントローラ３１は、削除指示の対象の子ゲストＶＭ５０が、稼働中ＶＭ管理表に登録されているか否かを判定する。登録されていればＳ６３に進み（Ｙｅｓ）、登録されていなければＳ６９に進む（Ｎｏ）。
【０１１９】
Ｓ６３にて、ＶＭＭコントローラ３１は、削除指示の対象の多重子ゲストＶＭ５０とＶＭ削除指示の送信元のゲストＶＭ４０との接続を切断する。
Ｓ６４にて、ＶＭＭコントローラ３１は、削除指示の送信元のゲストＶＭ４０から、削除対象の多重子ゲストＶＭ５０との通信に用いるＮＩＣを削除する。さらに、ＶＭＭコントローラ３１は、ＶＭ管理ブロック３０から、削除指示の対象の多重子ゲストＶＭ５０のＮＩＣに接続されたＮＩＣを削除する。
【０１２０】
Ｓ６５にて、ＶＭＭコントローラ３１は、削除指示の対象の多重子ゲストＶＭ５０に接続するゲストＶＭ４０が存在するか否かを判定する。存在すればＳ６８に進み（Ｙｅｓ）、存在しない場合にはＳ６６に進む（Ｎｏ）。
【０１２１】
Ｓ６６にて、ＶＭＭコントローラ３１は、ＶＭＭ２０に対し、削除指示の対象の多重子ゲストＶＭ５０の削除指示のコマンドを発行する。ＶＭＭ２０では、当該コマンドに応じて、多重子ゲストＶＭ５０を削除する処理を行う。
【０１２２】
Ｓ６７にて、ＶＭＭコントローラ３１は、ＶＭ削除が正常に終了したか否か、換言すれば、ＶＭＭ２０から正常終了の応答があったか否かを判定する。正常終了の応答があった場合にはＳ６８に進み（Ｙｅｓ）、エラー応答があった場合にはＳ８０に進む（Ｎｏ）。
【０１２３】
Ｓ６８にて、ＶＭＭコントローラ３１は、稼働中多重ＶＭ管理表から、削除した多重子ゲストＶＭ５０の情報を削除する。このとき、多重子ゲストＶＭ５０に接続する一部のゲストＶＭ４０との仮想ネットワークの接続のみ削除した場合（多重子ゲストＶＭ５０自体の削除を行っていない場合）には、削除指示の送信元のゲストＶＭ４０が擬似ＶＭＭ稼働ＶＭとなっている情報のみを削除する。
【０１２４】
Ｓ６９にて、ＶＭＭコントローラ３１は、制御指示が、ＶＭ移動（移動元）に係るものであるか否かを判定する。ＶＭ移動（移動元）に係るものであればＳ７０に進み（Ｙｅｓ）、ＶＭ移動（移動元）に係るものでなければＳ７４に進む（Ｎｏ）。
【０１２５】
Ｓ７０にて、ＶＭＭコントローラ３１は、移動指示の対象の多重子ゲストＶＭ５０が、稼働中多重ＶＭ管理表に登録されているか否かを判定する。登録されていればＳ７１に進み（Ｙｅｓ）、登録されていなければＳ８０に進む（Ｎｏ）。
【０１２６】
Ｓ７１にて、ＶＭＭコントローラ３１は、移動指示の対象の多重子ゲストＶＭ５０のＮＩＣと制御指示の送信元のＶＭ（すなわち、移動対象の多重子ゲストＶＭ５０の移動前における従属先のゲストＶＭ４０）との仮想ネットワークの接続を切断する。
【０１２７】
Ｓ７２にて、ＶＭＭコントローラ３１は、移動指示の送信元のゲストＶＭ４０から、移動指示の対象の多重子ゲストＶＭ５０に接続されたＮＩＣを削除する。
Ｓ７３にて、ＶＭＭコントローラ３１は、稼働中多重ＶＭ管理表に、ＶＭ移動指示の対象の多重子ゲストＶＭ５０の情報を反映させる。なお、この段階では、ＶＭ移動制御の途中段階であるため、具体的には、ＶＭＭコントローラ３１は、例えば、対象の多重子ゲストＶＭ５０の情報のうち、擬似ＶＭＭ稼働ＶＭがＶＭ移動指示の送信元のゲストＶＭ４０である情報における、擬似ＶＭＭ稼働ＶＭ及びＮＩＣの擬似ＶＭＭ側ＩＦ名を一時的にブランクにする等の変更を行う。
【０１２８】
Ｓ７４にて、ＶＭＭコントローラ３１は、制御指示が、ＶＭ移動（移動先）に係るものであるか否かを判定する。ＶＭ移動（移動先）に係るものであればＳ７５に進み（Ｙｅｓ）、ＶＭ移動（移動先）に係るものでなければＳ７９に進む（Ｎｏ）。
【０１２９】
Ｓ７５にて、ＶＭＭコントローラ３１は、移動指示の対象の多重子ゲストＶＭ５０が、稼働中多重ＶＭ管理表に登録されているか否かを判定する。登録されていればＳ７６に進み（Ｙｅｓ）、登録されていなければＳ８０に進む（Ｎｏ）。
【０１３０】
Ｓ７６にて、ＶＭＭコントローラ３１は、制御指示の送信元のＶＭ（すなわち、移動対象の子ゲストＶＭ５０の移動後の従属先のゲストＶＭ）に、移動対象の多重子ゲストＶＭ５０に接続するためのＮＩＣを追加する。
【０１３１】
Ｓ７７にて、ＶＭＭコントローラ３１は、移動指示の対象の多重子ゲストＶＭ５０のＮＩＣとＶＭ移動指示の送信元のゲストＶＭ４０のＮＩＣとを、仮想ネットワークによって接続する。このとき、スイッチ３３にて、移動した多重子ゲストＶＭ５０との間の仮想ネットワークとＶＭ移動指示の送信元のゲストＶＭ４０との間の仮想ネットワークとを接続するようにスイッチングの設定を行う。
【０１３２】
Ｓ７８にて、ＶＭＭコントローラ３１は、稼働中多重ＶＭ管理表に、移動した多重子ゲストＶＭ５０の情報を反映させる。具体的には、ＶＭＭコントローラ３１は、稼働中多重ＶＭ管理表につき、移動したＶＭの多重ＶＭ呼出名を変更し、移動したＶＭの擬似ＶＭＭ稼働ＶＭを、ＶＭ移動指示の送信元のゲストＶＭに変更するとともに、ＮＩＣの擬似ＶＭＭ側ＩＦ名を変更する。
【０１３３】
Ｓ７９にて、ＶＭＭコントローラ３１は、擬似ＶＭＭ４１に対し、ＶＭ制御指示に係る多重ＶＭ制御が完了した旨の正常応答を送信する。
Ｓ８０にて、ＶＭＭコントローラ３１は、擬似ＶＭＭ４１に対し、ＶＭ制御指示に係る多重ＶＭ制御が異常終了した旨のエラー応答を送信する。
【０１３４】
［７．ＶＭ制御処理による仮想ネットワークの変化の具体例］
ここで、前述した処理のうち、新たに子ゲストＶＭ５０を配備する処理、子ゲストＶＭ５０を移動させる処理及び多重子ゲストＶＭ５０を新たに配備する処理によって仮想ネットワークがどのように変化するかにつき、図１２〜図１８を参照しながら具体例を示して説明する。なお、図１２〜図１８においては、原則として仮想ネットワークの接続形態の説明に直接関連する構成要素以外については表記を省略している。
【０１３５】
＜子ゲストＶＭを配備する処理＞
子ゲストＶＭ５０を新たに配備する処理における仮想ネットワークの変化について、図１２〜図１３を参照しながら説明する。
（１）この処理の開始時において、図１２に示すようなゲストＶＭ４０及び仮想ネットワークの設定状態であることを前提とする。すなわち、管理ゲストＶＭ６０のＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif1.0］が仮想ネットワーク１２１で接続され、第１ゲストＶＭ４０ＡのＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif2.0］が仮想ネットワーク１２２で接続されている。そして、仮想ネットワーク１２１及び１２２は、スイッチ３３を介してスイッチング可能に接続されている。
【０１３６】
（２）この状態において、管理ゲストＶＭ６０からゲストＶＭ４０Ａに対し、子ゲストＶＭ５０Ａの配備指示を送信すると、第１ゲストＶＭ４０Ａの擬似ＶＭＭ４１Ａからの制御指示により、ＶＭＭコントローラ３１が、ＶＭＭ２０に子ゲストＶＭ５０Ａの配備指示を送信する。そして、ＶＭＭ２０が、図１３に示すように、子ゲストＶＭ５０Ａを配備する。この配備した子ゲストＶＭ５０Ａには、配備と同時に、初期状態としてＮＩＣ［eth0］が設定される。ＶＭＭコントローラ３１は、さらに、ＶＭＭ２０を介し、第１ゲストＶＭ４０Ａに新たにＮＩＣ［vif1.0］（初期設定は［eth1］）を追加する一方で、ＶＭ管理ブロック３０にＮＩＣ［vif2.1］を追加し、仮想ネットワーク１２３で接続する。一方、ＶＭＭコントローラ３１は、ＶＭ管理ブロック３０側に、配備した子ゲストＶＭ５０ＡのＮＩＣに接続するＮＩＣ［vif4.0］を追加し、子ゲストＶＭ５０ＡのＮＩＣ［eth0］と仮想ネットワーク１２４で接続する。このとき、ＶＭＭコントローラ３１は、スイッチ３３にて、仮想ネットワーク１２３及び１２４を接続するようにスイッチングの設定を行う。
【０１３７】
このように、本模擬環境では、ゲストＶＭ４０と同一階層に並列して子ゲストＶＭ５０を配備し、子ゲストＶＭ５０に対するデータ通信が従属先のゲストＶＭ４０を介してのみ可能になるように接続をすることで、ゲストＶＭ４０及び子ゲストＶＭ５０の階層構造（従属関係）を実現している。
【０１３８】
＜子ゲストＶＭを移動する処理＞
次に、子ゲストＶＭ５０を移動する処理における仮想ネットワークの変化について、図１４〜図１６を参照しながら説明する。
（１）この処理の開始時において、図１４に示すようなゲストＶＭ及び仮想ネットワークの設定状態であることを前提とする。すなわち、管理ゲストＶＭ６０のＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif1.0］が仮想ネットワーク１３１で接続されている。さらに、第１ゲストＶＭ４０ＡのＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif2.0］が仮想ネットワーク１３２で接続され、第２ゲストＶＭ４０ＢのＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif3.0］が仮想ネットワーク１３３で接続されている。そして、仮想ネットワーク１３１、１３２及び１３３は、スイッチ３３を介してスイッチング可能に接続されている。さらに、第１ゲストＶＭ４０ＡのＮＩＣ［vif1.0］（初期設定は［eth1］）及びＶＭ管理ブロック３０のＮＩＣ［vif2.1］が仮想ネットワーク１３４で接続される一方、子ゲストＶＭ５０ＡのＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif4.0］が仮想ネットワーク１３５で接続されている。そして、仮想ネットワーク１３４及び１３５は、スイッチ３３を介してスイッチング可能に接続されている。
【０１３９】
（２）この状態において、管理ゲストＶＭ６０から第１ゲストＶＭ４０Ａに対し、子ゲストＶＭ５０Ａを第２ゲストＶＭ４０Ｂに移動させる指示を送信すると、移動元であるゲストＶＭ４０Ａの擬似ＶＭＭ４１Ａからの制御指示により、ＶＭＭコントローラ３１が、ＶＭＭ２０に子ゲストＶＭ５０Ａの移動指示を送信する。なお、このとき、第１ゲストＶＭ４０Ａは、移動先となる第２ゲストＶＭ４０Ｂに対し、ＶＭ移動を行うことを通知する。
【０１４０】
（３）ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、図１５に示すように、仮想ネットワーク１３４を削除する（破線部分）。さらに、ＶＭＭコントローラ３１は、第１ゲストＶＭ４０ＡのＮＩＣ［eth1］を削除する一方、ＶＭ管理ブロック３０側において、第１ゲストＶＭ４０Ａとの通信を行うＮＩＣ［vif2.1］を削除する。そして、ＶＭＭコントローラ３１は、移動元の第１ゲストＶＭ４０Ａ及び移動先の第２ゲストＶＭ４０Ｂに対し、当該削除処理が完了したことを通知する。
【０１４１】
（４）通知を受けた移動先の第２ゲストＶＭ４０Ｂの擬似ＶＭＭ４１Ｂは、ＶＭＭコントローラ３１に対し、子ゲストＶＭ５０Ａの移動指示を送信する。ＶＭＭコントローラ３１は、ＶＭＭを介し、図１６に示すように、第２ゲストＶＭ４０ＢのＮＩＣ［vif1.0］（初期設定は［eth1］）を追加する一方で、ＶＭ管理ブロック３０において、第２ゲストＶＭ４０Ｂとの通信を行うＮＩＣ［vif3.1］を追加する。そして、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、第２ゲストＶＭ４０ＢのＮＩＣ［vif1.0］及びＶＭ管理ブロック３０のＮＩＣ［vif3.1］を仮想ネットワーク１３６で接続し、スイッチ３３にて、仮想ネットワーク１３５及び１３６をスイッチングする設定を行う。
【０１４２】
このように、本模擬環境では、実際にサーバ間においてゲストＶＭの移動を行う代わりに、仮想ネットワークの接続を切り替えることによって子ゲストＶＭの移動を実現している。
【０１４３】
＜多重子ゲストＶＭを追加する処理＞
次に、多重子ゲストＶＭ５０を配備する処理であって、すでに配備されている多重子ゲストＶＭ５０に、新たにゲストＶＭ４０を接続する処理における仮想ネットワークの変化について、図１７〜図１８を参照しながら説明する。
【０１４４】
（１）この処理の開始時において、図１７に示すようなゲストＶＭ及び仮想ネットワークの設定状態であることを前提とする。すなわち、管理ゲストＶＭ６０のＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif1.0］が仮想ネットワーク１４１で接続されている。さらに、第１ゲストＶＭ４０ＡのＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif2.0］が仮想ネットワーク１４２で接続され、第２ゲストＶＭ４０ＢのＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif3.0］が仮想ネットワーク１４３で接続されている。そして、仮想ネットワーク１４１、１４２及び１４３は、スイッチ３３を介してスイッチング可能に接続されている。さらに、第１ゲストＶＭ４０ＡのＮＩＣ［vif1.0］（初期設定は［eth1］）及びＶＭ管理ブロック３０のＮＩＣ［vif2.1］が仮想ネットワーク１４４で接続される一方、多重子ゲストＶＭ５０のＮＩＣ［eth0］及びＶＭ管理ブロック３０のＮＩＣ［vif4.0］が仮想ネットワーク１４５で接続されている。そして、仮想ネットワーク１４４及び１４５は、スイッチ３３を介してスイッチング可能に接続されている。
【０１４５】
（２）この状態において、管理ゲストＶＭ６０から第１ゲストＶＭ４０Ａに対し、多重子ゲストＶＭ５０を配備する指示を第２ゲストＶＭ４０Ｂに送信すると、第２ゲストＶＭ４０Ｂの擬似ＶＭＭ４１Ｂからの制御指示により、ＶＭＭコントローラ３１が、ＶＭＭ２０に多重子ゲストＶＭ５０の配備指示を送信する。
【０１４６】
（３）ここで、この配備対象の多重子ゲストＶＭ５０はすでに配備済みであるため、ＶＭＭコントローラ３１は、ＶＭＭ２０を介し、図１８に示すように、多重子ゲストＶＭ５０に、ＮＩＣ［eth1］を追加する。さらに、ＶＭＭコントローラ３１は、ＶＭ管理ブロック３０において、多重子ゲストＶＭ５０のＮＩＣ［eth1］と通信を行うためのＮＩＣ［vif4.1］を追加し、多重子ゲストＶＭ５０のＮＩＣ［eth1］と仮想ネットワーク１４６で接続する。さらに、第２ゲストＶＭ４０Ｂに新たにＮＩＣ［vif1.0］（初期設定は［eth0］）を追加する一方、ＶＭ管理ブロック３０において、第２ゲストＶＭ４０Ｂと通信を行うためのＮＩＣ［vif3.1］を追加し、仮想ネットワーク１４７で接続する。このとき、ＶＭＭコントローラ３１は、スイッチ３３にて、仮想ネットワーク１４６及び１４７を接続するようにスイッチングの設定を行う。
【０１４７】
このように、本模擬環境では、すでに稼働している多重子ゲストＶＭ５０に対し、新たに従属先となるゲストＶＭ４０との接続をすることで、子ゲストＶＭ５０の数を増やすことなく、実質的に子ゲストＶＭ５０を新たに配備することを実現している。
【０１４８】
［８．本システムによる作用効果等］
前述した実施形態で具現化した技術によれば、１つの情報処理装置であるサーバ１０において、ゲストＶＭ４０と子ゲストＶＭ５０の階層関係（従属関係）を構築することができる。このため、情報処理システムの構成要素であるサーバ及びサーバ上で動作するゲストＶＭを模擬的に構築することができる。これにより、例えば、仮想化技術を適用したシステムの開発環境において、実際の情報処理システムの構成と同様の構成を限られた物理資源で実現し、動作検証を行うことが可能となる。特に、例えば、ゲストＶＭ上で動作する性能管理エージェントの開発等においては、実際にゲストＶＭを起動してＶＭＭと連係した状態において、個別のゲストＶＭの動作状態の情報を収集する動作等につき、動作検証をすることができる。
【０１４９】
ここで、上記実施形態において、実環境において仮想化環境が構築されるサーバで稼働するゲストＶＭに相当する子ゲストＶＭ５０（又は多重ゲストＶＭ６０）が、ＶＭＭ２０上において、仮想化環境が構築されるサーバに相当するゲストＶＭ４０と同じ階層で並列に稼働する。そして、子ゲストＶＭ５０へのデータの流れが必ず従属先のゲストＶＭ４０のスイッチ４５を通るように仮想ネットワークを接続し、子ゲストＶＭ５０が最終送信先となっているデータについては、ゲストＶＭ４０でさらにスイッチングして子ゲストＶＭ５０にデータを送信している。このように、上記実施形態では、子ゲストＶＭ５０がゲストＶＭ４０にあたかも従属しているように各ゲストＶＭを構築している。このため、いわゆるＶＭｏｎＶＭの技術等を適用する必要なく、階層化されたＶＭを構築することができる。そして、かかる構成においては、例えば管理ゲストＶＭ６０等、実環境においてサーバに相当する他のゲストＶＭから子ゲストＶＭ５０にアクセスするときには、実環境と同じく、ゲストＶＭが稼働するサーバに相当するゲストＶＭ４０にアクセスすればよい。
【０１５０】
なお、ゲストＶＭ４０及び子ゲストＶＭ５０を接続しているのと同様にして、子ゲストＶＭ５０に従属する孫ゲストＶＭを構築することも可能である。このように、前述した実施形態によれば、ＶＭの階層の深さに制限を設けることなく模擬環境を実現することができる。
【０１５１】
また、実環境において仮想化環境が構築されるサーバに相当するゲストＶＭ４０には擬似ＶＭＭ４１を設けている。そして、模擬環境を構築したサーバ１０のＶＭＭコントローラ３１に、擬似ＶＭＭ４１からの要求に応じたＶＭ制御処理を実行させている。このように擬似ＶＭＭを設けることにより、模擬環境においても、ゲストＶＭ４０で動作するＶＭ管理エージェント４２側からみたときに、実際のサーバでＶＭ制御処理を行う場合の処理の流れと同様の処理の流れでＶＭ制御を実現することができている。
【０１５２】
さらに、前述したように、多重ゲストＶＭ６０を設け、複数のゲストＶＭ４０が１つの多重ゲストＶＭ６０を共有することによって、実際のＶＭの稼働数を少なくし、使用する物理資源を少なくした状態で、大規模環境を模擬することができる。
【０１５３】
なお、本実施形態では、管理ゲストＶＭ６０が各ゲストＶＭ４０に従属する子ゲストＶＭ５０の制御指示を送信する構成で説明を行ったが、管理ゲストＶＭ６０は必ずしも必要ではない。
【０１５４】
さらに、前述したサーバ１０の機能的構成及び物理的構成は、上述の態様に限るものではなく、例えば、各機能や物理資源を統合して実装したり、逆に、さらに分散して実装したりすることも可能である。
【０１５５】
［９．ハードウェア構成］
図１９は、前述した実施形態のサーバ１０に相当する情報処理装置のハードウェア構成の一例を示す。本情報処理装置は、プロセッサ９０１、メモリ９０２、ストレージ９０３、可搬記憶媒体駆動装置９０４、入出力装置９０５及び通信インタフェース９０６を備える。
【０１５６】
プロセッサ９０１は、制御ユニット、演算ユニット及び命令デコーダ等を含み、実行ユニットが、命令デコーダで解読されたプログラムの命令に従い、制御ユニットより出力される制御信号に応じ、演算ユニットを用いて算術・論理演算を実行する。かかるプロセッサ９０１は、制御に用いる各種情報が格納される制御レジスタ、既にアクセスしたメモリ２等の内容を一時的に格納可能なキャッシュ、及び、仮想記憶のページテーブルのキャッシュとしての機能を果たすＴＬＢを備える。なお、プロセッサ９０１は、ＣＰＵ（Central Processing Unit）コアが複数設けられている構成でもよい。
【０１５７】
メモリ９０２は、例えばＲＡＭ（Random Access Memory）等の記憶装置であり、プロセッサ９０１で実行されるプログラムがロードされるとともに、プロセッサ９０１の処理に用いるデータが格納されるメインメモリである。また、ストレージ９０３は、例えばＨＤＤ（Hard Disk Drive）やフラッシュメモリ等の記憶装置であり、プログラムや各種データが格納される。可搬記憶媒体駆動装置９０４は、可搬記憶媒体９０７に記憶されたデータやプログラムを読み出す装置である。可搬記憶媒体９０７は、例えば磁気ディスク、光ディスク、光磁気ディスク又はフラッシュメモリ等である。なお、プロセッサ９０１は、メモリ９０２やストレージ９０３と協働しつつ、ストレージ９０３や可搬記憶媒体９０７に格納されたプログラムを実行する。なお、プロセッサ９０１が実行するプログラムや、アクセス対象となるデータは、当該情報処理装置と通信可能な他の装置に格納されていてもよい。
【０１５８】
入出力装置９０５は例えばキーボード等やディスプレイ等であり、ユーザ操作等による動作命令を受け付ける一方、情報処理装置による処理結果を出力する。通信インタフェース９０６は例えばＬＡＮ（Local Area Network）カード等であり、外部とのデータ通信を可能にする。前述した情報処理装置の各構成要素は、バス９０８で接続されている。
【０１５９】
なお、上述した各実施形態において、記憶装置に格納されたデータは、当該情報処理装置とは異なる他の装置に含まれる記憶装置に含まれていてもよい。この場合、当該情報処理装置と当該他の装置とが通信可能にネットワーク接続され、当該情報処理装置は、ネットワークを介して当該他の装置の記憶装置にアクセスすることとなる。
【０１６０】
以上の実施形態に関し、更に以下の付記を開示する。
【０１６１】
（付記１）仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザと、
少なくとも、前記ハイパーバイザ上において同一階層で並列に稼働する、仮想スイッチを備えた第１仮想マシン及び該第１仮想マシンに従属する子仮想マシン並びに第２仮想マシンと
を備え、
前記子仮想マシンは前記第１仮想マシンと仮想ネットワークにより接続され、前記第２仮想マシンと前記子仮想マシンとのデータ通信が、少なくとも、前記第１仮想マシンの仮想スイッチ並びに前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークを経由して行われる情報処理装置。
【０１６２】
（付記２）前記子仮想マシンの従属先が前記第１仮想マシンから前記第２仮想マシンへと移動するときに、前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークが切断される一方で、前記第２仮想マシン及び前記子仮想マシン間の仮想ネットワークが接続される付記１に記載の情報処理装置。
【０１６３】
（付記３）前記子仮想マシンは、前記第１仮想マシン及び前記第２仮想マシンの両方に従属し、前記第１仮想マシンと仮想ネットワーク接続される一方で、さらに前記第２仮想マシンと仮想ネットワーク接続され、
前記子仮想マシンに対するデータ通信が、少なくとも、前記第１仮想マシンの仮想スイッチ並びに前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワーク又は前記第２仮想マシンの仮想スイッチ並びに前記第２仮想マシン及び前記子仮想マシン間の仮想ネットワークを経由して行われる付記１又は２に記載の情報処理装置。
【０１６４】
（付記４）仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザ、及び該ハイパーバイザの制御を行うコントローラと、
前記ハイパーバイザの制御下において稼働する仮想マシンであって、自仮想マシンに従属する子仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第１仮想マシンと
を備え、
前記第１仮想マシンの擬似ハイパーバイザは、該第１仮想マシンに従属する子仮想マシンの制御指示を該第１仮想マシンの管理部から受信したときに、該制御指示を前記コントローラに送信し、
前記コントローラは、前記制御指示を受信したときに、該制御指示に基づいて前記子仮想マシンの制御を行うように前記ハイパーバイザを制御する情報処理装置。
【０１６５】
（付記５）前記子仮想マシンは前記第１仮想マシンと仮想ネットワークにより接続され、前記第１仮想マシン以外の他の仮想マシンと前記子仮想マシンとのデータ通信が、少なくとも、前記第１仮想マシンの仮想スイッチ並びに前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークを経由して行われる付記４記載の情報処理装置。
【０１６６】
（付記６）前記情報処理装置は、自仮想マシンに従属する仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第２仮想マシンを備え、
前記コントローラは、前記子仮想マシンの制御指示が、前記子仮想マシンの従属先を前記第１仮想マシンから前記第２仮想マシンへと移動させる指示であるときに、前記第１仮想マシン及び前記子仮想マシン間の仮想ネットワークを切断し、前記第２仮想マシン及び前記子仮想マシン間の仮想ネットワークを接続するようにハイパーバイザを制御する付記５に記載の情報処理装置。
【０１６７】
（付記７）前記情報処理装置は、自仮想マシンに従属する仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第２仮想マシンを備え、
前記子仮想マシンは、前記第１仮想マシン及び前記第２仮想マシンの両方に従属し、前記第１仮想マシン及び前記第２仮想マシンのそれぞれの擬似ハイパーバイザが、それぞれの管理部から受信した前記子仮想マシンの制御指示を前記コントローラに送信する付記４〜６に記載の情報処理装置。
【０１６８】
（付記８）前記子仮想マシンは、前記第１仮想マシンと仮想ネットワーク接続される一方で、前記第２仮想マシンと仮想ネットワーク接続されており、
前記コントローラは、前記子仮想マシンの制御指示が、前記子仮想マシンの削除指示であるときに、該制御指示の送信元の仮想マシン及び前記子仮想マシン間の仮想ネットワークの接続を切断し、該切断後に前記子仮想マシンに接続する他の仮想マシンが存在しないときにのみ、該子仮想マシン自体を削除するように前記ハイパーバイザを制御する付記７記載の情報処理装置。
【０１６９】
（付記９）前記コントローラは、前記第１仮想マシンの擬似ハイパーバイザから受信した前記子仮想マシンの制御指示が該子仮想マシンの配備指示であるときに、該子仮想マシンを配備するとともに、前記第１仮想マシン及び該子仮想マシン間の仮想ネットワークを接続するように前記ハイパーバイザを制御する付記４〜８に記載の情報処理装置。
【０１７０】
（付記１０）仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザ、及び該ハイパーバイザの制御を行うコントローラと、
前記ハイパーバイザの制御下において稼働する仮想マシンであって、自仮想マシンに従属する子仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第１仮想マシンと
を備えた情報処理装置において、
前記第１仮想マシンの擬似ハイパーバイザが、該第１仮想マシンに従属する子仮想マシンの制御指示を該第１仮想マシンの管理部から受信したときに、該制御指示を前記コントローラに送信し、
前記コントローラが、前記制御指示を受信したときに、該制御指示に基づいて前記子仮想マシンの制御を行うように前記ハイパーバイザを制御する情報処理方法。
【０１７１】
（付記１１）仮想マシンの制御を行うとともに仮想マシン同士でデータ通信を行う仮想ネットワークを提供するハイパーバイザ、及び該ハイパーバイザの制御を行うコントローラと、
前記ハイパーバイザの制御下において稼働する仮想マシンであって、自仮想マシンに従属する子仮想マシンの管理を行う管理部及び擬似ハイパーバイザを備えた第１仮想マシンと
を備えた情報処理装置に、
前記第１仮想マシンの擬似ハイパーバイザが、該第１仮想マシンに従属する子仮想マシンの制御指示を該第１仮想マシンの管理部から受信したときに、該制御指示を前記コントローラに送信する手順と、
前記コントローラが、前記制御指示を受信したときに、該制御指示に基づいて前記子仮想マシンの制御を行うように前記ハイパーバイザを制御する手順と
を実行させるための情報処理プログラム。
【符号の説明】
【０１７２】
１０…サーバ、２０…ＶＭＭ、３０…ＶＭ管理ブロック、３１…ＶＭＭコントローラ、３３…スイッチ、４０…ゲストＶＭ、４１…擬似ＶＭＭ、４２…ＶＭ管理エージェント、４５…スイッチ、５０…子ゲストＶＭ、６０…管理ゲストＶＭ
【図１】
0005754294.tif 000002
【図２】
0005754294.tif 000003
【図３】
0005754294.tif 000004
【図４】
0005754294.tif 000005
【図５】
0005754294.tif 000006
【図６】
0005754294.tif 000007
【図７】
0005754294.tif 000008
【図８】
0005754294.tif 000009
【図９】
0005754294.tif 000010
【図１０】
0005754294.tif 000011
【図１１】
0005754294.tif 000012
【図１２】
0005754294.tif 000013
【図１３】
0005754294.tif 000014
【図１４】
0005754294.tif 000015
【図１５】
0005754294.tif 000016
【図１６】
0005754294.tif 000017
【図１７】
0005754294.tif 000018
【図１８】
0005754294.tif 000019
【図１９】
0005754294.tif 000020