JP7331027B2 - スケールアウト型ストレージシステム及び記憶制御方法 - Google Patents

スケールアウト型ストレージシステム及び記憶制御方法 Download PDF

Info

Publication number
JP7331027B2
JP7331027B2 JP2021025696A JP2021025696A JP7331027B2 JP 7331027 B2 JP7331027 B2 JP 7331027B2 JP 2021025696 A JP2021025696 A JP 2021025696A JP 2021025696 A JP2021025696 A JP 2021025696A JP 7331027 B2 JP7331027 B2 JP 7331027B2
Authority
JP
Japan
Prior art keywords
metadata
node
memory
update
redundancy
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.)
Active
Application number
JP2021025696A
Other languages
English (en)
Other versions
JP2022127506A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021025696A priority Critical patent/JP7331027B2/ja
Priority to US17/474,395 priority patent/US11630734B2/en
Publication of JP2022127506A publication Critical patent/JP2022127506A/ja
Application granted granted Critical
Publication of JP7331027B2 publication Critical patent/JP7331027B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/2071Error 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 a plurality of controllers
    • G06F11/2076Synchronous techniques
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques

Description

本発明は、概して、スケールアウト型ストレージシステムの記憶制御に関する。
スケールアウト型のストレージシステムが知られている。例えば、特許文献1に開示のシステムは、それぞれ記憶デバイスを有する複数の計算機ノードがネットワークで相互接続されたシステムである。特許文献2に開示のシステムは、複数のストレージシステムが複数のストレージボックスを共有したシステムである。
US2019/0163593 特許第6114397号公報
スケールアウト型ストレージシステムにおいて、各計算機ノードは、メタデータを基に制御を行う。各計算機ノードにおいて、メタデータは、当該計算機ノードが行う制御に必要なデータ、例えば、ストレージシステムの構成を表すデータ、当該計算機ノードがアクセス可能なユーザデータ(例えば、アプリケーションからのI/O(Input/Output)要求に応答して入出力されるデータ)の場所を表すデータ(例えば、論理ボリュームのID(例えばLUN(Logical Unit Number))とボリューム内領域のアドレス(例えばLBA(Logical Block Address))等のデータを含む。
スケールアウト型ストレージシステムでは、或る計算機ノードに障害が発生した場合に別の計算機ノードへのフェイルオーバーが行われるが、フェイルオーバーのためにメタデータが参照される。また、メタデータは、フェイルオーバー以外の制御でも、適宜に参照される。このため、スケールアウト型ストレージシステムにおけるメタデータの適切な保護が望まれる。
スケールアウト型ストレージシステムが、それぞれメモリ及びプロセッサを有する複数の計算機ノードの他に、複数の永続記憶デバイスを有し前記複数の計算機ノードに接続された記憶装置を備える。複数の計算機ノードが、それぞれがメタデータの保護のグループである一つ又は複数の冗長化グループを有する。一つ又は複数の冗長化グループの各々について、下記の通りである。
・当該冗長化グループに属する二つ以上の計算機ノードが、プライマリの計算機ノードであるプライマリノードと、セカンダリの計算機ノードであるセカンダリノードとを含み、プライマリノードからセカンダリノードへのフェイルオーバーが行われるようになっている。
・当該冗長化グループに関わり制御のためにアクセスされるデータであり当該プライマリノードのメモリにおけるメタデータが、記憶装置における異なる永続記憶デバイス間で冗長化される。
・プライマリノードのメモリとセカンダリノードのメモリ間でメタデータが冗長化される。
本発明により、スケールアウト型ストレージシステムにおけるメタデータの適切な保護を実現することができる。
実施形態1に係るメタデータライト処理の概要。 実施形態1に係るストレージシステムの構成例。 ノードのメモリの構成例。 ストレージボックスのメモリの構成例。 ノードテーブルの構成例。 ストレージボックステーブルの構成例。 永続記憶デバイステーブルの構成例。 ポートテーブルの構成例。 ボリュームテーブルの構成例。 ブロックマッピングテーブルの構成例。 メタデータテーブルの構成例。 メタデータマッピングテーブルの構成例。 実施形態1に係るユーザデータリード処理のフローチャート。 実施形態1に係るユーザデータライト処理のフローチャート。 実施形態1に係るストレージボックスのリード処理のフローチャート。 実施形態1に係るストレージボックスのライト処理のフローチャート。 実施形態1に係るメタデータリード処理のうちプライマリノードが行う処理のフローチャート。 実施形態1に係るメタデータリード処理のうちセカンダリノードが行う処理のフローチャート。 実施形態1に係るメタデータライト処理のうちプライマリノードが行う処理のフローチャート。 実施形態1に係るメタデータライト処理のうちセカンダリノードが行う処理のフローチャート。 実施形態1に係るフェイルオーバー処理のうち代表ノードが行う処理のフローチャート。 実施形態1に係るフェイルオーバー処理のうち選出ノードが行う処理のフローチャート。 実施形態1に係るリビルド処理のフローチャート。 実施形態2に係るメタデータライト処理のうちプライマリノードが行う処理のフローチャート。 実施形態2に係るメタデータライト処理のうちセカンダリノードが行う処理のフローチャート。 実施形態3に係るメタデータライト処理のフローチャート。 実施形態3に係るフェイルオーバー処理のうち選出ノードが行う処理のフローチャート。 実施形態4に係るメタデータライト処理のうちプライマリノードが行う処理のフローチャート。 実施形態4に係るセカンダリノードがメタデータライト処理と非同期に行う処理のフローチャート。 実施形態5に係るストレージボックスのライト処理のフローチャート。 実施形態3に係るメタデータライト処理の概要。 実施形態2に係るメタデータライト処理の概要。 実施形態4に係るメタデータライト処理の概要。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、「インターフェース装置」は、一つ以上の通信インターフェースデバイスでよい。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくとも永続記憶装置でよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。また、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のテーブルでもよいし、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別して説明する場合には、参照符号を使用することがある。
また、一般に、「データ」は、不加算名詞であるが、以下の説明では、便宜上、少なくとも「メタデータ」については、加算名詞として使用される。
<実施形態1>
本実施形態は、計算機ノードがストレージボックスを共有するスケールアウト型ストレージシステムである。複数の計算機ノードに少なくとも一つのストレージボックスがネットワークを介して接続される。計算機ノードが、ストレージボックス及びボックスに搭載された永続記憶デバイスを管理し、仮想的なストレージシステムを実現する。ここで計算機ノードは単に「ノード」と呼ぶことがある。
ストレージシステムを実現するためのデータとホストのデータとが、永続記憶デバイスに永続化される。ここで、ストレージシステムを実現するためのデータを「メタデータ」と呼び、ホストのデータを「ユーザデータ」と呼ぶことがある。メタデータは、例えば、ストレージシステムに存在する複数の計算機ノードと一つ以上のストレージボックスとの構成を表す構成情報、ストレージシステムの監視結果を表すモニタ情報、ストレージシステムにおけるログを表すログ情報、及び、ユーザデータのI/O処理において参照されるアドレス情報(例えば、論理ボリューム毎のアドレス変換情報)等を含む。
ノードは、ホストからユーザデータのライト要求を受信し、ユーザデータのライト処理を開始する。ここでユーザデータのライト処理を「ユーザデータライト処理」と呼ぶことがある。
ノードは、ユーザデータライト処理において、ライト要求と付随したライトデータを、永続記憶デバイス上に永続化するための処理を実行する。ライト処理では、ライト対象のユーザデータをハードウェア故障等から保護するために、ユーザデータが複数の永続記憶デバイスに冗長化して永続化される。また、システムの電源障害等でライト処理が任意のタイミングで中断してもユーザデータの不整合が発生しないように、例えばトランザクション処理の少なくとも一部がライト処理でよい。
ノードは、ユーザデータライト処理において、ライト先の永続記憶デバイスに基づく記憶領域の領域割当て処理を実施し、トランザクションに必要なデータの永続化処理を実施する(典型的には、ユーザデータを永続記憶デバイスに格納する)。
ユーザデータライト処理において、ライト先の永続記憶デバイスに基づく記憶領域の領域割当て処理や、トランザクショントランザクションに必要なデータの永続化処理では、それら処理に必要なメタデータのリード処理とライト処理が実行される。ここでメタデータのリード処理とライト処理は、それぞれ、「メタデータリード処理」及び「メタデータライト処理」と呼ばれることがある。
ノードは、メタデータをユーザデータと同様に、複数の永続記憶デバイスに冗長化して永続化する。
メタデータは、典型的には、ユーザデータより小さい単位で頻繁にアクセスされる。このため、ノードは、メタデータを自身に搭載されたメモリ上にキャッシュとして保持し、以って、メタデータリード処理やメタデータライト処理における計算機ノードと永続記憶デバイス間のI/O処理回数を削減する。
第1のノードが故障等で閉塞した場合、第2のノードが第1のノードのメタデータの制御権を引継ぎ、第2のノードでフェイルオーバー処理を実現する。例えば、冗長化グループが構成され、当該冗長化グループに属するノードのメモリ間でメタデータが冗長化される。
図1は、本実施形態のメタデータライト処理、フェイルオーバー処理、及びリビルド処理の概要の一例を示す。
スケールアウト型ストレージシステムが、複数のノード101(例えば、101A~101C)と、複数のノード101に接続され複数の永続記憶デバイス114(例えば、114A及び114B)を有するストレージボックス111(記憶装置の一例)とを備える。
複数のノード101が、それぞれがメタデータ10の保護のグループである一つ又は複数の冗長化グループを有する。図1が示す例によれば、メタデータ10A~10Cの各々についての冗長化グループがある。ノード101Aは、ノード101Bと、メタデータ10Aの冗長化グループを構成しており、メタデータ10Aについて、ノード101Aはプライマリノードであり、ノード101Bはセカンダリノードである。ノード101Bは、ノード101Cと、メタデータ10Bの冗長化グループを構成しており、メタデータ10Bについて、ノード101Bはプライマリノードであり、ノード101Cはセカンダリノードである。ノード101Cは、ノード101Aと、メタデータ10Cの冗長化グループを構成しており、メタデータ10Cについて、ノード101Cはプライマリノードであり、ノード101Aはセカンダリノードである。本実施形態において、各冗長化グループについて、プライマリノード及びセカンダリノードの定義は、例えば下記である。
・「プライマリノード」は、当該冗長化グループにおいて保護されるメタデータの制御権を有するノード、例えば、メタデータの更新を行うことができるノードである。プライマリノードが、フェイルオーバー元のノードである。
・「セカンダリノード」は、当該冗長化グループにおいて一つ以上存在するノードであり、当該冗長化グループにおいて保護されるメタデータを基に行われるフェイルオーバーのフェイルオーバー先となり得るノードである。フェイルオーバー後、セカンダリノードがプライマリノードに昇格する。プライマリノードに昇格後のノードに障害が発生した場合、当該冗長化グループにおける残りのいずれかのセカンダリノードがフェイルオーバー先となるフェイルオーバーが行われてよい。
メタデータ10Aのメタデータライト処理の例は以下の通りである。
ノード101Aが、メタデータライト要求を受信し、当該メタデータライト要求に付随したライトメタデータ(更新後メタデータの全部又は一部)を自身のキャッシュ(メモリの一部)に格納する(つまり、ノード101Aのメモリにおけるメタデータ10Aに上書きする)。ノード101Aは、更新後メタデータ10A1(又は、更新後メタデータ10A1の更新前メタデータとの差分)のライト要求を、セカンダリノード101Bとストレージボックス111に転送する。ノード101Aからストレージボックス111へのライト要求では、永続記憶デバイス114Aが指定される。
セカンダリノード101Bは、受信したライト要求に付随したデータ(更新後メタデータ10A1(又は、更新後メタデータ10A1の更新前メタデータとの差分))を自身のキャッシュ(メモリの一部)に格納し(つまり、ノード101Bのメモリにおけるメタデータ10Aに上書きし)、更新後メタデータ10A2(又は、更新後メタデータ10A2の更新前メタデータとの差分)のライト要求を、ストレージボックス111に送信する。ノード101Bからストレージボックス111へのライト要求では、永続記憶デバイス114Bが指定される。セカンダリノード101Bは、ストレージボックス111へのライト要求に対する完了応答をストレージボックス111から受け、且つ、プライマリノード101Aからのライト要求に付随したデータのキャッシュが完了している場合、プライマリノード101Aからのライト要求に対する完了応答をノード101Aに返す。
ストレージボックス111は、プライマリノード101Aからのライト要求に従い、受信したライト要求に付随したデータを永続記憶デバイス114Aにおけるメタデータ10Aに上書きし、当該ライト要求に対する完了応答をノード101Aに返す。また、ストレージボックス111は、セカンダリノード101Bからのライト要求に従い、受信したライト要求に付随したデータを永続記憶デバイス114Bにおけるメタデータ10Aに上書きし、当該ライト要求に対する完了応答をノード101Bに返す。これにより、ストレージボックス111における異なる永続記憶デバイス114Aと114Bに更新後メタデータ10A3と10A4が格納されることになる。つまり、異なる永続記憶デバイス114間でメタデータ10Aが冗長化されたことになる。
ノード101Aが、ストレージボックス111へのライト要求に対する完了応答をストレージボックス111から受信し、セカンダリノード101Bへのライト要求に対する完了応答をノード101Bから受信した場合、メタデータライト処理が完了となる。
メタデータの冗長化グループは、メタデータにつき二つ以上のノード間に跨り構成される。図1の例では、上述したように、メタデータ10Aはノード101Aとノード101B、メタデータ10Bはノード101Bとノード101C、メタデータ10Cはノード101Cとノード101Aのノード間で構成されている。
次に、フェイルオーバー処理とリビルド処理の例として、ノード101Aが故障等で閉塞した場合の処理を説明する。ノード101Bは、ノード101Aが閉塞したことを取得し、セカンダリノードからプライマリノードに昇格する。その後、ノード101Bが、リビルド先としてノード101Cを新しいセカンダリノードとして選択し、メタデータ101A2をノード101Cのメモリへ転送する。これにより、ノード101Cのメモリにメタデータ10A5が格納され、結果として、異なるノード101Bと101Cのメモリ間で、メタデータ10Aが冗長化する。
図2は、本実施形態に係るストレージシステムの物理構成を示す。
ストレージシステムは、複数のノード101と、複数のノード101にネットワーク121を介して接続された一つ以上のストレージボックス111とを備える。一つ以上のストレージボックス111が、記憶装置の一例である。
ノード101は、CPU103、メモリ102、永続記憶デバイス104、及びポート105を有し、それらはバス106で物理接続されている。メモリ102は、揮発性メモリと不揮発性メモリとのうちの少なくとも一方でよい。永続記憶デバイス104は、ノード101上で動作するプログラムを記憶したり、それらプログラムが使用するデータを永続化したりするために使用される。なお、永続記憶デバイス104はノード101に搭載されないでもよく、永続記憶デバイスが搭載されない場合は、ネットワークブート用のROM等、永続記憶デバイス無しにノード101をブートできるハードウェアが搭載されてもよい。ポート105は、ノード101とネットワーク121を接続するためのインターフェースであり、例えばEthernetネットワークインターフェースカード(NIC)等である(Ethernetは登録商標)。CPU103がプロセッサの一例であり、ポート105がインターフェース装置の一例である。
ストレージボックス111は、CPU112、メモリ113、永続記憶デバイス114、及びポート115を有し、それらはバス116で物理接続されている。メモリ113は、揮発性メモリと不揮発性メモリの少なくとも一方がでよい。永続記憶デバイス114は、ストレージボックス111上で動作するプログラムを記憶したり、それらプログラムが使用するデータを永続化したり、ノード101上で動作するプログラムが使用するデータを永続化したりするために使用される。ポート115は、ストレージボックス111とネットワーク121を接続するためのインターフェースであり、例えばEthernetネットワークインターフェースカード(NIC)等である。ポート115、CPU112及びメモリ113が、ストレージボックス111のコントローラの一例でよい。一つ以上のストレージボックス111のコントローラが、記憶装置が有するストレージコントローラの一例でよい。
ネットワーク121は、各ノード101と各ストレージボックス111間を相互に物理接続するための一つ以上の装置であり、例えばEthernet等のネットワークスイッチである。
図3は、ノード101のメモリ102の構成例を示す。
メモリ102は、テーブルが格納されるテーブル領域201と、プログラムが格納されるプログラム領域301とを有する。
テーブルとして、例えば、ノードテーブル211、ストレージボックステーブル212、永続記憶デバイステーブル213、ポートテーブル214、ボリュームテーブル215、ブロックマッピングテーブル216、メタデータテーブル217、及び、メタデータマッピングテーブル218がある。プログラムとして、例えば、ユーザデータリード処理プログラム311、ユーザデータライト処理プログラム312、メタデータリード処理プログラム313、メタデータライト処理プログラム314、フェイルオーバー処理プログラム315、及びリビルド処理プログラム316がある。テーブルとプログラムの詳細は後述する。
なお、本実施形態において、「メタデータ」は、テーブル211~218のうちの少なくとも一部でよい。また、メタデータは、冗長化グループ毎に存在するが、二つ以上の冗長化グループについてメタデータの少なくとも一部が共通していてもよい。また、本実施形態において、「制御プログラム」は、プログラム311~316を含んだプログラムでよい。各ノードが、複数の制御プログラムを有していて、各冗長化グループは、異なる二つ以上のノードにおける二つ以上の制御プログラム(例えば、一つのプライマリ(アクティブ)の制御プログラムと一つ以上のセカンダリ(スタンバイ)の制御プログラム)を含んでいていてよい。ノード障害が生じ、障害が生じたノードにプライマリの制御プログラムがある場合、当該プライマリの制御プログラムから、当該プライマリの制御プログラムと同一の冗長化グループに属し他ノードにおけるセカンダリの制御プログラムへフェイルオーバーが行われてよい。制御プログラムがアクセス可能な後述の論理領域及び物理領域は、当該制御プログラムに対して許可されている所定の範囲に属する領域でよい。各冗長化グループについて、当該冗長化グループに含まれるプライマリの制御プログラムは、当該冗長化グループに対応したメタデータの制御権(アクセス権)を有するが、当該冗長化グループとは異なる冗長化グループに対応するメタデータの制御権を有しないでよい。
図4は、ストレージボックス111のメモリ113の構成例を示す。
メモリ113は、テーブルが格納されるテーブル領域202と、プログラムが格納されるプログラム領域302とを有する。
テーブルとして、例えば、永続記憶デバイステーブル213及びポートテーブル214がある。プログラムとして、例えば、リード処理プログラム361及びライト処理プログラム362がある。テーブルとプログラムの詳細は後述する。
図5Aは、ノードテーブル211の構成例を示す。
ノードテーブル211は、複数のノード101の各々に関する情報を有し、ノード101に関する情報のエントリから構成される。エントリは、一つのノード101に対応する。エントリの情報は、ID2111、状態2112、永続記憶デバイスリスト2113、及びポートリスト2114からなる。
ID2111は、ノード101を一意に特定できる値(例えば、UUID(Universally Unique Identifier))である。状態2112は、ノード101の状態(例えば、正常、閉塞等)を表す。永続記憶デバイスリスト2113は、ノード101が有する一つ以上の永続記憶デバイスに関する情報(例えば、永続記憶デバイステーブル213におけるエントリへのリンク)のリストである。ポートリスト2114は、ノード101が有する一つ以上のポートに関する情報(例えば、ポートテーブル214におけるエントリへのリンク)のリストである。
図5Bは、ストレージボックステーブル212の構成例を示す。
ストレージボックステーブル212は、一つ以上のストレージボックス111の各々に関する情報のエントリから構成される。エントリは、一つのストレージボックス111に対応する。エントリの情報は、ID2121、状態2122、永続記憶デバイスリスト2123、及びポートリスト2124からなる。
ID2121は、ストレージボックス111を一意に特定できる値(例えば、UUID)である。状態2122は、ストレージボックス111の状態(例えば、正常、閉塞等)を表す。永続記憶デバイスリスト2123は、ストレージボックス111が有する一つ以上の永続記憶デバイス114の各々に関する情報(例えば、永続記憶デバイステーブル213におけるエントリへのリンク)のリストである。ポートリスト2124は、ストレージボックス111が有する一つ以上のポートの各々に関する情報(例えば、ポートテーブル214におけるエントリへのリンク)のリストである。
図5Cは、永続記憶デバイステーブル213の構成例を示す。
永続記憶デバイステーブル213は、複数の永続記憶デバイスの各々に関する情報のエントリから構成される。エントリは、一つの永続記憶デバイスに対応する。エントリの情報は、ID2131、状態2132、ノードID/ストレージボックスID2133、及びブロックマッピングリスト2134からなる。
ID2131は、永続記憶デバイスを一意に特定できる値(例えば、UUID)である。状態2132は、永続記憶デバイスの状態(例えば、正常、閉塞等)を表す。ノードID/ストレージボックスID2133は、永続記憶デバイスが搭載されたノード101又はストレージボックス111のIDを示す。ブロックマッピングリスト2134は、ボリューム(論理ボリューム)の論理領域(ボリューム内領域)に対応する物理領域(永続記憶デバイスが提供する記憶領域)に対応する情報(例えば、ブロックマッピングテーブル216におけるエントリへのリンク)のリストである。
図5Dは、ポートテーブル214の構成例を示す。
ポートテーブル214は、複数のポートの各々に関する情報のエントリから構成される。エントリは、一つのポートに対応する。エントリの情報は、ID2141、状態2142、ノードID/ストレージボックスID2143、及びアドレスリスト2144からなる。
ID2141は、ポートを一意に特定できる値である。状態2142は、ポートの状態(例えば、正常、閉塞等)を表す。ノードID/ストレージボックスID2143は、ポートが搭載されたノード101又はストレージボックス111のIDを示す。アドレスリスト2144は、アドレスに関する情報(例えば、アドレスと種別)のリストである。アドレスは、ネットワーク121上でポートを一意に特定できるもので、例えば、MACアドレス、IPアドレス等である。種別は、ポートのネットワークの種別であり、例えば、Ethernet等である。
図5Eは、ボリュームテーブル215の構成例を示す。
ボリュームテーブル215は、一つ以上のボリュームの各々に関する情報のエントリから構成される。エントリは、一つのボリュームに対応する。エントリの情報は、ID2151、ノードID2152、ホスト情報2153、及びブロックマッピングリスト2154からなる。
ID2151は、ボリュームを一意に特定できる値である。ノードID2152は、当該ボリュームの制御権(例えばアクセス権)を有するノード101のIDである。ホスト情報2153は、ボリュームを使用しているホスト(例えば、ボリュームの提供先のクライアント)の情報(例えばID)である。ブロックマッピングリスト2154は、ボリュームの全論理領域に対応する情報(例えば、ブロックマッピングテーブル216におけるエントリへのリンク)のリストである。
図5Fは、ブロックマッピングテーブル216の構成例を示す。
ブロックマッピングテーブル216は、複数のブロックマッピングの各々に関する情報のエントリから構成される。エントリは、一つのブロックマッピングに対応する。エントリの情報は、ID2161、論理領域リスト2162、及び物理領域リスト2163からなる。
ID2161は、ブロックマッピングを一意に特定できる値である。論理領域リスト2162は、複数の論理領域の各々に関する情報のリストであり、一つの論理領域(例えば、論理ブロック)に関する情報は、例えば、当該論理領域に対応するボリュームID、ボリューム内の論理ブロックアドレス(LBA)、及び、論理ブロックサイズを表す情報を含んでよい。物理領域リスト2163は、複数の物理領域の各々に関する情報のリストであり、一つの物理領域(例えば、物理ブロック)に関する情報は、当該物理領域に対応する永続記憶デバイスのID、物理ブロックアドレス、物理ブロックサイズ、及び、データ保護タイプ(例えば、RAID1/5/6等)を表す情報を含んでよい。
図5Gは、メタデータテーブル217の構成例を示す。
メタデータテーブル217は、複数のメタデータの各々に関する情報のエントリから構成される。エントリは、一つのメタデータに対応する。エントリの情報は、ID2171、タイプ2172、プライマリノードID2173、セカンダリノードIDリスト2174、及びメタデータマッピングリスト2175からなる。
ID2172は、メタデータを一意に特定できるものである。タイプ2172は、メタデータのタイプを表す。メタデータのタイプとして、例えば、ブロックマッピングテーブル(論理アドレスと物理アドレスの対応関係(マッピング)を管理するデータの一例)、ドライブフォーマット管理データ(どの永続デバイスのどの物理アドレスがフォーマット済かを表すデータ)がある。プライマリノードID2173は、メタデータの制御権を有するノード101のIDである。セカンダリノードIDリスト2174は、一つ以上のセカンダリノードIDからなり、セカンダリノードIDは、メタデータの冗長化先のノード101のIDである。メタデータマッピングリスト2175は、複数のメタデータマッピングの各々に関する情報(例えば、メタデータマッピングテーブル218におけるエントリへのリンク)のリストである。メタデータマッピング情報の詳細は後述する。
図5Hは、メタデータマッピングテーブル218の構成例を示す。
メタデータマッピングテーブル218は、複数のメタデータマッピングの各々に関する情報のエントリから構成される。エントリは、一つのメタデータマッピングに対応する。エントリの情報は、ID2181、メタデータID2182、及び物理領域リスト2183からなる。
ID2181は、メタデータマッピングを一意に特定できる値である。メタデータID2182は、メタデータマッピングに対応するメタデータのIDである。物理領域リストは、複数の物理領域の各々に関する情報のリストであり、一つの物理領域(メタデータの格納先の物理領域)に関する情報は、永続記憶デバイスのID、物理ブロックアドレス、物理ブロックサイズ、データ保護タイプ、及び、オーナ(メタデータの制御権を有するノード)のノードIDを表す情報を含んでよい。データ保護タイプは、例えば、RAID1/5/6等である。オーナのノードIDは、物理領域情報を使用して永続記憶デバイスとリード処理及びライト処理を実行するノードのIDである。
以下、本実施形態で行われる処理の例を説明する。
図6は、ユーザデータリード処理のフローを示す。
ユーザデータリード処理は、アプリケーション(例えば、ホストで実行されるアプリケーションプログラム)からのユーザデータリード要求を契機とし、当該リード要求で指定されているボリュームの制御権を有するノード101のユーザデータリード処理プログラム311により実行される。ユーザデータリード要求は、リード対象のボリュームID、開始位置、サイズ等のデータリードに必要な情報を含んでよい。
ユーザデータリード処理プログラム311は、ユーザデータリード要求の情報をもとに、メタリード処理プログラム313にメタデータリードを要求し、メタデータを取得する(S101)。メタデータは、ボリュームの論物アドレス情報等を含む。メタユーザデータリード処理プログラム313が実行するメタデータリード処理の詳細は後述する。
ユーザデータリード処理プログラム311は、メタデータからアドレス解決を実施し、リード対象の物理領域を特定する(S102)。
ユーザデータリード処理プログラム311は、ノード101のメモリにおけるキャッシュを検索し、リード対象データがキャッシュ上に存在するか否かを判定する(S103)。
S103の判定結果が真の場合は(S103:Yes)、ユーザデータリード処理プログラム311は、キャッシュから対象データを取得する(S104)。
S103の判定結果が偽の場合は(S103:No)、ユーザデータリード処理プログラム311は、対象データを格納する(S102で特定された物理領域を有する)永続記憶デバイス114を有するストレージボックス111に、対象データのデータリードを要求し(S105)、当該ストレージボックス111からの結果を待つ(S106)。ストレージボックス111は、ユーザデータリード処理プログラム311からデータリード要求を受信し、当該データリード要求に従い、永続記憶デバイステーブル213及びポートテーブル214を基に、対象データを格納する永続記憶デバイス114からデータリードを実行し、ユーザデータリード処理プログラム311に、読み出されたデータを返却する。ユーザデータリード処理プログラム311は、ストレージボックス111から取得したデータをキャッシュに格納する(S107)。
ユーザデータリード処理プログラム311は、アプリケーション(ユーザデータリード要求の送信元の一例)に、取得したデータを含む結果(ユーザデータリード要求の結果)を返却し(S108)、処理を終了する。
図7は、データライト処理のフローを示す。
データライト処理は、アプリケーションからのユーザデータライト要求を契機とし、当該ライト要求で指定されているボリュームの制御権を有するノード101のユーザデータライト処理プログラム312により実行される。データライト要求は、ライト対象のボリュームID、開始位置、サイズ等のデータライトに必要な情報を含んでよい。
ユーザデータライト処理プログラム312は、データライト要求の情報をもとに、メタデータリード処理プログラム313にメタデータリードを要求し(S201)、メタデータを取得する。メタデータは、ボリュームの論物アドレス情報等を含む。メタデータリード処理プログラム313が実行するメタデータリード処理の詳細は後述する。
ユーザデータライト処理プログラム312は、メタデータからアドレス解決を実施し(S202)、ライト対象の物理領域を特定する。
当該ボリュームにおけるライト対象の物理領域の割当が必要な場合(S203:Yes)、ユーザデータライト処理プログラム312は、物理領域の割当を実行し、メタデータライト処理プログラム314にメタデータライト要求を発行して、当該ボリュームの論物マッピング情報等のメタデータを更新する(S204)。メタデータライト処理プログラム314が実行するメタデータライト処理の詳細は後述する。
ユーザデータライト処理プログラム312は、ユーザデータを冗長化し(S205)、ライト対象の物理領域を有するストレージボックス111に対象データのデータライトを要求し(S206)、当該ストレージボックス111からの結果を待つ(S207)。
ストレージボックス111は、ユーザデータライト処理プログラム312からのデータライト要求に従い、対象データを永続記憶デバイス114へライトし、ユーザデータライト処理プログラム312に結果を返却する。
ユーザデータライト処理プログラム312は、当該結果の返却を受けて、キャッシュ上のデータを更新する(S208)。ユーザデータライト処理プログラム312は、アプリケーションに、ユーザデータライト要求の結果を返却し(S209)、処理を終了する。
図8Aは、ストレージボックス111のリード処理のフローを示す。
ストレージボックス111のリード処理は、ノード101からのデータ(ユーザデータ又はメタデータ)のリード要求を契機とし、ストレージボックス111のリード処理プログラム361により実行される。リード要求は、リード処理に必要な情報を含んでよい。
リード処理プログラム361は、リード要求を受信し(S301)、リード要求に従い永続記憶デバイス114からリード対象データをリードし、要求元に結果を返却する。
図8Bは、ストレージボックス111のライト処理のフローを示す。
ストレージボックス111のライト処理は、ノード101からのデータ(ユーザデータ又はメタデータ)のライト要求を契機とし、ストレージボックス111のライト処理プログラム362により実行される。ライト要求は、ライト処理に必要な情報を含んでよい。
ライト処理プログラム362は、ライト要求を受信し(S401)、ライト要求に従い永続記憶デバイス114へライト対象データをライトし(S402)、要求元に結果を返却する(S403)。
図9Aは、メタデータリード処理のうちプライマリノードが行う処理のフローを示す。図9Bは、メタデータリード処理のうちセカンダリノードが行う処理のフローを示す。
メタデータリード処理は、前述のユーザデータリード処理やユーザデータライト処理において発行されたメタデータリード要求を契機とし、メタデータリード処理プログラム313により実行される。メタデータリード要求は、メタデータのタイプ、ID等のメタデータリードに必要な情報を含んでよい。
メタデータリード処理プログラム313は、メタデータリード要求の情報をもとに、対象メタデータを特定する(S501)。
メタデータリード処理プログラム313は、キャッシュを検索し、対象メタデータがキャッシュ上に存在するか否かを判定する(S502)。S502の判定結果が真の場合は(S502:Yes)、メタデータリード処理プログラム313は、キャッシュから対象メタデータを取得する(S503)。
S502の判定結果が偽の場合は(S502:No)、メタデータリード処理プログラム313は、対象メタデータを格納する永続記憶デバイス114を有するストレージボックス111とプライマリノードが通信可能な状態か否かを判定する(S504)。S504の判定結果が真の場合(S504:Yes)、メタデータリード処理プログラム313は、ストレージボックス111にメタデータリード要求を発行し(S505)、結果を待つ(S507)。ストレージボックス111は、メタデータリード処理プログラム313からメタデータリード要求を受信した場合、当該要求に従い、対象メタデータを格納する永続記憶デバイス114から対象メタデータをリードし、メタデータリード処理プログラム313に対象メタデータを返却する。
S502及びS504のいずれの判定結果も偽の場合は(S502:No、S504:No)、メタデータリード処理プログラム313は、セカンダリノードのメタデータリード処理プログラム313にメタデータリード要求を発行し(S506)、結果を待つ(S507)。
セカンダリノードのメタデータリード処理プログラム313は、プライマリノードのメタデータリード処理プログラム313からメタデータリード要求を受信した場合(S601)、当該要求に従い、メタデータリード要求の情報をもとに、対象メタデータを特定する(S602)。セカンダリノードのメタデータリード処理プログラム313は、キャッシュを検索する(S603)。対象メタデータがキャッシュ上に存在する場合は(S603:Yes)、セカンダリノードのメタデータリード処理プログラム313は、キャッシュから対象メタデータを取得し(S604)、取得したメタデータをプライマリノードのメタデータリード処理プログラム313に返却する(S607)。対象メタデータがキャッシュ上に存在しない場合は(S603:No)、セカンダリノードのメタデータリード処理プログラム313は、対象メタデータを格納する永続記憶デバイス114を有するストレージボックス111とセカンダリノードが通信可能な状態であれば、ストレージボックス111にメタデータリード要求を発行し(S605)、結果を待つ(S606)。その後、セカンダリノードのメタデータリード処理プログラム313は、ストレージボックス111から対象メタデータを受信し、当該メタデータをキャッシュに格納し、当該メタデータを、プライマリノードのメタデータリード処理プログラム313に返却する。
プライマリノードのメタデータリード処理プログラム313は、ストレージボックス111又はセカンダリノードから取得したメタデータをキャッシュに格納する(S508)。プライマリノードのメタデータリード処理プログラム313は、S503でキャッシュから取得された対象メタデータ、又は、S508を通じてキャッシュから取得された対象メタデータを、要求元に結果として返却する(S509)。
図10Aは、メタデータライト処理のうちプライマリノードが行う処理のフローを示す。図10Bは、メタデータライト処理のうちセカンダリノードが行う処理のフローを示す。
メタデータライト処理は、前述のユーザデータリード処理やユーザデータライト処理において発行されるメタデータライト要求を契機とし、メタデータライト処理プログラム314により実行される。メタデータライト要求は、メタデータのタイプ、ID等のメタデータライトに必要な情報を含んでよい。
メタデータライト処理プログラム314は、メタデータライト要求の情報をもとに、対象メタデータを特定する(S701)。
メタデータライト処理プログラム314は、ストレージボックス111とセカンダリノードへ対象データのメタデータライトを要求し(S702)、ストレージボックス111とセカンダリノードからの結果を待つ(S703)。
セカンダリノードのメタデータライト処理プログラム314は、プライマリノードからメタデータライト要求を受信し(S801)、当該要求の情報をもとに、対象メタデータを特定する(S802)。セカンダリノードのメタデータライト処理プログラム314は、ストレージボックス111にメタデータライトを要求し(S803)、結果を待ち(S804)、結果を受信後、キャッシュ上のメタデータを更新し(S805)、プライマリノードへ結果を返却する(S806)。
ストレージボックス111は、プライマリノード及びセカンダリノードからメタデータライト要求を受信した場合、当該要求に従い永続記憶デバイス114へ対象メタデータをライトし、要求元へ結果を返却する。
プライマリノードのメタデータライト処理プログラム314は、セカンダリノードとストレージボックス111からの結果を受信した後、キャッシュ上のメタデータを更新し(S704)、要求元に結果を返却する(S705)。
図11Aは、フェイルオーバー処理のうち代表ノードが行う処理のフローを示す。図11Bは、フェイルオーバー処理のうち選出ノードが行う処理のフローを示す。
フェイルオーバー処理は、ノード101が障害等で閉塞した場合に、当該ノード101が担当するメタデータの制御権を、他のセカンダリノードに引き継ぐ処理である。本処理は、システムの所定のノード、または冗長化グループに属するノード間で決定されたノードが実行する。以降、メタデータの制御権の引継ぎを指示又は実行するノードを、便宜上、「代表ノード」と呼び、メタデータの制御権の引継ぎを受けるノードを「選出ノード」と呼ぶことがある。
代表ノードのフェイルオーバー処理プログラム315は、周期的に各ノードの生存確認を行う等して、障害発生を確認する(S901)。もし、いずれのノードにも障害が発生していない場合は(S902:No)、本処理が終了する。障害ノード(障害が発生しているノード)がある場合は、代表ノードのフェイルオーバー処理プログラム315は、次の処理を実行する。
代表ノードのフェイルオーバー処理プログラム315は、障害ノードを特定する(S903)。フェイルオーバー処理プログラムは、メタデータテーブル217及びメタデータマッピングテーブル218を参照し、障害ノードがある冗長化グループのプライマリノードであるか否かを判定する(S904)。S904の判定結果が真の場合(S904:Yes)、フェイルオーバー処理プログラム315は、メタデータテーブル217及びメタデータマッピングテーブル218を基に、当該冗長化グループに属するいずれかのセカンダリノードを選出ノード(フェイルオーバー先ノード)とし、当該選出ノードへメタデータの制御権の引継ぎを要求する(S905)。S905の後(又は、S904の判定結果が偽の場合(S904:No))、代表ノードのフェイルオーバー処理プログラム315は、当該冗長化グループに属するプライマリノードにメタデータのリビルドを要求する(S906)。
代表ノードのフェイルオーバー処理プログラム315は、結果を待つ(S907)。
選出ノードのフェイルオーバー処理プログラム315は、メタデータの制御権の引継ぎ要求を受信し(S1001)、当該選出ノードをプライマリノードに昇格させ(S1002)、要求元に結果を返却する(S1003)。「プライマリノードに昇格」とは、例えば、セカンダリノードIDリスト2174からプライマリノードID2173に当該選出ノードのIDが移動するといったメタデータ更新を含み、選出ノードがプライマリノードとして稼働可能な状態になることでよい。
プライマリノードは、代表ノードからのリビルド要求を受信し、要求にもとづいて、リビルド処理を実行し、要求元へ結果を返却する。リビルド処理の詳細は後述する。S907で結果待ちの代表ノードのフェイルオーバー処理プログラム315は、結果を受信後、処理を終了する。
図12は、リビルド処理のフローを示す。
リビルド処理は、ノードや永続記憶デバイスが故障した場合に、当該装置に格納されていたメタデータを、他の生存する装置から他の装置にデータをコピーし、メタデータの冗長度を回復する処理である。リビルド処理は、プライマリノード(メタデータの制御権を有するノード)のリビルド処理プログラム316により行われる。
プライマリノードのリビルド処理プログラム316は、代表ノードからリビルド要求を受信する(S1101)。リビルド要求は、例えば、障害部位の装置の種別(例えば、ノード、或いは、ノード内又はストレージボックス内の永続記憶デバイス)と装置のIDを表す情報を含む。
リビルド処理プログラム316、当該リビルド要求から、障害部位がノードか永続記憶デバイスかを判定する(S1102)。
障害部位がノードの場合(S1102:Yes)、リビルド処理プログラム316は、メタデータテーブル217及びメタデータマッピングテーブル218を基に、当該プライマリノードが属する冗長化グループに属するいずれかのセカンダリノードをリビルド先のノードとして選択し(S1103)、リビルド先ノードにメタデータを転送することで、プライマリノードのメモリにおけるメタデータをリビルド先ノードのメモリに同期し(S1104)、結果(例えば、同期完了の応答)を待つ(1107)。これにより、異なるノードのメモリ間でのメタデータの冗長度が回復する。なお、異なるノード間でメタデータはN重化(Nは2以上の整数)されるが(例えば、Nのノードの各々のメモリに同一のメタデータが格納されるが)、この場合、Nが、冗長度である。
障害部位が永続記憶デバイスの場合(S1102:No)、リビルド処理プログラム316は、メタデータテーブル217及びメタデータマッピングテーブル218を基に、当該プライマリノードが属する冗長化グループに属するいずれかの永続記憶デバイスをリビルド先永続記憶デバイスとして選択し(S1105)、リビルド先永続記憶デバイスを指定したメタデータライト要求をストレージボックス111に送信し(S1106)、結果(例えば完了の応答)を待つ(S1107)。これにより、異なる永続記憶デバイス114間でのメタデータの冗長度が回復する。なお、異なる永続記憶デバイス114間でメタデータはM重化(Mは2以上の整数)されるが(例えば、Mの永続記憶デバイス114の各々に同一のメタデータが格納されるが)、この場合、Mが、冗長度である。ノード間のメタデータの冗長度Nと、永続記憶デバイス間のメタデータの冗長度Mは、同じでもよいし異なっていてもよい。
リビルド処理プログラム316は、結果を受信後、本処理を終了する。
<実施形態2>
実施形態2を説明する。その際、実施形態1との相違点を主に説明し、実施形態1との共通点については説明を省略又は簡略する(なお、この点は、実施形態3~5の説明についても同様である)。
実施形態2では、メタデータライト処理において、プライマリノードが永続記憶デバイス114にメタデータをライトするが、セカンダリノードは、永続記憶デバイス114にメタデータをライトしない。これにより、実施形態1と比較して、セカンダリノードとストレージボックス間のメタデータの通信時間を削減でき、以って、プライマリノードのメタデータライト処理プログラム314が受けるメタデータライト要求に対する応答時間を短縮することができる。
図13Aは、実施形態2に係るメタデータライト処理のうちプライマリノードが行う処理のフローを示す。図13Bは、実施形態2に係るメタデータライト処理のうちセカンダリノードが行う処理のフローを示す。
プライマリノードのメタデータライト処理プログラム314は、S701の後、冗長化データを生成する(S706)。結果として、キャッシュ上に、冗長度Mのメタデータが存在する。S702において、ストレージボックスへのメタデータライト要求は、冗長度Mのメタデータのライト要求である。例えば、冗長度Mのメタデータの格納先のMの永続記憶デバイスが指定されたMのメタデータライト要求が一つ以上のストレージボックス111へ送信されてよい。
なお、S702において、実施形態1と同様に、メタデータライト要求がプライマリノードからセカンダリノードに送信され、セカンダリノードのメタデータライト処理プログラム314は、キャッシュ上のメタデータを更新するが、ストレージボックス111へメタデータライト要求を送信しない。すなわち、図13Bが示すように、図10Bに示したS801~S806のうち、S803及びS804以外の処理が行われる。
<実施形態3>
実施形態3では、メタデータライト処理において、プライマリノードは、セカンダリノードへメタデータライト要求を送信せず、ストレージボックス111へのみメタデータライト要求を送信する。セカンダリノードは、フェイルオーバー処理において、フェイルオーバー先ノードとして選択された場合、ストレージボックス111からメタデータをリードして、プライマリノードに昇格する。これにより、メタデータライト処理において、プライマリノードからセカンダリノードへのメタデータライトのオーバヘッドを削減でき、以って、メタデータライト処理のスループットを向上することが期待できる。
図14は、実施形態3に係るメタデータライト処理のフローを示す。
プライマリノードのメタデータライト処理プログラム314は、S701の後、冗長化データを生成し(すなわち、キャッシュ上に冗長度Mのメタデータを生成し)、ストレージボックス111へ、冗長度Mのメタデータのメタデータライト要求を送信する(S7021)。
図15は、実施形態3に係るフェイルオーバー処理のうち選出ノードが行う処理のフローを示す。実施形態3に係るフェイルオーバー処理のうち代表ノードが行う処理は実施形態1と同じため代表ノードが行う処理の説明を省略する。
選出ノードのフェイルオーバー処理プログラム315は、S1001の後、ストレージボックス111からメタデータをリードするためのメタデータリード要求をストレージボックス111に送信する(S10001)。フェイルオーバー処理プログラム315は、当該要求に応答してメタデータをストレージボックス111から受信し、当該メタデータを選出ノードのキャッシュに登録する(S10002)。その後、S1002及びS1003が行われる。
<実施形態4>
実施形態4では、メタデータライト処理において、セカンダリノードにメタデータを転送する代わりに、メタデータの更新情報のみがプライマリノードからセカンダリノードに転送される。その後、セカンダリノードは、メタデータライト処理とは非同期に、更新情報に従い、ストレージボックスから対象メタデータをリードする。これにより、実施形態2と同様に、プライマリノードのメタデータライト処理プログラム314が受けるメタデータライト要求に対する応答時間を短縮することが期待できる。
図16Aは、実施形態4に係るメタデータライト処理のうちプライマリノードが行う処理のフローを示す。図16Bは、実施形態4に係るセカンダリノードがメタデータライト処理と非同期に行う処理のフローを示す。
プライマリノードのメタデータライト処理プログラム314は、S701の後、セカンダリノードに更新情報を転送する(S7022)。「更新情報」は、更新後メタデータの更新前メタデータとの差分を表す情報であり、例えば、更新されたメタデータのIDと、データが更新された領域のアドレスと、当該領域の差分データ(更新後データ)とを含んだ情報でよい。つまり、更新情報は、更新後メタデータ全体ではなく、更新された部分に該当するデータを含んだ情報でよい。更新情報のサイズは更新後メタデータ全体のサイズに比べると小さいため、プライマリノードとセカンダリノード間のデータ通信量を削減することができる。
プライマリノードのメタデータライト処理プログラム314は、S7022の後、実施形態3で説明したS7021を行う。
セカンダリノードのメタデータライト処理プログラム314は、プライマリノードからのメタデータの更新情報を受信し(S1201)、当該更新情報をもとに対象メタデータを特定し(S1202)、要求元へ結果(例えば完了応答)を返却する(S1203)。
その後、任意のタイミングで、セカンダリノードのメタデータリード処理プログラム313は、ストレージボックス111にメタデータリード要求を送信し(S1204)、結果を待つ(S1205)。当該メタデータリード要求で指定されるリード対象は、S1201で受信された更新情報に従う。つまり、リード対象は、更新後メタデータ全体ではなくその一部(更新部分)でよい。ストレージボックスは、当該メタデータリード要求に応答して永続記憶デバイス114から対象データ(例えば、更新後メタデータの一部)をリードし、要求元へ結果を返却する。セカンダリノードのメタデータリード処理プログラム313は、ストレージボックス111からの結果を受信し、当該結果中の対象データを用いてキャッシュ上のメタデータを更新し(S1206)、処理を終了する。
<実施形態5>
実施形態5では、冗長度Mのメタデータの生成は、プライマリノードに代えてストレージボックス111が実行する。これにより、メタデータライト処理において、プライマリノードとストレージボックス間のデータ転送回数を削減でき、メタデータライト処理の処理負荷を削減できる。
図17は、実施形態5に係るストレージボックス111のライト処理のフローを示す。
ストレージボックス111のライト処理プログラム362は、プライマリノードからメタデータライト要求を受信する(S1301)。ライト処理プログラム362は、当該要求に従い、冗長データ(ここでは、冗長度Mのメタデータ)を生成し(S1302)、冗長度MのメタデータをそれぞれMの永続記憶デバイス114へライトし(S1303)、要求元へ結果を返却する(S1304)。
なお、このライト処理は、ストレージボックス111がセカンダリノードからメタデータライト要求を受信した場合に行われてもよい。また、このライト処理において生成される冗長データは、メタデータに加えて、ユーザデータも対象でもよい。
上述の実施形態1~5を、例えば以下のように総括することができる。なお、以下の総括の説明は、上述の説明に無い説明(例えば、上述の説明の補足説明や、実施形態の変形例の説明)を含んでもよい。
スケールアウト型ストレージシステムが、それぞれメモリ102及びCPU103(プロセッサの一例)を有する複数のノード101と、複数の永続記憶デバイス114を有し複数のノード101に接続された一つ以上のストレージボックス111(記憶装置の一例)とを備える。複数のノードが、それぞれがメタデータ10の保護のグループである一つ又は複数の冗長化グループを有する。一つ又は複数の冗長化グループの各々について、下記の通りである。以下、冗長化グループとして、図1に例示のメタデータ10Aの冗長化グループを例に取るが、以下の冗長化グループに関わる説明は、一つ又は複数の冗長化グループの各々に適用されてよい。また、以下、ストレージボックス111は一つであるとし、一つのストレージボックス111が、複数の永続記憶デバイス114を有するとする。
・当該冗長化グループに属する二つ以上のノード101が、プライマリのノードであるプライマリノード101Aと、セカンダリのノードであるセカンダリノード101Bとを含み、プライマリノード101Aからセカンダリノード101Bへのフェイルオーバーが行われるようになっている。
・メタデータ10A(当該冗長化グループに関わり制御のためにアクセスされるデータであり当該プライマリノードのメモリ102におけるメタデータ)がストレージボックス111における異なる永続記憶デバイス114A及び114B間で冗長化される。
・プライマリノード101Aのメモリ102とセカンダリノード101Bのメモリ102間でメタデータ10Aが冗長化される。
これにより、スケールアウト型ストレージシステムにおけるメタデータの適切な保護が実現される。例えば、ノード101A及び101Bのメモリ102間でメタデータ10Aが冗長化されるため、ノード101Bのメモリ102におけるメタデータ10A2を基にフェイルオーバーが可能である。また、ノード101A及び101Bのメモリ102からメタデータ10Aが消失しても、ストレージボックス111からメタデータ10Aを復元することができる。また、ストレージボックス111内のいずれかの永続記憶デバイス114に障害が発生しても、ストレージボックス111内でもメタデータ10Aが冗長化されているため、ストレージボックス111からメタデータ10Aの読出しが可能である。
ノード101は、典型的には、汎用のコンピュータでよい。複数のノード101の各々が所定のソフトウェアを実行することにより、複数のノード101がSDx(Software-Defined anything)として構築されてもよい。SDxとしては、例えば、SDS(Software Defined Storage)又はSDDC(Software-defined Datacenter)を採用することができる。
ノード101Aにおけるメタデータ10Aは、適宜に更新される。メタデータ10Aが更新される場合として、例えば、ノード101Aがユーザデータのライト要求に応答してユーザデータをストレージボックス111に書き込んだ場合、当該ユーザデータが永続記憶デバイス114間(例えばストレージボックス111間)で移動した場合、或いは、ストレージシステムの構成が変更された場合(例えば、ノード101が増設又は減設された場合、或いは、ボリュームが追加された場合)といった場合があり得る。
冗長化グループは、図18に例示する通り、二つ以上のノード101における二つ以上の制御プログラム18が属するグループでよい。二つ以上の制御プログラム18は、一つのプライマリ(アクティブ)の制御プログラム18Pと、一つ以上のセカンダリ(スタンバイ)の制御プログラム18Sとを含んでよい。制御プログラム18は、上述したプログラム311~316を含んだプログラムでよい。二つ以上の制御プログラム18の各々について、メタデータ10は、当該制御プログラム18がノード101のCPU103により実行されることで行われる制御の際にアクセスされるデータでよい。ノード101A(いずれかのノード101の一例)に障害が生じた場合、ノード101Aがプライマリノードである一つ以上の冗長化グループの各々について、フェイルオーバー先のセカンダリノードのメモリ102に格納されており当該冗長化グループに関わるメタデータ10を基に、プライマリノードの制御プログラム18Pからセカンダリノードの制御プログラム18Sへのフェイルオーバーが行われてよい。このような構成によれば、冗長化グループによって、プライマリのノードが異なるため、複数のノード101にプライマリ(アクティブ)の制御プログラム18を分散させることができる。
例えば、実施形態1では、メタデータ10Aの更新要求に応答して、下記の処理により、ストレージボックス111での更新後メタデータ冗長化と、メモリ間での更新後メタデータ冗長化が実現される。これにより、ノード101A及び101Bの各々に、メタデータ10Aを永続化するための永続記憶デバイスを搭載する必要が無い。
・ノード101Aが、当該ノード101Aのメモリにおける更新後メタデータ10A1(又は更新後メタデータの更新前メタデータとの差分)を永続記憶デバイス114A(第1の永続記憶デバイスの一例)を含む一つ以上の永続記憶デバイス114に基づく第1の記憶領域に格納するための第1のライト要求をストレージボックス111に送信する。ここで、「第1の記憶領域」は、例えば、永続記憶デバイス114A単体が提供する記憶領域でもよいし、永続記憶デバイス114Aを含む二つ以上の永続記憶デバイス114に基づく記憶領域(例えば、ボリューム、或いは、ボリュームに割り当てられる領域)でもよい。
・ノード101Aが、当該ノード101Aのメモリ102における更新後メタデータ10A1(又は更新後メタデータの更新前メタデータとの差分)をノード101Bのメモリ102に格納するための第2のライト要求を当該ノード101Bに送信する。
・ノード101Bが、当該ノード101Bのメモリ102における更新後メタデータ10A2(又は更新後メタデータの更新前メタデータとの差分)を永続記憶デバイス114B(第2の永続記憶デバイスの一例)を含む一つ以上の永続記憶デバイスに基づく第2の記憶領域に格納するための第3のライト要求をストレージボックス111に送信する。ここで、「第2の記憶領域」は、例えば、永続記憶デバイス114B単体が提供する記憶領域でもよいし、永続記憶デバイス114Bを含む二つ以上の永続記憶デバイス114に基づく記憶領域(例えば、ボリューム、或いは、ボリュームに割り当てられる領域)でもよい。
なお、実施形態1では、ノード101Bは、第2のライト要求に付随したデータ(更新後データ、又は、更新後データの更新前データとの差分)をノード101Bのメモリ102に格納し、且つ、第3のライト要求に対する完了応答をストレージボックス111から受信した場合に、第2のライト要求に対する完了応答をノード101Aに返してよい。ノード101Aが、第1のライト要求に対する完了応答をストレージボックス111から受信し、且つ、第2のライト要求に対する完了応答をノード101Bから受信した場合に、更新要求に対する完了応答を発行してよい。これにより、永続記憶デバイス114A及び114B間でのメタデータ冗長化とノード101A及び101Bのメモリ102間でのメタデータ冗長化が実現されてから、更新要求に従う処理(メタデータライト処理)が完了となる。
また、例えば、実施形態3では、図18に例示するように、ノード101Aのメタデータの更新要求に応答して、ノード101Aが、当該ノード101Aのメモリ102における更新後メタデータ10A1(又は更新後メタデータの更新前メタデータとの差分)の一つ以上のライト要求をストレージボックス111に送信することで、異なる永続記憶デバイス114A及び114B間での冗長化された更新後メタデータ(10A3及び10A4)が格納される。そして、フェイルオーバーのときに、ノード101Bが、ストレージボックス111(例えば、永続記憶デバイス114B)から更新後メタデータをノード101Bのメモリ102に読み出す。これにより、永続記憶デバイス114A及び114Bに更新後メタデータ(又は上述の差分)を並列に書き込むことができるので、更新要求に従う処理(メタデータライト処理)に要する時間の短縮化が期待でき、且つ、少なくともフェイルオーバーの時点において、ノード101A及び101Bのメモリ102間でのメタデータ冗長化を実現できる。
なお、実施形態3では、ノード101Aが、上述の一つ以上のライト要求の各々について完了応答をストレージボックス111から受信した場合に、更新要求に対する完了応答を発行してよい。これにより、ノード101A及び101B間の通信とノード101Bとストレージボックス111との間の通信無しに、更新要求に従う処理が完了するため、当該処理の短縮化が期待できる。
また、例えば、実施形態2では、図19に例示するように、ノード101Aのメタデータの更新要求に応答して、下記の処理により、ストレージボックス111での更新後メタデータ冗長化と、メモリ102間での更新後メタデータ冗長化が実現される。これにより、永続記憶デバイス114A及び114Bに更新後メタデータ(又は上述の差分)を並列に書き込むことができるので、更新要求に従う処理(メタデータライト処理)に要する時間の短縮化が期待でき、且つ、ノード101A及び101Bのメモリ102間でのメタデータ冗長化を実現できる。
・ノード101Aが、当該ノード101Aのメモリ102における更新後メタデータ(又は更新後メタデータの更新前メタデータとの差分)の一つ以上のライト要求をストレージボックス111に送信することで、異なる永続記憶デバイス114A及び114B間での冗長化された更新後メタデータが格納される。
・ノード101Aが、当該ノード101Aのメモリ102におけるメタデータの更新に同期してノード101Bのメモリ102に更新後メタデータを反映する。
なお、実施形態2では、ノード101Aが、一つ以上のライト要求の各々について完了応答をストレージボックス111から受信し、且つ、当該ノード101Aのメモリ102におけるメタデータの更新に同期してノード101Bのメモリ102に更新後メタデータを反映した場合に、更新要求に対する完了応答を発行してよい。これにより、ノード101A及び101Bのメモリ102間の同期は、ノード101Aからストレージボックス111への書き込みの間に完結することが期待でき、以って、更新要求に従う処理の短縮化が期待できる。
また、例えば、実施形態4では、図20に例示するように、ノード101Aのメタデータの更新要求に応答して、ノード101Aが、当該ノード101Aのメモリ102における更新後メタデータ(又は更新後メタデータの更新前メタデータとの差分)の一つ以上のライト要求をストレージボックス111に送信することで、ストレージボックス111における異なる永続記憶デバイス間での冗長化された更新後メタデータが格納される。また、ノード101Aが、ストレージボックス111における更新後メタデータ又は上記差分の位置を表す情報を含んだ更新情報をノード101Bに送信する。更新要求に従う処理とは非同期に、ノード101Bが、当該更新情報に基づき、ストレージボックス111から更新後メタデータ又は上記差分を読み出すことで、当該ノード101Bのメモリ102に更新後メタデータを格納する。これにより、更新要求に従う処理においてノード101Aからノード101Bへ出力されるデータの量を削減することができ、以って、更新要求に従う処理に要する時間の短縮化が期待できる。
なお、実施形態4では、ノード101Aが、上記一つ以上のライト要求の各々について完了応答をストレージボックス111から受信し、且つ、上記更新情報に対して所定の応答(例えば、受領確認の応答)をノード101Bから受信した場合に、更新要求に対する完了応答を発行してよい。これにより、更新情報よりサイズの大きいデータをノード101A及び101B間で及びノード101Bとストレージボックス111との間で通信すること無しに、更新要求に従う処理が完了する。
例えば、実施形態2乃至4のうちのいずれにおいても、ノード101Aが、永続記憶デバイス114A及び114B間でのメタデータ冗長化を行ってもよいが、例えば実施形態5では、当該メタデータ冗長化は、ストレージボックス111にオフロードされる。すなわち、ノード101Aのメタデータの更新要求に応答して、ノード101Aが、当該ノード101Aのメモリ102における更新後メタデータ(又は更新後メタデータの更新前メタデータとの差分)の一つのライト要求をストレージボックス111に送信し、ストレージボックス111(例えば、ライト処理プログラム362)が、当該ライト要求に応答して、当該更新後メタデータ又は当該差分の冗長化を行うことで、ストレージボックス111における異なる永続記憶デバイス間での冗長化された更新後メタデータが格納される。これにより、ノード101Aとストレージボックス111との間のデータ転送量と、ノード101Aの負荷とを低減できる。なお、永続記憶デバイス114間でのメタデータ冗長化は、任意のRAIDレベルに従うメタデータ冗長化(例えば、ミラーリング、或いは、パリティを用いたデータ保護)でもよいし、Erasure Codingでもよい。
101:計算機ノード、102:メモリ、103:CPU、104:永続記憶デバイス、111ストレージボックス

Claims (2)

  1. それぞれメモリ及びプロセッサを有する複数の計算機ノードと、
    複数の永続記憶デバイスを有し前記複数の計算機ノードに接続された記憶装置と
    を備え、
    一つ又は複数の冗長化グループの各々について、
    当該冗長化グループは、二つ以上の計算機ノードにおける二つ以上の制御プログラムが属するグループであり、
    前記二つ以上の制御プログラムの各々について、メタデータは、当該制御プログラムが計算機ノードのプロセッサにより実行されることで行われる制御の際にアクセスされるデータであり、
    当該冗長化グループに属する二つ以上の計算機ノードが、プライマリの計算機ノードであるプライマリノードと、セカンダリの計算機ノードであるセカンダリノードとを含み、
    前記複数の計算機ノードのいずれかのノードに障害が生じた場合、当該計算機ノードがプライマリノードである一つ以上の冗長化グループの各々について、フェイルオーバー先のセカンダリノードのメモリに格納されており当該冗長化グループに関わるメタデータを基に、プライマリノードの制御プログラムからセカンダリノードの制御プログラムへのフェイルオーバーが行われ、
    一つ又は複数の冗長化グループの各々について、下記(A)乃至(D)が行われる、
    (A)当該冗長化グループに関わり制御のためにアクセスされるデータであり当該プライマリノードのメモリにおけるメタデータが前記記憶装置における異なる永続記憶デバイス間で冗長化され
    (B)プライマリノードのメモリとセカンダリノードのメモリ間でメタデータが冗長化され
    (C)プライマリノードのメタデータに対する更新要求に応答して、下記(c1)及び(c2)の処理により、前記記憶装置での更新後メタデータ冗長化と、メモリ間での更新後メタデータ冗長化が実現される、
    (c1)プライマリノードが、当該プライマリノードのメモリにおける更新後メタデータ又は更新後メタデータの更新前メタデータとの差分の一つ以上のライト要求を前記記憶装置に送信することで、前記記憶装置における異なる永続記憶デバイス間での冗長化された更新後メタデータが格納される、
    (c2)プライマリノードが、当該プライマリノードのメモリにおけるメタデータの更新に同期してセカンダリノードのメモリに更新後メタデータを反映する、
    (D)プライマリノードが、前記一つ以上のライト要求の各々について完了応答を前記記憶装置から受信し、且つ、当該プライマリノードのメモリにおけるメタデータの更新に同期してセカンダリノードのメモリに更新後メタデータを反映した場合に、前記更新要求に対する完了応答を発行する、
    スケールアウト型ストレージシステム。
  2. 複数の永続記憶デバイスを有する記憶装置に接続されそれぞれメモリ及びプロセッサを有する複数の計算機ノードにより行われる記憶制御方法であって、
    一つ又は複数の冗長化グループの各々について、
    当該冗長化グループは、二つ以上の計算機ノードにおける二つ以上の制御プログラムが属するグループであり、
    前記二つ以上の制御プログラムの各々について、メタデータは、当該制御プログラムが計算機ノードのプロセッサにより実行されることで行われる制御の際にアクセスされるデータであり、
    当該冗長化グループに属する二つ以上の計算機ノードが、プライマリの計算機ノードであるプライマリノードと、セカンダリの計算機ノードであるセカンダリノードとを含み、
    前記複数の計算機ノードのいずれかのノードに障害が生じた場合、当該計算機ノードがプライマリノードである一つ以上の冗長化グループの各々について、フェイルオーバー先のセカンダリノードのメモリに格納されており当該冗長化グループに関わるメタデータを基に、プライマリノードの制御プログラムからセカンダリノードの制御プログラムへのフェイルオーバーが行われ、
    前記記憶制御方法は、
    前記一つ又は複数の冗長化グループの各々について、下記(A)乃至(D)を行う、
    (A)当該冗長化グループに関わり制御のためにアクセスされるデータであり当該プライマリノードのメモリにおけるメタデータを前記記憶装置における異なる永続記憶デバイス間で冗長化する
    (B)プライマリノードのメモリとセカンダリノードのメモリ間でメタデータを冗長化する、
    (C)プライマリノードのメタデータに対する更新要求に応答して、下記(c1)及び(c2)の処理により、前記記憶装置での更新後メタデータ冗長化と、メモリ間での更新後メタデータ冗長化が実現される、
    (c1)プライマリノードが、当該プライマリノードのメモリにおける更新後メタデータ又は更新後メタデータの更新前メタデータとの差分の一つ以上のライト要求を前記記憶装置に送信することで、前記記憶装置における異なる永続記憶デバイス間での冗長化された更新後メタデータが格納される、及び、
    (c2)プライマリノードが、当該プライマリノードのメモリにおけるメタデータの更新に同期してセカンダリノードのメモリに更新後メタデータを反映する、及び、
    (D)プライマリノードが、前記一つ以上のライト要求の各々について完了応答を前記記憶装置から受信し、且つ、当該プライマリノードのメモリにおけるメタデータの更新に同期してセカンダリノードのメモリに更新後メタデータを反映した場合に、前記更新要求に対する完了応答を発行する、
    記憶制御方法。
JP2021025696A 2021-02-19 2021-02-19 スケールアウト型ストレージシステム及び記憶制御方法 Active JP7331027B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021025696A JP7331027B2 (ja) 2021-02-19 2021-02-19 スケールアウト型ストレージシステム及び記憶制御方法
US17/474,395 US11630734B2 (en) 2021-02-19 2021-09-14 Scale-out storage system and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021025696A JP7331027B2 (ja) 2021-02-19 2021-02-19 スケールアウト型ストレージシステム及び記憶制御方法

Publications (2)

Publication Number Publication Date
JP2022127506A JP2022127506A (ja) 2022-08-31
JP7331027B2 true JP7331027B2 (ja) 2023-08-22

Family

ID=82900665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021025696A Active JP7331027B2 (ja) 2021-02-19 2021-02-19 スケールアウト型ストレージシステム及び記憶制御方法

Country Status (2)

Country Link
US (1) US11630734B2 (ja)
JP (1) JP7331027B2 (ja)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003084917A (ja) 2001-09-07 2003-03-20 Hitachi Ltd 遠隔ファイル共用方法、その装置及びシステム
JP2003208362A (ja) 2002-01-16 2003-07-25 Hitachi Ltd 記憶装置システム
JP2005078453A (ja) 2003-09-01 2005-03-24 Hitachi Ltd ストレージシステムの制御方法、ストレージシステム、及びストレージ装置
JP2005128861A (ja) 2003-10-24 2005-05-19 Hitachi Ltd リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
JP2004227099A5 (ja) 2003-01-20 2006-02-02
JP2007193451A (ja) 2006-01-17 2007-08-02 Hitachi Ltd Nasシステム及びリモートコピー方法
JP2008009810A (ja) 2006-06-30 2008-01-17 Hitachi Ltd 磁気ディスク装置
JP2008225643A (ja) 2007-03-09 2008-09-25 Nec Corp サーバ間ミラーディスクコントローラ、拡張カード
JP2009070143A (ja) 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
JP2020021277A (ja) 2018-07-31 2020-02-06 株式会社日立製作所 情報処理システム、情報処理システムの管理方法及びプログラム
JP2020101949A (ja) 2018-12-20 2020-07-02 株式会社日立製作所 ストレージシステム及びストレージシステム制御方法
JP2021012476A (ja) 2019-07-04 2021-02-04 株式会社日立製作所 分散ストレージシステム、分散ストレージシステムの制御方法及び記憶媒体

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156973A1 (en) * 2001-01-29 2002-10-24 Ulrich Thomas R. Enhanced disk array
JP4255699B2 (ja) 2003-01-20 2009-04-15 株式会社日立製作所 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
JP6114397B2 (ja) 2013-03-18 2017-04-12 株式会社日立製作所 複合型ストレージシステム及び記憶制御方法
JP6791834B2 (ja) 2017-11-30 2020-11-25 株式会社日立製作所 記憶システム及び制御ソフトウェア配置方法
JP7006265B2 (ja) * 2017-12-28 2022-01-24 富士通株式会社 情報処理装置,制御プログラムおよび情報処理方法
US20190278746A1 (en) * 2018-03-08 2019-09-12 infinite io, Inc. Metadata call offloading in a networked, clustered, hybrid storage system

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003084917A (ja) 2001-09-07 2003-03-20 Hitachi Ltd 遠隔ファイル共用方法、その装置及びシステム
JP2003208362A (ja) 2002-01-16 2003-07-25 Hitachi Ltd 記憶装置システム
JP2004227099A5 (ja) 2003-01-20 2006-02-02
JP2005078453A (ja) 2003-09-01 2005-03-24 Hitachi Ltd ストレージシステムの制御方法、ストレージシステム、及びストレージ装置
JP2005128861A (ja) 2003-10-24 2005-05-19 Hitachi Ltd リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
JP2007193451A (ja) 2006-01-17 2007-08-02 Hitachi Ltd Nasシステム及びリモートコピー方法
JP2008009810A (ja) 2006-06-30 2008-01-17 Hitachi Ltd 磁気ディスク装置
JP2008225643A (ja) 2007-03-09 2008-09-25 Nec Corp サーバ間ミラーディスクコントローラ、拡張カード
JP2009070143A (ja) 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
JP2020021277A (ja) 2018-07-31 2020-02-06 株式会社日立製作所 情報処理システム、情報処理システムの管理方法及びプログラム
JP2020101949A (ja) 2018-12-20 2020-07-02 株式会社日立製作所 ストレージシステム及びストレージシステム制御方法
JP2021012476A (ja) 2019-07-04 2021-02-04 株式会社日立製作所 分散ストレージシステム、分散ストレージシステムの制御方法及び記憶媒体

Also Published As

Publication number Publication date
JP2022127506A (ja) 2022-08-31
US20220269567A1 (en) 2022-08-25
US11630734B2 (en) 2023-04-18

Similar Documents

Publication Publication Date Title
JP5595530B2 (ja) データ移行システム及びデータ移行方法
US10359967B2 (en) Computer system
US11301159B2 (en) Storage system and data transfer method
JP5931196B2 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
US8375004B2 (en) Asynchronous remote copy system and storage control method
US11086562B2 (en) Computer system having data amount reduction function and storage control method
CN105009099A (zh) 计算机系统及数据控制方法
US20170083417A1 (en) Storage device
JP7472341B2 (ja) ストレージシステム及びストレージシステムの制御方法
US10761764B1 (en) Storage system and data transfer method
JP7113832B2 (ja) 分散ストレージシステム及び分散記憶制御方法
US10884924B2 (en) Storage system and data writing control method
JP6824929B2 (ja) 記憶制御システム及び記憶制御方法
US20220334726A1 (en) Distributed storage system and storage control method
JP7331027B2 (ja) スケールアウト型ストレージシステム及び記憶制御方法
CN111124257B (zh) 用于管理独立盘冗余阵列的方法、设备和计算机程序产品
US10846012B2 (en) Storage system for minimizing required storage capacity during remote volume replication pair duplication
WO2018055686A1 (ja) 情報処理システム
US11256586B2 (en) Remote copy system and remote copy management method
US11836391B2 (en) Distributed storage system and storage control method
JP7443404B2 (ja) ストレージシステム
WO2016153497A1 (en) Method and apparatus for remote copy between enterprise storage and commodity hardware based software storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230809

R150 Certificate of patent or registration of utility model

Ref document number: 7331027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150