JP4505763B2 - ノードクラスタの管理 - Google Patents

ノードクラスタの管理 Download PDF

Info

Publication number
JP4505763B2
JP4505763B2 JP2008014976A JP2008014976A JP4505763B2 JP 4505763 B2 JP4505763 B2 JP 4505763B2 JP 2008014976 A JP2008014976 A JP 2008014976A JP 2008014976 A JP2008014976 A JP 2008014976A JP 4505763 B2 JP4505763 B2 JP 4505763B2
Authority
JP
Japan
Prior art keywords
cluster
nodes
arbitration device
failure
vote
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
JP2008014976A
Other languages
English (en)
Other versions
JP2008192139A (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.)
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 JP2008192139A publication Critical patent/JP2008192139A/ja
Application granted granted Critical
Publication of JP4505763B2 publication Critical patent/JP4505763B2/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/2046Error 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 where the redundant components share persistent storage
    • 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/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media

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)

Description

本発明は、ノードクラスタの管理に関する。
クラスタは、データ及び他のシステム資源を共有することができる相互接続された処理デバイスのグループであり、たとえば、コンピュータ又はサーバのグループである。クラスタの各デバイスは、ノード又はクラスタメンバーとも呼ばれ、1つ又は2つ以上の共有アプリケーションを実行するように構成することができ、その結果、これらのアプリケーションに関して、複数のノードのネットワークは、単一ノードのネットワークよりも信頼性が増加している。クラスタマネージャは、クラスタが可能な最大範囲まで動作できる状態を維持すると共に、共有データの完全性を危険にさらす可能性のある状況を防止することを確実にする目的で、クラスタを制御するのに使用され、そのインスタンスは、各クラスタメンバー上で実行される。
単一インスタンスクラスタアプリケーションは、一時に1つのクラスタメンバー上しか実行されない。このタイプのアプリケーションの可用性を高くするために、クラスタマネージャは、現在のメンバーがアプリケーションをもはや実行できない場合に、別のクラスタメンバー上でアプリケーションを開始するためのメカニズムを提供する。マルチインスタンスアプリケーションは、同時に複数のクラスタメンバー上で実行することができる。マルチインスタンスアプリケーションは、その名の通り、1つのクラスタメンバーの故障が、他のメンバー上で実行されているアプリケーションのインスタンスに影響を与えないので、高い可用性を有する。
既知のクラスタ配置に関する1つの問題は、たとえばノード間通信リンクの故障によってクラスタパーティションが行われると、ノードの複数のサブグループが形成される可能性があり、各サブグループが、元のクラスタと同じ外部識別情報を有する新しいクラスタの再形成を試みることである。これは、たとえば、2つ以上のサブグループが同じ単一インスタンスアプリケーションの実行を試みると、共有データの完全性にとって深刻な結果を有する可能性がある。
データ完全性を保証するために、どのサブグループが新しいクラスタを形成するのかを決定して、残りのサブグループがクラスタを形成するのを防止する投票方式を動作させるクラスタマネージャが開発されている。各サブグループに票が割り当てられ、票はサブグループのノードの個数に基づいている。新しいクラスタを形成するために必要な票数は、取得「定足数」(obtaining "quorum")と呼ばれ、一般に、最大のサブグループ(複数可)しかクラスタを再形成することができないように、利用可能な元の票の少なくとも半分であることが必要とされる。「スプリットブレイン」シナリオと呼ばれる、2つのサブグループが等しい票を有する状況をうまく処理するために、調停デバイスが設けられる。調停デバイスの一例は、クラスタのすべてのノードに接続されたクォーラムサーバである。クォーラムサーバは、1票を有する仮想クラスタメンバーとして機能する。したがって、2つの等しいサイズのサブグループへのクラスタパーティションに続いて、クォーラムサーバは、自身の票をそれらのサブグループの一方に割り当て、それによって、そのサブグループは、定足数を達成してクラスタを再形成することが可能になる一方、他方のグループは、定足数を与えられず、クラスタを開始することができない。
しかしながら、クォーラムサーバを有する配置であっても、クラスタがサブグループによって再形成されるようにするには、サブグループが、元のクラスタに存在していたノードの少なくとも半数で構成されることが、依然として必要とされる。これは、或るノードのグループがクラスタの残りのノード及びクォーラムサーバから分離された場合に、そのグループが、明らかに過半数のノードを有しない限りクラスタを再形成することができず、したがって、複数のサブグループが形成されることを回避することを確実にするためである。
したがって、従来のクラスタ配置では、たとえば、1つ又は2つ以上の故障の結果として、クラスタが3つ以上のサブグループにパーティショニングされる場合といった、クラスタの存続が必要でない場合に、クラスタの存続が妨げられる可能性がある。したがって、従来のシステムでは、データ完全性を維持するために、高いクラスタ可用性が妥協される場合がある。
本発明は、上述した背景からなされたものであって、ノードクラスタの管理のための方法およびシステムを提供することを目的とする。
本発明の一形態は、ノードのクラスタを管理する方法であって、前記クラスタはノードの複数のグループを含み、前記ノードはそれぞれ票に関連付けられ、前記複数のグループはそれぞれ調停デバイスと通信し、前記調停デバイスは、前記クラスタのノードの個数に応じた複数の票に関連付けられ、前記方法は、前記複数のグループのそれぞれについて、そのグループに関連付けられている前記票に、前記調停デバイスに関連付けられている前記票を加えることと、前記ノードの前記複数のグループのいずれが最大票数を有するかを判断することと、前記最大票数を有するグループを前記クラスタとして機能するように選任することとを含む。
次に、この発明の実施形態を、添付図面を参照して、例として説明することにする。
図1を参照すると、本発明によるクラスタ1は、相互接続された第1のネットワークハブ3a及び第2のネットワークハブ3bを介して相互接続された第1のサーバ2a、第2のサーバ2b、第3のサーバ2c、及び第4のサーバ2dを含む。これらのサーバは、本明細書ではノード又はクラスタメンバーとも呼ばれる。第1のサーバ2a及び第2のサーバ2bは、第1のハブ3aに接続され、第3のサーバ2c及び第4のサーバ2dは、第2のハブ3bに接続されている。第1のネットワークハブ3a及び第2のネットワークハブ3bは、通信リンク3cを介して相互接続されている。各ノード2a、2b、2c、2dは、それらノードのハブ3a、3bへの接続を可能にするための各ネットワークアダプタ4a、4b、4c、4dと、共有ストレージバス5に接続するためのポート(図示せず)とを備える。共有ストレージバス5には、クォーラムディスク6が接続されている。ノード2a〜2dは、各通信リンク7a〜7dを介してそれらの各ハブ3a、3bに接続されている。
本例では、ポートは、小規模コンピュータシステムインターフェース(SCSI)ポートであり、共有ストレージバス5は、サーバ2a〜2dとクォーラムディスク6との間のSCSI接続を提供する。クォーラムディスクは、本例では、ハードウェアベースの安価なディスクの冗長アレイ(RAID)である。ただし、たとえばファイバチャネルベースのディスクを含む、他のストレージを使用することができ、たとえば、ソフトウェアベースのRAIDシステム又はSCSIプロトコルを処理できる任意のハードディスクドライブを使用することができる。
SCSIプロトコルは、ホストシステムに対するSCSIインターフェースの故障及びデータパスの故障等の異なる種類の接続故障を区別できるセンスキーを提供する。
第1のサーバ2a、第2のサーバ2b、第3のサーバ2c、第4のサーバ2dは、それらの各機能を遂行するのに必要なハードウェア、オペレーティングシステムソフトウェア、及びアプリケーションソフトウェアのすべてを有する従来の市販のサーバであることが理解されよう。
第1のサーバ2a、第2のサーバ2b、第3のサーバ2c、及び第4のサーバ2dのそれぞれは、自身のメモリに、クラスタ1を制御するためのクラスタマネージャアプリケーションのインスタンス8a〜8dを記憶している。
クラスタマネージャが、クラスタが存続できるか否かを判断し、クラスタを再形成できるサブグループ間を調停する投票方式は、或るクラスタによって獲得された現在の票Cがそのクラスタについて定義された定足数票Q以上であることを必要とする。本例では、クラスタの各ノードには、1ノード票が割り当てられる。ノード票の総数Vnは、クラスタのノードの個数Nに等しくされる。クォーラムディスクには、N−1票Vqが割り当てられる。したがって、或る特定のクラスタについて予測票Eは、
Figure 0004505763
となる。定足数票Qは、
Figure 0004505763
として定義される。ここで、関数「round_down」は、端数が切り捨てられて最も近い整数にされた結果を返す。
したがって、クォーラムディスクにアクセスできる単一のノードであっても、他のN−1個のノードがダウンしている場合に、定足数を達成してクラスタを形成することができる。その理由は、Q=N及びクォーラムディスク票Vq=N−1であり、その結果、現在の票C=1+(N−1)=Nであり、これは、必要な定足数に等しいからである。
図2は、クラスタ1の現在の票Cの数に変化が検出された後に、本発明によるクラスタマネージャによって遂行されるステップを示すフロー図である。
一般的には、ノード及びクォーラムディスクは、全体のオペレーションの参加エンティティである。参加エンティティ間では、クラスタの健全性を判断するメッセージの定期的交換が行われる。或るエンティティからのメッセージが受信できなくなった後に、クラスタの再構築が行われる。この全体のプロセスの一部として、クラスタサブグループの現在の状態が判断され、これに基づいて、さまざまなサブグループの中から1つの機能するクラスタを作成する適切な決定が行われる。
クラスタ1の各ノード2a〜2dは、ノード2a〜2d間で送信される一連のハートビートメッセージと、ノード2a〜2dによってクォーラムディスク6に記憶されたフラグ及び他の情報とを介して、クラスタの他のノードの個数及びステータスを絶えず監視する。したがって、各ノードは、予測票Eの数を求めることができ、したがって、定足数票Qを求めることができ、さらに、クラスタ1の現在の票Cを求めることができる。
また、クォーラムディスク6は、ノード2a〜2dによって提供される、クラスタ1の予測票Eの数及び現在の票Cの数も記憶し、それらのノードがこれらの値に確実に同意できるようにする。
予測票Eの数は、クォーラムディスクが故障していることが確実に判断されない限り変更されない。
したがって、各ノード2a〜2dは、そのノード上で実行されているクラスタマネージャの制御の下、現在の票Cの数の減少が発生する時を求めることができる(ステップs101)。この減少は故障を示すものである。この場合、クラスタの活動は一時停止され、クラスタの再構築手順がトリガされる(ステップs102)。
故障のタイプには主に2つのタイプがある。第1のタイプは、たとえば、ノードのカーネルのハング若しくは完全なカーネル故障、又は、任意の個数の他のクラスタ通信故障、ハードウェア故障、若しくはソフトウェア故障の結果としてのリンク又はノードの故障を含む。
たとえば、図1に示すシステムでは、故障は、第1のネットワークハブ3aと第2のネットワークハブ3bとを相互接続する通信リンク3cの故障の場合がある。この故障の結果、クラスタ1は、第1のサーバ2a及び第2のサーバ2bを含む第1のサブグループと、第3のサーバ2c及び第4のサーバ2dを含む第2のサブグループとにパーティショニングされる。
別の例として、故障は、第2のハブ3bと第4のノード2dとの間のリンク7dの故障の場合がある。この故障の結果、クラスタ1は、第1のサーバ2a、第2のサーバ2b、及び第3のサーバ2cを含む第1のサブグループと、第4のサーバ2dのみを含む第2のサブグループとにパーティショニングされる。
これらの代替的な例は、以下でさらに詳細に検討することにする。
第2の主なタイプの故障は、クォーラムディスクの故障である。この故障は、さらに2つのサブタイプを有する。第1のサブタイプでは、クォーラムディスクが故障したことが確実に判明している。第2のサブタイプでは、クォーラムディスクの明らかな故障はあるが、クォーラムディスクが故障したことが確実に判明していない。たとえば、クォーラムディスクへのリンク5が故障している場合である。
サブグループ30の各ノード2a〜2dとクォーラムディスク6との間のSCSI接続5のおかげで、各ノード2a〜2dは、クォーラムディスク6が故障しているか否かを判断することができ、あるいは、クォーラムディスク6との通信パス5が故障しているか否かを判断することができる。図2のフローチャートに戻って、まず、クォーラムディスク6が故障しているか否かが判断される(ステップS103)。クォーラムディスク6が故障していない場合、クォーラムディスクとの通信パス5が故障しているか否かが判断される(ステップS104)。
検出された故障がタイプ1である場合、換言すれば、クォーラムディスクの故障もクォーラムパスの故障もない場合、これは、クォーラムディスク6との通信の故障ではなく、クラスタ1のノードの数の変化の結果として、現在のクラスタ票Cが変化していることを示すものである。
図3は、1つ又は2つ以上の故障が発生したシステムの一般的な場合を示す図である。システムは、複数のサブグループ10a〜10nにパーティショニングされ、各サブグループは、複数のノード11a〜11n、12a〜12n、及び13a〜13nをそれぞれ有する。これらのノードのすべては、別個にクォーラムディスク6と通信を続ける。この場合、ノード11a〜11nの第1のグループ上で実行されているクラスタマネージャは、複数のサブグループへのクラスタパーティションが起こっている可能性があると判断し、したがって、どのサブグループ10a〜10nがクラスタ1を再形成すべきであるのかを判断するために調停が必要とされると判断する。第1のサブグループのノード11a〜11n上で実行されているクラスタマネージャアプリケーションは、共に、それらノードのサブグループ10aの或るノードを、そのサブグループ10aのグループリーダとして選任するか、又は、グループリーダが事前に選任されている場合には、どのノードが現在のグループリーダであるのかを判断する(ステップ106)。たとえば、故障を検出したノードがグループリーダになる。
他のサブグループにおいても対応するステップが行われ、各サブグループ10a〜10nのグループリーダは、そのサブグループに割り当てられた現在の票Cをクォーラムディスク6上に公表し(ステップS107)、クォーラムディスク6上で他のサブグループにより公表された結果をチェックし(ステップS108)、それらサブグループのそれぞれの現在の票Cが、そのサブグループがクラスタを形成するのに十分であるか否かを判断する(ステップS109)。十分である場合、そのサブグループは、クラスタの活動を再開し(ステップS110)、プロセスがステップS101から再び開始される。他方、サブグループ10a〜10nが、クラスタステータスを獲得できない場合、サブグループ30のノード11a〜11nは、定足数が獲得されるようになるまで、すべてのクラスタ活動の一時停止を継続する(ステップS105)。クォーラムディスクパスの故障が、ステップs104で検出された場合、1つ又は2つ以上のサブグループ11a〜11nは、クォーラム票Vqをもはや有しない。この場合、クォーラムディスク6はまだ動作可能であるので、残りのサブグループの1つは、まだクラスタステータスを獲得できる場合がある。この場合、クォーラムディスクパスの故障による影響を受けるノードは、たとえばパスの修復が実行されるとすぐに、定足数を達成できるまで、一時停止の状態を維持する(ステップS105)。
クラスタステータスが獲得されているか否かを判断するための手順(ステップs109)を、図4を参照してより詳細に説明し、上述したリンクの故障の例を示す図5及び図6を参照してさらに例示する。
上記で言及した第1の例を図5に示す。図5では、リンク3cの故障の結果として、2つのサブグループ30、31が、それぞれ、クォーラムディスクとの通信を維持している。この場合、ノード2a及び2cがグループリーダとして指名されたものと仮定すると、各サブグループのグループリーダノードのクラスタマネージャ8a、8cは、一時的に、クォーラムディスク票Vqを、クォーラムディスク上に公表されている各サブグループの票に加える(ステップs120)。
この場合、通信故障前のクラスタ1のノードの個数Nは4であり、したがって、予測クラスタ票Eは7(NにVqをプラスしたもの)である。ここで、クォーラムディスクには3票(Vq)が割り当てられ、定足数票Qの数は4である。通信故障前の現在の票C(ノード票+クォーラムディスク票)は7であり、通信故障後には、第1のサブグループ及び第2のサブグループのそれぞれの現在の票Cは5に減少する。
その結果、この例では、クォーラムディスク票を各サブグループのノード票の合計に加えた結果、各グループの票は合計5票になる。各サブグループのクラスタマネージャは、この票の数が定足数票Qを超えるか否かを判断する(ステップs121)。超えない場合には、そのサブグループは、クラスタを形成することができない(図2のステップs105)。超える場合には、各サブグループのクラスタマネージャは、その票の数を、他のサブグループの票の数と比較する(ステップs122)。各サブグループのクラスタマネージャは、他のどのサブグループよりも多くの票を有する場合には、クラスタを形成し(ステップs123)、クラスタの活動を再開する(ステップs110)。各サブグループのクラスタマネージャが有する票が、別のサブグループよりも少ない場合には、ノードは一時停止の状態を維持する(図2のステップs105)。
各サブグループのクラスタマネージャは、別のサブグループと同じ票の数(この数は最も大きな票の数である)を有する場合には、自身のアルゴリズムに基づいて、どのグループを選択するかを決定し、このグループを選択し(ステップs124)、クラスタの活動を再開する(ステップs110)。1つの簡単なアルゴリズムは、最初に公表したサブグループが選択されるものである。
しかしながら、この選択を行うのに、他のアルゴリズムを使用することもできる。
図5に示す例では、双方のサブグループが定足数票Qの数を超える。また、双方のサブグループは、等しい票を有する。その結果、これらのサブグループのいずれも、クラスタを形成するように選択することができる。
図6に示す第2の例に上記アルゴリズムを適用すると、一方のサブグループ40は3つのノードを有する一方、他方のサブグループ41は1つのノードしか有しない。同じ手順が上述のように適用され、3票が第1のサブグループに加えられ、3票が第2のサブグループに加えられ、それぞれ定足数が与えられる。しかしながら、第2のサブグループに4票(1ノード票+Vq)しか有しないのとは対照的に、第1のサブグループは、合計6票(3つのノード票+Vq)を有する。その結果、第1ノードサブグループはクラスタを形成する一方、第2のサブグループはシャットダウンする。
図7は、第1ノードサブグループ50とクォーラムディスク6との間にパス故障がある第3の例を示している。図2を参照すると、この例では、現在の票の変化が検出された後、ステップs104において、クォーラムパスの故障があるものと判断される。グループリーダが、サブグループごとに再び選任され(ステップs116)、各サブグループのクラスタマネージャは、現在の票がクォーラムと等しいか、又はクォーラムを超えるか否かを判断する(ステップs117)。クォーラムディスクの故障ではなく、クォーラムディスクパスの故障しかないので、サブグループのうちの1つは、定足数を獲得してクラスタを形成できる可能性がある。したがって、予測票又は定足数票を調整する必要はない。
この例では、定足数は4であり、第1のサブグループ50の現在の票は、ノード票のみ、すなわち3票を含む。これは、必要とされる定足数よりも少なく、その結果、第1のサブグループ50は、クラスタを形成することができず、第1のサブグループのノードは、一時停止の状態を維持する(ステップs105)。第1のサブグループは、たとえクォーラムディスクとの通信がもはやなかったとしても、元のクラスタからのノードのすべてを保持する場合にはクラスタを形成することができる。
単一のノードを含む第2のサブグループ51の場合、現在の票は、単一のノード票及び3票のクォーラムディスク票を含み、合計4票を含む。したがって、現在の票は、必要とされる定足数を満たす。したがって、この単一のノードは、クラスタを形成することができる。
図1及び図2を再び参照して、ステップS103において、クォーラムディスクの故障が検出された場合、これは、たとえクラスタ1がパーティショニングされても、他のサブグループにはクォーラムディスク票Vqが割り当てられないことを第1のサブグループのクラスタマネージャに示す。したがって、予測票E及び定足数票Qは、クォーラムディスク票Vqがもはや利用可能でないことを考慮するように調整される(ステップS111)。したがって、予測票Eは、
Figure 0004505763
となり、定足数票Qは、
Figure 0004505763
となる。
次に、サブグループにおいて利用可能な現在の票Cが定足数票Q以上であるか否かが判断される(ステップS112)。そうである場合、クラスタの活動を再開することができる(ステップS113)。そうでない場合、現在の票が、クラスタ1が定足数を有するのに十分となるまで、クラスタの活動は一時停止を継続する。本例では、クラスタの活動は一時停止を継続する。
たとえば、システムオペレータによる障害のあるクォーラムディスク6の修復又は取り替えの結果として、(ステップS114で判断されるように)クォーラムディスク6が再び動作すると、票調整プロセスがクラスタマネージャによって行われ、クォーラムディスク票Vqを含むように予測票Eの数及び定足数票Qの数が増加される(ステップS115)。
プロセスは、その後、ステップS101から再び開始される。
したがって、本発明の実施形態は、調停デバイスとの通信の故障の原因を求めることができる方法を提供する。その原因に応じて、ノードのサブグループがクラスタを再構築しようとすることを可能にする手順が適用され、これによって、選択されたサブグループが、自身がクラスタを形成する唯一のサブグループであることを知ってクラスタを確実に形成できるようになるだけでなく、単一のノードしか含まないサブグループが適切な状況でクラスタを形成することも可能になる。
本発明の一実施形態によるクラスタ配置を示す図である。 この発明の実施形態によるクラスタマネージャによって遂行される手順を示すフロー図である。 1つ又は2つ以上の故障によって複数のクラスタサブグループの形成が引き起こされた後のクラスタ配置を示す図である。 クラスタステータスが獲得されているか否かを判断するための手順の態様をより詳細に示すフロー図である。 リンクの故障によって等しい個数のノードを有する2つのサブグループの作成が引き起こされた後の図1のクラスタ配置を示す図である。 リンクの故障によって等しくない個数のノードを有する2つのサブグループの作成が引き起こされた後の図1のクラスタ配置を示す図である。 リンクの故障によって等しくない個数のノードを有する2つのサブグループの作成が引き起こされ、且つ、第1のサブグループがクォーラムディスクへのリンクの故障を受けた後の図1のクラスタ配置を示す図である。
符号の説明
1・・・クラスタ
2a・・・サーバ
2b・・・サーバ
2c・・・サーバ
2d・・・サーバ
3a・・・ハブ
3b・・・ハブ
4a・・・ネットワークアダプタ
4b・・・ネットワークアダプタ
4c・・・ネットワークアダプタ
4d・・・ネットワークアダプタ
5・・・共有ストレージバス
6・・・クォーラムディスク
7a・・・通信リンク
7b・・・通信リンク
7c・・・通信リンク
7d・・・通信リンク
8a・・・クラスタマネージャ
8b・・・クラスタマネージャ
8c・・・クラスタマネージャ
8d・・・クラスタマネージャ
10a−n・・・サブグループ
11a−n・・・ノード
12a−n・・・ノード
13a−n・・・ノード
30・・・サブグループ
31・・・サブグループ
40・・・サブグループ
41・・・サブグループ
50・・・サブグループ
51・・・サブグループ

Claims (12)

  1. ノードのクラスタを管理する方法であって、前記クラスタの少なくとも1つのノードが、前記クラスタの形成においてノード間の衝突を解決することに使用するための調停デバイスに通信パスを介して接続可能であり、前記方法は、
    前記少なくとも1つのノードと前記調停デバイスとの間の通信の故障を検出することと、
    前記故障が前記通信パスの故障であるのか否かを判断することと
    前記故障が前記通信パスの故障である場合に、前記故障の結果として形成されたノードのサブグループのそれぞれに関連付けられている票の数が所定のしきい値に達しているか否かを判断すること
    を含み、
    前記調停デバイスにアクセスできないノードの前記サブグループに関連付けられている前記票の数は、前記調停デバイスに関連付けられている票を含まず、
    前記調停デバイスにアクセスできるノードの前記サブグループに関連付けられている前記票の数は、前記調停デバイスに関連付けられている票を含む
    方法。
  2. 前記数が前記所定のしきい値に達していないとき、前記ノードの前記サブグループの前記少なくとも1つのノードの1つ又は2つ以上の活動を一時停止すること
    を含む
    請求項に記載の方法。
  3. ノードのクラスタを管理する方法であって、前記クラスタの少なくとも1つのノードが、前記クラスタの形成においてノード間の衝突を解決することに使用するための調停デバイスに通信パスを介して接続可能であり、前記クラスタは、前記調停デバイスに関連付けられている値を含むしきい値に関連付けられ、前記方法は、
    前記少なくとも1つのノードと前記調停デバイスとの間の通信の故障を検出することと、
    前記故障が前記調停デバイスの故障であるのか否かを判断することと、
    前記故障が前記調停デバイスの故障であるとの判断に応答して、前記調停デバイスに関連付けられている前記値を除外することによって前記しきい値を調整すること
    を含む方法。
  4. 前記故障後に、前記クラスタのノードの個数を求めることと、
    前記故障後に、前記クラスタのノードの前記求められた個数に応じた値を前記クラスタに割り当てることと、
    前記割り当てられた値を前記調整されたしきい値と比較することと
    をさらに含む
    請求項に記載の方法。
  5. 前記割り当てられた値が前記調整されたしきい値以上である場合に、前記クラスタのオペレーションを再開すること
    をさらに含む
    請求項に記載の方法。
  6. 前記調停デバイスが動作可能になった場合に、前記しきい値を調整し、前記調停デバイスに関連付けられている前記値を考慮することを含む
    請求項3〜5のいずれか1項に記載の方法。
  7. 前記調停デバイスは、クォーラムディスクを備え、前記しきい値は、前記クラスタを形成するのに必要なノードの個数を求める定足数値を含む
    請求項3〜6のいずれか1項に記載の方法。
  8. 前記故障の結果、前記クラスタは複数のサブグループにパーティショニングされ、前記複数のサブグループのそれぞれは前記調停デバイスと通信する
    請求項1〜7のいずれか1項に記載の方法。
  9. 前記サブグループの前記ノードの1つは、前記サブグループの前記現在の票が前記サブグループのすべてに対してアクセス可能になるように、前記現在の票を前記調停デバイスへ送信する
    請求項に記載の方法。
  10. 前記複数のサブグループのそれぞれは、自身が前記クラスタとして動作すべきか否かを、他のサブグループの前記現在の票から判断する
    請求項に記載のノードの方法。
  11. 前記クォーラムディスクに関連付けられている票を、前記複数のサブグループのそれぞれに関連付けられている前記票に加え、前記複数のサブグループのいずれが前記クラスタとして動作するのかを判断することを含む
    請求項10に記載の方法。
  12. ノードのクラスタを管理するシステムであって、前記クラスタはノードの複数のグループを含み、前記ノードはそれぞれ票に関連付けられ、前記システムは調停デバイスをさらに備え、前記調停デバイスは、前記クラスタのノードの個数に応じた複数の票に関連付けられ、前記ノードはそれぞれクラスタマネージャにさらに関連付けられ、前記複数のグループのそれぞれの前記クラスタマネージャのうちの1つは、
    そのグループが前記調停デバイスと通信している場合には、そのグループが、前記調停デバイスの前記票を含めて、最大票数を有するか否かを判断する第1の判断手段と、
    前記調停デバイスが動作しているが、そのグループが前記調停デバイスと通信していない場合には、そのグループが、前記定足数を調整することなく前記定足数を満たすか否かを判断する第2の判断手段であって、前記調停デバイスにアクセスできないグループに関連付けられている前記票の数は、前記調停デバイスに関連付けられている票を含まず、前記調停デバイスにアクセスできるノードの前記サブグループに関連付けられている前記票の数は、前記調停デバイスに関連付けられている票を含む、第2の判断手段と、
    前記調停デバイスが動作していない場合には、前記調停デバイスに関連付けられている前記票を除外することによって前記定足数を調整し、前記定足数を調整した後に、そのグループが、前記定足数を満たすか否かを判断する第3の判断手段と
    を有するシステム。
JP2008014976A 2007-01-31 2008-01-25 ノードクラスタの管理 Expired - Fee Related JP4505763B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IN210CH2007 2007-01-31

Publications (2)

Publication Number Publication Date
JP2008192139A JP2008192139A (ja) 2008-08-21
JP4505763B2 true JP4505763B2 (ja) 2010-07-21

Family

ID=39669318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008014976A Expired - Fee Related JP4505763B2 (ja) 2007-01-31 2008-01-25 ノードクラスタの管理

Country Status (2)

Country Link
US (1) US7840833B2 (ja)
JP (1) JP4505763B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7838466B2 (en) 1998-02-11 2010-11-23 The Regents Of The University Of Michigan Device for chemical and biochemical reactions using photo-generated reagents

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024432B1 (en) * 2008-06-27 2011-09-20 Symantec Corporation Method and apparatus for partitioning a computer cluster through coordination point devices
JP5377898B2 (ja) * 2008-07-10 2013-12-25 株式会社日立製作所 クラスタリングを構成する計算機システムの系切替方法、及びシステム
KR101042908B1 (ko) * 2009-02-12 2011-06-21 엔에이치엔(주) 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체
JP5732726B2 (ja) * 2010-02-22 2015-06-10 日本電気株式会社 情報処理システム、情報処理システムの動作方法、および、プログラム
JP5016696B2 (ja) * 2010-03-05 2012-09-05 日本電信電話株式会社 高可用性システム、サーバ、高可用性維持方法及びプログラム
US8108715B1 (en) * 2010-07-02 2012-01-31 Symantec Corporation Systems and methods for resolving split-brain scenarios in computer clusters
US8726274B2 (en) * 2010-09-10 2014-05-13 International Business Machines Corporation Registration and initialization of cluster-aware virtual input/output server nodes
US8578204B1 (en) * 2010-12-29 2013-11-05 Emc Corporation Witness facility for distributed storage system
US8949828B2 (en) 2011-01-11 2015-02-03 International Business Machines Corporation Single point, scalable data synchronization for management of a virtual input/output server cluster
US10169097B2 (en) * 2012-01-23 2019-01-01 Microsoft Technology Licensing, Llc Dynamic quorum for distributed systems
US8650281B1 (en) * 2012-02-01 2014-02-11 Symantec Corporation Intelligent arbitration servers for network partition arbitration
US20140075170A1 (en) * 2012-09-12 2014-03-13 International Business Machines Corporation Automated firmware voting to enable multi-enclosure federated systems
CN102904946B (zh) * 2012-09-29 2015-06-10 浪潮(北京)电子信息产业有限公司 集群内节点管理方法和装置
US9146794B2 (en) 2012-10-01 2015-09-29 Microsoft Technology Licensing, Llc Enhanced arbitration protocol for nodes in a cluster
FR3003052B1 (fr) * 2013-03-05 2015-03-06 Bull Sas Procede et dispositif de gestion de quorums de nœuds de groupes a haute disponibilite d'un calculateur haute performance
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US9672115B2 (en) * 2013-08-26 2017-06-06 Vmware, Inc. Partition tolerance in cluster membership management
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
WO2016108945A1 (en) * 2014-12-30 2016-07-07 Hewlett Packard Enterprise Development Lp Cluster arbitration
WO2016106682A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统
US10346063B2 (en) * 2016-11-18 2019-07-09 Vmware, Inc. Maintaining quorum of storage objects in nested levels of a distributed storage system
US10826812B2 (en) 2018-10-07 2020-11-03 Hewlett Packard Enterprise Development Lp Multiple quorum witness
RU2744591C2 (ru) * 2019-05-31 2021-03-11 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Способ и система управления связями компьютеров в многоуровневом составном компьютерном кластере
US11144374B2 (en) 2019-09-20 2021-10-12 Hewlett Packard Enterprise Development Lp Data availability in a constrained deployment of a high-availability system in the presence of pending faults
US11722589B2 (en) * 2020-04-08 2023-08-08 Huawei Technologies Co., Ltd. Rapid ledger consensus system and method for distributed wireless networks
US11210187B1 (en) * 2020-06-30 2021-12-28 Oracle International Corporation Computer cluster with adaptive quorum rules
US11487635B2 (en) * 2020-11-20 2022-11-01 Netapp Inc. Mediator assisted switchover between clusters
US12032459B2 (en) 2020-11-20 2024-07-09 Netapp, Inc. Mediator assisted switchover between clusters
US11347607B1 (en) * 2021-04-16 2022-05-31 EMC IP Holding Company LLC Data storage cluster with witness node for selecting surviving storage node after replication failure
CN115359834B (zh) * 2022-10-18 2023-03-24 苏州浪潮智能科技有限公司 一种盘仲裁区域检测方法、装置、设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109726A (ja) * 1999-08-31 2001-04-20 Internatl Business Mach Corp <Ibm> 分散コンピュータ・システム内のプロセッサを再構成する方法、システム、および、記憶装置
JP2001117895A (ja) * 1999-08-31 2001-04-27 Internatl Business Mach Corp <Ibm> 分散コンピューティング・システムのクォーラム数判定方法、システムおよび記憶装置
JP2002041488A (ja) * 2000-05-31 2002-02-08 Internatl Business Mach Corp <Ibm> クラスタ化コンピューティング環境を管理するための方法、システム、およびプログラム製品
JP2002049601A (ja) * 2000-05-31 2002-02-15 Internatl Business Mach Corp <Ibm> コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品
JP2004516575A (ja) * 2000-12-21 2004-06-03 レガート システムズ インコーポレイテッド コンピュータ・クラスタリング・システムにおいて「スプリット・ブレイン」を防止する方法
JP2005258947A (ja) * 2004-03-12 2005-09-22 Toshiba Solutions Corp 2重化システム及び多重化制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192401B1 (en) * 1997-10-21 2001-02-20 Sun Microsystems, Inc. System and method for determining cluster membership in a heterogeneous distributed system
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US6279032B1 (en) * 1997-11-03 2001-08-21 Microsoft Corporation Method and system for quorum resource arbitration in a server cluster
US6363495B1 (en) * 1999-01-19 2002-03-26 International Business Machines Corporation Method and apparatus for partition resolution in clustered computer systems
US6662219B1 (en) * 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource
US6757836B1 (en) * 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6965936B1 (en) * 2000-12-06 2005-11-15 Novell, Inc. Method for detecting and resolving a partition condition in a cluster
US7016946B2 (en) * 2001-07-05 2006-03-21 Sun Microsystems, Inc. Method and system for establishing a quorum for a geographically distributed cluster of computers
US7631066B1 (en) * 2002-03-25 2009-12-08 Symantec Operating Corporation System and method for preventing data corruption in computer system clusters
US7231543B2 (en) * 2004-01-14 2007-06-12 Hewlett-Packard Development Company, L.P. Systems and methods for fault-tolerant processing with processor regrouping based on connectivity conditions
US7320085B2 (en) * 2004-03-09 2008-01-15 Scaleout Software, Inc Scalable, software-based quorum architecture
US7870230B2 (en) * 2005-07-15 2011-01-11 International Business Machines Corporation Policy-based cluster quorum determination

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001109726A (ja) * 1999-08-31 2001-04-20 Internatl Business Mach Corp <Ibm> 分散コンピュータ・システム内のプロセッサを再構成する方法、システム、および、記憶装置
JP2001117895A (ja) * 1999-08-31 2001-04-27 Internatl Business Mach Corp <Ibm> 分散コンピューティング・システムのクォーラム数判定方法、システムおよび記憶装置
JP2002041488A (ja) * 2000-05-31 2002-02-08 Internatl Business Mach Corp <Ibm> クラスタ化コンピューティング環境を管理するための方法、システム、およびプログラム製品
JP2002049601A (ja) * 2000-05-31 2002-02-15 Internatl Business Mach Corp <Ibm> コンピューティング環境のクラスタを自動的に構成するための方法、システム、およびプログラム製品
JP2004516575A (ja) * 2000-12-21 2004-06-03 レガート システムズ インコーポレイテッド コンピュータ・クラスタリング・システムにおいて「スプリット・ブレイン」を防止する方法
JP2005258947A (ja) * 2004-03-12 2005-09-22 Toshiba Solutions Corp 2重化システム及び多重化制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7838466B2 (en) 1998-02-11 2010-11-23 The Regents Of The University Of Michigan Device for chemical and biochemical reactions using photo-generated reagents

Also Published As

Publication number Publication date
JP2008192139A (ja) 2008-08-21
US20080184061A1 (en) 2008-07-31
US7840833B2 (en) 2010-11-23

Similar Documents

Publication Publication Date Title
JP4505763B2 (ja) ノードクラスタの管理
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
EP3357191B1 (en) Input/output fencing optimization
US10609159B2 (en) Providing higher workload resiliency in clustered systems based on health heuristics
US6839752B1 (en) Group data sharing during membership change in clustered computer system
US20190155677A1 (en) Proactive failure handling in data processing systems
US7870230B2 (en) Policy-based cluster quorum determination
US7464378B1 (en) System and method for allowing multiple sub-clusters to survive a cluster partition
US6928589B1 (en) Node management in high-availability cluster
US10642507B2 (en) Pulsed leader consensus management
US20060155912A1 (en) Server cluster having a virtual server
CN107526536B (zh) 用于管理存储系统的方法和系统
US8117487B1 (en) Method and apparatus for proactively monitoring application health data to achieve workload management and high availability
GB2421602A (en) Managing the failure of a master workload management process
GB2407887A (en) Automatically modifying fail-over configuration of back-up devices
US10367676B1 (en) Stable leader selection for distributed services
JP2005209190A (ja) 高可用性クラスタノードの複数状態ステータスの報告
US20090164565A1 (en) Redundant systems management frameworks for network environments
US20190334990A1 (en) Distributed State Machine for High Availability of Non-Volatile Memory in Cluster Based Computing Systems
US8489721B1 (en) Method and apparatus for providing high availabilty to service groups within a datacenter
JP5559316B2 (ja) コンピュータ実装多重リソース共有ロック
US11210187B1 (en) Computer cluster with adaptive quorum rules
CA2708976C (en) Synchronizing device error information among nodes
US12047226B2 (en) Systems and methods for arbitrated failover control using countermeasures
US8074109B1 (en) Third-party voting to select a master processor within a multi-processor computer

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100303

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

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

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4505763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130514

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees