(57)【特許請求の範囲】
【請求項１】
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのＨＢパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するＨＢ代行サーバと
を備え、
ＨＢ送受信代行開始後において、
第１のサイトの第１のサーバからＨＢパケットが送信されると、前記第１のサイトの第１のＨＢ代行サーバの第１の自サイト用テーブルに、前記第１のサーバのアドレスに対して、カウンタに初期値をロードし、ＨＢ有無情報へＨＢ有をセットし、
一方、前記第１のサーバが故障すると、ＨＢパケットが前記第１のＨＢ代行サーバに送信されなくなり、前記第１の自サイト用テーブルの前記第１のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第１のＨＢ代行サーバはカウンタをカウントし続けて、カウンタが満了するとＨＢ有無情報をＨＢ無にセットし、
前記第１のＨＢ代行サーバは、予め定められた時間間隔で前記第１の自サイト用テーブルを参照し、更新された前記第１のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第２のサイトの第２のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、受信した前記ＨＢ多重化パケットに従い、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、ＨＢ有無情報がＨＢ有であれば該対向サイト側サーバアドレスの前記第２のサイトの第２のサーバへＨＢパケットを送信し、
一方、前記ＨＢ有無情報がＨＢ無であれば前記第２のサーバへＨＢパケットを送信しないことに基づき、前記第２のサーバは対応する前記第１のサーバが故障したと判断する
ことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムにおいて、
ＨＢ送受信代行開始前において、
前記第１のＨＢ代行サーバは、
カウンタをカウントし、
前記第１のサーバからＨＢパケットが送信されると、該ＨＢパケットをそのままＮＷ側へ転送し、
前記第１のＨＢ代行サーバは、前記第１の自サイト用テーブルの前記第１のサーバのサーバアドレスに対して、ＨＢ有無情報を１にセットし、カウンタに初期値をロードし、
前記第２のＨＢ代行サーバは、
ＮＷを経由して前記ＨＢパケットを受信すると、前記第２の対向サイト用テーブルの前記第１のサーバのサーバアドレスに対して、ＨＢ有無情報を１にセットし、カウンタに初期値をロードする
ことを特徴とする通信システム。
【請求項３】
請求項１又は２に記載の通信システムにおいて、
各ＨＢ代行サーバは、
保守端末から入力された情報をもとに、
自サイト用テーブルの自サイト側サーバアドレスと、対向サイト用テーブルの対向サイト側サーバアドレスとが、対応するように設定し、
自サイト用テーブルのカウンタの初期値については、自サイトのサーバのＨＢ送信周期より長くなるように設定し、
対向サイト用テーブルのカウンタの初期値については、対向サイトのサーバのＨＢ送信周期になるように設定する
ことを特徴とする通信システム。
【請求項４】
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのＨＢ要求パケット及びＨＢ応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するＨＢ代行サーバと
を備え、
ＨＢ送受信代行開始後において、
第２のサイトの第２のＨＢ代行サーバは、予め定められた一定の時間間隔で、前記第２のＨＢ代行サーバの第２の自サイト用テーブルを参照し、第２のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第１のサイトの第１のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、ＨＢ有無情報がＨＢ有であれば、ＨＢ要求パケットを、該対向サイト側サーバアドレスの前記第１のサイトの第１のサーバに対応する第２のサーバへ送信し、前記第２のサーバは、正常な場合、該ＨＢ要求パケットを受けると、ＨＢ応答パケットを送信し、
前記第２のＨＢ代行サーバは、前記第２の自サイト用テーブルについて、前記第２のサーバからＨＢ応答パケットを受信する度に、前記第２のサーバのアドレスに対して、ＨＢ有無情報をＨＢ有に設定し、カウンタに初期値をロードし、
一方、前記第２のサーバが故障している場合、ＨＢ応答パケットを返さないため、前記第２の自サイト用テーブルの前記第２のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとＨＢ有無情報にＨＢ無をセットし、
前記第１のＨＢ代行サーバは、受信したＨＢ多重化パケットに従い、前記第１のＨＢ代行サーバの第１の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第１のＨＢ代行サーバは、前記第１のサーバからＨＢ要求パケットを受信すると、更新された前記第１の対向サイト用テーブルを参照し、前記第１のサーバに対応する前記第２のサーバのアドレスに対するＨＢ有無情報がＨＢ有であれば、ＨＢ応答パケットを前記第１のサーバに返送し、
一方、前記第１のサーバに対応する前記第２のサーバのアドレスに対する前記ＨＢ有無情報がＨＢ無であれば、前記第１のサーバにＨＢ応答パケットを送信しないことに基づき、前記第１のサーバは、対応する前記第２のサーバが故障したと判断する
ことを特徴とする通信システム。
【請求項５】
請求項４に記載の通信システムにおいて、
ＨＢ送受信代行開始前において、
前記第１のＨＢ代行サーバ及び前記第２のＨＢ代行サーバは、自サイト用テーブル及び対向サイト用テーブルのカウンタをカウントし、
前記第１のＨＢ代行サーバは、前記第１のサーバからＨＢ要求パケットを受信すると、受信ＨＢパケットをＮＷ側へ転送し、
前記第２のＨＢ代行サーバは、ＮＷを経由してＨＢ要求パケットを受信すると、前記第２のＨＢ代行サーバの前記第２の対向サイト用テーブルの前記第１のサーバのサーバアドレスに対して、ＨＢ有無情報をＨＢ有にセットし、カウンタに初期値をロードし、
前記第２のＨＢ代行サーバは、前記ＨＢ要求パケットを前記第１のサーバに対応する前記第２のサーバへ送信し、
前記第２のサーバが正常な場合、前記第２のサーバは、前記ＨＢ要求パケットを受信するとＨＢ応答パケットを返送し、
前記第２のＨＢ代行サーバは、前記ＨＢ応答パケットを受信すると、前記第２の自サイト用テーブルの前記第２のサーバのサーバアドレスに対して、ＨＢ有無情報をＨＢ有にセットし、カウンタに初期値をロードする
ことを特徴とする通信システム。
【請求項６】
請求項４又は５に記載の通信システムにおいて、
各ＨＢ代行サーバは、
保守端末から入力された情報をもとに、
自サイト用テーブル及び対向サイト用テーブルのサーバアドレスについては、対応するように設定し、
自サイト用テーブルのカウンタの初期値については、対向サイトのサーバのＨＢ送信周期より長くなるように設定し、
対向サイト用テーブルのカウンタの初期値については、対向サイトのサーバのＨＢ送信周期になるように設定する
ことを特徴とする通信システム。
【請求項７】
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのＨＢパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するＨＢ代行サーバと
を備えた前記通信システムにおける通信方法であって、
ＨＢ送受信代行開始後において、
第１のサイトの第１のサーバからＨＢパケットが送信されると、前記第１のサイトの第１のＨＢ代行サーバの第１の自サイト用テーブルに、前記第１のサーバのアドレスに対して、カウンタに初期値をロードし、ＨＢ有無情報へＨＢ有をセットし、
一方、前記第１のサーバが故障すると、ＨＢパケットが前記第１のＨＢ代行サーバに送信されなくなり、前記第１の自サイト用テーブルの前記第１のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第１のＨＢ代行サーバはカウンタをカウントし続けて、カウンタが満了するとＨＢ有無情報をＨＢ無にセットし、
前記第１のＨＢ代行サーバは、予め定められた時間間隔で前記第１の自サイト用テーブルを参照し、更新された前記第１のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第２のサイトの第２のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、受信した前記ＨＢ多重化パケットに従い、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、ＨＢ有無情報がＨＢ有であれば該対向サイト側サーバアドレスの前記第２のサイトの第２のサーバへＨＢパケットを送信し、
一方、前記ＨＢ有無情報がＨＢ無であれば前記第２のサーバへＨＢパケットを送信しないことに基づき、前記第２のサーバは対応する前記第１のサーバが故障したと判断する
ことを特徴とする通信方法。
【請求項８】
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのＨＢ要求パケット及びＨＢ応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するＨＢ代行サーバと
を備えた前記通信システムにおける通信方法であって、
ＨＢ送受信代行開始後において、
第２のサイトの第２のＨＢ代行サーバは、予め定められた一定の時間間隔で、前記第２のＨＢ代行サーバの第２の自サイト用テーブルを参照し、第２のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第１のサイトの第１のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、ＨＢ有無情報がＨＢ有であれば、ＨＢ要求パケットを、該対向サイト側サーバアドレスの前記第１のサイトの第１のサーバに対応する第２のサーバへ送信し、前記第２のサーバは、正常な場合、該ＨＢ要求パケットを受けると、ＨＢ応答パケットを送信し、
前記第２のＨＢ代行サーバは、前記第２の自サイト用テーブルについて、前記第２のサーバからＨＢ応答パケットを受信する度に、前記第２のサーバのアドレスに対して、ＨＢ有無情報をＨＢ有に設定し、カウンタに初期値をロードし、
一方、前記第２のサーバが故障している場合、ＨＢ応答パケットを返さないため、前記第２の自サイト用テーブルの前記第２のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとＨＢ有無情報にＨＢ無をセットし、
前記第１のＨＢ代行サーバは、受信したＨＢ多重化パケットに従い、前記第１のＨＢ代行サーバの第１の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第１のＨＢ代行サーバは、前記第１のサーバからＨＢ要求パケットを受信すると、更新された前記第１の対向サイト用テーブルを参照し、前記第１のサーバに対応する前記第２のサーバのアドレスに対するＨＢ有無情報がＨＢ有であれば、ＨＢ応答パケットを前記第１のサーバに返送し、
一方、前記第１のサーバに対応する前記第２のサーバのアドレスに対する前記ＨＢ有無情報がＨＢ無であれば、前記第１のサーバにＨＢ応答パケットを送信しないことに基づき、前記第１のサーバは、対応する前記第２のサーバが故障したと判断する
ことを特徴とする通信方法。
【請求項９】
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるＨＢ代行サーバであって、
各前記サイトの各前記ＨＢ代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのＨＢパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、
ＨＢ送受信代行開始後において、
第１のサイトの第１のサーバからＨＢパケットが送信されると、前記第１のサイトの第１のＨＢ代行サーバの第１の自サイト用テーブルに、前記第１のサーバのアドレスに対して、カウンタに初期値をロードし、ＨＢ有無情報へＨＢ有をセットし、
一方、前記第１のサーバが故障すると、ＨＢパケットが前記第１のＨＢ代行サーバに送信されなくなり、前記第１の自サイト用テーブルの前記第１のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第１のＨＢ代行サーバはカウンタをカウントし続けて、カウンタが満了するとＨＢ有無情報をＨＢ無にセットし、
前記第１のＨＢ代行サーバは、予め定められた時間間隔で前記第１の自サイト用テーブルを参照し、更新された前記第１のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第２のサイトの第２のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、受信した前記ＨＢ多重化パケットに従い、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、ＨＢ有無情報がＨＢ有であれば該対向サイト側サーバアドレスの前記第２のサイトの第２のサーバへＨＢパケットを送信し、
一方、前記ＨＢ有無情報がＨＢ無であれば前記第２のサーバへＨＢパケットを送信しないことに基づき、前記第２のサーバは対応する前記第１のサーバが故障したと判断する
ことを特徴とするＨＢ代行サーバ。
【請求項１０】
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるＨＢ代行サーバであって、
各前記サイトの各前記ＨＢ代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのＨＢ要求パケット及びＨＢ応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、
ＨＢ送受信代行開始後において、
第２のサイトの第２のＨＢ代行サーバは、予め定められた一定の時間間隔で、前記第２のＨＢ代行サーバの第２の自サイト用テーブルを参照し、第２のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第１のサイトの第１のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、ＨＢ有無情報がＨＢ有であれば、ＨＢ要求パケットを、該対向サイト側サーバアドレスの前記第１のサイトの第１のサーバに対応する第２のサーバへ送信し、前記第２のサーバは、正常な場合、該ＨＢ要求パケットを受けると、ＨＢ応答パケットを送信し、
前記第２のＨＢ代行サーバは、前記第２の自サイト用テーブルについて、前記第２のサーバからＨＢ応答パケットを受信する度に、前記第２のサーバのアドレスに対して、ＨＢ有無情報をＨＢ有に設定し、カウンタに初期値をロードし、
一方、前記第２のサーバが故障している場合、ＨＢ応答パケットを返さないため、前記第２の自サイト用テーブルの前記第２のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとＨＢ有無情報にＨＢ無をセットし、
前記第１のＨＢ代行サーバは、受信したＨＢ多重化パケットに従い、前記第１のＨＢ代行サーバの第１の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第１のＨＢ代行サーバは、前記第１のサーバからＨＢ要求パケットを受信すると、更新された前記第１の対向サイト用テーブルを参照し、前記第１のサーバに対応する前記第２のサーバのアドレスに対するＨＢ有無情報がＨＢ有であれば、ＨＢ応答パケットを前記第１のサーバに返送し、
一方、前記第１のサーバに対応する前記第２のサーバのアドレスに対する前記ＨＢ有無情報がＨＢ無であれば、前記第１のサーバにＨＢ応答パケットを送信しないことに基づき、前記第１のサーバは、対応する前記第２のサーバが故障したと判断する
ことを特徴とするＨＢ代行サーバ。
【請求項１１】
請求項９又は１０に記載のＨＢ代行サーバであって、
前記ＨＢ代行サーバは、
自サイトのサーバとＨＢ情報を送受信するサイト側ＨＢ送信部とサイト側ＨＢ受信部と、
対向のＨＢ代行サーバとＨＢ情報を送受信するＮＷ側ＨＢ送信部及びＮＷ側ＨＢ受信部と、
自サイトのサーバのＨＢ情報を記憶する前記自サイト用テーブルの情報を管理する自サイト用テーブル管理部と、
対向サイトのサーバのＨＢ情報を記憶する前記対向サイト用テーブルを管理する対向サイト用テーブル管理部と
を備え、
自サイトのサーバのＨＢ情報を一括して対向サイトのＨＢ代行サーバへ送信する機能を備えたＨＢ代行サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム及び方法、ハートビート代行サーバに係り、特に遠隔データセンター間の冗長化のためのハートビート通信システム及び方法、ハートビート代行サーバに関する。
【背景技術】
【０００２】
データセンター（ＤＣ）内のサーバは、サーバのダウンやハードディスクのクラッシュ等のトラブルが発生した場合に、サービスの維持や復旧時間短縮のために冗長構成がなされている。また、冗長をなすサーバ同士がお互いの死活を監視するために、一定時間ごとにハートビート（ＨＢ）信号と呼ばれる自身の正常性を冗長先に知らせる信号を送り合い、本番系（現用系）サーバに障害発生した際は、ハートビート信号が途切れ、待機系（予備系）サーバは本番系サーバの故障を認識し、系の切り替えが行われる。近年、データセンターではハードウェアリソースを有効活用するために仮想化技術が進み、物理サーバ内の仮想マシンについても冗長構成がとられている。例えば、特許文献１によると、仮想マシン同士でハートビート通信を行う技術が存在する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１６５６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、データセンター自体が破壊されるような大規模な災害へ対処するために、遠隔のデータセンターにあるサーバとの冗長化を想定すると、遠隔の仮想マシン同士が前述のようにハートビート信号を送受信することが考えられる。このような状況下では、データセンターサイト間をつなぐネットワーク（ＮＷ）にハートビート信号が行き交うことになり、サイト間ネットワークトラフィックを圧迫する場合が想定される。
本発明は、以下の点に鑑み、送受信するデータ量を削減し、サイト間ネットワークの負荷を低減することを目的とする。
【課題を解決するための手段】
【０００５】
本発明では、ＨＢ代行サーバがデータセンターサイト入口で各サーバが送受信するハートビート信号を監視し、データセンター内の複数サーバのハートビート有無情報を一元管理し、収集したハートビート有無情報をまとめて冗長サイトの対向ＨＢ代行サーバへ送信する。冗長サイトの対向ＨＢ代行サーバが受信したハートビート情報をもとに各冗長先サーバへハートビート信号を送信することにより、冗長を組む各サーバ間でハートビートの送受信を実現する。
【０００６】
本発明の第１の解決手段によると、
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのＨＢパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するＨＢ代行サーバと
を備えた前記通信システム、及び、前記通信システムにおける通信方法であって、
ＨＢ送受信代行開始後において、
第１のサイトの第１のサーバからＨＢパケットが送信されると、前記第１のサイトの第１のＨＢ代行サーバの第１の自サイト用テーブルに、前記第１のサーバのアドレスに対して、カウンタに初期値をロードし、ＨＢ有無情報へＨＢ有をセットし、
一方、前記第１のサーバが故障すると、ＨＢパケットが前記第１のＨＢ代行サーバに送信されなくなり、前記第１の自サイト用テーブルの前記第１のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第１のＨＢ代行サーバはカウンタをカウントし続けて、カウンタが満了するとＨＢ有無情報をＨＢ無にセットし、
前記第１のＨＢ代行サーバは、予め定められた時間間隔で前記第１の自サイト用テーブルを参照し、更新された前記第１のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第２のサイトの第２のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、受信した前記ＨＢ多重化パケットに従い、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、ＨＢ有無情報がＨＢ有であれば該対向サイト側サーバアドレスの前記第２のサイトの第２のサーバへＨＢパケットを送信し、
一方、前記ＨＢ有無情報がＨＢ無であれば前記第２のサーバへＨＢパケットを送信しないことに基づき、前記第２のサーバは対応する前記第１のサーバが故障したと判断する
ことを特徴とする通信システム、及び、通信方法が提供される。
【０００７】
本発明の第２の解決手段によると、
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信する通信システムにおいて、
各サイトは、
他のサイトの複数のサーバとそれぞれが対応する複数のサーバと、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
各前記サーバからのＨＢ要求パケット及びＨＢ応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するＨＢ代行サーバと
を備えた前記通信システム、及び、前記通信システムにおける通信方法であって、
ＨＢ送受信代行開始後において、
第２のサイトの第２のＨＢ代行サーバは、予め定められた一定の時間間隔で、前記第２のＨＢ代行サーバの第２の自サイト用テーブルを参照し、第２のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第１のサイトの第１のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、ＨＢ有無情報がＨＢ有であれば、ＨＢ要求パケットを、該対向サイト側サーバアドレスの前記第１のサイトの第１のサーバに対応する第２のサーバへ送信し、前記第２のサーバは、正常な場合、該ＨＢ要求パケットを受けると、ＨＢ応答パケットを送信し、
前記第２のＨＢ代行サーバは、前記第２の自サイト用テーブルについて、前記第２のサーバからＨＢ応答パケットを受信する度に、前記第２のサーバのアドレスに対して、ＨＢ有無情報をＨＢ有に設定し、カウンタに初期値をロードし、
一方、前記第２のサーバが故障している場合、ＨＢ応答パケットを返さないため、前記第２の自サイト用テーブルの前記第２のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとＨＢ有無情報にＨＢ無をセットし、
前記第１のＨＢ代行サーバは、受信したＨＢ多重化パケットに従い、前記第１のＨＢ代行サーバの第１の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第１のＨＢ代行サーバは、前記第１のサーバからＨＢ要求パケットを受信すると、更新された前記第１の対向サイト用テーブルを参照し、前記第１のサーバに対応する前記第２のサーバのアドレスに対するＨＢ有無情報がＨＢ有であれば、ＨＢ応答パケットを前記第１のサーバに返送し、
一方、前記第１のサーバに対応する前記第２のサーバのアドレスに対する前記ＨＢ有無情報がＨＢ無であれば、前記第１のサーバにＨＢ応答パケットを送信しないことに基づき、前記第１のサーバは、対応する前記第２のサーバが故障したと判断する
ことを特徴とする通信システム、及び、通信方法が提供される。
【０００８】
本発明の第３の解決手段によると、
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるＨＢ代行サーバであって、
各前記サイトの各前記ＨＢ代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのＨＢパケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、
ＨＢ送受信代行開始後において、
第１のサイトの第１のサーバからＨＢパケットが送信されると、前記第１のサイトの第１のＨＢ代行サーバの第１の自サイト用テーブルに、前記第１のサーバのアドレスに対して、カウンタに初期値をロードし、ＨＢ有無情報へＨＢ有をセットし、
一方、前記第１のサーバが故障すると、ＨＢパケットが前記第１のＨＢ代行サーバに送信されなくなり、前記第１の自サイト用テーブルの前記第１のサーバのアドレスに対して、カウンタが初期値にロードされず、前記第１のＨＢ代行サーバはカウンタをカウントし続けて、カウンタが満了するとＨＢ有無情報をＨＢ無にセットし、
前記第１のＨＢ代行サーバは、予め定められた時間間隔で前記第１の自サイト用テーブルを参照し、更新された前記第１のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第２のサイトの第２のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、受信した前記ＨＢ多重化パケットに従い、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２の対向サイト用テーブルを参照し、ある対向サイト側サーバアドレスのカウンタが満了した場合、ＨＢ有無情報がＨＢ有であれば該対向サイト側サーバアドレスの前記第２のサイトの第２のサーバへＨＢパケットを送信し、
一方、前記ＨＢ有無情報がＨＢ無であれば前記第２のサーバへＨＢパケットを送信しないことに基づき、前記第２のサーバは対応する前記第１のサーバが故障したと判断する
ことを特徴とするＨＢ代行サーバが提供される。
【０００９】
本発明の第４の解決手段によると、
複数のサイトのサーバ同士がネットワーク（ＮＷ）を介してハートビート（ＨＢ）送信周期でＨＢパケットを送受信し、各サイトは、他のサイトの複数のサーバとそれぞれが対応する複数のサーバを備えた、通信システムにおけるＨＢ代行サーバであって、
各前記サイトの各前記ＨＢ代行サーバは、
自サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報を記憶する、自サイト用テーブルと、
自サイト側サーバアドレスに対応する対向サイト側サーバアドレスに対して、カウンタ、カウンタの初期値、ＨＢ有無情報記憶する、対向サイト用テーブルと、
を備え、各前記サーバからのＨＢ要求パケット及びＨＢ応答パケットを受信し、前記自サイト用テーブル及び前記対向サイト用テーブルを管理するものであって、
ＨＢ送受信代行開始後において、
第２のサイトの第２のＨＢ代行サーバは、予め定められた一定の時間間隔で、前記第２のＨＢ代行サーバの第２の自サイト用テーブルを参照し、第２のサイトの各前記サーバのＨＢ有無情報を一括して含むＨＢ多重化パケットを生成し、該ＨＢ多重化パケットを第１のサイトの第１のＨＢ代行サーバへ送信し、
前記第２のＨＢ代行サーバは、カウンタをカウントし、前記第２のＨＢ代行サーバの第２の対向サイト用テーブルの、ある対向サイト側サーバアドレスに対するカウンタが満了すると、初期値をロードし、ＨＢ有無情報がＨＢ有であれば、ＨＢ要求パケットを、該対向サイト側サーバアドレスの前記第１のサイトの第１のサーバに対応する第２のサーバへ送信し、前記第２のサーバは、正常な場合、該ＨＢ要求パケットを受けると、ＨＢ応答パケットを送信し、
前記第２のＨＢ代行サーバは、前記第２の自サイト用テーブルについて、前記第２のサーバからＨＢ応答パケットを受信する度に、前記第２のサーバのアドレスに対して、ＨＢ有無情報をＨＢ有に設定し、カウンタに初期値をロードし、
一方、前記第２のサーバが故障している場合、ＨＢ応答パケットを返さないため、前記第２の自サイト用テーブルの前記第２のサーバのアドレスに対して、カウンタに初期値がロードされず、一定時間後、カウンタが満了するとＨＢ有無情報にＨＢ無をセットし、
前記第１のＨＢ代行サーバは、受信したＨＢ多重化パケットに従い、前記第１のＨＢ代行サーバの第１の対向サイト用テーブルの各ＨＢ有無情報を更新し、
前記第１のＨＢ代行サーバは、前記第１のサーバからＨＢ要求パケットを受信すると、更新された前記第１の対向サイト用テーブルを参照し、前記第１のサーバに対応する前記第２のサーバのアドレスに対するＨＢ有無情報がＨＢ有であれば、ＨＢ応答パケットを前記第１のサーバに返送し、
一方、前記第１のサーバに対応する前記第２のサーバのアドレスに対する前記ＨＢ有無情報がＨＢ無であれば、前記第１のサーバにＨＢ応答パケットを送信しないことに基づき、前記第１のサーバは、対応する前記第２のサーバが故障したと判断する
ことを特徴とするＨＢ代行サーバが提供される。
【発明の効果】
【００１０】
本発明によると、データセンター内各サーバが冗長先サーバへ送信するハートビート信号に含まれる送信元アドレス、宛先アドレス、その他のプロトコル依存のヘッダ、ハートビート情報に関する各データが、データセンターサイト入口のＨＢ代行サーバで一括管理することができる。また、本発明によると、ＨＢ代行サーバは、各サーバのハートビート情報のみをまとめて冗長サイトの対向ＨＢ代行サーバへ送信するため、各サーバが個別にハートビート信号を送受信する場合に比べ、サイト間を流れるデータ量を削減でき、ネットワークの負荷低減を可能とする。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態によるデータセンターのシステム構成を示す図である。
【図２】本実施の形態によるＨＢ代行サーバの構成を示す図である。
【図３】（ａ）ＨＢ代行サーバが持つ自データセンター用テーブルの例である。（ｂ）ＨＢ代行サーバが持つ対向データセンター用テーブルの例である。（ｃ）ＤＣ内各サーバが送受信する通常のＨＢパケットの例である。（ｄ）ＨＢ代行サーバが送受信するＨＢ多重化パケットの例である。
【図４】ＤＣ側ＨＢ受信部処理のフローチャートである。
【図５】ＮＷ側ＨＢ送信部処理のフローチャートである。
【図６】自ＤＣ用テーブル管理部処理のフローチャートである。
【図７（ａ）】ＮＷ側ＨＢ受信部処理のフローチャートである。
【図７（ｂ）】ＤＣ側ＨＢ送信部処理のフローチャートである。
【図８（ａ）】対向ＤＣ用テーブル管理部処理のフローチャートである。
【図８（ｂ）】対向ＤＣ用テーブル管理部内処理のフローチャートである。
【図８（ｃ）】対向ＤＣ用カウンタ処理のフローチャートである。
【図９】本実施の形態のシーケンス図の例である。
【図１０】ＨＢ代行サーバＡ内自ＤＣ用テーブルの遷移を示す図である。
【図１１】ＨＢ代行サーバＢ内対向ＤＣ用テーブルの遷移を示す図である。
【図１２】（ａ）自ＤＣ用テーブル内ＨＢ有無ビット、減算カウンタの遷移を示す図である。（ｂ）対向ＤＣ用テーブル内ＨＢ有無ビット、減算カウンタの遷移を示す図である。
【図１３】本実施の形態によるＨＢ代行サーバの構成を示す図である。
【図１４】ＤＣ側ＨＢ受信部の処理フローチャートである。
【図１５】ＮＷ側ＨＢ受信部処理のフローチャートである。
【図１６（ａ）】対向ＤＣ用テーブル管理部処理のフローチャートである。
【図１６（ｂ）】対向ＤＣ用テーブル管理部内処理のフローチャートである。
【図１６（ｃ）】対向ＤＣ用テーブル管理部内処理のフローチャートである。
【図１７】本実施の形態のシーケンス図の例である。
【図１８】ＨＢ代行サーバＢ内自ＤＣ用テーブルの遷移を示す図である。
【図１９】対向ＤＣ用テーブルの遷移を示す図である。
【図２０】（ａ）自ＤＣ用テーブル内ＨＢ有無ビット、減算カウンタの遷移を示す図である。（ｂ）対向ＤＣ用テーブル内ＨＢ有無ビット、減算カウンタの遷移を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
Ａ．実施の形態１
１．システム
図１は、本実施の形態のデータセンター（ＤＣ）で構成されるネットワークを示すものである。ＤＣサイトＡ（１００）は、サイト間ネットワーク（ＮＷ）網（３００）を介して、遠隔地のデータセンターであるＤＣサイトＢ（２００）とハートビート（ＨＢ）信号の送受信を行う。
ＤＣサイトＡ（１００）は、物理サーバＡ１（１１）、物理サーバＡ２（１２）、・・・、物理サーバＡｊ（１ｊ）、本発明に該当するＨＢ代行サーバＡ（１０）を備える。
【００１３】
また、物理サーバＡ１（１１）は、物理サーバ内に複数の仮想マシンを動作可能にさせるＨｙｐｅｒｖｉｓｏｒ  Ａ１（１１−０）、仮想サーバとして動作する仮想マシンＶＭａ１（１１−１）、仮想マシンＶＭａ２（１１−２）、…、仮想マシンＶＭａｊ（１１−ｉ）を備える。
同様に、ＤＣサイトＢ（２００）は、データセンターを構成する要素として、物理サーバＢ１（２１）、物理サーバＢ２（２２）、…、物理サーバＢｊ（２ｊ）、本発明に該当するＨＢ代行サーバＢ（２０）を備える。
【００１４】
また、物理サーバＢ１（２１）は、物理サーバ内に複数の仮想マシンを動作可能にさせるＨｙｐｅｒｖｉｓｏｒ  Ｂ１（２１−０）、仮想的なサーバとして動作する仮想マシンＶＭｂ１（２１−１）、仮想マシンＶＭｂ２（２１−２）、…、仮想マシンＶＭｂｊ（２１−ｉ）を備える。
ＨＢ代行サーバＡ（１０）は、ＤＣサイトＡ（１００）内の物理サーバや仮想マシンといった各サーバから送信されるＨＢパケット（４１、４２）を受信し、ＤＣサイトＡ（１００）内各サーバのＨＢ送信有無情報を各サーバのアドレス、冗長先サーバのアドレスとともに管理する。また、ＨＢ代行サーバＡ（１０）は、収集した各サーバのＨＢ送信有無情報をまとめてＨＢ多重化パケット（４０）としてＨＢ代行サーバＢ（２０）へサイト間ＮＷを介して送信する。
【００１５】
ＨＢ代行サーバＢ（２０）は、受信したＨＢ多重化パケット（４０）から入手したＤＣサイトＡ（１００）内各サーバのＨＢ送信有無情報をもとに、ＤＣサイトＢ内各サーバへＨＢパケット（４３、４４）を送信する。以上の手順により、ＤＣサイトＡ（１００）内サーバからＤＣサイトＢ（２００）内サーバへＨＢパケットが送信される。
本実施の形態では、異なるデータセンターサイト間で冗長構成をなすｍ組のサーバが一定時間ごとにＨＢパケットを互いに送り合うようなシステムについて説明する。
【００１６】
図２は、ＨＢ代行サーバの実施の形態１を示す。
ＨＢ代行サーバ（５０）は、ＤＣ側ＨＢ受信部（５０−１）、ＮＷ側ＨＢ送信部（５０−２）、ＤＣ側ＨＢ送信部（５０−３）、ＮＷ側ＨＢ受信部（５０−４）、制御部（５０−５）、対向ＤＣ用テーブル（５０−６）、対向ＤＣ用テーブル管理部（５０−７）、自ＤＣ用テーブル（５０−８）、自ＤＣ用テーブル管理部（５０−９）を備える。
ＤＣ側ＨＢ受信部（５０−１）は、ＤＣサイト内からサイト間ＮＷ側へ送信されてくるＨＢパケットを受信するブロックである。図４のフローチャートに示す通り（詳細は後述）、ＤＣ側ＨＢ受信部（５０−１）は、ＨＢパケットを受信すると、ＨＢ送受信代行中の場合、自ＤＣ用テーブル管理部（５０−９）へ自ＤＣ用テーブル更新処理の要求を行う。また、ＨＢパケットを代行して送受信する前のテーブル学習段階では、ＤＣ側ＨＢ受信部（５０−１）は、受信ＨＢパケットのＮＷ側ＨＢ送信部（５０−２）への転送も行う。
【００１７】
図３（ａ）は、ＨＢ代行サーバが持つ自データセンター用テーブルの例を示す図である。
自ＤＣ用テーブル（５０−８、Ｔ５０８）は、自ＤＣサイト内各サーバのＨＢ情報が記録されているテーブルで、図３（ａ）に示す通り、自ＤＣサイト内各サーバのアドレス（Ｔ５０８−１）、減算カウンタの初期値（Ｔ５０８−２）、ＨＢ送信無と判断するまでの時間を計る減算カウンタ値（Ｔ５０８−３）、ＨＢ代行サーバのＨＢ受信有無情報（Ｔ５０８−４）を対応して記憶する。なお、各テーブルのサーバアドレスとしては、サーバのアドレスを用いてもよいし、ＶＭのアドレスを含むサーバのアドレス（ＶＭのアドレス）等を用いてもよい。減算カウンタ値（Ｔ５０８−３）には、ＨＢパケットを受信すると初期値（Ｔ５０８−２）がロードされ、次のＨＢパケットを受信するかもしくはカウント値が０になるまで、カウントダウンを続ける。ＨＢ代行サーバでＨＢパケットを受信しなくなると、カウント値が０になるので、これを契機にＨＢパケット無と判断する。
【００１８】
自ＤＣ用テーブル管理部（５０−９）は、自ＤＣ用テーブルの更新処理を行うブロックである。図６に示す通り（詳細は後述）、自ＤＣ用テーブル管理部（５０−９）は、ＤＣ側ＨＢ受信部（５０−１）からの自ＤＣ用テーブル更新処理の要求を受けて、受信ＨＢパケット（Ｔ４１）の送信元アドレス（Ｔ４１−１）から自ＤＣ用テーブルを検索し、自ＤＣ用テーブル該当行のＨＢ受信有無情報を１（ＨＢ有）に書き換える。また、自ＤＣ用テーブル管理部（５０−９）は、自ＤＣ用テーブル（５０−８）内各減算カウンタの値更新も行う。
【００１９】
ＮＷ側ＨＢ送信部（５０−２）は、ＨＢ代行サーバからＮＷ側へＨＢパケットを送信するブロックで、図５のフローチャートに示す通り（詳細は後述）、ＮＷ側ＨＢ送信部（５０−２）は、ＨＢパケット送受信の代行前については、ＤＣ側ＨＢ受信部（５０−１）から転送されるＨＢパケットをＮＷ側へ送信する。また、ＮＷ側ＨＢ送信部（５０−２）は、ＨＢパケット送受信の代行中は、自ＤＣ用テーブル（５０−８）の各ＨＢ有無情報（Ｔ５０８−４）を参照し、ＨＢ多重化パケット（４０）を生成し、対向のＨＢ代行サーバへ送信する。
【００２０】
ＮＷ側ＨＢ受信部（５０−４）は、ＮＷ側から送信されてくるパケットを受信するブロックである。図７（ａ）のフローチャートに示す通り（詳細は後述）、ＮＷ側ＨＢ受信部（５０−４）は、受信したＨＢパケットについて通常のＨＢパケットとＨＢ多重化パケットを識別し、通常のＨＢパケットであればＤＣ側ＨＢ送信部（５０−３）へ受信ＨＢパケットを転送し、対向ＤＣ用テーブル管理部（５０−７）へ対向ＤＣ用テーブル（５０−６）更新処理の要求を行う。受信ＨＢパケットがＨＢ多重化パケットである場合は、ＮＷ側ＨＢ受信部（５０−４）は、直接、受信したデータをもとに対向ＤＣ用テーブル（５０−６）のＨＢ受信有無情報を更新する。
【００２１】
図３（ｂ）は、ＨＢ代行サーバが持つ対向データセンター用テーブルの例を示す図である。
対向ＤＣ用テーブル（５０−６、Ｔ５０６）は、冗長の対向ＤＣサイト内各サーバのＨＢ情報が記録されているテーブルで、図３（ｂ）に示す通り、対向ＤＣサイト内各サーバのアドレス（Ｔ５０６−１）、減算カウンタの初期値（Ｔ５０６−２）、特定の時間を計る減算カウンタ値（Ｔ５０６−３）、ＨＢ送信有無情報（Ｔ５０６−４）を対応して記憶する。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、ＶＭのアドレスを用いてもよい。ただし、減算カウンタ値（Ｔ５０６−３）には、ＨＢ送受信代行前は、ＨＢパケットを受信すると初期値（Ｔ５０６−２）がロードされ、次のＨＢパケットを受信するかもしくはカウント値が０になるまで、カウントダウンを続ける。ＨＢ代行サーバでＨＢパケットを受信しなくなると、カウント値が０になるので、これを契機にＨＢパケット無と判断し、ＨＢパケットを受信してから、ＨＢ送信無と判断するまでのタイマーとなる。ＨＢパケット送受信代行後、減算カウンタ値（Ｔ５０６−３）はＨＢパケットを自ＤＣサイト内各サーバへ送信する時間を知らせるタイマーとして機能し、ＨＢパケットを送信する度に初期値（Ｔ５０６−２）がロードされる。
【００２２】
対向ＤＣ用テーブル管理部（５０−７）は、対向ＤＣ用テーブルの更新処理を行うブロックである。図８（ａ）、（ｂ）、（ｃ）のフローチャートに示す通り（詳細は後述）、対向ＤＣ用テーブル管理部（５０−７）は、ＨＢパケット送受信の代行前については、ＮＷ側ＨＢ受信部（５０−４）からの対向ＤＣ用テーブル更新処理の要求を受けて、受信ＨＢパケット（Ｔ４１）の送信元アドレス（Ｔ４１−１）から対向ＤＣ用テーブルを検索し、対向ＤＣ用テーブル該当行のＨＢ受信有無情報を書き換える。ＨＢパケット送受信の代行中については、対向ＤＣ用テーブル管理部（５０−７）は、減算カウンタの周期で、ＤＣ側ＨＢ送信部へＨＢパケットを送信する。また、対向ＤＣ用テーブル管理部（５０−７）は、ＨＢパケット送受信の代行中か否かに関わらず、対向ＤＣ用テーブル（５０−８）内各減算カウンタの値更新も行う。
【００２３】
ＤＣ側ＨＢ送信部（５０−３）は、自ＤＣ内各サーバへＨＢパケットを送信するブロックである。図７（ｂ）に示す通り（詳細は後述）、ＤＣ側ＨＢ送信部（５０−３）は、ＮＷ側ＨＢ受信部（５０−４）および対向ＤＣ用テーブル管理部（５０−７）から送信されるＨＢパケットを自ＤＣ内各サーバへ送信する。
保守端末（６０）は、自ＤＣ用テーブル（５０−８）、対向ＤＣ用テーブル（５０−６）の初期設定、ＨＢ多重化パケットの送信間隔や冗長構成をなす組の設定のために使用される。また、ＨＢ送受信代行開始もこの保守端末（６０）の設定で行われる。
制御部（５０−５）は、保守者が保守端末（６０）を通して入力した各設定値を実際にＨＢ代行サーバ各部に設定するブロックとなる。
【００２４】
２．動作フロー
（１）前提
以下に、図４、図５、図６、図７（ａ）、（ｂ）、図８（ａ）、（ｂ）、（ｃ）を用いて、各機能ブロックの説明を行う。図４、図５、図６、図７（ａ）、（ｂ）、図８（ａ）に示される処理は、１回の処理のみ示しており、実際にはフローチャートの処理が繰り返し実行される。
保守者は、ＨＢ代行サーバ運用前に、データセンター間で冗長構成をなしているサーバの情報を、自ＤＣ用テーブル（Ｔ５０８）及び対向ＤＣ用テーブル（Ｔ５０６）に、保守端末（６０）で設定する。具体的には、例えば、冗長構成をなす自データセンターおよび対向データセンター内各サーバのアドレス（Ｔ５０８−１，Ｔ５０６−１）を登録し、減算カウンタの初期値（Ｔ５０８−２，Ｔ５０６−２）を設定し、減算カウンタ値（Ｔ５０８−３，Ｔ５０６−３）を０に、ＨＢ有無ビット（Ｔ５０８−４，Ｔ５０６−４）を０（ＨＢ無）に設定し、ＨＢ多重化パケットの送信周期や冗長構成をなす組の設定を行う。ただし、本実施の形態では、簡単のため自ＤＣ用テーブル（Ｔ５０８）のｎ行目に該当するサーバと対向ＤＣ用テーブル（Ｔ５０６）のｎ行目に該当するサーバが冗長構成を組んでいるものとする。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、ＶＭのアドレスを用いてもよい。
保守者による初期設定が終わると、ＨＢ代行サーバは、自ＤＣ用テーブルおよび対向ＤＣテーブルのＨＢ有無情報を学習するため、保守者によるＨＢ送受信代行の指示があるまで、各サーバから送信されるＨＢパケットを監視し、ネットワーク側へ転送する。
【００２５】
図４は、ＤＣ側ＨＢ受信部処理のフローチャートである。
物理サーバや仮想マシンが冗長の対向ＤＣサイトの冗長先サーバへＨＢパケットを送ると、まずＨＢ代行サーバのＤＣ側ＨＢ受信部でＨＢパケットが受信される（Ｆ５０１−１）。
【００２６】
図３（ｃ）は、ＤＣ内各サーバが送受信する通常のＨＢパケットの例を示す図である。
ＨＢパケット（Ｔ４１）は、図３（ｃ）に示すように、送信元アドレス（Ｔ４１−１）、宛先アドレス（Ｔ４１−２）、パケットが通常のＨＢパケットであることを示す情報（Ｔ４１−３）、その他プルトコル依存するヘッダ情報（Ｔ４１−４）を含んでいる。
【００２７】
（２）ＨＢ送受信代行前
ｉ）ＨＢパケット送信
ＨＢ送受信代行前であれば（Ｆ５０１−２）、ＨＢ代行サーバはＨＢパケットの監視とテーブルの更新を行うため、ＤＣ側ＨＢ受信部は、受信パケットをそのままＮＷ側ＨＢ送信部へ転送し（Ｆ５０１−３）、自ＤＣ用テーブル管理部へ自ＤＣテーブル更新処理を要求する（Ｆ５０１−４）。
【００２８】
図６は、自ＤＣ用テーブル管理処理のフローチャートである。
自ＤＣ用テーブル管理部は、ＤＣ側ＨＢ受信部からの要求を受け（Ｆ５０９−６）、送信元アドレスをもとに、自ＤＣ用テーブル内を検索し、自ＤＣ用テーブルの該当ＨＢ有無ビットを１（ＨＢ有）に設定し、減算カウンタ値に初期値をロードする（Ｆ５０９−７）。また、自ＤＣ用テーブル管理部は、テーブルの１行目（Ｆ５０９−１）から順にカウンタ値を１ずつ減らす（Ｆ５０９−３）。ある行の減算カウンタ値が０でなければ（Ｆ５０９−２）、同じ行の減算カウンタ値を１減らし（Ｆ５０９−３）、減らした結果が０であれば（Ｆ５０９−４）、同じ行のＨＢ有無ビットを０（ＨＢ無）に設定する（Ｆ５０９−５）。上述のカウンタ減算処理をテーブルの最終行まで繰り返す（Ｆ５０９−８、Ｆ５０９−９）。
【００２９】
ｉｉ）ＨＢパケット受信
図５は、ＮＷ側ＨＢ送信部処理のフローチャートである。
ＨＢ送受信代行前であれば（Ｆ５０２−１）、ＮＷ側ＨＢ送信部は、ＤＣ側ＨＢ受信部から転送されるＨＢパケットをサイト間ＮＷ網経由で対向ＨＢ代行サーバへ送信する（Ｆ５０２−３）。
【００３０】
図７（ａ）は、ＮＷ側ＨＢ受信部処理のフローチャートである。
サイト間ＮＷ網を経てＨＢ代行サーバへ到着したＨＢパケットは、ＮＷ側ＨＢ受信部で受信される（Ｆ５０４−１）。ＮＷ側ＨＢ受信部は、通常のＨＢパケットかＨＢ代行サーバで一括化された多重化ＨＢパケットなのかを識別し（Ｆ５０４−２）、通常のＨＢパケットの場合はＤＣ側ＨＢ送信部へ受信したＨＢパケットを転送し、対向ＤＣ側テーブル管理部へ対向ＤＣ用テーブル更新要求をする（Ｆ５０４−４）。
【００３１】
図７（ｂ）は、ＤＣ側ＨＢ送信部処理のフローチャートである。
ＤＣ側ＨＢ送信部は、ＨＢ送受信代行中かどうかに関わらず、送信されてくるパケットをそのままＤＣサイト内各サーバへ送信する（Ｆ５０３−１）。
【００３２】
図８（ｂ）は、対向ＤＣ用テーブル管理部内処理のフローチャートである。
対向ＤＣ用テーブル更新処理（Ｆ７０１）の要求があれば（Ｆ７０１−１）、対向ＤＣ用テーブル管理部（５０−７）は、受信ＨＢパケットの送信元アドレスをもとに、対向ＤＣ用テーブルにあるＨＢパケット送信元のＨＢ有無ビットを１（ＨＢ有）に設定し、該当の減算カウンタに初期値をロードする（Ｆ７０１−２）。
【００３３】
図８（ａ）対向ＤＣ用テーブル管理部処理のフローチャートである。また、図８（ｃ）対向ＤＣ用カウンタ処理のフローチャートである。
また、対向ＤＣ用テーブル管理部は、対向ＤＣ用テーブルの１行目（Ｆ５０７−１）から順にカウンタ値を１ずつ減らす（Ｆ５０７−３）。ある行の減算カウンタ値が０でなければ（Ｆ５０７−２）、同じ行の減算カウンタ値を１減らし（Ｆ５０７−３）、減らした結果が０であれば（Ｆ５０７−４）、対向ＤＣ用カウンタ処理（Ｆ７０２）を実行し、図８（ｃ）のように、同じ行のＨＢ有無ビットを０（ＨＢ無）に設定する（Ｆ７０２−５）。上述のカウンタ減算処理をテーブルの最終行まで繰り返す（Ｆ５０７−５、Ｆ５０７−６）。
【００３４】
（３）ＨＢ送受信代行後
ｉ）ＨＢパケット送信
図４のように、保守端末からの設定で、ＨＢパケットの送受信代行を開始すると（Ｆ５０１−２）、ＤＣ側ＨＢ受信部（５０−１）はＨＢパケットをＮＷ側ＨＢ送信部（５０−２）へ転送せず、自ＤＣ用テーブル（Ｔ５０８−４）のＨＢ有無ビット（Ｔ５０８−４）の更新処理を自ＤＣ用テーブル管理部へ要求する（Ｆ５０１−４）。
図６のように、自ＤＣ用テーブル管理部は、ＨＢ送受信代行前と同様に、減算カウンタ値（Ｔ５０８−３）およびＨＢ有無ビット（Ｔ５０８−４）の更新処理を行う。
図５のように、ＮＷ側ＨＢ送信部（５０−２）は、ＨＢ送受信代行中であれば（Ｆ５０２−１）、自ＤＣ用テーブル（Ｔ５０８）の各ＨＢ有無ビット（Ｔ５０８−４）の値を読み、ＨＢ有無ビットマップを作成し、対向のＨＢ代行サーバへ多重化ＨＢパケット（Ｔ４０）として送信する（Ｆ５０２−２）。
【００３５】
図３（ｄ）は、ＨＢ代行サーバが送受信するＨＢ多重化パケットの例を示す図である。
このとき、ＨＢ多重化パケット（Ｔ４０）は、図３（ｄ）に示す通り、送信元アドレス（Ｔ４０−１）、宛先アドレス（Ｔ４０−２）、パケット種類（Ｔ４０−３）、ＨＢ有無ビットマップ（Ｔ４０−４、Ｔ４０−５、Ｔ４０−６）、その他のプロトコル依存のヘッダ情報（Ｔ４０−７）を含む。
【００３６】
ｉｉ）ＨＢパケット受信
図７（ａ）のように、ＮＷ側ＨＢ受信部（５０−１）は、パケット種類（Ｔ４０−３）がＨＢ多重化パケットであるか否かにより、ＨＢ多重化パケット（Ｔ４０）を受信したと判断すると（Ｆ５０４−１、Ｆ５０４−２）、ＨＢ有無ビットマップ（Ｔ４０−４、Ｔ４０−５、Ｔ４０−６）から対向ＤＣ用テーブルの各ＨＢ有無ビット（Ｔ５０６−４）の値を更新する（Ｆ５０４−３）。
図８（ａ）のように、対向ＤＣ用テーブル管理部（５０−７）は、ＨＢ送受信代行前と同様に、対向ＤＣ用テーブル内各減算カウンタを回して、減算カウンタ値が０になった行があれば（Ｆ５０７−４）、特定の処理（対向ＤＣカウンタ内処理）を行う（Ｆ７０２）。
【００３７】
図８（ｃ）は、対向ＤＣ用カウンタ処理のフローチャートである。
上述の特定の処理とは、ＨＢ送受信代行中であれば（Ｆ７０２−１）、該当の減算カウンタに初期値（Ｔ５０６−２）をロードし（Ｆ７０２−２）、対向ＤＣ用テーブルの同じ行のＨＢ有無ビット（Ｔ５０６−４）の値が１（ＨＢ有）であれば（Ｆ７０２−３）、ＤＣ側ＨＢ送信部（５０−３）を介して、自ＤＣ内各サーバに対して、ＨＢパケットを自ＤＣ用テーブル（Ｔ５０８）の該当アドレスに送信する（Ｆ７０２−４）。ただし、送信するＨＢパケットの宛先アドレスは自ＤＣ用テーブル内自ＤＣ側サーバアドレス（Ｔ５０８−１）、送信元アドレスは対向ＤＣ用テーブル内対向ＤＣ側サーバアドレス（Ｔ５０６−１）を参照する。
以上の手順により、遠隔のサーバ間を行き来するＨＢパケットをＨＢ代行サーバでＤＣサイトごとに一括してから遠隔ＤＣサイトの対向ＨＢ代行サーバへ送付し、ＨＢパケットを待つ各冗長先サーバに対してＨＢパケットを送信する。
【００３８】
３．シーケンス
（１）前提
図９に、上述の実施の形態のシーケンス図を示す。該図はＤＣサイトＡ（１００）の仮想マシンＶＭａ１（１１−１）、ＶＭａ２（１１−２）、ＶＭａ３（１１−３）がそれぞれＤＣサイトＢ（２００）の仮想マシンＶＭｂ１（２１−１）、ＶＭｂ２（２１−２）、ＶＭｂ３（２１−３）と冗長構成の組をなしており、ＤＣサイトＡ（１００）側からＤＣサイトＢ（２００）側へＨＢパケットを送信する状況を示している。図９では、ＤＣサイトＢ（２００）内仮想マシンからＤＣサイトＡ（１００）内仮想マシンへＨＢパケットを送信するフローについての図示は省略しており、実際には対称的な振る舞いをしているものとする。つまり、ＶＭａ１からＶＭｂ１宛にＨＢパケットが送信されると、ＶＭｂ１からＶＭａ１宛にＨＢパケットが送信されることになる。
【００３９】
図１０、図１１は、上述の実施の形態のＨＢ代行サーバ内各テーブルの遷移を示している。
保守者は、各ＤＣ内仮想マシンのアドレスやＨＢ送信周期の情報について既知であり、保守端末（６０）を通してＨＢ代行サーバに各仮想マシンについての情報やＨＢ代行サーバの設定情報を入力する。入力された情報をもとに制御部（５０−５）が各ブロックの初期設定を行う。ここでは自ＤＣ用テーブル内減算カウンタの初期値については、自ＤＣ内仮想マシンのＨＢ送信周期＋１０００カウントになるように設定し  （Ｔ１０８−１）、対向ＤＣ用テーブル内減算カウンタの初期値については、対向ＤＣ内仮想マシンのＨＢ送信周期になるように設定する  （Ｔ１０８−１）。
【００４０】
（２）ＨＢ送受信代行前
まずＨＢ送受信代行開始前については、ＨＢ代行サーバＡ（１０）およびＨＢ代行サーバＢ（２０）内の自ＤＣ用テーブル管理部（５０−９）および対向ＤＣ用テーブル管理部（５０−７）がテーブルの１行目から順に減算カウンタの値を１ずつ減らしていく（Ｔ１０８−２）。ＶＭａ３（１１−３）からＨＢパケットが送信されると、ＨＢ代行サーバＡ内ＤＣ側ＨＢ受信部（５０−１）で受信し、ＮＷ側ＨＢ送信部（５０−２）で受信ＨＢパケットをそのままＮＷ側へ転送する（Ｓ１１−ａ３）。この際、ＨＢ代行サーバＡの自ＤＣ用テーブル管理部（５０−９）は、ＶＭａ３のＨＢ有無ビットを１にセットし、減算カウンタに初期値をロードする（Ｔ１０８−３）。ＮＷを経由してＨＢパケットがＨＢ代行サーバＢへ届くと、ＨＢ代行サーバＢの対向ＤＣ用テーブルＨＢ内ＶＭａ３のＨＢ有無ビットを１にセットし、減算カウンタに初期値をロードする（Ｔ２０６−２）。続いてＶＭａ２、ＶＭａ３、ＶＭａ１の順で送信されるＨＢパケットをＨＢ代行サーバで受信し（Ｓ１１−ａ２、Ｓ１２−ａ３、Ｓ１１−ａ１）、ＶＭａ２、ＶＭａ３、ＶＭａ１の順でＨＢ有無ビットを１にセットし、減算カウンタについても同様に初期値を順にロードする（Ｔ１０８−４）。ＮＷを経由してＨＢパケットがＨＢ代行サーバＢへ届くと、対向ＤＣ用テーブル内ＨＢ有無ビットの更新、減算カウンタの初期値ロードが実施される。ＶＭａ２の２度目のＨＢパケット送信が行われると、上述の流れが繰り返され、ＨＢ代行サーバＡの自ＤＣ用テーブルおよびＨＢ代行サーバＢの対向ＤＣ用テーブルの２行目の減算カウンタへ初期値ロード、ＨＢ有無ビットへ１のセットが行われる。
【００４１】
（３）ＨＢ送受信代行後
ｉ）正常時
保守者が保守端末（６０）を通して、ＨＢ送受信代行開始の設定を行うと、保守者が設定した一定の時間間隔でＨＢ代行サーバＡ（１０）内ＮＷ側ＨＢ送信部が自ＤＣ用テーブル内ＨＢ有無情報（Ｔ５０８−４）をもとに、ＨＢ多重化パケット（Ｔ４０）を生成し、ＨＢ代行サーバＢ（２０）へ送信する（Ｓ１１−ｃ）。ただし、このＨＢ多重化パケットはＨＢ送受信代行開始直前に更新されたＨＢ有無情報に基づいている。
ＨＢ代行サーバＢ（２０）のＮＷ側ＨＢ受信部は、受信したＨＢ多重化パケットから対向ＤＣ用テーブル内ＨＢ有無情報（Ｔ５０６−４）を更新する（Ｔ２０６−３）。ＨＢ代行サーバＢの対向ＤＣ用テーブルの減算カウンタ値の項目３が０になると（Ｔ２０６−４）、該当のＨＢ有無ビットを見て、ビット値が１（ＨＢ有）であるため、対向ＤＣ用テーブル管理部がＤＣ側ＨＢ送信部経由でＶＭｂ３へＨＢパケットを送信する（Ｓ１４−ａ３）。つづいてＨＢ代行サーバＢの対向ＤＣ用テーブルの減算カウンタ値が０になる契機で、ＤＣサイトＢ内各仮想マシンへＨＢパケットを送信する（Ｓ１４−ａ２、Ｓ１３−ａ１）。
【００４２】
ただし、送信するＨＢパケットの送信元アドレスにＨＢ代行サーバＢ内対向ＤＣ用テーブルの対向ＤＣ側サーバアドレス、宛先アドレスには、ＨＢ代行サーバＢ内自ＤＣ用テーブルの自ＤＣ側サーバアドレスの値を入力する。
続いてＤＣサイトＡ内の各仮想マシンからＨＢパケットが送信されると（ｓ１３−ａ３、ｓ１２−ａ１、ｓ１５−ａ３）、ＨＢ代行サーバＡの減算カウンタへ初期値ロード、ＨＢ有無ビットへ１のセットが行われる。更新されたＤＣサイトＡ内各仮想マシンのＨＢ有無情報は、ＨＢ多重化パケットで一括して、ＨＢ代行サーバＢへ送信される（ｓ１２−ｃ）。ＨＢ代行サーバＢは受信したＨＢ多重化パケットから対向ＤＣ用テーブルの各ＨＢ有無ビットに１（ＨＢ有）をセットする。
【００４３】
続いてＤＣサイトＡ（１００）内各仮想マシンはＨＢパケットを送信し（Ｓ１２−ａ１、Ｓ１３−ａ２、Ｓ１３−ａ３）、ＨＢ代行サーバＡは送信されたＨＢパケットをもとに、自ＤＣ用テーブルを更新し、更新されたＨＢ有無情報をＨＢ多重化パケットで送信する（Ｓ１２−ｃ）。ＨＢ代行サーバＢは、受信したＨＢ多重化パケットから対向ＤＣ用テーブル内ＨＢ有無情報（Ｔ５０６−４）を更新し、ＶＭｂ２（２１−２）、ＶＭｂ３（２１−３）にＨＢパケットを送信する（Ｓ１６−ａ２、Ｓ１６−ａ３）。
【００４４】
ｉｉ）故障発生時
ＶＭａ２（１１−２）が故障するとＨＢパケットがＨＢ代行サーバＡに送信されなくなり（Ｓ１５−ａ２、Ｓ１７−ａ２）、ＶＭａ１（１１−１）、ＶＭａ３（１１−３）のＨＢパケットのみ送信される（Ｓ１４−ａ１、Ｓ１５−ａ３、Ｓ１７−ａ３）。ＨＢパケットがＶＭａ２（１１−２）から送信されなくなると（Ｓ１５−ａ２）、ＨＢ代行サーバ内自ＤＣ用テーブルの減算カウンタ値が初期値にロードされず、減算され続ける（Ｔ１０８−５）。減算され続け減算カウンタ値が０になると、ＨＢ有無ビットは０（ＨＢ無）にセットされる（Ｔ１０８−６）。ＶＭａ２のＨＢ有無ビットが０になった情報はＨＢ多重化パケットを通して、ＨＢ代行サーバＢへ送信される（Ｓ１３−ｃ）。
【００４５】
ＨＢ代行サーバＢでＨＢ多重化パケットを受信すると、対向ＤＣ用テーブルの２行目のＨＢ有無ビットを０にセットする（Ｔ２０６−５）。ＨＢ代行サーバＢ内対向ＤＣ用テーブルの２行目の減算カウンタが０になると、同じ行のＨＢ有無ビットが０であるため、ＨＢパケットをＶＭｂ２へ送信しない（Ｔ２０６−６）。つまり、ＨＢ代行サーバＢはＶＭｂ１（２１−１）、ＶＭｂ３（２１−３）にＨＢパケットを送信するが（Ｓ１５−ａ１、Ｓ１８−ａ３）、ＶＭｂ２（２１−２）にＨＢパケットを送らないことになる（Ｓ１８−ａ２）。
一定時間、ＶＭｂ２（２０−２）にＨＢパケットが受信されない状態が続くと、ＶＭｂ２（２０−２）はＶＭａ２（１０−２）が故障したと判断する。
ＤＣサイトＢ内仮想マシンからＤＣサイトＡ内仮想マシンへのＨＢパケットの送信の流れも同様の手順で行われる。
【００４６】
（４）テーブル
図１２（ａ）は、上述のシーケンスにおけるＨＢ代行サーバＡ内自ＤＣ用テーブルのＶＭａ２についての減算カウンタ値およびＨＢ有無ビットの変化の様子を示す。ＨＢ代行サーバがＨＢ有無情報を学習し始めると、減算カウンタのカウントが始まる。ＨＢ有無ビットの初期値は０であるが、ＶＭａ２からＨＢパケットを受信するとＨＢ有無ビットが１に設定され、減算カウンタに初期値がロードされる。ＶＭａ２から送信されるＨＢパケットを受信される度にＨＢ有無ビットが１にセットされ、減算カウンタ値も初期値に戻る。ＨＢ代行が開始されるとＨＢ有無ビット値が多重化パケットで一括してＨＢ代行サーバＢへ送信されるが、減算カウンタの機能は変わらず、ＨＢパケットの有無を判断するタイマーとして機能する。ＶＭａ２からＨＢパケットが送信されないと、カウンタに初期値がロードされないため、減算し続け、やがてカウンタ値が０になるとＨＢ有無ビットが０にセットされる。ＶＭａ２からＨＢパケットが送信される間はＨＢ有無ビット値を１に保持したいため、カウンタの周期をＨＢパケットの送信周期より長めに設定する必要がある。本実施の形態では送信周期に１０００カウント加えた時間をカウンタ周期としている。
【００４７】
図１２（ｂ）は、上述のシーケンスにおけるＨＢ代行サーバＢ内対向ＤＣ用テーブルのＶＭａ２についての減算カウンタ値およびＨＢ有無ビットの変化の様子を示す。ＨＢ代行サーバがＨＢ有無情報を学習し始めると、減算カウンタのカウントが始まる。ＨＢ有無ビットの初期値は０であるが、ＶＭａ２からＨＢパケットを受信するとＨＢ有無ビットが１に設定され、減算カウンタに初期値がロードされる。ＶＭａ２から送信されるＨＢパケットを受信される度にＨＢ有無ビットが１にセットされ、減算カウンタ値も初期値に戻るため、減算カウンタはＨＢパケットの有無を判断するタイマーとして機能する。ＨＢ代行が開始されるとＨＢ有無ビット値が多重化パケットで一括してＨＢ代行サーバＡから送信され、ＨＢ有無ビット値の値が更新される。減算カウンタ値が０になると、初期値に戻り、ＨＢ有無ビットを確認し、ビット値が１であればＨＢパケットをＶＭｂ２へ送信するため、ＨＢ代行中の減算カウンタはＨＢパケットの送信周期を計るタイマーとして機能する。一方、ビット値が０であればＨＢパケットをＶＭｂ２へ送信しない。
【００４８】
Ｂ．実施の形態２
１．システム
本実施の形態では、冗長構成をなすｍ組のサーバの一方が他方に対してＨＢ要求パケットを送信し、サーバが正常であれば要求元にＨＢ応答パケットを返すようなシステムに対する適用方法について説明する。
図１３は、ＨＢ代行サーバの実施の形態２を示す。ＨＢ代行サーバ（５１）は、ＤＣ側ＨＢ受信部（５１−１）、ＤＣ側ＨＢ送信部（５１−３）、ＮＷ側ＨＢ送信部（５１−２）、ＮＷ側ＨＢ受信部（５１−４）、自ＤＣ用テーブル管理部（５１−９）、自ＤＣ用テーブル（５１−８）、対向ＤＣ用テーブル管理部（５１−７）、対向ＤＣ用テーブル（５１−６）、制御部（５１−５）を備える。
【００４９】
ＤＣ側ＨＢ受信部（５１−１）は、ＤＣサイト内からサイト間ＮＷ側へ送信されてくるＨＢパケットを受信するブロックである。図１４のフローチャートに示す通り（詳細は後述）、ＤＣ側ＨＢ受信部（５１−１）は、ＨＢ送受信代行前は、受信したＨＢパケットをＮＷ側ＨＢ送信部（５１−２）へ転送し、受信したＨＢパケットがＨＢ応答パケットであると、自ＤＣ用テーブル管理部（５１−９）へ自ＤＣ用テーブル更新処理の要求を行う。また、ＤＣ側ＨＢ受信部（５１−１）は、ＨＢ送受信代行中に、要求パケットを受信すると自ＤＣサイト内該当サーバにＨＢ応答をするように、対向ＤＣ側テーブル管理部へ処理を要求する。ＤＣ側ＨＢ受信部（５１−１）は、応答パケットを受信した場合は、ＨＢ送受信代行前と同様に自ＤＣ用テーブル管理部（５１−９）へ自ＤＣ用テーブル更新処理の要求を行う。
【００５０】
自ＤＣ用テーブル（５１−８、Ｔ５０８）は、自ＤＣサイト内各サーバのＨＢ情報が記録されているテーブルで、図３（ａ）に示す通り、自ＤＣサイト内各サーバのアドレス（Ｔ５０８−１）、減算カウンタの初期値（Ｔ５０８−２）、ＨＢ送信無と判断するまでの時間を計る減算カウンタ値（Ｔ５０８−３）、ＨＢ代行サーバのＨＢ受信有無情報（Ｔ５０８−４）を対応して記憶する。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、ＶＭのアドレスを用いてもよい。減算カウンタ値（Ｔ５０８−３）には、ＨＢ応答パケットを受信すると初期値（Ｔ５０８−２）がロードされ、次のＨＢ応答パケットを受信するかもしくはカウント値が０になるまで、カウントダウンを続ける。ＨＢ代行サーバでＨＢパケットを受信しなくなると、カウント値が０になるので、これを契機にＨＢパケット無と判断する。
【００５１】
自ＤＣ用テーブル管理部（５１−９）は、自ＤＣ用テーブルの更新処理を行うブロックである。図６に示す通り、自ＤＣ用テーブル管理部（５１−９）は、ＤＣ側ＨＢ受信部（５１−１）からの自ＤＣ用テーブル更新処理の要求を受けて、受信ＨＢ応答パケットの送信元アドレスからテーブルを検索し、該当するＨＢ受信有無情報を書き換える。また、自ＤＣ用テーブル管理部（５１−９）は、自ＤＣ用テーブル（５１−８）内各減算カウンタの値更新も行う。
【００５２】
ＮＷ側ＨＢ送信部（５１−２）は、ＨＢ代行サーバからＮＷ側へＨＢパケットを送信するブロックである。ＮＷ側ＨＢ送信部（５１−２）は、図５のフローチャートに示す通り、ＨＢパケット送受信の代行前については、ＤＣ側ＨＢ受信部（５１−１）から転送されるＨＢパケットをＮＷ側へ送信する。また、ＮＷ側ＨＢ送信部（５１−２）は、ＨＢパケット送受信の代行中は、自ＤＣ用テーブル（５１−８）の各ＨＢ情報を参照し、ＨＢ多重化パケット（４０）を生成し、対向のＨＢ代行サーバへ送信する。
【００５３】
ＮＷ側ＨＢ受信部（５１−４）は、ＮＷ側から送信されてくるパケットを受信するブロックである。図１５のフローチャートに示す通り（詳細は後述）、ＮＷ側ＨＢ受信部（５１−４）は、受信したＨＢパケットについて通常のＨＢパケットとＨＢ多重化パケットを識別し、通常のＨＢパケットであればＤＣ側ＨＢ送信部（５１−３）へ受信ＨＢパケットを転送し、受信したＨＢパケットが特にＨＢ要求パケットであれば、対向ＤＣ用テーブル管理部（５１−７）へ対向ＤＣ用テーブル（５１−６）更新処理の要求を行う。受信ＨＢパケットがＨＢ多重化パケットである場合は、ＮＷ側ＨＢ受信部（５１−４）は、直接、受信したデータをもとに対向ＤＣ用テーブル（５１−６）のＨＢ受信有無情報を更新する。
【００５４】
対向ＤＣ用テーブル（５１−７、Ｔ５０７）は、冗長の対向ＤＣサイト内各サーバのＨＢ情報が記録されているテーブルで、図３（ｂ）に示す通り、対向ＤＣサイト内各サーバのアドレス（Ｔ５０６−１）、減算カウンタの初期値（Ｔ５０６−２）、特定の時間を計る減算カウンタ値（Ｔ５０６−３）、ＨＢ送信有無情報（Ｔ５０６−４）を対応して記憶する。なお、各テーブルのサーバアドレスとしては、サーバのアドレスを用いてもよいし、ＶＭのアドレスを含むサーバのアドレス（ＶＭのアドレス）等を用いてもよい。ただし、減算カウンタ値（Ｔ５０６−３）には、ＨＢ送受信代行前は、ＨＢ要求パケットを受信すると初期値（Ｔ５０−２）がロードされ、次のＨＢ要求パケットを受信するかもしくはカウント値が０になるまで、カウントダウンを続ける。ＨＢ代行サーバでＨＢ要求パケットを受信しなくなると、カウント値が０になるので、これを契機にＨＢパケット無と判断し、ＨＢ要求パケットを受信してからＨＢ送信無と判断するまでのタイマーとして機能する。ＨＢパケット送受信代行後、減算カウンタ値（Ｔ５０６−３）による減算カウンタは、ＨＢ要求パケットを自ＤＣサイト内各サーバへ送信する時間を知らせるタイマーとして機能し、ＨＢ要求パケットを送信する度に減算カウンタに初期値がロードされる。
【００５５】
対向ＤＣ用テーブル管理部（５１−７）は、対向ＤＣ用テーブルの更新処理を行うブロックである。図８（ｂ）、図１６（ａ）、（ｂ）、（ｃ）のフローチャートに示す通り（詳細は後述）、対向ＤＣ用テーブル管理部（５１−７）は、ＨＢパケット送受信の代行前については、ＮＷ側ＨＢ受信部（５０−４）からの対向ＤＣ用テーブル更新処理の要求を受けて、受信ＨＢ応答パケットの送信元アドレスからテーブルを検索し、該当するＨＢ受信有無情報を書き換える。ＨＢパケット送受信の代行中については、対向ＤＣ用テーブル管理部（５１−７）は、減算カウンタの周期で、ＤＣ側ＨＢ送信部へＨＢ要求パケットを送信する。また、対向ＤＣ用テーブル管理部（５１−７）は、ＨＢパケット送受信の代行中か否かに関わらず、対向ＤＣ用テーブル（５１−８）内各減算カウンタの値更新も行う。
【００５６】
ＤＣ側ＨＢ送信部（５１−３）は、自ＤＣ内各サーバへＨＢパケットを送信するブロックで、図７（ｂ）に示す通り、ＤＣ側ＨＢ送信部（５１−３）は、ＮＷ側ＨＢ受信部（５１−４）および対向ＤＣ用テーブル管理部（５１−７）から送信されるＨＢパケットを自ＤＣ内各サーバへ送信する。
保守端末（６０）は、自ＤＣ用テーブル（５１−８）、対向ＤＣ用テーブル（５１−６）の初期設定、ＨＢ多重化パケットの送信間隔や冗長構成をなす組の設定のために使用される。また、ＨＢ送受信代行開始もこの保守端末（６０）の設定で行われる。
制御部（５１−５）は、保守者が保守端末（６０）を通して入力した各設定値を実際にＨＢ代行サーバ各部に設定するブロックとなる。
【００５７】
２．動作フロー
（１）前提
図５、図６、図７（ｂ）、図８（ｂ）、図１４、図１５、図１６（ａ）、（ｂ）、（ｃ）を用いて、各機能ブロックの説明を行う。図５、図６、図１４、図１５、図１６（ａ）に示される処理は、１回の処理のみ示しており、実際にはフローチャートの処理が繰り返し実行される。
保守者は、ＨＢ代行サーバ運用前に、データセンター間で冗長構成をなしているサーバの情報を、自ＤＣ用テーブル（Ｔ５０８）及び対向ＤＣ用テーブル（Ｔ５０６）に設定する。具体的には、例えば、冗長構成をなす自データセンターおよび対向データセンター内各サーバのアドレスを登録し、減算カウンタの初期値を設定し、減算カウンタ値を０に、ＨＢ有無ビットを０（ＨＢ無）に設定し、ＨＢ多重化パケットの送信周期や冗長構成をなす組の設定を行う。ただし、本実施の形態では、簡単のため自ＤＣ用テーブル（Ｔ５０８）のｎ行目に該当するサーバと対向ＤＣ用テーブル（Ｔ５０６）のｎ行目に該当するサーバが冗長構成を組んでいるものとする。なお、各テーブルのサーバアドレスとしては、物理サーバのアドレスを用いてもよいし、ＶＭのアドレスを用いてもよい。
【００５８】
保守者による初期設定が終わると、ＨＢ代行サーバは、自ＤＣ用テーブルおよび対向ＤＣテーブルのＨＢ有無情報を学習するため、保守者によるＨＢ送受信代行の指示があるまで、各サーバから送信されるＨＢパケットを監視し、ネットワーク側へ転送する。
自ＤＣサイト内サーバが対向ＤＣサイトの冗長系サーバへＨＢパケットを送ると、まずＨＢ代行サーバのＤＣ側ＨＢ受信部でＨＢパケットが受信される。
このＨＢパケット（Ｔ４１）は、図３（ｃ）に示すように、送信元アドレス（Ｔ４１−１）、宛先アドレス（Ｔ４１−２）、ＨＢパケットがＨＢ要求パケットなのかＨＢ応答パケットなのかを示す情報（Ｔ４１−３）、その他プルトコル依存するヘッダ情報（Ｔ４１−４）を含んでいる。
【００５９】
（２）ＨＢ送受信代行前
ｉ）ＮＷへの要求パケットの送信
各サーバがＨＢ要求パケットをサイト間ＮＷに向けて送信すると、ＤＣ側ＨＢ受信部でＨＢ要求パケットが受信される。
【００６０】
図１４は、ＤＣ側ＨＢ受信部の処理フローチャートである。
ＨＢ送受信代行前、ＨＢ代行サーバは、ＨＢパケットの監視とテーブルの更新を行うため、ＤＣ側ＨＢ受信部は、受信ＨＢ要求パケットをそのままＮＷ側ＨＢ送信部へ転送する（Ｆ５１１−１、Ｆ５１１−２、Ｆ５１１−３）。図５のように、ＮＷ側ＨＢ送信部は、ＨＢ要求パケットを、対向のＨＢ代行サーバへサイト間ＮＷ網を介して送信する（Ｆ５０２−３）。
【００６１】
ｉｉ）ＮＷからのＨＢ要求パケットの受信
図１５は、ＮＷ側ＨＢ受信部処理のフローチャートである。
サイト間ＮＷ網を経て代行サーバへ到着したＨＢ要求パケットは、ＮＷ側ＨＢ受信部で受信される。ＮＷ側ＨＢ受信部は、受信ＨＢパケットの種類を識別し（Ｆ５１４−２）、通常のＨＢ要求パケットであると判断したら（Ｆ５１４−５）、対向ＤＣ用テーブル内ＨＢ要求パケット送信元のＨＢ有無ビットの更新処理を対向ＤＣ側テーブル管理部へ要求し（Ｆ５１４−６）、受信ＨＢ要求パケットをＤＣ側ＨＢ送信部へ転送する（Ｆ５１４−４）。
図７（ｂ）のように、ＤＣ側ＨＢ送信部は受信ＨＢパケットを冗長先サーバへ送信する（Ｆ５０３−１）。
【００６２】
ｉｉｉ）ＨＢ応答パケット送信
この冗長先サーバが正常時にはＨＢ応答パケットを返し、図１４のように、応答パケットが代行サーバのＤＣ側ＨＢ受信部で受信される（Ｆ５１１−１）。
ＤＣ側ＨＢ受信部は、ＨＢ応答パケットを受信すると（Ｆ５１１−２、Ｆ５１１−３、Ｆ５１１−５）、自ＤＣ用テーブル内ＨＢ応答パケット送信元のＨＢ有無ビットの更新処理を自ＤＣ用管理部へ要求し（Ｆ５１１−７）、受信ＨＢ応答パケットをＮＷ側ＨＢ送信部へ転送する（Ｆ５１１−３）。
【００６３】
図５のように、ＮＷ側ＨＢ送信部は、サイト間ＮＷを介して対向のＨＢ代行サーバへＨＢ応答パケットを送る（Ｆ５０２−３）。
図６のように、ＤＣ側ＨＢ受信部からの自ＤＣ用テーブル更新要求を受け、自ＤＣ用テーブル管理部は、ＤＣ側ＨＢ受信部からの要求を受け（Ｆ５０９−６）、受信ＨＢ応答パケットの送信元アドレスをもとに、自ＤＣ用テーブル内を検索し、自ＤＣ用テーブル該当行のＨＢ有無ビットを１（ＨＢ有）に設定し、減算カウンタ値に初期値をロードする（Ｆ５０９−７）。また、自ＤＣ用テーブル管理部は、自ＤＣ用テーブルのある行の減算カウンタ値が０でなければ（Ｆ５０９−２）、同じ行の減算カウンタ値を１減らし（Ｆ５０９−３）、減らした結果が０であれば（Ｆ５０９−４）、同じ行のＨＢ有無ビットを０（ＨＢ無）に設定する（Ｆ５０９−５）。自ＤＣ用テーブル管理部は、上述のカウンタ減算処理をテーブルの最終行まで繰り返す（Ｆ５０９−８、Ｆ５０９−９）。
【００６４】
ｉｖ）ＨＢ応答パケット受信
サイト間ＮＷ網を経て代行サーバへ到着したＨＢ応答パケットはＮＷ側ＨＢ受信部で受信される。図１５のように、ＮＷ側ＨＢ受信部は、受信ＨＢパケットの種類を識別し、通常のＨＢ応答パケットであると判断したら（Ｆ５１４−２）、受信ＨＢパケットをＤＣ側ＨＢ送信部へ転送する（Ｆ５１４−４）。
図７（ｂ）のように、ＤＣ側ＨＢ送信部は、ＨＢ送受信代行中かどうかに関わらず、受信したパケットのアドレスを見て、そのままＤＣ内該当サーバへ送信する（Ｆ５０３−１）。
図８（ｂ）のように、ＮＷ側ＨＢ受信部からの対向ＤＣ用テーブル更新処理（Ｆ７０１）の要求があれば（Ｆ７０１−１）、対向ＤＣ用テーブル管理部（５０−７）は、受信ＨＢ応答パケットの送信元アドレスをもとに、対向ＤＣ用テーブル該当行のＨＢパケット送信元のＨＢ有無ビットを１（ＨＢ有）に設定し、同じ行の減算カウンタに初期値をロードする（Ｆ７０１−２）。
【００６５】
図１６（ａ）は、対向ＤＣ用テーブル管理部処理のフローチャートである。また、図１６（ｃ）は、対向ＤＣ用テーブル管理部内処理のフローチャートである。
また、対向ＤＣ用テーブル管理部は、対向ＤＣ用テーブルの１行目（Ｆ５１７−１）から順にカウンタ値を１ずつ減らす（Ｆ５１７−４）。対向ＤＣ用テーブルのある行の減算カウンタ値が０でなければ（Ｆ５１７−２）、減算カウンタ値を１減らし、減らした結果が０であれば（Ｆ５１７−３）、同じ行のＨＢ有無ビットを０（ＨＢ無）に設定する（Ｆ７０４、図１６（ｃ）のＦ７０４−５）。上述のカウンタ減算処理をテーブルの最終行まで繰り返す（Ｆ５１７−５、Ｆ５１７−６）。
【００６６】
（３）ＨＢ送受信代行後
ｉ）自サーバからのＨＢ要求パケットに対するＨＢ応答パケット返送
保守者の設定でＨＢ送受信代行開始され、自ＤＣ内サーバからＨＢ要求パケットが送信されると、図１４のように、ＤＣ側ＨＢ受信部（５１−１）でＨＢ要求パケットを受信し（Ｆ５１１−４）、ＨＢ要求パケット送信元のサーバへ応答パケットを返すように対向ＤＣ用テーブル管理部へ要求する（Ｆ５１１−６）。
【００６７】
図１６（ｂ）は、対向ＤＣ用テーブル管理部内処理のフローチャートである。
対向ＤＣ用テーブル管理部は、ＤＣ側ＨＢ受信部の要求を受けて（Ｆ７０３、Ｆ７０３−１）、該当ＨＢ有無ビットのビット値が１であれば（Ｆ７０３−２）、ＨＢ応答パケットをＤＣ側ＨＢ送信部経由でサーバへ返し（Ｆ７０３−３）、０であれば（Ｆ７０３−２）何も返さない。
また、図１６（ａ）のように、対向ＤＣ用テーブル管理部（５１−７）は、ＨＢ送受信代行前と同様に、対向ＤＣ用テーブル内各減算カウンタを回して、減算カウンタ値が０になった行があれば（Ｆ５１７−３）、特定の処理を行う（Ｆ７０４）。図１６（ｃ）のように、ＨＢ送受信代行中（Ｆ７０４−１）におけるこの特定の処理では、該当の減算カウンタに初期値（Ｔ５０６−２）をロードし（Ｆ７０４−２）、同行のＨＢ有無ビットが１であれば（Ｆ７０４−３）、ＤＣ側ＨＢ送信部（５０−３）を介して、自ＤＣ内各サーバに対して、ＨＢ要求パケットを自ＤＣ用テーブル（Ｔ５０８）の該当アドレスに送信する（Ｆ７０４−４）。ただし、ＨＢ要求パケットの宛先アドレスは自ＤＣ用テーブル（Ｔ５０８）を参照し、送信元アドレスは対向ＤＣ用テーブルを参照する。
【００６８】
ｉｉ）対向サーバからのＨＢ要求パケットに対する多重化ＨＢパケット返送
図１４のように、ＨＢ要求パケットを受信した自ＤＣ内サーバが正常であれば、応答パケットをＨＢ要求パケットの送信元アドレスに送り返す。ＨＢ応答パケットはＨＢ代行サーバのＤＣ側ＨＢ受信部で受信され、ＤＣ側ＨＢ受信部が自ＤＣ用テーブル管理部へテーブル更新要求をする（Ｆ５１１−１、Ｆ５１１−２、Ｆ５１１−４、Ｆ５１１−７）。
図６のように、ＤＣ側ＨＢ受信部からのテーブル更新要求を受け、自ＤＣ用テーブル管理部は、受信ＨＢ応答パケットの送信元アドレスに該当する自ＤＣ用テーブル（Ｔ５０８−４）のＨＢ有無ビット（Ｔ５０８−４）を１（ＨＢ有）に設定し、減算カウンタ（Ｔ５０８−３）に初期値（Ｔ５０８−２）をロードする（Ｆ５０９−３）。
図５のように、ＮＷ側ＨＢ送信部（５１−２）は、自ＤＣ用テーブルの各ＨＢ有無ビット（Ｔ５０８−４）の値を読み、ＨＢ有無ビットマップを作成し、対向の代行サーバへ多重化ＨＢパケット（Ｔ４０）として送信する（Ｆ５０２−２）。
【００６９】
ｉｉｉ）多重化ＨＢパケット受信
図１５のように、ＮＷ側ＨＢ受信部（５１−１）は、ＨＢ多重化パケット（Ｔ４０）を受信するとＨＢ有無ビットマップから他ＤＣ用テーブルの各ＨＢ有無ビット（Ｔ５０６）の値を更新する。（Ｆ５１４−３）
なお、「ｉ）自サーバからのＨＢ要求パケットに対するＨＢ応答パケット返送」で説明したように、対向ＤＣ用テーブル管理部は、ＤＣ側ＨＢ受信部の要求を受けて（Ｆ７０３、Ｆ７０３−１）、更新された他ＤＣ用テーブルを参照し、該当ＨＢ有無ビットのビット値が１であれば（Ｆ７０３−２）、ＨＢ応答パケットをＤＣ側ＨＢ送信部経由でサーバへ返し（Ｆ７０３−３）、０であれば（Ｆ７０３−２）何も返さない。
以上の手順により、遠隔のサーバ間へＨＢ要求パケットを送信し、遠隔の冗長先サーバからＨＢ応答パケットが戻ってくるという一連の動作をＨＢ代行サーバで代行可能である。
【００７０】
３．シーケンス
（１）前提
図１７に、上述の実施の形態のシーケンス図を示す。該図はＤＣサイトＡ（１００）の仮想マシンＶＭａ１（１１−１）、ＶＭａ２（１１−２）、ＶＭａ３（１１−３）がそれぞれＤＣサイトＢ（２００）の仮想マシンＶＭｂ１（２１−１）、ＶＭｂ２（２１−２）、ＶＭｂ３（２１−３）と冗長構成の組をなしており、ＤＣサイトＡ（１００）内仮想マシンからＤＣサイトＢ（２００）内仮想マシンへＨＢ要求パケットを送信し、ＨＢ要求パケットを受信した仮想マシンが正常であれば、ＤＣサイトＢ（２００）内仮想マシンがＤＣサイトＡ（１００）内冗長先仮想マシンへ応答パケットを返す状況を示している。図１７では、ＤＣサイトＢ（２００）内仮想マシンからＤＣサイトＡ（１００）内仮想マシンへＨＢ要求パケットを送信し、送信先の仮想マシンが正常であれば、応答パケットを返すフローについての図示は省略しており、実際には対称的な振る舞いをしているものとする。つまり、ＶＭａ１からＶＭｂ１宛にＨＢ要求パケットが送信されると、ＶＭｂ１からＶＭａ１宛にＨＢ要求パケットが送信されることになる。
【００７１】
図１８、図１９は上述の実施の形態のＨＢ代行サーバ内各テーブルの変化を示している。
保守者は、各ＤＣ内仮想マシンのアドレスやＨＢ送信周期の情報について既知であり、保守端末（６０）を通してＨＢ代行サーバに各仮想マシンについての情報やＨＢ代行サーバの設定情報を入力する。入力された情報をもとに制御部（５１−５）が各ブロックの初期設定を行う。ここでは自ＤＣ用テーブル内減算カウンタの初期値については、対向ＤＣ内仮想マシンのＨＢ送信周期＋１０００カウントになるように設定し（Ｔ２１８−１）、対向ＤＣ用テーブル内減算カウンタの初期値については、対向ＤＣ内仮想マシンのＨＢ送信周期になるように設定する  （Ｔ２１６−１）。
【００７２】
（２）ＨＢ送受信代行前
まずＨＢ送受信代行開始前については、ＨＢ代行サーバＡ（１０）およびＨＢ代行サーバＢ（２０）内の自ＤＣ用テーブル管理部（５１−９）および対向ＤＣ用テーブル管理部（５１−７）がテーブルの１行目から順に減算カウンタの値を１ずつ減らしていく。
ＶＭａ３（１１−１）からＨＢ要求パケットが送信されると、ＨＢ代行サーバＡ内ＤＣ側ＨＢ受信部（５１−１）で受信し、ＮＷ側ＨＢ送信部（５１−２）で受信ＨＢパケットをそのままＮＷ側へ転送する（Ｓ２１−ａ３）。
【００７３】
ＮＷを経由してＨＢ要求パケットがＨＢ代行サーバＢへ届くと、ＨＢ代行サーバＢの対向ＤＣ用テーブルＨＢ内ＶＭａ３のＨＢ有無ビットを１にセットし、減算カウンタに初期値をロードする（Ｔ２１６−２）。続いてＨＢ代行サーバＢは受信ＨＢ要求パケットをそのままＶＭｂ３へ送信する。ＶＭｂ３は正常なので、ＨＢ要求パケットを受信するとＶＭａ３へＨＢ応答パケットを送信する（Ｓ２１−ｂ３）。一旦、ＶＭｂ３から送信されるＨＢ応答パケットはＨＢ代行サーバＢ内ＤＣ側ＨＢ受信部で受信され、自ＤＣ用テーブル管理部がＶＭｂ３のＨＢ有無ビットを１にセットし、該当の減算カウンタに初期値をロードする（Ｔ２１８−２）。
【００７４】
同様にＶＭａ２（１１−２）がＨＢ要求パケットを送信し、ＨＢ代行サーバＡ内ＤＣ側ＨＢ受信部（５１−１）で受信し、ＮＷ側ＨＢ送信部（５１−２）で受信ＨＢパケットをそのままＮＷ側へ転送する（Ｓ２１−ａ２）。ＮＷを経由してＨＢ要求パケットがＨＢ代行サーバＢへ届くと、ＨＢ代行サーバＢの対向ＤＣ用テーブルＨＢ内ＶＭａ２のＨＢ有無ビットを１にセットし、減算カウンタに初期値をロードする。続いてＨＢ代行サーバＢは受信ＨＢ要求パケットをそのままＶＭｂ２へ送信する。ＶＭｂ２は正常なので、ＨＢ要求パケットを受信するとＶＭａ２へＨＢ応答パケットを送信する（Ｓ２１−ｂ２）。一旦、ＶＭｂ２が送信したＨＢ応答パケットについても同様にＨＢ代行サーバＢ内ＤＣ側ＨＢ受信部で受信され、自ＤＣ用テーブル管理部がＶＭｂ２のＨＢ有無ビットを１にセットし、該当の減算カウンタに初期値をロードする（Ｔ２１８−３）。
【００７５】
ＶＭａ１（１１−２）についても同様にＨＢ要求パケットを送信し、ＨＢ代行サーバＡ内ＤＣ側ＨＢ受信部（５１−１）で受信し、ＮＷ側ＨＢ送信部（５１−２）で受信ＨＢパケットをそのままＮＷ側へ転送する（Ｓ２１−ａ１）。ＮＷを経由してＨＢ要求パケットがＨＢ代行サーバＢへ届くと、ＨＢ代行サーバＢの対向ＤＣ用テーブルＨＢ内ＶＭａ１のＨＢ有無ビットを１にセットし、減算カウンタに初期値をロードする（Ｔ２１６−３）。続いてＨＢ代行サーバＢは受信ＨＢ要求パケットをそのままＶＭｂ１へ送信する。ＶＭｂ１は正常なので、ＨＢ要求パケットを受信するとＶＭａ１へＨＢ応答パケットを送信する（Ｓ２１−ｂ１）。
一旦、ＶＭｂ１が送信したＨＢ応答パケットはＨＢ代行サーバＢ内ＤＣ側ＨＢ受信部で受信され、自ＤＣ用テーブル管理部がＶＭｂ１のＨＢ有無ビットを１にセットし、該当の減算カウンタに初期値をロードする（Ｔ２１８−４）。
【００７６】
（３）ＨＢ送受信代行後
ｉ）正常時
保守者が保守端末（６０）を通して、ＨＢ送受信代行開始の設定を行うと、保守者が設定した一定の時間間隔でＨＢ代行サーバＢ（２０）内ＮＷ側ＨＢ送信部が自ＤＣ用テーブル内ＨＢ有無情報（Ｔ５０８−４）をもとに、ＨＢ多重化パケット（Ｔ４０）を生成し、ＨＢ代行サーバＡ（１０）へ送信する（Ｓ２１−ｃ）。ただし、このＨＢ多重化パケットはＨＢ送受信代行開始直前に更新されたＨＢ有無情報に基づいているため、ＤＣサイトＡ内各仮想マシンからＨＢ要求パケットが送信されると（Ｓ２２−ａ１、Ｓ２２−ａ３、Ｓ２２−ａ２）、ＨＢ代行前の情報をもとにＨＢ代行サーバＡ内対向ＤＣ用テーブル管理部がＨＢ応答パケットを生成し（Ｆ７０４−４）、ＤＣ側ＨＢ送信部から各仮想マシンへ送信する（Ｆ５０３−１、Ｓ２２−ｂ１、Ｓ２２−ｂ３、Ｓ２２−ｂ２）。
【００７７】
一方、ＨＢ代行サーバＢ内対向ＤＣ用テーブルのＶＭａ１と対応するＶＭｂ１用減算カウンタが０になると、カウンタに初期値をロードし、該当のＨＢ有無ビットが１であれば、ＨＢ要求パケットをＶＭｂ１へ送信する（Ｓ２３−ａ１、Ｔ２１６−４）。ＶＭｂ１はＨＢ要求パケットを受けて、ＶＭａ１へＨＢ応答パケットを送信する（Ｓ２３−ｂ１）。
ＶＭｂ３  、ＶＭｂ２についても同様にＨＢ代行サーバＢ内対向ＤＣ用テーブルの減算カウンタが０になると、該当のＨＢ有無ビットが１であれば、カウンタに初期値をロードし、ＨＢ要求パケットをＶＭｂ３  、ＶＭｂ２へ送信する（Ｆ７０４−４、Ｆ５０３−１、Ｓ２３−ａ３、Ｓ２３−ａ２）。
【００７８】
ｉｉ）故障発生時
ここでＶＭｂ２に故障が発生した場合を想定する。この場合ＶＭｂ１とＶＭｂ３は正常であるためＨＢ応答パケットを返すが（Ｓ２３−ｂ３）、ＶＭｂ２は故障しているためＨＢ応答パケットを返さない（Ｓ２３−ｂ２）。ＶＭｂ２からＨＢ応答パケットが返ってこないため、ＨＢ代行サーバＢ内自ＤＣ用テーブルのＶＭｂ２用減算カウンタに初期値がロードされない（Ｔ２１８−５）。
ＶＭｂ２用減算カウンタに初期値がロードされないため、一定時間後、減算カウンタ値は０になりＨＢ有無ビットに０がセットされる（Ｆ５０９−４、Ｔ２１８−６）。
【００７９】
一方、ＨＢ代行サーバＡ内ＮＷ側ＨＢ受信部でＨＢ多重化パケットを受信すると、ＨＢ代行サーバＡ内対向ＤＣ用テーブルのＨＢ有無情報（Ｔ５０６−４）が更新される（Ｓ２１−ｃ、Ｔ１１６−１）。
ＶＭａ１がＶＭｂ１にＨＢ要求パケットを送信すると（Ｓ２４−ａ１）、ＨＢ代行サーバＡ内ＤＣ側ＨＢ受信部で、ＨＢ要求パケットを受信し、対向ＤＣ用テーブル管理部が更新された対向ＤＣ用テーブルの情報を見て、ＨＢ有無ビットが１であれば、ＨＢ応答パケットをＤＣ側ＨＢ送信部から送り返す（Ｓ２４−ｂ１）。
【００８０】
続いてＨＢ代行サーバＢからＨＢ代行サーバＡへＨＢ多重化パケットが送信されると（Ｓ２２−ｃ）、ＶＭｂ２のＨＢ有無情報は０（ＨＢ無）になっているから、ＨＢ代行サーバＡ内対向ＤＣ用テーブルのＶＭｂ２用ＨＢ有無ビットが０に設定される（Ｔ１１６−２）。
ＤＣサイトＡ内各仮想マシンからＨＢ要求パケットの送信があると（Ｓ２６−ａ１、Ｓ２４−ａ３、Ｓ２４−ａ２）、ＨＢ代行サーバＡは、ＨＢ代行サーバＡ内対向ＤＣ用テーブルのＨＢ有無ビットを参照し、ＶＭａ１、ＶＭａ３にＨＢ応答パケットを送信し（Ｓ２６−ｂ１、Ｓ２４−ｂ３）、ＶＭａ２にはＨＢ応答パケットを送信しない（Ｓ２４−ｂ２）。
ＶＭａ２（１１−２）はＨＢ要求をしても、応答パケットが戻らない状況が一定時間続くと、ＶＭｂ２（２１−２）が故障したと判断する。
【００８１】
（４）テーブル
図２０（ａ）は、上述のシーケンスにおけるＨＢ代行サーバＢ内自ＤＣ用テーブルのＶＭｂ２についての減算カウンタ値およびＨＢ有無ビットの変化の様子を示す。ＨＢ代行サーバがＨＢ有無情報を学習し始めると、減算カウンタのカウントが始まる。ＨＢ有無ビットの初期値は０であるが、ＶＭｂ２からＨＢ応答パケットを受信するとＨＢ有無ビットが１に設定され、減算カウンタに初期値がロードされる。ＶＭｂ２から送信されるＨＢ応答パケットを受信される度にＨＢ有無ビットが１にセットされ、減算カウンタ値も初期値に戻る。ＨＢ代行が開始されるとＤＣサイトＡ内のＨＢ有無ビット値は多重化パケットで一括してＨＢ代行サーバＡへ送信されるが、減算カウンタの機能は変わらず、ＶＭｂ２からのＨＢ応答パケットの有無を判断するタイマーとして機能する。ＶＭｂ２からＨＢ応答パケットが送信されないと、カウンタに初期値がロードされないため、減算し続け、やがてカウンタ値が０になるとＨＢ有無ビットが０にセットされる。ＶＭｂ２からＨＢ応答パケットが送信される間はＨＢ有無ビット値を１に保持したいため、カウンタの周期をＨＢ応答パケットの送信周期、つまりＶＭａ２のＨＢ要求パケット送信周期より長めに設定する必要がある。本実施の形態ではＨＢ要求パケット送信周期に１０００カウント加えた時間をカウンタ周期としている。
【００８２】
図２０（ｂ）は、上述のシーケンスにおけるＨＢ代行サーバＡ内対向ＤＣ用テーブルのＶＭｂ２についての減算カウンタ値およびＨＢ有無ビットの変化の様子を示す。ＨＢ代行サーバがＨＢ有無情報を学習し始めると、減算カウンタのカウントが始まる。ＨＢ有無ビットの初期値は０であるが、ＶＭｂ２からＨＢ応答パケットを受信するとＨＢ有無ビットが１に設定され、減算カウンタに初期値がロードされる。ＶＭｂ２から送信される応答ＨＢパケットを受信する度にＨＢ有無ビットが１にセットされ、減算カウンタ値も初期値に戻るため、減算カウンタはＨＢ要求パケットの有無を判断するタイマーとして機能する。ＨＢ代行が開始されるとＨＢ有無ビット値が多重化パケットで一括してＨＢ代行サーバＢから送信され、対向ＤＣ用テーブルのＨＢ有無ビット値の値が更新される。減算カウンタ値が０になると、初期値に戻り、ＨＢ有無ビットを確認し、ビット値が１であればＨＢ応答パケットをＶＭａ２へ送信するため、ＨＢ代行中の減算カウンタはＨＢ応答パケットの送信周期を計るタイマーとして機能する。一方、ビット値が０であれば、ＨＢ応答パケットをＶＭａ２へ送信しない。
【産業上の利用可能性】
【００８３】
以上では、主に「ハートビート」や「ハートビート信号」を用いて説明したが、「ハートビート」には、この直接の名称のもの以外にも、死活を監視するための信号やその他の適宜の参照信号を含むことができる。
【符号の説明】
【００８４】
１００：ＤＣサイトＡ
２００：ＤＣサイトＢ
３００：サイト間ネットワーク
１０：ＨＢ代行サーバＡ
１１：物理サーバＡ１
１１−０：Ｈｙｐｅｒｖｉｓｏｒ  Ａ１
１１−１：仮想マシンＶＭａ１
１１−２：仮想マシンＶＭａ２
１１−ｉ：仮想マシンＶＭａｉ
１２：物理サーバＡ２
１ｊ：物理サーバＡｊ
２０：ＨＢ代行サーバＢ
２１：物理サーバＢ１
２１−０：Ｈｙｐｅｒｖｉｓｏｒ  Ｂ１
２１−１：仮想マシンｂ１
２１−２：仮想マシンｂ２
２１−ｉ：仮想マシンｂｉ
２２：物理サーバＢ２
２ｊ：物理サーバＢｊ
４０、Ｔ４０：ＨＢ多重化パケット
４１、４２、４３、４４、Ｔ４１：ＨＢパケット
５０、５１：ＨＢ代行サーバ
５０−１、５１−１：ＤＣ側ＨＢ受信部
５０−２、５１−２：ＮＷ側ＨＢ送信部
５０−３、５１−３：ＤＣ側ＨＢ送信部
５０−４、５１−４：ＮＷ側ＨＢ受信部
５０−５、５１−５：制御部
５０−６、５１−６、Ｔ５０６：対向ＤＣ用テーブル
５０−７、５１−７：対向ＤＣ用テーブル管理部
５０−８、５１−８、Ｔ５０８：自ＤＣ用テーブル
５０−９、５１−９：自ＤＣ用テーブル管理部
６０：保守端末
Ｔ５０８−１：自ＤＣ側サーバアドレス
Ｔ５０８−２：減算カウンタ初期値
Ｔ５０８−３：減算カウンタ値
Ｔ５０８−４：ＨＢ有無
Ｔ５０６−１：自ＤＣ側サーバアドレス
Ｔ５０６−２：減算カウンタ初期値
Ｔ５０６−３：減算カウンタ値
Ｔ５０６−４：ＨＢ有無
Ｔ４１−１：送信元アドレス
Ｔ４１−２：宛先アドレス
Ｔ４１−３：パケットの種類
Ｔ４１−４：その他のヘッダ情報
Ｔ４０−１：送信元アドレス
Ｔ４０−２：宛先アドレス
Ｔ４０−３：パケットの種類
Ｔ４０−４：ＨＢパケットの有無情報（サーバ１）
Ｔ４０−５：ＨＢパケットの有無情報（サーバ２）
Ｔ４０−６：ＨＢパケットの有無情報（サーバｍ）
Ｔ４０−７：その他のヘッダ情報
【図１】
0005687173.tif 000002
【図２】
0005687173.tif 000003
【図３】
0005687173.tif 000004
【図４】
0005687173.tif 000005
【図５】
0005687173.tif 000006
【図６】
0005687173.tif 000007
【図７（ａ）】
0005687173.tif 000008
【図７（ｂ）】
0005687173.tif 000009
【図８（ａ）】
0005687173.tif 000010
【図８（ｂ）】
0005687173.tif 000011
【図８（ｃ）】
0005687173.tif 000012
【図９】
0005687173.tif 000013
【図１０】
0005687173.tif 000014
【図１１】
0005687173.tif 000015
【図１２】
0005687173.tif 000016
【図１３】
0005687173.tif 000017
【図１４】
0005687173.tif 000018
【図１５】
0005687173.tif 000019
【図１６（ａ）】
0005687173.tif 000020
【図１６（ｂ）】
0005687173.tif 000021
【図１６（ｃ）】
0005687173.tif 000022
【図１７】
0005687173.tif 000023
【図１８】
0005687173.tif 000024
【図１９】
0005687173.tif 000025
【図２０】
0005687173.tif 000026