(57)【特許請求の範囲】
【請求項１】
仮想マシン及び／又は仮想スイッチを含んだ仮想環境を含む物理マシンと、該物理マシンを管理するコントローラとを有するネットワークシステムであって、
前記物理マシンは、
自己の物理マシンと、前記自己の物理マシンに接続されたネットワーク機器との間の導通確認のための制御メッセージを、前記仮想環境を介して前記ネットワーク機器に対して送信する制御メッセージ送信部と、
前記制御メッセージ送信部によって送信された制御メッセージに対する前記ネットワーク機器からの応答が所定条件を満たした場合に、前記仮想環境を含んだ前記自己の物理マシンと前記ネットワーク機器との間の通信経路に障害が発生したことを検知して、障害の発生を検知したことを前記コントローラに対して通知する障害検知通知部と
を有し、
前記コントローラは、
前記物理マシンによって障害発生の検知を通知された場合に、前記自己の物理マシンに含まれる仮想環境をマイグレーション元とし、前記自己の物理マシンとは異なる他の物理マシンに含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行するマイグレーション実行部と、
前記マイグレーション実行部によって実行されたマイグレーションに応じて、前記マイグレーション元の仮想環境の設定情報を、前記マイグレーション先の仮想環境に反映する設定情報反映部と
を有することを特徴とするネットワークシステム。
【請求項２】
前記制御メッセージ送信部は、前記自己の物理マシンに含まれる仮想環境ごとに使用されるＩＰアドレスを送信元とする前記制御メッセージを前記ネットワーク機器に対して送信することを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
仮想マシン及び／又は仮想スイッチを含んだ仮想環境を含む物理マシンと、該物理マシンを管理するコントローラとで実行される冗長化方法であって、
前記物理マシンにおいて、
自己の物理マシンと、前記自己の物理マシンに接続されたネットワーク機器との間の導通確認のための制御メッセージを、前記仮想環境を介して前記ネットワーク機器に対して送信する制御メッセージ送信工程と、
前記制御メッセージ送信工程によって送信された制御メッセージに対する前記ネットワーク機器からの応答が所定条件を満たした場合に、前記仮想環境を含んだ前記自己の物理マシンと前記ネットワーク機器との間の通信経路に障害が発生したことを検知して、障害の発生を検知したことを前記コントローラに対して通知する障害検知通知工程と
を含み、
前記コントローラにおいて、
前記物理マシンによって障害発生の検知を通知された場合に、前記自己の物理マシンに含まれる仮想環境をマイグレーション元とし、前記自己の物理マシンとは異なる他の物理マシンに含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行するマイグレーション実行工程と、
前記マイグレーション実行工程によって実行されたマイグレーションに応じて、前記マイグレーション元の仮想環境の設定情報を、前記マイグレーション先の仮想環境に反映する設定情報反映工程と
を含んだことを特徴とする冗長化方法。
【請求項４】
仮想マシン及び／又は仮想スイッチを含んだ仮想環境を含む障害検知装置であって、
自己の障害検知装置と、前記自己の障害検知装置に接続されたネットワーク機器との間の導通確認のための制御メッセージを、前記仮想環境を介して前記ネットワーク機器に対して送信する制御メッセージ送信部と、
前記制御メッセージ送信部によって送信された制御メッセージに対する前記ネットワーク機器からの応答が所定条件を満たした場合に、前記仮想環境を含んだ前記自己の障害検知装置と前記ネットワーク機器との間の通信経路に障害が発生したことを検知し、前記自己の障害検知装置を管理するコントローラに対して、障害の発生を検知したことを通知する障害検知通知部と
を有することを特徴とする障害検知装置。
【請求項５】
コンピュータを請求項４に記載の障害検知装置として機能させるための障害検知プログラム。
【請求項６】
仮想マシン及び／又は仮想スイッチを含んだ仮想環境を含む物理マシンと、該物理マシンを管理するコントローラとを有するネットワークシステムであって、
前記物理マシンは、
自己の物理マシンと、前記自己の物理マシンに接続されたネットワーク機器との間の導通確認のための制御メッセージを、前記仮想環境を介して前記ネットワーク機器に対して送信する制御メッセージ送信部と、
前記制御メッセージ送信部によって送信された制御メッセージに対する前記ネットワーク機器からの応答が所定条件を満たした場合に、前記仮想環境を含んだ前記自己の物理マシンと前記ネットワーク機器との間の通信経路に障害が発生したことを検知して、障害の発生を検知したことを前記コントローラに対して通知する障害検知通知部と
を有し、
前記コントローラは、
前記物理マシンによって障害発生の検知を通知された場合に、前記自己の物理マシンに含まれる仮想環境を代替手段に切り替える仮想環境切替部と、
前記仮想環境切替部によって切り替えられた仮想環境に応じて、切り替え前の仮想環境の設定情報を、切り替え後の仮想環境に反映する設定情報反映部と
を有することを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、冗長化方法、障害検知装置及び障害検知プログラムに関する。
【背景技術】
【０００２】
近年、複数の拠点間を相互に接続する技術（例えば、「次世代企業網連携技術」等）が提案されている。かかる技術によれば、例えば、各企業のＶＰＮ（Virtual  Private  Network）同士が相互に接続され、異なる企業間に協働空間が形成される。また、最近では、クラウドコンピューティング（Cloud  Computing）と呼ばれる技術が登場している。クラウドコンピューティングでは、ソフトウェア、ハードウェア及びデータ等の各種資源をネットワーク上のサーバ装置に保管させ、利用者は、このサーバ装置にアクセスすることでサービスの提供を受ける。
【０００３】
また、クラウドコンピューティングには、物理マシン上で少なくとも一つの仮想マシンを動作させる仮想化技術が適用されることがある。つまり、ネットワークに複数接続されることがあるサーバ装置それぞれは、一つの様態として、複数の仮想マシン環境を含むことになる。かかる仮想マシンを動作させる仮想化技術とは、物理的なハードウェアを論理的に分割し、分割したハードウェア毎にＯＳ（Operating  System）を動作させることで、１台の物理マシンをあたかも複数台の物理マシンであるかのように動作させる技術である。例えば、ネットワーク上のサーバ装置に仮想化技術を適用することで、複数のサーバ装置であるかのように動作させることができ、複数の企業に個別にサービスを提供することができる。
【０００４】
図９は、従来技術に係る仮想化技術を適用した物理ネットワークの構成例を示す図である。また、図１０は、従来技術に係る仮想化技術を適用した論理ネットワークの構成例を示す図である。
【０００５】
例えば、図９に示すように、従来技術に係る物理ネットワークでは、物理マシンＸと、物理マシンＹと、仮想スイッチコントローラと、仮想マシンコントローラと、スイッチと、ルータとが接続される。なお、物理マシン、スイッチ及びルータ等の数は、図示のものに限られるものではない。
【０００６】
各物理マシンには、例えば、少なくとも一つの仮想マシンと、仮想スイッチと、ハイパーバイザ（又は、仮想マシンモニタ、仮想モニタ、仮想化ＯＳ）とが含まれる。例を挙げると、物理マシンＸには、仮想マシンＡ１と、仮想マシンＢ１と、仮想スイッチＸと、ハイパーバイザとが含まれる。同様に、物理マシンＹには、仮想マシンＡ２と、仮想マシンＢ２と、仮想スイッチＹと、ハイパーバイザとが含まれる。
【０００７】
上記構成において、各物理マシンは、利用者に対してサービスを提供する仮想環境を含んだサーバ装置等である。例えば、仮想マシンＡ１と仮想マシンＡ２とは、利用者「Ａ」に対してサービスを提供する仮想環境であり、仮想マシンＢ１と仮想マシンＢ２とは、利用者「Ｂ」に対してサービスを提供する仮想環境である。各仮想スイッチは、例えば、自己の仮想スイッチが含まれる物理マシン上の仮想マシンによる通信を切り替える、仮想Ｌ２スイッチ等のソフトウェアである。各ハイパーバイザは、例えば、自己のハイパーバイザが含まれる物理マシン上の仮想マシンの制御を行なう。
【０００８】
また、仮想スイッチコントローラは、例えば、各物理マシン上の仮想スイッチのソフトウェアを一元管理するとともに仮想スイッチを監視する。また、仮想マシンコントローラは、例えば、各物理マシン上の仮想マシンのリソースを一元管理するとともに仮想マシンを監視する。かかる仮想マシンコントローラの監視対象には、さらにハイパーバイザも含まれていても良い。また、各スイッチは、ネットワーク上の通信を切り替える物理Ｌ２スイッチ等である。また、各ルータは、ネットワーク上のパケットをルーティングする物理ルータ等である。
【０００９】
これらにより、クラウドコンピューティングを提供する提供者は、図１０に示すように、各利用者用に論理スイッチを定義し、顧客単位で隔離された通信となるように、物理層に設定を反映させて運用している。例えば、利用者「Ａ」に対しては、図１０の左方に示すように、論理スイッチＡを定義し、利用者「Ａ」用に隔離された通信となるように、仮想マシンＡ１、仮想マシンＡ２、論理スイッチＡ及びルータＡが構成される。同様に、利用者「Ｂ」に対しては、図１０の右方に示すように、論理スイッチＢを定義し、利用者「Ｂ」用に隔離された通信となるように、仮想マシンＢ１、仮想マシンＢ２、論理スイッチＢ及びルータＢが構成される。
【００１０】
このような従来技術に係るネットワークに関する故障について、例えば、仮想スイッチと仮想マシンとの間のリンクが切断した場合、又は、仮想スイッチ自体が停止した場合等の障害については、仮想スイッチコントローラによって検知される。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】“日経コミュニケーション  ２０１０年２月１５日号”、ｐｐ．６２−６５
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来技術では、ネットワークに関する故障について検知できない場合があるという問題がある。従来技術において、仮想スイッチコントローラは、利用者単位の仮想マシン内のトラヒックまで監視していない。このため、従来技術では、仮想スイッチコントローラで検知できない仮想スイッチのソフトウェアバグやホストＯＳバグ等によって、仮想マシンの通信が切断されるサイレント故障が発生した場合に、仮想マシンの利用者から申告があるまで故障を検知することができない。
【００１３】
そこで、本発明は、上記に鑑みてなされたものであって、ネットワークに関する故障について迅速に検知することが可能であるネットワークシステム、冗長化方法、障害検知装置及び障害検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、本発明に係るネットワークシステムは、仮想マシン及び／又は仮想スイッチを含んだ仮想環境を含む物理マシンと、該物理マシンを管理するコントローラとを有するネットワークシステムであって、前記物理マシンは、自己の物理マシンと、前記自己の物理マシンに接続されたネットワーク機器との間の導通確認のための制御メッセージを、前記仮想環境を介して前記ネットワーク機器に対して送信する制御メッセージ送信部と、前記制御メッセージ送信部によって送信された制御メッセージに対する前記ネットワーク機器からの応答が所定条件を満たした場合に、前記仮想環境を含んだ前記自己の物理マシンと前記ネットワーク機器との間の通信経路に障害が発生したことを検知して、障害の発生を検知したことを前記コントローラに対して通知する障害検知通知部とを有し、前記コントローラは、前記物理マシンによって障害発生の検知を通知された場合に、前記自己の物理マシンに含まれる仮想環境をマイグレーション元とし、前記自己の物理マシンとは異なる他の物理マシンに含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行するマイグレーション実行部と、前記マイグレーション実行部によって実行されたマイグレーションに応じて、前記マイグレーション元の仮想環境の設定情報を、前記マイグレーション先の仮想環境に反映する設定情報反映部とを有する。
【発明の効果】
【００１５】
本発明に係るネットワークシステム、冗長化方法、障害検知装置及び障害検知プログラムの一つの様態によれば、ネットワークに関する故障について迅速に検知することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係る障害検知の手法について説明する図である。
【図２】図２は、実施例１に係る仮想マシン型のネットワークシステム構成例について説明する図である。
【図３】図３は、実施例１に係る仮想マシン型の論理ネットワークの構成例を示す図である。
【図４】図４は、障害検知処理及びマイグレーション処理について説明するための図である。
【図５】図５は、実施例１に係る障害検知処理及びマイグレーション処理の流れの例を示すシーケンス図である。
【図６】図６は、Ｌｉｎｕｘ（登録商標）  ｍｏｄｕｌｅ型のネットワークシステム構成例について説明する図である。
【図７】図７は、Ｌｉｎｕｘ（登録商標）  ｍｏｄｕｌｅ型の論理ネットワークの構成例を示す図である。
【図８】図８は、本発明に係る障害検知プログラムがコンピュータを用いて具体的に実現されることを示す図である。
【図９】図９は、従来技術に係る仮想化技術を適用した物理ネットワークの構成例を示す図である。
【図１０】図１０は、従来技術に係る仮想化技術を適用した論理ネットワークの構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して、本発明に係るネットワークシステム、冗長化方法、障害検知装置及び障害検知プログラムの実施例を説明する。なお、以下の実施例により本発明が限定されるものではない。
【実施例１】
【００１８】
［障害検知の手法］
図１を用いて、実施例１に係る障害検知の手法について説明する。図１は、実施例１に係る障害検知の手法について説明する図である。
【００１９】
例えば、図１に示すように、実施例１に係る障害検知の手法では、障害検知用監視機能が利用される。例えば、図１の実線矢印で示すように、障害検知用監視機能は、物理マシンと、物理マシンに接続されたスイッチやルータ等のネットワーク機器との間の導通確認のための制御メッセージを送信する。
【００２０】
詳細には、物理マシンは、仮想スイッチ、ハイパーバイザ、ホストＯＳ等を含み、かかる制御メッセージの送信では、接続される仮想スイッチの仮想ポート、仮想スイッチ、物理マシンのＮＩＣ（Network  Interface  Card）、物理Ｌ２（Layer  2）スイッチ、物理Ｌ３スイッチ、物理ルータ等を介する。また、制御メッセージの送信では、一つの様態として、ｐｉｎｇ（Packet  INternet  Groper）等が実行される。なお、図１において、ハイパーバイザとホストＯＳとの機能は、一体化されていても良い。
【００２１】
そして、障害検知用監視機能は、送信した制御メッセージに対して、ネットワーク機器からの応答が所定条件を満たした場合に、物理マシンとネットワーク機器との間の通信経路に障害が発生したことを検知して、障害の発生を検知したことを仮想スイッチコントローラ等に通知する。所定条件としては、例えば、一定時間以上応答がないこと、応答間隔が通常とは極端に異なる（例えば、極端に応答時間が遅い等）こと、断続した応答になっていること等が挙げられる。すなわち、完全に不通でなくても、上記所定条件に含まれるような不通の予兆があるとみなされれば、通信経路に障害が発生したとして検知されるように、この所定条件を設定しても良い。また例えば、図示しない記憶部等に設定された所定条件を読み込むことで検知に用いても良い。
【００２２】
なお、図１において、障害検知用監視機能は、物理マシン上の各仮想マシン内に配置されていても良い。かかる場合に、制御メッセージの送信では、さらに仮想マシンの仮想ＮＩＣを介することになる。これにより、障害検知用監視機能による監視対象は、例えば、仮想マシンの仮想ＮＩＣ、仮想スイッチの仮想ポート、仮想スイッチ、物理マシンのＮＩＣ、物理Ｌ２スイッチ、物理Ｌ３スイッチ、物理ルータ等になる。
【００２３】
つまり、実施例１に係る障害検知の手法では、物理マシン上の仮想マシンによる通信の経路に対して、導通確認用の制御メッセージを送信することにより、障害の発生を検知するので、サイレント故障を検知することができない従来技術と比較して、迅速に故障検知することができる。換言すると、実施例１に係る障害検知の手法では、サイレント故障等を検知するために、仮想マシンによる通信を切り替える仮想スイッチを介した制御メッセージを、物理マシンに接続されるネットワーク機器に対して送信するので、迅速に故障検知することができる。また、実施例１に係る障害検知の手法では、物理スイッチ、ルータ、物理マシンのＮＩＣが正常であると仮定すれば、物理マシン内の仮想的な通信路、つまり、物理マシン内の障害検知用監視機能と物理マシンのＮＩＣとの間の仮想的な通信路の故障を検知できる。
【００２４】
［実施例１に係る仮想マシン型のネットワークシステム構成］
次に、図２及び図３を用いて、実施例１に係る仮想マシン型のネットワークシステム構成について説明する。図２は、実施例１に係る仮想マシン型の物理ネットワークの構成例を示す図である。また、図３は、実施例１に係る仮想マシン型の論理ネットワークの構成例を示す図である。
【００２５】
例えば、図２に示すように、実施例１に係る仮想マシン型ネットワークでは、物理マシン１００と、物理マシン１１０と、コントローラ１５０と、スイッチ１０と、ルータ１１と、スイッチ１２と、ルータ１３とが接続される。以下では、スイッチ１０、ルータ１１、スイッチ１２及びルータ１３について、「ネットワーク機器」と呼ぶことがある。なお、物理マシン、スイッチ及びルータ等の数は、図示のものに限られるものではない。
【００２６】
物理マシン１００には、例えば、仮想マシンＡ１１０１と、仮想マシンＢ１１０２と、監視仮想マシン１０３と、仮想スイッチ１０４と、ハイパーバイザ１０５とが含まれる。同様に、物理マシン１１０には、例えば、仮想マシンＡ２１１１と、仮想マシンＢ２１１２と、監視仮想マシン１１３と、仮想スイッチ１１４と、ハイパーバイザ１１５とが含まれる。また、コントローラ１５０は、例えば、仮想スイッチコントローラ１５１と、仮想マシンコントローラ１５２とを有する。なお、監視仮想マシン１０３や監視仮想マシン１１３は、図１で示した障害検知用監視機能の一例である。
【００２７】
上記構成において、スイッチ１０又はスイッチ１２は、例えば、ネットワーク上の通信を切り替える物理Ｌ２スイッチ等である。ルータ１１又はルータ１３は、例えば、ネットワーク上のパケットをルーティングする物理ルータ等である。
【００２８】
物理マシン１００又は物理マシン１１０は、利用者に対してサービスを提供する仮想環境を含んだサーバ装置等である。例えば、仮想マシンＡ１１０１と仮想マシンＡ２１１１とは、利用者「Ａ」に対してサービスを提供する仮想環境であり、仮想マシンＢ１１０２と仮想マシンＢ２１１２とは、利用者「Ｂ」に対してサービスを提供する仮想環境である。
【００２９】
監視仮想マシン１０３は、例えば、仮想マシンＡ１１０１又は仮想マシンＢ１１０２による通信の経路の導通確認のために、所定の時間間隔でｐｉｎｇを実行する。詳細には、何れの仮想マシンによる通信の経路に障害が発生したかを検知するために、監視仮想マシン１０３は、仮想マシンごとに使用されるＩＰ（Internet  Protocol）アドレスを送信元とするｐｉｎｇを実行する。なお、この仮想マシンごとに使用されるＩＰアドレスを送信元とするｐｉｎｇを実行する処理は、各仮想マシン内に障害検知用監視機能を備える場合に適用されるものである。一方、障害検知用監視機能が独立している図１や後述する図６等の構成においては、各利用者に対応して保有されるサブネットのうち、未使用の空いている一つのＩＰアドレスを利用して導通確認が行われる。要するに、障害検知用監視機能が仮想マシンとは独立して存在する場合には、仮想マシンのアドレスと異なるアドレスが使用されることが好ましい。
【００３０】
そして、監視仮想マシン１０３は、実行したｐｉｎｇに対して、ネットワーク機器からの応答が所定条件を満たした場合に、仮想マシンＡ１１０１又は仮想マシンＢ１１０２による通信の経路に障害が発生したことを検知する。かかる所定条件としては、例えば、一定時間以上応答がないこと、応答間隔が通常とは極端に異なること、断続した応答になっていること等が挙げられる。その後、監視仮想マシン１０３は、障害の発生を検知したことをコントローラ１５０に対して通知する。なお、監視仮想マシン１１３による処理は、監視仮想マシン１０３による処理と同様であるため、ここではその説明を省略する。また、以下では、監視仮想マシン１０３によって障害が検知された場合を例に挙げて説明する。
【００３１】
仮想スイッチ１０４又は仮想スイッチ１１４は、例えば、自己の仮想スイッチが含まれる物理マシン上の仮想マシンによる通信を切り替える、仮想Ｌ２スイッチ等のソフトウェアである。ハイパーバイザ１０５又はハイパーバイザ１１５は、例えば、自己のハイパーバイザが含まれる物理マシン上の仮想マシンの制御を行なう。
【００３２】
仮想スイッチコントローラ１５１は、例えば、仮想スイッチ１０４や仮想スイッチ１１４のソフトウェアを一元管理するとともにこれらの仮想スイッチを監視する。また、仮想スイッチコントローラ１５１は、例えば、監視仮想マシン１０３又は監視仮想マシン１１３から障害発生の検知を通知された場合に、仮想マシンコントローラ１５２に対して障害発生検知の通知を転送する。加えて、仮想スイッチコントローラ１５１は、物理マシン１００に含まれる仮想スイッチ１０４等の仮想環境をマイグレーション元とし、物理マシン１１０に含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行する。ここで、マイグレーション先は、コントローラ１５０によって管理される物理マシン、すなわち、コントローラ１５０の管理下にある図示されていないどの物理マシンであっても良い。また、仮想スイッチコントローラ１５１は、仮想環境のマイグレーションに応じて、マイグレーション元である仮想スイッチ１０４等の仮想環境の設定情報を、マイグレーション先である物理マシン１１０の仮想環境に反映する。なお、仮想スイッチコントローラ１５１によるマイグレーションは、一つの様態として、ストレージ用の通信回線を利用して行なわれる。
【００３３】
仮想マシンコントローラ１５２は、例えば、仮想スイッチコントローラ１５１から障害発生検知の通知の転送を受け付ける。そして、仮想マシンコントローラ１５２は、物理マシン１００に含まれる仮想マシンＡ１１０１及び仮想マシンＢ１１０２等の仮想環境をマイグレーション元とし、物理マシン１１０に含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行する。ここで、マイグレーション先は、コントローラ１５０によって管理される物理マシン、すなわち、コントローラ１５０の管理下にある図示されていないどの物理マシンであっても良い。また、仮想マシンコントローラ１５２は、仮想環境のマイグレーションに応じて、マイグレーション元である仮想マシンＡ１１０１及び仮想マシンＢ１１０２等の仮想環境の設定情報を、マイグレーション先である物理マシン１１０の仮想環境に反映する。その後、仮想マシンコントローラ１５２は、障害発生の通知元である物理マシン１００をシャットダウンする。なお、仮想マシンコントローラ１５２によるマイグレーションは、一つの様態として、ストレージ用の通信回線を利用して行なわれる。また、物理マシン１００のシャットダウン後には、システム管理者等によって故障箇所の修理が行なわれる。故障箇所の修理の際には、何れの仮想マシンによる通信の経路で障害が発生したかの情報を利用すれば良い。
【００３４】
また、仮想スイッチコントローラ１５１と仮想マシンコントローラ１５２によるマイグレーション処理は、仮想マシンコントローラ１５２による管理下の他の物理マシンに対して実行される。このようなマイグレーション処理において、同一の物理マシン上に含まれる仮想マシン及び仮想スイッチの組み合わせは、そのマイグレーション先も同一の物理マシン上となる。
【００３５】
上記物理ネットワークの構成により、クラウドコンピューティングを提供する提供者は、図３に示すように、各利用者用に論理スイッチを定義し、顧客単位で隔離された通信となるように、物理層に設定を反映させて運用しているとともに、仮想マシンが含まれる物理マシンごとに障害検知用監視機能を導入する。
【００３６】
例えば、利用者「Ａ」に対しては、図３の左方に示すように、論理スイッチＡを定義し、利用者「Ａ」用に隔離された通信となるように、仮想マシンＡ１、仮想マシンＡ２、論理スイッチＡ及びルータＡが構成されるとともに、障害検知用監視機能Ａも構成される。同様に、利用者「Ｂ」に対しては、図３の右方に示すように、論理スイッチＢを定義し、利用者「Ｂ」用に隔離された通信となるように、仮想マシンＢ１、仮想マシンＢ２、論理スイッチＢ及びルータＢが構成されるとともに、障害検知用監視機能Ｂも構成される。
【００３７】
［障害検知処理及びマイグレーション処理］
次に、図４を用いて、障害検知処理及びマイグレーション処理について説明する。図４は、障害検知処理及びマイグレーション処理について説明するための図である。なお、障害検知処理とは、主に障害検知用監視機能としての監視仮想マシンによる処理を指し、マイグレーション処理とは、主にコントローラ１５０による処理を指す。また、以下では、物理マシン１００に含まれる仮想マシンＡ１１０１又は仮想マシンＢ１１０２による通信の経路で障害が発生する場合を例に挙げて説明する。
【００３８】
（障害検知処理）
例えば、図４の（１）に示すように、監視仮想マシン１０３は、仮想マシンＡ１１０１と仮想マシンＢ１１０２とによる仮想スイッチ１０４を介した、物理Ｌ２スイッチや物理ルータ等のネットワーク機器との間の通信の経路の導通確認のために、所定の時間間隔で、仮想マシンＡ１１０１と仮想マシンＢ１１０２とのそれぞれで使用されるＩＰアドレスを送信元とするｐｉｎｇを実行する。そして、監視仮想マシン１０３は、実行したｐｉｎｇに対して、ネットワーク機器からの応答が所定条件を満たした場合に、仮想マシンＡ１１０１又は仮想マシンＢ１１０２による通信の経路に障害が発生したことを検知し、障害の発生を検知したことを仮想スイッチコントローラ１５１に対して通知する。なお、所定条件としては、例えば、一定時間以上応答がないこと、応答間隔が通常とは極端に異なること、断続した応答になっていること等が挙げられる。
【００３９】
（マイグレーション処理）
また、仮想スイッチコントローラ１５１は、図４の（２）に示すように、監視仮想マシン１０３から障害発生検知の通知を受け付けると、障害発生検知の通知を、仮想マシンコントローラ１５２に対して転送する。また、仮想マシンコントローラ１５２は、図４の（３）に示すように、仮想スイッチコントローラ１５１から障害発生検知の通知を転送されると、仮想マシンＡ１１０１及び仮想マシンＢ１１０２の仮想環境をマイグレーション元とし、物理マシン１１０に含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行する。これにより、物理マシン１１０には、仮想マシンＡ１１０１と仮想マシンＢ１１０２との仮想環境が新たに構成される。加えて、仮想マシンコントローラ１５２は、仮想環境のマイグレーションに応じて、マイグレーション元である仮想マシンＡ１１０１及び仮想マシンＢ１１０２の仮想環境の設定情報を、マイグレーション先である物理マシン１１０の仮想環境に反映する。
【００４０】
また、仮想スイッチコントローラ１５１は、図４の（４）に示すように、仮想スイッチ１０４の仮想環境をマイグレーション元とし、物理マシン１１０に含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行する。また、仮想スイッチコントローラ１５１は、仮想環境のマイグレーションに応じて、マイグレーション元である仮想スイッチ１０４の仮想環境の設定情報を、マイグレーション先である物理マシン１１０の仮想環境に反映する。また、仮想マシンコントローラ１５２は、図４の（５）に示すように、障害発生の通知元である物理マシン１００をシャットダウンする。
【００４１】
［実施例１に係る処理シーケンス］
次に、図５を用いて、実施例１に係る障害検知処理及びマイグレーション処理の流れについて説明する。図５は、実施例１に係る障害検知処理及びマイグレーション処理の流れの例を示すシーケンス図である。
【００４２】
例えば、図５に示すように、監視仮想マシン１０３は、物理マシン１００とネットワーク機器との間の導通確認のための制御メッセージを送信する（ステップＳ１０１）。制御メッセージの送信においては、一つの様態として、仮想スイッチ１０４を介して、仮想マシンＡ１１０１と仮想マシンＢ１１０２とによる通信で使用されるＩＰアドレスを送信元とするｐｉｎｇが実行される。そして、監視仮想マシン１０３は、制御メッセージの送信に対し、ネットワーク機器からの応答が所定条件を満たした場合に、通信の経路に障害が発生したことを検知して、障害の発生を検知したことを仮想スイッチコントローラ１５１に対して通知する（ステップＳ１０２）。なお、所定条件としては、例えば、一定時間以上応答がないこと、応答間隔が通常とは極端に異なること、断続した応答になっていること等が挙げられる。
【００４３】
また、仮想スイッチコントローラ１５１は、監視仮想マシン１０３から障害検知の通知を受け付けた場合に、受け付けた障害検知の通知を、仮想マシンコントローラ１５２に対して転送する（ステップＳ１０３）。そして、仮想スイッチコントローラ１５１は、仮想スイッチ１０４等の仮想環境をマイグレーション元とし、物理マシン１１０に含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行する（ステップＳ１０４）。その後、仮想スイッチコントローラ１５１は、仮想スイッチ１０４等の仮想環境のマイグレーションに応じて、マイグレーション元である仮想スイッチ１０４の仮想環境の設定情報を、マイグレーション先である物理マシン１１０の仮想環境に反映する（ステップＳ１０５）。
【００４４】
また、仮想マシンコントローラ１５２は、仮想スイッチコントローラ１５１から障害検知の通知を転送された場合に、仮想マシンＡ１１０１及び仮想マシンＢ１１０２等の仮想環境をマイグレーション元とし、物理マシン１１０に含まれる仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行する（ステップＳ１０６）。そして、仮想マシンコントローラ１５２は、仮想マシンＡ１１０１及び仮想マシンＢ１１０２の仮想環境のマイグレーションに応じて、マイグレーション元である仮想マシンＡ１１０１及び仮想マシンＢ１１０２の仮想環境の設定情報を、マイグレーション先である物理マシン１１０の仮想環境に反映する（ステップＳ１０７）。その後、仮想マシンコントローラ１５２は、障害検知された物理マシン１００をシャットダウンする（ステップＳ１０８）。
【００４５】
［実施例１による効果］
上述したように、ネットワークシステムにおいて、物理マシン１００は、仮想マシンによる通信経路でｐｉｎｇを実行し、応答がない場合に仮想マシンによる通信の経路で障害が発生したことを検知し、障害発生を検知したことをコントローラ１５０に対して通知する。また、コントローラ１５０は、物理マシン１００から障害発生の検知を通知された場合に、物理マシン１００に含まれる仮想マシン及び仮想スイッチ等の仮想環境をマイグレーション元とし、コントローラ１５０の管理下にある他の物理マシンの仮想環境をマイグレーション先として、仮想環境のマイグレーションを実行し、各種設定情報の反映を行なう。これらの結果、ネットワークシステムは、ネットワークに関する故障について迅速に検知することができるとともに、利用者に対するサービスの停滞を抑制することができる。
【実施例２】
【００４６】
さて、これまで本発明に係る物理マシンとコントローラとを含むネットワークシステムの実施例について説明したが、上述した実施例以外にも種々の異なる形態にて実施されてよいものである。そこで、（１）Ｌｉｎｕｘ（登録商標）  ｍｏｄｕｌｅ型、（２）構成、（３）プログラム、において異なる実施例を説明する。
【００４７】
（１）Ｌｉｎｕｘ（登録商標）  ｍｏｄｕｌｅ型
上記実施例では、仮想マシン型のネットワーク（物理ネットワーク）システムや論理ネットワークを例に挙げて説明したが、Ｌｉｎｕｘ（登録商標）  ｍｏｄｕｌｅ型により実現することもできる。
【００４８】
図６は、Ｌｉｎｕｘ（登録商標）  ｍｏｄｕｌｅ型のネットワークシステム構成例について説明する図である。また、図７は、Ｌｉｎｕｘ（登録商標）  ｍｏｄｕｌｅ型の論理ネットワークの構成例を示す図である。なお、図６では、実施例１に係る仮想マシン型のネットワークシステム構成と同様の構成要素については、同一の符号を付している。すなわち、各構成要素による処理は実施例１と同様であるため詳細な説明を省略する。また、監視モジュール１０３は、監視仮想マシン１０３に対応し、監視モジュール１１３は、監視仮想マシン１１３に対応する。
【００４９】
例えば、図６における各仮想マシンは、実施例１と同様に、各仮想スイッチを介して通信を行なう。これに伴い、監視モジュール１０３又は監視モジュール１１３は、例えば、各仮想マシンによる通信の経路の導通確認のために、所定の時間間隔でｐｉｎｇを実行する。なお、実施例１と同様に、ｐｉｎｇの実行では、各利用者に対応して保有されるサブネットのうち、未使用の空いている一つのＩＰアドレスを利用して導通確認が行われる。そして、監視モジュール１０３又は監視モジュール１１３は、実行したｐｉｎｇに対して、ネットワーク機器からの応答が所定条件を満たした場合に、該当する仮想マシンによる通信の経路に障害が発生したことを検知する。所定条件としては、例えば、一定時間以上応答がないこと、応答間隔が通常とは極端に異なること、断続した応答になっていること等が挙げられる。かかる検知では、実施例１と同様に、各仮想スイッチにおけるサイレント故障等も検知することが可能である。その後、監視モジュール１０３又は監視モジュール１１３は、障害の発生を検知したことをコントローラ１５０に対して通知する。
【００５０】
上記物理ネットワークの構成により、クラウドコンピューティングを提供する提供者は、図７に示すように、各利用者用に論理スイッチを定義し、顧客単位で隔離された通信となるように、物理層に設定を反映させて運用しているとともに、仮想マシンが含まれる物理マシンごとに障害検知用監視機能を導入する。また、論理ネットワークの構成ついても、実施例１と同様であるためその説明を省略する。
【００５１】
（２）構成
また、上記文書中や図面中等で示した処理手順、制御手順、具体的名称、各種のデータやパラメタ等を含む情報（例えば、コントローラ１５０で実行される処理手順等）については、特記する場合を除いて任意に変更することができる。例えば、仮想スイッチコントローラ１５１及び仮想マシンコントローラ１５２によって実行されるマイグレーション処理は、それらの処理手順の順序を適宜変更しても良い。図５を例に挙げると、ステップＳ１０４及びステップＳ１０５と、ステップＳ１０６及びステップＳ１０７とは、どちらが先に処理されても良い。但し、ステップＳ１０８は、ステップＳ１０４〜ステップＳ１０７の処理の終了後に実行される。かかるマイグレーションは、例えば、ライブマイグレーション（LM：Live  Migration）であることが好ましい。ライブマイグレーションについては、“森若  和雄，鶴野  龍一郎，まえだ  こうへい、「ＫＶＭ徹底入門  Linux（登録商標）カーネル仮想化基盤構築ガイド」、２０１０年７月７日、Ｐ．１６２”等に掲載されている。
【００５２】
また、図示した物理マシン１００やコントローラ１５０の各構成要素は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は、図示のものに限られず、その全部又は一部を各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合することができる。例えば、仮想スイッチを管理・監視する仮想スイッチコントローラ１５１と、物理マシンを管理・監視する仮想マシンコントローラ１５２とを、仮想スイッチ及び仮想マシンを管理・監視する「仮想環境コントローラ」として統合しても良い。
【００５３】
また、仮想マシンコントローラ１５２によって管理される物理マシンが３台以上である場合に、マイグレーション処理は、各物理マシンの負荷状態を考慮し、複数の物理マシン上に仮想マシンを分散させるように実行される。このとき、仮想スイッチコントローラ１５１と仮想マシンコントローラ１５２とは、連携して、仮想マシン及び仮想スイッチの組み合わせを同一の物理マシン上にマイグレーションする。
【００５４】
また、本発明は、障害検知時にマイグレーションによって仮想環境のサービスの提供を停止させないようにすることに限られるものではない。例えば、コントローラ１５０は、物理マシンによって障害発生の検知を通知された場合に、該物理マシンに含まれる仮想環境を代替手段に切り替え、切り替えた仮想環境に応じて、切り替え前の仮想環境の設定情報を、切り替え後の仮想環境に反映しても良い。例を挙げると、コントローラは、障害検知時に、仮想スイッチを再生成する等、又は予め代替仮想スイッチを用意しておく等して仮想スイッチを交換し、切り替え前の設定情報を切り替え後の仮想スイッチの設定情報として反映する。
【００５５】
また、物理マシン１００やコントローラ１５０にて行われる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び該ＣＰＵにて解析実行されるプログラムにて実現され、或いは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５６】
（３）プログラム
図８は、本発明に係る障害検知プログラムがコンピュータを用いて具体的に実現されることを示す図である。図８に例示するように、コンピュータ１０００は、例えば、メモリ１００１と、ＣＰＵ１００２と、ハードディスクドライブインタフェース１００３と、ディスクドライブインタフェース１００４と、シリアルポートインタフェース１００５と、ビデオアダプタ１００６と、ネットワークインタフェース１００７とを有し、これらの各部はバス１００８によって接続される。
【００５７】
メモリ１００１は、図８に例示するように、ＲＯＭ１００１ａ及びＲＡＭ１００１ｂを含む。ＲＯＭ１００１ａは、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１００３は、図８に例示するように、ハードディスクドライブ１００９に接続される。ディスクドライブインタフェース１００４は、図８に例示するように、ディスクドライブ１０１０に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０１０に挿入される。シリアルポートインタフェース１００５は、図８に例示するように、例えばマウス１０１１、キーボード１０１２に接続される。ビデオアダプタ１００６は、図８に例示するように、例えばディスプレイ１０１３に接続される。
【００５８】
ここで、図８に例示するように、ハードディスクドライブ１００９は、例えば、ＯＳ（Operating  System）１００９ａ、アプリケーションプログラム１００９ｂ、プログラムモジュール１００９ｃ、プログラムデータ１００９ｄを記憶する。すなわち、本発明に係る障害検知プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１００９ｃとして、例えばハードディスクドライブ１００９に記憶される。具体的には、上記実施例で説明した監視仮想マシン１０３等と同様の処理を実行する制御メッセージ送信手順と、障害検知通知手順とが記述されたプログラムモジュール１００９ｃが、ハードディスクドライブ１００９に記憶される。また、物理マシンの所定の記憶部に記憶されるデータのように、障害検知プログラムによる処理に用いられるデータは、プログラムデータ１００９ｄとして、例えばハードディスクドライブ１００９に記憶される。そして、ＣＰＵ１００２が、ハードディスクドライブ１００９に記憶されたプログラムモジュール１００９ｃやプログラムデータ１００９ｄを必要に応じてＲＡＭ１００１ｂに読み出し、制御メッセージ送信手順、障害検知通知手順を実行する。
【００５９】
なお、障害検知プログラムに係るプログラムモジュール１００９ｃやプログラムデータ１００９ｄは、ハードディスクドライブ１００９に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１０１０等を介してＣＰＵ１００２によって読み出されてもよい。あるいは、障害検知プログラムに係るプログラムモジュール１００９ｃやプログラムデータ１００９ｄは、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１００７を介してＣＰＵ１００２によって読み出されてもよい。
【符号の説明】
【００６０】
１００  物理マシン
１０１  仮想マシンＡ１
１０２  仮想マシンＢ１
１０３  監視仮想マシン
１０４  仮想スイッチ
１０５  ハイパーバイザ
１５０  コントローラ
１５１  仮想スイッチコントローラ
１５２  仮想マシンコントローラ
【図１】
0005558422.tif 000002
【図２】
0005558422.tif 000003
【図３】
0005558422.tif 000004
【図４】
0005558422.tif 000005
【図５】
0005558422.tif 000006
【図６】
0005558422.tif 000007
【図７】
0005558422.tif 000008
【図８】
0005558422.tif 000009
【図９】
0005558422.tif 000010
【図１０】
0005558422.tif 000011