JP2888401B2 - 冗長ディスクドライブアレイに対する同期方法 - Google Patents
冗長ディスクドライブアレイに対する同期方法Info
- Publication number
- JP2888401B2 JP2888401B2 JP5159626A JP15962693A JP2888401B2 JP 2888401 B2 JP2888401 B2 JP 2888401B2 JP 5159626 A JP5159626 A JP 5159626A JP 15962693 A JP15962693 A JP 15962693A JP 2888401 B2 JP2888401 B2 JP 2888401B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- parity
- nvram
- disk drive
- 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.)
- Expired - Fee Related
Links
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2082—Data synchronisation
-
- 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
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2064—Error 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 while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【0001】
【産業上の利用分野】本発明はアレイの冗長(redundan
t )ディスクドライブ上へのデータの格納、より詳細に
は、停電の後の冗長ディスクドライブ間のデータ同期を
確保するための方法に関する。
t )ディスクドライブ上へのデータの格納、より詳細に
は、停電の後の冗長ディスクドライブ間のデータ同期を
確保するための方法に関する。
【0002】
【従来の技術】用語“ディスクアレイ(disk array)”
は、ここでは複数の磁気ディスクがデータの格納の性能
及び信頼性を向上させるためにパラレルにて使用される
クラスのコンピュータシステムに関して用いられる。従
来技術は安価なディスクの冗長アレイ(redundant arra
ys of inexpensive disks 、RAID)が大きなコスト
の高いディスクドライブに対する魅力的な代替となり
得、1桁のオーダの性能の向上を約束することを示唆す
る。1988年6月1日から3日にイリノイ州シカゴ市
において開催されたACM Sigmod Conference (ACMシ
グモッド会議)においてパターソン(Patterson )らに
よって発表の論文『安価なディスクの冗長アレイ(RA
ID)のケース(A Case for Redundant Arrays of Ine
xpensive Disks(RAID)』はデータ冗長を可能に
し、ディスクアレイシステムの信頼性を向上させるため
の複数レベルのRAIDシステムについて説明する。パ
ターソンらによって“ストライピング(striping)”の
概念が説明されるが、これはデータを複数のディスクド
ライブの間でインタリービング(interleaving)するこ
とに関する。このインタリービングはビット、バイト、
語或はブロック単位で行なわれ、次に来る一連のデータ
要素が次に来るディスクドライブに“ストライプ(stri
pe)”構成にて置かれる。ブロックストライピング(bl
ock striping)システムにおいては、各ブロックは単一
のディスク内に書き込まれるが、但し、その後のブロッ
クは、他のディスクに分散される。ストライピング技法
は性能を向上させるが、信頼性は向上させない。向上さ
れた信頼性はディスクアレイの複数のドライブ上に冗長
のエラー修正コードを格納することによって得ることが
できる。個々のディスクが故障したような場合、これら
のコードが失われたデータを再構成するために使用さ
れ、このデータは次に交換されたディスクにこれが用意
された段階で書き込まれる。パターソンらによって説明
されるRAIDシステム構成はデータ回復を可能にする
冗長の複数の例を説明する。一つのこのようなRAID
システムは“ミラーリング(mirroring )”を採用し、
もう一つのシステムは“パリティ(parity)”を採用す
る。ミラーリングシステム(Mirroring system)はデー
タの各ブロックを少なくとも二つの別個のディスクドラ
イブ上に書き込むことによって信頼性を向上させる。一
つのドライブが故障した場合でも、同一データを含む少
なくとも一つの他のドライブが存在し、システムは残り
のドライブにて実行を継続でき、或は複製データを交換
ドライブにコピーすることによって再構成することがで
きる。
は、ここでは複数の磁気ディスクがデータの格納の性能
及び信頼性を向上させるためにパラレルにて使用される
クラスのコンピュータシステムに関して用いられる。従
来技術は安価なディスクの冗長アレイ(redundant arra
ys of inexpensive disks 、RAID)が大きなコスト
の高いディスクドライブに対する魅力的な代替となり
得、1桁のオーダの性能の向上を約束することを示唆す
る。1988年6月1日から3日にイリノイ州シカゴ市
において開催されたACM Sigmod Conference (ACMシ
グモッド会議)においてパターソン(Patterson )らに
よって発表の論文『安価なディスクの冗長アレイ(RA
ID)のケース(A Case for Redundant Arrays of Ine
xpensive Disks(RAID)』はデータ冗長を可能に
し、ディスクアレイシステムの信頼性を向上させるため
の複数レベルのRAIDシステムについて説明する。パ
ターソンらによって“ストライピング(striping)”の
概念が説明されるが、これはデータを複数のディスクド
ライブの間でインタリービング(interleaving)するこ
とに関する。このインタリービングはビット、バイト、
語或はブロック単位で行なわれ、次に来る一連のデータ
要素が次に来るディスクドライブに“ストライプ(stri
pe)”構成にて置かれる。ブロックストライピング(bl
ock striping)システムにおいては、各ブロックは単一
のディスク内に書き込まれるが、但し、その後のブロッ
クは、他のディスクに分散される。ストライピング技法
は性能を向上させるが、信頼性は向上させない。向上さ
れた信頼性はディスクアレイの複数のドライブ上に冗長
のエラー修正コードを格納することによって得ることが
できる。個々のディスクが故障したような場合、これら
のコードが失われたデータを再構成するために使用さ
れ、このデータは次に交換されたディスクにこれが用意
された段階で書き込まれる。パターソンらによって説明
されるRAIDシステム構成はデータ回復を可能にする
冗長の複数の例を説明する。一つのこのようなRAID
システムは“ミラーリング(mirroring )”を採用し、
もう一つのシステムは“パリティ(parity)”を採用す
る。ミラーリングシステム(Mirroring system)はデー
タの各ブロックを少なくとも二つの別個のディスクドラ
イブ上に書き込むことによって信頼性を向上させる。一
つのドライブが故障した場合でも、同一データを含む少
なくとも一つの他のドライブが存在し、システムは残り
のドライブにて実行を継続でき、或は複製データを交換
ドライブにコピーすることによって再構成することがで
きる。
【0003】パリティディクス(parity disk )システ
ムは複数のディスクを“パリティグループ(parity gro
up)”にグループ化することによって冗長を提供する。
ディスクドライブの一つを除く全ては通常のディスクブ
ロックを含み、一方、一つの残りのディスクドライブ上
のブロックはその他のドライブ上の対応するブロック内
のデータのビットワイズ(bitwise )の排他的OR総和
(モジュロ2)を含むように書き込まれる。そして、任
意の一つのドライブが故障した場合、そのデータは残り
のドライブ上のデータの排他的OR動作によって再構成
される。更新は新たなデータをデータディスクドライブ
上の適当な位置内に書き込み、排他的OR機能を使用し
て古いデータと新しいデータの差をパリティディスクド
ライブ上の対応するブロックに加えることによって達成
される。
ムは複数のディスクを“パリティグループ(parity gro
up)”にグループ化することによって冗長を提供する。
ディスクドライブの一つを除く全ては通常のディスクブ
ロックを含み、一方、一つの残りのディスクドライブ上
のブロックはその他のドライブ上の対応するブロック内
のデータのビットワイズ(bitwise )の排他的OR総和
(モジュロ2)を含むように書き込まれる。そして、任
意の一つのドライブが故障した場合、そのデータは残り
のドライブ上のデータの排他的OR動作によって再構成
される。更新は新たなデータをデータディスクドライブ
上の適当な位置内に書き込み、排他的OR機能を使用し
て古いデータと新しいデータの差をパリティディスクド
ライブ上の対応するブロックに加えることによって達成
される。
【0004】このようなミラー及びパリティシステムに
おいては、停電(あるいは電源故障)及びその後のパワ
ーアップ(電源投入)が起こったとき、同期の問題が発
生する。データは同一データが冗長ディスク上に存在す
る場合に冗長ディスクを横断して“同期されている(sy
nchronized)”といわれる。データは、同一であるべき
データが同一でない場合“同期されてない(unsynchron
ized)”といわれる。パワーアップにおける問題は、冗
長ディスクを横断してどのデータが同期されており、ど
のデータが同期されてないかを決定することである。
おいては、停電(あるいは電源故障)及びその後のパワ
ーアップ(電源投入)が起こったとき、同期の問題が発
生する。データは同一データが冗長ディスク上に存在す
る場合に冗長ディスクを横断して“同期されている(sy
nchronized)”といわれる。データは、同一であるべき
データが同一でない場合“同期されてない(unsynchron
ized)”といわれる。パワーアップにおける問題は、冗
長ディスクを横断してどのデータが同期されており、ど
のデータが同期されてないかを決定することである。
【0005】ミラーリング及びパリティシステムを採用
するエラー修正技法は、従って、データ及びエラー修正
コードが矛盾なく一貫して書き込まれているときにのみ
正しく機能する。特に、システムの停電の後に、データ
及びデータを保護するエラー修正コードに不一致があっ
てはならない。最低でも、システムが効率的に不一致を
発見し、修正できる能力が要求される。
するエラー修正技法は、従って、データ及びエラー修正
コードが矛盾なく一貫して書き込まれているときにのみ
正しく機能する。特に、システムの停電の後に、データ
及びデータを保護するエラー修正コードに不一致があっ
てはならない。最低でも、システムが効率的に不一致を
発見し、修正できる能力が要求される。
【0006】全てのデータが中央の共有コントローラに
よって書き込まれ、かつ、このコントローラがパワーが
失われる警告を十分に早く得る場合は、同期は停電の前
にこのコントローラによって確保できる。但し、このタ
イプの共有コントローラは単一ポイントの故障を起こす
傾向を持ち、これによって、システムの全体としての信
頼性が制約される。これらはまた大きなグループの作動
ディスク間に置かれる共有待機交換ドライブの柔軟性に
制約を与える。
よって書き込まれ、かつ、このコントローラがパワーが
失われる警告を十分に早く得る場合は、同期は停電の前
にこのコントローラによって確保できる。但し、このタ
イプの共有コントローラは単一ポイントの故障を起こす
傾向を持ち、これによって、システムの全体としての信
頼性が制約される。これらはまた大きなグループの作動
ディスク間に置かれる共有待機交換ドライブの柔軟性に
制約を与える。
【0007】これら問題は、複数のディスクが、典型的
には、通信ネットワークによって接続された個別の処理
ノード上に駐在する個別のコントローラによって非同期
的に書き込まれるようなアーキテクチュアにおいては一
層複雑になる。このようなディスクがトランザクション
処理システムのために使用されるような場合、従来技術
においては、システムの停電に続いて様々なディスクの
再同期ができるように高レベルのソフトウエアトランザ
クションログが使用できるようになっている。
には、通信ネットワークによって接続された個別の処理
ノード上に駐在する個別のコントローラによって非同期
的に書き込まれるようなアーキテクチュアにおいては一
層複雑になる。このようなディスクがトランザクション
処理システムのために使用されるような場合、従来技術
においては、システムの停電に続いて様々なディスクの
再同期ができるように高レベルのソフトウエアトランザ
クションログが使用できるようになっている。
【0008】高速ランダムアクセスメモリ(High speed
random access memories 、RAMs)がディスクシス
テムの性能を向上させるために使用されている。これら
バッファ或はキャッシュは、通常、ディスクドライブを
制御する中央プロセッサの主メモリから割り当てられる
か、或はディクスコントローラ回路内に含まれこれに属
する。いずれのケースにおいても、これらバッファはデ
ィスクから頻繁にアクセスされるデータを繰り返して再
読み出しする必要性を排除する。データは最初にアクセ
スされたときこの高速バッファ内に置かれ、ここに可能
な限り長く保持される。データが代替されると、高速バ
ッファが変更され、システムが全体として停電したとき
データが失われる可能性を回避するために変更されたデ
ータが直ちにディスク内に書き込まれる。これらのタイ
プのデータキャッシュは“ライトスルー(write throug
h )”キャッシュとして知られている。
random access memories 、RAMs)がディスクシス
テムの性能を向上させるために使用されている。これら
バッファ或はキャッシュは、通常、ディスクドライブを
制御する中央プロセッサの主メモリから割り当てられる
か、或はディクスコントローラ回路内に含まれこれに属
する。いずれのケースにおいても、これらバッファはデ
ィスクから頻繁にアクセスされるデータを繰り返して再
読み出しする必要性を排除する。データは最初にアクセ
スされたときこの高速バッファ内に置かれ、ここに可能
な限り長く保持される。データが代替されると、高速バ
ッファが変更され、システムが全体として停電したとき
データが失われる可能性を回避するために変更されたデ
ータが直ちにディスク内に書き込まれる。これらのタイ
プのデータキャッシュは“ライトスルー(write throug
h )”キャッシュとして知られている。
【0009】それらの内容がシステムが停電した場合で
も保持されるようなランダムアクセスメモリが現在存在
する。ある半導体メモリはバッテリバックアップ或は他
の信頼できる電源を使用することにより不揮発性メモリ
として使用することができる。別の半導体メモリはパワ
ーが除去された時でも本質的に安定であり、停電が起き
てもバッテリによるバックアップなしに格納されたデー
タを保持する。用語“不揮発性(non-volatile)RA
M”(NVRAM)は、ここでは全てのこのようなメモ
リデバイスを指すために使用される。例えば、IBM3
990ディスクコントローラはデータをディスクに書き
込む前に長期間キャッシュ(高速格納)するためにNV
RAMを使用する。システムが停電した後再開された場
合、NVRAMキャッシュ内の情報はディスク自体の上
の対応するデータよりも一層新しいものであると見なさ
れる。
も保持されるようなランダムアクセスメモリが現在存在
する。ある半導体メモリはバッテリバックアップ或は他
の信頼できる電源を使用することにより不揮発性メモリ
として使用することができる。別の半導体メモリはパワ
ーが除去された時でも本質的に安定であり、停電が起き
てもバッテリによるバックアップなしに格納されたデー
タを保持する。用語“不揮発性(non-volatile)RA
M”(NVRAM)は、ここでは全てのこのようなメモ
リデバイスを指すために使用される。例えば、IBM3
990ディスクコントローラはデータをディスクに書き
込む前に長期間キャッシュ(高速格納)するためにNV
RAMを使用する。システムが停電した後再開された場
合、NVRAMキャッシュ内の情報はディスク自体の上
の対応するデータよりも一層新しいものであると見なさ
れる。
【0010】従来技術の特許にはパリティ保護ディスク
アレイ及び他の冗長ディスク構成に関する複数の開示が
含まれる。クラーケ(Clarke)らに付与された合衆国特
許第4,761,785号はパリティ保護ディスクアレ
イの概念及び関連する最適化について開示する。クラー
ケらはまたディスク上のデータ“見出し(headers )”
内に格納されたバージョン情報がデータと関連するパリ
ティブロックとの間のバージョンの不一致の検出をサポ
ートする技法について説明する。但し、停電及びそれに
続くパワーアップがあった場合のこれらの不一致の修正
については考慮されてない。スティフラ(Stiffler)ら
に交付された合衆国特許第4,654,819号におい
ては、フォールトトレラント(fault tolerant)コンピ
ュータシステムの実現のために冗長RAMが使用され
る。主メモリに対する更新データが緩衝され、変更デー
タが専用のキャッシュユニット内にプログラム内容がス
イッチされるまで或はキャッシュが一杯になるまで格納
される。いずれかが発生した時点で、二つのフェーズか
ら成る更新プロトコルを使用して、最初に第一の主メモ
リが、そして次に第二の主メモリが更新されるが、こう
して、いずれかのメモリが故障した場合に動作を再開或
は破棄するための十分な情報が常に残される。
アレイ及び他の冗長ディスク構成に関する複数の開示が
含まれる。クラーケ(Clarke)らに付与された合衆国特
許第4,761,785号はパリティ保護ディスクアレ
イの概念及び関連する最適化について開示する。クラー
ケらはまたディスク上のデータ“見出し(headers )”
内に格納されたバージョン情報がデータと関連するパリ
ティブロックとの間のバージョンの不一致の検出をサポ
ートする技法について説明する。但し、停電及びそれに
続くパワーアップがあった場合のこれらの不一致の修正
については考慮されてない。スティフラ(Stiffler)ら
に交付された合衆国特許第4,654,819号におい
ては、フォールトトレラント(fault tolerant)コンピ
ュータシステムの実現のために冗長RAMが使用され
る。主メモリに対する更新データが緩衝され、変更デー
タが専用のキャッシュユニット内にプログラム内容がス
イッチされるまで或はキャッシュが一杯になるまで格納
される。いずれかが発生した時点で、二つのフェーズか
ら成る更新プロトコルを使用して、最初に第一の主メモ
リが、そして次に第二の主メモリが更新されるが、こう
して、いずれかのメモリが故障した場合に動作を再開或
は破棄するための十分な情報が常に残される。
【0011】グッドランダ(Goodlander)らに付与され
た合衆国特許第4,942,579号は複数のディスク
ドライブを横断してのストライピング(striping)の様
々なRAID構成及び一つのこのようなドライブが故障
した場合のデータ再構成のための技法について開示す
る。グッドランダらによって説明されるアーキテクチュ
アはキャッシング及び高速書き込みのために単一のバッ
テリにてバックアップされた“キャッシュメモリ(cach
e memory)”を使用する。但し、“キャッシュ”メモリ
が故障したときこれをバックアップするための準備は示
されない。
た合衆国特許第4,942,579号は複数のディスク
ドライブを横断してのストライピング(striping)の様
々なRAID構成及び一つのこのようなドライブが故障
した場合のデータ再構成のための技法について開示す
る。グッドランダらによって説明されるアーキテクチュ
アはキャッシング及び高速書き込みのために単一のバッ
テリにてバックアップされた“キャッシュメモリ(cach
e memory)”を使用する。但し、“キャッシュ”メモリ
が故障したときこれをバックアップするための準備は示
されない。
【0012】ベーガ(Berger)らに交付された合衆国特
許第5,051,887号においては、ミラーリング
(mirroring )機能を含むメインフレームディスクコン
トローラが開示される。NVRAMがここでは高速書き
込み及び同期機構として使用される。ベーガらのシステ
ムは高速書き込みバッファとしての単一NVRAMを第
二の揮発性キャッシュと共に使用する。このシステムは
高速書き込みが完了したことを通知する前にデータがN
VRAM及びキャッシュ或はNVRAM及び一つのディ
スク内に存在することを保証する。これはパワーが失わ
れた場合にキャッシュ或はNVRAMが損失することに
対して保護し、一方で、システムが動作して回復を提供
できるようにする。但し、ベーガらのシステムは停電の
際にNVRAM或はドライブが失われた場合に、回復が
いかにして可能であるかについては説明しない。さら
に、ベーガらは様々なRAID装置が停電した場合にデ
ータの同期をいかに提供するかについては説明しない。
許第5,051,887号においては、ミラーリング
(mirroring )機能を含むメインフレームディスクコン
トローラが開示される。NVRAMがここでは高速書き
込み及び同期機構として使用される。ベーガらのシステ
ムは高速書き込みバッファとしての単一NVRAMを第
二の揮発性キャッシュと共に使用する。このシステムは
高速書き込みが完了したことを通知する前にデータがN
VRAM及びキャッシュ或はNVRAM及び一つのディ
スク内に存在することを保証する。これはパワーが失わ
れた場合にキャッシュ或はNVRAMが損失することに
対して保護し、一方で、システムが動作して回復を提供
できるようにする。但し、ベーガらのシステムは停電の
際にNVRAM或はドライブが失われた場合に、回復が
いかにして可能であるかについては説明しない。さら
に、ベーガらは様々なRAID装置が停電した場合にデ
ータの同期をいかに提供するかについては説明しない。
【0013】ミヤザキ(Miyazaki)らに交付された合衆
国特許第4,603,406号は各々が個別のバッテリ
バックアップを持ち、通常、同一のデータを格納する二
つのメモリの再同期について開示する。停電の際の任意
の時点でバッテリバックアップが失われた場合は、対応
するメモリの内容は信頼できるものではない。このた
め、システムが後にメモリを再獲得した場合、どちらの
メモリがそれらの内容を失ったかを知らせるための手段
が提供される。
国特許第4,603,406号は各々が個別のバッテリ
バックアップを持ち、通常、同一のデータを格納する二
つのメモリの再同期について開示する。停電の際の任意
の時点でバッテリバックアップが失われた場合は、対応
するメモリの内容は信頼できるものではない。このた
め、システムが後にメモリを再獲得した場合、どちらの
メモリがそれらの内容を失ったかを知らせるための手段
が提供される。
【0014】ハムストラ(Hamstra )らに交付された合
衆国特許第4,530,054号においては中央キャッ
シュを持つディスクコントローラが開示される。ここで
は、更新はストアイン(store-in)方法にて達成される
(つまり、更新データは永久補助記憶装置に書き込まれ
る前にある期間キャッシュ内に保持される)。ハムスト
ラらのシステムは、停電があった場合、キャッシュ内の
およそどれ位のデータが危険状態にあるかをホストプロ
セッサに示す。
衆国特許第4,530,054号においては中央キャッ
シュを持つディスクコントローラが開示される。ここで
は、更新はストアイン(store-in)方法にて達成される
(つまり、更新データは永久補助記憶装置に書き込まれ
る前にある期間キャッシュ内に保持される)。ハムスト
ラらのシステムは、停電があった場合、キャッシュ内の
およそどれ位のデータが危険状態にあるかをホストプロ
セッサに示す。
【0015】冗長データメモリの性能に関する他の教示
が以下の資料:つまり、V.J.Kruskal (クルスカ
ル)の防衛刊行物(Defensive publication )T93
2,005;Kinoshita (キノシタ)らに付与された合
衆国特許第4,493,083号、Imezaki(イメザ
キ)らに付与された第4,393,500号、Nishigak
i (ニシガキ)らに付与された第5,043,871
号、George(ジョージ)らに付与された第4,419,
725号、Finley(フィンレイ)らに付与された第4,
697,266号、Milligan(ミリガン)らに付与され
た第4,410,942号;Hotle (ホテル)らに付与
されたPCT国際特許WO90/06550;及び日本
国特許第62−194557号において見られる。
が以下の資料:つまり、V.J.Kruskal (クルスカ
ル)の防衛刊行物(Defensive publication )T93
2,005;Kinoshita (キノシタ)らに付与された合
衆国特許第4,493,083号、Imezaki(イメザ
キ)らに付与された第4,393,500号、Nishigak
i (ニシガキ)らに付与された第5,043,871
号、George(ジョージ)らに付与された第4,419,
725号、Finley(フィンレイ)らに付与された第4,
697,266号、Milligan(ミリガン)らに付与され
た第4,410,942号;Hotle (ホテル)らに付与
されたPCT国際特許WO90/06550;及び日本
国特許第62−194557号において見られる。
【0016】
【発明が解決しようとする課題】従って、本発明の一つ
の目的は、停電した場合の改良されたデータ同期の方法
を持つディスクドライブの冗長構成を提供することにあ
る。
の目的は、停電した場合の改良されたデータ同期の方法
を持つディスクドライブの冗長構成を提供することにあ
る。
【0017】本発明のもう一つの目的は停電の際のドラ
イブ或はキャッシュメモリの損失が検出されそれから回
復できるディスクドライブの冗長アレイに対するデータ
同期のための改良された方法を提供することにある。
イブ或はキャッシュメモリの損失が検出されそれから回
復できるディスクドライブの冗長アレイに対するデータ
同期のための改良された方法を提供することにある。
【0018】
【課題を解決するための手段及び作用】マルチプロセッ
サシステムは交換ネットワークを通じて相互接続された
複数の実質的に同一のノードを含み、各ノードはディス
クドライブ、NVRAM、及びプロセッサを含む。この
システムは異なるノード内の複数のディスクドライブを
横断してデータをパリティ保護RAID(parity prote
cted RAID )或はミラード(mirrored)方式にて格納す
る。RAID構成内にデータが格納されると、パリティ
ノード内の一つのNVRAMに新たなデータ、新たなパ
リティのコピー、及び同期状態インジケータを含む一つ
のエントリが提供される。パリティノードは新たなパリ
ティを決定し、新たなデータをデータノードに格納され
るように送る。受取り通知を受信すると、パリティノー
ドは同期インジケータをリセットする。停電の後にパワ
ーアップが起こると、パリティノードはそのNVRAM
をエントリが存在しないか走査し、リセットされてない
状態のエントリを見つけると、新たなデータをそのエン
トリに対する宛先データノードに送る。ミラード(mirr
oed )システムにおいては、唯一のノード内のNVRA
MがそのNVRAM内に入れられたデータ識別子を持っ
ており、従って停電しその後パワーアップされたとき、
そのエントリによってどのディクスドライブが非同期状
態であるかをシステムが知ることができるようになる。
サシステムは交換ネットワークを通じて相互接続された
複数の実質的に同一のノードを含み、各ノードはディス
クドライブ、NVRAM、及びプロセッサを含む。この
システムは異なるノード内の複数のディスクドライブを
横断してデータをパリティ保護RAID(parity prote
cted RAID )或はミラード(mirrored)方式にて格納す
る。RAID構成内にデータが格納されると、パリティ
ノード内の一つのNVRAMに新たなデータ、新たなパ
リティのコピー、及び同期状態インジケータを含む一つ
のエントリが提供される。パリティノードは新たなパリ
ティを決定し、新たなデータをデータノードに格納され
るように送る。受取り通知を受信すると、パリティノー
ドは同期インジケータをリセットする。停電の後にパワ
ーアップが起こると、パリティノードはそのNVRAM
をエントリが存在しないか走査し、リセットされてない
状態のエントリを見つけると、新たなデータをそのエン
トリに対する宛先データノードに送る。ミラード(mirr
oed )システムにおいては、唯一のノード内のNVRA
MがそのNVRAM内に入れられたデータ識別子を持っ
ており、従って停電しその後パワーアップされたとき、
そのエントリによってどのディクスドライブが非同期状
態であるかをシステムが知ることができるようになる。
【0019】
【実施例】図1に示されるように、マルチプロセッサシ
ステム10は複数のノード12を含み、これらの各々は
実質的に同一であり、これらノードの全ては交換ネット
ワーク14を介して相互接続される。各ノード12はデ
ィスクドライブ16、プロセッサ18、RAM20及び
NVRAM22を含む。プロセッサ18は、周知の方法
によって、ディスクドライブ16、RAM20、及びN
VRAM22の動作を制御する。システム10の動作は
一つ或は複数のプロセッサ18によって制御される。プ
ロセッサは中央制御ノード(例えば、ノード24)の所
に位置することも、或はノード構造を通じて分散させる
こともできる。
ステム10は複数のノード12を含み、これらの各々は
実質的に同一であり、これらノードの全ては交換ネット
ワーク14を介して相互接続される。各ノード12はデ
ィスクドライブ16、プロセッサ18、RAM20及び
NVRAM22を含む。プロセッサ18は、周知の方法
によって、ディスクドライブ16、RAM20、及びN
VRAM22の動作を制御する。システム10の動作は
一つ或は複数のプロセッサ18によって制御される。プ
ロセッサは中央制御ノード(例えば、ノード24)の所
に位置することも、或はノード構造を通じて分散させる
こともできる。
【0020】各ノード12は交換ネットワーク14を介
して制御ノードにアクセスが可能でなければならない。
こうして、ディスクブロックの読み出し或は書き込みを
試みる全ての制御ノードはそのブロックを格納するパリ
ティグループ内の全てのノードと直接コンタクトを持た
なければならない。別の方法としては、ディスクブロッ
クの読み出し或は書き込みを試みる制御ノードはそのパ
リティグループ内のディスクノードの一つとコンタクト
を持つようにされ、このパリティグループ内のノードが
完全に相互接続される。
して制御ノードにアクセスが可能でなければならない。
こうして、ディスクブロックの読み出し或は書き込みを
試みる全ての制御ノードはそのブロックを格納するパリ
ティグループ内の全てのノードと直接コンタクトを持た
なければならない。別の方法としては、ディスクブロッ
クの読み出し或は書き込みを試みる制御ノードはそのパ
リティグループ内のディスクノードの一つとコンタクト
を持つようにされ、このパリティグループ内のノードが
完全に相互接続される。
【0021】以下において明らかになるように、本発明
は特定のノードが故障した場合、或は電源を投入した
後、不意の停電の場合のノード間でのデータ同期の確保
を目的とする。ディスク、その制御プロセッサ、或はそ
の関連するNVRAMの故障はノード全体の故障である
と見なされ、この考えに従って回復が行なわれる。さら
に一時的な停電(transient power failure )は全ての
システム動作のほぼ同期的な停止を起こすものと想定さ
れる。殆どのノードはこのような停電から生き延び、パ
ワーが回復されたとき、再起動されるものと想定され
る。また、ディスクドライブ、プロセッサ、及びNVR
AMSは、それら自体の動作のエラーを確実に報告し、
或はフェイルストップ(fail-stop )特性を示すものと
想定され、さらにディスク及びNVRAMは典型的には
パワーが失われている期間を通じて格納されたデータを
保持し、或はパワーが回復したときエラー或はフェイル
ストップを報告するものと想定される。
は特定のノードが故障した場合、或は電源を投入した
後、不意の停電の場合のノード間でのデータ同期の確保
を目的とする。ディスク、その制御プロセッサ、或はそ
の関連するNVRAMの故障はノード全体の故障である
と見なされ、この考えに従って回復が行なわれる。さら
に一時的な停電(transient power failure )は全ての
システム動作のほぼ同期的な停止を起こすものと想定さ
れる。殆どのノードはこのような停電から生き延び、パ
ワーが回復されたとき、再起動されるものと想定され
る。また、ディスクドライブ、プロセッサ、及びNVR
AMSは、それら自体の動作のエラーを確実に報告し、
或はフェイルストップ(fail-stop )特性を示すものと
想定され、さらにディスク及びNVRAMは典型的には
パワーが失われている期間を通じて格納されたデータを
保持し、或はパワーが回復したときエラー或はフェイル
ストップを報告するものと想定される。
【0022】図2には、(ミラーディクスドライブシス
テムの場合の)システム10の動作が説明される。制御
ノード(例えば、図1のノード24)上の制御ソフトウ
エアはデータブロックを格納することとなる二つのノー
ド12の一つにブロックを送ることによって論理ブロッ
クの書き込み(logical block write )を開始する。こ
のケースにおいては、ノードAが書き込み要求を受信す
るものと想定する(図2のボックス30を参照)。各ノ
ードは更新されているブロックの識別子(但し、必ずし
も内容ではない)のリストをそのNVRAM22内に保
持する。こうして、ノードAが書き込み要求を受信する
と、これはブロック識別子をそのNVRAMリストに加
える(ブロック32)。ノードAは次にデータブロック
のコピーをミラーノード(mirror node )に送り、同時
に、更新データのそのディスクドライブへの書き込みを
開始する(ボックス34及び36)。ノードBは、更新
データを受信すると、データをディスクに書き込み(ボ
ックス38)、次に受取りの確認をノードAに送る(ボ
ックス40)。ノードAはまたディスクへのその書き込
みをパラレルにて終了し(ボックス42)、次に、ノー
ドBから書き込みが成功した知らせが受信されたか決定
する(ボックス44)。受信されない場合は、確認のテ
ストを継続し、或は、別の方法として、データ伝送を再
度試みる。
テムの場合の)システム10の動作が説明される。制御
ノード(例えば、図1のノード24)上の制御ソフトウ
エアはデータブロックを格納することとなる二つのノー
ド12の一つにブロックを送ることによって論理ブロッ
クの書き込み(logical block write )を開始する。こ
のケースにおいては、ノードAが書き込み要求を受信す
るものと想定する(図2のボックス30を参照)。各ノ
ードは更新されているブロックの識別子(但し、必ずし
も内容ではない)のリストをそのNVRAM22内に保
持する。こうして、ノードAが書き込み要求を受信する
と、これはブロック識別子をそのNVRAMリストに加
える(ブロック32)。ノードAは次にデータブロック
のコピーをミラーノード(mirror node )に送り、同時
に、更新データのそのディスクドライブへの書き込みを
開始する(ボックス34及び36)。ノードBは、更新
データを受信すると、データをディスクに書き込み(ボ
ックス38)、次に受取りの確認をノードAに送る(ボ
ックス40)。ノードAはまたディスクへのその書き込
みをパラレルにて終了し(ボックス42)、次に、ノー
ドBから書き込みが成功した知らせが受信されたか決定
する(ボックス44)。受信されない場合は、確認のテ
ストを継続し、或は、別の方法として、データ伝送を再
度試みる。
【0023】確認を受信すると、ノードAはそのディス
クドライブとノードBの所のディスクドライブの両方が
更新されたデータを含むことを知る。このような状況下
においては、ノードAはそのNVRAM22からブロッ
クIDエントリを除去し(ボックス46)、次に書き込
み要求の開始者に書き込み動作が完結したことを通知す
る(ボックス48)。任意の継続中の書き込みに対して
これら2つのノードの一つのみがブロック識別子を格納
することを要求されることに注意する。全てのドライブ
がディスクの変更をコミット(commit)するまで、各更
新データがNVRAMの少なくとも一つ内にログされる
限り、これらの識別子の幾つかが片方のノード内に、そ
して別の幾つかの識別子がもう一方のノード内にログさ
れる。
クドライブとノードBの所のディスクドライブの両方が
更新されたデータを含むことを知る。このような状況下
においては、ノードAはそのNVRAM22からブロッ
クIDエントリを除去し(ボックス46)、次に書き込
み要求の開始者に書き込み動作が完結したことを通知す
る(ボックス48)。任意の継続中の書き込みに対して
これら2つのノードの一つのみがブロック識別子を格納
することを要求されることに注意する。全てのドライブ
がディスクの変更をコミット(commit)するまで、各更
新データがNVRAMの少なくとも一つ内にログされる
限り、これらの識別子の幾つかが片方のノード内に、そ
して別の幾つかの識別子がもう一方のノード内にログさ
れる。
【0024】図2の手続きは全ての同期外れデータブロ
ックが少なくとも一つのNVRAM22内にリストされ
ることを保証する。停電に続いて(図3に示されるよう
に)、パワーが回復され(ボックス50)、全てのNV
RAMがチェックされ、(ボックス52において)発見
されたリストされたブロックの全てが全てリストされた
更新の完成によって再同期される(ボックス54)。N
VRAM22内にリストされない全てのブロックは同期
されていることが知られており、チェックする必要はな
い。
ックが少なくとも一つのNVRAM22内にリストされ
ることを保証する。停電に続いて(図3に示されるよう
に)、パワーが回復され(ボックス50)、全てのNV
RAMがチェックされ、(ボックス52において)発見
されたリストされたブロックの全てが全てリストされた
更新の完成によって再同期される(ボックス54)。N
VRAM22内にリストされない全てのブロックは同期
されていることが知られており、チェックする必要はな
い。
【0025】上記説明は2ウェイミラーリング(two wa
y mirroring )を示すが、N−ウエイミラーリング(つ
まり、各ブロックが二つ以上のノ−ド内に格納される)
も可能である。但し、この場合は、ブロック識別子がN
−1個のNVRAM22内に格納されなければならな
い。このような状況下においては、一つ或は複数のミラ
ーリングノード(mirroring node)或はその関連するN
VRAMが停電の最中に失われる幾らかのわずかな可能
性がある。N−1個より少ない損失が発生した場合に
は、全ての疑問の持たれるブロックが少なくとも一つの
生き残ったNVRAM22内に記録されることが保証さ
れ、回復は通常の方法にて行なうことができる。N−1
個のディスクドライブ或はNVRAMが同時に損失した
場合は、データの一つのコピーのみが生き残り、解決さ
れるべき同期問題は存在しない。
y mirroring )を示すが、N−ウエイミラーリング(つ
まり、各ブロックが二つ以上のノ−ド内に格納される)
も可能である。但し、この場合は、ブロック識別子がN
−1個のNVRAM22内に格納されなければならな
い。このような状況下においては、一つ或は複数のミラ
ーリングノード(mirroring node)或はその関連するN
VRAMが停電の最中に失われる幾らかのわずかな可能
性がある。N−1個より少ない損失が発生した場合に
は、全ての疑問の持たれるブロックが少なくとも一つの
生き残ったNVRAM22内に記録されることが保証さ
れ、回復は通常の方法にて行なうことができる。N−1
個のディスクドライブ或はNVRAMが同時に損失した
場合は、データの一つのコピーのみが生き残り、解決さ
れるべき同期問題は存在しない。
【0026】NVRAM22のサイズは任意の時間にお
いてアレイ内で進行可能な更新の数を決定する。NVR
AMが一つのエントリのみしか持つことができない場合
は、一つの更新のみが継続中となることができ、そのブ
ロックの全てのコピーは任意の他の書き込みが開始され
る前に安全にコミット(収容)されなければならない。
典型的には、NVRAMは複数のブロック識別子のため
の余地を持ち、識別子の数は同時に処理することができ
る書き込みの数を示す。
いてアレイ内で進行可能な更新の数を決定する。NVR
AMが一つのエントリのみしか持つことができない場合
は、一つの更新のみが継続中となることができ、そのブ
ロックの全てのコピーは任意の他の書き込みが開始され
る前に安全にコミット(収容)されなければならない。
典型的には、NVRAMは複数のブロック識別子のため
の余地を持ち、識別子の数は同時に処理することができ
る書き込みの数を示す。
【0027】図2及び3に示されるシステム動作はブロ
ック識別子をNVRAM内のブロックキャッシュと結合
することによって最適化できる。各ノードは、従って、
更新されたデータをブロック識別子と共にNVRAM内
に書き込むオプションを持つ。任意の数の或は全てのノ
ードがデータをNVRAM内に格納することができ、少
なくともN−1個はブロック識別子を格納しなければな
らない。更新ブロックがNVRAM内に或は各ノード上
のディスクに格納されるやいなや書き込みが完了したも
のとして制御ノードに報告される。読み出しはNVRA
Mからデータが入手できるときにはNVRAMから得、
またそうでなければディスクから得ることによって達成
される。
ック識別子をNVRAM内のブロックキャッシュと結合
することによって最適化できる。各ノードは、従って、
更新されたデータをブロック識別子と共にNVRAM内
に書き込むオプションを持つ。任意の数の或は全てのノ
ードがデータをNVRAM内に格納することができ、少
なくともN−1個はブロック識別子を格納しなければな
らない。更新ブロックがNVRAM内に或は各ノード上
のディスクに格納されるやいなや書き込みが完了したも
のとして制御ノードに報告される。読み出しはNVRA
Mからデータが入手できるときにはNVRAMから得、
またそうでなければディスクから得ることによって達成
される。
【0028】図4及び5には、本発明の動作がRAID
構造に配列されたパリティ保護ディスクアレイ(parity
protected disk arrays)と共に図解される。上に説明
したように、このシステムはN個のディスクを含み、N
−1個のディスクドライブがデータを格納するために使
用され、そして1つのディスクドライブが他のN−1個
のディスクドライブ上のデータの排他的OR和であるパ
リティコードを格納するために使用される。読み出し動
作の際に、データがN−1個のデータノードの幾らか或
は全てから直接に読み出される。
構造に配列されたパリティ保護ディスクアレイ(parity
protected disk arrays)と共に図解される。上に説明
したように、このシステムはN個のディスクを含み、N
−1個のディスクドライブがデータを格納するために使
用され、そして1つのディスクドライブが他のN−1個
のディスクドライブ上のデータの排他的OR和であるパ
リティコードを格納するために使用される。読み出し動
作の際に、データがN−1個のデータノードの幾らか或
は全てから直接に読み出される。
【0029】データ更新は、結果として、N−1個のデ
ータディスクドライブの適当な一つ上のデータブロック
を変更させ、またパリティディスクドライブ上のパリテ
ィブロックを更新する。このような事態が発生した場
合、パリティディスク上の新たなパリティ値(NP)は
パリティデータの古い値(old value 、OP)に新たな
データ(new data、ND)と古いデータ(old data、O
D)との間の差を加えた値にセットされなければならな
いが、全てはビット単位(bitwise )にて、モジュロ2
(排他的OR)にて計算される。
ータディスクドライブの適当な一つ上のデータブロック
を変更させ、またパリティディスクドライブ上のパリテ
ィブロックを更新する。このような事態が発生した場
合、パリティディスク上の新たなパリティ値(NP)は
パリティデータの古い値(old value 、OP)に新たな
データ(new data、ND)と古いデータ(old data、O
D)との間の差を加えた値にセットされなければならな
いが、全てはビット単位(bitwise )にて、モジュロ2
(排他的OR)にて計算される。
【0030】図4に示されるように、書き込まれるべき
データ(ND)は最初に制御プロセッサによってパリテ
ィノードに送られる(ボックス60)。パリティノード
は、すると、対応するブロック内のデータの古い値(O
D)を要求するためにデータノードとコンタクトする
(ボックス62)。同時に、パリティノード(ボックス
64)はそのNVRAM22或はそのディスクドライブ
のどちらかOPが発見されるほうからパリティブロック
の古い値(OP)にアクセスする。パリティノードは次
にそのパリティブロックに対する新しい値(NP)を式
NP=(OP+ND−OD)に従ってビットワイズに計
算し、モジュロ2を総和する(ボックス66)。
データ(ND)は最初に制御プロセッサによってパリテ
ィノードに送られる(ボックス60)。パリティノード
は、すると、対応するブロック内のデータの古い値(O
D)を要求するためにデータノードとコンタクトする
(ボックス62)。同時に、パリティノード(ボックス
64)はそのNVRAM22或はそのディスクドライブ
のどちらかOPが発見されるほうからパリティブロック
の古い値(OP)にアクセスする。パリティノードは次
にそのパリティブロックに対する新しい値(NP)を式
NP=(OP+ND−OD)に従ってビットワイズに計
算し、モジュロ2を総和する(ボックス66)。
【0031】パリティノードは次にそのNVRAMを
“タプル(組 tuple )”にて更新するが、全てのタプ
ルは生成の時間順に並べられる。このケースにおいて
は、タプルは以下のデータ、つまり、BLOCK ID、ND、
NP、及びUNSYNCHED 及びNP NOTWRITTENと呼ばれる2
つのブーリアン(真/偽)フラグを含む。このタプル
は、データブロック識別子、データの新しい値(N
D)、パリティの新しい値(NP)、データノードとパ
リティノードの所において参照されたブロックが同期し
てないことを示すインジケータ、及びNP値がパリティ
ノードの所においてディスクドライブにまだ書き込まれ
てないことを示すインジケータを説明する。
“タプル(組 tuple )”にて更新するが、全てのタプ
ルは生成の時間順に並べられる。このケースにおいて
は、タプルは以下のデータ、つまり、BLOCK ID、ND、
NP、及びUNSYNCHED 及びNP NOTWRITTENと呼ばれる2
つのブーリアン(真/偽)フラグを含む。このタプル
は、データブロック識別子、データの新しい値(N
D)、パリティの新しい値(NP)、データノードとパ
リティノードの所において参照されたブロックが同期し
てないことを示すインジケータ、及びNP値がパリティ
ノードの所においてディスクドライブにまだ書き込まれ
てないことを示すインジケータを説明する。
【0032】パリティノードはNVRAM内にそのタプ
ルを保持するために以下の規則に従う。 1.BLOCK IDはタプルが生成された時点においてセット
され、タプルがNVRAMから削除されるまでそのまま
にされなければならない。 2.UNSYNCHEDフラグはタプルが生成された時点におい
てセットされ、新たなデータ(ND)がデータノードの
ディスクドライブ或はNVRAMにコミットされたこと
をデータノードからの応答が示すまでセットされた状態
に保たれなければならない。 3.NEW PARITY(NP)値は対応するタプルをタプルリス
トに挿入した後の任意の時点でパリティノードの所のデ
ィスクに書き込まれるか、或は新たなパリティ(NP)
のディスクへの書き込みは無期限に遅らされて、タプル
がそのNP値がセットされた状態でリストに残るように
することもできる。NP NOT WRITT ENフラグはNP値が
ディスクに書き込まれるまでセットされた状態にとどま
るべきであり、このフラグはディクス書き込みが完了す
ると直ちにリセットされる。 4.NP NOT WRITTENフラグがいったんリセットされる
と、タプル内のNPデータによって占拠された空間が再
利用される。 5.ND値はパリティ位置側のNVRAM内にUNSYNCHE
D フラグがリセットされるまで、或はタプルがNVRA
Mから除去されるまで維持されなければならない。UNSY
NCHED マーカがいったんリセットされると、NDのため
に使用されたスペースが再利用される。 6.タプル自体はいったん以下の条件が満たされると、
つまり、UNSYNCHED マーカがリセットされ、NP NOT WRI
TTENがリセットされると完全に除去される。
ルを保持するために以下の規則に従う。 1.BLOCK IDはタプルが生成された時点においてセット
され、タプルがNVRAMから削除されるまでそのまま
にされなければならない。 2.UNSYNCHEDフラグはタプルが生成された時点におい
てセットされ、新たなデータ(ND)がデータノードの
ディスクドライブ或はNVRAMにコミットされたこと
をデータノードからの応答が示すまでセットされた状態
に保たれなければならない。 3.NEW PARITY(NP)値は対応するタプルをタプルリス
トに挿入した後の任意の時点でパリティノードの所のデ
ィスクに書き込まれるか、或は新たなパリティ(NP)
のディスクへの書き込みは無期限に遅らされて、タプル
がそのNP値がセットされた状態でリストに残るように
することもできる。NP NOT WRITT ENフラグはNP値が
ディスクに書き込まれるまでセットされた状態にとどま
るべきであり、このフラグはディクス書き込みが完了す
ると直ちにリセットされる。 4.NP NOT WRITTENフラグがいったんリセットされる
と、タプル内のNPデータによって占拠された空間が再
利用される。 5.ND値はパリティ位置側のNVRAM内にUNSYNCHE
D フラグがリセットされるまで、或はタプルがNVRA
Mから除去されるまで維持されなければならない。UNSY
NCHED マーカがいったんリセットされると、NDのため
に使用されたスペースが再利用される。 6.タプル自体はいったん以下の条件が満たされると、
つまり、UNSYNCHED マーカがリセットされ、NP NOT WRI
TTENがリセットされると完全に除去される。
【0033】上からわかるように、UNSYNCHED インジケ
ータ及びNDは、新たなデータがデータノードの所に安
全にコミットされるまでパリティノードの所に保持され
なければならない。これとの関連で、ボックス70内に
示されるように、パリティノードはNDをデータノード
に書き込みコマンドにて送り、データノードはNDを格
納する(ボックス71)。次に、パリティノードはNP
をそのディスクドライブに書き込み、書き込みが成功す
ると、NP NOT WRITTENをゼロにリセットする(ボックス
72)。
ータ及びNDは、新たなデータがデータノードの所に安
全にコミットされるまでパリティノードの所に保持され
なければならない。これとの関連で、ボックス70内に
示されるように、パリティノードはNDをデータノード
に書き込みコマンドにて送り、データノードはNDを格
納する(ボックス71)。次に、パリティノードはNP
をそのディスクドライブに書き込み、書き込みが成功す
ると、NP NOT WRITTENをゼロにリセットする(ボックス
72)。
【0034】データノードがNDをそのディスクドライ
ブ或はNVRAMに書き込みを終えたという応答をパリ
ティノードがデータノードから受信すると(図5のボッ
クス74)、パリティノードはそのUNSYNCHED フラグを
リセットすることができる(ボックス74及び78)。
データノードの所での書き込みが成功したという応答が
受信されない場合は、パリティノードはNDの伝送を再
度試みる(ボックス76)。タプル内のUNSYNCHED エン
トリが偽にいったんリセットされると、ボックス80に
示されるようにタプル全体をリセットすることができ
る。
ブ或はNVRAMに書き込みを終えたという応答をパリ
ティノードがデータノードから受信すると(図5のボッ
クス74)、パリティノードはそのUNSYNCHED フラグを
リセットすることができる(ボックス74及び78)。
データノードの所での書き込みが成功したという応答が
受信されない場合は、パリティノードはNDの伝送を再
度試みる(ボックス76)。タプル内のUNSYNCHED エン
トリが偽にいったんリセットされると、ボックス80に
示されるようにタプル全体をリセットすることができ
る。
【0035】オプションとして、NP及びブロックID
を将来の読み出し及び更新のためのキャッシュとして機
能するようにパリティノードのNVRAM内に無期限に
保持することもできるが、この場合、その後の読み出し
はディスクにアクセスすることを必要とすることなくN
VRAMから満たすことができる。データはこの目的の
ためにNVRAM内に十分な空間が得られる限り保持さ
れる。同様に、NDもデータノードの所のNVRAM内
にスペースが空いている限り保持することができる。
を将来の読み出し及び更新のためのキャッシュとして機
能するようにパリティノードのNVRAM内に無期限に
保持することもできるが、この場合、その後の読み出し
はディスクにアクセスすることを必要とすることなくN
VRAMから満たすことができる。データはこの目的の
ためにNVRAM内に十分な空間が得られる限り保持さ
れる。同様に、NDもデータノードの所のNVRAM内
にスペースが空いている限り保持することができる。
【0036】実際に使用する場合は、パリティに基づく
ディスクアレイの多くはパリティと通常のデータを全て
のディスクドライブ(RAID−5)上に混合する。こ
のようなシステムにおいては、ある与えられたドライブ
はデータをあるブロックに対して格納し、パリティを他
のブロックに対して格納する。本発明によって提供され
るNVRAMシステムはブロックバイブロックベース
(block by block basis)にて更新を行なうが、各ノー
ドは更新されるべき特定のブロックに従ってデータノー
ドの機能を果たしたり、或はパリティノードの機能を果
たしたりする。各ノードの所のNVRAMはパリティブ
ロックに対する同期ログ(つまり、タプルリストの維
持)、及び通常のデータブロックに対する通常のライト
ビハインドキャッシュ(write-behind cache)の二重の
機能を果たす。
ディスクアレイの多くはパリティと通常のデータを全て
のディスクドライブ(RAID−5)上に混合する。こ
のようなシステムにおいては、ある与えられたドライブ
はデータをあるブロックに対して格納し、パリティを他
のブロックに対して格納する。本発明によって提供され
るNVRAMシステムはブロックバイブロックベース
(block by block basis)にて更新を行なうが、各ノー
ドは更新されるべき特定のブロックに従ってデータノー
ドの機能を果たしたり、或はパリティノードの機能を果
たしたりする。各ノードの所のNVRAMはパリティブ
ロックに対する同期ログ(つまり、タプルリストの維
持)、及び通常のデータブロックに対する通常のライト
ビハインドキャッシュ(write-behind cache)の二重の
機能を果たす。
【0037】図6の説明に移り、ここには、停電の後の
手順が記述される。電源投入(ボックス81)に続い
て、各ノードのNVRAMがその中にタプルが存在しな
いか決定するために走査される(ボックス82)。ある
ノード内にタプルが発見されない場合は、次のノードが
アクセスされ、そのNVRAMが走査される(ボックス
84)。幾つかの実施例では複数のパリティノードの所
のNVRAMが並行に走査される。
手順が記述される。電源投入(ボックス81)に続い
て、各ノードのNVRAMがその中にタプルが存在しな
いか決定するために走査される(ボックス82)。ある
ノード内にタプルが発見されない場合は、次のノードが
アクセスされ、そのNVRAMが走査される(ボックス
84)。幾つかの実施例では複数のパリティノードの所
のNVRAMが並行に走査される。
【0038】あるNVRAM内にタプルが発見される
と、対応するNVRAMが特定のデータブロックに対す
る最も最近の更新されたタプルを見つけるために走査さ
れる(ボックス86)。このタプルが次にUNSYNCHED ビ
ットがセットされているか決定するために調べられ(ボ
ックス88)、セットされてない場合は、次のブロック
のIDタプルがアクセスされ、手順はボックス86へと
再循環する(ボックス90)。UNSYNCHED ビットがセッ
トされている場合は、データノードがそのNVRAM或
はディスクを更新することができるように、新たなデー
タ(ND)を含むメッセージがそのブロックを含むデー
タノードに送られる(ボックス92)。伝送に対する受
取り通知が受信されない場合は(ボックス94)、受取
り通知が受信されるまで再伝送が試みられる(ボックス
96)。確認が受信された時点で、対応する非同期のビ
ットがオフにされ(ボックス98)、全てのブロックが
現在処理を終え、同期されているか決定される(ボック
ス100)。同期されてない場合は、手順はボックス9
0へと再循環し、判定ボックス100が肯定の指示を発
するまでこれが反復される。肯定の指示が発行された時
点で、パリティノードは通常の動作を開始し、上に説明
の規則に従ってそのタプルリストを維持する。より詳細
には、パリティノードはここでその自身のディスクにそ
のNVRAMからのまだコミットされてない新たなパリ
ティ値の最終バージョンを書き込み、そのリストから対
応するタプルを除去し、或はこれらタプルの幾らか或は
全てをキャッシュとして限定のない期間だけ保持する。
と、対応するNVRAMが特定のデータブロックに対す
る最も最近の更新されたタプルを見つけるために走査さ
れる(ボックス86)。このタプルが次にUNSYNCHED ビ
ットがセットされているか決定するために調べられ(ボ
ックス88)、セットされてない場合は、次のブロック
のIDタプルがアクセスされ、手順はボックス86へと
再循環する(ボックス90)。UNSYNCHED ビットがセッ
トされている場合は、データノードがそのNVRAM或
はディスクを更新することができるように、新たなデー
タ(ND)を含むメッセージがそのブロックを含むデー
タノードに送られる(ボックス92)。伝送に対する受
取り通知が受信されない場合は(ボックス94)、受取
り通知が受信されるまで再伝送が試みられる(ボックス
96)。確認が受信された時点で、対応する非同期のビ
ットがオフにされ(ボックス98)、全てのブロックが
現在処理を終え、同期されているか決定される(ボック
ス100)。同期されてない場合は、手順はボックス9
0へと再循環し、判定ボックス100が肯定の指示を発
するまでこれが反復される。肯定の指示が発行された時
点で、パリティノードは通常の動作を開始し、上に説明
の規則に従ってそのタプルリストを維持する。より詳細
には、パリティノードはここでその自身のディスクにそ
のNVRAMからのまだコミットされてない新たなパリ
ティ値の最終バージョンを書き込み、そのリストから対
応するタプルを除去し、或はこれらタプルの幾らか或は
全てをキャッシュとして限定のない期間だけ保持する。
【0039】一般に、システムはパワーが回復された時
点で全ての未決の更新(つまり、パワー損失の前にそれ
に対する受取り確認が制御ノードに送られてない更新)
が完了することを保証する必要はなく、一貫性が維持さ
れることのみを要求される。生き残ったNVRAM内に
ログされた更新がパワーの回復の後に完了されることが
保証される。但し、パリティノード、そのNVRAM、
或はそのディスクドライブが停電に対して生き残ること
を失敗するような幾らかの可能性がある。このようなノ
ードへの更新データの配置(disposition )は対応する
データノードの進行度合にのみ依存する。データノード
がその更新データを既にキャッシュ或はコミットしてい
る場合は、更新は完了したものと見なされる。そうでな
い場合は、その更新データは失われる。いずれの場合
も、不一致の問題は発生しない。パリティノードが失わ
れるために、データノードは、定義上、それ自体の一貫
性を持つ。新たな或は代用のパリティディスクがそのブ
ロックの各々をそれが保護する全てのデータブロックの
排他的OR総和であると初期化することによって構成さ
れる。失われたデータディスクは従来の“RAID”方
法によって、つまり、生き残ったN−2個のデータブロ
ックの値を生き残ったパリティブロックと、ディスク或
はNVRAMのいずれか適当な方からの値を使用して互
いに排他的OR処理することによって再構成される。
点で全ての未決の更新(つまり、パワー損失の前にそれ
に対する受取り確認が制御ノードに送られてない更新)
が完了することを保証する必要はなく、一貫性が維持さ
れることのみを要求される。生き残ったNVRAM内に
ログされた更新がパワーの回復の後に完了されることが
保証される。但し、パリティノード、そのNVRAM、
或はそのディスクドライブが停電に対して生き残ること
を失敗するような幾らかの可能性がある。このようなノ
ードへの更新データの配置(disposition )は対応する
データノードの進行度合にのみ依存する。データノード
がその更新データを既にキャッシュ或はコミットしてい
る場合は、更新は完了したものと見なされる。そうでな
い場合は、その更新データは失われる。いずれの場合
も、不一致の問題は発生しない。パリティノードが失わ
れるために、データノードは、定義上、それ自体の一貫
性を持つ。新たな或は代用のパリティディスクがそのブ
ロックの各々をそれが保護する全てのデータブロックの
排他的OR総和であると初期化することによって構成さ
れる。失われたデータディスクは従来の“RAID”方
法によって、つまり、生き残ったN−2個のデータブロ
ックの値を生き残ったパリティブロックと、ディスク或
はNVRAMのいずれか適当な方からの値を使用して互
いに排他的OR処理することによって再構成される。
【0040】上記手続きの特徴は、停電の際にディスク
ドライブが崩壊或は損失した場合、パリティノード内の
崩壊したディスクドライブからの失われたデータを再構
成するために必要とされる十分なデータが存在するとい
うことである。同様に、パリティノードが失敗した場合
でも、パリティを生き残ったディスクドライブから再構
成することができる。
ドライブが崩壊或は損失した場合、パリティノード内の
崩壊したディスクドライブからの失われたデータを再構
成するために必要とされる十分なデータが存在するとい
うことである。同様に、パリティノードが失敗した場合
でも、パリティを生き残ったディスクドライブから再構
成することができる。
【0041】上記説明は単に本発明を解説することが目
的であることに注意すべきである。当業者においては、
本発明から逸脱することなく様々な代替及び修正が可能
である。従って、本発明は特許請求の範囲に入るこれら
全ての代替、修正及びバリエーションを包含するもので
ある。
的であることに注意すべきである。当業者においては、
本発明から逸脱することなく様々な代替及び修正が可能
である。従って、本発明は特許請求の範囲に入るこれら
全ての代替、修正及びバリエーションを包含するもので
ある。
【0042】
【発明の効果】以上説明したように、第一及び第二の発
明の構成によれば、停電(あるいは電源故障)等によっ
てディスクドライブやキャッシュメモリから一部のデー
タが失われた場合であっても、生き残ったディスクドラ
イブから失われたデータを再構成し、故障から回復する
ことが可能となる。
明の構成によれば、停電(あるいは電源故障)等によっ
てディスクドライブやキャッシュメモリから一部のデー
タが失われた場合であっても、生き残ったディスクドラ
イブから失われたデータを再構成し、故障から回復する
ことが可能となる。
【図1】本発明を組み込むシステムの高レベルブロック
図である。
図である。
【図2】ミラー冗長データ分散のケースの場合に図1の
システムが従う手続きを示す流れ図である。
システムが従う手続きを示す流れ図である。
【図3】ミラーデータ冗長構成においてパワーアップの
後に図1のシステムが従う手続きの流れ図である。
後に図1のシステムが従う手続きの流れ図である。
【図4】冗長データのRAID分散が使用されたときに
図1のシステムが従う手続きを図解する。
図1のシステムが従う手続きを図解する。
【図5】冗長データのRAID分散が使用されたときに
図1のシステムが従う手続きを図解する。
図1のシステムが従う手続きを図解する。
【図6】RAID配列されたシステムがパワーアップの
後に従う手順を図解する流れ図である。
後に従う手順を図解する流れ図である。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−118921(JP,A) 特開 平5−197499(JP,A) 国際公開91/13394(WO,A1) (58)調査した分野(Int.Cl.6,DB名) G06F 3/06
Claims (9)
- 【請求項1】複数の実質的に同一の構成のノードが交換
ネットワークを通じて相互接続され、各ノードがディス
クドライブ手段、不揮発性ランダムアクセスメモリ(N
VRAM)及びプロセッサを有し、更新データを前記複
数のノードの少なくとも2つにあるディスクドライブ手
段に重複して格納するように動作するマルチプロセッサ
システムにおける、冗長ディスクドライブアレイに対す
る同期方法において、 データセグメントに更新データを書き込むことを要求す
るコマンドに応答して前記更新データにより更新される
べき前記データセグメントの識別子のリストを第一のノ
ードのNVRAM内に作る(第一の)ステップと、 前記データセグメントのコピーを有するミラーノードで
ある第二のノードに前記第一のノードから前記更新デー
タを送る(第二の)ステップと、 前記更新データが前記第一のノード内のディスクドライ
ブ手段に書き込まれ、かつ前記第二のノードが前記更新
データを記録したという信号を前記第一ノードが受信し
た後に初めて前記第一のノードのNVRAM内の前記デ
ータセグメントの識別子のリストを除去する(第三の)
ステップと、 パワーアップの際に、各ノードのNVRAM中にリスト
されたデータセグメントの識別子が含まれるかどうかを
決定するために各ノードにNVRAMを走査させる(第
四の)ステップと、 前記第一のノードのNVRAM内にリストされたデータ
セグメントの識別子によって示されるデータセグメント
について、前記第二のノード内の対応するデータセグメ
ントを、前記更新データにより更新する(第五の)ステ
ップを含むことを特徴とする方法。 - 【請求項2】前記データセグメントがブロック識別子を
持つデータブロックであり、前記ブロック識別子が前記
NVRAM内に前記データセグメントが更新のプロセス
の最中である場合にリストされることを特徴とする請求
項1の方法。 - 【請求項3】前記応答する(第一の)ステップが、前記
データセグメントを前記第一のノードのNVRAM内に
リストするのに加えて、前記NVRAM内に前記更新デ
ータをリストするステップを含むことを特徴とする請求
項1の方法。 - 【請求項4】前記削除する(第三の)ステップが前記第
二のノードが前記更新データをそのディスクドライブ手
段に書き込んだ後に初めて起こることを特徴とする請求
項1の方法。 - 【請求項5】複数の実質的に同一の構成のノードが交換
ネットワークを通じて相互接続され、各ノードがディス
クドライブ手段、不揮発性ランダムアクセスメモリ(N
VRAM)及びプロセッサを有し、少なくとも1つのノ
ードにあるディスクドライブ手段に更新データを格納
し、少なくとも他の1つのパリティノードにあるディス
クドライブ手段に更新データのパリティデータを格納す
るように動作するマルチプロセッサシステムにおける、
冗長ディスクドライブアレイに対する同期方法におい
て、 第一のノード内に格納されたデータセグメント内の古い
データと置換するために新しいデータを書き込むという
コマンドに応答して、前記新しいデータと、書き込み状
態指標と、前記第一のノードからの古いデータ、前記パ
リティノードからの古いパリティ及び前記新しいデータ
に基づいて計算された新しいパリティのコピーとから成
るエントリを対応するパリティノード内のNVRAM内
に格納するステップと、 前記新しいデータを前記第一のノードにそのノード内に
格納されるように伝送し、正常に格納されたことを確認
する信号の受信に応答して、前記パリティノードにおい
て前記状態指標をリセットするステップと、 前記パリティノードが、パワーアップの際に、そのNV
RAMを前記エントリが存在しないかどうか走査し、リ
セットされていない状態指標を持つ前記エントリが発見
された場合、前記新しいデータを前記第一のノードに伝
送するステップを含むことを特徴とする方法。 - 【請求項6】前記の状態指標がセットされた状態を示
し、前記エントリがセットされた場合新たなパリティが
前記パリティノードのディスクドライブ手段内のディス
クにまだ書き込まれてないことを示すもう一つの状態指
標を含むことを特徴とする請求項5の方法。 - 【請求項7】前記のデータセグメントがデータのブロッ
クであり、前記のエントリが前記データのブロックの識
別子を含むことを特徴とする請求項6の方法。 - 【請求項8】前記パリティノードが、パワーアップに当
ってそのNVRAMを走査するとき、最初に前記第一の
ノード内の前記データのブロックに対する最も古い受信
された新たなデータを持つエントリにアクセスし、次に
時間の順番に次のエントリを処理するように進行するこ
とを特徴とする請求項7の方法。 - 【請求項9】パリティノードが、前記第一のノードによ
って新しいデータが正常に格納されたという通知を受信
したとき前記状態指標をリセットすることを特徴とする
請求項8の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92421992A | 1992-08-03 | 1992-08-03 | |
US924219 | 1992-08-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06202813A JPH06202813A (ja) | 1994-07-22 |
JP2888401B2 true JP2888401B2 (ja) | 1999-05-10 |
Family
ID=25449905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5159626A Expired - Fee Related JP2888401B2 (ja) | 1992-08-03 | 1993-06-29 | 冗長ディスクドライブアレイに対する同期方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5488731A (ja) |
JP (1) | JP2888401B2 (ja) |
Families Citing this family (153)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1031928B1 (en) * | 1993-06-04 | 2005-05-18 | Network Appliance, Inc. | A method for providing parity in a raid sub-system using non-volatile memory |
US5764903A (en) * | 1994-09-26 | 1998-06-09 | Acer America Corporation | High availability network disk mirroring system |
US5682471A (en) * | 1994-10-06 | 1997-10-28 | Billings; Thomas Neal | System for transparently storing inputs to non-volatile storage and automatically re-entering them to reconstruct work if volatile memory is lost |
WO1997001139A1 (en) * | 1995-06-23 | 1997-01-09 | Elonex Plc | Disk array controller with enhanced synchronous write |
US5594863A (en) * | 1995-06-26 | 1997-01-14 | Novell, Inc. | Method and apparatus for network file recovery |
JPH0934805A (ja) * | 1995-07-20 | 1997-02-07 | Toshiba Corp | 半導体ディスク装置 |
US5774643A (en) * | 1995-10-13 | 1998-06-30 | Digital Equipment Corporation | Enhanced raid write hole protection and recovery |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5862312A (en) * | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US6347365B1 (en) | 1996-08-23 | 2002-02-12 | Emc Corporation | Data storage system having a[n] memory responsive to clock pulses produced on a bus and clock pulses produced by an internal clock |
US6567903B1 (en) * | 1996-08-23 | 2003-05-20 | Emc Corporation | Data storage system having master/slave addressable memories |
US6041423A (en) * | 1996-11-08 | 2000-03-21 | Oracle Corporation | Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment |
US5757818A (en) * | 1996-11-26 | 1998-05-26 | Intel Corporation | Method and apparatus for scan out testing of integrated circuits with reduced test circuit area |
US6029231A (en) * | 1996-12-03 | 2000-02-22 | Emc Corporation | Retrieval of data stored on redundant disks across a network using remote procedure calls |
US5859965A (en) * | 1996-12-17 | 1999-01-12 | Sun Microsystems, Inc. | Method and apparatus for maintaining data consistency in raid |
US5940826A (en) * | 1997-01-07 | 1999-08-17 | Unisys Corporation | Dual XPCS for disaster recovery in multi-host computer complexes |
US5949970A (en) * | 1997-01-07 | 1999-09-07 | Unisys Corporation | Dual XPCS for disaster recovery |
US6000020A (en) * | 1997-04-01 | 1999-12-07 | Gadzoox Networks, Inc. | Hierarchical storage management from a mirrored file system on a storage network segmented by a bridge |
US6381674B2 (en) * | 1997-09-30 | 2002-04-30 | Lsi Logic Corporation | Method and apparatus for providing centralized intelligent cache between multiple data controlling elements |
JP3618529B2 (ja) | 1997-11-04 | 2005-02-09 | 富士通株式会社 | ディスクアレイ装置 |
US6513097B1 (en) | 1999-03-03 | 2003-01-28 | International Business Machines Corporation | Method and system for maintaining information about modified data in cache in a storage system for use during a system failure |
US6502174B1 (en) * | 1999-03-03 | 2002-12-31 | International Business Machines Corporation | Method and system for managing meta data |
US6438661B1 (en) | 1999-03-03 | 2002-08-20 | International Business Machines Corporation | Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache |
US6401215B1 (en) * | 1999-06-03 | 2002-06-04 | International Business Machines Corporation | Resynchronization of mirrored logical data volumes subsequent to a failure in data processor storage systems with access to physical volume from multi-initiators at a plurality of nodes |
US6539462B1 (en) | 1999-07-12 | 2003-03-25 | Hitachi Data Systems Corporation | Remote data copy using a prospective suspend command |
US7509420B2 (en) * | 2000-02-18 | 2009-03-24 | Emc Corporation | System and method for intelligent, globally distributed network storage |
US6826711B2 (en) * | 2000-02-18 | 2004-11-30 | Avamar Technologies, Inc. | System and method for data protection with multidimensional parity |
US6636984B1 (en) * | 2000-06-15 | 2003-10-21 | International Business Machines Corporation | System and method for recovering data from mirror drives following system crash |
US20030084397A1 (en) * | 2001-10-31 | 2003-05-01 | Exanet Co. | Apparatus and method for a distributed raid |
US6981079B2 (en) | 2002-03-21 | 2005-12-27 | International Business Machines Corporation | Critical datapath error handling in a multiprocessor architecture |
US20030191978A1 (en) * | 2002-04-04 | 2003-10-09 | International Business Machines Corporation | Multiple fault location in a series of devices |
US6912621B2 (en) | 2002-04-17 | 2005-06-28 | International Business Machines Corporation | Method and apparatus for updating data in mass storage subsystem using emulated shared memory |
US6920587B2 (en) * | 2002-04-25 | 2005-07-19 | International Business Machines Corporation | Handling multiple operating system capabilities in a logical partition data processing system |
EP1361516A3 (en) * | 2002-04-30 | 2011-05-18 | Hitachi, Ltd. | Method and system for backing up power supply of disk array device |
AU2003219407A1 (en) * | 2002-05-14 | 2003-11-11 | Koninklijke Philips Electronics N.V. | Hard disk drive system, method of using such a system and apparatus |
US7069465B2 (en) * | 2002-07-26 | 2006-06-27 | International Business Machines Corporation | Method and apparatus for reliable failover involving incomplete raid disk writes in a clustering system |
US8250202B2 (en) * | 2003-01-04 | 2012-08-21 | International Business Machines Corporation | Distributed notification and action mechanism for mirroring-related events |
US7085886B2 (en) * | 2003-05-28 | 2006-08-01 | International Buisness Machines Corporation | Autonomic power loss recovery for a multi-cluster storage sub-system |
US7305529B1 (en) * | 2003-12-19 | 2007-12-04 | Symantec Corporation | Cooperative data replication |
US7516354B2 (en) * | 2004-08-25 | 2009-04-07 | International Business Machines Corporation | Storing parity information for data recovery |
US7337357B2 (en) * | 2004-11-16 | 2008-02-26 | International Business Machines Corporation | Apparatus, system, and method for limiting failures in redundant signals |
US20060123312A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
US7290199B2 (en) * | 2004-11-19 | 2007-10-30 | International Business Machines Corporation | Method and system for improved buffer utilization for disk array parity updates |
US20060123271A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR |
US7392428B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
US7730257B2 (en) * | 2004-12-16 | 2010-06-01 | Broadcom Corporation | Method and computer program product to increase I/O write performance in a redundant array |
US7779294B2 (en) * | 2005-04-15 | 2010-08-17 | Intel Corporation | Power-safe disk storage apparatus, systems, and methods |
US7774542B2 (en) * | 2005-07-06 | 2010-08-10 | Ji Zhang | System and method for adaptive operation of storage capacities of RAID systems |
US20100131696A1 (en) * | 2008-11-21 | 2010-05-27 | Pratt Thomas L | System and Method for Information Handling System Data Redundancy |
JP5409159B2 (ja) * | 2009-07-23 | 2014-02-05 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法及びプログラム |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US8972478B1 (en) | 2012-05-23 | 2015-03-03 | Netapp, Inc. | Using append only log format in data storage cluster with distributed zones for determining parity of reliability groups |
CN104508644B (zh) | 2012-10-30 | 2017-12-08 | 慧与发展有限责任合伙企业 | 智能存储器缓冲器 |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
WO2016051512A1 (ja) | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
US10157129B2 (en) | 2014-12-17 | 2018-12-18 | International Business Machines Corporation | Mirroring a cache having a modified cache state |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10528501B2 (en) * | 2017-05-18 | 2020-01-07 | Linear Technology Holding Llc | Coordinated event sequencing |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10992967B2 (en) * | 2017-12-05 | 2021-04-27 | Sony Interactive Entertainment LLC | Ultra high-speed low-latency network storage |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11334455B2 (en) * | 2019-09-28 | 2022-05-17 | Atlassian Pty Ltd. | Systems and methods for repairing a data store of a mirror node |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
UST932005I4 (en) * | 1973-12-28 | 1975-03-04 | Detection op possibly erroneous segments following failures in primary storage | |
JPS605024B2 (ja) * | 1979-09-04 | 1985-02-07 | ファナック株式会社 | 情報処理方式 |
US4419725A (en) * | 1980-11-14 | 1983-12-06 | Sperry Corporation | Cache/disk subsystem with tagalong copy |
JPS5856192B2 (ja) * | 1980-11-28 | 1983-12-13 | ファナック株式会社 | バブルメモリにおけるデ−タ書き替え方式 |
US4410942A (en) * | 1981-03-06 | 1983-10-18 | International Business Machines Corporation | Synchronizing buffered peripheral subsystems to host operations |
US4530054A (en) * | 1982-03-03 | 1985-07-16 | Sperry Corporation | Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory |
JPS59160899A (ja) * | 1982-12-09 | 1984-09-11 | セコイア・システムス・インコ−ポレ−テツド | メモリ−・バツク・アツプ・システム |
JPS59142799A (ja) * | 1983-02-04 | 1984-08-16 | Hitachi Ltd | バツクアツプ用蓄電装置付二重化記憶装置 |
US4697266A (en) * | 1983-03-14 | 1987-09-29 | Unisys Corp. | Asynchronous checkpointing system for error recovery |
US5043871A (en) * | 1986-03-26 | 1991-08-27 | Hitachi, Ltd. | Method and apparatus for database update/recovery |
US4761785B1 (en) * | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
US4942579A (en) * | 1987-06-02 | 1990-07-17 | Cab-Tek, Inc. | High-speed, high-capacity, fault-tolerant error-correcting storage system |
US5051887A (en) * | 1987-08-25 | 1991-09-24 | International Business Machines Corporation | Maintaining duplex-paired storage devices during gap processing using of a dual copy function |
JPH0616258B2 (ja) * | 1987-11-02 | 1994-03-02 | 株式会社日立製作所 | 二重化デイスク制御方法 |
WO1990006550A1 (en) * | 1988-12-08 | 1990-06-14 | Cray Research, Inc. | Single disk emulation for asynchronous disk array |
US5195100A (en) * | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
US5233618A (en) * | 1990-03-02 | 1993-08-03 | Micro Technology, Inc. | Data correcting applicable to redundant arrays of independent disks |
JPH0832210B2 (ja) * | 1990-04-24 | 1996-03-29 | 株式会社クボタ | 苗植付装置 |
US5379417A (en) * | 1991-11-25 | 1995-01-03 | Tandem Computers Incorporated | System and method for ensuring write data integrity in a redundant array data storage system |
US5313626A (en) * | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
JP3058743B2 (ja) * | 1992-01-21 | 2000-07-04 | 株式会社日立製作所 | ディスクアレイ制御装置 |
US5305326A (en) * | 1992-03-06 | 1994-04-19 | Data General Corporation | High availability disk arrays |
-
1993
- 1993-06-29 JP JP5159626A patent/JP2888401B2/ja not_active Expired - Fee Related
-
1994
- 1994-12-08 US US08/352,428 patent/US5488731A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5488731A (en) | 1996-01-30 |
JPH06202813A (ja) | 1994-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2888401B2 (ja) | 冗長ディスクドライブアレイに対する同期方法 | |
US5418921A (en) | Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes | |
US6970987B1 (en) | Method for storing data in a geographically-diverse data-storing system providing cross-site redundancy | |
US5379417A (en) | System and method for ensuring write data integrity in a redundant array data storage system | |
US5440727A (en) | Asynchronous replica management in shared nothing architectures | |
EP0462917B1 (en) | Method and apparatus for recovering parity protected data | |
US8286029B2 (en) | Systems and methods for managing unavailable storage devices | |
US5617530A (en) | Storage device array architecture with copyback cache | |
US5613059A (en) | On-line restoration of redundancy information in a redundant array system | |
JP3283530B2 (ja) | ディスク・アレイにおいてパリティ保全性を維持するための妥当性検査システム | |
US7076606B2 (en) | Accelerated RAID with rewind capability | |
US6912669B2 (en) | Method and apparatus for maintaining cache coherency in a storage system | |
US7610318B2 (en) | Autonomic infrastructure enablement for point in time copy consistency | |
US5819109A (en) | System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete | |
US6529995B1 (en) | Method and apparatus for maintaining and restoring mapping table entries and data in a raid system | |
CA2574502C (en) | Storing parity information for data recovery | |
EP0802485B1 (en) | Host-based RAID-5 and NV-RAM integration and method therefor | |
US20040193816A1 (en) | Reading virtual ordered writes at a remote storage device | |
JPH08305500A (ja) | 記憶制御装置、それを含むデータ記憶システムおよび二重ペア抑止方法 | |
JP2003507791A (ja) | 遠隔ミラーリングシステム、装置及び方法 | |
JPH07239799A (ja) | 遠隔データ・シャドーイングを提供する方法および遠隔データ二重化システム | |
GB2369206A (en) | Excluding last written segments while rebuilding meta-data in a data storage system | |
CN113326006B (zh) | 一种基于纠删码的分布式块存储系统 | |
GB2343265A (en) | Data storage array rebuild | |
JP3788822B2 (ja) | コンピュータシステムおよびそのシステムにおける障害回復方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |