JP2000207136A - 複数ドライブ故障トレラントraidアルゴリズム - Google Patents

複数ドライブ故障トレラントraidアルゴリズム

Info

Publication number
JP2000207136A
JP2000207136A JP153A JP2000000153A JP2000207136A JP 2000207136 A JP2000207136 A JP 2000207136A JP 153 A JP153 A JP 153A JP 2000000153 A JP2000000153 A JP 2000000153A JP 2000207136 A JP2000207136 A JP 2000207136A
Authority
JP
Japan
Prior art keywords
data
drive
check
drives
data drive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP153A
Other languages
English (en)
Inventor
Alden Wilner
アルデン・ウィルナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2000207136A publication Critical patent/JP2000207136A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 従来よりも優れたRAID技術を提供するこ
と。 【解決手段】 データ・ドライブ(101、102)当
たり少なくとも2つのチェック・ドライブ(201、2
02)がチェーン状のコンフィギュレーションで提供さ
れる。このコンフィギュレーションでは、複数のデータ
・ドライブが失われても、チェーン・バックにより、こ
れらの少なくとも2つのチェック・ドライブと故障して
いない既存のデータ・ドライブとを用いて故障したドラ
イブを再計算することによって、データを回復すること
ができる。こうして、故障した各ドライブに対するデー
タを決定し、それを再び用いることにより、第1の故障
したドライブに隣接(近接)する故障したドライブに対
するデータを計算できる。従って、複数のデータ及びパ
リティ・ドライブが故障しても、それらの故障したドラ
イブ上のデータを再構成することが可能になる。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、広くは、コンピュ
ータのデータ・ストレージ保護システムの分野に関す
る。更に詳しくは、本発明は、RAID(Redundant Ar
ray of InexpensiveDisk)として知られているコンピュ
ータのストレージ保護の分野に関する。
【0002】
【従来の技術】これまでに、一般にRAIDと称される
ものの中に記憶されたデータを保護することを可能にす
る様々なシステムが開発されてきた。このRAID技術
は、過去においては、いくつかの形態を用いている。例
えば、RAIDゼロ・システムでは、データを複数のブ
ロックに分解し、それらのブロックが別々のディスク・
ドライブに書き込まれる。このアプローチでは、1つの
ドライブが故障すると、そのドライブ上に記憶されてい
たすべてのデータが失われてしまう。従って、ドライブ
が1つ失われると、データの一部分だけが失われる。こ
れでは真のRAIDシステムとはいえない。というの
は、それでは、フォールト・トレラント・システムでは
ないからである。しかし、データ転送能力とI/Oレー
トは、読み出し及び書き込みの両方において非常に高
い。
【0003】RAIDの第2のバージョンは、RAID
1又はミラーリングとして知られているものである。R
AID1は、1つのドライブ上のデータを複製ドライブ
にミラーリングする、すなわち、そのレプリカを作成す
る。このようにして、あるディスク・ドライブ上のデー
タの厳密な複製が、冗長ドライブ上において達成され
る。推測できるように、これは、非常に高価なデータの
バックアップ方法である。更に、書き込みのI/Oレー
トは、単一のディスク・システムの場合よりも遅くな
る。RAID1は、しばしばRAIDゼロと組み合わせ
ることによって、データをドライブ対にわたってストラ
イプ状にすることが行われる。このアプローチは、複数
ドライブの故障にも対処することができる。ただし、故
障したドライブがミラーリングされる側の対ではないこ
とが条件である。しかし、ミラーリングされる関係にあ
る対の両方のドライブが故障した場合には、データは失
われてしまう。
【0004】RAID技術の更に別のバージョンは、一
般にRAID2と称されているものである。RAID2
は、ハミング・エラー訂正符号(Hamming error correc
tioncode)を用いて、ディスク・ドライブ上に記憶され
たデータを保護する。この方法では、複数の異なるディ
スク・ドライブにわたって分配されたデータを、追加的
なドライブに記憶されたエラー訂正符号情報のパラレル
な記憶によって保護することができる。RAID2の短
所の1つとして、ディスク・ドライブに対するエラー訂
正符号ドライブの比率が非常に高いことが要求される点
がある。
【0005】これまでに提案されている更に別のRAI
D技術として、RAID3がある。RAID3では、デ
ータ・ブロックを更に分割し、これらのサブディビジョ
ンを別々のディスク・ドライブの上に書き込む。これ
は、一般に、複数のディスク・ドライブにわたるデータ
のストライピングと称される。ストライピングに加え
て、パリティ情報が計算され、パリティ・ドライブ上に
記憶される。従って、データのすべてのストライプに対
して、パリティ情報の対応するブロックを記憶すること
ができる。このようにして、RAID3によると、記憶
された情報の失われたドライブを、残りのドライブとパ
リティ情報とを用いて回復させることができる。しか
し、例えば、パリティ・ドライブとディスク・ドライブ
との2つのドライブが故障すると、ストレージ・システ
ムの全体が故障する。
【0006】別のRAID技術に、一般にRAID4と
称されるものがある。RAID4は、RAID3と類似
するが、複数の異なるディスク・ドライブにわたってデ
ータのストライピングをするのではなく、データの1ブ
ロックを1つのディスク・ドライブ上に記憶し、データ
の追加的な複数のブロックを追加的な複数のディスク・
ドライブの上に記憶する点が異なっている。そして、パ
リティ情報は、様々なディスク・ドライブ上に記憶され
ている情報の複数の独立のブロックを用いて計算され
る。そして、RAID3の場合のように、1つのディス
ク・ドライブが故障する場合には、残りのディスク・ド
ライブとパリティ情報を含むドライブとを用いて、故障
したドライブに記憶されていた失われたデータを回復す
ることができる。しかし、この場合にもまた、2つのド
ライブが故障した場合には、それがどのドライブであっ
ても、システムの全体が故障する。
【0007】RAID5は、データ保護に用いられる更
に別のRAID技術である。RAID5は、複数のディ
スク・ドライブにわたるデータのブロックの分配に加
え、パリティ情報を用いる。しかし、すべてのパリティ
情報を1つのディスク・ドライブに記憶するRAID4
とは対照的に、RAID5は、パリティ情報を複数のデ
ータ・ドライブ自体にわたって拡散させる。このように
して、第1のローの情報に対するパリティ情報は、最後
のデータ・ドライブの第1のローに記憶することができ
る。第2のローのデータに対するパリティ情報は、最後
のデータ・ドライブから2番目にある2番目のローに記
憶される、等である。この技術は、パリティ情報を複数
のデータ・ドライブにわたって分配するが、パリティ方
式を用いて失われたデータを回復する方法は同じであ
る。従って、この場合にも、2つのドライブが失われる
と、それがどのドライブであっても、ストレージ・シス
テムの全体が故障することになる。
【0008】RAID6は、本質的にRAID5の拡張
である。これによると、複数のデータ・ドライブ上に記
憶されているデータに対して2回のパリティ計算が可能
となる。例えば、RAID6では、2組のパリティ情報
を1つのアレイに記憶されているデータ・ブロックに対
して計算することができる。パリティ情報は、データ・
ブロックのそれぞれのローに対してだけでなく、データ
・ブロックのそれぞれのコラムに対しても計算すること
ができる。これらの両方の組のパリティ情報は、RAI
D5のコンフィギュレーションにおいてなされたのと同
様に、複数のデータ・ドライブ上に分配することができ
る。しかし、RAID6は、複数のドライブからなるア
レイにわたって分配されたパリティ・アドレスを計算す
るために、大きなコントローラ・オーバヘッドを必要と
する。
【0009】これまでに用いられてきた様々なRAID
技術からわかるように、どれも、コンピュータ産業に存
在している様々な保護の必要性に対する完全な回答には
なっていない。データのアプリケーションに応じて、デ
ータ保護の必要性は様々である。例えば、あるデータは
非常に重要であるので、そのデータを保護するために信
頼性の高いフォールト・トレラント・システムが設置さ
れる必要がある。そして、実現が単純で複雑ではない設
計からなるようなシステムが好ましい。
【0010】
【発明が解決しようとする課題】本発明は、既存のデー
タ・バックアップ・システムの問題点を克服する新規な
方法及び装置を提供する。本発明の様々な実施例は、複
数のドライブが故障した場合にもデータを保護するよう
に機能する。更に、本発明のある実施例によると、設計
者が、様々なデータ保護方式において用いることができ
るドライブの最適数を決定することができる。設計者
は、与えられた数のチェック・ドライブによって保護す
ることができるデータ・ドライブの最大数を計算するこ
とができる。更に、本発明のある実施例によると、故障
したドライブをチェーン・バックすることを可能にする
方法によって、データを回復できる。更に、本発明の別
の実施例によると、チェック・ドライブをデータ・ドラ
イブに変換させ、それによって、データ・ドライブが故
障した又はアクセス不能になったときのデータの回復及
び記憶を向上させることができる。
【0011】本発明は、データ記憶を達成するために、
冗長データ・ドライブのアレイを用いることができる。
ユニークな方法によって、本発明は、パリティ情報など
のチェック情報をその上に記憶することができる少なく
とも2つのチェック・ディスクを用いることができる。
このようにして、チェック・ドライブは、少なくとも2
つのデータ・ドライブが故障した場合でも、依然とし
て、その複数の故障したデータ・ドライブ上に記憶され
ていた情報を回復することを可能とする。
【0012】
【課題を解決するための手段】本発明のユニークなコン
フィギュレーションによれば、データ・ドライブ当たり
少なくとも2つのチェック・ドライブがチェーン状のコ
ンフィギュレーションで提供される。このコンフィギュ
レーションでは、複数のデータ・ドライブが失われて
も、チェーン・バックし、これらの少なくとも2つのチ
ェック・ドライブと故障していない既存のデータ・ドラ
イブとを用いることによって、故障したドライブを再計
算することによって、データを回復することができる。
このようにして、それぞれの故障したドライブに対する
データを決定し、それを再び用いることにより、第1の
故障したドライブに隣接(近接)する故障したドライブ
に対するデータを計算することができる。従って、この
チェーン状のコンフィギュレーションによって、複数の
データ及びパリティ・ドライブが故障しても、それらの
故障したドライブ上のデータを再構成することが可能に
なる。
【0013】本発明の別の実施例では、与えられた数の
チェック・ドライブと既知の数の故障したドライブとを
用いて保護することが可能なデータ・ドライブの数を計
算することができる。このようにして、チェック情報オ
ーバヘッドの量を、バックアップ機能を達成するのに必
要な最小限の数まで減少させることができる。
【0014】本発明の別の実施例では、故障したデータ
・ドライブを、バックアップ・システムにおいて、既存
のチェック・ドライブによって交換することができる。
そして、チェック・ドライブはデータ・ドライブにな
り、失われたデータは、この新たなデータ・ドライブの
上に記憶することができる。このコンフィギュレーショ
ンの理想的なバックアップの特徴は失われるが、古いチ
ェック・ドライブ/新たなデータ・ドライブは、故障し
たデータ・ドライブが交換されるか又はオンラインで購
入されるときまで、暫定的な手段として機能することに
なる。こうして、データ・ドライブ・コンフィギュレー
ションの速度が回復されると同時に、データ・バックア
ップが任意の残りのチェック・ドライブによって実行さ
れる。
【0015】従って、本発明は、2つのデータ・ドライ
ブが故障した場合でもそれらの故障したデータ・ドライ
ブ上に記憶されていた情報を依然として保存できるデー
タ保護方式を提供するという点で優れている。
【0016】本発明の実施例の別の長所として、故障し
たデータ・ドライブを通過してチェーン・バックするこ
とにより、更に別の故障したデータ・ドライブ上のデー
タも回復することができるということがある。
【0017】本発明の実施例の更に別の長所として、予
測されるドライブ故障の数と個々のデータ・ドライブの
保護に用いられるチェック・ドライブの数とを知ること
によって、保護することができるデータ・ドライブの好
適な数を設計者が決定することができるという点があ
る。
【0018】本発明の更に別の長所として、チェック・
ディスクをアクセス不能なデータ・ドライブの代わりに
データ・ドライブとして用いることを可能とするデータ
保護方式を提供することができる点がある。
【0019】本発明のこれ以外の長所や特徴は、以下の
詳細な説明と本発明を実現するいくつかの方法が図解さ
れている添付の図面とを参照することによって、この技
術分野の当業者には明らかになろう。しかし、本発明
は、ここに開示されている詳細に限定されるものではな
く、本発明の精神と特許請求の範囲によって画定される
発明の範囲とに含まれる変更や修正を含むものである。
【0020】
【発明の実施の形態】図1は、N個のデータ・ドライブ
とN個のチェック・ドライブとを用いる本発明の実施例
を示している。このコンフィギュレーションでは、N個
のデータ・ドライブは、それぞれが関連する直前の(先
行の、preceding)データ・ドライブと関連する直後の
(後続の、succeeding)データ・ドライブとを有するよ
うに、シーケンシャルな順序に指定されている。例え
ば、図1では、データ・ドライブ102は、直前のデー
タ・ドライブ101と直後のデータ・ドライブ103と
を有する。チェック情報は、それぞれのデータ・ドライ
ブについて計算することができる。例えば、図1では、
チェック・ドライブ201は、データ・ドライブ101
及び102上に記憶されたデータ要素を用いてパリティ
計算を実行することによって計算されたパリティ情報を
保持している。同様に、パリティ情報は、データ・ドラ
イブ102及び103上に記憶された対応するデータ・
ブロックを用いてそのパリティ情報を計算することによ
って、チェック・ドライブ202の上に記憶することが
できる。これは、N個のデータ・ドライブのそれぞれに
対して継続することが可能である。ただし、このN個の
データ・ドライブにおいては、データ・ドライブ101
はデータ・ドライブ109に対する直後のデータ・ドラ
イブであると考えることができる。このようにして、例
えば、パリティ情報は、データ・ドライブ109とデー
タ・ドライブ101との間で計算し、パリティ情報を記
憶するように指定されているチェック・ドライブ209
上に記憶することができる。チェック情報とは、データ
・ドライブ上に記憶されているデータを再構成するのに
用いることができるパリティ情報などの情報を意味する
ものと考えることができる。同様に、データ・ドライブ
とディスク・ドライブという2つの用語は、この出願を
通じて相互に交換可能に用いられている。データ・ドラ
イブという用語は、任意のデータ・ストレージ・デバイ
スを含むものであることが意図されている。ただし、デ
ィスクという用語が現在のRAIDシステムでは広く用
いられている。多くの方式を用いることができるが、パ
リティ方式が典型的な例である。この技術分野における
当業者であれば、パリティ情報に加えて用いることが可
能である他のチェック情報方式を想定することも可能な
はずである。
【0021】図2には、図1のコンフィギュレーション
を用いて複数の異なる機能を実行する流れ図が示されて
いる。最初に、ステップ301において、N個のデータ
・ドライブを提供することができる。図1に示されてい
るように、様々なN個のドライブをシーケンシャルな順
序で指定することができる。この特定の順序は、シーケ
ンシャルな円環的な順序であると考えることができる。
複数のデータ・ドライブそれぞれに対してチェック情報
を計算することができる。例えば、チェック情報を、隣
接するドライブ303の間で計算することができる。チ
ェック情報は、計算された後で、様々なチェック・ドラ
イブ304上に記憶することができる。例えば、データ
・ドライブ101及び102の間で計算されたチェック
情報は、チェック・ドライブ201の上に記憶すること
ができる。いったんチェック・ドライブ情報が計算され
コンピュータ・システムがその標準的なモードで動作し
ているときには、ドライブが故障した際の回復機能を実
現することができる。
【0022】例えば、通常の読み出しと称することがで
きる典型的な動作においては、コントローラは、コマン
ド305を受け取り、このコマンドが書き込みコマンド
306であるか読み出しコマンド307であるかを判断
する。コマンドが読み出しコマンドである場合には、コ
ントローラは、ステップ320において、データがそこ
から読み出されるターゲット・ドライブが動作している
すなわち利用可能であるかどうかを判断することができ
る。ターゲット・ドライブが利用可能であると判断され
る場合には、ステップ321において、データをターゲ
ット・ドライブから読みだし指定された宛先に戻すこと
ができる。
【0023】同様に、通常の書き込み条件が存在する場
合には、コントローラは、ステップ306において、書
き込みコマンドが与えられていると判断し、ステップ3
08において、ターゲット・データ・ドライブ上に記憶
するために新たなデータD2を受け取る。ステップ30
9では、ターゲット・データ・ドライブが動作している
すなわち利用可能であるかどうかを判断することができ
る。通常の書き込み状況では、ターゲット・データ・ド
ライブは利用可能である。この場合には、新たなデータ
をデータ・ドライブに書き込むことができ、対応するチ
ェック・ドライブを更新することができる。例えば、タ
ーゲット・データ・ドライブ上の古いデータをステップ
310において取得することができる。また、ターゲッ
ト・データ・ドライブをバックアップするのに用いられ
るチェック・ドライブ上の対応する既存のチェック情報
は、ステップ311で取得できる。ターゲット・データ
・ドライブ上に記憶された古いデータとチェック・ドラ
イブ上に記憶されたチェック情報とを用いて、ターゲッ
ト・データ・ドライブに書き込まれる新たなデータと共
に用いる仮の(中間的な、interim)チェック情報を計
算することができる。パリティ方式の場合には、古いデ
ータをチェック情報から減算して仮の情報を取得するこ
とができる。次に、ステップ313で、新たなデータと
仮のチェック情報とを用い、例えば、新たなデータD2
を仮のチェック情報に加算することによって、新たなチ
ェック情報を計算することができる。この新たなチェッ
ク情報は、ステップ314で、チェック・ディスクに書
き込むことができる。最後に、ステップ315におい
て、ターゲット・データ・ディスク上に記憶される新た
なデータを、ターゲット・データ・ディスクに書き込む
ことができる。また、既に述べたように、ターゲット・
データ・ディスク上に記憶される新たなデータをターゲ
ット・データ・ディスクに書き込み、そのターゲット・
データ・ディスクをバックアップするそれぞれのチェッ
ク・ドライブに対するチェック情報の再計算を実行する
こともできる。例えば、図1では、新たなデータがデー
タ・ドライブ102に書き込まれる場合には、チェック
・ドライブ201上に記憶するために、データ・ドライ
ブ101及び102上に記憶された対応するデータ・ブ
ロックを用いて、パリティ情報を計算することができ
る。更に、チェック・ドライブ202上にチェック情報
を記憶するために、データ・ドライブ102とデータ・
ドライブ103との上に記憶された対応するデータ・ブ
ロックを用いて、チェック情報ルーチンを実行すること
ができる。ターゲット・データ・ドライブ上に記憶され
る新たなデータに対する書き込みコマンドが実行される
ときには常に、いずれの方法によっても、チェック情報
の更新が可能である。
【0024】図3は、1つのドライブが故障したときの
本発明のある実施例の動作を示している。コマンドが故
障したディスクへの書き込みコマンドであると判断され
る場合、例えば、データ・ブロックD2が故障したドラ
イブに書き込まれる場合には、ステップ330におい
て、関連する直前のデータ・ドライブから対応するデー
タ・ブロックD1を読み出すことができる。次に、ステ
ップ334において、直後のデータ・ドライブから第2
の対応するデータ・ブロックD3を読み出すことができ
る。D1とD2とを用いると、ステップ335におい
て、チェック情報P1の第1のブロックを計算すること
ができる。また、D3とD2とを用いると、チェック情
報P2の第2のブロックを、ステップ337で計算する
ことができる。チェック情報P1は、ターゲット・ドラ
イブと直前のデータ・ドライブとに関連するチェック・
ドライブに書き込むことができる。同様に、ステップ3
41において、チェック情報P2は、ターゲット・ドラ
イブと直後のデータ・ドライブとに関連するチェック・
ドライブに書き込むことができる。これは、図1におい
て見ることができる。データ・ドライブ102が故障す
る場合には、チェック・ドライブ201及び202を、
ターゲット・ドライブ102、そのターゲット・ドライ
ブの直前のデータ・ドライブ101及びそのターゲット
・ドライブの直後のデータ・ドライブ103に向けられ
たデータを用いて、更新することができる。データ・ド
ライブ102は故障しているのでデータをこのデータ・
ドライブ102に書き込むことはできないが、チェック
情報を更新し、後で、故障したデータ・ドライブ102
からリクエストされたデータを再生するのに用いること
ができる。このようにして、チェック・ドライブは、万
一必要な場合には、データ情報へのアクセスを可能にす
るように機能する。
【0025】同様に、ドライブが故障し、読み出しリク
エストがその故障したドライブに向けられている場合に
は、希望するデータを依然として読み出すことができ
る。まず、ステップ350において、ターゲット・ドラ
イブのアクティブな隣接するデータ・ドライブにアクセ
スすることができる。アクティブな隣接するドライブ
は、ターゲット・ドライブの直前のデータ・ドライブで
も直後のデータ・ドライブでもよい。この様子は、図1
において見ることができる。図1では、ターゲット・ド
ライブは、例えば、データ・ドライブ102とすること
が可能である。次に、ステップ354において、ターゲ
ット・ドライブに関連するチェック・ドライブと隣接す
るデータ・ドライブとにアクセスすることができる。例
えば、チェック・ドライブ201には、データ・ドライ
ブ101が隣接するドライブとして指定される場合にア
クセスが可能である。また、データ・ドライブ103が
隣接するドライブとして指定される場合にも、チェック
・ドライブ202へのアクセスが可能である。隣接する
ドライブからのデータとチェック・ドライブからの情報
とを用いると、故障したドライブ102上に記憶されて
いた失われたデータを、ステップ358において、チェ
ック情報の逆計算によって計算することができる。これ
は、この技術分野の当業者であれば、理解するはずであ
る。例えば、パリティ方式が用いられる場合には、隣接
するドライブ上の既知の情報をチェック・ドライブ上の
情報から減算して、ターゲット・ドライブの失われたデ
ータを取得することができる。最後に、ステップ362
において、この再生された失われていたデータを用い
て、読み出しコマンドによってリクエストされた失われ
たデータを出力することができる。
【0026】本発明のある実施例によれば、複数のドラ
イブが故障しても、依然として、故障したドライブに向
けられていた情報の読み出し及び書き込みを行うことが
可能である。例えば、図4においては、複数の故障した
ドライブへの書き込み又はそこからの読み出しが生じて
いる。ステップ400において、まず、N個のデータ・
ドライブが与えられる。これらのデータ・ドライブは、
次に、ステップ404で、シーケンシャルな順序に指定
することができる。ステップ408で、隣接するドライ
ブに対するチェック情報を計算し、ステップ412にお
いて、そのチェック情報を指定されたチェック・ドライ
ブ上に記憶することができる。ステップ416において
読み出し又は書き込みコマンドが受け取られると、それ
が書き込みコマンドであるのか(ステップ420)、読
み出しコマンドであるのか(ステップ424)が判断さ
れる。書き込みコマンドである場合には、アクティブな
データ・ドライブが見つけられる(ステップ451、4
52、454)。次に、ステップ458で、そのアクテ
ィブなデータ・ドライブに関連するドライブを用いて故
障したデータ・ドライブ上に記憶されていたデータを再
生することによって、データを再生させることができ
る。見つけられたアクティブなデータ・ドライブとその
書き込みが試みられている故障したデータ・ドライブと
の間のチェック・ドライブ455及び456のストリン
グが断絶していないことによって、これが可能となる。
このプロセスは、ターゲット・ドライブに対するデータ
が再生されるまで反復しうる。再生されたデータを用い
ることにより、ステップ466において、関連するチェ
ック・ドライブ上のチェック情報を更新することができ
る。例えば、図1では、データ・ドライブ102及び1
03が故障したと仮定すると、データ・ドライブ104
を、データ・ドライブ103上に記憶されたデータを再
計算するのに用いることができるアクティブなドライブ
であると考えることが可能である。これは、データ・ド
ライブ104とチェック・ドライブ203との上の情報
の対応するブロックを用いて達成される。このようにし
て、データ・ドライブ103に記憶されていたデータ情
報を回復してコンピュータのメモリに、又は、別個のリ
カバリ・ドライブに保持することができる。そして、故
障したデータ・ドライブ103とチェック・ドライブ2
02とに記憶されていた回復されたデータを用いること
によって、故障したデータ・ドライブ102の上に記憶
されていた情報も同じように回復することができる。次
に、データ・ドライブ102上に記憶することが意図さ
れていたデータを用いて、チェック・ドライブ201及
び202を、既に述べたように、更新することができ
る。このようにして、本発明のこの実施例によると、既
存のチェック情報と既存の機能しているデータ・ドライ
ブとを用いて複数の故障したデータ・ドライブを通過し
てチェーン・バック(chain back)し、故障したデータ
・ドライブの情報を回復し故障したデータ・ドライブに
関連するチェック・ドライブを更新することが可能にな
る。
【0027】同様にして、読み出しコマンドが複数の故
障したドライブを有するデータ・ストレージ・システム
に向けて発せられると、ステップ424において、ま
ず、読み出しコマンドであると判断され、ステップ42
8で、データがそこから読み出されるターゲット・デー
タ・ドライブが利用可能であるかどうかが判断される。
ターゲット・ドライブが利用可能ではないという判断が
なされる場合には、故障したデータ・ドライブに隣接す
るアクティブなデータ・ドライブを見出すことができる
(ステップ429、430、432)。このアクティブ
なデータ・ドライブとそこからの読み出しが試みられて
いる故障したデータ・ドライブとの間のチェック・ドラ
イブのストリングが断絶していない(ステップ433、
434)ことにより、これが可能となる。アクティブな
データ・ドライブと対応するチェック・ドライブとの上
の情報を用いて、ステップ436において、関連する故
障したターゲット・データ・ドライブ上のデータを回復
することができる。これは、アクティブなデータ・ドラ
イブの情報と、アクティブなデータ・ドライブとアクテ
ィブなチェック・ドライブとの両方に関連する故障した
ドライブ上のアクティブなチェック・ドライブ情報とを
用いることによって、達成することができる。このプロ
セスは、ステップ440においてターゲット・データ・
ドライブに対するデータが回復されるまで反復されう
る。最後に、回復されたデータは、ホスト又はコントロ
ーラ440に出力することができる。このようにして、
複数のドライブが故障した場合には、データ及びチェッ
ク・ドライブのコンフィギュレーションの中を通過する
チェーン・バックによって、データの回復が可能とな
る。ただし、チェック・ルーチンが既知であることは仮
定している。データ・セットのドライブの半分までは故
障してもかまわないことに注意すべきである。ただし、
少なくとも1つのデータ・ドライブは利用可能な状態に
あり、それぞれの故障したデータ・ドライブといずれか
の利用可能なデータ・ドライブとの間には、チェック・
ドライブの断絶していないストリングが存在することが
必要である。
【0028】図5は、本発明のある実施例を示してお
り、この実施例では、N個のデータ・ドライブのアレイ
が、N個のデータ・ドライブのそれぞれが関連する直前
のデータ・ドライブと関連する直後のデータ・ドライブ
とを有しているように、シーケンシャルな順序で構成さ
れている。この図では、N番目のデータ・ドライブが、
第1のデータ・ドライブ101の直前にあると考える。
チェック情報を計算する(ステップ300)手段が示さ
れているが、チェック情報は、それぞれのデータ・ドラ
イブとそれぞれの対応する直前のデータ・ドライブとの
間で計算することができる。この計算手段は、マイクロ
プロセッサか、又は、パリティ・ルーチンなどのルーチ
ンを実行することができるそれ以外のデバイスでありう
る。N個のチェック・ドライブの組もまた図5に示され
ているが、その上に計算されたチェック情報を記憶する
ことができる。データ・ドライブのそれぞれの組に対す
る計算されたチェック情報は、N個のチェック・ドライ
ブの別々の1つに記憶することができる。例えば、デー
タ・ドライブ101及び102を用いて計算されたチェ
ック情報をチェック・ドライブ201に記憶し、他方
で、データ・ドライブ102及び103上に記憶された
データを用いて計算されたチェック情報は別個にチェッ
ク・ドライブ202上に記憶することができる。
【0029】チェック情報を計算するには、図6に示さ
れているような単純なルーチンを様々な実施例において
用いることができる。例えば、図5では、データを、デ
ータ・ドライブ102に記憶することができる。このデ
ータは、ステップ500において、取得されD2と称さ
れることができる。次に、データ・ドライブ101上の
関連するデータは、ステップ504において、取得され
D1と称されることができる。D1とD2とを用いる
と、ステップ508において、チェック情報P1を計算
することができる。チェック情報P1は、次に、D1と
D2とが記憶されているデータ・ドライブ101及び1
02と関連するチェック・ドライブ201上に記憶する
ことができる(ステップ512)。
【0030】本発明のある実施例によれば、N個のデー
タ・ドライブをP個のチェック・ドライブと共に用いる
ことが可能になる。ただし、PはNよりも小さい。この
実施例は、必要となるチェック・ドライブのパーセンテ
ージが低いために、よりコスト効率がよい。この実施例
は、ルール・ベース(rule-based)の方法を説明するこ
とによって、開始する。この方法では、データ・ドライ
ブを、それぞれのデータ・ドライブがデータを記憶する
ように構成されるように、提供することができる。それ
ぞれのデータ・ドライブは、少なくとも2つのチェック
・ドライブの組を用いて保護される。これらのドライブ
は、少なくとも2つのチェック・ドライブの組が確立さ
れ、少なくとも2つのチェック・ドライブの他のどの組
とも共有するチェック・ドライブはただ1つとなるよう
に構成することができる。この様子は図7において見る
ことができる。図7では、6つのチェック・ドライブP
1からP6がリストになっている。それぞれのチェック
・ドライブに割り当てられた様々なデータ・ドライブ
が、それぞれのチェック・ドライブの下に示されてい
る。図7において見ることができるように、どの2つの
チェック・ドライブも共有しているデータ・ドライブは
ただ1つである。例えば、様々なチェック・ドライブの
組が図8に示されている。図8では、P1のチェック・
ドライブの組は、データ・ドライブD1からD5を有
し、他方で、P2のチェック・ドライブの組は、データ
・ドライブD1、D6、D7、D8、D9を有してい
る。チェック・ドライブの組P1及びP2によって共有
されているのは、D1だけである。従って、ドライブD
1及びD2が万一故障する場合には、P1のチェック・
ドライブの組は、失われた情報を再計算することはでき
ない。しかし、データ・ドライブD2を含まないチェッ
ク・ドライブの組P2によって、データ・ドライブD1
上に記憶されていたデータの再生が可能になる。従っ
て、データ・ドライブD2を、1)D1に対する再構成
されたデータとチェックの組P1とを用いるか、2)チ
ェックの組P3を用いるかという2つの方法のいずれか
をもちいることによって、再構成することができる。
【0031】従って、図7、図8及び図9において見ら
れるように、チェックの組におけるすべてのデータ・ド
ライブがチェック・ドライブと共に故障するときでも、
データへのアクセスは依然として可能である。従って、
このコンフィギュレーションによれば、チェック・ドラ
イブの組P1が故障する状況のような1つのデータ・ド
ライブが故障するか複数のドライブが故障するときに、
データを回復することが可能となる。チェック・ドライ
ブが1つ又は複数故障する場合でも、これらのドライブ
はチェック情報だけしか保持していないためにデータ・
ドライブのデータへの影響は存在しない。従って、デー
タ・ドライブ上の重要なデータには依然としてアクセス
が可能であり、通常の読み出し及び書き込みコマンドを
介して出力することができる。
【0032】図10は、本発明の別の実施例の方法を示
している。この場合には、D個のデータ・ドライブとP
個のチェック・ドライブとを用い、D個のデータ・ドラ
イブの中の1つをバックアップするように割り当てられ
ているチェック・ドライブの数は、Zと称される、又
は、既知であってZと称される。この方法では、D個の
データ・ドライブを用いる(ステップ600)。次に、
データ・ドライブをバックアップするのに用いられるチ
ェック・ドライブの数に対する最小数Zを確立すること
ができる(ステップ604)。そして、P個のチェック
・ドライブを用いてデータをバックアップする際に(ス
テップ608)、DとPとを、D<(P!)/((Z
!)*(P−Z)!)という関係を満足するように選択
することができる(ステップ612)。このコンフィギ
ュレーションがいったん確立されると、任意の2つのド
ライブの故障に対するデータ・バックアップを提供する
ことができる(ステップ616)。図11は、コントロ
ーラ700が備わっているこの実施例を示しており、こ
こでは、ネットワーク704が、データ・ドライブ10
8のD個の組をP個のチェック・ドライブの組に結合さ
せている。
【0033】下位にある(underlaying)RAID−4
又はRAID−5の方法が用いられ、複数のパリティ・
ドライブが与えられる場合には、複数のドライブ故障に
対する保護を与える効果的な方法は、図14に示されて
いる規則(ルール)においてまとめることができる。つ
まり、(1)すべてのデータ・ドライブは、2つの異な
るチェック・ドライブ(少なくとも)によって保護され
る必要があり、そして、(2)どの2つのデータ・ドラ
イブも、チェック・ドライブの同一の組に依存すること
はできない、ということである。図14では、Dnは、
データ・ドライブnを意味し、Pxは、チェック・ドラ
イブxを意味し、−>は、チェック情報を計算すること
を意味し、Dn−>Pxは、データ・ドライブnは、チ
ェック・ドライブxによって保護される(ドライブの1
つである)、を意味する。
【0034】図12は、1つのドライブが故障する場合
にバックアップ・システムを再構成する方法を示してい
る。多くの場合、データ・デバイスが失われるときに
は、オンラインのストレージ・システムを維持すること
が、それに直ちにサービスを与えることよりも重要であ
る。故障したデータ・ドライブを交換するのに好ましい
時期とそれほど好ましくない時期とがある。従って、デ
ータ・ドライブが故障したときには、その故障したデー
タ・ドライブを実際に交換するためにより最適な時期に
到達するまでは、一時的な解決策を実現することが重要
である。本発明のこの実施例には、データをバックアッ
プするための少なくとも1つのそのようなドライブを提
供する(ステップ754)データを記憶する少なくとも
1つのデータ・ドライブを提供する(ステップ750)
ことが含まれる。故障したデータ・ドライブがいったん
検出されると(ステップ758)、その故障したデータ
・ドライブ上の情報を再生することができる(ステップ
762)。次に、再生されたデータは、それまでチェッ
ク・ドライブであったものの上にコピーすることができ
る(ステップ764)。次に、このチェック・ドライブ
には、故障したデータ・ドライブの指定が与えられる
(ステップ768)。最後に、システムは、故障したデ
ータ・ドライブに向けられたすべての以前のコマンドが
これからは先のチェック・ドライブに向けられるよう
に、動作状態におかれる。システムのバックアップはこ
の再構成によって影響を受ける可能性はあるが、この方
法によれば、データ・ドライブが故障したときの一時的
な解決策が提供される。データ・ドライブが故障したと
きには複数の書き込みを実行することが必要になること
が多いが、この実現例によると、故障したデータ・ドラ
イブをチェック・ドライブと交換することにより第2の
書き込みコマンドを不要にすることによって、時間を節
約することができる。従って、バックアップ能力が害さ
れる可能性はあるが、動作速度は促進される。
【0035】図13は、この方式を実現するのに用いる
ことができるコンフィギュレーションを示している。デ
ータ・ドライブ811、812及び813は、情報を記
憶することを意図されているデータ・ドライブを表して
いる。チェック・ドライブ801、802及び803
は、データ・ドライブがバックアップされるチェック・
ドライブを指定している。データ・ドライブ813の上
に書かれているXはそれが故障したことを示している。
ドライブ803のP3の上に書かれているXは、それが
かつてはチェック情報であったことを示し、ドライブ8
03にD3と指定されているのは、それが、ドライブ8
03の上に記憶されていたデータ情報であり、故障した
データ・ドライブ813から移動された又は回復された
ものであることを示している。コンピュータ800など
のコントローラ又はコンピュータを用いて、様々なドラ
イブを制御することができる。
【0036】本発明は、複数の実施例においてデータ・
ドライブとは独立の2つの別個のチェック・ドライブを
用いることができる点でユニークである。この特徴によ
ってデータ・ディスクのアクセスとストレージ・システ
ム上への情報の記憶とが容易になるので、重要性をもち
うる。例えば、RAID6は複数のデータ・ドライブ上
へのパリティ情報の配分を行うが、これには、様々なド
ライブへのアクセスに非常に複雑なコントローラが必要
となる。本発明は、複雑なアドレシングを含まない別個
のチェック・ディスクを提供することによって、この短
所を克服している。更に、別々(separate)であるチェ
ック・ドライブを用いることにより、データ・ドライブ
が失われても、その結果としてチェック情報が失われる
ことはない。
【0037】本発明の実施例の装置及び方法とその効果
の多くとが、以上の説明から理解されると考えられる。
更に、本発明の精神と範囲とから逸脱することなく、ま
た、その重要な効果を犠牲にすることなく、その一部の
形態、構成及び配列において様々な変更をおこなうこと
が可能であることは明らかである。ここで説明に用いた
形態は、単に、本発明の好適な又は例示的な実施例に過
ぎない。
【図面の簡単な説明】
【図1】バックアップ機能を提供するデータ・ドライブ
とチェック・ドライブとのコンフィギュレーションを示
している。
【図2】複数のドライブをシーケンシャルな態様で構成
し、データ・ドライブへの通常の書き込みとターゲット
・データ・ドライブからの通常の読み出しとを可能にす
る流れ図である。
【図3】図2からの継続であり、故障したデータ・ドラ
イブへの書き込みと故障したデータ・ドライブからの読
み出しとを可能にしている。
【図4】複数のドライブ故障が生じたときの読み出し又
は書き込みの流れ図を示している。
【図5】失われたデータのデータ・ドライブからの回復
を可能にするコントローラを有するデータ・ドライブと
チェック・ドライブとのコンフィギュレーションを示し
ている。
【図6】2つのデータ・ドライブの間でのチェック情報
を計算する流れ図を示す。
【図7】それぞれのチェック・ドライブのためのチェッ
ク情報を計算するのに用いられる対応するデータ・ドラ
イブと関連するチェック・ドライブの図を示している。
【図8】図7におけるそれぞれのチェック・ドライブに
対するチェック・ドライブの組を示している。
【図9】1つのチェック・ドライブと複数のデータ・ド
ライブとが故障したときに失われたデータを回復する流
れ図を示している。
【図10】与えられた数(Z)のチェック・ドライブが
利用可能であり、更に、それぞれのデータ・ドライブに
対してある数(P)のチェック・ドライブを配分するこ
とが望まれるときに、利用可能であるデータ・ドライブ
の最大数を計算する流れ図を示している。
【図11】本発明のある実施例のコンフィギュレーショ
ンを示しており、この場合には、D個のデータ・ドライ
ブの組が1つのコントローラとP個のチェック・ドライ
ブの別の組とを用いて構成可能である。
【図12】故障したデータ・ドライブを機能しているチ
ェック・ドライブと代えて、このチェック・ドライブを
データ・ドライブとして再指定できるようにする流れ図
を示している。
【図13】故障したデータ・ドライブD3が機能してい
るチェック・ドライブP3によって代えられたコンフィ
ギュレーションを示している。
【図14】与えられたコンフィギュレーションにおいて
保護することができるデータ・ドライブの数を決定する
ことを可能にする規則の組を示している。

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・システムにおいてデータ
    ・バックアップを提供する方法であって、 a)N個のデータ・ドライブを提供するステップと、 b)前記N個のデータ・ドライブをシーケンシャルな順
    序に指定するステップであって、前記N個のデータ・ド
    ライブのそれぞれが関連する直前のデータ・ドライブと
    関連する次のデータ・ドライブとを有しており、N番目
    のデータ・ドライブは最初のデータ・ドライブの前にあ
    ると考える、ステップと、 c)それぞれのデータ・ドライブとそれぞれの対応する
    直前のデータ・ドライブとの間のチェック情報を計算す
    るステップと、 d)それぞれのデータ・ドライブとそれぞれの対応する
    関連する直前のデータ・ドライブとの間で計算された前
    記チェック情報をN個のチェック・ドライブの1つの上
    に記憶し、それによって、それぞれの計算されたチェッ
    ク情報が前記N個のチェック・ドライブの別々の1つの
    上に記憶されるようにするステップと、 を含むことを特徴とする方法。
  2. 【請求項2】 請求項1記載の方法において、 ターゲット・データ・ドライブ上に記憶するために新た
    なデータを受け取るステップと、 前記ターゲット・データ・ドライブ上に記憶された古い
    データを取得するステップと、 チェック・ドライブ上に記憶された既存のチェック情報
    を取得するステップと、 前記古いデータを用いて前記既存のチェック情報から仮
    のチェック情報を逆計算するステップと、 前記新たなデータと前記仮のチェック情報とを用いて新
    たなチェック情報を決定するステップと、 前記新たなデータを前記ターゲット・データ・ドライブ
    に書き込むステップと、 を更に含むことを特徴とする方法。
  3. 【請求項3】 請求項1記載の方法において、 ターゲット・データ・ドライブが故障したと判断するス
    テップと、 前記ターゲット・データ・ドライブの関連する直前のデ
    ータ・ドライブにアクセスするステップと、 前記ターゲット・データ・ドライブと関連するチェック
    ・ディスクと前記ターゲット・データ・ドライブの関連
    する直前のデータ・ドライブとにアクセスするステップ
    と、 前記ターゲット・データ・ドライブの関連する直前のデ
    ータ・ドライブ上に記憶された情報と、前記ターゲット
    ・データ・ドライブと関連するチェック・ディスクと前
    記ターゲット・データ・ドライブの関連する直前のデー
    タ・ドライブとに記憶された情報とを用いることによ
    り、元々は前記ターゲット・データ・ドライブ上に記憶
    されていた失われたデータを計算するステップと、 を更に含むことを特徴とする方法。
  4. 【請求項4】 請求項1記載の方法において、 ターゲット・データ・ドライブが故障したと判断するス
    テップと、 前記ターゲット・データ・ドライブの関連する直後のデ
    ータ・ドライブにアクセスするステップと、 前記ターゲット・データ・ドライブと関連するチェック
    ・ディスクと前記ターゲット・データ・ドライブの関連
    する直後のデータ・ドライブとにアクセスするステップ
    と、 前記ターゲット・データ・ドライブの関連する直後のデ
    ータ・ドライブ上に記憶された情報と、前記ターゲット
    ・データ・ドライブと関連するチェック・ディスクと前
    記ターゲット・データ・ドライブの関連する直後のデー
    タ・ドライブとに記憶された情報とを用いることによ
    り、元々は前記ターゲット・データ・ドライブ上に記憶
    されていた失われたデータを計算するステップと、 を更に含むことを特徴とする方法。
  5. 【請求項5】 請求項1記載の方法において、 データ・ブロックD2をターゲット・データ・ドライブ
    に書き込むことを試みるステップと、 前記ターゲット・データ・ドライブが故障したと判断す
    るステップと、 関連する直前のデータ・ドライブから第1の対応するデ
    ータ・ブロックD1を読み出すステップと、 関連する直後のデータ・ドライブから第2の対応するデ
    ータ・ブロックD3を読み出すステップと、 前記データ・ブロックD2と前記第1の対応するデータ
    ・ブロックD1とを用いてチェック情報P1の第1のブ
    ロックを計算するステップと、 前記データ・ブロックD2と前記第2の対応するデータ
    ・ブロックD3とを用いてチェック情報P2の第2のブ
    ロックを計算するステップと、 チェック情報P1の前記第1のブロックを、前記ターゲ
    ット・データ・ドライブと前記関連する直前のデータ・
    ドライブとに関連する第1のチェック・ディスクに書き
    込むステップと、 チェック情報P2の前記第2のブロックを、前記ターゲ
    ット・データ・ドライブと前記関連する直後のデータ・
    ドライブとに関連する第2のチェック・ディスクに書き
    込むステップと、 を更に含むことを特徴とする方法。
  6. 【請求項6】 請求項1記載の方法において、 データ・ブロックD2をターゲット・データ・ドライブ
    に書き込むことを試みるステップと、 前記ターゲット・データ・ドライブが故障したと判断す
    るステップと、 前記ターゲット・データ・ドライブの関連する直前のデ
    ータ・ドライブから第1の対応するデータ・ブロックD
    1を読み出すステップと、 D1とD2とを用いてチェック・ディスク情報P1の第
    1の対応するブロックを計算するステップと、 P1を前記ターゲット・データ・ドライブと関連する第
    1のチェック・ディスクに書き込むステップと、 第2の対応するデータ・ブロックD3をターゲット・デ
    ータ・ドライブの関連する直後のデータ・ドライブから
    読み出すことを試みるステップと、 前記ターゲット・データ・ドライブの前記関連する直後
    のデータ・ドライブが故障したと判断するステップと、 前記ターゲット・データ・ドライブの前記関連する直後
    のデータ・ドライブと関連するデータ・ドライブから第
    3の対応するデータ・ブロックD4を読み出すステップ
    と、 前記ターゲット・データ・ドライブの前記関連する直後
    のデータ・ドライブと関連するデータ・ドライブと関連
    するチェック・ディスクから第4の対応するデータ・ブ
    ロックP3を読み出すステップと、 P3とD4とを用いてD3を計算するステップと、 D2とD3とを用いてチェック・ディスク情報の第2の
    対応するブロックを計算するステップと、 P2を前記ターゲット・データ・ドライブと関連する第
    2のチェック・ディスクに書き込むステップと、 を更に含むことを特徴とする方法。
  7. 【請求項7】 請求項1記載の方法において、 データ・ブロックD2をターゲット・データ・ドライブ
    に書き込むことを試みるステップと、 前記ターゲット・データ・ドライブが故障したと判断す
    るステップと、 前記ターゲット・データ・ドライブに近接する少なくと
    も1つの関連するデータ・ドライブへのアクセスを試み
    るステップと、 前記ターゲット・データ・ドライブに近接する前記関連
    するデータ・ドライブが故障したと判断するステップ
    と、 既存のアクティブなデータ・ドライブと既存のアクティ
    ブなチェック・ドライブとを用いて、前記故障したドラ
    イブ上の失われたデータを回復するようにチェーン・バ
    ックするステップと、 前記回復された失われたデータと前記ターゲット・デー
    タ・ドライブと関連するチェック・ディスクとを用い
    て、前記ターゲット・データ・ドライブを更新するステ
    ップと、 を更に含むことを特徴とする方法。
  8. 【請求項8】 請求項1記載の方法において、 データ・ブロックD2をターゲット・データ・ドライブ
    から読み出すことを試みるステップと、 前記ターゲット・データ・ドライブが故障したと判断す
    るステップと、 前記故障したターゲット・データ・ドライブと関連する
    少なくとも1つのデータ・ドライブへのアクセスを試み
    るステップと、 前記故障したターゲット・データ・ドライブと関連する
    前記データ・ドライブもまた故障したと判断するステッ
    プと、 既存のアクティブなデータ・ドライブと既存のアクティ
    ブなチェック・ドライブとを用いて、前記ターゲット・
    データ・ドライブ上の失われたデータを回復するように
    チェーン・バックするステップと、 を更に含むことを特徴とする方法。
  9. 【請求項9】 コンピュータ・システムにおいてデータ
    ・バックアップを提供する装置であって、 a)シーケンシャルな順序に構成されたN個のデータ・
    ドライブのアレイであって、前記N個のデータ・ドライ
    ブのそれぞれが関連する直前のデータ・ドライブと関連
    する次のデータ・ドライブとを有しており、N番目のデ
    ータ・ドライブは最初のデータ・ドライブの前にあると
    考えられる、N個のデータ・ドライブのアレイと、 b)それぞれのデータ・ドライブとそれぞれの対応する
    直前のデータ・ドライブとの間のチェック情報を計算す
    る手段と、 d)それぞれのデータ・ドライブとそれぞれの対応する
    関連する直前のデータ・ドライブとの間の計算された前
    記チェック情報を記憶することができるN個のチェック
    ・ドライブの組であって、それぞれの計算されたチェッ
    ク情報を前記N個のチェック・ドライブの別々の1つの
    上に記憶することができるように構成されているN個の
    チェック・ドライブの組と、 を備えていることを特徴とする装置。
  10. 【請求項10】 コンピュータ・システムにおいてデー
    タ・バックアップを提供する方法であって、 a)それぞれがデータを記憶するように構成されたD個
    のデータ・ドライブを提供するステップと、 b)それぞれのデータ・ドライブを少なくとも2つの別
    々のチェック・ドライブの組を用いて保護するステップ
    と、 c)少なくとも2つのチェック・ドライブの組それぞれ
    を、他のどの組ともただ1つのチェック・ドライブしか
    共有しないように、確立するステップと、 を含むことを特徴とする方法。
  11. 【請求項11】 請求項10記載の方法において、ある
    1つのチェック・ドライブと関連するすべてのドライブ
    と前記チェック・ドライブとが故障したときにはデータ
    ・バックアップを提供するステップを更に含むことを特
    徴とする方法。
  12. 【請求項12】 請求項10記載の方法において、少な
    くとも1つのドライブが故障したときにはデータ・バッ
    クアップを提供するステップを更に含むことを特徴とす
    る方法。
  13. 【請求項13】 請求項12記載の方法において、複数
    のドライブが故障したときにはデータ・バックアップを
    提供するステップを更に含むことを特徴とする方法。
  14. 【請求項14】 請求項10記載の方法において、複数
    のドライブが故障したときにはデータ・バックアップを
    提供するステップを更に含むことを特徴とする方法。
  15. 【請求項15】 請求項14記載の方法において、1つ
    のデータ・ドライブと1つのチェック・ドライブとが故
    障したときにはデータ・バックアップを提供するステッ
    プを更に含むことを特徴とする方法。
  16. 【請求項16】 請求項10記載の方法において、2つ
    のデータ・ドライブが故障したときにはデータ・バック
    アップを提供するステップを更に含むことを特徴とする
    方法。
  17. 【請求項17】 請求項10記載の方法において、2つ
    のチェック・ドライブが故障したときにはデータ・バッ
    クアップを提供するステップを更に含むことを特徴とす
    る方法。
  18. 【請求項18】 コンピュータ・システムにおいてデー
    タ・バックアップを提供する装置であって、 a)それぞれがデータを記憶するように構成されたD個
    のデータ・ドライブのアレイと、 b)前記D個のデータ・ドライブのそれぞれに結合され
    ているが前記D個のデータ・ドライブから分離している
    少なくとも2つのチェック・ドライブの組と、 を備えており、少なくとも2つのチェック・ドライブの
    組それぞれは、他のすべての個々の組ともただ1つのチ
    ェック・ドライブしか共有しないことを特徴とする装
    置。
  19. 【請求項19】 請求項18記載の装置において、ある
    1つのチェック・ドライブと関連するすべてのドライブ
    と前記チェック・ドライブとが故障したときにはデータ
    ・バックアップを提供する手段を更に備えていることを
    特徴とする装置。
  20. 【請求項20】 請求項18記載の装置において、少な
    くとも1つのデータ・ドライブが故障したときにはデー
    タ・バックアップを提供する手段を更に備えていること
    を特徴とする装置。
  21. 【請求項21】 請求項20記載の装置において、複数
    のドライブが故障したときにはデータ・バックアップを
    提供する手段を更に備えていることを特徴とする装置。
  22. 【請求項22】 請求項18記載の装置において、複数
    のドライブが故障したときにはデータ・バックアップを
    提供する手段を更に備えていることを特徴とする装置。
  23. 【請求項23】 請求項22記載の装置において、1つ
    のデータ・ドライブと1つのチェック・ドライブとが故
    障したときにはデータ・バックアップを提供する手段を
    更に備えていることを特徴とする装置。
  24. 【請求項24】 請求項18記載の装置において、2つ
    のデータ・ドライブが故障したときにはデータ・バック
    アップを提供する手段を更に備えていることを特徴とす
    る装置。
  25. 【請求項25】 請求項18記載の装置において、2つ
    のチェック・ドライブが故障したときにはデータ・バッ
    クアップを提供する手段を更に備えていることを特徴と
    する装置。
  26. 【請求項26】 コンピュータ・システムにおいてデー
    タ・バックアップを提供する方法であって、 a)D個のデータ・ドライブを用いるステップと、 b)データ・ドライブのバックアップに用いられるチェ
    ック・ドライブの数に対して最小の数Zを確立するステ
    ップと、 c)P個のチェック・ドライブを用いてデータをバック
    アップするステップと、 d)DとPとをD<(P!)/((Z!)*(P−Z)
    !)という関係を満足するように選択するステップと、 e)すべてのD個のデータ・ドライブとすべてのP個の
    チェック・ドライブとから構成されるドライブの組の中
    の任意の2つのドライブの故障に対して、前記コンピュ
    ータ・システムにおいてデータ・バックアップを提供す
    るステップと、 を含むことを特徴とする方法。
  27. 【請求項27】 コンピュータ・システムにおいてデー
    タ・バックアップを提供する装置であって、 a)D個の複数のデータ・ドライブと、 b)データをバックアップするP個のチェック・ドライ
    ブの組であって、この組はD個のデータ・ドライブとは
    別個であり、前記D個のデータ・ドライブの中の1つが
    失われるとその結果として前記P個のチェック・ドライ
    ブの1つの上に記憶されているチェック情報が失われ、
    前記チェック・ドライブはD個のデータ・ドライブのア
    レイに結合されており前記D個のデータ・ドライブのそ
    れぞれはZ個のチェック・ドライブによってバックアッ
    プされる、P個のチェック・ドライブの組と、 を備えており、D、P及びZは、D<(P!)/((Z
    !)*(P−Z)!)という関係を満足し、DとPと
    は、すべてのD個のデータ・ドライブとすべてのP個の
    チェック・ドライブとから構成されるドライブの組の中
    の任意の2つのドライブの故障に対して、データ・バッ
    クアップが提供され得るように結合されていることを特
    徴とする装置。
  28. 【請求項28】 コンピュータ・システムにおいてデー
    タ・バックアップを提供する方法であって、 a)データを記憶する少なくとも1つのデータ・ドライ
    ブを提供するステップと、 b)前記データをバックアップする少なくとも1つのチ
    ェック・ドライブを提供するステップと、 c)前記少なくとも1つのデータ・ドライブの中の1つ
    の故障を検出するステップと、 d)前記少なくとも1つのチェック・ドライブの中の1
    つをデータ・ドライブの中に再指定し、故障したデータ
    ・ドライブを前記チェック・ドライブと交換するステッ
    プと、 を含むことを特徴とする方法。
  29. 【請求項29】 コンピュータ・システムにおいてデー
    タ・バックアップを提供する方法であって、 a)データを記憶する少なくとも1つのデータ・ドライ
    ブと、 b)前記データをバックアップする少なくとも1つのチ
    ェック・ドライブと、 c)前記少なくとも1つのデータ・ドライブの中の1つ
    の故障を検出するコントローラと、 を備えており、前記コントローラは、前記少なくとも1
    つのチェック・ドライブの中の1つをデータ・ドライブ
    として再指定し、故障したデータ・ドライブに代えるこ
    とを特徴とする装置。
JP153A 1998-12-31 2000-01-04 複数ドライブ故障トレラントraidアルゴリズム Pending JP2000207136A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/224524 1998-12-31
US09/224,524 US6327672B1 (en) 1998-12-31 1998-12-31 Multiple drive failure tolerant raid system

Publications (1)

Publication Number Publication Date
JP2000207136A true JP2000207136A (ja) 2000-07-28

Family

ID=22841068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP153A Pending JP2000207136A (ja) 1998-12-31 2000-01-04 複数ドライブ故障トレラントraidアルゴリズム

Country Status (3)

Country Link
US (1) US6327672B1 (ja)
EP (1) EP1016967A3 (ja)
JP (1) JP2000207136A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100363221B1 (ko) * 2000-11-10 2002-12-05 디스크뱅크(주) 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법
JP2009080822A (ja) * 2002-05-31 2009-04-16 Nvidia Corp トランスペアレントeccメモリシステム
JP2013077062A (ja) * 2011-09-29 2013-04-25 Nec Corp ディスクアレイ装置およびディスクアレイ制御用プログラム
JP2014525188A (ja) * 2011-07-18 2014-09-25 クアンド サービス インコーポレイテッド 複数のパリティセットに属するデータサブセットを再構築するパリティベースの方法
JP2016095613A (ja) * 2014-11-13 2016-05-26 富士通株式会社 ストレージプログラム、ストレージシステム、ストレージ方法、及びストレージ装置

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636984B1 (en) * 2000-06-15 2003-10-21 International Business Machines Corporation System and method for recovering data from mirror drives following system crash
GB2371886B (en) * 2001-01-31 2005-06-22 Hewlett Packard Co Storage apparatus
US6934904B2 (en) * 2001-04-30 2005-08-23 Sun Microsystems, Inc. Data integrity error handling in a redundant storage array
US6950966B2 (en) * 2001-07-17 2005-09-27 Seachange International, Inc. Data transmission from raid services
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US6848022B2 (en) * 2002-10-02 2005-01-25 Adaptec, Inc. Disk array fault tolerant method and system using two-dimensional parity
US7085953B1 (en) 2002-11-01 2006-08-01 International Business Machines Corporation Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array
US7188270B1 (en) 2002-11-21 2007-03-06 Adaptec, Inc. Method and system for a disk fault tolerance in a disk array using rotating parity
TWI235997B (en) * 2002-12-12 2005-07-11 Via Tech Inc Examining method of array configuration for system of multiple disk arrays
US7093159B1 (en) 2002-12-12 2006-08-15 Adaptec, Inc. Method and system for four disk fault tolerance in a disk array
US7062604B1 (en) 2003-02-12 2006-06-13 Adaptec, Inc. Method and system for five-disk fault tolerance in a disk array
WO2004099988A1 (en) * 2003-05-05 2004-11-18 Trustees Of Boston University Data storage distribution and retrieval
US7278053B2 (en) * 2003-05-06 2007-10-02 International Business Machines Corporation Self healing storage system
US7149847B2 (en) * 2003-06-26 2006-12-12 Adaptec, Inc. RAID 6 disk array architectures
US7103716B1 (en) * 2003-06-26 2006-09-05 Adaptec, Inc. RAID 6 disk array with prime number minus one disks
US7103826B2 (en) * 2003-07-31 2006-09-05 Hewlett-Packard Development Company, L.P. Memory system and controller for same
US7099994B2 (en) * 2003-09-29 2006-08-29 Hewlett-Packard Development Company, L.P. RAID memory system
US7185222B2 (en) * 2003-11-14 2007-02-27 International Business Machines Corporation Apparatus, system, and method for maintaining data in a storage array
US20050273651A1 (en) * 2004-05-18 2005-12-08 Aristos Logic Corporation Method of implementing XOR based raid algorithms
US7519629B2 (en) * 2004-09-30 2009-04-14 International Business Machines Corporation System and method for tolerating multiple storage device failures in a storage system with constrained parity in-degree
US7594075B2 (en) 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
US8131969B2 (en) * 2004-10-20 2012-03-06 Seagate Technology Llc Updating system configuration information
US8131926B2 (en) * 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US7945729B2 (en) * 2004-11-24 2011-05-17 International Business Machines Corporation System and method for tolerating multiple storage device failures in a storage system using horizontal and vertical parity layouts
US8677208B2 (en) * 2007-09-21 2014-03-18 Hewlett-Packard Development Company, L.P. Generating a parallel recovery plan for a data storage system
WO2010049276A1 (en) * 2008-10-28 2010-05-06 International Business Machines Corporation Multiple erasure protection
WO2014185915A1 (en) * 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Reporting degraded state of data retrieved for distributed object
US20140351634A1 (en) * 2013-05-22 2014-11-27 Brahim Bakayoko Transparent Parity-Based Recovery System and Method for Storage Devices
US9891993B2 (en) 2014-05-23 2018-02-13 International Business Machines Corporation Managing raid parity stripe contention
US9620165B2 (en) * 2015-02-26 2017-04-11 Netapp, Inc. Banded allocation of device address ranges in distributed parity schemes
US10303572B2 (en) * 2017-01-23 2019-05-28 Wipro Limited Methods and systems for improving fault tolerance in storage area network
CN108572882B (zh) * 2017-03-10 2020-07-14 华为技术有限公司 一种数据存储的方法及存储设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989206A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5579475A (en) 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US5301297A (en) 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
JP2777301B2 (ja) 1992-01-07 1998-07-16 三菱電機株式会社 記録装置
US5305326A (en) * 1992-03-06 1994-04-19 Data General Corporation High availability disk arrays
US5331646A (en) 1992-05-08 1994-07-19 Compaq Computer Corporation Error correcting code technique for improving reliablility of a disk array
US5513192A (en) 1992-08-28 1996-04-30 Sun Microsystems, Inc. Fault tolerant disk drive system with error detection and correction
DE4332458C1 (de) 1993-09-23 1994-09-15 Swarovski & Co Dekortafel
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
US5499253A (en) 1994-01-05 1996-03-12 Digital Equipment Corporation System and method for calculating RAID 6 check codes
US5479653A (en) 1994-07-14 1995-12-26 Dellusa, L.P. Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US5745671A (en) * 1995-02-28 1998-04-28 International Business Machines Corporation Data storage system with localized XOR function
US6154853A (en) * 1997-03-26 2000-11-28 Emc Corporation Method and apparatus for dynamic sparing in a RAID storage system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100363221B1 (ko) * 2000-11-10 2002-12-05 디스크뱅크(주) 대용량 디스크 저장 장치 및 이를 위한 폴트 톨로런스제공 방법
JP2009080822A (ja) * 2002-05-31 2009-04-16 Nvidia Corp トランスペアレントeccメモリシステム
JP2014525188A (ja) * 2011-07-18 2014-09-25 クアンド サービス インコーポレイテッド 複数のパリティセットに属するデータサブセットを再構築するパリティベースの方法
US9164827B2 (en) 2011-07-18 2015-10-20 Qando Services Inc. Parity based method for reconstructing a data subset wherein said subset belongs to multiple parity sets
JP2013077062A (ja) * 2011-09-29 2013-04-25 Nec Corp ディスクアレイ装置およびディスクアレイ制御用プログラム
US9081738B2 (en) 2011-09-29 2015-07-14 Nec Corporation Disk array device, disk array control method, and recording medium
JP2016095613A (ja) * 2014-11-13 2016-05-26 富士通株式会社 ストレージプログラム、ストレージシステム、ストレージ方法、及びストレージ装置

Also Published As

Publication number Publication date
EP1016967A2 (en) 2000-07-05
US6327672B1 (en) 2001-12-04
EP1016967A3 (en) 2005-11-02

Similar Documents

Publication Publication Date Title
JP2000207136A (ja) 複数ドライブ故障トレラントraidアルゴリズム
US6269453B1 (en) Method for reorganizing the data on a RAID-4 or RAID-5 array in the absence of one disk
US5504858A (en) Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
US8839028B1 (en) Managing data availability in storage systems
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
US7308599B2 (en) Method and apparatus for data reconstruction after failure of a storage device in a storage array
JP4516846B2 (ja) ディスク・アレイ・システム
US7506187B2 (en) Methods, apparatus and controllers for a raid storage system
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US5303244A (en) Fault tolerant disk drive matrix
US5479653A (en) Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US7356644B2 (en) Apparatus and method for providing very large virtual storage volumes using redundant arrays of disks
US7017107B2 (en) Storage array employing scrubbing operations at the disk-controller level
JP3226370B2 (ja) 高可用度ディスク配列に関する改善
US7069382B2 (en) Method of RAID 5 write hole prevention
US7353423B2 (en) System and method for improving the performance of operations requiring parity reads in a storage array system
US20120192037A1 (en) Data storage systems and methods having block group error correction for repairing unrecoverable read errors
US7752389B1 (en) Techniques for determining physical data layout of RAID devices
US7523257B2 (en) Method of managing raid level bad blocks in a networked storage system
EP0768605A2 (en) Reconstructing data blocks in a RAID array data storage system having storage device metadata and RAIDset metada
JP2001147785A (ja) データを管理する方法
US20030188101A1 (en) Partial mirroring during expansion thereby eliminating the need to track the progress of stripes updated during expansion
JPH05143471A (ja) 記憶装置の冗長アレイ内の故障記憶装置のオンライン再構成方法
JPH0731579B2 (ja) Dasdアレイの階層を管理する方法および装置
US5933592A (en) Promoting device level error to raidset level error to restore redundacy in a raid array data storage system