JP3071017B2 - 冗長アレイ・システムにおける冗長情報の復元方法および制御システム - Google Patents
冗長アレイ・システムにおける冗長情報の復元方法および制御システムInfo
- Publication number
- JP3071017B2 JP3071017B2 JP3338882A JP33888291A JP3071017B2 JP 3071017 B2 JP3071017 B2 JP 3071017B2 JP 3338882 A JP3338882 A JP 3338882A JP 33888291 A JP33888291 A JP 33888291A JP 3071017 B2 JP3071017 B2 JP 3071017B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- redundant
- control system
- stripe
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/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
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Correction Of Errors (AREA)
Description
ータ記憶に関し、特に冗長アレイ記憶システムにおける
パリティ情報のオンライン復元の方法及び制御システム
に関する。
は制御装置とチャネルを介して中央処理装置(CPU)
へ接続した1個以上の記憶装置を含む。記憶装置の機能
は、特定のデータ処理タスクを実行する際にCPUが使
用するデータとプログラムを記憶することである。
憶装置が使用されている。標準的な装置は、データを記
憶するための各制御装置を介して装置へ接続した1個以
上の大容量テープ装置及び/又はディスク・ドライブ
(磁気、光学又は半導体)を含む。
もはやシステムに利用可能でなくなるように大容量記憶
装置の1つが故障した場合には問題がある。一般に、こ
のような故障は全コンピュータ・システムをシャット・
ダウンする。
る問題を解決するいくつかの方法を示唆している。レコ
ードが相対的に短いシステムでは、記憶装置内の各デー
タ・レコードに追加するECCシンドローム・ビットを
発生する誤り訂正コードを使用することが可能である。
このコードにより、誤って読取られた小量のデータを訂
正することが可能である。しかしながら、このようなコ
ードは一般に誤った長いレコードを訂正する又は再生す
るのには不適当であり、記憶装置全体が故障した場合に
は何の救済もない。それ故、個々の記憶装置の外でデー
タ信頼性を提供する必要がある。
ーチが当該分野の従来技術の中にいくつも書かれてい
る。1988年6月ACM誌SIGMODでパターソン
他の「安価なディスクの冗長アレイ(RAID)のケー
ス」という題の論文でカリフォルニア大学バークレー校
の研究グループは、ディスク・ドライブを記憶装置とし
て使用する時にそのような信頼性を提供する多数の異な
るアプローチを挙げている。ディスク・ドライブのアレ
イは、略語「RAID」(安価ディスクの冗長アレイ)
のもとに5種類の構成形態の内の1つに特徴づけられ
る。
装置を提供し、各対の記憶装置で全てのデータの二重コ
ピーを保持することを含む。このような解法は信頼性の
問題を解決するが、記憶のコストを倍増する。RAID
1構造の多数の実装が特にタンデム・コンピュータによ
り行われた。
に加えることの各語の誤り検出訂正(EDC)ビットを
別々のディスク・ドライブへ記憶する(これは又「ビッ
ト・ストライピング」としても知られている)。例え
ば、フローラ他への米国特許第4,722,085号
は、複数個の相対的に小さく、独立して動作するディス
ク・サブシステムを用いて、非常に高度な対故障性と非
常に高速なデータ転送帯域とを有する巨大な大容量ディ
スク・ドライブとして機能するディスク・ドライブ・メ
モリを開示している。データ・オーガナイザは各32ビ
ット・データ語へ7EDCビット(公知のハミング・コ
ードを用いて決定される)を追加して誤り検出と誤り訂
正能力を与える。生成した39ビット語はディスク・ド
ライブ当り1ビットで39ディスク・ドライブへ書込ま
れる。39ディスク・ドライブの内の1個が故障した場
合、各々記憶された39ビット語の残りの38ビットを
用いて、各データ語をディスク・ドライブから読出すに
つれて語毎に各32ビット・データ語を再構成可能であ
る。
システムに多数のディスク・ドライブが必要な点であり
(何故なら大多数のコンピュータは32ビット語を使用
しているから)、EDCビットを記憶するために比較的
高い比率のドライブを必要とすることである(39中7
ドライブ)。RAID2ディスク・ドライブ・メモリ・
システムの別な制約は、個々のディスク・アクチュエー
タが一体で動作して各データ・ブロックを書込み、その
ビットが全てのディスク・ドライブに渡って分布してい
る点である。この配列は、個々の各ディスクがデータの
ブロックの一部を転送するため、高データ転送帯域を有
し、結果の効果として単一のドライブがブロックをアク
セスする場合より非常に速く全ブロックがコンピュータ
・システムに利用可能となる。これは大きなデータ・ブ
ロックには有利である。しかしながら、この配置は又実
質的に全記憶装置へ対して単一の読取/書込ヘッド・ア
クチュエータのみを与える。「単一の」アクチュエータ
により一時に1つのデータ・ファイルのみがアクセス可
能であるため、これはデータ・ファイルが小さい時には
ドライブ・アレイのランダム・アクセス性能へ逆に影響
する。従って、RAID2システムは、多くの小データ
・ファイルへの多数のランダム・アクセスがデータ記憶
と転送動作の大部分を占める銀行業務、財務、予約シス
テムのようなオンライン・トランザクション処理(OL
TP)用に設計されたコンピュータ・システムには一般
に適当とは考えられない。
記憶装置は故障又はデータ誤りを検出する内部装置を有
するという概念を基にしている。それ故、誤りの位置を
検出するために余分な情報を記憶する必要はなく、従っ
て単純な型式のパリティを基にした誤り訂正が用いられ
る。このアプローチでは、故障を生じる全記憶装置の内
容を「排他OR」(XOR)してパリティ情報を発生す
る。結果のパリティ情報は単一の冗長記憶装置へ記憶さ
れる。記憶装置が故障した場合、当該装置上のデータ
は、残りの記憶装置からのデータをパリティ情報とXO
Rすることにより代替記憶装置へ再構成可能である。こ
のような配置はミラー・ディスクRAID1構造に対し
て「N」記憶装置に1個の別な記憶装置のみが必要であ
るという点で利点を有する。RAID3構造の別な特徴
は、RAID2システムと同様にディスク・ドライブが
結合して動作し、単一のディスク・ドライブがパリティ
装置として指示されている点である。
並列同期ディスク・ドライブと1個の冗長パリティ・ド
ライブを用いたマイクロポリス社の並列ディスク・アレ
イ、モデル1804 SCSIである。4個のデータ・
ディスク・ドライブの内の1個の故障はパリティ・ディ
スク・ドライブに記憶したパリティ・ビットの使用によ
り修復可能である。RAID3システムの他の例はオー
ウチへの米国特許第4,092,732号に記載されて
いる。
置はRAID2システムよりデータ装置に対する冗長装
置の比が相当低い。しかしながら、RAID3システム
は、個々のディスク・アクチュエータが結合されて一体
で動作するという点でRAID2システムと同じ性能制
約を有する。これは、一時に1つのデータ・ファイルの
みが「単一の」アクチュエータによりアクセス可能であ
るために、データ・ファイルが小さい時にはドライブ・
アレイのランダム・アクセス性能に逆に影響を与える。
従って、RAID3システムはOLTP用に設計された
コンピュータ・システムには一般に適当とは考えられな
い。
リティ誤り訂正概念を使用しているが、個々のディスク
・ドライブ・アクチュエータの動作を「分解」し、各デ
ィスクへのより大きな最小量のデータ(一般にはディス
ク・セクタ)を読取書込することにより小ファイルのラ
ンダム読取に対するRAID3システムの性能を改良す
る(これは又ブロック・ストライピングとして知られて
いる)。RAID4構造の別な特徴は、単一の記憶装置
をパリティ装置として指定する点である。
しているデータ記憶装置のどれかへデータ・ブロックを
書込むことは又パリティ装置上に新たなパリティ・ブロ
ックを書込むことを必要とする。パリティ装置に記憶し
たパリティ情報を読出して旧データとXORしなければ
ならず(旧データの情報内容を「除去」するため)、生
成した和を新たなデータとXORしなければならない
(新たなパリティ情報を与えるため)。データ及びパリ
ティ・レコードの両方をディスク・ドライブへ再書込し
なければならない。この過程は一般に「読出−変更−書
込」列として参照される。
ドによりカバーされるデータ記憶装置のどれかでレコー
ドが変更される度に単一のパリティ装置上で読取及び書
込が発生する。単位時間当りに実行可能なレコードの変
更数は、多重データ記憶装置の並列動作により与えられ
る速いアクセス速度と対向するパリティ装置のアクセス
速度の関数であるため、パリティ装置がデータ書込動作
への障害となる。この制約のため、RAID4システム
は一般にOLTP用に設計されたコンピュータ・システ
ムには適当と考えられない。実際、RAID4システム
は商用には実装されていない。
リティ誤り訂正概念と独立のアクチュエータを使用して
いるが、データ及びパリティ情報を全ての利用可能なデ
ィスク・ドライブに渡って分布させることによりRAI
D4システムの書込性能を改善する。標準的には、組
(「冗長群」としても知られている)中の「N+1」個
の記憶装置をブロックとして参照される複数個の等しい
サイズのアドレス域に分割する。各記憶装置は一般に同
じ数のブロックを含む。同じ装置アドレス域を有する冗
長群中の各記憶装置からのブロックは「ストライプ」と
して参照される。各ストライプはNブロックのデータ加
えることの残りのストライプ用のパリティを含む1記憶
装置上の1つのパリティ・ブロックを有する。別のスト
ライプの各々がパリティ・ブロックを有し、パリティ・
ブロックは異なる記憶装置上に分布している。冗長群中
のデータの各修正に付随するパリティ更新作業はそれ故
異なる記憶装置上に分布する。単一の装置が全てのパリ
ティ更新作業の負荷を負うことはない。
D5システムでは、ブロックの第1ストライプのパリテ
ィ情報は第5ドライブへ書込まれ、ブロックの第2スト
ライプのパリティ情報は第4ドライブへ書込まれ、ブロ
ックの第3ストライプのパリティ情報は第3ドライブへ
書込まれ、等々である。以後のストライプのパリティ情
報は標準的にはらせん状パターンで(他のパターンを使
用してもよいが)、ディスク・ドライブを進行する。
ティ情報を記憶するのには使用されず、RAID4構成
の障害は除去される。RAID5システムの例はクラー
ク他への米国特許第4,751,785号に記述されて
いる。
システムの制約は、データ・ブロック中の変更は2回の
読取と2回の書込操作を含む読取−変更−書込列を必要
とすることで、旧パリティ・ブロックと旧データ・ブロ
ックを読取ってXORしなければならず、結果の和を新
たなデータとXORしなければならない。データ及びパ
リティ・ブロックの両方をディスク・ドライブへ再書込
しなければならない。2回の読取操作は2回の書込操作
と同様に並列に実行してもよいが、RAID4又はRA
ID5システム中のデータのブロックの修正は従来のデ
ィスクの同様の操作より相当長くかかる。従来のディス
クは予備的な読取操作を必要とせず、従って書込操作を
実行するためにはディスク・ドライブが従前の位置へ回
転することを待機しなければならない。回転潜在時間の
みで標準的なデータ変更操作に要する時間の約50%に
達する。さらに、2個のディスク記憶装置が各データ変
更操作の時間に関係し、全体としてのシステムのスルー
プットを制限する。
D5型式のシステムは、冗長度に対する低いオーバーヘ
ッド・コスト、良好な読取性能、まあまあの書込性能と
共に高データ信頼性を与えるため、非常に一般的になっ
てきている。
システムで特別な有用性を有している。多くのOLTP
システムは高利用度システムでなければならない、すな
わちシステムの完全な故障は低確率を有することを意味
する。高利用度は、低い平均修理時間(MTTR)の対
故障設計を有する高信頼性部品を使用し、部品の故障が
システムの能力を減少させるが全体システムの故障を発
生させない「段階的」劣化を設計することにより達成可
能である。
であるが、このような能力のみが高利用度システムを保
証するものではない。記憶装置が故障した場合、全体シ
ステム操作は故障した記憶装置を取替えてその上の情報
を復元するまで続行不能である。RAID構成中の記憶
装置が故障すると、代替記憶装置を故障した記憶装置に
置換え(1組以上の予備から手動で又は電子的に切替え
る)、各パリティ・ブロックを冗長群中の残りの記憶装
置ドライブからの全ての対応するデータ・ブロックとX
ORすることにより「失れた」データを代替記憶装置上
に再構成することを当該技術は教示している。このよう
な再構成はパリティ情報が正しいことを仮定している。
置の故障に関係しない状況でデータは失れる。例えば、
書込操作中に一時的な「故障」(停電又はコントローラ
故障)が記憶装置に発生した場合、データ又は対応する
パリティ情報が正しく書込まれ、正当である保証はな
い。データ及びその関連パリティを更新するために2回
のI/O操作が必要であるため、システム終了前にどち
らのI/O操作が完了したかを決定することは困難であ
る。従って、書込まれているデータは間違っている可能
性がある。さらに、他の記憶装置上に記憶したパリティ
情報のあるものが間違いの後にある記憶装置が完全に故
障した場合、故障した記憶装置は良好なデータで完全に
は再構成できない。
れている1つの方法はクラーク他への米国特許第4,7
61,785号に記載されている。この引例は各データ
・ブロックと対応するパリティ・ブロックに記憶したバ
ージョン番号を用いることを教示している。あるデータ
・ブロックの書込操作が完了した時、データ・ブロック
と対応するパリティ・ブロック中のバージョン番号は等
しい。失れたレコードの復元中、データ・ブロックとパ
リティ・ブロックの同期を保証するためバージョン番号
を検査する。正しい同期のない強制復元は予測不能なデ
ータを発生する。しかしながら、バージョン番号の更新
は正常動作中の処理オーバーヘッドを必要とすると共
に、各ブロックにバージョン番号を記憶させる必要性の
ため容量がわずかに減少する。
IDシステム中で正しいパリティ情報が発生することを
保証する簡単な方法の必要性が存在する。又、このよう
なパリティ情報の復元が、全体のシステム動作は正常に
続行しつつ「オンライン」で実行可能であるRAIDシ
ステムを有することも望ましい。又、前記パリティ情報
の復元が正常動作時に余分な処理オーバーヘッドなしで
実行可能なRAIDシステムを有することも望ましい。
る。
置故障により発生した書込障害後に記憶装置へ正しいデ
ータを復元する2つの方法を提供する。どちらの方法も
オンラインで実行でき、冗長アレイ・システムの正常動
作には殆んど中断を与えず、かつ正常動作時には余分な
処理を必要としない。
む。 (1)一時的故障が発生した時書込まれていたストライ
プに対して、ストライプ中の全てのデータ・ブロックを
用いて(故障前に書込まれていた多分破壊されたデータ
・ブロックを含めて)関係冗長ブロック(そのデータ・
ブロックについての冗長ブロック)を再計算し、 (2)再計算した冗長ブロックを記憶させ、 (3)中断された書込操作をCPUから再発行し、 (4)再発行した書込操作を正常に実行する(すなわ
ち、破壊されたデータ・ブロックを新たなデータ・ブロ
ックで重ね書きし、再計算した冗長ブロックを更新す
る)。
・ブロックの正しい冗長ブロックを作成する。再発行し
た書込操作を実行することにより、古い(そして多分破
壊された)データ・ブロックを再計算冗長ブロックから
「減算」させる。未破壊の新たなデータ・ブロックが旧
データ・ブロック上に書込まれ、再計算された冗長ブロ
ックへ「加算」されて新たな訂正冗長ブロックを作成す
る。新たな訂正冗長ブロックは適当な記憶装置へ書込ま
れる。
む。 (1)中断された書込操作をCPUへ再発行し、 (2)一時的故障が発生した時書込まれていたストライ
プに対しては、ストライプ中の全てのデータ・ブロック
を用いて(故障前に書込まれていた多分破壊されたデー
タ・ブロックを除いて)新たな冗長ブロックを計算し、 (3)多分破壊された旧冗長ブロック上に計算した冗長
ブロックを書込み、 (4)多分破壊された旧データ・ブロック上に新たにデ
ータ・ブロックを書込む。
図面と以下の説明に記述されている。一旦本発明が知ら
れると、多くの追加の新考案や変更が当業者には明かと
なる。
例と例示は本発明の方法に対する制約ではなく、単なる
例示として考えるべきである。
図である。バス2によりアレイ・コントローラ3へ結合
したCPU1が図示してある。アレイ・コントローラ3
はI/Oバス(例えばSCSIバス)により複数個の記
憶装置S1−S5(5個は単なる1例として図示してあ
る)の各々へ結合される。アレイ・コントローラ3は記
憶装置を制御するためCPU1とは独立に動作可能な別
個のプログラム可能なマルチタスク・プロセッサ(例え
ばカリフォルニア州サニーベイルのMIPS社作成のM
IPS R3000 RISCプロセッサ)を含むこと
が望ましい。本発明はコントローラ3により実行される
マルチタスク・コンピュータ・プログラムとして実装さ
れることが望ましい。
分けられる。以下に説明する図示例では、冗長群は説明
の簡単のため全ての記憶装置S1−S5を含む。
システムの図である。図示のアレイは5個の記憶装置S
1−S5を含む。各行A−Hはストライプである。冗長
ブロックは丸付番号により示され、アレイ中に分散され
ている。ストライプ内の各記憶単位として、簡単のため
1ビット「ブロック」を図示してある。各ブロックはこ
れに代わってバイト、セクタ又はセクタ群のように他の
任意のサイズの単位でもよい。
書込操作を「スタック」することができ、したがってこ
のような書込操作が中断されるといくつかのストライプ
が破壊され得る。簡単のため以下の説明は単一のストラ
イプを復元することについて行う。しかしながら、本発
明は一時的故障後に複数個のストライプを復元するより
一般的な場合にも適用できることを理解すべきである。
示するが、ストライプCへの書込中に一時的故障が発生
している(Xが破壊データ及び/又は冗長ブロックを表
わす)。故障のため、CPU1からのデータ又は対応す
る冗長情報は正しく書込まれ、正当である保証はない。
このような故障は、例えば記憶装置S1又は全ての記憶
装置への停電、又はコントローラ3の故障から発生しう
る。
を正した後、本発明のどちらかの方式を用いて損傷スト
ライプを正しく復元できる。
を表わす高レベルのフローチャートである。図3に示し
た段階は以下で説明される。
ストライプ(図2AのストライプC)に対して、関連す
る冗長ブロック(図2BのS3上)はストライプ中の全
データ・ブロック(故障の前に書込まれていた破壊の可
能性のあるデータ・ブロックを含めて)を用いて再計算
される。
るため、アレイ中のストライプCの記憶装置S1、S
2、S4、S5からデータ・ブロックが読取られ(段階
30)、XORされる(段階31)。この第1段階は、
S1上のデータ・ブロックが「0」又は「1」のどちら
に係らず、全記憶装置上の対応データ・ブロックの現実
の値に対して正当な冗長ブロックを作成する。再計算さ
れた冗長ブロックはアレイの対応位置(ストライプC上
のS3)に記憶されるか、又は高速処理用の「スクラッ
チパッド」メモリ域にセーブされる(段階32)。
書込操作からの正しいデータ・ブロックがストライプC
(この例では)上のS1上の記憶に対してアレイ・コン
トローラ3へ再発行される(段階33)。書込操作は正
常な方法で実行される。すなわち、再計算された冗長ブ
ロック(ストライプC上のS3又はスクラッチパッド・
メモリから)と旧「データ」ブロック(ストライプC上
のS1から)がアレイから読取られ(段階34)、再計
算された冗長ブロックが旧「データ」ブロックを「減
算」(望ましい実施例ではXORし)、新たなデータ・
ブロックを「加算する」(XORする)(段階35)。
新たな冗長ブロックと新たなデータ・ブロックは次いで
アレイの適当な記憶装置に記憶される(段階36)。
り、旧(多分破壊された)データ・ブロックは再計算し
た冗長ブロックから「減算」される。未破壊新規データ
・ブロックは旧データ・ブロック上に書込まれ、再計算
した冗長ブロックへ「加算」されて新たな訂正冗長ブロ
ックを作成する。新たな訂正冗長ブロックは適当な記憶
装置へ書込まれる。影響を受けた各ストライプを訂正し
た後、アレイは正常に使用される。
する記憶装置は「ロック」され、同時操作のI/Oタス
クが復元過程に影響を与えないようにすることが望まし
い。
すフローチャートである。図4に示す各段階を以下に説
明する。
により実行されていて中断された書込操作からの正当な
データ・ブロックは記憶用にアレイ・コントローラ3へ
再発行される(段階40)。一時的故障が発生した時書
込まれていたストライプ(図2AのストライプC)に対
しては、ストライプ中の全ての正当なデータ・ブロック
(ただし、故障前に書込まれていた多分破壊されている
データ・ブロックを除いて。もちろん、そのストライプ
の冗長ブロックも除いて)を使用して新たな冗長ブロッ
クが計算される。
イ中のストライプCの記憶装置S2、S4、S5からデ
ータ・ブロックが読取られ(段階40)、新たなデータ
・ブロックとXOR(望ましい実施例では)される(段
階41)。この第1段階は全ての記憶装置上の対応する
正しいデータ・ブロックの実際の値と新たなデータ・ブ
ロックに対して正しい冗長ブロックを作成する。
する冗長ブロック位置(ストライプCのS3)へ記憶さ
れ、新たなデータ・ブロックはアレイの適当な記憶装置
(ストライプCのS1)へ記憶される(段階43)。影
響を受けた各ストライプを訂正した後、アレイは正常に
使用される。
ック」され、同時操作のI/Oタスクが復元過程に影響
しないことが望ましい。
以上の未解決書込要求を再発行できない可能性が存在す
る(例えばCPU1の何らかの故障)。記憶装置の冗長
データは故障時に変更されていない各ストライプのデー
タ・ブロック中の正しいユーザ・データと矛盾のないも
のであることを保証することは依然必要である。こうし
ないと、以後の誤りは訂正不能である。それ故、故障に
より影響された各ストライプの冗長ブロックは、ストラ
イプ中の各データ・ブロック(破壊したデータ・ブロッ
クを含む)を読取り、このデータ・ブロックから新たな
冗長ブロックを発生し、新たな冗長ブロックをストライ
プ中の適正な位置へ記憶することにより復元される(す
なわち基本的には上述の段階30、31、32を実行す
る)。このような復元は、少なくとも故障に影響されな
いストライプに対してはアレイが正常に機能し続けてい
る間はこのような復元は別なタスクとしてオンラインで
実行される。
た各ストライプ中の冗長ブロックを復元し、従ってスト
ライプ中のデータ・ブロックへの以後の変更が正しいも
のであることを保証するが、故障時に書かれていたデー
タを完全に復元することが望ましい。それ故、より大き
な信頼性を与えるため、本発明のRAIDシステムのコ
ントローラ3は、各書込操作が完了するまでCPU1か
らの書込要求を一時的に記憶するデータ・バッファとし
て不揮発記憶素子(例えば電池駆動のRAM)を含むこ
とが望ましい。上述のように一時的故障が発生した場
合、コントローラ3は最初に不揮発記憶素子から書込デ
ータを得ようとする。何らかの理由でこの動作が失敗し
た場合、コントローラ3はCPU1から書込データを得
ようとする。
情報がRAIDシステムで発生されることを保証する2
つの簡単な方法を提供する。復元操作時の各影響記憶装
置のロックと同時タスクとしての実装のため、どちらの
方法も冗長アレイ・システムの正常動作に殆んど中断を
与えずオンラインで使用可能であり、かつ正常動作時に
付加処理を必要としない。
も係らず、本発明の要旨と範囲から逸脱することなく多
くの変更が加えられることを理解すべきである。例え
ば、本発明はRAID3、RAID4、又はRAID5
システムに使用可能である。さらに、XOR生成パリテ
ィに加えて又はその代りに誤り訂正法を必要な冗長情報
に使用してもよい。リード・ソロモン・コードを用いた
1つのこのような方法は、本発明の譲受人に譲渡された
「アレイ型ディスク・ドライブ・システムとその方法」
という名称の1988年11月14日提出の米国特願一
連番号第270,713号に開示されている。この引例
に教示された構造と方法により、XORとリード・ソロ
モン(又は他のシステム)冗長度を用いた場合2個の記
憶装置の喪失に適応できる。従って、本発明は特定の図
示実施例により限定されるものではなく、添附特許請求
の範囲によってのみ限定されるものと理解すべきであ
る。
ク図。
の図。Bは1つの記憶装置上の損傷データ・ブロックを
示すモデルRAID5システムの図。
わすフローチャートを示す図。
わすフローチャートを示す図。
Claims (30)
- 【請求項1】 コントローラに接続したデータ記憶装置
の冗長アレイにおいて、データ記憶装置は複数個のデー
タ・ブロックと少なくとも1個の関係冗長ブロックを含
む少なくとも1個のストライプを有し、データ変更操作
時のデータ記憶装置の一時的故障により生じた前記ブロ
ックのどれかにおける破壊の可能性の後に、正しいデー
タ・ブロックと少くとも1個の関係冗長ブロックを各デ
ータ記憶装置ストライプへ復元する方法であって、 イ.多分破壊されたブロックを含む各ストライプの中
の、多分破壊されたデータ・ブロックを含む全てのデー
タ・ブロックをアクセスする段階と、 ロ.アクセスされたブロックから少なくとも1個の冗長
ブロックを計算する段階と、 ハ.計算された少なくとも1個の冗長ブロックをセーブ
する段階と、 ニ.記憶装置の冗長アレイへデータ変更操作からの正し
いデータ・ブロックを記憶用に再発行する段階と、 ホ.セーブされた少なくとも1個の計算された冗長ブロ
ックを更新する段階と、 ヘ.更新された少なくとも1個の冗長ブロックと正しい
データ・ブロックを当該ストライプに記憶する段階とを
含んでなる方法。 - 【請求項2】 請求項1記載の方法において、各ストラ
イプの少なくとも1個の冗長ブロックはパリティ情報を
含み、前記冗長ブロックを計算する段階はアクセスした
ブロックを排他ORする段階を含む方法。 - 【請求項3】 請求項1記載の方法において、前記セー
ブされた少なくとも1個の計算された冗長ブロックはパ
リティ情報を含み、前記冗長ブロックを更新する段階
は、 イ.多分破壊されたデータ・ブロックをアクセスする段
階と、 ロ.アクセスされたデータ・ブロックを前記セーブされ
た冗長ブロック及び前記再発行された正しいデータ・ブ
ロックと排他ORして新たな冗長ブロックを発生する段
階とを含む方法。 - 【請求項4】 請求項1記載の方法において、請求項1
の各段階を他の入出力タスクと同時にタスクとして実行
する段階をさらに含む方法。 - 【請求項5】 請求項4記載の方法において、復元過程
の間読み取られ又は変更される各ブロックをロックする
段階をさらに含む方法。 - 【請求項6】 請求項1記載の方法において、データ変
更操作が完了するまで冗長アレイへ発行された各データ
変更操作を不揮発性記憶素子へ記憶させる段階をさらに
含む方法。 - 【請求項7】 コントローラに接続したデータ記憶装置
の冗長アレイにおいて、データ記憶装置は複数個のデー
タ・ブロックと少なくとも1個の関係冗長ブロックとを
含む少なくとも1個のストライプを有し、データ変更操
作時のデータ記憶装置の一時的故障により生じた前記ブ
ロックのどれかにおける破壊の可能性の後に正しいデー
タ・ブロックと少なくとも1個の関係冗長ブロックを各
データ記憶装置ストライプへオンライン復元する方法で
あって、 イ.データ変更操作からの正しいデータ・ブロックを記
憶装置の冗長アレイへ記憶用に再発行する段階と、 ロ.多分破壊されたブロックを含むストライプ中の全て
の未破壊データ・ブロックをアクセスする段階と、 ハ.アクセスされたブロックと再発行された正しいデー
タ・ブロックから少なくとも1個の冗長ブロックを計算
する段階と、 ニ.計算された少なくとも1個の冗長ブロックと正しい
データ・ブロックを当該ストライプに記憶させる段階
と、ホ.復元を他の入出力タスクと同時にタスクとして実行
する段階と を含んでなる方法。 - 【請求項8】 請求項7記載の方法において、各ストラ
イプの少なくとも1個の冗長ブロックはパリティ情報を
含み、前記冗長ブロックを計算する段階はアクセスされ
たブロックを再発行した正しいデータ・ブロックと排他
ORする段階を含む方法。 - 【請求項9】 請求項7記載の方法において、復元過程
の間読み取られ又は変更される各ブロックをロックする
段階をさらに含む方法。 - 【請求項10】 請求項7記載の方法において、データ
変更操作が完了するまで冗長アレイへ発行された各デー
タ変更操作を不揮発性記憶素子へ記憶させる段階をさら
に含む方法。 - 【請求項11】 コントローラに接続したデータ記憶装
置の冗長アレイにおいて、データ記憶装置は複数個のデ
ータ・ブロックと少なくとも1個の関係冗長ブロックと
を含む少なくとも1個のストライプを有し、データ変更
操作時のデータ記憶装置の一時的故障により生じた前記
ストライプ中のデータ・ブロック及び/又は前記冗長ブ
ロックにおける破壊の可能性の後に各データ記憶装置ス
トライプへ少なくとも1個の正しい関係冗長ブロックを
復元する方法であって、 イ.多分破壊されたブロックを含む各ストライプ中の多
分破壊されたデータ・ブロックを含む全てのデータ・ブ
ロックをアクセスする段階と、 ロ.アクセスされたブロックから少なくとも1個の冗長
ブロックを計算する段階と、 ハ.計算された少なくとも1個の冗長ブロックを当該ス
トライプへセーブする段階とを含んでなる方法。 - 【請求項12】 請求項11記載の方法において、各ス
トライプの少なくとも1個の冗長ブロックはパリティ情
報を含み、前記冗長ブロックを計算する段階はアクセス
されたブロックを排他ORする段階を含む方法。 - 【請求項13】 請求項11記載の方法において、請求
項11の各段階を他の入出力タスクと同時にタスクとし
て実行する段階をさらに含む方法。 - 【請求項14】 請求項13記載の方法において、復元
過程の間読み取られ又は変更される各ブロックをロック
する段階をさらに含む方法。 - 【請求項15】 請求項11記載の方法において、デー
タ変更操作が完了するまで冗長アレイへ発行された各デ
ータ変更操作を不揮発性記憶素子へ記憶させる段階をさ
らに含む方法。 - 【請求項16】 データ記憶装置の冗長アレイと関連さ
せて使用する制御システムであって、データ記憶装置は
複数個のデータ・ブロックと少なくとも1個の関係冗長
ブロックとを含む少なくとも1個のストライプを有する
ものであり、制御システムはデータ変更操作時のデータ
記憶装置の一時的故障により生じた前記ブロックのどれ
かにおける破壊の可能性の後に正しいデータ・ブロック
と少なくとも1個の関係冗長ブロックを各データ記憶装
置ストライプへ復元するものであり、当該制御システム
は、イ.その制御システムを記憶装置のアレイに結合する結
合手段と、 ロ.前記結合手段に結合され、 (1) 多分破壊されたブロックを含む各ストライプの中
の、多分破壊されたデータ・ブロックを含む全てのデー
タ・ブロックをアクセスし、(2) アクセスされたブロックから少なくとも1個の冗
長ブロックを計算し、(3)計算された 少なくとも1個の冗長ブロックをセー
ブし、(4)前記 記憶装置の冗長アレイへデータ変更操作から
の正しいデータ・ブロックを記憶用に再発行し、(5)セーブされた 少なくとも1個の計算された冗長ブ
ロックを更新し、(6) 更新された少なくとも1個の冗長ブロックと正し
いデータ・ブロックを当該ストライプに記憶する復元手
段とを含んでなる制御システム。 - 【請求項17】 請求項16記載の制御システムにおい
て、各ストライプの少なくとも1個の冗長ブロックはパ
リティ情報を含み、前記冗長ブロックは前記アクセスさ
れたブロックを排他ORすることにより計算される制御
システム。 - 【請求項18】 請求項16記載の制御システムにおい
て、セーブされた少なくとも1個の計算された冗長ブロ
ックはパリティ情報を含み、前記制御システムは、 イ.多分破壊されたデータ・ブロックをアクセスし、 ロ.アクセスされたデータ・ブロックをセーブされた冗
長ブロック及び再発行された正しいデータ・ブロックと
排他ORして新たな冗長ブロックを発生することにより
前記冗長ブロックを更新する手段をさらに含む制御シス
テム。 - 【請求項19】 請求項16記載の制御システムにおい
て、当該制御システムは他の入出力タスクと同時にタス
クとして復元機能を実行する手段を含むものである制御
システム。 - 【請求項20】 請求項19記載の制御システムにおい
て、当該制御システムは復元操作の間読み取られ又は変
更される各ブロックをロックする手段をさらに含むもの
である制御システム。 - 【請求項21】 請求項16記載の制御システムにおい
て、データ変更操作が完了するまで冗長アレイへ発行さ
れた各データ変更操作を記憶させる不揮発性記憶素子を
さらに含む制御システム。 - 【請求項22】 データ記憶装置の冗長アレイと関連さ
せて使用する制御システムであって、データ記憶装置は
複数個のデータ・ブロックと少なくとも1個の関係冗長
ブロックとを含む少なくとも1個のストライプを有する
ものであり、制御システムはデータ変更操作時のデータ
記憶装置の一時的故障により生じた前記ブロックのどれ
かにおける破壊の可能性の後に正しいデータ・ブロック
と少なくとも1個の関係冗長ブロックを各データ記憶装
置ストライプへオンライン復元するものであり、当該制
御システムは、イ.その制御システムを記憶装置のアレイに結合する結
合手段と、 ロ.前記結合手段に結合され、 (1) データ変更操作からの正しいデータ・ブロックを
記憶装置の冗長アレイへ記憶用に再発行し、(2) 多分破壊されたブロックを含むストライプ中の全
ての未破壊データ・ブロックをアクセスし、(3) アクセスされたブロックと再発行された正しいデ
ータ・ブロックから少なくとも1個の冗長ブロックを計
算し、(4) 計算された少くとも1個の冗長ブロックと正しい
データ・ブロックを当該ストライプに記憶させ、 (5)復元を他の入出力タスクと同時にタスクとして実
行する復元手段と を含んでなる制御システム。 - 【請求項23】 請求項22記載の制御システムにおい
て、各ストライプの少なくとも1個の冗長ブロックはパ
リティ情報を含み、前記冗長ブロックはアクセスされた
ブロックを再発行した正しいデータ・ブロックと排他O
Rすることにより計算される制御システム。 - 【請求項24】 請求項22記載の制御システムにおい
て、当該制御システムは復元操作の間読み取られ又は変
更される各ブロックをロックする手段をさらに含むもの
である制御システム。 - 【請求項25】 請求項22記載の制御システムにおい
て、データ変更操作が完了するまで冗長アレイへ発行さ
れた各データ変更操作を記憶する不揮発性記憶素子をさ
らに含む制御システム。 - 【請求項26】 データ記憶装置の冗長アレイと関連さ
せて使用する制御システムであって、データ記憶装置は
複数個のデータ・ブロックと少なくとも1個の関係冗長
ブロックとを含む少なくとも1個のストライプを有する
ものであり、制御システムはデータ変更操作時のデータ
記憶装置の一時的故障により生じた前記ストライプ中の
データ・ブロック及び/又は前記冗長ブロックにおける
破壊の可能性の後に各データ記憶装置ストライプへ少な
くとも1個の正しい関係冗長ブロックを復元するもので
あり、当該制御システムは、イ.その制御システムを記憶装置のアレイに結合する結
合手段と、 ロ.前記結合手段に結合され、 (1) 多分破壊されたブロックを含む各ストライプ中の
多分破壊されたデータ・ブロックを含む全てのデータ・
ブロックをアクセスし、(2) アクセスされたブロックから少なくとも1個の冗
長ブロックを計算し、(3)計算された 少なくとも1個の冗長ブロックを当該
ストライプへセーブする復元手段とを含んでなる制御シ
ステム。 - 【請求項27】 請求項26記載の制御システムにおい
て、各ストライプの少なくとも1個の冗長ブロックはパ
リティ情報を含み、前記冗長ブロックはアクセスされた
ブロックを排他ORすることにより計算される制御シス
テム。 - 【請求項28】 請求項26記載の制御システムにおい
て、制御システムは他の入出力タスクと同時にタスクと
して復元機能を実行する制御システム。 - 【請求項29】 請求項28記載の制御システムにおい
て、当該制御システムは復元操作の間読み取られ又は変
更される各ブロックをロックする手段をさらに含むもの
である制御システム。 - 【請求項30】 請求項26記載の制御システムにおい
て、データ変更操作が完了するまで冗長アレイへ発行さ
れた各データ変更操作を記憶する不揮発性記憶素子をさ
らに含む制御システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/632,182 US5235601A (en) | 1990-12-21 | 1990-12-21 | On-line restoration of redundancy information in a redundant array system |
US632182 | 2000-08-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06131121A JPH06131121A (ja) | 1994-05-13 |
JP3071017B2 true JP3071017B2 (ja) | 2000-07-31 |
Family
ID=24534426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3338882A Expired - Lifetime JP3071017B2 (ja) | 1990-12-21 | 1991-12-20 | 冗長アレイ・システムにおける冗長情報の復元方法および制御システム |
Country Status (6)
Country | Link |
---|---|
US (2) | US5235601A (ja) |
EP (2) | EP0492808B1 (ja) |
JP (1) | JP3071017B2 (ja) |
AU (1) | AU8828691A (ja) |
CA (1) | CA2056235C (ja) |
DE (2) | DE69129444T2 (ja) |
Families Citing this family (141)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5544347A (en) | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
JPH04184634A (ja) * | 1990-11-20 | 1992-07-01 | Matsushita Electric Ind Co Ltd | マイクロコンピュータ |
US6874101B2 (en) * | 1991-01-31 | 2005-03-29 | Hitachi, Ltd. | Storage unit subsystem |
JP3409859B2 (ja) | 1991-01-31 | 2003-05-26 | 株式会社日立製作所 | 制御装置の制御方法 |
JP2743606B2 (ja) * | 1991-04-11 | 1998-04-22 | 三菱電機株式会社 | アレイ型記録装置 |
US5499337A (en) | 1991-09-27 | 1996-03-12 | Emc Corporation | Storage device array architecture with solid-state redundancy unit |
US5313626A (en) * | 1991-12-17 | 1994-05-17 | Jones Craig S | Disk drive array with efficient background rebuilding |
US5398253A (en) * | 1992-03-11 | 1995-03-14 | Emc Corporation | Storage unit generation of redundancy information in a redundant storage array system |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
ATE222384T1 (de) * | 1993-06-03 | 2002-08-15 | Network Appliance Inc | Verfahren und dateisystem zur zuordnung von datei-blöcken zu speicherplatz in einem raid- plattensystem |
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 |
US7174352B2 (en) | 1993-06-03 | 2007-02-06 | Network Appliance, Inc. | File system image transfer |
DE69425658T2 (de) * | 1993-06-03 | 2001-04-19 | Network Appliance, Inc. | Anordnung eines dateisystems zum beschreiben beliebiger bereiche |
EP1031928B1 (en) * | 1993-06-04 | 2005-05-18 | Network Appliance, Inc. | A method for providing parity in a raid sub-system using non-volatile memory |
AU682523B2 (en) * | 1993-07-01 | 1997-10-09 | Legent Corporation | System and method for distributed storage management on networked computer systems |
US5396620A (en) * | 1993-12-21 | 1995-03-07 | Storage Technology Corporation | Method for writing specific values last into data storage groups containing redundancy |
US5485571A (en) * | 1993-12-23 | 1996-01-16 | International Business Machines Corporation | Method and apparatus for providing distributed sparing with uniform workload distribution in failures |
US5446855A (en) * | 1994-02-07 | 1995-08-29 | Buslogic, Inc. | System and method for disk array data transfer |
US5657439A (en) * | 1994-08-23 | 1997-08-12 | International Business Machines Corporation | Distributed subsystem sparing |
JP3661205B2 (ja) * | 1994-09-09 | 2005-06-15 | 株式会社日立製作所 | ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法 |
US5412668A (en) * | 1994-09-22 | 1995-05-02 | International Business Machines Corporation | Parity striping feature for optical disks |
US5623595A (en) * | 1994-09-26 | 1997-04-22 | Oracle Corporation | Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system |
US5838906A (en) * | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5488701A (en) * | 1994-11-17 | 1996-01-30 | International Business Machines Corporation | In log sparing for log structured arrays |
US5533190A (en) * | 1994-12-21 | 1996-07-02 | At&T Global Information Solutions Company | Method for maintaining parity-data consistency in a disk array |
JP3253473B2 (ja) * | 1995-01-27 | 2002-02-04 | 富士通株式会社 | 二重化された共用メモリの等価性回復処理方法および装置 |
US5678061A (en) * | 1995-07-19 | 1997-10-14 | Lucent Technologies Inc. | Method for employing doubly striped mirroring of data and reassigning data streams scheduled to be supplied by failed disk to respective ones of remaining disks |
US5875456A (en) * | 1995-08-17 | 1999-02-23 | Nstor Corporation | Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array |
US5657468A (en) * | 1995-08-17 | 1997-08-12 | Ambex Technologies, Inc. | Method and apparatus for improving performance in a reduntant array of independent disks |
US5933592A (en) * | 1995-10-13 | 1999-08-03 | Digital Equipment Corporation | Promoting device level error to raidset level error to restore redundacy in a raid array data storage system |
US5826001A (en) * | 1995-10-13 | 1998-10-20 | Digital Equipment Corporation | Reconstructing data blocks in a raid array data storage system having storage device metadata and raid set metadata |
US5737744A (en) * | 1995-10-13 | 1998-04-07 | Compaq Computer Corporation | Disk array controller for performing exclusive or operations |
US5778426A (en) * | 1995-10-23 | 1998-07-07 | Symbios, Inc. | Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method |
US5708771A (en) * | 1995-11-21 | 1998-01-13 | Emc Corporation | Fault tolerant controller system and method |
US5805787A (en) * | 1995-12-29 | 1998-09-08 | Emc Corporation | Disk based disk cache interfacing system and method |
US5724501A (en) * | 1996-03-29 | 1998-03-03 | Emc Corporation | Quick recovery of write cache in a fault tolerant I/O system |
US6055577A (en) * | 1996-05-06 | 2000-04-25 | Oracle Corporation | System for granting bandwidth for real time processes and assigning bandwidth for non-real time processes while being forced to periodically re-arbitrate for new assigned bandwidth |
US6101497A (en) * | 1996-05-31 | 2000-08-08 | Emc Corporation | Method and apparatus for independent and simultaneous access to a common data set |
US6092066A (en) * | 1996-05-31 | 2000-07-18 | Emc Corporation | Method and apparatus for independent operation of a remote data facility |
US5734815A (en) * | 1996-08-22 | 1998-03-31 | Emc Corporation | Method and apparatus for efficient cyclical redundancy check (CRC) maintenance for sub-sector writes |
US6029231A (en) * | 1996-12-03 | 2000-02-22 | Emc Corporation | Retrieval of data stored on redundant disks across a network using remote procedure calls |
US5794254A (en) * | 1996-12-03 | 1998-08-11 | Fairbanks Systems Group | Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets |
US5926836A (en) * | 1996-12-03 | 1999-07-20 | Emc Corporation | Computer and associated method for restoring data backed up on archive media |
US6038665A (en) * | 1996-12-03 | 2000-03-14 | Fairbanks Systems Group | System and method for backing up computer files over a wide area computer network |
US6032224A (en) * | 1996-12-03 | 2000-02-29 | Emc Corporation | Hierarchical performance system for managing a plurality of storage units with different access speeds |
US5875478A (en) * | 1996-12-03 | 1999-02-23 | Emc Corporation | Computer backup using a file system, network, disk, tape and remote archiving repository media system |
US6460123B1 (en) | 1996-12-03 | 2002-10-01 | Emc Corporation | Mirroring computer data |
US5889933A (en) * | 1997-01-30 | 1999-03-30 | Aiwa Co., Ltd. | Adaptive power failure recovery |
US5974503A (en) * | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US5951691A (en) * | 1997-05-16 | 1999-09-14 | International Business Machines Corporation | Method and system for detection and reconstruction of corrupted data in a data storage subsystem |
US6016552A (en) * | 1997-06-06 | 2000-01-18 | The Chinese University Of Hong Kong | Object striping focusing on data object |
US5991894A (en) * | 1997-06-06 | 1999-11-23 | The Chinese University Of Hong Kong | Progressive redundancy transmission |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6317844B1 (en) | 1998-03-10 | 2001-11-13 | Network Appliance, Inc. | File server storage arrangement |
US6119244A (en) | 1998-08-25 | 2000-09-12 | Network Appliance, Inc. | Coordinating persistent status information with multiple file servers |
US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
US6519762B1 (en) | 1998-12-15 | 2003-02-11 | Dell Usa, L.P. | Method and apparatus for restoration of a computer system hard drive |
US6820088B1 (en) * | 2000-04-10 | 2004-11-16 | Research In Motion Limited | System and method for synchronizing data records between multiple databases |
US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
US6636879B1 (en) | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6977927B1 (en) | 2000-09-18 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and system of allocating storage resources in a storage area network |
US7386610B1 (en) | 2000-09-18 | 2008-06-10 | Hewlett-Packard Development Company, L.P. | Internet protocol data mirroring |
US6804819B1 (en) | 2000-09-18 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Method, system, and computer program product for a data propagation platform and applications of same |
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 |
GB2371886B (en) * | 2001-01-31 | 2005-06-22 | Hewlett Packard Co | Storage apparatus |
US6606690B2 (en) | 2001-02-20 | 2003-08-12 | Hewlett-Packard Development Company, L.P. | System and method for accessing a storage area network as network attached storage |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
US6801003B2 (en) * | 2001-03-13 | 2004-10-05 | Color Kinetics, Incorporated | Systems and methods for synchronizing lighting effects |
US7308512B1 (en) | 2001-05-16 | 2007-12-11 | Network Appliance, Inc. | Fiber channel adaptor for serial or parallel ATA disks |
US6961800B2 (en) * | 2001-09-28 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Method for improving processor performance |
US6954824B2 (en) * | 2001-10-15 | 2005-10-11 | International Business Machines Corporation | Method, system, and program for determining a configuration of a logical array including a plurality of storage devices |
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 |
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 |
US7640484B2 (en) | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple 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 |
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 |
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 |
US8402346B2 (en) * | 2001-12-28 | 2013-03-19 | Netapp, Inc. | N-way parity technique for enabling recovery from up to N storage device failures |
US7080278B1 (en) | 2002-03-08 | 2006-07-18 | Network Appliance, Inc. | Technique for correcting multiple storage device failures in a storage array |
US7254813B2 (en) * | 2002-03-21 | 2007-08-07 | Network Appliance, Inc. | Method and apparatus for resource allocation in a raid system |
US7200715B2 (en) | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US7539991B2 (en) * | 2002-03-21 | 2009-05-26 | Netapp, Inc. | Method and apparatus for decomposing I/O tasks 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 |
US6715048B1 (en) * | 2002-03-28 | 2004-03-30 | Emc Corporation | System and method for efficiently performing a restore operation in a data storage environment |
US6976146B1 (en) | 2002-05-21 | 2005-12-13 | Network Appliance, Inc. | System and method for emulating block appended checksums on storage devices by sector stealing |
US7024586B2 (en) * | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
JP2004046658A (ja) | 2002-07-15 | 2004-02-12 | Hitachi Ltd | データ転送方法 |
US7185144B2 (en) * | 2003-11-24 | 2007-02-27 | Network Appliance, Inc. | Semi-static distribution technique |
US7111147B1 (en) | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Location-independent RAID group virtual block management |
US7143235B1 (en) | 2003-03-21 | 2006-11-28 | Network Appliance, Inc. | Proposed configuration management behaviors in a raid subsystem |
US7664913B2 (en) * | 2003-03-21 | 2010-02-16 | Netapp, Inc. | Query-based spares management technique |
US7424637B1 (en) | 2003-03-21 | 2008-09-09 | Networks Appliance, Inc. | Technique for managing addition of disks to a volume of a storage system |
US7328364B1 (en) | 2003-03-21 | 2008-02-05 | Network Appliance, Inc. | Technique for coherent suspension of I/O operations in a RAID subsystem |
US7275179B1 (en) | 2003-04-24 | 2007-09-25 | Network Appliance, Inc. | System and method for reducing unrecoverable media errors in a disk subsystem |
US7246301B2 (en) * | 2003-06-13 | 2007-07-17 | Dell Products L.P. | Method for storage array error correction |
US7146461B1 (en) | 2003-07-01 | 2006-12-05 | Veritas Operating Corporation | Automated recovery from data corruption of data volumes in parity RAID storage systems |
US7730222B2 (en) | 2004-08-24 | 2010-06-01 | Symantec Operating System | Processing storage-related I/O requests using binary tree data structures |
US7725760B2 (en) | 2003-09-23 | 2010-05-25 | Symantec Operating Corporation | Data storage system |
US7991748B2 (en) | 2003-09-23 | 2011-08-02 | Symantec Corporation | Virtual data store creation and use |
US7577806B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Systems and methods for time dependent data storage and recovery |
US7409587B2 (en) | 2004-08-24 | 2008-08-05 | Symantec Operating Corporation | Recovering from storage transaction failures using checkpoints |
US7631120B2 (en) | 2004-08-24 | 2009-12-08 | Symantec Operating Corporation | Methods and apparatus for optimally selecting a storage buffer for the storage of data |
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 |
US7239581B2 (en) | 2004-08-24 | 2007-07-03 | Symantec Operating Corporation | Systems and methods for synchronizing the internal clocks of a plurality of processor modules |
US7296008B2 (en) | 2004-08-24 | 2007-11-13 | Symantec Operating Corporation | Generation and use of a time map for accessing a prior image of a storage device |
US7904428B2 (en) | 2003-09-23 | 2011-03-08 | Symantec Corporation | Methods and apparatus for recording write requests directed to a data store |
US7577807B2 (en) | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Methods and devices for restoring a portion of a data store |
GB0322424D0 (en) * | 2003-09-24 | 2003-10-29 | Ibm | Error detection in redundant array of storage units |
US7328305B2 (en) * | 2003-11-03 | 2008-02-05 | Network Appliance, Inc. | Dynamic parity distribution technique |
US7428691B2 (en) * | 2003-11-12 | 2008-09-23 | Norman Ken Ouchi | Data recovery from multiple failed data blocks and storage units |
US7366837B2 (en) * | 2003-11-24 | 2008-04-29 | Network Appliance, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7647451B1 (en) | 2003-11-24 | 2010-01-12 | Netapp, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7263629B2 (en) * | 2003-11-24 | 2007-08-28 | Network Appliance, Inc. | Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array |
US7702948B1 (en) * | 2004-07-13 | 2010-04-20 | Adaptec, Inc. | Auto-configuration of RAID systems |
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 |
US7321905B2 (en) * | 2004-09-30 | 2008-01-22 | International Business Machines Corporation | System and method for efficient data recovery in a storage array utilizing multiple parity slopes |
JP2006107351A (ja) * | 2004-10-08 | 2006-04-20 | Fujitsu Ltd | データ移行方法、記憶装置及びプログラム |
US20060143412A1 (en) * | 2004-12-28 | 2006-06-29 | Philippe Armangau | Snapshot copy facility maintaining read performance and write performance |
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 |
WO2007047346A2 (en) | 2005-10-14 | 2007-04-26 | Symantec Operating Corporation | Technique for timeline compression in a data store |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US20080070688A1 (en) * | 2006-09-20 | 2008-03-20 | John Loehrer | Real-time gaming system having scalable database |
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 |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
US8898536B2 (en) * | 2007-04-27 | 2014-11-25 | Netapp, Inc. | Multi-core engine for detecting bit errors |
US7840837B2 (en) * | 2007-04-27 | 2010-11-23 | Netapp, Inc. | System and method for protecting memory during system initialization |
US7836331B1 (en) | 2007-05-15 | 2010-11-16 | Netapp, Inc. | System and method for protecting the contents of memory during error conditions |
US7975102B1 (en) | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
JP5022240B2 (ja) * | 2008-01-08 | 2012-09-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | テープ媒体へのデータの上書き方法、及びその方法を具備した磁気テープ装置 |
US9158579B1 (en) | 2008-11-10 | 2015-10-13 | Netapp, Inc. | System having operation queues corresponding to operation execution time |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
JP5279785B2 (ja) * | 2010-09-17 | 2013-09-04 | 株式会社東芝 | コントローラ、記憶装置、およびプログラム |
US9672106B2 (en) | 2014-12-30 | 2017-06-06 | Nutanix, Inc. | Architecture for implementing erasure coding |
CN106294193B (zh) * | 2015-06-03 | 2019-10-15 | 杭州海康威视系统技术有限公司 | 存储设备及基于该存储设备的分块存储方法 |
US9910786B2 (en) * | 2015-11-03 | 2018-03-06 | Intel Corporation | Efficient redundant array of independent disks (RAID) write hole solutions |
US10567009B2 (en) | 2016-12-06 | 2020-02-18 | Nutanix, Inc. | Dynamic erasure coding |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3893178A (en) * | 1973-12-19 | 1975-07-01 | Information Storage Systems | Synchronization of multiple disc drives |
US4092732A (en) * | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
US4562576A (en) * | 1982-08-14 | 1985-12-31 | International Computers Limited | Data storage apparatus |
FR2561428B1 (fr) * | 1984-03-16 | 1986-09-12 | Bull Sa | Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques |
US4667326A (en) * | 1984-12-20 | 1987-05-19 | Advanced Micro Devices, Inc. | Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives |
US4754397A (en) * | 1985-02-15 | 1988-06-28 | Tandem Computers Incorporated | Fault tolerant modular subsystems for computers |
JPS61264599A (ja) * | 1985-05-16 | 1986-11-22 | Fujitsu Ltd | 半導体記憶装置 |
US4722085A (en) * | 1986-02-03 | 1988-01-26 | Unisys Corp. | High capacity disk storage system having unusually high fault tolerance level and bandpass |
US4761785B1 (en) * | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4775978A (en) * | 1987-01-12 | 1988-10-04 | Magnetic Peripherals Inc. | Data error correction system |
US4849978A (en) * | 1987-07-02 | 1989-07-18 | International Business Machines Corporation | Memory unit backup using checksum |
US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US4899342A (en) * | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
US4993030A (en) * | 1988-04-22 | 1991-02-12 | Amdahl Corporation | File system for a plurality of storage classes |
US4989206A (en) * | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
US4914656A (en) * | 1988-06-28 | 1990-04-03 | Storage Technology Corporation | Disk drive memory |
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
AU630635B2 (en) * | 1988-11-14 | 1992-11-05 | Emc Corporation | Arrayed disk drive system and method |
US5007053A (en) * | 1988-11-30 | 1991-04-09 | International Business Machines Corporation | Method and apparatus for checksum address generation in a fail-safe modular memory |
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 |
US5130992A (en) * | 1990-04-16 | 1992-07-14 | International Business Machines Corporaiton | File-based redundant parity protection in a parallel computing system |
-
1990
- 1990-12-21 US US07/632,182 patent/US5235601A/en not_active Expired - Lifetime
-
1991
- 1991-11-26 CA CA002056235A patent/CA2056235C/en not_active Expired - Lifetime
- 1991-11-27 DE DE69129444T patent/DE69129444T2/de not_active Expired - Lifetime
- 1991-11-27 DE DE0837393T patent/DE837393T1/de active Pending
- 1991-11-27 EP EP91310909A patent/EP0492808B1/en not_active Expired - Lifetime
- 1991-11-27 EP EP97203274A patent/EP0837393A3/en not_active Withdrawn
- 1991-11-29 AU AU88286/91A patent/AU8828691A/en not_active Abandoned
- 1991-12-20 JP JP3338882A patent/JP3071017B2/ja not_active Expired - Lifetime
-
1994
- 1994-12-01 US US08/349,766 patent/US5613059A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0837393A3 (en) | 2000-10-11 |
AU8828691A (en) | 1992-06-25 |
DE69129444T2 (de) | 1999-02-18 |
DE69129444D1 (de) | 1998-06-25 |
EP0492808A3 (en) | 1993-01-13 |
EP0837393A2 (en) | 1998-04-22 |
US5235601A (en) | 1993-08-10 |
DE837393T1 (de) | 1998-09-03 |
EP0492808B1 (en) | 1998-05-20 |
CA2056235C (en) | 2000-10-03 |
JPH06131121A (ja) | 1994-05-13 |
US5613059A (en) | 1997-03-18 |
EP0492808A2 (en) | 1992-07-01 |
CA2056235A1 (en) | 1992-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3071017B2 (ja) | 冗長アレイ・システムにおける冗長情報の復元方法および制御システム | |
EP0482819B1 (en) | On-line reconstruction of a failed redundant array system | |
US5379417A (en) | System and method for ensuring write data integrity in a redundant array data storage system | |
JP3129732B2 (ja) | コピーバックキャッシュを有する記憶装置アレイ | |
US5398253A (en) | Storage unit generation of redundancy information in a redundant storage array system | |
US6289471B1 (en) | Storage device array architecture with solid-state redundancy unit | |
JP3226370B2 (ja) | 高可用度ディスク配列に関する改善 | |
JP3164499B2 (ja) | ディスクアレイにおけるパリティデータの無矛盾性保持方法 | |
US5390327A (en) | 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 | |
US5504858A (en) | Method and apparatus for preserving data integrity in a multiple disk raid organized storage system | |
US7464322B2 (en) | System and method for detecting write errors in a storage device | |
US20020162076A1 (en) | Storage array employing scrubbing operations using multiple levels of checksums | |
US20040123032A1 (en) | Method for storing integrity metadata in redundant data layouts | |
US20030188101A1 (en) | Partial mirroring during expansion thereby eliminating the need to track the progress of stripes updated during expansion | |
JP2000207136A (ja) | 複数ドライブ故障トレラントraidアルゴリズム | |
US20050278476A1 (en) | Method, apparatus and program storage device for keeping track of writes in progress on multiple controllers during resynchronization of RAID stripes on failover | |
US7240237B2 (en) | Method and system for high bandwidth fault tolerance in a storage subsystem | |
GB2343265A (en) | Data storage array rebuild | |
JP2857288B2 (ja) | ディスクアレイ装置 | |
GB2402803A (en) | Arrangement and method for detection of write errors in a storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090526 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090526 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100526 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100526 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110526 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110526 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120526 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120526 Year of fee payment: 12 |