説明

通信システム及び方法、ハートビート代行サーバ

【課題】 送受信するデータ量を削減し、ネットワーク負荷低減の手段を提供すること。
【解決手段】 ハートビート代行サーバA10、B20が、データセンターサイト100、200の入口で各物理サーバA、B(仮想マシンVM)が送受信するハートビート信号を監視し、データセンター100、200内の複数物理サーバA、B(仮想マシンVM)のハートビート有無情報を一元管理し、収集した各物理サーバA、B(仮想マシンVM)のハートビート情報をまとめてサイト間で送受信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム及び方法、ハートビート代行サーバに係り、特に遠隔データセンター間の冗長化のためのハートビート通信システム及び方法、ハートビート代行サーバに関する。
【背景技術】
【0002】
データセンター(DC)内のサーバは、サーバのダウンやハードディスクのクラッシュ等のトラブルが発生した場合に、サービスの維持や復旧時間短縮のために冗長構成がなされている。また、冗長をなすサーバ同士がお互いの死活を監視するために、一定時間ごとにハートビート(HB)信号と呼ばれる自身の正常性を冗長先に知らせる信号を送り合い、本番系(現用系)サーバに障害発生した際は、ハートビート信号が途切れ、待機系(予備系)サーバは本番系サーバの故障を認識し、系の切り替えが行われる。近年、データセンターではハードウェアリソースを有効活用するために仮想化技術が進み、物理サーバ内の仮想マシンについても冗長構成がとられている。例えば、特許文献1によると、仮想マシン同士でハートビート通信を行う技術が存在する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−165637号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、データセンター自体が破壊されるような大規模な災害へ対処するために、遠隔のデータセンターにあるサーバとの冗長化を想定すると、遠隔の仮想マシン同士が前述のようにハートビート信号を送受信することが考えられる。このような状況下では、データセンターサイト間をつなぐネットワーク(NW)にハートビート信号が行き交うことになり、サイト間ネットワークトラフィックを圧迫する場合が想定される。
本発明は、以下の点に鑑み、送受信するデータ量を削減し、サイト間ネットワークの負荷を低減することを目的とする。
【課題を解決するための手段】
【0005】
本発明では、HB代行サーバがデータセンターサイト入口で各サーバが送受信するハートビート信号を監視し、データセンター内の複数サーバのハートビート有無情報を一元管理し、収集したハートビート有無情報をまとめて冗長サイトの対向HB代行サーバへ送信する。冗長サイトの対向HB代行サーバが受信したハートビート情報をもとに各冗長先サーバへハートビート信号を送信することにより、冗長を組む各サーバ間でハートビートの送受信を実現する。

【0006】
本発明の第1の解決手段によると、
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのHBパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するHB代行サーバと
を備えた前記通信システム、及び、前記通信システムにおける通信方法であって、

HB送受信代行開始後において、
第1のサイトの第1のサーバからHBパケットが送信されると、前記第1のサイトの第1のHB代行サーバの第1の自サイト用テーブルに、前記第1のサーバのアドレスに対して、カウンタに初期値をロードし、HB有無情報へHB有をセットし、
一方、前記第1のサーバが故障すると、HBパケットが前記第1のHB代行サーバに送信されなくなり、前記第1の自サイト用テーブルの前記第1のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第1のHB代行サーバはカウンタをカウントし続けて、カウンタが満了するとHB有無情報をHB無にセットし、

前記第1のHB代行サーバは、予め定められた時間間隔で前記第1の自サイト用テーブルを参照し、更新された前記第1のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重化パケットを第2のサイトの第2のHB代行サーバへ送信し、
前記第2のHB代行サーバは、受信した前記HB多重化パケットに従い、前記第2のHB代行サーバの第2の対向サイト用テーブルの各HB有無情報を更新し、

前記第2のHB代行サーバは、カウンタをカウントし、前記第2の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、HB有無情報がHB有であれば該対向サイト側サーバアドレスの前記第2のサイトの第2のサーバへHBパケットを送信し、
一方、前記HB有無情報がHB無であれば前記第2のサーバへHBパケットを送信しないことに基づき、前記第2のサーバは対応する前記第1のサーバが故障したと判断する
ことを特徴とする通信システム、及び、通信方法が提供される。

【0007】
本発明の第2の解決手段によると、
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのHB要求パケット及びHB応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するHB代行サーバと
を備えた前記通信システム、及び、前記通信システムにおける通信方法であって、

HB送受信代行開始後において、
第2のサイトの第2のHB代行サーバは、予め定められた一定の時間間隔で、前記第2のHB代行サーバの第2の自サイト用テーブルを参照し、第2のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重パケットを第1のサイトの第1のHB代行サーバへHB多重化パケットを送信し、
前記第2のHB代行サーバは、カウンタをカウントし、前記第2のHB代行サーバの第2の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、HB有無情報がHB有であれば、HB要求パケットを、該対向サイト側サーバアドレスの前記第1のサーバに対応する第2のサーバへ送信し、前記第2のサーバは、正常な場合、該HB要求パケットを受けると、HB応答パケットを送信し、
前記第2のHB代行サーバは、前記第2の自サイト用テーブルについて、前記第2のサーバからHB応答パケットを受信する度に、前記第2のサーバのアドレスに対して、HB有無情報をHB有に設定し、カウンタに初期値をロードし、
一方、前記第2のサーバが故障している場合、HB応答パケットを返さないため、前記第2の自サイト用テーブルの前記第2のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとHB有無情報にHB無をセットし、

前記第1のHB代行サーバは、受信したHB多重化パケットに従い、前記第1のHB代行サーバの第1の対向サイト用テーブルの各HB有無情報を更新し、

前記第1のHB代行サーバは、前記第1のサーバからHB要求パケットを受信すると、更新された前記第1の対向サイト用テーブルを参照し、前記第1のサーバに対応する前記第2のサーバのアドレスに対するHB有無情報がHB有であれば、HB応答パケットを前記第1のサーバに返送し、
一方、前記第1のサーバに対応する前記第2のサーバのアドレスに対する前記HB有無情報がHB無であれば、前記第1のサーバにHB応答パケットを送信しないことに基づき、前記第1のサーバは、対応する前記第2のサーバが故障したと判断する
ことを特徴とする通信システム、及び、通信方法が提供される。

【0008】
本発明の第3の解決手段によると、
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるHB代行サーバであって、

各前記サイトの各前記HB代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのHBパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、

HB送受信代行開始後において、
第1のサイトの第1のサーバからHBパケットが送信されると、前記第1のサイトの第1のHB代行サーバの第1の自サイト用テーブルに、前記第1のサーバのアドレスに対して、カウンタに初期値をロードし、HB有無情報へHB有をセットし、
一方、前記第1のサーバが故障すると、HBパケットが前記第1のHB代行サーバに送信されなくなり、前記第1の自サイト用テーブルの前記第1のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第1のHB代行サーバはカウンタをカウントし続けて、カウンタが満了するとHB有無情報をHB無にセットし、

前記第1のHB代行サーバは、予め定められた時間間隔で前記第1の自サイト用テーブルを参照し、更新された前記第1のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重化パケットを第2のサイトの第2のHB代行サーバへ送信し、
前記第2のHB代行サーバは、受信した前記HB多重化パケットに従い、前記第2のHB代行サーバの第2の対向サイト用テーブルの各HB有無情報を更新し、

前記第2のHB代行サーバは、カウンタをカウントし、前記第2の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、HB有無情報がHB有であれば該対向サイト側サーバアドレスの前記第2のサイトの第2のサーバへHBパケットを送信し、
一方、前記HB有無情報がHB無であれば前記第2のサーバへHBパケットを送信しないことに基づき、前記第2のサーバは対応する前記第1のサーバが故障したと判断する
ことを特徴とするHB代行サーバが提供される。

【0009】
本発明の第4の解決手段によると、
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるHB代行サーバであって、

各前記サイトの各前記HB代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのHB要求パケット及びHB応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、

HB送受信代行開始後において、
第2のサイトの第2のHB代行サーバは、予め定められた一定の時間間隔で、前記第2のHB代行サーバの第2の自サイト用テーブルを参照し、第2のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重パケットを第1のサイトの第1のHB代行サーバへHB多重化パケットを送信し、
前記第2のHB代行サーバは、カウンタをカウントし、前記第2のHB代行サーバの第2の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、HB有無情報がHB有であれば、HB要求パケットを、該対向サイト側サーバアドレスの前記第1のサーバに対応する第2のサーバへ送信し、前記第2のサーバは、正常な場合、該HB要求パケットを受けると、HB応答パケットを送信し、
前記第2のHB代行サーバは、前記第2の自サイト用テーブルについて、前記第2のサーバからHB応答パケットを受信する度に、前記第2のサーバのアドレスに対して、HB有無情報をHB有に設定し、カウンタに初期値をロードし、
一方、前記第2のサーバが故障している場合、HB応答パケットを返さないため、前記第2の自サイト用テーブルの前記第2のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとHB有無情報にHB無をセットし、

前記第1のHB代行サーバは、受信したHB多重化パケットに従い、前記第1のHB代行サーバの第1の対向サイト用テーブルの各HB有無情報を更新し、

