JP2008310591A - クラスタシステム、計算機、および障害回復方法 - Google Patents

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

Info

Publication number
JP2008310591A
JP2008310591A JP2007157828A JP2007157828A JP2008310591A JP 2008310591 A JP2008310591 A JP 2008310591A JP 2007157828 A JP2007157828 A JP 2007157828A JP 2007157828 A JP2007157828 A JP 2007157828A JP 2008310591 A JP2008310591 A JP 2008310591A
Authority
JP
Japan
Prior art keywords
storage device
history
failure recovery
computer
history storage
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.)
Granted
Application number
JP2007157828A
Other languages
English (en)
Other versions
JP5154843B2 (ja
Inventor
Masaaki Okano
正明 岡野
Goichiro Kuno
豪一郎 久能
Yohei Konishi
陽平 小西
Kenichi Gomi
憲一 五味
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 JP2007157828A priority Critical patent/JP5154843B2/ja
Publication of JP2008310591A publication Critical patent/JP2008310591A/ja
Application granted granted Critical
Publication of JP5154843B2 publication Critical patent/JP5154843B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】クラスタシステムにおいて利便性の高い障害回復の技術を提供する。
【解決手段】クラスタシステム100の各ノード110に対応づけられた履歴記憶装置を複数設ける。各ノード110は、データ記憶装置120が正常動作中は、両方の履歴記憶装置にアクセス履歴を記録する。データ記憶装置120の一部に障害が発生したときには、まず、主履歴記憶装置130への記録は維持する一方で、副履歴記憶装置132への記録は停止する。次に、障害回復処理を実行する一のノードは、各ノード110に対応づけられた副履歴記憶装置132と接続し、アクセス履歴を参照して障害回復処理を実行する。この障害回復処理と並行して、各ノード110は障害の影響を受けないデータへのアクセスを継続して、そのアクセス履歴を主履歴記憶装置130に記録する。これにより、障害回復処理と正常なデータへのアクセスとを両立する。
【選択図】図4

Description

本発明は、障害回復処理の技術に関し、特にクラスタシステムにおける障害回復処理の技術およびそれに適用される障害回復方法に関する。
国際商取引が盛んに行われ、また、企業間競争が激化している時代背景にあって、情報処理システムには24時間365日連続の正常運転が要求されてきている。特に金融や通信等のミッションクリティカルなシステムの場合、わずかなシステムの停止がビジネスに致命的な打撃を与えることもある。
計算機(以下、「ノード」と呼ぶ。)において情報処理されるデータが重要なものとなり、かつ、データ量が膨大になっている現在、そのデータの保持には高い信頼性が要求される。そのため、データ記憶装置に障害が発生したときに、障害回復処理を実行してデータを復旧するために、データ操作の履歴情報が記録されるのが一般的である。
データ記憶装置に障害が発生した場合、データ記憶装置のバックアップファイルと、バックアップファイル作成時点から障害発生までの間のデータ操作の履歴情報とに基づき、記憶装置の障害回復処理を実行できる(例えば、特許文献1参照)。
特開2001−282762号公報
一方で、ミッションクリティカルなシステムにおいては、システムの可用性向上と負荷分散のために、複数のノードを設け、複数のノードが並列して稼働するシステム(以下、「クラスタシステム」と呼ぶ。)が採用されることが多い。クラスタシステムにおいては、複数のノードでデータ記憶装置を共有して、それぞれのノードがデータ操作を行う。
クラスタシステムのそもそもの目的は可用性の向上であるため、データ記憶装置の一部に障害が発生したときでも、その障害の影響を受けないサービスについては停止することなく継続して提供されることが望ましい。前述したように、情報処理システムの可用性に対する要求レベルは日々高まっており、短期間のサービス提供停止であっても許容されない場合もある。
しかし、従来の技術では、データ記憶装置に障害が発生すると、障害回復まではクラスタシステム全体のサービスが停止することが多く、ユーザの利便性を損なうことがあった。
本発明は、本発明者による上記着目に基づいて完成された発明であり、その主たる目的は、クラスタシステムにおける利便性の高い障害回復の技術を提供することである。
上記課題を解決するために、本発明のある態様のクラスタシステムは、計算機と、第1および第2の履歴記憶装置とを有する複数の計算機システムと、複数の計算機システムの計算機から操作されるデータを記憶するデータ記憶装置と、を備える。計算機は、自計算機システムの第1および第2の履歴記憶装置に、自計算機によるデータ記憶装置へのアクセス履歴を記録する履歴記録部と、複数の計算機システムの第2の履歴記憶装置のそれぞれと自計算機との接続を制御する接続制御部と、データ記憶装置における障害発生時において、障害回復処理を実行する障害回復部と、障害回復処理の終了後、第1の履歴記憶装置におけるアクセス履歴を第2の履歴記憶装置に反映させる履歴同期部と、を含む。データ記憶装置の一部の領域において障害が発生したとき、各計算機の履歴記録部は、第1の履歴記憶装置へのアクセスを維持したまま第2の履歴記憶装置への記録を停止し、複数の計算機システムのうちの一の計算機の接続制御部は、他計算機システムの第2の履歴記憶装置と自計算機とを接続し、一の計算機の障害回復部は、複数の計算機システムの第2の履歴記憶装置に記録されたアクセス履歴を参照して、データ記憶装置の障害回復処理を実行し、一の計算機による障害回復処理の実行中において、他の計算機は、データ記憶装置へのアクセス、および、第1の履歴記憶装置へのアクセス履歴の記録を継続し、各計算機の履歴同期部は、障害回復処理が終了した後で、自計算機システムの第1の履歴記憶装置から第2の履歴記憶装置にアクセス履歴の差分を反映する。
本明細書におけるクラスタシステムは、複数のノードが並列して、データ記憶装置に記憶されるデータを操作することにより情報処理サービスを提供する。各ノードは、同様のアプリケーションを搭載して同様のサービスを提供するものであってもよく、DBMS(Database Management System)ソフトウェアが動作するデータベースサーバであってもよい。アクセス履歴は、ノードによるデータ操作の履歴情報である。具体的には、データ記憶装置に対するデータの挿入、データ記憶装置により記憶されるデータに対する更新・削除等の操作内容と、その操作時刻と、その操作のトランザクション状態、例えばコミット済みであるかを示す情報等とを含む情報であってもよい。
また、データ記憶装置の一部の領域における障害とは、物理障害と論理障害の両方を含む。物理障害は、データ記憶装置の一部、例えばハードディスクの一部が物理的に破損した結果、データ記憶装置が記憶するデータの一部に対しノードから正常なアクセスができない状態を含む。論理障害は、ノードで動作するソフトウェアからデータ記憶装置に不正なデータが書き込まれた結果、データ記憶装置が記憶するデータの一部が論理的に破壊されて、ノードから正常なアクセスができない状態を含む。
この態様によると、クラスタシステムの各ノードは、データ記憶装置の一部に障害が発生し、一のノードが障害回復処理を実行する間も、第1の履歴記憶装置へのアクセス履歴の記録を継続できる。したがって、その障害の影響を受けないデータ記憶装置の領域にアクセスするサービスを継続して提供できる。
本発明の別の態様は、計算機である。この計算機は、所定のデータ記憶装置と接続される複数の計算機のうちの一つであって、自計算機に対応づけられる第1および第2の履歴記憶装置のそれぞれにデータ記憶装置に対するアクセス履歴を記録する履歴記録部と、データ記憶装置における障害発生時において、障害回復処理を実行する障害回復部と、障害回復処理の終了後、第1の履歴記憶装置におけるアクセス履歴を第2の履歴記憶装置に反映させる履歴同期部と、複数の計算機にそれぞれ対応づけられる第2の履歴記憶装置と自計算機との接続を制御する接続制御部と、を備える。データ記憶装置の一部の領域において障害が発生したとき、履歴記録部は、第1の履歴記憶装置へのアクセスを維持したまま第2の履歴記憶装置への記録を停止し、接続制御部は、履歴記録部による第2の履歴記憶装置への記録の停止後、他計算機に対応づけられている第2の履歴記憶装置と自計算機とを接続し、障害回復部は、複数の計算機にそれぞれ対応づけられている第2の履歴記憶装置のアクセス履歴を参照してデータ記憶装置の障害回復処理を実行し、履歴同期部は、障害回復処理中における自計算機によるアクセス履歴を第1の履歴記憶装置から第2の履歴記憶装置に反映させる。
本発明のさらに別の態様は、障害回復方法である。この方法は、所定のデータ記憶装置と接続される複数の計算機のうちの一つにおける障害回復方法であって、自計算機に対応づけられる第1および第2の履歴記憶装置のそれぞれにデータ記憶装置に対するアクセス履歴を記録するステップと、データ記憶装置の一部に障害が発生したとき、第1の履歴記憶装置へのアクセスを維持したまま第2の履歴記憶装置への記録を停止するステップと、第2の履歴記憶装置への記録の停止後、他計算機に対応づけられている第2の履歴記憶装置と自計算機とを接続するステップと、複数の計算機にそれぞれ対応づけられている第2の履歴記憶装置のアクセス履歴を参照してデータ記憶装置の障害回復処理を実行するステップと、障害回復処理の終了後、障害回復処理中における自計算機によるアクセス履歴を第1の履歴記憶装置から第2の履歴記憶装置に反映させるステップと、を備える。
なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、クラスタシステムにおいて利便性の高い障害回復を実現できる。
本発明の実施形態を説明する前に、従来技術にかかるクラスタシステムの構成と、その課題を示し、あわせて本発明の実施形態の概要を説明する。図1は、従来技術にかかるクラスタシステムの構成例を示す。クラスタシステム200は、ノード210で総称される第1のノード210aと、第2のノード210bと、第3のノード210cと、データ記憶装置220と、履歴記憶装置230で総称される履歴記憶装置230a〜230cとを備える。各ノード210は、それぞれ並列してデータ記憶装置220のデータにアクセスしながら情報処理サービスを提供し、そのアクセス履歴を自ノードに対応する履歴記憶装置230に記録する。
データ記憶装置220は、各ノード210の情報処理においてアクセスされるデータを記憶する。この例において、データ記憶装置220は、A情報とB情報とを記憶している。言い換えれば、データ記憶装置220には、A情報を含むテーブルと、B情報を含むテーブルとが含まれると考えてもよい。
クラスタシステム200では、データ記憶装置220は各ノード210から共有されるが、データ記憶装置220のデータにアクセスするのはノード210ごとであるため、アクセス履歴はノード210ごとに記録される。第1の履歴記憶装置230aは、第1のノード210aによるデータ記憶装置220へのアクセス履歴を記録するファイル(以下、「アクセス履歴ファイル」と呼ぶ。)「L01−01〜L01−03」を記憶している。第2のノード210bに対応づけられた履歴記憶装置230bと、第3のノード210cに対応づけられた履歴記憶装置230cについても同様に、アクセス履歴ファイル「L02−01〜L02−03」と「L03−01〜L03−03」とをそれぞれ記憶している。
次に、クラスタシステム200において、データ記憶装置220に記憶されるデータの一部に障害が発生した場合(障害が発生したデータのことを、以下、「障害状態データ」と呼ぶ。)の回復処理について説明する。障害状態データの回復処理には、次に示す2段階の方法が一般にとられる。まず、データ記憶装置220に対する定期的なバックアップにおいて作成されたバックアップファイルに基づき、障害状態データの内容を過去の特定時点にまで戻す。次に、それぞれの履歴記憶装置230に記録されたアクセス履歴に基づき、ロールフォワードおよびロールバックを実施して、障害状態データの内容を障害が発生する直前の状態にまで回復させる。
したがって、データ記憶装置220の内容が変更される場合には、必ず履歴記憶装置230にそのアクセス履歴が記録される必要がある。データ記憶装置220が変更されたにもかかわらず、そのアクセス履歴が履歴記憶装置230に記録されていなければ、データ記憶装置220に障害が発生した際にその回復ができないからである。
図2は、図1のクラスタシステムにおける障害回復処理時の構成例を示す。同図では、データ記憶装置の一部に障害が発生した結果、A情報が障害状態データとなり、第1のノード210aがA情報の障害回復処理を実行する。この場合、第1のノード210aは、障害回復処理のために、履歴記憶装置230aに加えて履歴記憶装置230bと230cのアクセス履歴ファイルを参照する必要がある。そのため、第1のノード210aは各履歴記憶装置230とアタッチし、一方で、第2のノード210bは履歴記憶装置230bと、また、第3のノード210cは履歴記憶装置230cとデタッチする。
第2および第3のノードが履歴記憶装置230とデタッチするのは、複数のノードが同時に同一の履歴記憶装置230にアタッチをすると、履歴記憶装置230への要求競合が発生するからである。要求競合が発生すると、各ノードのファイルシステムの整合性維持が困難となり、また、履歴記憶装置230が破壊される可能性がある。第2のノード210bと第3のノード210cは、履歴記憶装置230とデタッチする結果、データ記憶装置のB情報へのアクセスは可能であるにもかかわらず、アクセス履歴の記録ができないため、B情報へのアクセスも停止せざるを得ない。なお、ノードと履歴記憶装置とのアタッチおよびデタッチについての説明は後述する。
図3は、従来技術にかかるクラスタシステムの別の構成例を示す。クラスタシステム300におけるノード310とデータ記憶装置320とは、前述したクラスタシステム200におけるノード210とデータ記憶装置220と同じである。同図のクラスタシステム300では、履歴記憶装置330への一元的なアクセス窓口としてNFS(Network File System)サーバ340が設けられている。各ノード310は、NFSサーバ340を介してアクセス履歴を記録する。これにより、例えば、データ記憶装置320のA情報が障害状態データとなり、第1のノード310aが障害回復処理を実行する場合にも、各ノード310はデータ記憶装置320のB情報へのアクセスを継続できる。
つまり、第1のノード310aは、NFSサーバ340を介して、障害回復に必要なアクセス履歴「L01−01〜L01−03」と、「L02−01〜L02−03」と、「L03−01〜L03−03」とを参照して、A情報の障害回復処理を実行できる。一方で、各ノード310は、この障害回復処理と並列して、NFSサーバ340を介して、アクセス履歴を履歴記憶装置330に記録できるため、B情報へのアクセスを継続できる。
図3では、第1のノード310aが障害回復処理中に、各ノード310が記録したアクセス履歴ファイルを、それぞれ「L01−04、L01−05」、「L02−04、L02−05」、および「L03−04、L03−05」として示している。なお、前述した「L01−01〜L01−03」と、「L02−01〜L02−03」と、「L03−01〜L03−03」とには、A情報およびB情報へのアクセス履歴が含まれる。一方で、「L01−04、L01−05」と、「L02−04、L02−05」と、「L03−04、L03−05」とには、B情報へのアクセス履歴が含まれるが、A情報へのアクセス履歴は含まれない。
しかし、クラスタシステム300にも課題がある。第1の課題として、各ノード310とNFSサーバ340とは、通信ネットワークにより接続されるため、アクセス履歴を記録するトラフィックが高い場合には、通信ネットワークが遅延して性能のボトルネックとなる可能性がある。データ記憶装置へのアクセスとアクセス履歴の記録とは常に同期をとる必要があるため、アクセス履歴を記録する性能が低い場合には、ノード310が提供するサービスの性能も低くなってしまう。1000BASE−SX等の高速な通信ネットワークであっても、高速なバスインタフェイス、例えばUltra320 SCSI等には通信速度で及ばず、また、ネットワークのトラフィックが増加すれば、実効通信速度はさらに遅くなる。これを回避するためには、ネットワークの多重化などによる、広帯域のネットワークの構築に多くの費用を要する。
第2の課題として、NFSサーバ340には非常に高い可用性が求められる。クラスタシステム300においては、履歴記憶装置330への一元的な窓口となるNFSサーバ340の可用性が、即クラスタシステム300の可用性となるためである。NFSサーバ340が停止すると、データ記憶装置320は正常動作中であっても、各ノード310は、データ記憶装置320へのアクセスを停止せざるを得ない。したがって、NFSサーバ340を冗長化構成とする等の手段により、NFSサーバ340の可用性を担保する必要がある。
このように、従来型のクラスタシステムにおいては、障害回復処理を実行しつつ、正常のデータへのアクセスを継続することは容易ではなかった。また、これを実現するには多大なコストを要していた。
本発明の実施形態では、これらの課題を解決するために次の技術を提案する。すなわち、クラスタシステムの各ノードに対応づけられた履歴記憶装置を複数設け、データ記憶装置が正常動作中は、両方の履歴記憶装置にアクセス履歴を記録する。データ記憶装置の一部に障害が発生したときには、まず、第1の履歴記憶装置へのアクセス履歴の記録は維持する一方で、第2の履歴記憶装置へのアクセス履歴の記録は停止する。次に、障害回復処理を実行する一のノードは、自ノードおよび他ノードに対応づけられた第2の履歴記憶装置のアクセス履歴を参照して障害回復処理を実行する。この障害回復処理と並行して、各ノードは障害の影響を受けないデータへのアクセスを継続して、そのアクセス履歴を第1の履歴記憶装置に記録する。これにより、障害回復処理と正常なデータへのアクセスとを両立し、利便性の高い障害回復を実現する。以下、実施形態を説明する。
図4は、本発明の実施形態にかかるクラスタシステムの構成例を示す。同図のクラスタシステム100は、ノード110で総称される第1のノード110aと、第2のノード110bと、第3のノード110cと、データ記憶装置120と、主履歴記憶装置130で総称される第1の主履歴記憶装置130aと、第2の主履歴記憶装置130bと、第3の主履歴記憶装置130cと、副履歴記憶装置132で総称される第1の副履歴記憶装置132aと、第2の副履歴記憶装置132bと、第3の副履歴記憶装置132cとを備える。なお、主履歴記憶装置130は、前述した第1の履歴記憶装置に相当し、副履歴記憶装置132は、前述した第2の履歴記憶装置に相当する。
各ノード110は、それぞれ並列してデータ記憶装置120にアクセスし、アクセス履歴を主履歴記憶装置130と副履歴記憶装置132とに記録する。正常時では、主履歴記憶装置130と副履歴記憶装置132とには同じ内容のアクセス履歴が記録される。
次にクラスタシステム100において、データ記憶装置120のデータの一部に障害が発生した場合の回復処理について説明する。図5は、図4のクラスタシステムにおける障害回復処理時の構成例を示す。A情報が障害状態データとなり、第1のノード110aが障害回復処理を実行するとする。この場合、第2のノード110bは副履歴記憶装置132bを、第3のノード110cは副履歴記憶装置132cをそれぞれデタッチする。次に、第1のノード110aは、これらの副履歴記憶装置132をアタッチし、それぞれの副履歴記憶装置132に記憶されたアクセス履歴に基づき、障害発生データであるA情報に対する障害回復処理を実行する。
第1のノード110aによる障害回復処理の間も、各ノード110は、主履歴記憶装置130へのアクセス履歴の記録ができるため、B情報へのアクセスを継続できる。図5においても、図3と同様に、第1のノード310aが障害回復処理中に、各ノード310が記録したアクセス履歴ファイルを、それぞれ「L01−04、L01−05」、「L02−04、L02−05」、「L03−04、L03−05」として示している。
なお、所定の障害検知システムが障害を検知することにより、障害回復処理を自動で開始してもよく、運用担当者がその障害を検知して手動で開始してもよい。前者の場合、障害検知システムは、例えば、ノード110のアプリケーションによるデータ記憶装置120へのアクセスの失敗をそのアプリケーションからの通知等により検出して、障害回復処理のためのスクリプトを実行する。後者の場合、運用担当者は、例えば、ノード110のアプリケーションログのトラッキングによりデータ記憶装置120における障害の発生を検知し、障害回復処理のための適切な準備をした上で、手動で障害回復処理のためのスクリプトを実行する。この「適切な準備」には、データ記憶装置120のバックアップファイルのリストアにより、障害発生データを過去の特定時点まで戻すことも含まれてよいが、この準備もスクリプトにより自動化されてもよい。
第1のノード110aにおける障害回復処理の終了後、各ノード110は、主履歴記憶装置130に記録されたアクセス履歴と、副履歴記憶装置132に記録されたアクセス履歴との同期をとる。図6は、図4のクラスタシステムにおける障害回復処理後の構成例を示す。同図では、アクセス履歴ファイル「L01−04、L01−05」、「L02−04、L02−05」、および「L03−04、L03−05」を、主履歴記憶装置130から副履歴記憶装置132に反映させることで、それぞれの履歴記憶装置の同期がとられている。これにより、データ記憶装置120において一部障害が再度発生した場合にも、同様の障害回復処理により障害回復できる。
図7は、図4のノード110の構成例を示す機能ブロック図である。ノード110は、履歴記録部10と、接続制御部12と、障害回復部14と、履歴同期部16とを備える。これらの構成は、ハードウェアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
履歴記録部10は、主履歴記憶装置130と副履歴記憶装置132との両方に、データ記憶装置120へのアクセス履歴を記録する。データ記憶装置120の一部の領域において障害が発生したとき、履歴記録部10は、主履歴記憶装置130へのアクセス履歴の記録は継続しつつ、副履歴記憶装置132へのアクセス履歴の記録を停止する。
接続制御部12は、クラスタシステム100の各ノード110に対応づけられた副履歴記憶装置132と自ノードとの接続を制御する。データ記憶装置120の一部の領域において障害が発生したとき、接続制御部12は、履歴記録部10による副履歴記憶装置132へのアクセス履歴の記録の停止後、他ノードに対応づけられた副履歴記憶装置132をアタッチする。また、自ノードがデータ記憶装置120の障害回復処理を実行しない場合には、接続制御部12は、副履歴記憶装置132をデタッチする。
例えば、図5における第1のノード110aは前者であり、第1のノード110aの接続制御部12は、第2の副履歴記憶装置132bおよび第3の副履歴記憶装置132cをアタッチする。一方で、図5における第2のノード110bと第3のノード110cは後者であり、これらのノードの接続制御部12は、第2の副履歴記憶装置132bまたは第3の副履歴記憶装置132cをそれぞれデタッチする。
なお、自ノードが副履歴記憶装置132にアタッチするのは、他ノードが副履歴記憶装置132をデタッチした後が望ましい。この場合、図示しない通信部を介して他ノードよりデタッチを完了した旨の通知を受け付け、その後に副履歴記憶装置132と自ノードとをアタッチするようにしてもよい。
また、接続制御部12は、自ノードが障害回復処理を終了したとき、他ノードに対応づけられた副履歴記憶装置132をデタッチする。なお、自ノードがデータ記憶装置120の障害回復処理を実行しなかった場合には、他ノードから障害回復処理の終了の通知を図示しない通信部を介して受け付けた後、自ノードに対応づけられた副履歴記憶装置132をアタッチする。
ここで、ノード110と副履歴記憶装置132とのアタッチ、デタッチについて説明する。「アタッチする」とは、ノード110上のアプリケーションから副履歴記憶装置132へのアクセスを可能にすることである。「デタッチする」とは、アタッチとは反対に、副履歴記憶装置132へのアクセスを不可にすることである。
各ノード110は、事前に、副履歴記憶装置132のそれぞれの物理ボリュームに対応するボリュームグループを設定しておく。アタッチする場合は、まず、副履歴記憶装置132に対応するボリュームグループをアクティベートする。次に、アクティベートしたボリュームグループをノード110の特定のディレクトリにマウントする。デタッチをする場合は、まず、副履歴記憶装置132に対応するボリュームグループをアンマウントする。次に、アンマウントしたボリュームグループを非アクティベートする。前述したように、ファイルシステムの整合性維持および記憶装置への要求競合による記憶装置の破損を防止するため、一の副履歴記憶装置132に対しては、一のノード110のみが同時にアタッチすることが望ましい。図7に戻る。
障害回復部14は、データ記憶装置120の一部の領域において障害が発生したとき、アタッチされた副履歴記憶装置132に記録されたアクセス履歴を参照して、データ記憶装置120に対する障害回復処理を実行する。障害回復部14が実行する障害回復処理は、通常のデータベースリカバリ手段でよい。例えば、まず、バックアップファイルにより、データ記憶装置120のデータを特定の過去時点の状態に戻す。次に、アクセス履歴に記録されたデータ記憶装置120に対する操作に基づいてロールフォワードし、コミットが完了していない操作についてはロールバックする。このようにして、障害発生データを障害発生直前の状態まで回復してもよい。
また、DBMSソフトウェアや障害回復処理を実行するアプリケーションの制約として、データ記憶装置120に対する障害回復処理を実行する際に、アクセス履歴ファイルは1ディレクトリに存在しなければならない場合がある。一方で、複数の副履歴記憶装置132は、接続制御部12により複数の異なるディレクトリにマウントされる。この場合、障害回復部14は、複数の異なるディレクトリに存在するアクセス履歴ファイルを、特定のディレクトリからアクセスできるように、それらのアクセス履歴ファイルを参照先とするシンボリックリンクファイルを特定のディレクトリに作成する。障害回復部14は、特定のディレクトリに作成したシンボリックリンクファイルを参照することで、副履歴記憶装置132に記録されたアクセス履歴を参照でき、前述したソフトウェアの制約を充足して障害回復処理を実行できる。
図8は、分散したアクセス履歴ファイルを特定のディレクトリに集約した状態を模式的に示す図である。履歴ディレクトリ30で総称される履歴ディレクトリ30a、30b、30cは、それぞれ、第1の副履歴記憶装置132a、第2の副履歴記憶装置132b、第3の副履歴記憶装置132cをマウントしたディレクトリを示す。障害回復部14は、複数の履歴ディレクトリ30に含まれるアクセス履歴ファイルを集約するための履歴集約ディレクトリ32を作成し、それぞれのアクセス履歴ファイルを参照先とするシンボリックリンクファイルをそのディレクトリに作成する。例えば、履歴集約ディレクトリ32の「SL−L01−01」は、履歴ディレクトリ30aのアクセス履歴ファイル「L01−01」を参照先とするシンボリックリンクファイルである。
このように、シンボリックリンクファイルを作成してアクセス履歴ファイルの集約を実現することで、分散した個々のアクセス履歴ファイルを特定のディレクトリにコピー等をすることなく参照でき、ハードディスク資源の使用量を低減する効果もある。また、コピー時間が削減されるため、障害回復処理の準備時間を短縮できる。
なお、アクセス履歴ファイルを集約するディレクトリには、障害回復処理を実行するノードからアクセスできる任意のディレクトリが選択可能である。図8では、シンボリックリンクファイルのみで構成されたディレクトリを例示したが、例えば、図5における副履歴記憶装置132aがこのディレクトリとして選択されてもよい。この場合の障害回復処理では、アクセス履歴ファイル「L01−01〜L01−03」については実体ファイルが、他のアクセス履歴ファイルについてはシンボリックリンクファイルが用いられてもよい。図7に戻る。
履歴同期部16は、障害回復部14による障害回復処理が終了した後で、主履歴記憶装置130から副履歴記憶装置132にアクセス履歴の差分を反映することにより、それぞれの履歴記憶装置に記録されたアクセス履歴の同期をとる。例えば、図5では、第1のノード110aにより障害回復処理が実行されている間に、それぞれの主履歴記憶装置130にアクセス履歴ファイル「L01−04、L01−05」、「L02−04、L02−05」、「L03−04、L03−05」が作成された。障害回復処理の終了後を示す図6では、履歴同期部16により、これらのアクセス履歴ファイルが副履歴記憶装置132に反映されている。
履歴同期部16による差分の判定には、障害回復処理で用いたアクセス履歴ファイル名またはアクセス履歴ファイルの更新日時を記憶しておき、ファイル名またはファイルの更新日時に基づき判定してもよい。また、アクセス履歴には履歴記憶装置への記録日時が含まれてもよく、履歴同期部16はその記録日時に基づき判定してもよい。また、主履歴記憶装置130のアクセス履歴ファイルの内容と、副履歴記憶装置132のアクセス履歴ファイルの内容とを全文比較して差分を判定してもよい。
図9は、図4のノード110の動作例を示すフローチャートである。同図では、履歴記録部10により、主履歴記憶装置130および副履歴記憶装置132にアクセス履歴を記録している状態において、データ記憶装置120の一部に障害が発生したときの動作例を示している。なお、同図が示すノード110は、障害回復処理を実行するノードであり、図5の例ではノード110aに相当する。
まず、履歴記録部10は、主履歴記憶装置130へのアクセス履歴の記録は継続したまま、副履歴記憶装置132へのアクセス履歴の記録を停止する(S10)。次に、接続制御部12は、他ノードに対応づけられている副履歴記憶装置132と自ノードとをアタッチする(S12)。次に、障害回復部14は、アタッチされた副履歴記憶装置132のアクセス履歴を参照してデータ記憶装置120の障害回復処理を実行する(S14)。障害回復処理の終了後、接続制御部12は、他ノードに対応づけられている副履歴記憶装置132と自ノードとをデタッチする(S16)。最後に、履歴同期部16は、障害回復処理中における自計算機によるアクセス履歴を、主履歴記憶装置130から副履歴記憶装置132に反映させることで、主履歴記憶装置130と副履歴記憶装置132とのアクセス履歴の同期をとる(S18)。
図10も、図4のノード110の動作例を示すフローチャートである。同図が示すノード110は、他ノードにより障害回復処理が実行されるノードであり、図5の例では第2のノード110bおよび第3のノード110cに相当する。S20およびS26の処理は、図9のS10およびS18と同じであるため、S22とS24とについて説明する。S20の後、接続制御部12は、副履歴記憶装置132と自ノードとをデタッチする(S22)。図7では図示しない通信部を介して、他ノードから障害回復処理の終了が通知されると、接続制御部12は、副履歴記憶装置132と自ノードとをアタッチする(S24)。
本実施形態によれば、クラスタシステム100の各ノード110は、データ記憶装置120の一部に障害が発生し、一のノードが障害回復処理を実行する間も、主履歴記憶装置130へのアクセス履歴の記録を継続できる。したがって、その障害の影響を受けないデータ記憶装置120の領域へのアクセスを継続でき、障害に伴うサービスの停止を最小限にすることができる。例えば、図1のクラスタシステム200においては、少なくとも第2のノード210bおよび第3のノード210は、履歴記憶装置230とデタッチする必要があったため、サービスの継続は困難であった。本実施形態では、履歴記憶装置を冗長化し、一方の履歴記憶装置をデタッチした場合でも他方の履歴記憶装置との接続は維持することで、この課題を解決している。高可用性が要求されるミッションクリティカルなシステムにおいて、ここに開示した技術は特に有効である。
なお、図1のクラスタシステム200においても、障害回復処理を実行するノード、例えば第1のノード210aは、自ら障害回復処理を実行する間に、その障害の影響を受けないデータ記憶装置120の領域へのアクセスを継続できる。しかし、障害回復処理の負荷に加え、本来は複数のノードで分散すべきサービス提供負荷がそのノードに集中するためいずれの処理も遅延しやすい。したがって、実際にはノード210aを障害回復処理に専念させる場合も多い。本実施の形態によれば、障害回復処理を実行しないノードは、サービス提供を継続できるため、サービス要求のトラヒックが高く多並列のクラスタシステムにおいて、ここに開示した技術は特に有効である。
また、本実施形態によれば、クラスタシステム100の各ノード110は、主履歴記憶装置130と副履歴記憶装置132とに対し個別に接続され、また、高速なバスインタフェイスでの接続が可能である。したがって、図3のクラスタシステム200での課題であった通信ネットワークの遅延による性能のボトルネックは生じにくい。
また、本実施形態によれば、クラスタシステム200では必要であったNFSサーバ340も不要である。したがって、NFSサーバ340がSPOF(Single Point of Failure)となってしまうような可用性のリスクを低減でき、また、そのリスクに備えるためのコストを削減できる。
さらに、本実施形態によれば、データ記憶装置120の障害回復処理における、アクセス履歴ファイルの配置場所等に関するソフトウェアの制約に対し、シンボリックリンク等の参照オブジェクトを利用することで柔軟に対処できる。また、ハードウェア資源の効率的な利用を実現できる。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
本実施の形態においては、第1のノードが障害回復処理を実行するとして説明したが、第2および第3のノードが実行してもよい。また、障害回復処理を実行するノードは、ハードウェアスペック等に基づいて事前に固定的に決められていてもよく、所定の障害検知システム等により障害が検知されたときに、所定のシステムにより特定のノードが動的に選択されてもよい。動的な特定のノード選択においては、各ノードのCPU使用率等のリソース使用状況を判定し、リソース使用率または使用量が最も小さいノードが選択されてもよい。
従来技術にかかるクラスタシステムの構成例を示す図である。 図1のクラスタシステムにおける障害回復処理時の構成例を示す図である。 従来技術にかかるクラスタシステムの別の構成例を示す図である。 本発明の実施形態にかかるクラスタシステムの構成例を示す図である。 図4のクラスタシステムにおける障害回復処理時の構成例を示す図である。 図4のクラスタシステムにおける障害回復処理後の構成例を示す図である。 図4のノードの構成例を示す機能ブロック図である。 分散したアクセス履歴ファイルを特定のディレクトリに集約した状態を模式的に示す図である。 図4のノードの動作例を示すフローチャートである。 図4のノードの動作例を示すフローチャートである。
符号の説明
10 履歴記録部、12 接続制御部、14 障害回復部、16 履歴同期部、30 履歴ディレクトリ、32 履歴集約ディレクトリ、100 クラスタシステム、110 ノード、120 データ記憶装置、130 主履歴記憶装置、132 副履歴記憶装置、200 クラスタシステム、210 ノード、220 データ記憶装置、230 履歴記憶装置、300 クラスタシステム、310 ノード、320 データ記憶装置、330 履歴記憶装置。

Claims (5)

  1. 計算機と、第1および第2の履歴記憶装置とを有する複数の計算機システムと、
    前記複数の計算機システムの計算機から操作されるデータを記憶するデータ記憶装置と、を備え、
    前記計算機は、
    自計算機システムの前記第1および第2の履歴記憶装置に、自計算機による前記データ記憶装置へのアクセス履歴を記録する履歴記録部と、
    前記複数の計算機システムの第2の履歴記憶装置のそれぞれと自計算機との接続を制御する接続制御部と、
    前記データ記憶装置における障害発生時において、障害回復処理を実行する障害回復部と、
    前記障害回復処理の終了後、前記第1の履歴記憶装置におけるアクセス履歴を前記第2の履歴記憶装置に反映させる履歴同期部と、
    を含み、
    前記データ記憶装置の一部の領域において障害が発生したとき、
    各計算機の前記履歴記録部は、前記第1の履歴記憶装置へのアクセスを維持したまま前記第2の履歴記憶装置への記録を停止し、
    前記複数の計算機システムのうちの一の計算機の接続制御部は、他計算機システムの前記第2の履歴記憶装置と自計算機とを接続し、
    前記一の計算機の障害回復部は、前記複数の計算機システムの第2の履歴記憶装置に記録されたアクセス履歴を参照して、前記データ記憶装置の障害回復処理を実行し、
    前記一の計算機による障害回復処理の実行中において、他の計算機は、前記データ記憶装置へのアクセス、および、前記第1の履歴記憶装置への前記アクセス履歴の記録を継続し、
    各計算機の前記履歴同期部は、前記障害回復処理が終了した後で、自計算機システムの前記第1の履歴記憶装置から前記第2の履歴記憶装置にアクセス履歴の差分を反映することを特徴とするクラスタシステム。
  2. 前記一の計算機の接続制御部は、前記第2の履歴記憶装置のそれぞれを参照先とする1以上のディレクトリを作成し、
    前記障害回復部は、前記複数の計算機システムの前記第2の履歴記憶装置に記録されたアクセス履歴を特定のディレクトリから参照するために、前記1以上のディレクトリから参照されるアクセス履歴を参照する1以上のシンボリックリンクファイルを特定のディレクトリに作成し、前記シンボリックリンクファイルを参照して、前記複数の計算機システムの前記第2の履歴記憶装置に記録されたアクセス履歴を参照することを特徴とする請求項1に記載のクラスタシステム。
  3. 所定のデータ記憶装置と接続される複数の計算機のうちの一つであって、
    自計算機に対応づけられる第1および第2の履歴記憶装置のそれぞれに前記データ記憶装置に対するアクセス履歴を記録する履歴記録部と、
    前記データ記憶装置における障害発生時において、障害回復処理を実行する障害回復部と、
    前記障害回復処理の終了後、前記第1の履歴記憶装置におけるアクセス履歴を前記第2の履歴記憶装置に反映させる履歴同期部と、
    前記複数の計算機にそれぞれ対応づけられる第2の履歴記憶装置と自計算機との接続を制御する接続制御部と、を備え、
    前記データ記憶装置の一部の領域において障害が発生したとき、
    前記履歴記録部は、前記第1の履歴記憶装置へのアクセスを維持したまま前記第2の履歴記憶装置への記録を停止し、
    前記接続制御部は、前記履歴記録部による前記第2の履歴記憶装置への記録の停止後、他計算機に対応づけられている第2の履歴記憶装置と自計算機とを接続し、
    前記障害回復部は、前記複数の計算機にそれぞれ対応づけられている前記第2の履歴記憶装置のアクセス履歴を参照して前記データ記憶装置の障害回復処理を実行し、
    前記履歴同期部は、前記障害回復処理中における自計算機によるアクセス履歴を前記第1の履歴記憶装置から前記第2の履歴記憶装置に反映させることを特徴とする計算機。
  4. 所定のデータ記憶装置と接続される複数の計算機のうちの一つにおける障害回復方法であって、
    自計算機に対応づけられる第1および第2の履歴記憶装置のそれぞれに前記データ記憶装置に対するアクセス履歴を記録するステップと、
    前記データ記憶装置の一部に障害が発生したとき、
    前記第1の履歴記憶装置へのアクセスを維持したまま前記第2の履歴記憶装置への記録を停止するステップと、
    前記第2の履歴記憶装置への記録の停止後、他計算機に対応づけられている第2の履歴記憶装置と自計算機とを接続するステップと、
    前記複数の計算機にそれぞれ対応づけられている前記第2の履歴記憶装置のアクセス履歴を参照して前記データ記憶装置の障害回復処理を実行するステップと、
    前記障害回復処理の終了後、前記障害回復処理中における自計算機によるアクセス履歴を前記第1の履歴記憶装置から前記第2の履歴記憶装置に反映させるステップと、
    を備えることを特徴とする障害回復方法。
  5. 所定のデータ記憶装置と接続される複数の計算機のうちの一つに、
    自計算機に対応づけられる第1および第2の履歴記憶装置のそれぞれに前記データ記憶装置に対するアクセス履歴を記録する履歴記録機能と、
    前記データ記憶装置における障害発生時において、障害回復処理を実行する障害回復機能と、
    前記障害回復処理の終了後、前記第1の履歴記憶装置におけるアクセス履歴を前記第2の履歴記憶装置に反映させる履歴同期機能と、
    前記複数の計算機にそれぞれ対応づけられる第2の履歴記憶装置と自計算機との接続を制御する接続制御機能と、を実現させ、
    前記データ記憶装置の一部の領域において障害が発生したとき、
    前記履歴記録機能は、前記第1の履歴記憶装置へのアクセスを維持したまま前記第2の履歴記憶装置への記録を停止し、
    前記接続制御機能は、前記履歴記録機能による前記第2の履歴記憶装置への記録の停止後、他計算機に対応づけられている第2の履歴記憶装置と自計算機とを接続し、
    前記障害回復機能は、前記複数の計算機にそれぞれ対応づけられている前記第2の履歴記憶装置のアクセス履歴を参照して前記データ記憶装置の障害回復処理を実行し、
    前記履歴同期機能は、前記障害回復処理中における自計算機によるアクセス履歴を前記第1の履歴記憶装置から前記第2の履歴記憶装置に反映させることを特徴とするコンピュータプログラム。
JP2007157828A 2007-06-14 2007-06-14 クラスタシステム、計算機、および障害回復方法 Expired - Fee Related JP5154843B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007157828A JP5154843B2 (ja) 2007-06-14 2007-06-14 クラスタシステム、計算機、および障害回復方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007157828A JP5154843B2 (ja) 2007-06-14 2007-06-14 クラスタシステム、計算機、および障害回復方法

Publications (2)

Publication Number Publication Date
JP2008310591A true JP2008310591A (ja) 2008-12-25
JP5154843B2 JP5154843B2 (ja) 2013-02-27

Family

ID=40238133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007157828A Expired - Fee Related JP5154843B2 (ja) 2007-06-14 2007-06-14 クラスタシステム、計算機、および障害回復方法

Country Status (1)

Country Link
JP (1) JP5154843B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025519A (ja) * 2011-07-20 2013-02-04 Nec Biglobe Ltd 記憶装置共用システム、管理装置、アクセス制御装置、その方法およびプログラム
WO2015025384A1 (ja) * 2013-08-21 2015-02-26 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
US10162875B2 (en) 2013-08-27 2018-12-25 Kabushiki Kaisha Toshiba Database system including a plurality of nodes
CN110990195A (zh) * 2019-11-24 2020-04-10 浪潮电子信息产业股份有限公司 一种数据恢复方法、设备及存储介质
CN113535474A (zh) * 2021-06-30 2021-10-22 重庆紫光华山智安科技有限公司 异构云存储集群故障自动修复的方法、系统、介质及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962557A (ja) * 1995-08-30 1997-03-07 Oki Electric Ind Co Ltd 分散データベースシステム
JP2001290687A (ja) * 2000-04-04 2001-10-19 Nec Eng Ltd データ同期化制御方式
JP2002108679A (ja) * 2000-10-04 2002-04-12 Canon Inc データベースのデータ自動複製システムにおけるデータ回復方法及びデータ回復装置並びに記憶媒体
JP2006106909A (ja) * 2004-09-30 2006-04-20 Nippon Digital Kenkyusho:Kk データバックアップシステム、およびそのコンピュータ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962557A (ja) * 1995-08-30 1997-03-07 Oki Electric Ind Co Ltd 分散データベースシステム
JP2001290687A (ja) * 2000-04-04 2001-10-19 Nec Eng Ltd データ同期化制御方式
JP2002108679A (ja) * 2000-10-04 2002-04-12 Canon Inc データベースのデータ自動複製システムにおけるデータ回復方法及びデータ回復装置並びに記憶媒体
JP2006106909A (ja) * 2004-09-30 2006-04-20 Nippon Digital Kenkyusho:Kk データバックアップシステム、およびそのコンピュータ

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025519A (ja) * 2011-07-20 2013-02-04 Nec Biglobe Ltd 記憶装置共用システム、管理装置、アクセス制御装置、その方法およびプログラム
WO2015025384A1 (ja) * 2013-08-21 2015-02-26 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
JPWO2015025384A1 (ja) * 2013-08-21 2017-03-02 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
US10685041B2 (en) 2013-08-21 2020-06-16 Kabushiki Kaisha Toshiba Database system, computer program product, and data processing method
US10162875B2 (en) 2013-08-27 2018-12-25 Kabushiki Kaisha Toshiba Database system including a plurality of nodes
CN110990195A (zh) * 2019-11-24 2020-04-10 浪潮电子信息产业股份有限公司 一种数据恢复方法、设备及存储介质
CN113535474A (zh) * 2021-06-30 2021-10-22 重庆紫光华山智安科技有限公司 异构云存储集群故障自动修复的方法、系统、介质及终端
CN113535474B (zh) * 2021-06-30 2022-11-11 重庆紫光华山智安科技有限公司 异构云存储集群故障自动修复的方法、系统、介质及终端

Also Published As

Publication number Publication date
JP5154843B2 (ja) 2013-02-27

Similar Documents

Publication Publication Date Title
KR101833114B1 (ko) 분산 데이터베이스 시스템들을 위한 고속 장애 복구
US8924358B1 (en) Change tracking of individual virtual disk files
KR101827239B1 (ko) 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피
US8074035B1 (en) System and method for using multivolume snapshots for online data backup
US9798792B2 (en) Replication for on-line hot-standby database
US9535907B1 (en) System and method for managing backup operations of virtual machines
US7925633B2 (en) Disaster recovery system suitable for database system
US8127174B1 (en) Method and apparatus for performing transparent in-memory checkpointing
US8868858B2 (en) Method and apparatus of continuous data backup and access using virtual machines
US8732121B1 (en) Method and system for backup to a hidden backup storage
CN100458716C (zh) 数据维护、备份和恢复方法
US10831741B2 (en) Log-shipping data replication with early log record fetching
US20110238625A1 (en) Information processing system and method of acquiring backup in an information processing system
US7987325B1 (en) Method and apparatus for implementing a storage lifecycle based on a hierarchy of storage destinations
US9275060B1 (en) Method and system for using high availability attributes to define data protection plans
CN101243446A (zh) 从数据库镜像进行在线页还原
US7979651B1 (en) Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot
US10095415B2 (en) Performance during playback of logged data storage operations
JP5154843B2 (ja) クラスタシステム、計算機、および障害回復方法
CN106325768B (zh) 一种双机存储系统及方法
US7401256B2 (en) System and method for highly available data processing in cluster system
US11093290B1 (en) Backup server resource-aware discovery of client application resources
CN115878384A (zh) 一种基于备份容灾系统的分布式集群及构建方法
JP5124237B2 (ja) ストレージシステムおよびストレージサブシステム
US10169157B2 (en) Efficient state tracking for clusters

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120518

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121206

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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