(57)【特許請求の範囲】
【請求項１】
仮想サーバとトンネル技術を用いた仮想ネットワークにおいて、ネットワークの障害を仮想サーバに通知する障害通知装置であって、
トンネルを張った経路上のネットワークの障害検知を行う障害検知手段と、
障害を検知した場合、前記トンネルを利用している仮想サーバを特定するトンネル管理手段と、
障害が検知されたトンネルと前記仮想サーバとを接続している仮想スイッチを特定する仮想スイッチ管理手段と、
前記仮想スイッチと前記仮想サーバとのリンクをダウンさせるリンクダウン手段と、
を備えることを特徴とする障害通知装置。
【請求項２】
前記リンクダウン手段は、前記仮想スイッチのリンクを削除することで、前記仮想スイッチと前記仮想サーバとのリンクをダウンさせることを特徴とする請求項１に記載の障害通知装置。
【請求項３】
前記リンクダウン手段は、前記仮想スイッチを削除することで、前記仮想スイッチと前記仮想サーバとのリンクをダウンさせることを特徴とする請求項１に記載の障害通知装置。
【請求項４】
前記障害検知手段は、前記仮想サーバが接続している前記仮想スイッチにｐｒｏｂｅサーバを接続し、該ｐｒｏｂｅサーバ間の疎通性を確認することで障害を検知することを特徴とする請求項１から３のいずれか１項に記載の障害通知装置。
【請求項５】
前記障害検知手段は、ＥｔｈｅｒｎｅｔＯＡＭまたはｐｉｎｇを利用することで障害を検知することを特徴とする請求項１から３のいずれか１項に記載の障害通知装置。
【請求項６】
前記仮想スイッチは、ＳＣＳＩ  ｉｎｉｔｉａｔｏｒとＳＣＳＩ  ｔａｒｇｅｔを具備したソフトウェアデバイスであることを特徴とする請求項１から５のいずれか１項に記載の障害通知装置。
【請求項７】
仮想サーバとトンネル技術を用いた仮想ネットワークにおいて、ネットワークの障害を仮想サーバに通知する障害通知方法であって、
トンネルを張った経路上のネットワークの障害検知を行う障害検知ステップと、
障害を検知した場合、前記トンネルを利用している仮想サーバを特定するトンネル管理ステップと、
障害が検知されたトンネルと前記仮想サーバとを接続している仮想スイッチを特定する仮想スイッチ管理ステップと、
前記仮想スイッチと前記仮想サーバとのリンクをダウンさせるリンクダウンステップと、
を有することを特徴とする障害通知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想サーバとトンネル技術を用いた仮想ネットワークにおいて、ネットワークの障害を仮想サーバに通知する障害通知装置および通知方法に関する。
【背景技術】
【０００２】
既存のネットワーク技術にとらわれないネットワークを構築するために、サーバ仮想化技術とネットワークのトンネル技術を組み合わせてオーバーレイネットワーク（スライス）を構築する技術が広まっている。スライスは、物理構成や技術に依存せず、任意のネットワーク技術を用いてネットワークを構築することを目指している。スライスでは、仮想サーバがルータやスイッチ等のノードの役割を担う。トンネルにより物理ネットワークは隠蔽され、仮想サーバからはお互いが隣接（直接接続）しているように見える。たとえば、物理ネットワークがイーサネット（登録商標）網である場合でも、そのうえでストレージエリアネットワークやＡＴＭのスライスを構築することを目指している。
【０００３】
物理ネットワークに障害が発生し、仮想サーバ間のトンネルが切断された場合を想定する。通常の物理ネットワークでは、ネットワーク断が発生した場合、すぐにルータやスイッチ等のノードにおいてリンクダウンが検知される。スライスにおいても同様に、トンネルが切断された場合には、ノードとして動作する仮想サーバの仮想ネットワークインタフェースがリンクダウンを検知することが望まれる。しかし、仮想サーバの場合、イーサネットのインタフェースやＳＣＳＩのインタフェースは、物理サーバが提供するソフトウェアデバイス（仮想スイッチなど）と接続している。そのため、物理ネットワークに障害が発生した場合でもリンクダウンは発生せず、常時接続が保たれた状態になる。
【０００４】
リンクの障害を検知するために、仮想スイッチ間で疎通確認する方法がある。
【０００５】
特許文献１で記載されている、一般的な警報転送では、対向の装置でリンクダウンが起こった場合、自装置もリンクダウンを起こすことで、接続しているネットワーク機器に障害を通知している。
【０００６】
特許文献２では、物理環境と仮想環境の対応付けを行い、物理環境における障害に対する仮想環境の影響範囲を特定している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１１０５８５号公報
【特許文献２】特開２０１０−０８６５１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、あるスライスが仮想サーバのＳＣＳＩデバイスを用いてストレージエリアネットワークを構成した場合、仮想サーバ間の疎通確認をする方法がないため、リンクの障害を仮想サーバで検知することができない。さらに、仮想スイッチにて障害を検知することはできた場合でも、仮想サーバと仮想スイッチのリンクを制御できないケースが考慮されていない。
【０００９】
特許文献１の一般的な警報転送では、ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔの回線では適切にｅｎｄ端末に障害情報を通知することができるが、網の場合は影響のあるｅｎｄ端末のリンクダウンを適切に発生させることができない。さらに、仮想サーバと仮想スイッチのリンクを制御できないケースが考慮されていない。
【００１０】
特許文献２では、管理網上で障害を検知した際、仮想サーバや仮想スイッチに対して障害を通知する必要があるが、仮想サーバは管理網に接続しておらず、さらに仮想サーバ自体もスライス利用者が独自に構築するため、障害を検知したシステムと連携する方法を設定することができない。
【００１１】
したがって、本発明は、物理ネットワークの技術に依存せず独自のネットワーク技術により構築されたスライスにおいて、物理ネットワークに障害が発生した際に、スライスを構成する仮想サーバがネットワーク障害を検知することを可能とする障害通知装置および通知方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため本発明の障害通知装置は、仮想サーバとトンネル技術を用いた仮想ネットワークにおいて、ネットワークの障害を仮想サーバに通知する障害通知装置であって、トンネルを張った経路上のネットワークの障害検知を行う障害検知手段と、障害を検知した場合、前記トンネルを利用している仮想サーバを特定するトンネル管理手段と、障害が検知されたトンネルと前記仮想サーバとを接続している仮想スイッチを特定する仮想スイッチ管理手段と、前記仮想スイッチと前記仮想サーバとのリンクをダウンさせるリンクダウン手段とを備える。
【００１３】
また、前記リンクダウン手段は、前記仮想スイッチのリンクを削除することで、前記仮想スイッチと前記仮想サーバとのリンクをダウンさせることも好ましい。
【００１４】
また、前記リンクダウン手段は、前記仮想スイッチを削除することで、前記仮想スイッチと前記仮想サーバとのリンクをダウンさせることも好ましい。
【００１５】
また、前記障害検知手段は、前記仮想サーバが接続している前記仮想スイッチにｐｒｏｂｅサーバを接続し、該ｐｒｏｂｅサーバ間の疎通性を確認することで障害を検知することも好ましい。
【００１６】
また、前記障害検知手段は、ＥｔｈｅｒｎｅｔＯＡＭまたはｐｉｎｇを利用することで障害を検知することも好ましい。
【００１７】
また、前記仮想スイッチは、ＳＣＳＩ  ｉｎｉｔｉａｔｏｒとＳＣＳＩ  ｔａｒｇｅｔを具備したソフトウェアデバイスであることも好ましい。
【００１８】
上記課題を解決するため本発明の障害通知方法は、仮想サーバとトンネル技術を用いた仮想ネットワークにおいて、ネットワークの障害を仮想サーバに通知する障害通知方法であって、トンネルを張った経路上のネットワークの障害検知を行う障害検知ステップと、障害を検知した場合、前記トンネルを利用している仮想サーバを特定するトンネル管理ステップと、障害が検知されたトンネルと前記仮想サーバとを接続している仮想スイッチを特定する仮想スイッチ管理ステップと、前記仮想スイッチと前記仮想サーバとのリンクをダウンさせるリンクダウンステップとを有する。
【発明の効果】
【００１９】
上記本発明によれば、任意のネットワーク技術を用いて構築された仮想ネットワーク（スライス）を構成する仮想サーバにおいて、仮想サーバ間の接続にどのようなトンネル技術を用いている場合でも、ネットワーク障害をリンクダウンとして検知することができる、という効果を得ることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明のネットワーク構成を示す。
【図２】本発明の障害通知装置のシステム構成図を示す。
【図３】本発明の実施例のネットワーク構成を示す。
【図４】本発明の実施例の動作フローチャートを示す。
【図５】本発明の他の実施形態のネットワーク構成を示す。
【図６】本発明の他の実施例のネットワーク構成を示す。
【発明を実施するための形態】
【００２１】
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。図１に本発明のネットワーク構成を示す。
【００２２】
本実施形態のネットワークは、物理サーバ１、物理サーバ１内に構築される仮想サーバ１１、仮想スイッチ１２、仮想スイッチ１３、および、物理サーバ２、物理サーバ２内に構築される仮想サーバ２１、仮想スイッチ２２、仮想スイッチ２３、および、物理サーバ３、物理サーバ３内に構築される仮想サーバ３１、仮想スイッチ３２、仮想スイッチ３３、物理サーバ１と物理サーバ２を結ぶネットワーク上に構築されるトンネル４、物理サーバ２と物理サーバ３を結ぶネットワーク上に構築されるトンネル５から構成される。
【００２３】
物理サーバ１および２、３は、仮想化機能を具備したサーバであり、複数台の仮想サーバとレイヤ２機能を具備した仮想スイッチで構成されている。物理サーバ１と物理サーバ２の間および物理サーバ２と物理サーバ３の間には、物理ネットワーク上にトンネル４および５を構築している。仮想スイッチ１３と仮想スイッチ２２はトンネル４に、仮想スイッチ２３と仮想スイッチ３２はトンネル５に接続している。トンネルを利用することで、各仮想サーバからは物理ネットワークが隠蔽され、物理サーバ１内の仮想サーバ１１は物理サーバ２内の仮想サーバ２１と、物理サーバ２内の仮想サーバ２１は物理サーバ３内の仮想サーバ３１と、お互いが直接接続しているように見える。仮想スイッチとトンネルにより、仮想サーバ１１、仮想サーバ２１、仮想サーバ３１で構成された仮想ネットワーク（スライス）を作成している。
【００２４】
図２は、本発明の障害通知装置のシステム構成図を示す。障害通知装置６は、障害検知機能６１、トンネル管理機能６２、仮想スイッチ管理機能６３およびリンクダウン機能６４を備える。障害通知装置６は物理サーバ内の１つのプロセスとして作成する。仮想サーバが存在する物理サーバ毎に障害通知装置のプロセスが作成される。
【００２５】
障害検知機能６１は、トンネルを張った経路上のネットワークの障害検知を行う。障害検知機能６１は、イーサネット網の保守・管理機能であるＥｔｈｅｒｎｅｔＯＡＭ（operations，administration，maintenance）、またはＩＰネットワークにおいて、パケットの到達性を確認するｐｉｎｇを用いて、障害検知を行う。また、仮想サーバが接続している仮想スイッチにｐｒｏｂｅサーバを別途接続して、ｐｒｏｂｅサーバの疎通性を確認することで障害検知を行うことができる。
【００２６】
トンネル管理機能６２は、トンネルを利用している仮想サーバを管理している。トンネルの障害が検知された場合、該トンネルを利用している仮想サーバを特定する。
【００２７】
仮想スイッチ管理機能６３は、トンネルを利用している仮想スイッチを管理している。トンネルの障害が検知された場合、障害が検知されたトンネルと仮想サーバを接続している仮想スイッチを特定する。
【００２８】
リンクダウン機能６４は、この仮想スイッチのリンクをダウンさせる。例えば、リンクダウン機能６４は、仮想スイッチのリンクを削除すること、または仮想スイッチを削除することにより、リンクをダウンさせることができる。
【００２９】
物理ネットワーク障害時に、リンクダウン機能６４が仮想スイッチのリンクをダウンさせることにより、仮想ネットワークを構成する仮想サーバがネットワーク障害をリンクダウンとして検知することができる。
【００３０】
なお、本実施形態では、障害通知装置６は物理サーバ内の１つのプロセスとして示されたが、障害通知装置６は物理サーバ内の１つの仮想サーバとして作成することも可能である。この場合、仮想スイッチ毎に障害通知装置の仮想サーバが作成される。
【００３１】
以下に、本発明の実施例を示す。ここで、仮想サーバは、トンネルを介して外部と通信を行うため、仮想サーバが接続する仮想スイッチが論理インタフェース上に構築される。たとえば、図３のような物理サーバＲ１、Ｒ２の間をＧＲＥトンネルにて接続する場合の、物理サーバＲ１における障害通知装置の動作方法について説明する。
【００３２】
物理サーバＲ１では、以下のコマンドを用いてＧＲＥトンネルを作成する。
# ip tunnel add netR2 mode gre remote 192.168.20.3 local 192.168.0.3
# ip link set netR2 up
# ip addr add 10.10.10.1 dev netR2
【００３３】
同様に、物理サーバＲ２側では、以下のコマンドを用いてＧＲＥトンネルを作成する。
# ip tunnel add netR1 mode gre remote 192.168.0.3 local 192.168.20.3
# ip link set netR1 up
# ip addr add 10.10.10.2 dev netR1
【００３４】
これにより、各物理サーバにトンネルが作成される。トンネル管理機能６２はここで作成されたＧＲＥトンネルｎｅｔＲ２が物理サーバＲ２に接続していることを管理する。
【００３５】
次に、トンネルと仮想スイッチを結び付ける。たとえば仮想サーバ作成ソフトウェアとしてＸｅｎを使用した場合、仮想スイッチｘｅｎｂｒ１を作る際に、結び付けるデバイスとしてＧＲＥトンネルｎｅｔＲ２を以下の通り指定することができる。
【００３６】
# /etc/xen/scripts/network-bridge start vifnum=1 bridge=xenbr1 netdev=netR2
仮想スイッチ管理機能６３は、ここで結び付けられたトンネルｎｅｔＲ２と仮想スイッチｘｅｎｂｒ１を管理する。
【００３７】
最後に、作成した仮想スイッチｘｅｎｂｒ１に接続する仮想サーバは、Ｘｅｎの場合は以下のように設定ファイルに指定する。
【００３８】
kernel      = '/boot/vmlinuz-2.6.24-19-xen'
ramdisk     = '/boot/initrd.img-2.6.24-19-xen'
memory      = '128'
root        = '/dev/xvda2 ro'
disk        = [
'tap:aio:/vm/domains/vm001/swap.img,xvda1,w',
'tap:aio:/vm/domains/vm001/disk.img,xvda2,w',
]
name        = 'vm001'
vif        = [ 'ip=192.168.10.111, mac=00:16:3E:A8:A0:88, bridge=xenbr1' ]
on_poweroff= 'destroy'
on_reboot  = 'restart'
on_crash   = 'restart'
extra = '2 console=xvc0'
これにより、トンネルｘｅｎｂｒ１に結び付いた仮想サーバが構築される。
【００３９】
障害検知機能６１は、トンネルを張った経路の障害をｐｉｎｇを用いて検知する。トンネル管理機能６２の情報より、障害通知装置６が動作している物理サーバＲ１は、物理サーバＲ２とトンネルを構築している情報を取得する。物理サーバＲ２とはＧＲＥトンネルにより接続しているため、物理サーバＲ２のＩＰアドレス１９２．１６８．２０．３に対してｐｉｎｇにより障害の検知を行う。
【００４０】
物理サーバＲ２からｐｉｎｇの応答がない場合、障害検知機能６１はトンネル管理機能６２に障害検知の通知を行う。トンネル管理６２では、仮想スイッチ管理機能６３より、障害が発生したＧＲＥトンネルｎｅｔＲ２上に作成された仮想スイッチｘｅｎｂｒ１の情報を取得する。
【００４１】
次に、リンクダウン機能６４が、以下のコマンドにより仮想スイッチｘｅｎｂｒ１を削除する。
# ifdown xenbr1
# ifdown netR2
# brctl delif xenbr1 netR2
# brctl delbr xenbr1
【００４２】
障害通知装置６は、図４のフローチャートにより、仮想スイッチの管理を行う。
ステップ１：障害検知機能６１は、ＰｉｎｇまたはＥｔｈｅｒＯＡＭで相手通信装置またはスイッチの死活監視を行う。
ステップ２：障害検知機能６１は、対向装置（相手通信装置またはスイッチ）から応答があるかどうかを確認する。応答がある場合、ステップ１に戻り再度監視を行う。応答がない場合、ステップ３に進む。
ステップ３：トンネル管理機能６２は、応答のないトンネルに紐付いた仮想サーバを特定し、仮想スイッチ管理機能６３は、応答のないトンネルとこの仮想サーバを接続している仮想スイッチを特定して、リンクダウン機能６４は、この仮想スイッチを削除する。
【００４３】
また、異なる実施形態を図５に示す。物理サーバ１および２、３は、仮想化機能を具備したサーバであり、複数台の仮想サーバと、ＳＣＳＩ  ｉｎｉｔｉａｔｏｒとＳＣＳＩ  ｔａｒｇｅｔを具備したソフトウェアデバイスで構成されている。物理サーバ１と物理サーバ２の間および物理サーバ２と物理サーバ３の間には、物理ネットワーク上にトンネル４および５を構築している。ソフトウェアデバイス１５とソフトウェアデバイス２４はトンネル４に、ソフトウェアデバイス２５とソフトウェアデバイス３４はトンネル５に接続している。トンネルを利用することで、各仮想サーバからは物理ネットワークが隠蔽され、物理サーバ１内の仮想サーバ１１は物理サーバ２内の仮想サーバ２１と、物理サーバ２内の仮想サーバ２１は物理サーバ３内の仮想サーバ３１と、お互いが直接接続しているように見える。ソフトウェアデバイスとトンネルにより、仮想サーバ１１、仮想サーバ２１、仮想サーバ３１で構成された仮想ネットワーク（スライス）を作成している。
【００４４】
以下に、本発明の実施例を示す。ここで、仮想サーバは、トンネルを介して外部と通信を行うため、仮想サーバが接続するソフトウェアデバイスが論理インタフェース上に構築される。たとえば、図６のような物理サーバＲ１、Ｒ２の間をｉＳＣＳＩセッションにて接続する場合の、物理サーバＲ１における障害通知装置の動作方法について説明する。
【００４５】
物理サーバＲ２では、ＳＣＳＩ  ｔａｒｇｅｔ  ｓｕｂｓｙｓｔｅｍ  ｆｏｒ  Ｌｉｎｕｘ  （ＳＣＳＴ）を用いて、ＳＣＳＩデバイスをｉＳＣＳＩにより外部からアクセスできるようにする。たとえば、物理サーバＲ１の／ｄｅｖ／ｓｄｂを外部からアクセスできるようにするためには、ＳＣＳＴの設定ファイルである／ｅｔｃ／ｓｃｓｔ．ｃｏｎｆにて以下の設定を行う。
HANDLER vdisk_fileio {
DEVICE disk01 {
filename /dev/sdb
nv_cache 1
}
}
TARGET_DRIVER iscsi {
enabled 1
TARGET iqn.2006-10.net.vlnb:tgt {
LUN 0 disk01
enabled 1
}
}
【００４６】
次に、以下のコマンドを用いて設定したデバイスをｉＳＣＳＩデバイスとして外部からアクセスできるようにする。
# modprobe scst
# modprobe scst_vdisk
# modprobe iscsi-scst
# iscsi-scstd
# scstadmin -config /etc/scst.conf
【００４７】
物理サーバＲ１側では、以下のコマンドを用いてｉＳＣＳＩセッションを作成する。
# iscsiadm -m discovery -t sendtargets -p 192.168.20.3
# iscsiadm -m node -T iqn.2006-10.net.vlnb:tgt -p 192.168.20.3:3260,1 --login
【００４８】
これにより、各物理サーバにｉＳＣＳＩセッションが作成される。トンネル管理機能６２はここで作成されたｉＳＣＳＩセッションが物理サーバＲ２に接続していることを管理する。
【００４９】
次に、仮想サーバとソフトウェアデバイスを結び付ける。たとえば仮想サーバ作成ソフトウェアとしてＸｅｎを使用し、ｉＳＣＳＩセッションを構築したソフトウェアデバイスが／ｄｅｖ／ｓｄｃである場合、以下の通り指定することができる。
【００５０】
kernel      = '/boot/vmlinuz-2.6.24-19-xen'
ramdisk     = '/boot/initrd.img-2.6.24-19-xen'
memory      = '128'
root        = '/dev/xvda2 ro'
disk        = [
'tap:aio:/vm/domains/vm001/swap.img,xvda1,w',
'tap:aio:/vm/domains/vm001/disk.img,xvda2,w', 
'phy:/dev/sdc,sda,w',
]
name        = 'vm001'
on_poweroff= 'destroy'
on_reboot  = 'restart'
on_crash   = 'restart'
extra = '2 console=xvc0'
これにより、ソフトウェアデバイス／ｄｅｖ／ｓｄｃに結び付いた仮想サーバが構築される。
【００５１】
障害検知機能６１は、トンネルを張った経路の障害をｐｉｎｇを用いて検知する。トンネル管理機能６２の情報より、障害通知装置６が動作している物理サーバＲ１は、物理サーバＲ２とトンネルを構築している情報を取得する。物理サーバＲ２とはｉＳＣＳＩセッションにより接続しているため、物理サーバＲ２のＩＰアドレス１９２．１６８．２０．３に対してｐｉｎｇにより障害の検知を行う。
【００５２】
物理サーバＲ２からｐｉｎｇの応答がない場合、障害検知機能６１はトンネル管理機能６２に障害検知の通知を行う。トンネル管理６２では、仮想スイッチ管理機能６３より、障害が発生したｉＳＣＳＩセッション上に作成されたソフトウェアデバイス／ｄｅｖ／ｓｄｃの情報を取得する。
【００５３】
次に、リンクダウン機能６４が、以下のコマンドによりソフトウェアデバイス／ｄｅｖ／ｓｄｃを削除する。
# iscsiadm -m node -T iqn.2006-10.net.vlnb:tgt -p 192.168.20.3:3260,1 --logout
【００５４】
また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。従って本発明の範囲は特許請求の範囲およびその均等範囲によってのみ規定されるものである。
【符号の説明】
【００５５】
１、２、３  物理サーバ
４、５  トンネル
６  障害通知装置
１１、２１、３１  仮想サーバ
１２、１３、２２、２３、３２、３３  仮想スイッチ
１４、１５、２４、２５、３４、３５  ソフトウェアデバイス
６１  障害検知機能
６２  トンネル管理機能
６３  仮想スイッチ管理機能
６４  リンクダウン機能
【図１】
0005782397.tif 000002
【図２】
0005782397.tif 000003
【図３】
0005782397.tif 000004
【図４】
0005782397.tif 000005
【図５】
0005782397.tif 000006
【図６】
0005782397.tif 000007