前記第1のHB代行サーバは、前記第1のサーバからHB要求パケットを受信すると、更新された前記第1の対向サイト用テーブルを参照し、前記第1のサーバに対応する前記第2のサーバのアドレスに対するHB有無情報がHB有であれば、HB応答パケットを前記第1のサーバに返送し、
一方、前記第1のサーバに対応する前記第2のサーバのアドレスに対する前記HB有無情報がHB無であれば、前記第1のサーバにHB応答パケットを送信しないことに基づき、前記第1のサーバは、対応する前記第2のサーバが故障したと判断する
ことを特徴とするHB代行サーバが提供される。
【発明の効果】
【0010】
本発明によると、データセンター内各サーバが冗長先サーバへ送信するハートビート信号に含まれる送信元アドレス、宛先アドレス、その他のプロトコル依存のヘッダ、ハートビート情報に関する各データが、データセンターサイト入口のHB代行サーバで一括管理することができる。また、本発明によると、HB代行サーバは、各サーバのハートビート情報のみをまとめて冗長サイトの対向HB代行サーバへ送信するため、各サーバが個別にハートビート信号を送受信する場合に比べ、サイト間を流れるデータ量を削減でき、ネットワークの負荷低減を可能とする。
【図面の簡単な説明】
【0011】
【図1】本実施の形態によるデータセンターのシステム構成を示す図である。
【図2】本実施の形態によるHB代行サーバの構成を示す図である。
【図3】(a)HB代行サーバが持つ自データセンター用テーブルの例である。(b)HB代行サーバが持つ対向データセンター用テーブルの例である。(c)DC内各サーバが送受信する通常のHBパケットの例である。(d)HB代行サーバが送受信するHB多重化パケットの例である。
【図4】DC側HB受信部処理のフローチャートである。
【図5】NW側HB送信部処理のフローチャートである。
【図6】自DC用テーブル管理処理のフローチャートである。
【図7(a)】NW側HB受信部処理のフローチャートである。
【図7(b)】DC側HB送信部処理のフローチャートである。
【図8(a)】対向DC用テーブル管理部処理のフローチャートである。
【図8(b)】対向DC用テーブル管理部内処理のフローチャートである。
【図8(c)】対向DC用カウンタ処理のフローチャートである。
【図9】本実施の形態のシーケンス図の例である。
【図10】HB代行サーバA内自DC用テーブルの遷移を示す図である。
【図11】HB代行サーバB内対向DC用テーブルの遷移を示す図である。
【図12】(a)自DC用テーブル内HB有無ビット、減算カウンタの遷移を示す図である。(b)対向DC用テーブル内HB有無ビット、減算カウンタの遷移を示す図である。
【図13】本実施の形態によるHB代行サーバの構成を示す図である。
【図14】DC側HB受信部の処理フローチャートである。
【図15】NW側HB受信部処理のフローチャートである。
【図16(a)】対向DC用テーブル管理部処理のフローチャートである。
【図16(b)】対向DC用テーブル管理部内処理のフローチャートである。
【図16(c)】対向DC用テーブル管理部内処理のフローチャートである。
【図17】本実施の形態のシーケンス図の例である。
【図18】HB代行サーバB内自DC用テーブルの遷移を示す図である。
【図19】対向DC用テーブルの遷移を示す図である。
【図20】(a)自DC用テーブル内HB有無ビット、減算カウンタの遷移を示す図である。(b)対向DC用テーブル内HB有無ビット、減算カウンタの遷移を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。

A.実施の形態1

1.システム

図1は、本実施の形態のデータセンター(DC)で構成されるネットワークを示すものである。DCサイトA(100)は、サイト間ネットワーク(NW)網(300)を介して、遠隔地のデータセンターであるDCサイトB(200)とハートビート(HB)信号の送受信を行う。
DCサイトA(100)は、物理サーバA(11)、物理サーバA(12)、・・・、物理サーバA(1j)、本発明に該当するHB代行サーバA(10)を備える。
【0013】
また、物理サーバA(11)は、物理サーバ内に複数の仮想マシンを動作可能にさせるHypervisor A(11−0)、仮想サーバとして動作する仮想マシンVMa1(11−1)、仮想マシンVMa2(11−2)、…、仮想マシンVMaj(11−i)を備える。
同様に、DCサイトB(200)は、データセンターを構成する要素として、物理サーバB(21)、物理サーバB(22)、…、物理サーバB(2j)、本発明に該当するHB代行サーバB(20)を備える。
【0014】
また、物理サーバB(21)は、物理サーバ内に複数の仮想マシンを動作可能にさせるHypervisor B(21−0)、仮想的なサーバとして動作する仮想マシンVMb1(21−1)、仮想マシンVMb2(21−2)、…、仮想マシンVMbj(21−i)を備える。
HB代行サーバA(10)は、DCサイトA(100)内の物理サーバや仮想マシンといった各サーバから送信されるHBパケット(41、42)を受信し、DCサイトA(100)内各サーバのHB送信有無情報を各サーバのアドレス、冗長先サーバのアドレスとともに管理する。また、HB代行サーバA(10)は、収集した各サーバのHB送信有無情報をまとめてHB多重化パケット(40)としてHB代行サーバB(20)へサイト間NWを介して送信する。
【0015】
HB代行サーバB(20)は、受信したHB多重化パケット(40)から入手したDCサイトA(100)内各サーバのHB送信有無情報をもとに、DCサイトB内各サーバへHBパケット(43、44)を送信する。以上の手順により、DCサイトA(100)内サーバからDCサイトB(200)内サーバへHBパケットが送信される。
本実施の形態では、異なるデータセンターサイト間で冗長構成をなすm組のサーバが一定時間ごとにHBパケットを互いに送り合うようなシステムについて説明する。

【0016】
図2は、HB代行サーバの実施の形態1を示す。
HB代行サーバ(50)は、DC側HB受信部(50−1)、NW側HB送信部(50−2)、DC側HB送信部(50−3)、NW側HB受信部(50−4)、制御部(50−5)、対向DC用テーブル(50−6)、対向DC用テーブル管理部(50−7)、自DC用テーブル(50−8)、自DC用テーブル管理部(50−9)を備える。
DC側HB受信部(50−1)は、DCサイト内からサイト間NW側へ送信されてくるHBパケットを受信するブロックである。図4のフローチャートに示す通り(詳細は後述)、DC側HB受信部(50−1)は、HBパケットを受信すると、HB送受信代行中の場合、自DC用テーブル管理部(50−9)へ自DC用テーブル更新処理の要求を行う。また、HBパケットを代行して送受信する前のテーブル学習段階では、DC側HB受信部(50−1)は、受信HBパケットのNW側HB送信部(50−2)への転送も行う。

【0017】
図3(a)は、HB代行サーバが持つ自データセンター用テーブルの例を示す図である。
自DC用テーブル(50−8、T508)は、自DCサイト内各サーバのHB情報が記録されているテーブルで、図3(a)に示す通り、自DCサイト内各サーバのアドレス(T508−1)、減算カウンタの初期値(T508−2)、HB送信無と判断するまでの時間を計る減算カウンタ値(T508−3)、HB代行サーバのHB受信有無情報(T508−4)を対応して記憶する。なお、各テーブルのサーバアドレスとしては、サーバのアドレスを用いてもよいし、VMのアドレスを含むサーバのアドレス(VMのアドレス)等を用いてもよい。減算カウンタ値(T508−3)には、HBパケットを受信すると初期値(T508−2)がロードされ、次のHBパケットを受信するかもしくはカウント値が0になるまで、カウントダウンを続ける。HB代行サーバでHBパケットを受信しなくなると、カウント値が0になるので、これを契機にHBパケット無と判断する。
【0018】
自DC用テーブル管理部(50−9)は、自DC用テーブルの更新処理を行うブロックである。図6に示す通り(詳細は後述)、自DC用テーブル管理部(50−9)は、DC側HB受信部(50−1)からの自DC用テーブル更新処理の要求を受けて、受信HBパケット(T41)の送信元アドレス(T41−1)から自DC用テーブルを検索し、自DC用テーブル該当行のHB受信有無情報を1(HB有)に書き換える。また、自DC用テーブル管理部(50−9)は、自DC用テーブル(50−8)内各減算カウンタの値更新も行う。
【0019】
NW側HB送信部(50−2)は、HB代行サーバからNW側へHBパケットを送信するブロックで、図5のフローチャートに示す通り(詳細は後述)、NW側HB送信部(50−2)は、HBパケット送受信の代行前については、DC側HB受信部(50−1)から転送されるHBパケットをNW側へ送信する。また、NW側HB送信部(50−2)は、HBパケット送受信の代行中は、自DC用テーブル(50−8)の各HB有無情報(T508−4)を参照し、HB多重化パケット(40)を生成し、対向のHB代行サーバへ送信する。
【0020】
NW側HB受信部(50−4)は、NW側から送信されてくるパケットを受信するブロックである。図7(a)のフローチャートに示す通り(詳細は後述)、NW側HB受信部(50−4)は、受信したHBパケットについて通常のHBパケットとHB多重化パケットを識別し、通常のHBパケットであればDC側HB送信部(50−3)へ受信HBパケットを転送し、対向DC用テーブル管理部(50−7)へ対向DC用テーブル(50−6)更新処理の要求を行う。受信HBパケットがHB多重化パケットである場合は、NW側HB受信部(50−4)は、直接、受信したデータをもとに対向DC用テーブル(50−6)のHB受信有無情報を更新する。
【0021】
図3(b)は、HB代行サーバが持つ対向データセンター用テーブルの例を示す図である。
対向DC用テーブル(50−6、T506)は、冗長の対向DCサイト内各サーバのHB情報が記録されているテーブルで、図3(b)に示す通り、対向DCサイト内各サーバのアドレス(T506−1)、減算カウンタの初期値(T506−2)、特定の時間を計る減算カウンタ値(T506−3)、HB送信有無情報(T506−4)を対応して記憶する。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、VMのアドレスを用いてもよい。ただし、減算カウンタ値(T506−3)には、HB送受信代行前は、HBパケットを受信すると初期値(T506−2)がロードされ、次のHBパケットを受信するかもしくはカウント値が0になるまで、カウントダウンを続ける。HB代行サーバでHBパケットを受信しなくなると、カウント値が0になるので、これを契機にHBパケット無と判断し、HBパケットを受信してから、HB送信無と判断するまでのタイマーとなる。HBパケット送受信代行後、減算カウンタ値(T506−3)はHBパケットを自DCサイト内各サーバへ送信する時間を知らせるタイマーとして機能し、HBパケットを送信する度に初期値(T506−2)がロードされる。
【0022】
対向DC用テーブル管理部(50−7)は、対向DC用テーブルの更新処理を行うブロックである。図8(a)、(b)、(c)のフローチャートに示す通り(詳細は後述)、対向DC用テーブル管理部(50−7)は、HBパケット送受信の代行前については、NW側HB受信部(50−4)からの対向DC用テーブル更新処理の要求を受けて、受信HBパケット(T41)の送信元アドレス(T41−1)から対向DC用テーブルを検索し、対向DC用テーブル該当行のHB受信有無情報を書き換える。HBパケット送受信の代行中については、対向DC用テーブル管理部(50−7)は、減算カウンタの周期で、DC側HB送信部へHBパケットを送信する。また、対向DC用テーブル管理部(50−7)は、HBパケット送受信の代行中か否かに関わらず、対向DC用テーブル(50−8)内各減算カウンタの値更新も行う。
【0023】
DC側HB送信部(50−3)は、自DC内各サーバへHBパケットを送信するブロックである。図7(b)に示す通り(詳細は後述)、DC側HB送信部(50−3)は、NW側HB受信部(50−4)および対向DC用テーブル管理部(50−7)から送信されるHBパケットを自DC内各サーバへ送信する。
保守端末(60)は、自DC用テーブル(50−8)、対向DC用テーブル(50−6)の初期設定、HB多重化パケットの送信間隔や冗長構成をなす組の設定のために使用される。また、HB送受信代行開始もこの保守端末(60)の設定で行われる。
制御部(50−5)は、保守者が保守端末(60)を通して入力した各設定値を実際にHB代行サーバ各部に設定するブロックとなる。

