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
Application number
JP5159626A
Other languages
English (en)
Other versions
JPH06202813A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06202813A publication Critical patent/JPH06202813A/ja
Application granted granted Critical
Publication of JP2888401B2 publication Critical patent/JP2888401B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/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/2082Data synchronisation
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, 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 )ディスクドライブ上へのデータの格納、より詳細に
は、停電の後の冗長ディスクドライブ間のデータ同期を
確保するための方法に関する。
【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)はデー
タの各ブロックを少なくとも二つの別個のディスクドラ
イブ上に書き込むことによって信頼性を向上させる。一
つのドライブが故障した場合でも、同一データを含む少
なくとも一つの他のドライブが存在し、システムは残り
のドライブにて実行を継続でき、或は複製データを交換
ドライブにコピーすることによって再構成することがで
きる。
【0003】パリティディクス(parity disk )システ
ムは複数のディスクを“パリティグループ(parity gro
up)”にグループ化することによって冗長を提供する。
ディスクドライブの一つを除く全ては通常のディスクブ
ロックを含み、一方、一つの残りのディスクドライブ上
のブロックはその他のドライブ上の対応するブロック内
のデータのビットワイズ(bitwise )の排他的OR総和
(モジュロ2)を含むように書き込まれる。そして、任
意の一つのドライブが故障した場合、そのデータは残り
のドライブ上のデータの排他的OR動作によって再構成
される。更新は新たなデータをデータディスクドライブ
上の適当な位置内に書き込み、排他的OR機能を使用し
て古いデータと新しいデータの差をパリティディスクド
ライブ上の対応するブロックに加えることによって達成
される。
【0004】このようなミラー及びパリティシステムに
おいては、停電(あるいは電源故障)及びその後のパワ
ーアップ(電源投入)が起こったとき、同期の問題が発
生する。データは同一データが冗長ディスク上に存在す
る場合に冗長ディスクを横断して“同期されている(sy
nchronized)”といわれる。データは、同一であるべき
データが同一でない場合“同期されてない(unsynchron
ized)”といわれる。パワーアップにおける問題は、冗
長ディスクを横断してどのデータが同期されており、ど
のデータが同期されてないかを決定することである。
【0005】ミラーリング及びパリティシステムを採用
するエラー修正技法は、従って、データ及びエラー修正
コードが矛盾なく一貫して書き込まれているときにのみ
正しく機能する。特に、システムの停電の後に、データ
及びデータを保護するエラー修正コードに不一致があっ
てはならない。最低でも、システムが効率的に不一致を
発見し、修正できる能力が要求される。
【0006】全てのデータが中央の共有コントローラに
よって書き込まれ、かつ、このコントローラがパワーが
失われる警告を十分に早く得る場合は、同期は停電の前
にこのコントローラによって確保できる。但し、このタ
イプの共有コントローラは単一ポイントの故障を起こす
傾向を持ち、これによって、システムの全体としての信
頼性が制約される。これらはまた大きなグループの作動
ディスク間に置かれる共有待機交換ドライブの柔軟性に
制約を与える。
【0007】これら問題は、複数のディスクが、典型的
には、通信ネットワークによって接続された個別の処理
ノード上に駐在する個別のコントローラによって非同期
的に書き込まれるようなアーキテクチュアにおいては一
層複雑になる。このようなディスクがトランザクション
処理システムのために使用されるような場合、従来技術
においては、システムの停電に続いて様々なディスクの
再同期ができるように高レベルのソフトウエアトランザ
クションログが使用できるようになっている。
【0008】高速ランダムアクセスメモリ(High speed
random access memories 、RAMs)がディスクシス
テムの性能を向上させるために使用されている。これら
バッファ或はキャッシュは、通常、ディスクドライブを
制御する中央プロセッサの主メモリから割り当てられる
か、或はディクスコントローラ回路内に含まれこれに属
する。いずれのケースにおいても、これらバッファはデ
ィスクから頻繁にアクセスされるデータを繰り返して再
読み出しする必要性を排除する。データは最初にアクセ
スされたときこの高速バッファ内に置かれ、ここに可能
な限り長く保持される。データが代替されると、高速バ
ッファが変更され、システムが全体として停電したとき
データが失われる可能性を回避するために変更されたデ
ータが直ちにディスク内に書き込まれる。これらのタイ
プのデータキャッシュは“ライトスルー(write throug
h )”キャッシュとして知られている。
【0009】それらの内容がシステムが停電した場合で
も保持されるようなランダムアクセスメモリが現在存在
する。ある半導体メモリはバッテリバックアップ或は他
の信頼できる電源を使用することにより不揮発性メモリ
として使用することができる。別の半導体メモリはパワ
ーが除去された時でも本質的に安定であり、停電が起き
てもバッテリによるバックアップなしに格納されたデー
タを保持する。用語“不揮発性(non-volatile)RA
M”(NVRAM)は、ここでは全てのこのようなメモ
リデバイスを指すために使用される。例えば、IBM3
990ディスクコントローラはデータをディスクに書き
込む前に長期間キャッシュ(高速格納)するためにNV
RAMを使用する。システムが停電した後再開された場
合、NVRAMキャッシュ内の情報はディスク自体の上
の対応するデータよりも一層新しいものであると見なさ
れる。
【0010】従来技術の特許にはパリティ保護ディスク
アレイ及び他の冗長ディスク構成に関する複数の開示が
含まれる。クラーケ(Clarke)らに付与された合衆国特
許第4,761,785号はパリティ保護ディスクアレ
イの概念及び関連する最適化について開示する。クラー
ケらはまたディスク上のデータ“見出し(headers )”
内に格納されたバージョン情報がデータと関連するパリ
ティブロックとの間のバージョンの不一致の検出をサポ
ートする技法について説明する。但し、停電及びそれに
続くパワーアップがあった場合のこれらの不一致の修正
については考慮されてない。スティフラ(Stiffler)ら
に交付された合衆国特許第4,654,819号におい
ては、フォールトトレラント(fault tolerant)コンピ
ュータシステムの実現のために冗長RAMが使用され
る。主メモリに対する更新データが緩衝され、変更デー
タが専用のキャッシュユニット内にプログラム内容がス
イッチされるまで或はキャッシュが一杯になるまで格納
される。いずれかが発生した時点で、二つのフェーズか
ら成る更新プロトコルを使用して、最初に第一の主メモ
リが、そして次に第二の主メモリが更新されるが、こう
して、いずれかのメモリが故障した場合に動作を再開或
は破棄するための十分な情報が常に残される。
【0011】グッドランダ(Goodlander)らに付与され
た合衆国特許第4,942,579号は複数のディスク
ドライブを横断してのストライピング(striping)の様
々なRAID構成及び一つのこのようなドライブが故障
した場合のデータ再構成のための技法について開示す
る。グッドランダらによって説明されるアーキテクチュ
アはキャッシング及び高速書き込みのために単一のバッ
テリにてバックアップされた“キャッシュメモリ(cach
e memory)”を使用する。但し、“キャッシュ”メモリ
が故障したときこれをバックアップするための準備は示
されない。
【0012】ベーガ(Berger)らに交付された合衆国特
許第5,051,887号においては、ミラーリング
(mirroring )機能を含むメインフレームディスクコン
トローラが開示される。NVRAMがここでは高速書き
込み及び同期機構として使用される。ベーガらのシステ
ムは高速書き込みバッファとしての単一NVRAMを第
二の揮発性キャッシュと共に使用する。このシステムは
高速書き込みが完了したことを通知する前にデータがN
VRAM及びキャッシュ或はNVRAM及び一つのディ
スク内に存在することを保証する。これはパワーが失わ
れた場合にキャッシュ或はNVRAMが損失することに
対して保護し、一方で、システムが動作して回復を提供
できるようにする。但し、ベーガらのシステムは停電の
際にNVRAM或はドライブが失われた場合に、回復が
いかにして可能であるかについては説明しない。さら
に、ベーガらは様々なRAID装置が停電した場合にデ
ータの同期をいかに提供するかについては説明しない。
【0013】ミヤザキ(Miyazaki)らに交付された合衆
国特許第4,603,406号は各々が個別のバッテリ
バックアップを持ち、通常、同一のデータを格納する二
つのメモリの再同期について開示する。停電の際の任意
の時点でバッテリバックアップが失われた場合は、対応
するメモリの内容は信頼できるものではない。このた
め、システムが後にメモリを再獲得した場合、どちらの
メモリがそれらの内容を失ったかを知らせるための手段
が提供される。
【0014】ハムストラ(Hamstra )らに交付された合
衆国特許第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号において見られる。
【0016】
【発明が解決しようとする課題】従って、本発明の一つ
の目的は、停電した場合の改良されたデータ同期の方法
を持つディスクドライブの冗長構成を提供することにあ
る。
【0017】本発明のもう一つの目的は停電の際のドラ
イブ或はキャッシュメモリの損失が検出されそれから回
復できるディスクドライブの冗長アレイに対するデータ
同期のための改良された方法を提供することにある。
【0018】
【課題を解決するための手段及び作用】マルチプロセッ
サシステムは交換ネットワークを通じて相互接続された
複数の実質的に同一のノードを含み、各ノードはディス
クドライブ、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)の所
に位置することも、或はノード構造を通じて分散させる
こともできる。
【0020】各ノード12は交換ネットワーク14を介
して制御ノードにアクセスが可能でなければならない。
こうして、ディスクブロックの読み出し或は書き込みを
試みる全ての制御ノードはそのブロックを格納するパリ
ティグループ内の全てのノードと直接コンタクトを持た
なければならない。別の方法としては、ディスクブロッ
クの読み出し或は書き込みを試みる制御ノードはそのパ
リティグループ内のディスクノードの一つとコンタクト
を持つようにされ、このパリティグループ内のノードが
完全に相互接続される。
【0021】以下において明らかになるように、本発明
は特定のノードが故障した場合、或は電源を投入した
後、不意の停電の場合のノード間でのデータ同期の確保
を目的とする。ディスク、その制御プロセッサ、或はそ
の関連する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)。受信されない場合は、確認のテ
ストを継続し、或は、別の方法として、データ伝送を再
度試みる。
【0023】確認を受信すると、ノードAはそのディス
クドライブとノードBの所のディスクドライブの両方が
更新されたデータを含むことを知る。このような状況下
においては、ノードAはそのNVRAM22からブロッ
クIDエントリを除去し(ボックス46)、次に書き込
み要求の開始者に書き込み動作が完結したことを通知す
る(ボックス48)。任意の継続中の書き込みに対して
これら2つのノードの一つのみがブロック識別子を格納
することを要求されることに注意する。全てのドライブ
がディスクの変更をコミット(commit)するまで、各更
新データがNVRAMの少なくとも一つ内にログされる
限り、これらの識別子の幾つかが片方のノード内に、そ
して別の幾つかの識別子がもう一方のノード内にログさ
れる。
【0024】図2の手続きは全ての同期外れデータブロ
ックが少なくとも一つの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が同時に損失した
場合は、データの一つのコピーのみが生き残り、解決さ
れるべき同期問題は存在しない。
【0026】NVRAM22のサイズは任意の時間にお
いてアレイ内で進行可能な更新の数を決定する。NVR
AMが一つのエントリのみしか持つことができない場合
は、一つの更新のみが継続中となることができ、そのブ
ロックの全てのコピーは任意の他の書き込みが開始され
る前に安全にコミット(収容)されなければならない。
典型的には、NVRAMは複数のブロック識別子のため
の余地を持ち、識別子の数は同時に処理することができ
る書き込みの数を示す。
【0027】図2及び3に示されるシステム動作はブロ
ック識別子を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個のデータノードの幾らか或
は全てから直接に読み出される。
【0029】データ更新は、結果として、N−1個のデ
ータディスクドライブの適当な一つ上のデータブロック
を変更させ、またパリティディスクドライブ上のパリテ
ィブロックを更新する。このような事態が発生した場
合、パリティディスク上の新たなパリティ値(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)。
【0031】パリティノードは次にそのNVRAMを
“タプル(組 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がリセットされると完全に除去される。
【0033】上からわかるように、UNSYNCHED インジケ
ータ及びNDは、新たなデータがデータノードの所に安
全にコミットされるまでパリティノードの所に保持され
なければならない。これとの関連で、ボックス70内に
示されるように、パリティノードはNDをデータノード
に書き込みコマンドにて送り、データノードはNDを格
納する(ボックス71)。次に、パリティノードはNP
をそのディスクドライブに書き込み、書き込みが成功す
ると、NP NOT WRITTENをゼロにリセットする(ボックス
72)。
【0034】データノードがNDをそのディスクドライ
ブ或はNVRAMに書き込みを終えたという応答をパリ
ティノードがデータノードから受信すると(図5のボッ
クス74)、パリティノードはそのUNSYNCHED フラグを
リセットすることができる(ボックス74及び78)。
データノードの所での書き込みが成功したという応答が
受信されない場合は、パリティノードはNDの伝送を再
度試みる(ボックス76)。タプル内のUNSYNCHED エン
トリが偽にいったんリセットされると、ボックス80に
示されるようにタプル全体をリセットすることができ
る。
【0035】オプションとして、NP及びブロックID
を将来の読み出し及び更新のためのキャッシュとして機
能するようにパリティノードのNVRAM内に無期限に
保持することもできるが、この場合、その後の読み出し
はディスクにアクセスすることを必要とすることなくN
VRAMから満たすことができる。データはこの目的の
ためにNVRAM内に十分な空間が得られる限り保持さ
れる。同様に、NDもデータノードの所のNVRAM内
にスペースが空いている限り保持することができる。
【0036】実際に使用する場合は、パリティに基づく
ディスクアレイの多くはパリティと通常のデータを全て
のディスクドライブ(RAID−5)上に混合する。こ
のようなシステムにおいては、ある与えられたドライブ
はデータをあるブロックに対して格納し、パリティを他
のブロックに対して格納する。本発明によって提供され
るNVRAMシステムはブロックバイブロックベース
(block by block basis)にて更新を行なうが、各ノー
ドは更新されるべき特定のブロックに従ってデータノー
ドの機能を果たしたり、或はパリティノードの機能を果
たしたりする。各ノードの所のNVRAMはパリティブ
ロックに対する同期ログ(つまり、タプルリストの維
持)、及び通常のデータブロックに対する通常のライト
ビハインドキャッシュ(write-behind cache)の二重の
機能を果たす。
【0037】図6の説明に移り、ここには、停電の後の
手順が記述される。電源投入(ボックス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からのまだコミットされてない新たなパリ
ティ値の最終バージョンを書き込み、そのリストから対
応するタプルを除去し、或はこれらタプルの幾らか或は
全てをキャッシュとして限定のない期間だけ保持する。
【0039】一般に、システムはパワーが回復された時
点で全ての未決の更新(つまり、パワー損失の前にそれ
に対する受取り確認が制御ノードに送られてない更新)
が完了することを保証する必要はなく、一貫性が維持さ
れることのみを要求される。生き残ったNVRAM内に
ログされた更新がパワーの回復の後に完了されることが
保証される。但し、パリティノード、そのNVRAM、
或はそのディスクドライブが停電に対して生き残ること
を失敗するような幾らかの可能性がある。このようなノ
ードへの更新データの配置(disposition )は対応する
データノードの進行度合にのみ依存する。データノード
がその更新データを既にキャッシュ或はコミットしてい
る場合は、更新は完了したものと見なされる。そうでな
い場合は、その更新データは失われる。いずれの場合
も、不一致の問題は発生しない。パリティノードが失わ
れるために、データノードは、定義上、それ自体の一貫
性を持つ。新たな或は代用のパリティディスクがそのブ
ロックの各々をそれが保護する全てのデータブロックの
排他的OR総和であると初期化することによって構成さ
れる。失われたデータディスクは従来の“RAID”方
法によって、つまり、生き残ったN−2個のデータブロ
ックの値を生き残ったパリティブロックと、ディスク或
はNVRAMのいずれか適当な方からの値を使用して互
いに排他的OR処理することによって再構成される。
【0040】上記手続きの特徴は、停電の際にディスク
ドライブが崩壊或は損失した場合、パリティノード内の
崩壊したディスクドライブからの失われたデータを再構
成するために必要とされる十分なデータが存在するとい
うことである。同様に、パリティノードが失敗した場合
でも、パリティを生き残ったディスクドライブから再構
成することができる。
【0041】上記説明は単に本発明を解説することが目
的であることに注意すべきである。当業者においては、
本発明から逸脱することなく様々な代替及び修正が可能
である。従って、本発明は特許請求の範囲に入るこれら
全ての代替、修正及びバリエーションを包含するもので
ある。
【0042】
【発明の効果】以上説明したように、第一及び第二の発
明の構成によれば、停電(あるいは電源故障)等によっ
てディスクドライブやキャッシュメモリから一部のデー
タが失われた場合であっても、生き残ったディスクドラ
イブから失われたデータを再構成し、故障から回復する
ことが可能となる。
【図面の簡単な説明】
【図1】本発明を組み込むシステムの高レベルブロック
図である。
【図2】ミラー冗長データ分散のケースの場合に図1の
システムが従う手続きを示す流れ図である。
【図3】ミラーデータ冗長構成においてパワーアップの
後に図1のシステムが従う手続きの流れ図である。
【図4】冗長データのRAID分散が使用されたときに
図1のシステムが従う手続きを図解する。
【図5】冗長データのRAID分散が使用されたときに
図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)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の実質的に同一の構成のノードが交換
    ネットワークを通じて相互接続され、各ノードがディス
    クドライブ手段、不揮発性ランダムアクセスメモリ(N
    VRAM)及びプロセッサを有し、更新データを前記複
    数のノードの少なくとも2つにあるディスクドライブ手
    段に重複して格納するように動作するマルチプロセッサ
    システムにおける、冗長ディスクドライブアレイに対す
    る同期方法において、 データセグメントに更新データを書き込むことを要求す
    るコマンドに応答して前記更新データにより更新される
    べき前記データセグメントの識別子のリストを第一のノ
    ードのNVRAM内に作る(第一の)ステップと、 前記データセグメントのコピーを有するミラーノードで
    ある第二のノードに前記第一のノードから前記更新デー
    タを送る(第二の)ステップと、 前記更新データが前記第一のノード内のディスクドライ
    ブ手段に書き込まれ、かつ前記第二のノードが前記更新
    データを記録したという信号を前記第一ノードが受信し
    た後に初めて前記第一のノードのNVRAM内の前記デ
    ータセグメントの識別子のリストを除去する(第三の)
    ステップと、 パワーアップの際に、各ノードのNVRAM中にリスト
    されたデータセグメントの識別子が含まれるかどうかを
    決定するために各ノードにNVRAMを走査させる(第
    四の)ステップと、 前記第一のノードのNVRAM内にリストされたデータ
    セグメントの識別子によって示されるデータセグメント
    について、前記第二のノード内の対応するデータセグメ
    ントを、前記更新データにより更新する(第五の)ステ
    ップを含むことを特徴とする方法。
  2. 【請求項2】前記データセグメントがブロック識別子を
    持つデータブロックであり、前記ブロック識別子が前記
    NVRAM内に前記データセグメントが更新のプロセス
    の最中である場合にリストされることを特徴とする請求
    項1の方法。
  3. 【請求項3】前記応答する(第一の)ステップが、前記
    データセグメントを前記第一のノードのNVRAM内に
    リストするのに加えて、前記NVRAM内に前記更新デ
    ータをリストするステップを含むことを特徴とする請求
    項1の方法。
  4. 【請求項4】前記削除する(第三の)ステップが前記第
    二のノードが前記更新データをそのディスクドライブ手
    段に書き込んだ後に初めて起こることを特徴とする請求
    項1の方法。
  5. 【請求項5】複数の実質的に同一の構成のノードが交換
    ネットワークを通じて相互接続され、各ノードがディス
    クドライブ手段、不揮発性ランダムアクセスメモリ(N
    VRAM)及びプロセッサを有し、少なくとも1つのノ
    ードにあるディスクドライブ手段に更新データを格納
    し、少なくとも他の1つのパリティノードにあるディス
    クドライブ手段に更新データのパリティデータを格納す
    るように動作するマルチプロセッサシステムにおける、
    冗長ディスクドライブアレイに対する同期方法におい
    て、 第一のノード内に格納されたデータセグメント内の古い
    データと置換するために新しいデータを書き込むという
    コマンドに応答して、前記新しいデータと、書き込み状
    態指標と、前記第一のノードからの古いデータ、前記パ
    リティノードからの古いパリティ及び前記新しいデータ
    に基づいて計算された新しいパリティのコピーとから成
    るエントリを対応するパリティノード内のNVRAM内
    に格納するステップと、 前記新しいデータを前記第一のノードにそのノード内に
    格納されるように伝送し、正常に格納されたことを確認
    する信号の受信に応答して、前記パリティノードにおい
    て前記状態指標をリセットするステップと、 前記パリティノードが、パワーアップの際に、そのNV
    RAMを前記エントリが存在しないかどうか走査し、リ
    セットされていない状態指標を持つ前記エントリが発見
    された場合、前記新しいデータを前記第一のノードに伝
    送するステップを含むことを特徴とする方法。
  6. 【請求項6】前記の状態指標がセットされた状態を示
    し、前記エントリがセットされた場合新たなパリティが
    前記パリティノードのディスクドライブ手段内のディス
    クにまだ書き込まれてないことを示すもう一つの状態指
    標を含むことを特徴とする請求項5の方法。
  7. 【請求項7】前記のデータセグメントがデータのブロッ
    クであり、前記のエントリが前記データのブロックの識
    別子を含むことを特徴とする請求項6の方法。
  8. 【請求項8】前記パリティノードが、パワーアップに当
    ってそのNVRAMを走査するとき、最初に前記第一の
    ノード内の前記データのブロックに対する最も古い受信
    された新たなデータを持つエントリにアクセスし、次に
    時間の順番に次のエントリを処理するように進行するこ
    とを特徴とする請求項7の方法。
  9. 【請求項9】パリティノードが、前記第一のノードによ
    って新しいデータが正常に格納されたという通知を受信
    したとき前記状態指標をリセットすることを特徴とする
    請求項8の方法。
JP5159626A 1992-08-03 1993-06-29 冗長ディスクドライブアレイに対する同期方法 Expired - Fee Related JP2888401B2 (ja)

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 (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69434381T2 (de) * 1993-06-04 2006-01-19 Network Appliance, Inc., Sunnyvale Verfahren zur Paritätsdarstellung in einem Raid-Untersystem unter Verwendung eines nichtflüchtigen Speichers
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
US6567903B1 (en) * 1996-08-23 2003-05-20 Emc Corporation Data storage system having master/slave addressable memories
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
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
KR20050003451A (ko) * 2002-05-14 2005-01-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 하드 디스크 드라이브 시스템, 이러한 시스템을 사용하는방법 및 장치
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
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
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
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
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
EP2915049B1 (en) 2012-10-30 2020-03-04 Hewlett-Packard Enterprise Development LP Smart memory buffers
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
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
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
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
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring 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
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
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
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
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
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
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
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
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
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D 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
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
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
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
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
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
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
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
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
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
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
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Family Cites Families (23)

* Cited by examiner, † Cited by third party
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
US5233618A (en) * 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
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

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
US6480970B1 (en) Method of verifying data consistency between local and remote mirrored data storage systems
US5617530A (en) Storage device array architecture with copyback cache
US5613059A (en) On-line restoration of redundancy information in a redundant array system
JP3283530B2 (ja) ディスク・アレイにおいてパリティ保全性を維持するための妥当性検査システム
JP3149325B2 (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
EP0802485B1 (en) Host-based RAID-5 and NV-RAM integration and method therefor
JP2003507791A (ja) 遠隔ミラーリングシステム、装置及び方法
JPH07239799A (ja) 遠隔データ・シャドーイングを提供する方法および遠隔データ二重化システム
JPH03505643A (ja) 複数の記憶域クラス用のファイルシステム
CA2574502A1 (en) Storing parity information for data recovery
GB2369206A (en) Excluding last written segments while rebuilding meta-data in a data storage system
CN113326006B (zh) 一种基于纠删码的分布式块存储***
US7243190B2 (en) Apparatus and method to rebuild an NVS image using cache data

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees