JP5096799B2 - クラスタシステム、計算機、および障害対処方法 - Google Patents

クラスタシステム、計算機、および障害対処方法 Download PDF

Info

Publication number
JP5096799B2
JP5096799B2 JP2007141432A JP2007141432A JP5096799B2 JP 5096799 B2 JP5096799 B2 JP 5096799B2 JP 2007141432 A JP2007141432 A JP 2007141432A JP 2007141432 A JP2007141432 A JP 2007141432A JP 5096799 B2 JP5096799 B2 JP 5096799B2
Authority
JP
Japan
Prior art keywords
success
failure
information storage
survival
storage device
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
JP2007141432A
Other languages
English (en)
Other versions
JP2008299369A (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.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute 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 Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2007141432A priority Critical patent/JP5096799B2/ja
Publication of JP2008299369A publication Critical patent/JP2008299369A/ja
Application granted granted Critical
Publication of JP5096799B2 publication Critical patent/JP5096799B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、計算機システムにおいて可用性を向上させる技術に関する。特に、複数の計算機(以下、「ノード」と呼ぶ。)と、それらノードにより共有される外部記憶装置(以下、「共有記憶装置」と呼ぶ。)とを備えるシステム(以下、「クラスタシステム」と呼ぶ。)において、可用性を向上させるクラスタシステム、計算機、および障害対処方法に関する。
国際商取引が盛んに行われ、また、企業間競争が激化している時代背景にあって、情報処理システムには24時間365日連続の正常運転が要求されてきている。特に金融や通信等のミッションクリティカルなシステムの場合、わずかなシステムの停止が、その企業のビジネスに致命的な打撃を与えることもある。
そのため、ミッションクリティカルなシステムにおいては、システムの可用性を向上させるため、クラスタシステムが採用されることが多い。(例えば、特許文献1参照。)クラスタシステムにおいては、スプリットブレイン状態を回避し、クラスタシステム全体の健全性を維持するために、生存ノードを定期的に確認しておく必要がある。スプリットブレイン状態とは、クラスタシステムの各ノードが、他ノードの生存状況を確認できない状態のことである。この状態に陥ると、複数のノードによる共有記憶装置への書き込みが競合し、結果として、共有記憶装置に記憶されたデータの一貫性を喪失し、また、そのデータが破壊されるなど、クラスタシステムにおける致命的状態となることがある。
一のノードがクラスタシステム全体の健全性を判定するための一つの方式として、共有記憶装置の一部の領域(以下、「生存情報記憶領域」と呼ぶ。)に、各ノードが正常動作中である旨を示す生存情報を記録し、その生存情報をそれぞれのノードで確認しあう方式(以下、「クォーラムディスク方式」と呼ぶ。)がある。
クォーラムディスク方式の場合、生存情報記憶領域が破壊されると、各ノード上のクラスタソフトウェアは、現在のクラスタシステム内の他ノードの状態を知ることができなくなり、現在の状態が正常か否かの判断ができなくなる。そのため、クラスタソフトウェアは、スプリットブレイン状態を回避するため、自身のノードを停止させざるを得ない。その結果、クラスタシステムの全ノードが停止して、全面的な業務停止を招く場合もある。これを防止するため、RAID(Redundant Arrays of Inexpensive Disks)や、ミラーリングソフトウェアを利用して、共有記憶装置を冗長構成とすることで、可用性の向上が図られることもある。
特開2005−25289号公報
しかし、共有記憶装置を冗長構成としても、共有記憶装置を制御するOS(Operating System)やクラスタソフトウェア、共有記憶装置を利用するアプリケーション等のソフトウェアに不具合がある場合に、健全な生存記憶領域の維持が困難な場合がある。つまり、これらのソフトウェアが生存情報記憶領域を破壊するような命令を発した場合には、冗長化された生存情報記憶領域の全てが同様に破壊されてしまう。つまり、高い可用性が要求されるミッションクリティカルなシステムにおいては、RAID等による冗長化だけでは十分でないこともある。したがって現状では、これらのリスクに対処し、可用性を担保するため、多大な運用管理コストが発生していた。
本発明は、本発明者による上記着目に基づいて完成された発明であり、その主たる目的は、クラスタシステムにおける可用性の向上を実現する技術を提供することである。
本発明のある態様は、クラスタシステムに関する。このクラスタシステムは、相互に稼働状態を監視しつつ動作する複数の計算機と、計算機が正常動作中である旨を示す生存情報を記憶する第1および第2の生存情報記憶装置とを備える。複数の計算機においては、第1および第2の生存情報記憶装置のうちの一方の生存情報記憶装置が参照先として共通設定され、かつ、複数の計算機から参照される生存情報記憶装置が同一となるように参照先を変更するための共通の切替条件が設定されている。計算機は、正常動作中において、参照先の生存情報記憶装置に自計算機が正常動作中である旨を示す生存情報を記録する生存通知部と、参照先の生存情報記憶装置と生存情報の記録の成否とを示す成否情報を他の計算機に通知する成否通知部と、他の計算機から通知された成否情報を参照し、参照先の生存情報記憶装置に対する複数の計算機による生存情報の記録の成否に基づいて、切替条件の成否を判定する切替判定部と、切替条件が成立したとき、第1および第2の生存情報記憶装置のうちの他方の生存情報記録装置を参照先として設定変更する参照先変更部とを備える。
本発明の別の態様は、計算機に関する。この計算機は、他の計算機と相互に稼働状態を監視しつつ動作する計算機であって、自計算機が正常動作中である旨を示す生存情報を記録する第1および第2の生存情報記憶装置と接続され、第1および第2の生存情報記憶装置のうちの一方の生存情報記憶装置が、他の計算機と共通の参照先として設定され、かつ、他の計算機と同一の生存情報記憶装置を参照するように参照先を変更するための切替条件が、他の計算機と共通に設定され、正常動作中において、参照先の生存情報記憶装置に自計算機が正常動作中である旨を示す生存情報を記録する生存通知部と、参照先の生存情報記憶装置と生存情報の記録の成否とを示す成否情報を他の計算機に通知する成否通知部と、他の計算機から通知された成否情報を参照し、参照先の生存情報記憶装置に対する自計算機および他の計算機による生存情報の記録の成否に基づいて、切替条件の成否を判定する切替判定部と、切替条件が成立したとき、第1および第2の生存情報記憶装置のうちの他方の生存情報記録装置を参照先として設定変更する参照先変更部とを備える。
本発明のさらに別の態様は、障害対処方法に関する。この障害対処方法は、他の計算機と相互に稼働状態を監視しつつ動作する計算機における障害対処方法であって、正常動作中において、計算機が正常動作中である旨を示す生存情報を記録する第1および第2の生存情報記憶装置のうちの一方の生存情報記憶装置を参照するように他の計算機と共通に設定された参照先の生存情報記憶装置に、自計算機が正常動作中である旨を示す生存情報を記録する生存通知ステップと、参照先の生存情報記憶装置と生存情報の記録の成否とを示す成否情報を他の計算機に通知する成否通知ステップと、他の計算機から通知された成否情報を参照し、参照先の生存情報記憶装置に対する自計算機および他の計算機による生存情報の記録の成否に基づいて、計算機から参照される生存情報記憶装置が他の計算機から参照される生存情報記憶装置と同一となるように参照先を変更するために他の計算機と共通に設定された切替条件の成否を判定する切替判定ステップと、切替条件が成立したとき、第1および第2の生存情報記憶装置のうちの他方の生存情報記録装置を参照先として設定変更する参照先変更ステップと、を備える。
なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、クラスタシステムにおける可用性を向上させることができる。
本発明の実施形態を説明する前に、実施形態の概要を説明する。前述したように、クォーラムディスク方式において、共有記憶装置の生存情報記憶領域は、クラスタ内の各ノードがクラスタシステムの正常性を確認するための重要な領域であり、この領域が破壊されるとクラスタシステム内のノードが全面的に停止する場合もある。RAIDや、ミラーリングソフトウェアを利用した、生存情報記憶領域の冗長化だけでは可用性の担保が十分でない場合もある。
ここでは、この課題を解決する技術として、クラスタシステムの各ノードが通常時にアクセスする正系の共有記憶装置とは別に、通常時には各ノードのOSおよびアプリケーション等のソフトウェアからは基本的にアクセスできない、副系の共有記憶装置を用意した構成を提案する。副系の共有記憶装置は、通常時に各ノードのソフトウェアから操作されることはないため、そこに配置される生存情報記憶領域が破壊されることはない。正系の共有記憶装置の生存情報記憶領域が壊れた場合であっても、副系の共有記憶装置の生存情報記憶領域を使用するように切替えることで、クラスタシステムの全面停止を回避できる。以下、実施形態を説明する。
図1は、本発明の実施形態にかかるクラスタシステムの構成例を示す図である。クラスタシステム100は、ノード10と総称される第1のノード10aと、第2のノード10bと、第3のノード10cと、生存情報記憶装置20と総称される第1の生存情報記憶装置20aと、第2の生存情報記憶装置20bと、成否情報記憶装置30とを備える。なお、以下の説明において特に断らない限り、「生存情報記憶装置」を、いわゆる共有記憶装置としての記憶装置そのもの、および、共有記憶装置に保持される生存情報記憶領域の両方の意味で使用する。「成否情報記録装置」についても同様である。
ノード10は、他の計算機と相互に稼働状態を監視しつつ動作する計算機である。それぞれのノード10は、自ノードが正常動作中である旨を示す生存情報を定期的に記録する生存情報記憶装置20と、その生存情報記憶装置20への生存情報の記録の成否を示す成否情報を記録する成否情報記憶装置30とに接続されている。また、それぞれのノード10は、スプリットブレイン状態を回避するため、生存情報記憶装置20のいずれか一方を参照するように設定されている。つまり、いずれのノード10も、同じ瞬間には、第1の生存情報記憶装置20aまたは第2の生存情報記憶装置20bのうちの、共通する一方の生存情報記憶装置20を参照している。さらに、それぞれのノード10は、スプリットブレイン状態を回避するため、他のノード10と同一の生存情報記憶装置20を参照するように参照先を変更するための共通の切替条件が設定されている。
また、それぞれのノード10は、生存情報記憶装置20に生存情報を記録し、他のノード10が生存情報記憶装置20に記録した生存情報を参照することにより、クラスタシステム100の健全性を確認する。また、それぞれのノード10は、成否情報記憶装置30に成否情報を記録し、また、他のノード10が成否情報記憶装置30に記録した成否情報を参照して、切替条件の成否を判定する。切替条件が成立したとき、参照する生存情報記憶装置20を他の生存情報記憶装置20に変更する。
具体例として、いずれのノード10とも第1の生存情報記憶装置20aを参照しており、切替条件が「一方の生存情報記憶装置20に対する生存情報の記録に失敗したノード数が3以上であること。」の場合について考える。第1の生存情報記憶装置20aに障害が発生すると、それぞれのノード10は、第1の生存情報記憶装置20aへの生存情報の記録に失敗する。この場合、それぞれのノード10は、第1の生存情報記憶装置20aへの生存情報の記録に失敗した旨を示す成否情報を成否情報記憶装置30に記録する。それぞれのノード10は、成否情報記憶装置30を参照して、全てのノード10が第1の生存情報記憶装置20aへの生存情報の記録に失敗したことに基づき、切替条件の成否を判定する。この場合、切替条件が成立するため、それぞれのノード10は、参照先を切替えて、以降、第2の生存情報記憶装置20bを参照する。
図2は、図1の生存情報記憶装置20のデータ構造の例を示す図である。生存情報記憶装置20は、データ構造として、ノードID欄102と、稼働状態欄104と、更新時刻欄106とを含む。ノードID欄102には、生存情報を記録するノードの識別情報が、稼働状態欄104には、そのノードの稼働状態が、更新時刻欄106には、生存情報が記録された時刻が、それぞれ記録される。同図では、ノードIDが「001」である第1のノード10aが、正常動作中である旨を示す生存情報を、5秒ごとに記録している状態を示している。なお、以降の説明においても、第1のノード10aのノードIDは「001」とし、第2のノード10bと第3のノード10cについても同様に、それぞれ「002」と「003」とする。
図3は、図1の成否情報記憶装置30のデータ構造の例を示す図である。成否情報記憶装置30は、データ構造として、ノードID欄110と、参照記憶装置ID欄112と、アクセス成否欄114と、更新時刻欄116とを含む。ノードID欄110には、成否情報を記録するノードの識別情報が、参照記憶装置ID欄112には、そのノードが参照する生存情報記憶装置20の識別情報が、それぞれ記録される。また、アクセス成否欄114には、生存情報記憶装置20への生存情報の記録の成否が、更新時刻欄116には、成否情報が記録された時刻が、それぞれ記録される。
図3(a)では、各ノード10は、識別情報が「#1」である第1の生存情報記憶装置20aに生存情報を記録し、その記録は成功した旨を示す成否情報が記録された状態を示している。一方で、図3(b)では、各ノード10は、第1の生存情報記憶装置20aに生存情報を記録しようとしたが、その記録は失敗した旨を示す成否情報が記録された状態を示している。
図4は、図1のノード10の構成例を示す機能ブロック図である。ノード10は、設定保持部40と、生存通知部46と、成否通知部48と、切替判定部50と、参照先変更部52とを含む。これらの構成は、ハードウェアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
設定保持部40は、ノード10において、他のノードと共通に設定される設定情報を保持する。設定保持部40は、参照オブジェクト42と、切替条件44とを有する。参照オブジェクト42は、本実施形態においては、第1の生存情報記憶装置20aと、第2の生存情報記憶装置20bとを参照先として設定された参照先設定情報である。図5は、参照オブジェクト42の構成例を示す図である。この例では、参照オブジェクト42は、シンボリックリンクファイル60と、デバイスファイル62で総称される第1のデバイスファイル62aと、第2のデバイスファイル62bとを含む。
デバイスファイル62は、生存情報記憶装置20のデバイス情報を含む設定ファイルであり、第1のデバイスファイル62aは第1の生存情報記憶装置20aのデバイス情報を含み、第2のデバイスファイル62bは第2の生存情報記憶装置20bのデバイス情報を含む。デバイスファイル62は、実際にはOSの設定情報として、OSにより保持されてもよい。シンボリックリンクファイル60は、どちらか一方のデバイスファイル62を参照している。後述する生存通知部46は、シンボリックリンクファイル60を利用して、いずれか一つのデバイスファイル62を介して、いずれか一つの生存情報記憶装置20にアクセスする。図4に戻る。
切替条件44は、複数のノード10から参照される生存情報記憶装置20が同一となるように参照先を変更するための、複数のノード10間で共通に設定された条件である。具体的な切替条件44の例を以下に示す。
1.一方の生存情報記憶装置20に対する生存情報の記録に失敗したノード数が3以上であること。
2.一方の生存情報記憶装置20に対する生存情報の記録に失敗したノード数が2以上であること。
3.クラスタシステムの全ノード数における、一方の生存情報記憶装置20に対する生存情報の記録に失敗したノード数の割合が50%より大きいこと。
このように、切替条件44の内容に制限はなく、クラスタシステムのノード数等の構成や運転条件や可用性の要件等に応じ、システムの総合試験等を実施する中で、適切な切替条件が定められてよい。なお、以下の例では、切替条件44として、「一方の生存情報記憶装置20に対する生存情報の記録に失敗したノード数が3以上であること。」が定められているものとする。
生存通知部46は、ノード10が正常動作中において、参照オブジェクト42が参照する生存情報記憶装置20に、図2で説明した、自ノードが正常動作中である旨を示す生存情報を記録する。
成否通知部48は、図3で説明した、生存通知部46による生存情報記憶装置20への生存情報の記録の成否を示す成否情報を他ノードに通知する。他ノードへの通知は、一のノードから他のノードへ、成否情報をマルチキャストやブロードキャストすることにより実現されてもよい。また、各ノード同士がP2P(Peer to Peer)で通信をして、相互に成否情報を通知してもよい。本実施形態の説明においては、成否通知部48は、成否情報を他ノードに通知するために、成否情報を成否情報記憶装置30に記録する。
切替判定部50は、他の計算機から通知された成否情報を参照し、各ノード10の生存情報記憶装置20に対する生存情報の記録の成否に基づいて、切替条件44の成否を判定する。本実施形態の説明においては、切替判定部50は、成否情報記憶装置30から他のノードの成否情報を読み出すことにより、他のノードの成否情報を参照する。
参照先変更部52は、切替判定部50での判定において切替条件が成立したと判定されたとき、参照オブジェクト42の参照先を、これまで生存情報を記録していた生存情報記憶装置20から、他方の生存情報記憶装置20へと変更する。例えば、図5で示した、一方のデバイスファイル62を参照しているシンボリックリンクファイル60を、他方のデバイスファイル62を参照するように変更することにより、参照オブジェクトが参照する生存情報記憶装置20を変更する。前述したように、生存通知部46は、参照オブジェクト42を利用して生存情報記憶装置20にアクセスするため、参照オブジェクト42の参照先が変更されることで、以降、生存通知部46は、変更された参照先の生存情報記憶装置20に生存情報を記録する。
ここまで説明したノード10の各機能ブロックの連係による処理の流れを、以下フローチャートを用いて説明する。図6は、図1のノード10の動作を示すフローチャートである。まず、生存通知部46は、生存情報記憶装置20に生存情報を記録する(S2)。次に、成否通知部48は、成否情報記憶装置30に成否情報を記録する(S4)。次に、切替判定部50は、成否情報記憶装置30から他のノードの成否情報を読み出すことにより、他のノードの成否情報を参照する(S6)。切替判定部50は、生存情報の記録に失敗したノード数が所定の数、この例では3以上かを判定し、3より少ない場合(S8のN)、切替条件は不成立と判定されて処理を終了する。3以上の場合(S8のY)、切替条件が成立したと判定され、参照先変更部52は、参照オブジェクト42の参照先を、これまで生存情報を記録していた生存情報記憶装置20から、他方の生存情報記憶装置20へと変更する(S10)。
切替判定部50による判定の具体例を、図3を用いて説明する。図3(a)の場合、いずれのノードも生存情報記憶装置20に対する生存情報の記録に成功しているため、切替判定部50は、切替条件が不成立と判定する。図3(b)の場合、いずれのノードも生存情報記憶装置20に対する生存情報の記録に失敗しているため、切替判定部50は、切替条件が成立したと判定する。
図7は、図3と同様に、図1の成否情報記憶装置のデータ構造の例を示す図である。切替判定部50における判定のさらなる具体例を、図7を用いて説明する。図7(a)の場合、第1のノード10aと第2のノード10bは、生存情報記憶装置20に対する生存情報の記録に失敗しているが、第3のノード10cは、生存情報記憶装置20に対する生存情報の記録に成功している。この例では、生存情報の記録に失敗したノード数が3以上かを判定するため、切替判定部50は、切替条件は不成立と判定する。
図7(b)の場合、図7(a)と比較すると、第3のノード10cが成否情報を記録した時刻、つまり更新時刻欄116の値が、第1のノード10aおよび第2のノード10bに比べ、乖離の幅が大きい。この場合、第3のノード10cは、機能停止している可能性があり、その場合には、切替条件の判定において、第3のノード10cを考慮すべきでないことがある。なぜなら、実際には、第1の生存情報記憶装置20aに障害が発生しており、どのノード10も生存情報を記録できないにもかかわらず、第3のノード10cが機能停止しているため、その障害を検出できない状態であると考えられるからである。このような状況においては、第1のノード10aと第2のノード10bの成否情報に基づき、切替条件の成否が判定されることが望ましい。
したがって、切替判定部50は、過去の所定時点以降に他のノード10から通知された成否情報に基づいて、切替条件の成否を判定してもよい。この成否情報は、例えば本実施形態においては、成否情報記憶装置30の更新時刻欄116の値と現在時刻との差が所定の時間以内である成否情報である。これにより、図7(b)の状況においては、切替判定部50は、切替条件を「一方の生存情報記憶装置20に対する生存情報の記録に失敗したノード数が2以上であること。」に変更し、第1のノード10aと第2のノード10bの成否情報に基づき、切替条件が成立したと判定できる。
なお「所定の時点」は、生存情報の記録間隔や、成否情報の通知間隔等に基づき、システムの総合試験等を実施する中で、適切に設定されればよい。例えば、各ノード10からの成否情報の通知間隔が20秒ごとであれば、現在から30秒過去の時点以降に他のノード10から通知された成否情報に基づいて、切替条件の成否を判定してもよい。この例では、成否情報の通知間隔の20秒に、所定の余裕時間として10秒を加えて30秒としている。この「余裕時間」についても、各ノード10から成否情報記憶装置30への成否情報の記録に要する時間や、各ノード10において他の処理を実行することによる遅延時間等に基づき、システムの総合試験等を実施する中で、適切に設定されればよい。
図8は、前述の場合の、図1のノード10の動作を示すフローチャートである。同図のS20、S22、S24、S30、およびS32は、既に説明した図6のS2、S4、S6、S8、およびS10と同じであるため、以下、S26とS28とについて説明する。切替判定部50は、参照する成否情報について、所定時点以降に通知された成否情報かを判定し、いずれも所定の時点以降に通知された成否情報の場合(S26のY)、全ての成否情報に基づいて切替条件を判定する(S30)。所定の時点より前に通知された成否情報を含む場合(S26のN)、切替判定部50は、所定の時点以降に通知された成否情報を抽出し、抽出した成否情報を切替条件の判定の対象として(S28)、切替条件を判定する(S30)。
本実施形態によれば、クラスタシステム100内の各ノード10が通常時にアクセスする正系の生存情報記憶装置とは別に、通常時において各ノード10のソフトウェアからは基本的にアクセスできない、副系の生存情報記憶装置を用意しておく。副系の生存情報記憶装置は、通常時に各ノードのソフトウェアから操作されることはないため、ソフトウェアの不具合によって、正系とともに副系の生存情報記憶装置まで破壊されることは、原理的に発生しない。したがって、正系の生存情報記憶装置に障害が発生した際の切替え先として、常に健全な副系の生存情報記憶装置を残しておくことができ、クラスタシステムの全面停止を回避できる。
言い換えれば、本実施形態のクラスタシステム100は、どのレベルのソフトウェアに不具合があったとしても、クラスタシステムの全面停止を回避できる。これらのソフトウェアは、例えば、OS、クラスタソフトウェア、データベースマネジメントシステムソフトウェア、ミラーリングソフトウェア、運用管理ソフトウェア、業務アプリケーション等を含む。また、たとえ、生存情報記憶装置を二重化したとしても、二重化された生存情報記憶装置を管理するソフトウェアに不具合があれば、正系および副系の生存情報記憶装置がともに破壊される可能性がある。本実施形態のクラスタシステム100は、ソフトウェアからは基本的に操作できない副系の生存情報記憶装置を用意しておくことで、例えばRAIDやミラーリングソフトウェアでは担保が困難な高いレベルの可用性を実現する。
現在、ソフトウェアモジュールの大規模化によって、不具合のないソフトウェアを製造することは日々困難になっている。実際、OSや様々なアプリケーションの不具合を修正するための修正モジュールが短期間に多数提供されている現状がある。さらに、多くのシステムがインターネットを含む通信ネットワークで接続されている現在では、ソフトウェアのセキュリティホール等を介して、悪意を持つ第三者が、ノードのソフトウェアを操作し、ソフトウェアに意図しない挙動をさせることもある。本発明の実施形態によれば、ソフトウェアに不具合があり、または、悪意を持つ第三者によりソフトウェアを操作されて、正系の生存情報記憶装置を破壊された場合であっても、副系の生存情報記憶装置に切替えることで、クラスタシステムの全面停止を回避できる。ミッションクリティカルなシステムにおいて、さらなる高可用性が要求される今後、ここに開示した技術は非常に有用であると本発明者は確信する。
また、本実施形態によれば、正系の生存情報記憶装置から副系の生存情報記憶装置への参照先の切替えを、参照オブジェクトの参照先を変更することにより実現する。複雑なアプリケーション等の仕掛けを使うことなく、このような簡明な方法を採用することで、アプリケーション等ソフトウェアの不具合の影響を受けにくい。また、切替えの仕組みを構築する費用を低減できる。また、システムの全面停止を回避するためには、この参照オブジェクトを保護しておけばよく、セキュリティの強化範囲が限定され、システムの管理コストが低減され、結果として、セキュリティ脅威に対し堅牢で、より可用性の高いクラスタシステムを実現できる。
また、本実施形態によれば、生存情報の記録の成否を示す成否情報を、各ノード10間で相互に通知することで、各ノード間で同期をとって、参照先の生存情報記憶装置を切替えることができる。これにより、スプリットブレイン状態を回避できる。また、参照先の切替えを、人手を介さず自動的に実現できる。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
前述した実施の形態では、第1の生存情報記憶装置20aと、第2の生存情報記憶装置20bとを備えるクラスタシステム100について説明した。変形例として、クラスタシステム100は、第3の生存情報記憶装置、第4の生存情報記憶装置・・とさらに多くの生存情報記憶装置を備えてもよい。各ノード10の参照先を切替えた直後に、切替え先の生存情報記憶装置も故障した場合にも、さらに多くの生存情報記憶装置を備えることで、その生存情報記憶装置に参照先を変更し、クラスタシステムの全面停止を回避できる。言い換えれば、クラスタシステムの可用性をさらに向上できる。
また、前述した実施の形態では、RAIDやミラーリングソフトウェアを利用するシステムよりも、さらに高い可用性を実現するクラスタシステム100を説明した。ただし、RAIDやミラーリングソフトウェアを利用したクラスタシステムを排除する趣旨ではなく、クラスタシステム100においてRAIDやミラーリングソフトウェアを利用してもよい。例えば、第1の生存情報記憶装置20aと第2の生存情報記憶装置20bは、それぞれRAIDを利用して冗長構成とされてもよい。これにより、クラスタシステム100は、RAIDを利用することによる可用性の向上に加え、本発明の技術を適用して副系の生存情報記憶装置を用意することにより、さらに可用性を向上できる。
例えば、冗長化された第1の生存情報記憶装置20aにおいて、複数の記憶装置の物理的な故障が発生した場合でも、ノード10が参照する生存情報記憶装置を、第2の生存情報記憶装置20bに切替えることで対処できる。つまり、RAIDやソフトウェアによるミラーリングでは対応が困難な、複数の記憶装置の物理的な故障に対しても、本発明の技術により、健全な生存情報記憶装置を維持できる。
また、前述した実施の形態では、クォーラムディスク方式を採用するクラスタシステム100について説明したが、通常時はネットワークハートビート方式を採用し、補助的にクォーラムディスク方式を採用するクラスタシステムに本発明の技術が適用されてもよい。このクラスタシステムの場合、ハートビート通信において異常が検出された時には、各ノードが生存情報を生存情報記憶装置に記録することで、各ノードのクラスタソフトウェアは、クラスタシステム内で継続して動作する存続ノードを決定する。生存情報の記録に失敗すると、クラスタソフトウェアは存続ノードの決定ができず、その結果、スプリットブレイン状態を回避するため、クラスタシステムが全面停止する場合もある。したがって、このようなクラスタシステムにおいても、本発明の技術を適用し、副系の生存情報記憶装置を用意しておくことで、可用性を向上できるという効果がある。
また、前述した実施の形態では、各ノード10が切替判定部を有し、それぞれのノードで、切替条件の成否を判定していた。変形例として、クラスタシステム100には、図示しない切替条件判定ノードを含み、切替条件判定ノードが各ノード10と通信して、または、成否情報記憶装置30を参照して、成否情報に基づき、切替条件の成否を判定してもよい。この場合、切替条件判定ノードは、判定結果に基づき、各ノードに参照先の変更指示を出してもよく、また、直接各ノードの参照オブジェクトを操作して参照先を変更してもよい。切替条件判定ノードが、一元的に切替条件の成否を判定することで、各ノード10は切替条件を判定する負荷が軽減され、また、切替条件の変更時には、切替条件判定ノードに設定された切替条件のみを変更すればよくなり運用管理が容易となる。
本発明の実施形態にかかるクラスタシステムの構成例を示す図である。 図1の生存情報記憶装置のデータ構造の例を示す図である。 図1の成否情報記憶装置のデータ構造の例を示す図である。 図1のノードの構成例を示す機能ブロック図である。 図4の参照オブジェクトの構成例を示す図である。 図1のノードの動作を示すフローチャートである。 図1の成否情報記憶装置のデータ構造の例を示す図である。 図1のノードの動作を示すフローチャートである。
符号の説明
10 ノード、20 生存情報記憶装置、30 成否情報記憶装置、40 設定保持部、42 参照オブジェクト、44 切替条件、46 生存通知部、48 成否通知部、50 切替判定部、52 参照先変更部、60 シンボリックリンクファイル、62 デバイスファイル、100 クラスタシステム、102 ノードID欄、104 稼働状態欄、106 更新時刻欄、110 ノードID欄、112 参照記憶装置ID欄、114 アクセス成否欄、116 更新時刻欄。

Claims (6)

  1. 相互に稼働状態を監視しつつ動作する複数の計算機と、
    前記計算機が正常動作中である旨を示す生存情報を記憶する第1および第2の生存情報記憶装置と、
    成否情報記憶装置と、を備え
    前記複数の計算機においては、前記第1および第2の生存情報記憶装置のうちの一方の生存情報記憶装置が参照先として共通設定され、かつ、前記複数の計算機から参照される生存情報記憶装置が同一となるように参照先を変更するための共通の切替条件が設定されており、
    前記複数の計算機のそれぞれは、前記第1および第2の生存情報記憶装置のうち、参照先として設定された生存情報記憶装置にだけアクセスでき、
    前記複数の計算機のそれぞれは、
    正常動作中において、参照先の生存情報記憶装置に自計算機が正常動作中である旨を示す生存情報を記録する生存通知部と、
    前記参照先の生存情報記憶装置と前記生存情報の記録の成否とを示す成否情報を他の計算機に通知する成否通知部と、
    他の計算機から通知された成否情報を参照し、前記参照先の生存情報記憶装置に対する前記複数の計算機による生存情報の記録の成否に基づいて、前記切替条件の成否を判定する切替判定部と、
    前記切替条件が成立したとき、前記第1および第2の生存情報記憶装置のうちの他方の生存情報記録装置を参照先として設定変更する参照先変更部と、を備え
    前記成否通知部は、前記成否情報を他の計算機に通知するために、前記成否情報を、前記複数の計算機の成否情報を保持するための前記成否情報記憶装置に記録し、
    前記切替判定部は、前記成否情報記憶装置から他の計算機の成否情報を読み出すことにより、他の計算機の成否情報を参照することを特徴とするクラスタシステム。
  2. 前記切替条件は、前記参照先の生存情報記憶装置に対する生存情報の記録に失敗した計算機の数が、所定の数以上となった時に成立する条件であることを特徴とする請求項に記載のクラスタシステム。
  3. 前記切替判定部は、過去の所定時点以降に他の計算機から通知された成否情報に基づいて、前記切替条件の成否を判定することを特徴とする請求項1または2に記載のクラスタシステム。
  4. 他の計算機と相互に稼働状態を監視しつつ動作する計算機であって、
    自計算機が正常動作中である旨を示す生存情報を記録する第1および第2の生存情報記憶装置と、成否情報記憶装置とに接続され、
    前記第1および第2の生存情報記憶装置のうちの一方の生存情報記憶装置が、前記他の計算機と共通の参照先として設定され、かつ、前記他の計算機と同一の生存情報記憶装置を参照するように参照先を変更するための切替条件が、前記他の計算機と共通に設定され、
    前記第1および第2の生存情報記憶装置のうち、参照先として設定された生存情報記憶装置にだけアクセスでき、
    正常動作中において、参照先の生存情報記憶装置に自計算機が正常動作中である旨を示す生存情報を記録する生存通知部と、
    前記参照先の生存情報記憶装置と前記生存情報の記録の成否とを示す成否情報を他の計算機に通知する成否通知部と、
    他の計算機から通知された成否情報を参照し、前記参照先の生存情報記憶装置に対する自計算機および前記他の計算機による生存情報の記録の成否に基づいて、前記切替条件の成否を判定する切替判定部と、
    前記切替条件が成立したとき、前記第1および第2の生存情報記憶装置のうちの他方の生存情報記録装置を参照先として設定変更する参照先変更部と、を備え
    前記成否通知部は、前記成否情報を他の計算機に通知するために、前記成否情報を、複数の計算機の成否情報を保持するための前記成否情報記憶装置に記録し、
    前記切替判定部は、前記成否情報記憶装置から他の計算機の成否情報を読み出すことにより、他の計算機の成否情報を参照することを特徴とする計算機。
  5. 他の計算機と相互に稼働状態を監視しつつ動作する計算機における障害対処方法であって、
    正常動作中において、前記計算機が正常動作中である旨を示す生存情報を記録する第1および第2の生存情報記憶装置のうちの一方の生存情報記憶装置を参照するように前記他の計算機と共通に設定された参照先の生存情報記憶装置に、参照先として設定された生存情報記憶装置にだけアクセスできる自計算機が正常動作中である旨を示す生存情報を記録する生存通知ステップと、
    前記参照先の生存情報記憶装置と前記生存情報の記録の成否とを示す成否情報を他の計算機に通知する成否通知ステップと、
    他の計算機から通知された成否情報を参照し、前記参照先の生存情報記憶装置に対する自計算機および前記他の計算機による生存情報の記録の成否に基づいて、自計算機から参照する生存情報記憶装置が前記他の計算機から参照する生存情報記憶装置と同一となるように参照先を変更するために前記他の計算機と共通に設定された切替条件の成否を判定する切替判定ステップと、
    前記切替条件が成立したとき、前記第1および第2の生存情報記憶装置のうちの他方の生存情報記録装置を参照先として設定変更する参照先変更ステップと、を備え
    前記成否通知ステップは、前記成否情報を他の計算機に通知するために、前記成否情報を、複数の計算機の成否情報を保持するための成否情報記憶装置に記録し、
    切替判定ステップは、前記成否情報記憶装置から他の計算機の成否情報を読み出すことにより、他の計算機の成否情報を参照することを特徴とする障害対処方法。
  6. 他の計算機と相互に稼働状態を監視しつつ動作する計算機に、
    正常動作中において、前記計算機が正常動作中である旨を示す生存情報を記録する第1および第2の生存情報記憶装置のうちの一方の生存情報記憶装置を参照するように前記他の計算機と共通に設定された参照先の生存情報記憶装置に、参照先として設定された生存情報記憶装置にだけアクセスできる自計算機が正常動作中である旨を示す生存情報を記録する生存通知機能と、
    前記参照先の生存情報記憶装置と前記生存情報の記録の成否とを示す成否情報を他の計算機に通知する成否通知機能と、
    他の計算機から通知された成否情報を参照し、前記参照先の生存情報記憶装置に対する自計算機および前記他の計算機による生存情報の記録の成否に基づいて、自計算機から参照する生存情報記憶装置が前記他の計算機から参照する生存情報記憶装置と同一となるように参照先を変更するために前記他の計算機と共通に設定された切替条件の成否を判定する切替判定機能と、
    前記切替条件が成立したとき、前記第1および第2の生存情報記憶装置のうちの他方の生存情報記録装置を参照先として設定変更する参照先変更機能と、を実現させ
    成否通知機能は、前記成否情報を他の計算機に通知するために、前記成否情報を成否情報記憶装置に記録し、
    切替判定機能は、前記成否情報記憶装置から他の計算機の成否情報を読み出すことにより、他の計算機の成否情報を参照することを特徴とするコンピュータプログラム。
JP2007141432A 2007-05-29 2007-05-29 クラスタシステム、計算機、および障害対処方法 Expired - Fee Related JP5096799B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007141432A JP5096799B2 (ja) 2007-05-29 2007-05-29 クラスタシステム、計算機、および障害対処方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007141432A JP5096799B2 (ja) 2007-05-29 2007-05-29 クラスタシステム、計算機、および障害対処方法

Publications (2)

Publication Number Publication Date
JP2008299369A JP2008299369A (ja) 2008-12-11
JP5096799B2 true JP5096799B2 (ja) 2012-12-12

Family

ID=40172882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007141432A Expired - Fee Related JP5096799B2 (ja) 2007-05-29 2007-05-29 クラスタシステム、計算機、および障害対処方法

Country Status (1)

Country Link
JP (1) JP5096799B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015162634A1 (en) * 2014-04-21 2015-10-29 Hitachi, Ltd. Information storage system
US11119870B2 (en) 2016-09-21 2021-09-14 Nec Corporation Calculator, cluster management system, method, and non-transitory computer readable medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS567154A (en) * 1979-06-27 1981-01-24 Hitachi Ltd Double system
JPS62179044A (ja) * 1986-01-31 1987-08-06 Toshiba Corp 複合計算機システム
JPH01195544A (ja) * 1988-01-29 1989-08-07 Nec Corp デュプレックス構成システムのダウン監視方式
JPH05250195A (ja) * 1992-02-20 1993-09-28 Nec Corp 情報処理システムのヘルスチェック制御方式
JP2000020336A (ja) * 1998-06-29 2000-01-21 Nec Corp 二重化通信システム
JP3545252B2 (ja) * 1999-03-30 2004-07-21 富士通株式会社 情報処理装置
JP4039794B2 (ja) * 2000-08-18 2008-01-30 富士通株式会社 マルチパス計算機システム
JP3573092B2 (ja) * 2000-12-15 2004-10-06 日本電気株式会社 コンピュータシステムにおける共有資源の排他利用方式
US7003645B2 (en) * 2002-12-18 2006-02-21 International Business Machines Corporation Use of a storage medium as a communications network for liveness determination in a high-availability cluster

Also Published As

Publication number Publication date
JP2008299369A (ja) 2008-12-11

Similar Documents

Publication Publication Date Title
US11182075B1 (en) Storage system having cross node data redundancy and method and computer readable medium for same
US20070101186A1 (en) Computer platform cache data remote backup processing method and system
JP4415610B2 (ja) 系切替方法、レプリカ作成方法、及びディスク装置
JP4939174B2 (ja) ミラーリングされたシステム内の障害を管理するための方法
KR101547719B1 (ko) 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지
EP2672387B1 (en) A distributed object storage system
US8832372B2 (en) Network storage systems having clustered raids for improved redundancy and load balancing
US7536586B2 (en) System and method for the management of failure recovery in multiple-node shared-storage environments
CN100368976C (zh) 盘阵列设备和数据备份方法
CN102411639B (zh) 元数据的多副本存储管理方法和系统
KR100711165B1 (ko) 기억 제어 장치, 제어 방법 및 기록 매체
CN104994168A (zh) 分布式存储方法及分布式存储系统
US7356728B2 (en) Redundant cluster network
US20110219263A1 (en) Fast cluster failure detection
US10180871B2 (en) Storage failure processing in a shared storage architecture
US20070101188A1 (en) Method for establishing stable storage mechanism
JP2011170589A (ja) ストレージ制御装置、ストレージ装置およびストレージ制御方法
US20130086413A1 (en) Fast i/o failure detection and cluster wide failover
US20100082793A1 (en) Server-Embedded Distributed Storage System
JP5096799B2 (ja) クラスタシステム、計算機、および障害対処方法
CN110941397A (zh) 存储集群bbu故障时的节点模式调整方法及相关组件
JP2009069963A (ja) マルチプロセッサシステム
US20080250421A1 (en) Data Processing System And Method
CN107111459B (zh) 存储系统及其控制方法
US9153347B2 (en) Method and system for reliable big capacity storage system protected by triple protection

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120208

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5096799

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

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

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