【0024】
2.動作フロー

(1)前提

以下に、図4、図5、図6、図7(a)、(b)、図8(a)、(b)、(c)を用いて、各機能ブロックの説明を行う。図4、図5、図6、図7(a)、(b)、図8(a)に示される処理は、1回の処理のみ示しており、実際にはフローチャートの処理が繰り返し実行される。
保守者は、HB代行サーバ運用前に、データセンター間で冗長構成をなしているサーバの情報を、自DC用テーブル(T508)及び対向DC用テーブル(T506)に、保守端末(60)で設定する。具体的には、例えば、冗長構成をなす自データセンターおよび対向データセンター内各サーバのアドレス(T508−1,T506−1)を登録し、減算カウンタの初期値(T508−2,T506−2)を設定し、減算カウンタ値(T508−3,T506−3)を0に、HB有無ビット(T508−4,T506−4)を0(HB無)に設定し、HB多重化パケットの送信周期や冗長構成をなす組の設定を行う。ただし、本実施の形態では、簡単のため自DC用テーブル(T508)のn行目に該当するサーバと対向DC用テーブル(T506)のn行目に該当するサーバが冗長構成を組んでいるものとする。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、VMのアドレスを用いてもよい。
保守者による初期設定が終わると、HB代行サーバは、自DC用テーブルおよび対向DCテーブルのHB有無情報を学習するため、保守者によるHB送受信代行の指示があるまで、各サーバから送信されるHBパケットを監視し、ネットワーク側へ転送する。

【0025】
図4は、DC側HB受信部処理のフローチャートである。
物理サーバや仮想マシンが冗長の対向DCサイトの冗長先サーバへHBパケットを送ると、まずHB代行サーバのDC側HB受信部でHBパケットが受信される(F501−1)。
【0026】
図3(c)は、DC内各サーバが送受信する通常のHBパケットの例を示す図である。
HBパケット(T41)は、図3(c)に示すように、送信元アドレス(T41−1)、宛先アドレス(T41−2)、パケットが通常のHBパケットであることを示す情報(T41−3)、その他プルトコル依存するヘッダ情報(T41−4)を含んでいる。

【0027】
(2)HB送受信代行前

i)HBパケット送信

HB送受信代行前であれば(F501−2)、HB代行サーバはHBパケットの監視とテーブルの更新を行うため、DC側HB受信部は、受信パケットをそのままNW側HB送信部へ転送し(F501−3)、自DC用テーブル管理部へ自DCテーブル更新処理を要求する(F501−4)。

【0028】
図6は、自DC用テーブル管理処理のフローチャートである。
自DC用テーブル管理部は、DC側HB受信部からの要求を受け(F509−6)、送信元アドレスをもとに、自DC用テーブル内を検索し、自DC用テーブルの該当HB有無ビットを1(HB有)に設定し、減算カウンタ値に初期値をロードする(F509−7)。また、自DC用テーブル管理部は、テーブルの1行目(F509−1)から順にカウンタ値を1ずつ減らす(F509−3)。ある行の減算カウンタ値が0でなければ(F509−2)、同じ行の減算カウンタ値を1減らし(F509−3)、減らした結果が0であれば(F509−4)、同じ行のHB有無ビットを0(HB無)に設定する(F509−5)。上述のカウンタ減算処理をテーブルの最終行まで繰り返す(F509−8、F509−9)。

【0029】
ii)HBパケット受信

図5は、NW側HB送信部処理のフローチャートである。
HB送受信代行前であれば(F502−1)、NW側HB送信部は、DC側HB受信部から転送されるHBパケットをサイト間NW網経由で対向HB代行サーバへ送信する(F502−3)。

【0030】
図7(a)は、NW側HB受信部処理のフローチャートである。
サイト間NW網を経てHB代行サーバへ到着したHBパケットは、NW側HB受信部で受信される(F504−1)。NW側HB受信部は、通常のHBパケットかHB代行サーバで一括化された多重化HBパケットなのかを識別し(F504−2)、通常のHBパケットの場合はDC側HB送信部へ受信したHBパケットを転送し、対向DC側テーブル管理部へ対向DC用テーブル更新要求をする(F504−4)。
【0031】
図7(b)は、DC側HB送信部処理のフローチャートである。
DC側HB送信部は、HB送受信代行中かどうかに関わらず、送信されてくるパケットをそのままDCサイト内各サーバへ送信する(F503−1)。
【0032】
図8(b)は、対向DC用テーブル管理部内処理のフローチャートである。
対向DC用テーブル更新処理(F701)の要求があれば(F701−1)、対向DC用テーブル管理部(50−7)は、受信HBパケットの送信元アドレスをもとに、対向DC用テーブルにあるHBパケット送信元のHB有無ビットを1(HB有)に設定し、該当の減算カウンタに初期値をロードする(F701−2)。
【0033】
図8(a)対向DC用テーブル管理部処理のフローチャートである。また、図8(c)対向DC用カウンタ処理のフローチャートである。
また、対向DC用テーブル管理部は、対向DC用テーブルの1行目(F507−1)から順にカウンタ値を1ずつ減らす(F507−3)。ある行の減算カウンタ値が0でなければ(F507−2)、同じ行の減算カウンタ値を1減らし(F507−3)、減らした結果が0であれば(F507−4)、対向DC用カウンタ処理(F702)を実行し、図8(c)のように、同じ行のHB有無ビットを0(HB無)に設定する(F702−5)。上述のカウンタ減算処理をテーブルの最終行まで繰り返す(F507−5、F507−6)。

【0034】
(3)HB送受信代行後

i)HBパケット送信

図4のように、保守端末からの設定で、HBパケットの送受信代行を開始すると(F501−2)、DC側HB受信部(50−1)はHBパケットをNW側HB送信部(50−2)へ転送せず、自DC用テーブル(T508−4)のHB有無ビット(T508−4)の更新処理を自DC用テーブル管理部へ要求する(F501−4)。
図6のように、自DC用テーブル管理部は、HB送受信代行前と同様に、減算カウンタ値(T508−3)およびHB有無ビット(T508−4)の更新処理を行う。
図5のように、NW側HB送信部(50−2)は、HB送受信代行中であれば(F502−1)、自DC用テーブル(T508)の各HB有無ビット(T508−4)の値を読み、HB有無ビットマップを作成し、対向のHB代行サーバへ多重化HBパケット(T40)として送信する(F502−2)。
【0035】
図3(d)は、HB代行サーバが送受信するHB多重化パケットの例を示す図である。
このとき、HB多重化パケット(T40)は、図3(d)に示す通り、送信元アドレス(T40−1)、宛先アドレス(T40−2)、パケット種類(T40−3)、HB有無ビットマップ(T40−4、T40−5、T40−6)、その他のプロトコル依存のヘッダ情報(T40−7)を含む。

【0036】
ii)HBパケット受信

図7(a)のように、NW側HB受信部(50−1)は、パケット種類(T40−3)がHB多重化パケットであるか否かにより、HB多重化パケット(T40)を受信したと判断すると(F504−1、F504−2)、HB有無ビットマップ(T40−4、T40−5、T40−6)から対向DC用テーブルの各HB有無ビット(T506−4)の値を更新する(F504−3)。
図8(a)のように、対向DC用テーブル管理部(50−7)は、HB送受信代行前と同様に、対向DC用テーブル内各減算カウンタを回して、減算カウンタ値が0になった行があれば(F507−4)、特定の処理(対向DCカウンタ内処理)を行う(F702)。
【0037】
図8(c)は、対向DC用カウンタ処理のフローチャートである。
上述の特定の処理とは、HB送受信代行中であれば(F702−1)、該当の減算カウンタに初期値(T506−2)をロードし(F702−2)、対向DC用テーブルの同じ行のHB有無ビット(T506−4)の値が1(HB有)であれば(F702−3)、DC側HB送信部(50−3)を介して、自DC内各サーバに対して、HBパケットを自DC用テーブル(T508)の該当アドレスに送信する(F702−4)。ただし、送信するHBパケットの宛先アドレスは自DC用テーブル内自DC側サーバアドレス(T508−1)、送信元アドレスは対向DC用テーブル内対向DC側サーバアドレス(T506−1)を参照する。
以上の手順により、遠隔のサーバ間を行き来するHBパケットをHB代行サーバでDCサイトごとに一括してから遠隔DCサイトの対向HB代行サーバへ送付し、HBパケットを待つ各冗長先サーバに対してHBパケットを送信する。

【0038】
3.シーケンス

(1)前提

図9に、上述の実施の形態のシーケンス図を示す。該図はDCサイトA(100)の仮想マシンVMa1(11−1)、VMa2(11−2)、VMa3(11−3)がそれぞれDCサイトB(200)の仮想マシンVMb1(21−1)、VMb2(21−2)、VMb3(21−3)と冗長構成の組をなしており、DCサイトA(100)側からDCサイトB(200)側へHBパケットを送信する状況を示している。図9では、DCサイトB(200)内仮想マシンからDCサイトA(100)内仮想マシンへHBパケットを送信するフローについての図示は省略しており、実際には対称的な振る舞いをしているものとする。つまり、VMa1からVMb1宛にHBパケットが送信されると、VMb1からVMa1宛にHBパケットが送信されることになる。
【0039】
図10、図11は、上述の実施の形態のHB代行サーバ内各テーブルの遷移を示している。
保守者は、各DC内仮想マシンのアドレスやHB送信周期の情報について既知であり、保守端末(60)を通してHB代行サーバに各仮想マシンについての情報やHB代行サーバの設定情報を入力する。入力された情報をもとに制御部(50−5)が各ブロックの初期設定を行う。ここでは自DC用テーブル内減算カウンタの初期値については、自DC内仮想マシンのHB送信周期+1000カウントになるように設定し (T108−1)、対向DC用テーブル内減算カウンタの初期値については、対向DC内仮想マシンのHB送信周期になるように設定する (T108−1)。

【0040】
(2)HB送受信代行前

まずHB送受信代行開始前については、HB代行サーバA(10)およびHB代行サーバB(20)内の自DC用テーブル管理部(50−9)および対向DC用テーブル管理部(50−7)がテーブルの1行目から順に減算カウンタの値を1ずつ減らしていく(T108−2)。VMa3(11−1)からHBパケットが送信されると、HB代行サーバA内DC側HB受信部(50−1)で受信し、NW側HB送信部(50−2)で受信HBパケットをそのままNW側へ転送する(S11−a3)。この際、HB代行サーバAの自DC用テーブル管理部(50−9)は、VMa3のHB有無ビットを1にセットし、減算カウンタに初期値をロードする(T108−3)。NWを経由してHBパケットがHB代行サーバBへ届くと、HB代行サーバBの対向DC用テーブルHB内VMa3のHB有無ビットを1にセットし、減算カウンタに初期値をロードする(T206−2)。続いてVMa2、VMa3、VMa1の順で送信されるHBパケットをHB代行サーバで受信し(S11−a2、S12−a3、S11−a1)、VMa2、VMa3、VMa1の順でHB有無ビットを1にセットし、減算カウンタについても同様に初期値を順にロードする(T108−4)。NWを経由してHBパケットがHB代行サーバBへ届くと、対向DC用テーブル内HB有無ビットの更新、減算カウンタの初期値ロードが実施される。VMa2の2度目のHBパケット送信が行われると、上述の流れが繰り返され、HB代行サーバAの自DC用テーブルおよびHB代行サーバBの対向DC用テーブルの2行目の減算カウンタへ初期値ロード、HB有無ビットへ1のセットが行われる。

【0041】
(3)HB送受信代行後

i)正常時

保守者が保守端末(60)を通して、HB送受信代行開始の設定を行うと、保守者が設定した一定の時間間隔でHB代行サーバA(10)内NW側HB送信部が自DC用テーブル内HB有無情報(T508−4)をもとに、HB多重化パケット(T40)を生成し、HB代行サーバB(20)へ送信する(S11−c)。ただし、このHB多重化パケットはHB送受信代行開始直前に更新されたHB有無情報に基づいている。
HB代行サーバB(20)のNW側HB受信部は、受信したHB多重化パケットから対向DC用テーブル内HB有無情報(T506−4)を更新する(T206−3)。HB代行サーバBの対向DC用テーブルの減算カウンタ値の項目3が0になると(T206−4)、該当のHB有無ビットを見て、ビット値が1(HB有)であるため、対向DC用テーブル管理部がDC側HB送信部経由でVMb3へHBパケットを送信する(S14−a3)。つづいてHB代行サーバBの対向DC用テーブルの減算カウンタ値が0になる契機で、DCサイトB内各仮想マシンへHBパケットを送信する(S14−a2、S13−a1)。
【0042】
ただし、送信するHBパケットの送信元アドレスにHB代行サーバB内対向DC用テーブルの対向DC側サーバアドレス、宛先アドレスには、HB代行サーバB内自DC用テーブルの自DC側サーバアドレスの値を入力する。
続いてDCサイトA内の各仮想マシンからHBパケットが送信されると(s13−a3、s12−a1、s15−a3)、HB代行サーバAの減算カウンタへ初期値ロード、HB有無ビットへ1のセットが行われる。更新されたDCサイトA内各仮想マシンのHB有無情報は、HB多重化パケットで一括して、HB代行サーバBへ送信される(s12−c)。HB代行サーバBは受信したHB多重化パケットから対向DC用テーブルの各HB有無ビットに1(HB有)をセットする。
【0043】
続いてDCサイトA(100)内各仮想マシンはHBパケットを送信し(S12−a1、S13−a2、S13−a3)、HB代行サーバAは送信されたHBパケットをもとに、自DC用テーブルを更新し、更新されたHB有無情報をHB多重化パケットで送信する(S12−c)。HB代行サーバBは、受信したHB多重化パケットから対向DC用テーブル内HB有無情報(T506−4)を更新し、VMb2(21−2)、VMb3(21−3)にHBパケットを送信する(S16−a2、S16−a3)。

【0044】
ii)故障発生時

VMa2(11−2)が故障するとHBパケットがHB代行サーバAに送信されなくなり(S15−a2、S17−a2)、VMa1(11−1)、VMa3(11−3)のHBパケットのみ送信される(S14−a1、S15−a3、S17−a3)。HBパケットがVMa2(11−2)から送信されなくなると(S15−a2)、HB代行サーバ内自DC用テーブルの減算カウンタ値が初期値にロードされず、減算され続ける(T108−5)。減算され続け減算カウンタ値が0になると、HB有無ビットは0(HB無)にセットされる(T108−6)。VMa2のHB有無ビットが0になった情報はHB多重化パケットを通して、HB代行サーバBへ送信される(S13−c)。
【0045】
HB代行サーバBでHB多重化パケットを受信すると、対向DC用テーブルの2行目のHB有無ビットを0にセットする(T206−5)。HB代行サーバB内対向DC用テーブルの2行目の減算カウンタが0になると、同じ行のHB有無ビットが0であるため、HBパケットをVMb2へ送信しない(T206−6)。つまり、HB代行サーバBはVMb1(21−1)、VMb3(21−3)にHBパケットを送信するが(S15−a1、S18−a3)、VMb2(21−2)にHBパケットを送らないことになる(S18−a2)。
一定時間、VMb2(20−2)にHBパケットが受信されない状態が続くと、VMb2(20−2)はVMa2(10−2)が故障したと判断する。
DCサイトB内仮想マシンからDCサイトA内仮想マシンへのHBパケットの送信の流れも同様の手順で行われる。

【0046】
(4)テーブル

図12(a)は、上述のシーケンスにおけるHB代行サーバA内自DC用テーブルのVMa2についての減算カウンタ値およびHB有無ビットの変化の様子を示す。HB代行サーバがHB有無情報を学習し始めると、減算カウンタのカウントが始まる。HB有無ビットの初期値は0であるが、VMa2からHBパケットを受信するとHB有無ビットが1に設定され、減算カウンタに初期値がロードされる。VMa2から送信されるHBパケットを受信される度にHB有無ビットが1にセットされ、減算カウンタ値も初期値に戻る。HB代行が開始されるとHB有無ビット値が多重化パケットで一括してHB代行サーバBへ送信されるが、減算カウンタの機能は変わらず、HBパケットの有無を判断するタイマーとして機能する。VMa2からHBパケットが送信されないと、カウンタに初期値がロードされないため、減算し続け、やがてカウンタ値が0になるとHB有無ビットが0にセットされる。VMa2からHBパケットが送信される間はHB有無ビット値を1に保持したいため、カウンタの周期をHBパケットの送信周期より長めに設定する必要がある。本実施の形態では送信周期に1000カウント加えた時間をカウンタ周期としている。
【0047】
図12(b)は、上述のシーケンスにおけるHB代行サーバB内対向DC用テーブルのVMa2についての減算カウンタ値およびHB有無ビットの変化の様子を示す。HB代行サーバがHB有無情報を学習し始めると、減算カウンタのカウントが始まる。HB有無ビットの初期値は0であるが、VMa2からHBパケットを受信するとHB有無ビットが1に設定され、減算カウンタに初期値がロードされる。VMa2から送信されるHBパケットを受信される度にHB有無ビットが1にセットされ、減算カウンタ値も初期値に戻るため、減算カウンタはHBパケットの有無を判断するタイマーとして機能する。HB代行が開始されるとHB有無ビット値が多重化パケットで一括してHB代行サーバAから送信され、HB有無ビット値の値が更新される。減算カウンタ値が0になると、初期値に戻り、HB有無ビットを確認し、ビット値が1であればHBパケットをVMb2へ送信するため、HB代行中の減算カウンタはHBパケットの送信周期を計るタイマーとして機能する。一方、ビット値が0であればHBパケットをVMb2へ送信しない。

【0048】
B.実施の形態2

1.システム

本実施の形態では、冗長構成をなすm組のサーバの一方が他方に対してHB要求パケットを送信し、サーバが正常であれば要求元にHB応答パケットを返すようなシステムに対する適用方法について説明する。
図13は、HB代行サーバの実施の形態2を示す。HB代行サーバ(51)は、DC側HB送信部(51−1)、DC側HB受信部(51−3)、NW側HB送信部(51−2)、NW側HB受信部(51−4)、自DC用テーブル管理部(51−9)、自DC用テーブル(51−8)、対向DC用テーブル管理部(51−7)、対向DC用テーブル(51−6)、制御部(51−5)を備える。
【0049】
DC側HB受信部(51−1)は、DCサイト内からサイト間NW側へ送信されてくるHBパケットを受信するブロックである。図14のフローチャートに示す通り(詳細は後述)、DC側HB受信部(51−1)は、HB送受信代行前は、受信したHBパケットをNW側HB送信部(51−2)へ転送し、受信したHBパケットがHB応答パケットであると、自DC用テーブル管理部(51−9)へ自DC用テーブル更新処理の要求を行う。また、DC側HB受信部(51−1)は、HB送受信代行中に、要求パケットを受信すると自DCサイト内該当サーバにHB応答をするように、対向DC側テーブル管理部へ処理を要求する。DC側HB受信部(51−1)は、応答パケットを受信した場合は、HB送受信代行前と同様に自DC用テーブル管理部(51−9)へ自DC用テーブル更新処理の要求を行う。
【0050】
自DC用テーブル(51−8、T508)は、自DCサイト内各サーバのHB情報が記録されているテーブルで、図3(a)に示す通り、自DCサイト内各サーバのアドレス(T508−1)、減算カウンタの初期値(T508−2)、HB送信無と判断するまでの時間を計る減算カウンタ値(T508−3)、HB代行サーバのHB受信有無情報(T508−4)を対応して記憶する。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、VMのアドレスを用いてもよい。減算カウンタ値(T508−3)には、HB応答パケットを受信すると初期値(T508−2)がロードされ、次のHB応答パケットを受信するかもしくはカウント値が0になるまで、カウントダウンを続ける。HB代行サーバでHBパケットを受信しなくなると、カウント値が0になるので、これを契機にHBパケット無と判断する。
【0051】
自DC用テーブル管理部(51−9)は、自DC用テーブルの更新処理を行うブロックである。図6に示す通り、自DC用テーブル管理部(51−9)は、DC側HB受信部(51−1)からの自DC用テーブル更新処理の要求を受けて、受信HB応答パケットの送信元アドレスからテーブルを検索し、該当するHB受信有無情報を書き換える。また、自DC用テーブル管理部(51−9)は、自DC用テーブル(51−8)内各減算カウンタの値更新も行う。
【0052】
NW側HB送信部(51−2)は、HB代行サーバからNW側へHBパケットを送信するブロックである。NW側HB送信部(51−2)は、図5のフローチャートに示す通り、HBパケット送受信の代行前については、DC側HB受信部(51−1)から転送されるHBパケットをNW側へ送信する。また、NW側HB送信部(51−2)は、HBパケット送受信の代行中は、自DC用テーブル(51−8)の各HB情報を参照し、HB多重化パケット(40)を生成し、対向のHB代行サーバへ送信する。
【0053】
NW側HB受信部(51−4)は、NW側から送信されてくるパケットを受信するブロックである。図15のフローチャートに示す通り(詳細は後述)、NW側HB受信部(51−4)は、受信したHBパケットについて通常のHBパケットとHB多重化パケットを識別し、通常のHBパケットであればDC側HB送信部(51−3)へ受信HBパケットを転送し、受信したHBパケットが特にHB要求パケットであれば、対向DC用テーブル管理部(51−7)へ対向DC用テーブル(51−6)更新処理の要求を行う。受信HBパケットがHB多重化パケットである場合は、NW側HB受信部(51−4)は、直接、受信したデータをもとに対向DC用テーブル(51−6)のHB受信有無情報を更新する。
【0054】
対向DC用テーブル(51−7、T507)は、冗長の対向DCサイト内各サーバのHB情報が記録されているテーブルで、図3(b)に示す通り、対向DCサイト内各サーバのアドレス(T506−1)、減算カウンタの初期値(T506−2)、特定の時間を計る減算カウンタ値(T506−3)、HB送信有無情報(T506−4)を対応して記憶する。なお、各テーブルのサーバアドレスとしては、サーバのアドレスを用いてもよいし、VMのアドレスを含むサーバのアドレス(VMのアドレス)等を用いてもよい。ただし、減算カウンタ値(T506−3)には、HB送受信代行前は、HB要求パケットを受信すると初期値(T50−2)がロードされ、次のHB要求パケットを受信するかもしくはカウント値が0になるまで、カウントダウンを続ける。HB代行サーバでHB要求パケットを受信しなくなると、カウント値が0になるので、これを契機にHBパケット無と判断し、HB要求パケットを受信してからHB送信無と判断するまでのタイマーとして機能する。HBパケット送受信代行後、減算カウンタ値(T506−3)による減算カウンタは、HB要求パケットを自DCサイト内各サーバへ送信する時間を知らせるタイマーとして機能し、HB要求パケットを送信する度に減算カウンタに初期値がロードされる。
【0055】
対向DC用テーブル管理部(51−7)は、対向DC用テーブルの更新処理を行うブロックである。図8(b)、図16(a)、(b)、(c)のフローチャートに示す通り(詳細は後述)、対向DC用テーブル管理部(51−7)は、HBパケット送受信の代行前については、NW側HB受信部(50−4)からの対向DC用テーブル更新処理の要求を受けて、受信HB応答パケットの送信元アドレスからテーブルを検索し、該当するHB受信有無情報を書き換える。HBパケット送受信の代行中については、対向DC用テーブル管理部(51−7)は、減算カウンタの周期で、DC側HB送信部へHB要求パケットを送信する。また、対向DC用テーブル管理部(51−7)は、HBパケット送受信の代行中か否かに関わらず、対向DC用テーブル(51−8)内各減算カウンタの値更新も行う。
【0056】
DC側HB送信部(51−3)は、を自DC内各サーバへHBパケットを送信するブロックで、図7(b)に示す通り、DC側HB送信部(51−3)は、NW側HB受信部(51−4)および対向DC用テーブル管理部(51−7)から送信されるHBパケットを自DC内各サーバへ送信する。
保守端末(60)は、自DC用テーブル(51−8)、対向DC用テーブル(51−6)の初期設定、HB多重化パケットの送信間隔や冗長構成をなす組の設定のために使用される。また、HB送受信代行開始もこの保守端末(60)の設定で行われる。
制御部(51−5)は、保守者が保守端末(60)を通して入力した各設定値を実際にHB代行サーバ各部に設定するブロックとなる。

【0057】
2.動作フロー

(1)前提

図5、図6、図7(b)、図8(b)、図14、図15、図16(a)、(b)、(c)を用いて、各機能ブロックの説明を行う。図5、図6、図14、図15、図16(a)に示される処理は、1回の処理のみ示しており、実際にはフローチャートの処理が繰り返し実行される。
保守者は、HB代行サーバ運用前に、データセンター間で冗長構成をなしているサーバの情報を、自DC用テーブル(T508)及び対向DC用テーブル(T506)に設定する。具体的には、例えば、冗長構成をなす自データセンターおよび対向データセンター内各サーバのアドレスを登録し、減算カウンタの初期値を設定し、減算カウンタ値を0に、HB有無ビットを0(HB無)に設定し、HB多重化パケットの送信周期や冗長構成をなす組の設定を行う。ただし、本実施の形態では、簡単のため自DC用テーブル(T508)のn行目に該当するサーバと対向DC用テーブル(T506)のn行目に該当するサーバが冗長構成を組んでいるものとする。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、VMのアドレスを用いてもよい。
【0058】
保守者による初期設定が終わると、HB代行サーバは、自DC用テーブルおよび対向DCテーブルのHB有無情報を学習するため、保守者によるHB送受信代行の指示があるまで、各サーバから送信されるHBパケットを監視し、ネットワーク側へ転送する。
自DCサイト内サーバが対向DCサイトの冗長系サーバへHBパケットを送ると、まずHB代行サーバのDC側HB受信部でHBパケットが受信される。
このHBパケット(T41)は、図3(c)に示すように、送信元アドレス(T41−1)、宛先アドレス(T41−2)、HBパケットがHB要求パケットなのかHB応答パケットなのかを示す情報(T41−3)、その他プルトコル依存するヘッダ情報(T41−4)を含んでいる。

【0059】
(2)HB送受信代行前

i)NWへの要求パケットの送信

各サーバがHB要求パケットをサイト間NWに向けて送信すると、DC側HB受信部でHB要求パケットが受信される。
【0060】
図14は、DC側HB受信部の処理フローチャートである。
HB送受信代行前、HB代行サーバは、HBパケットの監視とテーブルの更新を行うため、DC側HB受信部は、受信HB要求パケットをそのままNW側HB送信部へ転送する(F511−1、F511−2、F511−3)。図5のように、NW側HB送信部は、HB要求パケットを、対向のHB代行サーバへサイト間NW網を介して送信する(F502−3)。

【0061】
ii)NWからのHB要求パケットの受信

図15は、NW側HB受信部処理のフローチャートである。
サイト間NW網を経て代行サーバへ到着したHB要求パケットは、NW側HB受信部で受信される。NW側HB受信部は、受信HBパケットの種類を識別し(F514−2)、通常のHB要求パケットであると判断したら(F514−5)、対向DC用テーブル内HB要求パケット送信元のHB有無ビットの更新処理を対向DC側テーブル管理部へ要求し(F514−6)、受信HB要求パケットをDC側HB送信部へ転送する(F514−4)。
図7(b)のように、DC側HB送信部は受信HBパケットを冗長先サーバへ送信する(F503−1)。

【0062】
iii)HB応答パケット送信

この冗長先サーバが正常時にはHB応答パケットを返し、図14のように、応答パケットが代行サーバのDC側HB受信部で受信される(F511−1)。
DC側HB受信部は、HB応答パケットを受信すると(F511−2、F511−3、F511−5)、自DC用テーブル内HB応答パケット送信元のHB有無ビットの更新処理を自DC用管理部へ要求し(F511−7)、受信HB応答パケットをNW側HB送信部へ転送する(F511−3)。
【0063】
図5のように、NW側HB送信部は、サイト間NWを介して対向のHB代行サーバへHB応答パケットを送る(F502−3)。
図6のように、DC側HB受信部からの自DC用テーブル更新要求を受け、自DC用テーブル管理部は、DC側HB受信部からの要求を受け(F509−6)、受信HB応答パケットの送信元アドレスをもとに、自DC用テーブル内を検索し、自DC用テーブル該当行のHB有無ビットを1(HB有)に設定し、減算カウンタ値に初期値をロードする(F509−7)。また、自DC用テーブル管理部は、自DC用テーブルのある行の減算カウンタ値が0でなければ(F509−2)、同じ行の減算カウンタ値を1減らし(F509−3)、減らした結果が0であれば(F509−4)、同じ行のHB有無ビットを0(HB無)に設定する(F509−5)。自DC用テーブル管理部は、上述のカウンタ減算処理をテーブルの最終行まで繰り返す(F509−8、F509−9)。

【0064】
iv)HB応答パケット受信

サイト間NW網を経て代行サーバへ到着したHB応答パケットはNW側HB受信部で受信される。図15のように、NW側HB受信部は、受信HBパケットの種類を識別し、通常のHB応答パケットであると判断したら(F514−2)、受信HBパケットをDC側HB送信部へ転送する(F514−4)。
図7(b)のように、DC側HB送信部は、HB送受信代行中かどうかに関わらず、受信したパケットのアドレスを見て、そのままDC内該当サーバへ送信する(F503−1)。
図8(b)のように、NW側HB受信部からの対向DC用テーブル更新処理(F701)の要求があれば(F701−1)、対向DC用テーブル管理部(50−7)は、受信HB応答パケットの送信元アドレスをもとに、対向DC用テーブル該当行のHBパケット送信元のHB有無ビットを1(HB有)に設定し、同じ行の減算カウンタに初期値をロードする(F701−2)。
【0065】
図16(a)は、対向DC用テーブル管理部処理のフローチャートである。また、図16(c)は、対向DC用テーブル管理部内処理のフローチャートである。
また、対向DC用テーブル管理部は、対向DC用テーブルの1行目(F517−1)から順にカウンタ値を1ずつ減らす(F517−4)。対向DC用テーブルのある行の減算カウンタ値が0でなければ(F517−2)、減算カウンタ値を1減らし、減らした結果が0であれば(F517−3)、同じ行のHB有無ビットを0(HB無)に設定する(F704、図16(c)のF704−5)。上述のカウンタ減算処理をテーブルの最終行まで繰り返す(F517−5、F517−6)。

【0066】
(3)HB送受信代行後

i)自サーバからのHB要求パケットに対するHB応答パケット返送

保守者の設定でHB送受信代行開始され、自DC内サーバからHB要求パケットが送信されると、図14のように、DC側HB受信部(51−1)でHB要求パケットを受信し(F511−4)、HB要求パケット送信元のサーバへ応答パケットを返すように対向DC用テーブル管理部へ要求する(F511−6)。
【0067】
図16(b)は、対向DC用テーブル管理部内処理のフローチャートである。
対向DC用テーブル管理部は、DC側HB受信部の要求を受けて(F703、F703−1)、該当HB有無ビットのビット値が1であれば(F703−2)、HB応答パケットをDC側HB送信部経由でサーバへ返し(F703−3)、0であれば(F703−2)何も返さない。
また、図16(a)のように、対向DC用テーブル管理部(51−7)は、HB送受信代行前と同様に、対向DC用テーブル内各減算カウンタを回して、減算カウンタ値が0になった行があれば(F517−3)、特定の処理を行う(F704)。図16(c)のように、HB送受信代行中(F704−1)におけるこの特定の処理では、該当の減算カウンタに初期値(T506−2)をロードし(F704−2)、同行のHB有無ビットが1であれば(F704−3)、DC側HB送信部(50−3)を介して、自DC内各サーバに対して、HB要求パケットを自DC用テーブル(T508)の該当アドレスに送信する(F704−4)。ただし、HB要求パケットの宛先アドレスは自DC用テーブル(T508)を参照し、送信元アドレスは対向DC用テーブルを参照する。

【0068】
ii)対向サーバからのHB要求パケットに対する多重化HBパケット返送

図14のように、HB要求パケットを受信した自DC内サーバが正常であれば、応答パケットをHB要求パケットの送信元アドレスに送り返す。HB応答パケットはHB代行サーバのDC側HB受信部で受信され、DC側HB受信部が自DC用テーブル管理部へテーブル更新要求をする(F511−1、F511−2、F511−4、F511−7)。
図6のように、DC側HB受信部からのテーブル更新要求を受け、自DC用テーブル管理部は、受信HB応答パケットの送信元アドレスに該当する自DC用テーブル(T508−4)のHB有無ビット(T508−4)を1(HB有)に設定し、減算カウンタ(T508−3)に初期値(T508−2)をロードする(F509−3)。
図5のように、NW側HB送信部(51−2)は、自DC用テーブルの各HB有無ビット(T508−4)の値を読み、HB有無ビットマップを作成し、対向の代行サーバへ多重化HBパケット(T40)として送信する(F502−2)。

【0069】
iii)多重化HBパケット受信

図15のように、NW側HB受信部(51−1)は、HB多重化パケット(T40)を受信するとHB有無ビットマップから他DC用テーブルの各HB有無ビット(T506)の値を更新する。(F514−3)

なお、「i)自サーバからのHB要求パケットに対するHB応答パケット返送」で説明したように、対向DC用テーブル管理部は、DC側HB受信部の要求を受けて(F703、F703−1)、更新された他DC用テーブルを参照し、該当HB有無ビットのビット値が1であれば(F703−2)、HB応答パケットをDC側HB送信部経由でサーバへ返し(F703−3)、0であれば(F703−2)何も返さない。

以上の手順により、遠隔のサーバ間へHB要求パケットを送信し、遠隔の冗長先サーバからHB応答パケットが戻ってくるという一連の動作をHB代行サーバで代行可能である。

【0070】
3.シーケンス

(1)前提

図17に、上述の実施の形態のシーケンス図を示す。該図はDCサイトA(100)の仮想マシンVMa1(11−1)、VMa2(11−2)、VMa3(11−3)がそれぞれDCサイトB(200)の仮想マシンVMb1(21−1)、VMb2(21−2)、VMb3(21−3)と冗長構成の組をなしており、DCサイトA(100)内仮想マシンからDCサイトB(200)内仮想マシンへHB要求パケットを送信し、HB要求パケットを受信した仮想マシンが正常であれば、DCサイトB(200)内仮想マシンがDCサイトA(100)内冗長先仮想マシンへ応答パケットを返す状況を示している。図17では、DCサイトB(200)内仮想マシンからDCサイトA(100)内仮想マシンへHB要求パケットを送信し、送信先の仮想マシンが正常であれば、応答パケットを返すフローについての図示は省略しており、実際には対称的な振る舞いをしているものとする。つまり、VMa1からVMb1宛にHB要求パケットが送信されると、VMb1からVMa1宛にHB要求パケットが送信されることになる。
【0071】
図18、図19は上述の実施の形態のHB代行サーバ内各テーブルの変化を示している。
保守者は、各DC内仮想マシンのアドレスやHB送信周期の情報について既知であり、保守端末(60)を通してHB代行サーバに各仮想マシンについての情報やHB代行サーバの設定情報を入力する。入力された情報をもとに制御部(51−5)が各ブロックの初期設定を行う。ここでは自DC用テーブル内減算カウンタの初期値については、対向DC内仮想マシンのHB送信周期+1000カウントになるように設定し(T218−1)、対向DC用テーブル内減算カウンタの初期値については、対向DC内仮想マシンのHB送信周期になるように設定する (T216−1)。

【0072】
(2)HB送受信代行前

まずHB送受信代行開始前については、HB代行サーバA(10)およびHB代行サーバB(20)内の自DC用テーブル管理部(51−9)および対向DC用テーブル管理部(51−7)がテーブルの1行目から順に減算カウンタの値を1ずつ減らしていく。
VMa3(11−1)からHB要求パケットが送信されると、HB代行サーバA内DC側HB受信部(51−1)で受信し、NW側HB送信部(51−2)で受信HBパケットをそのままNW側へ転送する(S21−a3)。
【0073】
NWを経由してHB要求パケットがHB代行サーバBへ届くと、HB代行サーバBの対向DC用テーブルHB内VMa3のHB有無ビットを1にセットし、減算カウンタに初期値をロードする(T216−2)。続いてHB代行サーバBは受信HB要求パケットをそのままVMb3へ送信する。VMb3は正常なので、HB要求パケットを受信するとVMa3へHB応答パケットを送信する(S21−b3)。一旦、VMa3から送信されるHB応答パケットはHB代行サーバB内DC側HB受信部で受信され、自DC用テーブル管理部がVMb3のHB有無ビットを1にセットし、該当の減算カウンタに初期値をロードする(T218−2)。
【0074】
同様にVMa2(11−2)がHB要求パケットを送信し、HB代行サーバA内DC側HB受信部(51−1)で受信し、NW側HB送信部(51−2)で受信HBパケットをそのままNW側へ転送する(S21−a2)。NWを経由してHB要求パケットがHB代行サーバBへ届くと、HB代行サーバBの対向DC用テーブルHB内VMa2のHB有無ビットを1にセットし、減算カウンタに初期値をロードする。続いてHB代行サーバBは受信HB要求パケットをそのままVMb2へ送信する。VMb2は正常なので、HB要求パケットを受信するとVMa2へHB応答パケットを送信する(S21−b2)。一旦、VMb2が送信したHB応答パケットについても同様にHB代行サーバB内DC側HB受信部で受信され、自DC用テーブル管理部がVMb2のHB有無ビットを1にセットし、該当の減算カウンタに初期値をロードする(T218−3)。
【0075】
VMa1(11−2)についても同様にHB要求パケットを送信し、HB代行サーバA内DC側HB受信部(51−1)で受信し、NW側HB送信部(51−2)で受信HBパケットをそのままNW側へ転送する(S21−a1)。NWを経由してHB要求パケットがHB代行サーバBへ届くと、HB代行サーバBの対向DC用テーブルHB内VMa1のHB有無ビットを1にセットし、減算カウンタに初期値をロードする(T216−3)。続いてHB代行サーバBは受信HB要求パケットをそのままVMb1へ送信する。VMb1は正常なので、HB要求パケットを受信するとVMa1へHB応答パケットを送信する(S21−b1)。
一旦、VMa1が送信したHB応答パケットはHB代行サーバB内DC側HB受信部で受信され、自DC用テーブル管理部がVMb1のHB有無ビットを1にセットし、該当の減算カウンタに初期値をロードする(T218−4)。

【0076】
(3)HB送受信代行後

i)正常時

保守者が保守端末(60)を通して、HB送受信代行開始の設定を行うと、保守者が設定した一定の時間間隔でHB代行サーバB(20)内NW側HB送信部が自DC用テーブル内HB有無情報(T508−4)をもとに、HB多重化パケット(T40)を生成し、HB代行サーバA(10)へ送信する(S21−c)。ただし、このHB多重化パケットはHB送受信代行開始直前に更新されたHB有無情報に基づいているため、DCサイトA内各仮想マシンからHB要求パケットが送信されると(S22−a1、S22−a3、S22−a2)、HB代行前の情報をもとにHB代行サーバA内対向DC用テーブル管理部がHB応答パケットを生成し(F704−4)、DC側HB送信部から各仮想マシンへ送信する(F503−1、S22−b1、S22−b3、S22−b2)。
【0077】
一方、HB代行サーバB内対向DC用テーブルのVMa1と対応するVMb1用減算カウンタが0になると、カウンタに初期値をロードし、該当のHB有無ビットが1であれば、HB要求パケットをVMb1へ送信する(S23−a1、T216−4)。VMb1はHB要求パケットを受けて、VMa1へHB応答パケットを送信する(S23−b1)。
VMb3 、VMb2についても同様にHB代行サーバB内対向DC用テーブルの減算カウンタが0になると、該当のHB有無ビットが1であれば、カウンタに初期値をロードし、HB要求パケットをVMb3 、VMb2へ送信する(F704−4、F503−1、S23−a3、S23−a2)。

【0078】
ii)故障発生時

ここでVMb2に故障が発生した場合を想定する。この場合VMb1とVMb3は正常であるためHB応答パケットを返すが(S23−b3)、VMb2は故障しているためHB応答パケットを返さない(S23−b2)。VMb2からHB応答パケットが返ってこないため、HB代行サーバB内自DC用テーブルのVMb2用減算カウンタに初期値がロードされない(T218−5)。
VMb2用減算カウンタに初期値がロードされないため、一定時間後、減算カウンタ値は0になりHB有無ビットに0がセットされる(F509−4、T218−6)。
【0079】
一方、HB代行サーバA内NW側HB受信部でHB多重化パケットを受信すると、HB代行サーバA内対向DC用テーブルのHB有無情報(T506−4)が更新される(S21−c、T116−1)。
VMa1がVMb1にHB要求パケットを送信すると(S24−a1)、HB代行サーバA内DC側HB受信部で、HB要求パケットを受信し、対向DC用テーブル管理部が更新された対向DC用テーブルの情報を見て、HB有無ビットが1であれば、HB応答パケットをDC側HB送信部から送り返す(S24−b1)。
【0080】
続いてHB代行サーバBからHB代行サーバAへHB多重化パケットが送信されると(S22−c)、VMb2のHB有無情報は0(HB無)になっているから、HB代行サーバA内対向DC用テーブルのVMb2用HB有無ビットが0に設定される(T116−2)。
DCサイトA内各仮想マシンからHB要求パケットの送信があると(S26−a1、S24−a3、S24−a2)、HB代行サーバAは、HB代行サーバA内対向DC用テーブルのHB有無ビットを参照し、VMa1、VMa3にHB応答パケットを送信し(S26−b1、S24−b3)、VMa2にはHB応答パケットを送信しない(S24−b2)。
VMa2(11−2)はHB要求をしても、応答パケットが戻らない状況が一定時間続くと、VMb2(21−2)が故障したと判断する。

【0081】
(4)テーブル

図20(a)は、上述のシーケンスにおけるHB代行サーバB内自DC用テーブルのVMb2についての減算カウンタ値およびHB有無ビットの変化の様子を示す。HB代行サーバがHB有無情報を学習し始めると、減算カウンタのカウントが始まる。HB有無ビットの初期値は0であるが、VMb2からHB応答パケットを受信するとHB有無ビットが1に設定され、減算カウンタに初期値がロードされる。VMb2から送信されるHB応答パケットを受信される度にHB有無ビットが1にセットされ、減算カウンタ値も初期値に戻る。HB代行が開始されるとDCサイトAHB内の有無ビット値は多重化パケットで一括してHB代行サーバAへ送信されるが、減算カウンタの機能は変わらず、VMb2からのHB応答パケットの有無を判断するタイマーとして機能する。VMb2からHB応答パケットが送信されないと、カウンタに初期値がロードされないため、減算し続け、やがてカウンタ値が0になるとHB有無ビットが0にセットされる。VMb2からHB応答パケットが送信される間はHB有無ビット値を1に保持したいため、カウンタの周期をHB応答パケットの送信周期、つまりVMa2のHB要求パケット送信周期より長めに設定する必要がある。本実施の形態ではHB要求パケット送信周期に1000カウント加えた時間をカウンタ周期としている。
【0082】
図20(b)は、上述のシーケンスにおけるHB代行サーバA内対向DC用テーブルのVMb2についての減算カウンタ値およびHB有無ビットの変化の様子を示す。HB代行サーバがHB有無情報を学習し始めると、減算カウンタのカウントが始まる。HB有無ビットの初期値は0であるが、VMb2からHB応答パケットを受信するとHB有無ビットが1に設定され、減算カウンタに初期値がロードされる。VMb2から送信される応答HBパケットを受信する度にHB有無ビットが1にセットされ、減算カウンタ値も初期値に戻るため、減算カウンタはHB要求パケットの有無を判断するタイマーとして機能する。HB代行が開始されるとHB有無ビット値が多重化パケットで一括してHB代行サーバBから送信され、対向DC用テーブルのHB有無ビット値の値が更新される。減算カウンタ値が0になると、初期値に戻り、HB有無ビットを確認し、ビット値が1であればHB応答パケットをVMa2へ送信するため、HB代行中の減算カウンタはHB応答パケットの送信周期を計るタイマーとして機能する。一方、ビット値が0であれば、HB応答パケットをVMa2へ送信しない。
【産業上の利用可能性】
【0083】
以上では、主に「ハートビート」や「ハートビート信号」を用いて説明したが、「ハートビート」には、この直接の名称のもの以外にも、死活を監視するための信号やその他の適宜の参照信号を含むことができる。
【符号の説明】
【0084】
100:DCサイトA
200:DCサイトB
300:サイト間ネットワーク
10:HB代行サーバA
11:物理サーバA
11−0:Hypervisor A
11−1:仮想マシンVMa1
11−2:仮想マシンVMa2
11−i:仮想マシンVMai
12:物理サーバA
1j:物理サーバA
20:HB代行サーバB
21:物理サーバB
21−0:Hypervisor B
21−1:仮想マシンb
21−2:仮想マシンb
21−i:仮想マシンb
22:物理サーバB
2j:物理サーバB
40、T40:HB多重化パケット
41、42、43、44、T41:HBパケット
50、51:HB代行サーバ
50−1、51−1:DC側HB受信部
50−2、51−2:NW側HB送信部
50−3、51−3:DC側HB送信部
50−4、51−4:NW側HB受信部
50−5、51−5:制御部
50−6、51−6、T506:対向DC用テーブル
50−7、51−7:対向DC用テーブル管理部
50−8、51−8、T508:自DC用テーブル
50−9、51−9:自DC用テーブル管理部
60:保守端末
T508−1:自DC側サーバアドレス
T508−2:減算カウンタ初期値
T508−3:減算カウンタ値
T508−4:HB有無
T506−1:自DC側サーバアドレス
T506−2:減算カウンタ初期値
T506−3:減算カウンタ値
T506−4:HB有無
T41−1:送信元アドレス
T41−2:宛先アドレス
T41−3:パケットの種類
T41−4:その他のヘッダ情報
T40−1:送信元アドレス
T40−2:宛先アドレス
T40−3:パケットの種類
T40−4:HBパケットの有無情報(サーバ1)
T40−5:HBパケットの有無情報(サーバ2)
T40−6:HBパケットの有無情報(サーバm)
T40−7:その他のヘッダ情報

【特許請求の範囲】
【請求項1】
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのHBパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するHB代行サーバと
を備え、

HB送受信代行開始後において、
第1のサイトの第1のサーバからHBパケットが送信されると、前記第1のサイトの第1のHB代行サーバの第1の自サイト用テーブルに、前記第1のサーバのアドレスに対して、カウンタに初期値をロードし、HB有無情報へHB有をセットし、
一方、前記第1のサーバが故障すると、HBパケットが前記第1のHB代行サーバに送信されなくなり、前記第1の自サイト用テーブルの前記第1のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第1のHB代行サーバはカウンタをカウントし続けて、カウンタが満了するとHB有無情報をHB無にセットし、

前記第1のHB代行サーバは、予め定められた時間間隔で前記第1の自サイト用テーブルを参照し、更新された前記第1のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重化パケットを第2のサイトの第2のHB代行サーバへ送信し、
前記第2のHB代行サーバは、受信した前記HB多重化パケットに従い、前記第2のHB代行サーバの第2の対向サイト用テーブルの各HB有無情報を更新し、

前記第2のHB代行サーバは、カウンタをカウントし、前記第2の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、HB有無情報がHB有であれば該対向サイト側サーバアドレスの前記第2のサイトの第2のサーバへHBパケットを送信し、
一方、前記HB有無情報がHB無であれば前記第2のサーバへHBパケットを送信しないことに基づき、前記第2のサーバは対応する前記第1のサーバが故障したと判断する
ことを特徴とする通信システム。

【請求項2】
請求項1に記載の通信システムにおいて、
HB送受信代行開始前において、
前記第1のHB代行サーバは、
カウンタをカウントし、
前記第1のサーバからHBパケットが送信されると、該HBパケットをそのままNW側へ転送し、
前記第1のHB代行サーバは、前記第1の自サイト用テーブルの前記第1のサーバのサーバアドレスに対して、HB有無情報を1にセットし、カウンタに初期値をロードし、

前記第2のHB代行サーバは、
NWを経由して前記HBパケットを受信すると、前記第2の対向サイト用テーブルの前記第1のサーバのサーバアドレスに対して、HB有無情報を1にセットし、カウンタに初期値をロードする
ことを特徴とする通信システム。

【請求項3】
請求項1又は2に記載の通信システムにおいて、
各HB代行サーバは、
保守端末から入力された情報をもとに、
自サイト用テーブルの自サイト側サーバアドレスと、対向サイト用テーブルの対向サイト側サーバアドレスとが、対応するように設定し、
自サイト用テーブルのカウンタの初期値については、自サイトのサーバのHB送信周期より長くなるように設定し、
対向サイト用テーブルのカウンタの初期値については、対向サイトのサーバのHB送信周期になるように設定する
ことを特徴とする通信システム。

【請求項4】
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのHB要求パケット及びHB応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するHB代行サーバと
を備え、

HB送受信代行開始後において、
第2のサイトの第2のHB代行サーバは、予め定められた一定の時間間隔で、前記第2のHB代行サーバの第2の自サイト用テーブルを参照し、第2のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重パケットを第1のサイトの第1のHB代行サーバへHB多重化パケットを送信し、
前記第2のHB代行サーバは、カウンタをカウントし、前記第2のHB代行サーバの第2の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、HB有無情報がHB有であれば、HB要求パケットを、該対向サイト側サーバアドレスの前記第1のサーバに対応する第2のサーバへ送信し、前記第2のサーバは、正常な場合、該HB要求パケットを受けると、HB応答パケットを送信し、
前記第2のHB代行サーバは、前記第2の自サイト用テーブルについて、前記第2のサーバからHB応答パケットを受信する度に、前記第2のサーバのアドレスに対して、HB有無情報をHB有に設定し、カウンタに初期値をロードし、
一方、前記第2のサーバが故障している場合、HB応答パケットを返さないため、前記第2の自サイト用テーブルの前記第2のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとHB有無情報にHB無をセットし、

前記第1のHB代行サーバは、受信したHB多重化パケットに従い、前記第1のHB代行サーバの第1の対向サイト用テーブルの各HB有無情報を更新し、

