JP4695705B2 - クラスタシステムおよびノード切り替え方法 - Google Patents

クラスタシステムおよびノード切り替え方法 Download PDF

Info

Publication number
JP4695705B2
JP4695705B2 JP2009501033A JP2009501033A JP4695705B2 JP 4695705 B2 JP4695705 B2 JP 4695705B2 JP 2009501033 A JP2009501033 A JP 2009501033A JP 2009501033 A JP2009501033 A JP 2009501033A JP 4695705 B2 JP4695705 B2 JP 4695705B2
Authority
JP
Japan
Prior art keywords
business
server node
node
node device
server
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
JP2009501033A
Other languages
English (en)
Other versions
JPWO2008105031A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2008105031A1 publication Critical patent/JPWO2008105031A1/ja
Application granted granted Critical
Publication of JP4695705B2 publication Critical patent/JP4695705B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、複数の情報処理装置(ノード)を用いて構成されたクラスタシステムと、クラスタシステムにおいて異常が検知されたときのノード切り替え方法に関する。
複数の業務サーバにより構成される従来のクラスタシステムにおいては、一般に、ハートビート信号によるノード異常検知方法が採用されている。この方法では、各業務サーバから他の業務サーバに対して、専用のインタコネクトLAN(Local Area Network)経由でハートビートパケットを送出し、特定の業務サーバから一定時間応答パケットを受信しない場合に、その業務サーバの異常を検知する。
しかしながら、ハートビート信号によるノード異常検知方法には、次のような問題がある。
(1)誤検知
クラスタシステムにおいて、業務処理そのものは正常に実行されていても、オペレーティングシステム(OS)の部分的異常等により、ハートビート信号が正常に送受信されない場合がある。この場合、業務とは直接関係がないシステム状態の異常が検知され、実際には業務処理を継続可能な状況でも、ノード切り替えが発生してしまう。
(2)検知時間
ハートビート信号によるノード異常検知には、相当の検知時間が必要である。そこで、検知時間を短くするためにタイマを短く設定すると、上記(1)の誤検知を助長することになる。したがって、不要なノード切り替えが発生するリスクが高まる。
下記の特許文献1は、ノード内の障害発生を監視するサービスプロセッサを用いることで、処理の継続が可能か否かを判断するクラスタシステムに関し、特許文献2は、各ノードに搭載されたエージェントが管理サーバと通信することで、管理サーバがノード情報を一括管理するクラスタシステムに関する。
特開平09−034852号公報 特開2004−334534号公報
本発明の課題は、クラスタシステムにおいて業務処理を継続可能な場合に、不要なノード切り替えの発生を防止することである。
本発明の第1のクラスタシステムは、クライアントノード装置および複数のサーバノード装置を含む。上記複数のサーバノード装置のうち第1のサーバノード装置に異常が発生したとき、クライアントノード装置は、第2のサーバノード装置に対して異常検知情報を送信する。
第2のサーバノード装置は、異常検知情報を受信したとき、第1のサーバノード装置に対して生存確認要求を送信し、第1のサーバノード装置から生存確認応答を受信しなければ、第1のサーバノード装置に異常が発生したものと判断して、業務処理を行うサーバノード装置の切り替え制御を開始する。
このようなクラスタシステムによれば、クライアントノード装置が検知した第1のサーバノード装置の異常を、別のノード装置である第2のサーバノード装置が確認した後に、切り替え制御が開始される。したがって、サーバノード装置の異常を確実に検証することができ、不要なノード切り替えを抑止することができる。
本発明の第2のクラスタシステムは、複数のクライアントノード装置および複数のサーバノード装置を含む。上記複数のクライアントノード装置の各々は、上記複数のサーバノード装置のうち第1のサーバノード装置に対して業務処理要求を送信し、第1のサーバノード装置から業務処理応答を受信しなければ、第2のサーバノード装置に対して異常検知情報を送信する。
第2のサーバノード装置は、2つ以上のクライアントノード装置から異常検知情報を受信したときに、第1のサーバノード装置に異常が発生したものと判断して、業務処理を行うサーバノード装置の切り替え制御を開始する。
このようなクラスタシステムによれば、業務処理要求に対する応答の有無に基づいて第1のサーバノード装置の異常が検知されるため、直接的に、業務の継続ができない状態を検知することができる。また、複数のクライアントノード装置により第1のサーバノード装置の異常が検知された後に、切り替え制御が開始されるため、サーバノード装置の異常を確実に検証することができ、不要なノード切り替えを抑止することができる。
クライアントノード装置は、例えば、後述するクライアントノードCN1またはCN2に対応し、第1のサーバノード装置は、例えば、ノードN1に対応し、第2のサーバノード装置は、例えば、ノードN2〜Nmに対応する。
クラスタシステムと構成情報を示す図である。 クラスタシステムにおける処理のフローチャートである。 業務起動時の処理を示す図である。 業務運用時のフェイルオーバ制御を示す図である。 スケールアウトによる構成情報の変更を示す図である。 スケールアウトによるクラスタシステムの変更を示す図である。 クライアントノードを含むクラスタシステムの構成図である。 ノードN1で異常が発生した場合のシーケンスを示す図である。 クライアントノードCN1で異常が発生した場合のシーケンスを示す図である。 第1のタイマ管理テーブルを示す図である。 第2のタイマ管理テーブルを示す図である。 異常ノードリストを示す図である。 業務パケットを示す図である。 業務応答パケットを示す図である。 生存確認パケットを示す図である。 生存確認応答パケットを示す図である。 ノード異常検知パケットを示す図である。 ノード異常検知処理のフローチャートである。 ノード異常判定処理のフローチャートである。 クラスタシステムにおける複数の業務グループを示す図である。 ノード異常確定リストを示す図である。 切り替え処理のフローチャートである。 業務グループ単位の切り替えを示す図である。 業務グループ単位の切り替え処理のフローチャートである。 ノード単位の切り替えを示す図である。 ノード単位の切り替え処理のフローチャートである。 情報処理装置の構成図である。 プログラムおよびデータの提供方法を示す図である。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
図1は、本実施形態のクラスタシステムの構成例を示している。このクラスタシステムは、構成管理サーバ101およびノード(サーバ)N1〜N6を備える。このうち、クラスタシステムとして切り替え制御の対象となる複数のノードは、ノードグループとして管理され、ノードグループを複数用意することで、システムの能力増強が実現される。この例では、ノードN1〜N3はノードグループXに属し、ノードN4〜N6はノードグループYに属する。
1つの業務処理を構成する業務プロセス等の複数の要素は、業務グループとして管理され、1つのノード上で複数の業務グループを実行することができる。また、1つの業務グループは、複数のノードで実行することができ、そのうち1つのノードがプライマリサーバとして動作し、他のノードはセカンダリサーバとして動作する。
切り替え制御の際に参照される構成情報102は、設定時には構成管理サーバ101に保持されるが、業務処理の起動指示とともに、各ノードグループに配布される。構成情報102には、各ノードグループを構成する複数のノードの情報と、各業務グループの各実行単位の状態(Active/Standby1/Standby2)が設定されている。
Activeは、業務クライアントからの要求を受けて、実際に業務処理を行う状態を示し、Standby1およびStandby2は、Active状態の実行単位が異常となった場合に、それぞれ第1優先度および第2優先度で業務処理を受け持つ待機状態を示している。したがって、ノードグループは、互いに切り替えられるActive状態、Standby1状態、およびStandby2状態の実行単位が存在する、複数のノードを表している。
ノードグループXには、業務A〜Cの処理を担当する3つの業務グループが割り当てられており、このうち、業務Aの業務グループでは、ノードN1、N2、およびN3の状態がそれぞれActive、Standby1、およびStandby2に設定されている。業務Bの業務グループでは、ノードN1、N2、およびN3の状態がそれぞれStandby2、Active、およびStandby1に設定され、業務Cの業務グループでは、ノードN1、N2、およびN3の状態がそれぞれStandby1、Standby2、およびActiveに設定されている。
ノードグループYには、業務D〜Fの処理を担当する3つの業務グループが割り当てられており、このうち、業務Dの業務グループでは、ノードN4、N5、およびN6の状態がそれぞれActive、Standby1、およびStandby2に設定されている。業務Eの業務グループでは、ノードN4、N5、およびN6の状態がそれぞれStandby2、Active、およびStandby1に設定され、業務Fの業務グループでは、ノードN4、N5、およびN6の状態がそれぞれStandby1、Standby2、およびActiveに設定されている。
ノードグループXおよびYに配布された構成情報102は、構成情報111〜116としてノードN1〜N6にそれぞれ保持される。ノードN1〜N3は、業務A〜Cの業務グループにおける各実行単位の状態を管理するクラスタ制御117を行い、ノードN4〜N6は、業務D〜Fの業務グループにおける各実行単位の状態を管理するクラスタ制御118を行う。
図2は、図1のクラスタシステムにおける処理のフローチャートである。まず、業務起動時において、構成管理サーバ101は、あらかじめ設定された構成情報102を参照して、ノードグループおよび業務グループの構成を認識し(ステップ201)、業務処理の起動指示とともに、構成情報102を各ノードグループの各ノードに配布する(ステップ202)。
ノードN1〜N6は、配布された構成情報102を構成情報111〜116としてそれぞれ格納し、その構成情報111〜116を参照して、各業務の処理を起動する(ステップ203)。そして、業務運用中に異常を検知すると、各ノードグループは、保持している構成情報に従って切り替え制御を実行する(ステップ204)。
図3は、業務Aの起動時の処理を示している。ノードグループXは、時刻T1において、構成情報111〜113に従ってStandby処理を行う。これにより、ノードN1〜N3上の業務Aの実行単位に相当する業務プロセス301〜303が、それぞれActive、Standby1、およびStandby2に設定される。そして、時刻T2において、ノードN1は、Active状態の業務プロセス301のOnline処理を行い、業務Aの運用を開始する。
その後、ノードN1にて異常が発生すると、図4に示すように、ノードグループXは、フェイルオーバ制御を行って、業務Aの運用を業務プロセス301から業務プロセス302に切り替える。
このとき、構成情報111〜113における、業務プロセス301の状態は、ActiveからDownに変更され、業務プロセス302の状態は、Standby1からActiveに変更される。さらに、ノードN1上の業務BおよびCの業務プロセスの状態も、Downに変更される。Downは、ノード故障状態を表す。
このように、業務運用中のノードグループの状態は、そのノードグループ内の構成情報に記録されて管理される。このため、運用中に構成管理サーバ101が異常等によりダウンした後も、ノードグループ内で切り替え制御を実行することができ、高信頼性を維持した業務運用が継続される。
ところで、クラスタシステムにおいては、業務Aの運用中における処理量の増加に伴って、システムを構成するノードの数を増やすスケールアウトが行われる場合がある。この場合、構成管理サーバ101の構成情報102は、例えば、図5に示すように変更される。その結果、クラスタシステムの構成は、図6に示すように変更される。
変更された構成情報では、業務Aが業務A1と業務A2に分割され、業務A1およびBの業務グループが、元のノードグループXに割り当てられ、業務A2およびCの業務グループが、新たなノードグループZに割り当てられている。
業務A1の業務グループでは、ノードN1、N2、およびN3の状態がそれぞれActive、Standby1、およびStandby2に設定され、業務Bの業務グループでは、ノードN1、N2、およびN3の状態がそれぞれStandby2、Active、およびStandby1に設定されている。
また、業務A2の業務グループでは、ノードN4、N5、およびN6の状態がそれぞれActive、Standby1、およびStandby2に設定され、業務Cの業務グループでは、ノードN4、N5、およびN6の状態がそれぞれStandby2、Active、およびStandby1に設定されている。
このように、ノードグループのノード数を増やす代わりに、新たなノードグループを追加すれば、各ノードグループ内におけるクラスタ制御の対象ノード数は、スケールアウト前と同じになる。したがって、クラスタ制御の処理量が増加することはなく、切り替え時間もスケールアウト前と変わらないという利点がある。
次に、図7から図19までを参照しながら、クラスタシステムにおけるノード異常判定方法について説明する。
図7は、業務処理を依頼するクライアントノードを含む、クラスタシステムの構成例を示している。このクラスタシステムは、クライアントノード(業務クライアント)CN1、CN2、およびノード(業務サーバ)N1〜Nmを備え、これらのノードは、通信ネットワーク701により互いに接続されている。不図示の構成管理サーバは、通信ネットワーク701上に設けられる。
ノードN1〜Nmには、業務グループ702が割り当てられており、このうち、ノードN1の状態はActiveに設定され、ノードN2〜Nmの状態は、それぞれStandby1〜Standby(m−1)に設定されている。
クライアントノードCN1およびCN2上の業務プロセス711および712は、それぞれ通信ネットワーク701を介して、業務処理を要求する業務パケットをノードN1〜Nmに送信する。そして、その都度、ノードN1〜Nmからの応答を確認することにより、業務グループ単位でノード異常を検知する。
このとき、クライアントノードCN1がノードNi(i=1〜m)の異常を検知した時点でノード異常と判定すると、クライアントノードCN1内の異常とノードNi内の異常とを区別することができない。そこで、図8および図9に示すように、複数のノードが異常を検知した時点で、ノード異常と判定することにする。
図8は、ノードN1で異常が発生した場合のシーケンスを示している。クライアントノードCN1は、業務パケットをノードN1〜Nmに送信し(手順801)、業務応答パケット(Ack)が返信されたか否かをチェックする(手順802)。ここで、一定時間内にノードN1からの業務応答パケットを受信しなければ、ノードN1が異常と判断し、ノード異常検知パケットをノードN2〜Nmに送信する(手順803)。
ノード異常検知パケットを受信したノードN2〜Nmは、業務パケットの一種である生存確認パケットをノードN1に送信する(手順804)。そして、一定時間内にノードN1からの生存確認応答パケットを受信しなければ、ノードN1が異常と判断し、切り替え制御を開始する(手順805)。
このように、ノードN2〜Nmは、自身を含めて2つ以上のノードがノードN1の異常を検知した場合に、ノードN1が異常であると判定する。具体的には、クライアントノードCN1からノードN1の異常を示すノード異常検知パケットを受信した後に、ノードN1の異常を確認した場合、または、別のクライアントノードCN2からノードN1の異常を示すノード異常検知パケットをさらに受信した場合である。
図9は、クライアントノードCN1で異常が発生した場合のシーケンスを示している。クライアントノードCN1は、業務パケットをノードN1〜Nmに送信し(手順901)、業務応答パケットが返信されたか否かをチェックする(手順902)。ここで、クライアントノードCN1のスローダウンにより、一定時間内にノードN1からの業務応答パケットを処理できない場合、誤ってノードN1が異常と判断し、ノード異常検知パケットをノードN2〜Nmに送信する(手順903)。
ノード異常検知パケットを受信したノードN2〜Nmは、生存確認パケットをノードN1に送信する(手順904)。そして、一定時間内にノードN1からの生存確認応答パケットを受信するので、ノードN1が正常と判断し、切り替え制御は開始しない(手順905)。
次に、クライアントノードCN2は、業務パケットをノードN1〜Nmに送信し(手順906)、ノードN1〜Nmから業務応答パケットを受信する(手順907)。こうして、クライアントノードCN2から業務運用を継続することができる。
このようなノード異常判定方法によれば、従来のハートビート信号によるノード異常検知方法と比較して、次のような利点がある。
(1)誤検知
異常検出の仕組みを業務パケットと兼用することにより、より直接的かつ正確に、業務を継続できない状態を検知できる。
(2)検知時間
一定時間内(例えば3秒以内)に業務パケットの処理が行われなければ、その宛先ノードを異常とみなすことにすれば、ユーザにとってより納得性のあるノード異常検知時間を設定することができる。
図10は、クライアントノードCN1およびCN2に設けられるタイマ管理テーブルを示している。このタイマ管理テーブルには、業務グループID毎に、業務応答パケットの受信を管理するタイマTMR1の情報が記録される。この例では、業務Aの業務グループに対して、5秒のタイマ値が設定されており、業務Bの業務グループに対してはタイマが設定されていない。
図11は、ノードN1〜Nmに設けられるタイマ管理テーブルを示している。このタイマ管理テーブルには、業務グループID毎に、生存確認応答パケットの受信を管理するタイマTMR2の情報が記録される。この例では、業務Aの業務グループに対して、5秒のタイマ値が設定されており、業務Bの業務グループに対してはタイマが設定されていない。
図10および図11のタイマ管理テーブルに設定されたタイマ値は、一定間隔でデクリメントされる。
図12は、ノードN1〜Nmに設けられる異常ノードリストを示している。この異常ノードリストには、業務グループID、異常ノードID、および検知元クライアントノードIDの組み合わせが記録される。この例では、業務Aの業務グループに対して、ノードN1が異常ノードとして記録され、クライアントノードCN1が検知元クライアントノードとして記録されている。
図13および図14は、それぞれ業務パケットおよび業務応答パケットのフォーマットを示している。図13の業務パケットは、パケットID、業務グループID、シーケンス番号、データ、および送信元ノードIDからなり、図14の業務応答パケットは、応答を示すパケットID、業務グループID、シーケンス番号、および応答ノードIDからなる。
図15および図16は、それぞれ生存確認パケットおよび生存確認応答パケットのフォーマットを示している。図15の生存確認パケットは、生存確認を示すパケットID、業務グループID、シーケンス番号、および確認要求元ノードIDからなり、図16の生存確認応答パケットは、生存確認応答を示すパケットID、業務グループID、シーケンス番号、および応答ノードIDからなる。
図17は、ノード異常検知パケットのフォーマットを示している。図17のノード異常検知パケットは、ノード異常検知を示すパケットID、業務グループID、シーケンス番号、検知元ノードID、および異常ノードIDからなる。
図18は、クライアントノードにおけるノード異常検知処理のフローチャートである。この処理は、業務グループIDに基づいて業務グループ単位で行われる。
クライアントノードは、まず、処理対象の業務グループに対するタイマTMR1のタイマ値をタイマ管理テーブルに設定し(ステップ1801)、ノードN1〜Nmに対して業務パケットを送信する(ステップ1802)。そして、業務応答パケットの受信待ち処理を行い(ステップ1803)、ノードN1〜Nmのすべてから業務応答パケットを受信したか否かをチェックする(ステップ1804)。
いずれかのノードから業務応答パケットを受信していなければ、タイマ管理テーブルを参照して、タイマTMR1が経過したか(タイマ値が0になったか)否かをチェックし(ステップ1805)、タイマTMR1が経過していなければ、ステップ1803以降の処理を繰り返す。
タイマTMR1が経過していれば、業務応答パケットの返信がなかったノードを異常とみなし、それ以外のノードにノード異常検知パケットを送信して(ステップ1806)、ステップ1801以降の処理を繰り返す。ステップ1804において、すべてのノードから業務応答パケットを受信すれば、すべてのノードを正常とみなして、ステップ1801以降の処理を繰り返す。
図19は、ノードNiのクラスタ制御部によるノード異常判定処理のフローチャートである。この処理も、業務グループIDに基づいて業務グループ単位で行われる。
クラスタ制御部は、まず、パケット受信待ち処理を行い(ステップ1901)、ノード異常検知パケットを受信したか否かをチェックする(ステップ1902)。
ノード異常検知パケットを受信すると、その業務グループに対するタイマTMR2のタイマ値をタイマ管理テーブルに設定し、業務グループID、異常ノードID、および検知元クライアントノードIDを、異常ノードリストに記録する(ステップ1904)。そして、異常ノードに対して生存確認パケットを送信する(ステップ1905)。この時点では、まだクライアントノード内の異常である可能性があるため、切り替え処理は行われない。
ステップ1902において、ノード異常検知パケットを受信しなければ、応答処理を行い(ステップ1903)、ステップ1901以降の処理を繰り返す。この応答処理では、業務パケット(生存確認パケットを含む)を受信したか否かをチェックし、業務パケットを受信していれば、業務応答パケットまたは生存確認応答パケットを返信する。
ステップ1905において生存確認パケットを送信した後、パケット受信待ち処理を行い(ステップ1906)、業務パケットを受信したか否かをチェックする(ステップ1907)。業務パケットを受信していれば、ステップ1903と同様の応答処理を行い、ステップ1906以降の処理を繰り返す。
業務パケットを受信していなければ、次に、異常ノードリストを参照しながら、別の検知元ノードから、同じ業務グループIDおよび異常ノードIDを有するノード異常検知パケットを受信したか否かをチェックする(ステップ1909)。
そのようなノード異常検知パケットを受信した時点で、2つのクライアントノードにより同じノードの異常が検知されたことが分かる。そこで、その異常ノードIDに対応するノード異常を確定し、切り替え処理を行って(ステップ1912)、ステップ1901以降の処理を繰り返す。ステップ1912では、ノード単位の切り替え処理または業務グループ単位の切り替え処理が行われる。
ノード異常検知パケットを受信していなければ、次に、生存確認応答パケットを受信したか否かをチェックする(ステップ1910)。生存確認応答パケットを受信すれば、生存確認パケットの宛先ノードを正常とみなし、ステップ1901以降の処理を繰り返す。
生存確認応答パケットを受信していなければ、タイマ管理テーブルを参照して、タイマTMR2が経過したか否かをチェックし(ステップ1911)、タイマTMR2が経過していなければ、ステップ1906以降の処理を繰り返す。
タイマTMR2が経過していれば、生存確認パケットの宛先ノードを異常とみなし、その時点で、クライアントノードとノードNiにより同じノードの異常が検知されたことが分かる。そこで、そのノード異常を確定し、切り替え処理を行って(ステップ1912)、ステップ1901以降の処理を繰り返す。
ところで、上述したようなノード異常判定方法では、ノードN1の異常が発生すると、業務グループ単位でノード異常検知パケットが送信され、業務グループ単位で生存確認処理(生存確認パケットおよび生存確認応答パケットの送受信)が行われる。
したがって、図20に示すように、2つの業務グループ2001および2002に対するクラスタ制御2003が行われている場合、ノードN1の異常に伴って、両方の業務グループについて重複してノード異常検知パケットが送信される。このため、クラスタ制御2003では、ノードN1と他のノードN2〜Nmの間で、重複して生存確認処理を行う必要がある。
この場合、運用中の業務グループの数に比例して、生存確認処理に要する時間が増加してしまう。特に、OSレイヤの異常等が発生した場合、そのノード上のすべての業務グループについて異常が検出されるため、業務グループの数だけ重複して生存確認処理を行うことになり、効率が悪い。
そこで、同じノード上の2つ以上の業務グループについてノード異常が確定された場合には、ノード自身の異常とみなしてノード単位の切り替えを実行するのが望ましい。この切り替え方法によれば、一旦、ノード単位で切り替えを実行した後は、他の業務グループについての生存確認処理および切り替え処理が抑止されることになる。したがって、複数の業務グループを有するクラスタシステムにおいても、業務グループの数に関わらず、高速に切り替え処理を行うことができる。
この場合、ノードN1〜Nmには、上述したタイマ管理テーブルと異常ノードリスト以外に、図21に示すようなノード異常確定リストが設けられる。このノード異常確定リストには、業務グループ単位の切り替え処理が実行されたときに、その業務グループIDと異常ノードIDの組み合わせが記録される。この例では、業務Aの業務グループに対して、ノードN1が異常ノードとして記録されている。
クライアントノードにおけるノード異常検知処理と、ノードNiのクラスタ制御部によるノード異常判定処理は、それぞれ図18と図19に示したものと同様である。ただし、図19のステップ1912においては、図22に示すような切り替え処理が行われる。
ノードNiのクラスタ制御部は、まず、構成情報を参照して、ノードNiが属するノードグループに複数の業務グループが登録されているか否かをチェックする(ステップ2201)。そして、単一の業務グループしか登録されていなければ、業務グループ単位の切り替えを実行し(ステップ2205)、その業務グループIDと異常ノードIDをノード異常確定リストに記録する(ステップ2206)。ステップ2205においては、異常ノードのクラスタ制御部に対して、業務グループ単位のOffline切り替え指示を送信する。
ステップ2201において、複数の業務グループが登録されていれば、次に、異常ノードリストとノード異常確定リストを参照して、以前に同じノードで業務グループの異常が発生しているか否かをチェックする(ステップ2202)。
異常ノードリストの異常ノードIDがノード異常確定リストに記録されていなければ、新たなノードで異常が発生したことが分かる。そこで、業務グループ単位の切り替えを実行し(ステップ2205)、その業務グループIDと異常ノードIDをノード異常確定リストに記録する(ステップ2206)。
ステップ2202において、異常ノードリストの異常ノードIDがノード異常確定リストに記録されていれば、以前に同じノードで異常が発生していることが分かる。そこで、次に、以前に発生した異常と同じ業務グループの異常が発生しているか否かをチェックする(ステップ2203)。
同じ異常ノードIDに関して、異常ノードリストの業務グループIDとノード異常確定リストの業務グループIDがすべて同じであれば、同じ業務グループの異常であることが分かる。この場合、単一の業務グループの異常であり、既に業務グループ単位の切り替えが実行されているため、切り替えを実行することなく処理を終了する。
ステップ2203において、同じ業務グループの異常でなければ、同じノード上の複数の異なる業務グループについてノード異常が確定されたため、ノード単位の切り替えを実行する(ステップ2204)。これにより、そのノード上のすべての業務グループの切り替えが一括して行われる。
次に、図23に示すクラスタシステムにおける業務グループ単位の切り替えについて説明する。このクラスタシステムでは、ノードN1〜N3のクラスタ制御部2321〜2323により、業務グループ2301についてノード異常判定処理が行われる。ここでは、ノードN1、N2、およびN3の業務プロセス2311、2312、および2313が、それぞれActive、Standby1、およびStandby2に設定されている。
クラスタ制御部2322および2323は、業務グループ2301の運用中にノードN1の業務プロセスの異常を検出すると、図22のステップ2205において、業務グループ単位のOffline切り替え指示をクラスタ制御部2321に送信する。この場合、クラスタ制御部2321および2322は、図24に示すような切り替え処理を行う。
クラスタ制御部2321は、まず、当該業務のOffline処理を行い(ステップ2401)、構成情報において、業務プロセス2311の状態をActiveからFaultに変更する(ステップ2402)。Faultは、業務グループ故障状態を表す。なお、各業務プロセスの状態の変更は、クラスタ制御部2321〜2323により、ノードN1〜N3のすべての構成情報に反映されるものとする。
次に、構成情報を参照して切替先ノードを決定し、そのノードのクラスタ制御部にOnline切り替え指示を送信して(ステップ2403)、状態通知待ち処理を行う(ステップ2404)。ここでは、Standby1に設定された業務プロセス2312を有するノードN2が切替先ノードに決定され、クラスタ制御部2322に対して切り替え指示が送信される。
クラスタ制御部2322は、切り替え指示に従って当該業務のOnline処理を行い(ステップ2411)、処理が成功したか否かをチェックする(ステップ2412)。成功すれば、構成情報において、業務プロセス2312の状態をStandby1からActiveに変更し(ステップ2413)、失敗すれば、その状態をStandby1からFaultに変更する(ステップ2414)。そして、変更後の状態をクラスタ制御部2321に通知する(ステップ2415)。
クラスタ制御部2321は、通知された状態に基づいて、切り替えが成功したか否かをチェックする(ステップ2405)。その状態がActiveであれば成功と判断し、構成情報において、業務プロセス2313の状態をStandby2からStandby1に変更する(ステップ2407)。
一方、通知された状態がFaultであれば失敗と判断する。そして、Standby2に設定された業務プロセス2313を有するノードN3を次の切替先ノードに決定し、クラスタ制御部2323に対して切り替え指示を送信して、ステップ2404以降の処理を繰り返す。
次に、図25に示すように、ノードN1が故障した場合のノード単位の切り替えについて説明する。この場合、クラスタ制御部2322および2323は、ノードN1の異常を検出すると、図22のステップ2205において、図26に示すような切り替え処理を行う。
クラスタ制御部2322および2323は、まず、構成情報を参照して強制停止発行元ノードを決定し、そのノードからノードN1に対して強制停止要求を送信する(ステップ2601および2611)。ここでは、Standby1に設定された業務プロセス2312を有するノードN2が強制停止発行元ノードに決定され、クラスタ制御部2322からクラスタ制御部2321に対して、強制停止要求が送信される。
次に、クラスタ制御部2322は、構成情報において、業務プロセス2311の状態をActiveからDownに変更する(ステップ2602)。そして、当該業務のOnline処理を行って(ステップ2603)、処理が成功したか否かをチェックする(ステップ2604)。成功すれば、構成情報において、業務プロセス2312の状態をStandby1からActiveに変更する(ステップ2605)。
一方、失敗すれば、業務プロセス2312の状態をStandby1からFaultに変更し(ステップ2606)、業務グループ単位のOnline切り替え指示をクラスタ制御部2323に送信する(ステップ2607)。
クラスタ制御部2323は、切り替え指示に従って当該業務のOnline処理を行い(ステップ2621)、処理が成功したか否かをチェックする(ステップ2622)。成功すれば、構成情報において、業務プロセス2313の状態をStandby2からActiveに変更し(ステップ2623)、失敗すれば、その状態をStandby2からFaultに変更する(ステップ2624)。
なお、構成管理サーバに保持された構成情報は、業務起動時の初期状態を規定しており、業務運用中の切り替え処理によって影響を受けることはない。したがって、業務グループ単位またはノード単位の切り替えによって、そのノードグループ内の構成情報は変更されるが、構成管理サーバの構成情報は変更されない。
上述した図19のノード異常判定処理においては、2つのノードが同じノードの異常を検知した場合にそのノード異常を確定しているが、その代わりに、K個(K≧3)のノードが異常を検知した場合にノード異常を確定するようにしてもよい。
また、図22の切り替え処理においては、同じノード上の2つの異なる業務グループについてノード異常が確定された場合にノード単位の切り替えを実行しているが、その代わりに、K個(K≧3)の業務グループについてノード異常が確定された場合にノード単位の切り替えを実行するようにしてもよい。
ところで、上述した構成管理サーバ101、クライアントノードCN1、CN2、およびノードN1〜Nmは、例えば、図27に示すような情報処理装置(コンピュータ)を用いて構成される。図27の情報処理装置は、CPU(中央処理装置)2701、メモリ2702、外部記憶装置2703、およびネットワーク接続装置2704を備え、それらはバス2705により互いに接続されている。
メモリ2702は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムおよびデータを格納する。CPU2701は、メモリ2702を利用してプログラムを実行することにより、上述した業務処理、クラスタ制御等を行う。
この場合、図10および図11のタイマ管理テーブル、図12の異常ノードリスト、および図21のノード異常確定リストは、制御データとしてメモリ2702に格納され、図23のクラスタ制御部2321〜2323は、制御プログラムとしてメモリ2702に格納される。
外部記憶装置2703は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置2703に、プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2702にロードして使用する。
ネットワーク接続装置2704は、LAN(local area network)等の通信ネットワークに接続され、通信に伴うデータ変換を行う。また、情報処理装置は、必要に応じて、プログラムおよびデータを外部の装置からネットワーク接続装置2704を介して受け取り、それらをメモリ2702にロードして使用する。
図28は、図27の情報処理装置にプログラムおよびデータを提供する方法を示している。外部装置2801や可搬記録媒体2803に格納されたプログラムおよびデータは、情報処理装置2802のメモリ2702にロードされる。外部装置2801は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介して情報処理装置2802に送信する。CPU2701は、そのデータを用いてそのプログラムを実行し、上述した業務処理、クラスタ制御等を行う。

Claims (4)

  1. 複数のクライアントノード装置および複数のサーバノード装置を含むクラスタシステムであって、
    前記複数のクライアントノード装置のうちの第1のクライアントノード装置は、前記複数のサーバノード装置のうち第1のサーバノード装置に業務処理要求を送信し、前記第1のサーバノード装置から前記業務処理要求に対する業務応答を受信しない場合に、前記複数のサーバノード装置のうちの第2のサーバノード装置に対して異常検知情報を送信し、
    前記第2のサーバノード装置は、前記異常検知情報を受信したとき、前記第1のサーバノード装置に対して生存確認要求を送信し、前記生存確認応答を送信してから所定時間該第1のサーバノード装置から生存確認応答を受信しないこと、前記生存確認要求を送信してから前記所定時間経過するまでの間に前記複数のクライアントノード装置のうちの第2のクライアントノード装置からさらに異常検知情報を受信すること、のいずれの条件を満たした場合についても、該第1のサーバノード装置に異常が発生したものと判断して、業務処理を行うサーバノード装置の切り替え制御を開始する
    ことを特徴とするクラスタシステム。
  2. 複数のクライアントノード装置および複数のサーバノード装置を含むクラスタシステムにおけるノード切り替え方法であって、
    前記複数のクライアントノード装置のうちの第1のクライアントノード装置は、前記複数のサーバノード装置のうち第1のサーバノード装置に業務処理要求を送信し、前記第1のサーバノード装置から前記業務処理要求に対する業務応答を受信しない場合に、前記複数のサーバノード装置のうちの第2のサーバノード装置に対して異常検知情報を送信し、
    前記第2のサーバノード装置は、前記異常検知情報を受信したとき、前記第1のサーバノード装置に対して生存確認要求を送信し、前記生存確認応答を送信してから所定時間該第1のサーバノード装置から生存確認応答を受信しないこと、前記生存確認要求を送信してから前記所定時間経過するまでの間に前記複数のクライアントノード装置のうちの第2のクライアントノード装置からさらに異常検知情報を受信すること、のいずれの条件を満たした場合についても、該第1のサーバノード装置に異常が発生したものと判断して、業務処理を行うサーバノード装置の切り替え制御を開始する
    ことを特徴とするノード切り替え方法。
  3. クライアントノード装置および複数のサーバノード装置を含むクラスタシステムにおけるノード切り替え方法であって、
    前記複数のサーバノード装置のうち第1のサーバノード装置に異常が発生したとき、前記クライアントノード装置は、第2のサーバノード装置に対して異常検知情報を送信し、
    前記第2のサーバノード装置は、前記異常検知情報を受信したとき、前記第1のサーバノード装置に対して生存確認要求を送信し、該第1のサーバノード装置から生存確認応答を受信しなければ、該第1のサーバノード装置に異常が発生したものと判断して、業務処理を行うサーバノード装置の切り替え制御を開始し、前記第1のサーバノード装置内のアクティブ業務プロセスと他のサーバノード装置内のスタンバイ業務プロセスを含む業務グループが、該第1のサーバノード装置と他のサーバノード装置を含むノードグループにいくつ割り当てられているかをチェックし、複数の業務グループが該ノードグループに割り当てられており、かつ、該複数の業務グループのうち所定数以上の業務グループについて該第1のサーバノード装置に異常が発生したものと判断した場合は、ノード単位の切り替えを実行することを特徴とするノード切り替え方法。
  4. 複数のクライアントノード装置および複数のサーバノード装置を含むクラスタシステムにおけるノード切り替え方法であって、
    前記複数のクライアントノード装置の各々は、前記複数のサーバノード装置のうち第1のサーバノード装置に対して業務処理要求を送信し、該第1のサーバノード装置から業務処理応答を受信しなければ、第2のサーバノード装置に対して異常検知情報を送信し、
    前記第2のサーバノード装置は、2つ以上のクライアントノード装置から前記異常検知情報を受信したときに、前記第1のサーバノード装置に異常が発生したものと判断して、業務処理を行うサーバノード装置の切り替え制御を開始し、前記第1のサーバノード装置内のアクティブ業務プロセスと他のサーバノード装置内のスタンバイ業務プロセスを含む業務グループが、該第1のサーバノード装置と他のサーバノード装置を含むノードグループにいくつ割り当てられているかをチェックし、複数の業務グループが該ノードグループに割り当てられており、かつ、該複数の業務グループのうち所定数以上の業務グループについて該第1のサーバノード装置に異常が発生したものと判断した場合は、ノード単位の切り替えを実行することを特徴とするノード切り替え方法。
JP2009501033A 2007-02-28 2007-02-28 クラスタシステムおよびノード切り替え方法 Expired - Fee Related JP4695705B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/000147 WO2008105031A1 (ja) 2007-02-28 2007-02-28 クラスタシステムおよびノード切り替え方法

Publications (2)

Publication Number Publication Date
JPWO2008105031A1 JPWO2008105031A1 (ja) 2010-06-03
JP4695705B2 true JP4695705B2 (ja) 2011-06-08

Family

ID=39720882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009501033A Expired - Fee Related JP4695705B2 (ja) 2007-02-28 2007-02-28 クラスタシステムおよびノード切り替え方法

Country Status (3)

Country Link
US (1) US8051321B2 (ja)
JP (1) JP4695705B2 (ja)
WO (1) WO2008105031A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8594069B2 (en) * 2007-08-06 2013-11-26 Qualcomm Incorporated In-order data delivery during handover in a wireless communication system
WO2009133819A1 (ja) * 2008-04-30 2009-11-05 パナソニック電工株式会社 機器管理システム
JP5501630B2 (ja) * 2009-02-12 2014-05-28 三菱電機株式会社 構成制御システム
JP5403406B2 (ja) * 2009-04-30 2014-01-29 富士ゼロックス株式会社 印刷システム
US8825842B2 (en) * 2011-04-28 2014-09-02 Facebook, Inc. Managing notifications pushed to user devices
JP6309711B2 (ja) * 2013-03-15 2018-04-11 株式会社三菱東京Ufj銀行 プロセス監視プログラム及びプロセス監視システム
JP6217189B2 (ja) * 2013-07-04 2017-10-25 富士通株式会社 無線通信装置、無線通信方法、無線通信プログラムおよび無線通信システム
JP6282536B2 (ja) * 2014-06-18 2018-02-21 株式会社Nttドコモ データベースシステム及び運用切替方法
US20160090300A1 (en) * 2014-09-30 2016-03-31 Invensense, Inc. Piezoelectric microphone with integrated cmos
US9836368B2 (en) * 2015-10-22 2017-12-05 Netapp, Inc. Implementing automatic switchover
CN106685676B (zh) * 2015-11-06 2020-02-11 中国移动通信集团浙江有限公司 一种节点切换方法及装置
CN116248748A (zh) * 2023-02-27 2023-06-09 西安奕斯伟材料科技股份有限公司 一种通讯连接方法、装置、设备、介质及产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04141744A (ja) * 1990-10-02 1992-05-15 Fujitsu Ltd 仮想計算機のホットスタンバイ制御システム
JPH0575637A (ja) * 1991-09-18 1993-03-26 Hitachi Ltd ネームサーバー制御方式
JPH09293059A (ja) * 1996-04-25 1997-11-11 Hitachi Ltd 分散システム及びその運用管理方法
JP2000330814A (ja) * 1999-05-19 2000-11-30 Toshiba Corp 二重化サーバシステム
JP2006285532A (ja) * 2005-03-31 2006-10-19 Fujitsu Frontech Ltd サービス提供方法、及びデータ処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934852A (ja) 1995-07-13 1997-02-07 Nec Corp クラスタシステム
US6886035B2 (en) * 1996-08-02 2005-04-26 Hewlett-Packard Development Company, L.P. Dynamic load balancing of a network of client and server computer
US7409420B2 (en) * 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US6910078B1 (en) * 2001-11-15 2005-06-21 Cisco Technology, Inc. Methods and apparatus for controlling the transmission of stream data
US20040153709A1 (en) * 2002-07-03 2004-08-05 Burton-Krahn Noel Morgen Method and apparatus for providing transparent fault tolerance within an application server environment
JP2004334534A (ja) 2003-05-07 2004-11-25 Nec Corp クラスタシステム管理装置、クラスタシステム管理方法、クラスタシステム管理プログラム、クラスタシステム
JP4144882B2 (ja) 2004-05-14 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報システム、プロキシ処理方法、及びプログラムと記録媒体
US7870416B2 (en) * 2005-02-07 2011-01-11 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US7827262B2 (en) * 2005-07-14 2010-11-02 Cisco Technology, Inc. Approach for managing state information by a group of servers that services a group of clients

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04141744A (ja) * 1990-10-02 1992-05-15 Fujitsu Ltd 仮想計算機のホットスタンバイ制御システム
JPH0575637A (ja) * 1991-09-18 1993-03-26 Hitachi Ltd ネームサーバー制御方式
JPH09293059A (ja) * 1996-04-25 1997-11-11 Hitachi Ltd 分散システム及びその運用管理方法
JP2000330814A (ja) * 1999-05-19 2000-11-30 Toshiba Corp 二重化サーバシステム
JP2006285532A (ja) * 2005-03-31 2006-10-19 Fujitsu Frontech Ltd サービス提供方法、及びデータ処理装置

Also Published As

Publication number Publication date
US20100017646A1 (en) 2010-01-21
US8051321B2 (en) 2011-11-01
JPWO2008105031A1 (ja) 2010-06-03
WO2008105031A1 (ja) 2008-09-04

Similar Documents

Publication Publication Date Title
JP4695705B2 (ja) クラスタシステムおよびノード切り替え方法
EP2691859B1 (en) Fault detection and recovery as a service
CN106330475B (zh) 一种通信系统中管理主备节点的方法和装置及高可用集群
JPH10200552A (ja) イーサネット通信を用いた冗長方法
US20080288812A1 (en) Cluster system and an error recovery method thereof
JP2010541413A (ja) ネットワーク競合防止装置およびネットワーク競合防止方法
CN107508694B (zh) 一种集群内的节点管理方法及节点设备
EP2637102B1 (en) Cluster system with network node failover
US11748217B2 (en) Method for failure detection and role selection in a network of redundant processes
WO2019049433A1 (ja) クラスタシステム、クラスタシステムの制御方法、サーバ装置、制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
JP5613119B2 (ja) マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム
JP2011203941A (ja) 情報処理装置、監視方法、および監視プログラム
JP4806382B2 (ja) 冗長化システム
JP6134720B2 (ja) 接続方法
JPH07168790A (ja) 情報処理装置
JP3248485B2 (ja) クラスタシステム、クラスタシステムにおける監視方式およびその方法
JP2009110218A (ja) 仮想化スイッチおよびそれを用いたコンピュータシステム
JP2009026182A (ja) プログラム実行システム及び実行装置
JP4863984B2 (ja) 監視処理プログラム、方法及び装置
JP2004007930A (ja) 電力系統監視制御システムおよびプログラム
JP6935819B2 (ja) ノード装置、回復動作制御方法、及び回復動作制御プログラム
JP5763030B2 (ja) 二重化ネットワーク制御システムおよび二重化ネットワーク制御方法
US11947431B1 (en) Replication data facility failure detection and failover automation
JPH05304528A (ja) 多重化通信ノード
JP5082147B2 (ja) マルチノードシステム、ノード間スイッチ及びデータ中継方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100506

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110126

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110131

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: 20110222

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: 20110225

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

Free format text: PAYMENT UNTIL: 20140304

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4695705

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees