説明

サーバシステム、サーバ装置およびその方法

【課題】 複数のサーバの間で矛盾が生じないように情報を管理することができるようにする。
【解決手段】 DHCPサーバ#2が、あるクライアントコンピュータに対してIPアドレスAを割り当てた後、障害が発生し、他のDHCPサーバと連絡不能に陥り、複数のDHCPサーバで構成される論理的リングから外れる。DHCPサーバ#0は、DHCPサーバ#2の代わりにIPアドレスの再割り当てを行う。一方、他と通信不能になった後も動作するDHCPサーバ#2は、IPアドレスAの割り当てが終了した後、新たなIPアドレスの割り当てを行うときにも、障害発生時に割り当てていたIPアドレスA以外のアドレスを用いる。この状態は、例えば障害の全てが復旧した後にリセットされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は複数のサーバの一部に障害が発生したときに、その処理を代行するサーバシステム、サーバ装置およびその方法に関する。
【背景技術】
【0002】
特許文献1,2は、DHCP(Dynamic Host Configuration Protocol;動的ホスト構成プロトコル)に従って、コンピュータなどのノードにIPアドレスを付与する方法を開示する。
DHCPによりネットワーク内の各ノードにIPアドレスを付与するDHCPサーバなど、特定の機能を備えたサーバを、1つのネットワーク内に複数、設置し、冗長化すると、その信頼性を高めることができる。
しかしながら、例えば、DHCPサーバを冗長化するときには、いずれのアドレスをいずれのノードに付与したかなどを示す情報を、複数のサーバの間で矛盾が生じないように管理する必要がある。
しかしながら、複数のサーバの間で矛盾が生じないように情報を管理することは、必ずしも容易ではない。
【特許文献1】特開2000−59387号公報
【特許文献2】特開2001−203806号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明は、上述のような背景からなされたものであり、複数のサーバの間で矛盾が生じないように情報を管理することができるように改良されたサーバシステム、このようなシステムにおいて用いられるサーバ装置およびその方法を提供することを目的とする。
また、特定的には、本発明は、冗長化された複数のDHCPサーバの一部が機能しなくなったときに、他のDHCPサーバが、機能しなくなったDHCPサーバノードを代行しても、IPアドレスの割り当てに矛盾が生じないように改良されたサーバシステム、サーバ装置およびこれらの方法を提供することを目的とする。
【課題を解決するための手段】
【0004】
上記目的を達成するために、本発明にかかるサーバシステムは、処理に用いられる処理用データが、それぞれに重複なく割り当てられた複数のサーバ装置を含むサーバシステムであって、前記複数のサーバ装置それぞれは、前記複数のサーバ装置の一部に障害が発生したときに、障害が発生したサーバ装置に割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加手段と、障害が発生したサーバ装置の代行を行うサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データを用いて代行する代行手段と、障害が発生したサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外の処理用データを用いて行う処理手段とを有する。
【0005】
また、本発明にかかるサーバ装置は、複数のサーバ装置を含むサーバシステムの前記サーバ装置であって、前記サーバ装置それぞれには、処理に用いられる処理用データが重複なく割り当てられ、前記複数のサーバ装置の一部に障害が発生したときに、障害が発生したサーバ装置に割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加手段と、障害が発生したサーバ装置の代行を行うサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データを用いて代行する代行手段と、障害が発生したサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外の処理用データを用いて行う処理手段とを有する。
好適には、前記サーバシステムのサーバ装置の一部に発生した障害の回数と、この障害の復旧とにより定義される状態を示す状態データを作成する状態データ作成手段をさらに有し、前記使用データ付加手段は、前記作成された状態データを、前記使用データとして、前記第1の処理用データに付加し、前記処理手段は、前記処理を、このサーバ装置に割り当てられた処理用データの内、前記状態データが付された第1の処理用データ以外の処理用データを用いて代行する。
【0006】
好適には、前記状態データは、前記システムにおける障害の発生と、前記発生した障害の復旧とを示し、前記代行手段は、処理を代行すべきサーバ装置に障害が発生してから、このサーバ装置に発生した障害が復旧するまで、このサーバ装置の処理を代行し、前記処理手段は、前記状態データが、少なくとも、当該サーバ装置に発生した障害と、この障害が発生する前に発生した障害とが復旧していることを示すときに、前記割り当てられた処理用データを用いて処理を行い、このとき以外は、前記第1の処理用データ以外の処理用データを用いて処理を行う。
【0007】
好適には、前記状態データは、前記システムにおける障害の発生の回数から、前記発生した障害の復旧の回数を減算して得られる差を示し、前記処理手段は、処理を行う時点における前記状態データが示す差が、前記第1の処理用データに使用データとして付された状態データが示す差以下のときに、当該サーバ装置に割り当てられた処理用データを用いて処理を行い、このとき以外は、前記第1の処理データ以外の処理用データを用いて処理を行う。
【0008】
好適には、前記状態データは、前記発生した障害の復旧の回数から、前記システムにおける障害の発生の回数を減算して得られる差を示し、前記処理手段は、処理を行う時点における前記状態データが示す差が、前記第1の処理用データに使用データとして付された状態データが示す差以上のときに、当該サーバ装置に割り当てられた処理用データを用いて処理を行い、このとき以外は、前記第1の処理データ以外の処理用データを用いて処理を行う。
【0009】
好適には、前記複数のサーバ装置は、DHCPによりIPアドレスを割り当てるDHCPサーバであって、前記処理用データは、前記複数のサーバ装置が割り当てるIPアドレスである。
【0010】
また、本発明にかかる処理方法は、複数のサーバ装置を含むサーバシステムの前記サーバ装置における処理方法であって、前記サーバ装置それぞれには、処理に用いられる処理用データが重複なく割り当てられ、前記割り当てられた処理用データを用いて処理を行う処理ステップと、前記複数のサーバの一部に障害が発生したときに、障害が発生したサーバに割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加ステップと、障害が発生したサーバ装置の1つ以上の処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外を用いて代行する代行処理ステップとを有する。
【0011】
また、本発明にかかるプログラムは、それぞれコンピュータを有する複数のサーバ装置を含むサーバシステムの前記サーバ装置におけるプログラムであって、前記サーバ装置それぞれには、処理に用いられる処理用データが重複なく割り当てられ、前記割り当てられた処理用データを用いて処理を行う処理ステップと、前記複数のサーバの一部に障害が発生したときに、障害が発生したサーバに割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加ステップと、障害が発生したサーバ装置の1つ以上の処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外を用いて代行する代行処理ステップとを前記コンピュータに実行させる。
【発明の効果】
【0012】
本発明にかかるサーバシステム、サーバ装置およびその方法によれば、複数のサーバの間で矛盾が生じないように情報を管理することができる。
また、特定的には、本発明にかかるサーバシステム、サーバ装置およびその方法によれば、冗長化された複数のDHCPサーバの一部が機能しなくなったときに、他のDHCPサーバが、機能しなくなったDHCPサーバノードを代行しても、IPアドレスの割り当てに矛盾が生じない。
【発明を実施するための最良の形態】
【0013】
[ネットワークシステム1]
以下、本発明の実施形態を説明する。
図1は、本発明にかかるデータ処理方法が適用されるネットワークシステム1の構成を例示する図である。
図1に示すように、ネットワークシステム1は、n台のクライアントコンピュータ10−0〜10−(n−1)、管理サーバ12およびDHCPサーバ2−0〜2−(n−1)が、LAN、WANあるいはインターネットなどのネットワーク14を介して、互いに通信可能に接続されて構成される。
但し、各図において、nは2以上の整数を示し、また、nは常に同じ数を示すとは限らない。
また、以下、DHCPサーバ2−0〜2−(n−1)など、複数あり得る構成部分・処理のいずれかが、特定されずに記載されるときには、単にDHCPサーバ2と略記されることがあり、実質的に同一な構成部分および処理には、同じ符号が付される。
【0014】
また、DHCPサーバ2、クライアントコンピュータ10、および、DHCPサーバ2に対するデータの設定などの管理を行う管理サーバ12など、ネットワークシステム1において、データ処理あるいは通信の主体となりうる構成部分は、以下、ノードと総称されることがある。
ネットワークシステム1においては、複数のDHCPサーバ2は冗長構成とされ、クライアントコンピュータ10は、これらのDHCPサーバ2から、DHCP(Dynamic Host Configuration Protocol;動的ホスト構成プロトコル)により、IPアドレスの割り当てを動的に受けて、他のノードとの通信を行う。
なお、以下、適宜、具体例を挙げて説明するが、この具体例は、説明の具体化および明確化のために挙げられ、本発明の技術範囲の限定のために挙げられるのではない。
【0015】
[ハードウエア]
図2は、図1に示したクライアントコンピュータ10、管理サーバ12およびDHCPサーバ2のハードウエアを例示する図である。
図2に示すように、これらのノードは、CPU102およびメモリ104などを含む本体100、表示装置およびキーボードなどを含む入出力装置106、他のノードとの通信を行う通信装置110、および、CD装置、FD装置およびHDD装置などの記録装置112から構成される。
つまり、これらのノードは、ネットワーク14(図1)を介して他のノードと通信が可能なコンピュータとしての構成部分を有している。
【0016】
[DHCPサーバ2の冗長構成]
次に、ネットワークシステム1におけるDHCPサーバ2の冗長構成を説明する。
図3は、図1,図2に示したDHCPサーバ2の冗長構成を示す図であって、ネットワークシステム1に含まれる全てのDHCPサーバ2が、1つの論理的リング(第1の論理的リング)16−1を構成する場合を示す(但し、図3は、n=8の場合を例示)。
図3に示すように、例えば、ネットワークシステム1に含まれる全てのDHCPサーバ2−1〜2−(n−1)は、論理的に1つのループ状の冗長構成(第1の論理的リング16−1)を形成し、これらのDHCPサーバ2それぞれには、#0〜#(n−1)のうちのいずれかが、一意な識別子(サーバID)として、この論理的リング16−1のID(リングID=1)とともに付される。
【0017】
なお、このサーバIDは、IPアドレスの割り当てのために用いられる信号の伝送順序の他に、論理的リング16−1におけるDHCPサーバ2−0〜2−(n−1)の優先順位を示し、例えば、サーバIDの値が小さければ小さいほど、そのサーバIDが付されたDHCPサーバ2の優先順位が高くなる。
また、ネットワークシステム1には、複数の論理的リング16が含まれうるが、以下、図示およびその説明の具体化および明確化のために、ネットワークシステム1に論理的リング16−1が1つだけ含まれる場合を具体例とする。
【0018】
また、論理的リング16−1においては、DHCPによりクライアントコンピュータ10にIPアドレスを割り当てるために、DHCPサーバ2−i(i=0〜(n−1))から送信される信号は、サーバID#0〜#(n−1)が示す順序で(但し、n−1の次は0)、論理的リング16−1を構成する全てのDHCPサーバ2を経由して、元のDHCPサーバ2−iに返される。
つまり、例えば、DHCPサーバ2−0が、DHCPサーバ2−1に対して送信した信号は、DHCPサーバ2−2,2−3,・・・,2−7(n−1)の順序で、順次、中継され、最後にDHCPサーバ2−0に返される。
【0019】
また、論理的リング16−1においては、論理的リング16−1に含まれるDHCPサーバ2が、全体として、クライアントコンピュータ10に割り当てうる全てのIPアドレスの集合(スコープ、但し、図9に示す論理的リング16−2などにおいてはVS)は、それぞれ、DHCPサーバ2−0〜2−(n−1)に対応し、1つ以上のIPアドレスを、他と重複しないように含む仮想サブスコープ(VSS; Virtual Sub Scope)#0〜#7(n−1)に分けられる。
論理的リング16−1においては、例えば、サーバIDの値が最も小さいDHCPサーバ2が、マスタDHCPサーバ2として動作し、これ以外のDHCPサーバ2は、スレーブDHCPサーバ2として動作する。
【0020】
論理的リング16−1においては、VSS#0〜#7(n−1)それぞれを、対応するDHCPサーバ2−0〜2−7(n−1)それぞれが作成し、自らに設定する。
DHCPサーバ2−0〜2−(n−1)それぞれは、設定されたVSS#0〜#7(n−1)のいずれかに含まれるIPアドレスを、IPアドレスの割り当てを要求したクライアントコンピュータ10に割り当てることができる。
なお、VSSの作成方法は、図18,図20および式1〜3などを参照して後述される。
【0021】
[論理的リング16−1によるIPアドレス割り当て]
以下、論理的リング16−1によるクライアントコンピュータ10に対するIPアドレスの割り当てを説明する。
図4は、図3に示した論理的リング16−1によるクライアントコンピュータ10に対するIPアドレスの割り当て処理(S10)を示す通信シーケンス図であって、IPアドレスが正常に割り当てられる場合を例示する。
なお、以下の各通信シーケンス図において、DHCPサーバ2−0などに付された(M)は、DHCPサーバ2−0などがマスタDHCPサーバ2であることを、DHCPサーバ2−1などに付された(S)は、DHCPサーバ2−1などがスレーブDHCPサーバ2であることを示している。
図4に示すように、ステップ100(S100)において、クライアントコンピュータ10は、DHCPサーバ2−0に対して、IPアドレスの割り当てを要求する。
【0022】
ステップ102(S102)において、DHCPサーバ2−0〜2−(n−1)のいずれか(図4においてはDHCPサーバ2−0)は、IPアドレスの割り当てを要求したクライアントコンピュータ10に対して、VSS#0に含まれるIPアドレスAを提供する旨を示す信号(Offer)を返す。
ステップ104(S104)において、クライアントコンピュータ10は、DHCPサーバ2−0に対して、IPアドレスAの割り当てを要求する。
ステップ106−1〜106−n(S106−1〜S106−n)において、クライアントコンピュータ10にIPアドレスの提供を申し出たDHCPサーバ2−0は、サーバIDに従って、DHCPサーバ2−1に対して、IPアドレスAを提供する旨を示す信号(アドレス割り当て通知信号)を送信する。
【0023】
このアドレス割り当て通知信号は、論理的リング16−1に含まれる全てのDHCPサーバ2を経由して中継され、DHCPサーバ2−0に返される。
ステップ108(S108)において、DHCPサーバ2−0は、IPアドレスの割り当てを要求したクライアントコンピュータ10に対して、IPアドレスAを割り当てるための処理(ACK送信)を行う。
なお、図5を参照して後述するように、ステップ106(S106)には、クライアントコンピュータ10からDHCPサーバ2−0に対して、IPアドレスAの割り当てを要求する信号(Request)と、DHCPサーバ2−0からクライアントコンピュータ10に対して、この要求を受け入れる旨を示す信号(ACK)とが含まれる。
【0024】
論理的リング16−1において、複数のクライアントコンピュータ10からのIPアドレス割り当て要求に応じて、複数のDHCPサーバ2が、クライアントコンピュータ10に対して同一または異なるIPアドレスを提供することがある。
次に、このようなIPアドレス提供の衝突が起こった場合の処理を説明する。
図5は、図3に示した論理的リング16−1によるクライアントコンピュータ10に対するIPアドレスの割り当て処理(S10')を示す通信シーケンス図であって、IPアドレスの提供に衝突が生じた場合を例示する。
図4に示したS10の処理と同様に、ステップ100−1,100−2(S100−1,S100−2)において、例えば、クライアントコンピュータ10−0,10−1は、DHCPサーバ2−0,2−2に対して、IPアドレスの割り当てを要求する。
【0025】
ステップ102−1,102−2(S102−1,S102−2)において、DHCPサーバ2−0,2−2は、IPアドレスの割り当てを要求したクライアントコンピュータ10−0,10−2に対して、仮想スコープ(VS)に含まれるIPアドレスAを提供する旨を示す信号(Offer)を返す。
ステップ104−1,104−2(S104−1,S104−2)において、クライアントコンピュータ10−0,10−1は、DHCPサーバ2−0,2−2に対して、IPアドレスAの割り当て要求を出す。
ステップ106−1〜(S106−1〜106−n)において、クライアントコンピュータ10−0にIPアドレスの提供を申し出たDHCPサーバ2−0は、DHCPサーバ2−1に対して、IPアドレスAを提供する旨を示す信号(アドレス割り当て通知信号)を送信する。
このアドレス割り当て通知信号は、論理的リング16−1に含まれる全てのDHCPサーバ2を経由して中継され、DHCPサーバ2−0がIPアドレスAを提供する旨の信号を送出した後、制限時間中に、DHCPサーバ2−0に返される。
【0026】
一方、ステップ106'−1,106'−2(S106'−1,S106'−2)において、クライアントコンピュータ10−1にIPアドレスの提供を申し出たDHCPサーバ2−2は、DHCPサーバ2−3(図5において図示せず)に対して、IPアドレスAを提供する旨を示す信号(アドレス割り当て通知信号)を送信する。
このアドレス割り当て通知信号は、同じクライアントコンピュータ10−0に対してIPアドレスAを提供したより高い優先順位のDHCPサーバ2−0によりブロックされ、DHCPサーバ2−2がIPアドレスAを提供する旨の信号を送出した後、制限時間中に、DHCPサーバ2−2は返されない。
また、DHCPサーバ2−0が送信し、DHCPサーバ2−1が中継したS106−1において送信されたアドレス割り当て通知信号の受信により、DHCPサーバ2−2は、IPアドレスAが、優先順位が高いDHCPサーバ2−0によって使われることを知ることができるので、DHCPサーバ2−0よりも優先順位が低いDHCPサーバ2−2は、IPアドレスAを割り当てない。
【0027】
ステップ108(S108)において、DHCPサーバ2−0は、クライアントコンピュータ10−0に対して、IPアドレスAを割り当てる旨の信号(ACK)を返す。
一方、ステップ110(S110)において、DHCPサーバ2−2は、クライアントコンピュータ10−1に対して、IPアドレスAを割り当てない旨の信号(NACK)を返す。
【0028】
[リングアップデート]
また、マスタDHCPサーバ2−0は、例えば一定周期で、DHCPサーバ2−0に対して、論理的リング16−1における通信が正常に維持されているか否かを試験する。
図6は、図3に示した論理的リング16−1における通信が正常に維持されているか否かの試験(リングアップデート)を示す信号シーケンスであって、リングアップデートにより、論理的リング16−1における通信が正常に維持されている場合を例示する。
図6に示すように、ステップ120−1(S120−1)において、マスタDHCPサーバ2−0が、スレーブDHCPサーバ2−1に対してリングアップデート信号を送信する。
ステップ120−2〜120−n(S120−2〜S120−n)において、DHCPサーバ2−1〜2−(n−1)により、リングアップデート信号が、順次、中継され、最終的に、DHCPサーバ2−0に返される。
DHCPサーバ2−0は、リングアップデート信号が、リングアップデート信号送信から制限時間内に返されたことをもって、論理的リング16−1内の通信が正常に維持されていると判断することができる。
【0029】
[障害発生時]
以下、障害発生時の論理的リング16−1(図3)の動作を説明する。
図7は、論理的リング16−1(図3)に発生する障害を例示する図である。
以下、図7に示すように、ネットワークシステム1(図1)のネットワーク14に障害が生じたなどの理由により、論理的リング16−1(図3)において、DHCPサーバ2−0〜2−3と、DHCPサーバ2−4〜2−7(n−1)との間の通信が不可能になった場合を具体例とする。
【0030】
図8は、図7に示したように論理的リング16−1(図3)に障害が発生したときに、クライアントコンピュータ10(図1)からDHCPサーバ2にIPアドレスが要求されたときの異常な通信シーケンス(S14)を例示する図である。
正常時(図4;S10)と同様に、図8に示すように、ステップ100(S100)において、クライアントコンピュータ10からDHCPサーバ2に対して、IPアドレスの割り当てが要求される。
ステップ102(S102)において、DHCPサーバ2−0は、クライアントコンピュータ10に対してIPアドレスAを提供する。
ステップ104(S104)において、クライアントコンピュータ10は、DHCPサーバ2−0に対してIPアドレスAの割り当てを要求する。
【0031】
ステップ106−1〜106−3(S106−1〜S106−3)において、正常時(図4)と同様に、DHCPサーバ2−0からDHCPサーバ2−3への順序で、IPアドレスAをクライアントコンピュータ10に割り当てる旨が通知される。
しかしながら、ステップ106−4〜106−n(S106−4〜S106−n;但し、一部、図示されず)に破線で示すように、正常時とは異なり、DHCPサーバ2−3とDHCPサーバ2−4との間の通信が不可能なので、DHCPサーバ2−4には、この通知は届かない。
従って、この通知は、制限時間内にDHCPサーバ2−0に返ってこない。
【0032】
このようなときに、ステップ20−1(S20−1)において、DHCPサーバ2−0は、相互に通信可能なDHCPサーバ2−0〜2−3(図7)の間で、リング再構成のための処理(S20−1)を行う(リング再構成(S20)のための通信シーケンスは、図11を参照して後述)。
同様に、ステップ140(S140)において、例えば、DHCPサーバ2−4〜2−(n−1)に、リングアップデートの周期が訪れても、これらに、DHCPサーバ2−0からのリングアップデート信号は届かない。
この事象を契機として、DHCPサーバ2−4〜2−(n−1)は、相互に通信が可能なDHCPサーバ2−4〜2−(n−1)の間で、リング再構成のための処理(S20−2)を行う。
【0033】
図9は、図3に示した論理的リング16−1に含まれるDHCPサーバ2の間の通信に、図7に示したように障害が生じたときに、リング再構成処理(S20−1,S20−2;図11)により構成される第2の論理的リング16−2および第3の論理的リング16−3を例示する図である。
この結果、図9に示すように、第1の論理的リング16−1(図3)は、図7に示した障害発生部分で分けられ、2つの論理的リング16(第2の論理的リング16−2および第3の論理的リング16−3)に再構成される。
このとき、論理的リング16−1(図3)において、DHCPサーバ2−0〜2−7(n−1)に対応付けられていたVSS#0〜#7からなるVSもまた、論理的リング16−2におけるVSS#0〜#3、および、論理的リング16−3におけるVSS#4〜#7(n−1)からなるVSに再構成される。
【0034】
さらに、図8に示すように、DHCPサーバ2−0〜2−3の間、および、DHCPサーバ2−4〜2−(n−1)の間それぞれにおいて、DHCPサーバ2がクライアントコンピュータ10に割り当てたIPアドレスの矛盾を解消するためのアドレス同期のための処理(S30−1,S30−2;図13,図14を参照して後述)が行われる。
【0035】
なお、図7に示したように論理的リング16−1に障害が発生しているときには、図8に示したIPアドレスの割り当て時の他に、リングアップデート時にも、リングの再構成のための処理(S20−1,S20−2)が行われて論理的リング16−2,16−3(図9)が作成され、これらのリングそれぞれにおいて、アドレス同期のための処理(S30−1,S30−2)が行われる。
【0036】
図10は、図7に示したように論理的リング16−1(図3)に障害が発生したときに、マスタDHCPサーバ2−0が行うリングアップデートの異常な通信シーケンス(S16)を例示する図である。
図10に示すように、ステップ160−1〜160−3(S160−1〜S160−3)において、マスタDHCPサーバ2−0が、スレーブDHCPサーバ2−1に対してリングアップデート信号を送信し、この信号は、DHCPサーバ2−3まで中継される。
しかしながら、DHCPサーバ2−3とDHCPサーバ2−4との間の通信が不可能になっているので、リングアップデート信号は、制限時間内にDHCPサーバ2−0に返されることはない。
【0037】
このようなときには、DHCPサーバ2−0は、リング再構成のための処理(S20−1)およびアドレス同期のための処理(S30−1)を行う。
一方、DHCPサーバ2−4〜2−7(n−1)は、所定の時間、DHCPサーバ2−0からリングアップデート信号が送られてこないことなどを契機として、リング再構成のための処理(S20−1)およびアドレス同期のための処理(S30−1)を行う。
これらの処理の結果、リングアップデートが正常に終了しなかったときにも、論理的リング16−2,16−3(図9)が作成され、さらに、VSおよびVSSが再構成される。
【0038】
図11は、図8,図10に示したDHCPサーバ2−0〜2−4(論理的リング16−2;図9)におけるリング再構成処理(S20−1)を示す通信シーケンスを示す図である。
ステップ200−1〜200−4(S200−1〜S200−4)において、DHCPサーバ2−0〜2−3は、それぞれ、ネットワークシステム1(図1)のネットワーク14に対して、パラメータとしてリングID=1を含み、リングの再構成を通知する信号をブロードキャストまたはマルチキャストする。
このリング再構成信号は、互いに通信が可能なDHCPサーバ2−0〜2−3の間でのみ伝送され、破線で示すように、その他のDHCPサーバ2−4〜2−7(n−1)に対しては伝送されない。
【0039】
ステップ204−1〜204−4(S204−1〜S204−4)において、それぞれのリング再構成信号の送信から、制限時間が経過すると、DHCPサーバ2−0〜2−3それぞれは、制限時間内にリング再構成信号を受信したDHCPサーバ2−0〜2−3が、同じ論理的リング16−2に含まれると判断し、自らが属する論理的リング16−2に含まれるDHCPサーバ2(リングメンバ)を固定する。
さらに、DHCPサーバ2−0は、自らに論理的リング16−2において、最も小さい値のサーバIDが付され、マスタDHCPサーバ2になるべきであると判断し、その他のDHCPサーバ2−1〜2−3は、スレーブDHCPサーバ2になるべきであると判断する。
また、さらに、DHCPサーバ2−0〜2−3は、それぞれ、自らに付されたサーバIDと、他のDHCPサーバ2から通知された論理的リング16−1におけるサーバIDとから、論理的リング16−2における自らの優先順位を識別する。
容易に分かるように、この場合、論理的リング16−2においては、DHCPサーバ2−0〜2−3の優先順位は0〜3となる。
【0040】
ステップ12(S12)において、DHCPサーバ2−0は、図6に示したリングアップデートのための処理を行う。
ステップ210−1〜210−4(S210−1〜S210−4)において、マスタDHCPサーバ2−0〜2−3は、それぞれ、他のDHCPサーバ2に対して、リングの再構成が起こる以前に設定されていたVSSを通知する。
このVSSの通知は、DHCPサーバ2それぞれがが、他のDHCPサーバ2から受けたVSSの通知に、自らのVSSを追加して次のDHCPサーバ2に中継することにより行われる。
これらのVSSの通知は、論理的リング16−2を一回りして、DHCPサーバ2−0〜2−3に返される。
【0041】
ステップ212−1〜212−4(S212−1〜S212−4)において、DHCPサーバ2−0〜2−3は、それぞれ、他のDHCPサーバ2から通知されたVSS、および、自らに設定されたVSSから、リングの再構成が生じる前の古い論理的リング16−1において、リングの再構成後、新たな論理的リング16−2に含まれることになるDHCPサーバ2に設定されていたVSSの集合(仮想スコープ(VS:Virtual Scope))を求める(図9)。
さらに、DHCPサーバ2−0〜2−3は、それぞれ、求めたVSと、論理的リング16−2に含まれるDHCPサーバ2の数と、自らの優先順位とに従って、自らに設定されるべきVSSを求める。
なお、図11には、第2の論理的リング16−2(図9)におけるリング再構成処理(S20−1)のみを示したが、第3の論理的リング16−3におけるリング再構成処理(S20−2)も、同様に行われる(以下、各論理的リング16について同様)。
【0042】
図12は、図1などに示したDHCPサーバ2それぞれに設定されるVSと、VSを管理するために用いられるVSテーブルとを例示する図であって、(A)は、テーブルの形式で定義されるVSSを示し、(B)は、図3に示した第1の論理的リング16−1におけるVS(スコープ)のテーブルを示す。
DHCPサーバ2それぞれにおいて、VSおよびVSSは、式1〜式3を参照して後述する漸化式を用いた方法により、あるいは、図12(A)に示すように、DHCPサーバそれぞれに設定されるIPアドレスとそのインデックスのテーブルの形式で定義される。
このように、数式あるいはテーブルの形式で定義されたVSが、DHCPサーバ2それぞれに設定される。
【0043】
図12(B)に示すように、例えば、論理的リング16−1(図3)において、DHCPサーバ2がVSを管理するために用いるVSテーブルには、IPアドレスのインデックスと、IPアドレスおよびMACアドレスと、このIPアドレスをクライアントコンピュータ10に割り当てるDHCPサーバ2の識別子(サーバID)と、このIPアドレスが割り当てられているか否か(割り当て中/未割り当て)と、そのIPアドレスの同期が取れているかいないか(同期/非同期)と、割り当て期限(リース期限)と、そのIPアドレスがクライアントコンピュータ10に割り当てられたときの分割次数(分割次数については、図18などが参照されて後述される)を示すデータが対応付けられて含まれる。
【0044】
図3を参照して既に述べたように、分割されていない状態の第1の論理的リング16−1においては、VSは、DHCPサーバ2−0〜2−(n−1)が全体としてクライアントコンピュータ10に割り当てることができるスコープに他ならない。
第2の論理的リング16−2など、リングの再構成により得られた論理的リング16においては、VSは、上述のように、リングの再構成の後にその論理的リング16に含まれることとなったDHCPサーバ2に、リングの再構成前に設定されていた全てのVSSの集合として定義される。
【0045】
図13は、図8,図10に示したDHCPサーバ2−0〜2−4(論理的リング16−2;図9)におけるアドレス同期処理(S30−1)を示す通信シーケンスを示す第1の図である。
なお、図13には、DHCPサーバ2−0がDHCPサーバ2−2が使用中であると認識しているIPアドレスAが、実際に、DHCPサーバ2−2によりクライアントコンピュータ10に割り当てられている(使用中である)場合が例示されている。
【0046】
図13に示すように、ステップ300−1(S300−1)において、DHCPサーバ2−0は、DHCPサーバ2−2に対して、IPアドレスAをクライアントコンピュータ10に割り当てている(IPアドレスAが使用中である)か否かを問い合わせる信号を、DHCPサーバ2−2に対して送信する。
ステップ300−2(S300−2)において、DHCPサーバ2−1は、DHCPサーバ2−0からの信号を、DHCPサーバ2−2に中継する。
【0047】
ステップ302−1(S302−1)において、DHCPサーバ2−2は、DHCPサーバ2−3に対して、IPアドレスAが使用中である旨を示す信号を送信する。
ステップ302−2(S302−2)において、DHCPサーバ2−3は、DHCPサーバ2−0に対して、IPアドレスAが使用中である旨を示す信号を送信する。
DHCPサーバ2−0は、制限時間内に、DHCPサーバ2−3からこの信号が返されると、IPアドレスAが、DHCPサーバ2−2によって実際に使用されていると判断し、その旨を記憶する。
ステップ302−3,302−4(S302−3,S302−4)において、IPアドレスAが使用中である旨を示す信号は、論理的リング16−2を一周して、DHCPサーバ2−2に返される。
なお、DHCPサーバ2−0の場合と同様に、IPアドレスAが使用中である旨を示す信号を受信したDHCPサーバ2−3,2−1は、DHCPサーバ2−2によって実際に使用されていると判断し、その旨を記録する。
【0048】
図14は、図8,図10に示したDHCPサーバ2−0〜2−4(論理的リング16−2;図9)におけるアドレス同期処理(S30−1)を示す第2の通信シーケンスを示す図である。
なお、図14には、DHCPサーバ2−0がDHCPサーバ2−2が使用中であると認識しているIPアドレスAが、実際には、DHCPサーバ2−2によりクライアントコンピュータ10に割り当てられていない(使用中でない)場合、つまり、DHCPサーバ2−0とDHCPサーバ2−2との間で、アドレスが非同期の状態になっている場合が例示されている。
図14に示すように、図13に示した場合と同様に、ステップ300−1(S300−1)において、DHCPサーバ2−0は、DHCPサーバ2−2に対して、IPアドレスAが使用中であるか否かを問い合わせる信号を、DHCPサーバ2−2に対して送信する。
ステップ300−2(S300−2)において、DHCPサーバ2−1は、DHCPサーバ2−0からの信号を、DHCPサーバ2−2に中継する。
【0049】
ステップ304−1(S304−1)において、DHCPサーバ2−2は、IPアドレスAを使用していないので、図13に示した場合とは異なり、DHCPサーバ2−3に対して、IPアドレスAの不使用を示す信号を送信する。
ステップ304−2(S304−2)において、DHCPサーバ2−3は、IPアドレスAの不使用を示す信号を、DHCPサーバ2−0に中継する。
このような場合には、DHCPサーバ2−0は、IPアドレスAが、DHCPサーバ2−2によって使用されていないと判断し、その旨を記憶する。
ステップ304−3,304−4(S304−3,S304−4)において、IPアドレスAの不使用を示す信号は、DHCPサーバ2−2に返される。
なお、DHCPサーバ2−0の場合と同様に、IPアドレスAが不使用である旨を示す信号を受信したDHCPサーバ2−3,2−1は、DHCPサーバ2−2によって実際に使用されていないと判断し、その旨を記録する。
【0050】
図15は、図9に示した第3の論理的リング16−3に障害が発生したときに、第3の論理的リング16−3から、第4の論理的リング16−4および第5の論理的リング16−5に再構成される態様を例示する図である。
図16は、図15に示した第5の論理的リング16−5に障害が発生したときに、第3の論理的リング16−3から、2つのDHCPサーバ2−6,DHCPサーバ2−7(n−1)が、単独で動作するように再構成される態様を例示する図である。
【0051】
以上、図3〜図14を参照して説明された処理を繰り返すことにより、図15に示すように、第3の論理的リング16−3にさらに障害が発生し、DHCPサーバ2−5とDHCPサーバ2−6との間の通信が不能になったときに、第3の論理的リング16−3から、第4の論理的リング16−4および第5の論理的リング16−5が再構成されうる。
さらに、図16に示すように、第5の論理的リング16−5にさらに障害が発生し、DHCPサーバ2−6とDHCPサーバ2−7(n−1)との間の通信が不能になったときに、DHCPサーバ2−6,2−7(n−1)それぞれが、単独で動作するように、第5の論理的リング16−5が再構成されうる。
【0052】
以上、図9,図15,図16には、論理的リング16に障害が発生して、DHCPサーバ2の間の通信が不可能になった場合が例示されたが、DHCPサーバ2の内の1つ以上がダウンして、IPアドレスの割り当て処理が不可能になった場合など、様々な障害が発生した場合にも、同様な論理的リング16の再構成、VSSの再構成およびアドレスの同期のための処理が行われる。
また、例えば、図9に示した第2の論理的リング16−2と、第3の論理的リング16−3の通信が復旧したときには、例えば、マスタDHCPサーバ2−0が、定期的に、図11に示したリング再構成処理(S20)を行うことにより、複数の論理的リング16を、1つの論理的リング16−1(図3)にまとめ、それに合わせてVSSを再構成し、アドレスを同期させることができる。
【0053】
[VSSの再構成]
図17は、4つのDHCPサーバ2−0〜2−3により構成される第6の論理的リング16−6を例示する図である。
以下、説明の明確化のため、図17に示すように、4つのDHCPサーバ2−0〜2−3から構成される論理的リング16−6を具体例として、1つの論理的リング16から複数の論理的リング16への分裂に伴うVSSの再構成を説明する。
【0054】
図18は、図17に示した論理的リング16−6に与えられたIPアドレスの集合(スコープ)から、DHCPサーバ2−0〜2−3それぞれに対応するVSSを作成する処理を示す図である。
DHCPサーバ2−0〜2−3それぞれは初期値として同一のスコープが与えられており、最初は、VSSを保持していない。したがって論理的リング16−6において各DHCPサーバ2−0〜2−3のVSSをすべて集めても空(大きさが0)のVSとなる。この場合は、各DHCPサーバ2−0〜2−3それぞれは、それぞれがもつスコープをVSとみなす。このときのVSは、図18の左側に示すような、IPアドレス#000,#001,・・・を含む、初期値として与えられたスコープと同一のIPアドレス集合である。
このように、VSが分割されていない状態は、VSの0次分割と定義される。
なお、0次分割のVSは、論理的リング16の各DHCPサーバ2に与えられたスコープと一致する。
【0055】
この0次分割のVSを分割して、論理的リング16−6を構成する4つのDHCPサーバ2−0〜2−3(優先順位0〜3)それぞれに、できるだけ等しい数のIPアドレスを割り当てるためには、図18の右側に示すようにすればよい。
つまり、0次分割のVSに含まれるIPアドレス#k(k=0,1,2,3・・・(S−1))のインデックスkに着目し、0次分割のVSを、IPアドレス#kのインデックスkが、k[mod]4=0〜3を与えるIPアドレスをそれぞれ含むVSS#0〜#3に1次分割し、VSS#0〜#3それぞれを、論理的リング16−6を構成するDHCPサーバ2−0〜2−3それぞれに対応付ければよい。
なお、VSSの1次分割の状態では、論理的リング16を構成するDHCPサーバ2−0〜2−3のVSSをすべて集めた論理的リング16のVSは、0次分割となり、DHCPサーバ2−0〜2−3それぞれが持つ、初期値としてのスコープと一致する。
このように、VSSの分割の次数は、常にVSの分割の次数より1だけ大きくなる。
【0056】
0次分割のVSを持つ論理的リング16に含まれるA台(添え字はVSSの分割の次数を示す)のDHCPサーバ2−0〜2−(A−1)それぞれに設定されるVSS#i(i=0,1,2,・・・,A−1)の中のIPアドレスのインデックスYは、下式1により定義されうる。
=AX+B ・・・(1),
ただし、式1において、DHCPサーバ2−iの優先順位をBとし、Xを、Y≦S−1を与える0以上の整数とする。
【0057】
図19は、図17に示した論理的リング16−6に生じた障害を例示する第1の図である。
以下、図19に示すように、論理的リング16−6において、他のDHCPサーバ2から、DHCPサーバ2−2への通信が不可能になった場合を具体例とする。
このような場合、マスタDHCPサーバ2−0は、既に述べたように、第6の論理的リング16−6から、DHCPサーバ2−0,2−1,2−3のみを含む第7の論理的リング16−7を再構成する。
論理的リング16−7においては、DHCPサーバ2−0,2−1,2−3の優先順位A20〜A22は0〜2となる。
【0058】
図20は、図19に示したDHCPサーバ2−0,2−1,2−3によるVSSの再構成を例示する図である。
一方、DHCPサーバ2−0,2−1,2−3は、DHCPサーバ2−2が動作しているか否かを知ることができないので、図18に示したように、DHCPサーバ2−2に対応付けられたVSS#2を用いずに、クライアントコンピュータ10に対するIPアドレスの割り当てが可能なように、VSおよびVSSを再構成する必要がある。
このような必要を満たすために、DHCPサーバ2−0,2−1,2−3は、図18の左側および図20の左側に示すように、DHCPサーバ2−0およびDHCPサーバ2−0と通信可能なDHCPサーバ2−1,2−3に対応付けられた障害発生前のVSS#0,#1,#3に含まれるIPアドレスを、図20の中央に示すような態様で集め、障害発生後に再構成されるDHCPサーバ2−0,2−1,2−3を含む論理的リング16のVSとする。
なお、このVSは、1次分割のVSである。
【0059】
さらに、このように集められたVSS#0,#1,#3に含まれるIPアドレスの集合、すなわち1次分割のVSを、図20の右側に示すように、0次分割のVSから1次分割した時と同様な方法で2次分割し、障害後の新たなVSS#0,#1,#3とすることにより、論理的リング16−6におけるVSSを、論理的リング16−7におけるVSSに再構成することができる。
ある論理的リング16が、さらに複数の論理的リング16に分割されるたびに、各論理的リング16を構成するDHCPサーバ2に対応するVSSに含まれるIPアドレスを集めてVSとし、さらに、そのVSを新たなVSSに分割して再構成することにより、その論理的リング16を構成するDHCPサーバ2それぞれに、新たなVSSを対応付けることができる。
【0060】
リングの再構成の後、論理的リング16に含まれるA台のDHCPサーバ2−0〜2−(A−1)それぞれに設定される2次分割の状態のVSS#i(i=0,2,・・・,A−1)の中のIPアドレスのインデックスYは、下式2に示すBの総数をGとしたとき、G本の数式により定義されうる。

=A(AX+B)+B(0),


=A(AX+B)+B(B−2),および,
=A(AX+B)+B(B−1), ・・・(2),
ただし、式2において、
DHCPサーバ2−iの優先順位をBとし、
Xを、Y≦S−1を与える0以上の整数とし、
(0)〜j(B−1)を、リングの再構成により得られた論理的リング16に含まれることとなったDHCPサーバ2それぞれに、リングの再構成の前に与えられていた優先順位とし(ただし、リングの再構成の前に与えられていた優先順位を持たないDHCPサーバ2の優先順位は除外される)、
他の記号は式1と同様とする。
【0061】
以上説明したVSSの再構成を、さらに説明する。
図18を参照して既に述べたように、論理的リング16を構成する各DHCPサーバ2が持つ初期値としてのスコープに一致するVSが、分割されていない状態を、0次分割のVSとする。
また、図17および図18を参照して既に述べたように、0次分割のVSに含まれるIPアドレスが、論理的リング16を構成するDHCPサーバ2それぞれに対応するVSSに分割されている状態を、1次分割のVSSとする。
さらに、図19および図20を参照して既に述べたように、1次分割により得られたVSSを集めてできたVSが、一部のVSSを欠くことによって0次分割に戻らず(すなわち1次分割のまま)、さらに新たなVSSに再構成された状態を2次分割のVSSとする。
このように、n−1回の論理的リング16のVSの分割に伴って再構成されたVSSを、n次分割により得られたVSSと定義することができ、以下、このVSを分割した回数nを、分割次数と定義する。
【0062】
上述した式2は、さらに一般化することができ、リングの再構成の後、論理的リング16に含まれるA台のDHCPサーバ2−10〜2−(A−1)それぞれに設定される、n次分割の状態のVSS#i(i=0,1,2,・・・,A−1)の中のIPアドレスのインデックスYは、下式2に示すように、Bの総数をGとしたとき、G・・・Gn−1本の数式により、帰納的に定義されうる。
以下、分割次数nのVSSにおける式の数G・・・Gn−1をFとする。

=An−1(AX+B)+Bn−1n−1(0),


=An−1(AX+B)+Bn−1n−1(Bn−1−2),および,
=An−1(AX+B)+Bn−1n−1(Bn−1−1) ・・・(3),
ただし、式3において、
DHCPサーバ2−iの優先順位をBとし、
Xを、Y≦S−1を与える0以上の整数とし、
n−1(0)〜jn−1(Bn−1−1)を、リングの再構成により得られた論理的リング16に含まれることとなったDHCPサーバ2それぞれに、リングの再構成の前に与えられていた優先順位とする(ただし、リングの再構成の前に与えられていた優先順位を持たないDHCPサーバ2の優先順位は除外)。
【0063】
このように、0次分割状態の論理的リング16のVSから、n−1次分割状態の論理的リング16のVS、そして論理的リング16を構成する各DHCPサーバ2の、n次分割状態のVSSに至るまでのVSSの変化の履歴は、DHCPサーバ2それぞれにおいて、式1〜式3に示したように、漸化式の形式で保存されうる。
障害の復旧などに伴って、再び1つの論理的リング16が復元されるときに、復元後のDHCPサーバ2それぞれは、保存していた漸化式を逆にたどって、復元された論理的リング16において用いていたVSSを計算し、再び設定することができる。
【0064】
[VSSの重複判定]
以上説明したように、DHCPサーバ2それぞれに割り当てられたVSSは、原理的には、論理的リング16−1(図3)から再構成されたいかなる論理的リング16においても重複しない。
従って、複数の論理的リング16を1つの論理的リング16に再構成するときに、VSSを合成しても、合成の対象となるVSSに含まれるIPアドレスに重複が生じることはない。
しかしながら、何らかの処理上のエラーにより、複数のVSSの間でIPアドレスの重複が生じてしまう可能性は0ではないので、このような重複の発生を判定し、重複を生じているVSSのいずれかを、合成の対象から外すなどの手当をすることができれば、論理的リング16の信頼性をさらに高めることができる。
【0065】
ここで、下のような形式で表された式3は、

=An−1(AX+B)+Bn−1n−1(0),


=An−1(AX+B)+Bn−1n−1(Bn−1−2),および,
=An−1(AX+B)+Bn−1n−1(Bn−1−1) ・・・(3),
下式4のように簡略化した形式で表されうる。

=CX+E(0),


=CX+E(F−2),および,
=CX+E(F−1) ・・・(4),
【0066】
ここで、2つのDHCPサーバ2に設定されたVSSに含まれるIPアドレスのインデックスYi1,Yi2を、下式5−1,5−2で表す。
i1
=C+Ei1(0),


=C+Ei1(F−2),または,
=C+Ei1(F−1) ・・・(5−1),
i2
=C+Ei2(0),


=C+Ei2(F−2),または,
=C+Ei2(F−1) ・・・(5−2),
但し、X,Xは、Yi1,Yi2≦S−1を与える0以上の整数。
【0067】
これら2つのVSSが重複するときには、下式6が成り立つ。
i1=Yi2 ・・・(6),
従って、これら2つのVSSが重複するときには、下式7のいずれかが成り立つ。
+Ei1(0)
=C+Ei2(0),


=C+Ei2(F−2),または,
=C+Ei2(F−1),
または、
+Ei1(1)
=C+Ei2(0),


=C+Ei2(F−2),または,
=C+Ei2(F−1),
または、



+Ei1(F−1)
=C+Ei2(0),


=C+Ei2(F−2),または,
=C+Ei2(F−1),
・・・(6)
【0068】
式6に含まれる各等式は、下式7の通りに簡略化して表されうる。
aX+b=cX+d ・・・(7),
【0069】
但し、式7において、
0≦b<a ・・・(8),
0≦d<c ・・・(9),
0≦aX+b<S、0≦cX+d<S ・・・(10),
【0070】
式7を変形すると、下式11が得られ、下式11のaXおよびcX+d−bは、いずれもaの倍数となる。
aX=cX+(d−b) ・・・(11),
【0071】
従って、cXおよび(d−b)の両方がaの倍数であるとき、つまり、下式12が成り立つときと、cXのaの剰余系と(d−b)のaの剰余系との和がaであるとき、つまり、下式13が成り立つときに、これら2つのVSSが重複する。
従って、下式12,13を、式6に含まれる各等式について実行することにより、2つのVSSが重複するか否かを判定することができる。
cX[mod]a=0かつ(d−b)[mod]a=0 ・・・(12),または,
cX[mod]a+(d−b)[mod]a=a ・・・(13),
【0072】
ここで、下式14,15に示すように、A,Bを定義すると、a−Bの値が、Aの集合に含まれると、これら2つのVSSに含まれるIPアドレスが重複すると判定できる。
A=cX[mod]a ・・・(14),
B=(d−b)[mod]a ・・・(15),
または、Bの値が0であって、cの値がaの倍数であるとき、VSS1,VSS2に含まれるIPアドレスが重複すると判定できる。
【0073】
下式16に、式14,15を代入すると、下式17を得ることができる。
A=a−B ・・・(16),
cX[mod]a=a−(d−b)[mod]a ・・・(17),
【0074】
式17を満たすXを求め、さらに、このXが、式(9),(11)を満たすとき、下式18により、重複するIPアドレスのインデックスYを得ることができる。
このような処理を、式6に示した各等式について行うことにより、2つのVSSの間で重複するIPアドレス(IPアドレスのインデックス)を求めることができる。
Y=cX+d ・・・(18),
【0075】
[あるIPアドレスのインデックス値がVSSに含まれているか否かの判定]
以下、あるIPアドレスのインデックス値がVSSに含まれているか否かの判定を説明する。
この判定は、IPアドレス#kのインデックス値kを用いて、このIPアドレスが、判定の対象となるVSSに含まれているか否か、および、このIPアドレスが、クライアントコンピュータ10に割り当てられ得るか否かを判定するために利用される。
判定対象となるIPアドレスのインデックス値Yは、上記式11を満たさなければならず、また、インデックス値Yは、下式19により表されるので、下式20を満たせば、このIPアドレスのインデックス値は、判定対象のVSSに含まれると判定することができる。
Y=aX+b ・・・(19),
(Y−b)[mod]a=0 ・・・(20),
【0076】
以上説明した方法によると、各論理的リング16の分割次数および漸化式の形式により保存された各DHCPサーバ2のVSSの変化の履歴に基づいて、
(a)VSSの再構成を容易に行うことができ、また、
(b)VSSの分割と合成、
(c)VSSの重複判定、および、
(d)あるIPアドレスが、判定対象となるVSSに含まれるか否かの判定
を、簡単な演算により容易に行うことができる。
従って、漸化式によりVSSを定義し、DHCPサーバ2の間の通知に用いるようにすると、VSSをテーブルの形式で定義する場合(図12(A))のように、DHCPサーバ2の間でVSSに含まれる全てのIPアドレスを伝送する必要がないので、論理的リング16の再構成、および、VSSの分割および合成のときに、DHCPサーバ2の間で伝送すべき情報量を少なくすることができる。
【0077】
[IPアドレス再割り当て代行]
以下、論理的リング16に障害が発生したときのIPアドレス割り当ての代行処理を説明する。
図21は、図17に示した論理的リング16−6に生じた障害を例示する第2の図である。
図21に示すように、図19に示した場合と同様に、論理的リング16−6のDHCPサーバ2−2と、他のDHCPサーバ2−0,2−1,2−3との間の通信が不能となり、DHCPサーバ2−0,2−1,2−3から、DHCPサーバ2−2が正常に動作しているか否かなどの動作状態が不明となることがある。
このようなときには、例えば、リングの再構成により得られた論理的リング16−7のマスタDHCPサーバ2−0が、DHCPサーバ2−2の処理を代行するようにする。
DHCPサーバ2−2との間で通信が不能となったクライアントコンピュータ10が、IPアドレスの割当期限がくる前に、DHCPサーバ2−2に対して、IPアドレスの再割り当てなどを行ったときに、マスタDHCPサーバ2−0が、DHCPサーバ2−2を代行してIPアドレスの再割り当てを行うようにすると、このクライアントコンピュータ10に対するIPアドレスの割り当ては途絶えず、通信の中断を防止することができる。
【0078】
ここで、DHCPサーバ2−0,2−2の間の通信が不能となっただけで、DHCPサーバ2−2自体は、正常に処理を行いうる状態にあるときを考える。
このようなとき、リンクの再構成が生じた時点で、代行処理によりDHCPサーバ2−0がクライアントコンピュータ10に割り当てていたIPアドレスを、その後もクライアントコンピュータ10に再割り当てし続け、一方、DHCPサーバ2−2は、クライアントコンピュータ10からのIPアドレス再割り当て要求を受け取ることができず、割り当て期限をもってそのIPアドレスを開放する。
その後、DHCPサーバ2−2が、DHCPサーバ2−0とは別途、他のクライアントコンピュータ10に、同じ(開放された)IPアドレスを割り当てるようなことがあると、DHCPサーバ2−0,2−2の間で、IPアドレスの割り当て状態についての矛盾が生じることがある。
【0079】
このような矛盾を解消させるためには、以下(1)〜(7)に説明するような手当をすることにより、論理的リング16−7におけるDHCPサーバ2−2に対するIPアドレスの再割り当て要求などに応じて、DHCPサーバ2−0が代行して処理を行えるようにすればよい。
(1)DHCPサーバ2に、これまで説明したDHCPサーバとしての機能の他に、ARP(Address Resolution Protocol)を実現するプロキシARPサーバの機能を付加する。
(2)リングの再構成後の新たな論理的リング16のマスタDHCPサーバ2が、リングの再構成前の論理的リング16には含まれながら、新たな論理的リング16に含まれていないDHCPサーバ2のIPアドレスを、マスタDHCPサーバ2自身のMACアドレスに解決する「根拠のないARPリクエスト(「詳解TCP/IP Vol1.1 プロトコル;W.リチャードスティーヴンス著、橘康雄、井上尚司(邦訳)、ピアソンエデュケーション」における訳語による;gratuitous ARP request)」を、新たな論理的リング16のスレーブDHCPサーバ2に対して行うようにする。
また、リングの再構成後、各DHCPサーバ2は、自分自身のIPアドレスを自分自身のMACアドレスに解決する「根拠のないARPリクエスト」を行うようにする。
【0080】
(3)論理的リング16−6において、DHCPサーバ2−2と他のDHCPサーバ2−0,2−1,2−3との間の通信に障害が生じ、リングの再構成が発生したときに、論理的リング16−7のマスタDHCPサーバ2−0は、図12(B)に示したVSテーブルを参照することにより、リングの再構成が発生した時点で、クライアントコンピュータ10に対してIPアドレスの割り当てを行っていた論理的リング16−6のDHCPサーバ2の内、リングの再構成の後、論理的リング16−7に含まれていないDHCPサーバ2(図21に示した例においてはDHCPサーバ2−2)を求める。
(4)論理的リング16−7のマスタDHCPサーバ2−0は、リングの再構成の時点で、クライアントコンピュータ10にIPアドレスの割り当てを行っていながら、リングの再構成の後に論理的リング16−7に含まれなくなったDHCPサーバ2−2のIPアドレスを、代理応答リストに記憶する。
【0081】
(5)マスタDHCPサーバ2−0は、代理応答リストに含まれるDHCPサーバ2−2のIPアドレスを、DHCPサーバ2−0のMACアドレスに解決するように、論理的リング16−7の他のDHCPサーバ2(DHCPサーバ2−1,2−3)に対して根拠のないARPリクエストを出し、論理的リング16−7において、クライアントコンピュータ10からDHCPサーバ2−2に対して出されたIPアドレスの再割り当て要求などを、マスタDHCPサーバ2−0が受けられるようにする。
(6)マスタDHCPサーバ2−0は、自らに出されたIPアドレスの再割り当て要求などの他に、DHCPサーバ2−2に対して出されたIPアドレスの再割り当て要求などを受けて、DHCPサーバ2−2の処理を代行する。
【0082】
(7)DHCPサーバ2−0〜2−3は、リング再構成が発生した以降、新たに割り当てられるすべてのIPアドレスについて、リング再構成が発生した時点のVSの分割次数(例えばn)とを対応付けて記憶する(図12(B))。VSの分割次数は、論理的リング16の分割回数に一致する。
また、対応付けられて、記憶されているVS分割次数が、リング再構成が発生した時点のVSの分割次数よりも大きいIPアドレスについて、対応付けられているVSの分割次数を、リング再構成が発生した時点のVSの分割次数に再設定する。
DHCPサーバ2−0,2−2は、リング再構成が発生した時点ですでにDHCPサーバ2−2があるクライアントコンピュータ10に割り当てていたIPアドレスについて、たとえ割り当て期限が過ぎても、障害が復旧して、あるいは、管理者によりネットワークシステム1が初期状態に戻されて、論理的リング16のVSの分割次数が、IPアドレスとともに記憶されているVSの分割次数以下になるまで、再利用して他のクライアントコンピュータ10に割り当てない。
このようにすると、DHCPサーバ2−2と他のDHCPサーバ2−0,2−1,2−3との間でIPアドレスの割り当て状況に矛盾が生じ得ない。
【0083】
なお、VSの分割次数は、以下のように扱われる。
(i)IPアドレスとともに記録される分割次数として、IPアドレス割り当て時に、その時点での論理的リング16のVSの分割次数が記録される。
(ii)IPアドレスとともに記録される分割次数が、リング再構成時に、その時点の論理的リング16のVSの分割次数より大きい場合に、論理的リング16のVSの分割次数で上書きされる。
(iii)IPアドレスは、割り当て期限が過ぎた後も、その時点の論理的リング16のVSの分割次数が、それとともに記録されているVSの分割次数以下にならなければ割り当てられない。
このようにVSの分割次数を扱うことにより、0次分割を特殊とみなさなくても、IPアドレスの再割り当て代行処理が行えるようになる。
【0084】
図22は、図21に示した論理的リング16−7のDHCPサーバ2が、論理的リング16−7から外れたDHCPサーバ2−2の機能を代行する処理(S30)を示すフローチャートである。
図23は、図22に示した代行処理におけるVSテーブルの分割次数へのデータの設定を示す図である。
論理的リング16において、論理的リング16−6のDHCPサーバ2それぞれは、図22に示すように、何らかの事象(VSテーブルの分割次数のクリア、IPアドレス割り当て要求、IPアドレス再割り当て要求、障害の発生および障害の復旧など)が生じると、ステップ300(S300)において、DHCPサーバ2は、発生した事象が、ネットワークシステム1の管理者によるVSテーブル(図12(B))の分割次数をクリアして、論理的リング16に何らの障害が発生していないことを示す初期データ(Don’t Care;図23に示したインデックス#(A+1)のエントリを参照)を設定する指示であるか否かを判断する。
事象がVSテーブルのクリアの指示であるときには、DHCPサーバ2はS312の処理に進み、これ以外のときにはS302の処理に進む。
【0085】
ステップ302(S302)において、論理的リング16−6のDHCPサーバ2は、事象が障害の発生か、障害の復旧か、あるいは、クライアントコンピュータ10からのIPアドレスの再割り当て要求/割り当て要求などであるか判断する。
論理的リング16−6のDHCPサーバ2は、事象が障害の発生を示すときにはS320の処理に進み、障害の復旧を示すときにはS310の処理に進み、これら以外のときにはS330の処理に進む。
ステップ310(S310)において、論理的リング16−6のDHCPサーバ2は、それ以前に発生した障害に起因するリングの再構成により生じた複数の論理的リング16を併合する。
さらに、論理的リング16−6のDHCPサーバ2は、式1〜式3を参照して説明した漸化式を用いて、これら複数の論理的リング16のDHCPサーバ2それぞれに対応付けられたVSSを合わせて新たなVSを作成し、さらに、新たなVSを各DHCPサーバ2に分割して対応付け、リングの再構成を行う。
【0086】
ステップ312(S312)において、論理的リング16−6のDHCPサーバ2は、VSテーブルの全てのエントリの分割次数に、初期データを設定する。
ステップ320(S320)において、論理的リング16−6のDHCPサーバ2は、リングの再構成およびVSSの再構成のための処理を行う。
ステップ322(S322)において、DHCPサーバ2−0〜2−3は、VSテーブルを参照し、リングの再構成の前に(論理的リング16-6の時に)クライアントコンピュータ10に対して割り当てていて、割り当て期限が切れていないIPアドレスのエントリについて、リングの再構成が発生した時点の分割次数よりも大きい分割次数をもつものについて、リングの再構成が発生した時点の分割次数(論理的リング16−7の分割次数)を設定する(図23に示したインデックス#Aのエントリを参照)。
また、S322において、DHCPサーバ2は、自身のIPアドレスを自身のMACアドレスに解決する「根拠のないARPリクエスト」を発行する。
【0087】
ステップ324(S324)において、論理的リング16−7のDHCPサーバ2は、DHCPサーバ2−2のIPアドレスの再割り当てを代行する必要があるか否かを判断する。
論理的リング16−7のいずれのDHCPサーバ2が、DHCPサーバ2−2の代行処理を行うかは、例えば、各DHCPサーバ2に対する事前の設定、あるいは、新たな論理的リング16のマスタDHCPサーバ2が代行するという規則に従って選択される(ここでは、DHCPサーバ2−0が代行する場合が具体例とされている)。
DHCPサーバ2−2の代行をする必要がないときには、論理的リング16−7のDHCPサーバ2は処理を終了し、これ以外のときにはS326の処理に進む。
ステップ326(S326)において、論理的リング16−7のDHCPサーバ2は、論理的リング16−7の他のDHCPサーバ2、およびクライアントコンピュータ10に対して、根拠のないARPリクエストを送信し、DHCPサーバ2−2の代わりに、DHCPサーバ2−2に対するIPアドレスの再割り当て要求を受け取ることができるようにする。
DHCPサーバ2−2の代行をする必要がないときには、論理的リング16−7のDH
【0088】
ステップ330(S330)において、DHCPサーバ2−0〜2−3は、自らに対するIPアドレスの再割り当て要求を処理し、DHCPサーバ2−0,2−1,2−3は、自らに対するIPアドレスの割り当て要求を処理する。
さらに、DHCPサーバ2−0、2−2は、DHCPサーバ2−2に対するIPアドレスの割り当て要求および再割り当て要求を処理する。
但し、DHCPサーバ2−0は、新たなIPアドレスの割り当て要求が生じたときには、DHCPサーバ2−0が参加している論理的リング16のVSにあって、VSテーブルにはまだ登録されていないか、VSテーブル内にあって、割り当て期限が切れており、分割次数として、リング再構成が発生した時点のVSの分割次数以上のものからIPアドレスを選択し、要求したクライアントコンピュータ10に割り当てる。
同様に、DHCPサーバ2−2が、新たにIPアドレスを割り当てるときには、DHCPサーバ2−2が参加している論理的リング16のVSにあって、VSテーブルにはまだ登録されていないか、VSテーブル内にあって、割り当て期限が切れており、分割次数として、リング再構成が発生した時点の分割次数以上のものからIPアドレスを選択し、要求したクライアントコンピュータ10に割り当てる(但し、これは、分割次数が、障害発生の回数から障害復旧の回数を減算した値である場合。分割次数が、障害復旧の回数から障害発生の回数を減算した値である場合には、VSテーブル中の分割次数と、割り当て時の論理的リング16の分割次数とにより定義される条件は、これとは逆になる)。
【0089】
図24は、図21に示した論理的リング16−7のDHCPサーバ2が、論理的リング16−7から外れたDHCPサーバ2−2の機能を代行する処理(S34)を例示する第1の通信シーケンス図である。
図24に示すように、ステップ340(S340)において、論理的リング16−6のDHCPサーバ2−2が、あるクライアントコンピュータ10に対してIPアドレスAを割り当て、VSの分割次数nとともにVSテーブルに記憶する。
ステップ342,344(S342,S344)において、リングの再構成およびVSSの再構成が発生し、DHCPサーバ2−2が、論理的リング16−7から外れる。
このとき、論理的リング16−7およびDHCPサーバ2−2のVSの分割次数は、nからn+1に増加するが、リングの再構成が生じた後も、DHCPサーバ2−2が、クライアントコンピュータ10に割り当てていたIPアドレスAの分割次数(図12(B),図23)は、nのままとなる。
【0090】
ステップ346(S346)において、DHCPサーバ2−0は、論理的リング16−7内の他のDHCPサーバ2およびクライアントコンピュータ10に対して、根拠のないARPリクエストを出し、論理的リング16−7において、DHCPサーバ2−2のIPアドレスの再割り当てを代行可能とする。
ステップ350(S350)において、クライアントコンピュータ10が、DHCPサーバ2−2に対して、IPアドレスAの再割り当てを要求するが、この要求は、DHCPサーバ2−0にのみ受信され、破線で示すように、DHCPサーバ2−2には受信されない。
ステップ352(S352)において、DHCPサーバ2−0は、DHCPサーバ2−2の代わりに、IPアドレスAを再割り当てする。
このとき、DHCPサーバ2−2がクライアントコンピュータ10にIPアドレスAを割り当てる期間が超過し、DHCPサーバ2−2において、IPアドレスAは、いずれのクライアントコンピュータ10にも割り当てられていない状態となる。
【0091】
ステップ362(S362)において、あるクライアントコンピュータ10が、DHCPサーバ2−2に対して、IPアドレスの割り当てを要求する。
ステップ364(S364)において、DHCPサーバ2−2は、自らが参加する論理的リング16のVSに含まれる未使用IPアドレスの内、IPアドレスAについては、VSの分割次数n+1がIPアドレスAとともに記憶されている分割次数nを上回るため使用できない。よってDHCPサーバ2−2が参加している論理的リング16のVSにあって、VSテーブルにはまだ登録されていないか、VSテーブル内にあって、割り当て期限が切れており、分割次数がn+1以上のものからIPアドレスを選択し、新規にIPアドレスの割り当てを要求したクライアントコンピュータ10に割り当てる。
【0092】
ステップ370(S370)において、論理的リング16−6において発生していた障害がさらに復旧し、論理的リング16−6と他の論理的リング16(図示せず)とが併合され、VSSの再構成が行われる。
さらに、併合後の論理的リング16のVSの分割次数がnに戻る。
また、DHCPサーバ2−0による代行によって、IPアドレスの再割り当てが行われていた旨は、同期処理によって、DHCPサーバ2−2にも伝わる。
DHCP2−2は、自身のIPアドレスを自身のMACアドレスに解決する、根拠のないARPリクエストを送信し、IPアドレスAを使用中のクライアントコンピュータ10からのIPアドレス再割り当て要求を自らが受信できるようにする。
論理的リング16の併合が生じた後、DHCPサーバ2−2は、IPアドレスAを開放したままとせず、同期処理により使用中とする。
ステップ372(S372)において、IPアドレスAを使用中のクライアントコンピュータ10が、DHCPサーバ2−2に対してIPアドレスの割り当て要求を出す。
ステップ374(S374)において、DHCPサーバ2−2は、IPアドレスAの再割り当て要求を受け入れ、処理する。
【0093】
図25は、図21に示した論理的リング16−7のDHCPサーバ2が、論理的リング16−7から外れたDHCPサーバ2−2の機能を代行する処理(S38)を例示する第2の通信シーケンス図である。
図25に示すように、S340〜S352において、各DHCPサーバ2は、図24において同じ符号が付されている処理を行う。
ステップ380(S380)において、あるクライアントコンピュータ10が、DHCPサーバ2−0に対して、新規にIPアドレスの割り当てを要求する。
ステップ382(S382)において、DHCPサーバ2−0は、自らが参加している論理的リング16のVSにあって、VSテーブルにはまだ登録されていないか、VSテーブル内にあって、割り当て期限が切れており、分割次数として、リング再構成が発生した時点のVSの分割次数以上のものからIPアドレスを選択し、IPアドレスの割り当てを要求したクライアントコンピュータ10に割り当てる。
S370〜S374において、各DHCPサーバ2は、図24において同じ符号が付されている処理を行う。
【0094】
[DHCPサーバプログラム20]
以下、DHCPサーバプログラム20を説明する。
図26は、図1に示したDHCPサーバ2において実行され、図3〜図20に示した処理を実行するDHCPサーバプログラム20の構成を示す図である。
図26に示すように、DHCPサーバプログラム20は、通信処理部200、DHCP処理部202、プロキシARP処理部204およびリング制御プログラム22から構成される。
【0095】
リング制御プログラム22は、リング管理部220、リングアップデート部222、リングメッセージ受信部224、アドレス割り当て部226、割り当てメッセージ受信部228、VSSメッセージ受信部230、アドレス割り当て部232、VSS管理部240、VSS分割部242、VSS重複判定部244、VSSデータベース(VSS−DB)246、所属VSS判定部248およびARPリクエスト処理部250から構成される。
DHCPサーバプログラム20は、例えば、記録媒体114(図2)を介してDHCPサーバ2に供給され、DHCPサーバ2にインストールされたOS上で、DHCPサーバ2のハードウエアを具体的に利用して実行される。
DHCPサーバプログラム20は、これらの構成部分により、図3〜図25を参照して説明した処理を実現する。
【0096】
DHCPサーバプログラム20において、通信処理部200は、DHCPサーバ2それぞれにおいて、他のノードとの通信に必要な処理を行う。
DHCP処理部202は、後述するように、アドレス割り当て部226と連携して動作し、そのDHCPサーバ2に割り当てられたVSS(図12(A),式1〜3)に含まれるIPアドレスの内、図21〜図25を参照して説明したIPアドレス再割り当て代行が行われている際に割り当てを禁止されたIPアドレス以外を用いて、DHCPに従って、クライアントコンピュータ10に対するIPアドレスの割り当てを行う。
プロキシARP処理部204は、ARPの機能を提供し、さらに、ARPリクエスト処理部250の制御に従って、図21〜図25を参照して説明した根拠のないARPリクエストの送信を行う。
【0097】
DHCPサーバプログラム20において、リング制御プログラム22は、図3〜図25を参照して説明した論理的リング16の形成およびその再構成、VSSの再構成、IPアドレスの再割り当ての代行のための処理を行う。
【0098】
[リング管理部220,リング試験部222]
リング管理部220およびリングアップデート部222は、論理的リング16に参加しているDHCPサーバ2のIPアドレスおよび識別子(サーバID(node_id))の組のリスト(ネットワークシステム1(図1)に接続されているDHCPサーバ2の内、そのDHCPサーバ2と同じリングIDが付されているものの集合)を用いて処理を行う。
この論理的リング16に参加しているDHCPサーバ2のIPアドレスおよび識別子(サーバID)の組のリストは、テーブル形式でリング管理部220に記憶される。
以下、このテーブルを、リングメンバーテーブルと記す。
【0099】
また、リング管理部220およびリング試験部222は、以下のタイマを用いる。
タイマassociation_timer:論理的リング16に参加するDHCPサーバ2からの応答の制限時間を計るためのタイマ(図11など),
タイマring_update_timer:論理的リング16を維持するためのリングアップデートを最後に受信してからの時間を計るためのタイマ,
タイマperiodic_timer:
リングアップデートを行う間隔を図るためのタイマ,
【0100】
図27は、図26に示したリング管理部220およびリングアップデート部222の処理のために、DHCPサーバ2の間で伝送されるリングメッセージを示す図である。
図27に示すように、リング管理部220およびリングアップデート部222が処理するリングメッセージは、
このメッセージを送信するDHCPサーバ2が属する論理的リング16(図3など)のリングID、
このメッセージを送信するDHCPサーバ2のIPアドレス、および、
以下のフラグを含むフラグ群
フラグC/U:真(True)のときリングの形成・再構成、偽(False)のときリングアップデート
フラグA:1のとき、リング管理部220は、形成済み状態D1、
フラグD:1のとき、サーバID(node_id)が重複
を含む。
【0101】
また、リング管理部220およびリングアップデート部222は、以下の変数を用いる。
変数IARM:そのDHCPサーバ2が、マスタDHCPサーバ2であるとき真,
変数ASSOC:リングが形成済である間、真の値を取る,
変数RBRK:リングを再構成する必要があるとき、真の値を取る,
変数NNODE:冗長構成に含まれうる最大のDHCPサーバ2の数(ネットワークシステム1に含まれるDHCPサーバ2の数),
【0102】
[リング管理部220の状態遷移]
図28は、図26に示したリング管理部220の状態遷移図である。
図28に示すように、各DHCPサーバ2において、リング管理部220は、未形成(NOT ASSOCIATED)状態A1、形成中(ASSOCIATING)状態B1、仮スレーブ(TENTATIVE SLAVE)状態C1、形成済み(ASSOCIATED)状態D1、孤立(ISOLATED)状態E1および仮マスタ(TENTATIVE MASTER)状態F1のいずれかの状態をとりうる。
【0103】
未形成状態A1は、そのDHCPサーバ2が、論理的リング16に加わっていない状態である。
形成状態B1は、そのDHCPサーバ2が、論理的リング160の形成・再構成のためのリングメッセージを交換して論理的リング16を形成・再構成している状態である。
【0104】
仮スレーブ状態C1は、そのDHCPサーバ2が、スレーブDHCPサーバ2として、次のDHCPサーバ2に接続する状態である。
形成済状態D1は、論理的リング16が形成された状態である。
孤立状態E1は、そのDHCPサーバ2が単独で動作している状態であり、孤立状態E1にあるDHCPサーバ2は、論理的リング16には参加できない。
仮マスタ状態F1は、そのDHCPサーバ2が、試験的にマスタDHCPサーバ2に昇格する状態である。
【0105】
処理が開始されると、リング管理部220は、未形成状態A1となる。
未形成状態A1において、リング管理部220は、変数ASSOC、変数IARMおよび変数RBRKをそれぞれ偽に設定する。
そのDHCPサーバ2が、前回、論理的リング16を構成しているときには、リング管理部220は、論理的リング16を切るために、リング上の次のDHCPサーバ2へのコネクションを切断する。
また、リング構成メッセージ(図27に示したリングメッセージにおいて、C/Uフラグが1のメッセージ)を送信する。
【0106】
未形成状態A1において、リング管理部220は、無条件に、形成中状態B1に移行する(a1)。
【0107】
形成中状態B1に移行すると、リング管理部220は、
タイマassociation_timerの計数を開始させ、他のノードからの同一のリングIDを持つリング構成メッセージの受信を待ち(これは、図11に示したS200−1〜S200−の処理に対応)、
リングメンバーテーブルにない他のDHCPサーバ2から、同じリングIDを含むリング構成メッセージを受信すると、リングメンバーテーブルにそのノードを登録し、同時に、タイマassociation_timerの計数をリセットして再開し(d1)、
また、自分が発行したものではない、自分と同一のリングIDおよびIPアドレスを含むリング構成メッセージを受信すると、孤立状態E1に移行し(c1)、
タイマassociation_timerが満了(expire)するまでに、リングメンバーテーブルにない他のノードからの同一リングIDを持つリング構成メッセージが受信されなければ、仮スレーブ状態C1に移行する(b1)。
【0108】
仮スレーブ状態C1に移行すると、リング管理部220は、形成中状態B1において作成された、リングメンバーテーブルを参照し、自分の次に高い優先順位が設定されているDHCPサーバ2(但し、最低の優先順位が設定されたDHCPサーバ2は、最高の優先順位が設定されたDHCPサーバ2)に対して、TCP(Transmission Control Protocol)によって接続を行う。
仮スレーブ状態C1において、リング管理部220は、
リングメンバーテーブルにない他のDHCPサーバ2から、同一のリングIDを含むリング構成メッセージを受信すると、未形成状態A1に移行し(f1)、
変数ASSOCが真(TRUE)となる条件で、形成済状態D1に移行し(g1)、
リングメンバーテーブルを参照して、自分のDHCPサーバ2の優先順位が最高となる条件で、仮マスタ状態F1(i1)に移行する。
【0109】
形成済状態D1に移行すると、リング管理部220は、タイマring_update_timeの計数を開始させ、リングアップデートメッセージ(図27に示したリングメッセージにおいて、C/Uフラグが0のメッセージ)の受信を待つ。
リング管理部220は、タイマring_update_timeの計数が満了する前に、リングアップデートメッセージが受信されれば、形成済状態D1に留まり(h1)、タイマring_update_timeの計数が満了するか、または変数RBRKが真となると、未形成状態A1に移行する(j1)。
【0110】
孤立状態E1において、リング管理部220は、リセットされると(リング管理部220が再起動されると)、未形成状態A1に移行する(e1)。
【0111】
仮マスタ状態F1において、リング管理部220は、変数IARMを真に設定し、
リングメンバーテーブルにない他のノードから、リングIDが同一のリング構成メッセージを受信する条件で、未形成状態A1に移行し(k1)、
変数ASSOCが真(TRUE)となる条件で、形成済状態D1に移行する(l1)。
【0112】
[リング試験部222の状態遷移]
図29は、図26に示したリング試験部222の状態遷移図である。
リング試験部222は、図6などに示したリングアップデートを定期的に行う。
リング試験部222は、以下のリングアップデートのためのリングアップデートメッセージを作成し、送信部232のリング送信キューに入れる。
処理を開始すると、リング試験部222は、初期化(INIT)状態A2をとる。
初期化状態A2において、リング試験部222は、タイマperiodic_timerを停止させる。
初期化状態A2において、リング試験部222は、リング管理部220が仮マスタ状態F1に遷移したことを示す変数IARMが真になる条件で、送信(TRANSMITTING)状態B2に移行する(a2)。
【0113】
送信状態B2において、リング試験部222は、リングアップデートメッセージを作成し、送信部232のリング送信キューに入れ、変数IARMが真となる条件で、待ち(WAITING)状態C2に移行する(b2)。
待ち状態C2において、リング試験部222は、タイマperiodic_timerの計数を開始させる。
リング試験部222は、待ち状態C2において、含まれるIPアドレスが自己のIPアドレスと同一のリングアップデートメッセージが受信された条件で、形成中状態D2に移行し(c2)、
変数IARMが偽となる条件で、初期化状態A2に移行し(d2)、
タイマperiodic_timerが満了すると、送信状態C2に移行する(e2)。
【0114】
形成中状態D2において、リング試験部222は、変数ASSOCを真とする。
リング試験部222は、形成中状態D2において、無条件に、リング試験部222は、送信状態B2に移行する(f2)。
【0115】
[リングメッセージ受信部224]
図30は、図26に示したリングメッセージ受信部224の状態遷移図である。
リングメッセージ受信部224は、リングメッセージを受信して処理を行う。
【0116】
処理が開始されると、リングメッセージ受信部224は、待ち状態A3をとる。
待ち状態A3において、リングメッセージ受信部224は、リングメッセージを受信すると、受信(RECEIVING)状態B3に移行する(a3)。
【0117】
受信状態B3において、リングメッセージ受信部224は、
リングアップデートメッセージを受信したときには、更新中(UPDATING)状態C3に移行し(c3)、
含まれるリングIDが、そのDHCPサーバ2のリングIDと同一で、かつ、リングメンバーテーブルに存在しないDHCPサーバ2のIPアドレスを含むリング構成メッセージを受信したとき、変数ASSOCが真である条件で、分割(BREAKUP)状態E3に移行し(d3)、
含まれるリングIDが、そのDHCPサーバ2のリングIDと同一で、かつ、リングメンバーテーブルに存在しないDHCPサーバ2のIPアドレスを含むリング構成メッセージを受信したとき、変数ASSOCが偽となる条件で、構成中(CONFIGURING)状態F3に移行し(e3)、
上記以外の条件で、待ち状態A3に移行する(b3)。
【0118】
更新中状態C3において、リングメッセージ受信部224は、受信したリングアップデートメッセージをリング送信部232のリング送信キューに入れる。
更新中状態C3において、リングメッセージ受信部224は、
フラグAの値が1のリングアップデートメッセージを受信したとき、形成中状態D3に移行し(g3)、
その他のときには待ち状態A3に移行する(f3)。
【0119】
形成中状態D3において、リングメッセージ受信部224は、変数ASSOCの値を真とする。
形成中状態D3において、リングメッセージ受信部224は、無条件に、待ち状態A3に移行する(h3)。
【0120】
分割中状態E3において、リングメッセージ受信部224は、変数RBRKの値を真とする。
分割中状態E3において、リングメッセージ受信部224は、無条件に、構成中状態F3に移行する(j3)。
【0121】
構成中状態F3において、リングメッセージ受信部224は、変数RCRCVの値を真とし、リングメンバーテーブルに、受信したリング構成メッセージに含まれるIPアドレスを登録する。
構成中状態F3において、リングメッセージ受信部224は、無条件に、待ち状態A3に移行する(i3)。
【0122】
リングメッセージ受信部224は、以下の規則に従って、論理的リング16の形成・再構成を行う。
(1)各論理的リング16にはリングIDが付され、同一リングIDが付されたDHCPサーバ2同士が、論理的リング16を形成する。
(2)DHCPサーバ2は、自らが送信した信号が戻ってくるまで、情報をコミット(commit)できない。
(3)DHCPサーバ2は、自らが送信した情報が自分に戻ってくるまでに、他のDHCPサーバ2から送信された同一の情報を受信したときには、
a)DHCPサーバ2は、自らの優先度が、他のDHCPサーバ2の優先度よりも高いときには、他のDHCPサーバ2への情報の中継をしない。
b)DHCPサーバ2は、自らの優先度が、他のDHCPサーバ2よりも低いときには、他のDHCPサーバ2の情報を転送し、自分が発行した情報をコミットできない。
(4)DHCPサーバ2は、自らが送信した情報が、制限時間内に返ってこないときには、その情報をコミットできない。
(5)タイマring_update_timerが満了した(時間切れになった)ら、DHCPサーバ2は、リング構成信号をブロードキャストし、論理的リング16の再構成を行う。
(6)論理的リング16のマスタDHCPサーバ2(論理的リング16内で最小のサーバIDが付されたDHCPサーバ2)は、
タイマring_update_timerが時間切れになる前に、リングアップデート信号を論理的リング16に送出して、論理的リング16を維持する。
【0123】
[アドレス割り当て部226]
アドレス割り当て部226は、リング管理部220およびDHCP処理部202と協調して動作する。
スコープは、仮想スコープ(Virtual Scope)として論理的リング16内で共有される。
仮想スコープは、論理的リング16内の各DHCPサーバ2の間で重複が生じないように分割されてVSSとされ、各DHCPサーバ2に対応付けられる。
【0124】
スコープ・VSSのテーブルのエントリは、以下の各項目を含む。
IPアドレスを割り当てたDHCPサーバ2のIPアドレス、
フラグ:
S:同期がとれているエントリは1、
P:割り当て(リース)を行うために同期中のエントリは1、
IPアドレス、
MACアドレス、
割り当て(リース)期限。
【0125】
図31は、アドレス割り当て部226が処理に用いる割り当てメッセージ(リースメッセージ)を示す図であって、(A)は、割り当てメッセージ全体を示し、(B)は、(A)に示した割り当て情報を示し、(C)は、VSSメッセージを示す。
図31(A)に示すように、割り当てメッセージは、フラグ群と、送信者と、サーバと、割り当て情報とを含む。
割り当てメッセージのフラグ群は、フラグDとフラグQ/Rとを含み、フラグDは真のときに、図14に示した不使用を示し、フラグQ/Rは、真のときに問い合わせ(図13,図14)を示し、偽のときに応答を示す。
送信者は、このメッセージを送信したDHCPサーバ2のIPアドレスを示し、サーバは、このメッセージによって同期を取ろうとしている、クライアント10のIPアドレスを割り当てたDHCPサーバ2のIPアドレスを示す。
【0126】
また、図31(B)に示すように、割り当て情報は、IPアドレスと、MACアドレスと、割り当て期限(リース期限)とを含む。
また、図31(C)に示すように、VSSメッセージは、フラグDUPと、送信者と、VSS情報とを含む。
VSSメッセージにおいて、
フラグDUPの値は、VSSが重複しているときに1となり、
送信者は、このVSSメッセージを送信したDHCPサーバ2のIPアドレスを示し、
VSS情報は、図18に示したような論理的リング16内で共有されるVS(仮想スコープ)を分割して得られるVSSを示し、例えば、式1に示したVSSの分割次数1と、係数A,Bを対応付けて得られる。
VSS情報は、0回以上繰り返される。
【0127】
アドレス割り当て部226は、以下の変数を用いる。
変数NDESYNC:スコープ・図12(B)に示したVSテーブル中のフラグSの値が0のエントリ数、
変数DHREQRCV:DHCPサーバプログラム202が、クライアントコンピュータ10からの割り当て要求に対して応答するときに値が真となる。
変数VSIMP:合成のためにVSSがインポートされたときに値が真となる。
変数RSTVSS:VSSをリセットするときに値が真となる。
【0128】
リングメッセージ受信部224と、DHCP処理部202との間は、例えば、双方向FIFO(図示せず)により接続される。
DHCP処理部202から、リングメッセージ受信部224への方向には、この双方向FIFOを介して、
クライアントコンピュータ10からのIPアドレス割り当て要求(DHCPリクエスト)を受けて、割り当てを開始しようとする割り当て情報、および、
IPアドレスの割り当て(DHCP割り当て(lease))の通知を受け、IPアドレスの割り当てを終了した旨の通知
が出力される。
また、リングメッセージ受信部224からDHCP処理部202への方向には、この双方向FIFOを介して、
IPアドレス割り当て要求への応答(ACK)または拒否応答(NACK)の送信許可が出力される。
【0129】
DHCP処理部202は、IPアドレスの割り当て要求を受けたときには、アドレス割り当て部226により、他のDHCPサーバ2との間で、IPアドレスの同期をとらなければならない。
DHCP処理部202は、アドレス割り当て部226から返される結果に応じて、IPアドレス割り当て要求(DHCPリクエスト)に対する応答を行う。
DHCP処理部202は、アドレス割り当て部226が計算したスコープの範囲から、IPアドレスを提供しなければならない。
【0130】
マスタDHCPサーバ2のDHCP処理部202は、論理的リング16から外れているが、本来、その論理的リング16に含まれるべきDHCPサーバ2へのIPアドレス割り当て要求(DHCPリクエスト)を受けたときには、そのDHCPサーバ2の代理で、ACKを返す。
【0131】
図12(A),(B)に示したように、VSは、論理的リング16に含まれるDHCPサーバ2により共有される。
DHCPサーバ2は、図12(B)に示すように、論理的リング16から孤立したときに占有するVSSが対応付けられ、そのVSSを含むリング内のVSから、IPアドレスを提供することができる。
また、論理的リング16に留まったDHCPサーバ2は、論理的リング16から外れたDHCPサーバ2に対応付けられたVSSの範囲からIPアドレスを提供することはできない。
VSSは、論理的リング16の管理者などにより、明示的にリセットされない限り保持される。
VSSが明示的にリセットされたときには、リセットされたVSSに対応付けられたDHCPサーバ2によるIPアドレスの割り当ては取り消される。
【0132】
[アドレス割り当て部226の状態遷移]
図32は、図26に示したアドレス割り当て部226の状態遷移図である。
図32に示すように、アドレス割り当て部226は、7つの状態をとりうる。
これらの7つの状態の内、待機(STANDBY)状態C4は、論理的リング16の形成を待つ状態である。
同期中(SYNCHRONIZING)状態D4は、他のDHCPサーバ2とVSSおよび割り当て情報の同期を行っており、DHCPサーバプログラム202は、IPアドレスの割り当てを行ってはいけない状態である。
孤立(ISOLATED)状態G4は、VSSの重複が検出され、IPアドレスの割り当てを行ってはいけない状態である。
準備済み(READY)状態E4は、他のDHCPサーバ2との同期が確立していいて、IPアドレスの割り当てが可能な状態である。
割り当て保留(PENDING_LEASE)状態F4は、要求に応じてIPアドレスを割り当てるときに、他のDHCPサーバ2と同期をとっている状態である。
【0133】
処理が開始されると、アドレス割り当て部226は、初期化状態A4をとる。
初期化状態A4において、アドレス割り当て部226は、変数RSTVSSの値が1となる条件でVSSリセット状態B4に移行し(a4)、これ以外のときには待機状態C4に移行する(b4)。
アドレス割り当て部226は、無条件にVSSリセット状態B4から待機状態C4に移行する(c4)。
【0134】
待機状態C4において、アドレス割り当て部226は、変数ASSOCの値が真のときに、同期中状態D4に移行する(d4)。
同期中状態D4において、アドレス割り当て部226は、変数VSSDUPの値を偽とし、変数VSIMPの値を偽とし、自分の持つVSSを、図31(C)に示したVSSメッセージによって論理的リング16に送出する。
その後、VSIMPが真になるのを待ち、図12(B)に示したVSテーブルの中で、同期済みフラグが偽のものについて、図31(A)に示したメッセージによって論理的リング16に送出する。
同期中状態D4において、アドレス割り当て部226は、
変数VSSDUPの値が真となる条件で孤立状態G4に移行し(g4)、
変数ASSOCの値が偽となる条件で待機状態C4に移行する(e4)、
変数NDESYNCの値が0であり、変数VSIMPの値が真となる条件で、準備済み状態E4に移行する(f4)。
【0135】
孤立状態G4において、アドレス割り当て部226は、変数ASSOCの値が偽となる条件で待機状態C4に移行する(k4)。
準備済み状態E4において、アドレス割り当て部226は、
変数DHREQRCVの値が1となる条件で、割り当て保留状態F4に移行し(h4)、
変数ASSOCの値が偽となる条件で、待機状態C4に移行する(j4)。
【0136】
割り当て保留状態F4において、アドレス割り当て部226は、割り当てようとするIPアドレスを図12(B)に示したVSテーブルに、割り当て中フラグを真として登録し、併せて、そのIPアドレスについての割り当て付加情報(図31(B)に示したMACアドレスと割当期限)を含み、フラグDが偽、送信者とサーバが自分自身のIPアドレスとなる割り当てメッセージを作成して論理的リング16に送信する。
割り当て保留状態F4において、アドレス割り当て部226は、無条件に、準備済み状態E4に移行する(i4)。
【0137】
[割り当てメッセージ受信部228]
割り当てメッセージ受信部228は、アドレス割り当て部226と連携動作する。
割り当てメッセージ受信部228は、以下の変数を用いる。
割り当てメッセージ中のフラグ群
フラグD, 削除対象を示す
フラグQ/R, 問い合わせのとき真、応答のとき偽
【0138】
[割り当てメッセージ受信部228の状態遷移]
図33は、図26に示した割り当てメッセージ受信部228の状態遷移図である。
図33に示すように、割り当てメッセージ受信部228は、8つの状態をとりうる。
これら8つの状態の内、
待ち(waiting)状態A5は、割り当てメッセージ受信部228が、割り当てメッセージを待っている状態である。
応答中(replying)状態D5は、そのDHCPサーバ2へのクエリ(問い合わせ)を受信したので応答を返す状態である。
転送(forwarding)状態H5は、他のDHCPサーバ2の割り当てメッセージを転送する状態である。
同期マーク(mark_sync)状態B5は、他のDHCPサーバ2との同期が確立した状態である。
割り当て(commit)状態C5は、IPアドレスの割り当てのACKを返す許可を与える状態である。
キャンセル中(cancel)状態E5は、IPアドレスが他のDHCPサーバ2によって割り当て済みのため、割り当てを取り消す状態である。
拒否(reject)状態F5は、IPアドレス割り当てのNACKを返す許可を与え、他のDHCPサーバ2にそのIPアドレスの削除を指示する状態である
【0139】
処理を開始すると、割り当てメッセージ受信部228は、待ち状態A5をとる。
待ち状態A5において、割り当てメッセージ受信部228は、
送信者が自分である応答割り当てメッセージを受信し、かつメッセージ中のフラグDUPが偽であるときに、同期マーク状態B5に移行し(b5)、
送信者が自分ではなく、サーバが自分である問い合わせ割り当てメッセージを受信したとき、応答中状態D5に移行し(f5)、
送信者が自分ではない応答割り当てメッセージを受信し、応答割り当てメッセージ中の割り当て対象IPアドレスに相当するVSテーブルのエントリの割り当て中フラグが真であって、かつ送信者の優先度が自分よりも高いとき、キャンセル中状態E5に移行し(h5)、
送信者が自分ではない問い合わせ割り当てメッセージを受信したときに、転送状態H5に移行し(m5)、
応答割り当てメッセージを受信し、かつメッセージ中のサーバが自分のIPアドレスと異なるときに、適用状態G5に移行し(l5)、
これら以外のときには、待ち状態A5に留まる(a5)。
【0140】
同期マーク状態B5において、割り当てメッセージ受信部228は、受信した割り当てメッセージ中の割り当て対象IPアドレスに相当するVSテーブルのエントリが存在すれば、割り当て中フラグを偽とし、同期済みフラグを真とする。また、同期マーク状態B5において、
割り当てようとするIPアドレスのエントリがVSテーブルに存在するときには、割り当て状態C5に移行し(d5)、
これ以外のときには、待ち状態A5に移行する(c5)。
【0141】
割り当て状態C5において、割り当てメッセージ受信部228は、割り当て対象のIPアドレスについて、DHCP処理部202に対して割り当て応答許可を与えた後、無条件に、待ち状態A5に移行する(e5)。
応答中状態D5において、割り当てメッセージ受信部228は、受信した問い合わせ割り当てメッセージに対する応答割り当てメッセージを、送信者およびサーバを自分のIPアドレスとし、割り当て情報には、問い合わせメッセージの割り当て対象IPアドレスに相当するVSテーブルのエントリからMACアドレスおよび割り当て期限を取り出して埋めて作成し、リングに送信する。
また、割り当てメッセージ受信部228は、VSテーブル中に問い合わせに相当するエントリが見つからない場合は、その割り当て対象IPアドレスについて、フラグDを真とした応答割り当てメッセージを作成し、リングに送信する。
その後、無条件に、待ち状態A5に移行する(g5)。
【0142】
キャンセル状態において、割り当てメッセージ受信部228は、受信した応答割り当てメッセージ中の割り当て対象IPアドレスについて、それに相当するVSテーブルのエントリを、受信した応答割り当てメッセージの割り当て情報で上書き更新する。
キャンセル状態において、割り当てメッセージ受信部228は、VSテーブルに割り当てるべきIPアドレスのエントリの更新に成功したときには、拒否状態F5に移行し(j5)、
これ以外のときには、待ち状態A5に移行する(i5)。
【0143】
拒否状態F5において、割り当てメッセージ受信部228は、DHCP処理部に割り当て拒否応答許可を与えた後、無条件に、待ち状態A5に移行する(k5)。
適用状態G5において、割り当てメッセージ受信部228は、受信した応答割り当てメッセージ中の割り当て対象IPアドレスについて、それに相当するVSテーブルのエントリの同期済みフラグが偽であれば、変数NDESYNCを1減じ、エントリを、受信した応答割り当てメッセージの割り当て情報で上書き更新した後、無条件に待ち状態A5に移行する(n5)。
転送状態H5において、割り当てメッセージ受信部228は、受信した割り当てメッセージをリングに送信した後、無条件に、待ち状態A5に移行する(o5)。
【0144】
[VSSメッセージ受信部230]
VSSメッセージ受信部230は、アドレス割り当て部226と連動して動作する。
VSSメッセージ受信部230は、以下の変数を用いる。
VSSメッセージのフラグフィールド,
VSSメッセージは、VSS情報、すなわちVSSの分割次数n、式1のAおよびBを一般化した、AおよびBの繰り返しが含まれたメッセージである。
また、VSS情報は1つではなく、0個以上繰り返され、VSSが存在しないとき(論理的リング16全体がリセットされた直後など)には、0個となる。
【0145】
[VSSメッセージ受信部230の状態遷移]
図34は、図26に示したVSSメッセージ受信部230の状態遷移図である。
図34に示すように、VSSメッセージ受信部230は、5つの状態をとり、これらのうち、待ち(waiting)状態A6は、VSSメッセージを待っている状態である。
併合(merging)状態B6は、他のDHCPサーバ2のVSSに、自らのDHCPサーバ2のVSSを併合させる(並列表記する)状態である。
VSS重複(duplicate_VSS)状態C6は、他のDHCPサーバ2との間で、VSSの重複が検出された状態である。
転送(forwarding)状態D6は、併合状態B6において併合されたVSSを転送する状態である。
インポート中(importing)状態E6は、戻ってきたVSSをVSとして取り入れる状態である。
【0146】
処理を開始すると、VSSメッセージ受信部230は、待ち状態A6をとる。
待ち状態において、VSSメッセージ受信部230は、VSSを含むVSSメッセージを受け取ると、併合状態B6に移行し(a6)、
VSSを含むVSSメッセージを受け取り、このVSSメッセージの送信者が、メッセージを送信したDHCPサーバ2自身のIPアドレスであるときには、インポート中状態E6に移行する(f6)。
【0147】
併合状態B6において、VSSメッセージ受信部230は、受信したVSSと自己のVSSの重複を検査し、VSSの重複を検出すると、VSS重複状態に移行し(b6)、
これ以外のときには、自己のVSSを受信したVSSメッセージに併合して転送状態D6に移行する(d6)。
VSS重複状態C6において、VSSメッセージ受信部230は変数VSSDUPを真に設定した後、無条件に、転送状態D6に移行する(c6)。
【0148】
転送状態D6において、VSSメッセージ受信部230は、受信したVSSメッセージについて、変数VSSDUPが偽の時にはそのまま、真のときにはVSSメッセージ中のフラグDUPを真に設定して、リングに送信した後、無条件に、待ち状態A6に移行する(e6)。
インポート中状態E6において、VSSメッセージ受信部230は、受信したVSSメッセージのフラグDUPが偽であるとき、併合されたVSS群をVSとしてインポートし、インポートしたVSをn−1次分割とするとき、式3に基づいてn次分割してVSSを導出して保存する。
そして、変数VSIMPを真に設定する。また受信したVSSメッセージのフラグDUPが真である場合、インポート処理を行わず、変数VSSDUPを真に設定する。以上の処理の後、無条件に、待ち状態A6に移行する(g6)。
【0149】
[送信部232]
送信部232は、以下の変数を用いる。
変数NXMITQUE:送信部232の送信キューに入っているメッセージの個数を保持する。
【0150】
[送信部232の状態遷移]
図35は、図26に示した送信部232の状態遷移図である。
図35に示すように、送信部232は、送信部232の送信キュー(図示せず)を含み、3つの状態をとる。
【0151】
初期化(init)状態A7は、送信部232の送信キューを空にする状態である。
待ち(waiting)状態B7は、送信部232の送信キューが空でなくなることを待つ状態である。
送信(transmitting)状態D7は、メッセージが送信部232の送信キューにあって、送信キューにあるメッセージを送信する状態である。
【0152】
処理を開始すると、送信部232は、初期化状態A7をとる。
初期化状態A7において、送信部232は、送信部232の送信キューを空にする。
初期化状態A7において、送信部232は、リング管理220の状態が仮スレーブ状態C1の時に次のリングメンバへのTCPコネクションが確立した条件で待ち状態B7に移行する(a7)。
【0153】
待ち状態B7において、送信部232は、変数ASSOCの値が偽となる条件で初期化状態A7に移行し(b7)、
変数NXMITQUEの値が0ではないという条件で、送信状態D7に移行する(c7)。
送信状態D7において、送信部232は、送信部232の送信キューに入っているメッセージを論理的リング16に送信し、送信のたびに、変数NXMITQUEを1減じる。そして、変数NXMITQUEの値が0という条件で、初期化状態A7に移行する(d7)。
【0154】
[VSS管理部240など]
VSS管理部240は、VSテーブル(図12(B))を作成してVSS−DB246に記憶して、記憶したVSテーブルを、リング制御プログラム22の他の構成部分、DHCP処理部202およびプロキシARP処理部204の処理の用に供する。
さらに、VSS管理部240は、リング制御プログラム22の他の構成部分の処理に従って、記憶したVSテーブルその内容を変更し、管理する。
【0155】
VSS分割・合成部242は、リング制御プログラム22の他の構成部分に対して、VSSの再構成のために必要な機能を提供する。
VSS分割・合成部242の機能としては、VSSメッセージ受信部230の状態E6における処理に必要とされる機能(図34)、および、漸化式(式1〜式3)の記憶・管理のための機能などを例として挙げることができる。
【0156】
VSS重複判定部244は、リング制御プログラム22の他の構成部分に対して、VSSの重複判定(式4〜式18)のために必要な機能を提供する。
VSS重複判定部244の機能を利用する処理として、VSSメッセージ受信部230の状態B6における処理などを、例として挙げることができる。
【0157】
所属VSS判定部248は、リング制御プログラム22の他の構成部分に対して、あるIPアドレスが、いずれのVSSに属しているかを判定するために必要とされる機能(式19,式20)を提供する。
ARPリクエスト処理部250は、プロキシARP処理部204を制御して、そのDHCPサーバ2が、他のDHCPサーバ2のIPアドレスの再割り当てを代行するときに必要とされる根拠のないARPリクエストを送信させるための処理を行う。
【産業上の利用可能性】
【0158】
本発明は冗長構成としたサーバ装置などに利用することができる。
【図面の簡単な説明】
【0159】
【図1】本発明にかかるデータ処理方法が適用されるネットワークシステムの構成を例示する図である。
【図2】図1に示したクライアントコンピュータ、管理サーバおよびDHCPサーバのハードウエアを例示する図である。
【図3】図1,図2に示したDHCPサーバの冗長構成を示す図であって、ネットワークシステムに含まれる全てのDHCPサーバが、1つの論理的リング(第1の論理的リング)を構成する場合を示す。
【図4】図3に示した論理的リングによるクライアントコンピュータに対するIPアドレスの割り当て処理を示す通信シーケンス図であって、IPアドレスが正常に割り当てられる場合を例示する。
【図5】図3に示した論理的リングによるクライアントコンピュータに対するIPアドレスの割り当て処理を示す通信シーケンス図であって、IPアドレスの提供に衝突が生じた場合を例示する。
【図6】図3に示した論理的リングにおける通信が正常に維持されているか否かの試験(リングアップデート)を示す信号シーケンスであって、リングアップデートにより、論理的リングにおける通信が正常に維持されている場合を例示する。
【図7】論理的リング(図3)に発生する障害を例示する図である。
【図8】図7に示したように論理的リング(図3)に障害が発生したときに、クライアントコンピュータ(図1)からDHCPサーバにIPアドレスが要求されたときの異常な通信シーケンス(S14)を例示する図である。
【図9】図3に示した論理的リングに含まれるDHCPサーバの間の通信に、図7に示したように障害が生じたときに、リング再構成処理(図11)により構成される第2の論理的リングおよび第3の論理的リングを例示する図である。
【図10】図7に示したように論理的リング(図3)に障害が発生したときに、マスタDHCPサーバが行うリングアップデートの異常な通信シーケンスを例示する図である。
【図11】図8,図10に示したDHCPサーバ(論理的リング;図9)におけるリング再構成処理を示す通信シーケンスを示す図である。
【図12】図1などに示したDHCPサーバそれぞれに設定されるVSと、VSを管理するために用いられるVSテーブルとを例示する図であって、(A)は、テーブルの形式で定義されるVSSを示し、(B)は、図3に示した第1の論理的リングにおけるVS(スコープ)のテーブルを示す。
【図13】図8,図10に示したDHCPサーバ(論理的リング;図9)におけるアドレス同期処理を示す通信シーケンスを示す第1の図である。
【図14】図8,図10に示したDHCPサーバ(論理的リング;図9)におけるアドレス同期処理を示す第2の通信シーケンスを示す図である。
【図15】図9に示した第3の論理的リングに障害が発生したときに、第3の論理的リングから、第4の論理的リングおよび第5の論理的リングに再構成される態様を例示する図である。
【図16】図15に示した第5の論理的リングに障害が発生したときに、第3の論理的リングから、2つのDHCPサーバが、単独で動作するように再構成される態様を例示する図である。
【図17】4つのDHCPサーバにより構成される第6の論理的リングを例示する第1の図である。
【図18】図17に示した論理的リングに与えられたIPアドレスの集合(スコープ)から、DHCPサーバそれぞれに対応するVSSを作成する処理を示す図である。
【図19】図17に示した論理的リングに生じた障害を例示する第1の図である。
【図20】図19に示したマスタDHCPサーバによるVSSの再構成を例示する図である。
【図21】図17に示した論理的リングに生じた障害を例示する第2の図である。
【図22】図22は、図21に示した論理的リングDHCPサーバが、論理的リングから外れたDHCPサーバの機能を代行する処理(S30)を示すフローチャートである。
【図23】図22に示した代行処理におけるVSテーブルの分割次数へのデータの設定を示す図である。
【図24】図21に示した論理的リングのDHCPサーバ#0が、論理的リングから外れたDHCPサーバ#2の機能を代行する処理(S34)を例示する第1の通信シーケンス図である。
【図25】図21に示した論理的リングのDHCPサーバ#0が、論理的リングから外れたDHCPサーバ#2の機能を代行する処理(S38)を例示する第2の通信シーケンス図である。
【図26】図1に示したDHCPサーバにおいて実行され、図3〜図20に示した処理を実行するDHCPサーバプログラムの構成を示す図である。
【図27】図26に示したリング管理部およびリングアップデート部の処理のために、DHCPサーバの間で伝送されるリングメッセージを示す図である。
【図28】図26に示したリング管理部の状態遷移図である。
【図29】図26に示したリングアップデート部の状態遷移図である。
【図30】図26に示したリングメッセージ受信部の状態遷移図である。
【図31】アドレス割り当て部が処理に用いる割り当てメッセージ(リースメッセージ)を示す図であって、(A)は、割り当てメッセージ全体を示し、(B)は、(A)に示した割り当て情報を示し、(C)は、VSSメッセージを示す。
【図32】図26に示したアドレス割り当て部の状態遷移図である。
【図33】図26に示した割り当てメッセージ受信部の状態遷移図である。
【図34】図26に示したVSSメッセージ受信部の状態遷移図である。
【図35】図26に示した送信部の状態遷移図である。
【符号の説明】
【0160】
1・・・ネットワークシステム、
10・・・クライアントコンピュータ、
100・・・本体、
102・・・CPU、
104・・・メモリ、
106・・・入出力装置、
110・・・通信装置、
112・・・記録装置、
114・・・記録媒体、
12・・・管理サーバ、
14・・・ネットワーク、
2・・・DHCPサーバプログラム、
20・・・DHCPサーバプログラム、
200・・・通信処理部、
202・・・DHCP処理部、
204・・・プロキシARP処理部、
22・・・リング制御プログラム、
220・・・リング管理部、
222・・・リング試験部、
224・・・リングメッセージ受信部、
226・・・アドレス割り当て部、
228・・・割り当てメッセージ受信部、
230・・・VSSメッセージ受信部、
232・・・送信部、
240・・・VSS管理部、
242・・・VSS分割・合成部、
244・・・VSS重複判定部、
246・・・VSS−DB、
248・・・所属VSS判定部、
250・・・ARPリクエスト処理部、

【特許請求の範囲】
【請求項1】
処理に用いられる処理用データが、それぞれに重複なく割り当てられた複数のサーバ装置を含むサーバシステムであって、
前記複数のサーバ装置それぞれは、
前記複数のサーバ装置の一部に障害が発生したときに、障害が発生したサーバ装置に割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加手段と、
障害が発生したサーバ装置の代行を行うサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データを用いて代行する代行手段と、
障害が発生したサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外の処理用データを用いて行う処理手段と
を有するサーバシステム。
【請求項2】
複数のサーバ装置を含むサーバシステムの前記サーバ装置であって、前記サーバ装置それぞれには、処理に用いられる処理用データが重複なく割り当てられ、
前記複数のサーバ装置の一部に障害が発生したときに、障害が発生したサーバ装置に割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加手段と、
障害が発生したサーバ装置の代行を行うサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データを用いて代行する代行手段と、
障害が発生したサーバ装置において、前記処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外の処理用データを用いて行う処理手段と
を有するサーバ装置。
【請求項3】
前記サーバシステムのサーバ装置の一部に発生した障害の回数と、この障害の復旧とにより定義される状態を示す状態データを作成する状態データ作成手段
をさらに有し、
前記使用データ付加手段は、前記作成された状態データを、前記使用データとして、前記第1の処理用データに付加し、
前記処理手段は、前記処理を、このサーバ装置に割り当てられた処理用データの内、前記状態データが付された第1の処理用データ以外の処理用データを用いて代行する
請求項2に記載のサーバ装置。
【請求項4】
前記状態データは、前記システムにおける障害の発生と、前記発生した障害の復旧とを示し、
前記代行手段は、処理を代行すべきサーバ装置に障害が発生してから、このサーバ装置に発生した障害が復旧するまで、このサーバ装置の処理を代行し、
前記処理手段は、前記状態データが、少なくとも、当該サーバ装置に発生した障害と、この障害が発生する前に発生した障害とが復旧していることを示すときに、前記割り当てられた処理用データを用いて処理を行い、このとき以外は、前記第1の処理用データ以外の処理用データを用いて処理を行う
請求項3に記載のサーバ装置。
【請求項5】
前記状態データは、前記システムにおける障害の発生の回数から、前記発生した障害の復旧の回数を減算して得られる差を示し、
前記処理手段は、処理を行う時点における前記状態データが示す差が、前記第1の処理用データに使用データとして付された状態データが示す差以下のときに、当該サーバ装置に割り当てられた処理用データを用いて処理を行い、このとき以外は、前記第1の処理データ以外の処理用データを用いて処理を行う
請求項4に記載のサーバ装置。
【請求項6】
前記状態データは、前記発生した障害の復旧の回数から、前記システムにおける障害の発生の回数を減算して得られる差を示し、
前記処理手段は、処理を行う時点における前記状態データが示す差が、前記第1の処理用データに使用データとして付された状態データが示す差以上であるときに、当該サーバ装置に割り当てられた処理用データを用いて処理を行い、このとき以外は、前記第1の処理データ以外の処理用データを用いて処理を行う
請求項4に記載のサーバ装置。
【請求項7】
前記複数のサーバ装置は、DHCPによりIPアドレスを割り当てるDHCPサーバであって、
前記処理用データは、前記複数のサーバ装置が割り当てるIPアドレスである
請求項2〜6のいずれかに記載のサーバ装置。
【請求項8】
複数のサーバ装置を含むサーバシステムの前記サーバ装置における処理方法であって、前記サーバ装置それぞれには、処理に用いられる処理用データが重複なく割り当てられ、
前記割り当てられた処理用データを用いて処理を行う処理ステップと、
前記複数のサーバの一部に障害が発生したときに、障害が発生したサーバに割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加ステップと、
障害が発生したサーバ装置の1つ以上の処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外を用いて代行する代行処理ステップと
を有する処理方法。
【請求項9】
それぞれコンピュータを有する複数のサーバ装置を含むサーバシステムの前記サーバ装置におけるプログラムであって、前記サーバ装置それぞれには、処理に用いられる処理用データが重複なく割り当てられ、
前記割り当てられた処理用データを用いて処理を行う処理ステップと、
前記複数のサーバの一部に障害が発生したときに、障害が発生したサーバに割り当てられた処理用データの内、処理に用いられている第1の処理用データに、前記障害が発生したときに使用されていたことを示す使用データを付加する使用データ付加ステップと、
障害が発生したサーバ装置の1つ以上の処理を、このサーバ装置に割り当てられた処理用データの内、前記第1の処理用データ以外を用いて代行する代行処理ステップと
を前記コンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate


【公開番号】特開2006−252238(P2006−252238A)
【公開日】平成18年9月21日(2006.9.21)
【国際特許分類】
【出願番号】特願2005−68670(P2005−68670)
【出願日】平成17年3月11日(2005.3.11)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】