JP2006014310A - 冗長接続サービスの提供方法および装置 - Google Patents

冗長接続サービスの提供方法および装置 Download PDF

Info

Publication number
JP2006014310A
JP2006014310A JP2005177225A JP2005177225A JP2006014310A JP 2006014310 A JP2006014310 A JP 2006014310A JP 2005177225 A JP2005177225 A JP 2005177225A JP 2005177225 A JP2005177225 A JP 2005177225A JP 2006014310 A JP2006014310 A JP 2006014310A
Authority
JP
Japan
Prior art keywords
connection
processor
client
server
primary
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.)
Pending
Application number
JP2005177225A
Other languages
English (en)
Inventor
Wan-Yen Hsu
ワン−イェン・スー
Isaac Wong
アイザック・ワング
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2006014310A publication Critical patent/JP2006014310A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 プライマリサーバコンピュータから、スタンバイサーバへのシームレスな移行を可能とする冗長接続サービス提供方法を提供する。
【解決手段】 本発明にかかる方法は、プライマリプロトコルスタックを使用して、クライアントからプライマリサーバへネットワーク接続を確立する(5)ことと、前記プライマリプロトコルスタックによって保持された接続状態情報を伝達する(10)ことと、前記プライマリサーバの健全性を監視する(15)ことと、前記プライマリサーバが不健全である場合に、前記伝達した接続状態情報によるクロスオーバメッセージを、前記確立したネットワーク接続を使用して前記クライアントにディスパッチする(20)こととを含む。
【選択図】図1

Description

本発明は、冗長接続サービスの提供方法および装置に関する。
現代、コンピュータシステムは、通常、データを共有する目的で、通信するように互いに関連付けられている。
あるコンピュータが別のコンピュータとデータを共有することを可能にするために、各コンピュータは、通常、コンピュータネットワークによって他のコンピュータと接続されている。
例えば、インターネットは、大量の計算プラットフォームが接続された広域コンピュータネットワークである。
あるコンピュータの別のコンピュータへの物理接続は、あるコンピュータが別のコンピュータによって提供されたデータにアクセスできる極めて複雑な構造の一部にすぎない。
あるコンピュータに記憶されたデータの別のコンピュータによるアクセスも、データの共有を統制するさまざまなパラダイムを必要とする。
あるコンピュータに記憶されたデータを、ネットワークに取り付けられた他のコンピュータと共有するのに使用される共通のパラダイムは、「クライアント−サーバ」モデルとして知られている。
クライアント−サーバモデルは、ネットワークに取り付けられたあるコンピュータを、クライアントから受信した要求に応答して情報を提供できるサーバと定義する。
クライアントとサーバとの間の通信を可能にするために、各コンピュータは、共通の通信プロトコルに準拠しなければならない。
通信プロトコルは、各コンピュータで実行されるアクティブなプロセス間のインターラクションを定義する。
例えば、あるコンピュータシステムで実行されるサーバプロセスは、通常、別のコンピュータシステムで実行されるクライアントプロセスとの通信を可能にするために、共通の通信プロトコルに準拠する。
現在広く普及して使用されている通信プロトコルの一例は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)である。
通常、通信プロトコルは、「プロトコルスタック」と呼ばれる専用機能モジュールで実施される。
プロトコルスタックは、通常、第1のコンピュータのプロセッサが実行可能なさまざまな命令シーケンスを含む。
プロセッサは、プロトコルスタックを実行すると、第2のコンピュータとの通信セッションに関与する。
通常、第2のコンピュータのプロセッサもプロトコルスタックを実行し、これによって、当該第2のコンピュータのプロセッサは第1のコンピュータとの通信セッションに関与することが可能になる。
各コンピュータのプロトコルスタックは、共通のプロトコル定義に従って形成しなければならないことを理解することができる。
現在、多くの異なるプロトコル定義が存在し、これらのプロトコル定義のそれぞれについて、通常、「プロトコルスタック」の1つまたは2つ以上の実施態様が存在する。
プロトコルスタックという用語は、一般的なプロトコル定義が記述する階層化構造に由来する。
例えば、ほとんどのプロトコル定義は、さまざまな精巧レベルで通信サービスを定義する。
最もプリミティブなレイヤでは、プロトコル定義は、通常、データを実際に搬送する物理媒体を定義する。
プロトコル定義に含まれるよりプリミティブな通信サービスは、通常、接続レイヤサービス等のより高いレベルのサービスをサポートするのに使用される。
例えば、データの配信の保証といった、さらに高いレベルのサービスは、多くの場合、プロトコル定義に記述される。
これらのサービスのレイヤのそれぞれは、通常、プロトコルスタックに含まれる命令シーケンスモジュールの「スタック」のレイヤに対応する。
これらのさまざまなプロトコル定義の多くのものによると、クライアント−サーバパラダイムは、2つのプロセッサ間の接続の使用を通じてサポートされる。
例えば、あるコンピュータで実行される第1のプロセスは、一般に、第2のプロセスとの接続を確立するためにプロトコルスタックを利用する。
通常、第2のプロセスは異なるコンピュータで実行される。
しかしながら、一般的なプロトコルスタックは、プロセスの実行現場を区別しない。
したがって、プロトコルスタックは、同じコンピュータで実行される2つのプロセス間の接続を確立するのに使用することができる。
プロトコルスタックは、動作している最中、その内部状態に関する情報を保持し、さらに、自身がサポートする通信接続に関する情報も保持する。
このタイプの情報は、通常、プロトコルスタック状態変数テーブルに含まれる。
プロトコルスタック状態変数テーブルは、通常、プロトコルスタックを実行中のプロセッサによってアクセス可能なコンピュータ可読媒体に記憶される。
通信接続が確立されている場合、プロトコルスタックは、プロセッサによって実行されると、プロセッサに、数組の状態変数を使用して接続の状態を追跡させる。
各組の状態変数は、プロトコルスタックの特定のレイヤに対応する。
コンピュータシステムは、他の人工の装置と同様に、エラーおよび障害を受けやすい。
高可用性の要求をサポートするために、クライアント−サーバシステムでサーバとして動作するコンピュータシステムは、クラスタとして知られている単位で複製される。
このようなクラスタ内では、あるコンピュータが、通常、プライマリサーバとして指定される。
クラスタ内の残りの1つまたは2つ以上のコンピュータは、スタンバイサーバとして指定される。
通常動作時には、クライアントコンピュータで実行されるクライアントプロセスは、プライマリサーバで実行されるサーバプロセスと接続を確立しようとする。
この通信接続が確立されると、プライマリサーバで実行されるプロトコルスタックは、接続の状態を追跡する。
クライアントコンピュータで実行される対応したプロトコルスタックも、接続の状態を追跡する。
高可用性クラスタのプライマリサーバが故障した場合、または、それ以外でサーバとしてのその役割を維持できない場合には、サーバ機能は、クラスタに含まれる1つまたは2つ以上のスタンバイサーバに移される。
クライアントコンピュータで実行されるクライアントプロセスの見地からすると、プライマリサーバが故障したことを示す唯一の表示は、プライマリサーバで実行されるプロトコルスタックが維持する接続が応答しなくなることである。
理想的には、クライアントコンピュータは、接続が切断されたと判断すると、その接続の再確立を試みるべきである。
接続が再確立されると、クライアントは、通常、クラスタのスタンバイサーバがクライアント−サーバ関係におけるサーバの役割を引き継いだことに気付かない。
したがって、プライマリサーバからスタンバイサーバへの移行は、クライアントコンピュータには実質的にトランスペアレントである。
理解できるように、プライマリサーバコンピュータのプロトコルスタックおよびクライアントコンピュータのプロトコルスタックは、複雑なコンピュータプログラムであり、それぞれは、自身の相手方との通信セッションに関与するように設計される。
サーバコンピュータおよびクライアントコンピュータの双方において、接続の状態を追跡することに伴う複雑さのために、プライマリサーバが実際に故障した時点と、クライアントコンピュータが、接続の状態を勤勉に追跡することを通じて、クライアントプロセスとサーバプロセスとの間の接続が切断されたと判断する時点との間には、かなりの待ち時間が存在することがある。
スタンバイサーバへの本質的にシームレスな移行を行うことができるのは、クライアントコンピュータが、接続が切断されたと判断できる時だけである。
したがって、クライアントコンピュータがスタンバイサーバとの接続の再確立をさらに試みる前には、受け入れられないぐらい長い期間が終了することがある。
この長い遅延の結果、ユーザはフラストレーションを受ける可能性があり、プライマリコンピュータからスタンバイコンピュータへのサーバの役割の優雅な移行が無効にされる可能性がある。
冗長接続サービスを提供する方法および装置は、クライアントからプライマリサーバへの接続の確立と、プライマリサーバで使用されるプロトコルスタックに関する状態情報の伝達とを含む。
プライマリサーバの健全性が監視される。
プライマリサーバが不健全になると、クロスオーバメッセージが、伝達された状態情報に従ってクライアントに送信される。
以下では、いくつかの代替的な実施の形態を、添付した図面および図と共に説明する。
これらの図面および図において、同じ数字は同じ要素を示す。
図1は、冗長接続サービスを提供する一例の方法を示すフロー図である。
この例の方法によると、冗長接続サービスは、ネットワーク接続がクライアントからプライマリサーバへ確立された時に提供される(ステップ5)。
この接続が存続する間は、プライマリプロトコルスタックによって保持されたこの接続に関する状態情報が伝達される(ステップ10)。
本方法の一変形によると、接続に関する状態情報は、高可用性サーバクラスタに含まれるスタンバイサーバに伝達されることが理解されるべきである。
また、本方法のさらに別の変形によると、接続に関する状態情報は、任意の監視デバイスに伝達されることも理解されるべきである。
この例の方法によると、プライマリサーバの健全性が監視される(ステップ15)。
プライマリサーバが不健全になった場合(ステップ15)、または、プライマリサーバが、それ以外で、高可用性サーバクラスタにおいてプライマリサーバの役割を行うことができない場合には、クロスオーバメッセージが既存の接続を使用してクライアントにディスパッチされる(ステップ20)。
本方法の一変形によると、クロスオーバメッセージのクライアントへのディスパッチは、前に受信した接続に関する状態情報に関連した接続識別子を使用することによって行われることに留意すべきである。
図2は、接続状態情報を伝達する代替的な例示の方法を示すフロー図である。
この代替的な方法によると、状態情報は、転送制御プロトコル/インターネットプロトコルの下で確立された接続の状態情報を伝達することによって伝達される(ステップ25)。
図3は、接続状態情報を伝達するいくつかの他の代替的な方法を示すフロー図である。
一代替例の方法によると、接続状態情報は、送信元アドレスを伝達することによって伝達される(ステップ30)。
さらに別の代替例の方法によると、送信元ポート番号が伝達される(ステップ35)。
さらに別の代替例の方法によると、宛先アドレスが伝達される(ステップ40)。
さらに別の代替例の方法によると、宛先ポート番号が伝達される(ステップ45)。
さらに別の例の代替的な方法によると、パケットシーケンス番号が伝達される(ステップ50)。
一例示の使用事例によると、本方法は、転送制御プロトコル/インターネットプロトコルに従って形成された接続に適用される。
この例示の使用事例によると、接続状態情報の伝達は、送信元アドレス、送信元ポート番号、宛先アドレス、宛先ポート番号、およびシーケンス番号のほぼ同時の伝達を含む。
本説明は、本方法をTCP/IPプロトコルと共に適用することを例示するが、本明細書に添付した特許請求の範囲は、例示の目的で本明細書に提示したどの例示の使用事例にもその範囲を限定するためのものではないことに留意すべきである。
図4は、クロスオーバメッセージをディスパッチするいくつかの説明例の方法を示すフロー図である。
一説明例の方法によると、クロスオーバメッセージは、転送制御プロトコルのリセットパケットとして実施される。
さらに別の説明例の方法によると、転送制御プロトコルのリセットパケットは、送信元アドレスに従ってリセットパケットをアドレス指定することによってクライアントにディスパッチされる(ステップ60)。
さらに別の例示の代替的な方法によると、転送制御プロトコルのリセットパケットは、送信元ポート番号に従ってリセットパケットをアドレス指定することによってクライアントにディスパッチされる(ステップ65)。
さらに別の代替的な例示の方法によると、転送制御プロトコルのリセットパケットは、宛先アドレスに従ってリセットパケットをアドレス指定することによってクライアントにディスパッチされる(ステップ70)。
さらに別の代替的な例示の方法によると、転送制御プロトコルのリセットパケットは、宛先ポート番号に従ってリセットパケットをアドレス指定することによってクライアントにディスパッチされる(ステップ75)。
さらに別の代替的な例示の方法によると、転送制御プロトコルのリセットパケットは、シーケンス番号を含むように形成される(ステップ80)。
本方法のこの変形は、TCP/IPプロトコルの下で確立された接続に直接適用可能であるが、本明細書に添付した特許請求の範囲は、その範囲を限定するためのものではない。
したがって、本方法は、接続を確立するのに使用される通信プロトコルのタイプにかかわらず適用することができ、本明細書に添付した特許請求の範囲はこの観点で解釈される。
図5は、クロスオーバメッセージにシーケンス番号を含める代替的な一方法を示すフロー図である。
この代替的な例示の方法によると、クロスオーバメッセージに含められたシーケンス番号は、クライアントが予想した次のシーケンス番号に等しくなるように設定される。
これは、プライマリプロトコルスタックからの接続状態情報の一部として受信されたシーケンス番号を基礎として使用することによって行われる。
接続状態情報の一部として受信したシーケンス番号は、通常、クライアントが予想した次のデータパケットを反映するようにインクリメントされる。
本明細書に提示した説明は、TCP/IPプロトコルと共に本方法を使用することを示すが、他の多くのプロトコルが、データパケットがある形のシーケンス識別子を含んだメカニズムを含む。
したがって、本明細書に添付した特許請求の範囲は、例えばTCP/IPといった、単なる例示の目的で本明細書に提示したどの特定のプロトコルにもその範囲または適用を限定するためのものではない。
図6は、サーバクラスタの描画図である。
本方法は、一例示の使用事例によると、サーバクラスタ90に適用される。
一般的なサーバクラスタ90には、少なくとも1つのプライマリサーバ95および1つまたは2つ以上のスタンバイサーバ100が存在する。
動作時において、プライマリサーバ95は、一般的なクライアント−サーバ関係におけるサーバの役割を実行する。
この一例示の使用事例によると、プライマリサーバ95および1つまたは2つ以上のスタンバイサーバ100はネットワーク110に接続している。
ネットワーク110には、クライアントコンピュータ105も接続されている。
一般的なクライアント−サーバ関係では、クライアントコンピュータ105は、ネットワーク110を使用して、プライマリサーバ95との接続を確立する。
図からは省略されているが、例えばルータといった、クラスタ内のサーバのすべてが単一のネットワークアドレスに対応することを可能にする他の補助機器がサーバクラスタに含まれる。
したがって、クライアントコンピュータ105は、サーバクラスタ90との接続を確立する必要がある場合に、クラスタ90における各コンピュータの個別のネットワークアドレスを知る必要はない。
クライアントコンピュータ105は、その内部に、プロセッサ、プロトコルスタック、およびクライアントプロセスを含んでいる。
クラスタ90の各サーバも、その内部に、プロセッサ、プロトコルスタック、およびサーバプロセスを含んでいる。
動作時に、クライアントコンピュータ105のプロセッサはクライアントプロセスを実行する。
クライアントプロセスは、通常、クライアントコンピュータ105に含まれるプロトコルスタックを実行することによって、クライアントコンピュータ105のプロセッサに、サーバクラスタ90に含まれるサーバコンピュータの1つで実行されるサーバプロセスとの接続を確立させる。
サーバコンピュータの1つにおけるプロセッサは、クライアントプロセスとサーバプロセスとの間のデータの転送を円滑にする対応したプロトコルスタックを実行することによって、その接続にサービスを提供する。
また、サーバプロセスも、サーバクラスタ90に含まれるサーバコンピュータの1つにおけるプロセッサによって実行される。
図7は、プライマリサーバの一例の実施の形態を示すブロック図である。
この例の実施の形態によると、プライマリサーバ201は、1つまたは2つ以上のプロセッサ200と、ネットワーク210へのデータ通信およびネットワーク210からのデータ通信を円滑にするネットワークインターフェース205とを備える。
また、プライマリサーバ201のこの例の実施の形態には、メモリ215も含まれる。
図8は、スタンバイサーバの一例の実施の形態を示すブロック図である。
この例の実施の形態によると、スタンバイサーバ301は、1つまたは2つ以上のプロセッサ300と、ネットワーク210へのデータ通信およびネットワーク210からのデータ通信を円滑にするネットワークインターフェース305とを備える。
上記に説明したプライマリサーバ201およびスタンバイサーバ301のこれらの例の実施の形態は、それぞれ、さまざまな機能モジュールをさらに含む。
これらの機能モジュールのそれぞれは、プロセッサが実行できる命令シーケンスを備える。
機能モジュールを実施する命令シーケンスは、代替的な一実施の形態によると、プライマリサーバ201のそれぞれのメモリ(215)およびスタンバイサーバ301のメモリ(315)に記憶される。
「最低限、プロセッサに〜を実行させる」という用語およびその変形体は、プロセッサが特定の機能モジュール(すなわち命令シーケンス)を実行すると、プロセッサによって実行される機能をオープンエンドに列挙したものとしての機能を果たすように意図されたものであるとのアドバイスが読み手には与えられる。
したがって、特定の機能モジュールが、添付した特許請求の範囲で画定された機能に加え、更なる機能をプロセッサに実行させる一実施の形態は、本明細書に添付した特許請求の範囲に含まれることになる。
図7は、この例の実施の形態に従って、プライマリサーバ201がプロトコルスタック220、サーバモジュール225、および接続モニタ230をさらに含むことをさらに示している。
図8は、この例の実施の形態に従って、スタンバイサーバ301がプロトコルスタック320、サーバモジュール325、および接続リセットモジュール330をさらに含むことをさらに示している。
図9は、スタンバイサーバと共にプライマリサーバのオペレーションを示すデータフロー図である。
一例の実施の形態によると、プライマリサーバ201のプロセッサ200は、サーバモジュール225を実行する。
サーバモジュール225は、プロセッサ200によって実行されると、最低限、プロセッサ200に、クライアント要求(例えば、ネットワークから受信されたクライアント要求から)に応答させる。
プライマリサーバ201に含まれるプロトコルスタック220は、プロセッサ200によって実行されると、最低限、プロセッサ220に、プライマリサーバ201のこの例の実施の形態に含まれるネットワークインターフェース205を使用してクライアントとのネットワーク接続を確立させる。
この接続は、通常、クライアントコンピュータで実行されるクライアントプロセスと確立される。
なお、クライアントコンピュータおよびクライアントプロセスのいずれも図には示されていない。
通常、接続の確立を要求するのはクライアントプロセスである。
また、プロセッサ200は、接続モニタモジュール230も実行する。
接続モニタモジュール230は、プロセッサ200によって実行されると、最低限、プロセッサ200に、クライアント接続のステータスを伝達させる。
代替的な一実施の形態によると、接続モニタモジュール230は、最低限、プロセッサ200に、プロトコルスタック220を使用して接続リセットモジュール330への独立した接続を確立させる。
その後、この独立した接続は、接続リセットモジュール330への接続の状態に関する情報を伝達するのに使用される。
クライアントとの接続が維持されている間、プロセッサ200は、接続モニタモジュール230の実行を継続するので、クライアントプロセスとの接続の状態を監視する。
代替的な一実施の形態によると、プロトコルスタック220は、プロセッサ200によって実行させると、最低限、プロセッサ200に、接続の状態を記述した状態変数をプロトコルスタック状態変数テーブル221に記憶させる。
代替的な一実施の形態によると、プロトコル状態変数テーブル221は、プライマリサーバ201のこの例の実施の形態に含まれるメモリ215に記憶される。
したがって、接続モニタモジュール230は、プロセッサ200によって実行されると、さらに、最低限、プロセッサに、プロトコルスタック状態変数テーブル221から接続の状態に関する情報を抽出させる。
一例の代替的な実施の形態によると、接続モニタモジュール230は、最低限、プロセッサに、転送制御プロトコル状態情報を伝達させる。
代替的な一実施の形態によると、接続モニタモジュール230は、プロセッサ200によって実行されると、プロセッサに、接続に関する送信元アドレス、送信元ポート番号、宛先アドレス、および宛先ポート番号の少なくとも1つを含む情報を抽出させる。
さらに別の代替的な実施の形態によると、接続モニタモジュール230は、プロセッサ200によって実行されると、プロセッサ200に、接続に関するシーケンス番号を抽出させる。
したがって、接続モニタモジュール230は、さらに、最低限、プロセッサ200に、送信元アドレス、送信元ポート番号、宛先アドレス、宛先ポート番号、およびシーケンス番号の少なくとも1つを伝達させる。
なお、これらのすべては接続に関するものである。
接続モニタモジュール230の代替的な一実施の形態によると、最低限、プロセッサ200に、スタンバイサーバ301で実行される接続リセットモジュール330へこの情報を伝達させることが行われる。
さらに別の代替的な実施の形態によると、プロセッサ200が接続モニタモジュール230の実行を継続するので、この情報の伝達は、プロセッサ200が確立した、独立した通信接続によって行われる。
このような接続を促進する際に、プロセッサ200は、接続モニタモジュール230と、スタンバイサーバ301で動作している接続リセットモジュール330との間に接続を確立するためにプロトコルスタック220を実行する。
スタンバイサーバ301で実行される対応したプロトコルスタック320は、最低限、スタンバイサーバ301のプロセッサ300に、接続リセットモジュール330との接続をサポートさせる。
スタンバイサーバ301のプロセッサ300が接続リセットモジュール330を実行すると、最低限、プロセッサ300に、接続状態情報を受信させ、さらに、この接続状態情報をオープン接続リスト331に記憶させることが行われる。
代替的な一実施の形態によると、オープン接続リスト331は、スタンバイサーバ301のこの例の実施の形態に含まれるメモリ315に保持される。
オープン接続リスト331は、接続状態情報を記憶するのに使用される。
代替的な一実施の形態によると、接続リセットモジュール330は、プロセッサ300によって実行されると、最低限、プロセッサ300に、送信元アドレス、送信元ポート番号、宛先アドレス、宛先ポート番号、およびシーケンス番号の少なくとも1つを接続状態情報として受信させる。
代替的な一実施の形態によると、このようにして受信された接続状態情報は、接続リセットモジュール330が認識しているあらゆる接続についての単一のレコード内のオープン接続リスト331に記憶される。
さらに別の代替的な実施の形態によると、接続リセットモジュール330は、さらに、最低限、プロセッサ300に、プライマリサーバ201の健全性を監視させる。
これは、一例の実施の形態によると、プライマリサーバ201で実行される接続モニタモジュール230から確立された接続を監視することによって行われる。
したがって、接続リセットモジュール330は、最低限、プロセッサ300に、接続モニタモジュール230から確立された接続を経由して受信した健全性メッセージに従ってプライマリサーバ201の健全性を判断させる。
この接続は、接続モニタモジュール230から接続リセットモジュール330へ接続状態情報を伝達するのに使用されたのと同じ接続とすることができる。
この例の実施の形態によると、接続リセットモジュール330は、スタンバイサーバ301のプロセッサ300によって実行されると、プライマリサーバ201が不健全であると分かった場合に、さらに、最低限、プロセッサ300に、クライアントにクロスオーバメッセージを伝達させる。
代替的な一実施の形態によると、クロスオーバメッセージは、転送制御プロトコルのリセットパケットを含む。
このリセットパケットは、送信元アドレス、送信元ポート番号、宛先アドレス、および宛先ポート番号の少なくとも1つに従ってクライアントにアドレス指定される。
通常、リセットパケットはシーケンス番号をさらに含む。
このシーケンス番号は、オープン接続リスト331に記憶された情報に従ってクライアントが予想した次のシーケンス番号を反映するように調整されたものである。
複数のオープン接続がオープン接続リスト331で特定された場合、接続リセットモジュール330は、プロセッサ300によって実行されると、さらに、最低限、プロセッサ300に、1つまたは2つ以上のクライアントプロセスにクロスオーバメッセージをディスパッチさせることが理解されるべきである。
このディスパッチは、プロセッサ300が接続リセットモジュール330を実行した時に、プロセッサ300が先に受信した状態情報によって特定された接続であって、オープン接続リスト331に記憶された接続を使用して行われる。
冗長接続サービスの提供を可能にする、これまでに説明した機能モジュール(および機能モジュールに対応する命令シーケンス)は、代替的な一実施の形態によると、コンピュータ可読媒体上に与えられる。
このような媒体の例には、ランダムアクセスメモリ、読み出し専用メモリ(ROM)、コンパクトディスク(CD)ROM、デジタル多用途ディスク(DVD)、フロッピィディスク、ハードディスクドライブ、および磁気テープが含まれるが、これらに限定されるものではない。
このコンピュータ可読媒体は、単独でまたは組み合わせて、スタンドアロン製品を構成することができ、汎用的な計算の少なくとも1つを、本明細書に提示した技法および教示に従って、冗長接続サービスを与えるデバイスに変換するのに使用される。
したがって、本明細書に添付した特許請求の範囲は、本明細書で説明した本方法および教示のすべての実行を可能にするこのような命令シーケンスで与えられたこのようなコンピュータ可読媒体を含むものである。
本方法および本装置を、いくつかの代替的な実施の形態および例示の実施の形態の観点から説明したが、当業者には、本明細書を読み、図面を検討することによって、それら実施の形態の代替的なもの、変更したもの、変形したもの、および均等なものが明らかになると考えられる。
したがって、本明細書に添付した特許請求の範囲の真の趣旨および範囲は、このようなすべての代替的なもの、変更したもの、変形したもの、および均等なものを含むことが意図されている。
冗長接続サービスを提供する一例の方法を示すフロー図である。 接続状態情報を伝達する代替的な例示の方法を示すフロー図である。 接続状態情報を伝達するいくつかの他の代替的な方法を示すフロー図である。 クロスオーバメッセージをディスパッチするいくつかの説明例の方法を示すフロー図である。 クロスオーバメッセージにシーケンス番号を含める代替的な一方法を示すフロー図である。 サーバクラスタの描画図である。 プライマリサーバの一例の実施の形態を示すブロック図である。 スタンバイサーバの一例の実施の形態を示すブロック図である。 スタンバイサーバと共にプライマリサーバのオペレーションを示すデータフロー図である。
符号の説明
90・・・サーバクラスタ,
110・・・ネットワーク,
200・・・プロセッサ,
205・・・ネットワークインターフェース,
210・・・ネットワーク,
215・・・メモリ,
225・・・サーバ,
230・・・接続モニタ,
300・・・プロセッサ,
305・・・ネットワークインターフェース,
315・・・メモリ,
325・・・サーバ,

Claims (11)

  1. プライマリプロトコルスタックを使用して、クライアントからプライマリサーバへネットワーク接続を確立する(5)ことと、
    前記プライマリプロトコルスタックによって保持された接続状態情報を伝達する(10)ことと、
    前記プライマリサーバの健全性を監視する(15)ことと、
    前記プライマリサーバが不健全である場合に、前記伝達した接続状態情報によるクロスオーバメッセージを、前記確立したネットワーク接続を使用して前記クライアントにディスパッチする(20)ことと
    を含む冗長接続サービスを提供する方法。
  2. 前記接続状態情報を伝達することは、
    転送制御プロトコルの状態情報を伝達する(25)こと
    を含む
    請求項1に記載の冗長接続サービスを提供する方法。
  3. 前記転送制御プロトコルの状態情報を伝達することは、
    送信元アドレス(30)、送信元ポート番号(35)、宛先アドレス(40)、宛先ポート番号(45)および転送制御プロトコルのシーケンス番号(50)の少なくとも1つを伝達すること
    を含む
    請求項2に記載の冗長接続サービスを提供する方法。
  4. 前記クロスオーバメッセージをディスパッチすることは、
    送信元アドレス(60)、送信元ポート番号(65)、宛先アドレス(70)、宛先ポート番号(75)および転送制御プロトコルのシーケンス番号(80)の少なくとも1つを含む、プライマリプロトコルスタックによって保持された接続状態情報に従ってアドレス指定されたクライアントに、転送制御プロトコルのリセットパケットをディスパッチすること
    を含む
    請求項1に記載の冗長接続サービスを提供する方法。
  5. 前記クロスオーバメッセージをディスパッチすることは、
    プライマリプロトコルスタックによって保持された接続状態情報の一部として受信したシーケンス番号を基準として次のシーケンス番号(85)を含むクロスオーバメッセージをディスパッチすること
    を含む
    請求項1に記載の冗長接続サービスを提供する方法。
  6. 命令シーケンスを実行することができるプロセッサ(200)と、
    1つまたは2つ以上の命令シーケンスを記憶することができるメモリ(215)と、
    データネットワークと通信することができるネットワークインターフェース(205)と、
    メモリ(215)に記憶された1つまたは2つ以上の命令シーケンスであって、
    前記プロセッサ(200)によって実行されると、最低限、前記プロセッサ(200)に、クライアント要求に応答させるサーバモジュール(225)と、
    前記プロセッサ(200)によって実行されると、最低限、前記プロセッサ(200)に、前記ネットワークインターフェースを使用してクライアントとのネットワーク接続を確立させ、さらに、最低限、前記プロセッサ(200)に、確立された接続を介して受信されたクライアント要求を前記サーバモジュールに転送させるプロトコルスタックモジュール(220)と、
    前記プロセッサ(200)によって実行されると、最低限、前記プロセッサ(200)に、クライアント接続のステータスを伝達させる接続モニタモジュール(230)と
    を含む1つまたは2つ以上の命令シーケンスと、
    を備えるプライマリサーバ。
  7. 前記接続モニタモジュールは、最低限、前記プロセッサ(200)に、転送制御プロトコル状態情報(221)を伝達させることによって、前記プロセッサにクライアント接続のステータスを伝達させる
    請求項6に記載のプライマリサーバ。
  8. 前記接続モニタモジュールは、送信元アドレス(30)、送信元ポート番号(35)、宛先アドレス(40)、宛先ポート番号(45)および転送制御プロトコルのシーケンス番号(50)の少なくとも1つを含む転送制御プロトコルの状態情報を、前記プロセッサ(200)に伝達させる
    請求項7に記載のプライマリサーバ。
  9. 命令シーケンスを実行することができるプロセッサ(300)と、
    1つまたは2つ以上の命令シーケンスを記憶することができるメモリ(315)と、
    データネットワークと通信することができるネットワークインターフェース(305)と、
    メモリ(315)に記憶された1つまたは2つ以上の命令シーケンスであって、
    前記プロセッサ(300)によって実行されると、最低限、前記プロセッサ(300)に、クライアント要求に応答させるサーバモジュール(325)と、
    前記プロセッサ(300)によって実行されると、最低限、前記プロセッサ(300)に、前記ネットワークインターフェースを使用してクライアントとのネットワーク接続を確立させ、さらに、最低限、前記プロセッサ(300)に、確立された接続を介して受信されたクライアント要求を前記サーバモジュールに転送させるプロトコルスタックモジュール(320)と、
    前記プロセッサによって実行されると、最低限、前記プロセッサ(300)に、
    プライマリプロトコルスタックによって保持された接続状態情報を受信させ、
    前記受信された接続状態情報によって特定される接続を使用してクライアントにクロスオーバメッセージを伝達させる、
    接続リセットモジュール(330)と
    を含む1つまたは2つ以上の命令シーケンスと
    を備えるスタンバイサーバ。
  10. 前記接続リセットモジュールは、最低限、前記プロセッサ(300)に、プライマリプロトコルスタックによって保持された、送信元アドレス(60)、送信元ポート番号(65)、宛先アドレス(70)、宛先ポート番号(75)および転送制御プロトコルのシーケンス番号(80)の少なくとも1つを含む受信された接続状態情報に従ってアドレス指定されたクライアントへ転送制御プロトコルのリセットパケットを伝達させることによって、前記プロセッサ(300)にクロスオーバメッセージを伝達させる
    請求項9に記載のスタンバイサーバ。
  11. 前記接続リセットモジュールは、最低限、前記プロセッサ(300)に、プライマリプロトコルスタックによって保持された接続状態情報の一部として受信されたシーケンス番号を基準として次のシーケンス番号(85)を含むクロスオーバメッセージを伝達させることによって、前記プロセッサ(300)にクロスオーバメッセージを伝達させる
    請求項9に記載のスタンバイサーバ。
JP2005177225A 2004-06-22 2005-06-17 冗長接続サービスの提供方法および装置 Pending JP2006014310A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/874,665 US20050283529A1 (en) 2004-06-22 2004-06-22 Method and apparatus for providing redundant connection services

Publications (1)

Publication Number Publication Date
JP2006014310A true JP2006014310A (ja) 2006-01-12

Family

ID=35481869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005177225A Pending JP2006014310A (ja) 2004-06-22 2005-06-17 冗長接続サービスの提供方法および装置

Country Status (2)

Country Link
US (1) US20050283529A1 (ja)
JP (1) JP2006014310A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011518486A (ja) * 2008-04-02 2011-06-23 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ故障時におけるクライアント・アプリケーションのより速い回復を可能にするための方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376078B1 (en) 2004-03-24 2008-05-20 Juniper Networks, Inc. Selective replay of a state information within a computing device
US7417947B1 (en) 2005-01-05 2008-08-26 Juniper Networks, Inc. Routing protocol failover between control units within a network router
US8036105B2 (en) * 2005-08-08 2011-10-11 International Business Machines Corporation Monitoring a problem condition in a communications system
US20070030813A1 (en) * 2005-08-08 2007-02-08 International Business Machines Corporation Monitoring a problem condition in a communications protocol implementation
US8135006B2 (en) * 2005-12-22 2012-03-13 At&T Intellectual Property I, L.P. Last mile high availability broadband (method for sending network content over a last-mile broadband connection)
CN101022451B (zh) * 2006-02-14 2014-07-23 杭州华三通信技术有限公司 数据通信中连接状态的同步方法及其应用的通信节点
TW200743355A (en) * 2006-05-05 2007-11-16 Hon Hai Prec Ind Co Ltd Network device and time synchronizing method thereof
CN101262369B (zh) * 2008-03-28 2011-05-11 华为技术有限公司 调度服务器的主备实现方法及调度服务器
JP6575318B2 (ja) * 2015-11-18 2019-09-18 富士通株式会社 ネットワーク制御装置、クラスタシステムおよび制御プログラム
CN105553879A (zh) * 2015-12-18 2016-05-04 湖南大学 一种基于服务器的流调度方法
CN108572976A (zh) * 2017-03-10 2018-09-25 华为软件技术有限公司 一种分布式数据库中数据恢复方法、相关设备和***
US10642657B2 (en) * 2018-06-27 2020-05-05 The Hong Kong Polytechnic University Client-server architecture for multicore computer system to realize single-core-equivalent view

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5027269A (en) * 1989-04-27 1991-06-25 International Business Machines Corporation Method and apparatus for providing continuous availability of applications in a computer network
CA2167634A1 (en) * 1995-01-23 1996-07-24 Michael E. Fisher Method and apparatus for maintaining network connections across a voluntary process switchover
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5754752A (en) * 1996-03-28 1998-05-19 Tandem Computers Incorporated End-to-end session recovery
US6272522B1 (en) * 1998-11-17 2001-08-07 Sun Microsystems, Incorporated Computer data packet switching and load balancing system using a general-purpose multiprocessor architecture
US6377996B1 (en) * 1999-02-18 2002-04-23 International Business Machines Corporation System for seamless streaming of data stored on a network of distributed primary and target servers using segmentation information exchanged among all servers during streaming
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus
US6941384B1 (en) * 2000-08-17 2005-09-06 International Business Machines Corporation Methods, systems and computer program products for failure recovery for routed virtual internet protocol addresses
US7076555B1 (en) * 2002-01-23 2006-07-11 Novell, Inc. System and method for transparent takeover of TCP connections between servers
US7251745B2 (en) * 2003-06-11 2007-07-31 Availigent, Inc. Transparent TCP connection failover

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011518486A (ja) * 2008-04-02 2011-06-23 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ故障時におけるクライアント・アプリケーションのより速い回復を可能にするための方法

