(57)【要約】【課題】ワーキング系計算機システム上の仮想マシンに関して障害が発生した際に仮想マシンと通信していたクライアントに対して一切の設定変更を加えることなく障害を復旧可能なネットワークシステム及び制御方法を提供することを目的とする。【解決手段】本発明は、ゲートウェイと仮想マシンとの間をポイント・ツー・ポイントの仮想トンネルで接続し、障害発生後に仮想マシンをバックアップ系の計算機システムの上で再構築し、ゲートウェイと仮想マシンとの間の仮想トンネルを再設定することとした。【選択図】図１０
2015002482.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳ仮想化で仮想マシン及び仮想通信ノードを駆動可能な複数の計算機システムと、
クライアントを収容するゲートウェイと、
前記計算機システムと前記ゲートウェイとを接続する経路制御用レイヤ３ノードと、
前記計算機システムに前記仮想マシン及び前記仮想通信ノードを構築し、前記経路制御用レイヤ３ノード及び前記仮想通信ノードを介して前記仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記クライアントと前記仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送するとともに、
前記仮想マシンに障害が発生した場合、前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージ、もしくは同じコマンド体系の仮想マシンイメージを用いて他の前記計算機システムに新たに副仮想マシンを構築し、前記経路制御用レイヤ３ノード及び他の前記計算機システムの前記仮想通信ノードを介して前記副仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記障害発生前の設定で前記クライアントと前記副仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送するように、前記計算機システム、前記ゲートウェイ、及び前記経路制御用レイヤ３ノードを管理及び制御する管理システムと、
を備えるネットワークシステム。
【請求項２】
前記管理システムは、
前記ゲートウェイ上にＴＡＰを設定して、前記ＴＡＰと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信手段と、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知手段と、
前記仮想マシンを停止する仮想マシン停止手段と、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保手段と、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築手段と、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定手段と、
前記ゲートウェイにおいて、前記副仮想マシンと接続するための前記仮想トンネルを設定するゲートウェイ設定手段と、
を有することを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記管理システムは、
前記ゲートウェイ上に複数のＴＡＰを設定して、前記ＴＡＰの１つと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰの１つとを結ぶ前記仮想トンネルを構築し、
前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信手段と、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知手段と、
前記仮想マシンを停止する仮想マシン停止手段と、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保手段と、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築手段と、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定手段と、
前記ゲートウェイの前記ＴＡＰそれぞれについての所定メッセージを前記ゲートウェイに発信させ、前記メッセージに対して応答する少なくとも一台の前記仮想マシンに対応するＴＡＰのペアから一つのペアを選択し、前記ペアのＴＡＰ間で前記仮想トンネルを設定するゲートウェイ自律設定手段と、
を有することを特徴とする請求項１に記載のネットワークシステム。
【請求項４】
ＯＳ仮想化で仮想マシン及び仮想通信ノードを駆動可能な複数の計算機システムと、
クライアントを収容するゲートウェイと、
前記計算機システムと前記ゲートウェイとを接続する経路制御用レイヤ３ノードと、
前記計算機システム、前記ゲートウェイ、及び前記経路制御用レイヤ３ノードを管理及び制御する管理システムと、
を備えるネットワークシステムの制御方法であって、
前記計算機システムに前記仮想マシン及び前記仮想通信ノードを構築し、前記経路制御用レイヤ３ノード及び前記仮想通信ノードを介して前記仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記クライアントと前記仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送する仮想ネットワーク構築手順と、
前記仮想マシンに障害が発生した場合、前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージ、もしくは同じコマンド体系の仮想マシンイメージを用いて他の前記計算機システムに新たに副仮想マシンを構築し、前記経路制御用レイヤ３ノード及び他の前記計算機システムの前記仮想通信ノードを介して前記副仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記障害発生前の設定で前記クライアントと前記副仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送する障害復旧手順と、
を行うことを特徴とする制御方法。
【請求項５】
前記仮想ネットワーク構築手順は、
前記ゲートウェイ上にＴＡＰを設定して、前記ＴＡＰと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰとを結ぶ前記仮想トンネルを構築し、
構築した前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信ステップ、で行い、
前記障害復旧手順は、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知ステップと、
前記仮想マシンを停止する仮想マシン停止ステップと、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保ステップと、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築ステップと、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定ステップと、
前記ゲートウェイにおいて、前記副仮想マシンと接続するための前記仮想トンネルを設定するゲートウェイ設定ステップと、を行う
ことを特徴とする請求項４に記載の制御方法。
【請求項６】
前記仮想ネットワーク構築手順は、
前記ゲートウェイ上に複数のＴＡＰを設定して、前記ＴＡＰの１つと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰの１つとを結ぶ前記仮想トンネルを構築し、
前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信ステップで行い、
前記障害復旧手順は、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知ステップと、
前記仮想マシンを停止する仮想マシン停止ステップと、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保ステップと、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築ステップと、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定ステップと、
前記ゲートウェイの前記ＴＡＰそれぞれについての所定メッセージを前記ゲートウェイに発信させ、前記メッセージに対して応答する少なくとも一台の前記仮想マシンに対応するＴＡＰのペアから一つのペアを選択し、前記ペアのＴＡＰ間で前記仮想トンネルを設定するゲートウェイ自律設定ステップと、を行う
ことを特徴とする請求項４に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想的なネットワークを構築する技術が適用されたネットワークシステム及び制御方法に関する。
【背景技術】
【０００２】
２０００年から２０１０年に掛け、中央演算処理装置（ＣＰＵ）のマルチコア化と、オペレーションシステム（ＯＳ）仮想化に対応したＣＰＵの制御命令コードの情報開示に伴い、ＯＳ仮想化は実用レベルで利用できるまで演算処理性能が向上し、商用導入され始めた。
【０００３】
ＯＳ仮想化は、ＣＰＵや主記憶装置（メモリ）、ハードディスク、ネットワーク・インターフェースを備えた物理的な計算機システムと、ゲストＯＳとの間にＨｙｐｅｒＶｉｓｏｒを設け、ＨｙｐｅｒＶｉｓｏｒがゲストＯＳと計算機システムとの間で制御命令の橋渡しを担うものである。ＨｙｐｅｒＶｉｓｏｒの代表例としてＶＭｗａｒｅ、ＸＥＮ、およびＫＶＭと呼ばれるものが存在する。ＨｙｐｅｒＶｉｓｏｒの特徴的な役割として、計算機システムを利用するユーザに対してあたかも複数の計算機システム、いわゆる仮想マシンが存在するように論理的に分割してみせる技術ことができる。その技術の概要は非特許文献１、非特許文献２、および非特許文献３に示されている。本発明で述べている物理システムの一例が計算機システムである。また非特許文献４にはゲストＯＳを起動するためのプロセスや、起動手順についての得失が紹介されている。非特許文献５において、物理的な計算機システムのメモリの上で仮想マシンのためのメモリ領域を確保する方法について紹介し、非特許文献６ではＨｙｐｅｒＶｉｓｏｒを利用して仮想マシンを駆動するための仮想的なデバイスを生成・制御する方法について紹介している。
【０００４】
ＯＳ仮想化の恩恵により、ゲストＯＳについて仮想マシンイメージをある計算機システムから別の計算機システムに移転したとしてもＨｙｐｅｒＶｉｓｏｒがハードウェア依存性を吸収してくれるため、逆にゲストＯＳはハードウェア依存性を意識しなくてもよくなる。さらに、計算機システム上の遊休物理資源を有効活用できるようになった。このため、データセンタ事業者はＯＳ仮想化を利用するようになった。
【０００５】
さらにＯＳ仮想化の副産物として、仮想マシンの静的な情報はハードディスク上のデータに記憶され、仮想マシン上で演算処理、もしくはネットワーク通信処理されているような動的な情報はメモリ上のデータとして記憶されるようになった。この仮想マシンのデータ、すなわち仮想マシンイメージを他の計算機システムにコピーすることにより、仮想的なモノではあるが、同等の性能や特性を有する計算機システムを容易かつ迅速に複製できるようになった。
【０００６】
非特許文献７は、計算機システムがローカルストレージ上の仮想マシンイメージを読みだして仮想マシンを起動する方法と、一方でリモートストレージ上の仮想マシンイメージを読み出して仮想マシンを起動する方法と、を紹介している。
【０００７】
非特許文献７が述べるとおり、上記のふたつの方法を比較すると得失が併存するが、いずれの方法とも仮想マシンを起動することができ、仮想マシンを駆動する計算機システムと仮想マシンイメージの位置関係に関わらず、仮想マシンを起動する方法は既に技術的に確立されている。
【０００８】
非特許文献８、非特許文献９および非特許文献１０では、ある計算機システム上で駆動する仮想マシン（文献内での略称はＶＭ）の数の増加や、仮想マシン自体の負荷の増加に応じ、同計算機システムの負荷が増大する場合について、一部の仮想マシンを別の計算機システム上に移転するライブ・マイグレーション技術を紹介している。この技術のおかげで、仮想マシン上で駆動しているＷｅｂサーバや、映像ストリーミングサーバはユーザへのサービスをほぼ中断することなく、ライブ・マイグレーションが実施される。
【０００９】
上記の三件の非特許文献に示されるとおり、ワーキング系の計算機システム上の仮想マシンとバックアップ系の計算機システム上の仮想マシンとの間において、ハードディスクやＩＰアドレス、ＭＡＣアドレスなどの資源の一部、もしくは全部を共有する技術や、ワーキング系の仮想マシンのハードディスク上やメモリ上のデータを、バックアップ系の仮想マシンにコピーする技術は確立されている。非特許文献９では、ワーキング系の計算機システムからバックアップ系の計算機システムに仮想マシンがマイグレーションされた際、仮想マシンからＲｅｖｅｒｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（ＲＡＲＰ）、もしくはＧｒａｔｕｉｔｏｕｓ  ＡＲＰと呼ばれるメッセージをバックアップ系の計算機システム周辺のネットワークノード群に対してブロードキャストすることにより、前記のネットワークノード群に対して仮想マシンの所在が移動したことを迅速に知らせる方法が紹介されている。
【００１０】
上記の非特許文献８は、ワーキング系の計算機システム上で駆動する仮想マシンに関して障害が発生する場合、バックアップ系の計算機システム上で同じ仮想マシンを駆動することにより、障害を回復するハイ・アベイラビリティ技術についても紹介している。
【００１１】
非特許文献８が述べるとおり、ある計算機システム上で駆動するワーキング系仮想マシンと、別の計算機システム上のバックアップ系仮想マシンとが定期的に状態監視する技術が既に確立されている。また、計算機システムや仮想マシンを管理する管理システム（非特許文献７で記載されているｖＣｅｎｔｅｒ  Ｓｅｒｖｅｒ）がワーキング系の計算機システムや仮想マシン、ならびにバックアップ系の計算機システムや仮想マシンを状態監視する技術も確立されている。さらに、ワーキング系の仮想マシンに障害が発生した際、バックアップ系の仮想マシンをワーキング系として切り替える技術も確立されている。ハイ・アベイラビリティ技術の場合、仮想マシン上のＷｅｂや映像ストリーミングなどのサービスは中断されるが、迅速に復旧される。
【００１２】
非特許文献１１では、非特許文献８で示されているハイ・アベイラビリティ技術をオープンソースソフトウェアで実現する方法を紹介している。非特許文献１１の例では市中の障害検知ソフトウェア（非特許文献７で記載されているｐａｃｅｍａｋｅｒ）と、市中のＯＳ仮想化ソフトウェア（非特許文献１１で記載されているＫＶＭ）とを組み合わせている。
【００１３】
非特許文献１１で示されるとおり、個別の機能、すなわちソフトウェアを組み合わせ、連動させればハイ・アベイラビリティ技術が実現できる。
【００１４】
上記の非特許文献８は、ハイ・アベイラビリティ技術と同様の障害復旧技術であるフォールト・トレランス技術についても紹介している。
【００１５】
非特許文献８で述べられている通り、ワーキング系のある計算機システム上で駆動する仮想マシンとバックアップ系の計算機システム上で駆動する仮想マシンとの間において、短周期でデータの同期を繰り返している。もし、ワーキング系の仮想マシンに関して障害が発生した場合、バックアップ系の仮想マシンをワーキング系の仮想マシンとして即時に切り替えて駆動することにより、仮想マシン上で駆動しているＷｅｂや映像ストリーミングなどのサーバおよびサービスは、そのユーザに対してほぼ中断されることなく提供され続ける。
【００１６】
フォールト・トレランス技術は、ハイ・アベイラビリティ技術と比べ、計算機システムや管理システムに掛る負荷が大きい一方、障害検知後からバックアップ系の仮想マシンをワーキングとして駆動させるまでの所要時間が短くできる。
【００１７】
非特許文献８のハイ・アベイラビリティ技術やフォールト・トレランス技術のとおり、ワーキング系の仮想マシンとバックアップ系の仮想マシンとの間で保有する、もしくは処理中のデータを同期する技術は得失の差を考慮して多数考案・実装され、実用化されている。
【００１８】
非特許文献１２は、通信事業者と、ＯＳ仮想ソフトウェアベンダが共同して取り組んだ遠隔ライブ・マイグレーションの例である。通信事業者も自社のデータセンタ内でＯＳ仮想化を利用するとともにＯＳ仮想化を使ったライブ・マイグレーション技術の検討に着手している。
【００１９】
上記のとおり、データセンタ事業者から通信事業者、通信ベンダ、ソフトウェアベンダが多数参加し、ＯＳ仮想化を利用したライブ・マイグレーション技術や、ハイ・アベイラビリティ技術、フォールト・トレランス技術を研究開発し、商用化している。
【００２０】
ただし、これまでのＯＳ仮想化のライブ・マイグレーション技術や、ハイ・アベイラビリティ技術は大きな技術課題を抱えていた。
【００２１】
非特許文献１９の図１で示されるとおり、これまでの仮想化では計算機システム内においてカーネル空間上の仮想ブリッジを経由し、物理的なＮＩＣと、ゲストＯＳ、すなわち仮想マシンとの間で通信させ、その物理的なＮＩＣを介して仮想マシンと外部の計算機システムとの間で通信させていた。
【００２２】
そして、非特許文献１９の図８で示されるとおり、仮想マシンが外部の計算機システムと通信する場合、仮想マシンが保有するＩＰアドレスは、自身が駆動されている計算機システム上のＮＩＣのＩＰアドレスと同じＩＰセグメントに属していることが前提である。すなわち、既存技術は図１に示されるとおりに仮想マシン同士や、仮想マシンとクライアントとの間がレイヤ２ネットワークで接続されていることを前提としていた。図１の環境下において、仮想マシン１が計算機システム１から計算機システム２に移動する場合、ｖＮＩＣ１とｖＮＩＣ２とは同じＩＰセグメントに属し、それゆえにｖＮＩＣ１とｖＮＩＣ２とは同じＩＰアドレスを保有することができた。ｖＮＩＣは仮想的なネットワーク・インターフェース・カードの略称である。
【００２３】
一方、図２のように計算機システム１と計算機システム２とをＩＰルーティング機能を有する経路制御用レイヤ３ノードで接続する場合、計算機システム１と計算機システム２とは異なるＩＰセグメントに属する。図２の環境において、仮想マシン１が計算機システム１から計算機システム２に移動する場合、ｖＮＩＣ１とｖＮＩＣ２とは必ず異なるネットワークアドレスを保有しなければならない。このため、仮想マシン１上のプロトコルソフトウェアも設定を変更しなければならず、変更しなければプロトコルソフトウェアの通信機能を復旧できない。非特許文献２１にはプロトコルソフトウェアの一例や、同プロトコルソフトウェアをインストールしたり、駆動するための設定方法が示されている。
【００２４】
このような既存技術の場合、上記のとおり、プロトコルソフトウェアの設定を変更すれば通信機能を回復できる。ただし、これは従前の故障復旧技術と同様であり、そしてプロトコルソフトウェア毎に設定変更の内容が異なるために故障復旧技術の汎用性が損なわれてしまっている。
【００２５】
非特許文献１３は、既存技術が抱える上記の問題を解決する技術を提案している。非特許文献１３の図１では、ｓｒｃＶＭＳとｄｓｔＶＭＳとの間で仮想トンネルを構築し、仮想トンネル経由でＶＭ、すなわち仮想マシンを移動させている。またＩＭＳはＶＭとＣＮとの間を流れる主信号の経路制御を担う。ＶＭはＩＭＳと連携して新しいＩＰアドレスを取得する。一方、ＣＮはＩＭＳと連携し、移動後のＶＭのＩＰアドレスを認識する。これにより、ＣＮはｄｓｔＶＭＳ上のＶＭに主信号を送信する際、適切なＩＰアドレスを付与することができ、ＶＭとＣＮとの間で通信を再開できるようになる。
【００２６】
このように非特許文献１３のようなモバイルＩＰ技術を活用することによってレイヤ３ネットワーク越しのライブ・マイグレーション技術を実現できるが、ＶＭにモバイルＩＰをサポートしたソフトウェアを駆動させておく必要があり、余計なソフトウェアを駆動させなければならないというデメリットを抱えている。さらにＣＮもモバイルＩＰをサポートしなければならないため、ＣＮの汎用性を低下させてしまっている。
【００２７】
そこで新たに非特許文献１４に示されるような、ネットワーク仮想化が提案された。非特許文献１４で示されたネットワーク構成を図３、図４、および図５を用いて分かりやすく示す。
【００２８】
図３および図４に示されるとおり、経路制御用レイヤ３ノードの上に仮想的なレイヤ２ノードである仮想通信ノード３を構築し、クライアントと仮想通信ノード３とを仮想トンネル（２１、２２）で接続し、仮想通信ノード３と仮想マシン１とを仮想トンネルＴｎ１１で接続する方法が考案・開発され、商用化されている。この方法では、図５に示されるとおり、仮想通信ノード３を中心とした仮想レイヤ２ネットワークによってクライアント１やクライアント２、仮想マシン１を面的に接続する。これにより、これらをひとつのＩＰセグメントで接続できることになり、問題を解決できる。それゆえ、図６のように仮想マシン１に関する何らかの障害に際して計算機システム２上に仮想マシン１を再構築する際、仮想マシン１のｖＮＩＣ１を再構築前後で設定変更しなくてよい。
【００２９】
さらに非特許文献１４のネットワーク仮想化は、非特許文献１３で述べた、ＶＭ、すなわち仮想マシンの内部にモバイルＩＰプロトコルのソフトウェアを駆動させるということが必要なくなり、ＣＰＵやメモリなどのリソースを無駄に消費しない。さらにＣＮ、すなわちクライアントもモバイルＩＰをサポートするということが不要となり、クライアントの汎用性を保つことができる。
【先行技術文献】
【非特許文献】
【００３０】
【非特許文献１】Ｊｉｍ  Ｓｍｉｔｈ、Ｒａｖｉ  Ｎａｉｒ、「Ｔｈｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｏｆ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅｓ」、ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｍａｇａｚｉｎｅ，  Ｍａｙ  ２００５
【非特許文献２】中村  真彦  著、「仮想化技術  パーフェクトガイド  最新の仮想化ソフトで様々なＯＳを使い倒そう」、初版、ＩＳＢＮ  ９７８−４−８８１６６−５８１−７、ソーテック社、２００７年、ｐｐ．８−２４
【非特許文献３】山幡  為佐久  著、「詳細ＫＶＭの最新仮想化技術  第２回ＫＶＭの実装」、日経Ｌｉｎｕｘ（登録商標）  ２０１０／１２号、日経ＢＰ、２０１０年１２月、ｐｐ．１２５−１３０
【非特許文献４】藤原  勝弘、山崎  泰宏  著、「クラウド・コンピューティングの基盤技術を知る  第７回仮想サーバーの起動プロセスを知る」、日経Ｌｉｎｕｘ（登録商標）  ２０１１／０４号、日経ＢＰ社、２０１１年４月、ｐｐ．１２５−１３０
【非特許文献５】山幡  為佐久  著、「詳細ＫＶＭの最新仮想化技術  第３回シャドウページング」、日経Ｌｉｎｕｘ（登録商標）  ２０１１／０１号、日経ＢＰ、２０１１年１月、ｐｐ．１３６−１４２
【非特許文献６】山幡  為佐久  著、「詳細ＫＶＭの最新仮想化技術  第５回デバイスエミュレーション」、日経Ｌｉｎｕｘ（登録商標）  ２０１１／０３号、日経ＢＰ、２０１１年３月、ｐｐ．１４０−１４６
【非特許文献７】山崎  泰宏  著、「クラウド・コンピューティングの基盤技術を知る  第５回クラウド基盤ソフトウェアの概要」、日経Ｌｉｎｕｘ（登録商標）  ２０１１／０８号、日経ＢＰ社、２０１１年８月、ｐｐ．１２６−１３１
【非特許文献８】ヴイエムウェア株式会社  著、「ＶＭｗａｒｅ徹底入門」、第二版、ＩＳＢＮ  ９７８−４−７９８１−２８４２−９、翔泳社、２０１０年、ｐｐ．２８９−３３６
【非特許文献９】山幡  為佐久  著、「詳細ＫＶＭの最新仮想化技術  第４回ライブマイグレーション」、日経Ｌｉｎｕｘ（登録商標）  ２０１１／０２号、日経ＢＰ、２０１１年２月、ｐｐ．１４１−１４７
【非特許文献１０】濱野  司  著、「こちら検証ラボ  長距離ライブマイグレーションは実用になるか  データごと転送する方式なら長距離でも支障なく移行できる」、日経ＳＹＳＴＥＭＳ  ２０１２年３月号、日経ＢＰ社、２０１２年、ｐｐ．５２−５７
【非特許文献１１】中平  和友  著、「Ｐａｃｅｍａｋｅｒ  ＋  ＫＶＭで仮想化クラスタリング  〜仮想化連携機能のご紹介〜」、ＯＳＣ２０１１  Ｔｏｋｙｏ／Ｆａｌｌ、２０１１年１２月
【非特許文献１２】ｈｔｔｐ：／／ｗｗｗ．ｎｔｔ．ｃｏ．ｊｐ／ｎｅｗｓ２０１１／１１０８／１１０８０２ａ．ｈｔｍｌ
【非特許文献１３】渡邉  英伸、大東  俊博、近堂  徹、西村  浩二、相原  玲二、「ＩＰモビリティと複数インターフェースを用いたグローバルライブマイグレーション」、電子情報通信学会論文誌、Ｂ  Ｖｏｌ．Ｊ９３−Ｂ  Ｎｏ．７、ｐｐ．８９３−９０１
【非特許文献１４】ｈｔｔｐ：／／ｗｗｗ．ｈｉｔａｃｈｉ．ｃｏ．ｊｐ／Ｎｅｗ／ｃｎｅｗｓ／ｍｏｎｔｈ／２０１２／０７／０７０２．ｈｔｍｌ
【非特許文献１５】ｈｔｔｐ：／／ｉｔｐｒｏ．ｎｉｋｋｅｉｂｐ．ｃｏ．ｊｐ／ｆｒｅｅ／ＩＴＰｒｏ／ＯＰＩＮＩＯＮ／２００２０３１２／１／
【非特許文献１６】片山  陽平、山本  猛仁、山田  一久、中尾  彰宏、「ネットワーク仮想化基盤における仮想ネットワーク管理モデルに関する一検討」、第三回ＮＶ研究会、２０１２年３月、ＵＲＬ：  ｈｔｔｐ：／／ｗｗｗ．ｉｅｉｃｅ．ｏｒｇ／〜ｎｖ／０６−ｎｖ２０１２０３０２−ｋａｔａｙａｍａ．ｐｄｆ
【非特許文献１７】中平  佳裕、今中  規景、橋爪  洋、「新世代ネットワークのアーキテクチャとノード構成の一検討」、ＮＳ２０１０−２９３、ＮＳ研究会、２０１１年３月、ｐｐ．７４１−７４６
【非特許文献１８】Ｚｈｕ，  Ｙ．    ，Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ａｓｓｉｇｎｉｎｇ  Ｓｕｂｓｔｒａｔｅ  Ｎｅｔｗｏｒｋ  Ｒｅｓｏｕｒｃｅｓ  ｔｏ  Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｏｎｅｎｔｓ    ，ＩＮＦＯＣＯＭ  ２００６．  ２５ｔｈ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ．  Ｐｒｏｃｅｅｄｉｎｇｓ，ＩＥＥＥ，  ２００６年４月，  ｐｐ．  １−１２，ＵＲＬ：  ｈｔｔｐ：／／ｉｅｅｅｘｐｌｏｒｅ．ｉｅｅｅ．ｏｒｇ／ｘｐｌｓ／ａｂｓ＿ａｌｌ．ｊｓｐ？ａｒｎｕｍｂｅｒ＝４１４６９７５＆ｔａｇ＝１
【非特許文献１９】Ｆｅｒｎａｎｄｏ  Ｖａｚｑｕｅｚ著、「詳細ＫＶＭの最新仮想化技術  第６回ネットワークの仮想化」、日経Ｌｉｎｕｘ（登録商標）  ２０１１／０３号、日経ＢＰ、２０１１年０４月、ｐｐ．１５６−１６２
【非特許文献２０】石黒  邦宏  著、「ネットワーク抽象化におけるオブジェクトモデル―ＳＤＮとＭＰＬＳの統合」、ＭＰＬＳ  Ｊａｐａｎ  ２０１２、２０１２年１０月、ＵＲＬ：  ｈｔｔｐ：／／ｗｗｗ．ｍｐｌｓ．ｊｐ／ｐｒｅｓｅｎｔａｔｉｏｎｓ／ＭＰＬＳＪＰ２０１２＿ｉｓｈｉｇｕｒｏ．ｐｄｆ
【非特許文献２１】ＺｅｂＯＳ  Ｎｅｔｗｏｒｋ  Ｐｌａｔｆｏｒｍ  Ｖｅｒｓｉｏｎ  ７．９．１，  Ｎｅｔｗｏｒｋ  Ｐｌａｔｆｏｒｍ  Ｉｎｓｔａｌｌａｔｉｏｎ  Ｇｕｉｄｅ、ＵＲＬ：  ｈｔｔｐ：／／ｗｗｗ．ｉｐｉｎｆｕｓｉｏｎ．ｃｏｍ／ｓｉｔｅｓ／ｄｅｆａｕｌｔ／ｆｉｌｅｓ／ｄｏｃｕｍｅｎｔ／ＺｅｂＯＳＩｎｓｔａｌｌＧｕｉｄｅ＿１．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【００３１】
しかしながら非特許文献１４が述べるネットワーク仮想化にも大きな課題が存在している。非特許文献１４では、図４に示されるようなネットワーク環境下において、仮想トンネル経由で仮想通信ノード３に接続するクライアント１、クライアント２、および仮想マシン１が直接通信できる状態になってしまう。この場合の問題点は、エンドユーザであるクライアント１のデータが通信サービス事業者のもつ仮想マシン１を経由することなくクライアント２にも流れてしまうため、クライアント１のデータをクライアント２に送付しないようにコントロールするということができない。すなわち、クライアント１の個人情報や個人ファイルがクライアント２や、仮想通信ノード３に接続する他のクライアントに覗き見されることになる可能性がある。実際、非特許文献１５が述べるとおり、上記の事例が発生している。
【００３２】
このようなことが発生しないようにするため、例えば図４の環境下において仮想通信ノード３をユーザグループ毎に設ける方法が考えられる。しかしながらこの場合、ユーザグループ数が大幅に増加すると経路制御用レイヤ３ノードの処理負荷も増加してしまう。すなわち、大規模なネットワークではこのような対策を実施することはできない。
【００３３】
ただし、そもそも仮想通信ノード３に相当する仮想的なレイヤ２ノードが必須であるかと見直すと、データセンタ事業と、インターネットやＶｏＩＰなどの通信サービス事業とで必要性が異なる。
【００３４】
データセンタ事業をみると、ユーザもしくはクライアントはデータセンタ上に存在する複数の計算機システム、もしくはその上で駆動する複数の仮想マシンをレンタルし、それらを同時に利用することが一般的である。また、そのレンタルした計算機システムや仮想マシンの間では自由自在にデータを送受できることが一般的に求められている。また、データセンタ事業におけるＯＳ仮想化の使い方は、仮想通信ノード群でレイヤ２ネットワークを構築し、それらによって接続された仮想マシン群の上でサービスアプリケーションを実行している。このようにみると、ＯＳ仮想化やネットワーク仮想化はデータセンタ事業に適した技術であることが分かる。
【００３５】
一方の通信サービス事業をみると、ユーザもしくはクライアントは、まず通信サービスネットワーク上のエッジに存在するレイヤ３ノードと通信し、そこを介して初めてほかのユーザやクライアントと通信している。すなわち、エッジのエリヤ３ノードがユーザもしくはクライアントのデータの入出力をコントロールすることが一般的に求められている。さらに通信サービス事業におけるＯＳ仮想化の使い方は二種類考えられる。前者は先に発展したデータセンタ事業に向けたＯＳ仮想化に倣い、仮想通信ノード群でレイヤ２ネットワークを構築し、それらによって接続された仮想マシン群の上でレイヤ３以上のネットワークアプリケーションを実行するというものである。そして前者だけが実質的に研究開発されてきている。一方の後者は、仮想マシン群の上でレイヤ２以上のネットワークアプリケーションを駆動し、仮想マシン群の間を仮想トンネルで接続するというものである。後者の場合、仮想マシン群からなる仮想ネットワークを用い、仮想ネットワーク毎にインターネットサービスや、ＩＰ−ＶＰＮサービス、広域イーサネット（登録商標）サービスなどをそれぞれ提供することが可能となる。また、ＩＰ−ＶＰＮや広域イーサネット（登録商標）サービス同様、顧客毎に仮想ネットワークを提供することもできる。ただし、後者を前提とした研究開発はされていない。
【００３６】
上記の前者を前提とした通信サービス事業や、データセンタ事業のユースケースを考えると、クライアント同士の間にマルチポイントアクセスを可能とする仮想的なレイヤ２ネットワークが必ず存在してしまう。
【００３７】
一方の上記の後者を前提とした通信サービス事業のユースケースを考えると、クライアント同士の間に仮想マシンを介在させ、仮想マシン上でＩＰルーティングプロトコルソフトウェアを駆動させることができる。
【００３８】
本発明は、これまで注目を浴びていなかった上記の後者を前提とした通信サービス事業をターゲットとし、上記に述べた多くの課題をすべて解決することを目的とする。すなわち、本発明は、ワーキング系計算機システム上の仮想マシンに関して障害が発生した際に仮想マシンと通信していたクライアントに対して一切の設定変更を加えることなく障害を復旧可能なネットワークシステム及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００３９】
上記目的を達成するために、本発明は、ゲートウェイと仮想マシンとの間をポイント・ツー・ポイントの仮想トンネルで接続し、障害発生後に仮想マシンをバックアップ系の計算機システムの上で再構築し、ゲートウェイと仮想マシンとの間の仮想トンネルを再設定することとした。なお、本明細書において、バックアップ系の仮想マシンを副仮想マシンと表現することがある。
【００４０】
具体的には、本発明に係るネットワークシステムは、
ＯＳ仮想化で仮想マシン及び仮想通信ノードを駆動可能な複数の計算機システムと、
クライアントを収容するゲートウェイと、
前記計算機システムと前記ゲートウェイとを接続する経路制御用レイヤ３ノードと、
前記計算機システムに前記仮想マシン及び前記仮想通信ノードを構築し、前記経路制御用レイヤ３ノード及び前記仮想通信ノードを介して前記仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記クライアントと前記仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送するとともに、
前記仮想マシンに障害が発生した場合、前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージ、もしくは同じコマンド体系の仮想マシンイメージを用いて他の前記計算機システムに新たに副仮想マシンを構築し、前記経路制御用レイヤ３ノード及び他の前記計算機システムの前記仮想通信ノードを介して前記副仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記障害発生前の設定で前記クライアントと前記副仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送するように、前記計算機システム、前記ゲートウェイ、及び前記経路制御用レイヤ３ノードを管理及び制御する管理システムと、
を備える。
【００４１】
また、本発明に係るネットワークシステムの制御方法は、
ＯＳ仮想化で仮想マシン及び仮想通信ノードを駆動可能な複数の計算機システムと、
クライアントを収容するゲートウェイと、
前記計算機システムと前記ゲートウェイとを接続する経路制御用レイヤ３ノードと、
前記計算機システム、前記ゲートウェイ、及び前記経路制御用レイヤ３ノードを管理及び制御する管理システムと、
を備えるネットワークシステムの制御方法であって、
前記計算機システムに前記仮想マシン及び前記仮想通信ノードを構築し、前記経路制御用レイヤ３ノード及び前記仮想通信ノードを介して前記仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記クライアントと前記仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送する仮想ネットワーク構築手順と、
前記仮想マシンに障害が発生した場合、前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージ、もしくは同じコマンド体系の仮想マシンイメージを用いて他の前記計算機システムに新たに副仮想マシンを構築し、前記経路制御用レイヤ３ノード及び他の前記計算機システムの前記仮想通信ノードを介して前記副仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記障害発生前の設定で前記クライアントと前記副仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送する障害復旧手順と、
を行う。
【００４２】
本発明は、ワーキング系計算機システム上の仮想マシンに関して障害が発生した際、管理システムが仮想マシンの仮想マシンイメージと同じ仮想マシンイメージを用いてバックアップ系計算機システムの一台の上で仮想マシンを駆動する。そして、本発明は、仮想トンネルをワーキング系計算機システム上の仮想マシンからバックアップ系計算機システム上の仮想マシンへ接続変更する。当該仮想トンネルでは主信号をカプセル化して転送するため、クライアント側で設定の変更が不要である。
【００４３】
従って、本発明は、ワーキング系計算機システム上の仮想マシンに関して障害が発生した際に仮想マシンと通信していたクライアントに対して一切の設定変更を加えることなく障害を復旧可能なネットワークシステム及び制御方法を提供することができる。
【００４４】
第１の発明の具体的な構成は次の通りである。
本発明に係るネットワークシステムの前記管理システムは、
前記ゲートウェイ上にＴＡＰを設定して、前記ＴＡＰと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信手段と、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知手段と、
前記仮想マシンを停止する仮想マシン停止手段と、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保手段と、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築手段と、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定手段と、
前記ゲートウェイにおいて、前記副仮想マシンと接続するための前記仮想トンネルを設定するゲートウェイ設定手段と、
を有する。
【００４５】
本発明に係るネットワークシステムの制御方法は、
前記仮想ネットワーク構築手順が、
前記ゲートウェイ上にＴＡＰを設定して、前記ＴＡＰと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰとを結ぶ前記仮想トンネルを構築し、
構築した前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信ステップ、で行い、
前記障害復旧手順が、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知ステップと、
前記仮想マシンを停止する仮想マシン停止ステップと、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保ステップと、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築ステップと、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定ステップと、
前記ゲートウェイにおいて、前記副仮想マシンと接続するための前記仮想トンネルを設定するゲートウェイ設定ステップと、を行う。
【００４６】
また、第２の発明の具体的な構成は次の通りである。
本発明に係るネットワークシステムの前記管理システムは、
前記ゲートウェイ上に複数のＴＡＰを設定して、前記ＴＡＰの１つと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰの１つとを結ぶ前記仮想トンネルを構築し、
前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信手段と、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知手段と、
前記仮想マシンを停止する仮想マシン停止手段と、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保手段と、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築手段と、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定手段と、
前記ゲートウェイの前記ＴＡＰそれぞれについての所定メッセージを前記ゲートウェイに発信させ、前記メッセージに対して応答する少なくとも一台の前記仮想マシンに対応するＴＡＰのペアから一つのペアを選択し、前記ペアのＴＡＰ間で前記仮想トンネルを設定するゲートウェイ自律設定手段と、
を有する。
【００４７】
本発明に係るネットワークシステムの制御方法は、
前記仮想ネットワーク構築手順が、
前記ゲートウェイ上に複数のＴＡＰを設定して、前記ＴＡＰの１つと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰの１つとを結ぶ前記仮想トンネルを構築し、
前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信ステップで行い、
前記障害復旧手順が、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知ステップと、
前記仮想マシンを停止する仮想マシン停止ステップと、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保ステップと、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築ステップと、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定ステップと、
前記ゲートウェイの前記ＴＡＰそれぞれについての所定メッセージを前記ゲートウェイに発信させ、前記メッセージに対して応答する少なくとも一台の前記仮想マシンに対応するＴＡＰのペアから一つのペアを選択し、前記ペアのＴＡＰ間で前記仮想トンネルを設定するゲートウェイ自律設定ステップと、を行う。
【００４８】
本発明は、クライアントと、クライアントを収容するゲートウェイと、ｐｏｒｔを搭載するとともに一台以上の仮想マシン群と一台以上の仮想通信ノードとを駆動するワーキング系計算機システムと、前記ワーキング系計算機システムに対する一台以上のバックアップ系計算機システムと、一台以上の前記ゲートウェイ群、前記ワーキング系計算機システム、及び一台以上の前記バックアップ系計算機システム群とを接続する経路制御用レイヤ３ノードと、前記ゲートウェイ群、前記ワーキング系計算機システム、前記バックアップ系計算機システム群、及び前記経路制御用レイヤ３ノードを管理・制御する管理システムと、から成るネットワークシステムを前提とする。また、前記仮想マシンがプロトコルソフトウェアを駆動するとともにｖＮＩＣを介して前記仮想通信ノードと主信号を送受し、前記仮想通信ノードがＴＡＰを有するとともに前記ＴＡＰ経由で前記仮想通信ノードと主信号を送受し、一方でｖｐｏｒｔ、および前記ワーキング系計算機システム上の前記ｐｏｒｔを経由して前記経路制御用レイヤ３ノードと主信号を送受し、前記経路制御用レイヤ３ノードがｐｏｒｔを有するとともに前記ｐｏｒｔ経由で入出力する主信号をＩＰルーティングに従って経路制御し、前記ゲートウェイがｐｏｒｔを有するとともに前記ｐｏｒｔ系で前記経路制御レイヤ３ノードと主信号を送受し、一方でＴＡＰも有するとともに前記ＴＡＰ経由で前記クライアントと主信号を送受する、ネットワークシステムを前提とする。
【００４９】
上記の前提の上で本発明は、前記ワーキング系計算機システム上の前記仮想マシンに関して障害が発生した際、前記管理システムが前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージを用いて前記バックアップ系計算機システムの一台の上で仮想マシンを駆動することにより、前記仮想マシンと通信していたクライアントに対して一切の設定変更を加えることなく障害を復旧する障害復旧方法に関し、前記ワーキング系計算機システムと前記バックアップ系計算機システムとが前記経路制御用レイヤ３ノードを介して異なるＩＰセグメントに属する場合でも障害復旧できるように本発明によって拡張した障害復旧方法である。
【００５０】
第１の発明において、
前記ワーキング系計算機システムと前記ゲートウェイが互いのＴＡＰを終端点とした仮想トンネルを構築し、前記仮想トンネルに収容される主信号に対してアウターヘッダを付与し、逆に前記仮想トンネルから出力される主信号から前記アウターヘッダを除去し、さらに前記経路制御用レイヤ３ノードが、入力してくる主信号に対して前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従って主信号を宛先に向けて転送する、トンネル通信手段（ステップ）と、
障害発生後に、前記管理システムが前記バックアップ系計算機システム上の仮想通信ノードを管理・制御してＴＡＰを設定し、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰとを結ぶ仮想トンネルを構築する、仮想通信ノード設定手段（ステップ）と、
前記管理システムが前記ゲートウェイ上の前記ＴＡＰを管理・制御し、前記ＴＡＰと前記仮想トンネル上の前記仮想通信ノード上の前記ＴＡＰとを結ぶ仮想トンネルを構築する、ゲートウェイ設定手段（ステップ）と、を有する。
【００５１】
これにより、レイヤ３ネットワークを介して接続されたクライアント群や仮想マシン群の間で、ワーキング系の計算機システム上で駆動していた仮想マシンに関する障害に際し、バックアップ系の計算機システム上に同等の仮想マシンを駆動でき、クライアントに一切の変更を加えることなく、クライアントと仮想マシンとの間の通信を再確立することができる。
【００５２】
既存技術との差異は、
（１）ゲートウェイと仮想マシンとの間をポイント・ツー・ポイントの仮想トンネルで接続していることと、
（２）管理システムが障害発生後に仮想マシンをバックアップ系の計算機システムの上で再構築することと、
（３）管理システムがゲートウェイと仮想マシンとの間の仮想トンネルを再設定することと、
を組み合わせたことである。これにより上記の効果が実現されている。
【００５３】
また、第２の発明において、
第１の発明を前提とし、前記ゲートウェイ設定手段（ステップ）において前記ゲートウェイに設定される前記ＴＡＰについて、複数のＴＡＰ候補を予め前記ゲートウェイに設定しておき、障害発生後、前記ゲートウェイ設定手段（ステップ）を実行することなく、前記ゲートウェイが前記のＴＡＰ候補群に対してＡＲＰもしくはそれに相当するマルチキャスト、もしくはブロードキャストのメッセージを発信し、前記メッセージに対して応答してきた、一台以上の仮想マシンとＴＡＰのペアから一つのペアを選択し、前記の選択されたＴＡＰと仮想トンネルを設定する、ゲートウェイ自律設定手段（ステップ）、を実行する。
【００５４】
これにより、地域に多く分散配備されるゲートウェイに対し、管理システムが設定する必要性がなくなり、管理システムの処理負荷を大幅に低減できる。
【発明の効果】
【００５５】
本発明は、ワーキング系計算機システム上の仮想マシンに関して障害が発生した際に仮想マシンと通信していたクライアントに対して一切の設定変更を加えることなく障害を復旧可能なネットワークシステム及び制御方法を提供することができる。
【図面の簡単な説明】
【００５６】
【図１】ＯＳ仮想化において、経路制御用レイヤ２ノードを用いたシステム構成を説明する図である。
【図２】ＯＳ仮想化において、経路制御用レイヤ３ノードを用いたシステム構成を説明する図である。
【図３】ＯＳ仮想化において、経路制御用レイヤ３ノードを用いたシステム構成を説明する図である。
【図４】ＯＳ仮想化において、経路制御用レイヤ３ノードを用いたシステム構成を説明する図である。仮想通信ノード３は、仮想マシン１、クライアント１、及びクライアント２とを仮想的かつ面的に接続する。
【図５】ＯＳ仮想化によって実現される仮想的なレイヤ２ネットワークの構成を説明する図である。
【図６】ＯＳ仮想化により、バックアップ系の仮想マシンを駆動する例を説明する図である。
【図７】本発明におけるネットワークシステムを説明する図である。ワーキング系の計算機システム上で仮想マシンを駆動する例である。
【図８】本発明におけるネットワークシステムを説明する図である。ワーキング系の仮想マシンとクライアントとを仮想的に直接接続する仮想トンネルの例である。
【図９】本発明におけるネットワークシステムにおいて実現される仮想的なレイヤ２ネットワークの構成を説明する図である。
【図１０】本発明におけるネットワークシステムの制御方法を説明するフローチャートである。
【図１１】本発明におけるネットワークシステムの制御方法を説明するシーケンス図である。
【図１２】本発明におけるネットワークシステムにおいて、管理システムが保管する仮想マシンイメージと設定情報を説明する図である。
【図１３】本発明におけるネットワークシステムにおいて、仮想マシンのメモリ上のデータを説明する図である。
【図１４】本発明におけるネットワークシステムにおいて、仮想マシンのメモリ上のデータを説明する図である。
【図１５】本発明におけるネットワークシステムにおいて、障害発生前に、Ｐｏｒｔ１１からＰｏｒｔ９の方向に向けて送信される主信号、およびｖｐｏｒｔ２からｖＮＩＣ１の方向に向けて送信される主信号を説明する図である。
【図１６】本発明におけるネットワークシステムにおいて、障害発生前に、Ｐｏｒｔ７からＰｏｒｔ３に向けて送信される主信号を説明する図である。カプセリングプロトコルとしてＶＸＬＡＮを用いた場合の例である。
【図１７】本発明におけるネットワークシステムにおいて、障害発生前に、ｖＮＩＣ１からｖｐｏｒｔ２の方向に向けて送信される主信号、およびｐｏｒｔ９からｐｏｒｔ１１の方向に向けて送信される主信号を説明する図である。
【図１８】本発明におけるネットワークシステムにおいて、障害発生前に、Ｐｏｒｔ３からＰｏｒｔ７に向けて送信される主信号を説明する図である。カプセリングプロトコルとしてＶＸＬＡＮを用いた場合の例である。
【図１９】本発明におけるネットワークシステムにおいて、障害発生前に、Ｐｏｒｔ１１からＰｏｒｔ９の方向に向けて送信される主信号、およびｖｐｏｒｔ２からｖＮＩＣ１の方向に向けて送信される主信号を説明する図である。
【図２０】本発明におけるネットワークシステムにおいて、障害発生前に、Ｐｏｒｔ７からＰｏｒｔ３に向けて送信される主信号を説明する図である。カプセリングプロトコルとしてＶＸＬＡＮを用いた場合の例である。
【図２１】本発明におけるネットワークシステムを説明する図である。バックアップ系の計算機システム上で仮想マシンを駆動する例である。
【図２２】本発明におけるネットワークシステムを説明する図である。バックアップ系の仮想マシンとクライアントとを仮想的に直接接続する仮想トンネルの例である。
【図２３】本発明におけるネットワークシステムにおいて、障害発生後に、Ｐｏｒｔ１１からＰｏｒｔ９の方向に向けて送信される主信号、およびｖｐｏｒｔ５からｖＮＩＣ１の方向に向けて送信される主信号を説明する図である。
【図２４】本発明におけるネットワークシステムにおいて、障害発生後に、Ｐｏｒｔ７からＰｏｒｔ３に向けて送信される主信号を説明する図である。カプセリングプロトコルとしてＶＸＬＡＮを用いた場合の例である。
【図２５】本発明におけるネットワークシステムにおいて、障害発生後に、ｖＮＩＣ１からｖｐｏｒｔ５の方向に向けて送信される主信号、およびｐｏｒｔ９からｐｏｒｔ１１の方向に向けて送信される主信号を説明する図である。
【図２６】本発明におけるネットワークシステムにおいて、障害発生後に、Ｐｏｒｔ３からＰｏｒｔ７に向けて送信される主信号を説明する図である。カプセリングプロトコルとしてＶＸＬＡＮを用いた場合の例である。
【図２７】本発明におけるネットワークシステムにおいて、障害発生後に、Ｐｏｒｔ１１からＰｏｒｔ９の方向に向けて送信される主信号、およびｖｐｏｒｔ５からｖＮＩＣ１の方向に向けて送信される主信号を説明する図である。
【図２８】本発明におけるネットワークシステムにおいて、障害発生前に、Ｐｏｒｔ７からＰｏｒｔ３に向けて送信される主信号を説明する図である。カプセリングプロトコルとしてＶＸＬＡＮを用いた場合の例である。
【図２９】本発明におけるネットワークシステムにおいて、ゲートウェイに複数のＴＡＰおよび仮想トンネルを形成した場合を説明する図である。
【図３０】本発明におけるネットワークシステムの制御方法を説明するフローチャートである。
【発明を実施するための形態】
【００５７】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００５８】
（実施形態１）
本実施形態は、ＯＳ仮想化で仮想マシン及び仮想通信ノードを駆動可能な複数の計算機システムと、
クライアントを収容するゲートウェイと、
前記計算機システムと前記ゲートウェイとを接続する経路制御用レイヤ３ノードと、
前記計算機システムに前記仮想マシン及び前記仮想通信ノードを構築し、前記経路制御用レイヤ３ノード及び前記仮想通信ノードを介して前記仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記クライアントと前記仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送するとともに、
前記仮想マシンに障害が発生した場合、前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージ、もしくは同じコマンド体系の仮想マシンイメージを用いて他の前記計算機システムに新たに副仮想マシンを構築し、前記経路制御用レイヤ３ノード及び他の前記計算機システムの前記仮想通信ノードを介して前記副仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記障害発生前の設定で前記クライアントと前記副仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送するように、前記計算機システム、前記ゲートウェイ、及び前記経路制御用レイヤ３ノードを管理及び制御する管理システムと、
を備えるネットワークシステムである。
【００５９】
また、本実施形態は、上記ネットワークシステムの制御方法であって、
前記計算機システムに前記仮想マシン及び前記仮想通信ノードを構築し、前記経路制御用レイヤ３ノード及び前記仮想通信ノードを介して前記仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記クライアントと前記仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送する仮想ネットワーク構築手順と、
前記仮想マシンに障害が発生した場合、前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージ、もしくは同じコマンド体系の仮想マシンイメージを用いて他の前記計算機システムに新たに副仮想マシンを構築し、前記経路制御用レイヤ３ノード及び他の前記計算機システムの前記仮想通信ノードを介して前記副仮想マシンと前記ゲートウェイとをポイント・ツー・ポイントの仮想トンネルで接続し、前記障害発生前の設定で前記クライアントと前記副仮想マシンとの間の主信号をカプセル化して前記仮想トンネルで伝送する障害復旧手順と、
を行う。
【００６０】
詳細には、本実施形態は、複数セグメントから成るＩＰネットワーク上での、仮想マシンから成る仮想ネットワークについての障害復旧方法である。つまり、前記仮想ネットワーク構築手順は、
前記ゲートウェイ上にＴＡＰを設定して、前記ＴＡＰと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰとを結ぶ前記仮想トンネルを構築し、
構築した前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信ステップ、で行い、
前記障害復旧手順は、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知ステップと、
前記仮想マシンを停止する仮想マシン停止ステップと、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保ステップと、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築ステップと、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定ステップと、
前記ゲートウェイにおいて、前記副仮想マシンと接続するための前記仮想トンネルを設定するゲートウェイ設定ステップと、を行う。
【００６１】
図１０は本発明の原理を示す一例であり、図１１は図１０についての制御メッセージのシーケンスを示す一例である。仮想マシンのレポジトリの例、特に仮想マシンイメージと設定情報、仮想マシンのメモリ上のデータ、および仮想マシン上のプロトコルソフトウェアの一例をそれぞれ図１２、図１３、図１４に示す。
【００６２】
管理システム７６は、図１２のとおり、駆動している仮想マシンと、その仮想マシンイメージ、および設定情報を管理する。また図１３及び非特許文献３、非特許文献８および非特許文献９に示されるとおり、駆動している仮想マシンのメモリデータや、入力されたトランザクション情報を管理する。さらに図１４に示されるとおり、管理システム７６は仮想マシン上で駆動させているプロトコルソフトウェアを管理している。
【００６３】
図７は本実施形態が前提とするシステム構成の一例を示す。本実施形態におけるクライアントは、パーソナル・コンピュータ（ＰＣ）や携帯電話、タブレットＰＣなどであり、ゲートウェイは、宅内に配備されるホーム・ゲートウェイ・ルータ、および経路制御用レイヤ３ノード７３はＩＰルータである。
【００６４】
仮想マシンは、Ｘｅｎ、ＫＶＭもしくはＶＭｗａｒｅなどのＯＳ仮想化ソフトウェアによって実現されるものであり、ｖＮＩＣや仮想通信ノードも同様に実現される。本実施形態において、仮想マシンの上で駆動するプロトコルソフトウェアは、ＩＰルータをソフトウェアで実現するＩＰルーティングソフトウェアを想定する。
【００６５】
本実施形態における仮想トンネルは、ＧＲＥやＶＸＬＡＮなどのトンネリングプロトコルによって実現され、ＴＡＰはＧＲＥＴＡＰやＶＴＥＰである。仮想トンネルは、例えばＧＲＥの場合、下記のようなコマンドを仮想マシン上のオペレーションシステム上で実行することによって生成される。
（コマンド）
＃  ／ｓｂｉｎ／ｉｐ  ｔｕｎｎｅｌ  ａｄｄ  ＜ＩＦ＿ＮＡＭＥ＞  ｍｏｄｅ  ｇｒｅ  ｒｅｍｏｔｅ  ＜ＲＥＭＯＴＥ＿ＩＰＶ４＿ＡＤＤＲ＞  ｌｏｃａｌ  ＜ＬＯＣＡＬ＿ＩＰＶ４＿ＡＤＤＲ＞
上記において、＜ＩＦ＿ＮＡＭＥ＞はＧＲＥＴＡＰの識別情報であり、＜ＲＥＭＯＴＥ＿ＩＰＶ４＿ＡＤＤＲ＞は対向側の仮想トンネル端のＧＲＥＴＡＰのＩＰアドレスであり、＜ＬＯＣＡＬ＿ＩＰＶ４＿ＡＤＤＲ＞はローカルのＧＲＥＴＡＰのＩＰアドレスである。このようにして、仮想トンネルが設定される。
【００６６】
以降、本実施形態では特にＶＸＬＡＮを前提として説明する。ただし、ＧＲＥを前提とした場合でも本発明の原理に変更を与えず、ＧＲＥを用いてもよい。非特許文献２０にＧＲＥＴＡＰおよびＶＸＬＡＮによる主信号のカプセル化の例を示す。
【００６７】
ＴＡＰ１とＴＡＰ２に付与されるＩＰアドレスは非特許文献１９のとおり、計算機システム１上のｐｏｒｔ１と同じＩＰアドレスとなるように設定されている。
【００６８】
図７と図８に示すとおり、障害発生前の仮想マシン１は計算機システム１（７４）の上で動作していると想定し、ＴＡＰ３とＴＡＰ１、およびＴＡＰ４とＴＡＰ２とがそれぞれ仮想トンネル（Ｔｎ３１、３２）によって接続されていると想定する。すなわち、ＴＡＰ３において、対向側の仮想トンネル端はＴＡＰ１、及びそのＩＰアドレスであり、ＴＡＰ１における対向側の仮想トンネル端はＴＡＰ３、及びそのＩＰアドレスである。ＴＡＰ４とＴＡＰ２も同様に設定されているものとする。この時、図９に示されるようなクライアント１と仮想マシン１との間でポイン・ツー・ポイントの仮想レイヤ２ネットワークが構築されている。同様、クライアント２と仮想マシン１との間でもポイント・ツー・ポイントの仮想レイヤ２ネットワークを構築している。
【００６９】
この状況下において、クライアント１が仮想マシン１、及びそのプロトコルソフトウェアに向けて送信する主信号に関し、ｐｏｒｔ１１とｐｏｒｔ９との区間、及びｖｐｏｒｔ２とｖＮＩＣ１との区間で観測される主信号の構造を図１５に示す。また、ｐｏｒｔ７とｐｏｒｔ３との区間において観測される主信号の構造を図１６に示す。図１６に示されるとおり、本来の主信号は、ＶＸＬＡＮヘッダによってカプセル化されており、受信側のＴＡＰにおいてＶＸＬＡＮヘッダをデカプセル化することによって本来の主信号を取り出す。一方、仮想マシン１がクライアント１に向けて送信する主信号に関し、ｖＮＩＣ１とｖｐｏｒｔ２との区間、及びｐｏｒｔ９とｐｏｒｔ１１との区間において観測される主信号の構造を図１７に示す。また、ｐｏｒｔ３とｐｏｒｔ７との区間において観測される主信号の構造を図１８に示す。図１７に示されるとおり、仮想マシン１からクライアント１に送信される主信号もまたＶＸＬＡＮによってカプセル化される。クライアント１からクライアント２に送信される主信号の構造を図１９に示す。図１９の主信号は、中継区間、例えばｐｏｒｔ７とｐｏｒｔ３との区間において図２０のようにカプセル化される。
【００７０】
この状態において、ワーキング系の計算機システム１（７４）、計算機システム１（７４）上の仮想マシン１、もしくは仮想マシン１上のプロトコルソフトウェアが監視されていると想定する。監視方法は非特許文献８や非特許文献１１が紹介するとおり、ワーキング系計算機システム１（７４）上の仮想マシン１と、バックアップ系計算機システム２（７５）上の仮想マシン１との間で正常性確認メッセージを定期的に交換し、ワーキング系の仮想マシン１から送信されているはずの正常性確認メッセージがバックアップ系の仮想マシン１に到達しなかった時点でバックアップ系の仮想マシン１から管理システム７６に通知する方法が考えられる。これを間接監視方法とする。間接監視方法では、非特許文献８のとおり、ワーキング系の仮想マシン１とバックアップ系の仮想マシン１とが予め駆動されており、共有ストレージ、すなわち共有のハードディスクを用いる。そのため、ワーキング系からバックアップ系に仮想マシン１の駆動場所を切り替える際も高速化できる。ただし、バックアップ系の計算機システム２（７５）や仮想マシン１を事前に決定しているため、複数のバックアップ系の計算機システム群やそれらの上で駆動している仮想マシン群を絡めた大規模障害に対し、対処できなくなるという問題を抱えている。一方、管理システム７６がワーキング系の計算機システム１（７４）、計算機システム１（７４）上の仮想マシン１、および仮想マシン１上のプロトコルソフトウェアを直接監視する方法も考えられる。これを直接監視方法とする。直接監視方法は間接監視方法と比べて管理システム７６に掛る処理負荷が多くなり、障害発生から障害復旧までに要する時間も長くなる。ただし、バックアップ系の計算機システム２（７５）や仮想マシン１を障害発生後に動的に探索・決定することができるため、上記のような大規模障害に対しても対応することができる。なお、いずれの方法を用いても本発明の原理に変更は発生しない。本実施形態では直接監視方法をベースにして説明する。
【００７１】
管理システム７６はワーキング系の計算機システム１（７４）、計算機システム１（７４）上の仮想マシン１、及び仮想マシン１上のプロトコルソフトウェアを監視し、それらの一部、もしくは全てに関わる障害が発生すれば上記の方法によってその障害を検知する（障害検知ステップＳ０１）。
【００７２】
障害検知ステップＳ０１後、管理システム７６はワーキング系の仮想マシン１を停止させる。これはワーキング系仮想マシン停止ステップＳ０２であり、非特許文献８にも記載されている。非特許文献８で示されるとおり、ワーキング系の仮想マシン１が停止しておらず、障害復旧後にワーキング系の仮想マシン１とバックアップ系の仮想マシン１が同じＩＰアドレスを保有したままで併存することがないようにするためである。それゆえ、上記の併存というリスクを許容する場合、すなわちＩＰアドレスの重複によって安定的なＩＰ通信を確立することができないことを許容する場合、ワーキング系仮想マシン停止ステップＳ０２を割愛できる。前記の割愛を実施する場合と実施しない場合のいずれについても、図１０における後段のバックアップ系仮想マシン構築ステップＳ０４と、仮想通信ノード設定ステップＳ０５と、ゲートウェイ設定ステップＳ０６と、に差異を生じさせない。本実施形態では割愛しない場合について説明する。
【００７３】
図１０のバックアップ系計算機システム確保ステップＳ０３において、管理システム７６はバックアップ系の計算機システム２（７５）の候補を探索し、確保する。管理システム７６は上記の探索に際し、非特許文献１６や非特許文献１７の表２に示される、ＣＰＵの数や個々の性能、メモリのサイズ、ＮＩＣのネットワーク帯域についての物理量や利用可能量についての情報を参照する。資源の情報を自身のレポジトリ上で記憶する場合と、外部のレポジトリ上で記憶する場合がある。非特許文献１８では、管理システム７６が上記の参照情報に基づき、仮想マシンを割り当てるべき適当な計算機システムを探索する方法を紹介している。
【００７４】
上記で述べた間接監視方法を採用している場合、バックアップ系計算機システム確保ステップＳ０３は割愛される。
【００７５】
バックアップ系計算機システム確保ステップＳ０３が完了した後、管理システム７６はバックアップ系仮想マシン構築ステップＳ０４を実行する。
【００７６】
管理システム７６は、上記までで確保されたバックアップ系の計算機システムに対し、ワーキング系の仮想マシン１と同じ仮想マシンイメージをコピーする。この際、上記の間接監視方法を採用している場合、障害発生前からバックアップ系の仮想マシン１を駆動しているため、コピーというアクションを割愛できる。
【００７７】
管理システム７６は、図１２のレポジトリ上の情報に基づき、ワーキング系仮想マシン１と同等のバックアップ系仮想マシン１を設定する。この際、上記の間接監視方法を採用している場合、障害発生前からバックアップ系の仮想マシン１を駆動しているため、本アクションを割愛できる。
【００７８】
次に管理システム７６はバックアップ系の仮想マシン１を起動し、図１４のレポジトリ情報に基づき、ワーキング系仮想マシン上で駆動していたプロトコルソフトウェアと同じものをバックアップ系仮想マシンにインストールし、プロトコルソフトウェアを設定する。この際、上記の間接監視方法を採用している場合、障害発生前からバックアップ系の仮想マシンを駆動しているため、本アクションを割愛できる。
【００７９】
バックアップ系仮想マシン構築ステップＳ０４の最後として、管理システム７６は図１３のとおりにワーキング系の仮想マシン１のメモリ上のデータや入力されたトランザクション情報を記憶しており、それらの情報をバックアップ系の仮想マシン１にコピーし、ワーキング系の仮想マシン１とバックアップ系の仮想マシン１との間で状態を一致させる。ワーキング系の仮想マシン１とバックアップ系の仮想マシン１との間で状態が一致していることにより、障害復旧後、仮想マシン１にアクセスしているクライアントに対して一切の影響を与えない。一方、状態が一致していない場合、クライアントから同じデータを再送信してもらったり、同じトランザクション要求を再送信してもらう必要がある。ただし、その程度の差異であり、状態を一致させていなくてもよい。
【００８０】
上記のバックアップ系仮想マシン構築ステップＳ０４は、一例であり、異なる内容でも本発明の原理に変更を与えない。
【００８１】
上記までの手順により、図２１に示されるように仮想マシン１が計算機システム２（７５）の上で駆動する。上記の直接監視方法を採用している場合、管理システム７６が仮想マシン１を再駆動させるためのバックアップ系の計算機システム２（７５）を動的に探索・決定するため、バックアップ系計算機システムの候補を複数用意できる。また、複数のワーキング系仮想マシンに対し、同じバックアップ系の計算機システムを共用できる。すなわち、Ｍ対Ｎ冗長、もしくは多重冗長と呼ばれる障害復旧スキーム、およびアーキテクチャを構築できる。
【００８２】
次に管理システム７６は、仮想通信ノード設定ステップＳ０５において、バックアップ系の仮想通信ノード２、ＴＡＰ５、ＴＡＰ６、ｖｐｏｒｔ５、及びｖｐｏｒｔ６を設定する。既にバックアップ系の計算機システム２（７５）上に別の用途で利用されている仮想通信ノード２が存在している場合、尚且つその仮想通信ノード２を利用する場合、ＴＡＰ５、ＴＡＰ６、ｖｐｏｒｔ５、及びｖｐｏｒｔ６の設定のみで良い。ＴＡＰ５とＴＡＰ６に付与されるＩＰアドレスは非特許文献１９のとおり、計算機システム２（７５）上のｐｏｒｔ２と同じＩＰアドレスとなるように設定される。
【００８３】
仮想通信ノード設定ステップＳ０５の完了後、非特許文献９に示されるとおり、計算機システム２（７５）のｐｏｒｔ２や仮想通信ノード２のＴＡＰ５、およびＴＡＰ６の一部、もしくはそれぞれからＲＡＲＰもしくはＧＡＲＰを発信してもよい。発信することにより、経路制御用レイヤ３ノード７３が自身のｐｏｒｔ６と、ｐｏｒｔ２、ＴＡＰ５、及びＴＡＰ６とＩＰ通信できる事を迅速に認識できる。ただし、迅速性を必要としない場合、ＲＡＲＰやＧＡＲＰを発信しなくてもよい。
【００８４】
仮想通信ノード設定ステップＳ０５に続き、管理システム７６はゲートウェイ設定ステップＳ０６を実行する。管理システム７６は、ゲートウェイ１（７１）のＴＡＰ３およびゲートウェイ２（７２）のＴＡＰ４を制御し、ＴＡＰ３における対向側の仮想トンネル端をＴＡＰ５、及びそのＩＰアドレスに設定し直す。同様、ＴＡＰ４における対向側の仮想トンネル端をＴＡＰ６、及びそのＩＰアドレスに設定し直す。
【００８５】
ゲートウェイ設定ステップＳ０６の完了後、図２２に示されるように仮想トンネル（Ｔｎ３１、Ｔｎ３２）が再構築される。
【００８６】
この状況下において、クライアント１が仮想マシン１、及びそのプロトコルソフトウェアに向けて送信する主信号に関し、ｐｏｒｔ１１とｐｏｒｔ９との区間、及びｖｐｏｒｔ５とｖＮＩＣ１との区間で観測される主信号の構造を図２３に示す。また、ｐｏｒｔ７とｐｏｒｔ３との区間において観測される主信号の構造を図２４に示す。一方、仮想マシン１がクライアント１に向けて送信する主信号に関し、ｖＮＩＣ１とｖｐｏｒｔ５との区間、及びｐｏｒｔ９とｐｏｒｔ１１との区間において観測される主信号の構造を図２５に示す。また、ｐｏｒｔ３とｐｏｒｔ７との区間において観測される主信号の構造を図２６に示す。さらに、クライアント１からクライアント２に送信される主信号の構造を図２７に示す。また、ｐｏｒｔ７とｐｏｒｔ３との区間において観測される主信号の構造を図２８に示す。
【００８７】
以上のとおり、本来の主信号が障害発生前後で変わらない一方、本来の主信号をカプセル化している外側のヘッダに関するＩＰアドレスが変化する。
【００８８】
以上により、ワーキング系の計算機システム１（７４）の上の仮想マシン１を、レイヤ３ネットワークを介し、バックアップ系の計算機システム２（７５）の上で再駆動させることができる。さらに再駆動に際し、仮想マシン１、もしくはそれを経由してネットワーク通信を行っていたクライアント１およびクライアント２に関し、設定変更を実施する必要がなく、障害復旧に伴うクライアントへの影響を縮小している。
【００８９】
本実施形態では経路制御用レイヤ３ノード７３を一台の例で説明しているが、同経路制御用レイヤ３ノード７３を特に制御していないため、複数台が併存していても本発明の原理に変更を与えない。
【００９０】
（実施形態２）
本実施形態は、実施形態１で説明したネットワークシステム及びその制御方法の他の障害復旧方法である。つまり、前記仮想ネットワーク構築手順は、
前記ゲートウェイ上に複数のＴＡＰを設定して、前記ＴＡＰの１つと前記計算機システムに構築された前記仮想通信ノード上のＴＡＰとを結ぶ前記仮想トンネルを構築し、
前記仮想通信ノードにＴＡＰを設定して、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰの１つとを結ぶ前記仮想トンネルを構築し、
前記仮想トンネルに収容される主信号に対してアウターヘッダを付与してカプセル化し、
前記経路制御用レイヤ３ノードにおいて、カプセル化した主信号の前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従ってカプセル化した主信号を宛先に向けて転送し、
前記仮想トンネルから出力されるカプセル化した主信号から前記アウターヘッダを除去するトンネル通信ステップで行い、
前記障害復旧手順は、
前記仮想マシンが構築された前記計算機システム、前記仮想マシン、もしくは前記仮想マシン上のプロトコルソフトウェアを監視して障害の発生を検知する障害検知ステップと、
前記仮想マシンを停止する仮想マシン停止ステップと、
前記副仮想マシンを駆動できる他の前記計算機システムを探索し、バックアップ系の計算機システムとして確保するバックアップ系計算機システム確保ステップと、
前記バックアップ系の計算機システム上で前記副仮想マシンを構築するバックアップ系仮想マシン構築ステップと、
前記バックアップ系の計算機システムにＴＡＰとｖｐｏｒｔを有する仮想通信ノードを設定し、前記ＴＡＰに対して宛先の前記ゲートウェイと接続するための前記仮想トンネルを設定する仮想通信ノード設定ステップと、
前記ゲートウェイの前記ＴＡＰそれぞれについての所定メッセージを前記ゲートウェイに発信させ、前記メッセージに対して応答する少なくとも一台の前記仮想マシンに対応するＴＡＰのペアから一つのペアを選択し、前記ペアのＴＡＰ間で前記仮想トンネルを設定するゲートウェイ自律設定ステップと、を行う。
【００９１】
管理システム７６は、仮想通信ノード１に付与するＴＡＰ１と仮想通信ノード２に付与するＴＡＰ２についてのＩＰアドレスを予めレポジトリに記憶しておき、障害復旧の際にレポジトリからＴＡＰ２のＩＰアドレスを割り当てる。
【００９２】
一方のゲートウェイ１（７１）は、請求項２により、障害発生以前より図２９のようにＴＡＰ３とＴＡＰ７を具備する。ＴＡＰ３において対向側の仮想トンネル端としてＴＡＰ１、及びそのＩＰアドレスを設定しておき、同様にＴＡＰ７において対向側の仮想トンネル端としてＴＡＰ５、及びそのＩＰアドレスを設定しておく。ただし、障害発生以前にＴＡＰ５が実在しているか否かは問わない。ゲートウェイ２（７２）も同様に複数のＴＡＰ群を具備し、ゲートウェイ１（７１）と同じような挙動を示す。本実施形態では便宜上、ゲートウェイ２（７２）の説明を割愛する。
【００９３】
図３０は、本実施形態のネットワークシステムの制御方法を説明するフローチャートである。障害発生後に実施形態１のとおりにゲートウェイ設定ステップＳ０６の手前まで障害復旧処理が完了した際、本実施形態では管理システム７６がゲートウェイ設定ステップＳ０６を実行しない。ゲートウェイ設定ステップＳ０６の代替としてゲートウェイ自律設定ステップＳ０７を行う。ゲートウェイ自律設定ステップＳ０７について以下に説明する。
【００９４】
ゲートウェイ１（７１）はＴＡＰ３及びＴＡＰ７を経由し、ＡＲＰ、もしくはそれに類するレスポンスを要求するリクエストメッセージのブロードキャスティング、もしくはマルチキャスティングを行う。このゲートウェイ１（７１）からのメッセージを受信した仮想マシン１は、ゲートウェイ１（７１）に対してレスポンスメッセージを返信する。
【００９５】
ゲートウェイ１（７１）はレスポンスメッセージを受信すると、そのメッセージを受信したＴＡＰ、すなわちＴＡＰ７に障害復旧後の仮想マシン１、もしくはそれに相当するものが存在していることを認識し、以後仮想マシン１とＴＡＰ７を経由して通信する。
【００９６】
以上により、管理システム７６がゲートウェイを設定しなくても、ゲートウェイが事前に具備しているＴＡＰ群を利用して仮想トンネルを再構築できる。
【００９７】
ゲートウェイが複数のＴＡＰを事前に具備している場合、尚且つ上記のレスポンスメッセージを複数のＴＡＰで受信する場合が考えられる。そのような場合、ゲートウェイはいくつかの方法で利用すべきＴＡＰを選定することができる。例えば、レスポンスメッセージを最初に受信したＴＡＰを選定する方法である。また、ＴＡＰの識別番号などの値の大小に基づいて選定する方法である。ただし、本実施形態において述べた方法以外を用いて適切なＴＡＰを選定してもよい。
【００９８】
（他の実施形態）
実施形態１および実施形態２において、クライアント１、およびクライアント２の一部、もしくは双方が、移動体端末、すなわちスマートフォン、携帯電話、もしくはゲーム機とすることができる。
【００９９】
（本発明の効果）
本発明により、仮想マシンから成る仮想ネットワークにおける仮想マシンに関する障害に際し、その障害のある仮想マシンをあるＩＰセグメントから別のＩＰセグメントに移動させることができる。また、その障害のある仮想マシン経由で通信していたクライアントに対しても設定変更を一切及ぼさないようにできる。さらに、ワーキング系の計算機システムとバックアップ系の計算機システムとの間でＭ対Ｎの冗長構成を組むことができる。
【０１００】
（定義）
本明細書における略語は次の通りである。
ＮＩＣ：ネットワークインターフェースカード
ｖＮＩＣ：仮想的ネットワークインターフェースカード
ＴＡＰ：ｖＮＩＣを提供する機能
ＧＲＥ：Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ、トンネルプロトコルのひとつ
ＶＸＬＡＮ：Ｖｉｒｔｕａｌ  ｅＸｔｅｎｓｉｂｌｅ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ
【０１０１】
（付記）
本発明は、オペレーションシステム（ＯＳ）仮想化、ネットワーク仮想化もしくはＳｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇの分野において、複数セグメントから成るＩＰネットワーク上での、仮想マシンから成る仮想ネットワークについての障害復旧方法である。
【０１０２】
以下は、上述の仮想ネットワークについての障害復旧方法を説明したものである。
（１）：
クライアントと、
クライアントを収容するゲートウェイと、
ｐｏｒｔを搭載するとともに一台以上の仮想マシン群と一台以上の仮想通信ノードとを駆動する一台以上のワーキング系計算機システムと、
前記の一台以上のワーキング系計算機システム群に対する一台以上のバックアップ系計算機システム群と、
一台以上の前記ゲートウェイ群、前記の一台以上のワーキング系計算機システム群、及び一台以上の前記バックアップ系計算機システム群とを接続する経路制御用レイヤ３ノード７３と、
前記ゲートウェイ群、前記ワーキング系計算機システム、前記バックアップ系計算機システム群、及び前記経路制御用レイヤ３ノード７３を管理・制御する管理システム７６と、
から成り、
前記仮想マシンがプロトコルソフトウェアを駆動するとともにｖＮＩＣを介して前記仮想通信ノードと主信号を送受し、
前記仮想通信ノードがＴＡＰを有するとともに前記ＴＡＰ経由で前記仮想通信ノードと主信号を送受し、一方でｖｐｏｒｔ、および前記ワーキング系計算機システム上の前記ｐｏｒｔを経由して前記経路制御用レイヤ３ノード７３と主信号を送受し、
前記経路制御用レイヤ３ノード７３がｐｏｒｔを有するとともに前記ｐｏｒｔ経由で入出力する主信号をＩＰルーティングに従って経路制御し、
前記ゲートウェイがｐｏｒｔを有するとともに前記ｐｏｒｔで前記経路制御レイヤ３ノード７３と主信号を送受し、一方でＴＡＰも有するとともに前記ＴＡＰ経由で前記クライアントと主信号を送受する、
ことを特徴としたネットワークシステムを前提とし、
前記ワーキング系計算機システム上の前記仮想マシンに関して障害が発生した際、前記管理システム７６が前記仮想マシンの仮想マシンイメージと同じ仮想マシンイメージ、もしくは同じコマンド体系の仮想マシンイメージ  を用いて前記バックアップ系計算機システムの一台の上で仮想マシンを駆動することにより、前記仮想マシンと通信していたクライアントに対して一切の設定変更を加えることなく障害を復旧する障害復旧方法に関し、
前記ワーキング系計算機システムと前記バックアップ系計算機システムとが前記経路制御用レイヤ３ノード７３を介して異なるＩＰセグメントに属する場合でも障害復旧できるように本発明によって拡張した障害復旧方法であり、
前記ワーキング系計算機システムと前記ゲートウェイが互いのＴＡＰを終端点とした仮想トンネルを構築し、前記仮想トンネルに収容される主信号に対してアウターヘッダを付与し、逆に前記仮想トンネルから出力される主信号から前記アウターヘッダを除去し、さらに前記経路制御用レイヤ３ノード７３が、入力してくる主信号に対して前記アウターヘッダ内に含まれる宛先アドレスと仮想ネットワークの識別情報に従って主信号を宛先に向けて転送する、トンネル通信ステップと、
障害発生後に、
前記管理システム７６が前記バックアップ系計算機システム上の仮想通信ノードを管理・制御してＴＡＰを設定し、前記ＴＡＰと前記ゲートウェイ上の前記ＴＡＰとを結ぶ仮想トンネルを構築する、仮想通信ノード設定ステップと、
前記管理システム７６が前記ゲートウェイ上の前記ＴＡＰを管理・制御し、前記ＴＡＰと前記仮想トンネル上の前記仮想通信ノード上の前記ＴＡＰとを結ぶ仮想トンネルを構築する、ゲートウェイ設定ステップと、
を有する障害復旧方法。
【０１０３】
（２）：
上記（１）を前提とし、
前記ゲートウェイ設定ステップにおいて前記ゲートウェイに設定される前記ＴＡＰについて、複数のＴＡＰ候補を予め前記ゲートウェイに設定しておき、
障害発生後、
前記ゲートウェイ設定ステップを実行することなく、
前記ゲートウェイが前記のＴＡＰ候補群に対してＡＲＰもしくはそれに相当するマルチキャスト、もしくはブロードキャストのメッセージを発信し、前記メッセージに対して応答してきた、一台以上の仮想マシンとＴＡＰのペアから一つのペアを選択し、前記の選択されたＴＡＰと仮想トンネルを設定する、ゲートウェイ自律設定ステップ、を実行する障害復旧方法。
【符号の説明】
【０１０４】
７１：ゲートウェイ
７２：ゲートウェイ
７３：経路制御用レイヤ３ノード
７４：計算機システム
７５：計算機システム
７６：管理システム
【図１】
2015002482.tif 000003
【図２】
2015002482.tif 000004
【図３】
2015002482.tif 000005
【図４】
2015002482.tif 000006
【図５】
2015002482.tif 000007
【図６】
2015002482.tif 000008
【図７】
2015002482.tif 000009
【図８】
2015002482.tif 000010
【図９】
2015002482.tif 000011
【図１０】
2015002482.tif 000012
【図１１】
2015002482.tif 000013
【図１２】
2015002482.tif 000014
【図１３】
2015002482.tif 000015
【図１４】
2015002482.tif 000016
【図１５】
2015002482.tif 000017
【図１６】
2015002482.tif 000018
【図１７】
2015002482.tif 000019
【図１８】
2015002482.tif 000020
【図１９】
2015002482.tif 000021
【図２０】
2015002482.tif 000022
【図２１】
2015002482.tif 000023
【図２２】
2015002482.tif 000024
【図２３】
2015002482.tif 000025
【図２４】
2015002482.tif 000026
【図２５】
2015002482.tif 000027
【図２６】
2015002482.tif 000028
【図２７】
2015002482.tif 000029
【図２８】
2015002482.tif 000030
【図２９】
2015002482.tif 000031
【図３０】
2015002482.tif 000032