JP6798007B2 - ストレージシステム、コンピュータ読み取り可能な記録媒体、システムの制御方法 - Google Patents
ストレージシステム、コンピュータ読み取り可能な記録媒体、システムの制御方法 Download PDFInfo
- Publication number
- JP6798007B2 JP6798007B2 JP2019508370A JP2019508370A JP6798007B2 JP 6798007 B2 JP6798007 B2 JP 6798007B2 JP 2019508370 A JP2019508370 A JP 2019508370A JP 2019508370 A JP2019508370 A JP 2019508370A JP 6798007 B2 JP6798007 B2 JP 6798007B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- predetermined number
- nodes
- redundant
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Description
コントローラ107は、データブロックを、ローカルなノード101のドライブ105に、LBA順にストレートマッピングされるように格納する。コントローラ107は、データブロックの宛先ノードを決定するため、列番号401をノード番号とし、行番号402を(LBA / ストライプサイズ)mod Cとして、列番号401と行番号402を算出する。コントローラ107は、ストライプマッピングテーブル301のデータ部404において、(ノード番号、(LBA / ストライプサイズ)mod C)のセル位置にあるセルに格納されたストライプグループ番号を取得する。コントローラ107は、ストライプマッピングテーブル301のClass2 code部406において、取得した番号と同じストライプグループ番号を格納するセルの列番号401を取得し、当該列番号401に対応するノード101へデータブロックを転送する。
コントローラ107は、Class1 codeについて、列番号401をノード番号とし、行番号402をP1として、列番号401と行番号402を算出する。コントローラ107は、ストライプマッピングテーブル301のClass1 code部405において、(ノード番号、P1)のセル位置にあるセルに格納されたストライプグループ番号を取得する。コントローラ107は、ストライプマッピングテーブル301のClass2 code部406において、取得した番号と同じストライプグループ番号を格納するセルの列番号401を取得し、当該列番号401に対応するノード101へClass1 codeを転送する。
S1202の判定の結果、I/O要求が読み出し処理ではなく書き込み処理である場合(S1202:N)、コントローラ107は、新規ライトかどうかを判定する(S1204)。S1204の判定の結果、新規ライトである場合(S1204:Y)、コントローラ107は、Class1 codeを計算する(S1208)。なお、Class1 codeは、ストライプグループの構成がmDnPの場合、n−1個だけ生成する。
Px=P1'+P1
ここで、PxはClass1 codeの中間コードであり、P1'は新規ライトデータブロックにより生成したClass1 code、P1は既にドライブ105へ書き出されたデータブロックで生成したClass1 codeとする。数式1から数式5に関するXOR演算を、単に"+"として表記する。
Px=P1'+P1
=(D1'+D2'+D3'+D4')+(0+0+0+0)
=D1'+D2'+D3'+D4'
ここで、新規ライト対象の4つのデータブロックを、D1'、D2'、D3'、D4'とする。0は0データを示す。
Px=P1'+P1
=(D1'+D2'+0+0)+(0+0+0+0)
=D1'+D2'
ここで、新規ライト対象の2つのデータブロックを、D1'、D2'とする。
Px=P1'+P1
=(D1'+D2'+D3'+D4')+(D1+D2+D3+D4)
=M1+M2+M3+M4
ここで、更新ライト対象の4つのデータブロックを、D1'、D2'、D3'、D4'とする。また、既にドライブ105に書き込まれているデータブロックをD1、D2、D3、D4とする。また、更新ライト対象のデータブロックと、当該データブロックのライト先に格納されたデータブロックから計算する中間コードを、M1、M2、M3、M4とする。M1、M2、M3、M4は、それぞれD1'+D1、D2'+D2、D3'+D3、D4'+D4で計算される。
Px=P1'+P1
=(D1'+D2'+D3+D4)+(D1+D2+D3+D4)
=M1+M2
ここで、更新ライト対象の2つのデータブロックを、D1'、D2'とする。また、既にドライブ105に書き込まれているデータブロックをD1、D2、D3、D4とする。また、更新ライト対象のデータブロックと、当該データブロックのライト先に格納されたデータブロックから計算する中間コードを、M1、M2とする。M1、M2は、それぞれD1'+D1、D2'+D2で計算される。
S1305の確認の結果、取得した世代番号が、自ノードのエントリに記録された世代番号より小さい場合(S1305:Y)、コントローラ107は、最新ライトデータを未受信のパリティストアノードが存在するとして、自系ノードのClass2 codeをロールバックすることで、Class2 codeの整合性をとる。この処理は、Read Modify Writeに使用するデータブロックが、ロールバック用ブロックであること(S1306)以外は、図11で説明したフローチャートと同様である(S1115〜S1118、S1120〜S1122)。S1306では、コントローラ107は、選択中エントリのキャッシュエントリに格納されたデータブロック、または中間コードを使用して、Class2 codeをRead Modify Writeすることで、Class2 codeを更新する。
新規ストライプマッピングテーブルにおけるストライプグループ番号で生成したパリティを生成または更新する。
101 ノード
102 内部ネットワーク
103 ネットワーク
104 メモリ
105 ドライブ
106 プロセッサ
107 コントローラ
108 バックエンドポート
Claims (23)
- 複数のノードを含むストレージシステムであって、
前記複数のノードの其々は、ストレージデバイスと、前記ストレージデバイスにデータを格納するコントローラと、を有し、
前記複数のノードのコントローラのうち、少なくとも1以上のコントローラは、
複数のデータと、前記複数のデータに対応する冗長データとからなる第1所定数のデータ要素で、データセットを構成し、
前記データセットの前記第1所定数のデータ要素を、前記複数のノードのうち、第1所定数の第1ノードに分散して配置し、
前記データセットを構成するデータ要素の数を、前記第1所定数から第2所定数増加させる指示を受信すると、前記データセットの前記第1所定数のデータ要素と、第2所定数のゼロデータとを、新たなデータ要素としてデータセットを再構成し、
前記再構成したデータセットのデータ要素を、前記第1所定数の前記第1ノードと第2所定数の第2ノードに分散させる配置であって、前記再構成したデータセットのデータ要素のうち、前記第2所定数の前記第2ノードにはゼロデータまたは前記冗長データを配置するように制御し、
少なくとも1以上の前記コントローラは、
前記再構成したデータセットのデータ要素を、前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードに分散させるとき、前記再構成したデータセットのデータ要素のうち、前記複数のデータ其々の配置先のノードは同じとなるように制御し、
前記第2所定数の前記第2ノードのうち、ゼロデータを配置したノードのコントローラは、前記ゼロデータの配置先に対する第1ライト要求を受信すると、
前記ゼロデータの配置先に前記第1ライト要求の第1ライトデータを格納し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記再構成したデータセットの前記冗長データが配置されたノードに、前記第1ライトデータを送信するように制御し、
前記第1ライトデータを受信したノードのコントローラは、前記再構成したデータセットの前記冗長データと前記第1ライトデータを基に、前記冗長データを更新するように制御し、
前記第1所定数の前記第1ノードと第2所定数の第2ノードの其々は、各々のノードに配置する冗長データを格納するための空き容量であるパリティ空き容量を管理し、
前記第1ライトデータを受信したノードのコントローラは、
当該ノードにおけるパリティ空き容量が所定の容量以下である場合、前記再構成したデータセットの前記冗長データと前記第1ライトデータを基に、前記冗長データを更新して格納し、
当該ノードにおけるパリティ空き容量が所定の容量以下ではない場合、前記再構成したデータセットのデータ要素のうち、前記冗長データ以外のデータ要素を基に、前記再構成したデータセットの冗長データを生成し、当該パリティ空き容量の少なくとも一部に前記生成した冗長データを格納する
ことを特徴とするストレージシステム。 - 前記第1ライトデータを受信したノードのコントローラは、前記冗長データを更新するとき、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記第1ライトデータを送信したノード以外の他ノードに配置された前記複数のデータ及びゼロデータを用いずに、前記冗長データを更新するように制御する
ことを特徴とする請求項1に記載のストレージシステム。 - 前記第1所定数の前記第1ノードのうち、前記複数のデータを配置したノードのコントローラは、前記複数のデータのいずれかの配置先をライト先とする第2ライト要求を受信すると、
前記ライト先に配置されたデータを読み出し、
前記第2ライト要求の第2ライトデータと前記読み出したデータから中間コードを生成し、
前記第2ライトデータに基づいて、ライト先に配置されたデータを更新し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記再構成したデータセットの前記冗長データが配置されたノードに、前記中間コードを送信するように制御し、
前記中間コードを受信したノードのコントローラは、前記再構成したデータセットの前記冗長データと前記中間コードを基に、前記冗長データを更新するように制御する
ことを特徴とする請求項1に記載のストレージシステム。 - 前記中間コードを受信したノードのコントローラは、前記冗長データの更新するとき、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記中間コードを送信したノード以外の他ノードに配置された前記データ及びゼロデータを用いずに、前記冗長データを更新するように制御する
ことを特徴とする請求項3に記載のストレージシステム。 - 前記データセットの前記第1所定数のデータ要素を、前記第1所定数の前記第1ノードに分散して配置しているとき、前記第1所定数の前記第1ノードの其々は、前記データセットの前記第1所定数のデータ要素の配置を管理するストライプマッピング情報を有し、
前記第1所定数の前記第1ノードのうち少なくとも1以上のノードは、
前記データセットを構成するデータ要素の数を、前記第1所定数から前記第2所定数増加させる前記指示を受信すると、前記ストライプマッピング情報を、前記再構成したデータセットのデータ要素の配置を管理するように更新し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうちの他ノードに前記更新したストライプマッピング情報を送信するように制御し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードの其々は、前記更新前のストライプマッピング情報と前記更新したストライプマッピング情報に基づいて、前記再構成したデータセットのデータ要素を分散させるように制御する
ことを特徴とする請求項1に記載のストレージシステム。 - 前記第2所定数の前記第2ノードにゼロデータを配置する場合、前記第2所定数の前記第2ノードの其々は、当該ノードが有するストレージデバイスにゼロデータを格納する処理、または当該ノードにおけるゼロデータの配置先となるアドレスに、ゼロデータであることを示す情報を対応づけて管理する処理の少なくとも一方の処理を実行する
ことを特徴とする請求項1に記載のストレージシステム。 - 前記第2所定数の前記第2ノードにゼロデータを配置する場合、前記第2所定数の前記第2ノードの其々は、当該ノードにおけるゼロデータの配置先となる論理アドレスに、当該ノードが有するストレージデバイスの実記憶領域を割り当てない
ことを特徴とする請求項1に記載のストレージシステム。 - 前記第1所定数の前記第1ノードのそれぞれは、論理ボリュームを提供し、
前記再構成前のデータセットに含まれる前記複数のデータの其々は、別々のノードが提供する論理ボリュームのデータである
ことを特徴とする請求項1に記載のストレージシステム。 - 前記データセットを構成するデータ要素の数を、前記第1所定数から第2所定数増加させる指示を受信する前に、前記複数のノードに加えて、少なくとも前記第2所定数の前記第2ノードを追加してスケールアウトする
ことを特徴とする請求項1に記載のストレージシステム。 - 前記再構成したデータセットのデータ要素に複数の冗長データが含まれ、前記第1所定数の前記第1ノードと第2所定数の第2ノードのうち、前記複数の冗長データと同数のノードに前記複数の冗長データを分散して配置する場合、
前記複数の冗長データが配置された各ノードは、当該ノードに配置された冗長データと、当該冗長データを生成または更新したときのデータセットの世代を識別する世代番号と、を対応づけて管理し、
前記再構成したデータセットのデータが配置されたノードに障害が発生した場合、前記冗長データが配置された少なくとも一以上のノードは、
前記複数の冗長データが配置された各ノードが管理する世代番号を取得して、他ノードで管理する世代番号が自ノードで管理する世代番号より小さいか否か判定し、
当該判定の結果、他ノードで管理する世代番号が自ノードで管理する世代番号より小さい場合、他ノードで管理する世代番号のうち、一番小さい世代番号の世代のデータセットにおける冗長データに、自ノードの冗長データをロールバックしてリビルド処理を実行し、
当該判定の結果、他ノードで管理する世代番号が自ノードで管理する世代番号より小さくない場合、自ノードで管理する冗長データでリビルド処理を実行する
ことを特徴とする請求項1に記載のストレージシステム。 - 複数のノードを含むストレージシステムであって、
前記複数のノードの其々は、ストレージデバイスと、前記ストレージデバイスにデータを格納するコントローラと、を有し、
前記複数のノードのコントローラのうち、少なくとも1以上のコントローラは、
複数のデータと、前記複数のデータに対応する冗長データとからなる第1所定数のデータ要素で、データセットを構成し、
前記データセットの前記第1所定数のデータ要素を、前記複数のノードのうち、第1所定数の第1ノードに分散して配置し、
前記データセットを構成するデータ要素の数を、前記第1所定数から第2所定数増加させる指示を受信すると、前記データセットの前記第1所定数のデータ要素と、第2所定数のゼロデータとを、新たなデータ要素としてデータセットを再構成し、
前記再構成したデータセットのデータ要素を、前記第1所定数の前記第1ノードと第2所定数の第2ノードに分散させる配置であって、前記再構成したデータセットのデータ要素のうち、前記第2所定数の前記第2ノードにはゼロデータまたは前記冗長データを配置するように制御し、
前記再構成したデータセットのデータ要素に複数の冗長データが含まれ、前記第1所定数の前記第1ノードと第2所定数の第2ノードのうち、前記複数の冗長データと同数のノードに前記複数の冗長データを分散して配置する場合、
前記複数の冗長データが配置された各ノードは、当該ノードに配置された冗長データと、当該冗長データを生成または更新したときのデータセットの世代を識別する世代番号と、を対応づけて管理し、
前記再構成したデータセットのデータが配置されたノードに障害が発生した場合、前記冗長データが配置された少なくとも一以上のノードは、
前記複数の冗長データが配置された各ノードが管理する世代番号を取得して、他ノードで管理する世代番号が自ノードで管理する世代番号より小さいか否か判定し、
当該判定の結果、他ノードで管理する世代番号が自ノードで管理する世代番号より小さい場合、他ノードで管理する世代番号のうち、一番小さい世代番号の世代のデータセットにおける冗長データに、自ノードの冗長データをロールバックしてリビルド処理を実行し、
当該判定の結果、他ノードで管理する世代番号が自ノードで管理する世代番号より小さくない場合、自ノードで管理する冗長データでリビルド処理を実行する
ことを特徴とするストレージシステム。 - 少なくとも1以上の前記コントローラは、
前記再構成したデータセットのデータ要素を、前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードに分散させるとき、前記再構成したデータセットのデータ要素のうち、前記複数のデータ其々の配置先のノードは同じとなるように制御する
ことを特徴とする請求項11に記載のストレージシステム。 - 前記第2所定数の前記第2ノードのうち、ゼロデータを配置したノードのコントローラは、前記ゼロデータの配置先に対する第1ライト要求を受信すると、
前記ゼロデータの配置先に前記第1ライト要求の第1ライトデータを格納し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記再構成したデータセットの前記冗長データが配置されたノードに、前記第1ライトデータを送信するように制御し、
前記第1ライトデータを受信したノードのコントローラは、前記再構成したデータセットの前記冗長データと前記第1ライトデータを基に、前記冗長データを更新するように制御する
ことを特徴とする請求項12に記載のストレージシステム。 - 前記第1ライトデータを受信したノードのコントローラは、前記冗長データを更新するとき、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記第1ライトデータを送信したノード以外の他ノードに配置された前記複数のデータ及びゼロデータを用いずに、前記冗長データを更新するように制御する
ことを特徴とする請求項13に記載のストレージシステム。 - 前記第1所定数の前記第1ノードのうち、前記複数のデータを配置したノードのコントローラは、前記複数のデータのいずれかの配置先をライト先とする第2ライト要求を受信すると、
前記ライト先に配置されたデータを読み出し、
前記第2ライト要求の第2ライトデータと前記読み出したデータから中間コードを生成し、
前記第2ライトデータに基づいて、ライト先に配置されたデータを更新し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記再構成したデータセットの前記冗長データが配置されたノードに、前記中間コードを送信するように制御し、
前記中間コードを受信したノードのコントローラは、前記再構成したデータセットの前記冗長データと前記中間コードを基に、前記冗長データを更新するように制御する
ことを特徴とする請求項11に記載のストレージシステム。 - 前記中間コードを受信したノードのコントローラは、前記冗長データの更新するとき、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記中間コードを送信したノード以外の他ノードに配置された前記データ及びゼロデータを用いずに、前記冗長データを更新するように制御する
ことを特徴とする請求項15に記載のストレージシステム。 - 前記データセットの前記第1所定数のデータ要素を、前記第1所定数の前記第1ノードに分散して配置しているとき、前記第1所定数の前記第1ノードの其々は、前記データセットの前記第1所定数のデータ要素の配置を管理するストライプマッピング情報を有し、
前記第1所定数の前記第1ノードのうち少なくとも1以上のノードは、
前記データセットを構成するデータ要素の数を、前記第1所定数から前記第2所定数増加させる前記指示を受信すると、前記ストライプマッピング情報を、前記再構成したデータセットのデータ要素の配置を管理するように更新し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうちの他ノードに前記更新したストライプマッピング情報を送信するように制御し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードの其々は、前記更新前のストライプマッピング情報と前記更新したストライプマッピング情報に基づいて、前記再構成したデータセットのデータ要素を分散させるように制御する
ことを特徴とする請求項11に記載のストレージシステム。 - 前記第2所定数の前記第2ノードにゼロデータを配置する場合、前記第2所定数の前記第2ノードの其々は、当該ノードが有するストレージデバイスにゼロデータを格納する処理、または当該ノードにおけるゼロデータの配置先となるアドレスに、ゼロデータであることを示す情報を対応づけて管理する処理の少なくとも一方の処理を実行する
ことを特徴とする請求項11に記載のストレージシステム。 - 前記第2所定数の前記第2ノードにゼロデータを配置する場合、前記第2所定数の前記第2ノードの其々は、当該ノードにおけるゼロデータの配置先となる論理アドレスに、当該ノードが有するストレージデバイスの実記憶領域を割り当てない
ことを特徴とする請求項11に記載のストレージシステム。 - 前記第1所定数の前記第1ノードのそれぞれは、論理ボリュームを提供し、
前記再構成前のデータセットに含まれる前記複数のデータの其々は、別々のノードが提供する論理ボリュームのデータである
ことを特徴とする請求項11に記載のストレージシステム。 - 前記データセットを構成するデータ要素の数を、前記第1所定数から第2所定数増加させる指示を受信する前に、前記複数のノードに加えて、少なくとも前記第2所定数の前記第2ノードを追加してスケールアウトする
ことを特徴とする請求項11に記載のストレージシステム。 - 複数のノードを含むシステムの制御方法であって、
前記複数のノードの其々は、ストレージデバイスと、前記ストレージデバイスにデータを格納するコントローラと、を有し、
前記複数のノードのコントローラのうち、少なくとも1以上のコントローラは、
複数のデータと、前記複数のデータに対応する冗長データとからなる第1所定数のデータ要素で、データセットを構成するステップと、
前記データセットの前記第1所定数のデータ要素を、前記複数のノードのうち、第1所定数の第1ノードに分散して配置するステップと、
前記データセットを構成するデータ要素の数を、前記第1所定数から第2所定数増加させる指示を受信すると、前記データセットの前記第1所定数のデータ要素と、第2所定数のゼロデータとを、新たなデータ要素としてデータセットを再構成するステップと、
前記再構成したデータセットのデータ要素を、前記第1所定数の前記第1ノードと第2所定数の第2ノードに分散させる配置であって、前記再構成したデータセットのデータ要素のうち、前記第2所定数の前記第2ノードにはゼロデータまたは前記冗長データを配置するステップと、
を有する処理を実行し、
少なくとも1以上の前記コントローラは、
前記再構成したデータセットのデータ要素を、前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードに分散させるとき、前記再構成したデータセットのデータ要素のうち、前記複数のデータ其々の配置先のノードは同じとなるように制御し、
前記第2所定数の前記第2ノードのうち、ゼロデータを配置したノードのコントローラは、前記ゼロデータの配置先に対する第1ライト要求を受信すると、
前記ゼロデータの配置先に前記第1ライト要求の第1ライトデータを格納し、
前記第1所定数の前記第1ノードと前記第2所定数の前記第2ノードのうち、前記再構成したデータセットの前記冗長データが配置されたノードに、前記第1ライトデータを送信するように制御し、
前記第1ライトデータを受信したノードのコントローラは、前記再構成したデータセットの前記冗長データと前記第1ライトデータを基に、前記冗長データを更新するように制御し、
前記第1所定数の前記第1ノードと第2所定数の第2ノードの其々は、各々のノードに配置する冗長データを格納するための空き容量であるパリティ空き容量を管理し、
前記第1ライトデータを受信したノードのコントローラは、
当該ノードにおけるパリティ空き容量が所定の容量以下である場合、前記再構成したデータセットの前記冗長データと前記第1ライトデータを基に、前記冗長データを更新して格納し、
当該ノードにおけるパリティ空き容量が所定の容量以下ではない場合、前記再構成したデータセットのデータ要素のうち、前記冗長データ以外のデータ要素を基に、前記再構成したデータセットの冗長データを生成し、当該パリティ空き容量の少なくとも一部に前記生成した冗長データを格納する
ことを特徴とする制御方法。 - 複数のノードを含むシステムの制御方法であって、
複数のデータと、前記複数のデータに対応する冗長データとからなる第1所定数のデータ要素で、データセットを構成するステップと、
前記データセットの前記第1所定数のデータ要素を、前記複数のノードのうち、第1所定数の第1ノードに分散して配置するステップと、
前記データセットを構成するデータ要素の数を、前記第1所定数から第2所定数増加させる指示を受信すると、前記データセットの前記第1所定数のデータ要素と、第2所定数のゼロデータとを、新たなデータ要素としてデータセットを再構成するステップと、
前記再構成したデータセットのデータ要素を、前記第1所定数の前記第1ノードと第2所定数の第2ノードに分散させる配置であって、前記再構成したデータセットのデータ要素のうち、前記第2所定数の前記第2ノードにはゼロデータまたは前記冗長データを配置するステップと、
を有し、
前記再構成したデータセットのデータ要素に複数の冗長データが含まれ、前記第1所定数の前記第1ノードと第2所定数の第2ノードのうち、前記複数の冗長データと同数のノードに前記複数の冗長データを分散して配置する場合、
前記複数の冗長データが配置された各ノードは、当該ノードに配置された冗長データと、当該冗長データを生成または更新したときのデータセットの世代を識別する世代番号と、を対応づけて管理し、
前記再構成したデータセットのデータが配置されたノードに障害が発生した場合、前記冗長データが配置された少なくとも一以上のノードは、
前記複数の冗長データが配置された各ノードが管理する世代番号を取得して、他ノードで管理する世代番号が自ノードで管理する世代番号より小さいか否か判定し、
当該判定の結果、他ノードで管理する世代番号が自ノードで管理する世代番号より小さい場合、他ノードで管理する世代番号のうち、一番小さい世代番号の世代のデータセットにおける冗長データに、自ノードの冗長データをロールバックしてリビルド処理を実行し、
当該判定の結果、他ノードで管理する世代番号が自ノードで管理する世代番号より小さくない場合、自ノードで管理する冗長データでリビルド処理を実行する
ことを特徴とする制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/012499 WO2018179073A1 (ja) | 2017-03-28 | 2017-03-28 | ストレージシステム、コンピュータ読み取り可能な記録媒体、システムの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018179073A1 JPWO2018179073A1 (ja) | 2019-07-11 |
JP6798007B2 true JP6798007B2 (ja) | 2020-12-09 |
Family
ID=63674763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019508370A Active JP6798007B2 (ja) | 2017-03-28 | 2017-03-28 | ストレージシステム、コンピュータ読み取り可能な記録媒体、システムの制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11150846B2 (ja) |
JP (1) | JP6798007B2 (ja) |
CN (1) | CN110383251B (ja) |
WO (1) | WO2018179073A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221958B2 (en) * | 2017-08-29 | 2022-01-11 | Samsung Electronics Co., Ltd. | System and method for LBA-based RAID |
US10747474B2 (en) * | 2018-10-22 | 2020-08-18 | EMC IP Holding Company LLC | Online cluster expansion for storage system with decoupled logical and physical capacity |
JP6947717B2 (ja) * | 2018-12-27 | 2021-10-13 | 株式会社日立製作所 | ストレージシステム |
EP3971701A4 (en) * | 2019-09-09 | 2022-06-15 | Huawei Cloud Computing Technologies Co., Ltd. | DATA PROCESSING METHODS IN A STORAGE SYSTEM, DEVICE AND STORAGE SYSTEM |
JP6955588B2 (ja) * | 2020-01-20 | 2021-10-27 | 株式会社日立製作所 | データ分析を支援するシステム及び方法 |
JP7261756B2 (ja) * | 2020-02-10 | 2023-04-20 | 株式会社日立製作所 | ストレージシステム、処理方法 |
EP4107726A4 (en) * | 2020-02-20 | 2023-10-11 | INTEL Corporation | ERASE ENCODING ON AN SSD WITH ONE-WAY COMMANDS |
JP7244482B2 (ja) | 2020-12-16 | 2023-03-22 | 株式会社日立製作所 | ストレージ管理システム、管理方法 |
JP7266060B2 (ja) | 2021-04-30 | 2023-04-27 | 株式会社日立製作所 | ストレージシステムの構成変更方法及びストレージシステム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524204A (en) * | 1994-11-03 | 1996-06-04 | International Business Machines Corporation | Method and apparatus for dynamically expanding a redundant array of disk drives |
US5758118A (en) * | 1995-12-08 | 1998-05-26 | International Business Machines Corporation | Methods and data storage devices for RAID expansion by on-line addition of new DASDs |
JP2000010738A (ja) * | 1998-06-17 | 2000-01-14 | Toshiba Corp | ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体 |
CN1692356B (zh) * | 2002-11-14 | 2014-06-04 | 易斯龙系统公司 | 用于对现存文件重新条带化的方法 |
US7996608B1 (en) * | 2005-10-20 | 2011-08-09 | American Megatrends, Inc. | Providing redundancy in a storage system |
US20070208790A1 (en) * | 2006-03-06 | 2007-09-06 | Reuter James M | Distributed data-storage system |
US20100114826A1 (en) * | 2008-10-24 | 2010-05-06 | Microsoft Corporation | Configuration management in distributed data systems |
US8103903B2 (en) * | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US9229808B2 (en) * | 2010-10-01 | 2016-01-05 | Pure Storage, Inc. | Reconstruct reads in a raid array with dynamic geometries |
CN103984607A (zh) * | 2013-02-08 | 2014-08-13 | 华为技术有限公司 | 分布式存储的方法、装置和系统 |
JP6135226B2 (ja) * | 2013-03-21 | 2017-05-31 | 日本電気株式会社 | 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム |
US9292389B2 (en) * | 2014-01-31 | 2016-03-22 | Google Inc. | Prioritizing data reconstruction in distributed storage systems |
US9501359B2 (en) * | 2014-09-10 | 2016-11-22 | Netapp, Inc. | Reconstruction of dense tree volume metadata state across crash recovery |
WO2016051512A1 (ja) | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
JP6163588B2 (ja) | 2016-05-11 | 2017-07-12 | 株式会社日立製作所 | ストレージシステム |
-
2017
- 2017-03-28 JP JP2019508370A patent/JP6798007B2/ja active Active
- 2017-03-28 CN CN201780086094.0A patent/CN110383251B/zh active Active
- 2017-03-28 US US16/328,933 patent/US11150846B2/en active Active
- 2017-03-28 WO PCT/JP2017/012499 patent/WO2018179073A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2018179073A1 (ja) | 2019-07-11 |
CN110383251A (zh) | 2019-10-25 |
CN110383251B (zh) | 2023-04-07 |
WO2018179073A1 (ja) | 2018-10-04 |
US11150846B2 (en) | 2021-10-19 |
US20190243553A1 (en) | 2019-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6798007B2 (ja) | ストレージシステム、コンピュータ読み取り可能な記録媒体、システムの制御方法 | |
JP7374939B2 (ja) | 分散型ストレージシステム | |
US11327661B2 (en) | Storage system and data management method | |
CN111158587B (zh) | 基于存储池虚拟化管理的分布式存储系统及数据读写方法 | |
US10359967B2 (en) | Computer system | |
JP6677740B2 (ja) | ストレージシステム | |
US11669396B2 (en) | Storage system | |
JP2018508073A (ja) | データ除去、割り当て、及び再構築 | |
US20120278560A1 (en) | Pre-fetching in a storage system that maintains a mapping tree | |
WO2016139787A1 (ja) | ストレージシステム及びデータ書込み制御方法 | |
JP2021157588A (ja) | 分散ストレージシステム及び記憶制御方法 | |
JP6807457B2 (ja) | ストレージシステム及びストレージシステムの制御方法 | |
JP6494787B2 (ja) | 分散ストレージシステム | |
JP7443404B2 (ja) | ストレージシステム | |
JP6605762B2 (ja) | 記憶ドライブの故障により消失したデータを復元する装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200602 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200910 |
|
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: 20201104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6798007 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |