JP4796086B2 - クラスタシステム及び同システムにおいてマスタノードを選択する方法 - Google Patents

クラスタシステム及び同システムにおいてマスタノードを選択する方法 Download PDF

Info

Publication number
JP4796086B2
JP4796086B2 JP2008066189A JP2008066189A JP4796086B2 JP 4796086 B2 JP4796086 B2 JP 4796086B2 JP 2008066189 A JP2008066189 A JP 2008066189A JP 2008066189 A JP2008066189 A JP 2008066189A JP 4796086 B2 JP4796086 B2 JP 4796086B2
Authority
JP
Japan
Prior art keywords
check
computers
value
weighting
nth
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
JP2008066189A
Other languages
English (en)
Other versions
JP2009223519A (ja
Inventor
和樹 才藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008066189A priority Critical patent/JP4796086B2/ja
Publication of JP2009223519A publication Critical patent/JP2009223519A/ja
Application granted granted Critical
Publication of JP4796086B2 publication Critical patent/JP4796086B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、クラスタ構成の複数の計算機を含むクラスタシステムに係り、特に、スプリットブレインの発生時に、クライアントに対してサービスを提供するマスタノードを選択するのに好適なクラスタシステム及び同システムにおいてマスタノードを選択する方法に関する。
従来から、計算機の障害時にも、当該計算機がクライアントに提供していたサービスを別の計算機で継続することを可能とするクラスタシステムが知られている。このようなクラスタシステムでは、当該システムを構成する複数の計算機(ノード)が相互にハートビートと呼ばれる通信を行うことにより、障害が発生したノードを検知するのが一般的である。
しかし、例えばハートビート通信のための通信経路の障害により、クラスタシステムを構成する複数のノードが孤立すると、当該複数のノードで同じサービスが開始されるといったクラスタとして不整合な状態が発生する。このような状態は、スプリットブレインと呼ばれている。
そこで、例えば特許文献1は、スプリットブレインを回避(または解消)するために、クラスタを構成する計算機(ノード)の数によって、予めスプリットブレインの原因になる可能性について通知する仕組みや、タイブレーカ(所有権の要求に対して所有者を多くても1つにするための機能)を用いて共有リソースを保護する仕組みについて開示している。
また、例えば特許文献2は、スプリットブレインを回避(または解消)するために、スプリットブレイン発生時に、定義された優先順位に従って正常なノードでサービスを開始する仕組みについて開示している。即ち特許文献2に記載された、スプリットブレインを回避(または解消)する仕組みでは、スプリットブレインが発生すると、定義された優先順位に従ってノード毎にサービス起動のための(開始時刻と終了時刻とで示される)時間が割り当てられる。もし、割り当てられた時間内に当該時間が割り当てられたノードでサービスを開始できなければ、そのノードは動作を停止する。そして次の優先順位のノードに割り当てられた時間内でサービスの開始が試みられる。このようにして、最終的にサービスを開始できた正常なノードがフェイルオーバ先のマスターノードとなってサービスを継続する。
特開2004−342079号公報 特開2006−048477号公報
上記特許文献2に記載されているようなスプリットブレインを回避(または解消)する仕組み(以下、従来技術と称する)では、予め定められた優先順位に従って割り当てられた時間内にサービスが実行できたノードが、フェイルオーバ先となるマスターノードとして選択される。しかし、優先順位が高いノードが、必ずしもマスタノードとして最適でないこともある。このため、従来技術では、マスタノードとして選択されたノードでサービスが開始されるまで時間を要したり、サービスは開始されたものの、当該ノードからクライアントに対してサービスを提供できない等、可用性の低下を招く可能性があった。
本発明は上記事情を考慮してなされたものでその目的は、スプリットブレインが発生しても、クライアントに対してサービスを提供可能な最適なノードをマスターノードとして選択することができるクラスタシステム及び同システムにおいてマスタノードを選択する方法を提供することにある。
本発明の1つの観点によれば、マスタノードとして動作した場合にクライアントに対してサービスを提供する、クラスタ構成の第1乃至第nの計算機と、前記第1乃至第nの計算機によって共有される共有ストレージ装置であって、前記第1乃至第nの計算機のいずれかをマスタノードとして選択する際の優先順位の決定に用いられる当該第1乃至第nの計算機各々の重みが保持された重み情報を格納する共有ストレージ装置とを具備するクラスタシステムが提供される。前記第1乃至第nの計算機は、それぞれ、相互にハートビート通信を行うことで計算機障害を検出する第1乃至第nのクラスタ管理手段と、前記第1乃至第nのクラスタ管理手段による計算機障害検出に応じて、それぞれ前記第1乃至第nの計算機自身の前記サービスの開始に関する状態をチェックし、そのチェックされた状態に応じて、前記共有ストレージ装置に格納されている前記重み情報中の、前記第1乃至第nの計算機自身の重みを更新する前記第1乃至第nの重み付け処理手段と、前記更新された前記重み情報中の前記第1乃至第nの計算機の重みに基づいて当該第1乃至第nの計算機自身が前記マスタノードとして最も優先順位が高いかを判定し、最も優先順位が高い場合に当該第1乃至第nの計算機自身を前記マスタノードとして選択するためのマスタノード調停処理を実行する第1乃至第nの調停手段とを含む。
本発明によれば、クラスタシステムを構成する第1乃至第nの計算機による計算機障害検出に応じて、当該第1乃至第nの計算機で行われるマスタノード調停(選択)のために、当該第1乃至第nの計算機が自身のサービスの開始に関する状態をチェックして、そのチェック結果に応じて、当該第1乃至第nの計算機が参照可能な自身の重みを変化させることによって、マスターノードの優先順位を変えるようにしたので、スプリットブレインが発生しても、クライアントに対してサービスを提供可能な最適なノードをマスターノードとして選択することができる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るクラスタシステム10を含むクライアント−サーバシステムの構成を示すブロック図である。
図1において、クラスタシステム10は、複数の計算機、例えばn台の計算機(以下、ノードと称する)100-1〜100-nから構成される。
ノード100-1(#1)〜100-n(#n)は、当該ノード100-1〜100-nによって共有される共有ストレージ装置200と接続されている。共有ストレージ装置200は、例えば複数のディスク装置から構成される。共有ストレージ装置200は、クォーラム210を格納する。このクォーラム210が格納される共有ストレージ装置200内の記憶領域は、クラスタシステム10を構成するノード100-1〜100-n(つまりクラスタ構成のノード100-1〜100-n)から参照可能な記憶領域である。クォーラム210は、一貫性が保障されたクラスタ構成情報、つまりクラスタシステム10の構成(クラスタ構成)を示す情報である。共有ストレージ装置200には、上記クォーラム210のための記憶領域(クォーラム用共有ディスク領域)の他に、マスタノードがクライアントにサービスを提供するのに用いられる、サービスプロセスのための記憶領域(サービス用共有デスク領域)が確保されている。
クォーラム210は重み情報211を含む。重み情報211は、クラスタシステム10を構成するノード100-1〜100-nの重みを示す。このノード100-1〜100-nの重みは、後述するように、当該ノード100-1〜100-nのそれぞれ重み付け処理部130-1〜130-nによって算出される。
図2は、クォーラム210に含まれている重み情報211の一例を示す。図2に示されるように、重み情報211は、ノード100-1〜100-nのノード名(ノードID)と当該ノード100-1〜100-nの重み(を示す値)との対から構成される。図2の例では、ノード100-1(#1)の重みは“j”であり、ノード100-1(#n)の重みは“k”である。本実施形態において、重み情報211によって示されるノード100-1〜100-nの重みの初期値はnull値(無効値)である。
再び図1を参照すると、ノード100-1〜100-nはネットワーク20を介して例えばm台のクライアント(クライアント端末)30-1〜30-mと接続されている。ネットワーク20は例えばローカルエリアネットワーク(LAN)である。ノード100-1〜100-nは、自身がマスタノードとなった場合、クライアント30-1〜30-mのうち、当該マスタノードからのサービスを必要とする(要求する)クライアントに対して、ネットワーク20を介して当該サービスを提供する。
ノード100-1〜100-nは、それぞれ、ローカルストレージ装置300-1〜300-nと接続されている。ローカルストレージ装置300-1〜300-nは、それぞれノード100-1〜100-nによるクラスタ管理に用いられるクラスタプログラム301を格納する。クラスタプログラム301は、ローカルストレージ装置300-1〜300-nからノード100-1〜100-n内の後述する記憶部140-1〜140-nに読み込まれることにより、当該ノード100-1〜100-n内の図示せぬCPUによって実行される。ローカルストレージ装置300-1〜300-nは、それぞれ後述するチェックリスト141として記憶部140-1〜140-nにロードされる、例えばファイル形式のチェックリスト302も格納する。
ノード100-1〜100-nは、それぞれ、クラスタ管理部110-1〜110-nと、タイブレーカ機構120-1〜120-nと、重み付け処理部130-1〜130-nと、記憶部140-1〜140-nとを含む。記憶部140-1〜140-nは、例えば主メモリのような揮発性メモリを用いて実現される。記憶部140-1〜140-nは、それぞれローカルストレージ装置300-1〜300-nからダウンロードされるチェックリスト301をチェックリスト141として格納する。
チェックリスト141は、重み付け処理部130-1〜130-nによる重み付けに用いられるサービス提供機能のチェック方法を定義した情報(チェック方法定義情報)と、当該チェック方法によるチェックの結果に対応した重み付けのための加減点の値(重み付けのルール)とを予め保持する。
図3は、図1中のチェックリスト141の一例を示す。本実施形態において、チェックリスト141に保持(設定)されるサービス提供機能のチェック方法を定義したチェック方法定義情報として、そのサービス提供機能のチェックに必要なコマンド(コマンドコード)が用いられる。図3の例では、プロセス監視コマンド、DISK経路監視コマンド、LAN経路監視コマンド、CPU使用率監視コマンド及びMEMORY使用率監視コマンドの各コマンド(監視コマンド)が、チェック方法を定義するコマンドとしてチェックリスト141に設定されている。
図3の例では、プロセス監視コマンド、DISK経路監視コマンド及びLAN経路監視コマンドに対応付けられる、そのコマンドの実行によるチェック成功時の重み付けのための加減点はいずれも0(つまり加点0)であり、失敗時の重み付けのための加減点は、それぞれ−50、−50、−30(つまり減点50、50、30)である。また、CPU使用率監視コマンド及びMEMORY使用率監視コマンドに対応付けられる、そのコマンドの実行によるチェック成功時の重み付けのための加減点はいずれも+10(つまり加点10)であり、失敗時の重み付けのための加減点はいずれも0(つまり減点0)である。CPU使用率監視コマンド及びMEMORY使用率監視コマンドの実行によるチェックの成功とは、それぞれCPU使用率及びMEMORY使用率が閾値未満の場合をいう。
クラスタ管理部110-1〜110-nは、クラスタシステム10を管理するための基本機能を有するカーネル(クラスタ・カーネル)をなす。クラスタ管理部110-1〜110-nは、ハートビート通信路40を介して相互に周知のハートビート通信を行うことにより、クラスタシステム10を構成するノードの障害を検出する機能を有する。クラスタ管理部110-1〜110-nは、クォーラム210を常に最新の状態を示すように更新する。クラスタ管理部110-1〜110-nはまた、ノードの障害検出に応じ、それぞれ、タイブレーカ機構120-1〜120-nと重み付け処理部130-1〜130-nとを用いて、フェイルオーバ先のノード(つまりマスタノード)を決定するための制御を行う。
タイブレーカ機構120-1〜120-nは、クォーラム210を用いてマスタノードの調停を行う。タイブレーカ機構120-1〜120-nは、それぞれ重み判定部121を含む。重み判定部121は、クォーラム210に含まれている重み情報211に基づいて、マスタノード選択のための優先順位を決定する。
重み付け処理部130-1〜130-nは、それぞれ記憶部140-1〜140-nに格納(ロード)されているチェックリスト141に従う機能チェックによって取得されるノード100-1〜100-nの状態に基づき、当該ノード100-1〜100-nの重みを決定する。重み付け処理部130-1〜130-nの各々は、チェック部131及び重み算出部132を含む。
チェック部131は、チェックリスト141を参照して、当該チェックリスト141に設定されているコマンドを実行することにより、当該チェック部131が存在するノード100-i(i=1,…n)の状態をチェックする。チェック部131は、チェックリスト141に設定されているコマンドの実行に基づくノード100-iの状態のチェック結果として、当該リスト141によってそのコマンド実行結果に対応付けられた重み付けのための加減点を取得する。重み算出部132は、チェックリスト141に設定されているコマンド毎にチェック部131によって取得された重み付けのための加減点に基づき、当該ノード100-iの重みを算出する。重み算出部132は、算出されたノード100-iの重みで、クォーラム210に含まれている重み情報211を更新する。
次に、本実施形態の動作の概要を説明する。
まずクラスタシステム10を構成するノード100-1〜100-n内のクラスタ管理部110-1〜100-nは、通常時はハートビート通信路40を介して相互にハートビート通信を行うことにより、クラスタシステム10における整合性を確認すると共にノード障害を検出する。
このような状態で、例えばハートビート通信路40の障害によりハートビートが途絶えたものとする。するとクラスタ管理部110-1〜110-nは、それぞれ自身以外のノードに障害が発生したものと判断し、タイブレーカ機構120-1〜120-nにマスタノード決定のための調停を要求すると共に、重み付け処理部130-1〜130-nに重み付け処理を要求する。
重み付け処理部130-1〜130-nは、それぞれクラスタ管理部110-1〜110-nからの要求に応じて、次のような重み付け処理を予め定められた時間(規定時間)内に実行する。まず重み付け処理部130-1〜130-nは、それぞれノード100-1〜100-nの状態をチェックすることにより、当該ノード100-1〜100-nが現時点においてクライアントにサービスを提供できる程度を表す重みを決定(算出)する。重み付け処理部130-1〜130-nは、決定された重みで、共有ストレージ装置200に格納されているクォーラム210中の重み情報211を更新する。
一方、タイブレーカ機構120-1〜120-nは、クラスタ管理部110-1〜110-nの要求を受け取ると、上記規定時間経過後に、クォーラム210中の重み情報211によって示されるノード100-1〜100-nの重みに基づき、ノード100-1〜100-nをマスタノードとして選択する際の優先順位を決定する。
次に、上述のハートビートが途絶えた場合の動作の詳細について、ノード100-1での動作を例に、図4乃至図6を参照して説明する。図4は、主としてノード100-1における情報の流れを示す図、図5はノード100-1内の重み付け処理部130-1の処理(重み付け処理)の手順を示すフローチャート、図6はノード100-1内のタイブレーカ機構120-1の処理(マスタノード調停処理)の手順を示すフローチャートである。
今、ハートビート通信路40の障害により、当該ハートビート通信路40上で図4に示すようにハートビートの途絶41が発生した結果、ノード100-1内のクラスタ管理部110-1が、当該ハートビートの途絶41を検出したものとする。するとクラスタ管理部110-1は、クラスタシステム10内の他のノードに障害が発生したものと判断する。
そこでクラスタ管理部110-1は、図4に示すように、タイブレーカ機構120-1に対してマスタノード決定のための調停の要求(調停要求)42を発行する。またクラスタ管理部110-1は、図4に示すように、重み付け処理部130-1〜130-nに対して重み付け処理の要求(重み付け要求)43を発行する。なおクラスタ管理部110-1は、クラスタシステム10内の他のノード、例えばノード100-nに障害が発生した結果、当該ノード100-nからのハートビートだけが途絶えたことを検出した場合にも、上記調停要求42及び重み付け要求43を発行する。
重み付け処理部130-1は、クラスタ管理部110-1からの重み付け要求43に応じて、以下に述べる重み付け処理44を直ちに開始する。
まず重み付け処理部130-1内の重み算出部132は、記憶部140-1内に、図4に示されるように重みレジスタ領域142を確保し、当該重みレジスタ領域142に初期重みとして0を設定する(ステップS1)。
すると重み付け処理部130-1内のチェック部131は、記憶部140-1に格納されているチェックリスト141を参照して、チェック方法定義情報として設定されているコマンド(未処理のコマンド)を当該リスト141から1つ取り出す(ステップS2)。そしてチェック部131は、チェックリスト141から取り出されたコマンドを実行することにより、ノード100-1の状態をチェックする(ステップS3)。つまりチェック部131は、コマンド参照・実行操作441を行う。
次にチェック部131は、コマンド実行によるノード100-1の状態のチェック結果(成功/失敗)から、チェックリスト141によって当該チェック結果に対応付けられた重み付けのための加減点(加点または減点の値)を取得する(ステップS4)。チェック部131は、取得された加減点を、対応するコマンドの実行によるノード100-1の状態のチェック結果442(図4参照)として、重み算出部132に送出する。重み算出部132は、チェック部131から送出された加減点を現在レジスタ領域142に保持されている重みに加える重み加減操作443を行う(ステップS5)。
次にチェック部131は、チェックリスト141内の全てのコマンドを実行したかを判定する(ステップS6)。もし、未処理のコマンドが残っているならば(ステップS6)、チェック部131はステップS2に戻る。このようにして重み付け処理部130-1では、上記ステップS2乃至S6が、チェックリスト141内の全てのコマンドを実行したとステップS6で判定されるまで繰り返される。やがて、チェックリスト141内の全てのコマンドが実行されたならば(ステップS6)、重み算出部132は、その時点においてレジスタ領域142に保持されている重みで、クォーラム210に含まれている重み情報211において、ノード100-1(#1)に対応付けられている重み(ここではnull値)を更新するための重み更新操作444を行う(ステップS7)。これにより重み付け処理部130-1における重み付け処理44は終了する。図4の例では、ノード100-1(#1)に対応付けられている重みが(null値から)“j”に更新される。
ハートビートが途絶えた場合、クラスタシステム10内のノード100-1以外のノードにおいても、重み付け処理を含めて、当該ノード100-1におけるのと同様の処理が行われる。これにより、ノード100-1〜100-nに障害が発生していないならば、クォーラム210に含まれている重み情報211において、ノード100-1(#1)〜100-n(#n)に対応付けられている重み(つまりノード100-1〜100-nのノード名と対をなす重み)が、その時点におけるノード100-1〜100-nの状態を反映するように更新される。
重み情報211によって示されるノード100-1〜100-nの重みは、マスタノード選択の優先順位を表す。したがって本実施形態においては、ノード100-1〜100-nの重みを、当該ノード100-1〜100-nの状態に応じて更新することで、マスタノード選択の優先順位を動的に変更することができる。
本実施形態において、ノード100-1〜100-n内の重み付け処理部130-1〜130-nによる重み付け処理は、当該ノード100-1〜100-nに障害が発生していないならば、予め定められた規定時間内に完了するようになっている。
そこで、例えばノード100-1内のタイブレーカ機構120-1は、クラスタ管理部110-1から調停要求42を受け取ると、上記規定時間が経過するのを待つ(ステップS11)。そして規定時間が経過すると、タイブレーカ機構120-1は、クォーラム210中の重み情報211に基づいて、マスタノードの調停、即ち重み情報211の示す重みに基づいてマスタノードを選択するためのマスタノード選択操作45を開始する。このマスタノード選択操作45は、タイブレーカ機構120-1内の重み判定部121を用いて次のように行われる。
まず重み判定部121は、共有ストレージ装置200に格納されているクォーラム210中の重み情報211の読み込み(重み読み込み)451を行う(ステップS12)。次に重み判定部121は、重み情報211によって示されるノード100-1〜100-nの各々の重みを比較判定することによって、当該ノード100-1〜100-nをマスタノードとして選択する際の優先順位の決定(優先順位決定)452を行う(ステップS13)。このステップS13の処理は、例えば、重み情報211におけるノード100-1〜100-nのノード名の並びを当該ノード名と対をなす重みの降順にソートする処理によって実現される。ここでは、重みが大きいノードほど、高優先順位となる。また、重み情報211において、上記規定時間内に上記重み付け処理を完了できなったノードのノード名と対をなす重みは、null値のままである。このようなノードの優先順位は最も低くなる。
重み判定部121は、マスタノードの選択のために、当該重み判定部121自身を含むタイブレーカ機構120-1が存在するノード100-1の優先順位が最も高いかを判定する(ステップS14)。もし、ノード100-1の優先順位が最も高い場合(ステップS14)、ノード100-1のタイブレーカ機構120-1は、当該ノード100-1を、クライアントに提供されていたサービスを引き継ぐのに最適なマスタノードとして選択し、その旨の通知(マスタノード通知)46をクラスタ管理部110-1に送出する(ステップS15)。これにより、クラスタ管理部110-1からの調停要求42に基づくタイブレーカ機構120-1での処理は終了する。一方、ノード100-1の優先順位が第2位以下の場合(ステップS14)、タイブレーカ機構120-1は当該ノード100-1はマスタノードとして選択されない旨の通知(非マスタノード通知)47をクラスタ管理部110-1に送出する(ステップS16)。これにより、クラスタ管理部110-1からの調停要求42に基づくタイブレーカ機構120-1での処理(マスタノード調停処理)は終了する。
クラスタ管理部110-1は、タイブレーカ機構120-1からマスタノード通知46を受け取ると、当該クラスタ管理部110-1を有するノード100-1がマスタノードとしてサービスを開始する(引き継ぐ)ように管理する。
このように本実施形態においては、各ノード100-1〜100-nでの重み付け処理の結果に基づいて優先順位が最も高いと決定されたノードがマスタノードとしてサービスを開始(継続)する。つまり、ハートビートが途絶えた際の各ノード100-1〜100-nの状態のチェック結果から、サービスの継続に最適な状態にあると決定されたノードにより、当該サービスが継続される。このため本実施形態においては、固定の優先順位に従ってマスタノードが決定される従来技術と比較して、より素早くクライアントへのサービスの提供を再開することができると共に、スプリットブレインを回避(または解消)することができる。
クラスタ管理部110-1は、ノード100-1がマスタノードとしてサービスを引き継いだことを確認すると、重み情報211に含まれているノード100-1〜100-nの重みを、重み付け処理部130-1によってnull値に初期化させる。
ここで、チェックリスト141の示すチェック方法(コマンド)、及び、そのチェック方法(コマンド実行)によるチェック(コマンド実行)の結果に対応付けられた重み付けのための加減点の意義について説明する。
まず、チェックリスト141の示すチェック方法(コマンド)は、(A)ノードでのサービス開始に必須の条件(つまり必要条件)が成立するかを確認するための第1のタイプのチェック方法(コマンド)と、(B)ノードでのサービス開始に有利な条件(つまり十分条件)が成立するかを確認するための第2のタイプのチェック方法(コマンド)とに大別される。
本実施形態において、図3に示されるチェックリスト141に設定されている第1のタイプのコマンドは、
(1)プロセス監視コマンド
(2)DISK(ディスク)経路監視コマンド
(3)LAN経路監視コマンド
である。これらの第1のタイプのコマンドの実行により、以下に述べるように、ノードでのサービス開始の必要条件が成立するかが確認される。本実施形態では、この必要条件が成立していると確認された場合をチェック成功、それ以外をチェック失敗と定義する。
(A)サービス開始の必要条件が成立するかの確認
(1)ノード100-i(i=1,…n)でのプロセス監視コマンドの実行により、サービス開始に必要なプロセスが当該ノード100-iで動作しているかがチェックされる。
(2)ノード100-iでのDISK経路監視コマンド(サービス用共有デスク経路監視コマンド)の実行により、当該ノード100-iから共有ストレージ装置200に確保されているサービス用共有デスク領域にアクセスできるかがチェックされる。
(3)ノード100-iでのLAN経路監視コマンドの実行により、当該ノード100-iからネットワーク20を介してクライアントと通信ができるかがチェックされる。
上記(1)(2)においてチェック失敗(チェックエラー)の場合にはサービスの引き継ぎそのものができない致命的なエラーとなる。このため図3のチェックリスト141の例では、(1)(2)におけるチェック失敗に対して減点50が定義される。これに対し、上記(3)においてチェック失敗があった場合には、サービスの引き継ぎは可能だがサービスを開始しても、クライアントに当該サービスを提供できない。このため図3のチェックリスト141の例では、(3)におけるチェック失敗に対して、上記(1)(2)におけるチェック失敗時の減点の値よりも小さな値の、減点30が定義される。上記(1)(2)(3)におけるチェック成功は、いずれもサービスを開始するのに必須の条件(必要条件)になる。このため図3のチェックリスト141の例では、上記(1)(2)(3)におけるチェック成功に対して加減点0(加点0)が定義される。つまり、(1)(2)(3)でチェック成功となっても、加点は一切行われない。
一方、図3に示されるチェックリスト141に設定されている第2のタイプのコマンドは、
(4)CPU使用率監視コマンド
(5)MEMORY(メモリ)使用率監視コマンド
である。これらの第2のタイプのコマンドの実行により、以下に述べるように、ノードでのサービス開始に有利となる十分条件が成立するかが確認される。
(B)サービス開始の十分条件が成立するかの確認
(4)ノード100-i(i=1,…n)でのCPU使用率監視コマンドの実行により、当該ノード100-i内のCPUの使用状況がチェックされる。
(5)ノード100-iでのMEMORY使用率監視コマンドの実行により、当該ノード100-i内のメモリ(物理メモリ)の使用状況がチェックされる。
上記(4)(5)いずれも、チェックされた使用率が予め定められた閾値未満の場合にサービス開始の十分条件が成立していると確認され、その状態をチェック成功、それ以外をチェック失敗と定義する。本実施形態では、(4)(5)いずれにおいても、使用率30%が上記閾値として用いられるものとする。
このように、上記(4)(5)いずれも、より低い使用率のノードの方がサービスを引き継ぐ際に有利となる。このため、使用率が閾値未満の場合、つまりチェックされた使用率が予め定められた閾値未満の場合、サービス開始に有利な十分条件が成立しているチェック成功であるとして、加点10が定義される。これに対し、使用率が閾値以上の場合には、サービス開始に有利な十分条件が成立していないチェック失敗であるとして、加減点0(減点0)が定義される。つまり、(4)(5)でチェック失敗となっても、減点は一切行われない。
本実施形態において、チェックリスト141に相当するチェックリスト302の設定内容(ノード状態のチェックのためのチェック方法定義情報及びチェック結果に対応する重み付けのための加減点の値)は、例えばユーザの操作によって定義可能である。このため、クラスタシステム10に適合するようにチェックリスト141(302)がカスタマイズされるならば、当該クラスタシステム10において、期待されるサービスを提供できる可能性が最も高いノードをマスターノードとして選択することができる。
上記定義のための操作、つまり任意に定義されたチェックリスト302(ここでは、ファイル形式のチェックリスト302)を作成するための操作は、例えばノード100-1〜100-nのうちのいずれかのノード上で行われても、クライアント30-1〜30-mのうちのいずれかのノード上で行われても、或いは図1のシステムとは無関係の計算機上で行われても構わない。
ユーザは、例えばノード100-1〜100-nのうちのいずれかのノードでチェックリスト302を作成した場合、当該ノードを操作して、作成されたチェックリスト302を、当該ノードからノード100-1〜100-nのうちの残りのノードにネットワーク20を介して転送させることにより、当該チェックリスト302をノード100-1〜100-nのローカルストレージ装置300-1〜300-nに登録させる。クライアント30-1〜30-mのうちのいずれかのノードでチェックリスト302が作成された場合にも、上記と同様にして、当該チェックリスト302をノード100-1〜100-nのローカルストレージ装置300-1〜300-nに登録させることができる。また、図1のシステムとは無関係の計算機でチェックリスト302が作成された場合には、当該チェックリスト302が保存された例えばUSBメモリのような記憶装置をノード100-1〜100-nのうちのいずれかのノードに接続して、当該チェックリスト302を記憶装置から接続先のノードに読み込ませると共に、当該チェックリスト302を、当該ノードからノード100-1〜100-nのうちの残りのノードに転送させればよい。
ここでチェックリスト141(302)において、チェック方法定義情報(コマンド)に対応付けられる重み付けのための加点の値と減点の値とは、“加点の合計値−減点の最小値”が負(つまり“加点の合計値−減点の最小値”<0)となるように設定される。これにより、サービス開始の必要条件が1つでも成立しない場合には重みはマイナス値となり、当該必要条件が全て成立する場合には、たとえサービス開始の十分条件が全て成立しなくても、重みは0以上の値となる。よって、例えば重みが0以上の値のノードをマスタノードの選択の対象とするならば、少なくともサービス開始の必要条件を満たすノードの中からマスタノード(つまりサービスの引き継ぎ先)を選択することができる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態では、クラスタ管理部110-1〜110-n相互間のハートビート通信に、専用のハートビート通信路40が用いられる。しかし、通信負荷は増加するものの、例えばネットワーク20を介してハートビート通信が行われても構わない。つまり、ネットワーク20が、クラスタシステム10(内のノード100-1〜100-n)とクライアント30-1〜30-mとの通信(例えばサービス提供のための通信)と、クラスタ管理部110-1〜110-n相互間のハートビート通信とに兼用されても構わない。また、チェックリスト141の内容は一例であり、一部のコマンドを欠いていても、或いは一部のコマンドが別のコマンドに置き換えられても、更には他のコマンドが追加されても構わない。
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係るクラスタシステムを含むクライアント−サーバシステムの構成を示すブロック図。 図1中のクォーラムに含まれている重み情報の一例を示す図。 図1中のチェックリストの一例を示す図。 同実施形態においてハートビートが途絶えた場合の主としてノードにおける情報の流れを示す図。 同実施形態における重み付け処理部の処理の手順を示すフローチャート。 同実施形態におけるタイブレーカ機構の処理の手順を示すフローチャート。
符号の説明
10…クラスタシステム、20…ネットワーク、30-1〜30-n…クライアント、40…ハートビート通信路、100-1〜100-n…ノード(計算機)、110-1〜110-n…クラスタ管理部、120-1〜120-n…タイブレーカ機構、121…重み判定部、130-1〜130-n…重み付け処理部、131…チェック部、132…重み算出部、140-1〜140-n…記憶部、141,302…チェックリスト、200…共有ストレージ装置、210…クォーラム、211…重み情報、301…クラスタプログラム。

Claims (5)

  1. マスタノードとして動作した場合にクライアントに対してサービスを提供する、クラスタ構成の第1乃至第nの計算機と、
    前記第1乃至第nの計算機によって共有される共有ストレージ装置であって、前記第1乃至第nの計算機のいずれかをマスタノードとして選択する際の優先順位の決定に用いられる当該第1乃至第nの計算機各々の重みが保持された重み情報を格納する共有ストレージ装置と
    を具備し、
    前記第1乃至第nの計算機は、それぞれ、
    相互にハートビート通信を行うことで計算機障害を検出する第1乃至第nのクラスタ管理手段と、
    前記第1乃至第nの計算機自身が前記サービスを開始するのに必須の必要条件が成立するかをチェックするための第1のタイプのチェック方法及び前記第1乃至第nの計算機自身が前記サービスを開始するのに有利となる十分条件が成立するかをチェックするための第2のタイプのチェック方法を定義したチェック方法定義情報と、前記第1のチェック方法に基づくチェック結果がチェック失敗の場合に対応した重み付けの減点の値及び前記第2のチェック方法に基づくチェック結果がチェック成功の場合に対応した重み付けの加点の値を含む、チェック結果に対応した重み付けのための加減点の値とが設定されたチェックリストを格納する第1乃至第nのチェックリスト記憶手段と、
    前記第1乃至第nのクラスタ管理手段による計算機障害検出に応じて、それぞれ、前記第1乃至第nのチェックリスト記憶手段に格納されている前記チェックリストに設定されたチェック方法定義情報によって定義される前記第1のチェック方法及び前記第2のチェック方法に従って前記第1乃至第nの計算機自身の前記サービスの開始に関する状態をチェックし、前記チェックリストからチェック結果に対応する前記重み付けのための加減点の値を取得して、当該取得された値で前記共有ストレージ装置に格納されている前記重み情報中の、前記第1乃至第nの計算機自身の重みを更新する第1乃至第nの重み付け処理手段であって、前記第1のチェック方法に基づくチェック結果がチェック失敗の場合、前記チェックリストから当該チェック失敗に対応した重み付けの減点の値を取得し、前記第2のチェック方法に基づくチェック結果がチェック成功の場合、前記チェックリストから当該チェック成功に対応した重み付けの加点の値を取得する第1乃至第nの重み付け処理手段と、
    前記更新された前記重み情報中の前記第1乃至第nの計算機の重みに基づいて当該第1乃至第nの計算機自身が前記マスタノードとして最も優先順位が高いかを判定し、最も優先順位が高い場合に当該第1乃至第nの計算機自身を前記マスタノードとして選択するためのマスタノード調停処理を実行する第1乃至第nの調停手段とを
    含むことを特徴とするクラスタシステム。
  2. 記チェックリストに設定される加減点の値は、前記第1のチェック方法に基づく前記チェック結果チェック成功の場合に対応した重み付けの加点を0とする値と、前記第2のチェック方法に基づく前記チェック結果チェック失敗の場合に対応した重み付けの減点を0とする値とを更に含み前記重み付けの加点の値と減点の値とは、“加点の合計値−減点の最小値”が負となるように設定されていることを特徴とする請求項記載のクラスタシステム。
  3. 前記第1乃至第nのクラスタ管理手段による計算機障害検出時から、前記第1乃至第nの計算機が正常な場合に前記第1乃至第nの重み付け処理手段が前記重み情報中の前記第1乃至第nの計算機自身の重みを更新するまでに要する時間よりも長い規定時間が予め定められており、
    前記第1乃至第nの調停手段は、それぞれ前記第1乃至第nのクラスタ管理手段による計算機障害検出時から前記規定時間が経過するのを待って前記マスタノード調停処理を開始する
    ことを特徴とする請求項1または2のいずれか一項に記載のクラスタシステム。
  4. マスタノードとして動作した場合にクライアントに対してサービスを提供する、クラスタ構成の第1乃至第nの計算機であって、それぞれ、前記第1乃至第nの計算機自身が前記サービスを開始するのに必須の必要条件が成立するかをチェックするための第1のタイプのチェック方法及び前記第1乃至第nの計算機自身が前記サービスを開始するのに有利となる十分条件が成立するかをチェックするための第2のタイプのチェック方法とを定義したチェック方法定義情報と、前記第1のチェック方法に基づくチェック結果がチェック失敗の場合に対応した重み付けの減点の値及び前記第2のチェック方法に基づくチェック結果がチェック成功の場合に対応した重み付けの加点の値を含む、チェック結果に対応した重み付けのための加減点の値とが設定されたチェックリストを格納する第1乃至第nのチェックリスト記憶手段を含む第1乃至第nの計算機と、前記第1乃至第nの計算機によって共有される共有ストレージ装置であって、前記第1乃至第nの計算機のいずれかをマスタノードとして選択する際の優先順位の決定に用いられる当該第1乃至第nの計算機各々の重みが保持された重み情報を格納する共有ストレージ装置とを有するクラスタシステムにおいて、
    前記第1乃至第nの計算機が相互にハートビート通信を行うことで計算機障害を検出するステップと、
    前記計算機障害検出に応じて、それぞれ、前記第1乃至第nのチェックリスト記憶手段に格納されている前記チェックリストに設定されたチェック方法定義情報によって定義される前記第1のチェック方法及び第2のチェック方法に従って前記第1乃至第nの計算機が自身の前記サービスの開始に関する状態をチェックするステップと、
    前記第1乃至第nの計算機が、前記チェックリストからチェック結果に対応する前記重み付けのための加減点の値を取得するステップであって、前記第1のチェック方法に基づくチェック結果がチェック失敗の場合に、前記チェックリストから当該チェック失敗に対応した重み付けの減点の値を取得し、前記第2のチェック方法に基づくチェック結果がチェック成功の場合に、前記チェックリストから当該チェック成功に対応した重み付けの加点の値を取得するステップと、
    前記第1乃至第nの計算機が前記共有ストレージ装置に格納されている前記重み情報中の、前記第1乃至第nの計算機自身の重みを、前記取得された値で更新するステップと、
    前記第1乃至第nの計算機が、前記更新された前記重み情報中の自身の重みを参照することにより、前記マスタノードとして自身が最も優先順位が高いかを判定するステップと、
    前記第1乃至第nの計算機のうち、前記マスタノードとして最も優先順位が高いと判定した計算機自身が、自身を前記マスタノードとして選択するステップと
    を具備することを特徴とするクラスタシステムにおいてマスタノードを選択する方法。
  5. 前記チェックリストに設定される加減点の値は、前記第1のチェック方法に基づく前記チェック結果がチェック成功の場合に対応した重み付けの加点を0とする値と、前記第2のチェック方法に基づく前記チェック結果がチェック失敗の場合に対応した重み付けの減点を0とする値とを更に含み、前記重み付けの加点の値と減点の値とは、“加点の合計値−減点の最小値”が負となるように設定されていることを特徴とする請求項4記載のクラスタシステムにおいてマスタノードを選択する方法。
JP2008066189A 2008-03-14 2008-03-14 クラスタシステム及び同システムにおいてマスタノードを選択する方法 Expired - Fee Related JP4796086B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008066189A JP4796086B2 (ja) 2008-03-14 2008-03-14 クラスタシステム及び同システムにおいてマスタノードを選択する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008066189A JP4796086B2 (ja) 2008-03-14 2008-03-14 クラスタシステム及び同システムにおいてマスタノードを選択する方法

Publications (2)

Publication Number Publication Date
JP2009223519A JP2009223519A (ja) 2009-10-01
JP4796086B2 true JP4796086B2 (ja) 2011-10-19

Family

ID=41240245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066189A Expired - Fee Related JP4796086B2 (ja) 2008-03-14 2008-03-14 クラスタシステム及び同システムにおいてマスタノードを選択する方法

Country Status (1)

Country Link
JP (1) JP4796086B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5016696B2 (ja) * 2010-03-05 2012-09-05 日本電信電話株式会社 高可用性システム、サーバ、高可用性維持方法及びプログラム
US9686161B2 (en) * 2013-09-16 2017-06-20 Axis Ab Consensus loss in distributed control systems
JP6924598B2 (ja) * 2017-03-31 2021-08-25 三菱重工業株式会社 計算機、制御方法、及びプログラム
CN107957915B (zh) * 2017-11-21 2019-12-24 深圳壹账通智能科技有限公司 一种被调用方系统的心跳检测方法、存储介质和服务器
JP7422492B2 (ja) * 2019-05-24 2024-01-26 アズビル株式会社 冗長システム及びデータ同期方法
CN115499447A (zh) * 2022-09-15 2022-12-20 北京天融信网络安全技术有限公司 一种集群主节点确认方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644090A (ja) * 1992-07-27 1994-02-18 Toshiba Corp マスタスレーブ計算機システム及びマスタ選定制御方法
JPH0756838A (ja) * 1993-08-11 1995-03-03 Toshiba Corp 分散サーバ制御装置
JP3296378B2 (ja) * 1993-08-27 2002-06-24 株式会社東芝 コンピュータバックアップシステム
JP2000215076A (ja) * 1999-01-26 2000-08-04 Toshiba Corp クラスタシステム及びクラスタシステムにおけるフェ―ルオ―バ処理方法
JP2004126982A (ja) * 2002-10-03 2004-04-22 Nri & Ncc Co Ltd 運用管理システム
JP3910967B2 (ja) * 2004-03-12 2007-04-25 東芝ソリューション株式会社 2重化システム及び多重化制御方法
JP2006031096A (ja) * 2004-07-12 2006-02-02 Fuji Xerox Co Ltd 分散処理システムおよびその再起動制御方法および再起動制御プログラム
JP4516458B2 (ja) * 2005-03-18 2010-08-04 株式会社日立製作所 フェイルオーバークラスタシステム及びフェイルオーバー方法

Also Published As

Publication number Publication date
JP2009223519A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
US10609159B2 (en) Providing higher workload resiliency in clustered systems based on health heuristics
JP4796086B2 (ja) クラスタシステム及び同システムにおいてマスタノードを選択する方法
US9208029B2 (en) Computer system to switch logical group of virtual computers
EP3400528B1 (en) Deferred server recovery in computing systems
JP4811830B1 (ja) コンピュータリソース制御システム
US20080288812A1 (en) Cluster system and an error recovery method thereof
JP2007226400A (ja) 計算機管理方法、計算機管理プログラム、実行サーバの構成を管理する待機サーバ及び計算機システム
JP4491482B2 (ja) 障害回復方法、計算機、クラスタシステム、管理計算機及び障害回復プログラム
JP6615761B2 (ja) 分散データグリッドにおいて非同期呼出をサポートするためのシステムおよび方法
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
US20170212815A1 (en) Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program
JP2007164264A (ja) 負荷分散プログラム、負荷分散装置、サービスシステム
WO2013190694A1 (ja) 計算機の復旧方法、計算機システム及び記憶媒体
CN114237910A (zh) 客户端负载均衡实现方法及装置
US10970098B2 (en) Methods for sharing input-output device for process automation on a computing machine and devices thereof
CN109587218B (zh) 一种集群选举的方法和装置
US9645857B2 (en) Resource fault management for partitions
CN112269693B (zh) 一种节点自协调方法、装置和计算机可读存储介质
WO2018188958A1 (en) A method and a host for managing events in a network that adopts event-driven programming framework
JP2009026182A (ja) プログラム実行システム及び実行装置
US8671307B2 (en) Task relay system, apparatus, and recording medium
JP2010170168A (ja) 流量制御方法およびシステム
JP2009098715A (ja) 冗長システム装置並びに冗長システム装置におけるジョブの実行方法及び実行プログラム
JP2020177489A (ja) 制御方法、制御プログラム、および情報処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110330

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees