WO2016117129A1 - ストレージシステムおよびその制御方法 - Google Patents

ストレージシステムおよびその制御方法 Download PDF

Info

Publication number
WO2016117129A1
WO2016117129A1 PCT/JP2015/051921 JP2015051921W WO2016117129A1 WO 2016117129 A1 WO2016117129 A1 WO 2016117129A1 JP 2015051921 W JP2015051921 W JP 2015051921W WO 2016117129 A1 WO2016117129 A1 WO 2016117129A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
data
nonvolatile memory
volatile memory
processing unit
Prior art date
Application number
PCT/JP2015/051921
Other languages
English (en)
French (fr)
Inventor
光雄 早坂
和正 松原
正法 高田
義裕 吉井
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/051921 priority Critical patent/WO2016117129A1/ja
Priority to US15/537,895 priority patent/US10452321B2/en
Priority to JP2016570464A priority patent/JP6335336B2/ja
Priority to CN201580072581.2A priority patent/CN107111459B/zh
Publication of WO2016117129A1 publication Critical patent/WO2016117129A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2058Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using more than 2 mirrored copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2084Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring on the same storage unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

 ストレージシステムは、ホストからの第1の更新データを格納する揮発性メモリ、およびホストからの他ノードへの第2の更新データの第2の複製データを格納する第1の不揮発性メモリを有し、第1の更新データの第1の複製データを他ノードの第2の不揮発性メモリに格納する複製管理処理部、および複製管理処理部による第1の更新データの第1の複製データの、他ノードの第2の不揮発性メモリへの格納に応答して、第1の更新データの更新要求に対する応答をホストへ送信するストレージサービス処理部を有するノードを、他ノードと接続したクラスタ構成である。

Description

ストレージシステムおよびその制御方法
本発明は、ストレージ制御装置を含むストレージシステムおよびその制御方法に関する。
 ストレージ制御装置(以下、ノード)における性能向上を実現する技術として、ホストからの更新データをノードの不揮発性メモリ領域に格納後、ストレージ装置のデータ更新に係らず、すぐに処理完了とする技術が特許文献1に記載されている。この技術は、2ノードクラスタによるHA(High Availability)構成のストレージシステムを対象としている。各ノードは、不揮発性メモリを有し、不揮発性メモリ上に自ノードのデータを格納する領域と、他ノードのデータを格納する領域の2領域を持つ。ホスト(ホストコンピュータ)からの更新データを受け付けたノードは、自ノードの不揮発性メモリ上の自ノードデータ格納領域に更新データを格納し、他ノードの不揮発性メモリ上の他ノードデータ格納領域に更新データを複製する。複製が終わると、更新データを受け付けたノードは、処理完了をホストへ通知する。
 このように、特許文献1の技術は、 不揮発性メモリへの更新データの格納により、更新データをストレージ装置に書き出す前に、処理完了をホストへ通知できる。また、複製に伴う更新データの2重化により、一方のノードに障害が起きても、他方のノードが処理を引き継ぐことが可能となる。
US7730153
 不揮発性メモリは、揮発性メモリに比べてコストが高いので、費用対効果が低い。そこで、揮発性メモリの特定領域をバッテリでバックアップして不揮発性メモリと同等に用いる技術がある。この技術によってもバッテリもコストが高く、費用対効果が低いので、バッテリ容量を最小限にする必要がある。特にクラスタ構成のストレージシステムでは、ノード数に応じて不揮発性メモリの容量を多くする必要があるので、バッテリバックアップしたとしても、その容量を少なく抑えることが要求される。
 開示するストレージシステムは、ホストからの第1の更新データを格納する揮発性メモリ、およびホストからの他ノードへの第2の更新データの第2の複製データを格納する第1の不揮発性メモリを有し、第1の更新データの第1の複製データを他ノードの第2の不揮発性メモリに格納する複製管理処理部、および複製管理処理部による第1の更新データの第1の複製データの、他ノードの第2の不揮発性メモリへの格納に応答して、第1の更新データの更新要求に対する応答をホストへ送信するストレージサービス処理部を有するノードを、他ノードと接続したクラスタ構成である。
 開示するストレージシステムによれば、バッテリバックアップする揮発性メモリの容量、不揮発性メモリの容量を少なく抑えることができる。
ストレージシステムの揮発性メモリをバッテリバックアップする構成を示す図である。 スイッチの状態を示す表である。 スイッチの状態遷移図である。 実施例1のストレージシステムの概略構成図である。 ストレージシステムのハードウェア構成図である。 自ノード静止点管理テーブルの例である。 自ノードオペレーション管理テーブルの例である。 他ノード静止点管理テーブルの例である。 他ノードオペレーション管理テーブルの例である。 データ退避場所管理テーブルの例である。 ノード状態管理テーブルの例である。 各ノードの揮発性メモリおよび不揮発性メモリのデータの持ち方の例である。 他ノードに障害が発生し、1ノードで処理する場合の構成例である。 他ノードの障害を検知した後の、自ノードの複製管理処理部の処理フローチャートである。 更新要求を受信したときの処理フローチャートである。 非同期に更新データをボリュームに書き出す複製管理処理部の処理フローチャートである。 冗長化処理部の処理フローチャートである。 ボリュームに退避されたデータの復帰処理のフローチャートである。 ボリュームに退避されたデータの他の復帰処理のフローチャートである。 ボリュームに退避されたデータのさらに他の復帰処理のフローチャートである。 実施例2のストレージシステムの概略構成図である。 不揮発性メモリ上に格納する他ノードのデータの格納方法について示した図である。 不揮発性メモリ上に格納する他ノードのデータの他の格納方法について示した図である。 一部のノードが停止した場合の複製管理処理部の処理フローチャートである。 実施例3のファイルサーバとブロックストレージとの多段構成のノードによるストレージシステムの概略構成図である。 ストレージシステムのハードウェア構成図である。
 幾つかの実施例を、図面を参照して説明する。
 以下の説明では、「XXテーブル」と表現して各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「XXテーブル」を「XX情報」と呼ぶことがある。
 また、以下の説明では、プログラムを主語として処理を説明する場合があるが、プログラムをハードウェア自体、またはハードウェアが有するプロセッサ(例えば、MP(Micro Processor))によって実行することで、定められた処理を、適宜に記憶資源(例えばメモリ)および/または通信インターフェースデバイス(例えばポート)を用いながら行うため、処理の主語がハードウェアとされても良い。また、プログラムソースは、例えば、プログラム配布サーバまたは記憶メディアであっても良い。
 さらに、以下の説明では、アプリケーションまたはファイルシステムの整合性が取れている状態を静止点と呼ぶ。静止点は、1つまたは2つ以上存在し、それぞれに静止点番号を付与して管理する。
 図1は、ストレージシステムの揮発性メモリをバッテリバックアップする構成を示す図である。図1では、揮発性メモリのバッテリバックアップを説明するために、バッテリバックアップ以外のための構成の図示を省略する。
 ストレージシステムは、ノードA200とノードB400とによる2ノードクラスタ構成である。ノードA200は揮発性メモリ205を有し、ノードB400は揮発性メモリ405を有する。揮発性メモリ205は、バッテリバックアップ不可能な領域290とバッテリバックアップが可能な領域300を有する。揮発性メモリ405は、バッテリバックアップ不可能な領域490とバッテリバックアップが可能な領域500を有する。領域300は自ノード用領域320および他ノード用領域310を含む。同様に、領域500は、自ノード用領域520および他ノード用領域510を含む。これらのバッテリバックアップ可能な各領域は、電源断等の障害時にも、障害検知部710に制御されるスイッチ800を介してバッテリ700に接続されることによって、バッテリ700から電源(電力・電気)が供給され、データ(情報)を保持できる。すなわち、バッテリバックアップ可能な各領域は、電源断等の障害時にもデータ(情報)を保持できるので、不揮発性メモリとして動作する。バッテリバックアップ可能な各領域の具体例として、バッテリバックアップ式のNVRAM(Non-Volatile Random Access Memory)等がある。なお、障害検知部710への入力の図示を省略する。
 スイッチ800は、SW1、SW2、SW3、およびSW4を含む。SW1がON(導通)のとき、自ノード用領域320がバッテリバックアップにより不揮発性メモリとして動作する。SW2がONのとき、他ノード用領域310がバッテリバックアップにより不揮発性メモリとして動作する。SW3がONのとき、自ノード用領域520がバッテリバックアップにより不揮発性メモリとして動作する。SW4がONのとき、他ノード用領域520がバッテリバックアップにより不揮発性メモリとして動作する。
 図2は、スイッチ800の状態(SW1、SW2、SW3、およびSW4の組み合わせによる状態)を示す表である。図3は、スイッチ800の状態遷移図である。スイッチ800は状態1~5を有する。SW1、SW2、SW3、およびSW4の組み合わせにより、状態1~5以外の他の状態もあり得るが、障害検知部710により他の状態に遷移しないように制御されても良い。図2において「-」は、SWがONおよびOFFのいずれでもよいことを表す。バッテリ700の電力消費を考慮するとOFFが望ましい。
 状態1は、ノードA200およびノードB400が正常のときのスイッチ800の状態である。状態2は、ノードB400の障害(電源断など)の検知に応答して、状態1から遷移するスイッチ800の状態であり、SW1およびSW2がONまたはOFFである。スイッチ800の状態は、状態2におけるノードA200の障害(電源断など)の検知に応答して、状態3に遷移する。状態3は、SW1およびSW2がONである。状態4は、ノードA200の障害(電源断など)の検知に応答して、状態1から遷移するスイッチ800の状態であり、SW3およびSW4がONまたはOFFである。スイッチ800の状態は、状態4におけるノードB400の障害(電源断など)の検知に応答して、状態5に遷移する。状態5は、SW3およびSW4がONである。状態3と状態5は共に、ノードA200およびノードB400が障害の状態であるが、障害検知部710は、いずれのノードの障害を先に検知したかに依存して異なる状態として制御する。
 ノードA200およびノードB400の電源は、一般に異なる系統が用意されるので一方のノードの障害の一つである電源断などの障害が検知されることが多いが、異なる系統であっても同じ原因(たとえば、広域またはストレージシステムが設置されているセンタ全体の電源の異常)でノードA200およびノードB400の電源の障害が検知されることもある。このような障害の発生に備えて、図2における「-」は、SWはバッテリ700の電力消費を考慮するとOFFが望ましいと前述したが、他の観点ではONにしておくことが望ましい。なぜならば、電源の障害の検知からバッテリバックアップが完了するまでの時間に、バッテリバックアップ可能な領域300または領域500に格納されているデータが消失する可能性があるからである。
 ただし、ノードA200およびノードB400の電源が正常なとき(状態1)には、バッテリバックアップ可能な領域300および領域500の他ノード用領域310、510をバッテリバックアップしておけばよい。
 以降では、他ノード用領域310、510をバッテリバックアップしておくことを前提に、バッテリバックアップにより不揮発性メモリとして動作する領域300および領域500を、不揮発性メモリと呼んで説明する。
 図4は、ストレージシステムの概略構成図である。ストレージシステムは、前述したようにノードA(ファイルストレージ装置A)200およびノードB(ファイルストレージ装置B)400を含み、さらにストレージ装置(一般に、ブロックストレージ装置)600を含んでクラスタ100を構成する。
 ノードA200は、不揮発性メモリ320上に、ストレージサービス処理部A210および複製管理処理部A220の処理部を有する。同様に、ノードB400は、不揮発性メモリ520上に、ストレージサービス処理部B410および複製管理処理部B420の処理部を有する。以下、ノードA200の処理部を代表させて説明する。
 ノードA200のストレージサービス処理部A210は、ホスト110からの更新データA10を含むデータ更新要求を受け付ける。ここで、「更新」は、新規に「格納」する場合を含む。ストレージサービス処理部A210は、揮発性メモリ290上の自ノード(ノードA)データ保存領域291に更新データA10を格納する。複製管理処理部A220は、ノードA-B間の通信路800を介して、複製管理処理部B420を制御して、ノードB400の不揮発性メモリ510上の他ノード(ノードA)データ保存領域501に更新データA10を複製し、他ノードオペレーション管理テーブル460に、受け付けたデータ更新要求に含まれる、更新データA10に関するオペレーション(WRITE)を登録する。複製管理処理部A220は、自ノードオペレーション管理テーブル240に更新データA10に関するオペレーション(WRITE)を登録し、ホスト110からのデータ更新要求に対する応答をホスト110へ送信して、処理を完了する。
 複製管理処理部A220は、自ノードオペレーション管理テーブル240を参照し、ノードB400の不揮発性メモリ510の他ノードデータ保存領域501に格納しているデータの、データ量が予め定めた所定量を超えた場合、格納時刻から予め定めた所定時間が経過した場合、または、ホスト110から強制書き出し要求を受けた場合、揮発性メモリ290に記憶される自ノード静止点管理テーブル230の未書込最古の静止点番号(後述)に対応する自ノードオペレーション管理テーブル240のオペレーションを実行し、ブロックストレージ装置600のボリュームA610へデータを書き出す。これにより、揮発性メモリ290上の自ノードデータ保存領域291に格納したデータ(本例では更新データA10)は、ボリュームA610に書き出される。複製管理処理部A220は、書き出しが完了すると、自ノード静止点管理テーブル230の未書込最古の静止点番号を更新し、複製管理処理部B420を制御して、他ノード400の不揮発性メモリ510に記憶される他ノード静止点管理テーブル450の未書込最古の静止点番号を更新する。
 1ノードに障害が発生すると,障害発生ノードの処理部を他方のノードで実行し,サービスを引き継ぐ。これをフェイルオーバーという。例えば、ノードA200のみで障害が発生すると、ノードA200で稼働していたストレージサービス処理部A210および複製管理処理部A220は、ノードB400の不揮発性メモリ520上で実行する。その際、不揮発性メモリ510上の他ノード静止点管理テーブル450、他ノードオペレーション管理テーブル460及び他ノード(ノードA)データ保存領域501を参照し,サービスを引き継ぐ。
 揮発性メモリ290上の自ノードデータ保存領域291のデータをボリュームA610に書き出す前に、電源断などの全ノード障害が発生した場合には、ノードA200の複製管理処理部A220は、不揮発性メモリ310上の他ノードデータ保存領域301に格納しているデータをボリューム630の不揮発性メモリデータ退避領域631へ、データ保護処理を実行した上で、書き出す。データ保護処理は、同一データのミラーリングやParity付書き出しなどである。不揮発性メモリ退避領域631は、各ノードがアクセスできれば、どこに存在しても良い(図4では、ストレージ装置内のボリューム630にある)。
 ノードA200のストレージサービス処理部A210は、ホスト110からのデータ参照要求を受け付けると、揮発性メモリ209上の自ノード(ノードA)データ保存領域291に参照データが存在すれば、そのデータをホスト110へ送信し、参照データが存在しなければボリュームA610からデータを取得(READ)して、そのデータをホスト110へ送信して、処理を完了する。
 本実施例により、データの保護を実行しながら、ホスト110からのデータ更新要求に対する応答性能を向上できる。更に、揮発性メモリ290、490と不揮発性メモリ310、510、不揮発性メモリ退避領域631を用いることにより、不揮発性メモリ300、500の容量を削減することができる。換言すると、揮発性メモリを用いない場合に比べて、揮発性メモリ290、490に相当する容量を、不揮発性メモリ310、510の容量として確保しなくてよい。これは、2ノードクラスタによるHA構成のストレージシステムにおいて、各ノード200、400は、2ノード分(自他ノードのデータ保存領域の容量)の不揮発性メモリを確保しなくても良く、互いに他ノードのデータ保存領域301、501の容量の不揮発性メモリを確保すればよいことを示している。したがって、バッテリ700の容量を削減でき、バッテリ700のコストを低減可能である。
 図5は、ストレージシステムのハードウェア構成図である。クラスタ100は、ホスト110がネットワーク131を介して接続したノードA200およびノードB400で構成される、2ノードのストレージシステムである。また、各ノードは、専用ネットワーク161を介して管理端末160に接続される。ネットワーク131および161は、例えばWAN(Wide Area Network)、LAN(Local Area Network)、インターネット、公衆回線または専用回線などであってもよい。クラスタ内スイッチ150は、ホスト110との間で転送するデータをノードA200およびノードB400に振り分ける。
 ノードA200は、ホスト110からデータ更新要求を受け取り、更新要求されたデータをブロックストレージ装置600に書き出すストレージ制御装置である。CPU1210は、不揮発性メモリ320に格納された処理部の処理を実行する。
 監視部1230は、自ノード(ノードA200)および他ノード(ノードB400)の状態(稼働中、停止中)を検知し、ノード状態管理テーブル280を書き換え、バッテリバックアップが必要な場合に監視結果を障害検知部710に通知すると共に、ノードの状態に対応する各処理部の実行を管理する。ノードA200の監視部1230とノードB400の監視部1430は、ハートビート検知などを用いて、互いのノード状態を検知し、各々が有するノード状態管理テーブル280、480の更新や、障害検出時には複製管理処理部220、420の実行を制御する。監視部1230から通知を受けた障害検知部710は、前述のように、スイッチ800を制御する。
 揮発性メモリ290に格納するテーブルは、自ノード静止点管理テーブル230、自ノードオペレーション管理テーブル240、データ退避場所管理テーブル270、およびノード状態管理テーブル280である。不揮発性メモリ300は、図1に示すように、自ノード用領域320および他ノード用領域310を含む。これらの領域も不揮発性メモリと呼ぶ。不揮発性メモリ310に格納するテーブルは、他ノード静止点管理テーブル250および他ノードオペレーション管理テーブル260である。ここでは、データ退避場所管理テーブル270やノード状態管理テーブル280は、揮発性メモリ290上にあるものとして、図示、説明するが、不揮発性メモリ320やボリューム610、620、630のいずれかにあってもよい。さらに、揮発性メモリ290や不揮発性メモリ300は、各処理部の実行に必要な領域(例えば、ワークエリア)を有する。
 ノードB400は、自ノードがノードBとなり、他ノードがノードAとなる点を除いて、ノードAと同様であるので、説明を省略する。
 管理端末160は、ノードA200やノードB400の管理情報を必要に応じて取得し、ノードA200やノードB400を操作するための、入出力装置を有する端末である。
 ブロックストレージ装置600は、ノードA200、ノードB400、ホスト110や管理端末160からの制御に従いデータを格納する。このため、ブロックストレージ装置600は、データを格納するためのボリュームA610、ボリュームB620を有する。また、ブロックストレージ装置600は、障害時に不揮発性メモリ300、500のテーブルを含む各種データを退避するためのボリューム630を有し、ボリューム630は、不揮発性メモリデータ退避領域631を有する。
 図6Aは、自ノード静止点管理テーブル230、430の例である。自ノード静止点管理テーブル230を代表させて説明する。自ノード静止点管理テーブル230は、自ノードの最新の静止点番号231と未書込最古の静止点番号232を格納する。
 最新の静止点番号231は、オペレーション世代(ボリュームA610のデータを更新する纏まりを世代と呼ぶ。)を管理するための番号である。複製管理処理部A220が、自ノードオペレーション管理テーブル240に、ホスト110から受けたデータ更新のオペレーションを登録する際に、オペレーションに紐づけて最新の静止点番号231を付与する。したがって、自ノードが受け付けたオペレーション数が所定数を超えた場合、またはオペレーションを登録してから所定時間が経過した場合、複製管理処理部220が最新静止点番号231を加算(更新)する。
 未書込最古の静止点番号232は、オペレーション(ボリュームA610のデータの更新)を終えていない静止点の最も古い番号を示す。一つの静止点番号(世代)に複数のオペレーション(前述の世代としての纏まり)がある場合は、同じ静止点番号の全てのオペレーションの実行を終了した段階で、複製管理処理部A220が未書込最古の静止点番号232を更新する。
 図6Bは、自ノードオペレーション管理テーブル240、440の例である。自ノードオペレーション管理テーブル240を代表させて説明する。自ノードオペレーション管理テーブル240は、自ノードへのホスト110からのオペレーション242とオペレーションに対応する静止点番号241を格納する。静止点番号241は、各オペレーション242を受け付けた時点の最新の静止点番号231である。オペレーション242は、自ノードが受け付けたホスト110からのオペレーション(の種別)である。
 たとえば、図6Aの自ノード静止点管理テーブル230を参照すると、最新の静止点番号231が「3」、未書込最古の静止点番号233が「2」であり、自ノードオペレーション管理テーブル240に登録されているエントリの中では、静止点番号1に対応するオペレーション(Write(DataA))はすでに処理(ここでは、ブロックストレージ装置600のボリューム610への書き込み)を終えたものである。静止点番号「2」に対応するオペレーション(Write(DataC)及びWrite(DataE))は、まだ処理を終えていない最古のオペレーションであり、次に処理されるオペレーションの候補である。静止点番号「3」に対応するオペレーションは、最新のオペレーションである。
 図6Cは、他ノード静止点管理テーブル250、450の例である。他ノード静止点管理テーブル250を代表させて説明する。他ノード静止点管理テーブル250は、他ノードの最新の静止点番号251と未書込最古の静止点番号252を格納する。最新の静止点番号251と未書込最古の静止点番号252は、他ノードに関する点を除いて、自ノード静止点管理テーブル230の最新の静止点番号231と未書込最古の静止点番号232と同様であるので、説明を省略する。
 図6Dは、他ノードオペレーション管理テーブル260、460の例である。他ノードオペレーション管理テーブル260を代表させて説明する。他ノードオペレーション管理テーブル260は、他ノードが受け付けた各オペレーション262と各オペレーションに対応する静止点番号261を格納する。他ノードオペレーション管理テーブル260は、他ノードに関する点を除いて、自ノードオペレーション管理テーブル240と同様であるので、説明を省略する。なお、他ノードオペレーション管理テーブル260は、他ノード(たとえば、ノードB)が管理する自ノードオペレーション管理テーブル440の内容と同期(データ同期)している。
 図7Aは、データ退避場所管理テーブル270、470の例である。データ退避場所管理テーブル270を代表させて説明する。データ退避場所管理テーブル270は、他ノードの障害時に、さらに自ノードの障害発生に備えて、ノードAの複製管理処理部A220によって自ノードAの不揮発性メモリ310に格納されているデータをボリューム630の不揮発性メモリデータ退避領域631に退避する際の、退避先を格納する。データ退避場所管理テーブル270は、管理端末160により設定される。ノード名271は、各ノードを区別するための識別子である。退避データ格納ボリューム272は、各ノードの不揮発性メモリ310、510に格納されているデータを退避するボリュームである。退避データ格納パス273は、各ノードの不揮発性メモリ310、510に格納されているデータをボリュームへ退避するためのパスである。
 図7Bは、ノード状態管理テーブル280、480の例である。ノード状態管理テーブル280を代表させて説明する。ノード状態管理テーブル280は、監視部1230が自ノードおよび他ノードの状態を記録するためのテーブルである。ノード名281は、各ノードを区別するための識別子である。状態282は、各ノードの現在の状態(稼働中または停止中)である。引継中ノード283は、停止中のノードがある場合(図中:ノードC停止中)、停止中のノードが稼働中に実行していたオペレーションを引き継いでいるノード(図中:ノードA)である。直接書き込みモード284は、不揮発性メモリ510、310への格納を介さず、揮発性メモリ290、490からブロックストレージ装置600へ直接書き込む場合にオン(図中はオフ)が設定される。
 障害復帰時モード285は、障害発生に伴い不揮発性メモリ退避領域631に各ノードの不揮発性メモリのデータを退避した後、障害から復帰した場合の復帰モードである。復帰モードとして、通常復帰モード(図13)、他ノード用の退避領域マウント復帰モード(図14)およびフェイルオーバー復帰モード(図15)について後述するが、復帰モードはこの限りではない。管理端末160は、直接書き込みモード284や障害復帰時モード285は、管理端末160から設定される。
 図8は、各ノードの揮発性メモリおよび不揮発性メモリのデータの持ち方の例である。ノードA200は、ノードA200の揮発性メモリ290のデータ(図では、更新データA1、A2、・・・)をノードB400の不揮発性メモリ510(図では、他ノード(ノードA)データ保存領域501)に複製し、ノードA200の不揮発性メモリ300には複製しない。ノードB400も、ノードA200と同様に、揮発性メモリ490のデータ(図では、更新データB1、B2、・・・)をノードA200の不揮発性メモリ310(図では、他ノード(ノードB)データ保存領域301)に複製し、ノードB400の不揮発性メモリ500には複製しない。
 図9は、ノードB400が障害により停止した時のクラスタ100(稼働中部分)の例である。ノードB400の障害に伴い、スイッチ800のSW1及びSW2がONし、SW3及びSW4がOFFしている。
 ノード状態管理テーブル280(図示略)の直接書き込みモード284がオンのときは、自ノードデータ保存領域291に格納した更新データを、不揮発性メモリ300の自ノード領域320に格納せずに、ボリューム610へ書き出す。
 図9は、他ノード(ノードB)に障害が発生し、1ノード(ノードA)で処理する場合の構成例である。直接書き込みモード284がオフの場合を説明する。複製管理処理部A220は、不揮発性メモリ300の自ノード用領域320上に自ノードデータ保存領域302を確保する。複製管理処理部A220は、自ノードデータ保存領域291に格納している自ノードデータの複製先を、ノードB400の不揮発性メモリ500の他ノード用領域510から、ノードA200の不揮発性メモリ320に確保した自ノードデータ保存領域302に変更する。
 さらに、ノードA200の複製管理処理部A220は、ノードA200の揮発性メモリ290上に他ノードデータ保存領域292を作成し、ノードA200の不揮発性メモリ300上にある他ノードデータ保存領域301のデータをノードA200の揮発性メモリ290の他ノードデータ保存領域292に複製する。これにより、バッテリ700の容量を最大利用して、性能向上を図る。
 図10は、他ノード(ノードB400)の障害を検知後の、自ノード(ノードA200)の複製管理処理部A220の処理フローチャートである。
 複製管理処理部A220は、自ノード(ノードA200)の不揮発性メモリ300の自ノード用領域320上に自ノードデータ保存領域302を確保する(S10)。複製管理処理部A220は、揮発性メモリ290上の自ノードデータ保存領域291の更新データを、確保した自ノードデータ保存領域302に複製する(S11)。
 複製管理処理部220は、他ノードデータ保存領域292を自ノード(ノードA200)の揮発性メモリ290上に確保する(S12)。複製管理処理部220は、確保した他ノードデータ保存領域292に、自ノード(ノードA200)の不揮発性メモリ300の他ノード用領域310上の他ノードデータ保存領域301のデータを複製する(S13)。
 複製管理処理部A220は、ストレージサービス処理部A210を実行させ、揮発性メモリ290上の自ノードデータ保存領域291および他ノードデータ保存領域292の更新データをボリューム610および620に各々書き出す(S14)。
 また、S11、S13において、自ノード(ノードA200)は、自ノード(ノードA200)の更新データおよび他ノード(ノードB400)が処理していた更新データを管理するためのテーブル(自ノード(他ノード(ノードB400))静止点管理テーブル430、自ノード(ノードB)オペレーション管理テーブル440、他ノード(自ノード(ノードA200))静止点管理テーブル450、他ノード(自ノード(ノードA200))オペレーション管理テーブル460)を複製し、他ノード(ノードB400)の処理を引き継ぐ。
 図11は、自ノードがホスト110からデータの更新要求を受け取り、ホスト110に更新要求の処理完了を通知するまでの、ストレージサービス処理部A210及び複製管理処理部A220の処理フローチャートの例である。ここでは、自ノード(ノードA200)が更新要求を受け取った場合を説明する。
 ストレージサービス処理部A210は、受信した更新データを揮発性メモリ290上の自ノードデータ保存領域291に保存する(S20)。ストレージサービス処理部A210は複製管理処理部A220を実行させる。複製管理処理部A220は、ノード状態管理テーブル280のノード名281と状態282を参照し、他ノード(ノードB400)が稼働しているかを確認する(S21)。
 他ノード(ノードB400)の状態が稼働中であれば、複製管理処理部A220は、他ノード(ノードB400)の不揮発性メモリ500上の他ノードデータ保存領域501に更新データを複製する(S22)。複製管理処理部A220による複製終了に応じて、ストレージサービス処理部A210はホスト110に処理完了を通知する(S23)。
 他ノード(ノードB400)の状態が停止中であれば、複製管理処理部A220は、ストレージサービス処理部A210を実行する。ストレージサービス処理部A210は、ノード状態管理テーブル280の直接書き込みモード284を参照し、直接書き込みモードであるかを確認する(S24)。
 ストレージサービス処理部A210は、直接書き込みモードが無効(オフ)の場合は、自ノード(ノードA200)の不揮発性メモリ300の自ノード用領域320上の自ノードデータ保存領域302に更新データを複製し(S25)、ホスト110に処理完了を通知する(S23)。
 ストレージサービス処理部A210は、直接書き込みモードが有効(オン)の場合は、自ノード(ノードA200)の揮発性メモリ290上の自ノードデータ保存領域291にある更新データ(オペレーション)をボリューム610へ書き出し(S26)、ホスト110に処理完了を通知する(S23)。
 図12Aは、ストレージサービス処理部A210によるホスト110への処理完了の通知に至る処理とは、非同期に揮発性メモリ上の更新データをボリューム610に書き出す、複製管理処理部A220の処理フローチャートである。
 複製管理処理部A220は、自ノードオペレーション管理テーブル240を参照し、オペレーションの総データ量が予め定めた所定量に達した場合、更新データを格納してから所定時間が経過した場合またはホスト110および管理端末160から強制書き出し要求が来た場合には、自ノード静止点管理テーブル230の未書込最古の静止点番号232を参照し、自ノードオペレーション管理テーブル240の静止点番号241と未書込最古の静止点番号232とが一致するオペレーションを実行し、ボリューム610に更新データを書き出す(S31)。ボリューム610に書き出した更新データに対応する、他ノード(ノードB400)の不揮発性メモリ510の他ノードデータ保存領域501に格納されている更新データ(複製データ)を削除しても良い。
 複製管理処理部A220は、ノードA200の自ノード静止点管理テーブル230の未書込最古の静止点番号232を参照し、自ノードオペレーション管理テーブル240の未書込最古の静止点番号241の全てのオペレーションを実行したか確認する(S32)。未書込最古の静止点番号232の全てのオペレーションを処理していなければS31に戻る。
 未書込最古の静止点番号232の全てのオペレーションを処理していれば、複製管理処理部A220は、ノードA200が管理する自ノード静止点管理テーブル230の未書込番号232に1を加算し(S33)、ノードB400が管理する他ノード静止点管理テーブル450の未書込最古の静止点番号に1を加算する(S34)。
 図12Bは、ノードの停止により揮発性メモリ上の更新データが消失するので、不揮発性メモリ上の更新データを冗長化するために、ボリュームへ退避する、冗長化処理部(図4では図示略)の処理フローチャートの例である。更新データの冗長化は、不揮発性メモリはバッテリバックアップされているので、バッテリ容量の限界を超える(放電してしまう)時間の電源断が発生する可能性があるためである。ノードA200の冗長化処理部は、データ退避場所管理テーブル270を参照し、不揮発性メモリ300上の更新データをボリューム630の不揮発性メモリデータ退避領域631に退避する(S40)。
 図13~15は、電源喪失等の障害により全ノードが停止し、各ノードの不揮発性メモリ上のデータがボリューム630に退避された後の復帰処理のフローチャートである。自ノードをノードA200、他ノードをノードB400として説明する。
 図13は、復帰モードが通常復帰モードの場合の複製管理処理部220Aの処理フローチャートの例である。複製管理処理部220Aは、自ノード(ノードA200)が退避した更新(退避)データを自ノード(ノードA200)の不揮発性メモリ300上に復元し、他ノード(ノードB400)の不揮発性メモリ500上にある更新(退避)データを自ノード(ノードA200)の揮発性メモリ290上に複製した後にオペレーションを実行する。
 複製管理処理部A220は、ノードA200がボリューム630上の不揮発性メモリ退避領域631に退避したデータ(ノードB400の更新データ)を、ノードA200の不揮発性メモリ300の他ノードデータ保存領域301に復元する。このとき、複製管理処理部B420が、ノードB400でも同様に、退避データ(ノードA200の更新データ)を不揮発性メモリ500の他ノードデータ保存領域501上に復元する(S50)。
 複製管理処理部A220は、ノードB400の不揮発性メモリ500上にある他ノードデータ保存領域501からデータ(ノードA200の更新データ)を読み出し、ノードA200の揮発性メモリ290の自ノードデータ保存領域291に複製する(S51)。複製管理処理部A220は、揮発性メモリ290上の自ノードデータ保存領域291の更新(退避)データのオペレーションを実行し、ボリュームA610に書き出す(S52)。
 複製管理処理部A220は、ノードA200にある自ノード静止点管理テーブル230の未書込最古の静止点番号232と、ノードB400にある他ノード静止点管理テーブル450の未書込最古の静止点番号を更新する(S53)。複製管理処理部A220は、ボリュームA610に書き出したデータに対応するデータであって、ボリューム630の不揮発性メモリデータ退避領域631に退避したデータ(冗長化データ)を削除する(S54)。
 複製管理処理部A220は、全ての更新データを処理したかを確認する(S55)。全ての更新(退避)データの処理を完了していれば、複製管理処理部A220は復帰処理を終了する。全ての更新データを処理していなければ、S52に戻る。
 図14は、復帰モードが他ノード用の退避領域マウント復帰モードの場合の複製管理処理部220Aの処理フローチャートの例である。複製管理処理部220Aは、他ノード(ノードB400)が退避した更新(退避)データを自ノード(ノードA200)の不揮発性メモリ300上に復元し、自ノード(ノードA200)の不揮発性メモリ300上にある更新(退避)データを自ノード(ノードA200)の揮発性メモリ290上に複製した後にオペレーションを実行する。
 ノードA200の複製管理処理部A220は、ノードB400がボリューム630上の不揮発性メモリデータ退避領域631に退避したデータ(ノードA200の更新データ)を、ノードA200の不揮発性メモリ300の他ノードデータ保存領域301に復元する。このとき、ノードB400でも同様に退避データ(ノードB400の更新データ)を不揮発性メモリ500上に復元する(S60)。複製管理処理部A220は、ノードA200の不揮発性メモリ300上にある他ノードデータ保存領域301から、データ(ノードA200の更新データ)を読み出し、ノードA200の揮発性メモリ290の自ノードデータ保存領域291に複製する(S61)。以降のS62~S65の処理は、図13の複製管理処理部A220のS52~S55の処理と同様であるので、説明を省略する。
 図15は、復帰モードがフェイルオーバー復帰モードの場合の複製管理処理部220Aの処理フローチャートの例である。複製管理処理部220Aは、自ノード(ノードA200)が退避した更新(退避)データを自ノード(ノードA200)の不揮発性メモリ300に復元した後、他ノードへフェイルオーバーし、オペレーションを実行する。
 ノードA200の複製管理処理部A220は、ノードA200がボリューム630上の不揮発性メモリデータ退避領域631に退避したデータ(ノードB400の更新データ)を、ノードA200の不揮発性メモリ300の他ノードデータ保存領域301に復元する。このとき、ノードB400でも同様に退避データ(ノードA200の更新データ)を不揮発性メモリ500上の他ノードデータ保存領域501に復元する(S70)。
 自ノード(ノードA200)から他ノード(ノードB400)へフェイルオーバーする(S71)。また、他ノード(ノードB400)から、自ノード(ノードA200)へフェイルオーバーする。
 複製管理処理部A220は、ノードA200の不揮発性メモリ300上にある他ノードデータ保存領域301から退避データ(ノードB400の更新データ)を読み出し、ノードA200の揮発性メモリ290の自ノードデータ保存領域291に複製する(S72)。
 複製管理処理部A220は、揮発性メモリ290上の自ノードデータ保存領域291の退避データ(ノードB400の更新データ)のオペレーションを実行し、ボリュームB620に書き出す(S73)。複製管理処理部A220は、ノードB400にある自ノード静止点管理テーブル430の未書込最古の静止点番号と、ノードA200にある他ノード静止点管理テーブル250の未書込最古の静止点番号252を更新する(S74)。
 ボリュームB620に書き出したデータに対応するデータであって、ボリューム630の不揮発性メモリデータ退避領域631に退避したデータを削除する(S75)。このとき、ノードB400でも同様の処理が行われ、ボリュームA620に退避データ(ノードA400の更新データ)が書きだされて、ボリューム630の不揮発性メモリデータ退避領域631の退避データを削除する。
 全ての更新(退避)データを削除したか確認する(S77)。全ての退避データを処理していなければ、S73に戻る。全ての更新(退避)データの処理を完了していれば、自ノード(ノードA200)から他ノード(ノードB400)へフェイルバックし(S78)、復帰処理を終了する。また、他ノード(ノードB400)から自ノード(ノードA200)へフェイルバックも行われる。
 図16は、クラスタが3ノード以上のストレージシステムの概略構成図である。基本的な動作は、実施例1と同様であるので、実施例1との相違点を中心に説明する。
 クラスタ構成のストレージシステムは、ノードA204、ノードB404、ノードAおよびノードB以外のノード405により構成され、各ノードの構成は同様である。
 図17及び図18は、各ノードが不揮発性メモリ上に格納する他ノードのデータの格納方法について示した図である。図17は、自ノード以外の全てのノードの揮発性メモリ上のデータを、自ノードの不揮発性メモリ上に複製して格納する場合を示している。図18は、各ノードが一つのノードの揮発性メモリのデータを複製して格納するリング状の格納方法を示している。
 図19は、一部のノードが停止した場合の複製管理処理部の処理フローチャートの例である。実施例1の2ノード構成のストレージシステムでは、他ノードの停止に応答して、自ノードが処理を継続する必要があった。本実施例の構成のストレージシステムでは、全ての他ノードが停止した場合にのみ自ノードが単独で処理を継続する必要がある。一部の他ノードが停止した場合が、実施例1と本実施例とで相違する。自ノードをノードA204として説明する。
 ノードA204の監視部1231は、他ノードの障害を検知する。他ノードの障害の検知に応答して、ノードA204の複製管理処理部は、ノード状態管理テーブル280を参照し、稼働中の他ノードがあるか判定する(S15)。稼働中の他ノードがなければ、複製管理処理部は、実施例1の他ノード障害発生検知後の自ノード処理(図10のS10~S14)を実行する。稼働中の他ノードが存在する場合は、稼働中のノードが停止中のノードの処理を引き継ぐ(S16)。引き継ぎ方は、実施例1の他ノード障害発生検知後の自ノード処理(図10のS10~S14)と同様である。
 図20は、ファイルサーバとブロックストレージとの多段構成のノードによるストレージシステムの概略構成図である。ここでは、実施例1と同様に2ノード構成のストレージシステムを説明するが、実施例2のように、3ノード以上のストレージシステムであっても同様に動作する。基本的な動作は、実施例1や実施例2と同様であるので、これらとの相違点を中心に説明する。
 図20は、実施例1におけるノードがファイルサーバとブロックストレージを接続した構成のストレージシステムである。ファイルサーバA201とファイルサーバB401の組み合わせは、実施例1のノードA200とノードB400の組み合わせと同様に動作する。また、ブロックストレージA202とブロックストレージB402は、ファイルサーバからのデータの更新要求を、揮発性メモリに保存後、他ノードの不揮発性メモリ上の他ノードデータ保存領域へ保存する。更新要求に含まれる更新データは、実施例1と同様に非同期にストレージ装置に書き出される。以上のように、ブロックストレージにおいても、ファイルサーバと同様に、動作する。
 図21は、ストレージシステムのハードウェア構成図である。実施例1のハードウェア構成との差異を中心に説明する。ファイルストレージA201は、ホスト110からデータの更新要求を受け取り、ブロックストレージA202またはブロックストレージB402に書き出す計算機である。CPU2010は、揮発性メモリ2013または不揮発性メモリ2014に格納された処理部を実行する。I/F2011は、ホスト110、クラスタ内スイッチ150、ファイルサーバB401、ブロックストレージA202、ブロックストレージB402やストレージ装置600などの各計算機の間でデータを送受信する。監視部2012は、ファイルサーバA201およびファイルサーバB402、ブロックストレージA202やブロックストレージB402の状態(稼働中、停止中)を検知し、検知した状態をノード状態管理テーブル280に格納する。ファイルサーバA202の監視部2012とファイルサーバB401の監視部4012は、互いの状態を管理し、各々が有するノード状態管理テーブル280、480を用いて管理する。揮発性メモリ2013または不揮発性メモリ2014は、ストレージサービスを提供するための処理部やテーブル類を格納する。格納する処理部やテーブル類は、実施例と同じである。
 ファイルサーバB401は、ファイルサーバA201と対の構成となる。ブロックストレージA202とブロックストレージB402も、ファイルサーバA201とファイルサーバB202と同様の対の構成となる。
 管理端末160は、ファイルサーバA201、ファイルサーバB401、ブロックストレージA202やブロックストレージB402の管理情報を必要に応じて取得し、操作するための端末であって、ネットワークに接続するためのI/Fと操作するための入出力装置を有する計算機である。
 ストレージ装置600は、ファイルサーバA201、ファイルサーバB401、ブロックストレージA202、ブロックストレージB402、ホスト110や管理端末160からの指示に従いデータを格納する。このため、ストレージ装置600は、データを格納するための単体/複数のボリューム640を有する。また、電源断などの障害発生時に、ファイルサーバA201、ファイルサーバB401、ブロックストレージA202やブロックストレージB402の不揮発性メモリ上のテーブルを含む各種データを退避するためのボリューム630、および不揮発性メモリデータ退避領域631を有する。
 本実施例は、実施例1~3の構成において、不揮発性メモリが、バッテリバックアップした揮発性メモリではない場合を示す。基本動作は、実施例1~3と同様であるため割愛し、相違点のみ説明する。本実施例では、不揮発性メモリ上に更新データが残り続けるため、図4の障害発生時の不揮発性メモリデータ退避領域631への退避処理を不要とする。更に、片ノード障害時は、図9や図10のように、バッテリ保護領域増加による不揮発性メモリ増加ができない。そのため,ノード障害により、他ノードへフェイルオーバーが起きると,そのストレージサービス処理部B410や複製管理処理部B420は,常に直接書き込みモードで動作する。 以上の実施形態によれば、クラスタを構成する各ノードは、他ノードのデータを格納する不揮発性メモリを持てばよい。また、不揮発性メモリが揮発性メモリをバッテリバックアップしている場合には、バッテリ容量を低減可能となる。
 100:クラスタ、200:ノードA、290:揮発性メモリ、300:不揮発性メモリ、400:ノードB、490:揮発性メモリ、500:不揮発性メモリ、600:ストレージ装置、700:バッテリ、710:障害検知部。

Claims (10)

  1.  ノードと、前記ノードと接続された他ノードとを備えるストレージシステムであって、
     前記ノードは、
      ホストからの第1の更新データを格納する揮発性メモリ、および前記ホストからの前記他ノードへの第2の更新データの第2の複製データを格納する第1の不揮発性メモリを有し、
      前記第1の更新データの第1の複製データを前記他ノードの第2の不揮発性メモリに格納する複製管理処理部と、前記第1の複製データの、前記他ノードの前記第2の不揮発性メモリへの格納に応答して、前記第1の更新データの更新要求に対する応答を前記ホストへ送信するストレージサービス処理部と、を有することを特徴とするストレージシステム。
  2.  前記他ノードの前記第2の不揮発性メモリに格納している前記第1の複製データのデータ量が予め定めた所定量を超えた場合、前記第1の複製データの格納時刻から予め定めた所定時間が経過した場合、および、前記ホストから強制書き出し要求を受けた場合のいずれかの場合に、前記複製管理処理部は、前記第1の更新データをストレージ装置へ書き出し、書き出した前記第1の更新データに対応する、前記第2の不揮発性メモリに格納されている前記第1の複製データを削除することを特徴とする請求項1記載のストレージシステム。
  3.  前記他ノードの障害の検知に応答して、前記ノードは前記揮発性メモリの所定の領域をバッテリバックアップして第3の不揮発性メモリとし、前記揮発性メモリに格納した前記第1の更新データを前記第3の不揮発性メモリに格納することを特徴とする請求項2記載のストレージシステム。
  4.  前記ノードは、前記第1の不揮発性メモリに格納している前記第2の複製データと前記第3の不揮発性メモリに格納している前記第1の更新データとを、前記ストレージ装置の予め定めた退避領域に退避する冗長化処理部を有することを特徴とする請求項3記載のストレージシステム。
  5.  前記他ノードの障害からの復旧に応答して、前記ノードは前記退避領域から、前記第2の複製データを前記第1の不揮発性メモリに、前記第1の更新データを前記揮発性メモリに復元することを特徴とする請求項4記載のストレージシステム。
  6.  前記ノードの前記第1の不揮発性メモリと、前記他ノードの前記第2の不揮発性メモリとの少なくともいずれか一方は、バッテリバックアップされた揮発性メモリであることを特徴とする請求項1記載のストレージシステム。
  7.  ノードと他ノードを接続したクラスタ構成のストレージシステムの制御方法であって、
     前記ノードは、ホストからの第1の更新データを格納する揮発性メモリ、および前記ホストからの前記他ノードへの第2の更新データの第2の複製データを格納する第1の不揮発性メモリを有し、
      前記第1の更新データの第1の複製データを前記他ノードの第2の不揮発性メモリに格納し、
      前記他ノードの前記第2の不揮発性メモリへの前記第1の複製データの格納に応答して、前記第1の更新データの更新要求に対する応答を前記ホストへ送信することを特徴とするストレージシステムの制御方法。
  8.  前記ノードは、前記第1の不揮発性メモリに格納している前記第2の複製データを、前記ストレージ装置の予め定めた退避領域に退避することを特徴とする請求項7記載のストレージシステムの制御方法。
  9.  前記他ノードの障害からの復旧に応答して、前記ノードは前記退避領域から、前記第2の複製データを前記第1の不揮発性メモリに復元することを特徴とする請求項8記載のストレージシステムの制御方法。
  10.  前記ノードの前記第1の不揮発性メモリと、前記他ノードの前記第2の不揮発性メモリとの少なくともいずれか一方は、バッテリバックアップされた揮発性メモリであることを特徴とする請求項7記載のストレージシステムの制御方法。
PCT/JP2015/051921 2015-01-23 2015-01-23 ストレージシステムおよびその制御方法 WO2016117129A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2015/051921 WO2016117129A1 (ja) 2015-01-23 2015-01-23 ストレージシステムおよびその制御方法
US15/537,895 US10452321B2 (en) 2015-01-23 2015-01-23 Storage system and control method therefor
JP2016570464A JP6335336B2 (ja) 2015-01-23 2015-01-23 ストレージシステムおよびその制御方法
CN201580072581.2A CN107111459B (zh) 2015-01-23 2015-01-23 存储系统及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/051921 WO2016117129A1 (ja) 2015-01-23 2015-01-23 ストレージシステムおよびその制御方法

Publications (1)

Publication Number Publication Date
WO2016117129A1 true WO2016117129A1 (ja) 2016-07-28

Family

ID=56416694

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/051921 WO2016117129A1 (ja) 2015-01-23 2015-01-23 ストレージシステムおよびその制御方法

Country Status (4)

Country Link
US (1) US10452321B2 (ja)
JP (1) JP6335336B2 (ja)
CN (1) CN107111459B (ja)
WO (1) WO2016117129A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10082985B2 (en) * 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
JP6907976B2 (ja) * 2018-03-14 2021-07-21 オムロン株式会社 コントローラ及びデータ保存方法
JP2023173646A (ja) * 2022-05-26 2023-12-07 株式会社日立製作所 データ共有システム、データ共有方法、及びデータ共有プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099390A (ja) * 2000-09-22 2002-04-05 Toshiba Corp ディスク制御装置
JP2006277205A (ja) * 2005-03-29 2006-10-12 Nec Corp 記憶装置システムおよびその制御方法、制御プログラム
JP2010152747A (ja) * 2008-12-25 2010-07-08 Nec Corp ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7730153B1 (en) 2001-12-04 2010-06-01 Netapp, Inc. Efficient use of NVRAM during takeover in a node cluster
US6965979B2 (en) * 2003-01-29 2005-11-15 Pillar Data Systems, Inc. Methods and systems of host caching
US7886182B1 (en) * 2007-04-19 2011-02-08 Network Appliances, Inc. Enhanced coordinated cluster recovery
US9471449B2 (en) * 2008-01-03 2016-10-18 Hewlett Packard Enterprise Development Lp Performing mirroring of a logical storage unit
US8627136B2 (en) * 2010-12-27 2014-01-07 Netapp Inc. Non-disruptive failover of RDMA connection
US20160004721A1 (en) * 2014-07-01 2016-01-07 Commvault Systems, Inc. Replicating local file systems as respective luns in a storage array, using block-level data transfers and enhanced storage managers, data agents, and media agents in an information management system
JP6306737B2 (ja) * 2014-11-04 2018-04-04 株式会社日立製作所 半導体メモリデバイス、及び、半導体メモリデバイスを有するストレージ装置
US10176065B2 (en) * 2015-02-16 2019-01-08 Seagate Technology Llc Intelligent failure prediction and redundancy management in a data storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099390A (ja) * 2000-09-22 2002-04-05 Toshiba Corp ディスク制御装置
JP2006277205A (ja) * 2005-03-29 2006-10-12 Nec Corp 記憶装置システムおよびその制御方法、制御プログラム
JP2010152747A (ja) * 2008-12-25 2010-07-08 Nec Corp ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム

Also Published As

Publication number Publication date
CN107111459A (zh) 2017-08-29
JP6335336B2 (ja) 2018-05-30
JPWO2016117129A1 (ja) 2017-11-09
US10452321B2 (en) 2019-10-22
US20170344313A1 (en) 2017-11-30
CN107111459B (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
US8341455B2 (en) Management method and system for managing replication by taking into account cluster storage accessibility to a host computer
JP5352115B2 (ja) ストレージシステム及びその監視条件変更方法
JP4939174B2 (ja) ミラーリングされたシステム内の障害を管理するための方法
US7603581B2 (en) Remote copying of updates to primary and secondary storage locations subject to a copy relationship
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
JP2010504589A (ja) グローバルホットスペアディスクが存在するときに、故障したドライブを復元、及びコピーバックする最適化された方法
US11221935B2 (en) Information processing system, information processing system management method, and program thereof
US11204709B2 (en) Storage system and storage control method
US20130145206A1 (en) Method and system for using a standby server to improve redundancy in a dual-node data storage system
US8639968B2 (en) Computing system reliability
JP6335336B2 (ja) ストレージシステムおよびその制御方法
JP2006260141A (ja) 記憶システムの制御方法、記憶システム、記憶制御装置、記憶システムの制御プログラム、情報処理システム
US9582384B2 (en) Method and system for data replication
JP5644795B2 (ja) ストレージ装置、データ復旧方法およびプログラム
JP2009265973A (ja) データ同期システム、障害復旧方法、及び、プログラム
JP2008276281A (ja) データ同期システム、方法、及び、プログラム
JP5947974B2 (ja) 情報処理装置及び情報処理装置の交換支援システム並びに交換支援方法
JP2021149773A (ja) ハイブリッドクラウドにおけるデータを保護する方法
JP2021033782A (ja) リモートコピーシステム
JP2023163298A (ja) 記憶システム及び障害対処方法
US11216348B2 (en) All flash array server and control method thereof
JP7371547B2 (ja) ノード、ミラーリング型クラスタシステム、リストア検出方法、及び、プログラム
JP2004078437A (ja) ファイルシステム管理情報の二重化方法および方式
JP7179947B2 (ja) ストレージシステム及びストレージ制御方法
JP2021174392A (ja) リモートコピーシステム及びリモートコピー管理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15878820

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016570464

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15537895

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15878820

Country of ref document: EP

Kind code of ref document: A1