Also Published As

Publication number Publication date
US20050283529A1 (en) 2005-12-22

Similar Documents

Publication Publication Date Title
JP2006014310A (ja) 冗長接続サービスの提供方法および装置
US11223690B2 (en) Service management modes of operation in distributed node service management
US7225356B2 (en) System for managing operational failure occurrences in processing devices
US7898941B2 (en) Method and system for assigning a plurality of MACs to a plurality of processors
US9749415B2 (en) Service management roles of processor nodes in distributed node service management
JP4900982B2 (ja) サーバ・クラスタにおいてフェイルオーバを管理するための方法、フェイルオーバ・サーバ及びコンピュータ・プログラム
RU2380746C2 (ru) Выравнивание сетевой нагрузки с помощью информации статуса хоста
US6918051B2 (en) Node shutdown in clustered computer system
US6535990B1 (en) Method and apparatus for providing fault-tolerant addresses for nodes in a clustered system
US20040199804A1 (en) Method and apparatus for high availability distributed processing across independent networked computer fault groups
JP2004519024A (ja) 多数のノードを含むクラスタを管理するためのシステム及び方法
US20060221815A1 (en) Failure-monitoring program and load-balancing device
JP2000293497A (ja) クラスタ・ノード救援信号発生システム
JP2006209487A (ja) 計算機システム、計算機、ストレージ装置及び管理端末
US7734948B2 (en) Recovery of a redundant node controller in a computer system
US7134046B2 (en) Method and apparatus for high availability distributed processing across independent networked computer fault groups
JPH1185644A (ja) 冗長構成システムの系切替制御方法
EP1304840A2 (en) Managing network connections in a system
JP2011203941A (ja) 情報処理装置、監視方法、および監視プログラム
US7149918B2 (en) Method and apparatus for high availability distributed processing across independent networked computer fault groups
RU2387002C2 (ru) Выравнивание сетевой нагрузки с помощью управления соединением
JP2002344450A (ja) 高可用性処理方法及びその実施システム並びにその処理プログラム
US7127637B2 (en) Method and apparatus for high availability distributed processing across independent networked computer fault groups
JP2004248228A (ja) サービス切替え装置、サービス提供ノード、通信システム、プログラムおよび該プログラムを格納した記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070712

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071009

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080331