JP2010266935A - ノード監視方法及びクラスタシステム - Google Patents

ノード監視方法及びクラスタシステム Download PDF

Info

Publication number
JP2010266935A
JP2010266935A JP2009115711A JP2009115711A JP2010266935A JP 2010266935 A JP2010266935 A JP 2010266935A JP 2009115711 A JP2009115711 A JP 2009115711A JP 2009115711 A JP2009115711 A JP 2009115711A JP 2010266935 A JP2010266935 A JP 2010266935A
Authority
JP
Japan
Prior art keywords
node
nodes
failure
cluster
adjacent
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.)
Withdrawn
Application number
JP2009115711A
Other languages
English (en)
Inventor
Ryosuke Tsurumi
玲典 鶴身
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009115711A priority Critical patent/JP2010266935A/ja
Publication of JP2010266935A publication Critical patent/JP2010266935A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】クラスタシステムにおいて、ノードの監視に要する各ノード内のCPU負荷の増大を抑え、ネットワークを流れるハートビートメッセージ数の増加を抑えることができるようにノードの監視を行う。
【解決手段】複数のノードのそれぞれは、全てのノードで一意に定まるノード構成情報1108、1208、1308を有するクラスタ制御手段1104を備える。クラスタ制御手段1104は、ノード構成情報を元に、クラスタシステムを構成する複数のノードを論理的にリング状に配置し、隣接する2つだけのノードのクラスタ制御手段との間でハートビートメッセージを相互に送受信することにより隣接するノードの監視を行う。隣接するノードからのハートビートメッセージを所定時間以上受信できなかったとき、そのノードに障害が発生したと判断する。
【選択図】図1

Description

本発明は、ノード監視方法及びクラスタシステムに係り、特に、クラスタシステムを構成する計算機であるノードの障害を検知するノード監視方法及びクラスタシステムに関する。
一般に、複数のノード(計算機)を備え、複数の系からなるクラスタシステムは、あるノードがアプリケーションを実行中に、そのコンピュータのプログラムあるいはオペレーティングシステムに障害があった場合、実行中のアプリケーションを別のノードに引き継がせるように系の切り替えを行うことにより処理を続行することができる。このようなクラスタシステムにおいて、ノードの障害を監視する方法に関する従来技術として、例えば、特許文献1に記載されているような技術が知られている。この従来技術は、ノード相互間で定期的にハートビートメッセージを送受信し、一定時間ハートビートメッセージが受信できなかった場合に、送信元のノードが障害であると判断するというものである。そして、この従来技術は、前述したようなハートビートメッセージによる監視を全てのノード相互間で実施している。
特開2008−172592号公報
従来技術によるノードの監視方法は、全てのノードがノード相互間で互いにハートビートメッセージの送受信を行っているため、クラスタシステムを構成するノード数が増大すると、クラスタシステム全体で一定時間内に処理するハートビートメッセージの数が、ノード数nに対してnの二乗に比例して増大することになる。
この結果、前述の従来技術は、ハートビートメッセージを送受信する処理に要する各ノード内のCPU負荷が増大し、それによってオペレーティングシステムや業務アプリケーションの処理が滞ってしまうという問題点を生じさせている。また、前述の従来技術は、クラスタシステムを構成するノードの数の増加に伴い、ハートビートパスを流れるハートビートメッセージの数も増大するため、ネットワークの負荷が増大し、ハートビートメッセージが滞留してしまうことによって、ノード障害を誤検知するという問題点も生じさせてしまう。
本発明の目的は、前述した従来技術の問題点を解決し、大規模なクラスタシステムにおいても、ノードの監視に要する各ノード内のCPU負荷の増大を抑え、ネットワークを流れるハートビートメッセージ数の増加を抑えることができるようにしたノード監視方法及びクラスタシステムを提供することにある。
本発明によれば前記目的は、複数のノードを備えて構成されるクラスタシステムにおけるノード監視方法において、前記複数のノードのそれぞれは、全てのノードで一意に定まるノード構成情報を有するクラスタ制御手段を備え、前記クラスタ制御手段は、前記ノード構成情報を元に、クラスタシステムを構成する複数のノードを論理的にリング状に配置し、隣接する2つだけのノードのクラスタ制御手段との間でハートビートメッセージを相互に送受信することにより隣接するノードの監視を行い、隣接するノードからのハートビートメッセージを所定時間以上受信できなかったとき、そのノードに障害が発生したと判断することにより達成される。
本発明によれば、監視対象のノードが隣接する2つのノードのみでよいため、それぞれのノードについての監視に要する時間をクラスタシステムのノード数の増加に関わらず一定とすることができ、ノードの監視に要するCPU負荷を抑えることができる。
本発明の一実施形態によるクラスタシステムの構成を示すブロック図である。 ノードが備えるノード構成情報の構成例を説明する図である。 3台のノードにより構成されるクラスタシステムに新たなノードが加えられて、そのノードが起動されたときの処理シーケンスと、新たなノードが起動した後のあるノードのノード構成情報とを説明する図である。 4台のノードにより構成されるクラスタシステムの1つのノードが障害となった場合の系切り替えまでの処理シーケンスを示す図である。 ノードがハートビートメッセージを送信する処理動作を説明するフローチャートである。 ノードが他のノードの障害を検知する処理動作を説明するフローチャートである。 図6により説明したノードの障害を検知する処理を実行したt秒後に実行するノード障害検知の処理動作を説明するフローチャートである。 A〜Fの6ノード構成で、特定のノードがハートビートメッセージをマルチキャスト送信して監視を行わせている場合のハートビートメッセージ送信方向と、特定のノードの監視を行っているノードにおけるノード構成情報とを示す図である。 隣接するノード間だけでなく、対角線上ノードも監視対象とした場合の監視関係と、1つのノードにおけるノード構成情報とを示す図である。
以下、本発明によるノード監視方法及びクラスタシステムの実施形態を図面により詳細に説明する。
図1は本発明の一実施形態によるクラスタシステムの構成を示すブロック図である。図1に示すクラスタシステムは、3台のノードを備えて構成されているが、ノードをさらに多数備えて構成されてもよい。
図1に示す本発明の実施形態によるクラスタシステムは、ノードA1101、ノードB1201、ノードC1301の3つのノードを備え、各ノードがクラスタシステム外のコンピュータとの通信を行うネットワークに接続されると共に、障害となったノードをリセットする専用のリセットパス1002、及び、ハートビートメッセージの送受信、ノード間の情報の送受信に使用するハートビートパス1003によりノード相互間が接続されて構成されている。
ノードA1101、ノードB1201、ノードC1301のそれぞれは、同一の構成を備えるものであるため、各ノードを内部の機能等については同一の符号を付与し(但し、アプリケーション及びノード構成情報は、ノード毎に異なる内容を持つことになるため、別の符号が付与されている)、以下の説明では、主に、ノードA1101について説明することにより、ノードB1201、ノードC1301についての説明も兼ねることとする。
ノードA1101は、CPU1113、メモリ1112、3つのNIC(ネットワーク・インタフェース・カード)1102、リセット部1116を備えて構成され、メモリ1112内には、アプリケーション1103、クラスタ制御部としてのクラスタプログラム1104、OS1111が格納されていて、CPU1113が、メモリ1112上のOS1111、アプリケーション1103、クラスタプログラム1104を実行して、それらをメモリ1112上で動作させることにより、本発明の実施形態での機能を構築している。また、クラスタプログラム1104は、監視部1105、通信部1106、系切り替え部1107、ノード構成情報1108、優先度定義情報1109、リセット間隔定義情報1110を有して構成されている。
前述において、アプリケーション1103は、NIC1102、ネットワーク1001を介して、図示クラスタシステムの外部に設けられる図示しないコンピュータと通信を行うことができる。クラスタプログラム1104は、ハートビートパス1003を通して他のノードのクラスタプログラム1104に対して一定時間毎にハートビートメッセージを送信し、相手側のノードのクラスタプログラム1104からのハートビートメッセージを受信する。また、ハートビートパス1003は、クラスタプログラム1104相互間の情報の送受信にも使用される。
また、クラスタプログラム1104は、他のノードも含むアプリケーション1103の状況を監視し、アプリケーション1103の障害を検出すると系切り替えを行う。クラスタプログラム1104が他ノードの障害を検知した場合は、その障害ノードをリセットして系切り替えを行う。例えば、ノードA1101のクラスタプログラム1104が、ノードB1201の障害を検知してリセットする場合、ノードA1101のクラスタプログラム1104は、NIC1102、専用のリセットパス1002を介して、ノードB1201のリセット部1116に対してリセット要求を行う。
クラスタプログラム1104は、アプリケーション1103を監視するための監視部1105、他ノードのクラスタプログラム1104と通信するための通信部1106、系切り替えの制御を行う系切り替え部1107を有している。そして、監視部1105は、クラスタシステムを構成している全てのノードを管理するためのノード構成情報1108を使用し、系切り替え部1107は、優先度定義情報1109を用いて障害ノードをリセットするノードのリセット順を決定する。また、あるノードが障害ノードをリセットするまでの時間は、優先度定義情報1109とリセット間隔定義情報1110とによって算出される。
前述の優先度定義情報1109について詳細に説明する。いま、あるノードが障害になったとすると、その障害ノードを他のノードからリセットする必要がある。クラスタシステムは、複数のノードにより構成されているので、障害ノードをリセットする処理を行うノードが複数存在することになり、障害ノードをリセットしにいく際の競合を避けるために複数のノードに対する優先度が定義されている。そして、障害ノードをリセットする場合には、優先度の高いノードが障害ノードのリセットを行う処理を実行し、それが失敗した場合に、次に優先度の高いノードが、一定の時間後に障害ノードをリセットする。リセット間隔定義情報1110は、この一定の時間を定義した情報であり、例えば、あるノードが障害ノードをリセットするまでの時間は、そのノードの優先度と定義されているリセット間隔との積として求めることができる。
図2はノードA1101が備えるノード構成情報1108の構成例を説明する図である。ノード構成情報1108は、クラスタシステムを構成している全てのノードのそれぞれが有しており、ノード名2001、ノード番号2002、監視対象フラグ2003の各項目を含むレコードを、クラスタシステムを構成するノードの数だけ有して構成されている。ノード番号2002は、ノード毎に固有の番号であり、例えば、ノード番号が小さい順に、複数のノードをリング状に配置することによって、全てのノード間でリング構造を一意に決定することができる。このリング構造は、論理的なものであって、ハードウェア的な実際のノード間の接続構造とは異なったものであってよい。監視対象フラグ2003は、どのノードを監視するかを表すフラグであり、本発明の実施形態では、論理的に隣接する2つのノードとの間でのみ、ハートビートメッセージの送受信を行って、隣接するノードの障害を監視するようにしている。
図2に示しているノード構成情報1108の例では、ノードA1101に備えられるものとしているので、ノードA1101は、監視対象フラグ2003がONに設定されている(「○」が記述されている)ノードB、Cに対して、一定時間毎にハートビートメッセージを送信し、さらに、ノードB、Cからのハートビートメッセージが途絶えないかどうかを監視する。
図3は3台のノードにより構成されるクラスタシステムに新たなノードが加えられて、そのノードが起動されたときの処理シーケンスと、新たなノードが起動した後のノードAのノード構成情報とを説明する図であり、次に、これについて説明する。
図3(a)に示すシーケンスは、それぞれがノード番号0、20、30を有する3台のノードA1101、ノードC1301、ノードD1401により構成されたクラスタシステムに、ノード番号10を有するノードB1201が加えられて、ノードB1201が起動された場合のシーケンスの例である。そして、このシーケンスが開始される前、ノードA1101、ノードC1301、ノードD1401の3ノードが論理的にリング状に接続され、ノードA1101とノードC1301、ノードC1301とノードD1401、ノードD1401とノードA1101の各組のノードが相互に監視を行っている。以降、相互監視の状態を「−」で表すこととすると、前述の構成は、A−C−D−Aと表すことができる。
(1)前述したようなA−C−D−Aの構成で、クラスタシステムにノードB1201が新たに加えられ、ノードB1201が起動されると、ノードB1201は、まず、起動通知を全てのノードに対してブロードキャストにより送信する。起動通知には、ノード番号が含まれているため、起動通知3201を受信したノードA1101は、既に監視しているノードCよりもノード番号が小さいノードBの監視の必要性を判断することができる。また、ノードC1301も、前述と同様にノードBの監視の必要性を判断することができる。一方、ノードD1401は、新たに加わったノードB1201の監視の必要がないことを判断する(シーケンス3201、3202、3203)。
(2)シーケンス3201、3202、3203により、起動通知を受信したノードA、C、Dは、この起動通知に対して起動応答を返す。このとき、前述と同様に、各起動応答にノード番号を含めて起動応答を返す。これにより、ノードB1201は、システムに存在するノードを把握することができる(シーケンス3101、3301、3401)。
(3)ノードA1101及びノードC1301は、ノードB1201を監視するために、自ノード内のノード構成情報1108の監視対象を変更する必要があり、監視対象をノードB1201にするための監視対象変更連絡の送信を相互に行う(シーケンス3102、3302)。
(4)シーケンス3102、3302により、監視対象変更連絡を受信したノードA、Cは、監視対象ノードを変更をする必要があると判断できれば、監視対象変更応答を相手のノードに返す(シーケンス3103、3303)。
(5)ノードA1101及びノードC1301は、シーケンス3103、3303による監視対象変更応答を受信すると、監視対象ノードを互いに変更し、ハートビートメッセージをノードB1201に対して送信する(シーケンス3104、3304)。
(6)ハートビートメッセージを受信したノードB1201は、これを契機に送信元のノードに対してハートビートメッセージを送信する。以後、クラスタシステムは、4台のノードにより構成されたものとして処理動作を行うことになる(シーケンス3206、3207)。
前述したような手続きにより、新たなノードが加えられて起動された場合に、新たなノードをリング状の監視システムに組み込むことができ、A−B−C−D−Aという構成になる。ノードAにおけるノードB接続後のノード構成情報は、図3(b)に3501として示したようなものとなる。
図4は4台のノードにより構成されるクラスタシステムの1つのノードが障害となった場合の系切り替えまでの処理シーケンスを示す図であり、次に、これについて説明する。ここに示すシーケンスは、図3により説明したシーケンスにより、それぞれがノード番号0、10、20、30を有する4台のノードA1101、B1201、C1301、D1401によりクラスタシステムが構成された後に、ノードB1201に障害が発生した場合を例としており、ノード間は、A−B−C−D−Aという構成となっている。
(1)いま、ノード間がA−B−C−D−Aという構成で、ノードB1201が障害になったものとする。この場合、ノードB1201からのハートビートメッセージが送信されなくなるため、ノードB1201を監視しているノードA1101は、ノードB1201の障害を検知する。このとき、ノードA1101は、A−B−C−D−A構成におけるノードB1201と監視対象の正常ノードD1401で挟まれたノードC1301もノード障害が発生した可能性があると判断し、ノードB1201の障害及びノードC1301の障害の可能性を示す障害検知通知を全ノード、ここでは、ノードC1301とノードD1401とに送信する(シーケンス4101、4102)。
(2)一方、ノードC1301も、ノードB1201の障害を検知し、障害検知通知を全ノード、ここでは、ノードA1101とノードD1401に送信する(シーケンス4301、4302)。
(3)ノードC1301は、ノード間のA−B−C−D−Aという構成において、ノードB1201と監視対象の正常ノードD1401で挟まれたノードA1101もノード障害が発生した可能性があると判断するが、ノードA1101からのノードB1201の障害検知通知を受信しているため、障害ノードはB1201のみである判断することができる。また、ノードA1101も、ノードC1301からの障害検知通知を受信するため、前述と同様に、障害ノードはB1201のみである判断することができ、ノードD1401も、ノードA1101とノードC1301とからノードB1201の障害が通知されるため、ノードB1201のみが障害であると判断することができる。この結果、全てのノードがノードB1201の障害を判断することができたため、以後、優先度定義情報1109に設定されている障害ノードをリセットするノードのリセット優先度に従って、これらのノードA、C、Dの1つがノードB1201のリセットを行う(シーケンス4202)。
(4)図4に示す例では、ノードD1401がリセット優先度が最も高いものとしており、ノードD1401は、ノードB1201に対してリセット信号を送信して、ノードB1201のリセットを行い、ノードB1201のリセットに成功すると全てのノードに対してリセット完了通知を発行する(シーケンス4401〜4403)。
(5)ノードA1101は、ノードD1401からのノードB1201のリセットが完了したことの通知であるリセット完了通知を受信すると、系切り替え処理を行い、系切り替え完了通知を全てのノードに送信する。これにより、クラスタシステムを構成する全てのノードでの認識を合わせることができる(シーケンス4103〜4105)。
図5はノードがハートビートメッセージを送信する処理動作5001を説明するフローチャートであり、次に、これについて説明する。この処理は、各ノードが一定時間毎に実行する処理である。
(1)各ノードは、ハートビートメッセージの送信を実行する時点で、まず、ノード数カウンタを0にリセットし、自ノード内のノード構成情報1108に設定されていて、自ノードが認識している自ノード以外のノードのレコードを1つ取得し、そのレコードが示している対象ノードの監視対象フラグ2003がONとなっているか否かを判定する(ステップ5002、5003)。
(2)ステップ5003の判定で、対象ノードの監視対象フラグ2003がONとなっていた場合、処理を行っているノードは、対象ノードにハートビートメッセージを送信する(ステップ5004)。
(3)ステップ5004の処理の後、あるいは、ステップ5003の判定で、対象ノードの監視対象フラグ2003がONとなっていなかった場合、ノード数カウンタを1だけカウントアップし、ノード数カウンタの値が、自ノードが認識しているノード数より小さいか否かを判定し、ノード数カウンタの値が、自ノードが認識しているノード数より小さかった場合、ステップ5002からの処理に戻って、ノード構成情報1108内の次のレコードを取得して処理を続け、ノード数カウンタの値が、自ノードが認識しているノード数より小さくなかった場合、ここでの処理を終了する(ステップ5005、5006)。
図6はノードが他のノードの障害を検知する処理動作6001を説明するフローチャートであり、次に、これについて説明する。この処理は、各ノードが一定時間毎に実行する処理である。
(1)各ノードは、まず、自ノード内のノード構成情報1108に設定されている全てのノードを対象として、ここでの処理を実行することを設定する(ステップ6002)。
(2)自ノード内のノード構成情報1108に設定されていて、自ノードが認識している自ノード以外のノードのレコードを1つ取得し、そのレコードが示している対象ノードの監視対象フラグ2003がONとなっているか否かを判定する(ステップ6003)。
(3)ステップ6003の判定で、対象ノードの監視対象フラグ2003がONとなっていた場合、その対象ノードからのハートビートメッセージが一定時間以上に渡って受信できていないか否かを判定する(ステップ6004)。
(4)ステップ6004の判定で、対象ノードからのハートビートメッセージが一定時間以上に渡って受信できていなかった場合、対象ノードが障害となっていると判断して、ノード障害を検知し、対象ノード以外の他のノードに障害を通知する(ステップ6005、6006)。
(5)ステップ6006の処理の後、または、ステップ6003の判定で、取得したレコードが示している対象ノードの監視対象フラグ2003がONとなっていなかった場合、あるいは、ステップ6004の判定で、対象ノードからのハートビートメッセージが一定時間の間に正常に受信できていた場合、全てのノードについて、前述までの処理を行ったか否かをチェックし、済んでいなければ前述までの処理を次のノードに対して実行し、全てのノードについて処理が済んでいればここでの処理を終了する(ステップ6007)。
図7は図6により説明したノードの障害を検知する処理を実行したt秒後に実行するノード障害検知の処理動作7001を説明するフローチャートであり、次に、これについて説明する。複数の連続するノードが同時に障害となった場合、障害ノード群の両端のノードの障害については、隣接するノードによって即時にその検知することができるが、障害ノード群の両端以外のノードについては、隣接ノードの障害検知通知を送信することができないことをもって障害と判断する。ここでの処理は、障害ノード群の両端以外のノード障害を検知するために図6の処理のt秒後に実行される処理である。時間tは、できるだけ小さい値の方が障害検知を早く行うことができるが、小さくしすぎると誤検知の可能性が高くなるため、システムによってチューニングが必要となる。
(1)各ノードは、まず、自ノード内のノード構成情報1108に設定されている全てのノードを対象として、ここでの処理を実行することを設定する(ステップ7002)。
(2)自ノード内のノード構成情報1108に設定されていて、自ノードが認識している自ノード以外のノードのレコードを1つ取得し、そのレコードが示している対象ノードが正常であること、または、障害であることが確定しているか否かを判定する(ステップ7003)。
(3)ステップ7003の判定で、該当ノードが正常、または、障害であることが確定していなかった場合、該当ノードが正常なノードに挟まれているか否かを判定し、該当ノードが正常なノードに挟まれていた場合、該当ノードが正常であると判断する(ステップ7004、7005)。
(4)ステップ7004の判定で、該当ノードが正常なノードに挟まれていなかった場合、該当ノードが障害となっていると判断して、ノード障害を検知し、対象ノード以外の他のノードに障害を通知する(ステップ7006、7007)。
(5)ステップ7005またはステップ7007の処理の後、または、ステップ7003の判定で、該当ノードが正常、または、障害であることが確定していた場合、全てのノードについて、前述までの処理を行ったか否かをチェックし、済んでいなければ前述までの処理を次のノードに対して実行し、全てのノードについて処理が済んでいればここでの処理を終了する(ステップ7008)。
前述した本発明の実施形態におけるノードでの各処理は、プログラムにより構成し、本発明が備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
図8はクラスタシステムがA〜Fの6ノードで、A−B−C−D−E−F−Aという構成を持ち、特定のノードがハートビートメッセージをマルチキャスト送信して監視を行わせている場合のハートビートメッセージ送信方向と、特定のノードの監視を行っているノードにおけるノード構成情報とを示す図である。
前述までに説明した本発明の実施形態は、各ノードが隣接するノード相互間でのみハートビートメッセージの送受信を行っているので、A〜Fの6ノード構成で、A−B−C−D−E−F−Aという構成の場合のハートビートメッセージ送信は、図8(a)に8001として示す例の実線の矢印で示すような方向に行われる。このように、A−B−C−D−E−F−Aの構成において隣接するノードのみを監視した場合、ノードD、E、Fが同時に障害になると、ノードAがノードFの障害を検知し、ノードCがノードDの障害を検知することができる。しかし、ノードEを検知できるノードがないため、ノードEからノードDとノードFとの障害を検知したという通知がこないことをもって、ノードEの障害を確定せざるを得ないことになる。この場合、ノードEからの障害検知通知を待つタイムアウト時間が設けられる。
本発明の実施形態は、前述したような隣接する3つのノードが同時に障害となった場合にも、中央に位置するノードの障害を即時に検知することができるようにすることができる。すなわち、本発明の実施形態は、隣接するノードに対する監視に加え、さらに、図8(a)に点線の矢印で示すように、特定のノードEがノードA、Bに対してハートビートメッセージをマルチキャスト送信するようにしている。このようにした場合、ノードEを挟むノード群が同時に障害となった場合でも、ノードAとノードBとは、ノードEの障害を即時に検知することができる。なお、ノードEは、全てのノードに対してハートビートメッセージをブロードキャストにより送信してもよい。ブロードキャストによりハートビートメッセージを送信することにより、ノードEの障害は、その他いずれかのノードによって、即時に検知することができる。
大規模クラスタシステムにおいて、ノード間の重要度に差がある場合は、特定の重要度の高いノードのみがハートビートメッセージを複数のノードに対して送信することによって複数ノードが同時に障害となった場合でも、その障害を即時に検知することが可能となる。
図8(b)には、図8(a)の構成例の場合のノードAにおけるノード構成情報8002の例を示している。監視対象フラグ2003の状態から判るように、ノードAは、隣接ノードBとノードFとを監視対象として、ハートビートメッセージを相互に送受信する。ノードAは、前述に加えて、ノードEからのブロードキャストにより送信されてきたハートビートメッセージを受信して、ノードEの障害を監視する。このため、ノード構成情報8002のノードEに対応する監視対象フラグ2003にフラグが設定される。但し、ノードAは、ノードEについては障害の監視のみを行えばよく、自ノードAの障害をノードEに監視させる必要はないため、ノードBやノードFとは区別できるフラグ(図8(b)の例では、「△」)が立てられる。
図9は隣接するノード間だけでなく、対角線上ノードも監視対象とした場合の監視関係と、1つのノードにおけるノード構成情報とを示す図である。
ノードを論理的にリング状に配置し、連続する複数のノード障害が発生した場合、監視されていないノードの障害検知にかかる時間をなくすためには、隣接するノードだけではなく、その他のノードからも監視されていなければならない。ノードを論理的にリング状に接続して、隣接するノード相互間で監視を行うシステムにおいて、隣接するノード以外のあるノードの障害を検知できる可能性が最も高いノードは、障害となったノードから最も遠い位置にあるノード、すなわち、対角線上のノードである。
そのため、本発明の実施形態は、対角線上のノード同士も相互に監視するようにすることにより、連続する複数ノードが同時に障害となった場合にも、障害ノード数が全ノードの半数以下であれば、障害ノード全てを即時検知することが可能となるように構成することができる。厳密には、ノード総数が偶数の場合と奇数の場合とがあるため、ノード総数をnとした場合に、即時にリセット可能な障害ノード群の個数は、以下に示す式により求めることができる。
ノード総数が偶数の場合:n/2+1
ノード総数が奇数の場合:(n+1)/2
前述したように、対角線上のノード同士も相互に監視するようにした場合、ノード数が増加したとしても、1ノードあたりの監視にかかるコストを変化させることなく、かつ、連続する半数のノードが同時障害となっても即座に障害を検知して系の切り替えを実施することができる。
図9(a)に示す構成例9001は、A〜Hの8ノード構成で、A−B−C−D−E−F−G−H−Aという構成の場合の隣接ノード間の相互監視と対角線上のノード同士の相互監視とを行っている例であり、対角線上のノード同士として、ノードA−E、ノードB−F、ノードC−G、ノードD−Hの各ノードの組がハートビートメッセージの送受信による相互監視を行っている。前述したような構成でのノードAにおけるノード構成情報9003は、図9(b)に示すように、監視対象フラグ2003がノードB、E、Hに設定されている。
前述したような構成において、図9(a)に示す領域9002内のノード群が同時に障害になった場合、ノードAは、ノードHの障害を即座に検知すると同時に、ノードEの障害も検知することができる。同様に、ノードBは、ノードFの障害、ノードCは、ノードDとノードGとの障害を即座に検知することができる。そのため、全8ノードのうち、稼働しているノードが3ノードのみであるにもかかわらず、5ノードの障害を即座に検知することが可能となる。
前述した本発明の実施形態によれば、監視対象のノードの数を実施形態に比べて大幅に低減することができ、それぞれのノードについての監視に要する時間をクラスタシステムのノード数の増加に関わらず一定とすることができる。また、ノード数の増大に対し、クラスタシステム全体で一定時間内に処理するハートビートメッセージの数をノード数nに比例するものとすることができ、大規模クラスタシステムにおいても、ノードの監視に要するCPU負荷を抑え、ネットワークを流れるハートビートメッセージ数の爆発的な増加を抑えることができるため、より大規模なクラスタシステムの構築が可能となる。
1001 ネットワーク
1002 リセットパス
1003 ハートビートパス
1101、1201、1301、1401 ノード
1102 NIC(ネットワーク・インタフェース・カード)
1103、1203、1303 アプリケーション
1104 クラスタプログラム
1105 監視部
1106 通信部
1107 系切り替え部
1108、1208、1308 ノード構成情報
1109 優先度定義情報
1110 リセット間隔定義情報
1111 OS
1112 メモリ
1113 CPU
1116 リセット部

Claims (5)

  1. 複数のノードを備えて構成されるクラスタシステムにおけるノード監視方法において、
    前記複数のノードのそれぞれは、全てのノードで一意に定まるノード構成情報を有するクラスタ制御手段を備え、
    前記クラスタ制御手段は、前記ノード構成情報を元に、クラスタシステムを構成する複数のノードを論理的にリング状に配置し、隣接する2つだけのノードのクラスタ制御手段との間でハートビートメッセージを相互に送受信することにより隣接するノードの監視を行い、隣接するノードからのハートビートメッセージを所定時間以上受信できなかったとき、そのノードに障害が発生したと判断することを特徴とするノード監視方法。
  2. 前記クラスタ制御手段は、隣接するノードに障害が発生したことを検知したとき、他のノードに対して、自ノードに隣接するノードの障害を通知する障害検知通知を送信し、障害となった1つのノードまたは複数のノードを挟むノードからの障害検知通知を受信したとき、その通知の内容から障害ノードまたは障害ノード群を特定することを特徴とする請求項1記載のノード監視方法。
  3. 前記複数のノードの内予め定められた特定のノードのクラスタ制御手段は、隣接ノード以外の他の1または複数のノードにもハートビートメッセージを送信することにより、前記隣接ノード以外の他の1または複数のノードにも自ノードの障害を検知させることを特徴とする請求項1記載のノード監視方法。
  4. 前記クラスタ制御手段は、隣接するノード以外の対角線上にあるノードとの間でもハートビートメッセージを相互に送受信することにより対角線上にあるノードの監視をも行うことを特徴とする請求項1記載のノード監視方法。
  5. 複数のノードを備えて構成されるクラスタシステムにおいて、
    前記複数のノードのそれぞれは、全てのノードで一意に定まるノード構成情報を有するクラスタ制御手段を備え、
    前記クラスタ制御手段は、前記ノード構成情報を元に、クラスタシステムを構成する複数のノードを論理的にリング状に配置し、隣接する2つだけのノードのクラスタ制御手段との間でハートビートメッセージを相互に送受信することにより隣接するノードの監視を行い、隣接するノードからのハートビートメッセージを所定時間以上受信できなかったとき、そのノードに障害が発生したと判断することを特徴とするクラスタシステム。
JP2009115711A 2009-05-12 2009-05-12 ノード監視方法及びクラスタシステム Withdrawn JP2010266935A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009115711A JP2010266935A (ja) 2009-05-12 2009-05-12 ノード監視方法及びクラスタシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009115711A JP2010266935A (ja) 2009-05-12 2009-05-12 ノード監視方法及びクラスタシステム

Publications (1)

Publication Number Publication Date
JP2010266935A true JP2010266935A (ja) 2010-11-25

Family

ID=43363886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009115711A Withdrawn JP2010266935A (ja) 2009-05-12 2009-05-12 ノード監視方法及びクラスタシステム

Country Status (1)

Country Link
JP (1) JP2010266935A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013207870A (ja) * 2012-03-27 2013-10-07 Brother Ind Ltd 充電装置及び印刷システム
CN116909759A (zh) * 2023-09-12 2023-10-20 苏州浪潮智能科技有限公司 信息处理方法、装置及设备、介质和控制器集群

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013207870A (ja) * 2012-03-27 2013-10-07 Brother Ind Ltd 充電装置及び印刷システム
CN116909759A (zh) * 2023-09-12 2023-10-20 苏州浪潮智能科技有限公司 信息处理方法、装置及设备、介质和控制器集群
CN116909759B (zh) * 2023-09-12 2024-01-19 苏州浪潮智能科技有限公司 信息处理方法、装置及设备、介质和控制器集群

Similar Documents

Publication Publication Date Title
EP2691859B1 (en) Fault detection and recovery as a service
TWI235299B (en) Method for providing application cluster service with fault-detection and failure-recovery capabilities
JP4695705B2 (ja) クラスタシステムおよびノード切り替え方法
CN106330475B (zh) 一种通信系统中管理主备节点的方法和装置及高可用集群
US20030005350A1 (en) Failover management system
EP1697843B1 (en) System and method for managing protocol network failures in a cluster system
JP2010541413A (ja) ネットワーク競合防止装置およびネットワーク競合防止方法
Rahman et al. Modified bully algorithm using election commission
US11748217B2 (en) Method for failure detection and role selection in a network of redundant processes
JP2009239429A (ja) 通信システムのノード識別子設定方法
JP2010266935A (ja) ノード監視方法及びクラスタシステム
JP2013235481A (ja) 故障検出装置
JP2011203941A (ja) 情報処理装置、監視方法、および監視プログラム
EP2698949B1 (en) METHOD AND SYSTEM FOR SETTING DETECTION FRAME TIMEOUT DURATION OF ETHERNET NODEs
JP2009003491A (ja) クラスタシステムにおけるサーバ切り替え方法
KR100832543B1 (ko) 계층적 다중 백업 구조를 갖는 고가용성 클러스터 시스템및 이를 이용한 고가용성 구현 방법
JP2005159546A (ja) ネットワーク装置
JPH01217666A (ja) マルチプロセッサシステムの障害検出方式
JP2000082053A (ja) ネットワ―ク監視装置
JP4692419B2 (ja) ネットワーク装置及びそれに用いる冗長切替え方法並びにそのプログラム
JP2008287632A (ja) 制御装置復帰システム
JPH05304528A (ja) 多重化通信ノード
JP2814313B2 (ja) 同報通信異常時の伝送路切り換え方式
CN115766516A (zh) 一种基于swim的故障检测方法及装置、电子设备
JP5459117B2 (ja) データ伝送装置及びデータ伝送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110215

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20121106