JP4279298B2 - サービス及びipアドレスの引き継ぎが可能なコンピュータシステム及びプログラム - Google Patents

サービス及びipアドレスの引き継ぎが可能なコンピュータシステム及びプログラム Download PDF

Info

Publication number
JP4279298B2
JP4279298B2 JP2006195779A JP2006195779A JP4279298B2 JP 4279298 B2 JP4279298 B2 JP 4279298B2 JP 2006195779 A JP2006195779 A JP 2006195779A JP 2006195779 A JP2006195779 A JP 2006195779A JP 4279298 B2 JP4279298 B2 JP 4279298B2
Authority
JP
Japan
Prior art keywords
server
tcp
address
driver
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006195779A
Other languages
English (en)
Other versions
JP2008028456A (ja
Inventor
壮志 影山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2006195779A priority Critical patent/JP4279298B2/ja
Publication of JP2008028456A publication Critical patent/JP2008028456A/ja
Application granted granted Critical
Publication of JP4279298B2 publication Critical patent/JP4279298B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、TCP/IPプロトコルを適用するネットワークによって相互接続される第1及び第2のサーバから構成され、当該第1及び第2のサーバ間でサービス及びIPアドレスの引き継ぎが可能なコンピュータシステム及びプログラムに関する。
近年のクライアントサーバシステムでは、サーバ(サーバコンピュータ)の冗長性を高めるため、主系サーバと待機系サーバとが用意されるのが主流となっている。このようなシステムでは、主系サーバでの障害発生時に、待機系サーバにその機能(=サービス:機能によりクライアントにサービスを提供するという意味)を引き継がせることができる。
また、例えば特許文献1には、クライアント(クライアント端末)がサーバ間のサービスを引き継ぎを意識せずに待機系サーバにアクセス可能とするため、待機系サーバはサービスの引き継ぎ時に、主系サーバが使用していたIP(Internet Protocol)アドレスも同時に引き継ぐことが開示されている。以下の説明では、主系サーバから待機系サーバに引き継がれるIPアドレスを特定IPアドレスと呼ぶ。
特開平8−212095号公報
上述のクライアントサーバシステムでは、主系サーバの障害発生時、主系サーバが特定IPアドレスの使用を停止することが前提となっている。しかし主系サーバが、例えば高負荷状態でスローダウンしている場合、特定IPアドレスの使用を停止できないことがある。一方、待機系サーバは主系サーバの障害を検知して特定IPアドレスを引き継ぐ。このような場合、主系・待機系の両サーバが同一の特定IPアドレスを使用する状態(IPアドレス競合)が発生する。
上記の状態が発生した場合、以下の2つの問題が発生する。
クライアント(またはルータを経由している場合ルータ)が、特定IPアドレスにアクセスするためARP(Address Resolution Protocol:アドレス解決プロトコル)要求を送信する場合、主系・待機系の両サーバからARP応答が送信される。この場合クライアントが、障害状態にある主系サーバのARP応答を受信すると、クライアントは、主系サーバに対し通信を行うため、通信障害が発生する。
待機系サーバは、IPアドレスを引き継ぐとTCP(Transmission Control Protocol)/IP層にIPアドレスを設定する。このとき待機系サーバのTCP/IPモジュールでは、Gratuitous ARPと呼ばれる特別のARP(以下、G−ARPと称する)によるIPアドレス競合のチェックが行われる。既に他のマシン(主系サーバ)がIPアドレスを使用している場合、G−ARPに対して当該他のマシン(主系サーバ)からIPアドレス競合を通知するARP応答が返され、待機系サーバはIPアドレス設定に失敗する。
本発明は上記事情を考慮してなされたものでその目的は、障害が発生した主系サーバ上でIPアドレスの使用を停止できない場合でも、待機系サーバが主系サーバから引き継ぐIPアドレスの競合状態を回避できるコンピュータシステム及びプログラムを提供することにある。
本発明の1つの観点によれば、TCP/IPプロトコルを適用するネットワークによって相互接続される第1のサーバ及び第2のサーバから構成され、前記第1及び第2のサーバの一方のサーバが主系サーバとして機能して前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供する場合、前記第1及び第2のサーバの他方のサーバは待機系サーバとして機能し、前記一方のサーバの障害を検知した場合、前記一方のサーバが提供するサービスと当該サービスで使用される特定IPアドレスとを引き継ぐコンピュータシステムが提供される。このコンピュータシステムの前記第1及び第2のサーバは、TCP/IP通信におけるデータリンク層の処理を行うネットワークドライバと、TCP/IP通信におけるTCP/IP層の処理を行うTCP/IPモジュールと、前記ネットワークドライバと前記TCP/IPモジュールとの間に位置し、前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信を制御する中間ドライバとを具備する。前記第2のサーバの前記中間ドライバは、前記第2のサーバが前記待機系サーバとして機能して前記第1のサーバの障害を検知した場合に、前記特定IPアドレスの使用停止を当該第1のサーバに要求するための停止パケットを前記第2のサーバの前記ネットワークドライバ及び前記ネットワークを介して当該第1のサーバ宛てに送信する。前記第1のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、前記第1のサーバを前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が不可となる特定状態に設定する。
本発明によれば、主系サーバの障害が待機系サーバによって検知された場合、当該待機系サーバが主系サーバの提供するサービスで使用される特定IPアドレスを引き継ぐ前に当該主系サーバ宛てに停止パケットを送信して、当該主系サーバのネットワークドライバとTCP/IPモジュールとの間のデータ送受信が不可となる特定状態に当該主系サーバを強制的に設定することができる。これにより、主系サーバが高負荷状態でスローダウンしている等の要因で直ちに特定IPアドレスの使用を停止できない場合でも、待機系サーバが特定IPアドレスを使用する際のIPアドレス競合状態を回避することができる。
以下、本発明の実施の形態につき図面を参照して説明する。
[第1の実施形態]
図1は本発明の第1の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図1において、サーバ(サーバコンピュータ)1-1及び1-2は、TCP/IPネットワークのようなTCP/IPプロトコルを適用するネットワーク3によって接続されている。
ネットワーク3にはクライアント(クライアント端末)2も接続されている。クライアント2は、サーバ1-1及び1-2をネットワーク3を経由して利用する例えばパーソナルコンピュータである。クライアント2は、システム内のサーバ(例えばサーバ1-1)から所望のサービスの提供を受けるため特定のリクエストを当該サービスに対応付けられた(当該サービスで使用される)IPアドレ宛てに送信する。図1のシステムでは、作図の都合上、1台のクライアント2がネットワーク3に接続されているが、一般には複数のクライアントがネットワーク3に接続されている。
サーバ1-1は、図1のシステムの状態では主系サーバとして機能して、クライアント(クライアント2)からのリクエストに応じたサービスをリクエスト元のクライアントに提供する。そこで以降の説明では、サーバ1-1を主系サーバ1-1と呼ぶこともある。
サーバ1-2は、図1のシステムの状態では待機サーバとして機能する。そこで以降の説明では、サーバ1-2を待機系サーバ1-2と呼ぶこともある。待機系サーバ1-2は、主系サーバ1-1での障害発生時に、主系サーバ1-1が提供するサービスと当該サービスで使用するIPアドレス(特定IPアドレス)とを引き継ぐ。つまり、サーバ1-1及び1-2は、クラスタシステムのようなコンピュータシステムを構成する。
図1のシステムでは、説明を容易にするために、サーバ1-1を主系サーバ1-1、サーバ1-2を待機系サーバ1-2と呼んでいる。しかし、主系サーバと待機系サーバとに本質的な違いはなく、サーバ1-1及び1-2は、それぞれ別の処理を独立に行うことが可能である。つまり、あるサービスの実行に関して、サーバ1-1が主系サーバ、サーバ1-2が待機系サーバとして機能し、別のサービスの実行に関して、サーバ1-1が待機系サーバ、サーバ1-2が主系サーバとして機能することも可能である。
主系サーバ1-1及び待機系サーバ1-2上では、サービスプロセス11が実行される。サービスプロセス11は、ネットワーク3上のクライアント2から利用可能な、例えばWebサービス、或いはデータベースサービスのようなサービスを提供する。サービスプロセス11は主系サーバ1-1及び待機系サーバ1-2上に複数存在でき、主系サーバ1-1と待機系サーバ1-2とでそのサービスの内容が異なっても良い。
サーバ1-1及び1−2は、それぞれクラスタ制御部12を有する。サーバ1-1及び1−2のクラスタ制御部12は相互に通信を行うことにより、当該クラスタ制御部12が置かれるサーバ(以下、自系サーバと称する)及び他のサーバ(以下、他系サーバと称する)上での障害の検知、並びにサービスプロセス及びIPアドレスの引き継ぎを制御する。つまりクラスタ制御部12は、主系サーバ1-1で障害が発生した場合に、当該主系サーバ1-1上で起動していたサービスプロセス11及び当該サービスプロセス11(によって提供されるサービス)で使用されていたIPアドレスを待機系サーバ1-2に引き継ぎ、クライアント2に対し主系サーバ1-1から待機系サーバ1-2への代替制御を意識させずにサービスを提供する。障害には様々種類があり、その検出方法も様々である。本実施形態においては、主系サーバ1-1のクラスタ制御部12及び待機系サーバ1-2のクラスタ制御部12との間における通信が停滞することにより、待機系サーバ1-2のクラスタ制御部12が主系サーバ1-1の障害を検知する場合を想定する。
サーバ1-1及び1-2は、それぞれ、ネットワークインタフェース(ネットワークIF)13、ネットワークドライバ14、中間ドライバ15及びTCP/IPモジュール16を有する。
ネットワークIF13は、ネットワーク3とのインタフェースをなす。ネットワークドライバ14は、TCP/IP通信におけるデータリンク層の処理を行う。TCP/IPモジュール16はオペレーティングシステム(OS)の一機能であり、TCP/IP通信におけるTCP/IP層の処理(IP層以上のネットワーク階層の処理)を行う。
中間ドライバ15は、ネットワークドライバ14とTCP/IPモジュール16との間に設けられ、当該ネットワークドライバ14とTCP/IPモジュール16との間のデータ送受信を制御する。ここでは中間ドライバ15は、ネットワークドライバ14とTCP/IPモジュール16との間で送受信されるデータを制御する。つまり中間ドライバ15は、ネットワークドライバ14とTCP/IPモジュール16とを論理的に接続する。従来のシステムでは、ネットワークドライバ14とTCP/IPモジュール16との間で直接データが送受信されており、この点で図1のシステムは従来のシステムと異なる。中間ドライバ15は、主系サーバ1-1及び待機系サーバ1-2の物理アドレスとしてのMAC(Media Access Control)アドレスと、主系サーバ1-1から待機系サーバ1-2に引き継がれるIPアドレス(特定IPアドレス)の情報を持つ。本実施形態において、主系サーバ1-1及び待機系サーバ1-2の中間ドライバ15は、例えばディスク記憶装置のような記憶装置に格納されている特定のプログラムを当該サーバ1-1及1-2が読み込んで実行することにより実現されるものとする。
さて、主系サーバ1-1上で障害が発生したものとする(ステップS1)。待機系サーバ1-2のクラスタ制御部12は、主系サーバ1-1の障害を検知する(ステップS2)。待機系サーバ1-2のクラスタ制御部12は、主系サーバ1-1にIPアドレスの使用を停止させるため、当該サーバ1-2の中間ドライバ15に対し停止処理を要求する(ステップS3)。すると待機系サーバ1-2の中間ドライバ15は、クラスタ制御部12からの要求(停止要求)に応じて停止パケットを生成し、当該停止パケットを主系サーバ1-1に対して送信する(ステップS4)。この停止パケットの生成の詳細については後述する。
主系サーバ1-1の中間ドライバ15は停止パケットを受信すると、以後主系サーバ1-1上の全ネットワーク処理を強制的にブロックする(ステップS5)。即ち主系サーバ1-1の中間ドライバ15は、ネットワークドライバ14からTCP/IPモジュール16に渡すために当該中間ドライバ15に入力される全てのパケットを破棄する。同様に中間ドライバ15は、TCP/IPモジュール16からネットワークドライバ14に渡すために当該中間ドライバ15に入力される全てのパケットを破棄する。このように主系サーバ1-1は、当該サーバ1-1の中間ドライバ15が停止パケットを受信することにより、ネットワークドライバ14とTCP/IPモジュール16との間のデータ送受信が不可となる(抑止される)特定状態に設定される。
さて、待機系サーバ1-2の中間ドライバ15は、停止パケットを主系サーバ1-1に送信した後、IPアドレス(特定IPアドレス)の競合を確認するために(つまり主系サーバ1-1がIPアドレスの使用を停止しているかを確認するために)G−ARP(G−ARPパケット)をブロードキャストでネットワーク3に送信する(ステップS6)。このG−ARPの生成の詳細については後述する。
前記したように、主系サーバ1-1の中間ドライバ15は停止パケットを受信すると、以後ネットワークドライバ14からTCP/IPモジュール16に渡される全てのパケットを破棄する。このため、待機系サーバ1-2が送信したG−ARPも主系サーバ1-1の中間ドライバ15によって破棄される(ステップS7)。よって、待機系サーバ1-2が送信したG−ARPが主系サーバ1-1のTCP/IPモジュール16に渡されることはなく、主系サーバ1-1から待機系サーバ1-2にG−ARPに対するARP応答が返信されることはない。これにより待機系サーバ1-2は、主系サーバ1-1からIPアドレス(特定IPアドレス)を引き継ぐことができる。
このように本実施形態においては、待機系サーバ1-2がIPアドレスを引継ぐ前に主系サーバ1-1宛てに停止パケットを送信し、当該サーバ1-1の全ネットワーク処理を強制的にブロック(停止)させることで、待機系サーバ1-2が当該IPアドレスを使用する際のIPアドレス競合状態(つまり主系サーバ1-1及び待機系サーバ1-2が同一のIPアドレスを使用する状態)を防ぐことができる。
一方、待機系サーバ1-2のクラスタ制御部12は、当該サーバ1-2の中間ドライバ15に対し停止処理を要求した後、上記IPアドレス(特定IPアドレス)の設定を当該サーバ1-2のTCP/IPモジュール16に対して行う(ステップS8)。
待機系サーバ1-2のTCP/IPモジュール16は、IPアドレスが設定されると、当該IPアドレスの競合の確認のためにG−ARPをブロードキャストでネットワーク3に送信する。このTCP/IPモジュール16によるG−ARPの送信を、上記中間ドライバ15によるG−ARPの送信(ステップS6)に代えて用いることも可能である。
ここで、待機系サーバ1-2によって送信された停止パケット(図1のステップS4)が例えばネットワーク3上で消失したなどの要因により、主系サーバ1-1の中間ドライバ15が当該停止パケットを受信できなかった場合について、図2のパケットの流れを示す図を参照して説明する。
まず、主系サーバ1-1の中間ドライバ15が停止パケットを受信できなかった場合、当該主系サーバ1-1上のネットワーク処理は中間ドライバ15によってブロックされない。待機系サーバ1-2の中間ドライバ15は、停止パケットを送信すると、G−ARP(G−ARPパケット)をブロードキャストでネットワーク3に送信する(ステップS11)。このステップS11は、図1のステップS6に相当する。
待機系サーバ1-2からのG−ARPが主系サーバ1-1のネットワークIF13で受信され、当該サーバ1-1のネットワークドライバ14から中間ドライバ15に入力されたものとする。このとき主系サーバ1-1の中間ドライバ15は、先に待機系サーバ1-2から送信された停止パケットを受信していないため、G−ARPを破棄せずに、当該サーバ1-1のTCP/IPモジュール16に通過させる。
すると主系サーバ1-1のTCP/IPモジュール16は、待機系サーバ1-2にIPアドレスの重複を警告するARP応答を返信する(ステップS12)。待機系サーバ1-2は、主系サーバ1-1から送信されたARP応答を受信すると、当該待機系サーバ1-2の中間ドライバ15が停止パケットの送信に失敗したと判断する。
そこで待機系サーバ1-2の中間ドライバ15は、主系サーバ1-1からのARP応答を当該待機系サーバ1-2のTCP/IPモジュール16に渡さずに破棄し、停止パケットを再度主系サーバ1-1に対して送信する(ステップS13)。次に待機系サーバ1-2の中間ドライバ15は、主系サーバ1-1がIPアドレスの使用を停止しているかを確認するため、主系サーバ1-1に対して再びG−ARPを送信する(ステップS14)。
このように待機系サーバ1-2の中間ドライバ15は、主系サーバ1-1からARP応答を受信すると、当該ARP応答を破棄して上記ステップS13及びS14の処理を実行する。これにより待機系サーバ1-2は、主系サーバ1-1からIPアドレスを引き継ぐことができる。
なお、主系サーバ1-1のTCP/IPモジュール16は、待機系サーバ1-2にIPアドレス(特定IPアドレス)の重複を警告するARP応答を返信した場合(ステップS12)、当該主系サーバ1-1が特定IPアドレスの正当な使用者であることを宣言するためにG−ARPをサブネット上に送信するのが一般的である。この場合、特定IPアドレスに関し、サブネット上の各マシンのARPテーブル(MACアドレスとIPアドレスとの対を含むアドレス情報が格納されるテーブル)が書き換えられる可能性がある。
しかし本実施形態では、待機系サーバ1-2の中間ドライバ15は、主系サーバ1-1からARP応答を受信すると、ステップS13及びS14の処理、即ち停止パケットを主系サーバ1-1に送信する動作とG−ARPをブロードキャストで送信する動作とを実行する。この待機系サーバ1-2の中間ドライバ15による、停止パケット送信後のG−ARPの送信により、サブネット上の各マシンのARPテーブルが書き換えられた状態を修正することができる。また、停止パケットが主系サーバ1-1の中間ドライバ15で受信された段階で、当該サーバ1-1の全ネットワーク処理がブロックされるため、IPアドレス競合状態を解消することができる。
次に、待機系サーバ1-2の中間ドライバ15による停止パケット及びG−ARPの定期送信について、図3のシーケンスチャートを参照して説明する。
まず、待機系サーバ1-2から主系サーバ1-1に停止パケットが送信され(ステップS21)、その後当該待機系サーバ1-2からG−ARPがブロードキャストで送信されたものとする(ステップS22)。もし、主系サーバ1-1の中間ドライバ15が、停止パケット及びG−ARPを共に受信できなかった場合、主系サーバ1-1はIPアドレスの使用を停止できない。しかし、主系サーバ1-1から待機系サーバ1-2にARP応答は返されない。
この場合、待機系サーバ1-2は、主系サーバ1-1が稼動していることを検知できない。そこで待機系サーバ1-2の中間ドライバ15は、停止パケットを送信する動作とG−ARPを送信する動作とを含む動作を例えば一定間隔で繰り返す(ステップS23,S24,S25,S26…)。つまり待機系サーバ1-2の中間ドライバ15は、停止パケット及びG−ARPを定期的に送信する。
以上により、主系サーバ1-1で障害が発生した結果、待機系サーバ1-2から送信される停止パケット及びG−ARPを、主系サーバ1-1の中間ドライバ15が全て受信できる場合、或いは停止パケット及びG−ARPのうちの停止パケットを受信できない場合、或いは停止パケット及びG−ARP共に受信できない場合のいずれにおいても、待機系サーバ1-2はIPアドレスの競合状態を回避して、主系サーバ1-1から当該IPアドレスを引き継ぐことが可能となる。
本実施形態において、中間ドライバ15がTCP/IPモジュール16とネットワークドライバ14との間に存在することは重要である。このことについて以下に述べる。
一般にサーバはクライアント等からのARP要求に応答する。しかし、障害が発生した主系サーバ1-1がARP要求に応答すると、従来技術では、[発明が解決しようとする課題]の欄で述べたように通信障害が発生する。また、主系サーバ1-1が待機系サーバ1-2からのG−ARPにARP応答を返信すると、従来技術では、待機系サーバ1-2はIPアドレス設定に失敗する。
上記ARPに関する処理は、OSに含まれているTCP/IPモジュール16を介して行われる。このため、ARPの処理が発生することは、TCP/IPモジュール16だけでなく、TCP/IPモジュール16とネットワークドライバ14との間に位置する中間ドライバ15もまた動作可能な状態にあることを意味する。中間ドライバ15が動作可能である場合、ARPの処理が発生しても、上述のように、待機系サーバ1-2はIPアドレスの競合状態を回避して、主系サーバ1-1から当該IPアドレスを引き継ぐことが可能となる。
一方、中間ドライバ15が動作しない場合、ネットワークドライバ14から当該中間ドライバ15に渡されたパケットは、当該中間ドライバ15からTCP/IPモジュール16に渡すことができない。同様にTCP/IPモジュール16から中間ドライバ15に渡されたパケットは、当該中間ドライバ15からネットワークドライバ14に渡すことができない。このように中間ドライバ15が動作できない場合、当該中間ドライバ15が存在するサーバ上の通信機能は停止し、上記ARPの問題も発生しない。
図4は、サーバ1-i(i=1,2)の特に中間ドライバ15の詳細な構成を示すブロック図である。中間ドライバ15は、サーバ1-iのネットワークドライバ14から通信パケット(データリンク層ヘッダを含むデータリンク層パケット)を受信して、当該中間ドライバ15内部でデータ処理を行い、当該サーバ1-1のTCP/IPモジュール16にIPパケットを送る。また中間ドライバ15は、サーバ1-iのTCP/IPモジュール16からIPパケットを受信し、当該中間ドライバ15内部でデータ処理を行い、当該サーバ1-iのネットワークドライバ14に通信パケット(データリンク層パケット)を送る。
中間ドライバ15は、上述したようにネットワークドライバ14及びTCP/IPモジュール16の間に設けらており、データリンク入力部151、データリンク出力部152、停止パケット処理部153、IP入力部154、IP出力部155、パケット通過状態テーブルTBL1、サーバ情報テーブルTBL2及び他系サーバ状態テーブルTBL3を含む。
以下、中間ドライバ15内のデータリンク入力部151、データリンク出力部152、停止パケット処理部153、IP入力部154及びIP出力部155の動作を順次説明する。
まず、中間ドライバ15内のデータリンク入力部151の動作について、図5のフローチャート、図6のデータフォーマット及び図7のパケット通過状態テーブルTBL1のデータ構造例を参照して説明する。
データリンク入力部151は、ネットワークドライバ14から図6(a)、図6(b)または図6(c)に示されるようなパケット(ARPパケット)61,パケット(停止パケット)62またはパケット(データリンク層パケット)63を入力データとして渡された場合、パケット通過状態テーブルTBL1をチェックする(ステップS31)。パケット通過状態テーブルTBL1は、図7に示すように、中間ドライバ15内をパケットが通過可能か否かを示すフラグを保持する。このフラグは、停止パケットを受信していない場合にパケット通過可能(パケット通過可能モード)を示す状態に設定され、停止パケットを受信するとパケット通過不可(パケット通過不可モード)を示す状態に設定される。
データリンク入力部151は、パケット通過状態テーブルTBL1によって通過不可(パケット通過不可モード)が示されている場合(ステップS32)、入力データ(入力パケット)を破棄する(ステップS33)。
一方、パケット通過状態テーブルTBL1によってパケット通過可能(パケット通過可能モード)が示されている場合、データリンク入力部151は、入力データがARPパケットか否かを判定する(ステップS34)。もし、入力データが図6(a)に示すようなARPパケット61である場合、データリンク入力部151は当該入力データ(つまりARPパケット61)を、そのまま図6(d)に示すARPパケット64として停止パケット処理部153に送り(ステップS35)、処理を終了する。
一方、入力データがARPパケットではない場合(ステップS34)、データリンク入力部151は当該入力データが停止パケットか否かを判定する(ステップS36)。もし、入力データが図6(b)に示すような停止パケット62である場合、データリンク入力部151は当該入力データ(つまり停止パケット62)を、そのまま図6(e)に示す停止パケット65として停止パケット処理部153に送り(ステップS35)、処理を終了する。
これに対し、入力データが停止パケットではない場合、つまり入力データがARPパケット及び停止パケット以外の図6(c)に示すようなパケット(データリンク層パケット)63の場合(ステップS36)、データリンク入力部151はステップS37に進む。このステップS37において、データリンク入力部151は、入力データ(データリンク層パケット63)からデータリンク層ヘッダを除いた部分、つまりIPヘッダとIPペイロードとから構成されるIPパケットを、図6(f)に示すIPパケット66としてIP入力部154に送る。
次に、中間ドライバ15内のデータリンク出力部152の動作について、図8のフローチャート及び図9のデータフォーマットを参照して説明する。
データリンク出力部152には、停止パケット処理部153またはIP出力部155から、図9(a)に示す宛先MACアドレス91(宛先サーバの物理アドレス)と通信データ(データリンク層のペイロード)92が送られる。この場合、データリンク出力部152は、宛先MACアドレス91及び通信データ(データリンク層のペイロード)92を、そのまま図9(b)に示す宛先MACアドレス93及び通信データ(データリンク層のペイロード)94としてネットワークドライバ14に送り(ステップS41)、処理を終える。
次に、中間ドライバ15内の停止パケット処理部153の動作について説明する。
停止パケット処理部153は、以下に示す4つの処理
<処理A1>
クラスタ制御部12からの要求による、パケット通過状態テーブルTBL1、サーバ情報テーブルTBL2及び他系サーバ状態テーブルTBL3を初期設定する処理
<処理A2>
クラスタ制御部12から停止要求を受け取った場合に行われる処理(停止パケット生成及び停止パケット送信を含む処理)
<処理A3>
データリンク入力部151からパケット(ARPパケットまたは停止パケット)を受信した場合の処理。
<処理A4>
停止パケット及びG−ARPの定期送信処理。
を実行する。
次に、停止パケット処理部153によって実行される上記処理A1について、図10のフローチャートと、図11のサーバ情報テーブルTBL2及び図12の他系サーバ状態テーブルTBL3のデータ構造例とを参照して説明する。
クラスタ制御部12は、例えばサーバ1-iへのプログラムのインストール時に中間ドライバ15を機能させるために、テーブルTBL1,TBL2及びTBL3の初期設定を要求する。この際、クラスタ制御部12は、初期設定のための情報として、自系サーバ及び他系サーバ各々のMACアドレスと、引き継がれる特定IPアドレス(引き継ぎIPアドレス)と、停止パケットを定期送信する際の送信間隔(定期送信間隔)の情報とを停止パケット処理部153に与える。
ここでは、
自系サーバのMACアドレス:AA:BB:CC:DD:EE:FF
他系サーバのMACアドレス:FF:EE:DD:CC:BB:AA
引き継ぎIPアドレス :192.168.10.10
定期送信間隔 :10秒
が与えられたものとする。
すると停止パケット処理部153は、クラスタ制御部12から与えられた、自系サーバ及び他系サーバ各々のMACアドレスと、引き継ぎIPアドレスと、定期送信間隔の情報とをサーバ情報テーブルTBL2に設定する(ステップS51)。図11は、このときのサーバ情報テーブルTBL2(ここでは待機系サーバ1-2のサーバ情報テーブルTBL2)の設定内容の一例を示す。ここで、主系サーバ1-1のサーバ情報テーブルTBL2に設定される自系サーバのMACアドレス及び他系サーバのMACアドレスは、それぞれ、待機系サーバ1-2のサーバ情報テーブルTBL2に設定される他系サーバのMACアドレス及び自系サーバのMACアドレスに一致することに注意されたい。
次に停止パケット処理部153は、他系サーバ状態テーブルTBL3を初期設定する(ステップS52)。テーブルTBL3は、他系サーバが正常状態または故障状態のいずれにあるかを示すフラグを保持する。ステップS52では、テーブルTBL3に保持されるフラグが、他系サーバが正常状態にあることを示す状態に初期設定される。図12は、このときの他系サーバ状態テーブルTBL3の設定内容の一例を示す。
最後に停止パケット処理部153は、パケット通過状態テーブルTBL1に保持されるフラグを通過可能を示す状態(図7に示す状態)に初期設定して(ステップS53)、処理A1を終了する。
次に、停止パケット処理部153(待機系サーバ1-2の中間ドライバ15が有する停止パケット処理部153)によって実行される上記処理A2について、図13のフローチャートと、図14のデータフォーマットとを参照して説明する。
停止パケット処理部153は、クラスタ制御部12から停止要求を受け取った場合、図13のフローチャートに従う処理A2を開始する。まず停止パケット処理部153は、他系サーバ状態テーブルTBL3に保持されるフラグを他系サーバが故障状態にあることを示す状態に設定する(ステップS61)。
次に停止パケット処理部153は、停止パケットを生成する(ステップS62)。この停止パケットは、データリンク層のペイロードに、少なくとも停止パケットと識別できるデータが格納されていれば、どのような形式でもよい。図14は、停止パケットとしてIPパケット142が使用されている例を示す。IPパケット(停止パケット)142は、IPヘッダとIPペイロードとから構成される。ここでは、IPパケット(停止パケット)142のIPペイロードに停止パケットと識別できるデータが格納される。IPパケット(停止パケット)142のIPヘッダは、送信元IPアドレス及び宛先IPアドレスを含む。図14の例では、送信元IPアドレス及び宛先IPアドレスに、サーバ情報テーブルTBL2に設定されている引き継ぎIPアドレス(192.168.10.10)が用いられている。しかし本実施形態のように、IPペイロードに停止パケットと識別できるデータが格納されてさえいれば、他のIPアドレスでも構わない。
停止パケット処理部153は、サーバ情報テーブルTBL2に設定されている他系サーバのMACアドレスを、上記生成された停止パケット142の宛先MACアドレス141(図14参照)として取得する。停止パケット処理部153は、この宛先MACアドレス141及び停止パケット142をデータリンク出力部152に送る(ステップS63)。
次に、停止パケット処理部153は、サーバ情報テーブルTBL2に設定されている情報を利用してG−ARPパケットを生成する(ステップS64)。次に停止パケット処理部153は、生成されたG−ARPパケットを宛先MACアドレスとしてのブロードキャストアドレスと共にデータリンク出力部152に送って(ステップS65)、処理A2を終了する。この場合、G−ARPパケットがネットワーク3上にブロードキャストで送信される。G−ARPパケットの生成方法については、後述する図15のフローチャートのステップS79の処理で図18を参照して詳述する。
このように本実施形態によれば、中間ドライバ15(待機系サーバ1-2の中間ドライバ15)はサーバ情報テーブルTBL2に基づいて停止パケットを生成して、TCP/IPモジュール16を経由せずに当該停止パケットを他系サーバ(主系サーバ1-1)の宛先MACアドレス141宛てに送信することができる。同様に中間ドライバ15は、サーバ情報テーブルTBL2に基づいてG−ARPパケットを生成して、TCP/IPモジュール16を経由せずに当該G−ARPパケットをブロードキャストで送信することができる。
次に、停止パケット処理部153によって実行される上記処理A3について、図15のフローチャートと、図16乃至図19のデータフォーマットとを参照して説明する。
停止パケット処理部153は、データリンク入力部151からパケット(データリンク層パケット)を受信した場合、図15のフローチャートに従う処理A3を開始する。まず停止パケット処理部153は、入力データ(入力パケット)がARP要求パケットであるかを判定する(ステップS71)。もし、入力データが図16(a)に示すようなARPパケット161であって且つ当該ARPパケット161がARP要求を示すARPパケット(つまりARP要求パケット)である場合、停止パケット処理部153は、当該入力データ(ARP要求パケット)からデータリンク層ヘッダを除いた部分を、ARP要求を示す図16(e)に示すARPパケット167としてIP入力部154に送り(ステップS72)、処理A3を終了する。
これに対し、入力データがARP要求パケットでない場合、停止パケット処理部153は、入力データがARP応答パケットであるかを判定する(ステップS73)。もし、入力データが図16(a)に示すようなARPパケット161であって且つ当該ARPパケット161がARP応答を示すARPパケットである場合、つまり図17に示すARP応答パケット170の場合、停止パケット処理部153は、当該ARP応答パケット170に含まれている送信元MACアドレス(送信元のサーバの物理アドレス)がサーバ情報テーブルTBL2に設定されている他系サーバのMACアドレスであるかを判定する(ステップS74)。もし、送信元MACアドレスが他系サーバのMACアドレスである場合、停止パケット処理部153は、ARP応答パケット170に含まれている送信元IPアドレス及びターゲットIPアドレスが同一であるかを判定する(ステップS75)。もし、送信元IPアドレス及びターゲットIPアドレスが同一である場合、停止パケット処理部153はターゲットIPアドレス(=送信元IPアドレス)が引き継ぎIPアドレス(特定IPアドレス)であるかをサーバ情報テーブルTBL2に設定されている引き継ぎIPアドレスと比較することによって判定する(ステップS76)。もし、ターゲットIPアドレス(=送信元IPアドレス)が引き継ぎIPアドレスである場合、停止パケット処理部153はステップS77に進む。
このように、入力データがARP応答パケット170であり、当該ARP応答パケット170の送信元MACアドレスが他系サーバのMACアドレスであり、且つ当該ARP応答パケット170の送信元IPアドレス及びターゲットIPアドレスが引き継ぎIPアドレスである場合、停止パケット処理部153はARP応答パケット170が自系サーバ(ここでは待機系サーバ1-2)のG−ARPに対するARP応答(ここでは主系サーバ1-1からのARP応答)であるとして、ステップS77に進む。
ステップS77において、停止パケット処理部153は、(図14に示される停止パケット142に相当する)図16(c)に示すような停止パケット164を、クラスタ制御部12及びTCP/IPモジュール16から独立に生成する。次に停止パケット処理部153は、サーバ情報テーブルTBL2に設定されている他系サーバのMACアドレスを、上記生成された停止パケット164の宛先MACアドレス163(図16(c)参照)として取得する。停止パケット処理部153は、この宛先MACアドレス163及び停止パケット164をデータリンク出力部152に送る(ステップS78)。
このように本実施形態においては、図13のフローチャートに従って送信された他系サーバ(主系サーバ1-1)宛ての停止パケットが、例えばネットワーク3上で消失するなどの要因で、当該他系サーバの中間ドライバ15で受信されずにIPアドレスの使用を停止できず、G−ARPに対して当該他系サーバの中間ドライバ15からIPアドレス競合(IPアドレスの重複)を警告するARP応答が返された場合、当該他系サーバ宛てに停止パケットを再送することができる。
次に、停止パケット処理部153は、サーバ情報テーブルTBL2に設定されている情報を利用して、図16(d)に示されるG−ARPパケット166を生成する(ステップS79)。ここではG−ARPパケット166の送信元MACアドレスには、図18に示すように、サーバ情報テーブルTBL2に設定されている自系サーバのMACアドレスが用いられる。また、G−ARPパケット166のターゲットMACアドレスには、図18に示すように0アドレス(00:00:00:00:00:00)が用いられる。またG−ARPパケット166の送信元IPアドレス及びターゲットIPアドレスには、図18に示すように、サーバ情報テーブルTBL2に設定されている引き継ぎIPアドレスが用いられる。
次に停止パケット処理部153は、ブロードキャストアドレス(FF:FF:FF:FF:FF:FF)を図16(d)及び図18に示す宛先MACアドレス165として取得する。停止パケット処理部153は、この宛先MACアドレス165及び生成されたG−ARPパケット166をデータリンク出力部152に送って(ステップS80)、処理A3を終了する。
一方、入力データがARP応答パケット170であっても(ステップS73)、当該ARP応答パケット170の送信元MACアドレスが他系サーバのMACアドレスでないか(ステップS74)、或いは当該ARP応答パケット170の送信元IPアドレス及びターゲットIPアドレスが同一でないか(ステップS75)、或いは同一であっても引き継ぎIPアドレスでない場合(ステップS76)、停止パケット処理部153はARP応答パケット170が自系サーバからのG−ARPに対するARP応答ではないと判断する。この場合、停止パケット処理部153は、ARP応答パケットからデータリンク層ヘッダを除いた部分を、図16(e)に示すARPパケット(ARP応答パケット)167としてIP入力部154に送り(ステップS72)、処理を終了する。
また、入力データがARP応答パケットでない場合(ステップS73)、つまり入力データがARP要求パケット及びARP応答パケットのいずれでもない場合、停止パケット処理部153は、入力データが停止パケットであるかを判定する(ステップS81)。もし、入力データが図16(b)に示すような停止パケット162である場合、停止パケット処理部153は図19に示すように、当該停止パケット162に含まれている送信元MACアドレスがサーバ情報テーブルTBL2に設定されている他系サーバのMACアドレスに一致するかを判定する(ステップS82)。もし、送信元MACアドレスが他系サーバのMACアドレスに一致する場合、停止パケット処理部153は図19に示すように、停止パケット162(のIPヘッダ)に含まれている送信元IPアドレス及び宛先IPアドレスがサーバ情報テーブルTBL2に設定されている引き継ぎアドレスに一致するかを判定する(ステップS83,S84)。もし、送信元IPアドレス及び宛先IPアドレスが引き継ぎアドレスに一致する場合、停止パケット処理部153はステップS85に進む。
このように、入力データが当該停止パケット162であり、当該停止パケット162の送信元MACアドレスが他系サーバのMACアドレスであり、且つ当該停止パケット162の送信元IPアドレス及び宛先IPアドレスが引き継ぎIPアドレスである場合、停止パケット処理部153は停止パケット162が自系サーバに対するものとして、ステップS85に進む。
ステップS85において、停止パケット処理部153は、パケット通過状態テーブルTBL1に保持されるフラグをパケット通過不可を示す状態(図7に示す状態とは逆の状態)に変更して(ステップS85)、処理A3を終了する。
一方、入力データが停止パケット162でないか(ステップS81)、停止パケット162であっても送信元MACアドレス、送信元IPアドレス及び宛先IPアドレスのうち1つでもサーバ情報テーブルTBL2に設定されているデータと異なる場合(ステップSS82,S83,S84)、停止パケット処理部153は入力データが自系サーバに対するものではないと判断する。この場合、停止パケット処理部153は入力データを破棄して(ステップS86)、処理A3を終了する。
次に、停止パケット処理部153によって実行される上記処理A4について、図20のフローチャートと、図21のデータフォーマットとを参照して説明する。この処理A4は、サーバ情報テーブルTBL2で設定されている定期送信間隔毎に実行される。
停止パケット処理部153は、他系サーバ状態テーブルTBL3を参照して他系サーバの状態をチェックする(ステップS91)。もし、他系サーバが正常状態である場合(ステップS92)、停止パケット処理部153は何もせずに処理A4を終了する。
これに対し、他系サーバが故障状態である場合(ステップS92)、つまり他系サーバに障害が発生している場合、停止パケット処理部153は(図14に示される停止パケット142に相当する)図21(a)に示すような停止パケット212を生成する(ステップS93)。次に停止パケット処理部153は、サーバ情報テーブルTBL2に設定されている他系サーバのMACアドレスを、上記生成された停止パケット212の宛先MACアドレス211(図21(a)参照)として取得する。停止パケット処理部153は、この宛先MACアドレス211及び停止パケット212をデータリンク出力部152に送る(ステップS94)。
次に、停止パケット処理部153は、サーバ情報テーブルTBL2の情報に基づいて、(図18に示されるG−ARP166に相当する)図21(b)に示すようなG−ARP(G−ARPパケット)214を生成する(ステップS95)。停止パケット処理部153は、ブロードキャストアドレス(FF:FF:FF:FF:FF:FF)を図21(b)に示す宛先MACアドレス213として取得する。停止パケット処理部153は、この宛先MACアドレス213及び生成されたG−ARPパケット214をデータリンク出力部152に送って(ステップS96)、処理A4を終了する。
次に、IP入力部154の動作について、図22のフローチャート及び図23のデータフォーマットを参照して説明する。
IP入力部154には、データリンク入力部151または停止パケット処理部153によって、図23(a)または図23(b)に示されるようなIPパケット231またはARPパケット232が送られる。IP入力部154は、IPパケット231またはARPパケット232を受信した場合、その受信パケットを図23(c)または図23(d)に示されるようなIPパケット233またはARPパケット234としてTCP/IPモジュール16に送って(ステップS101)、処理を終了する。
次に、IP出力部155の動作について、図24のフローチャート及び図25のデータフォーマットを参照して説明する。
IP出力部155には、TCP/IPモジュール16によって、図25(a)に示されるようなIPパケット252及び宛先MACアドレス251、または図25(b)に示されるようなARPパケット254及び宛先MACアドレス253が送られる。IP出力部155は、このようなデータ(宛先MACアドレス251+IPパケット252または宛先MACアドレス253+ARPパケット254)を受信した場合、パケット通過状態テーブルTBL1をチェックする(ステップS111)。
もし、パケット通過状態テーブルTBL1によってパケット通過不可が示されている場合(ステップS112)、IP出力部155は入力データを破棄する(ステップS113)。これに対し、パケット通過状態テーブルTBL1によってパケット通過可能が示されている場合(ステップS112)、IP出力部155は入力データをそのままデータリンク出力部152に送り(ステップS114)、処理を終了する。ここでは、入力データが図25(a)に示す宛先MACアドレス251+IPパケット252の場合には、当該入力データが図25(c)に示す宛先MACアドレス255+IPパケット256としてデータリンク出力部152に送られる。同様に、入力データが図25(b)に示す宛先MACアドレス253+ARPパケット254の場合には、当該入力データが図25(d)に示す宛先MACアドレス257+ARPパケット258としてデータリンク出力部152に送られる。
[第2の実施形態]
図26は本発明の第2の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図26において、図1と同様の要素には便宜的に同一参照符号を付してある。
第2の実施形態で適用される図26のシステムは、第1の実施形態で適用された図1のシステムと異なって、サーバ1-1及び1-2によって共有されるストレージとしての共有ディスク(共有ディスク装置)4を有する。このようなシステムにおいて、主系サーバ1-1が例えば高負荷状態でスローダウンしている等の要因で、IPアドレスの使用を停止できないものとする。この状態では、スローダウンしている主系サーバ1-1上でサービスプロセス11が動作しているため、主系サーバ1-1と待機系サーバ1-2とが共有ディスク4を共有していると、当該共有ディスク4のデータ領域を破壊してしまう恐れがある。
この点を考慮して、第2の実施形態は、主系サーバ1-1の中間ドライバ15が待機系サーバ1-2からの停止パケットを受信すると、OSが提供する緊急停止機能を使用して、当該中間ドライバ15が直ちに主系サーバ1-1全体を停止させることを特徴とする。
次に、図26のシステムの動作について、図1のシステムと相違する点を中心に説明する。
まず、主系サーバ1-1上で障害が発生したものとする(ステップS121)。待機系サーバ1-2のクラスタ制御部12は、主系サーバ1-1の障害を検知すると(ステップS122)、主系サーバ1-1にIPアドレスの使用を停止させるため、当該サーバ1-2の中間ドライバ15に対し停止処理を要求する(ステップS123)。待機系サーバ1-2の中間ドライバ15は停止パケットを生成し、当該停止パケットを主系サーバ1-1に対して送信する(ステップS124)。ここまでは、図1のステップS1〜S4と同様である。
主系サーバ1-1の中間ドライバ15は停止パケットを受信すると、OSが提供する緊急停止機能を使用して、直ちに主系サーバ1-1全体を強制的に停止させる(ステップS125)。この点で、図26のシステムは、主系サーバ1-1上の全ネットワーク処理をブロックする図1のシステムと異なる。
このように本実施形態においては、主系サーバ1-1の中間ドライバ15が停止パケットを受信すると、直ちに主系サーバ1-1全体を停止させることにより、主系サーバ1-1によって提供されていたサービスを待機系サーバ1-2が引き継ぐ際の共有ディスク4(共有データ領域)の破壊を防ぐことができる。
さて、待機系サーバ1-2の中間ドライバ15は、停止パケットを主系サーバ1-1に送信した後、IPアドレス(特定IPアドレス)の競合を確認するために、図1のステップS6と同様に、G−ARP(G−ARPパケット)をブロードキャストでネットワーク3に送信する(ステップS126)。
一方、待機系サーバ1-2のクラスタ制御部12は、当該サーバ1-2の中間ドライバ15に対し停止処理を要求した後、図1のステップS8と同様に、上記IPアドレスの設定を当該サーバ1-2のTCP/IPモジュール16に対して行う(ステップS127)。
第2の実施形態において、中間ドライバ15の構成自体は前記第1の実施形態と同様である。このため、以下の説明では図4を適宜援用する。
第2の実施形態では、中間ドライバ15内のデータリンク入力部151及びIP出力部155の機能(動作)が前記第1の実施形態と一部異なる。一方、中間ドライバ15内のデータリンク出力部152、停止パケット処理部153及びIP入力部154の機能(動作)は前記第1の実施形態と同様である。そこで、第2の実施形態におけるデータリンク入力部151及びIP出力部155の動作について順次説明する。
まず、データリンク入力部151の動作について前記第1の実施形態との相違点を中心に、図27のフローチャート及び図28のデータフォーマットを参照して説明する。
データリンク入力部151は、ネットワークドライバ14から図28(a)、図28(b)または図28(c)に示されるようなパケット(ARPパケット)281,パケット(停止パケット)282またはパケット(データリンク層パケット)283を入力データとして渡された場合、パケット通過状態テーブルTBL1をチェックする(ステップS131)。
データリンク入力部151は、パケット通過状態テーブルTBL1によってパケット通過不可が示されている場合(ステップS132)、入力データ(入力パケット)を破棄する(ステップS133)。そしてデータリンク入力部151は、第1の実施形態とは異なって、OSが提供している緊急停止機能を使用して自系サーバ全体を停止させる(ステップS134)。
一方、パケット通過状態テーブルTBL1によってパケット通過可能が示されている場合には(ステップS132)、データリンク入力部151は前記第1の実施形態と同様の動作を行う。即ちデータリンク入力部151は、図5のフローチャートのステップS34〜S37に相当する処理(ステップS135〜S138)を実行する。これにより、入力データが図28(a)に示すARPパケット281または図28(b)に示す停止パケット282の場合には、当該ARPパケット281または停止パケット282が、そのまま図28(c)に示すARPパケット284または図28(d)に示す停止パケット285として停止パケット処理部153に送られる。また、入力データがARPパケット及び停止パケット以外の図28(c)に示すようなパケット(データリンク層パケット)283の場合には、データリンク層ヘッダを除いたIPパケットが、図28(f)に示すIPパケット286としてIP入力部154に送られる。
次に、IP出力部155の動作について前記第1の実施形態との相違点を中心に、図29のフローチャートを参照して説明する。ここでは、図25のデータフォーマットを援用する。
IP出力部155には、TCP/IPモジュール16によって、図25(a)または図25(b)に示されるようなデータ(宛先MACアドレス251+IPパケット252または宛先MACアドレス253+ARPパケット254)が送られる。IP出力部155は、このようなデータを受信した場合、パケット通過状態テーブルTBL1をチェックする(ステップS141)。
もし、パケット通過状態テーブルTBL1によってパケット通過不可が示されている場合(ステップS142)、IP出力部155は入力データを破棄する(ステップS143)。そしてIP出力部155は、第1の実施形態とは異なって、OSが提供している緊急停止機能を使用して自系サーバ全体を停止させる(ステップS144)。
一方、パケット通過状態テーブルTBL1によってパケット通過可能が示されている場合には(ステップS142)、IP出力部155は前記第1の実施形態と同様の動作を行う。即ちIP出力部155は、図24のフローチャートのステップS114に相当する処理(ステップS145)を実行する。
[第3の実施形態]
図30は本発明の第3の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図30において、図1と同様の要素には便宜的に同一参照符号を付してある。
第3の実施形態で適用される図30のシステムの基本構成自体は、第1の実施形態で適用された図1のシステムと同様である。第3の実施形態の特徴は、第1の実施形態で適用された停止パケットに代えて、TCP/IPモジュール16(待機系サーバ1-2内のTCP/IPモジュール16)によって送信されるG−ARPを停止パケットとして使用する点にある。
次に、図30のシステムの動作について、図1のシステムと相違する点を中心に説明する。
まず、主系サーバ1-1上で障害が発生したものとする(ステップS151)。待機系サーバ1-2のクラスタ制御部12は、主系サーバ1-1の障害を検知すると(ステップS152)、IPアドレスの設定を当該サーバ1-2のTCP/IPモジュール16に対して行う(ステップS153)。
待機系サーバ1-2のTCP/IPモジュール16は、IPアドレスが設定されると、主系サーバ1-1が当該IPアドレスの使用を停止しているかを確認するため、G−ARP(G−ARPパケット)をブロードキャストでネットワーク3に送信する(ステップS154)。
主系サーバ1-1の中間ドライバ15は待機系サーバ1-2からG−ARPを受信すると、IPアドレスの使用停止が要求されたものとして、前記第1の実施形態において待機系サーバ1-2から停止パケットを受信した場合と同様に、以後主系サーバ1-1上の全ネットワーク処理をブロックする(ステップS155)。即ち主系サーバ1-1の中間ドライバ15は、ネットワークドライバ14からTCP/IPモジュール16に渡すために当該中間ドライバ15に入力される全てのパケットを破棄する。同様に中間ドライバ15は、TCP/IPモジュール16からネットワークドライバ14に渡すために当該中間ドライバ15に入力される全てのパケットを破棄する。よって、待機系サーバ1-2が送信したG−ARPが主系サーバ1-1のTCP/IPモジュール16に渡されることはなく、主系サーバ1-1から待機系サーバ1-2にARP応答が返信されることはない。これにより待機系サーバ1-2は、主系サーバ1-1からIPアドレスを引き継ぐ際のIPアドレス競合状態を防ぐことができる。
次に、待機系サーバ1-2の中間ドライバ15によるG−ARPの定期送信について、図31のシーケンスチャートを参照して説明する。
まず、待機系サーバ1-2のTCP/IPモジュール16からG−ARPがブロードキャストで送信されたものとする(ステップS161)。もし、主系サーバ1-1の中間ドライバ15がG−ARPを受信できなかった場合、主系サーバ1-1はIPアドレスの使用を停止できない。しかし、主系サーバ1-1から待機系サーバ1-2にARP応答は返されない。
この場合、待機系サーバ1-2の中間ドライバ15は、主系サーバ1-1が稼動していることを検知できない。そこで待機系サーバ1-2中間ドライバ15は、TCP/IPモジュール16から独立に、G−ARPをブロードキャストで例えば一定間隔で(つまり定期的に)送信する(ステップS162,S163…)。
以上により、主系サーバ1-1で障害が発生した結果、待機系サーバ1-2から送信されるG−ARPを、主系サーバ1-1の中間ドライバ15が受信できても或いはできなくても、待機系サーバ1-2はIPアドレスの競合状態を回避して、主系サーバ1-1からIPアドレスを引き継ぐことが可能となる。
第3の実施形態において、中間ドライバ15の構成自体は前記第1の実施形態と同様である。このため、以下の説明では図4を適宜援用する。
第3の実施形態では、中間ドライバ15内のデータリンク入力部151及び停止パケット処理部153の機能(動作)が前記第1の実施形態と一部異なる。一方、中間ドライバ15内のデータリンク出力部152、IP入力部154及びIP出力部155の機能は前記第1の実施形態と同様である。そこで、第3の実施形態におけるデータリンク入力部151及び停止パケット処理部153の動作について順次説明する。
まず、データリンク入力部151の動作について前記第1の実施形態との相違点を中心に、図32のフローチャート及び図33のデータフォーマットを参照して説明する。
データリンク入力部151は、ネットワークドライバ14から図33(a)または図33(b)に示されるようなパケット(ARPパケット)331またはパケット(データリンク層パケット)332を入力データとして渡された場合、パケット通過状態テーブルTBL1をチェックする(ステップS171)。
データリンク入力部151は、パケット通過状態テーブルTBL1によってパケット通過可能が示されている場合(ステップS172)、入力データがARPパケットか否かを判定する(ステップS174)。
もし、入力データがARPパケットでない場合、データリンク入力部151は、第1の実施形態とは異なって入力データが停止パケットか否かの判定を行わずに、無条件で図5のステップS37に相当する処理(ステップS176)を行う。即ちデータリンク入力部151は、入力データがARPパケット以外の図33(b)に示すようなパケット(データリンク層パケット)332の場合、当該入力データ(データリンク層パケット332)からデータリンク層ヘッダを除いた部分、つまりIPパケットを、図33(d)に示すIPパケット334としてIP入力部154に送る。なお、入力データが図33(a)に示すようなARPパケット331の場合、データリンク入力部151は当該ARPパケット331を、そのまま図33(c)に示すARPパケット333として停止パケット処理部153に送る(ステップS175)。
次に、中間ドライバ15内の停止パケット処理部153の動作について説明する。
停止パケット処理部153は、以下に示す3つの処理
<処理B1>
クラスタ制御部12からの要求による、パケット通過状態テーブルTBL1、サーバ情報テーブルTBL2及び他系サーバ状態テーブルTBL3を初期設定する処理
<処理B2>
データリンク入力部151からARPパケットを受信した場合の処理
<処理B3>
G−ARPの定期送信処理。
を実行する。
上記処理B1は前記第1の実施形態における処理A1と同一であることから、説明を省略する。
次に、停止パケット処理部153によって実行される上記処理B2について、図34のフローチャートと、図35及び図36のデータフォーマットとを参照して説明する。
停止パケット処理部153は、データリンク入力部151から図35(a)に示すようなARPパケット351を受信した場合、図36に示すように、当該ARPパケット351に含まれている送信元MACアドレスがサーバ情報テーブルTBL2に設定されている他系サーバのMACアドレスであるかを判定する(ステップS181)。
もし、送信元MACアドレスが他系サーバのMACアドレスである場合、停止パケット処理部153は、ARPパケットに含まれている送信元IPアドレス及びターゲットIPアドレスが同一であるかを判定する(ステップS182)。もし、送信元IPアドレス及びターゲットIPアドレスが同一である場合、停止パケット処理部153は図36に示すように、ターゲットIPアドレス(=送信元IPアドレス)が引き継ぎIPアドレスであるかをサーバ情報テーブルTBL2に設定されている引き継ぎIPアドレスと比較することによって判定する(ステップS183)。もし、ターゲットIPアドレス(=送信元IPアドレス)が引き継ぎIPアドレスである場合、停止パケット処理部153はステップS184に進む。
このように、データリンク入力部151から受信したARPパケット351の送信元MACアドレスが他系サーバのMACアドレスであり、且つ当該ARPパケット351の送信元IPアドレス及びターゲットIPアドレスが引き継ぎIPアドレスである場合、停止パケット処理部153は当該ARPパケット351が他系サーバからのG−ARP(G−ARPパケット)であるとして、ステップS184に進む。このステップS184において、停止パケット処理部153は、パケット通過状態テーブルTBL1に保持されるフラグをパケット通過不可を示す状態(図7に示す状態とは逆の状態)に変更して、処理B2を終了する。
一方、ARPパケット351の送信元MACアドレスが他系サーバのMACアドレスでないか(ステップS181)、或いは当該ARPパケット351の送信元IPアドレス及びターゲットIPアドレスが同一でないか(ステップS182)、或いは同一であっても引き継ぎIPアドレスでない場合(ステップS183)、停止パケット処理部153はステップS185に進む。このステップS185において、停止パケット処理部153は、ARPパケット351からデータリンク層ヘッダを除いた部分(IPパケット)を、図35(b)に示すARPパケット352としてIP入力部154に送り、処理B2を終了する。
次に、停止パケット処理部153によって実行される上記処理B3について、図37のフローチャート及び図38のデータフォーマットを参照して説明する。この処理B3は、サーバ情報テーブルTBL2で設定されている定期送信間隔毎に実行される。
停止パケット処理部153は、他系サーバ状態テーブルTBL3を参照して他系サーバの状態をチェックする(ステップS191)。もし、他系サーバが正常状態である場合(ステップS192)、停止パケット処理部153は何もせずに処理を終了する。
これに対し、他系サーバが故障状態である場合(ステップS192)、停止パケット処理部153は前記第1の実施形態とは異なり、停止パケットの生成と送信を行わずに、図38に示すようなG−ARP(G−ARPパケット)382を生成する(ステップS193)。このG−ARPパケット382は、サーバ情報テーブルTBL2に設定されている情報を利用して次のように生成される。まず、G−ARPパケット382の送信元MACアドレスには、図38に示すように、サーバ情報テーブルTBL2に設定されている自系サーバのMACアドレスが用いられる。また、G−ARPパケット382のターゲットMACアドレスには、図38に示すように0アドレスが用いられる。またG−ARPパケット382の送信元IPアドレス及びターゲットIPアドレスには、図38に示すように、サーバ情報テーブルTBL2に設定されている引き継ぎIPアドレスが用いられる。
次に停止パケット処理部153は、ブロードキャストアドレス(FF:FF:FF:FF:FF:FF)を図38に示す宛先MACアドレス381として取得する。停止パケット処理部153は、この宛先MACアドレス381及び生成されたG−ARPパケット381をデータリンク出力部152に送って(ステップS194)、処理を終了する。
[第4の実施形態]
図39は本発明の第4の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図である。図39において、図1または図26と同様の要素には便宜的に同一参照符号を付してある。
第4の実施形態で適用される図39のシステムの基本構成自体は、第2の実施形態で適用された図26のシステムと同様である。第4の実施形態の特徴は、第2の実施形態で適用された停止パケットに代えて、第3の実施形態と同様にG−ARPを停止パケットとして使用する点にある。
次に、図39のシステムの動作について、図26のシステムと相違する点を中心に説明する。
まず、主系サーバ1-1上で障害が発生したものとする(ステップS201)。待機系サーバ1-2のクラスタ制御部12は、主系サーバ1-1の障害を検知すると(ステップS202)、IPアドレスの設定を当該サーバ1-2のTCP/IPモジュール16に対して行う(ステップS203)。
待機系サーバ1-2のTCP/IPモジュール16は、IPアドレスが設定されると、主系サーバ1-1が当該IPアドレスの使用を停止しているかを確認するため、G−ARP(G−ARPパケット)をブロードキャストでネットワーク3に送信する(ステップS204)。
主系サーバ1-1の中間ドライバ15は待機系サーバ1-2からG−ARPを受信すると、前記第2の実施形態において待機系サーバ1-2から停止パケットを受信した場合と同様に、OSが提供する緊急停止機能を使用して、直ちに主系サーバ1-1全体を停止させる(ステップS205)。
このように本実施形態においては、主系サーバ1-1の中間ドライバ15がG−ARPを受信すると、直ちに主系サーバ1-1全体を停止させることにより、主系サーバ1-1によって提供されていたサービスを待機系サーバ1-2が引き継ぐ際の共有ディスク4(共有データ領域)の破壊を防ぐことができる。
第4の実施形態において、中間ドライバ15の構成自体は前記第1の実施形態と同様である。このため、以下の説明では図4を適宜援用する。
第4の実施形態では、中間ドライバ15内のデータリンク入力部151の機能(動作)が前記第1乃至第3の実施形態と一部異なる。一方、中間ドライバ15内のデータリンク出力部152の機能は前記第1(乃至第3)の実施形態と同様であり、停止パケット処理部153の機能は前記第3の実施形態と同様である。また、中間ドライバ15内のIP入力部154の機能は前記第1(乃至第3)の実施形態と同様であり、IP出力部155の機能は前記第3の実施形態と同様である。そこで、第4の実施形態のデータリンク入力部151の動作について前記第2の実施形態との相違点を中心に、図40のフローチャート及び図41のデータフォーマットを参照して説明する。
データリンク入力部151は、ネットワークドライバ14から図41(a)または図41(b)に示されるようなパケット(ARPパケット)411またはパケット(データリンク層パケット)412を入力データとして渡された場合、パケット通過状態テーブルTBL1をチェックする(ステップS211)。
データリンク入力部151は、パケット通過状態テーブルTBL1によってパケット通過可能が示されている場合(ステップS212)、入力データがARPパケットか否かを判定する(ステップS215)。
もし、入力データがARPパケットでない場合、データリンク入力部151は、第2の実施形態とは異なって入力データが停止パケットか否かの判定を行わずに、無条件で図5のステップS138に相当する処理(ステップS217)を行う。即ちデータリンク入力部151は、入力データがARPパケット以外の図41(b)に示すようなパケット(データリンク層パケット)412の場合、当該入力データ(データリンク層パケット412)からデータリンク層ヘッダを除いた部分、つまりIPパケットを、図41(d)に示すIPパケット414としてIP入力部154に送る。
一方、パケット通過状態テーブルTBL1によってパケット通過不可が示されている場合(ステップS212)、データリンク入力部151は第2の実施形態と同様に、入力データ(入力パケット)を破棄すると共にOSが提供している緊急停止機能を使用して自系サーバ全体を停止させる(ステップ213,S214)。
なお、本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の第1の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。 同第1の実施形態において、主系サーバの中間ドライバが、待機系サーバによって送信された停止パケットを受信できなかった場合のパケットの流れを示す図。 同第1の実施形態における停止パケット及びG−ARPの定期送信を説明するためのシーケンスチャート。 図1に示されるサーバの特に中間ドライバの詳細な構成を示すブロック図。 同第1の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。 同第1の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。 パケット通過状態テーブルのデータ構造例を示す図。 同第1の実施形態におけるデータリンク出力部の動作手順を示すフローチャート。 同第1の実施形態においてデータリンク出力部に入力されるデータ及び当該データリンク出力部から出力されるデータのフォーマットを示す図。 同第1の実施形態において停止パケット処理部によって実行される処理A1の手順を示すフローチャート。 サーバ情報テーブルのデータ構造例を示す図。 他系サーバ状態テーブルのデータ構造例を示す図。 同第1の実施形態において停止パケット処理部によって実行される処理A2の手順を示すフローチャート。 処理A2において停止パケット処理部によってデータリンク出力部に出力されるデータのフォーマットを示す図。 同第1の実施形態において停止パケット処理部によって実行される処理A3の手順を示すフローチャート。 処理A3において停止パケット処理部に入力されるデータ及び当該停止パケット処理部から出力されるデータのフォーマットを示す図。 ARP応答パケットのフォーマットをサーバ情報テーブルと対応付けて示す図。 G−ARPパケットのフォーマットをサーバ情報テーブルと対応付けて示す図。 停止パケットのフォーマットをサーバ情報テーブルと対応付けて示す図。 同第1の実施形態において停止パケット処理部によって実行される処理A4の手順を示すフローチャート。 処理A4において停止パケット処理部から出力されるデータのフォーマットを示す図。 同第1の実施形態におけるIP入力部の動作手順を示すフローチャート。 同第1の実施形態においてIP入力部に入力されるデータ及び当該IP入力部から出力されるデータのフォーマットを示す図。 同第1の実施形態におけるIP出力部の動作手順を示すフローチャート。 同第1の実施形態においてIP出力部に入力されるデータ及び当該IP出力部から出力されるデータのフォーマットを示す図。 本発明の第2の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。 同第2の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。 同第2の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。 同第2の実施形態におけるIP出力部の動作手順を示すフローチャート。 本発明の第3の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。 同第3の実施形態におけるG−ARPの定期送信を説明するためのシーケンスチャート。 同第3の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。 同第3の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。 同第3の実施形態において停止パケット処理部によって実行される処理B2の手順を示すフローチャート。 処理B2において停止パケット処理部に入力されるデータ及び当該停止パケット処理部から出力されるデータのフォーマットを示す図。 図35に示されるG−ARPパケットのフォーマットをサーバ情報テーブルと対応付けて示す図。 同第3の実施形態において停止パケット処理部によって実行される処理B3の手順を示すフローチャート。 処理B3において停止パケット処理部から出力されるG−ARPパケットのフォーマットをサーバ情報テーブルと対応付けて示す図。 本発明の第4の実施形態に係るコンピュータシステムを含むクライアントサーバシステムの基本構成と動作原理を説明するための図。 同第4の実施形態におけるデータリンク入力部の動作手順を示すフローチャート。 同第4の実施形態においてデータリンク入力部に入力されるデータ及び当該データリンク入力部から出力されるデータのフォーマットを示す図。
符号の説明
1-1…サーバ(主系サーバ、第1のサーバコンピュータ)、1-2…サーバ(待機系サーバ、第2のサーバコンピュータ)、1-i…サーバ、2…クライアント(クライアント端末)、3…ネットワーク、4…共有ディスク、11…サービスプロセス、12…クラスタ制御部、13…ネットワークIF、14…ネットワークドライバ、15…中間ドライバ、16…TCP/IPモジュール、151…データリンク入力部、152…データリンク出力部、153…停止パケット処理部、154…IP入力部、155…IP出力部、TBL1…パケット通過状態テーブル、TBL2…サーバ情報テーブル、TBL3…他系サーバ状態テーブル。

Claims (12)

  1. TCP/IPプロトコルを適用するネットワークによって相互接続される第1のサーバ及び第2のサーバから構成され、前記第1及び第2のサーバの一方のサーバが主系サーバとして機能して前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供する場合、前記第1及び第2のサーバの他方のサーバは待機系サーバとして機能し、前記一方のサーバの障害を検知した場合、前記一方のサーバが提供するサービスと当該サービスで使用される特定IPアドレスとを引き継ぐコンピュータシステムにおいて、
    前記第1及び第2のサーバは、
    TCP/IP通信におけるデータリンク層の処理を行うネットワークドライバと、
    TCP/IP通信におけるTCP/IP層の処理を行うTCP/IPモジュールと、
    前記ネットワークドライバと前記TCP/IPモジュールとの間に位置し、前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信を制御する中間ドライバと
    を具備し、
    前記第2のサーバの前記中間ドライバは、前記第2のサーバが前記待機系サーバとして機能して前記第1のサーバの障害を検知した場合に、前記特定IPアドレスの使用停止を当該第1のサーバに要求するための停止パケットを前記第2のサーバの前記ネットワークドライバ及び前記ネットワークを介して当該第1のサーバ宛てに送信し、
    前記第1のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、前記第1のサーバを前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が不可となる特定状態に設定し、
    前記第2のサーバの前記中間ドライバは前記停止パケットを送信した後、前記特定IPアドレスの競合を確認するための特別のアドレス解決プロトコル要求をブロードキャストで前記ネットワークに送信し、
    前記第1のサーバの前記中間ドライバは前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が可能な状態において前記特別のアドレス解決プロトコル要求を受信した場合、当該特別のアドレス解決プロトコル要求を前記第1のサーバの前記TCP/IPモジュールに送信し、
    前記第1のサーバの前記TCP/IPモジュールは、前記特別のアドレス解決プロトコル要求を受信した場合、当該特別のアドレス解決プロトコル要求に対する応答である前記特定IPアドレスの重複を警告するアドレス解決プロトコル応答を前記第2のサーバに返し、
    前記第2のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求に対する前記アドレス解決プロトコル応答を受信した場合、前記停止パケットを前記第1のサーバ宛てに再度送信し、しかる後に前記特別のアドレス解決プロトコル要求をブロードキャストで前記ネットワークに送信する
    ことを特徴とするコンピュータシステム。
  2. 前記第1のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、当該中間ドライバの状態を前記ネットワークドライバと前記TCP/IPモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを可能とする通過可能状態から前記ネットワークドライバと前記TCP/IPモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを抑止する通過不可状態に切り替えることにより、前記第1のサーバを前記特定状態に設定することを特徴とする請求項1記載のコンピュータシステム。
  3. 前記第1及び第2のサーバの前記中間ドライバは、前記第1及び第2のサーバの物理アドレス及び前記特定IPアドレスを格納するサーバ情報テーブルを含み、
    前記第2のサーバの前記中間ドライバは、前記サーバ情報テーブルに格納されている前記第1のサーバの物理アドレスを前記停止パケットの宛先物理アドレスとし、前記サーバ情報テーブルに格納されている前記第2のサーバの物理アドレス及び前記特定IPアドレスをそれぞれ前記特別のアドレス解決プロトコル要求の送信元物理アドレス及びターゲットIPアドレスとする
    ことを特徴とする請求項記載のコンピュータシステム。
  4. 前記第2のサーバの前記中間ドライバは、前記停止パケットを前記第1のサーバに送信する第1の送信動作と、当該第1の送信動作の後に前記特別のアドレス解決プロトコル要求をブロードキャストで送信する第2の送信動作とを含む動作を繰り返すことを特徴とする請求項記載のコンピュータシステム。
  5. 前記第1及び第2のサーバの前記中間ドライバは、前記第1及び第2のサーバの物理アドレス及び前記特定IPアドレスを格納するサーバ情報テーブルを含み、
    前記第2のサーバの前記中間ドライバは、前記サーバ情報テーブルに格納されている前記第1のサーバの物理アドレスを前記停止パケットの宛先物理アドレスとし、前記サーバ情報テーブルに格納されている前記第2のサーバの物理アドレス及び前記特定IPアドレスをそれぞれ前記特別のアドレス解決プロトコル要求の送信元物理アドレス及びターゲットIPアドレスとする
    ことを特徴とする請求項記載のコンピュータシステム。
  6. 前記第1のサーバの前記中間ドライバは、前記停止パケットを受信した場合に、オペレーティングシステムが提供するシステム緊急停止機能を利用して前記第1のサーバを停止させることにより、当該第1のサーバを前記特定状態に設定することを特徴とする請求項1記載のコンピュータシステム。
  7. TCP/IPプロトコルを適用するネットワークによって相互接続される第1のサーバ及び第2のサーバから構成され、前記第1及び第2のサーバの一方のサーバが主系サーバとして機能して前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供する場合、前記第1及び第2のサーバの他方のサーバは待機系サーバとして機能し、前記一方のサーバの障害を検知した場合、前記一方のサーバが提供するサービスと当該サービスで使用される特定IPアドレスとを引き継ぐコンピュータシステムにおいて、
    前記第1及び第2のサーバは、
    TCP/IP通信におけるデータリンク層の処理を行うネットワークドライバと、
    TCP/IP通信におけるTCP/IP層の処理を行うTCP/IPモジュールと、
    前記ネットワークドライバと前記TCP/IPモジュールとの間で送受信されるデータを制御する中間ドライバと
    を具備し、
    前記第2のサーバの前記TCP/IPモジュールは、前記第2のサーバが前記待機系サーバとして機能して前記第1のサーバの障害を検知した場合に、前記特定IPアドレスの競合を確認するための特別のアドレス解決プロトコル要求をブロードキャストで前記ネットワークに送信し、
    前記第1のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求を受信した場合に、前記第1のサーバを前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が不可となる特定状態に設定する
    ことを特徴とするコンピュータシステム。
  8. 前記第1のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求を受信した場合に、当該中間ドライバの状態を前記ネットワークドライバと前記TCP/IPモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを可能とする通過可能状態から前記ネットワークドライバと前記TCP/IPモジュールとの間で送受信されるべきデータが当該中間ドライバを通過するのを抑止する通過不可状態に切り替えることにより、前記第1のサーバを前記特定状態に設定することを特徴とする請求項記載のコンピュータシステム。
  9. 前記第2のサーバの前記中間ドライバは、当該第2のサーバの前記TCP/IPモジュールが前記特別のアドレス解決プロトコル要求を送信した後、前記特別のアドレス解決プロトコル要求を改めてブロードキャストで前記ネットワークに送信する動作を繰り返すことを特徴とする請求項記載のコンピュータシステム。
  10. 前記第1のサーバの前記中間ドライバは、前記特別のアドレス解決プロトコル要求を受信した場合に、オペレーティングシステムが提供するシステム緊急停止機能を利用して前記第1のサーバを停止させることにより、当該第1のサーバを前記特定状態に設定することを特徴とする請求項記載のコンピュータシステム。
  11. TCP/IPプロトコルを適用するネットワークに接続され、主系サーバ及び待機系サーバのいずれのサーバとしても機能することが可能であり、TCP/IP通信におけるデータリンク層の処理を行うネットワークドライバと、TCP/IP通信におけるTCP/IP層の処理を行うTCP/IPモジュールと、前記ネットワークドライバと前記TCP/IPモジュールとの間に位置し、前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信を制御する中間ドライバとを含むサーバコンピュータであって、前記主系サーバとして機能する場合には、前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供し、前記待機系サーバとして機能する場合には、前記ネットワークに接続されて前記主系サーバとして機能する他のサーバコンピュータの障害の検知により、当該他のサーバコンピュータが提供するサービスと当該サービスで使用される特定IPアドレスとを引き継ぐサーバコンピュータによって実行されるプログラムにおいて、
    前記サーバコンピュータに、
    前記サーバコンピュータが前記待機系サーバとして機能して、前記他のサーバコンピュータが前記主系サーバとして機能している状態で、前記他のサーバコンピュータで障害が発生したことが前記サーバコンピュータで検知された場合に、前記特定IPアドレスの使用停止を前記他のサーバコンピュータに要求するための停止パケットを、前記サーバコンピュータの前記中間ドライバから前記ネットワークドライバ及び前記ネットワークを介して当該他のサーバコンピュータ宛てに送信するステップと、
    前記サーバコンピュータが前記主系サーバとして機能して、前記他のサーバコンピュータが前記待機系サーバとして機能している状態で、前記特定IPアドレスの使用停止を要求するための停止パケットが前記他のサーバコンピュータから前記サーバコンピュータ宛てに送信され、当該送信された停止パケットが前記サーバコンピュータの前記中間ドライバで受信された場合に、前記サーバコンピュータを前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が不可となる特定状態に設定するステップと、
    前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が必要な場合に、前記サーバコンピュータが前記特定状態に設定されているかを判定するステップと、
    前記サーバコンピュータが前記特定状態に設定されている場合、前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信を抑止するステップと
    前記サーバコンピュータが前記待機系サーバとして機能している状態で、前記他のコンピュータ宛てに前記停止パケットを送信した後、前記特定IPアドレスの競合を確認するための特別のアドレス解決プロトコル要求を前記サーバコンピュータの前記中間ドライバからブロードキャストで前記ネットワークに送信するステップと、
    前記サーバコンピュータが前記主系サーバとして機能して、前記サーバコンピュータの前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が可能な状態にあり、且つ前記他のサーバコンピュータが前記待機系として機能している状態において、前記他のサーバコンピュータから前記特定IPアドレスの競合を確認するための特別のアドレス解決プロトコル要求がブロードキャストで送信され、当該送信された特別のアドレス解決プロトコル要求が前記サーバコンピュータの前記TCP/IPモジュールで受信された場合に、当該特別のアドレス解決プロトコル要求に対する応答である前記特定IPアドレスの重複を警告するアドレス解決プロトコル応答を当該TCP/IPモジュールから前記他のサーバコンピュータに返すステップと、
    前記サーバコンピュータが前記待機系サーバとして機能している状態で、前記特別のアドレス解決プロトコル要求に対する応答である前記特定IPアドレスの重複を警告するアドレス解決プロトコル応答が前記他のサーバコンピュータから返されて、前記サーバコンピュータの前記中間ドライバで受信された場合、当該中間ドライバから前記停止パケットを前記他のサーバコンピュータ宛てに再度送信し、しかる後に前記特別のアドレス解決プロトコル要求をブロードキャストで前記ネットワークに送信するステップと
    を実行させるためのプログラム。
  12. TCP/IPプロトコルを適用するネットワークに接続され、主系サーバ及び待機系サーバのいずれのサーバとしても機能することが可能であり、TCP/IP通信におけるデータリンク層の処理を行うネットワークドライバと、TCP/IP通信におけるTCP/IP層の処理を行うTCP/IPモジュールと、前記ネットワークドライバと前記TCP/IPモジュールとの間に位置し、前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信を制御する中間ドライバとを含むサーバコンピュータであって、前記主系サーバとして機能する場合には、前記ネットワークを介してクライアントから与えられたリクエストに応じたサービスを当該クライアントに提供し、前記待機系サーバとして機能する場合には、前記ネットワークに接続されて前記主系サーバとして機能する他のサーバコンピュータの障害の検知により、当該他のサーバコンピュータが提供するサービスと当該サービスで使用される特定IPアドレスとを引き継ぐサーバコンピュータによって実行されるプログラムにおいて、
    前記サーバコンピュータに、
    前記サーバコンピュータが前記待機系サーバとして機能して、前記他のサーバコンピュータが前記主系サーバとして機能している状態で、前記他のサーバコンピュータで障害が発生したことが前記サーバコンピュータで検知された場合に、前記サーバコンピュータが引き継ぐ前記特定IPアドレスの競合を確認するための特別のアドレス解決プロトコル要求を前記サーバコンピュータの前記中間ドライバからブロードキャストで前記ネットワークに送信するステップと、
    前記サーバコンピュータが前記主系サーバとして機能して、前記サーバコンピュータの前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が可能な状態にあり、且つ前記他のサーバコンピュータが前記待機系として機能している状態において、前記他のサーバコンピュータから前記特定IPアドレスの競合を確認するための特別のアドレス解決プロトコル要求がブロードキャストで送信され、当該送信された特別のアドレス解決プロトコル要求が前記サーバコンピュータの前記TCP/IPモジュールで受信された場合に、前記サーバコンピュータを前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が不可となる特定状態に設定するステップと、
    前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信が必要な場合に、前記サーバコンピュータが前記特定状態に設定されているかを判定するステップと、
    前記サーバコンピュータが前記特定状態に設定されている場合、前記ネットワークドライバと前記TCP/IPモジュールとの間のデータ送受信を抑止するステップと
    を実行させるためのプログラム。
JP2006195779A 2006-07-18 2006-07-18 サービス及びipアドレスの引き継ぎが可能なコンピュータシステム及びプログラム Expired - Fee Related JP4279298B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006195779A JP4279298B2 (ja) 2006-07-18 2006-07-18 サービス及びipアドレスの引き継ぎが可能なコンピュータシステム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006195779A JP4279298B2 (ja) 2006-07-18 2006-07-18 サービス及びipアドレスの引き継ぎが可能なコンピュータシステム及びプログラム

Publications (2)

Publication Number Publication Date
JP2008028456A JP2008028456A (ja) 2008-02-07
JP4279298B2 true JP4279298B2 (ja) 2009-06-17

Family

ID=39118700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006195779A Expired - Fee Related JP4279298B2 (ja) 2006-07-18 2006-07-18 サービス及びipアドレスの引き継ぎが可能なコンピュータシステム及びプログラム

Country Status (1)

Country Link
JP (1) JP4279298B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4703682B2 (ja) * 2008-04-21 2011-06-15 株式会社東芝 クラスタシステム及びプログラム
CN102308536B (zh) 2009-02-09 2015-10-07 日本电气株式会社 通信系统、通信单元、控制单元和控制方法
JP5825867B2 (ja) * 2011-06-14 2015-12-02 新電元工業株式会社 監視装置、監視方法、監視プログラム及び監視システム
JP5723757B2 (ja) * 2011-12-12 2015-05-27 日本電信電話株式会社 仮想ipアドレス管理方法、および、2重化サーバシステム
JP6205898B2 (ja) 2013-06-27 2017-10-04 富士通株式会社 制御方法、制御プログラムおよび情報処理システム
JP6217358B2 (ja) * 2013-12-02 2017-10-25 富士通株式会社 情報処理装置およびリカバリ管理方法
JP2015153146A (ja) 2014-02-14 2015-08-24 富士通株式会社 情報処理システム、情報処理システムの制御方法および情報処理システムの制御プログラム

Also Published As

Publication number Publication date
JP2008028456A (ja) 2008-02-07

Similar Documents

Publication Publication Date Title
JP4279298B2 (ja) サービス及びipアドレスの引き継ぎが可能なコンピュータシステム及びプログラム
US7885180B2 (en) Address resolution request mirroring
JP7009560B2 (ja) プロセス制御システムに冗長性を提供するための方法および装置
US9413652B2 (en) Systems and methods for path maximum transmission unit discovery
US10581967B2 (en) Chandra-Toueg consensus in a content centric network
EP1697843B1 (en) System and method for managing protocol network failures in a cluster system
CN101252604B (zh) 添加ipv6和dhcp支持到网络支持包的方法和设备
JP2004032224A (ja) サーバ引継システムおよびその方法
US9898377B2 (en) Switch provided failover
CN101251806A (zh) 使固件能从iSCSI设备引导系统的方法、系统和设备
JP2007317199A (ja) ウエブ・サービス・インスタンスがホストする適切なサーバに送られていることを検証する方法、装置、およびコンピュータ・プログラム
JP5255035B2 (ja) フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法
CN101252583A (zh) 启用InfiniBand网络自举的方法以及InfiniBand主机设备
JP4703682B2 (ja) クラスタシステム及びプログラム
JP2012515490A (ja) ゲートウェイサーバの障害を回復させるためのシステムと方法
US20080144634A1 (en) Selective passive address resolution learning
JP2006246152A (ja) パケット転送装置、パケット転送ネットワークシステムおよびパケット転送方法
JP4969421B2 (ja) 受信装置及び通信システム
JP2006260223A (ja) iSCSIストレージシステムおよびそのシステムにおけるパス多重化方法
US20080301229A1 (en) Client device, communication method and computer readable medium
US20110286451A1 (en) Method, apparatus and computer product for sending or receiving data over multiple networks
US9674319B2 (en) Detection method in network system and related apparatus
CN114826887B (zh) 私网连接通信方法和系统
JP2010226177A (ja) パケット転送装置及び同装置に実行させるためのプログラム
CN117201575A (zh) 数据发送方法、装置、设备及介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090311

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees