IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7371547ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム
<>
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図1
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図2
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図3
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図4
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図5
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図6
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図7
  • 特許-ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム
(51)【国際特許分類】
   G06F 11/16 20060101AFI20231024BHJP
   G06F 3/06 20060101ALI20231024BHJP
   G06F 11/14 20060101ALI20231024BHJP
【FI】
G06F11/16 658
G06F3/06 304E
G06F3/06 306Z
G06F11/14 658
【請求項の数】 9
(21)【出願番号】P 2020048992
(22)【出願日】2020-03-19
(65)【公開番号】P2021149534
(43)【公開日】2021-09-27
【審査請求日】2023-02-03
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】堀部 拓也
【審査官】漆原 孝治
(56)【参考文献】
【文献】国際公開第2016/129275(WO,A1)
【文献】特開平5-028021(JP,A)
【文献】特開2009-193208(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/16
G06F 3/06
G06F 11/14
(57)【特許請求の範囲】
【請求項1】
ミラーリング型クラスタシステムを構成するノードであって、
自ノードのイベントタイミング値である自イベントタイミング値と、他ノードのイベントタイミング値である他イベントタイミング値と、を記憶するイベントタイミング値記憶装置と、
ミラーリング対象データを記憶するデータ記憶装置と、
前記ミラーリング対象データを前記データ記憶装置に書き込むデータ書き込み部と、
前記ミラーリング対象データの書き込みイベントが発生したら、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値を増減の何れか一方のみに更新するカウント部と、
前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値及び前記他イベントタイミング値を他ノードに送信する送信部と、
他ノードから前記自イベントタイミング値及び前記他イベントタイミング値を受信する受信部と、
前記受信部が受信した前記他イベントタイミング値で前記イベントタイミング値記憶装置に記憶されている前記他イベントタイミング値を更新する更新部と、
前記受信部が受信した前記自イベントタイミング値と、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値と、を比較することにより、又は、前記受信部が受信した前記他イベントタイミング値と前記イベントタイミング値記憶装置に記憶されている更新前の前記他イベントタイミング値と、を比較することにより、自ノード又は他ノードがリストアされたことを検出するリストア検出部と、
を備えた、
ノード。
【請求項2】
請求項1に記載のノードであって、
前記リストア検出部は、前記受信部が受信した前記自イベントタイミング値が、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値よりも時系列上過去を示す値であるとき、他ノードがリストアされたことを検出する、
ノード。
【請求項3】
請求項1又は2に記載のノードであって、
前記リストア検出部は、前記受信部が受信した前記自イベントタイミング値が、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値よりも時系列上未来を示す値であるとき、自ノードがリストアされたことを検出する、
ノード。
【請求項4】
請求項1から3までの何れか1項に記載のノードであって、
前記リストア検出部は、前記受信部が受信した前記他イベントタイミング値が、前記イベントタイミング値記憶装置に記憶されている更新前の前記他イベントタイミング値よりも時系列上過去を示す値であるとき、他ノードがリストアされたことを検出する、
ノード。
【請求項5】
請求項1から4までの何れか1項に記載のノードであって、
前記データ記憶装置は、更に、前記自イベントタイミング値を記憶するように構成され、
前記カウント部は、前記ミラーリング対象データの書き込みイベントが発生したら、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値を更新すると共に、更新後の前記自イベントタイミング値で前記データ記憶装置に記憶されている前記自イベントタイミング値を更新し、
前記リストア検出部は、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値と、前記データ記憶装置に記憶されている前記自イベントタイミング値と、に基づいて自ノードの前記データ記憶装置がリストアされたことを検出する、
ノード。
【請求項6】
請求項5に記載のノードであって、
前記リストア検出部は、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値が、前記データ記憶装置に記憶されている前記自イベントタイミング値よりも時系列上未来を示す値であるとき、自ノードの前記データ記憶装置がリストアされたことを検出する、
ノード。
【請求項7】
請求項1から6までの何れか1項に記載のノードを複数備えた、
ミラーリング型クラスタシステム。
【請求項8】
ミラーリング型クラスタシステムを構成するノードであって、
自ノードのイベントタイミング値である自イベントタイミング値と、他ノードのイベントタイミング値である他イベントタイミング値と、を記憶するイベントタイミング値記憶装置と、
ミラーリング対象データを記憶するデータ記憶装置と、
を備えたノードのリストア検出方法であって、
前記ミラーリング対象データを前記データ記憶装置に書き込み、
前記ミラーリング対象データの書き込みイベントが発生したら、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値を増減の何れか一方のみに更新し、
前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値及び前記他イベントタイミング値を他ノードに送信し、
他ノードから前記自イベントタイミング値及び前記他イベントタイミング値を受信し、
受信した前記他イベントタイミング値で前記イベントタイミング値記憶装置に記憶されている前記他イベントタイミング値を更新し、
受信した前記自イベントタイミング値と、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値と、を比較することにより、又は、受信した前記他イベントタイミング値と前記イベントタイミング値記憶装置に記憶されている更新前の前記他イベントタイミング値と、を比較することにより、自ノード又は他ノードがリストアされたことを検出する、
リストア検出方法。
【請求項9】
コンピュータに、請求項8に記載のリストア検出方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラムに関する。
【背景技術】
【0002】
高可用な環境を構築するための方式として複数のノードにより冗長化を行うHA(High Availability, 高可用性)クラスタシステムが知られている。HAクラスタシステムの一例として、フェイルオーバークラスタシステムと負荷分散クラスタシステムがある。
【0003】
フェイルオーバークラスタシステムでは、同一の役割を持たせた複数のノードが、実際にサービスを提供する稼働系ノードと、それをバックアップするための待機系ノードと、の2グループに分けられる。稼働系ノードに障害が発生した場合、待機系ノードを稼働系ノードに切り替える。これによりサービスを中断させることなく、高可用な環境が実現される。フェイルオーバークラスタシステムは、Active-Standby型クラスタシステムや高可用密結合クラスタシステムとも呼ばれる。通常、単にHAクラスタシステムと言った場合、このフェイルオーバークラスタシステムを指す。
【0004】
負荷分散クラスタシステムでは、同一の役割を持たせた複数のノードを、実際にサービスを提供する稼働系ノードとして並列に動作させる。複数のノードのうち何れかに障害が発生しても残りのノードでサービスを継続することが可能となる。負荷分散クラスタシステムは、Active-Active型クラスタシステムや密結合並列クラスタシステムとも呼ばれる。
【0005】
前述のフェイルオーバークラスタシステムでは、複数のノードが互いに障害の有無を把握できるようハートビート通信を行っている。即ち、ハートビート通信は、自ノードが正常に稼働していることを他ノードに知らせるための通信である。ハートビート通信は、例えば所定時間毎に複数のノード間で実行さえる。これにより、各ノードは他ノードから受信するハートビートに基づいて当該他ノードの障害監視を行えるようになっている。
【0006】
例えば特許文献1から3に示すように、前述のフェイルオーバークラスタシステムでは、稼働系ノードのデータをクラスタソフトウェアが搭載するミラーリング機能を用いて待機系ノードに複製する。従って、フェイルオーバークラスタシステムは、ミラーリング型クラスタシステムとも呼ばれる。フェイルオーバークラスタシステムでは、サービスを提供している自ノード上でデータ書き込みが発生したことをクラスタソフトウェアが検知すると、自ノードのクラスタソフトウェアは、書き込まれたデータを他ノードへ転送する。他ノードは、自ノードから受信したデータを他ノードのデータストレージに書き込む。これにより、ミラーリング型クラスタシステムを構成するすべてのノードのデータストレージは、同一のデータを保持することになる。
【0007】
仮想環境やクラウド環境ではバックアップの作成及びバックアップからのリストアが容易である。従って、前述のミラーリング型クラスタシステムにおいても、ノード毎に、データストレージを含むシステム全体又はデータストレージのみをバックアップしたり、バックアップからシステム全体又はデータストレージのみをリストアさせるケースが増えてきている。
【0008】
上記のミラーリング型クラスタシステムにおいてバックアップからリストアが実行された場合、当該リストア後では、ミラーリング型クラスタシステムを構成する複数のノードのうちどのノードのデータストレージのデータをミラーリング元のデータとするか決定すると共に、当該ミラーリング元のデータストレージからミラーリング先のデータストレージへデータを転送することにより、複数のノード間でデータストレージのデータを再同期する。
【0009】
しかしながら、上記のリストアは、一般に、どのノードにも属さない外部装置によって実行されるものであるから、各ノードで実行されるクラスタソフトウェアが自ノード又は他ノードで上記のリストアが実行されたことを検出することはできなかった。
【0010】
従って、上記のリストアが実行されたにもかかわらず複数のノード間でデータストレージのデータが再同期されないまま、即ち、複数のノード間でデータストレージのデータが相互に異なった状態が継続し、データが破損するなどの問題が発生するケースが現に存在していた。
【先行技術文献】
【特許文献】
【0011】
【文献】特開2010-231257号公報
【文献】特開2012-064109号公報
【文献】国際公開第2017/047065号
【発明の概要】
【発明が解決しようとする課題】
【0012】
本願発明の目的は、上記課題の何れかを解決することを目的とする。
【課題を解決するための手段】
【0013】
本願発明の第1の観点によれば、ミラーリング型クラスタシステムを構成するノードであって、自ノードのイベントタイミング値である自イベントタイミング値と、他ノードのイベントタイミング値である他イベントタイミング値と、を記憶するイベントタイミング値記憶装置と、ミラーリング対象データを記憶するデータ記憶装置と、前記ミラーリング対象データを前記データ記憶装置に書き込むデータ書き込み部と、前記ミラーリング対象データの書き込みイベントが発生したら、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値を増減の何れか一方のみに更新するカウント部と、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値及び前記他イベントタイミング値を他ノードに送信する送信部と、他ノードから前記自イベントタイミング値及び前記他イベントタイミング値を受信する受信部と、前記受信部が受信した前記他イベントタイミング値で前記イベントタイミング値記憶装置に記憶されている前記他イベントタイミング値を更新する更新部と、前記受信部が受信した前記自イベントタイミング値と、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値と、を比較することにより、又は、前記受信部が受信した前記他イベントタイミング値と前記イベントタイミング値記憶装置に記憶されている更新前の前記他イベントタイミング値と、を比較することにより、自ノード又は他ノードがリストアされたことを検出するリストア検出部と、を備えた、ノードが提供される。
本願発明の第2の観点によれば、ミラーリング型クラスタシステムを構成するノードのリストア検出方法が提供される。ノードは、自ノードのイベントタイミング値である自イベントタイミング値と、他ノードのイベントタイミング値である他イベントタイミング値と、を記憶するイベントタイミング値記憶装置と、ミラーリング対象データを記憶するデータ記憶装置と、を備える。前記ミラーリング対象データを前記データ記憶装置に書き込む。前記ミラーリング対象データの書き込みイベントが発生したら、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値を増減の何れか一方のみに更新する。前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値及び前記他イベントタイミング値を他ノードに送信する。他ノードから前記自イベントタイミング値及び前記他イベントタイミング値を受信する。受信した前記他イベントタイミング値で前記イベントタイミング値記憶装置に記憶されている前記他イベントタイミング値を更新する。受信した前記自イベントタイミング値と、前記イベントタイミング値記憶装置に記憶されている前記自イベントタイミング値と、を比較することにより、又は、受信した前記他イベントタイミング値と前記イベントタイミング値記憶装置に記憶されている更新前の前記他イベントタイミング値と、を比較することにより、自ノード又は他ノードがリストアされたことを検出する。
【発明の効果】
【0014】
本発明によれば、ノードのリストアを検出できる。
【図面の簡単な説明】
【0015】
図1】ノードの機能ブロック図である。
図2】ミラーリング型クラスタシステムの概略図である。
図3】稼働系ノードの機能ブロック図である。
図4】各ノードにおけるイベントタイミング値記憶装置及びデータ記憶装置の記憶内容を示す図である。
図5】各ノードにおけるイベントタイミング値記憶装置及びデータ記憶装置の記憶内容を示す図である。
図6】各ノードにおけるイベントタイミング値記憶装置及びデータ記憶装置の記憶内容を示す図である。
図7】各ノードにおけるイベントタイミング値記憶装置及びデータ記憶装置の記憶内容を示す図である。
図8】稼働系ノードの制御フローである。
【発明を実施するための形態】
【0016】
(第1実施形態)
以下、図1を参照して、第1実施形態を説明する。
【0017】
図1は、ミラーリング型クラスタシステムを構成するノード100の機能ブロック図を示している。ミラーリング型クラスタシステム
【0018】
ミラーリング型クラスタシステムは、前述したように、複数のノードにより構成される。複数のノードは、稼働系ノードと待機系ノードに大別される。稼働系ノードと待機系ノードは同じ構成であるから、以下、待機系ノードをノード100として説明する。
【0019】
ノード100は、中央演算処理器としてのCPU(Central Processing Unit)と、読み書き自由のRAM(Random Access Memory)、読み出し専用のROM(Read Only Memory)を備えている。ノード100は、更に、イベントタイミング値記憶装置101と、データ記憶装置102を備える。イベントタイミング値記憶装置101及びデータ記憶装置102は、何れも、典型的にはHDD(Hard Disk Drive)である。
【0020】
そして、CPUがROMに記憶されているプログラムを読み出して実行することで、プログラムは、CPUなどのハードウェアを以下の機能部として機能させる。機能部は、データ書き込み部103、カウント部104、送信部105、受信部106、更新部107、リストア検出部108を含む。
【0021】
イベントタイミング値記憶装置101は、自ノードのイベントタイミング値である自イベントタイミング値と、他ノードのイベントタイミング値である他イベントタイミング値と、を記憶する。
【0022】
データ記憶装置102は、ミラーリング対象データを記憶する。
【0023】
データ書き込み部103は、ミラーリング対象データをデータ記憶装置に書き込む。
【0024】
カウント部104は、ミラーリング対象データの書き込みイベントが発生したら、イベントタイミング値記憶装置に記憶されている自イベントタイミング値を増減の何れか一方のみに更新する。
【0025】
送信部105は、イベントタイミング値記憶装置に記憶されている自イベントタイミング値及び他イベントタイミング値を他ノードに送信する。
【0026】
受信部106は、他ノードから自イベントタイミング値及び他イベントタイミング値を受信する。
【0027】
更新部107は、受信部が受信した他イベントタイミング値でイベントタイミング値記憶装置に記憶されている他イベントタイミング値を更新する。
【0028】
リストア検出部108は、受信部が受信した自イベントタイミング値と、イベントタイミング値記憶装置に記憶されている自イベントタイミング値と、を比較することにより、自ノード又は他ノードがリストアされたことを検出する。
【0029】
また、リストア検出部108は、受信部が受信した他イベントタイミング値とイベントタイミング値記憶装置に記憶されている更新前の他イベントタイミング値と、を比較することにより、他ノードがリストアされたことを検出する。
【0030】
以上の構成によれば、自ノード又は他ノードがリストアされたことを検出である。
【0031】
(第2実施形態)
次に、図2から図8を参照して、第2実施形態を説明する。
【0032】
図2には、ミラーリング型クラスタシステム1の概略図を示している。図2に示すように、ミラーリング型クラスタシステム1は、稼働系ノード2と待機系ノード3を含む。ミラーリング型クラスタシステム1は、更に、他の待機系ノードを含んでもよい。
【0033】
稼働系ノード2と待機系ノード3は、ネットワークスイッチ4を介して双方向通信可能に構成されている。稼働系ノード2と待機系ノード3は同一の構成であるから、以下、稼働系ノード2の構成を説明し、待機系ノード3の構成は説明しない。稼働系ノード2は、自ノードの一具体例である。待機系ノード3は、他ノードの一具体例である。
【0034】
図3には、稼働系ノード2の機能ブロック図を示している。図3に示すように、稼働系ノード2は、中央演算処理器としてのCPU(Central Processing Unit)と、読み書き自由のRAM(Random Access Memory)、読み出し専用のROM(Read Only Memory)を備えている。稼働系ノード2は、更に、カウンタ10と、イベントタイミング値記憶装置11、データ記憶装置12を備えている。イベントタイミング値記憶装置11及びデータ記憶装置12は、何れも、典型的にはHDD(Hard Disk Drive)である。イベントタイミング値記憶装置11及びデータ記憶装置12は、別部品として構成されている。即ち、データ記憶装置12を単体でリストア可能であると共に、イベントタイミング値記憶装置11及びデータ記憶装置12を同時にリストア可能とされている。具体的には、稼働系ノード2全体がリストアされたとき、イベントタイミング値記憶装置11及びデータ記憶装置12がリストアされる。稼働系ノード2全体がリストアされたとき、稼働系ノード2で稼働するOSもリストアされる。データ記憶装置12単体がリストアされたとき、イベントタイミング値記憶装置11はリストアされない。
【0035】
そして、CPUがROMに記憶されているプログラムを読み出して実行することで、プログラムは、CPUなどのハードウェアを以下の機能部として機能させる。機能部は、データ書き込み部13、カウント部14、送信部15、受信部16、更新部17、リストア検出部18を含む。
【0036】
カウンタ10は、外部指令に基づいて内部に保有するカウンタ値をインクリメントするように構成されている。しかし、カウンタ10は、外部指令に基づいてカウンタ値をデクリメントするように構成してもよい。
【0037】
イベントタイミング値記憶装置11は、自ノードのイベントタイミング値である自イベントタイミング値と、他ノードのイベントタイミング値である他イベントタイミング値と、を記憶する。
【0038】
図4には、イベントタイミング値記憶装置11の記憶内容11aを例示している。図4に示すように、イベントタイミング値記憶装置11は、第1自イベントタイミング値P、第1他イベントタイミング値Q、第2自イベントタイミング値R、第2他イベントタイミング値Sを記憶する。
【0039】
第1自イベントタイミング値Pは、自イベントタイミング値の一具体例である。第1自イベントタイミング値Pは、自ノードのイベントタイミング値記憶装置11に関連するイベントタイミング値である。
【0040】
第1他イベントタイミング値Qは、他イベントタイミング値の一具体例である。第1他イベントタイミング値Qは、第1他イベントタイミング値Qは、他ノードのイベントタイミング値記憶装置11に関連するイベントタイミング値である。
【0041】
第2自イベントタイミング値Rは、自ノードのデータ記憶装置12に関連するイベントタイミング値である。
【0042】
第2他イベントタイミング値Sは、他ノードのデータ記憶装置12に関連するイベントタイミング値である。
【0043】
データ記憶装置12は、ミラーリング対象データを記憶する。ミラーリング対象データとは、例えば稼働系ノード2がサービスを提供するのに供されるデータであって、待機系ノード3にミラーリングされる対象としてのデータである。データ記憶装置12は、更に、自イベントタイミング値と、他イベントタイミング値と、を記憶する。
【0044】
図4には、データ記憶装置12の記憶内容12aを例示している。図4に示すように、データ記憶装置12は、イベントタイミング値記憶装置11と同様に、第1自イベントタイミング値P、第1他イベントタイミング値Q、第2自イベントタイミング値R、第2他イベントタイミング値Sを記憶する。
【0045】
データ書き込み部13は、ミラーリング対象データをデータ記憶装置12に書き込む。
【0046】
カウント部14は、ミラーリング対象データの書き込みイベントが発生したら、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P及び第2自イベントタイミング値Rをインクリメントするように更新する。具体的には、カウント部14は、ミラーリング対象データの書き込みイベントが発生したら、カウンタ10に指令を出力することで、カウンタ10が保有するカウンタ値をインクリメントさせる。そして、カウント部14は、インクリメント後のカウンタ値をイベントタイミング値記憶装置11の第1自イベントタイミング値P及び第2自イベントタイミング値Rに複写する。これにより、カウント部14は、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P及び第2自イベントタイミング値Rをインクリメントするように更新する。ただし、カウンタ10を省略し、カウント部14がイベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P及び第2自イベントタイミング値Rを直接インクリメントするように構成してもよい。
【0047】
カウント部14は、ミラーリング対象データの書き込みイベントが発生したら、更に、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P等を更新すると共に、更新後の第1自イベントタイミング値P等でデータ記憶装置12に記憶されている第1自イベントタイミング値P等を更新する。第1自イベントタイミング値P等とは、以下、第1自イベントタイミング値P及び第1他イベントタイミング値Q、第2自イベントタイミング値R、第2他イベントタイミング値Sを意味する。
【0048】
送信部15は、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P等を待機系ノード3に送信する。送信部15は、更に、ミラーリング対象データの書き込みイベントが発生したら、ミラーリング対象データを待機系ノード3に送信する。
【0049】
受信部106は、待機系ノード3から第1自イベントタイミング値P等を受信する。
【0050】
更新部17は、受信部16が受信した第1他イベントタイミング値Q及び第2他イベントタイミング値Sで、イベントタイミング値記憶装置11及びデータ記憶装置12にそれぞれ記憶されている第1他イベントタイミング値Q及び第2他イベントタイミング値Sを更新する。
【0051】
リストア検出部18は、受信部16が受信した第1自イベントタイミング値Pと、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値Pと、を比較することにより、稼働系ノード2又は待機系ノード3がリストアされたことを検出する。
【0052】
リストア検出部18は、受信部16が受信した第1他イベントタイミング値Qとイベントタイミング値記憶装置11に記憶されている更新前の第1他イベントタイミング値Qと、を比較することにより、他ノードがリストアされたことを検出する。
【0053】
次に、図4から図8を参照して、稼働系ノード2の動作を説明する。図8には、稼働系ノード2の制御フローを示している。
【0054】
ステップ300:
まず、稼働系ノード2及び待機系ノード3をネットワークスイッチ4で接続するなどして、ミラーリング型クラスタシステム1を構成したら、稼働系ノード2及び待機系ノード3が初期化される。具体的には、図4に示すように、稼働系ノード2において、カウンタ10、イベントタイミング値記憶装置11の記憶内容11a、データ記憶装置12の記憶内容12aが初期化される。即ち、カウンタ10のカウンタ値は0にセットされ、イベントタイミング値記憶装置11の記憶内容11aに含まれる第1自イベントタイミング値P等はゼロにセットされる。待機系ノード3においても同様である。
【0055】
ステップ310:
次に、稼働系ノード2のデータ書き込み部13がミラーリング対象データをデータ記憶装置12に書き込む。これにより、ミラーリング対象データの書き込みイベントが発生する。
【0056】
ステップ320ーS340:
ミラーリング対象データの書き込みイベントが発生したら(S320:YES)、カウント部14は、カウンタ10にカウンタ値更新指令を出力する。これにより、図5に示すように、カウンタ10のカウンタ値がインクリメントされる。
【0057】
そして、カウント部14は、カウンタ10のカウンタ値で、図5に示すように、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P及び第2自イベントタイミング値Rを更新する(S330)。端的に言えば、カウント部14は、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P及び第2自イベントタイミング値Rをインクリメントする。
【0058】
同様に、カウント部14は、カウンタ10のカウンタ値で、図5に示すように、データ記憶装置12に記憶されている第1自イベントタイミング値P及び第2自イベントタイミング値Rを更新する。端的に言えば、カウント部14は、データ記憶装置12に記憶されている第1自イベントタイミング値P及び第2自イベントタイミング値Rをインクリメントする。
【0059】
そして、送信部15は、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P等を待機系ノード3に送信する(S340)。具体的には、送信部15は、ミラーリング対象データと共に、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P等を待機系ノード3に送信する。これにより、図5に示すように、待機系ノード3のイベントタイミング値記憶装置11に記憶されている第1他イベントタイミング値Q及び第2他イベントタイミング値Sが更新される。
【0060】
ステップS350―S370:
受信部16が待機系ノード3から第1自イベントタイミング値P等を受信したら(S350:YES)、リストア検出部18は、受信部16が受信した第1自イベントタイミング値Pと、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値Pと、を比較することにより、稼働系ノード2又は待機系ノード3がリストアされたことを検出する(S360)。
【0061】
図6には、待機系ノード3全体がリストアされた場合を示している。この場合、イベントタイミング値記憶装置11及びデータ記憶装置12に記憶されている第1自イベントタイミング値P等がすべて初期化されている。図6に示すように、受信部16が受信した第1自イベントタイミング値P(0)が、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P(1)よりも時系列上で過去を示す値である場合、リストア検出部18は、待機系ノード3がリストアされたことを検出する。具体的には、リストア検出部18は、この場合、待機系ノード3のイベントタイミング値記憶装置11及びデータ記憶装置12を含む待機系ノード3全体がリストアされたことを検出する。
【0062】
一方、例えば、受信部16が受信した第1自イベントタイミング値Pが、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値Pよりも時系列上で未来を示す値である場合、リストア検出部18は、稼働系ノード2がリストアされたことを検出する(S360)。具体的には、リストア検出部18は、この場合、稼働系ノード2のイベントタイミング値記憶装置11及びデータ記憶装置12を含む稼働系ノード2全体がリストアされたことを検出する。稼働系ノード2全体がリストアされるとは、仮想マシンのスナップショット機能などを用いて、OS領域を含めて取得したバックアップから稼働系ノード2がリストアされたことを意味する。
【0063】
また、リストア検出部18は、受信部16が受信した第1他イベントタイミング値Qとイベントタイミング値記憶装置11に記憶されている第1他イベントタイミング値Qと、を比較することにより、待機系ノード3がリストアされたことを検出する(S360)。
【0064】
具体的には、受信部16が受信した第1他イベントタイミング値Qが、イベントタイミング値記憶装置11に記憶されている第1他イベントタイミング値Qよりも時系列上過去を示す値であるとき、待機系ノード3がリストアされたことを検出する。具体的には、リストア検出部18は、この場合、待機系ノード3のイベントタイミング値記憶装置11及びデータ記憶装置12を含む待機系ノード3全体がリストアされたことを検出する。
【0065】
リストア検出部18は、稼働系ノード2全体がリストアされたこと、又は、待機系ノード3全体がリストアされたことを検出したら(S365:YES)、処理をS380に進める。一方、リストア検出部18は、稼働系ノード2全体がリストアされたことを検出せず、及び、待機系ノード3全体がリストアされたことを検出しなかったら(S365:NO)、処理をS370に進める。
【0066】
更新部17は、受信部16が待機系ノード3から受信した第1他イベントタイミング値Q及び第2他イベントタイミング値Sで、イベントタイミング値記憶装置11に記憶されている第1他イベントタイミング値Q及び第2他イベントタイミング値Sを更新する(S370)。
【0067】
ステップS380:
次に、リストア検出部18は、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値P等と、データ記憶装置12に記憶されている第1自イベントタイミング値P等と、に基づいて稼働系ノード2のデータ記憶装置12がリストアされたことを検出する。具体的には、例えば図7に示すように、リストア検出部18は、イベントタイミング値記憶装置11に記憶されている第1自イベントタイミング値Pが、データ記憶装置12に記憶されている第1自イベントタイミング値Pよりも時系列上未来を示す値であるとき、稼働系ノード2のデータ記憶装置12がリストアされたことを検出する。端的にいえば、イベントタイミング値記憶装置11の記憶内容11aとデータ記憶装置12の記憶内容12aが一致しない場合、リストア検出部18は、データ記憶装置12はリストアされたことを検出する。
【0068】
以上、上記第2実施形態では、稼働系ノード2及び待機系ノード3のリストアが検出可能となり、稼働系ノード2のデータ記憶装置12のみがリストアされたことも検出可能となる。従って、例えば、リストアが検知された後にどのノードのデータ記憶装置12が保有するミラーリング対象データが最新であるかを判定するなどして、複数のノード間におけるミラーリング対象データの同期を正常化させることが可能となる。また、リストアが実行されたことを利用者にメッセージ形式で報知することで、利用者に何らかのアクションを促すことが可能となる。
【0069】
また、例えば、稼働系ノード2と待機系ノード3との間における第1自イベントタイミング値P等の送受信をハートビート通信に合わせて実行することで、ミラーリング型クラスタシステム1の動作に大きな負荷を与えることのないリストア検知システムが実現される。
【0070】
なお、上記第2実施形態では、ミラーリング型クラスタシステム1が2台のノード、即ち稼働系ノード2及び待機系ノード3によって構成されるとしたが、3台以上のノードによって構成されてもよい。また、稼働系ノード2は、1つのデータ記憶装置12を備えるものとしたが、2つのデータ記憶装置12を備えてもよい。
【0071】
また、稼働系ノード2及び待機系ノード3が双方向でミラーリングされる構成を採用し得る。また、イベントタイミング値に代えて、稼働系ノード2のシステム時刻を用いてもよい。
【0072】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。非一時的なコンピュータ可読媒体の例は、更に、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROMを含む。非一時的なコンピュータ可読媒体の例は、更に、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0073】
100 ノード
101 イベントタイミング値記憶装置
102 データ記憶装置
103 データ書き込み部
104 カウント部
105 送信部
106 受信部
107 更新部
108 リストア検出部
図1
図2
図3
図4
図5
図6
図7
図8