(57)【要約】【課題】障害が発生した主系サーバ上でＩＰアドレスの使用を停止できない場合でも、待機系サーバが主系サーバから引き継ぐＩＰアドレスの競合状態を回避できるようにする。【解決手段】待機系サーバ１-2の中間ドライバ１５は、主系サーバ１-1の障害を検知した場合に、当該主系サーバ１-1が提供するサービスで使用されるＩＰアドレスの使用停止を当該主系サーバ１-1に要求するための停止パケットを待機系サーバ１-2のネットワークドライバ１４及びネットワーク３を介して当該主系サーバ１-1宛てに送信する。主系サーバ１-1の中間ドライバ１５は、停止パケットを受信した場合に、当該主系サーバ１-1をネットワークドライバ１４とＴＣＰ／ＩＰモジュール１６との間のデータ送受信が不可となる特定状態に設定する。【選択図】      図１
2008028456.tif 000002
【特許請求の範囲】
【請求項１】
ＴＣＰ／ＩＰプロトコルを適用するネットワークによって相互接続される第１のサーバ及び第２のサーバから構成され、前記第１及び第２のサーバの一方のサーバが主系サーバとして機能して前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供する場合、前記第１及び第２のサーバの他方のサーバは待機系サーバとして機能し、前記一方のサーバの障害を検知した場合、前記一方のサーバが提供するサービスと当該サービスで使用される特定ＩＰアドレスとを引き継ぐコンピュータシステムにおいて、
前記第１及び第２のサーバは、
ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うネットワークドライバと、
ＴＣＰ／ＩＰ通信におけるＴＣＰ／ＩＰ層の処理を行うＴＣＰ／ＩＰモジュールと、
前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間に位置し、前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信を制御する中間ドライバと
を具備し、
前記第２のサーバの前記中間ドライバは、前記第２のサーバが前記待機系サーバとして機能して前記第１のサーバの障害を検知した場合に、前記特定ＩＰアドレスの使用停止を当該第１のサーバに要求するための停止パケットを前記第２のサーバの前記ネットワークドライバ及び前記ネットワークを介して当該第１のサーバ宛てに送信し、
前記第１のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、前記第１のサーバを前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信が不可となる特定状態に設定する
ことを特徴とするコンピュータシステム。
【請求項２】
前記第２のサーバの前記中間ドライバは、前記第１のサーバの物理アドレスを格納するサーバ情報テーブルを含み、
前記第２のサーバの前記中間ドライバは、前記サーバ情報テーブルに格納されている前記第１のサーバの物理アドレスを前記停止パケットの宛先物理アドレスとする
ことを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記第１のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、当該中間ドライバの状態を前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを可能とする通過可能状態から前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを抑止する通過不可状態に切り替えることにより、前記第１のサーバを前記特定状態に設定することを特徴とする請求項１記載のコンピュータシステム。
【請求項４】
前記第２のサーバの前記中間ドライバは前記停止パケットを送信した後、前記特定ＩＰアドレスの競合を確認するための特別のアドレス解決プロトコル要求をブロードキャストで前記ネットワークに送信し、
前記第１のサーバの前記中間ドライバは前記通過可能状態において前記特別のアドレス解決プロトコル要求を受信した場合、当該特別のアドレス解決プロトコル要求を前記第１のサーバの前記ＴＣＰ／ＩＰモジュールに送信し、
前記第１のサーバの前記ＴＣＰ／ＩＰモジュールは、前記特別のアドレス解決プロトコル要求を受信した場合、当該特別のアドレス解決プロトコル要求に対する応答である前記特定ＩＰアドレスの重複を警告するアドレス解決プロトコル応答を前記第２のサーバに返し、
前記第２のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求に対する前記アドレス解決プロトコル応答を受信した場合、前記停止パケットを前記第１のサーバ宛てに再度送信し、しかる後に前記特別のアドレス解決プロトコル要求をブロードキャストで前記ネットワークに送信する
ことを特徴とする請求項３記載のコンピュータシステム。
【請求項５】
前記第１及び第２のサーバの前記中間ドライバは、前記第１及び第２のサーバの物理アドレス及び前記特定ＩＰアドレスを格納するサーバ情報テーブルを含み、
前記第２のサーバの前記中間ドライバは、前記サーバ情報テーブルに格納されている前記第１のサーバの物理アドレスを前記停止パケットの宛先物理アドレスとし、前記サーバ情報テーブルに格納されている前記第２のサーバの物理アドレス及び前記特定ＩＰアドレスをそれぞれ前記特別のアドレス解決プロトコル要求の送信元物理アドレス及びターゲットＩＰアドレスとする
ことを特徴とする請求項４記載のコンピュータシステム。
【請求項６】
前記第２のサーバの前記中間ドライバは、前記停止パケットを前記第１のサーバに送信する第１の送信動作と、当該第１の送信動作の後に前記特別のアドレス解決プロトコル要求をブロードキャストで送信する第２の送信動作とを含む動作を繰り返すことを特徴とする請求項４記載のコンピュータシステム。
【請求項７】
前記第１及び第２のサーバの前記中間ドライバは、前記第１及び第２のサーバの物理アドレス及び前記特定ＩＰアドレスを格納するサーバ情報テーブルを含み、
前記第２のサーバの前記中間ドライバは、前記サーバ情報テーブルに格納されている前記第１のサーバの物理アドレスを前記停止パケットの宛先物理アドレスとし、前記サーバ情報テーブルに格納されている前記第２のサーバの物理アドレス及び前記特定ＩＰアドレスをそれぞれ前記特別のアドレス解決プロトコル要求の送信元物理アドレス及びターゲットＩＰアドレスとする
ことを特徴とする請求項６記載のコンピュータシステム。
【請求項８】
前記第１のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、オペレーティングシステムが提供するシステム緊急停止機能を利用して前記第１のサーバを停止させることにより、当該第１のサーバを前記特定状態に設定することを特徴とする請求項１記載のコンピュータシステム。
【請求項９】
ＴＣＰ／ＩＰプロトコルを適用するネットワークによって相互接続される第１のサーバ及び第２のサーバから構成され、前記第１及び第２のサーバの一方のサーバが主系サーバとして機能して前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供する場合、前記第１及び第２のサーバの他方のサーバは待機系サーバとして機能し、前記一方のサーバの障害を検知した場合、前記一方のサーバが提供するサービスと当該サービスで使用される特定ＩＰアドレスとを引き継ぐコンピュータシステムにおいて、
前記第１及び第２のサーバは、
ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うネットワークドライバと、
ＴＣＰ／ＩＰ通信におけるＴＣＰ／ＩＰ層の処理を行うＴＣＰ／ＩＰモジュールと、
前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間で送受信されるデータを制御する中間ドライバと
を具備し、
前記第２のサーバの前記ＴＣＰ／ＩＰモジュールは、前記第２のサーバが前記待機系サーバとして機能して前記第１のサーバの障害を検知した場合に、前記特定ＩＰアドレスの競合を確認するための特別のアドレス解決プロトコル要求をブロードキャストで前記ネットワークに送信し、
前記第１のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求を受信した場合に、前記第１のサーバが提供するサービスで使用される前記特定ＩＰアドレスの使用停止が要求されたものとして、前記第１のサーバを前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信が不可となる特定状態に設定する
ことを特徴とするコンピュータシステム。
【請求項１０】
前記第１のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求を受信した場合に、当該中間ドライバの状態を前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを可能とする通過可能状態から前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを抑止する通過不可状態に切り替えることにより、前記第１のサーバを前記特定状態に設定することを特徴とする請求項９記載のコンピュータシステム。
【請求項１１】
前記第２のサーバの前記中間ドライバは、当該第２のサーバの前記ＴＣＰ／ＩＰモジュールが前記特別のアドレス解決プロトコル要求を送信した後、前記特別のアドレス解決プロトコル要求を改めてブロードキャストで前記ネットワークに送信する動作を繰り返すことを特徴とする請求項１０記載のコンピュータシステム。
【請求項１２】
前記第１のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求を受信した場合に、オペレーティングシステムが提供するシステム緊急停止機能を利用して前記第１のサーバを停止させることにより、当該第１のサーバを前記特定状態に設定することを特徴とする請求項９記載のコンピュータシステム。
【請求項１３】
ＴＣＰ／ＩＰプロトコルを適用するネットワークに接続され、主系サーバ及び待機系サーバのいずれのサーバとしても機能することが可能であり、ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うネットワークドライバと、ＴＣＰ／ＩＰ通信におけるＴＣＰ／ＩＰ層の処理を行うＴＣＰ／ＩＰモジュールとを含むサーバコンピュータであって、前記主系サーバとして機能する場合には、前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供し、前記待機系サーバとして機能する場合には、前記ネットワークに接続されて前記主系サーバとして機能する他のサーバコンピュータの障害の検知により、当該他のサーバコンピュータが提供するサービスと当該サービスで使用される特定ＩＰアドレスとを引き継ぐサーバコンピュータによって実行されるプログラムにおいて、
前記サーバコンピュータに、
前記サーバコンピュータが前記待機系サーバとして機能して、前記他のサーバコンピュータが前記主系サーバとして機能している状態で、前記他のサーバコンピュータで障害が発生したことが前記サーバコンピュータで検知された場合に、前記特定ＩＰアドレスの使用停止を前記他のサーバコンピュータに要求するための停止パケットを、前記ネットワークドライバ及び前記ネットワークを介して当該他のバコンピュータ宛てに送信するステップと、
前記サーバコンピュータが前記主系サーバとして機能して、前記他のサーバコンピュータが前記待機系サーバとして機能している状態で、前記特定ＩＰアドレスの使用停止を要求するための停止パケットが前記他のサーバコンピュータから前記サーバコンピュータ宛てに送信されて前記サーバコンピュータで受信された場合に、前記サーバコンピュータを前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信が不可となる特定状態に設定するステップと
前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信が必要な場合に、前記サーバコンピュータが前記特定状態に設定されているかを判定するステップと、
前記サーバコンピュータが前記特定状態に設定されている場合、前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信を抑止するステップと
を実行させるためのプログラム。
【請求項１４】
ＴＣＰ／ＩＰプロトコルを適用するネットワークに接続され、主系サーバ及び待機系サーバのいずれのサーバとしても機能することが可能であり、ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うネットワークドライバと、ＴＣＰ／ＩＰ通信におけるＴＣＰ／ＩＰ層の処理を行うＴＣＰ／ＩＰモジュールとを含むサーバコンピュータであって、前記主系サーバとして機能する場合には、前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供し、前記待機系サーバとして機能する場合には、前記ネットワークに接続されて前記主系サーバとして機能する他のサーバコンピュータの障害の検知により、当該他のサーバコンピュータが提供するサービスと当該サービスで使用される特定ＩＰアドレスとを引き継ぐサーバコンピュータによって実行されるプログラムにおいて、
前記サーバコンピュータに、
前記サーバコンピュータが前記主系サーバとして機能して、前記他のサーバコンピュータが前記待機系サーバとして機能している状態で、前記サーバコンピュータで障害が発生した結果、前記他のサーバコンピュータが引き継ぐ前記特定ＩＰアドレスの競合を確認するために前記他のサーバコンピュータによりブロードキャストで前記ネットワークに送信された特別のアドレス解決プロトコル要求が前記サーバコンピュータで受信された場合に、前記特定ＩＰアドレスの使用停止が要求されたものとして、前記サーバコンピュータを前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信が不可となる特定状態に設定するステップと、
前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信が必要な場合に、前記サーバコンピュータが前記特定状態に設定されているかを判定するステップと、
前記サーバコンピュータが前記特定状態に設定されている場合、前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信を抑止するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰ／ＩＰプロトコルを適用するネットワークによって相互接続される第１及び第２のサーバから構成され、当該第１及び第２のサーバ間でサービス及びＩＰアドレスの引き継ぎが可能なコンピュータシステム及びプログラムに関する。
【背景技術】
【０００２】
近年のクライアントサーバシステムでは、サーバ（サーバコンピュータ）の冗長性を高めるため、主系サーバと待機系サーバとが用意されるのが主流となっている。このようなシステムでは、主系サーバでの障害発生時に、待機系サーバにその機能（＝サービス：機能によりクライアントにサービスを提供するという意味）を引き継がせることができる。
【０００３】
また、例えば特許文献１には、クライアント（クライアント端末）がサーバ間のサービスを引き継ぎを意識せずに待機系サーバにアクセス可能とするため、待機系サーバはサービスの引き継ぎ時に、主系サーバが使用していたＩＰ（Internet Protocol）アドレスも同時に引き継ぐことが開示されている。以下の説明では、主系サーバから待機系サーバに引き継がれるＩＰアドレスを特定ＩＰアドレスと呼ぶ。
【特許文献１】特開平８−２１２０９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述のクライアントサーバシステムでは、主系サーバの障害発生時、主系サーバが特定ＩＰアドレスの使用を停止することが前提となっている。しかし主系サーバが、例えば高負荷状態でスローダウンしている場合、特定ＩＰアドレスの使用を停止できないことがある。一方、待機系サーバは主系サーバの障害を検知して特定ＩＰアドレスを引き継ぐ。このような場合、主系・待機系の両サーバが同一の特定ＩＰアドレスを使用する状態（ＩＰアドレス競合）が発生する。
【０００５】
上記の状態が発生した場合、以下の２つの問題が発生する。  
クライアント（またはルータを経由している場合ルータ）が、特定ＩＰアドレスにアクセスするためＡＲＰ（Address Resolution Protocol：アドレス解決プロトコル）要求を送信する場合、主系・待機系の両サーバからＡＲＰ応答が送信される。この場合クライアントが、障害状態にある主系サーバのＡＲＰ応答を受信すると、クライアントは、主系サーバに対し通信を行うため、通信障害が発生する。
【０００６】
待機系サーバは、ＩＰアドレスを引き継ぐとＴＣＰ（Transmission Control Protocol）／ＩＰ層にＩＰアドレスを設定する。このとき待機系サーバのＴＣＰ／ＩＰモジュールでは、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰと呼ばれる特別のＡＲＰ（以下、Ｇ−ＡＲＰと称する）によるＩＰアドレス競合のチェックが行われる。既に他のマシン（主系サーバ）がＩＰアドレスを使用している場合、Ｇ−ＡＲＰに対して当該他のマシン（主系サーバ）からＩＰアドレス競合を通知するＡＲＰ応答が返され、待機系サーバはＩＰアドレス設定に失敗する。
【０００７】
本発明は上記事情を考慮してなされたものでその目的は、障害が発生した主系サーバ上でＩＰアドレスの使用を停止できない場合でも、待機系サーバが主系サーバから引き継ぐＩＰアドレスの競合状態を回避できるコンピュータシステム及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の１つの観点によれば、ＴＣＰ／ＩＰプロトコルを適用するネットワークによって相互接続される第１のサーバ及び第２のサーバから構成され、前記第１及び第２のサーバの一方のサーバが主系サーバとして機能して前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供する場合、前記第１及び第２のサーバの他方のサーバは待機系サーバとして機能し、前記一方のサーバの障害を検知した場合、前記一方のサーバが提供するサービスと当該サービスで使用される特定ＩＰアドレスとを引き継ぐコンピュータシステムが提供される。このコンピュータシステムの前記第１及び第２のサーバは、ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行うネットワークドライバと、ＴＣＰ／ＩＰ通信におけるＴＣＰ／ＩＰ層の処理を行うＴＣＰ／ＩＰモジュールと、前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間に位置し、前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信を制御する中間ドライバとを具備する。前記第２のサーバの前記中間ドライバは、前記第２のサーバが前記待機系サーバとして機能して前記第１のサーバの障害を検知した場合に、前記特定ＩＰアドレスの使用停止を当該第１のサーバに要求するための停止パケットを前記第２のサーバの前記ネットワークドライバ及び前記ネットワークを介して当該第１のサーバ宛てに送信する。前記第１のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、前記第１のサーバを前記ネットワークドライバと前記ＴＣＰ／ＩＰモジュールとの間のデータ送受信が不可となる特定状態に設定する。
【発明の効果】
【０００９】
本発明によれば、主系サーバの障害が待機系サーバによって検知された場合、当該待機系サーバが主系サーバの提供するサービスで使用される特定ＩＰアドレスを引き継ぐ前に当該主系サーバ宛てに停止パケットを送信して、当該主系サーバのネットワークドライバとＴＣＰ／ＩＰモジュールとの間のデータ送受信が不可となる特定状態に当該主系サーバを強制的に設定することができる。これにより、主系サーバが高負荷状態でスローダウンしている等の要因で直ちに特定ＩＰアドレスの使用を停止できない場合でも、待機系サーバが特定ＩＰアドレスを使用する際のＩＰアドレス競合状態を回避することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態につき図面を参照して説明する。  
［第１の実施形態］
図１は本発明の第１の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図１において、サーバ（サーバコンピュータ）１-1及び１-2は、ＴＣＰ／ＩＰネットワークのようなＴＣＰ／ＩＰプロトコルを適用するネットワーク３によって接続されている。
【００１１】
ネットワーク３にはクライアント（クライアント端末）２も接続されている。クライアント２は、サーバ１-1及び１-2をネットワーク３を経由して利用する例えばパーソナルコンピュータである。クライアント２は、システム内のサーバ（例えばサーバ１-1）から所望のサービスの提供を受けるため特定のリクエストを当該サービスに対応付けられた（当該サービスで使用される）ＩＰアドレ宛てに送信する。図１のシステムでは、作図の都合上、１台のクライアント２がネットワーク３に接続されているが、一般には複数のクライアントがネットワーク３に接続されている。
【００１２】
サーバ１-1は、図１のシステムの状態では主系サーバとして機能して、クライアント（クライアント２）からのリクエストに応じたサービスをリクエスト元のクライアントに提供する。そこで以降の説明では、サーバ１-1を主系サーバ１-1と呼ぶこともある。
【００１３】
サーバ１-2は、図１のシステムの状態では待機サーバとして機能する。そこで以降の説明では、サーバ１-2を待機系サーバ１-2と呼ぶこともある。待機系サーバ１-2は、主系サーバ１-1での障害発生時に、主系サーバ１-1が提供するサービスと当該サービスで使用するＩＰアドレス（特定ＩＰアドレス）とを引き継ぐ。つまり、サーバ１-1及び１-2は、クラスタシステムのようなコンピュータシステムを構成する。
【００１４】
図１のシステムでは、説明を容易にするために、サーバ１-1を主系サーバ１-1、サーバ１-2を待機系サーバ１-2と呼んでいる。しかし、主系サーバと待機系サーバとに本質的な違いはなく、サーバ１-1及び１-2は、それぞれ別の処理を独立に行うことが可能である。つまり、あるサービスの実行に関して、サーバ１-1が主系サーバ、サーバ１-2が待機系サーバとして機能し、別のサービスの実行に関して、サーバ１-1が待機系サーバ、サーバ１-2が主系サーバとして機能することも可能である。
【００１５】
主系サーバ１-1及び待機系サーバ１-2上では、サービスプロセス１１が実行される。サービスプロセス１１は、ネットワーク３上のクライアント２から利用可能な、例えばＷｅｂサービス、或いはデータベースサービスのようなサービスを提供する。サービスプロセス１１は主系サーバ１-1及び待機系サーバ１-2上に複数存在でき、主系サーバ１-1と待機系サーバ１-2とでそのサービスの内容が異なっても良い。
【００１６】
サーバ１-1及び１−２は、それぞれクラスタ制御部１２を有する。サーバ１-1及び１−２のクラスタ制御部１２は相互に通信を行うことにより、当該クラスタ制御部１２が置かれるサーバ（以下、自系サーバと称する）及び他のサーバ（以下、他系サーバと称する）上での障害の検知、並びにサービスプロセス及びＩＰアドレスの引き継ぎを制御する。つまりクラスタ制御部１２は、主系サーバ１-1で障害が発生した場合に、当該主系サーバ１-1上で起動していたサービスプロセス１１及び当該サービスプロセス１１（によって提供されるサービス）で使用されていたＩＰアドレスを待機系サーバ１-2に引き継ぎ、クライアント２に対し主系サーバ１-1から待機系サーバ１-2への代替制御を意識させずにサービスを提供する。障害には様々種類があり、その検出方法も様々である。本実施形態においては、主系サーバ１-1のクラスタ制御部１２及び待機系サーバ１-2のクラスタ制御部１２との間における通信が停滞することにより、待機系サーバ１-2のクラスタ制御部１２が主系サーバ１-1の障害を検知する場合を想定する。
【００１７】
サーバ１-1及び１-2は、それぞれ、ネットワークインタフェース（ネットワークＩＦ）１３、ネットワークドライバ１４、中間ドライバ１５及びＴＣＰ／ＩＰモジュール１６を有する。
【００１８】
ネットワークＩＦ１３は、ネットワーク３とのインタフェースをなす。ネットワークドライバ１４は、ＴＣＰ／ＩＰ通信におけるデータリンク層の処理を行う。ＴＣＰ／ＩＰモジュール１６はオペレーティングシステム（ＯＳ）の一機能であり、ＴＣＰ／ＩＰ通信におけるＴＣＰ／ＩＰ層の処理（ＩＰ層以上のネットワーク階層の処理）を行う。
【００１９】
中間ドライバ１５は、ネットワークドライバ１４とＴＣＰ／ＩＰモジュール１６との間に設けられ、当該ネットワークドライバ１４とＴＣＰ／ＩＰモジュール１６との間のデータ送受信を制御する。ここでは中間ドライバ１５は、ネットワークドライバ１４とＴＣＰ／ＩＰモジュール１６との間で送受信されるデータを制御する。つまり中間ドライバ１５は、ネットワークドライバ１４とＴＣＰ／ＩＰモジュール１６とを論理的に接続する。従来のシステムでは、ネットワークドライバ１４とＴＣＰ／ＩＰモジュール１６との間で直接データが送受信されており、この点で図１のシステムは従来のシステムと異なる。中間ドライバ１５は、主系サーバ１-1及び待機系サーバ１-2の物理アドレスとしてのＭＡＣ（Media Access Control）アドレスと、主系サーバ１-1から待機系サーバ１-2に引き継がれるＩＰアドレス（特定ＩＰアドレス）の情報を持つ。本実施形態において、主系サーバ１-1及び待機系サーバ１-2の中間ドライバ１５は、例えばディスク記憶装置のような記憶装置に格納されている特定のプログラムを当該サーバ１-1及１-2が読み込んで実行することにより実現されるものとする。
【００２０】
さて、主系サーバ１-1上で障害が発生したものとする（ステップＳ１）。待機系サーバ１-2のクラスタ制御部１２は、主系サーバ１-1の障害を検知する（ステップＳ２）。待機系サーバ１-2のクラスタ制御部１２は、主系サーバ１-1にＩＰアドレスの使用を停止させるため、当該サーバ１-2の中間ドライバ１５に対し停止処理を要求する（ステップＳ３）。すると待機系サーバ１-2の中間ドライバ１５は、クラスタ制御部１２からの要求（停止要求）に応じて停止パケットを生成し、当該停止パケットを主系サーバ１-1に対して送信する（ステップＳ４）。この停止パケットの生成の詳細については後述する。
【００２１】
主系サーバ１-1の中間ドライバ１５は停止パケットを受信すると、以後主系サーバ１-1上の全ネットワーク処理を強制的にブロックする（ステップＳ５）。即ち主系サーバ１-1の中間ドライバ１５は、ネットワークドライバ１４からＴＣＰ／ＩＰモジュール１６に渡すために当該中間ドライバ１５に入力される全てのパケットを破棄する。同様に中間ドライバ１５は、ＴＣＰ／ＩＰモジュール１６からネットワークドライバ１４に渡すために当該中間ドライバ１５に入力される全てのパケットを破棄する。このように主系サーバ１-1は、当該サーバ１-1の中間ドライバ１５が停止パケットを受信することにより、ネットワークドライバ１４とＴＣＰ／ＩＰモジュール１６との間のデータ送受信が不可となる（抑止される）特定状態に設定される。
【００２２】
さて、待機系サーバ１-2の中間ドライバ１５は、停止パケットを主系サーバ１-1に送信した後、ＩＰアドレス（特定ＩＰアドレス）の競合を確認するために（つまり主系サーバ１-1がＩＰアドレスの使用を停止しているかを確認するために）Ｇ−ＡＲＰ（Ｇ−ＡＲＰパケット）をブロードキャストでネットワーク３に送信する（ステップＳ６）。このＧ−ＡＲＰの生成の詳細については後述する。
【００２３】
前記したように、主系サーバ１-1の中間ドライバ１５は停止パケットを受信すると、以後ネットワークドライバ１４からＴＣＰ／ＩＰモジュール１６に渡される全てのパケットを破棄する。このため、待機系サーバ１-2が送信したＧ−ＡＲＰも主系サーバ１-1の中間ドライバ１５によって破棄される（ステップＳ７）。よって、待機系サーバ１-2が送信したＧ−ＡＲＰが主系サーバ１-1のＴＣＰ／ＩＰモジュール１６に渡されることはなく、主系サーバ１-1から待機系サーバ１-2にＧ−ＡＲＰに対するＡＲＰ応答が返信されることはない。これにより待機系サーバ１-2は、主系サーバ１-1からＩＰアドレス（特定ＩＰアドレス）を引き継ぐことができる。
【００２４】
このように本実施形態においては、待機系サーバ１-2がＩＰアドレスを引継ぐ前に主系サーバ１-1宛てに停止パケットを送信し、当該サーバ１-1の全ネットワーク処理を強制的にブロック（停止）させることで、待機系サーバ１-2が当該ＩＰアドレスを使用する際のＩＰアドレス競合状態（つまり主系サーバ１-1及び待機系サーバ１-2が同一のＩＰアドレスを使用する状態）を防ぐことができる。
【００２５】
一方、待機系サーバ１-2のクラスタ制御部１２は、当該サーバ１-2の中間ドライバ１５に対し停止処理を要求した後、上記ＩＰアドレス（特定ＩＰアドレス）の設定を当該サーバ１-2のＴＣＰ／ＩＰモジュール１６に対して行う（ステップＳ８）。
【００２６】
待機系サーバ１-2のＴＣＰ／ＩＰモジュール１６は、ＩＰアドレスが設定されると、当該ＩＰアドレスの競合の確認のためにＧ−ＡＲＰをブロードキャストでネットワーク３に送信する。このＴＣＰ／ＩＰモジュール１６によるＧ−ＡＲＰの送信を、上記中間ドライバ１５によるＧ−ＡＲＰの送信（ステップＳ６）に代えて用いることも可能である。
【００２７】
ここで、待機系サーバ１-2によって送信された停止パケット（図１のステップＳ４）が例えばネットワーク３上で消失したなどの要因により、主系サーバ１-1の中間ドライバ１５が当該停止パケットを受信できなかった場合について、図２のパケットの流れを示す図を参照して説明する。
【００２８】
まず、主系サーバ１-1の中間ドライバ１５が停止パケットを受信できなかった場合、当該主系サーバ１-1上のネットワーク処理は中間ドライバ１５によってブロックされない。待機系サーバ１-2の中間ドライバ１５は、停止パケットを送信すると、Ｇ−ＡＲＰ（Ｇ−ＡＲＰパケット）をブロードキャストでネットワーク３に送信する（ステップＳ１１）。このステップＳ１１は、図１のステップＳ６に相当する。
【００２９】
待機系サーバ１-2からのＧ−ＡＲＰが主系サーバ１-1のネットワークＩＦ１３で受信され、当該サーバ１-1のネットワークドライバ１４から中間ドライバ１５に入力されたものとする。このとき主系サーバ１-1の中間ドライバ１５は、先に待機系サーバ１-2から送信された停止パケットを受信していないため、Ｇ−ＡＲＰを破棄せずに、当該サーバ１-1のＴＣＰ／ＩＰモジュール１６に通過させる。
【００３０】
すると主系サーバ１-1のＴＣＰ／ＩＰモジュール１６は、待機系サーバ１-2にＩＰアドレスの重複を警告するＡＲＰ応答を返信する（ステップＳ１２）。待機系サーバ１-2は、主系サーバ１-1から送信されたＡＲＰ応答を受信すると、当該待機系サーバ１-2の中間ドライバ１５が停止パケットの送信に失敗したと判断する。
【００３１】
そこで待機系サーバ１-2の中間ドライバ１５は、主系サーバ１-1からのＡＲＰ応答を当該待機系サーバ１-2のＴＣＰ／ＩＰモジュール１６に渡さずに破棄し、停止パケットを再度主系サーバ１-1に対して送信する（ステップＳ１３）。次に待機系サーバ１-2の中間ドライバ１５は、主系サーバ１-1がＩＰアドレスの使用を停止しているかを確認するため、主系サーバ１-1に対して再びＧ−ＡＲＰを送信する（ステップＳ１４）。
【００３２】
このように待機系サーバ１-2の中間ドライバ１５は、主系サーバ１-1からＡＲＰ応答を受信すると、当該ＡＲＰ応答を破棄して上記ステップＳ１３及びＳ１４の処理を実行する。これにより待機系サーバ１-2は、主系サーバ１-1からＩＰアドレスを引き継ぐことができる。
【００３３】
なお、主系サーバ１-1のＴＣＰ／ＩＰモジュール１６は、待機系サーバ１-2にＩＰアドレス（特定ＩＰアドレス）の重複を警告するＡＲＰ応答を返信した場合（ステップＳ１２）、当該主系サーバ１-1が特定ＩＰアドレスの正当な使用者であることを宣言するためにＧ−ＡＲＰをサブネット上に送信するのが一般的である。この場合、特定ＩＰアドレスに関し、サブネット上の各マシンのＡＲＰテーブル（ＭＡＣアドレスとＩＰアドレスとの対を含むアドレス情報が格納されるテーブル）が書き換えられる可能性がある。
【００３４】
しかし本実施形態では、待機系サーバ１-2の中間ドライバ１５は、主系サーバ１-1からＡＲＰ応答を受信すると、ステップＳ１３及びＳ１４の処理、即ち停止パケットを主系サーバ１-1に送信する動作とＧ−ＡＲＰをブロードキャストで送信する動作とを実行する。この待機系サーバ１-2の中間ドライバ１５による、停止パケット送信後のＧ−ＡＲＰの送信により、サブネット上の各マシンのＡＲＰテーブルが書き換えられた状態を修正することができる。また、停止パケットが主系サーバ１-1の中間ドライバ１５で受信された段階で、当該サーバ１-1の全ネットワーク処理がブロックされるため、ＩＰアドレス競合状態を解消することができる。
【００３５】
次に、待機系サーバ１-2の中間ドライバ１５による停止パケット及びＧ−ＡＲＰの定期送信について、図３のシーケンスチャートを参照して説明する。  
まず、待機系サーバ１-2から主系サーバ１-1に停止パケットが送信され（ステップＳ２１）、その後当該待機系サーバ１-2からＧ−ＡＲＰがブロードキャストで送信されたものとする（ステップＳ２２）。もし、主系サーバ１-1の中間ドライバ１５が、停止パケット及びＧ−ＡＲＰを共に受信できなかった場合、主系サーバ１-1はＩＰアドレスの使用を停止できない。しかし、主系サーバ１-1から待機系サーバ１-2にＡＲＰ応答は返されない。
【００３６】
この場合、待機系サーバ１-2は、主系サーバ１-1が稼動していることを検知できない。そこで待機系サーバ１-2の中間ドライバ１５は、停止パケットを送信する動作とＧ−ＡＲＰを送信する動作とを含む動作を例えば一定間隔で繰り返す（ステップＳ２３，Ｓ２４，Ｓ２５，Ｓ２６…）。つまり待機系サーバ１-2の中間ドライバ１５は、停止パケット及びＧ−ＡＲＰを定期的に送信する。
【００３７】
以上により、主系サーバ１-1で障害が発生した結果、待機系サーバ１-2から送信される停止パケット及びＧ−ＡＲＰを、主系サーバ１-1の中間ドライバ１５が全て受信できる場合、或いは停止パケット及びＧ−ＡＲＰのうちの停止パケットを受信できない場合、或いは停止パケット及びＧ−ＡＲＰ共に受信できない場合のいずれにおいても、待機系サーバ１-2はＩＰアドレスの競合状態を回避して、主系サーバ１-1から当該ＩＰアドレスを引き継ぐことが可能となる。
【００３８】
本実施形態において、中間ドライバ１５がＴＣＰ／ＩＰモジュール１６とネットワークドライバ１４との間に存在することは重要である。このことについて以下に述べる。  
一般にサーバはクライアント等からのＡＲＰ要求に応答する。しかし、障害が発生した主系サーバ１-1がＡＲＰ要求に応答すると、従来技術では、［発明が解決しようとする課題］の欄で述べたように通信障害が発生する。また、主系サーバ１-1が待機系サーバ１-2からのＧ−ＡＲＰにＡＲＰ応答を返信すると、従来技術では、待機系サーバ１-2はＩＰアドレス設定に失敗する。
【００３９】
上記ＡＲＰに関する処理は、ＯＳに含まれているＴＣＰ／ＩＰモジュール１６を介して行われる。このため、ＡＲＰの処理が発生することは、ＴＣＰ／ＩＰモジュール１６だけでなく、ＴＣＰ／ＩＰモジュール１６とネットワークドライバ１４との間に位置する中間ドライバ１５もまた動作可能な状態にあることを意味する。中間ドライバ１５が動作可能である場合、ＡＲＰの処理が発生しても、上述のように、待機系サーバ１-2はＩＰアドレスの競合状態を回避して、主系サーバ１-1から当該ＩＰアドレスを引き継ぐことが可能となる。
【００４０】
一方、中間ドライバ１５が動作しない場合、ネットワークドライバ１４から当該中間ドライバ１５に渡されたパケットは、当該中間ドライバ１５からＴＣＰ／ＩＰモジュール１６に渡すことができない。同様にＴＣＰ／ＩＰモジュール１６から中間ドライバ１５に渡されたパケットは、当該中間ドライバ１５からネットワークドライバ１４に渡すことができない。このように中間ドライバ１５が動作できない場合、当該中間ドライバ１５が存在するサーバ上の通信機能は停止し、上記ＡＲＰの問題も発生しない。
【００４１】
図４は、サーバ１-i（ｉ＝１，２）の特に中間ドライバ１５の詳細な構成を示すブロック図である。中間ドライバ１５は、サーバ１-iのネットワークドライバ１４から通信パケット（データリンク層ヘッダを含むデータリンク層パケット）を受信して、当該中間ドライバ１５内部でデータ処理を行い、当該サーバ１-1のＴＣＰ／ＩＰモジュール１６にＩＰパケットを送る。また中間ドライバ１５は、サーバ１-iのＴＣＰ／ＩＰモジュール１６からＩＰパケットを受信し、当該中間ドライバ１５内部でデータ処理を行い、当該サーバ１-iのネットワークドライバ１４に通信パケット（データリンク層パケット）を送る。
【００４２】
中間ドライバ１５は、上述したようにネットワークドライバ１４及びＴＣＰ／ＩＰモジュール１６の間に設けらており、データリンク入力部１５１、データリンク出力部１５２、停止パケット処理部１５３、ＩＰ入力部１５４、ＩＰ出力部１５５、パケット通過状態テーブルＴＢＬ１、サーバ情報テーブルＴＢＬ２及び他系サーバ状態テーブルＴＢＬ３を含む。
【００４３】
以下、中間ドライバ１５内のデータリンク入力部１５１、データリンク出力部１５２、停止パケット処理部１５３、ＩＰ入力部１５４及びＩＰ出力部１５５の動作を順次説明する。
【００４４】
まず、中間ドライバ１５内のデータリンク入力部１５１の動作について、図５のフローチャート、図６のデータフォーマット及び図７のパケット通過状態テーブルＴＢＬ１のデータ構造例を参照して説明する。
【００４５】
データリンク入力部１５１は、ネットワークドライバ１４から図６（ａ）、図６（ｂ）または図６（ｃ）に示されるようなパケット（ＡＲＰパケット）６１，パケット（停止パケット）６２またはパケット（データリンク層パケット）６３を入力データとして渡された場合、パケット通過状態テーブルＴＢＬ１をチェックする（ステップＳ３１）。パケット通過状態テーブルＴＢＬ１は、図７に示すように、中間ドライバ１５内をパケットが通過可能か否かを示すフラグを保持する。このフラグは、停止パケットを受信していない場合にパケット通過可能（パケット通過可能モード）を示す状態に設定され、停止パケットを受信するとパケット通過不可（パケット通過不可モード）を示す状態に設定される。
【００４６】
データリンク入力部１５１は、パケット通過状態テーブルＴＢＬ１によって通過不可（パケット通過不可モード）が示されている場合（ステップＳ３２）、入力データ（入力パケット）を破棄する（ステップＳ３３）。
【００４７】
一方、パケット通過状態テーブルＴＢＬ１によってパケット通過可能（パケット通過可能モード）が示されている場合、データリンク入力部１５１は、入力データがＡＲＰパケットか否かを判定する（ステップＳ３４）。もし、入力データが図６（ａ）に示すようなＡＲＰパケット６１である場合、データリンク入力部１５１は当該入力データ（つまりＡＲＰパケット６１）を、そのまま図６（ｄ）に示すＡＲＰパケット６４として停止パケット処理部１５３に送り（ステップＳ３５）、処理を終了する。
【００４８】
一方、入力データがＡＲＰパケットではない場合（ステップＳ３４）、データリンク入力部１５１は当該入力データが停止パケットか否かを判定する（ステップＳ３６）。もし、入力データが図６（ｂ）に示すような停止パケット６２である場合、データリンク入力部１５１は当該入力データ（つまり停止パケット６２）を、そのまま図６（ｅ）に示す停止パケット６５として停止パケット処理部１５３に送り（ステップＳ３５）、処理を終了する。
【００４９】
これに対し、入力データが停止パケットではない場合、つまり入力データがＡＲＰパケット及び停止パケット以外の図６（ｃ）に示すようなパケット（データリンク層パケット）６３の場合（ステップＳ３６）、データリンク入力部１５１はステップＳ３７に進む。このステップＳ３７において、データリンク入力部１５１は、入力データ（データリンク層パケット６３）からデータリンク層ヘッダを除いた部分、つまりＩＰヘッダとＩＰペイロードとから構成されるＩＰパケットを、図６（ｆ）に示すＩＰパケット６６としてＩＰ入力部１５４に送る。
【００５０】
次に、中間ドライバ１５内のデータリンク出力部１５２の動作について、図８のフローチャート及び図９のデータフォーマットを参照して説明する。
【００５１】
データリンク出力部１５２には、停止パケット処理部１５３またはＩＰ出力部１５５から、図９（ａ）に示す宛先ＭＡＣアドレス９１（宛先サーバの物理アドレス）と通信データ（データリンク層のペイロード）９２が送られる。この場合、データリンク出力部１５２は、宛先ＭＡＣアドレス９１及び通信データ（データリンク層のペイロード）９２を、そのまま図９（ｂ）に示す宛先ＭＡＣアドレス９３及び通信データ（データリンク層のペイロード）９４としてネットワークドライバ１４に送り（ステップＳ４１）、処理を終える。
【００５２】
次に、中間ドライバ１５内の停止パケット処理部１５３の動作について説明する。  
停止パケット処理部１５３は、以下に示す４つの処理
＜処理Ａ１＞
クラスタ制御部１２からの要求による、パケット通過状態テーブルＴＢＬ１、サーバ情報テーブルＴＢＬ２及び他系サーバ状態テーブルＴＢＬ３を初期設定する処理
＜処理Ａ２＞
クラスタ制御部１２から停止要求を受け取った場合に行われる処理（停止パケット生成及び停止パケット送信を含む処理）
＜処理Ａ３＞
データリンク入力部１５１からパケット（ＡＲＰパケットまたは停止パケット）を受信した場合の処理。
【００５３】
＜処理Ａ４＞
停止パケット及びＧ−ＡＲＰの定期送信処理。
【００５４】
を実行する。
【００５５】
次に、停止パケット処理部１５３によって実行される上記処理Ａ１について、図１０のフローチャートと、図１１のサーバ情報テーブルＴＢＬ２及び図１２の他系サーバ状態テーブルＴＢＬ３のデータ構造例とを参照して説明する。
【００５６】
クラスタ制御部１２は、例えばサーバ１-iへのプログラムのインストール時に中間ドライバ１５を機能させるために、テーブルＴＢＬ１，ＴＢＬ２及びＴＢＬ３の初期設定を要求する。この際、クラスタ制御部１２は、初期設定のための情報として、自系サーバ及び他系サーバ各々のＭＡＣアドレスと、引き継がれる特定ＩＰアドレス（引き継ぎＩＰアドレス）と、停止パケットを定期送信する際の送信間隔（定期送信間隔）の情報とを停止パケット処理部１５３に与える。
【００５７】
ここでは、
自系サーバのＭＡＣアドレス：ＡＡ：ＢＢ：ＣＣ：ＤＤ：ＥＥ：ＦＦ
他系サーバのＭＡＣアドレス：ＦＦ：ＥＥ：ＤＤ：ＣＣ：ＢＢ：ＡＡ
引き継ぎＩＰアドレス      ：１９２．１６８．１０．１０
定期送信間隔              ：１０秒
が与えられたものとする。
【００５８】
すると停止パケット処理部１５３は、クラスタ制御部１２から与えられた、自系サーバ及び他系サーバ各々のＭＡＣアドレスと、引き継ぎＩＰアドレスと、定期送信間隔の情報とをサーバ情報テーブルＴＢＬ２に設定する（ステップＳ５１）。図１１は、このときのサーバ情報テーブルＴＢＬ２（ここでは待機系サーバ１-2のサーバ情報テーブルＴＢＬ２）の設定内容の一例を示す。ここで、主系サーバ１-1のサーバ情報テーブルＴＢＬ２に設定される自系サーバのＭＡＣアドレス及び他系サーバのＭＡＣアドレスは、それぞれ、待機系サーバ１-2のサーバ情報テーブルＴＢＬ２に設定される他系サーバのＭＡＣアドレス及び自系サーバのＭＡＣアドレスに一致することに注意されたい。
【００５９】
次に停止パケット処理部１５３は、他系サーバ状態テーブルＴＢＬ３を初期設定する（ステップＳ５２）。テーブルＴＢＬ３は、他系サーバが正常状態または故障状態のいずれにあるかを示すフラグを保持する。ステップＳ５２では、テーブルＴＢＬ３に保持されるフラグが、他系サーバが正常状態にあることを示す状態に初期設定される。図１２は、このときの他系サーバ状態テーブルＴＢＬ３の設定内容の一例を示す。
【００６０】
最後に停止パケット処理部１５３は、パケット通過状態テーブルＴＢＬ１に保持されるフラグを通過可能を示す状態（図７に示す状態）に初期設定して（ステップＳ５３）、処理Ａ１を終了する。
【００６１】
次に、停止パケット処理部１５３（待機系サーバ１-2の中間ドライバ１５が有する停止パケット処理部１５３）によって実行される上記処理Ａ２について、図１３のフローチャートと、図１４のデータフォーマットとを参照して説明する。
【００６２】
停止パケット処理部１５３は、クラスタ制御部１２から停止要求を受け取った場合、図１３のフローチャートに従う処理Ａ２を開始する。まず停止パケット処理部１５３は、他系サーバ状態テーブルＴＢＬ３に保持されるフラグを他系サーバが故障状態にあることを示す状態に設定する（ステップＳ６１）。
【００６３】
次に停止パケット処理部１５３は、停止パケットを生成する（ステップＳ６２）。この停止パケットは、データリンク層のペイロードに、少なくとも停止パケットと識別できるデータが格納されていれば、どのような形式でもよい。図１４は、停止パケットとしてＩＰパケット１４２が使用されている例を示す。ＩＰパケット（停止パケット）１４２は、ＩＰヘッダとＩＰペイロードとから構成される。ここでは、ＩＰパケット（停止パケット）１４２のＩＰペイロードに停止パケットと識別できるデータが格納される。ＩＰパケット（停止パケット）１４２のＩＰヘッダは、送信元ＩＰアドレス及び宛先ＩＰアドレスを含む。図１４の例では、送信元ＩＰアドレス及び宛先ＩＰアドレスに、サーバ情報テーブルＴＢＬ２に設定されている引き継ぎＩＰアドレス（１９２．１６８．１０．１０）が用いられている。しかし本実施形態のように、ＩＰペイロードに停止パケットと識別できるデータが格納されてさえいれば、他のＩＰアドレスでも構わない。
【００６４】
停止パケット処理部１５３は、サーバ情報テーブルＴＢＬ２に設定されている他系サーバのＭＡＣアドレスを、上記生成された停止パケット１４２の宛先ＭＡＣアドレス１４１（図１４参照）として取得する。停止パケット処理部１５３は、この宛先ＭＡＣアドレス１４１及び停止パケット１４２をデータリンク出力部１５２に送る（ステップＳ６３）。
【００６５】
次に、停止パケット処理部１５３は、サーバ情報テーブルＴＢＬ２に設定されている情報を利用してＧ−ＡＲＰパケットを生成する（ステップＳ６４）。次に停止パケット処理部１５３は、生成されたＧ−ＡＲＰパケットを宛先ＭＡＣアドレスとしてのブロードキャストアドレスと共にデータリンク出力部１５２に送って（ステップＳ６５）、処理Ａ２を終了する。この場合、Ｇ−ＡＲＰパケットがネットワーク３上にブロードキャストで送信される。Ｇ−ＡＲＰパケットの生成方法については、後述する図１５のフローチャートのステップＳ７９の処理で図１８を参照して詳述する。
【００６６】
このように本実施形態によれば、中間ドライバ１５（待機系サーバ１-2の中間ドライバ１５）はサーバ情報テーブルＴＢＬ２に基づいて停止パケットを生成して、ＴＣＰ／ＩＰモジュール１６を経由せずに当該停止パケットを他系サーバ（主系サーバ１-1）の宛先ＭＡＣアドレス１４１宛てに送信することができる。同様に中間ドライバ１５は、サーバ情報テーブルＴＢＬ２に基づいてＧ−ＡＲＰパケットを生成して、ＴＣＰ／ＩＰモジュール１６を経由せずに当該Ｇ−ＡＲＰパケットをブロードキャストで送信することができる。
【００６７】
次に、停止パケット処理部１５３によって実行される上記処理Ａ３について、図１５のフローチャートと、図１６乃至図１９のデータフォーマットとを参照して説明する。
【００６８】
停止パケット処理部１５３は、データリンク入力部１５１からパケット（データリンク層パケット）を受信した場合、図１５のフローチャートに従う処理Ａ３を開始する。まず停止パケット処理部１５３は、入力データ（入力パケット）がＡＲＰ要求パケットであるかを判定する（ステップＳ７１）。もし、入力データが図１６（ａ）に示すようなＡＲＰパケット１６１であって且つ当該ＡＲＰパケット１６１がＡＲＰ要求を示すＡＲＰパケット（つまりＡＲＰ要求パケット）である場合、停止パケット処理部１５３は、当該入力データ（ＡＲＰ要求パケット）からデータリンク層ヘッダを除いた部分を、ＡＲＰ要求を示す図１６（ｅ）に示すＡＲＰパケット１６７としてＩＰ入力部１５４に送り（ステップＳ７２）、処理Ａ３を終了する。
【００６９】
これに対し、入力データがＡＲＰ要求パケットでない場合、停止パケット処理部１５３は、入力データがＡＲＰ応答パケットであるかを判定する（ステップＳ７３）。もし、入力データが図１６（ａ）に示すようなＡＲＰパケット１６１であって且つ当該ＡＲＰパケット１６１がＡＲＰ応答を示すＡＲＰパケットである場合、つまり図１７に示すＡＲＰ応答パケット１７０の場合、停止パケット処理部１５３は、当該ＡＲＰ応答パケット１７０に含まれている送信元ＭＡＣアドレス（送信元のサーバの物理アドレス）がサーバ情報テーブルＴＢＬ２に設定されている他系サーバのＭＡＣアドレスであるかを判定する（ステップＳ７４）。もし、送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスである場合、停止パケット処理部１５３は、ＡＲＰ応答パケット１７０に含まれている送信元ＩＰアドレス及びターゲットＩＰアドレスが同一であるかを判定する（ステップＳ７５）。もし、送信元ＩＰアドレス及びターゲットＩＰアドレスが同一である場合、停止パケット処理部１５３はターゲットＩＰアドレス（＝送信元ＩＰアドレス）が引き継ぎＩＰアドレス（特定ＩＰアドレス）であるかをサーバ情報テーブルＴＢＬ２に設定されている引き継ぎＩＰアドレスと比較することによって判定する（ステップＳ７６）。もし、ターゲットＩＰアドレス（＝送信元ＩＰアドレス）が引き継ぎＩＰアドレスである場合、停止パケット処理部１５３はステップＳ７７に進む。
【００７０】
このように、入力データがＡＲＰ応答パケット１７０であり、当該ＡＲＰ応答パケット１７０の送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスであり、且つ当該ＡＲＰ応答パケット１７０の送信元ＩＰアドレス及びターゲットＩＰアドレスが引き継ぎＩＰアドレスである場合、停止パケット処理部１５３はＡＲＰ応答パケット１７０が自系サーバ（ここでは待機系サーバ１-2）のＧ−ＡＲＰに対するＡＲＰ応答（ここでは主系サーバ１-1からのＡＲＰ応答）であるとして、ステップＳ７７に進む。
【００７１】
ステップＳ７７において、停止パケット処理部１５３は、（図１４に示される停止パケット１４２に相当する）図１６（ｃ）に示すような停止パケット１６４を、クラスタ制御部１２及びＴＣＰ／ＩＰモジュール１６から独立に生成する。次に停止パケット処理部１５３は、サーバ情報テーブルＴＢＬ２に設定されている他系サーバのＭＡＣアドレスを、上記生成された停止パケット１６４の宛先ＭＡＣアドレス１６３（図１６（ｃ）参照）として取得する。停止パケット処理部１５３は、この宛先ＭＡＣアドレス１６３及び停止パケット１６４をデータリンク出力部１５２に送る（ステップＳ７８）。
【００７２】
このように本実施形態においては、図１３のフローチャートに従って送信された他系サーバ（主系サーバ１-1）宛ての停止パケットが、例えばネットワーク３上で消失するなどの要因で、当該他系サーバの中間ドライバ１５で受信されずにＩＰアドレスの使用を停止できず、Ｇ−ＡＲＰに対して当該他系サーバの中間ドライバ１５からＩＰアドレス競合（ＩＰアドレスの重複）を警告するＡＲＰ応答が返された場合、当該他系サーバ宛てに停止パケットを再送することができる。
【００７３】
次に、停止パケット処理部１５３は、サーバ情報テーブルＴＢＬ２に設定されている情報を利用して、図１６（ｄ）に示されるＧ−ＡＲＰパケット１６６を生成する（ステップＳ７９）。ここではＧ−ＡＲＰパケット１６６の送信元ＭＡＣアドレスには、図１８に示すように、サーバ情報テーブルＴＢＬ２に設定されている自系サーバのＭＡＣアドレスが用いられる。また、Ｇ−ＡＲＰパケット１６６のターゲットＭＡＣアドレスには、図１８に示すように０アドレス（００：００：００：００：００：００）が用いられる。またＧ−ＡＲＰパケット１６６の送信元ＩＰアドレス及びターゲットＩＰアドレスには、図１８に示すように、サーバ情報テーブルＴＢＬ２に設定されている引き継ぎＩＰアドレスが用いられる。
【００７４】
次に停止パケット処理部１５３は、ブロードキャストアドレス（ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ）を図１６（ｄ）及び図１８に示す宛先ＭＡＣアドレス１６５として取得する。停止パケット処理部１５３は、この宛先ＭＡＣアドレス１６５及び生成されたＧ−ＡＲＰパケット１６６をデータリンク出力部１５２に送って（ステップＳ８０）、処理Ａ３を終了する。
【００７５】
一方、入力データがＡＲＰ応答パケット１７０であっても（ステップＳ７３）、当該ＡＲＰ応答パケット１７０の送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスでないか（ステップＳ７４）、或いは当該ＡＲＰ応答パケット１７０の送信元ＩＰアドレス及びターゲットＩＰアドレスが同一でないか（ステップＳ７５）、或いは同一であっても引き継ぎＩＰアドレスでない場合（ステップＳ７６）、停止パケット処理部１５３はＡＲＰ応答パケット１７０が自系サーバからのＧ−ＡＲＰに対するＡＲＰ応答ではないと判断する。この場合、停止パケット処理部１５３は、ＡＲＰ応答パケットからデータリンク層ヘッダを除いた部分を、図１６（ｅ）に示すＡＲＰパケット（ＡＲＰ応答パケット）１６７としてＩＰ入力部１５４に送り（ステップＳ７２）、処理を終了する。
【００７６】
また、入力データがＡＲＰ応答パケットでない場合（ステップＳ７３）、つまり入力データがＡＲＰ要求パケット及びＡＲＰ応答パケットのいずれでもない場合、停止パケット処理部１５３は、入力データが停止パケットであるかを判定する（ステップＳ８１）。もし、入力データが図１６（ｂ）に示すような停止パケット１６２である場合、停止パケット処理部１５３は図１９に示すように、当該停止パケット１６２に含まれている送信元ＭＡＣアドレスがサーバ情報テーブルＴＢＬ２に設定されている他系サーバのＭＡＣアドレスに一致するかを判定する（ステップＳ８２）。もし、送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスに一致する場合、停止パケット処理部１５３は図１９に示すように、停止パケット１６２（のＩＰヘッダ）に含まれている送信元ＩＰアドレス及び宛先ＩＰアドレスがサーバ情報テーブルＴＢＬ２に設定されている引き継ぎアドレスに一致するかを判定する（ステップＳ８３，Ｓ８４）。もし、送信元ＩＰアドレス及び宛先ＩＰアドレスが引き継ぎアドレスに一致する場合、停止パケット処理部１５３はステップＳ８５に進む。
【００７７】
このように、入力データが当該停止パケット１６２であり、当該停止パケット１６２の送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスであり、且つ当該停止パケット１６２の送信元ＩＰアドレス及び宛先ＩＰアドレスが引き継ぎＩＰアドレスである場合、停止パケット処理部１５３は停止パケット１６２が自系サーバに対するものとして、ステップＳ８５に進む。
【００７８】
ステップＳ８５において、停止パケット処理部１５３は、パケット通過状態テーブルＴＢＬ１に保持されるフラグをパケット通過不可を示す状態（図７に示す状態とは逆の状態）に変更して（ステップＳ８５）、処理Ａ３を終了する。
【００７９】
一方、入力データが停止パケット１６２でないか（ステップＳ８１）、停止パケット１６２であっても送信元ＭＡＣアドレス、送信元ＩＰアドレス及び宛先ＩＰアドレスのうち１つでもサーバ情報テーブルＴＢＬ２に設定されているデータと異なる場合（ステップＳＳ８２，Ｓ８３，Ｓ８４）、停止パケット処理部１５３は入力データが自系サーバに対するものではないと判断する。この場合、停止パケット処理部１５３は入力データを破棄して（ステップＳ８６）、処理Ａ３を終了する。
【００８０】
次に、停止パケット処理部１５３によって実行される上記処理Ａ４について、図２０のフローチャートと、図２１のデータフォーマットとを参照して説明する。この処理Ａ４は、サーバ情報テーブルＴＢＬ２で設定されている定期送信間隔毎に実行される。
【００８１】
停止パケット処理部１５３は、他系サーバ状態テーブルＴＢＬ３を参照して他系サーバの状態をチェックする（ステップＳ９１）。もし、他系サーバが正常状態である場合（ステップＳ９２）、停止パケット処理部１５３は何もせずに処理Ａ４を終了する。
【００８２】
これに対し、他系サーバが故障状態である場合（ステップＳ９２）、つまり他系サーバに障害が発生している場合、停止パケット処理部１５３は（図１４に示される停止パケット１４２に相当する）図２１（ａ）に示すような停止パケット２１２を生成する（ステップＳ９３）。次に停止パケット処理部１５３は、サーバ情報テーブルＴＢＬ２に設定されている他系サーバのＭＡＣアドレスを、上記生成された停止パケット２１２の宛先ＭＡＣアドレス２１１（図２１（ａ）参照）として取得する。停止パケット処理部１５３は、この宛先ＭＡＣアドレス２１１及び停止パケット２１２をデータリンク出力部１５２に送る（ステップＳ９４）。
【００８３】
次に、停止パケット処理部１５３は、サーバ情報テーブルＴＢＬ２の情報に基づいて、（図１８に示されるＧ−ＡＲＰ１６６に相当する）図２１（ｂ）に示すようなＧ−ＡＲＰ（Ｇ−ＡＲＰパケット）２１４を生成する（ステップＳ９５）。停止パケット処理部１５３は、ブロードキャストアドレス（ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ）を図２１（ｂ）に示す宛先ＭＡＣアドレス２１３として取得する。停止パケット処理部１５３は、この宛先ＭＡＣアドレス２１３及び生成されたＧ−ＡＲＰパケット２１４をデータリンク出力部１５２に送って（ステップＳ９６）、処理Ａ４を終了する。
【００８４】
次に、ＩＰ入力部１５４の動作について、図２２のフローチャート及び図２３のデータフォーマットを参照して説明する。
【００８５】
ＩＰ入力部１５４には、データリンク入力部１５１または停止パケット処理部１５３によって、図２３（ａ）または図２３（ｂ）に示されるようなＩＰパケット２３１またはＡＲＰパケット２３２が送られる。ＩＰ入力部１５４は、ＩＰパケット２３１またはＡＲＰパケット２３２を受信した場合、その受信パケットを図２３（ｃ）または図２３（ｄ）に示されるようなＩＰパケット２３３またはＡＲＰパケット２３４としてＴＣＰ／ＩＰモジュール１６に送って（ステップＳ１０１）、処理を終了する。
【００８６】
次に、ＩＰ出力部１５５の動作について、図２４のフローチャート及び図２５のデータフォーマットを参照して説明する。
【００８７】
ＩＰ出力部１５５には、ＴＣＰ／ＩＰモジュール１６によって、図２５（ａ）に示されるようなＩＰパケット２５２及び宛先ＭＡＣアドレス２５１、または図２５（ｂ）に示されるようなＡＲＰパケット２５４及び宛先ＭＡＣアドレス２５３が送られる。ＩＰ出力部１５５は、このようなデータ（宛先ＭＡＣアドレス２５１＋ＩＰパケット２５２または宛先ＭＡＣアドレス２５３＋ＡＲＰパケット２５４）を受信した場合、パケット通過状態テーブルＴＢＬ１をチェックする（ステップＳ１１１）。
【００８８】
もし、パケット通過状態テーブルＴＢＬ１によってパケット通過不可が示されている場合（ステップＳ１１２）、ＩＰ出力部１５５は入力データを破棄する（ステップＳ１１３）。これに対し、パケット通過状態テーブルＴＢＬ１によってパケット通過可能が示されている場合（ステップＳ１１２）、ＩＰ出力部１５５は入力データをそのままデータリンク出力部１５２に送り（ステップＳ１１４）、処理を終了する。ここでは、入力データが図２５（ａ）に示す宛先ＭＡＣアドレス２５１＋ＩＰパケット２５２の場合には、当該入力データが図２５（ｃ）に示す宛先ＭＡＣアドレス２５５＋ＩＰパケット２５６としてデータリンク出力部１５２に送られる。同様に、入力データが図２５（ｂ）に示す宛先ＭＡＣアドレス２５３＋ＡＲＰパケット２５４の場合には、当該入力データが図２５（ｄ）に示す宛先ＭＡＣアドレス２５７＋ＡＲＰパケット２５８としてデータリンク出力部１５２に送られる。
【００８９】
［第２の実施形態］
図２６は本発明の第２の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図２６において、図１と同様の要素には便宜的に同一参照符号を付してある。
【００９０】
第２の実施形態で適用される図２６のシステムは、第１の実施形態で適用された図１のシステムと異なって、サーバ１-1及び１-2によって共有されるストレージとしての共有ディスク（共有ディスク装置）４を有する。このようなシステムにおいて、主系サーバ１-1が例えば高負荷状態でスローダウンしている等の要因で、ＩＰアドレスの使用を停止できないものとする。この状態では、スローダウンしている主系サーバ１-1上でサービスプロセス１１が動作しているため、主系サーバ１-1と待機系サーバ１-2とが共有ディスク４を共有していると、当該共有ディスク４のデータ領域を破壊してしまう恐れがある。
【００９１】
この点を考慮して、第２の実施形態は、主系サーバ１-1の中間ドライバ１５が待機系サーバ１-2からの停止パケットを受信すると、ＯＳが提供する緊急停止機能を使用して、当該中間ドライバ１５が直ちに主系サーバ１-1全体を停止させることを特徴とする。
【００９２】
次に、図２６のシステムの動作について、図１のシステムと相違する点を中心に説明する。  
まず、主系サーバ１-1上で障害が発生したものとする（ステップＳ１２１）。待機系サーバ１-2のクラスタ制御部１２は、主系サーバ１-1の障害を検知すると（ステップＳ１２２）、主系サーバ１-1にＩＰアドレスの使用を停止させるため、当該サーバ１-2の中間ドライバ１５に対し停止処理を要求する（ステップＳ１２３）。待機系サーバ１-2の中間ドライバ１５は停止パケットを生成し、当該停止パケットを主系サーバ１-1に対して送信する（ステップＳ１２４）。ここまでは、図１のステップＳ１〜Ｓ４と同様である。
【００９３】
主系サーバ１-1の中間ドライバ１５は停止パケットを受信すると、ＯＳが提供する緊急停止機能を使用して、直ちに主系サーバ１-1全体を強制的に停止させる（ステップＳ１２５）。この点で、図２６のシステムは、主系サーバ１-1上の全ネットワーク処理をブロックする図１のシステムと異なる。
【００９４】
このように本実施形態においては、主系サーバ１-1の中間ドライバ１５が停止パケットを受信すると、直ちに主系サーバ１-1全体を停止させることにより、主系サーバ１-1によって提供されていたサービスを待機系サーバ１-2が引き継ぐ際の共有ディスク４（共有データ領域）の破壊を防ぐことができる。
【００９５】
さて、待機系サーバ１-2の中間ドライバ１５は、停止パケットを主系サーバ１-1に送信した後、ＩＰアドレス（特定ＩＰアドレス）の競合を確認するために、図１のステップＳ６と同様に、Ｇ−ＡＲＰ（Ｇ−ＡＲＰパケット）をブロードキャストでネットワーク３に送信する（ステップＳ１２６）。
【００９６】
一方、待機系サーバ１-2のクラスタ制御部１２は、当該サーバ１-2の中間ドライバ１５に対し停止処理を要求した後、図１のステップＳ８と同様に、上記ＩＰアドレスの設定を当該サーバ１-2のＴＣＰ／ＩＰモジュール１６に対して行う（ステップＳ１２７）。
【００９７】
第２の実施形態において、中間ドライバ１５の構成自体は前記第１の実施形態と同様である。このため、以下の説明では図４を適宜援用する。  
第２の実施形態では、中間ドライバ１５内のデータリンク入力部１５１及びＩＰ出力部１５５の機能（動作）が前記第１の実施形態と一部異なる。一方、中間ドライバ１５内のデータリンク出力部１５２、停止パケット処理部１５３及びＩＰ入力部１５４の機能（動作）は前記第１の実施形態と同様である。そこで、第２の実施形態におけるデータリンク入力部１５１及びＩＰ出力部１５５の動作について順次説明する。
【００９８】
まず、データリンク入力部１５１の動作について前記第１の実施形態との相違点を中心に、図２７のフローチャート及び図２８のデータフォーマットを参照して説明する。  
データリンク入力部１５１は、ネットワークドライバ１４から図２８（ａ）、図２８（ｂ）または図２８（ｃ）に示されるようなパケット（ＡＲＰパケット）２８１，パケット（停止パケット）２８２またはパケット（データリンク層パケット）２８３を入力データとして渡された場合、パケット通過状態テーブルＴＢＬ１をチェックする（ステップＳ１３１）。
【００９９】
データリンク入力部１５１は、パケット通過状態テーブルＴＢＬ１によってパケット通過不可が示されている場合（ステップＳ１３２）、入力データ（入力パケット）を破棄する（ステップＳ１３３）。そしてデータリンク入力部１５１は、第１の実施形態とは異なって、ＯＳが提供している緊急停止機能を使用して自系サーバ全体を停止させる（ステップＳ１３４）。
【０１００】
一方、パケット通過状態テーブルＴＢＬ１によってパケット通過可能が示されている場合には（ステップＳ１３２）、データリンク入力部１５１は前記第１の実施形態と同様の動作を行う。即ちデータリンク入力部１５１は、図５のフローチャートのステップＳ３４〜Ｓ３７に相当する処理（ステップＳ１３５〜Ｓ１３８）を実行する。これにより、入力データが図２８（ａ）に示すＡＲＰパケット２８１または図２８（ｂ）に示す停止パケット２８２の場合には、当該ＡＲＰパケット２８１または停止パケット２８２が、そのまま図２８（ｃ）に示すＡＲＰパケット２８４または図２８（ｄ）に示す停止パケット２８５として停止パケット処理部１５３に送られる。また、入力データがＡＲＰパケット及び停止パケット以外の図２８（ｃ）に示すようなパケット（データリンク層パケット）２８３の場合には、データリンク層ヘッダを除いたＩＰパケットが、図２８（ｆ）に示すＩＰパケット２８６としてＩＰ入力部１５４に送られる。
【０１０１】
次に、ＩＰ出力部１５５の動作について前記第１の実施形態との相違点を中心に、図２９のフローチャートを参照して説明する。ここでは、図２５のデータフォーマットを援用する。
【０１０２】
ＩＰ出力部１５５には、ＴＣＰ／ＩＰモジュール１６によって、図２５（ａ）または図２５（ｂ）に示されるようなデータ（宛先ＭＡＣアドレス２５１＋ＩＰパケット２５２または宛先ＭＡＣアドレス２５３＋ＡＲＰパケット２５４）が送られる。ＩＰ出力部１５５は、このようなデータを受信した場合、パケット通過状態テーブルＴＢＬ１をチェックする（ステップＳ１４１）。
【０１０３】
もし、パケット通過状態テーブルＴＢＬ１によってパケット通過不可が示されている場合（ステップＳ１４２）、ＩＰ出力部１５５は入力データを破棄する（ステップＳ１４３）。そしてＩＰ出力部１５５は、第１の実施形態とは異なって、ＯＳが提供している緊急停止機能を使用して自系サーバ全体を停止させる（ステップＳ１４４）。
【０１０４】
一方、パケット通過状態テーブルＴＢＬ１によってパケット通過可能が示されている場合には（ステップＳ１４２）、ＩＰ出力部１５５は前記第１の実施形態と同様の動作を行う。即ちＩＰ出力部１５５は、図２４のフローチャートのステップＳ１１４に相当する処理（ステップＳ１４５）を実行する。
【０１０５】
［第３の実施形態］
図３０は本発明の第３の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図３０において、図１と同様の要素には便宜的に同一参照符号を付してある。
【０１０６】
第３の実施形態で適用される図３０のシステムの基本構成自体は、第１の実施形態で適用された図１のシステムと同様である。第３の実施形態の特徴は、第１の実施形態で適用された停止パケットに代えて、ＴＣＰ／ＩＰモジュール１６（待機系サーバ１-2内のＴＣＰ／ＩＰモジュール１６）によって送信されるＧ−ＡＲＰを停止パケットとして使用する点にある。
【０１０７】
次に、図３０のシステムの動作について、図１のシステムと相違する点を中心に説明する。  
まず、主系サーバ１-1上で障害が発生したものとする（ステップＳ１５１）。待機系サーバ１-2のクラスタ制御部１２は、主系サーバ１-1の障害を検知すると（ステップＳ１５２）、ＩＰアドレスの設定を当該サーバ１-2のＴＣＰ／ＩＰモジュール１６に対して行う（ステップＳ１５３）。
【０１０８】
待機系サーバ１-2のＴＣＰ／ＩＰモジュール１６は、ＩＰアドレスが設定されると、主系サーバ１-1が当該ＩＰアドレスの使用を停止しているかを確認するため、Ｇ−ＡＲＰ（Ｇ−ＡＲＰパケット）をブロードキャストでネットワーク３に送信する（ステップＳ１５４）。
【０１０９】
主系サーバ１-1の中間ドライバ１５は待機系サーバ１-2からＧ−ＡＲＰを受信すると、ＩＰアドレスの使用停止が要求されたものとして、前記第１の実施形態において待機系サーバ１-2から停止パケットを受信した場合と同様に、以後主系サーバ１-1上の全ネットワーク処理をブロックする（ステップＳ１５５）。即ち主系サーバ１-1の中間ドライバ１５は、ネットワークドライバ１４からＴＣＰ／ＩＰモジュール１６に渡すために当該中間ドライバ１５に入力される全てのパケットを破棄する。同様に中間ドライバ１５は、ＴＣＰ／ＩＰモジュール１６からネットワークドライバ１４に渡すために当該中間ドライバ１５に入力される全てのパケットを破棄する。よって、待機系サーバ１-2が送信したＧ−ＡＲＰが主系サーバ１-1のＴＣＰ／ＩＰモジュール１６に渡されることはなく、主系サーバ１-1から待機系サーバ１-2にＡＲＰ応答が返信されることはない。これにより待機系サーバ１-2は、主系サーバ１-1からＩＰアドレスを引き継ぐ際のＩＰアドレス競合状態を防ぐことができる。
【０１１０】
次に、待機系サーバ１-2の中間ドライバ１５によるＧ−ＡＲＰの定期送信について、図３１のシーケンスチャートを参照して説明する。  
まず、待機系サーバ１-2のＴＣＰ／ＩＰモジュール１６からＧ−ＡＲＰがブロードキャストで送信されたものとする（ステップＳ１６１）。もし、主系サーバ１-1の中間ドライバ１５がＧ−ＡＲＰを受信できなかった場合、主系サーバ１-1はＩＰアドレスの使用を停止できない。しかし、主系サーバ１-1から待機系サーバ１-2にＡＲＰ応答は返されない。
【０１１１】
この場合、待機系サーバ１-2の中間ドライバ１５は、主系サーバ１-1が稼動していることを検知できない。そこで待機系サーバ１-2中間ドライバ１５は、ＴＣＰ／ＩＰモジュール１６から独立に、Ｇ−ＡＲＰをブロードキャストで例えば一定間隔で（つまり定期的に）送信する（ステップＳ１６２，Ｓ１６３…）。
【０１１２】
以上により、主系サーバ１-1で障害が発生した結果、待機系サーバ１-2から送信されるＧ−ＡＲＰを、主系サーバ１-1の中間ドライバ１５が受信できても或いはできなくても、待機系サーバ１-2はＩＰアドレスの競合状態を回避して、主系サーバ１-1からＩＰアドレスを引き継ぐことが可能となる。
【０１１３】
第３の実施形態において、中間ドライバ１５の構成自体は前記第１の実施形態と同様である。このため、以下の説明では図４を適宜援用する。  
第３の実施形態では、中間ドライバ１５内のデータリンク入力部１５１及び停止パケット処理部１５３の機能（動作）が前記第１の実施形態と一部異なる。一方、中間ドライバ１５内のデータリンク出力部１５２、ＩＰ入力部１５４及びＩＰ出力部１５５の機能は前記第１の実施形態と同様である。そこで、第３の実施形態におけるデータリンク入力部１５１及び停止パケット処理部１５３の動作について順次説明する。
【０１１４】
まず、データリンク入力部１５１の動作について前記第１の実施形態との相違点を中心に、図３２のフローチャート及び図３３のデータフォーマットを参照して説明する。  
データリンク入力部１５１は、ネットワークドライバ１４から図３３（ａ）または図３３（ｂ）に示されるようなパケット（ＡＲＰパケット）３３１またはパケット（データリンク層パケット）３３２を入力データとして渡された場合、パケット通過状態テーブルＴＢＬ１をチェックする（ステップＳ１７１）。
【０１１５】
データリンク入力部１５１は、パケット通過状態テーブルＴＢＬ１によってパケット通過可能が示されている場合（ステップＳ１７２）、入力データがＡＲＰパケットか否かを判定する（ステップＳ１７４）。
【０１１６】
もし、入力データがＡＲＰパケットでない場合、データリンク入力部１５１は、第１の実施形態とは異なって入力データが停止パケットか否かの判定を行わずに、無条件で図５のステップＳ３７に相当する処理（ステップＳ１７６）を行う。即ちデータリンク入力部１５１は、入力データがＡＲＰパケット以外の図３３（ｂ）に示すようなパケット（データリンク層パケット）３３２の場合、当該入力データ（データリンク層パケット３３２）からデータリンク層ヘッダを除いた部分、つまりＩＰパケットを、図３３（ｄ）に示すＩＰパケット３３４としてＩＰ入力部１５４に送る。なお、入力データが図３３（ａ）に示すようなＡＲＰパケット３３１の場合、データリンク入力部１５１は当該ＡＲＰパケット３３１を、そのまま図３３（ｃ）に示すＡＲＰパケット３３３として停止パケット処理部１５３に送る（ステップＳ１７５）。
【０１１７】
次に、中間ドライバ１５内の停止パケット処理部１５３の動作について説明する。  
停止パケット処理部１５３は、以下に示す３つの処理
＜処理Ｂ１＞
クラスタ制御部１２からの要求による、パケット通過状態テーブルＴＢＬ１、サーバ情報テーブルＴＢＬ２及び他系サーバ状態テーブルＴＢＬ３を初期設定する処理
＜処理Ｂ２＞
データリンク入力部１５１からＡＲＰパケットを受信した場合の処理
＜処理Ｂ３＞
Ｇ−ＡＲＰの定期送信処理。
【０１１８】
を実行する。  
上記処理Ｂ１は前記第１の実施形態における処理Ａ１と同一であることから、説明を省略する。
【０１１９】
次に、停止パケット処理部１５３によって実行される上記処理Ｂ２について、図３４のフローチャートと、図３５及び図３６のデータフォーマットとを参照して説明する。  
停止パケット処理部１５３は、データリンク入力部１５１から図３５（ａ）に示すようなＡＲＰパケット３５１を受信した場合、図３６に示すように、当該ＡＲＰパケット３５１に含まれている送信元ＭＡＣアドレスがサーバ情報テーブルＴＢＬ２に設定されている他系サーバのＭＡＣアドレスであるかを判定する（ステップＳ１８１）。
【０１２０】
もし、送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスである場合、停止パケット処理部１５３は、ＡＲＰパケットに含まれている送信元ＩＰアドレス及びターゲットＩＰアドレスが同一であるかを判定する（ステップＳ１８２）。もし、送信元ＩＰアドレス及びターゲットＩＰアドレスが同一である場合、停止パケット処理部１５３は図３６に示すように、ターゲットＩＰアドレス（＝送信元ＩＰアドレス）が引き継ぎＩＰアドレスであるかをサーバ情報テーブルＴＢＬ２に設定されている引き継ぎＩＰアドレスと比較することによって判定する（ステップＳ１８３）。もし、ターゲットＩＰアドレス（＝送信元ＩＰアドレス）が引き継ぎＩＰアドレスである場合、停止パケット処理部１５３はステップＳ１８４に進む。
【０１２１】
このように、データリンク入力部１５１から受信したＡＲＰパケット３５１の送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスであり、且つ当該ＡＲＰパケット３５１の送信元ＩＰアドレス及びターゲットＩＰアドレスが引き継ぎＩＰアドレスである場合、停止パケット処理部１５３は当該ＡＲＰパケット３５１が他系サーバからのＧ−ＡＲＰ（Ｇ−ＡＲＰパケット）であるとして、ステップＳ１８４に進む。このステップＳ１８４において、停止パケット処理部１５３は、パケット通過状態テーブルＴＢＬ１に保持されるフラグをパケット通過不可を示す状態（図７に示す状態とは逆の状態）に変更して、処理Ｂ２を終了する。
【０１２２】
一方、ＡＲＰパケット３５１の送信元ＭＡＣアドレスが他系サーバのＭＡＣアドレスでないか（ステップＳ１８１）、或いは当該ＡＲＰパケット３５１の送信元ＩＰアドレス及びターゲットＩＰアドレスが同一でないか（ステップＳ１８２）、或いは同一であっても引き継ぎＩＰアドレスでない場合（ステップＳ１８３）、停止パケット処理部１５３はステップＳ１８５に進む。このステップＳ１８５において、停止パケット処理部１５３は、ＡＲＰパケット３５１からデータリンク層ヘッダを除いた部分（ＩＰパケット）を、図３５（ｂ）に示すＡＲＰパケット３５２としてＩＰ入力部１５４に送り、処理Ｂ２を終了する。
【０１２３】
次に、停止パケット処理部１５３によって実行される上記処理Ｂ３について、図３７のフローチャート及び図３８のデータフォーマットを参照して説明する。この処理Ｂ３は、サーバ情報テーブルＴＢＬ２で設定されている定期送信間隔毎に実行される。
【０１２４】
停止パケット処理部１５３は、他系サーバ状態テーブルＴＢＬ３を参照して他系サーバの状態をチェックする（ステップＳ１９１）。もし、他系サーバが正常状態である場合（ステップＳ１９２）、停止パケット処理部１５３は何もせずに処理を終了する。
【０１２５】
これに対し、他系サーバが故障状態である場合（ステップＳ１９２）、停止パケット処理部１５３は前記第１の実施形態とは異なり、停止パケットの生成と送信を行わずに、図３８に示すようなＧ−ＡＲＰ（Ｇ−ＡＲＰパケット）３８２を生成する（ステップＳ１９３）。このＧ−ＡＲＰパケット３８２は、サーバ情報テーブルＴＢＬ２に設定されている情報を利用して次のように生成される。まず、Ｇ−ＡＲＰパケット３８２の送信元ＭＡＣアドレスには、図３８に示すように、サーバ情報テーブルＴＢＬ２に設定されている自系サーバのＭＡＣアドレスが用いられる。また、Ｇ−ＡＲＰパケット３８２のターゲットＭＡＣアドレスには、図３８に示すように０アドレスが用いられる。またＧ−ＡＲＰパケット３８２の送信元ＩＰアドレス及びターゲットＩＰアドレスには、図３８に示すように、サーバ情報テーブルＴＢＬ２に設定されている引き継ぎＩＰアドレスが用いられる。
【０１２６】
次に停止パケット処理部１５３は、ブロードキャストアドレス（ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ：ＦＦ）を図３８に示す宛先ＭＡＣアドレス３８１として取得する。停止パケット処理部１５３は、この宛先ＭＡＣアドレス３８１及び生成されたＧ−ＡＲＰパケット３８１をデータリンク出力部１５２に送って（ステップＳ１９４）、処理を終了する。
【０１２７】
［第４の実施形態］
図３９は本発明の第４の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図３９において、図１または図２６と同様の要素には便宜的に同一参照符号を付してある。
【０１２８】
第４の実施形態で適用される図３９のシステムの基本構成自体は、第２の実施形態で適用された図２６のシステムと同様である。第４の実施形態の特徴は、第２の実施形態で適用された停止パケットに代えて、第３の実施形態と同様にＧ−ＡＲＰを停止パケットとして使用する点にある。
【０１２９】
次に、図３９のシステムの動作について、図２６のシステムと相違する点を中心に説明する。  
まず、主系サーバ１-1上で障害が発生したものとする（ステップＳ２０１）。待機系サーバ１-2のクラスタ制御部１２は、主系サーバ１-1の障害を検知すると（ステップＳ２０２）、ＩＰアドレスの設定を当該サーバ１-2のＴＣＰ／ＩＰモジュール１６に対して行う（ステップＳ２０３）。
【０１３０】
待機系サーバ１-2のＴＣＰ／ＩＰモジュール１６は、ＩＰアドレスが設定されると、主系サーバ１-1が当該ＩＰアドレスの使用を停止しているかを確認するため、Ｇ−ＡＲＰ（Ｇ−ＡＲＰパケット）をブロードキャストでネットワーク３に送信する（ステップＳ２０４）。
【０１３１】
主系サーバ１-1の中間ドライバ１５は待機系サーバ１-2からＧ−ＡＲＰを受信すると、前記第２の実施形態において待機系サーバ１-2から停止パケットを受信した場合と同様に、ＯＳが提供する緊急停止機能を使用して、直ちに主系サーバ１-1全体を停止させる（ステップＳ２０５）。
【０１３２】
このように本実施形態においては、主系サーバ１-1の中間ドライバ１５がＧ−ＡＲＰを受信すると、直ちに主系サーバ１-1全体を停止させることにより、主系サーバ１-1によって提供されていたサービスを待機系サーバ１-2が引き継ぐ際の共有ディスク４（共有データ領域）の破壊を防ぐことができる。
【０１３３】
第４の実施形態において、中間ドライバ１５の構成自体は前記第１の実施形態と同様である。このため、以下の説明では図４を適宜援用する。  
第４の実施形態では、中間ドライバ１５内のデータリンク入力部１５１の機能（動作）が前記第１乃至第３の実施形態と一部異なる。一方、中間ドライバ１５内のデータリンク出力部１５２の機能は前記第１（乃至第３）の実施形態と同様であり、停止パケット処理部１５３の機能は前記第３の実施形態と同様である。また、中間ドライバ１５内のＩＰ入力部１５４の機能は前記第１（乃至第３）の実施形態と同様であり、ＩＰ出力部１５５の機能は前記第３の実施形態と同様である。そこで、第４の実施形態のデータリンク入力部１５１の動作について前記第２の実施形態との相違点を中心に、図４０のフローチャート及び図４１のデータフォーマットを参照して説明する。
【０１３４】
データリンク入力部１５１は、ネットワークドライバ１４から図４１（ａ）または図４１（ｂ）に示されるようなパケット（ＡＲＰパケット）４１１またはパケット（データリンク層パケット）４１２を入力データとして渡された場合、パケット通過状態テーブルＴＢＬ１をチェックする（ステップＳ２１１）。
【０１３５】
データリンク入力部１５１は、パケット通過状態テーブルＴＢＬ１によってパケット通過可能が示されている場合（ステップＳ２１２）、入力データがＡＲＰパケットか否かを判定する（ステップＳ２１５）。
【０１３６】
もし、入力データがＡＲＰパケットでない場合、データリンク入力部１５１は、第２の実施形態とは異なって入力データが停止パケットか否かの判定を行わずに、無条件で図５のステップＳ１３８に相当する処理（ステップＳ２１７）を行う。即ちデータリンク入力部１５１は、入力データがＡＲＰパケット以外の図４１（ｂ）に示すようなパケット（データリンク層パケット）４１２の場合、当該入力データ（データリンク層パケット４１２）からデータリンク層ヘッダを除いた部分、つまりＩＰパケットを、図４１（ｄ）に示すＩＰパケット４１４としてＩＰ入力部１５４に送る。
【０１３７】
一方、パケット通過状態テーブルＴＢＬ１によってパケット通過不可が示されている場合（ステップＳ２１２）、データリンク入力部１５１は第２の実施形態と同様に、入力データ（入力パケット）を破棄すると共にＯＳが提供している緊急停止機能を使用して自系サーバ全体を停止させる（ステップ２１３，Ｓ２１４）。
【０１３８】
なお、本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【０１３９】
【図１】本発明の第１の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。
【図２】同第１の実施形態において、主系サーバの中間ドライバが、待機系サーバによって送信された停止パケットを受信できなかった場合のパケットの流れを示す図。
【図３】同第１の実施形態における停止パケット及びＧ−ＡＲＰの定期送信を説明するためのシーケンスチャート。
【図４】図１に示されるサーバの特に中間ドライバの詳細な構成を示すブロック図。
【図５】同第１の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。
【図６】同第１の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。
【図７】パケット通過状態テーブルのデータ構造例を示す図。
【図８】同第１の実施形態におけるデータリンク出力部の動作手順を示すフローチャート。
【図９】同第１の実施形態においてデータリンク出力部に入力されるデータ及び当該データリンク出力部から出力されるデータのフォーマットを示す図。
【図１０】同第１の実施形態において停止パケット処理部によって実行される処理Ａ１の手順を示すフローチャート。
【図１１】サーバ情報テーブルのデータ構造例を示す図。
【図１２】他系サーバ状態テーブルのデータ構造例を示す図。
【図１３】同第１の実施形態において停止パケット処理部によって実行される処理Ａ２の手順を示すフローチャート。
【図１４】処理Ａ２において停止パケット処理部によってデータリンク出力部に出力されるデータのフォーマットを示す図。
【図１５】同第１の実施形態において停止パケット処理部によって実行される処理Ａ３の手順を示すフローチャート。
【図１６】処理Ａ３において停止パケット処理部に入力されるデータ及び当該停止パケット処理部から出力されるデータのフォーマットを示す図。
【図１７】ＡＲＰ応答パケットのフォーマットをサーバ情報テーブルと対応付けて示す図。
【図１８】Ｇ−ＡＲＰパケットのフォーマットをサーバ情報テーブルと対応付けて示す図。
【図１９】停止パケットのフォーマットをサーバ情報テーブルと対応付けて示す図。
【図２０】同第１の実施形態において停止パケット処理部によって実行される処理Ａ４の手順を示すフローチャート。
【図２１】処理Ａ４において停止パケット処理部から出力されるデータのフォーマットを示す図。
【図２２】同第１の実施形態におけるＩＰ入力部の動作手順を示すフローチャート。
【図２３】同第１の実施形態においてＩＰ入力部に入力されるデータ及び当該ＩＰ入力部から出力されるデータのフォーマットを示す図。
【図２４】同第１の実施形態におけるＩＰ出力部の動作手順を示すフローチャート。
【図２５】同第１の実施形態においてＩＰ出力部に入力されるデータ及び当該ＩＰ出力部から出力されるデータのフォーマットを示す図。
【図２６】本発明の第２の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。
【図２７】同第２の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。
【図２８】同第２の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。
【図２９】同第２の実施形態におけるＩＰ出力部の動作手順を示すフローチャート。
【図３０】本発明の第３の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。
【図３１】同第３の実施形態におけるＧ−ＡＲＰの定期送信を説明するためのシーケンスチャート。
【図３２】同第３の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。
【図３３】同第３の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。
【図３４】同第３の実施形態において停止パケット処理部によって実行される処理Ｂ２の手順を示すフローチャート。
【図３５】処理Ｂ２において停止パケット処理部に入力されるデータ及び当該停止パケット処理部から出力されるデータのフォーマットを示す図。
【図３６】図３５に示されるＧ−ＡＲＰパケットのフォーマットをサーバ情報テーブルと対応付けて示す図。
【図３７】同第３の実施形態において停止パケット処理部によって実行される処理Ｂ３の手順を示すフローチャート。
【図３８】処理Ｂ３において停止パケット処理部から出力されるＧ−ＡＲＰパケットのフォーマットをサーバ情報テーブルと対応付けて示す図。
【図３９】本発明の第４の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。
【図４０】同第４の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。
【図４１】同第４の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。
【符号の説明】
【０１４０】
１-1…サーバ（主系サーバ、第１のサーバコンピュータ）、１-2…サーバ（待機系サーバ、第２のサーバコンピュータ）、１-i…サーバ、２…クライアント（クライアント端末）、３…ネットワーク、４…共有ディスク、１１…サービスプロセス、１２…クラスタ制御部、１３…ネットワークＩＦ、１４…ネットワークドライバ、１５…中間ドライバ、１６…ＴＣＰ／ＩＰモジュール、１５１…データリンク入力部、１５２…データリンク出力部、１５３…停止パケット処理部、１５４…ＩＰ入力部、１５５…ＩＰ出力部、ＴＢＬ１…パケット通過状態テーブル、ＴＢＬ２…サーバ情報テーブル、ＴＢＬ３…他系サーバ状態テーブル。
【図１】
2008028456.tif 000003
【図２】
2008028456.tif 000004
【図３】
2008028456.tif 000005
【図４】
2008028456.tif 000006
【図５】
2008028456.tif 000007
【図６】
2008028456.tif 000008
【図７】
2008028456.tif 000009
【図８】
2008028456.tif 000010
【図９】
2008028456.tif 000011
【図１０】
2008028456.tif 000012
【図１１】
2008028456.tif 000013
【図１２】
2008028456.tif 000014
【図１３】
2008028456.tif 000015
【図１４】
2008028456.tif 000016
【図１５】
2008028456.tif 000017
【図１６】
2008028456.tif 000018
【図１７】
2008028456.tif 000019
【図１８】
2008028456.tif 000020
【図１９】
2008028456.tif 000021
【図２０】
2008028456.tif 000022
【図２１】
2008028456.tif 000023
【図２２】
2008028456.tif 000024
【図２３】
2008028456.tif 000025
【図２４】
2008028456.tif 000026
【図２５】
2008028456.tif 000027
【図２６】
2008028456.tif 000028
【図２７】
2008028456.tif 000029
【図２８】
2008028456.tif 000030
【図２９】
2008028456.tif 000031
【図３０】
2008028456.tif 000032
【図３１】
2008028456.tif 000033
【図３２】
2008028456.tif 000034
【図３３】
2008028456.tif 000035
【図３４】
2008028456.tif 000036
【図３５】
2008028456.tif 000037
【図３６】
2008028456.tif 000038
【図３７】
2008028456.tif 000039
【図３８】
2008028456.tif 000040
【図３９】
2008028456.tif 000041
【図４０】
2008028456.tif 000042
【図４１】
2008028456.tif 000043