(57)【要約】      （修正有）【課題】仮想サーバの不正な移設によるシステムの不正利用を防止する。【解決手段】仮想サーバ９１と、仮想サーバ９１の外部で動作する管理モジュール９２と、を動作させる少なくとも１つの情報処理装置９００を備える。仮想サーバ９１は、管理モジュール９２との間でデータを送受信するための通信路の確立を試み、その通信路の確立に失敗した場合には、仮想サーバ９１におけるシステムの動作を抑止する制御部９０を有する。【選択図】図１４
2016162387.tif 000002
【特許請求の範囲】
【請求項１】
仮想サーバと、前記仮想サーバの外部で動作する管理モジュールと、を動作させる少なくとも１つの情報処理装置を備え、
前記仮想サーバは、前記管理モジュールとの間でデータを送受信するための通信路の確立を試み、当該通信路の確立に失敗した場合には、前記仮想サーバにおけるシステムの動作を抑止する制御部を有する、
仮想サーバシステム。
【請求項２】
前記少なくとも１つの情報処理装置は、仮想デバイスデータが格納される記憶部を備え、
前記仮想サーバは、前記記憶部から仮想デバイスデータをロードして、ロードした仮想デバイスデータに基づいて動作することで前記制御部として機能するものであり、
前記仮想サーバは、前記仮想デバイスデータのロードに失敗した場合には、前記仮想サーバにおけるシステムの動作を抑止する、
請求項１に記載の仮想サーバシステム。
【請求項３】
前記仮想サーバは、前記管理モジュールに送信するデータと、当該データに対する応答データの期待値とが対応付けられた照合データを有し、
前記制御部は、前記照合データにおいて前記管理モジュールに送信したデータに対応する応答データと、前記管理モジュールに送信したデータに対して前記管理モジュールから送信された応答データとを比較し、一致しない場合には、前記仮想サーバにおけるシステムの動作を抑止する、
請求項１又は２に記載の仮想サーバシステム。
【請求項４】
前記制御部は、
前記仮想サーバにおける異常を検出する監視部を有し、
前記データとして、前記監視部が検出した異常を通知する状態データを前記管理モジュールに送信し、
前記管理モジュールは、
前記仮想サーバにおける異常と、その異常に対して前記仮想サーバで実行すべき処理内容とを対応付けて示す制御情報データを有し、
前記制御情報データに基づいて、前記仮想サーバから送信された状態データが示す異常に対応する処理内容を示す応答データを前記仮想サーバに送信し、
前記制御部は、前記管理モジュールから送信された応答データが示す処理内容で処理を実行する、
請求項１乃至３のいずれか１項に記載の仮想サーバシステム。
【請求項５】
前記少なくとも１つの情報処理装置は、複数の前記仮想サーバを動作させ、
前記制御情報データは、前記仮想サーバにおける異常に対して前記仮想サーバで実行すべき処理内容として第１の処理内容を示し、さらに、その仮想サーバに依存する仮想サーバで実行すべき処理内容として第２の処理内容を示し、
前記管理モジュールは、前記制御情報データに基づいて、前記仮想サーバから送信された状態データが示す異常に対応する第１の処理内容を示す応答データを前記仮想サーバに送信するとともに、その仮想サーバに依存する仮想サーバに第２の処理内容を示す応答データを送信する、
請求項４に記載の仮想サーバシステム。
【請求項６】
前記制御情報データは、さらに、前記複数の仮想サーバの起動順序を示し、
前記管理モジュールは、前記制御情報データが示す起動順序で、前記複数の仮想サーバを起動し、
前記監視部は、前記仮想サーバの起動時における異常を検出する、
請求項５に記載の仮想サーバシステム。
【請求項７】
前記仮想サーバシステムは、前記少なくとも１つの情報処理装置として、前記仮想サーバ及び前記管理モジュールを動作させる１つの物理サーバを有する、
請求項１乃至６のいずれか１項に記載の仮想サーバシステム。
【請求項８】
前記管理モジュールは、前記少なくとも１つの情報処理装置における仮想化されていない環境上で動作する、
請求項１乃至７のいずれか１項に記載の仮想サーバシステム。
【請求項９】
情報処理装置で動作する仮想サーバにおける仮想サーバ制御方法であって、
前記情報処理装置と同一又は異なる情報処理装置において前記仮想サーバの外部で動作する管理モジュールとの間でデータを送受信するための通信路の確立を試みるステップと、
前記通信路の確立に失敗した場合には、前記仮想サーバにおけるシステムの動作を抑止するステップと、
を備えた仮想サーバ制御方法。
【請求項１０】
情報処理装置を仮想サーバとして動作させるための仮想サーバプログラムであって、
前記情報処理装置と同一又は異なる情報処理装置において前記仮想サーバの外部で動作する管理モジュールとの間でデータを送受信するための通信路の確立を試みる処理と、
前記通信路の確立に失敗した場合には、前記仮想サーバにおけるシステムの動作を抑止する処理と、
を前記情報処理装置に実行させる仮想サーバプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想サーバシステム、仮想サーバ制御方法、及び仮想サーバプログラムに関し、特に、仮想サーバにおけるシステムの不正利用を防止する技術に関する。
【背景技術】
【０００２】
１台の物理サーバ上に複数の仮想サーバを搭載し、複数の仮想サーバ上でそれぞれが独立して動作可能なアプリケーションシステムを連動させて特定業務を支援する垂直統合型サーバ（垂直統合型システム）において、個々の仮想サーバを外部から監視する仕組みが提唱されている。
【０００３】
例えば、特許文献１には、複数の仮想サーバのそれぞれにＩＤを割り当てて管理する技術が開示されている。また、特許文献２には、複数の仮想サーバの情報を管理し、その改ざんを検証する技術が開示されている。
【０００４】
しかし、このような技術では、ゲストである仮想サーバがそれぞれ独立して動作することができるため、仮想サーバを他の物理サーバに不正に移設して使用することを防止することができないという問題がある。
【０００５】
このような問題に対して、例えば、ＭＡＣ（Media Access Control）アドレスにより認証を実施するライセンスシステムがある。このライセンスシステムは、サーバのＭＡＣアドレスが予め定められたＭＡＣアドレスと異なる場合には、そのサーバにおいてシステムの使用を抑止する。物理サーバの場合には、ＭＡＣアドレスは、物理サーバ毎に固有の値となるため、認証時の識別子として有効であった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１２／１３２８１５号
【特許文献２】特開２０１４−１５４０５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、仮想サーバのＭＡＣアドレスは任意に設定可能であるため、仮想サーバのイメージをコピーすることで仮想サーバを不正に移設して、正規の仮想サーバと同じＭＡＣアドレスを設定することにより、不正に認証をすり抜けてシステムを使用することができてしまうという問題がある。しかしながら、上述の技術では、この問題に対する対処がされていなかった。
【０００８】
本発明の目的は、上述したような課題を解決するために、仮想サーバの不正な移設によるシステムの不正利用を防止することができる仮想サーバシステム、仮想サーバ制御方法、及び仮想サーバプログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係る仮想サーバシステムは、仮想サーバと、前記仮想サーバの外部で動作する管理モジュールと、を動作させる少なくとも１つの情報処理装置を備え、前記仮想サーバは、前記管理モジュールとの間でデータを送受信するための通信路の確立を試み、当該通信路の確立に失敗した場合には、前記仮想サーバにおけるシステムの動作を抑止する制御部を有するものである。
【００１０】
本発明の第２の態様に係る仮想サーバ制御方法は、情報処理装置で動作する仮想サーバにおける仮想サーバ制御方法であって、前記情報処理装置と同一又は異なる情報処理装置において前記仮想サーバの外部で動作する管理モジュールとの間でデータを送受信するための通信路の確立を試みるステップと、前記通信路の確立に失敗した場合には、前記仮想サーバにおけるシステムの動作を抑止するステップと、を備えたものである。
【００１１】
本発明の第３の態様に係る仮想サーバプログラムは、情報処理装置を仮想サーバとして動作させるための仮想サーバプログラムであって、前記情報処理装置と同一又は異なる情報処理装置において前記仮想サーバの外部で動作する管理モジュールとの間でデータを送受信するための通信路の確立を試みる処理と、前記通信路の確立に失敗した場合には、前記仮想サーバにおけるシステムの動作を抑止する処理と、を前記情報処理装置に実行させるものである。
【発明の効果】
【００１２】
上述した各態様によれば、仮想サーバの不正な移設によるシステムの不正利用を防止することができる仮想サーバシステム、仮想サーバ制御方法、及び仮想サーバプログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る仮想サーバシステムの構成を示す図である。
【図２】実施の形態１に係る仮想サーバシステムの処理を示すフローチャートである。
【図３】実施の形態２に係る仮想サーバシステムの構成を示す図である。
【図４】実施の形態２に係る仮想サーバシステムの処理を示すフローチャートである。
【図５】実施の形態３に係る仮想サーバシステムの構成を示す図である。
【図６】実施の形態３に係る仮想サーバシステムの第１処理を示すフローチャートである。
【図７】実施の形態３に係る仮想サーバシステムの第２の処理を示すフローチャートである。
【図８】実施の形態４に係る仮想サーバシステムの構成を示す図である。
【図９】実施の形態４に係る仮想サーバシステムの第１の処理を示すフローチャートである。
【図１０】実施の形態４に係る仮想サーバシステムの第２の処理を示すフローチャートである。
【図１１】他の実施の形態に係る仮想サーバシステムの構成を示す図である。
【図１２】他の実施の形態に係る仮想サーバシステムの構成を示す図である。
【図１３】他の実施の形態に係る仮想サーバシステムの構成を示す図である。
【図１４】実施の形態１に係る仮想サーバシステムの概略構成を示す図である。
【発明を実施するための形態】
【００１４】
以下に図面を参照しながら、本発明の好適な実施形態について説明する。以下の実施形態に示す具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項等については、適宜、省略及び簡略化がなされている。
【００１５】
＜発明の実施の形態１＞
まず、本発明の実施の形態１に係る仮想サーバシステム１０００について説明する。図１を参照して、発明の実施の形態１に係る仮想サーバシステム１０００の構成について説明する。
【００１６】
図１に示すように、仮想サーバシステム１０００は、ホスト１００を有する。ホスト１００は、複数の仮想サーバ１と、管理モジュール５とを有する。すなわち、複数の仮想サーバ１を稼働することができる情報処理装置である。ホスト１００は、典型的には、物理サーバである。仮想サーバシステム１０００は、例えば、特定業務を支援する垂直統合型システムとして機能する。
【００１７】
複数の仮想サーバ１のそれぞれは、システム２と、オペレーティングシステム３と、管理クライアント４とを有する。複数の仮想サーバ１のそれぞれは、ホスト１００のＣＰＵ（Central Processing Unit）（図示せず）が、仮想サーバ１としての機能を実行させるプログラムを実行することで実現される。
【００１８】
システム２は、仮想サーバ１のオペレーティングシステム３上で動作するアプリケーションプログラム（システム）である。システム２は、例えば、垂直統合型システムにおけるアプリケーションプログラムである。すなわち、複数の仮想サーバ１のそれぞれにおけるシステム２が連携して動作することで垂直統合型システムとしての機能が実現される。
【００１９】
オペレーティングシステム３は、仮想サーバ１上で動作するオペレーティングシステムである。すなわち、オペレーティングシステム３は、仮想化技術における、いわゆるゲストＯＳ（Operating System）である。
【００２０】
管理クライアント４は、仮想サーバ１が有する機能である。管理クライアント４は、例えば、オペレーティングシステム３上で動作するアプリケーションプログラム、仮想サーバ１の起動時にロードされる仮想デバイスデータ（例えば仮想デバイスドライバ）、又は、仮想ドングルとして、仮想サーバ１に供給されるプログラムを仮想サーバ１が実行することで実現される。
【００２１】
管理クライアント４は、仮想サーバ１内を管理する。管理クライアント４は、通信部１０と、制御部１１とを有する。通信部１０は、管理モジュール５との間で任意のデータを送受信する。制御部１１は、仮想サーバ１におけるシステム２の不正利用を防止する制御を行う。
【００２２】
管理モジュール５は、複数の仮想サーバ１を管理する。管理モジュール５は、ホスト１００の仮想化されていない環境上で動作する。すなわち、管理モジュール５は、ホスト１００において、仮想サーバ１の外部で動作する。管理モジュール５は、ホスト１００のＣＰＵが、管理モジュール５としての機能を実行させるプログラムを実行することで実現される。例えば、ホスト１００における仮想化方式がホストＯＳ型である場合には、管理モジュール５は、いわゆるホストＯＳ（Operating System）上で動作するプログラム、又は、ホストＯＳに組み込まれたプログラムとなる。また、ホスト１００における仮想化方式がハイパーバイザ型である場合には、ハイパーバイザに組み込まれたプログラムとなる。
【００２３】
ホスト１００上で動作する仮想化ソフトウェア、又は、ハイパーバイザによって、上述の仮想サーバ１がホスト１００上に作成される。このような仮想サーバ１を作成するプログラムとして、例えば、ＶＭｗａｒｅ（登録商標）がある。
【００２４】
管理モジュール５は、通信部２０と、制御部２１とを有する。通信部２０は、複数の仮想サーバ１のそれぞれとの間で任意のデータを送受信する。仮想サーバ１におけるシステム２の不正利用を防止する制御を行う。
【００２５】
よって、通信部１０と通信部２０は、相互にデータを送受信する。例えば、制御部１１は、通信部１０を介して、制御部２１から受信したデータに基づいて、制御処理を実行する。また、制御部２１も、通信部２０を介して、制御部１１から受信したデータに基づいて制御処理を実行する。
【００２６】
続いて、図２を参照して、本発明の実施の形態１に係る仮想サーバシステムの処理について説明する。なお、この処理は、仮想サーバ１の起動時の他、起動後の任意のタイミングで実施してよい。
【００２７】
制御部１１は、制御データを生成し、生成した制御データを通信部１０に出力する（Ｓ１）。この制御データには、仮想サーバ１の状態、システム２の状態、及び、オペレーティングシステム３の状態の少なくとも１つを示す情報などの任意の情報を含めてよい。通信部１０は、制御部１１からの制御データの入力に応じて、通信部２０との通信路の確立を試みる（Ｓ２）。
【００２８】
この通信路は、例えば、ホスト１００内において、複数の仮想サーバ１と管理モジュール５を接続する仮想ネットワーク（例えば、仮想スイッチを含む）を介して確立される、ＴＣＰ／ＩＰプロトコルにおけるコネクションに相当する。
【００２９】
通信路の確立に成功した場合（Ｓ２：成功）、通信部１０は、確立した通信路を介して、制御データを通信部２０に送信する（Ｓ３）。通信部２０は、通信部１０から受信した制御データを、制御部２１に出力する（Ｓ４）。
【００３０】
制御部２１は、通信部２０から入力された制御データを確認し、その制御データの内容に応じて処理を実行する（Ｓ５）。この処理として、任意の処理を実行するようにしてよい。制御部２１は、この処理の実行結果を示す制御データを生成し、生成した制御データを通信部２０に出力する（Ｓ６）。すなわち、この制御データは、管理クライアント４からの制御データに対する応答として機能する。なお、ステップＳ５における処理では、管理クライアント４からの制御データに対する応答となる制御データの生成のみを行うようにしてもよい。
【００３１】
通信部２０は、制御部２１から入力された制御データを、通信部１０に送信する（Ｓ７）。通信部１０は、通信部２０から受信した制御データを、制御部１１に出力する（Ｓ８）。
【００３２】
制御部１１は、通信部１０から入力された制御データを確認し、その制御データの内容に応じて処理を実行する（Ｓ９）。この処理として、任意の処理を実行するようにしてよい。また、必要に応じて、制御部１１は、この処理の実行結果を示す制御データを生成し、生成した制御データを通信部２０に出力する（Ｓ１）。すなわち、再度、制御データを、管理モジュール５に送信して、ステップＳ１〜Ｓ９までの処理が繰り返されるようにしてもよい。
【００３３】
一方、通信路の確立に失敗した場合（Ｓ２：失敗）、通信部１０は、通信失敗を通知するデータを制御部１１に出力する。制御部１１は、通信部１０から入力されたデータに応じて、制御処理を実行する（Ｓ９）。この通信路の確立に失敗した場合における制御処理として、制御部１１は、通信部１０から入力されたデータに応じて、仮想サーバ１の起動処理を停止する。
【００３４】
これによれば、仮想サーバ１が他のホストに不正に移設された場合に、正規でないそのホストには管理モジュール５が存在しないため、通信路の確立に失敗することになる。よって、仮想サーバ１の起動が抑止され、仮想サーバ１におけるシステム２の不正利用を防止することができる。
【００３５】
なお、本処理を起動後の任意のタイミングで実行している場合には、仮想サーバ１の動作を停止（例えばオペレーティングシステム３をシャットダウン）すればよい。また、システム２の動作を抑止できるのであれば、仮想サーバ１自体の起動停止又は動作停止に限られず、システム２のみを動作停止させるようにしてもよい。これによれば、システム２の不正利用を防止することができるからである。
【００３６】
また、仮想サーバ１の起動停止（動作停止）は、通信路の確立失敗時のみに限られない。仮想サーバ１の起動停止（動作停止）には、例えば、仮想サーバ１が、ホスト１００上の仮想デバイスデータのロードに失敗した場合が含まれていてもよい（すなわち、管理クライアント４が仮想デバイスデータとして提供される場合である）。この場合、仮想サーバ１がホスト１００上の管理モジュール５と通信可能な状態であっても、制御データを送信するための仮想デバイスデータ（管理クライアント４）のロードに失敗することになるため、仮想サーバ１を起動停止する。
【００３７】
これによれば、仮想サーバ１が他のホストに不正に移設されたときに、その仮想サーバ１が管理モジュール５と通信可能な環境下にあった場合であっても（又は第三者によって不正な管理モジュール５が用意された場合であっても）、正規でないそのホストには仮想デバイスデータが存在しないため、仮想デバイスデータがロードできず失敗することになる。よって、仮想サーバ１の起動が抑止され、仮想サーバ１におけるシステム２の不正利用を防止することができる。
【００３８】
なお、本処理は、ステップＳ１の処理からの開始に限定されるものではない。例えば、ステップＳ５の処理から開始されてもよい。すなわち、最初に制御部２１が制御データを生成し、通信部２０を介して管理クライアント４に送信するようにしてもよい。また、上述したように、本処理は、ステップＳ１〜Ｓ９までの処理を一通り実行したら終了するようにしてもよく、ステップＳ１〜Ｓ９までの処理を継続的に繰り返し実行するようにしてもよい。
【００３９】
上述した本実施の形態１によれば、仮想サーバ１の不正な移設によるアプリケーションプログラム（システム２）の不正利用を防止することができる。その理由は、仮想サーバ１側から正規のホストサーバ（管理モジュール５）の存在を確認し、確認できない場合に動作を停止するからである。すなわち、仮想サーバ１の制御部１１が、管理モジュール５との間でデータを送受信するための通信路の確立を試み、通信路の確立に失敗した場合には、仮想サーバ１におけるシステム２の動作を抑止するからである。
【００４０】
＜発明の実施の形態２＞
次に、本発明の実施の形態２に係る仮想サーバシステムについて説明する。なお、説明の簡略化のため、実施の形態１に係る仮想サーバシステムと同様の内容については、同一の符号を付す等して、適宜説明を省略する。
【００４１】
図３を参照して、本発明の実施の形態２に係る仮想サーバシステムの構成について説明する。図３に示すように、本発明の実施の形態２に係る仮想サーバシステムでは、実施の形態１と比較して、管理クライアント４は、制御部１１に代えて制御部１２を有し、管理モジュール５は、制御部２１に代えて制御部２２を有する。
【００４２】
制御部１１は、応答データ確認部３０と、照会データ４０とを有する。制御部２１は、応答データ確認部３１と、照合データ４１とを有する。
【００４３】
応答データ確認部３０は、照合データ４０に基づいて、管理モジュール５に送信した制御データに応答する応答データの整合性を確認することで、その応答データが正規の管理モジュール５からの応答であることを確認する。
【００４４】
応答データ確認部３１は、照合データ４１に基づいて、管理クライアント４から受信した制御データに応答する応答データを生成する。
【００４５】
照合データ４０、４１のそれぞれには、制御データと、その制御データに対して応答される制御データ（応答データ）の期待値とがペアリングされて示されている。厳密には、照合データ４０、４１は、ホスト１００が有する記憶装置（メモリ又はハードディスク等）に格納されている。
【００４６】
続いて、図４を参照して、本発明の実施の形態２に係る仮想サーバシステムの処理について説明する。なお、この処理も、実施の形態１と同様に、仮想サーバ１の起動時の他、起動後の任意のタイミングで実施してよい。
【００４７】
制御部１２は、制御データを生成し、生成した制御データを通信部１０に出力する（Ｓ１１）。この制御データとして、照合データ４０に規定された制御データが生成される。通信部１０は、制御部１２からの制御データの入力に応じて、通信部２０との通信路を確立する（Ｓ１２）。なお、この通信路の確立に失敗した場合も、実施の形態１と同様に、制御部１２は、仮想サーバ１におけるシステム２の動作を抑止する。
【００４８】
通信部１０は、確立した通信路を介して、制御データを通信部２０に送信する（Ｓ１３）。通信部２０は、通信部１０から受信した制御データを、制御部２２に出力する（Ｓ１４）。
【００４９】
制御部２２は、通信部２０から入力された制御データを確認し、その制御データの内容に応じて処理を実行する。この処理として、本実施の形態２では、制御部２２の応答データ確認部３１が、その管理クライアント４からの制御データに応答する応答データ（制御データ）を、照合データ４１に基づいて生成する（Ｓ１５）。
【００５０】
より具体的には、照合データ４１において、制御データ（Ｙ）と、その応答の期待値として応答データ（Ｙ’）とが対応付けられているものとする。そのときには、応答データ確認部３１は、通信部２０から入力された制御データが、制御データ（Ｙ）である場合には、その制御データ（Ｙ）に対応する応答データ（Ｙ’）を、管理クライアント４に対して応答する制御データとして生成する。制御部２２は、応答データ確認部３１が生成した応答データを、通信部２０に出力する（Ｓ１６）。
【００５１】
通信部２０は、制御部２２から入力された応答データを、通信部１０に送信する（Ｓ１７）。通信部１０は、通信部２０から受信した応答データを、制御部１２に出力する（Ｓ１８）。
【００５２】
制御部１２は、通信部１０から入力された応答データを確認し、その応答データの内容に応じて処理を実行する。この処理として、本実施の形態２では、制御部１２の応答データ確認部３０は、通信部１０から入力された応答データ（Ｙ’）を、照合データ４０において、ステップＳ１１で生成して管理モジュール５に向けて送信した制御データ（Ｘ）に対応付けられている応答データ（Ｘ’）と照会（比較）する（Ｓ１９）。
【００５３】
照会の結果、管理モジュール５から受信した応答データ（Ｙ’）と、その期待値となる応答データ（Ｘ’）とが一致する場合、応答データ確認部３０は、管理クライアント４と管理モジュール５との間の整合性が確認できたと判定する（Ｓ１９：整合性が確認できた場合）。この場合、制御部１２は、仮想サーバ１におけるシステム２及びオペレーティングシステム３の動作を継続する。
【００５４】
一方、照合の結果、管理モジュール５から受信した応答データ（Ｙ’）と、その期待値となる応答データ（Ｘ’）とが一致しない場合、応答データ確認部３０は、管理クライアント４と管理モジュール５との間の整合性が確認できないと判定する（Ｓ１９：整合性が確認できない場合）。この場合、制御部１２は、仮想サーバ１におけるシステム２又はオペレーティングシステム３の動作を停止する。すなわち、仮想サーバ１におけるシステム２の動作を抑止する。
【００５５】
上述した本実施の形態２によれば、第三者によってダミーの応答データを返信する不正な管理モジュール５が用意されたとしても、仮想サーバ１の移設によるアプリケーションプログラム（システム２）の不正利用を防止することができる。その理由は、管理クライアント４と管理モジュール５と間で送受信するデータの整合性を確認しているからである。
【００５６】
また、本実施の形態２では、より好適には、照合データ４０、４１において、制御データとその応答データのペアリングの値を、複数の仮想サーバ１のそれぞれで異なる値となるようにするとよい。そして、仮想サーバ１は、自身に対応する値の制御データを管理モジュール５に送信する。これによれば、応答データ確認部３１において、同一の値の制御データを、異なる複数の仮想サーバ１から受信した場合に、仮想サーバ１の不正な移設を検出することができる。この場合には、例えば、応答データ確認部３１が、仮想サーバ１におけるシステム２の動作の抑止（例えばシステム２またはオペレーティングシステム３の停止）を指示する応答データを生成すればよい。
【００５７】
また、制御データにＩＰアドレスなどの識別情報を追加することで、管理モジュール５において、制御データの送信元の仮想サーバ１が正規の送信元であるか否かも判定するようにしてもよい。例えば、複数の仮想サーバ１の正規のＩＰアドレスの一覧を示す情報を、ホスト１００の記憶装置に予め格納しておく。そして、管理モジュール５は、受信した制御データのパケットヘッダにおける送信元ＩＰアドレスが、その情報が示す一覧におけるいずれのＩＰアドレスにも該当しない場合に、仮想サーバ１が不正に移設されたものと検出する。この場合には、例えば、応答データ確認部３１が、仮想サーバ１におけるシステム２の動作の抑止（例えばシステム２またはオペレーティングシステム３の停止）を指示する応答データを生成すればよい。
【００５８】
＜発明の実施の形態３＞
次に、本発明の実施の形態３に係る仮想サーバシステムについて説明する。なお、説明の簡略化のため、実施の形態１、２に係る仮想サーバシステムと同様の内容については、同一の符号を付す等して、適宜説明を省略する。
【００５９】
図５を参照して、本発明の実施の形態３に係る仮想サーバシステムの構成について説明する。図５に示すように、本発明の実施の形態３に係る仮想サーバシステムでは、実施の形態２と比較して、管理クライアント４は、制御部１１に代えて制御部１３を有し、管理モジュール５は、制御部２１に代えて制御部２３を有する。
【００６０】
制御部１３は、監視部３２を有する。制御部２３は、監視部３３と、表示部３４と、制御情報データ４２と、状態保持データ４３とを有する。
【００６１】
監視部３２は、仮想サーバ１内の状態を監視し、仮想サーバ１内において発生した異常を検出する。監視部３２は、例えば、仮想サーバ１内で動作するシステム２及びオペレーティングシステム３等の異常を検出する。
【００６２】
監視部３３は、ホスト１００で動作する複数の仮想サーバ１の状態を監視する。監視部３３は、複数の仮想サーバ１から通知される各仮想サーバ１の状態を確認することで、複数の仮想サーバ１を監視する。監視部３３は、仮想サーバ１の異常を検出した場合、その異常に応じた処理の実行を仮想サーバ１に指示する。
【００６３】
表示部３４は、状態保持データ４３が示す複数の仮想サーバ１のそれぞれの状態と、垂直統合システム（仮想サーバシステム１０００）全体の状態とを表示して、ユーザに対して通知する。この表示は、例えば、ホスト１００が有する表示装置（液晶ディスプレイ又は有機ＥＬディスプレイ等）によって行われる。
【００６４】
制御情報データ４２は、仮想サーバ１に異常が発生した場合に垂直統合型システムとして実行すべき処理内容と、複数の仮想サーバ１間の依存関係とを示す。処理内容は、異常が発生した仮想サーバ１に対する処理内容のみを示す場合もあれば、さらに、その仮想サーバ１に依存する他の仮想サーバ１に対する処理内容も示す場合もある（すなわち、依存関係が崩れた際における処理内容も示す場合もある）。制御情報データ４２は、例えば、依存関係として、仮想サーバＡの動作に仮想サーバＢが必要である（仮想サーバＡが仮想サーバＢに依存する）ことを示している場合、仮想サーバＢに異常が発生した場合における処理内容として、仮想サーバＢの動作の停止と、仮想サーバＡの動作の停止とを示すようにしてもよい。
【００６５】
状態保持データ４３は、複数の仮想サーバ１のそれぞれの状態と、垂直統合型システム全体の状態とを示す。状態保持データ４３は、例えば、複数の仮想サーバ１を識別する内容を示すフィールドと、それら複数の仮想サーバ１の状態を示す状態フィールドとを含む。状態保持データ４３は、監視部３３によって更新される。例えば、監視部３３は、複数の仮想サーバ１のそれぞれからの通知に基づいて、状態保持データ４３が示す各仮想サーバ１のそれぞれの状態を更新するとともに、それらの仮想サーバ１の状態を総合考慮した状態を示すように垂直統合型システム全体の状態も更新する。
【００６６】
続いて、図６を参照して、本発明の実施の形態３に係る仮想サーバシステムの第１の処理について説明する。なお、この処理も、実施の形態１、２と同様に、仮想サーバ１の起動時の他、起動後の任意のタイミングで実施してよい。
【００６７】
監視部３２は、システム２又はオペレーティングシステム３において異常が発生した場合、その異常を検出する（Ｓ２１）。制御部１３は、監視部３２が検出した異常を示す状態データを制御データとして生成し、生成した制御データを通信部１０に出力する（Ｓ２２）。なお、このように異常を検出したときだけ異常を示す制御データを送信することに限られず、この一定周期毎に異常の発生を確認し、異常が検出された場合には、異常であることを示す制御データを送信し、異常が検出されなかった場合には、正常であることを示す制御データを送信するようにしてもよい。
【００６８】
通信部１０は、制御部１３から出力された状態データを、通信部２０に送信する（Ｓ２３）。なお、このときに通信路の確立に失敗した場合も、実施の形態１と同様に、仮想サーバ１におけるシステム２の動作を抑止する。通信部２０は、通信部１０から受信した状態データを、制御部２３に出力する（Ｓ２４）。
【００６９】
制御部２３は、通信部２０から入力された状態データ（制御データ）を確認し、その状態データの内容に応じて処理を実行する。この処理として、本実施の形態３では、制御部２３の監視部３３は、通信部２０から入力された状態データに基づいて、状態保持データ４３を更新する（Ｓ２５）。例えば、監視部３３は、仮想サーバ１の管理クライアント４から受信した状態データが異常を示している場合、状態保持データ４３において、その仮想サーバ１の状態として異常を示すように更新する。また、制御部２３の表示部３４は、更新後の状態保持データ４３が示す情報を、ユーザに対して表示する（Ｓ２６）。
【００７０】
また、監視部３３は、その仮想サーバ１からの状態データに応答する応答データ（制御データ）を、制御情報データ４２に基づいて生成する。
【００７１】
より具体的には、監視部３３は、状態データが異常を示している場合、制御情報データ４２によって示される、その状態データを送信した仮想サーバ１に異常が発生した場合における処理内容の実行を指示する応答データを生成し、生成した応答データを通信部２０に出力する（Ｓ２７）。
【００７２】
例えば、状態データがシステム２の異常が発生したことを示しており、制御情報データ４２において、システム２の異常が発生した場合における処理内容として、オペレーティングシステム３の停止が示されているものとする。この場合、監視部３３は、オペレーティングシステム３のシャットダウンを指示する応答データを生成し、通信部２０に出力する。なお、状態データが異常を示していない場合には、システム２及びオペレーティングシステム３の動作継続を指示する応答データを生成する。
【００７３】
通信部２０は、制御部２３から入力された応答データを、通信部１０に送信する（Ｓ２８）。制御部２３から通信部１０は、通信部２０から受信した応答データを、制御部１３に出力する（Ｓ２９）。
【００７４】
制御部１３は、通信部１０から入力された応答データ（制御データ）を確認し、その応答データが示す処理内容で処理を実行する。この処理として、本実施の形態３では、制御部１３の監視部３２は、通信部１０から入力された応答データが示す処理内容で処理を実行する（Ｓ３０）。例えば、応答データが処理内容としてオペレーティングシステム３のシャットダウンを示している場合、監視部３３は、オペレーティングシステム３をシャットダウンする。
【００７５】
続いて、図７を参照して、本発明の実施の形態３に係る仮想サーバシステムの第２の処理について説明する。なお、この処理も、実施の形態１、２と同様に、仮想サーバ１の起動時の他、起動後の任意のタイミングで実施してよい。なお、ステップＳ２１〜Ｓ３０の処理は、図６を参照して説明した第１の処理におけるステップＳ２１〜Ｓ３０と同様であるため、同一の符号を付し、説明を省略する。
【００７６】
この処理は、仮想サーバ１の異常の発生が通知された場合に、その仮想サーバ１の異常が他の仮想サーバ１にも影響する例について説明している。ステップＳ２６の後、監視部３３は、制御情報データ４２において、状態データが示す仮想サーバ１の異常が発生した場合における処理内容を確認する（Ｓ３１）。監視部３３は、制御情報データ４２が、状態データを送信した仮想サーバ１（以下、「仮想サーバＡ」とする）に対する処理内容以外に、他の仮想サーバ１（以下、「仮想サーバＢ」とする）に対する処理内容も示しているか否かを判定する（Ｓ３２）。
【００７７】
制御情報データ４２が他の仮想サーバＢに対する処理内容も示している場合（Ｓ３２：ＹＥＳ）、監視部３３は、仮想サーバＡに対する処理内容の実行を指示する応答データを生成して通信部２０に出力するとともに（Ｓ２７）、仮想サーバＢに対する処理内容の実行を指示する制御データも生成して通信部２０に出力する（Ｓ３３）。
【００７８】
例えば、状態データが示す仮想サーバＡの状態が、システム２の異常が発生したことを示しており、制御情報データ４２において、システム２の異常が発生した場合における処理内容として、その仮想サーバＡのオペレーティングシステム３の停止と、他の仮想サーバＢのオペレーティングシステム３の停止とが示されているものとする。この場合、監視部３３は、仮想サーバＡに対して、オペレーティングシステム３のシャットダウンを指示する応答データを生成し、通信部２０に出力する。
【００７９】
また、監視部３３は、制御情報データ４２が示す依存関係を確認し、仮想サーバＡに依存する仮想サーバＢを特定する。監視部３３は、特定した仮想サーバＢに対して、オペレーティングシステム３のシャットダウンを指示する制御データを生成し、通信部２０に出力する。この場合、この制御データも、応答データと同様に、通信部２０を介して、仮想サーバＢに送信される（Ｓ２８、Ｓ２９）。
【００８０】
一方で、制御情報データ４２が他の仮想サーバＢに対する処理内容は示していない場合（Ｓ３２：ＮＯ）、監視部３３は、仮想サーバＡに対する処理内容の実行を指示する応答データを生成して通信部２０に出力し（Ｓ２７）、他の仮想サーバＢに対する応答データは生成しない。
【００８１】
上述した本実施の形態３によれば、仮想サーバシステム１０００（垂直統合型システム）として最適な対処を実施することができる。その理由は、仮想サーバ１（例えばシステム２又はオペレーティングシステム３）に異常が発生した際に、管理クライアント４から管理モジュール５に通知し、制御情報データ４２に基づいてその異常に対処する処理を仮想サーバ１において実行することができるからである。
【００８２】
また、上述した本実施の形態３によれば、仮想サーバシステム１０００の状態をユーザが容易に把握することができる。その理由は、仮想サーバ１（例えばシステム２又はオペレーティングシステム３）に異常が発生した際に、管理クライアント４から管理モジュール５に通知することで、各仮想サーバ１の状態を一括管理し、ユーザに通知することができるからである。
【００８３】
＜発明の実施の形態４＞
次に、本発明の実施の形態４に係る仮想サーバシステムについて説明する。なお、説明の簡略化のため、実施の形態１〜３に係る仮想サーバシステムと同様の内容については、同一の符号を付す等して、適宜説明を省略する。
【００８４】
図８を参照して、本発明の実施の形態４に係る仮想サーバシステムの構成について説明する。図８に示すように、本発明の実施の形態４に係る仮想サーバシステムでは、実施の形態３と比較して、管理モジュール５は、制御部２３に代えて制御部２４を有する。
【００８５】
制御部２４は、監視部３３と、表示部３４と、状態保持データ４３と、制御情報データ４４とを有する。制御部２４は、実施の形態３に係る制御部２３と比較して、さらに、複数の仮想サーバ１の起動の制御も行う。
【００８６】
制御情報データ４４は、実施の形態４に係る制御情報データ４２と比較して、さらに、複数の仮想サーバ１の起動順序も示す。
【００８７】
続いて、図９を参照して、本発明の実施の形態４に係る仮想サーバシステムの第１の処理について説明する。なお、この処理は、複数の仮想サーバ１の起動時のタイミングで実施される。
【００８８】
制御部２４は、制御情報データ４４と、状態保持データ４３とに基づいて、複数の仮想サーバ１を起動する（Ｓ４１）。より具体的には、制御部２４は、制御情報データ４４が示す起動順序で、複数の仮想サーバ１を起動する。また、制御部２４は、状態保持データ４３が示す各仮想サーバ１の状態において、異常を示す仮想サーバ１が存在する場合には、その仮想サーバ１の起動を抑止してもよい。例えば、前回の仮想サーバ１の起動時に、その仮想サーバ１のシステム２又はオペレーティングシステム３で異常が発生し、オペレーティングシステム３をシャットダウンした場合は、その仮想サーバ１の状態が異常とされている。
【００８９】
ステップＳ４２〜Ｓ５０の処理は、図６を参照して説明した実施の形態３におけるステップＳ２１〜Ｓ３０の処理と同様であるため（なお、ステップＳ３２は、２つのステップＳ２１、Ｓ２２に対応する）、説明を省略する。
【００９０】
すなわち、この処理によれば、管理クライアント４の制御部１３は、仮想サーバ１の起動時における状態を管理モジュール５に通知する（Ｓ４２〜Ｓ４３）。管理モジュール５の監視部３３は、管理クライアント４から通知された仮想サーバ１の状態に応じて、仮想サーバ１の処理内容を管理クライアント４に指示する（Ｓ４５〜Ｓ４８）。管理クライアント４の制御部１３は、管理モジュール５から指示された処理内容で処理を実行する（Ｓ４９〜Ｓ５０）。例えば、仮想サーバ１の起動時に仮想サーバ１において異常が発生した場合に、それを管理モジュール５に通知し、その管理モジュール５から仮想サーバ１をシャットダウンするように指示して、仮想サーバ１の起動を抑止することができる。
【００９１】
続いて、図１０を参照して、本発明の実施の形態４に係る仮想サーバシステムの第２の処理について説明する。なお、この処理も、複数の仮想サーバ１の起動時のタイミングで実施される。なお、ステップＳ４１〜Ｓ５０の処理は、図９を参照して説明した第１の処理におけるステップＳ４１〜Ｓ５０と同様であるため、同一の符号を付し、説明を省略する。
【００９２】
この処理は、仮想サーバ１の異常が他の仮想サーバ１にも影響する例について説明している。ステップＳ４６の後、監視部３３は、管理クライアント４からの状態データで、仮想サーバ１のシステム２又はオペレーティングシステム３の異常が通知されているか否かを判定する（Ｓ５１）。
【００９３】
システム２又はオペレーティングシステム３の異常が通知されている場合（Ｓ５１：ＹＥＳ）、監視部３３は、制御情報データ４２において、状態データが示す仮想サーバ１の異常が発生した場合における処理内容として、状態データを送信した仮想サーバＡに対する処理内容以外に、他の仮想サーバＢに対する処理内容も示しているか否かを判定し（Ｓ５２）、その判定結果に応じて、仮想サーバＡ、もしくは、仮想サーバＡ及び仮想サーバＢに対する制御データを生成して送信する（Ｓ５３又はＳ５４）。すなわち、ステップＳ５２〜Ｓ５４の処理は、図７を参照して説明した実施の形態３におけるステップＳ３２、Ｓ３３、Ｓ２７の処理と同様であるため、説明を省略する。
【００９４】
一方、システム２又はオペレーティングシステム３の異常が通知されていない場合（Ｓ５１：ＮＯ）、監視部３３は、仮想サーバ１の起動処理の継続を指示する応答データを生成して通信部２０に出力する（Ｓ４７）。
【００９５】
上述した本実施の形態４によれば、実施の形態３と同様に、仮想サーバシステム１０００（垂直統合型システム）として最適な対処を実施することができ、仮想サーバシステム１０００の状態をユーザが容易に把握することができる。特に、本実施の形態４によれば、複数の仮想サーバ１を起動する際に、異常が発生した仮想サーバ１に依存する他の仮想サーバの起動を停止するなど、垂直統合型システムとして最適な処理を実施することができる。
【００９６】
＜本発明の他の実施の形態＞
上述の各実施の形態では、仮想サーバ１において、システム２の外部で、管理クライアント４が通信部１０及び制御部１１、１２、１３を有する例について説明したが、これに限られない。
【００９７】
例えば、図１１に示すように、仮想サーバ１において、システム２００が通信部１０及び制御部１１を有するようにしてもよい。すなわち、システム２００は、通信部１０及び制御部１１を有するシステム２に相当する。
【００９８】
また、上述の各実施の形態では、ホスト１００における仮想化していない環境上で、管理モジュール５を動作させる例について説明したが、これに限られない。
【００９９】
例えば、図１２に示すように、ホスト１００において仮想サーバ３００を稼働させ、その仮想サーバ３００上で管理モジュール５を動作させるようにしてもよい。
【０１００】
また、上述の各実施の形態では、１つのホスト１００上において、仮想サーバ１と、管理モジュール５とが動作する例について説明したが、これに限られない。
【０１０１】
例えば、図１３に示すように、仮想サーバ１が動作するホスト１００とは異なるホスト４００において、管理モジュール５を動作させるようにしてもよい。すなわち、仮想サーバ１が構築される物理サーバとは異なる物理サーバ上に管理モジュール５を構築するようにしてもよい。なお、図１３では、ホスト４００上で稼働される仮想サーバ３００上で、管理モジュール５を動作させる例について示しているが、ホスト４００において、仮想サーバ３００は有さないようにし、仮想化しない環境上で管理モジュール５を動作させるようにしてもよい。
【０１０２】
図１１〜図１３に示す例であっても、仮想サーバ１のみが他のホストに不正に移設され、その仮想サーバ１の管理クライアント４と管理モジュール５とが通信できない状態であれば、仮想サーバ１におけるシステム２の不正利用を防止することができる。また、不正に移設された仮想サーバ１の管理クライアント４と、不正に用意された管理モジュール５とが通信可能な環境下にあったとしても、実施の形態２で説明したように、管理クライアント４と管理モジュール５との間で照合データ４０による整合性確認をすることで、仮想サーバ１におけるシステム２の不正利用を防止することができる。
【０１０３】
一方で、好ましくは、図１、３、５、８、１１などに示すように、管理モジュール５を仮想化していない環境上で動作させるとよい。これによれば、仮想サーバ１とともに管理モジュール５が動作する仮想サーバ３００も不正に移設されることで、仮想サーバ１の管理クライアント４と管理モジュール５とが通信可能となり異常が検出されないケースを防止することができる。
【０１０４】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【０１０５】
以上に説明した本実施の形態に係る仮想サーバシステム１０００は、概略構成として、次に説明する仮想サーバシステム９０００として捉えることもできる。図１４を参照して、その仮想サーバシステム９０００について説明する。
【０１０６】
仮想サーバシステム９０００は、情報処理装置９００を有する。仮想サーバシステム９０００は、仮想サーバシステム１０００に対応する。情報処理装置９００は、ホスト１００、４００に対応する。
情報処理装置９００は、仮想サーバ９１と、仮想サーバ９１の外部で動作する管理モジュール９２と、を動作させる。なお、図１４では、仮想サーバシステム９０００が、情報処理装置を１つだけ有する例について示しているが、２つ以上の情報処理装置を有していてもよい。例えば、仮想サーバ９１と管理モジュール９２が異なる情報処理装置で動作していてもよい。仮想サーバ９１は、仮想サーバ１に対応し、管理モジュール９２は、管理モジュール５に対応する。
【０１０７】
仮想サーバ９１は、制御部９０を有する。制御部９０は、管理モジュール９２との間でデータを送受信するための通信路の確立を試み。そして、制御部９０は、通信路の確立に失敗した場合には、仮想サーバ９１におけるシステムの動作を抑止する制御部を有する、
【０１０８】
この構成によれば、仮想サーバ１の不正な移設によるシステムの不正利用を防止することができる。その理由は、仮想サーバ１が不正に他の情報処理装置に移設された場合には、正規な管理モジュール９２が存在しないため、通信路が確立できず、仮想サーバ９１におけるシステムの動作が抑止されるからである。
【０１０９】
また、上述のホスト１００、４００上で実行される各種プログラム（仮想サーバ１及び管理モジュール５のプログラム等）は、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータ（ホスト１００、４００）に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１１０】
１、９１、３００  仮想サーバ
２、２００  システム
３  オペレーティングシステム
４  管理クライアント
５  ９２、管理モジュール
１０、２０  通信部
１１、１２、１３、２１、２２、２３、２４、９０  制御部
３０、３１  応答データ確認部
３２、３３  監視部
３４  表示部
４０、４１  照合データ
４２、４４  制御情報データ
４３  状態保持データ
１００、４００  ホスト
９００  情報処理装置
１０００、９０００  仮想サーバシステム
【図１】
2016162387.tif 000003
【図２】
2016162387.tif 000004
【図３】
2016162387.tif 000005
【図４】
2016162387.tif 000006
【図５】
2016162387.tif 000007
【図６】
2016162387.tif 000008
【図７】
2016162387.tif 000009
【図８】
2016162387.tif 000010
【図９】
2016162387.tif 000011
【図１０】
2016162387.tif 000012
【図１１】
2016162387.tif 000013
【図１２】
2016162387.tif 000014
【図１３】
2016162387.tif 000015
【図１４】
2016162387.tif 000016