JP2514289B2 - デ―タの修復方法およびシステム - Google Patents
デ―タの修復方法およびシステムInfo
- Publication number
- JP2514289B2 JP2514289B2 JP3320232A JP32023291A JP2514289B2 JP 2514289 B2 JP2514289 B2 JP 2514289B2 JP 3320232 A JP3320232 A JP 3320232A JP 32023291 A JP32023291 A JP 32023291A JP 2514289 B2 JP2514289 B2 JP 2514289B2
- Authority
- JP
- Japan
- Prior art keywords
- parity
- data
- array
- dasd
- dasds
- 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
- 238000000034 method Methods 0.000 title claims description 28
- 238000003491 array Methods 0.000 claims description 11
- 125000004079 stearyl group Chemical group [H]C([*])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])C([H])([H])[H] 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000008929 regeneration Effects 0.000 description 3
- 238000011069 regeneration method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000195940 Bryophyta Species 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 235000011929 mousse Nutrition 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
-
- 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
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (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)
- Detection And Correction Of Errors (AREA)
- Hardware Redundancy (AREA)
Description
【0001】
【産業上の利用分野】本発明は故障独立型直接アクセス
記憶装置(DASD)の配列に関し、更に詳しくはこの
DASD配列上に記憶されるデータの保守可用性に関す
る。
記憶装置(DASD)の配列に関し、更に詳しくはこの
DASD配列上に記憶されるデータの保守可用性に関す
る。
【0002】
【従来の技術】外部記憶装置における1つのプロセサに
よる設計は論理トラックを有する膨大な論理DASDを
考慮することである。各論理トラックは外部記憶(DA
SD配列)を構成する物理的DASDの物理的トラック
範囲の何倍もの範囲を要する。エラー訂正コーディング
及び再作成の目的に、論理トラック内のデータを論理空
間行列上にマップされる一連のビット、バイト或いはブ
ロックと見なすことが都合が良い。配列形式の論理トラ
ックから物理配列へのマッピングは本発明において使用
される重要な技術の1つである。
よる設計は論理トラックを有する膨大な論理DASDを
考慮することである。各論理トラックは外部記憶(DA
SD配列)を構成する物理的DASDの物理的トラック
範囲の何倍もの範囲を要する。エラー訂正コーディング
及び再作成の目的に、論理トラック内のデータを論理空
間行列上にマップされる一連のビット、バイト或いはブ
ロックと見なすことが都合が良い。配列形式の論理トラ
ックから物理配列へのマッピングは本発明において使用
される重要な技術の1つである。
【0003】数学的には配列は添字変数(subscripted
variable)であり、添字は変数の各例の相対的な位置順
序、特に論理トラック内における各ビット、バイト或い
はブロックの位置順序を指標付けする。また、添字の要
素は配列の次元を定義する。従って、配列A(i、j)
はその相対位置が2次元の閉じた整数間隔(1、1<
(i、j)<N、K)上にマップされる変数“A”を特
定する。
variable)であり、添字は変数の各例の相対的な位置順
序、特に論理トラック内における各ビット、バイト或い
はブロックの位置順序を指標付けする。また、添字の要
素は配列の次元を定義する。従って、配列A(i、j)
はその相対位置が2次元の閉じた整数間隔(1、1<
(i、j)<N、K)上にマップされる変数“A”を特
定する。
【0004】配列次元は相互に排他的である。従って、
閉じた整数間隔1<i<N及び1<j<Kにより表され
る次元はそれぞれ装置や時間などの順序(指標)を示
し、N及びKは整数の上限である。慣例により、列順序
は1つの配列次元を指定し、行順序は他の配列次元を指
定する。この点に関しては、NがDASDの番号を、ま
たKが1つのDASDのトラック当たりのビット、バイ
ト或いはブロックの番号を示す。
閉じた整数間隔1<i<N及び1<j<Kにより表され
る次元はそれぞれ装置や時間などの順序(指標)を示
し、N及びKは整数の上限である。慣例により、列順序
は1つの配列次元を指定し、行順序は他の配列次元を指
定する。この点に関しては、NがDASDの番号を、ま
たKが1つのDASDのトラック当たりのビット、バイ
ト或いはブロックの番号を示す。
【0005】同期してアクセスされるN個のDASDの
物理的な配列はDASD配列を構成する。これに関連し
て、配列のフォーマット及びその後のアクセスが行わ
れ、行或いは列のどちらか一方を基本とする連続する位
置へ値を挿入することにより記憶が進行する。オペレー
ションが列方向に実行されると、それは列メジャー順序
“column major order”と称される。同様に、行方向に
実行されると、行メジャー順序“row major order”と
称される。
物理的な配列はDASD配列を構成する。これに関連し
て、配列のフォーマット及びその後のアクセスが行わ
れ、行或いは列のどちらか一方を基本とする連続する位
置へ値を挿入することにより記憶が進行する。オペレー
ションが列方向に実行されると、それは列メジャー順序
“column major order”と称される。同様に、行方向に
実行されると、行メジャー順序“row major order”と
称される。
【0006】DASD配列及び属性 DASD配列は、プロセサ或いはプロセサ配列の広帯域
データ及び制御パスの終端に位置する入出力(I/O)
境界において、これらと接続される外部記憶装置形態で
ある。更に詳しくは、DASD配列は、共通モード或い
は手段により動作される論理的に関連するDASDセッ
トを意味し、その際、DASDセットは同期式に選択さ
れオペレートされる。DASD配列はハイ・データ・レ
ート、大論理トラック・サイズ及び超高度可用性を支援
する特徴を示す。
データ及び制御パスの終端に位置する入出力(I/O)
境界において、これらと接続される外部記憶装置形態で
ある。更に詳しくは、DASD配列は、共通モード或い
は手段により動作される論理的に関連するDASDセッ
トを意味し、その際、DASDセットは同期式に選択さ
れオペレートされる。DASD配列はハイ・データ・レ
ート、大論理トラック・サイズ及び超高度可用性を支援
する特徴を示す。
【0007】ハイ・データ・レートはDASDの同期式
アクセスを必要とする。また、DASDの片方のグルー
プを横断する書き込みアクセスの場合には、所定のサイ
ズ(ビット、バイト、ワード、ブロック、レコード)に
区切られたデータのシリアルからパラレルへのマッピン
グが必要となり、一方、読み出しアクセスの場合にはパ
ラレルからシリアルへのマッピングが必要となる。この
マッピングはインターリービング“interleaving”或い
はストライピング“striping”と称される。
アクセスを必要とする。また、DASDの片方のグルー
プを横断する書き込みアクセスの場合には、所定のサイ
ズ(ビット、バイト、ワード、ブロック、レコード)に
区切られたデータのシリアルからパラレルへのマッピン
グが必要となり、一方、読み出しアクセスの場合にはパ
ラレルからシリアルへのマッピングが必要となる。この
マッピングはインターリービング“interleaving”或い
はストライピング“striping”と称される。
【0008】同期式動作はN個のDASDに対して同一
のrpmで回転すること、同一の角度オフセットを有す
ること、また同一の形式により同時にアクセスされるこ
とを要求する。この解決はデータ転送レートを最大化す
るが、一方では並行性を最小化する。
のrpmで回転すること、同一の角度オフセットを有す
ること、また同一の形式により同時にアクセスされるこ
とを要求する。この解決はデータ転送レートを最大化す
るが、一方では並行性を最小化する。
【0009】情報の冗長性、コーディング及びブロッキ
ング Patterson により述べられるように、N個のDASD上
に記憶されるデータは、もし完全に複写されれば、トー
タル2N個の装置を必要とする。DASDの故障、ノイ
ズ或いはバースト・エラー、或いは不注意な消去により
データの上限以内のデータが使用不能となると、単にこ
のデータを複写する代わりに何らかの代数コーディング
形式が使用される。
ング Patterson により述べられるように、N個のDASD上
に記憶されるデータは、もし完全に複写されれば、トー
タル2N個の装置を必要とする。DASDの故障、ノイ
ズ或いはバースト・エラー、或いは不注意な消去により
データの上限以内のデータが使用不能となると、単にこ
のデータを複写する代わりに何らかの代数コーディング
形式が使用される。
【0010】代数コーディングは境像データにより占有
されるほんの一部のDASD空間を占有することはよく
知られている。使用されるコードに依存して、DASD
空間の85%以上が1次データ記憶用に使用可能であ
る。例えば、簡単なパリティ・コーディング(XORing)
により、任意の小空間が確保される。例えば、パリティ
は10或いは20ブロックに渡って取られる。従って、
10或いは20個のDASDグループの中の1つのDA
SDだけが除外されることになる。
されるほんの一部のDASD空間を占有することはよく
知られている。使用されるコードに依存して、DASD
空間の85%以上が1次データ記憶用に使用可能であ
る。例えば、簡単なパリティ・コーディング(XORing)
により、任意の小空間が確保される。例えば、パリティ
は10或いは20ブロックに渡って取られる。従って、
10或いは20個のDASDグループの中の1つのDA
SDだけが除外されることになる。
【0011】障害データ或いは欠損データの検出或いは
/及び訂正のために使用される代数コードには数多くの
タイプがある。このことは、いくつかのコードはエラー
を生じたデータの値を決定するだけではなく、消去され
たデータの値を決定するためにも使用されることを意味
する。また、選択されるコードは可用性に関する他の技
術的、経済的な面とも密接な関係を有する。例えば、Pa
rkなどによる1986年11月7日発行の“Providing
Fault Tolerance in Parallel SecondaryStorage Syste
ms”、Princeton University Report CS-TR-057-86 で
はPattersonの場合と同様に、ハミング・コード(Hammi
ng code) がビット・インタリーブ或いはストライプ・
グループにおいて、単純なパリティ・コードが必要とす
る以上のDASDを要求することを指摘している。
/及び訂正のために使用される代数コードには数多くの
タイプがある。このことは、いくつかのコードはエラー
を生じたデータの値を決定するだけではなく、消去され
たデータの値を決定するためにも使用されることを意味
する。また、選択されるコードは可用性に関する他の技
術的、経済的な面とも密接な関係を有する。例えば、Pa
rkなどによる1986年11月7日発行の“Providing
Fault Tolerance in Parallel SecondaryStorage Syste
ms”、Princeton University Report CS-TR-057-86 で
はPattersonの場合と同様に、ハミング・コード(Hammi
ng code) がビット・インタリーブ或いはストライプ・
グループにおいて、単純なパリティ・コードが必要とす
る以上のDASDを要求することを指摘している。
【0012】セグメンティング(ストライピング)、単
純パリティ、及びデータ再作成(Data Redo) 典型的には、データ・ストリームが最初にDASDスト
リング或いは配列に書き込まれるか更新されるときに、
1つ或いはそれ以上のコード文字がデータ・ストリーム
から算出される。同時にデータ・ストリームはNブロッ
クに分割(セグメント化)され、N個のDASDを横断
して書き込まれ、一方、代数コード化文字はN+1番目
のDASDに書き込まれる。
純パリティ、及びデータ再作成(Data Redo) 典型的には、データ・ストリームが最初にDASDスト
リング或いは配列に書き込まれるか更新されるときに、
1つ或いはそれ以上のコード文字がデータ・ストリーム
から算出される。同時にデータ・ストリームはNブロッ
クに分割(セグメント化)され、N個のDASDを横断
して書き込まれ、一方、代数コード化文字はN+1番目
のDASDに書き込まれる。
【0013】この方法はOuchi による1978年5月3
0日公報の米国特許第4092732号“System for R
ecovering Data Stored in a Failed Memory Unit” で
説明されている。Ouchi は最初に論理ファイルをNデー
タ・ブロックにセグメント化し、このNデータ・ブロッ
クの内容の排他的論理和(XORing)を取ることによりパ
リティ・ブロックを形成し、次にこれらのデータとパリ
ティ・ブロックをN+1個の故障独立型のDASDを横
断して書き込むことを開示した。
0日公報の米国特許第4092732号“System for R
ecovering Data Stored in a Failed Memory Unit” で
説明されている。Ouchi は最初に論理ファイルをNデー
タ・ブロックにセグメント化し、このNデータ・ブロッ
クの内容の排他的論理和(XORing)を取ることによりパ
リティ・ブロックを形成し、次にこれらのデータとパリ
ティ・ブロックをN+1個の故障独立型のDASDを横
断して書き込むことを開示した。
【0014】Ouchi によれば、アスセス不能ないずれか
1つのDASDからの内容は、パリティ・ブロックと残
りのN個のアクセス可能なDASD上に記憶されたブロ
ックとの排他的論理和を取ることにより回復可能であ
る。Patterson が指摘するように、単一パリティ・エン
コーディングの魅力的な側面の1つは、各書き込み更新
オペレーションに対し、旧ブロック、変更ブロック及び
旧パリティの排他的論理和としてパリティが再計算され
ることである。
1つのDASDからの内容は、パリティ・ブロックと残
りのN個のアクセス可能なDASD上に記憶されたブロ
ックとの排他的論理和を取ることにより回復可能であ
る。Patterson が指摘するように、単一パリティ・エン
コーディングの魅力的な側面の1つは、各書き込み更新
オペレーションに対し、旧ブロック、変更ブロック及び
旧パリティの排他的論理和としてパリティが再計算され
ることである。
【0015】DASDの冗長性、予備(スペアリン
グ)、及びデータ再作成 データの冗長性及び関連する予備のDASD空間に加
え、配列の可用性もまたDASDの冗長性と関わる。こ
れらの冗長なDASDは “スペア”(spare)と称され
る。この点に関し、Dunphy 等による米国特許第491
4656号“Disk Drive Memory”(1990年4月3
日公報)では“ホット・スペア”(hot spare) と称さ
れる所定数のフォーマットされたDASDを未指定のプ
ール(pool)として確保する。1つのDASDが複数の
独立にアドレス可能な同期式DASDグループ内で故障
すると、スペアの1つがこれを置換する。ここで置換さ
れたDASD上に情報を再作成する問題がまだ残ってい
る。
グ)、及びデータ再作成 データの冗長性及び関連する予備のDASD空間に加
え、配列の可用性もまたDASDの冗長性と関わる。こ
れらの冗長なDASDは “スペア”(spare)と称され
る。この点に関し、Dunphy 等による米国特許第491
4656号“Disk Drive Memory”(1990年4月3
日公報)では“ホット・スペア”(hot spare) と称さ
れる所定数のフォーマットされたDASDを未指定のプ
ール(pool)として確保する。1つのDASDが複数の
独立にアドレス可能な同期式DASDグループ内で故障
すると、スペアの1つがこれを置換する。ここで置換さ
れたDASD上に情報を再作成する問題がまだ残ってい
る。
【0016】米国特許第4914656号によれば、配
列に与えられる各データ・ストリングをセグメント化
し、セグメントのパリティを算出し、選択される一方の
同期式DASDグループのN個のDASDにセグメント
とパリティを書き込む。1つのDASDの故障は、故障
しているDASDからのデータがこのグループの残りの
N−1個のDASDから再計算されるようにする。
列に与えられる各データ・ストリングをセグメント化
し、セグメントのパリティを算出し、選択される一方の
同期式DASDグループのN個のDASDにセグメント
とパリティを書き込む。1つのDASDの故障は、故障
しているDASDからのデータがこのグループの残りの
N−1個のDASDから再計算されるようにする。
【0017】失われたデータの再計算或いは再作成スケ
ジューリングは、データの再作成(data redo) 期間中
に同一のグループ内で別の故障が発生すると、スループ
ットの保守と配列のサブシステムを使用不能とするリス
クとのトレード・オフを伴う。
ジューリングは、データの再作成(data redo) 期間中
に同一のグループ内で別の故障が発生すると、スループ
ットの保守と配列のサブシステムを使用不能とするリス
クとのトレード・オフを伴う。
【0018】DASD配列故障許容モード及び性能低下
モード・オペレーション故障許容はシステムが故障を耐
え、可用性のロスを伴うこと無くオペレーションを継続
する能力を言う。故障発生から配列を以前の情報状態に
戻すまでの間隔を性能低下モード・オペレーションと称
する。
モード・オペレーション故障許容はシステムが故障を耐
え、可用性のロスを伴うこと無くオペレーションを継続
する能力を言う。故障発生から配列を以前の情報状態に
戻すまでの間隔を性能低下モード・オペレーションと称
する。
【0019】Ouchi 及びDunphyのシステムでは、もしパ
リティに障害が生ずると、スループットに何らかの変更
を来すこと無くデータをアクセスできる。しかし、デー
タに障害が起こると、各アクセスは残りのデータから影
響を受けたデータの再計算とパリティを要求するため、
スループットは極端に低下する。スペアリングとデータ
再作成が無い場合は、第2の故障がデータを使用不能と
する。
リティに障害が生ずると、スループットに何らかの変更
を来すこと無くデータをアクセスできる。しかし、デー
タに障害が起こると、各アクセスは残りのデータから影
響を受けたデータの再計算とパリティを要求するため、
スループットは極端に低下する。スペアリングとデータ
再作成が無い場合は、第2の故障がデータを使用不能と
する。
【0020】パリティ・グループの2つの意味 上述のDunphyの特許で使用されるように、“パリティ・
グループ”とは少なくとも(N+1)番目のDASDを
含む(ここにはN個のDASDに渡るパリティが記憶さ
れる)N個のDASDの論理関係を意味する。しかし、
この用語はまたデータ・ブロックとパリティ或いは他の
代数的にコード化された冗長ブロックとの論理関係も示
す。Patterson はRAIDタイプ5DASD配列におい
て後者の定義を使用している。
グループ”とは少なくとも(N+1)番目のDASDを
含む(ここにはN個のDASDに渡るパリティが記憶さ
れる)N個のDASDの論理関係を意味する。しかし、
この用語はまたデータ・ブロックとパリティ或いは他の
代数的にコード化された冗長ブロックとの論理関係も示
す。Patterson はRAIDタイプ5DASD配列におい
て後者の定義を使用している。
【0021】データ・エラー及び消去 記憶内容における“データ・エラー”はランダム・ノイ
ズ或いはバースト処理の結果、記憶値が変化することを
意味する。11100100のような2進値を記憶する
システムにおいて、残留磁気状態が変化し、データの1
が0にまた0が1に化けてしまう。これにより、例えば
11000101のようになる。ここで左から3番目及
び8番目の値はランダム・エラーである。バースト源に
よるエラーの発生は、例えば11111110のように
現れる。ここで最初の7つの連続する位置はオーバライ
トされており、位置3から7までは実際にエラーであ
る。
ズ或いはバースト処理の結果、記憶値が変化することを
意味する。11100100のような2進値を記憶する
システムにおいて、残留磁気状態が変化し、データの1
が0にまた0が1に化けてしまう。これにより、例えば
11000101のようになる。ここで左から3番目及
び8番目の値はランダム・エラーである。バースト源に
よるエラーの発生は、例えば11111110のように
現れる。ここで最初の7つの連続する位置はオーバライ
トされており、位置3から7までは実際にエラーであ
る。
【0022】“消去”は記憶ロケーションからのデータ
値の除去を言う。例えば、データ・ストリング1xxx
x100は位置2から5において2進値が省かれてい
る。
値の除去を言う。例えば、データ・ストリング1xxx
x100は位置2から5において2進値が省かれてい
る。
【0023】パリティ及び他の代数コード 代数コーディングは異なるデータ内容におけるエラーを
検出し訂正する数多くの入念なコード及び工夫に富んで
いる。後者にはノイズの多いチャネルにおける通信やD
ASD配列上へのインタリーブ化ビット、バイト或いは
ブロックの記録が含まれる。冗長記憶の単純化及び最小
化処理のために、多くの著者が単純なパリティ・コード
を利用してきた。これは上述のOuchi の特許の中で述べ
られている。
検出し訂正する数多くの入念なコード及び工夫に富んで
いる。後者にはノイズの多いチャネルにおける通信やD
ASD配列上へのインタリーブ化ビット、バイト或いは
ブロックの記録が含まれる。冗長記憶の単純化及び最小
化処理のために、多くの著者が単純なパリティ・コード
を利用してきた。これは上述のOuchi の特許の中で述べ
られている。
【0024】単純なパリティ・コードを用いる有限及び
半無限配列内のデータのエラー検出及び訂正は、データ
配列に渡ってパリティを縦断的同様、対角線方向にまた
横断的に取ることにより拡張される。これらのパリティ
・コードはブロック・タイプであり、1つの有限配列に
関し取られるアクションがその隣の配列に関し取られる
アクションとは独立であることを意味する。これにより
エラーの伝搬或いはサイクリックなコードにおいて見ら
れるようなブロックからブロックへの間違いが回避され
る。
半無限配列内のデータのエラー検出及び訂正は、データ
配列に渡ってパリティを縦断的同様、対角線方向にまた
横断的に取ることにより拡張される。これらのパリティ
・コードはブロック・タイプであり、1つの有限配列に
関し取られるアクションがその隣の配列に関し取られる
アクションとは独立であることを意味する。これにより
エラーの伝搬或いはサイクリックなコードにおいて見ら
れるようなブロックからブロックへの間違いが回避され
る。
【0025】ブロック及びコンボルーション・コードに
おける従来のパリティ・コードEachusによる米国特許第
3685016号“Array Method And Apparatus ForEn
coding Detecting And/Or Correcting Data”(197
2年8月15日公報)ではコンボルーショナル・コード
化データの準無限ストリングに適応される多数決論理エ
ラー検出方法が開示されている。Eachusの場合、N*K
データ配列はNビットに渡る最初のチェック・セグメン
トのデコードを配列の各列に沿う一連のXOR加算とし
て使用する。ここでNは素数である。Eachusはまた、N
ビットに渡る第2及び第3のチェック・セグメントのデ
コードを、配列をよぎる一連の各左右の対角線に沿う一
連のXOR加算として開示している。
おける従来のパリティ・コードEachusによる米国特許第
3685016号“Array Method And Apparatus ForEn
coding Detecting And/Or Correcting Data”(197
2年8月15日公報)ではコンボルーショナル・コード
化データの準無限ストリングに適応される多数決論理エ
ラー検出方法が開示されている。Eachusの場合、N*K
データ配列はNビットに渡る最初のチェック・セグメン
トのデコードを配列の各列に沿う一連のXOR加算とし
て使用する。ここでNは素数である。Eachusはまた、N
ビットに渡る第2及び第3のチェック・セグメントのデ
コードを、配列をよぎる一連の各左右の対角線に沿う一
連のXOR加算として開示している。
【0026】更に、Patelによる米国特許第42019
76号“Plural Channel ErrorCorrecting Methods And
Means Using Adaptive Reallocation of RedundantCha
nnels Among GroupsOf Channels” (1980年5月6
日公報)、及び同じくPatelによる米国特許第4205
324号“Simultaneously CorrectingSeveral Channel
s In Error In A Parallel Multi Channel Data System
UsingContinuously Modifiable Syndromes And Select
ive Generation Of InternalChannel Pointers”(19
80年5月27日公報)を参照されたい。これらの特許
では、Eachusの場合をスペア行列を使用することにより
拡張している。この行は対角線及び横断パリティを支援
することにより、多重トラック磁気テープ記憶データ・
システムにおけるエラー訂正を拡張している。
76号“Plural Channel ErrorCorrecting Methods And
Means Using Adaptive Reallocation of RedundantCha
nnels Among GroupsOf Channels” (1980年5月6
日公報)、及び同じくPatelによる米国特許第4205
324号“Simultaneously CorrectingSeveral Channel
s In Error In A Parallel Multi Channel Data System
UsingContinuously Modifiable Syndromes And Select
ive Generation Of InternalChannel Pointers”(19
80年5月27日公報)を参照されたい。これらの特許
では、Eachusの場合をスペア行列を使用することにより
拡張している。この行は対角線及び横断パリティを支援
することにより、多重トラック磁気テープ記憶データ・
システムにおけるエラー訂正を拡張している。
【0027】Patelの方法はPrusinkiewicz及びBudkowsk
iによる“A Double Track ErrorCorrection Code for M
agnetic Tape”(IEEE訳Computers、pp642−64
5、1976年6月)を基本としている。ここでは準無
限フィールド上に定義されるサイクリック・コードすな
わち無限テープ上のコンボルーション・コードを構成す
る。Patelは第2の対角線を追加している。不都合に
も、エンコード化シーケンスがたとえどんなに長くて
も、コンボルーション・コード内のエラーはエンコード
化シーケンスを通じて伝搬する。ブロック・コードはエ
ラー伝搬を個々の長さに制限する。
iによる“A Double Track ErrorCorrection Code for M
agnetic Tape”(IEEE訳Computers、pp642−64
5、1976年6月)を基本としている。ここでは準無
限フィールド上に定義されるサイクリック・コードすな
わち無限テープ上のコンボルーション・コードを構成す
る。Patelは第2の対角線を追加している。不都合に
も、エンコード化シーケンスがたとえどんなに長くて
も、コンボルーション・コード内のエラーはエンコード
化シーケンスを通じて伝搬する。ブロック・コードはエ
ラー伝搬を個々の長さに制限する。
【0028】Schilling等による米国特許第47962
60号“Schilling-Manela ForwardError Correction a
nd Detection Code Method and Apparatus”(1989
年1月3日公報)では任意のG*Hデータ配列の異なる
スロープの対角線パリティを2セット使用することを開
示している。
60号“Schilling-Manela ForwardError Correction a
nd Detection Code Method and Apparatus”(1989
年1月3日公報)では任意のG*Hデータ配列の異なる
スロープの対角線パリティを2セット使用することを開
示している。
【0029】スモール・ライト・オペレーション 数多くの出願が、配列へまた配列から長いデータ・スト
リームをパスする方法に関係している。しかし、トラン
ザクション処理は通常非常に多くの異なる短いデータ・
ストリームを使用する。プロセサと外部記憶装置或いは
DASD配列との間で短いデータ・ストリームをパスす
ることは、“スモール・リード”及び“スモール・ライ
ト”オペレーションと称される。書き込みオペレーショ
ンは典型的には、旧データ及び旧パリティの読み出し、
旧データ、旧パリティ及び新データの関数としての新パ
リティの計算、DASD配列への新データ及び新パリテ
ィの書き込み、そして書き込み後のベリファイ・リード
といった3或いは4ステップを含む。
リームをパスする方法に関係している。しかし、トラン
ザクション処理は通常非常に多くの異なる短いデータ・
ストリームを使用する。プロセサと外部記憶装置或いは
DASD配列との間で短いデータ・ストリームをパスす
ることは、“スモール・リード”及び“スモール・ライ
ト”オペレーションと称される。書き込みオペレーショ
ンは典型的には、旧データ及び旧パリティの読み出し、
旧データ、旧パリティ及び新データの関数としての新パ
リティの計算、DASD配列への新データ及び新パリテ
ィの書き込み、そして書き込み後のベリファイ・リード
といった3或いは4ステップを含む。
【0030】
【発明が解決しようとする課題】本発明の目的はデータ
・エラー、消去及びDASD故障に対するDASD配列
の可用性を拡張させるための方法及び手段を提供するこ
とである。
・エラー、消去及びDASD故障に対するDASD配列
の可用性を拡張させるための方法及び手段を提供するこ
とである。
【0031】本発明の別の目的は、M個のDASD配列
における最大2個までの使用不能DASDの消去を含
む、データ内容のエンコーディング及び再作成方法及び
手段を提供する。
における最大2個までの使用不能DASDの消去を含
む、データ内容のエンコーディング及び再作成方法及び
手段を提供する。
【0032】更に本発明の別の目的は、(1)第2のD
ASD故障においても低下モード・オペレーションを許
可し、(2)単純パリティ・グループ・コーディング及
びスペアDASD上へのデータ再作成方法を提供する。
これによりDASD配列は故障許容に復帰する。
ASD故障においても低下モード・オペレーションを許
可し、(2)単純パリティ・グループ・コーディング及
びスペアDASD上へのデータ再作成方法を提供する。
これによりDASD配列は故障許容に復帰する。
【0033】
【課題を解決するための手段】その他の関連する目的と
しては、(3)単純パリティ・エンコーディング及びデ
コーディング、或いはReed-Solomonの場合に見られるよ
うな有限フィールドにおける代数オペレーションを回避
するためにXORオペレーションを使用すること、
(4)Patel の場合のようなコンボルーション・タイプ
・コーディングではなく、ブロックに渡るXORパリテ
ィ・コーディングだけを実行すること、(5)書き込み
更新及び単純パリティ・エンコーディングの実行に関す
るオペレーション数の削減が含まれる。
しては、(3)単純パリティ・エンコーディング及びデ
コーディング、或いはReed-Solomonの場合に見られるよ
うな有限フィールドにおける代数オペレーションを回避
するためにXORオペレーションを使用すること、
(4)Patel の場合のようなコンボルーション・タイプ
・コーディングではなく、ブロックに渡るXORパリテ
ィ・コーディングだけを実行すること、(5)書き込み
更新及び単純パリティ・エンコーディングの実行に関す
るオペレーション数の削減が含まれる。
【0034】前述の目的は以下に示すステップを含む方
法及び手段により達成される。 (a)トロイダル(ジグザグ及び巡回)横断線による臨
界次元のデータ配列上における繰り返し単純パリティ・
エンコーディング、(b)DASD配列へのパリティ・
コード化データ配列のストライピング及び書き込み、
(c)2つまでのDASD故障への対応、データ配列へ
のアクセスによるパターン的或いはランダム的なデータ
の再作成及び上記ステップ(a)及び(b)の繰り返
し、ここで前記横断線は使用不能DASDを考慮して、
多少変更される。
法及び手段により達成される。 (a)トロイダル(ジグザグ及び巡回)横断線による臨
界次元のデータ配列上における繰り返し単純パリティ・
エンコーディング、(b)DASD配列へのパリティ・
コード化データ配列のストライピング及び書き込み、
(c)2つまでのDASD故障への対応、データ配列へ
のアクセスによるパターン的或いはランダム的なデータ
の再作成及び上記ステップ(a)及び(b)の繰り返
し、ここで前記横断線は使用不能DASDを考慮して、
多少変更される。
【0035】更に詳しくは、上記方法は前述のパリティ
・エンコーディングを含め、(M−1)*Mデータ・ビ
ット配列内のビットに関する単純パリティ・エンコーデ
ィング対の繰り返し生成を含む。それぞれの対角線メジ
ャー及び行メジャー順序におけるこの生成では、データ
配列をトポロギー的円柱としてカバーする。すなわち、
1つのパリティ・エンコーディングは対角線パリティと
交差する行において取得される。ここで配列次元Mは素
数でなければならない。
・エンコーディングを含め、(M−1)*Mデータ・ビ
ット配列内のビットに関する単純パリティ・エンコーデ
ィング対の繰り返し生成を含む。それぞれの対角線メジ
ャー及び行メジャー順序におけるこの生成では、データ
配列をトポロギー的円柱としてカバーする。すなわち、
1つのパリティ・エンコーディングは対角線パリティと
交差する行において取得される。ここで配列次元Mは素
数でなければならない。
【0036】用語“トロイド”及び“トポロギー的円
柱”は(M−1)*Mデータ配列のコーディング(エン
コーディング及びデコーディング)横断線により定義さ
れる理論幾何学的な平面を意味する。この点に関して、
トロイド(トーラス)は半径rの円をこの円と同じ平面
内にある軸の回りを中心からの距離a>rで回転させる
ことにより得られる表面である。
柱”は(M−1)*Mデータ配列のコーディング(エン
コーディング及びデコーディング)横断線により定義さ
れる理論幾何学的な平面を意味する。この点に関して、
トロイド(トーラス)は半径rの円をこの円と同じ平面
内にある軸の回りを中心からの距離a>rで回転させる
ことにより得られる表面である。
【0037】次に、データ配列或いはこの一部のコーデ
ィングの完了時に、対角線メジャー順序におけるその時
のMビットがストライプされ、M個の故障独立型DAS
Dの対のものに書き込まれる。最終的に、最大2つまで
のDASDの不可用性に応じて、消去を含むデータ配列
をアクセスすることにより、またパリティ・コーディン
グが当初処理されたのと同様にステップ(a)及び
(b)をスケジュール的に或いは好機に繰り返すことに
より、使用不能なデータが少なくとも(M−2)以上の
使用可能なDASDから再作成される。
ィングの完了時に、対角線メジャー順序におけるその時
のMビットがストライプされ、M個の故障独立型DAS
Dの対のものに書き込まれる。最終的に、最大2つまで
のDASDの不可用性に応じて、消去を含むデータ配列
をアクセスすることにより、またパリティ・コーディン
グが当初処理されたのと同様にステップ(a)及び
(b)をスケジュール的に或いは好機に繰り返すことに
より、使用不能なデータが少なくとも(M−2)以上の
使用可能なDASDから再作成される。
【0038】(M−1)*M配列では各行及び対角線は
偶数パリティを有する。例えば参照されるバイトを構成
するビットは水平的ではなく対角的に読み出される。横
断線はM本の対角線を定義する左上コーナから任意にス
タートする。こうしたダブル・コード化パリティ及び横
断線の使用により、(M−1)*M配列コードはMが素
数の場合に限り任意のバイトを訂正可能である。
偶数パリティを有する。例えば参照されるバイトを構成
するビットは水平的ではなく対角的に読み出される。横
断線はM本の対角線を定義する左上コーナから任意にス
タートする。こうしたダブル・コード化パリティ及び横
断線の使用により、(M−1)*M配列コードはMが素
数の場合に限り任意のバイトを訂正可能である。
【0039】有利な点として、配列へのスモール或いは
ショート書き込みにおいて、本質的に単一パリティ・エ
ンコーディング及びデータ再作成で定義された場合と同
一な方法を使用する。このためにオペレーション/更新
の数は最小に維持される。
ショート書き込みにおいて、本質的に単一パリティ・エ
ンコーディング及びデータ再作成で定義された場合と同
一な方法を使用する。このためにオペレーション/更新
の数は最小に維持される。
【0040】配列がいくつかのDASDをスペアとして
確保しているか或いは配列内のDASD上に空間を確保
していると、スペアが故障したDASDの代用として機
能し、再作成されるデータはスペアを含むM個のDAS
D配列に書き込まれる。
確保しているか或いは配列内のDASD上に空間を確保
していると、スペアが故障したDASDの代用として機
能し、再作成されるデータはスペアを含むM個のDAS
D配列に書き込まれる。
【0041】最終的に本発明の方法及び手段は同期式で
あるかどうかに関わらず、DASD配列上において実施
される。同期式でない場合には、スループットは同期式
の場合ほど高くはない。
あるかどうかに関わらず、DASD配列上において実施
される。同期式でない場合には、スループットは同期式
の場合ほど高くはない。
【0042】
【実施例】図1を参照すると、並列パス11、13、1
5及び17上において知能的パリティ生成及びストライ
ピング・バッファ(PSB)7と結合される、第1及び
第2のパリティ・グループにより構成される配列が示さ
れている。CPU1及びCPU2から成るプロセサ配列
はデータ及び制御バス9に結合される。
5及び17上において知能的パリティ生成及びストライ
ピング・バッファ(PSB)7と結合される、第1及び
第2のパリティ・グループにより構成される配列が示さ
れている。CPU1及びCPU2から成るプロセサ配列
はデータ及び制御バス9に結合される。
【0043】プロセサ1或いは3に由来する読み出し及
び書き込みコマンドは、標準のアクセス・プロトコル及
びメモリ5により共用されるバス9上におけるPSB7
へのデータ転送により、DASDパリティ・グループへ
のテーブル指向アクセス・パスを形成する。論理ファイ
ルの論理処理はPSB7により実行される。この点に関
し、論理処理はストライピング(データのシリアル/パ
ラレル変換)及びパリティ生成及びチェックを含む。D
ASDへのパスからは直接にテーブル指向される。原則
的には、読み出し或いは書き込み引数内で特定されるア
ドレスは、配列記憶アドレス・テーブルを介してPSB
7により、PSB7とパリティ・グループのDASD上
のロケーションとの間の実際の物理的パスに変換され
る。
び書き込みコマンドは、標準のアクセス・プロトコル及
びメモリ5により共用されるバス9上におけるPSB7
へのデータ転送により、DASDパリティ・グループへ
のテーブル指向アクセス・パスを形成する。論理ファイ
ルの論理処理はPSB7により実行される。この点に関
し、論理処理はストライピング(データのシリアル/パ
ラレル変換)及びパリティ生成及びチェックを含む。D
ASDへのパスからは直接にテーブル指向される。原則
的には、読み出し或いは書き込み引数内で特定されるア
ドレスは、配列記憶アドレス・テーブルを介してPSB
7により、PSB7とパリティ・グループのDASD上
のロケーションとの間の実際の物理的パスに変換され
る。
【0044】書き込みコマンドを実行するために、PS
B7は最初にプロセサからのデータをバッファし、読み
出し、そしてDASDパリティ・グループからの(M−
1)*Mデータ配列をバッファする。このパリティ・グ
ループ内にはブロックのストライプ或いはインタリーブ
要素が書き込まれる。そして、旧データ、旧パリティ、
及び新データを考慮しながら新たに指定される対角線及
び行パリティを含む配列を繰り返し計算し、次に修正さ
れたデータ配列をDASDパリティ・グループ上に再書
き込みする。
B7は最初にプロセサからのデータをバッファし、読み
出し、そしてDASDパリティ・グループからの(M−
1)*Mデータ配列をバッファする。このパリティ・グ
ループ内にはブロックのストライプ或いはインタリーブ
要素が書き込まれる。そして、旧データ、旧パリティ、
及び新データを考慮しながら新たに指定される対角線及
び行パリティを含む配列を繰り返し計算し、次に修正さ
れたデータ配列をDASDパリティ・グループ上に再書
き込みする。
【0045】読み出しオペレーションでは、PSB7は
プロセサからの読み出しコマンドに応答して、書き込み
オペレーションの場合と逆のシーケンスを達成する。す
なわち、読み出されるべきデータが抽出されなければな
らないデータ配列が、PSB7においてバッファされ、
適当な行及び対角線パリティがテストされ、アドレスさ
れたデータがバス9を介して共用メモリ5に転送され
る。
プロセサからの読み出しコマンドに応答して、書き込み
オペレーションの場合と逆のシーケンスを達成する。す
なわち、読み出されるべきデータが抽出されなければな
らないデータ配列が、PSB7においてバッファされ、
適当な行及び対角線パリティがテストされ、アドレスさ
れたデータがバス9を介して共用メモリ5に転送され
る。
【0046】DASD故障及びホット・スペアリング データの読み出しアクセス中にDASD故障が発生した
場合は、PSB7は数多くの代替の中から1つを選択で
きる。これらには(1)読み出しコマンドの再試行、或
いは(2)本発明による残りのDASDからのデータの
再作成及び置換の一方により、即座に障害を来たしたデ
ータを再生成することが含まれる。
場合は、PSB7は数多くの代替の中から1つを選択で
きる。これらには(1)読み出しコマンドの再試行、或
いは(2)本発明による残りのDASDからのデータの
再作成及び置換の一方により、即座に障害を来たしたデ
ータを再生成することが含まれる。
【0047】読み出しコマンドの発生元となるプロセサ
1或いは3に関し、データ読み出し動作の完了後におい
てのみ故障の発生を知らせることが1つの戦略である。
これはプロセサに対し、Park等の場合、同様に、スペア
DASDをプールから或いは各パリティ・グループに専
用に確保されているDASDから代用するかを制御させ
る。使用禁止及び再作成などのプロセサ・コマンドに応
答して、PSB7はこのスペアへのディレクトリ・パス
を故障DASDのテーブル・ディレクトリ・パスに代用
するテーブルを使用することにより、故障DASDを指
定したスペアDASDにより置換する。次に、故障DA
SD上のデータが、指定されたスペアDASD上に再作
成される。
1或いは3に関し、データ読み出し動作の完了後におい
てのみ故障の発生を知らせることが1つの戦略である。
これはプロセサに対し、Park等の場合、同様に、スペア
DASDをプールから或いは各パリティ・グループに専
用に確保されているDASDから代用するかを制御させ
る。使用禁止及び再作成などのプロセサ・コマンドに応
答して、PSB7はこのスペアへのディレクトリ・パス
を故障DASDのテーブル・ディレクトリ・パスに代用
するテーブルを使用することにより、故障DASDを指
定したスペアDASDにより置換する。次に、故障DA
SD上のデータが、指定されたスペアDASD上に再作
成される。
【0048】1つの実施例では、PSB7はDASD可
用性のビット・マップとDASDのアドレス・マップを
記憶する。また、可用性及びアドレスのマップは各アク
セス・コマンドの処理期間中に参照される。このマップ
への変更は使用禁止及び再作成コマンドを使用するプロ
セサに由来する。こうした実施例においては、永久アド
レスがスペアDASDに対して割り当てられる。故障を
知らされた後、プロセサ1或いは3はDASDのマップ
をアドレスできる点が重要である。一方、前述の可用性
及びアドレスのマップは各アクセス・コマンドの処理期
間中に参照される。このマップへの変更は使用禁止及び
再作成コマンドを使用するプロセサに由来する。本実施
例においては、スペアDASDについて永久アドレスを
割り当てている。
用性のビット・マップとDASDのアドレス・マップを
記憶する。また、可用性及びアドレスのマップは各アク
セス・コマンドの処理期間中に参照される。このマップ
への変更は使用禁止及び再作成コマンドを使用するプロ
セサに由来する。こうした実施例においては、永久アド
レスがスペアDASDに対して割り当てられる。故障を
知らされた後、プロセサ1或いは3はDASDのマップ
をアドレスできる点が重要である。一方、前述の可用性
及びアドレスのマップは各アクセス・コマンドの処理期
間中に参照される。このマップへの変更は使用禁止及び
再作成コマンドを使用するプロセサに由来する。本実施
例においては、スペアDASDについて永久アドレスを
割り当てている。
【0049】故障を知らされた後、プロセサは以下を実
行できる。 (1)無処理を選択する。 (2)スペアDASDのアドレスを最大2個までの故障
DASDのアドレスに代用させるコマンドを生成する。 (3)下記で説明される再作成方法により、パリティと
残りのデータ用DASDとのモジューロ2加算により、
割り当てられたスペア上に最大2つまでの故障DASD
の内容を再作成する。
行できる。 (1)無処理を選択する。 (2)スペアDASDのアドレスを最大2個までの故障
DASDのアドレスに代用させるコマンドを生成する。 (3)下記で説明される再作成方法により、パリティと
残りのデータ用DASDとのモジューロ2加算により、
割り当てられたスペア上に最大2つまでの故障DASD
の内容を再作成する。
【0050】ここで、スペア・フォーマットされたDA
SDのオンライン上における他のDASDに対するダイ
ナミックな代用は“ホット・スペアリング”と称され
る。
SDのオンライン上における他のDASDに対するダイ
ナミックな代用は“ホット・スペアリング”と称され
る。
【0051】本発明のフロー図 図2を参照すると、本発明による各(M−1)*Mビッ
トのデータ配列におけるパリティ・エンコーディング・
ステップのフローが示されている。基本的には、それぞ
れ正のスロープのデータ配列対角線及び交差する行より
形成されるペアはパリティ・コード化される。これは単
に対角線上のビットはモジューロ2でカウントされ、そ
の結果が使用可能なパリティ位置に設定されることを意
味する。この対角線のパリティ位置と交差する配列行の
ビットはモジューロ2でカウントされ、その結果は使用
可能なパリティ位置に設定される。この処理はデータ配
列がカバーされるまで対角線及び行メジャー順序で繰り
返される。
トのデータ配列におけるパリティ・エンコーディング・
ステップのフローが示されている。基本的には、それぞ
れ正のスロープのデータ配列対角線及び交差する行より
形成されるペアはパリティ・コード化される。これは単
に対角線上のビットはモジューロ2でカウントされ、そ
の結果が使用可能なパリティ位置に設定されることを意
味する。この対角線のパリティ位置と交差する配列行の
ビットはモジューロ2でカウントされ、その結果は使用
可能なパリティ位置に設定される。この処理はデータ配
列がカバーされるまで対角線及び行メジャー順序で繰り
返される。
【0052】最大2つの使用不能なDASDからのデー
タの回復或いは再作成に関する作用の相違は、消去を含
むデータ配列が少なくともM−2以上のDASDからア
クセスされる後に生ずる。
タの回復或いは再作成に関する作用の相違は、消去を含
むデータ配列が少なくともM−2以上のDASDからア
クセスされる後に生ずる。
【0053】本発明によるエンコーディング例 下記に示すエンコーディング及びデコーディング/再作
成の例において、DASD配列は5つの同期式DASD
すなわちC1−C5により構成される。C1、C2及び
C3はデータの記憶用に割り当てられ、C4及びC5は
単純パリティを記憶するために確保される。また、この
配列はビット・インタリーブされるものと仮定する。こ
のことは3つのビットと2つのパリティ・ビット(M=
5)が同時にC1−C5から読み出され、また書き込ま
れることを意味する。従って、M=5の場合、データ配
列は4*5次元を有することになる。
成の例において、DASD配列は5つの同期式DASD
すなわちC1−C5により構成される。C1、C2及び
C3はデータの記憶用に割り当てられ、C4及びC5は
単純パリティを記憶するために確保される。また、この
配列はビット・インタリーブされるものと仮定する。こ
のことは3つのビットと2つのパリティ・ビット(M=
5)が同時にC1−C5から読み出され、また書き込ま
れることを意味する。従って、M=5の場合、データ配
列は4*5次元を有することになる。
【0054】Mが素数である(M−1)*Mデータ配列
は下記のようになる。
は下記のようになる。
【0055】
【0056】別の行及び対角線によるダブル・パリティ
のエンコーディング 配列は円柱状に循環するものと仮定する。この場合、エ
ンコーディング(ジグザグ状エンコーディング)は行パ
リティ割当により追従される繰り返し対角線パリティ割
当を含む。下記のコーディング作用の読み出しにおい
て、作用結果は次の連続する図によって示される。これ
らの図は正のスロープによる配列方向を取っている(左
下から右上に向かう)。
のエンコーディング 配列は円柱状に循環するものと仮定する。この場合、エ
ンコーディング(ジグザグ状エンコーディング)は行パ
リティ割当により追従される繰り返し対角線パリティ割
当を含む。下記のコーディング作用の読み出しにおい
て、作用結果は次の連続する図によって示される。これ
らの図は正のスロープによる配列方向を取っている(左
下から右上に向かう)。
【0057】ダミー行S5がトロイダル(ジグザグ)横
断線の概念化を容易にするために追加される。
断線の概念化を容易にするために追加される。
【0058】 C1 C2 C3 C4 C5 S1 1 0 1 x x S2 1 1 1 x x S3 0 1 0 x x S4 0 1 1 x x S5 0 0 0 0 0 ステップ1:第1のパリティ・エンコード位置S1C4
をインターセプトする第1の対角線S4C1−S1C4
に着目し、位置S1C4に偶数パリティを挿入する。
をインターセプトする第1の対角線S4C1−S1C4
に着目し、位置S1C4に偶数パリティを挿入する。
【0059】 ステップ2:行S1の位置S1C5に偶数パリティを割
り当てる。
り当てる。
【0060】 C1 C2 C3 C4 C5 S1 1 0 1 0d 0 S2 1 1 1d x x S3 0 1d 0 x x S4 0d 1 1 x x S5 0 0 0 0 0 ステップ3:パリティ・エンコード位置S1C5をイン
ターセプトする次の対角線S4C2−S1C5に着目
し、位置S2C4に偶数パリティを挿入する。
ターセプトする次の対角線S4C2−S1C5に着目
し、位置S2C4に偶数パリティを挿入する。
【0061】 C1 C2 C3 C4 C5 S1 1 0 1 0 0d S2 1 1 1 1d x S3 0 1 0d x x S4 0 1d 0 x x S5 0 0 0 0 0 ステップ4:行S2の位置S2C5に偶数パリティを割
り当てる。
り当てる。
【0062】 C1 C2 C3 C4 C5 S1 1 0 1 0 0d S2 1 1 1 1d x S3 0 1 0d x x S4 0 1d 1 x x S5 0 0 0 0 0 ステップ5:位置S2C5をインターセプトする次の対
角線S4C3−S1C1に着目し、位置S3C4に偶数
パリティを挿入する。
角線S4C3−S1C1に着目し、位置S3C4に偶数
パリティを挿入する。
【0063】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 0 1 0 0 1d 0 1 0 0 S2 1 1 1 1 0d 1 1 1 1 0 S3 0 1 0 0d x 0 1 0 0 x S4 0 1 1d x x 0 1 1 x x S5 0 0 0 0 0 0 0 0 0 0 ステップ6:行S3の位置S3C5に偶数パリティを割
り当てる。
り当てる。
【0064】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 0 1 0 0 1d 0 1 0 0 S2 1 1 1 1 0d 1 1 1 1 0 S3 0 1 0 0d 1 0 1 0 0 x S4 0 1 1d x x 0 1 1 x x S5 0 0 0 0 0 0 0 0 0 0 ステップ7:位置S1C2をインターセプトする次の対
角線S4C4−S1C2に着目し、位置S4C4に偶数
パリティを挿入する。
角線S4C4−S1C2に着目し、位置S4C4に偶数
パリティを挿入する。
【0065】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 0 1 0 0 1 0d 1 0 0 S2 1 1 1 1 0 1d 1 1 1 0 S3 0 1 0 0 1d 0 1 0 0 x S4 0 1 1 0d x 0 1 1 x x S5 0 0 0 0 0 0 0 0 0 0 ステップ8:行S4の位置S4C5に偶数パリティを割
り当てる。
り当てる。
【0066】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 0 1 0 0 1 0d 1 0 0 S2 1 1 1 1 0 1d 1 1 1 0 S3 0 1 0 0 1d 0 1 0 0 x S4 0 1 1 0d 0 0 1 1 x x S5 0 0 0 0 0 0 0 0 0 0 これでエンコード完了である。
【0067】素数配列の場合の処理と同等な処理が、1
0*8配列のような非素数次元配列の処理においても、
0により満たされたダミー列を付加することにより達成
される。このようにして、10*8配列は3列を追加す
ることにより10*11配列に変換される。ここで付加
された列においては決してエラーが生じないことが知ら
れている。
0*8配列のような非素数次元配列の処理においても、
0により満たされたダミー列を付加することにより達成
される。このようにして、10*8配列は3列を追加す
ることにより10*11配列に変換される。ここで付加
された列においては決してエラーが生じないことが知ら
れている。
【0068】ダブルDASD故障からのデータ回復 この例では、(M−1)*Mデータ配列は本発明による
コーディング方法によりエンコードされるものとする。
処理を開始するに当たり、最初に選択される対角線は左
側に位置する最初の欠損列からそのすぐ左列までと交差
する正のスロープの対角線である。
コーディング方法によりエンコードされるものとする。
処理を開始するに当たり、最初に選択される対角線は左
側に位置する最初の欠損列からそのすぐ左列までと交差
する正のスロープの対角線である。
【0069】ここでDASDのC2及びC5は使用不能
と仮定する。
と仮定する。
【0070】 ダミー行S5がトロイダル(ジグザグ)横断線を形成す
るために追加される。
るために追加される。
【0070】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 x 1 0 x 1d x 1 0 x S2 1 x 1 1 xd 1 x 1 1 x S3 0 x 0 0d x 0 x 0 0 x S4 0 x 1d 0 x 0 x 1 0 x S5 0 0d 0 0 0 0 0 0 0 0 ステップ1は対角線S4C3−S1C1に着目し、S2
C5に偶数パリティpを挿入する。
C5に偶数パリティpを挿入する。
【0071】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 x 1 0 x 1d x 1 0 x S2 1 x 1 1 0dp1 x 1 1 x S3 0 x 0 0d x 0 x 0 0 x S4 0 x 1d 0 x 0 x 1 0 x S5 0 0d 0 0 0 0 0 0 0 0 ステップ2は対角線パリティと交差する行S2に着目
し、S2C2に偶数パリティpを挿入する。
し、S2C2に偶数パリティpを挿入する。
【0072】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 x 1 0 x 1 x 1d 0 x S2 1 1p 1 1 0 1 1dp1 1 0 S3 0 x 0 0 x 0d x 0 0 x S4 0 x 1 0 xd 0 x 1 0 x S5 0 0 0 0d 0 0 0 0 0 0 ステップ3はS2C2で行2をインターセプトする対角
線S4C5−S1C3に着目し、S4C5に偶数パリテ
ィpを挿入する。
線S4C5−S1C3に着目し、S4C5に偶数パリテ
ィpを挿入する。
【0073】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 x 1 0 x 1 x 1d 0 x S2 1 1 1 1 0 1 1d 1 1 0 S3 0 x 0 0 x 0d x 0 0 x S4 0 x 1 0 0dp0 x 1 0 0p S5 0 0 0 0d 0 0 0 0 0 0 ステップ4は対角線パリティをインターセプトする行S
4に着目し、S4C2に偶数パリティpを挿入する。
4に着目し、S4C2に偶数パリティpを挿入する。
【0074】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 x 1 0 x 1 x 1d 0 x S2 1 1 1 1 0 1 1d 1 1 0 S3 0 x 0 0 x 0d x 0 0 x S4 0 1p 1 0 0d 0 1p 1 0 0 S5 0 0 0 0d 0 0 0 0 0 0 ステップ5はS4C2において行S4をインターセプト
する対角線S4C2−S1C5に着目し、S1C5に偶
数パリティpを挿入する。
する対角線S4C2−S1C5に着目し、S1C5に偶
数パリティpを挿入する。
【0075】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 x 1 0 0p 1 x 1 0 0dp S2 1 1 1 1 0 1 1 1 1d 0 S3 0 x 0 0 x 0 x 0d 0 x S4 0 1 1 0 0 0 1d 1 0 0 S5 0 0 0 0 0 0d 0 0 0 0 ステップ6はS1C5において対角線パリティをインタ
ーセプトする行S1に着目し、S1C2に偶数パリティ
pを挿入する。
ーセプトする行S1に着目し、S1C2に偶数パリティ
pを挿入する。
【0076】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 0p 1 0 0 1 0p 1 0 0d S2 1 1 1 1 0 1 1 1 1d 0 S3 0 x 0 0 x 0 x 0d 0 x S4 0 1 1 0 0 0 1d 1 0 0 S5 0 0 0 0 0 0d 0 0 0 0 ステップ7はS1C2において行S1をインターセプト
する対角線S4C4−S1C2に着目し、S3C5に偶
数パリティpを挿入する。
する対角線S4C4−S1C2に着目し、S3C5に偶
数パリティpを挿入する。
【0077】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 0 1 0 0 1 0d 1 0 0 S2 1 1 1 1 0 1d 1 1 1 0 S3 0 x 0 0 1dp0 x 0 0 1p S4 0 1 1 0d 0 0 1 1 0 0 S5 0 0 0d 0 0 0 0 0 0 0 ステップ8はS3C5において対角線パリティをインタ
ーセプトする行S3に着目し、S3C2に偶数パリティ
pを挿入する。
ーセプトする行S3に着目し、S3C2に偶数パリティ
pを挿入する。
【0078】 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 S1 1 0 1 0 0 1 0d 1 0 0 S2 1 1 1 1 0 1d 1 1 1 0 S3 0 1p 0 0 1d 0 1p 0 0 1 S4 0 1 1 0d 0 0 1 1 0 0 S5 0 0 0d 0 0 0 0 0 0 0 これでデータ回復が完了する。
【0079】ここでパリティ・エンコードとデータ再作
成の唯一の違いは、前者ではDASDの最後の2つの列
C4及びC5が計算されて書き込まれた値を有するのに
対し、後者ではそれがC2及びC5となる。実際に、エ
ンコーディングは本発明によるデコーディング方法の特
定なケースである。
成の唯一の違いは、前者ではDASDの最後の2つの列
C4及びC5が計算されて書き込まれた値を有するのに
対し、後者ではそれがC2及びC5となる。実際に、エ
ンコーディングは本発明によるデコーディング方法の特
定なケースである。
【0080】本発明によるスモール書き込みの例 既に述べたように、スモール或いはショート書き込みオ
ペレーションは、例えばM個のDASD配列内の1つの
DASD上のいくつかのビットの置換或いは更新書き込
みを意味する。例えば、ダミー行としてS5を有する
(M−1)*Mデータ・ビット配列がこれに相当する。
ペレーションは、例えばM個のDASD配列内の1つの
DASD上のいくつかのビットの置換或いは更新書き込
みを意味する。例えば、ダミー行としてS5を有する
(M−1)*Mデータ・ビット配列がこれに相当する。
【0081】 ここで列C2をR1=0、R2=1、R3=1、R4
=0、R5=0により置換することが望まれる。
=0、R5=0により置換することが望まれる。
【0082】本発明による方法によれば、行及び対角線
パリティの両方を再計算する必要がある。その際、新た
なパリティは旧データ、旧パリティ及び新データの排他
的論理和であることを考慮しなければならない。
パリティの両方を再計算する必要がある。その際、新た
なパリティは旧データ、旧パリティ及び新データの排他
的論理和であることを考慮しなければならない。
【0083】列C2がR1−R5により置換され再計算
された配列は下記のようになる。
された配列は下記のようになる。
【0084】 列C4及びC5上の単純パリティは列C2の更新を反映
して再計算されている。
して再計算されている。
【0085】ここで、(x、y)は配列軸におけるデー
タ値とする。更に、(x、y)´は新たな配列値とす
る。例えば、新たなパリティ計算は次のように示され
る。
タ値とする。更に、(x、y)´は新たな配列値とす
る。例えば、新たなパリティ計算は次のように示され
る。
【0086】新たなパリティ計算 (1、4)´=(1、4)XOR((3、2)XOR(R3)) =0 XOR (1 XOR 1) =0 ここで、(1、4)は旧パリティ、(3、2)は旧デー
タ、R3は新データである。
タ、R3は新データである。
【0087】 (1、5)´=(1、5)XOR((1、4)XOR(1、4)´)XOR ((1、2)XOR(R1)) =1 XOR (0 XOR 0)XOR(1 XOR 0) =0 であり、(1、5)は旧パリティ、(1、4)は隣接旧
パリティ、(1、4)´は隣接新パリティ、(1、2)
は旧データ、R1は新データである。
パリティ、(1、4)´は隣接新パリティ、(1、2)
は旧データ、R1は新データである。
【0088】 (4、5)´=(4、5)XOR((4、4)XOR(4、4)´)XOR ((2、2)XOR(R2)) =0 XOR (1 XOR 1)XOR(0 XOR 1) =1 となり、(4、5)は旧パリティ、(4、4)は隣接旧
パリティ、(4、4)´は隣接新パリティ、(2、2)
は旧データ、R2は新データである。
パリティ、(4、4)´は隣接新パリティ、(2、2)
は旧データ、R2は新データである。
【0089】
【発明の効果】以上説明したように、本発明によれば、
第2番目のDASD故障が発生した場合においても低下
モード・オペレーションを可能とし、単純パリティ・グ
ループ・コーディング方法及びスペアDASD上におけ
るデータ再作成方法が提供でき、これによりDASD配
列は故障許容され復帰される。
第2番目のDASD故障が発生した場合においても低下
モード・オペレーションを可能とし、単純パリティ・グ
ループ・コーディング方法及びスペアDASD上におけ
るデータ再作成方法が提供でき、これによりDASD配
列は故障許容され復帰される。
【図1】ストライピング、パリティ・エンコーディン
グ、スペアリング、及びスペア上でのデータ再作成を説
明するための同期式DASD配列を示す図である。
グ、スペアリング、及びスペア上でのデータ再作成を説
明するための同期式DASD配列を示す図である。
【図2】交互の行及び対角線を使用するダブル・パリテ
ィのエンコーディング、及びダブルDASD故障を有す
る配列からのデータ回復動作のフロー図である。
ィのエンコーディング、及びダブルDASD故障を有す
る配列からのデータ回復動作のフロー図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フィエ・タン・ハオ アメリカ合衆国カリフォルニア州、ロ ス・アルトス、ストーリ・ヒル・レーン 28060番地 (72)発明者 リチャード・ルイス・マトソン アメリカ合衆国カリフォルニア州、サ ン・ホセ、ロックビュー・コート 6838 番地 (72)発明者 ジャイシェンカー・ムーセダス・メノン アメリカ合衆国カリフォルニア州、サ ン・ホセ、モントロ・ドライブ 6017番 地 (56)参考文献 特開 昭54−88109(JP,A) 特開 平2−81123(JP,A) 特開 平2−291011(JP,A) 実公 昭50−24819(JP,Y2)
Claims (3)
- 【請求項1】 M個の故障独立型のDASD配列におけ
るパリティ・コード化及び最大2個の使用不能DASD
のデータ内容の再作成方法であって、 (a)(M−1)*Mビット・データ配列を円柱状に循
環させ、各々が1つの配列対角線と該対角線に割り当て
られるパリティ位置と交差する行とのペアにおいて単純
パリティ・コード化を行ってパリティ・ビットを生成
し、 (b)パリティ・コード化されたデータ配列を前記M個
のDASD配列にストライピングして書き込み、 (c)最大2個のDASDが故障したとき、前記データ
配列をアクセスし、該データ配列に含まれるパリティ・
ビットをデータ・ビットとして扱い、故障DASDにパ
リティ・ビットを生成して書き込むかのように前記ステ
ップ(a)及び(b)を繰り返すことによってデータ・
ビットを修復する、 パリティ・コード化およびデータの修復方法。 - 【請求項2】 M個のDASD配列内のパリティ・コー
ド化及び最大2個の使用不能DASDのデータ内容の再
作成方法であって、 (a)(M−1)*Mデータ配列の元のデータ要素をM
個のDASD上の対応する位置にブロック・コード化し
て書き込むに際し、前記データ配列をトポロギ的円柱状
に網羅して対角線及び該対角線に割り当てられるパリテ
ィ位置と交差する行で交互に第1及び第2の単純パリテ
ィ(XOR)を生成し、該第1及び第2のパリティを前
記M個のDASD配列の第1及び第2の故障独立型DA
SD上に記憶させ、 (b)2個以下のDASDが使用不能のとき、使用可能
な(M−1)個または(M−2)個のDASDからのデ
ータ配列に対してトポロギ的円柱状に該データ配列を網
羅して対角線及び該対角線に割り当てられるパリティ位
置と交差する行で交互に第1及び第2の単純パリティ
(XOR)を生成し、前記使用不能のDASDのデータ
をDASD配列の予備容量に再生する、 パリティ・コード化及びデータの修復方法。 - 【請求項3】 CPU、Mを素数とする少なくともM個
のDASDの配列、及びM個のDASDにストライピン
グしたMビットを同時に読み出し又は書き込むため該M
個のDASDを同期アクセスするよう前記CPUおよび
前記DASDの配列を結合する手段を有するシステムに
おいて、結合手段は更に、 (a)(M−1)*Mビット・データ配列を円柱状に循
環させ、各々が1つの配列対角線と該対角線に割り当て
られるパリティ位置と交差する行とのペアにおいて単純
パリティ・コード化を行ってパリティ・ビットを生成
し、パリティ・コード化されたデータ配列を前記M個の
DASD配列にストライピングして書き込む手段と、 (b)最大2個のDASDが故障したとき、前記データ
配列をアクセスし、該データ配列に含まれるパリティ・
ビットをデータ・ビットとして扱い、各々が1つの配列
対角線と該対角線に割り当てられるパリティ位置と交差
する行とのペアにおいて単純パリティ・コード化を行っ
てパリティ・ビットを生成してデータ・ビットを再作成
する手段と、 を備えたパリティ・コード化及びデータの再作成システ
ム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US653596 | 1991-02-11 | ||
US07/653,596 US5271012A (en) | 1991-02-11 | 1991-02-11 | Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04310137A JPH04310137A (ja) | 1992-11-02 |
JP2514289B2 true JP2514289B2 (ja) | 1996-07-10 |
Family
ID=24621534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3320232A Expired - Lifetime JP2514289B2 (ja) | 1991-02-11 | 1991-12-04 | デ―タの修復方法およびシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5271012A (ja) |
EP (1) | EP0499365A3 (ja) |
JP (1) | JP2514289B2 (ja) |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP2923702B2 (ja) * | 1991-04-01 | 1999-07-26 | 株式会社日立製作所 | 記憶装置及びそのデータ修復方法 |
JP2743606B2 (ja) * | 1991-04-11 | 1998-04-22 | 三菱電機株式会社 | アレイ型記録装置 |
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 |
US5826075A (en) * | 1991-10-16 | 1998-10-20 | International Business Machines Corporation | Automated programmable fireware store for a personal computer system |
US5341381A (en) * | 1992-01-21 | 1994-08-23 | Tandem Computers, Incorporated | Redundant array parity caching system |
US5469566A (en) * | 1992-03-12 | 1995-11-21 | Emc Corporation | Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units |
US5331646A (en) * | 1992-05-08 | 1994-07-19 | Compaq Computer Corporation | Error correcting code technique for improving reliablility of a disk array |
JPH05341918A (ja) * | 1992-05-12 | 1993-12-24 | Internatl Business Mach Corp <Ibm> | 二重化デイスク記憶装置システムを構成するための接続装置 |
EP0654159A4 (en) * | 1992-08-10 | 1998-06-03 | Advanced Logic Res Inc | COMPUTER INTERFACE FOR PERFORMING A PLURALITY OF SEARCHES ON A PLURALITY OF DISK UNITS. |
US5459853A (en) * | 1992-11-23 | 1995-10-17 | International Business Machines Corporation | Efficient variable-block data storage system employing a staggered fixed-block-architecture array |
EP0632376B1 (en) * | 1993-06-30 | 1998-02-11 | International Business Machines Corporation | Encoding and rebuilding the data content of up to two unavailable DASDs in a DASD array |
US5564011A (en) * | 1993-10-05 | 1996-10-08 | International Business Machines Corporation | System and method for maintaining file data access in case of dynamic critical sector failure |
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 |
US5644695A (en) * | 1994-01-03 | 1997-07-01 | International Business Machines Corporation | Array combinatorial decoding with multiple error and erasure detection and location using cyclic equivalence testing |
US5537567A (en) * | 1994-03-14 | 1996-07-16 | International Business Machines Corporation | Parity block configuration in an array of storage devices |
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 |
US5524204A (en) * | 1994-11-03 | 1996-06-04 | International Business Machines Corporation | Method and apparatus for dynamically expanding a redundant array of disk drives |
JPH08249133A (ja) * | 1994-12-15 | 1996-09-27 | Internatl Business Mach Corp <Ibm> | ディスク・ドライブ・アレイの故障対策の方法及びシステム |
US5699503A (en) * | 1995-05-09 | 1997-12-16 | Microsoft Corporation | Method and system for providing fault tolerance to a continuous media server system |
US6449730B2 (en) | 1995-10-24 | 2002-09-10 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5862312A (en) * | 1995-10-24 | 1999-01-19 | Seachange Technology, Inc. | Loosely coupled mass storage computer cluster |
US5941994A (en) * | 1995-12-22 | 1999-08-24 | Lsi Logic Corporation | Technique for sharing hot spare drives among multiple subsystems |
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 |
US5862313A (en) * | 1996-05-20 | 1999-01-19 | Cray Research, Inc. | Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network |
US5893100A (en) * | 1996-11-27 | 1999-04-06 | Teralogic, Incorporated | System and method for tree ordered coding of sparse data sets |
KR100267366B1 (en) * | 1997-07-15 | 2000-10-16 | Samsung Electronics Co Ltd | Method for recoding parity and restoring data of failed disks in an external storage subsystem and apparatus therefor |
US6145111A (en) * | 1997-08-14 | 2000-11-07 | Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through Communications Research Centre | High-performance low-complexity error-correcting codes |
US6138125A (en) * | 1998-03-31 | 2000-10-24 | Lsi Logic Corporation | Block coding method and system for failure recovery in disk arrays |
JP2000003255A (ja) * | 1998-06-12 | 2000-01-07 | Nec Corp | ディスクアレイ装置 |
US6243827B1 (en) | 1998-06-30 | 2001-06-05 | Digi-Data Corporation | Multiple-channel failure detection in raid systems |
JP2000242440A (ja) * | 1999-02-25 | 2000-09-08 | Alps Electric Co Ltd | ディスク装置 |
US6351838B1 (en) | 1999-03-12 | 2002-02-26 | Aurora Communications, Inc | Multidimensional parity protection system |
US6493847B1 (en) * | 1999-06-15 | 2002-12-10 | Applied Micro Circuits Corporation | Sonet B2 parity byte calculation method and apparatus |
US6557123B1 (en) | 1999-08-02 | 2003-04-29 | Inostor Corporation | Data redundancy methods and apparatus |
US7389466B1 (en) * | 1999-08-12 | 2008-06-17 | Texas Instruments Incorporated | ECC in computer system with associated mass storage device, and method for operating same |
KR100388498B1 (ko) | 2000-12-30 | 2003-06-25 | 한국전자통신연구원 | 복수 개의 레이드를 구비한 계층적 레이드 시스템 |
US7219353B2 (en) * | 2001-02-27 | 2007-05-15 | Broadcom Corporation | Finite state machine with a single process context for a RAID 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 |
US7055058B2 (en) * | 2001-12-26 | 2006-05-30 | Boon Storage Technologies, Inc. | Self-healing log-structured RAID |
US7640484B2 (en) * | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple 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 |
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 |
US7080278B1 (en) * | 2002-03-08 | 2006-07-18 | Network Appliance, Inc. | Technique for correcting multiple storage device failures in a storage array |
US6898668B2 (en) | 2002-06-24 | 2005-05-24 | Hewlett-Packard Development Company, L.P. | System and method for reorganizing data in a raid storage system |
WO2004012337A2 (en) * | 2002-07-29 | 2004-02-05 | Robert Halford | Multi-dimensional data protection and mirroring method for micro level data |
DE60217097T2 (de) * | 2002-08-13 | 2007-05-10 | Matsushita Electric Industrial Co., Ltd., Kadoma | Hybrides automatisches Wiederholungsaufforderungsprotokoll |
US6848022B2 (en) * | 2002-10-02 | 2005-01-25 | Adaptec, Inc. | Disk array fault tolerant method and system using two-dimensional parity |
US7424637B1 (en) | 2003-03-21 | 2008-09-09 | Networks Appliance, Inc. | Technique for managing addition of disks to a volume of a storage system |
US7664913B2 (en) * | 2003-03-21 | 2010-02-16 | Netapp, Inc. | Query-based spares management technique |
US7216195B1 (en) * | 2003-03-29 | 2007-05-08 | Emc Corporation | Architecture for managing disk drives |
US7350126B2 (en) * | 2003-06-23 | 2008-03-25 | International Business Machines Corporation | Method for constructing erasure correcting codes whose implementation requires only exclusive ORs |
DE10350590A1 (de) * | 2003-10-30 | 2005-06-16 | Ruprecht-Karls-Universität Heidelberg | Verfahren und Vorrichtung zum Sichern von Daten bei mehreren unabhängigen Schreib-Lese-Speichern |
US7428691B2 (en) * | 2003-11-12 | 2008-09-23 | Norman Ken Ouchi | Data recovery from multiple failed data blocks and storage units |
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 |
TWI310497B (en) * | 2004-02-06 | 2009-06-01 | Hon Hai Prec Ind Co Ltd | System and method for disk fault tolerance |
US20050228745A1 (en) * | 2004-04-09 | 2005-10-13 | Cmarket, Inc. | Method and apparatus for conducting on-line auction events in coordination with incentive promotion for bidders |
TWI404369B (zh) | 2004-05-07 | 2013-08-01 | Interdigital Tech Corp | 分派混合自動重複請求過程之方法及裝置 |
US7318190B2 (en) * | 2004-06-10 | 2008-01-08 | Intel Corporation | Storage device parity computation |
US7467281B2 (en) * | 2004-06-10 | 2008-12-16 | Intel Corporation | Mapping data blocks to storage blocks to wrap around storage devices |
TWI307836B (en) * | 2004-07-02 | 2009-03-21 | Hon Hai Prec Ind Co Ltd | System and method for a plurality of disks fault tolerance efficienctly |
US7330998B2 (en) * | 2004-09-20 | 2008-02-12 | Intel Corporation | Data integrity verification |
US7249307B2 (en) * | 2004-10-21 | 2007-07-24 | Nokia Corporation | Flexible rate and punctured zigzag codes |
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 |
US7343546B2 (en) * | 2004-12-23 | 2008-03-11 | Intel Corporation | Method and system for syndrome generation and data recovery |
JP4457019B2 (ja) * | 2005-01-05 | 2010-04-28 | 富士通株式会社 | 情報処理システム及び一次ストレージ装置 |
US7380088B2 (en) * | 2005-02-04 | 2008-05-27 | Dot Hill Systems Corp. | Storage device method and apparatus |
US7458011B2 (en) * | 2005-02-09 | 2008-11-25 | Nokia Corporation | Low complexity hybrid ARQ scheme based on rate compatible zigzag codes |
JP4754852B2 (ja) * | 2005-03-15 | 2011-08-24 | 富士通株式会社 | ストレージ制御装置および方法 |
US7568122B2 (en) * | 2005-03-16 | 2009-07-28 | Dot Hill Systems Corporation | Method and apparatus for identifying a faulty component on a multiple component field replaceable unit |
US7401253B2 (en) * | 2005-05-09 | 2008-07-15 | International Business Machines Corporation | Convolution-encoded data storage on a redundant array of independent devices |
US8560503B1 (en) | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
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 |
US8887659B2 (en) * | 2007-02-21 | 2014-11-18 | Glaxosmithkline Llc | Continuous coating of pellets |
US8370715B2 (en) * | 2007-04-12 | 2013-02-05 | International Business Machines Corporation | Error checking addressable blocks in storage |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
US7945836B2 (en) * | 2007-06-20 | 2011-05-17 | Motorola Solutions, Inc. | Method and apparatus for reducing signaling overhead in a communication system using hybrid automatic repeat request |
EP2176980B1 (en) * | 2007-07-30 | 2016-06-01 | Marvell Israel (M.I.S.L) LTD. | Rate matching for a wireless communications system |
US7975102B1 (en) | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
US7797605B2 (en) * | 2007-08-28 | 2010-09-14 | Beceem Communications Inc. | Managing storage of HARQ packets |
US7890795B1 (en) * | 2008-06-02 | 2011-02-15 | Emc Corporation | Auto-adapting cache memory system and memory |
US8335966B1 (en) * | 2008-08-01 | 2012-12-18 | Dell Products L.P. | Dual parity RAID wherein no more than N+1 data symbols contribute to any parity symbol |
EP2178215A1 (en) | 2008-10-16 | 2010-04-21 | Thomson Licensing | Method for error correction and error detection of modified array codes |
EP2178214A1 (en) | 2008-10-16 | 2010-04-21 | Thomson Licensing | Method and apparatus for algebraic erasure decoding |
US8495417B2 (en) * | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
US9009575B2 (en) * | 2009-07-30 | 2015-04-14 | Cleversafe, Inc. | Rebuilding a data revision in a dispersed storage network |
CN101719086B (zh) * | 2009-11-30 | 2012-10-03 | 成都市华为赛门铁克科技有限公司 | 磁盘阵列容错处理方法和装置及容错系统 |
US9305597B2 (en) * | 2009-12-29 | 2016-04-05 | Cleversafe, Inc. | Accessing stored multi-media content based on a subscription priority level |
US10360106B2 (en) * | 2011-12-12 | 2019-07-23 | International Business Machines Corporation | Throttled real-time writes |
US8990669B2 (en) * | 2013-03-14 | 2015-03-24 | The Aerospace Corporation | Linear feedback shift register with single bit error detection |
US20150261623A1 (en) * | 2014-03-15 | 2015-09-17 | Macronix International Co., Ltd. | Method and device for recovering data |
CN104809035B (zh) * | 2015-05-05 | 2017-07-28 | 中国科学技术大学 | 一种能快速单盘修复的存储系统构建方法 |
US9983959B2 (en) * | 2015-06-29 | 2018-05-29 | Microsoft Technology Licensing, Llc | Erasure coding of data within a group of storage units based on connection characteristics |
US10379742B2 (en) | 2015-12-28 | 2019-08-13 | Netapp, Inc. | Storage zone set membership |
US10514984B2 (en) * | 2016-02-26 | 2019-12-24 | Netapp, Inc. | Risk based rebuild of data objects in an erasure coded storage system |
US11385980B2 (en) | 2017-11-13 | 2022-07-12 | Weka.IO Ltd. | Methods and systems for rapid failure recovery for a distributed storage system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE757116A (fr) * | 1969-10-29 | 1971-03-16 | Honeywell Inc | Procede et dispositif de codage de segments de codes de controle |
JPS5024819A (ja) * | 1973-07-07 | 1975-03-17 | ||
US4092732A (en) * | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US4201976A (en) * | 1977-12-23 | 1980-05-06 | International Business Machines Corporation | Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels |
US4205324A (en) * | 1977-12-23 | 1980-05-27 | International Business Machines Corporation | Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers |
US4796260A (en) * | 1987-03-30 | 1989-01-03 | Scs Telecom, Inc. | Schilling-Manela forward error correction and detection code method and apparatus |
US4993030A (en) * | 1988-04-22 | 1991-02-12 | Amdahl Corporation | File system for a plurality of storage classes |
US4914656A (en) * | 1988-06-28 | 1990-04-03 | Storage Technology Corporation | Disk drive memory |
JP2771186B2 (ja) * | 1988-09-19 | 1998-07-02 | 株式会社日立製作所 | 並列データ転送方法及び装置 |
US5022030A (en) * | 1989-03-17 | 1991-06-04 | Digital Equipment Corporation | Skewed XOR data storage process |
JPH02291011A (ja) * | 1989-04-28 | 1990-11-30 | Fujitsu Ltd | 記憶装置 |
WO1991001524A1 (en) * | 1989-07-19 | 1991-02-07 | Cray Research, Inc. | An error recovery method and apparatus for high performance disk drives |
US5130992A (en) * | 1990-04-16 | 1992-07-14 | International Business Machines Corporaiton | File-based redundant parity protection in a parallel computing system |
-
1991
- 1991-02-11 US US07/653,596 patent/US5271012A/en not_active Expired - Fee Related
- 1991-12-04 JP JP3320232A patent/JP2514289B2/ja not_active Expired - Lifetime
-
1992
- 1992-01-23 EP EP19920300586 patent/EP0499365A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US5271012A (en) | 1993-12-14 |
EP0499365A3 (en) | 1993-05-19 |
EP0499365A2 (en) | 1992-08-19 |
JPH04310137A (ja) | 1992-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2514289B2 (ja) | デ―タの修復方法およびシステム | |
US5351246A (en) | Method and means for coding and rebuilding that data contents of unavailable DASDs or rebuilding the contents of DASDs in error in the presence of reduced number of unavailable DASDs in a DASD array | |
US5579475A (en) | 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 | |
US7315976B2 (en) | Method for using CRC as metadata to protect against drive anomaly errors in a storage array | |
US5303244A (en) | Fault tolerant disk drive matrix | |
JP5522480B2 (ja) | フォールトトレラント不揮発性集積回路メモリ | |
US5333143A (en) | Method and means for b-adjacent coding and rebuilding data from up to two unavailable DASDS in a DASD array | |
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 | |
US6532548B1 (en) | System and method for handling temporary errors on a redundant array of independent tapes (RAIT) | |
US6154854A (en) | Logical partitioning of a redundant array storage system | |
US7409625B2 (en) | Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array | |
US7934120B2 (en) | Storing data redundantly | |
US6282671B1 (en) | Method and system for improved efficiency of parity calculation in RAID system | |
US9130597B2 (en) | Non-volatile memory error correction | |
US7234024B1 (en) | Application-assisted recovery from data corruption in parity RAID storage using successive re-reads | |
CN110597654B (zh) | 用于超快的具有奇偶校验的纠错码的系统和方法 | |
KR20060052772A (ko) | 데이터 저장 서브시스템 및 데이터 갱신 방법 | |
US7380198B2 (en) | System and method for detecting write errors in a storage device | |
CN112068778B (zh) | 用于保持从存储阵列中读取的数据的完整性的方法和设备 | |
US5265104A (en) | Data storage system including redundant storage devices | |
US7240237B2 (en) | Method and system for high bandwidth fault tolerance in a storage subsystem | |
JP2750316B2 (ja) | データのコーディング及び再生方法 | |
US7007193B1 (en) | Method and system for reconstructing data serially arranged on a magnetic tape track | |
AU692287B2 (en) | Disk array for data storage | |
CN119580809A (zh) | 快闪存储器控制器、快闪存储器控制器的操作方法及储存装置 |