前記第1のHB代行サーバは、前記第1のサーバからHB要求パケットを受信すると、更新された前記第1の対向サイト用テーブルを参照し、前記第1のサーバに対応する前記第2のサーバのアドレスに対するHB有無情報がHB有であれば、HB応答パケットを前記第1のサーバに返送し、
一方、前記第1のサーバに対応する前記第2のサーバのアドレスに対する前記HB有無情報がHB無であれば、前記第1のサーバにHB応答パケットを送信しないことに基づき、前記第1のサーバは、対応する前記第2のサーバが故障したと判断する
ことを特徴とする通信システム。

【請求項5】
請求項4に記載の通信システムにおいて、
HB送受信代行開始前において、
前記第1のHB代行サーバ及び前記第2のHB代行サーバは、自サイト用テーブル及び対向サイト用テーブルのカウンタをカウントし、
前記第1のHB代行サーバは、前記第1のサーバからHB要求パケットを受信すると、受信HBパケットをNW側へ転送し、
前記第2のHB代行サーバは、NWを経由してHB要求パケットを受信すると、前記第2のHB代行サーバの前記第2の対向サイト用テーブルの前記第1のサーバのサーバアドレスに対して、HB有無情報をHB有にセットし、カウンタに初期値をロードし、
前記第2のHB代行サーバは、前記HB要求パケットを前記第1のサーバに対応する前記第2のサーバへ送信し、
前記第2のサーバが正常な場合、前記第2のサーバは、前記HB要求パケットを受信するとHB応答パケットを返送し、
前記第2のHB代行サーバは、前記HB応答パケットを受信すると、前記第2の自サイト用テーブルの前記第2のサーバのサーバアドレスに対して、HB有無情報をHB有にセットし、カウンタに初期値をロードする
ことを特徴とする通信システム。

【請求項6】
請求項4又は5に記載の通信システムにおいて、
各HB代行サーバは、
保守端末から入力された情報をもとに、
自サイト用テーブル及び対向サイト用テーブルのサーバアドレスについては、対応するように設定し、
自サイト用テーブルのカウンタの初期値については、対向サイトのサーバのHB送信周期より長くなるように設定し、
対向サイト用テーブルのカウンタの初期値については、対向サイトのサーバのHB送信周期になるように設定する
ことを特徴とする通信システム。

【請求項7】
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのHBパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するHB代行サーバと
を備えた前記通信システムにおける通信方法であって、

HB送受信代行開始後において、
第1のサイトの第1のサーバからHBパケットが送信されると、前記第1のサイトの第1のHB代行サーバの第1の自サイト用テーブルに、前記第1のサーバのアドレスに対して、カウンタに初期値をロードし、HB有無情報へHB有をセットし、
一方、前記第1のサーバが故障すると、HBパケットが前記第1のHB代行サーバに送信されなくなり、前記第1の自サイト用テーブルの前記第1のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第1のHB代行サーバはカウンタをカウントし続けて、カウンタが満了するとHB有無情報をHB無にセットし、

前記第1のHB代行サーバは、予め定められた時間間隔で前記第1の自サイト用テーブルを参照し、更新された前記第1のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重化パケットを第2のサイトの第2のHB代行サーバへ送信し、
前記第2のHB代行サーバは、受信した前記HB多重化パケットに従い、前記第2のHB代行サーバの第2の対向サイト用テーブルの各HB有無情報を更新し、

前記第2のHB代行サーバは、カウンタをカウントし、前記第2の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、HB有無情報がHB有であれば該対向サイト側サーバアドレスの前記第2のサイトの第2のサーバへHBパケットを送信し、
一方、前記HB有無情報がHB無であれば前記第2のサーバへHBパケットを送信しないことに基づき、前記第2のサーバは対応する前記第1のサーバが故障したと判断する
ことを特徴とする通信方法。

【請求項8】
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのHB要求パケット及びHB応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するHB代行サーバと
を備えた前記通信システムにおける通信方法であって、

HB送受信代行開始後において、
第2のサイトの第2のHB代行サーバは、予め定められた一定の時間間隔で、前記第2のHB代行サーバの第2の自サイト用テーブルを参照し、第2のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重パケットを第1のサイトの第1のHB代行サーバへHB多重化パケットを送信し、
前記第2のHB代行サーバは、カウンタをカウントし、前記第2のHB代行サーバの第2の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、HB有無情報がHB有であれば、HB要求パケットを、該対向サイト側サーバアドレスの前記第1のサーバに対応する第2のサーバへ送信し、前記第2のサーバは、正常な場合、該HB要求パケットを受けると、HB応答パケットを送信し、
前記第2のHB代行サーバは、前記第2の自サイト用テーブルについて、前記第2のサーバからHB応答パケットを受信する度に、前記第2のサーバのアドレスに対して、HB有無情報をHB有に設定し、カウンタに初期値をロードし、
一方、前記第2のサーバが故障している場合、HB応答パケットを返さないため、前記第2の自サイト用テーブルの前記第2のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとHB有無情報にHB無をセットし、

前記第1のHB代行サーバは、受信したHB多重化パケットに従い、前記第1のHB代行サーバの第1の対向サイト用テーブルの各HB有無情報を更新し、

前記第1のHB代行サーバは、前記第1のサーバからHB要求パケットを受信すると、更新された前記第1の対向サイト用テーブルを参照し、前記第1のサーバに対応する前記第2のサーバのアドレスに対するHB有無情報がHB有であれば、HB応答パケットを前記第1のサーバに返送し、
一方、前記第1のサーバに対応する前記第2のサーバのアドレスに対する前記HB有無情報がHB無であれば、前記第1のサーバにHB応答パケットを送信しないことに基づき、前記第1のサーバは、対応する前記第2のサーバが故障したと判断する
ことを特徴とする通信方法。

【請求項9】
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるHB代行サーバであって、

各前記サイトの各前記HB代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのHBパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、

HB送受信代行開始後において、
第1のサイトの第1のサーバからHBパケットが送信されると、前記第1のサイトの第1のHB代行サーバの第1の自サイト用テーブルに、前記第1のサーバのアドレスに対して、カウンタに初期値をロードし、HB有無情報へHB有をセットし、
一方、前記第1のサーバが故障すると、HBパケットが前記第1のHB代行サーバに送信されなくなり、前記第1の自サイト用テーブルの前記第1のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第1のHB代行サーバはカウンタをカウントし続けて、カウンタが満了するとHB有無情報をHB無にセットし、

前記第1のHB代行サーバは、予め定められた時間間隔で前記第1の自サイト用テーブルを参照し、更新された前記第1のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重化パケットを第2のサイトの第2のHB代行サーバへ送信し、
前記第2のHB代行サーバは、受信した前記HB多重化パケットに従い、前記第2のHB代行サーバの第2の対向サイト用テーブルの各HB有無情報を更新し、

前記第2のHB代行サーバは、カウンタをカウントし、前記第2の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、HB有無情報がHB有であれば該対向サイト側サーバアドレスの前記第2のサイトの第2のサーバへHBパケットを送信し、
一方、前記HB有無情報がHB無であれば前記第2のサーバへHBパケットを送信しないことに基づき、前記第2のサーバは対応する前記第1のサーバが故障したと判断する
ことを特徴とするHB代行サーバ。

【請求項10】
複数のサイトのサーバ同士がネットワーク(NW)を介してハートビート(HB)送信周期でHBパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるHB代行サーバであって、

各前記サイトの各前記HB代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、HB有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのHB要求パケット及びHB応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、

HB送受信代行開始後において、
第2のサイトの第2のHB代行サーバは、予め定められた一定の時間間隔で、前記第2のHB代行サーバの第2の自サイト用テーブルを参照し、第2のサイトの各前記サーバのHB有無情報を一括して含むHB多重化パケットを生成し、該HB多重パケットを第1のサイトの第1のHB代行サーバへHB多重化パケットを送信し、
前記第2のHB代行サーバは、カウンタをカウントし、前記第2のHB代行サーバの第2の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、HB有無情報がHB有であれば、HB要求パケットを、該対向サイト側サーバアドレスの前記第1のサーバに対応する第2のサーバへ送信し、前記第2のサーバは、正常な場合、該HB要求パケットを受けると、HB応答パケットを送信し、
前記第2のHB代行サーバは、前記第2の自サイト用テーブルについて、前記第2のサーバからHB応答パケットを受信する度に、前記第2のサーバのアドレスに対して、HB有無情報をHB有に設定し、カウンタに初期値をロードし、
一方、前記第2のサーバが故障している場合、HB応答パケットを返さないため、前記第2の自サイト用テーブルの前記第2のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとHB有無情報にHB無をセットし、

前記第1のHB代行サーバは、受信したHB多重化パケットに従い、前記第1のHB代行サーバの第1の対向サイト用テーブルの各HB有無情報を更新し、

前記第1のHB代行サーバは、前記第1のサーバからHB要求パケットを受信すると、更新された前記第1の対向サイト用テーブルを参照し、前記第1のサーバに対応する前記第2のサーバのアドレスに対するHB有無情報がHB有であれば、HB応答パケットを前記第1のサーバに返送し、
一方、前記第1のサーバに対応する前記第2のサーバのアドレスに対する前記HB有無情報がHB無であれば、前記第1のサーバにHB応答パケットを送信しないことに基づき、前記第1のサーバは、対応する前記第2のサーバが故障したと判断する
ことを特徴とするHB代行サーバ。

【請求項11】
請求項9又は10に記載のHB代行サーバであって、
前記HB代行サーバは、
自サイトのサーバとHB情報を送受信するサイト側HB送信部とサイト側HB受信部と、
対向のHB代行サーバとHB情報を送受信するNW側HB送信部及びNW側HB受信部と、
自サイトのサーバのHB情報を記憶する前記自サイト用テーブルの情報を管理する自サイト用テーブル管理部と、
対向サイトのサーバのHB情報を記憶する前記対向サイト用テーブルを管理する対向サイト用テーブル管理部と
を備え、
自サイトのサーバのHB情報を一括して対向サイトのHB代行サーバへ送信する機能を備えたHB代行サーバ。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7(a)】
image rotate

【図7(b)】
image rotate

【図8(a)】
image rotate

【図8(b)】
image rotate

【図8(c)】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16(a)】
image rotate

【図16(b)】
image rotate

【図16(c)】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate