JPH08511368A - 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 - Google Patents
不揮発性メモリを用いてraidサブシステムにパリティを形成する方法Info
- Publication number
- JPH08511368A JPH08511368A JP7502000A JP50200094A JPH08511368A JP H08511368 A JPH08511368 A JP H08511368A JP 7502000 A JP7502000 A JP 7502000A JP 50200094 A JP50200094 A JP 50200094A JP H08511368 A JPH08511368 A JP H08511368A
- Authority
- JP
- Japan
- Prior art keywords
- data
- parity
- disk
- value
- block
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title abstract description 31
- 238000012937 correction Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000011084 recovery Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 30
- 230000006378 damage Effects 0.000 description 25
- 238000003491 array Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 231100000716 Acceptable daily intake Toxicity 0.000 description 1
- 102100040351 FK506-binding protein 15 Human genes 0.000 description 1
- 101710132915 FK506-binding protein 15 Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/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
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
-
- 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/1061—Parity-single bit-RAID4, i.e. RAID 4 implementations
Abstract
(57)【要約】
本発明は、不揮発性ランダムアクセスメモリ(NV−RAM816)を用いた、ディスク(828)の配列のエラーを補正の方法に関する。不揮発性RAM(816)は、ディスクエラーからRAIDを回復する速度を早くするために使用されている。これは、パリティが不一致になるかもしれないすべてのブロックのリスト化により行われる。このブロックリストはRAID中のパリティブロック(820)の全体数よりもかなり少ない。RAID(828)中のパリティブロックの全体数は数十万の範囲である。不一致となるかもしれないパリティブロック数の情報によりリストで確認されるいくつかのブロックを固定でき、それにより時間を著しく節約できる。壊れたディスクを用いてRAIDに安全に書き込む方法は複雑である。この方法によれば、破壊することがあるデータは、潜在的な破壊動作が行われる前に、NV−RAM(816)にコピーされる。
Description
【発明の詳細な説明】
不揮発性メモリを用いてRAIDサブシステムにパリティを形成する方法
1.発明の属する分野
本発明はディスク配列のエラー補正の分野に関する。
2.背景技術
コンピュータ装置は、一般に、情報(例えばデータ及び/又はアプリケーショ
ンプログラム)を格納するために、ディスクドライブのような大量の二次的なメ
モリを必要とする。従来のコンピュータ装置は、大量のデータを永久的に保存す
るために、一つの“ウインチェスタ”型ハードディスクドライブをよく使用して
いる。コンピュータとそのプロセッサの性能が良くなるにしたがって、大容量の
ディスクドライブと高速のデータ移送性の要求が増してきた。それとともに、デ
ィスクドライブ性能の変更や改良が為されてきた。例えば、データ及びトラック
密度の増加、媒体改良、及び一つのディスクドライブ中の多数のヘッドとディス
クにより、高速のデータ移送性が可能になった。
二次的な保存のために一つのディスクドライブを使用することの問題は、非常
に大きい能力又は性能が必要とされる場合の、ドライブ交換の費用である。別の
問題は、一つのディスクドライブに余裕又はバックアップが不足することである
。一つのディスクドライブが損傷したり、動作不能になったり、又は交換される
と、そのシステムは停止する。
シングルディスクドライブシステムの問題を軽減し又は解消するために従来行
われてきたことは、並列に相互連結された複数のドライブを使用することである
。データは、並列につながれた多数のドライブから同時に又は複数のドライブの
シングルドライブから連続的にアクセスできる固まりに分解される。ディスクド
ライブを並列に連結したシステムの一つが、“高価でないディスクの冗長配列”
(RAID)として知られている。RAIDシステムは、大きなシングルディス
クド
ライブシステムと同一の保存能力を有し、しかも低価格である。同様に、高速デ
ータ移送性も配列の平行処理により達成される。
RAIDシステムにより、配列にディスクドライブを追加するにしたがって保
存能力が大きくなる。RAIDシステムのディスクが壊れた場合、これは全体シ
ステムを停止することなく交換できる。壊れたディスク上のデータはエラー補正
法を用いて回復できる。RAID配列
RAIDは、RAIDレベル0からRAIDレベル5と呼ばれる6つのディス
ク配列型を有する。それそれのRAIDレベルは利点と欠点を有する。本説明で
は、RAIDレベル4と5だけを説明する。しかしながら、それぞれのRAID
レベルの詳細な説明は、パターソン等によるA Case for Redundant Arrays of I
nexpensive Disk(RAID)、ACM SIGMOD Concerence,1988年6月、に記述さ
れている。この論文は本明細書中に組み込まれている。
RAIDシステムはディスク破壊を保護する技術となる。RAIDは多数の異
なるフォーマット(既述)を包含するが、共通の特徴は、一つのディスク(又は
複数のディスク)がディスク配列中に保存されたデータのパリティ情報を保存し
ているという点である。RAIDレベル4システムが全てのパリティ情報をシン
グルディスク上に保存するのに対して、RAIDレベル5システムは公知のパタ
ーンにしたがってRAID配列の全体にわたってパリティブロックを保存する。
ディスクが壊れた場合、RAIDサブシステムに保存されたパリティ情報により
、壊れたディスクから損失したデータを再び計算できる。
図1はRAIDレベル4を備えた従来のシステムを表したブロック図である。
このシステムは、コンピュータシステム又はホストコンピュータに通信チャンネ
ル130を介して接続されたN+1個のディスク112−118を備えている。
この実施例では、データは各ハードディスク上で4Kバイト(KB)のブロック
又はセグメントに保存される。ディスク112はシステム用のパリティディスク
で、ディスク114−118はデータディスク0からN−1である。RAIDレ
ベル4は、図1に示すように、配列中の全ディスクにデータブロックを分配する
ディスク“ストライピング”を使用する。ストライプは一群のデータブロックで
、そこでは各ブロックがN個の別々のディスク上に一つのパリティディスク上の
対応するパリティブロックと共に保存される。図1において、第1と第2のスト
ライプ140と142は点線で示してある。最初のストライプ140はパリティ
0ブロックとデータブロック0からN−1を備えている。図示する実施例では、
最初のデータブロック0が、N+1個のディスク配列のディスク114上に保存
される。第2のデータブロック1はディスク116に保存される。最後に、デー
タブロックN−1はディスク118に保存される。公知の方法を用いてストライ
プ140に対するパリティが計算され、それはディスク112上にパリティブロ
ック0として保存される。同様に、N個のデータブロックを有するストライプ1
42が、ディスク114にデータブロックN、ディスク116にデータブロック
N+1、さらにディスク118にデータブロック2N−1というように保存され
る。ストライプ142に対してパリティが計算され、それがパリティブロック1
としてディスク112に保存される。
図1に示すように、RAIDレベル4は、システム中の各ストライプに対して
エラー補正情報を含む特別のパリティディスクドライブを付加する。システム中
にエラーが発生した場合、RAID配列は配列中のすべてのドライブを使用して
システム中のエラーを補正しなければならない。RAIDレベル4は、データの
ごく一部を読み取る際に適正に動作する。しかし、RAIDレベル4配列は常に
、配列中にデータを書き込む際に専用のパリティドライブを使用する。
RAIDレベル5配列システムもまたパリティ情報を記録する。しかし、一つ
のドライブ上にすべてのパリティセクターを保持することはない。RAIDレベ
ル5は、N+1個のディスクのディスク配列中で利用可能なディスク上でパリテ
ィブロックの位置を回転させる。したがって、RAIDレベル5システムは、パ
リティデータをN+1個のディスクドライブ上で一度に1ブロックづつ順番に回
転して分散させることによりRAID4の性能を改善している。最初の組のブロ
ックでは、パリティブロックは最初のドライブに保存される。第2組のブロック
で
は第2のディスクドライブに保存される。各セットがパリティブロックを有する
ように繰り返される。しかし、全てのパリティ情報が一つのディスクドライブに
保存されることはない。RAIDレベル5システムでは、一群のブロックに対す
るすべてのパリティ情報を一つのディスクに保持させていないので、一度に配列
中のいくつかの複数のドライブに書き込みが可能である。したがって、RAID
レベル5システム上では読み取りと書き込みの両方がRAID4配列よりも素早
く行われる。
図2はRAIDレベル5を有する従来のシステムを表すブロック図である。そ
のシステムは、通信チャンネル130によりコンピュータシステム又はホストコ
ンピュータに接続したN+1個のディスク212−218を備えている。ストラ
イプ240では、パリティブロック0が第1のディスク212に保存されている
。データブロック0は第2のディスク214に保存され、データブロック1が第
3のディスク216に保存されている。最後に、データブロックN−1がディス
ク218に保存されている。ストライプ242では、データブロックNが第1デ
ィスク212に保存されている。第2のパリティブロック1は第2のディスク2
14に保存されている。データブロックN+1はディスク216に保存されてい
る。最後にデータブロック2N−1がディスク218に保存されている。M−1
のストライプ244では、データブロックMN−Nが第1のディスク212に保
存されている。データブロックMN−N+1は第2のディスク214に保存され
ている。データブロックMN−N+2は第3のディスク216に保存されている
。最後に、パリティブロックM−1はn番目のディスク218に保存されている
。したがって、図2は、RAIDレベル5システムがRAIDレベル4システム
と同一のパリティ情報を保存していることを示しているが、RAIDレベル5シ
ステムはパリティブロックの位置を利用可能なディスク212−218上で循環
させる。
RAIDレベル5では、パリティがディスク配列に分配される。これによりデ
ィスクを多重検索できる。また、ある決められた数のディスクをパリティ要求の
ためにシステムに付加しなければならないので、RAID配列のサイズが大きく
な
るのが防止される。
RAIDレベル4及び5を備えた従来のシステムはいくつかの問題がある。最
初の問題は、システムが故障すると、各ストライプのパリティ情報がこのストラ
イプ中の他のディスク上に保存されているデータブロックと調和しないというこ
とである。そのために全RAID配列についてパリティを再び計算しなければな
らない。どのパリティブロックが正しくないのか判断する方法がないので、パリ
ティはすべて再度計算される。したがって、RAID配列におけるすべてのパリ
ティブロックは再び計算されなければならない。RAID配列に保存されている
すべてのデータを読む必要があるので、すべてのRAID配列についてパリティ
を再び計算することは多大な時間の浪費である。例えば、2GBのディスクを最
大速度で読んでも終了するのに15分から20分かかる。しかし、殆どのコンピ
ュータは非常に多くのディスクを並行して最大速度で読み取ることはできないの
で、RAID配列についてパリティを再度計算するのは多くの時間がかかる。
RAID配列に関してパリティを再度計算するのに要する時間を軽減する一つ
の方法は、RAID配列に即座にアクセスして、オンライン状態の間にシステム
に対するパリティを再度計算できるようにすることである。しかし、この方法は
2つの問題がある。最初の問題は、パリティを再計算する間、不一致パリティを
有するブロックが更なる破壊から保護されていないということである。この間に
RAID配列中のディスクが壊れると、システム中のデータを永久的に失う。こ
の従来技術の第2の問題は、パリティ計算中にRAIDサブシステムは満足に動
作しないということである。これはパリティの再計算に必要な複数の入力/出力
(I/O)処理により生ずる時間遅延によるものである。
従来のシステムの第2の問題点は、ディスクが機能していない間のRAID配
列への書き込みにある。RAIDサブシステムはパリティ情報を用いて故障した
ディスク上のデータを再計算できるので、そのRAIDサブシステムはたとえデ
ィスクが故障していてもデータは依然として読み込むことができる。また、多く
のRAIDシステムは、ディスクが故障していても書き込みが継続できる。これ
は、壊れたRAID配列に書き込むことは、システムが故障の場合にデータを破
壊す
ることがあるので問題である。例えば、RAID配列を使用する処理システムが
クラッシュしたり、又はシステムへの電力供給が断たれた場合に、システムが故
障する。従来のRAIDサブシステムはこの事象シーケンスに対するプロテクシ
ョンを備えていない。発明の概要
本発明は、不揮発性ランダムアクセスメモリ(NV−RAM)を使用してディ
スク配列をエラー補正する方法である。
不揮発性RAMはディスクエラーからRAIDを回復させる速度を早くするた
めに使用される。これは、パリティが一致しないすべてのディスクブロックのリ
ストを保持することにより達成される。ディスクブロックのそのようなリストは
RAIDサブシステムにおけるパリティブロックの全体数よりも小さい。RAI
Dサブシステムにおけるパリティブロックの全体数は通常数十万のパリティブロ
ックの範囲にある。不一致のパリティブロック数の情報により、従来技術で可能
であった時間よりもかなり短時間の間に、リスト中で確認された数のブロックを
、修正することができる。本発明はまた同時に起こるシステムの故障と壊れたデ
ィスクに対する保護の方法と、一つの壊れたディスクを用いてRAIDサブシス
テムへの安全に書き込む方法を提供するものである。図面の簡単な説明
図1は従来のRAIDレベル4サブシステムのブロック図である。
図2は従来のRAIDレベル5サブシステムのブロック図である。
図3A−3Cは“ストライプ”に保存されたデータの再計算を表示する従来の
図である。
図4A−4Bはシステム故障の際のパリティ破壊に対する従来のタイミング図
である。
図5は故障したディスクへの書き込みが発生したときにデータが破壊されるの
を防止する本発明のタイミング図である。
図6は壊れたディスクによる書き込み上のディスク破壊を示すタイミング図で
ある。
図7A−7Bは壊れたディスクによる書き込み上のデータ破壊を防止する本発
明のタイミング図である。
図8は本発明を示す図である。
図9はシステムとディスクが同時に故障することによりデータが破壊されるの
を示すタイミング図である。
図10A−10Cはシステムとディスクが同時に故障することによりデータが
破壊されるのを防止する本発明のタイミング図である。
図11A−11Cは回復処理を示す本発明のフロー図である。
図12A−12Cは再計算によるパリティのタイミング図である。本発明の詳細な説明
不揮発性ランダムアクセスメモリ(NV−RAM)を用いてディスク配列のエ
ラーを補正する方法と装置を説明する。以下の説明において、本発明をさらに詳
細に説明するために、ディスクの数や性質、ディスクブロックのサイズ等のよう
な数多くの特定の細部を詳細に説明する。しかし、当業者にとって、それらの詳
しい細部の説明がなくても本発明が実施できることは明らかである。その他の実
施例では、本発明が不必要に不明瞭にならないように、公知の特徴部分は詳細に
説明しない。
特に、多くの実施例ではストライプ中の一つのブロックだけが更新された場合
を考えているが、説明する技術は多数のブロックを更新する場合でも同様に適用
できる。
本発明は、システムが故障した場合にパリティを再計算するために必要な時間
を減少し、故障しているディスクにデータが書き込まれ、かつ、そのシステムが
クラッシュした場合、RAID配列中のデータが破壊されるのを防止する方法を
提供する。本発明はこれらの問題を解消するために不揮発性RAMを使用してい
る。従来技術の説明とその問題は以下の通りである。この従来技術の問題は、シ
ステムが故障したときのパリティ破壊、壊れたディスクによる書き込み上のデー
タ破壊、及び同時にシステムとディスクが破壊したときのデータ破壊について説
明されている。RAIDを用いた損失データの再計算
ストライプ中に保存されたデータブロックを排他的論理和演算することにより
パリティが計算される。N個のデータブロックから計算されたパリティ値は、ス
トライプのパリティブロックに記録される。いずれかの一つのブロックからのデ
ータが例えばディスク破壊によって損失されると、ディスクに関する損失したデ
ータはストライプ中に残っているブロックを排他的論理和演算することにより再
計算される。一般的に、ストライプ中のデータブロックが修正されると、パリテ
ィがストライプに対して再計算されなければならない。すべてのN個のデータブ
ロックを書くことによってストライプを更新する場合、ディスクとパリティから
データを読むことなくパリティを計算でき、データはたった一回のI/Oサイク
ルの間に書くことができる。したがって、ストライプ中のN個数のすべてのデー
タブロックに対して書き込みには、最小時間が必要である。一つのデータブロッ
クをディスクに書き込み場合、減算によるパリティが使用される(後述する)。
一回のI/Oサイクルを行うには古いデータとパリティを読み込み必要があり、
第2のI/Oサイクルでは新たなデータとパリティを書き込み必要がある。RA
ID配列中のディスク駆動部は同期していないので、書き込みは一般に正確に同
時に起こることがない。ある場合には、パリティブロックはディスクに最初に到
達し、その他の場合にはデータブロックの一つがディスクに最初に到達する。こ
こで説明する技術はブロックがディスクに到達する順番とは無関係である。
非同期駆動部を有するディスクに対する別の方法は、パリティを最初に計算し
、データブロックがディスクに書き込まれる前にディスクにパリティブロックが
書かれる。RAID配列中のディスク上の各データブロックは4KBのデータを
保存する。以下の説明では、各4KBブロック中のデータを一つの大きな整数(
64Kビットの長さ)として扱う。したがって、図面では、パリティとデータデ
ィ
スクのブロックに保存された情報について整数値が示してある。この習慣は図面
を簡単にするためにだけ図法として使用するものである。
図3Aは従来のRAIDレベル4サブシステムを示す図で、N=3の場合には
4つのディスク330−336を備えている。図において、ディスク330はパ
リティディスクである。ディスク332−336はデータディスクである。図は
、RAID配列中のディスク330−336に含まれるストライプ320を示す
。ディスクブロック330Aは、整数値12を含むパリティブロックである。デ
ィスクブロック332A−336Aはそれぞれストライプ320のデータブロッ
クである。データブロック332A−336Aはデータ値4、7、及び1をそれ
ぞれ含む。一つのストライプ320中の各ブロック332A−336Aのデータ
が整数として表されている。ストライプ320のパリティはデータブロック33
2A−336Aに保存されているデータ値の合計として示してある。パリティブ
ロック330Aは値12(すなわち4+7+1)を含む。図3Aは、パリティを
用いたエラー補正方法の単なる一つの例を示す図である。パリティ値はデータブ
ロック332A−336Aの排他的論理和演算であるが、数学的加算特性は排他
的論理和関数のそれに調和する。したがって、図3Aでは加算が使用されている
。
図3Bは、図3Aに示すストライプ320上での動作のタイミング図である。
そのテーブルはパリティ、データ0、データ1及びデータ2の見出しを有する。
その値12、4、7、及び1は対応するテーブルの見出しの下に表されている。
図3Bは時刻TBの時点での失われたデータブロックを有するストライプを示
すテーブルである。図3Bに示すように、ストライプ320は、図3Aのデータ
ディスク334から失われたデータブロック1中の損失データを含む。これは、
データ1の見出しの下で箱により囲まれた疑問符を用いてテーブル中に示してあ
る。時刻TAの時点で、パリティ、データ0とデータ2はそれぞれ値12、4、
1を有する。データブロック1用のディスク334上のデータは以下のようにし
て即座に再計算される。
データ1=パリティ−データ0−データ2=12−4−1=7 (1)
ここでデータブロック1は、パリティブロック、データブロック0、及びデー
タブロック2を用いて計算される。したがって、図3Aに示すディスク334の
データブロック1に保存されたデータ値7は時刻TCの時点で再計算される。図
3Bにおいて、時刻TCに、データブロック1用に再計算された値7が括弧に囲
まれて示されている。以下の図面では、再計算された値は括弧を用いて示してあ
る。すなわち、その他のディスク上のパリティとデータにより再計算されたもの
として壊れたディスク用のデータが括弧で示してある。
図3Bに示すように、壊れたディスク上のデータは、パリティディスクとディ
スク配列中に残存するディスクを用いて再計算できる。図3Aに示す壊れたディ
スク334は最終的に置き換えられ、ディスクの古い内容は再計算されて新しい
ディスクに書き込まれる。図3Cは新しいデータ1ディスク338を含むRAI
Dサブシステムのブロック図である。図3Eに示すように、ストライプ320は
、パリティ、データ0、新たなデータ1、及びデータ2用に値12、4、7、及
び1を有する。これらの値はパリティブロック330A、データブロック332
A、338A、及び336Aに保存される。したがって、新しいディスク338
はRAIDシステムの壊れたディスク334に置き換わり、それまでディスク3
34のデータブロック334Aに保存されていたデータ値は以上のようにして計
算されて、交換されたディスク338のデータブロック338Aに保存される。
新たなデータがデータブロックに書き込まれると、パリティブロックも更新さ
れる。ストライプ中のすべてのデータブロックが一度に更新されると、パリティ
は以上のようにして簡単に計算される。このとき、パリティ用の新たな値はディ
スクに書き込まれる情報から再計算される。新たなパリティとデータのブロック
は次にディスクに書き込まれる。ストライプ中の幾つかのデータブロックが修正
されると、パリティブロックの更新がさらに難しくなる。それは多くのI/O処
理が必要となるからである。この場合、パリティを更新するには2つの方法があ
る。減算によるパリティの更新と、再計算によるパリティの更新である。
例えば、一つのデータブロックに書き込みが行われた場合、RAIDシステム
は減算によりパリティを更新できる。RAIDシステムはパリティブロックと上
書きされるブロックを読み取る。まずパリティ値から古いデータ値を減算し、デ
ータブロックの新たなデータ値を中間のパリティ値に加算し、そして新たなパリ
ティとデータのブロックを共にディスクに書き込む。
パリティを再計算するために、RAIDシステムはまずストライプ中のその他
のN−1個のデータブロックを読む。N−1個のデータブロックを読んだ後、R
AIDシステムは、修正されたデータブロックとN−1個のデータブロックを用
いて最初からパリティを再計算する。パリティが再計算されると、新たなパリテ
ィとデータのブロックはディスクに書き込まれる。
パリティを更新するための減算と加算の方法はともに、1以上のデータブロッ
クが同一ストライプに書き込まれる場合に一般化することができる。減算の場合
、パリティブロックといま正に上書きされようとしているすべてのデータブロッ
クの現在の内容とは、まずデータブロックから読み取られる。再計算において、
いま正に上書きされることのないすべてのデータブロックの現在の内容はまずデ
ィスクから読み込まれる。ストライプ中のすべてのN個のデータブロックが同時
に書き込まれるのは、再計算によるパリティを縮小(縮退)する場合である。書
き込まれないすべてのデータブロックはまずディスクから読み込まれるが、本実
施例ではそのようなブロックはない。システムが故障した場合に何故ストライプが不一致になるか
不一致のストライプには、当該ストライプ中の他のブロックの排他的論理和を
有しないパリティブロックを備えている。ストライプは、システムが故障すると
共に、更新に関する書き込みの幾つかは終了しているがその他が未だ終了してい
ないという場合に不一致となる。例えば、最初のデータブロックが上書きされる
場合である。上述のように、ストライプのパリティブロックは再計算されてデー
タブロックと共に上書きされる。データブロックの一つがディスクに書き込まれ
たがその他は未だ書き込まれていないという状況でシステムが故障すると、スト
ライプが不一致となる。
ストライプは、それが更新される際に不一致となることもある。したがって、
任意の時点における潜在的な不一致のストライプ数は更新中のストライプ数に限
られる。そのため、本発明は、現在更新中のすべてのストライプを含むNV−R
AM中のリストを保持する。これらのストライプだけが潜在的に壊れることがあ
るので、NV−RAM中のリストに保存されているストライプに対するシステム
故障後にパリティが再計算される。これにより、上述した時間のかかる従来方法
に比べて、システム故障後のパリティ再計算に要する全体時間を大幅に減少でき
る。従来技術におけるシステム故障の際のパリティ破壊
以下の図面では、故障したデータディスクに関して括弧内に示した値は、ディ
スクに保存されている実際の値ではない。その代わり、RAID配列中の壊れた
ディスクのメモリに保持されているのは計算された値である。
図4Aはシステムクラッシュを示す図で、変更値は図3Aのディスク330−
336に書き込まれる。その図は、データブロックがパリティブロック以前にデ
ィスクに到達する場合のものである。図4Aに示すように、時間は下方に向かっ
て増大する。時刻TAにおいて、パリティブロックは12、データブロック0か
ら2は4、7、及び1をそれぞれ有する。時刻TBにおいて、新たな値2がデー
タブロック0に書き込まれ(値2の回りの箱で示してある)、これにより時刻TA
にデータブロック0に保存されている値4が置き換えられる。データブロック
1と2に保存されているその他の値は変更されない。通常に動作している状態で
は、従来の方法では時刻TCの値10(箱で示す)がパリティの見出しの下に示
したパリティディスクに書き込まれる。これにより、時刻TBにデータブロック
0への書き込みに対してパリティブロックが更新される。時刻TCにパリティに
対する新たな値10がデータブロック0から2の値2、7、及び1からそれぞれ
計算される。したがって、図4Aのタイミング図は、データブロックがパリティ
ブロック以前にディスクに到達する場合の従来のRAIDサブシステムを示して
いる。
図4Aにおける時刻TBとTCとの間にシステム故障が発生すると、ストライプ
についてパリティが壊れる。そのタイミング図は、ストライプに関して再計算さ
れたパリティが更新される以前に、時刻TBに新たなデータ値2がデータディス
ク0に書き込まれることを示す。したがって、RAIDサブシステムがその後再
スタートすると、パリティディスクは正しい値10の代わりに古い値12(アン
ダーラインで示す)を持つ。これは、システム故障が発生する前にストライプが
更新されないことによる。ストライプに関するパリティは壊れている。何故なら
ば、
パリティ=データ0+データ1+データ2=2+7+1=10≠12 (2)
だからである。
同様に、図4Bは別の従来の図を示し、これはシステムクラッシュを示し、変
更値は図3Aのディスク330−336に書き込まれる。その図は、データブロ
ック以前にパリティブロックがディスクに到達する場合のものである。時刻TA
において、パリティブロックは値12、ディスクブロック0から2は4、7、及
び1をそれぞれ有する。時刻TBにおいて、新たな値10(値10の回りを箱で
示す)がパリティブロックに書き込まれ、それにより時刻TAにパリティブロッ
クに保存されている値12を置き換える。データブロック0から2に保存されて
いるデータ値は変更されない。時刻TBにおけるパリティの新たな値10は、デ
ータブロック1と2の値7と1、及びデータブロック0の新たな値2から計算さ
れる。普通に動作している場合、従来技術では、新たなデータ値2は、データ0
の見出しの下に示すように、データディスク0に時刻TCの時点で書き込まれる
。これにより時刻TBにおけるパリティブロックへの書き込みにしたがってデー
タブロック0が更新される。したがって、図4Aのタイミング図は従来のRAI
Dサブシステムを示し、そこではパリティブロックがデータブロック以前にディ
スクに到達する。
図4Bにおける時刻TBとTCとの間にシステムが故障すると、ストライプに関
してパリティが壊れる。そのタイミング図は、ストライプのデータブロック0が
更新される前に、時刻TBの時点で新たなパリティ値10がパリティディスクに
書き込まれることを示している。したがって、RAIDサブシステムがその後に
再スタートすると、データディスク0は正しい値2に代えて古い値4(アンダー
ラインで示す)を持つ。これは、システム破壊が発生する前にストライプが更新
されかったことによる。ストライプに関するパリティは今壊れている。何故なら
ば、
パリティ=データ0+データ1+データ2=2+7+1=10≠12 (3)
だからである。
図4A−4Bは、RAID配列中のディスク駆動部が同期していない場合の、
新たなデータがデータブロックに書き込まれる場合とパリティディスクが更新さ
れる場合の2つの事例を示す。図4Aに示す最初の事例は、新たなデータ値がデ
ータディスクに最初に到達し、その後にパリティディスクのパリティ値が更新さ
れる場合を示す。図4Bに示す第2の事例は、パリティがディスクに最初に到達
し、その後にデータが更新される場合を示す。図4Aと4Bに関して、時刻TB
とTCとの間でシステムが故障すると、ファイルシステムの破壊が発生する。シ
ステムが図4Aと4Bの時刻TB後に故障した場合、図示するパリティ値は当該
システムに関して正しいものではない。図4Aに示すシステムの場合、新たなデ
ータ値は合計値10を有し、これは値2、7、及び1の合計に等しい。しかし、
時刻TBにおけるパリティ値は値12を示している。したがって、パリティディ
スクに保存されているパリティ値は、データディスク0から2に保存されている
データ値用の新たなパリティ値と等しくない。同様に、図4Bに示す第2のシス
テムについて時刻TB後に故障が発生すると、データディスク0−1はそれぞれ
4、7、及び1の値を持つ。それらのデータブロックに関するパリティ値は12
に等しい。しかし、このシステムのパリティは、新たなデータ値がディスクに書
き込まれる前に更新されるので、時刻TB時点でパリティディスクに保存されて
いるパリティは10に等しい。したがって、時刻TBの後に、パリティディスク
に保存されたパリティはデータブロック用のパリティ値と等しくない。これは、
新たなデータが、システム故障の前に更新されていなかったからである。
従来の方法では、システムが故障後、システムが再スタートするとすべてのス
トライプについてパリティが再計算される。すべてのストライプに関する故障後
のパリティの再計算方法には徹底的な計算が必要で、そのために極めて遅い。本
発明はシステムが故障した後にパリティを再計算する方法である。そのシステム
は、不揮発性RAMの中に進行中の書き込み値を備えたストライプのリストを維
持する。システムが故障した後に再スタートすると、不揮発性RAMに保存され
ている進行中の書き込み値を有するリストだけが再計算される。壊れたディスクを用いた書き込み上の従来のデータ破壊
故障した又は壊れたディスクを有するRAID配列に書き込みを行うと、シス
テム故障中にディスク破壊が発生する。図6は、パリティをディスクに書き込み
前に新たなデータ値に関してデータディスクが更新された場合にシステム故障が
発生すると、故障したディスクに関するデータが破壊されることを表した従来の
図である。図6において、データ1の見出しの下で括弧内に示すことにより、デ
ータディスク1が故障していることを表している。時刻TAに、パリティディス
クは値12を有する。データディスク1が故障した時刻TA以前は、パリティデ
ィスクの値は、値4、7、及び1をそれぞれ有するデータディスク0から2の合
計に等しい。時刻TAにおけるデータブロック1の値7が括弧で囲まれている。
この値はデータディスク1に保存されている値を表すものではなく、代わりに、
以下のようにして、ストライプのパリティブロックとデータブロック0−2から
計算される。
データ0=パリティ−データ1−データ2=12−4−1=7 (4)
時刻TBでは、新たな値2がデータディスク0に書き込まれる(箱内で2を囲
んで示す)。時刻TBの時点では、パリティはデータディスク0に書き込まれて
いる新たな値2に対して更新されておらず、値12を持つ。したがって、データ
ブロック1に関して計算された値は7に代わって9である。これは、時刻TBに
おけるデータディスクに関して、括弧内の値9を囲んで図6に示されている。
時刻TCの時点で通常に動作する場合、パリティブロックは、時刻TBの時点で
データブロック0に書き込まれる値2によって、10に更新される。時刻TCで
のパリティに対する新たな値10は長方形の中に示してある。パリティ値10に
ついて、データブロック1用の正しい値7が括弧内に示してある。図6に示すよ
うに、データディスク1が壊れているので、データブロック1に保存されている
データはディスク配列におけるその他のブロックから計算される。データブロッ
ク0に対する時刻TBでの最初の書き込み後のデータブロック1の計算値は正し
くない。データブロック1に関する値9は、時刻TCにおけるパリティに関する
次の書き込みが終了するまでは不正確である。
時刻TBとTcとの間でシステム破壊が発生すると、故障したディスク又は壊れ
たディスクを有するRAID配列に対する書き込みはストライプ中のデータを破
壊する。従来の方法に関して図6に示すように、パリティは更新されず、そのた
めに値12を有する(アンダーラインで示す)。したがって、ストライプのデー
タブロック1に関する計算値は不正確で、ストライプは以下のようにして破壊さ
れる。
データ1=パリティ−データ0−データ2=12−2−1=9≠7 (5)
同様のデータ破壊が、データが到達する前にパリティがディスクに到達した場
合に発生する。システムとディスクの同時破壊によるデータ破壊
RAIDシステムは、停電によりシステム破壊が発生した場合、ディスク破壊
を経験する可能性が大いにある。一般に、停電後に発生する過渡電圧急激な立ち
上がりによってディスクはダメージを受ける。したがって、システムとディスク
の同時破壊によって、ストライプが壊れる可能性がある。
図9はシステムとディスクの同時破壊を示す従来の図で、そこではパリティが
ディスクに書き込まれる前に、新たなデータ値に関してデータディスクが更新さ
れる。時刻TAでは、パリティディスクは値12、データディスク0−2はそれ
ぞれ4、7、及び1を有する。時刻TBでは、新たな値2がデータディスク0に
書き込まれる(箱で示す)。時刻TBの時点では、パリティは、データディスク
0に書き込まれた新たな値2に関して更新されず、値12を有する。時刻TBと
TCとの間でシステム破壊が発生すると、ディスク1の値は破壊される。これは
、時刻TBとTCとの間に、システムとディスク同時に故障することにより発生す
る。
時刻TCでは、システム故障によりパリティは更新されず、したがって値10
の代わりに値12を有する。また、データディスク1はディスク故障により壊れ
る。データブロック1に関する計算値9は正しくない。以下のように、破壊され
たパリティ値を用いてデータディスク1に関して正しく計算される。
データ1=パリティ−データ0−データ2=12−2−1=9≠7(7)
パリティがデータよりも前にディスクに到達した場合にデータは同様に破壊さ
れる。本発明の概要
図8はRAIDシステム用にNV−RAMを使用したエラー補正に関する本発
明を示す図で、これはホストコンピュータ810、NV−RAM816を有する
RAIDコントローラ814、及びN+1個のディスク820−826を備えて
いる。ホストコンピュータ810は第1の通信チャンネル812によりRAID
コントローラ814に接続されている。RAIDコントローラ814は、不一致
状態になる可能性のあるRAID配列828のストライプを保存するためにNV
−RAM816を備えている。RAIDコントローラ814は、第2の通信チャ
ネル818によりRAID配列828のN+1個のディスク820−826に接
続されている。RAID配列828はパリティディスク820とN個のデータデ
ィスク822−826をそれぞれ備えている。
NV−RAM816は、潜在的に不一致となり得るパリティディスク820に
保存されているすべてのパリティブロックのリストを維持することにより、シス
テム故障後にRAIDを回復する速度を増すべく使用されている。一般的には、
このブロックのリストは小さい。それは、RAID配列828中のパリティブロ
ックの全体数よりも小さい数オーダーの大きさでもよい。例えば、RAID配列
828は数十万のパリティブロックを有するのに対して、潜在的に不一致のブロ
ックは僅か数百以下である。潜在的に不一致のいくつかのパリティブロックの情
報によりパリティの再計算が格段に容易になる。その理由は、それらのパリティ
ブロックだけを再保存すればよいからである。
本発明はNV−RAM816を用いてデータをRAID配列828に安全に書
き込むようにしており、このRAID配列はシステム故障によってもデータを破
壊することなく壊れたディスクを保持する。破壊されることがあるデータは、破
壊動作が始まる前にNV−RAM816にコピーされる。システム破壊後、NV
−RAM816に保存されたデータを用いて、RAID配列828を矛盾ない状
態に回復する。
図11A−Cは、本発明により実行されるステップを示すフロー図である。ま
ず図11Aを参照すると、ブート処理が実行される。判定ブロック1101では
、システムがちょうど故障したか否か判定される。判定ブロックで正しいと判断
された場合には、システムはステップ1102に進み(図11B)、回復処理を
実行する。判定ブロックで誤りと判断された場合、システムは通常処理のために
ステップ1103に進む(図11C)。
図11Bは、システム故障後の回復のフロー図を示す。判定ブロック1104
では、NV−RAM中の不正ストライプのリストで特定された残存ストライプが
あるか否か判定する。判定ブロック1104で誤りと判断された場合、システム
はリターンステップに進む。判定ブロック1104で正しいと判定された場合、
システムはステップ1105に進む。
ステップ1105では、ストライプ番号が得られる。ステップ1106では、
パリティを再計算するために必要な識別されたストライプのデータブロックが読
まれる。パリティはステップ1107でストライプに関して再計算される。ステ
ップ1108では、ストライプ用に新たなパリティブロックが書き込まれる。次
に、このシステムは判定ブロック1104に戻る。
通常の処理が図11Cに示してある。ステップ1109では、ストライプを更
新するために必要なすべてのブロックが読まれる。ステップ1110では、スト
ライプに関する新たなパリティが、新たなデータを使って計算される。そのスト
ライプのストライプ番号は、ステップ1111でNV−RAM中の不正ストライ
プのリストに書き込まれる。ステップ1112では、ストライプを更新するため
に必要なディスクブロックがディスクに書き込まれる。ステップ1113では、
ストライプの数がNV−RAMの不正ストライプのリストから除去される。NV−RAMを用いたシステム故障のパリティ破壊
図5は、NV−RAMを用いてパリティ破壊を防止する本発明を示す図である
。図11A−Cを参照してタイミング図を説明する。図5はシステム破壊を示す
本発明のタイミング図で、変更する値は図3Aのディスク330−336に書き
込まれる。その図は、パリティが新たなデータについて計算されそのデータがパ
リティブロックを更新する前にデータに書き込まれる場合のものである。時刻TA
の時点で、パリティブロックは値12、データブロック0−2は値4、7、及
び1をそれぞれ有する。TAの時点で、本発明に関する図11Cのステップ11
09は、ストライプを更新するのに必要なブロックがメモリに書き込まれたとき
に実行される。そのシステムはステップ1110を実行し、そこでは新たなパリ
ティ値が新たなデータ値に基づいて計算される。時刻TBの時点では、図11C
のステップ1111が実行され、そこでストライプ数がNV−RAMに書き込ま
れる。
時刻TCでは、ステップ1112で、新たなデータ値2(値を囲む箱で示す)
がデータブロック0に書き込まれ、時刻TBにデータブロック0に保存されてい
る値4に置き換わる。データブロック1と2に保存されているその他の値は変更
されない。最初に、システムが故障しない通常の場合を考える。本発明では、新
たなパリティ値10(パリティの見出しの下に箱で示す)が時刻TDにステップ
1112で書き込まれる。これにより、時刻TCに、データブロック0への書き
込み用にパリティブロックが更新される。時刻TEには、ステップ1113で、
NV−RAMのストライプ数がクリアされる。したがって、パリティディスクと
データディスク0−2に関するブロックを有するストライプがそれぞれ10、2
、7、及び1を有する。
次に、時刻tiとtDとの間(ステップ1111と1113との間)にシステム
が故障した場合を考える。このシステムはリブートし、図11Aのスタート時点
で実行開始される。
判定ブロック1101では、時刻TDにおいて、システム故障が発生すると、
判定ブロック1101は正しい(Yes)と判定する。ストライプは、パリティ
用に値12(アンダーラインで示す)とデータディスク0−2用の値2、7、及
び1をそれぞれ有する。図5に示すように、時刻TCに、システム故障後にパリ
ティが壊れる。これは次の理由からである。
パリティ=データ0+データ1+データ2=2+7+1=10≠12 (9)
しかしながら、ストライプは矛盾のない状態まで回復できる。NV−RAMは
回復対象であるストライプの表示、すなわち更新されるストライプのリストを有
する。パリティ値以外のすべてはディスク上で利用できる(時刻Tcにディスク
に書き込まれる“2”)。ストライプに関するデータ値はディスクから読み取ら
れ、新たなパリティ値10が計算される。
パリティ=データ0+データ1+データ2=2+7+1=10 (10)
したがって、新たに計算されたパリティ値10は、時刻TDにステップ1108
でパリティディスクに書き込まれ、ストライプは最早壊れていない。
以下のものは図11Cの処理を説明する疑似コードの例である。
(1)ストライプを更新するために必要なすべてのディスクブロックを読む。
(2)新たなパリティの内容を計算する。
(3)ストライプがNV−RAMの不正ストライプリストに書き込まれるように
ストライプに#を付す。
(4)ストライプを更新するのに必要な全てのディスクブロックを書込む。
(5)直前に書き込まれたストライプ用の#をNV−RAM不正ストライプリス
トから取り除く。
システムの故障後に、図11Bのスタートアップ手続の一部を以下の疑似コー
ドを用いて説明する。
(NV−RAM不正ストライプリストの中で特定されたすべてのストライプ)に
関して
{
(1)ストライプ中のすべてのデータブロックを読み取る。
(2)ストライプ用のパリティブロックを再計算する。
(3)ストライプ用に新たなパリティブロックを読み取る。
}
したがって、本発明によれば、NV−RAMを使用することにより、システム破
壊後にパリティが壊れるのを防止できる。リストの代わりにビットマップを用いることによるパリティ破壊の検出
前節では、潜在的に壊れているストライプのリストをNV−RAMに保持する
ことで、システムが壊れた後のレブートの際に、リスト中のストライプだけがそ
れらの再計算されたパリティブロックを保持する必要があった。本発明の別の実
施例はNV−RAM中でビットマップを使用して、システム破壊後にパリティブ
ロックを再計算しなければならない潜在的に壊れたストライプを表示する。
この方法ではビットマップを使用し、そこでは各ビットが1以上のストライプ
群を代表している。一般的なディスク配列は25,000のストライプを備えて
いる。ビットマップの各項目は一つのストライプを代表し、そのビットマップは
約32KBである。各ビットで隣接する32個のストライプ群を代表させること
により、その大きさを1KBに縮小できる。
システム破壊後にあっては、どのストライプがリストの代わってパリティ再計
算を必要とするかを判断するためにビットマップを使用しているという点を除い
て、この方法は“ストライプのリスト”と本質的に同一である。ビットマップ中
にビットが設定されている群のすべてのストライプによりそれらのパリティが再
計算される。
通常処理中にビットマップを管理するのは、リストを管理するのと少し異なる
。更新が完了するやいなやストライプの項目を消去するのは最早不可能である。
一つのビットは一以上のストライプの動作を指示できるからである。あるストラ
イプの更新は行われるかもしれないが、同一ビットを共有する別のストライプは
依然として役立つかもしれない。
代わりに、ストライプ用の適当なビットがストライプを更新する直前に設定さ
れるが、更新が完了した後でも消去されない。周期的に、ビットマップが大量の
項目を蓄積している場合、すべてのブロックはディスクに流され、それは不一致
のストライプがないことを保証し、全ビットマップが消去される。以下の疑似コ
ードはこれを実施する。
(1)ストライプを更新するために必要なすべてのブロックを読み込む。
(2)新たなパリティの内容を計算する。
(3)ストライプの更新用にビットマップの項目を設定する。
(4)ストライプの更新に必要なすべてのディスクブロックを書き込む。
(5)ビットマップが満杯の場合、すべてのブロックがディスクに到達するまで
待機し、すべてのビットマップを消去する。
システム故障の場合、ビットマップにより多くのブロックをリストよりも明確
にできるが、システム中のすべてのストライプに関するパリティを再計算するの
に比べて保存は依然として相当なものである。一般的なRAIDシステムは25
0,000のストライプを有し、したがってたとえ2,500の潜在的に破壊さ
れたストライプがビットマップ中で参考にされても、それはシステム中のストラ
イプの僅か1%に過ぎない。
ビットマップ法は書き込み−キャッシュディスクを用いると特に有益である。
これは、停電時にデータがディスクに到達するのを保証するものではない。その
ようなディスクは、実際にデータを書き込む前の所定時間、RAMにデータを保
持することができる。これは、ストライプ更新段階が終了した後でも、パリティ
破壊の可能性があることを意味する。たとえストライプがリストから除かれても
、ストライプのパリティは依然として潜在的に破壊されているので、リスト法は
動作しない。
したがって、ビットマップ法を使用し、ビットマップがクリアされると同時に
内部のキャッシュをフラッシュするように各ディスクに指示すると、書き込み−
キャッシュディスクドライブと組み合わせて発明を動作させることができる。NV−RAMを使用して壊れたディスクによる書き込み上のデータ破壊
本発明は、不揮発性RAMの壊れたディスクからデータを保存することにより
、故障したディスクを用いた書き込み上でのデータ破壊に対する問題を解消する
こ
とである。図7Aは、NV−RAMの故障したディスクからデータを保存するこ
とにより、データ破壊を防止する本発明のタイミング図である。図11A−Cを
参照して図を説明する。図7Aにおいて、パリティが更新される前にデータがデ
ィスクに書き込まれる。時刻TAにおいて、壊れたデータディスク1は、括弧内
に示した値7を有するように表示されている。括弧内の値7は、データディスク
1が故障し、ディスクから再計算されたものであることを示している。この値は
、パリティディスクに保存されている値12から、データディスク0と2の値4
と1を減算することにより計算される。ステップ1109では、ストライプが時
刻TAにRAID配列から読み込まれる。NV−RAMは消去される。これは図
7AにおいてNV−RAMに関する見出しの下に疑問符で示してある。
時刻TBの時点で、故障したデータディスク1の値7はステップ1109にし
たがってNV−RAMに書き込まれる。NV−RAMに書き込まれるデータディ
スク1の値7は、図7A中の長方形箱により示されている。次に、システムは図
11Cのステップ1110でストライプ用の新しいパリティ値を計算する。
時刻TCでは、データディスク0用の新しい値2(箱で示す)が、ステップ1
112にしたがって、ストライプ用のパリティが更新される前に、ディスクに書
き込まれる。したがって、時刻TCには、データディスク1の値は9で、括弧内
に示されている。システムが故障していない通常の場合、新たなパリティ値10
が時刻TDにディスクに書き込まれ、ディスク1の再計算された正しい値が7に
なる。時刻TCとTDとの間にシステム破壊が発生すると、パリティの新たな値は
、時刻TCにデータディスク0に書き込まれる値2に関してNV−RAMを用い
て正しく更新される。
ステップ1106にしたがって、NV−RAMに保存されているすべての機能
しているデータディスクに関する値を最初に読み取って、時刻TDにパリティが
正しく更新され、その値の計算は以下の通りである。
パリティ=データ0+NV−RAM+データ2=2+7+1=10 (12)
したがって、システムが故障した後に本発明が再スタートすると、パリティに関
して正しい値10が計算される。ステップ1108では、値10が時刻TDにパ
リティディスクに書き込まれ、計算された値D1を正しい値1に戻す。時刻TE
に、NV−RAMはステップ1113でクリアされる。したがって、本発明によ
れば、NV−RAMを使用することによって、ディスクが故障したときに、シス
テム故障によってデータが破壊されるのを防止できる。
図7Bは、データが更新される前にパリティがディスクに書き込まれた場合に
、NV−RAMの故障したディスクからデータを保存することによりデータ破壊
を防止する本発明のタイミング図である。時刻TAにおいて、壊れたデータディ
スク1が、括弧内に示した値7を有するように示してある。この値は図7Aを参
照して上述のように計算される。ステップ1109では、ストライプは時刻TA
にRAID配列から読み込まれる。NV−RAMがクリアされ、それはNV−R
AMの見出しの下の疑問符で示してある。
時刻TBにおいて、故障したデータディスク1の値7がステップ1109にし
たがってNV−RAMに書き込まれる。NV−RAMに書き込まれるデータディ
スク1の値7は図7Bで長方形箱により示してある。次に、システムは、図11
のステップ1110でストライプに関するパリティの新たな値を計算する。
時刻TCでは、パリティの新たな値10(箱で示す)が、データブロック0を
更新する前に、ステップ1108でパリティディスクに書き込まれる。したがっ
て、時刻TCにおいて、データディスク1の値は5で、括弧内に示してある。時
刻TCとTDとの間でシステム破壊が発生した場合、新たなパリティ値がNV−R
AMを用いてパリティディスクについて正しく更新される。判定ブロック110
1では、システムがリブートした後、システム破壊が発生したか否か判定する。
そして、本実施例では判定ブロックでは正しい(Yes)に戻り、ステップ11
04を継続する。
以下のように、パリティは時刻TDにその値を再計算して正しく更新される。
パリティ=壊れたディスク(7)のNV−RAM+壊れていないディスクのディ
スク上のデータ=4+7+1=12 (13)
したがって、図7A−7Bに示すように、システムがまさにストライプに書き
込まれようとするとき、不揮発性RAM中の故障したデータディスク1に関する
値を保存する。次に、データディスク0(パリティ)の新たな値をディスクに書
き込む。新たな値を時刻TCにディスク0(パリティディスク)に書き込んだ後
にシステム破壊が発生すると、データディスク1の値が破壊される。システム故
障後、新たなパリティ値(データディスク0)が、データディスク1用に計算さ
れた値5に代えて、NV−RAMに保存されている値7を用いて計算される。パ
リティの値(データディスク0)は次にディスクに書き込まれる。これが完了す
ると、NV−RAMは消去される。NV−RAMを用いたシステムとディスクの同時破壊
本発明は、NV−RAM中でストライプブロックを保存することにより、同時
にシステムとディスクの破壊が発生したときの、パリティとディスクの破壊に関
する問題を解消する。NV−RAMを使用することにより、システム中の複数の
ブロック(以下の例では、データブロック0と1)を更新する間にシステム破壊
が発生した場合、システムを矛盾のない状態に回復できる。こららのデータブロ
ックを変換するためには、更新されるストライプのパリティが必要である。本発
明では、その目的のためにディスクから読み取られるNV−RAMの任意のブロ
ックに常に保存する(データブロック0を更新する前にそれをNV−RAMに読
み込む)。したがって、ストライプ情報はNV−RAMに保存されているデータ
から再計算できる。本発明は、そのために減算によるパリティと再計算によるパ
リティを用いる2つの解決法を提供するものである。
減算によるパリティでは、パリティとデータのブロックを含むデータは、それ
を更新する前にディスクから読み取られる。図10Aは、NV−RAM中のスト
ライプのブロックを保存することにより、パリティとデータの破壊を防止するた
めの、本発明にかかるタイミング図である。図11A−Cを参照して図面を説明
する。図10Aにおいて、データはパリティが更新される前にディスクに書き込
まれる。時刻TAでは、パリティブロックとデータブロック0がRAID配列か
ら読み込まれる。NV−RAMは消去される。これは、図10Aにおいて、NV
−RAM用の見出しの下の疑問符で示してある。
時刻TBにおいて、パリティブロックとデータブロック0は、それらがディス
クから読み込まれると、NV−RAMに書き込まれる。NV−RAMに書き込ま
れるパリティブロックとデータブロック0は、図10Aにおいて長方形の箱で示
してある。システムは次にデータブロック0用の値2について新たなパリティ値
を計算する。
時刻TCにおいて、データディスク0の新たな値2(箱で示す)は、ストライ
プのパリティを更新する前に、ディスクに書き込まれる。時刻TCとTDとの間に
システム故障が発生すると、RAID配列中のディスクが故障し、本発明は壊れ
たディスクの3つの場合、パリティディスク、データディスク0、及びデータデ
ィスク2(又は3)について解決策を提供する。判定ブロック1101では、シ
ステム破壊が発生したか否か判定する。本実施例では、判定ブロックは正しい(
Yes)に戻り、ステップ1104で継続される。パリティが減算により計算さ
れる場合、システム破壊による壊れたディスクの3つの場合は、それぞれ図10
A−10Cに示す。
図10Aの時刻TDにおいて、時刻TCとTDとの間で、システム破壊によって
パリティディスクが故障する。この場合、何も行われない。いかなるデータも失
われず、パリティディスクにはいかなる情報も書き込まれることがない。
図10Bを参照すると、時刻TDにおいて、時刻TCとTDとの間のシステム破
壊によりデータディスク0が故障する。この場合のパリティを再計算する一般式
は、次の通りである。
パリティ=“壊れたディスクのNV−RAM”
+“壊れていないすべてのディスクのディスク上の値”
本実施例では、それは次のようになる。
パリティ=NV(データ0)+データ1+データ2=4+7+1=12
その結果、壊れたディスクを再保存するために、NV−RAM中に保存された
値にパリティが更新される。この特別な例では、パリティの新たな値は古い値に
調和することがある。データ0の他にその他のデータブロックが更新され、しか
もシステム破壊の前にそれらの一つがディスクに到達した場合、新たなパリティ
値は古いものと調和することがない。
図10Cを参照すると、時刻TDにおいて、時刻TCとTDとの間のシステム破
壊によりデータディスク1が故障する。この場合は、ステップ114でNV−R
AMからパリティとデータディスク0の値を読み込み、それらをディスク(箱で
示す)に書き込むことで処理される。したがって、データディスク0に対する変
換は上書きされるが、ストライプは矛盾のない状態に戻る。データディスク1は
、その値を括弧で囲うことにより、時刻TDとTFに破壊されたものとして示され
ている。そして、破壊されたデータディスク1の値は、以下のように、時刻TD
の時点で7に正しく計算される。
データ1=NV(パリティ)−NV(データ0)−データ2
=12−4−1=7 (14)
ここで、NV(パリティ)とNV(データ0)は、NV−RAMに保存されてい
るパリティとデータブロック0の値である。時刻TEには、NV−RAMがクリ
アされる。したがって、図10Cにおいて、時刻TCとTDとの間のシステム破壊
後にデータディスク1(壊れたディスク2も同様に処理される)が故障しても、
ストライプは本発明によって矛盾のない状態に保たれる。
この場合、以下のようにして、壊れたディスクの古い内容を最初に計算するこ
とにより処理できる。
D1計算値=NVパリティ
−“更新されるディスクのNV値”
−“更新されないデータディスクのディスク上の値”
新たなパリティ値は以下の式から計算される。
パリティ=“上述のステップから得たD1計算値”
+“壊れていないすべてのデータディスクに関するディスク上の値”再計算によるパリティと同時のシステムとディスクの破壊
再計算によるパリティにおいて、更新されていないデータブロックはまずディ
スクから読み取られた後、まさに書き込まれようとしている新たなデータと組み
合わせた値に基づいて再計算される。これは、多数のデータブロックが一時に更
新される場合に一般に使用される。何故ならば、それらの場合に、減算によるパ
リティよりも一層効率的だからである。簡単にするために、本実施例では、一つ
のブロックだけを更新する。示されている方法は任意の数のブロックを更新する
場合に適用される。
図12A−12Cは再計算によるパリティのタイミング図である。時刻TA、
TB、及びTCに関して、それらはすべて一致している。
時刻TAにおいて、ステップ1109では、ブロックD1とD2がディスクか
ら読み込まれる。ステップ1110において、システムは、ディスク1と2から
ちょうど読み込まれたデータと共にディスク0に関する新たなデータに基づいて
新たなパリティを計算する。
時刻TBにおいて、ステップ1111では、ブロックD1とD2が、それらが
属するストライプの標識と共にNV−RAMに書き込まれる。
時刻TCにおいて、ステップ1112の間、新たな値“2”がディスク0に書
き込まれる。通常の場合、パリティブロックはまたステップ1112の際中に書
き込まれ、破壊されることはない。
本実施例では、ディスク故障との組み合わさったシステム故障がある。システ
ムが故障した後にシステムがリブートすると、ステップ1101で処理が開始さ
れる。故障があるので、判定ブロックは正しい(Yes)に戻り、ステップ11
02で続けられ、NV−RAMの内容に基づいてRAIDサブシステムを回復す
るために必要なステップを実行する。
図12Aは、パリティディスクが壊れた場合を示す。この場合、何も行われる
必要がない。データディスクは壊れていないので、データが失われる可能性はな
い。
図12Bは、更新されるディスクが壊れた場合を示す。なお、時刻TDにおい
て、ディスク0に関して計算された値は正しくない。一般に、複数のブロックが
更新されると、失われたデータブロックを再生するために十分な情報はNV−R
AM中にない。これは、再計算によるパリティでは、NV−RAMに乗っている
のは更新されていないデータだからである。壊れたディスク上のデータはどこに
も保存されていない。
この場合、本発明では、壊れたディスクの内容をゼロに設定する新たなパリテ
ィ値を計算する。そのための一般式は次の通りである。
パリティ=壊れていないディスクの合計
また、この実施例では、それは以下の通りである。
パリティ=D1+D2=7+1=8
時刻TEに新たなパリティ値が書き込まれ、また時刻TEにD1とD2に関する
NV−RAM値がクリアされる。
新たなデータを古いデータと同じ場所に書き込む従来のファイルシステムでは
、データブロックをゼロ化することは行われない。しかし、WAFLによれば、
これは常に新たなデータをディスク上の不使用位置に書き込むものであり、書き
込まれるブロックをゼロ化することは問題ない。何故ならば、ブロックの内容は
ファイルシステムの一部ではないからである。
図12Cは、更新されないディスクが壊れた場合を示す。なお、時刻TDにお
いて、ディスクの計算値は正しくない。パリティを再計算する式は以下の通りで
ある。
パリティ=“壊れたディスクのNV−RAM値”
+“壊れていないディスクに関するディスク上の値”
本実施例では、それは次の通りである。
パリティ=NV(D1)+D0+D2=7+2+1=10
時刻TEに新たなパリティ値が書き込まれ、また時刻TFにD1とD2に関する
NV−RAM値がクリアされる。
このようにして、不揮発性ランダムアクセスメモリ(RAM)を用いたディス
ク配列に関するエラー補正の方法と装置が開示されている。
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 マルコム、マイケル
アメリカ合衆国、94022、カリフォルニア
州、ロス・アルトス、サウス・アヴァロ
ン・ドライブ48番
(72)発明者 ロー、ジェームス
アメリカ合衆国、95014、カリフォルニア
州、クパーティノ、アップランド・ウェイ
11570番
(72)発明者 ラッキッツィズ、バイロン
アメリカ合衆国、94043、カリフォルニア
州、マウンテン・ヴュー、ノース・ウィス
マン100番、ナンバー130
Claims (1)
- 【特許請求の範囲】 1.処理手段と、 複数のディスクのうちの少なくとも一つがパリティ情報を保存するためのも のである複数の保存データ用ディスクを有するRAID配列と、 上記RAID配列に接続されるRAID配列をコントロールするコントロー ル手段とを備え、上記コントロール手段はさらに処理手段に接続され、上記コン トロール手段は複数のストライプを保存する不揮発性メモリを備えている、エラ ー補正システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7179893A | 1993-06-04 | 1993-06-04 | |
US071,798 | 1993-06-04 | ||
PCT/US1994/006321 WO1994029795A1 (en) | 1993-06-04 | 1994-06-02 | A method for providing parity in a raid sub-system using a non-volatile memory |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08511368A true JPH08511368A (ja) | 1996-11-26 |
Family
ID=22103665
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7502000A Pending JPH08511368A (ja) | 1993-06-04 | 1994-06-02 | 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 |
JP2007104593A Expired - Lifetime JP4283859B2 (ja) | 1993-06-04 | 2007-04-12 | 記憶サブシステムおよびその作動方法 |
JP2008133346A Expired - Lifetime JP4408939B2 (ja) | 1993-06-04 | 2008-05-21 | 記憶サブシステムおよびその作動方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007104593A Expired - Lifetime JP4283859B2 (ja) | 1993-06-04 | 2007-04-12 | 記憶サブシステムおよびその作動方法 |
JP2008133346A Expired - Lifetime JP4408939B2 (ja) | 1993-06-04 | 2008-05-21 | 記憶サブシステムおよびその作動方法 |
Country Status (6)
Country | Link |
---|---|
US (3) | US5948110A (ja) |
EP (2) | EP1031928B1 (ja) |
JP (3) | JPH08511368A (ja) |
DE (1) | DE69434381T2 (ja) |
HK (1) | HK1028281A1 (ja) |
WO (1) | WO1994029795A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003296038A (ja) * | 2002-03-21 | 2003-10-17 | Network Appliance Inc | Raidシステムにおいてストライプの連続アレイに書き込む方法 |
JP2009514047A (ja) * | 2003-06-28 | 2009-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 多重化冗長ストレージへの安全な書き込みを行う装置及び方法 |
Families Citing this family (161)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US5963962A (en) * | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
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 |
US5671377A (en) * | 1994-07-19 | 1997-09-23 | David Sarnoff Research Center, Inc. | System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream |
US5533190A (en) * | 1994-12-21 | 1996-07-02 | At&T Global Information Solutions Company | Method for maintaining parity-data consistency in a disk array |
US5758057A (en) * | 1995-06-21 | 1998-05-26 | Mitsubishi Denki Kabushiki Kaisha | Multi-media storage system |
GB2307071B (en) * | 1995-06-21 | 1998-04-29 | Mitsubishi Electric Corp | Multi-media storage system |
WO1997011426A1 (en) | 1995-09-18 | 1997-03-27 | Cyberstorage Systems, Inc. | Universal storage management system |
US5893164A (en) * | 1997-05-30 | 1999-04-06 | Unisys Corporation | Method of tracking incomplete writes in a disk array and disk storage system which performs such method |
JP3618529B2 (ja) * | 1997-11-04 | 2005-02-09 | 富士通株式会社 | ディスクアレイ装置 |
US6516351B2 (en) * | 1997-12-05 | 2003-02-04 | Network Appliance, Inc. | Enforcing uniform file-locking for diverse file-locking protocols |
KR19990060338A (ko) * | 1997-12-31 | 1999-07-26 | 윤종용 | 하드 디스크 드라이브의 바이러스에 의한 손상 데이터복구방법 |
US6119244A (en) | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
US6219753B1 (en) * | 1999-06-04 | 2001-04-17 | International Business Machines Corporation | Fiber channel topological structure and method including structure and method for raid devices and controllers |
JP2001043031A (ja) * | 1999-07-30 | 2001-02-16 | Toshiba Corp | 分散パリティ生成機能を備えたディスクアレイ制御装置 |
DE60038448T2 (de) | 1999-10-14 | 2009-04-02 | Bluearc Uk Ltd. | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen |
US6321294B1 (en) * | 1999-10-27 | 2001-11-20 | Mti Technology Corporation | Method and apparatus for converting between logical and physical memory space in a raid system |
US6640233B1 (en) * | 2000-08-18 | 2003-10-28 | Network Appliance, Inc. | Reserving file system blocks |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6636879B1 (en) * | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
US6654912B1 (en) * | 2000-10-04 | 2003-11-25 | Network Appliance, Inc. | Recovery of file system data in file servers mirrored file system volumes |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US6871295B2 (en) | 2001-01-29 | 2005-03-22 | Adaptec, Inc. | Dynamic data recovery |
US6990547B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Replacing file system processors by hot swapping |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US20020138559A1 (en) * | 2001-01-29 | 2002-09-26 | Ulrich Thomas R. | Dynamically distributed file system |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US20020191311A1 (en) * | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Dynamically scalable disk array |
US7054927B2 (en) | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
JP4017177B2 (ja) * | 2001-02-28 | 2007-12-05 | スパンション エルエルシー | メモリ装置 |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
US6854071B2 (en) | 2001-05-14 | 2005-02-08 | International Business Machines Corporation | Method and apparatus for providing write recovery of faulty data in a non-redundant raid system |
US7739614B1 (en) | 2001-05-22 | 2010-06-15 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of directories |
US8171414B2 (en) * | 2001-05-22 | 2012-05-01 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of file systems |
US6643654B1 (en) | 2001-06-25 | 2003-11-04 | Network Appliance, Inc. | System and method for representing named data streams within an on-disk structure of a file system |
US7249150B1 (en) | 2001-07-03 | 2007-07-24 | Network Appliance, Inc. | System and method for parallelized replay of an NVRAM log in a storage appliance |
US6944785B2 (en) * | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US6757695B1 (en) * | 2001-08-09 | 2004-06-29 | Network Appliance, Inc. | System and method for mounting and unmounting storage volumes in a network storage environment |
US6851070B1 (en) | 2001-08-13 | 2005-02-01 | Network Appliance, Inc. | System and method for managing time-limited long-running operations in a data storage system |
US6965989B1 (en) | 2001-08-14 | 2005-11-15 | Network Appliance, Inc. | System and method for fast reboot of a file server |
US6851082B1 (en) | 2001-11-13 | 2005-02-01 | Network Appliance, Inc. | Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array |
US7346831B1 (en) | 2001-11-13 | 2008-03-18 | Network Appliance, Inc. | Parity assignment technique for parity declustering in a parity array of a storage system |
US6871317B1 (en) | 2001-11-13 | 2005-03-22 | Network Appliance, Inc. | Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array |
US7730153B1 (en) * | 2001-12-04 | 2010-06-01 | Netapp, Inc. | Efficient use of NVRAM during takeover in a node cluster |
US8402346B2 (en) * | 2001-12-28 | 2013-03-19 | Netapp, Inc. | N-way parity technique for enabling recovery from up to N storage device failures |
US6993701B2 (en) * | 2001-12-28 | 2006-01-31 | Network Appliance, Inc. | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array |
US7613984B2 (en) * | 2001-12-28 | 2009-11-03 | Netapp, Inc. | System and method for symmetric triple parity for failing storage devices |
US7640484B2 (en) * | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US7073115B2 (en) * | 2001-12-28 | 2006-07-04 | Network Appliance, Inc. | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups |
KR20030073982A (ko) * | 2002-03-14 | 2003-09-19 | 한국전자통신연구원 | 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 |
US7539991B2 (en) | 2002-03-21 | 2009-05-26 | Netapp, Inc. | Method and apparatus for decomposing I/O tasks in a raid system |
US7254813B2 (en) * | 2002-03-21 | 2007-08-07 | Network Appliance, Inc. | Method and apparatus for resource allocation in a raid system |
US7437727B2 (en) * | 2002-03-21 | 2008-10-14 | Network Appliance, Inc. | Method and apparatus for runtime resource deadlock avoidance in a raid system |
US6857001B2 (en) | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7024586B2 (en) | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
US7107385B2 (en) * | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7426576B1 (en) | 2002-09-20 | 2008-09-16 | Network Appliance, Inc. | Highly available DNS resolver and method for use of the same |
US7171452B1 (en) | 2002-10-31 | 2007-01-30 | Network Appliance, Inc. | System and method for monitoring cluster partner boot status over a cluster interconnect |
US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
US8041735B1 (en) | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US8041761B1 (en) | 2002-12-23 | 2011-10-18 | Netapp, Inc. | Virtual filer and IP space based IT configuration transitioning framework |
CN1302392C (zh) * | 2003-01-24 | 2007-02-28 | 华为技术有限公司 | 一种磁盘在线重构方法 |
US7664913B2 (en) * | 2003-03-21 | 2010-02-16 | Netapp, Inc. | Query-based spares management technique |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
US7424637B1 (en) | 2003-03-21 | 2008-09-09 | Networks Appliance, Inc. | Technique for managing addition of disks to a volume of a storage system |
US7457982B2 (en) * | 2003-04-11 | 2008-11-25 | Network Appliance, Inc. | Writable virtual disk of read-only snapshot file objects |
US7383378B1 (en) | 2003-04-11 | 2008-06-03 | Network Appliance, Inc. | System and method for supporting file and block access to storage object on a storage appliance |
US7260737B1 (en) | 2003-04-23 | 2007-08-21 | Network Appliance, Inc. | System and method for transport-level failover of FCP devices in a cluster |
US7293152B1 (en) | 2003-04-23 | 2007-11-06 | Network Appliance, Inc. | Consistent logical naming of initiator groups |
US7739543B1 (en) | 2003-04-23 | 2010-06-15 | Netapp, Inc. | System and method for transport-level failover for loosely coupled iSCSI target devices |
US7437530B1 (en) | 2003-04-24 | 2008-10-14 | Network Appliance, Inc. | System and method for mapping file block numbers to logical block addresses |
US7181439B1 (en) | 2003-04-25 | 2007-02-20 | Network Appliance, Inc. | System and method for transparently accessing a virtual disk using a file-based protocol |
US7577692B1 (en) | 2003-04-25 | 2009-08-18 | Netapp, Inc. | System and method for reserving space to guarantee file writability in a file system supporting persistent consistency point images |
US7437523B1 (en) | 2003-04-25 | 2008-10-14 | Network Appliance, Inc. | System and method for on-the-fly file folding in a replicated storage system |
US7330862B1 (en) | 2003-04-25 | 2008-02-12 | Network Appliance, Inc. | Zero copy write datapath |
US7603553B1 (en) | 2003-04-25 | 2009-10-13 | Netapp, Inc. | System and method to make file handles opaque to clients |
US7136974B2 (en) * | 2003-06-19 | 2006-11-14 | Pillar Data Systems, Inc. | Systems and methods of data migration in snapshot operations |
US7146461B1 (en) | 2003-07-01 | 2006-12-05 | Veritas Operating Corporation | Automated recovery from data corruption of data volumes in parity RAID storage systems |
US7523201B2 (en) * | 2003-07-14 | 2009-04-21 | Network Appliance, Inc. | System and method for optimized lun masking |
US7716323B2 (en) * | 2003-07-18 | 2010-05-11 | Netapp, Inc. | System and method for reliable peer communication in a clustered storage system |
US7593996B2 (en) | 2003-07-18 | 2009-09-22 | Netapp, Inc. | System and method for establishing a peer connection using reliable RDMA primitives |
US7055014B1 (en) | 2003-08-11 | 2006-05-30 | Network Applicance, Inc. | User interface system for a multi-protocol storage appliance |
US7991748B2 (en) | 2003-09-23 | 2011-08-02 | Symantec Corporation | Virtual data store creation and use |
US7725760B2 (en) | 2003-09-23 | 2010-05-25 | Symantec Operating Corporation | Data storage system |
US7577806B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Systems and methods for time dependent data storage and recovery |
US7287133B2 (en) | 2004-08-24 | 2007-10-23 | Symantec Operating Corporation | Systems and methods for providing a modification history for a location within a data store |
US7827362B2 (en) | 2004-08-24 | 2010-11-02 | Symantec Corporation | Systems, apparatus, and methods for processing I/O requests |
US7730222B2 (en) | 2004-08-24 | 2010-06-01 | Symantec Operating System | Processing storage-related I/O requests using binary tree data structures |
US7904428B2 (en) | 2003-09-23 | 2011-03-08 | Symantec Corporation | Methods and apparatus for recording write requests directed to a data store |
GB0322424D0 (en) * | 2003-09-24 | 2003-10-29 | Ibm | Error detection in redundant array of storage units |
US7512990B2 (en) * | 2003-10-16 | 2009-03-31 | International Business Machines Corporation | Multiple simultaneous ACL formats on a filesystem |
US7647451B1 (en) | 2003-11-24 | 2010-01-12 | Netapp, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7100073B2 (en) * | 2004-01-05 | 2006-08-29 | International Business Machines Corporation | Grouped-object RAID |
US7966293B1 (en) | 2004-03-09 | 2011-06-21 | Netapp, Inc. | System and method for indexing a backup using persistent consistency point images |
US8275951B2 (en) * | 2004-06-10 | 2012-09-25 | Hewlett-Packard Development Company, L.P. | Local bitmaps for an array of redundant storage devices |
US20060075281A1 (en) * | 2004-09-27 | 2006-04-06 | Kimmel Jeffrey S | Use of application-level context information to detect corrupted data in a storage system |
US7594075B2 (en) * | 2004-10-20 | 2009-09-22 | Seagate Technology Llc | Metadata for a grid based data storage system |
US8458238B2 (en) * | 2004-10-26 | 2013-06-04 | Netapp, Inc. | Method and system for efficient write journal entry management for a distributed file system |
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 |
US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
US7290199B2 (en) * | 2004-11-19 | 2007-10-30 | International Business Machines Corporation | Method and system for improved buffer utilization for disk array parity updates |
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 |
US8429192B2 (en) * | 2004-12-02 | 2013-04-23 | International Business Machines Corporation | System and method for supporting a plurality of access control list types for a file system in an operating system |
US7143308B2 (en) * | 2005-01-14 | 2006-11-28 | Charlie Tseng | Apparatus, system, and method for differential rebuilding of a reactivated offline RAID member disk |
US7398460B1 (en) * | 2005-01-31 | 2008-07-08 | Network Appliance, Inc. | Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array |
US7779294B2 (en) * | 2005-04-15 | 2010-08-17 | Intel Corporation | Power-safe disk storage apparatus, systems, and methods |
US7490263B2 (en) * | 2006-01-17 | 2009-02-10 | Allen King | Apparatus, system, and method for a storage device's enforcing write recovery of erroneous data |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US20070180292A1 (en) * | 2006-01-31 | 2007-08-02 | Bhugra Kern S | Differential rebuild in a storage environment |
US7844584B1 (en) | 2006-06-23 | 2010-11-30 | Netapp, Inc. | System and method for persistently storing lock state information |
US7979701B1 (en) | 2006-09-15 | 2011-07-12 | Netapp, Inc. | Cross mapping graphical interface to show encryption relationships between hosts and storage devices |
US7822921B2 (en) | 2006-10-31 | 2010-10-26 | Netapp, Inc. | System and method for optimizing write operations in storage systems |
US7613947B1 (en) | 2006-11-30 | 2009-11-03 | Netapp, Inc. | System and method for storage takeover |
US7647526B1 (en) | 2006-12-06 | 2010-01-12 | Netapp, Inc. | Reducing reconstruct input/output operations in storage systems |
US7620669B1 (en) | 2006-12-15 | 2009-11-17 | Netapp, Inc. | System and method for enhancing log performance |
US8868495B2 (en) * | 2007-02-21 | 2014-10-21 | Netapp, Inc. | System and method for indexing user data on storage systems |
US8312214B1 (en) | 2007-03-28 | 2012-11-13 | Netapp, Inc. | System and method for pausing disk drives in an aggregate |
EP2155235B1 (en) * | 2007-04-09 | 2016-04-06 | Wake Forest University Health Sciences | Oxygen-generating compositions for enhancing cell and tissue survival in vivo |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
US7971126B2 (en) * | 2007-06-27 | 2011-06-28 | International Business Machines Corporation | Apparatus, system, and method for hard disk drive redundancy |
US8041990B2 (en) * | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
US8041989B2 (en) * | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for providing a high fault tolerant memory system |
JP4678015B2 (ja) | 2007-07-13 | 2011-04-27 | 富士通株式会社 | 動画像符号化装置及び動画像符号化方法 |
US7975102B1 (en) | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
US8140483B2 (en) * | 2007-09-28 | 2012-03-20 | International Business Machines Corporation | Transaction log management |
US7827441B1 (en) * | 2007-10-30 | 2010-11-02 | Network Appliance, Inc. | Disk-less quorum device for a clustered storage system |
US7984259B1 (en) | 2007-12-17 | 2011-07-19 | Netapp, Inc. | Reducing load imbalance in a storage system |
US8099554B1 (en) * | 2007-12-31 | 2012-01-17 | Emc Corporation | System and method for flash-based data caching |
US8799743B2 (en) | 2008-10-28 | 2014-08-05 | Micron Technology, Inc. | Error correction in multiple semiconductor memory units |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
EP2399195A1 (en) * | 2009-02-18 | 2011-12-28 | Marvell World Trade Ltd. | Method and system for performing i/o operations on disk arrays |
US8688798B1 (en) | 2009-04-03 | 2014-04-01 | Netapp, Inc. | System and method for a shared write address protocol over a remote direct memory access connection |
US8631271B2 (en) | 2010-06-24 | 2014-01-14 | International Business Machines Corporation | Heterogeneous recovery in a redundant memory system |
US8898511B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Homogeneous recovery in a redundant memory system |
US8484529B2 (en) | 2010-06-24 | 2013-07-09 | International Business Machines Corporation | Error correction and detection in a redundant memory system |
US8549378B2 (en) | 2010-06-24 | 2013-10-01 | International Business Machines Corporation | RAIM system using decoding of virtual ECC |
EP2630571B1 (en) * | 2010-10-21 | 2020-10-14 | Oracle International Corporation | Two stage checksummed raid storage model |
US8522122B2 (en) | 2011-01-29 | 2013-08-27 | International Business Machines Corporation | Correcting memory device and memory channel failures in the presence of known memory device failures |
EP2737431A4 (en) * | 2011-07-27 | 2015-03-25 | Cleversafe Inc | GENERATION OF DISTRIBUTED STORAGE NETWORK EVENT RECORDS |
US10678619B2 (en) | 2011-07-27 | 2020-06-09 | Pure Storage, Inc. | Unified logs and device statistics |
US11016702B2 (en) | 2011-07-27 | 2021-05-25 | Pure Storage, Inc. | Hierarchical event tree |
KR101801147B1 (ko) | 2011-08-30 | 2017-11-27 | 삼성전자주식회사 | 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치 |
US9087019B2 (en) * | 2012-01-27 | 2015-07-21 | Promise Technology, Inc. | Disk storage system with rebuild sequence and method of operation thereof |
CN103577274B (zh) * | 2012-07-31 | 2016-07-06 | 国际商业机器公司 | 管理存储器阵列的方法和装置 |
KR102081980B1 (ko) * | 2012-10-08 | 2020-02-27 | 삼성전자 주식회사 | 메모리 시스템에서의 라이트 동작 또는 리드 동작 수행 방법 |
US11016820B2 (en) | 2013-08-26 | 2021-05-25 | Vmware, Inc. | Load balancing of resources |
US10747475B2 (en) * | 2013-08-26 | 2020-08-18 | Vmware, Inc. | Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines |
US9372767B2 (en) | 2014-06-06 | 2016-06-21 | Netapp, Inc. | Recovery consumer framework |
KR102368071B1 (ko) | 2014-12-29 | 2022-02-25 | 삼성전자주식회사 | 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템 |
US9740440B2 (en) * | 2015-05-21 | 2017-08-22 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Separating a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array |
US10114694B2 (en) * | 2016-06-07 | 2018-10-30 | Storart Technology Co. Ltd. | Method and controller for recovering data in event of program failure and storage system using the same |
CN108228647B (zh) | 2016-12-21 | 2022-05-24 | 伊姆西Ip控股有限责任公司 | 用于数据拷贝的方法和设备 |
US10089015B1 (en) | 2016-12-28 | 2018-10-02 | EMC IP Holding Company LLC | Per-drive memory resident zeroing maps for drive zeroing in a data storage system |
US10585749B2 (en) * | 2017-08-10 | 2020-03-10 | Samsung Electronics Co., Ltd. | System and method for distributed erasure coding |
US10776202B1 (en) * | 2017-09-22 | 2020-09-15 | Pure Storage, Inc. | Drive, blade, or data shard decommission via RAID geometry shrinkage |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
TWI640997B (zh) * | 2017-12-27 | 2018-11-11 | 群聯電子股份有限公司 | 資料保護方法、記憶體控制電路單元與記憶體儲存裝置 |
US11816353B2 (en) * | 2021-12-20 | 2023-11-14 | Western Digital Technologies, Inc. | Parity data for non-volatile storage |
CN115565598B (zh) * | 2022-09-30 | 2023-06-02 | 中国科学院空间应用工程与技术中心 | Raid阵列磁盘暂时失效的数据存储与修复方法及系统 |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3525269A (en) | 1968-11-04 | 1970-08-25 | Deere & Co | Harvesting machine component drive |
US4075691A (en) * | 1975-11-06 | 1978-02-21 | Bunker Ramo Corporation | Communication control unit |
US4156907A (en) * | 1977-03-02 | 1979-05-29 | Burroughs Corporation | Data communications subsystem |
US4399503A (en) * | 1978-06-30 | 1983-08-16 | Bunker Ramo Corporation | Dynamic disk buffer control unit |
US4377843A (en) * | 1979-04-19 | 1983-03-22 | Wescom Switching, Inc. | Data distribution interface |
US4333144A (en) * | 1980-02-05 | 1982-06-01 | The Bendix Corporation | Task communicator for multiple computer system |
US4488231A (en) * | 1980-09-29 | 1984-12-11 | Honeywell Information Systems Inc. | Communication multiplexer having dual microprocessors |
FR2500659B1 (fr) * | 1981-02-25 | 1986-02-28 | Philips Ind Commerciale | Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur |
US4456957A (en) * | 1981-09-28 | 1984-06-26 | Ncr Corporation | Apparatus using a decision table for routing data among terminals and a host system |
US4685125A (en) * | 1982-06-28 | 1987-08-04 | American Telephone And Telegraph Company | Computer system with tasking |
US4550368A (en) * | 1982-07-02 | 1985-10-29 | Sun Microsystems, Inc. | High-speed memory and memory management system |
US4527232A (en) * | 1982-07-02 | 1985-07-02 | Sun Microsystems, Inc. | High-speed memory and memory management system |
US4710868A (en) * | 1984-06-29 | 1987-12-01 | International Business Machines Corporation | Interconnect scheme for shared memory local networks |
US4814971A (en) | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
US4719569A (en) * | 1985-10-11 | 1988-01-12 | Sun Microsystems, Inc. | Arbitrator for allocating access to data processing resources |
US4825354A (en) * | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
US4742447A (en) * | 1986-01-16 | 1988-05-03 | International Business Machines Corporation | Method to control I/O accesses in a multi-tasking virtual memory virtual machine type data processing system |
US4761785B1 (en) * | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4803621A (en) * | 1986-07-24 | 1989-02-07 | Sun Microsystems, Inc. | Memory access system |
US4780821A (en) * | 1986-07-29 | 1988-10-25 | International Business Machines Corp. | Method for multiple programs management within a network having a server computer and a plurality of remote computers |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
US4783730A (en) * | 1986-09-19 | 1988-11-08 | Datapoint Corporation | Input/output control technique utilizing multilevel memory structure for processor and I/O communication |
US4766534A (en) * | 1986-10-16 | 1988-08-23 | American Telephone And Telegraph Company, At&T Bell Laboratories | Parallel processing network and method |
US4887204A (en) * | 1987-02-13 | 1989-12-12 | International Business Machines Corporation | System and method for accessing remote files in a distributed networking environment |
US4897781A (en) * | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
US5109515A (en) * | 1987-09-28 | 1992-04-28 | At&T Bell Laboratories | User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services |
IL88165A (en) * | 1987-12-21 | 1993-01-31 | Honeywell Bull | Apparatus and method for a data processing system having a peer relationship among a plurality of central processing units |
US4914583A (en) * | 1988-04-13 | 1990-04-03 | Motorola, Inc. | Method of indicating processes resident within a cell of a data processing system |
JP2625866B2 (ja) | 1988-04-26 | 1997-07-02 | 日本電気株式会社 | 電子機器筐体の冷却構造 |
US4984272A (en) | 1988-11-30 | 1991-01-08 | At&T Bell Laboratories | Secure file handling in a computer operating system |
JPH02165241A (ja) | 1988-12-19 | 1990-06-26 | Toshiba Corp | ファイルアクセス方式 |
US5222217A (en) | 1989-01-18 | 1993-06-22 | International Business Machines Corporation | System and method for implementing operating system message queues with recoverable shared virtual storage |
US5113442A (en) | 1989-03-06 | 1992-05-12 | Lachman Associates, Inc. | Method and apparatus for providing access control in a secure operating system |
US5144659A (en) | 1989-04-19 | 1992-09-01 | Richard P. Jones | Computer file protection system |
US5218696A (en) * | 1989-07-24 | 1993-06-08 | International Business Machines Corporation | Method for dynamically expanding and rapidly accessing file directories |
US5163131A (en) * | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5276867A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data storage system with improved data migration |
US5218695A (en) * | 1990-02-05 | 1993-06-08 | Epoch Systems, Inc. | File server system having high-speed write execution |
US5195100A (en) * | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
US5166939A (en) * | 1990-03-02 | 1992-11-24 | Micro Technology, Inc. | Data storage apparatus and method |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
US5088081A (en) * | 1990-03-28 | 1992-02-11 | Prime Computer, Inc. | Method and apparatus for improved disk access |
JPH0731582B2 (ja) * | 1990-06-21 | 1995-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | パリティ保護データを回復するための方法および装置 |
US5208813A (en) * | 1990-10-23 | 1993-05-04 | Array Technology Corporation | On-line reconstruction of a failed redundant array system |
US5274807A (en) * | 1990-11-01 | 1993-12-28 | At&T Bell Laboratories | Method for reducing magnetic storage volume for computer disk image backup |
US5255270A (en) * | 1990-11-07 | 1993-10-19 | Emc Corporation | Method of assuring data write integrity on a data storage device |
EP0485110B1 (en) * | 1990-11-09 | 1999-08-25 | Emc Corporation | Logical partitioning of a redundant array storage system |
US5155835A (en) * | 1990-11-19 | 1992-10-13 | Storage Technology Corporation | Multilevel, hierarchical, dynamically mapped data storage subsystem |
US5146588A (en) * | 1990-11-26 | 1992-09-08 | Storage Technology Corporation | Redundancy accumulator for disk drive array memory |
JP2603757B2 (ja) * | 1990-11-30 | 1997-04-23 | 富士通株式会社 | アレ−ディスク装置の制御方法 |
US5235601A (en) * | 1990-12-21 | 1993-08-10 | Array Technology Corporation | On-line restoration of redundancy information in a redundant array system |
US5274799A (en) * | 1991-01-04 | 1993-12-28 | Array Technology Corporation | Storage device array architecture with copyback cache |
US5239640A (en) | 1991-02-01 | 1993-08-24 | International Business Machines Corporation | Data storage system and method including data and checksum write staging storage |
US5276840A (en) * | 1991-03-22 | 1994-01-04 | Acer Incorporated | Disk caching method for writing data from computer memory including a step of writing a plurality of physically adjacent blocks in a single I/O operation |
US5502836A (en) * | 1991-11-21 | 1996-03-26 | Ast Research, Inc. | Method for disk restriping during system operation |
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 |
GB9126779D0 (en) | 1991-12-17 | 1992-02-12 | Int Computers Ltd | Security mechanism for a computer system |
US5313626A (en) * | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
CA2126754A1 (en) * | 1991-12-27 | 1993-07-08 | E. David Neufeld | Method for performing disk array operations using a nonuniform stripe size mapping scheme |
US5333305A (en) * | 1991-12-27 | 1994-07-26 | Compaq Computer Corporation | Method for improving partial stripe write performance in disk array subsystems |
JP3058743B2 (ja) * | 1992-01-21 | 2000-07-04 | 株式会社日立製作所 | ディスクアレイ制御装置 |
US5442752A (en) * | 1992-01-24 | 1995-08-15 | International Business Machines Corporation | Data storage method for DASD arrays using striping based on file length |
EP0559488B1 (en) * | 1992-03-06 | 1998-08-19 | Data General Corporation | Handling data in a system having a processor for controlling access to a plurality of data storage disks |
US5305326A (en) * | 1992-03-06 | 1994-04-19 | Data General Corporation | High availability disk arrays |
AU653670B2 (en) * | 1992-03-10 | 1994-10-06 | Data General Corporation | Improvements for high availability disk arrays |
US5469566A (en) * | 1992-03-12 | 1995-11-21 | Emc Corporation | Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units |
US5708668A (en) * | 1992-05-06 | 1998-01-13 | International Business Machines Corporation | Method and apparatus for operating an array of storage devices |
US5335235A (en) * | 1992-07-07 | 1994-08-02 | Digital Equipment Corporation | FIFO based parity generator |
JP2888401B2 (ja) * | 1992-08-03 | 1999-05-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 冗長ディスクドライブアレイに対する同期方法 |
US5315602A (en) * | 1992-08-12 | 1994-05-24 | Digital Equipment Corporation | Optimized stripe detection for redundant arrays of disk drives |
EP0612015A1 (en) * | 1993-02-16 | 1994-08-24 | International Business Machines Corporation | Improved disk array system having special parity groups for data blocks with high update activity |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
DE69425658T2 (de) | 1993-06-03 | 2001-04-19 | Network Appliance Inc | Anordnung eines dateisystems zum beschreiben beliebiger bereiche |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
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 |
US5390327A (en) * | 1993-06-29 | 1995-02-14 | Digital Equipment Corporation | Method for on-line reorganization of the data on a RAID-4 or RAID-5 array in the absence of one disk and the on-line restoration of a replacement disk |
US5572711A (en) | 1993-09-28 | 1996-11-05 | Bull Hn Information Systems Inc. | Mechanism for linking together the files of emulated and host system for access by emulated system users |
US5617568A (en) | 1994-12-14 | 1997-04-01 | International Business Machines Corporation | System and method for supporting file attributes on a distributed file system without native support therefor |
US5689701A (en) | 1994-12-14 | 1997-11-18 | International Business Machines Corporation | System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax |
US5761669A (en) | 1995-06-06 | 1998-06-02 | Microsoft Corporation | Controlling access to objects on multiple operating systems |
US5675782A (en) | 1995-06-06 | 1997-10-07 | Microsoft Corporation | Controlling access to objects on multiple operating systems |
US5603051A (en) * | 1995-06-06 | 1997-02-11 | Hewlett-Packard Company | Input/output processor with a local memory providing shared resources for a plurality of input/output interfaces on an I/O bus |
US5729705A (en) * | 1995-07-24 | 1998-03-17 | Symbios Logic Inc. | Method and apparatus for enhancing throughput of disk array data transfers in a controller |
US5668958A (en) | 1995-09-12 | 1997-09-16 | International Business Machines Corporation | Heterogeneous filing system with common API and reconciled file management rules |
US5737744A (en) * | 1995-10-13 | 1998-04-07 | Compaq Computer Corporation | Disk array controller for performing exclusive or operations |
US5742752A (en) * | 1995-12-29 | 1998-04-21 | Symbios Logic Inc. | Method for performing a RAID stripe write operation using a drive XOR command set |
US5737523A (en) | 1996-03-04 | 1998-04-07 | Sun Microsystems, Inc. | Methods and apparatus for providing dynamic network file system client authentication |
US5825877A (en) | 1996-06-11 | 1998-10-20 | International Business Machines Corporation | Support for portable trusted software |
JP2956607B2 (ja) | 1996-09-17 | 1999-10-04 | 日本電気株式会社 | 携帯型無線機 |
DE19646155C1 (de) | 1996-11-08 | 1997-12-11 | Siemens Nixdorf Inf Syst | Lagebestimmung von Peripherieeinheiten |
US6161165A (en) * | 1996-11-14 | 2000-12-12 | Emc Corporation | High performance data path with XOR on the fly |
US5915087A (en) | 1996-12-12 | 1999-06-22 | Secure Computing Corporation | Transparent security proxy for unreliable message exchange protocols |
US5931935A (en) | 1997-04-15 | 1999-08-03 | Microsoft Corporation | File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system |
US5876278A (en) | 1997-05-29 | 1999-03-02 | Cheng; Henry | Cooling device |
US6101585A (en) | 1997-11-04 | 2000-08-08 | Adaptec, Inc. | Mechanism for incremental backup of on-line files |
US5890959A (en) | 1998-03-31 | 1999-04-06 | Digital Equipment Corporation | High efficiency blower system with integral backflow preventor |
-
1994
- 1994-06-02 DE DE69434381T patent/DE69434381T2/de not_active Expired - Lifetime
- 1994-06-02 EP EP00111252A patent/EP1031928B1/en not_active Expired - Lifetime
- 1994-06-02 JP JP7502000A patent/JPH08511368A/ja active Pending
- 1994-06-02 EP EP94919367A patent/EP0701715A4/en not_active Withdrawn
- 1994-06-02 WO PCT/US1994/006321 patent/WO1994029795A1/en not_active Application Discontinuation
-
1995
- 1995-06-05 US US08/471,218 patent/US5948110A/en not_active Expired - Lifetime
-
1999
- 1999-06-30 US US09/345,246 patent/US6480969B1/en not_active Expired - Lifetime
-
2000
- 2000-10-19 HK HK00106618A patent/HK1028281A1/xx not_active IP Right Cessation
-
2002
- 2002-08-28 US US10/233,311 patent/US6988219B2/en not_active Expired - Fee Related
-
2007
- 2007-04-12 JP JP2007104593A patent/JP4283859B2/ja not_active Expired - Lifetime
-
2008
- 2008-05-21 JP JP2008133346A patent/JP4408939B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003296038A (ja) * | 2002-03-21 | 2003-10-17 | Network Appliance Inc | Raidシステムにおいてストライプの連続アレイに書き込む方法 |
JP2010079928A (ja) * | 2002-03-21 | 2010-04-08 | Netapp Inc | Raidシステムにおいてストライプの連続アレイに書き込む方法 |
JP2009514047A (ja) * | 2003-06-28 | 2009-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 多重化冗長ストレージへの安全な書き込みを行う装置及び方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2007184011A (ja) | 2007-07-19 |
US6988219B2 (en) | 2006-01-17 |
EP0701715A1 (en) | 1996-03-20 |
JP4283859B2 (ja) | 2009-06-24 |
US5948110A (en) | 1999-09-07 |
EP1031928A3 (en) | 2000-11-15 |
HK1028281A1 (en) | 2001-02-09 |
WO1994029795A1 (en) | 1994-12-22 |
EP0701715A4 (en) | 1999-11-17 |
JP2008251034A (ja) | 2008-10-16 |
EP1031928B1 (en) | 2005-05-18 |
DE69434381D1 (de) | 2005-06-23 |
US6480969B1 (en) | 2002-11-12 |
JP4408939B2 (ja) | 2010-02-03 |
US20030037281A1 (en) | 2003-02-20 |
DE69434381T2 (de) | 2006-01-19 |
EP1031928A2 (en) | 2000-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08511368A (ja) | 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法 | |
US10496481B2 (en) | Methods and systems for rebuilding data subsequent to the failure of a storage unit | |
EP0482819B1 (en) | On-line reconstruction of a failed redundant array system | |
EP0608344B1 (en) | System for backing-up data for rollback | |
JP3164499B2 (ja) | ディスクアレイにおけるパリティデータの無矛盾性保持方法 | |
US7437508B2 (en) | Method and system for storing data in an array of storage devices with additional and autonomic protection | |
US5488701A (en) | In log sparing for log structured arrays | |
EP0503768B1 (en) | Method and means for accessing arrays of DASDS | |
US6349359B1 (en) | Method and apparatus for maintaining data consistency in raid | |
EP0612015A1 (en) | Improved disk array system having special parity groups for data blocks with high update activity | |
US20040123032A1 (en) | Method for storing integrity metadata in redundant data layouts | |
EP0690379A2 (en) | Enhanced data management in data storage subsystems | |
US8365043B2 (en) | Efficient redundant memory unit array | |
GB2414592A (en) | Decreasing failed disk reconstruction time in a RAID data storage system | |
GB2343265A (en) | Data storage array rebuild | |
CA2165910C (en) | Method for providing parity in a raid sub-system using a non-volatile memory | |
JP3022688B2 (ja) | 補助記憶装置 |