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
Application number
JP3338882A
Other languages
English (en)
Other versions
JPH06131121A (ja
Inventor
チャールズ スタリモ デビッド
アレクサンダー ブラント ウイリアム
ゴードン デビッド
Original Assignee
イーエムシー コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24534426&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3071017(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by イーエムシー コーポレーション filed Critical イーエムシー コーポレーション
Publication of JPH06131121A publication Critical patent/JPH06131121A/ja
Application granted granted Critical
Publication of JP3071017B2 publication Critical patent/JP3071017B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, 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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ装置のデ
ータ記憶に関し、特に冗長アレイ記憶システムにおける
パリティ情報のオンライン復元の方法及び制御システム
に関する。
【0002】
【従来の技術】標準的なデータ処理装置は一般に直接又
は制御装置とチャネルを介して中央処理装置(CPU)
へ接続した1個以上の記憶装置を含む。記憶装置の機能
は、特定のデータ処理タスクを実行する際にCPUが使
用するデータとプログラムを記憶することである。
【0003】現在のデータ処理装置では様々な型式の記
憶装置が使用されている。標準的な装置は、データを記
憶するための各制御装置を介して装置へ接続した1個以
上の大容量テープ装置及び/又はディスク・ドライブ
(磁気、光学又は半導体)を含む。
【0004】しかしながら、ある装置に得られた情報が
もはやシステムに利用可能でなくなるように大容量記憶
装置の1つが故障した場合には問題がある。一般に、こ
のような故障は全コンピュータ・システムをシャット・
ダウンする。
【0005】従来技術は信頼性あるデータ記憶を提供す
る問題を解決するいくつかの方法を示唆している。レコ
ードが相対的に短いシステムでは、記憶装置内の各デー
タ・レコードに追加するECCシンドローム・ビットを
発生する誤り訂正コードを使用することが可能である。
このコードにより、誤って読取られた小量のデータを訂
正することが可能である。しかしながら、このようなコ
ードは一般に誤った長いレコードを訂正する又は再生す
るのには不適当であり、記憶装置全体が故障した場合に
は何の救済もない。それ故、個々の記憶装置の外でデー
タ信頼性を提供する必要がある。
【0006】このような「外部」信頼性への他のアプロ
ーチが当該分野の従来技術の中にいくつも書かれてい
る。1988年6月ACM誌SIGMODでパターソン
他の「安価なディスクの冗長アレイ(RAID)のケー
ス」という題の論文でカフォルニア大学バークレー校
の研究グループは、ディスク・ドライブを記憶装置とし
て使用する時にそのような信頼性を提供する多数の異な
るアプローチを挙げている。ディスク・ドライブのアレ
イは略語「RAID」(安価ディスクの冗長アレイ)
のもとに5種類の構成形態の内の1つに特徴づけられ
る。
【0007】RAID1構造は二重組の「ミラー」記憶
装置を提供し、各対の記憶装置で全てのデータの二重コ
ピーを保持することを含む。このような解法は信頼性の
問題を解決するが、記憶のコストを倍増する。RAID
1構造の多数の実装が特にタンデム・コンピュータによ
り行われた。
【0008】RAID2構造はデータの各語の各ビット
に加えることの各語の誤り検出訂正(EDC)ビットを
別々のディスク・ドライブへ記憶する(これは又「ビッ
ト・ストライピング」としても知られている)。例え
ば、フローラ他への米国特許第4,722,085号
は、複数個の相対的に小さく、独立して動作するディス
ク・サブシステムを用いて、非常に高度な対故障性と非
常に高速なデータ転送帯域とを有する巨大な大容量ディ
スク・ドライブとして機能するディスク・ドライブ・メ
モリを開示している。データ・オーガナイザは各32ビ
ット・データ語へ7EDCビット(公知のハミング・コ
ードを用いて決定される)を追加して誤り検出と誤り訂
正能力を与える。生成した39ビット語はディスク・ド
ライブ当り1ビットで39ディスク・ドライブへ書込ま
れる。39ディスク・ドライブの内の1個が故障した場
合、各々記憶された39ビット語の残りの38ビットを
用いて、各データ語をディスク・ドライブから読出すに
つれて語毎に各32ビット・データ語を再構成可能であ
る。
【0009】このようなシステムの明かな欠点は最小の
システムに多数のディスク・ドライブが必要な点であり
(何故なら大多数のコンピュータは32ビット語を使用
しているから)、EDCビットを記憶するために比較的
高い比率のドライブを必要とすることである(39中7
ドライブ)。RAID2ディスク・ドライブ・メモリ・
システムの別な制約は、個々のディスク・アクチュエー
タが一体で動作して各データ・ブロックを書込み、その
ビットが全てのディスク・ドライブに渡って分布してい
る点である。この配列は、個々の各ディスクがデータの
ブロックの一部を転送するため、高データ転送帯域を有
し、結果の効果として単一のドライブがブロックをアク
セスする場合より非常に速く全ブロックがコンピュータ
・システムに利用可能となる。これは大きなデータ・ブ
ロックには有利である。しかしながら、この配置は又実
質的に全記憶装置へ対して単一の読取/書込ヘッド・ア
クチュエータのみを与える。「単一の」アクチュエータ
により一時に1つのデータ・ファイルのみがアクセス可
能であるため、これはデータ・ファイルが小さい時には
ドライブ・アレイのランダム・アクセス性能へ逆に影響
する。従って、RAID2システムは、多くの小データ
・ファイルへの多数のランダム・アクセスがデータ記憶
と転送動作の大部分を占める銀行業務、財務、予約シス
テムのようなオンライン・トランザクション処理(OL
TP)用に設計されたコンピュータ・システムには一般
に適当とは考えられない。
【0010】RAID3構造は、各ディスク・ドライブ
記憶装置は故障又はデータ誤りを検出する内部装置を有
するという概念を基にしている。それ故、誤りの位置を
検出するために余分な情報を記憶する必要はなく、従っ
て単純な型式のパリティを基にした誤り訂正が用いられ
る。このアプローチでは、故障を生じる全記憶装置の内
容を「排他OR」(XOR)してパリティ情報を発生す
る。結果のパリティ情報は単一の冗長記憶装置へ記憶さ
れる。記憶装置が故障した場合、当該装置上のデータ
は、残りの記憶装置からのデータをパリティ情報とXO
Rすることにより代替記憶装置へ再構成可能である。こ
のような配置はミラー・ディスクRAID1構造に対し
て「N」記憶装置に1個の別な記憶装置のみが必要であ
るという点で利点を有する。RAID3構造の別な特徴
は、RAID2システムと同様にディスク・ドライブが
結合して動作し、単一のディスク・ドライブがパリティ
装置として指示されている点である。
【0011】RAID3構造の1つの実装例は、4個の
並列同期ディスク・ドライブと1個の冗長パリティ・ド
ライブを用いたマイクロポリス社の並列ディスク・アレ
イ、モデル1804 SCSIである。4個のデータ・
ディスク・ドライブの内の1個の故障はパリティ・ディ
スク・ドライブに記憶したパリティ・ビットの使用によ
り修復可能である。RAID3システムの他の例はオー
ウチへの米国特許第4,092,732号に記載されて
いる。
【0012】RAID3ディスク・ドライブ・メモリ装
置はRAID2システムよりデータ装置に対する冗長装
置の比が相当低い。しかしながら、RAID3システム
は、個々のディスク・アクチュエータが結合されて一体
で動作するという点でRAID2システムと同じ性能制
約を有する。これは、一時に1つのデータ・ファイルの
みが「単一の」アクチュエータによりアクセス可能であ
るために、データ・ファイルが小さい時にはドライブ・
アレイのランダム・アクセス性能に逆に影響を与える。
従って、RAID3システムはOLTP用に設計された
コンピュータ・システムには一般に適当とは考えられな
い。
【0013】RAID4構造はRAID3構造と同じパ
リティ誤り訂正概念を使用しているが、個々のディスク
・ドライブ・アクチュエータの動作を「分解」し、各デ
ィスクへのより大きな最小量のデータ(一般にはディス
ク・セクタ)を読取書込することにより小ファイルのラ
ンダム読取に対するRAID3システムの性能を改良す
る(これは又ブロック・ストライピングとして知られて
いる)。RAID4構造の別な特徴は、単一の記憶装置
をパリティ装置として指定する点である。
【0014】RAID4システムの制約は、独立に動作
しているデータ記憶装置のどれかへデータ・ブロックを
書込むことは又パリティ装置上に新たなパリティ・ブロ
ックを書込むことを必要とする。パリティ装置に記憶し
たパリティ情報を読出して旧データとXORしなければ
ならず(旧データの情報内容を「除去」するため)、生
成した和を新たなデータとXORしなければならない
(新たなパリティ情報を与えるため)。データ及びパリ
ティ・レコードの両方をディスク・ドライブへ再書込し
なければならない。この過程は一般に「読出−変更−書
込」列として参照される。
【0015】従って、パリティ装置のパリティ・レコー
ドによりカバーされるデータ記憶装置のどれかでレコー
ドが変更される度に単一のパリティ装置上で読取及び書
込が発生する。単位時間当りに実行可能なレコードの変
更数は、多重データ記憶装置の並列動作により与えられ
る速いアクセス速度と対向するパリティ装置のアクセス
速度の関数であるため、パリティ装置がデータ書込動作
への障害となる。この制約のため、RAID4システム
は一般にOLTP用に設計されたコンピュータ・システ
ムには適当と考えられない。実際、RAID4システム
は商用には実装されていない。
【0016】RAID5構造はRAID4構造と同じパ
リティ誤り訂正概念と独立のアクチュエータを使用して
いるが、データ及びパリティ情報を全ての利用可能なデ
ィスク・ドライブに渡って分布させることによりRAI
D4システムの書込性能を改善する。標準的には、組
(「冗長群」としても知られている)中の「N+1」個
の記憶装置をブロックとして参照される複数個の等しい
サイズのアドレス域に分割する。各記憶装置は一般に同
じ数のブロックを含む。同じ装置アドレス域を有する冗
長群中の各記憶装置からのブロックは「ストライプ」と
して参照される。各ストライプはNブロックのデータ加
えることの残りのストライプ用のパリティを含む1記憶
装置上の1つのパリティ・ブロックを有する。別のスト
ライプの各々がパリティ・ブロックを有し、パリティ・
ブロックは異なる記憶装置上に分布している。冗長群中
のデータの各修正に付随するパリティ更新作業はそれ故
異なる記憶装置上に分布する。単一の装置が全てのパリ
ティ更新作業の負荷を負うことはない。
【0017】例えば5ディスク・ドライブを含むRAI
D5システムでは、ブロックの第1ストライプのパリテ
ィ情報は第5ドライブへ書込まれ、ブロックの第2スト
ライプのパリティ情報は第4ドライブへ書込まれ、ブロ
ックの第3ストライプのパリティ情報は第3ドライブへ
書込まれ、等々である。以後のストライプのパリティ情
報は標準的にはらせん状パターンで(他のパターンを使
用してもよいが)、ディスク・ドライブを進行する。
【0018】従って、単一のディスク・ドライブがパリ
ティ情報を記憶するのには使用されず、RAID4構成
の障害は除去される。RAID5システムの例はクラー
ク他への米国特許第4,751,785号に記述されて
いる。
【0019】RAID4システムのように、RAID5
システムの制約は、データ・ブロック中の変更は2回の
読取と2回の書込操作を含む読取−変更−書込列を必要
とすることで、旧パリティ・ブロックと旧データ・ブロ
ックを読取ってXORしなければならず、結果の和を新
たなデータとXORしなければならない。データ及びパ
リティ・ブロックの両方をディスク・ドライブへ再書込
しなければならない。2回の読取操作は2回の書込操作
と同様に並列に実行してもよいが、RAID4又はRA
ID5システム中のデータのブロックの修正は従来のデ
ィスクの同様の操作より相当長くかかる。従来のディス
クは予備的な読取操作を必要とせず、従って書込操作を
実行するためにはディスク・ドライブが従前の位置へ回
転することを待機しなければならない。回転潜在時間の
みで標準的なデータ変更操作に要する時間の約50%に
達する。さらに、2個のディスク記憶装置が各データ変
更操作の時間に関係し、全体としてのシステムのスルー
プットを制限する。
【0020】書込性能のペナルティにも係らず、RAI
D5型式のシステムは、冗長度に対する低いオーバーヘ
ッド・コスト、良好な読取性能、まあまあの書込性能と
共に高データ信頼性を与えるため、非常に一般的になっ
てきている。
【0021】RAID5構成はOLTPコンピュータ・
システムで特別な有用性を有している。多くのOLTP
システムは高利用度システムでなければならない、すな
わちシステムの完全な故障は低確率を有することを意味
する。高利用度は、低い平均修理時間(MTTR)の対
故障設計を有する高信頼性部品を使用し、部品の故障が
システムの能力を減少させるが全体システムの故障を発
生させない「段階的」劣化を設計することにより達成可
能である。
【0022】RAIDシステムの主要な特徴は対故障性
であるが、このような能力のみが高利用度システムを保
証するものではない。記憶装置が故障した場合、全体シ
ステム操作は故障した記憶装置を取替えてその上の情報
を復元するまで続行不能である。RAID構成中の記憶
装置が故障すると、代替記憶装置を故障した記憶装置に
置換え(1組以上の予備から手動で又は電子的に切替え
る)、各パリティ・ブロックを冗長群中の残りの記憶装
置ドライブからの全ての対応するデータ・ブロックとX
ORすることにより「失れた」データを代替記憶装置上
に再構成することを当該技術は教示している。このよう
な再構成はパリティ情報が正しいことを仮定している。
【0023】
【発明が解決しようとする課題】しかしながら、記憶装
置の故障に関係しない状況でデータは失れる。例えば、
書込操作中に一時的な「故障」(停電又はコントローラ
故障)が記憶装置に発生した場合、データ又は対応する
パリティ情報が正しく書込まれ、正当である保証はな
い。データ及びその関連パリティを更新するために2回
のI/O操作が必要であるため、システム終了前にどち
らのI/O操作が完了したかを決定することは困難であ
る。従って、書込まれているデータは間違っている可能
性がある。さらに、他の記憶装置上に記憶したパリティ
情報のあるものが間違いの後にある記憶装置が完全に故
障した場合、故障した記憶装置は良好なデータで完全に
は再構成できない。
【0024】この問題を解決するため当該技術で教示さ
れている1つの方法はクラーク他への米国特許第4,7
61,785号に記載されている。この引例は各データ
・ブロックと対応するパリティ・ブロックに記憶したバ
ージョン番号を用いることを教示している。あるデータ
・ブロックの書込操作が完了した時、データ・ブロック
と対応するパリティ・ブロック中のバージョン番号は等
しい。失れたレコードの復元中、データ・ブロックとパ
リティ・ブロックの同期を保証するためバージョン番号
を検査する。正しい同期のない強制復元は予測不能なデ
ータを発生する。しかしながら、バージョン番号の更新
は正常動作中の処理オーバーヘッドを必要とすると共
に、各ブロックにバージョン番号を記憶させる必要性の
ため容量がわずかに減少する。
【0025】それ故、一時的な「故障」時でさえもRA
IDシステム中で正しいパリティ情報が発生することを
保証する簡単な方法の必要性が存在する。又、このよう
なパリティ情報の復元が、全体のシステム動作は正常に
続行しつつ「オンライン」で実行可能であるRAIDシ
ステムを有することも望ましい。又、前記パリティ情報
の復元が正常動作時に余分な処理オーバーヘッドなしで
実行可能なRAIDシステムを有することも望ましい。
【0026】本発明は2つのこのような方法を提供す
る。
【0027】
【課題を解決するための手段】本発明は一時的な記憶装
置故障により発生した書込障害後に記憶装置へ正しいデ
ータを復元する2つの方法を提供する。どちらの方法も
オンラインで実行でき、冗長アレイ・システムの正常動
作には殆んど中断を与えず、かつ正常動作時には余分な
処理を必要としない。
【0028】第1の望ましい方法は以下の段階を含
む。 (1)一時故障が発生した時書込まれていたストライ
プに対して、ストライプ中の全てのデータ・ブロックを
用いて(故障前に書込まれていた多分破壊されたデータ
・ブロックを含めて)関冗長ブロック(そのデータ・
ブロックについての冗長ブロック)を再計算し、 (2)再計算した冗長ブロックを記憶させ、 (3)中断された書込操作をCPUから再発行し、 (4)再発行した書込操作を正常に実行する(すなわ
破壊されたデータ・ブロックを新たなデータ・ブロ
ックで重ね書きし、再計算した冗長ブロックを更新す
る)
【0029】第1段階は全記憶装置上に対応するデータ
・ブロックの正しい冗長ブロックを作成する。再発行し
た書込操作を実行することにより、古い(そして多分破
壊された)データ・ブロックを再計算冗長ブロックから
「減算」させる。未破壊の新たなデータ・ブロックが旧
データ・ブロック上に書込まれ、再計算された冗長ブロ
ックへ「加算」されて新たな訂正冗長ブロックを作成す
る。新たな訂正冗長ブロックは適当な記憶装置へ書込ま
れる。
【0030】第2の望ましい方法は以下の段階を含
む。 (1)中断された書込操作をCPUへ再発行し、 (2)一時故障が発生した時書込まれていたストライ
プに対しては、ストライプ中の全てのデータ・ブロック
を用いて(故障前に書込まれていた多分破壊されたデー
タ・ブロックを除いて)新たな冗長ブロックを計算し、 (3)多分破壊された旧冗長ブロック上に計算した冗長
ブロックを書込み、 (4)多分破壊された旧データ・ブロック上に新たにデ
ータ・ブロックを書込む。
【0031】本発明の望ましい実施例の詳細は添附した
図面と以下の説明に記述されている。一旦本発明が知ら
れると、多くの追加の新考案や変更が当業者には明かと
なる。
【0032】
【実施例】この説明を通して、以下に示す望ましい実施
例と例示は本発明の方法に対する制約ではなく、単なる
例示として考えるべきである。
【0033】背景情報 図1は本発明による一般化RAIDシステムのブロック
図である。バス2によりアレイ・コントローラ3へ結合
したCPU1が図示してある。アレイ・コントローラ3
はI/Oバス(例えばSCSIバス)により複数個の記
憶装置S1−S5(5個は単なる1例として図示してあ
る)の各々へ結合される。アレイ・コントローラ3は記
憶装置を制御するためCPU1とは独立に動作可能な別
個のプログラム可能なマルチタスク・プロセッサ(例え
ばカリフォルニア州サニーベイルのMIPS社作成のM
IPS R3000 RISCプロセッサ)を含むこと
が望ましい。本発明はコントローラ3により実行される
マルチタスク・コンピュータ・プログラムとして実装さ
れることが望ましい。
【0034】記憶装置S1−S5は1個以上の冗長群に
分けられる。以下に説明する図示例では、冗長群は説明
の簡単のため全ての記憶装置S1−S5を含む。
【0035】図2Aは初期状態を示したモデルRAID
システムの図である。図示のアレイは5個の記憶装置S
1−S5を含む。各行A−Hはストライプである。冗長
ブロックは丸付番号により示され、アレイ中に分散され
ている。ストライプ内の各記憶単位として、簡単のため
1ビット「ブロック」を図示してある。各ブロックは
れに代わってバイト、セクタ又はセクタ群のように他の
任意のサイズの単位でもよい。
【0036】現代のRAIDシステムでは、いくつかの
書込操作「スタック」することができ、したがってこ
のような書込操作が中断されるといくつかのストライプ
が破壊される。簡単のため以下の説明は単一のストラ
イプ復元することについて行う。しかしながら、本発
明は一時的故障後複数個のストライプを復元するより
一般的な場合にも適用できることを理解すべきである。
【0037】図2Bは図2Aと同じRAIDモデルを図
示するが、ストライプCへの書込中に一時的故障が発生
している(Xが破壊データ及び/又は冗長ブロックを表
わす)。故障のため、CPU1からのデータ又は対応す
る冗長情報は正しく書込まれ、正当である保証はない。
このような故障は、例えば記憶装置S1又は全ての記憶
装置への停電、又はコントローラ3の故障から発生しう
る。
【0038】このような一時的故障を検出し、故障原因
を正した後、本発明のどちらかの方式を用いて損傷スト
ライプを正しく復元できる。
【0039】第1の望ましい方法 図3は本発明の第1の望ましい実施例の復元過程の段階
を表わす高レベルのフローチャートである。図3に示し
た段階は以下で説明される。
【0040】一時的故障が発生した時書込まれていた各
ストライプ(図2AのストライプC)に対して、関連す
る冗長ブロック(図2BのS3上)はストライプ中の全
データ・ブロック(故障の前に書込まれていた破壊の可
能性のあるデータ・ブロックを含めて)を用いて再計算
される。
【0041】望ましい実施例で冗長ブロックを再計算す
るため、アレイ中のストライプCの記憶装置S1、S
2、S4、S5からデータ・ブロックが読取られ(段階
30)、XORされる(段階31)。この第1段階は、
S1上のデータ・ブロックが「0」又は「1」のどちら
に係らず、全記憶装置上の対応データ・ブロックの現実
の値に対して正当な冗長ブロックを作成する。再計算さ
れた冗長ブロックはアレイの対応位置(ストライプC上
のS3)に記憶されるか、又は高速処理用の「スクラッ
チパッド」メモリ域にセーブされる(段階32)。
【0042】以後、CPU1により実行されていた中断
書込操作からの正しいデータ・ブロックがストライプC
(この例では)上のS1上の記憶に対してアレイ・コン
トローラ3へ再発行される(段階33)。書込操作は正
常な方法で実行される。すなわち、再計算された冗長ブ
ロック(ストライプC上のS3又はスクラッチパッド・
メモリから)と旧「データ」ブロック(ストライプC上
のS1から)がアレイから読取られ(段階34)、再計
算された冗長ブロックが旧「データ」ブロックを「減
算」(望ましい実施例ではXORし)、新たなデータ・
ブロックを「加算する」(XORする)(段階35)。
新たな冗長ブロックと新たなデータ・ブロックは次いで
アレイの適当な記憶装置に記憶される(段階36)。
【0043】再発行した書込操作を実行することによ
り、旧(多分破壊された)データ・ブロックは再計算し
た冗長ブロックから「減算」される。未破壊新規データ
・ブロックは旧データ・ブロック上に書込まれ、再計算
した冗長ブロックへ「加算」されて新たな訂正冗長ブロ
ックを作成する。新たな訂正冗長ブロックは適当な記憶
装置へ書込まれる。影響を受けた各ストライプを訂正し
た後、アレイは正常に使用される。
【0044】当該技術で公知なように、復元操作に関係
する記憶装置は「ロック」され、同時操作のI/Oタス
クが復元過程に影響を与えないようにすることが望まし
い。
【0045】第2の望ましい実施例 図4は本発明の第2の望ましい実施例の復元過程を表わ
すフローチャートである。図4に示す各段階を以下に説
明する。
【0046】影響された各ストライプに対し、CPUI
により実行されていて中断された書込操作からの正当な
データ・ブロックは記憶用にアレイ・コントローラ3へ
再発行される(段階40)。一時故障が発生した時書
込まれていたストライプ(図2AのストライプC)に対
しては、ストライプ中の全ての正当なデータ・ブロック
ただし、故障前に書込まれていた多分破壊されている
データ・ブロックを除いて。もちろん、そのストライプ
の冗長ブロック除いて)を使用して新たな冗長ブロッ
クが計算される。
【0047】新たな冗長ブロックを計算するため、アレ
イ中のストライプCの記憶装置S2、S4、S5からデ
ータ・ブロックが読取られ(段階40)、新たなデータ
・ブロックとXOR(望ましい実施例では)される(段
階41)。この第1段階は全ての記憶装置上の対応する
正しいデータ・ブロックの実際の値と新たなデータ・ブ
ロックに対して正しい冗長ブロックを作成する。
【0048】以後、新たな冗長ブロックはアレイの対応
する冗長ブロック位置(ストライプCのS3)へ記憶さ
れ、新たなデータ・ブロックはアレイの適当な記憶装置
(ストライプCのS1)へ記憶される(段階43)。影
響を受けた各ストライプを訂正した後、アレイは正常に
使用される。
【0049】再び、復元操作に関係する記憶装置は「ロ
ック」され、同時操作のI/Oタスクが復元過程に影響
しないことが望ましい。
【0050】他の実施例 上述した両方の方法で、アレイ故障時にCPU1が1つ
以上の未解決書込要求を再発行できない可能性が存在す
る(例えばCPU1の何らかの故障)。記憶装置の冗長
データは故障時に変更されていない各ストライプのデー
タ・ブロック中の正しいユーザ・データと矛盾のないも
のであることを保証することは依然必要である。こうし
ないと、以後の誤りは訂正不能である。それ故、故障に
より影響された各ストライプの冗長ブロックは、ストラ
イプ中の各データ・ブロック(破壊したデータ・ブロッ
クを含む)を読取り、このデータ・ブロックから新たな
冗長ブロックを発生し、新たな冗長ブロックをストライ
プ中の適正な位置へ記憶することにより復元される(す
なわち基本的には上述の段階30、31、32を実行す
る)。このような復元は、少なくとも故障に影響されな
いストライプに対してはアレイが正常に機能し続けてい
る間はこのような復元は別なタスクとしてオンラインで
実行される。
【0051】上述の処理は、一時的故障により影響され
た各ストライプ中の冗長ブロックを復元し、従ってスト
ライプ中のデータ・ブロックへの以後の変更が正しいも
のであることを保証するが、故障時に書かれていたデー
タを完全に復元することが望ましい。それ故、より大き
な信頼性を与えるため、本発明のRAIDシステムのコ
ントローラ3は、各書込操作が完了するまでCPU1か
らの書込要求を一時的に記憶するデータ・バッファとし
て不揮発記憶素子(例えば電池駆動のRAM)を含むこ
とが望ましい。上述のように一時的故障が発生した場
合、コントローラ3は最初に不揮発記憶素子から書込デ
ータを得ようとする。何らかの理由でこの動作が失敗し
た場合、コントローラ3はCPU1から書込データを得
ようとする。
【0052】概要 従って本発明は、一時的「故障」時にさえも正しい冗長
情報がRAIDシステムで発生されることを保証する2
つの簡単な方法を提供する。復元操作時の各影響記憶装
置のロックと同時タスクとしての実装のため、どちらの
方法も冗長アレイ・システムの正常動作に殆んど中断を
与えずオンラインで使用可能であり、かつ正常動作時に
付加処理を必要としない。
【0053】本発明の多くの実施例を記述した。それに
も係らず、本発明の要旨と範囲から逸脱することなく多
くの変更が加えられることを理解すべきである。例え
ば、本発明はRAID3、RAID4、又はRAID5
システムに使用可能である。さらに、XOR生成パリテ
ィに加えて又はその代りに誤り訂正法を必要な冗長情報
に使用してもよい。リード・ソロモン・コードを用いた
1つのこのような方法は、本発明の譲受人に譲渡された
「アレイ型ディスク・ドライブ・システムとその方法」
という名称の1988年11月14日提出の米国特願一
連番号第270,713号に開示されている。この引例
に教示された構造と方法により、XORとリード・ソロ
モン(又は他のシステム)冗長度を用いた場合2個の記
憶装置の喪失に適応できる。従って、本発明は特定の図
示実施例により限定されるものではなく、添附特許請求
の範囲によってのみ限定されるものと理解すべきであ
る。
【図面の簡単な説明】
【図1】本発明による一般化RAIDシステムのブロッ
ク図。
【図2】Aは初期状態を示すモデルRAID5システム
の図。Bは1つの記憶装置上の損傷データ・ブロックを
示すモデルRAID5システムの図。
【図3】本発明の第1の望ましい実施例の復元過程を表
わすフローチャートを示す図。
【図4】本発明の第2の望ましい実施例の復元過程を表
わすフローチャートを示す図。
【符号の説明】
1 CPU 2 バス 3 アレイ・コントローラ S1,S2,S3,S4,S5 記憶装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 デビッド ゴードン アメリカ合衆国コロラド州ボウルダー, ナンバー エイ 262,サーティース ストリート 1630 (56)参考文献 特開 昭62−293355(JP,A) 特開 平2−194457(JP,A) 特開 平1−21525(JP,A) 特開 平2−81123(JP,A) 特開 平2−90254(JP,A) 特開 平2−291011(JP,A) 特表 平3−505868(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 G06F 12/16

Claims (30)

    (57)【特許請求の範囲】
  1. 【請求項1】 コントローラに接続したデータ記憶装置
    の冗長アレイにおいて、データ記憶装置は複数個のデー
    タ・ブロックと少くとも1個の関係冗長ブロックを含
    少なくとも1個のストライプを有し、データ変更操作
    時のデータ記憶装置の一時的故障により生じた前記ブロ
    ックのどれかにおける破壊の可能性の後に、正しいデー
    タ・ブロックと少くとも1個の関係冗長ブロック各デ
    ータ記憶装置ストライプへ復元する方法であって、 イ.多分破壊されたブロックを含む各ストライプの中
    の、多分破壊されたデータ・ブロックを含む全てのデー
    タ・ブロックをアクセスする段階と、 ロ.アクセスされたブロックから少くとも1個の冗長
    ブロックを計算する段階と、 ハ.計算されたくとも1個の冗長ブロックをセーブ
    する段階と、 ニ.記憶装置の冗長アレイへデータ変更操作からの正し
    いデータ・ブロックを記憶用に再発行する段階と、 ホ.セーブされたくとも1個の計算された冗長ブロ
    ックを更新する段階と、 ヘ.更新された少くとも1個の冗長ブロックと正しい
    データ・ブロックを当該ストライプに記憶する段階と
    んでなる方法。
  2. 【請求項2】 請求項1記載の方法において、各ストラ
    イプの少くとも1個の冗長ブロックはパリティ情報を
    含み、前記冗長ブロックを計算する段階はアクセスした
    ブロックを排他ORする段階を含む方法。
  3. 【請求項3】 請求項1記載の方法において、前記セー
    ブされたくとも1個の計算された冗長ブロックはパ
    リティ情報を含み、前記冗長ブロックを更新する段階
    は、 イ.多分破壊されたデータ・ブロックをアクセスする段
    階と、 ロ.アクセスされたデータ・ブロックを前記セーブされ
    冗長ブロック及び前記再発行された正しいデータ・ブ
    ロックと排他ORして新たな冗長ブロックを発生する
    階とを含む方法。
  4. 【請求項4】 請求項1記載の方法において、請求項1
    の各段階他の入出力タスクと同時タスクとして実行
    段階をさらに含む方法。
  5. 【請求項5】 請求項4記載の方法において、復元過程
    の間読取られ又は変更される各ブロックロック
    段階をさらに含む方法。
  6. 【請求項6】 請求項1記載の方法において、データ変
    更操作が完了するまで冗長アレイへ発行された各データ
    変更操作を不揮発性記憶素子へ記憶させる段階をさらに
    含む方法。
  7. 【請求項7】 コントローラに接続したデータ記憶装置
    の冗長アレイにおいて、データ記憶装置は複数個のデー
    タ・ブロックと少くとも1個の関係冗長ブロックとを
    含む少なくとも1個のストライプを有し、データ変更操
    作時のデータ記憶装置の一時的故障により生じた前記ブ
    ロックのどれかにおける破壊の可能性の後に正しいデー
    タ・ブロックと少くとも1個の関係冗長ブロック
    データ記憶装置ストライプへオンライン復元する方法
    あって、 イ.データ変更操作からの正しいデータ・ブロックを記
    憶装置の冗長アレイ記憶用に再発行する段階と、 ロ.多分破壊されたブロックを含むストライプ中の全て
    の未破壊データ・ブロックをアクセスする段階と、 ハ.アクセスされたブロックと再発行された正しいデー
    タ・ブロックから少くとも1個の冗長ブロックを計算
    する段階と、 ニ.計算された少くとも1個の冗長ブロックと正しい
    データ・ブロックを当該ストライプに記憶させる段階
    ホ.復元を他の入出力タスクと同時にタスクとして実行
    する段階と を含んでなる方法。
  8. 【請求項8】 請求項7記載の方法において、各ストラ
    イプの少くとも1個の冗長ブロックはパリティ情報を
    含み、前記冗長ブロックを計算する段階はアクセスされ
    たブロックを再発行した正しいデータ・ブロックと排他
    ORする段階を含む方法。
  9. 【請求項9】 請求項記載の方法において、復元過程
    の間読取られ又は変更される各ブロックロック
    段階をさらに含む方法。
  10. 【請求項10】 請求項7記載の方法において、データ
    変更操作が完了するまで冗長アレイへ発行された各デー
    タ変更操作を不揮発性記憶素子へ記憶させる段階をさら
    に含む方法。
  11. 【請求項11】 コントローラに接続したデータ記憶装
    置の冗長アレイにおいて、データ記憶装置は複数個のデ
    ータ・ブロックと少くとも1個の関係冗長ブロックと
    を含む少なくとも1個のストライプを有し、データ変更
    操作時のデータ記憶装置の一時的故障により生じた前記
    ストライプ中のデータ・ブロック及び/又は前記冗長ブ
    ロックにおける破壊の可能性の後に各データ記憶装置ス
    トライプへ少くとも1個の正しい関係冗長ブロック
    元する方法であって、 イ.多分破壊されたブロックを含む各ストライプ中の多
    分破壊されたデータ・ブロックを含む全てのデータ・ブ
    ロックをアクセスする段階と、 ロ.アクセスされたブロックから少くとも1個の冗長
    ブロックを計算する段階と、 ハ.計算されたくとも1個の冗長ブロックを当該
    トライプへセーブする段階とを含んでなる方法。
  12. 【請求項12】 請求項11記載の方法において、各ス
    トライプの少くとも1個の冗長ブロックはパリティ情
    報を含み、前記冗長ブロックを計算する段階はアクセス
    されたブロックを排他ORする段階を含む方法。
  13. 【請求項13】 請求項11記載の方法において、請求
    項11の各段階他の入出力タスクと同時タスクとし
    て実行段階をさらに含む方法。
  14. 【請求項14】 請求項13記載の方法において、復元
    過程の間読取られ又は変更される各ブロックロック
    段階をさらに含む方法。
  15. 【請求項15】 請求項11記載の方法において、デー
    タ変更操作が完了するまで冗長アレイへ発行された各デ
    ータ変更操作を不揮発性記憶素子へ記憶させる段階をさ
    らに含む方法。
  16. 【請求項16】 データ記憶装置の冗長アレイと関連さ
    せて使用する制御システムであって、データ記憶装置
    数個のデータ・ブロックと少くとも1個の関係冗長
    ブロックとを含む少なくとも1個のストライプを有する
    ものであり制御システムはデータ変更操作時のデータ
    記憶装置の一時的故障により生じた前記ブロックのどれ
    かにおける破壊の可能性の後に正しいデータ・ブロック
    と少くとも1個の関係冗長ブロック各データ記憶装
    置ストライプへ復元するものであり当該制御システム
    イ.その制御システムを記憶装置のアレイに結合する結
    合手段と、 ロ.前記結合手段に結合され、 (1) 多分破壊されたブロックを含む各ストライプの中
    、多分破壊されたデータ・ブロックを含む全てのデー
    タ・ブロックをアクセス(2) アクセスされたブロックから少くとも1個の冗
    長ブロックを計算(3)計算されたくとも1個の冗長ブロックをセー
    (4)前記 記憶装置の冗長アレイへデータ変更操作から
    の正しいデータ・ブロックを記憶用に再発行(5)セーブされたくとも1個の計算された冗長ブ
    ロックを更新(6) 更新された少くとも1個の冗長ブロックと正し
    いデータ・ブロックを当該ストライプに記憶する復元手
    段とを含んでなる制御システム
  17. 【請求項17】 請求項16記載の制御システムにおい
    て、各ストライプの少くとも1個の冗長ブロックはパ
    リティ情報を含み、前記冗長ブロックは前記アクセス
    たブロックを排他ORすることにより計算される制御
    システム
  18. 【請求項18】 請求項16記載の制御システムにおい
    て、セーブされたくとも1個の計算された冗長ブロ
    ックはパリティ情報を含み、前記制御システムは、 イ.多分破壊されたデータ・ブロックをアクセス、 ロ.アクセスされたデータ・ブロックをセーブされた
    長ブロック及び再発行された正しいデータ・ブロックと
    排他ORして新たな冗長ブロックを発生することにより
    前記冗長ブロックを更新する手段さらに含む制御シス
    テム
  19. 【請求項19】 請求項16記載の制御システムにおい
    て、当該制御システムは他の入出力タスクと同時タス
    クとして復元機能を実行する手段を含むものである制御
    システム
  20. 【請求項20】 請求項19記載の制御システムにおい
    て、当該制御システムは復元操作の間読取られ又は変
    更される各ブロックをロックする手段をさらに含むもの
    である制御システム
  21. 【請求項21】 請求項16記載の制御システムにおい
    て、データ変更操作が完了するまで冗長アレイへ発行さ
    れた各データ変更操作を記憶させる不揮発性記憶素子を
    さらに含む制御システム
  22. 【請求項22】 データ記憶装置の冗長アレイと関連さ
    せて使用する制御システムであって、データ記憶装置
    数個のデータ・ブロックと少くとも1個の関係冗長
    ブロックとを含む少なくとも1個のストライプを有する
    ものであり制御システムはデータ変更操作時のデータ
    記憶装置の一時的故障により生じた前記ブロックのどれ
    かにおける破壊の可能性の後に正しいデータ・ブロック
    と少くとも1個の関係冗長ブロック各データ記憶装
    置ストライプへオンライン復元するものであり当該
    システムはイ.その制御システムを記憶装置のアレイに結合する結
    合手段と、 ロ.前記結合手段に結合され、 (1) データ変更操作からの正しいデータ・ブロックを
    記憶装置の冗長アレイへ記憶用に再発行(2) 多分破壊されたブロックを含むストライプ中の全
    ての未破壊データ・ブロックをアクセス(3) アクセスされたブロックと再発行された正しいデ
    ータ・ブロックから少くとも1個の冗長ブロックを計
    (4) 計算された少くとも1個の冗長ブロックと正しい
    データ・ブロックを当該ストライプに記憶させ (5)復元を他の入出力タスクと同時にタスクとして実
    行する復元手段と を含んでなる制御システム
  23. 【請求項23】 請求項22記載の制御システムにおい
    て、各ストライプの少くとも1個の冗長ブロックはパ
    リティ情報を含み、前記冗長ブロックはアクセスされ
    ブロックを再発行した正しいデータ・ブロックと排他O
    Rすることにより計算される制御システム
  24. 【請求項24】 請求項22記載の制御システムにおい
    て、当該制御システムは復元操作の間読取られ又は変
    更される各ブロックをロックする手段をさらに含むもの
    である制御システム
  25. 【請求項25】 請求項22記載の制御システムにおい
    て、データ変更操作が完了するまで冗長アレイへ発行さ
    れた各データ変更操作を記憶する不揮発性記憶素子をさ
    らに含む制御システム
  26. 【請求項26】 データ記憶装置の冗長アレイと関連さ
    せて使用する制御システムであって、データ記憶装置
    数個のデータ・ブロックと少くとも1個の関係冗長
    ブロックとを含む少なくとも1個のストライプを有する
    ものであり制御システムはデータ変更操作時のデータ
    記憶装置の一時的故障により生じた前記ストライプ中の
    データ・ブロック及び/又は前記冗長ブロックにおける
    破壊の可能性の後に各データ記憶装置ストライプへ少
    くとも1個の正しい関係冗長ブロックを復元するもの
    当該制御システムはイ.その制御システムを記憶装置のアレイに結合する結
    合手段と、 ロ.前記結合手段に結合され、 (1) 多分破壊されたブロックを含む各ストライプ中の
    多分破壊されたデータ・ブロックを含む全てのデータ・
    ブロックをアクセス(2) アクセスされたブロックから少くとも1個の冗
    長ブロックを計算(3)計算されたくとも1個の冗長ブロックを当該
    ストライプへセーブする復元手段とを含んでなる制御
    ステム
  27. 【請求項27】 請求項26記載の制御システムにおい
    て、各ストライプの少くとも1個の冗長ブロックはパ
    リティ情報を含み、前記冗長ブロックはアクセスされ
    ブロックを排他ORすることにより計算される制御シス
    テム
  28. 【請求項28】 請求項26記載の制御システムにおい
    て、制御システムは他の入出力タスクと同時タスクと
    して復元機能を実行する制御システム
  29. 【請求項29】 請求項28記載の制御システムにおい
    て、当該制御システムは復元操作の間読取られ又は変
    更される各ブロックをロックする手段をさらに含むもの
    である制御システム
  30. 【請求項30】 請求項26記載の制御システムにおい
    て、データ変更操作が完了するまで冗長アレイへ発行さ
    れた各データ変更操作を記憶する不揮発性記憶素子をさ
    らに含む制御システム
JP3338882A 1990-12-21 1991-12-20 冗長アレイ・システムにおける冗長情報の復元方法および制御システム Expired - Lifetime JP3071017B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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