JPH0728710A - データ・コーディング再生方法 - Google Patents

データ・コーディング再生方法

Info

Publication number
JPH0728710A
JPH0728710A JP6143535A JP14353594A JPH0728710A JP H0728710 A JPH0728710 A JP H0728710A JP 6143535 A JP6143535 A JP 6143535A JP 14353594 A JP14353594 A JP 14353594A JP H0728710 A JPH0728710 A JP H0728710A
Authority
JP
Japan
Prior art keywords
dasd
diagonal
parity
dasds
array
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.)
Granted
Application number
JP6143535A
Other languages
English (en)
Other versions
JP2750316B2 (ja
Inventor
Miguel M Blaum
ミグエル・マリオ・ブラーム
James T Brady
ジェームス・トムソン・ブラディ
Jehoshua Bruck
ジェオシュア・ブルック
Jaishankar M Menon
ジャイシャンカー・ムーセダス・メノン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0728710A publication Critical patent/JPH0728710A/ja
Application granted granted Critical
Publication of JP2750316B2 publication Critical patent/JP2750316B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【目的】 M個で構成されるDASDの配列中の2つ以
下のDASDにデータのエラー・消去等が発生したとき
に、容易にそのデータを復元することのできるDASD
システムを提供する。 【構成】 本発明の方法及び手段は、データ配列に対し
て個別に(M−1)*(M−2)のデータ・ブロックか
ら(M−1)* Mのブロック配列を、行優先順及び対角
線優先順に、非再帰的単純パリティ・コーディングを用
いて生成することによる。Mは素数であり、対角線はト
ロイダル・トポロジで取られる。配列対角線それぞれの
パリティ値は、基準となる主対角線のそれと同じモード
(奇数または偶数)であり、各行のパリティ・モードは
偶数である。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、障害の影響を受けない
直接アクセス記憶装置(DASD)の配列に関し、特
に、配列の最高2つまでのDASDがその内容の消去等
によって同時に使用不能であっても該DASD配列に格
納されたデータの可用性を維持することに関する。
【0002】
【従来の技術】従来技術の場合、DASD配列にデータ
・ブロックを分散させることで、配列に格納されたデー
タ・ブロックのアクセス、データ速度、フォールト・ト
レランス及び復元を改良することは充分に評価されてい
る。なかでも注目されるのは、DASD単体の障害や消
去を補正するための単純パリティの使用(米国特許第4
092732号)や、最高2つ(米国特許出願第653
596号、同第751950号)または3つ(米国特許
出願第718724号)までの同時障害を補正するため
複雑な冗長コードの使用である。障害発生時にDASD
配列の動作を下位(degraded)モードからフォールト・
トレラント・モードに戻すために、いくつかのDASD
をホット・スペア(米国特許第4914656号)とし
て使用する方法が知られている。ホット・スペアは、切
替えによって故障したDASDと交換でき、失われたデ
ータや消去されたデータを再生したものを格納するのに
使用できる。また、障害が予想され得るいくつかのDA
SDと同等な配列のDASD間にスペア・スペースを予
約すること(米国特許出願第714969号)で、配列
動作が下位モードで継続する場合でも可用性を維持す
る、または負荷の平衡を実現する(米国特許出願第56
2188号)方法も知られている。
【0003】Ouchiによる1978年5月30日付米国
特許第4092732号"System forRecovering Data S
tored in a Failed Memory Unit"、は同じ論理ファイル
から障害の影響を受けないN−1個のDASDへのデー
タ・ブロックの分散と、N番目のDASDへのパリティ
・ブロックの記録について開示している。Ouchi による
と、パリティ・ブロックはN−1個の他のブロックの内
容とXORがとられる。アクセス不能な単体のDASD
からの内容は、パリティ・ブロックと残りのアクセス可
能なN−2個のDASD上に格納されたブロックのXO
Rをとることで復元可能である。単一の障害が生じた場
合は、スペア・ディスクが再生されるまでに他の障害が
発生することでサブシステムが完全に使用不能になるの
で、動作は下位モードで行なわれる。この機能について
は後にHartnessによる1988年10月4日付米国特許
第4775978号"Data Error Correction System"で
再び説明されている。
【0004】Ouchi 型の配列の場合、ブロックを修正す
るには故障したDASDを識別する必要がある。これは
ハミング・コードで可能であるが、このようなコードは
普通、ブロック・インタリーブされたDASD配列では
なくビットに用いられ、冗長性を実現する複数のDAS
Dは全体のかなりの部分を占める。このことは、Patter
sonらによる"A Case For Redundant Arrays Of Inexpen
sive Disks(RAID)"、Report No.UCB/CSD 87/391、1
987年12月、Computer ScienceDivision、U.of Ca
lifornia、Berkelyに述べられている通りである。
【0005】逆にブロック・インタリーブと簡単なパリ
ティ・コーディングでは、Ouchi が述べているように、
無限に近いパリティ・ドメインまたは横線幅が得られ、
冗長なDASDを1つだけ関係させればよい。しかし、
故障したDASDの識別は、しきい値ECCの再試行に
よる等、個別に実現しなければならない。ここでは、Du
nphyらによる1990年4月3日付米国特許第4914
656号"Disk DriveMemory"もあわせて参照されたい。
【0006】DASD障害からの最高速の回復は、完全
に複製またはミラーリングされ、第2記憶ドメインに格
納されたデータ・セットに電子的に切り替えることであ
る。明らかにこれは記憶コストを倍にしてしまう。DA
SD配列はOuchi及びDunphyが述べている通り、ある配
列における単一DASD障害の可能性が高く、同時DA
SD障害のそれは低いことを前提にしている。また単一
障害が生じたシステムをフォールト・トレラント状態に
戻すためにはホット・スペアリングを用いる必要があ
る。
【0007】ホット・スペアリングは、Dunphyが定義し
ている通り、DASDを予約しておき、スペアをドメイ
ンにそのドメイン内のDASDが故障した後に代用し、
故障したブロックをスペア上に再生するものである。D
ASD障害と、スペアへのデータの再生の完了とによっ
て決定されるインタバル内にネストされていない限り、
データが使用できない平均時間は非常に長くなるのであ
る。また、単体のDASDの修正+Ouchi及びDunphy の
いうスペアリングは、停止したDASDすなわち冗長な
DASDの個数を最小に保つ。
【0008】ホット・スペアリングに代わるものは、動
作が下位モードであっても可用性を維持するためか、ま
たは特に順次の書込み更新に関して負荷の平衡化を補助
するために、故障したDASDのいくつかに等しいDA
SD配列に、何らかのパターン化をもとにスペースを予
約することである。これについては、Mattson らによる
1991年6月13日付米国特許出願第714969
号"Method and Meansfor Distributed Sparing in DASD
Arrays"、または同Mattsonらによる1990年8月3
日付米国特許出願第562188号"Method and Means
for ManagingDASD Array Accesses When Operating in
Degraded Mode"、を参照されたい。
【0009】Blaumらによる1991年2月11日付米
国特許出願第653596号"Methodand Means for Enc
oding and Rebuilding the Data Contents of Up to Tw
oUnavailable DASDs in an Array of DASDs "は、最高
2つのDASDが故障した時、M(素数)個の同期DA
SD配列に(M−1)* Mのシンボル・データ配列をコ
ーディングし再生する方法を開示している。トポロジカ
ル・トーラスをカバーする対角線を主としたデータ配列
方向と交差行を主としたデータ配列方向にサンプル・パ
リティの対が再帰的にコーディングされる。2個以下の
DASDが使用できない時にデータを再生するには、コ
ーディング・ステップと似た排他的論理和演算しか関係
しない単純再帰動作が必要である。
【0010】米国特許出願第653596号のコーディ
ングでは、決定性プロセスに従って、(M−1)* Mの
データ配列全体がカバーされるように、対角線パリティ
割当てと行パリティ割当てがジグザグに交互に繰返され
る。M回の対角線パリティ割当てそれぞれで、M−2個
のデータ要素のXORがとられ、その結果が第1パリテ
ィ位置に置かれる。この後、第1パリティ位置と交差す
る行のM−1個のデータ要素のXORがとられ、結果が
その行の第2パリティ位置に置かれる。
【0011】Blaumらによる1991年8月29日付米
国特許出願第751950号"Methodand Means For B-A
djacent Coding and Rebuilding Data From Up to TwoU
navailable DASDs in a DASD Array"は、B隣接コーデ
ィングを用い、DASD配列のうち使用できない最高2
つまでのDASDに格納されたデータ列の部分を訂正す
る方法とその手段を開示している。この方法は、(a)
故障したDASDの個別識別と、(b)残りのDASD
上の同じ文字列のブロックから得られた1対のシンドロ
ームの形成と解決、から成る。シンドローム対(S
(0)、S(1))は、2つの未知の式の中の独立した
2つのブール式から成る。
【0012】上記文献で、各データ列はN個のデータ・
ブロック+2つの冗長ブロックに分けられてから、N個
の対応するDASDに書込まれる。冗長ブロック(R
(0)、R(1))がこの文字列について計算される。
最初の冗長ブロックR(0)は、N−2個のデータ・ブ
ロックのXOR、第2の冗長ブロックR(1)は、低濃
度(a5(N−i))に累乗された有限フィールド(ガ
ロア・フィールド)のプリミティブ要素の積と、他のN
個のブロックのうち対応する1つのモジュロ2データ値
(b(i))のモジュロ2加算である。
【0013】Blaumらによる1991年6月21日付米
国特許出願第718724号"ErrorCorrection Codes F
or Multiple Failures In Disk Arrays And The Like"
は、先の米国特許出願第751950号のコードを拡張
したものである。ここでもパリティ・コーディングとM
の同期DASD配列への(M−1)* (M−3)のデー
タ・ブロック配列の書込みが行なわれる。DASDのう
ち所定のものはパリティを格納するために予約される。
また最高3つまでのDASDの非可用性に応答して、ス
ケジュール・ベースまたは機会ベースに使用可能なM−
3個のDASDからのデータを使用してコーディングを
繰返すことによってデータを再生するステップと、再生
されたデータを再びスペア容量に書込むステップが含ま
れる。
【0014】米国特許出願第718724号では、(M
−1)* M個のブロックの配列のコーディング(コード
化または再生)では、チェスのルーク、ビショップ及び
ナイトの正勾配の動きが、データ配列に対して周期的に
拡張されてエミュレートされる処理過程が、処理過程に
ついて論理的に組合わせた(XORがとられた)値の和
がゼロになるようにたどられる。この方法では、比喩的
なナイトのコードの処理過程が、勾配が漸次に急峻にな
るよう変更されることによって4個以上のDASDから
の回復にまで拡張できる。
【0015】「パリティ・グループ」とは、先に挙げた
Dunphyの特許で用いられる通り、そこから取られたパリ
ティを格納するために用いられる少なくともN+1番目
のDASDを含むN個のDASDの論理的関係を示す
が、データ・ブロックと、そこから取られたパリティま
たは代数コーディングされた他の冗長ブロックの論理的
関係をも言う。Patterson は、RAID型5DASD配
列については後者の定義を用いている。
【0016】「データ・エラー」とは、ランダム・ノイ
ズやバースト・プロセスの結果としての格納された値の
変化をいう。11100100等の2進値を格納するシ
ステムでは、残留磁化の状態が1がいくつか0になり、
0がいくつか1になるように変化する。これは1100
0101のようになることである。ここで左から3番目
と8番目の位置がランダム・エラーである。
【0017】「消去」とは、エラー位置が既知ではある
が、エラーの程度が未知であるエラーをいう。すなわ
ち、消去は記憶位置におけるデータ値の削除である。例
えば、データ列1xxxx100は位置2乃至5で「消
去」が発生している。
【0018】
【発明が解決しようとする課題】本発明の目的は、デー
タのエラー、消去及びDASD障害が発生した時にDA
SD配列の可用性を高める方法及びその手段を提供する
ことである。
【0019】本発明の他の目的は、たたみ込みコードの
場合のようにエラーを伝播させず、またリード−ソロモ
ン型コードのように代数的体に対して複雑な演算を実行
せずに、M個で構成されるDASDの配列中から使用で
きない(例えば消去されている)最高2つまでのDAS
Dのデータ内容をコーディングし、再生する方法及びそ
の手段を提供することである。
【0020】本発明の他の目的は、ハイレベルのRAI
D配列、特にRAID5型の配列で書込み動作を短縮す
ることのできる方法及び手段を提供することである。
【0021】
【課題を解決するための手段】本発明の方法及び手段
は、データ配列に対して個別に(M−1)* (M−2)
のデータ・ブロックから(M−1)* Mのブロック配列
を、行優先順及び対角線優先順に、非再帰的単純パリテ
ィ・コーディングを用いて生成することによる。Mは素
数であり、対角線はトロイダル・トポロジで取られる。
配列対角線それぞれのパリティ値は、基準となる主対角
線のそれと同じモード(奇数または偶数)であり、各行
のパリティ・モードは偶数である。また対角線パリティ
値は、M−1番目の配列の列を、行パリティ値はM番目
の配列の列を形成する。配列の列は0乃至M−1と示さ
れる。単純パリティ・コーディングとは、対角線または
行の処理過程でデータ・ブロックのXORをとることを
意味する。
【0022】少なくとも1つのDASDが使用不能にな
った場合には、M−1またはM−2個の使用可能なDA
SDから参照された配列要素の単純パリティ・コーディ
ングによって、スケジュール・ベースまたは機会ベース
に上述のようにデータ・ブロック配列が再生され、先に
故障したDASDにあったデータ・ブロック配列の部分
が、使用可能なDASDに予約されたスペア・スペース
として、または故障したDASDに代わるホット・スペ
アDASDとしてのスペアのDASD配列容量に書込ま
れる。再生時、M−1番目のDASDのパリティがM番
目のDASDのパリティと等しくない場合には、基準対
角線のパリティ・モードが奇数として取られる。
【0023】「非再帰的」(non-recursive) とは、行
または対角線のパリティの計算が、与えられた行または
対角線の処理過程のデータ・ブロックに対してのみ生
じ、他の行または対角線の処理過程のパリティ値は含ま
れない或いは考慮されない、という意味である。
【0024】このような非再帰的パリティ・コーディン
グは、短い書込み操作には利点である。短い書込み操作
では、少なくとも1つのデータ・ブロックとそれに関連
するパリティが変更される。すなわちRAID5型のD
ASD配列では、短い書込み操作で、変更対象のデータ
・ブロック及び対角線と行の両方のパリティ値だけがア
クセス、変更され、普通は再書込みされる。その場合、
更新トランザクション毎に読取り3回、書込み3回の操
作が必要である。つまり、古いデータ・ブロックと関連
する対角線及び行のパリティ値についてそれぞれ読取り
操作が1回、再計算された新しい値についてそれぞれ書
込み操作が1回である。新しい対角線パリティは、古い
対角線パリティ、古いデータ・ブロック及び新しいデー
タ・ブロックのXORであり、新しい行パリティは、古
い行パリティ、古いデータ・ブロック及び新しいデータ
・ブロックのXORである。
【0025】ただし1つ注意すべきことがある。すなわ
ち更新されようとするデータ・ブロックが、「主要なま
たは基準としてのデータ・ブロック配列の対角線」にあ
る場合、先の方法には変更を加えなければならない。先
にも触れた通り、本発明のコーディング方法で1つの再
帰的結果は、主対角線または基準対角線のパリティ・モ
ード(偶数/奇数)を確認するステップである。このモ
ードは、残りの対角線についてパリティ値の割当てを制
御する。これを考慮するためには、短い書込みを伴う方
法は、配列内のM個の対角線パリティ値のそれぞれが読
取られ、再計算され、再び書込まれて、与えられた対角
線、古いデータ・ブロック及び新しいデータ・ブロック
について古いパリティ値のXORとして取られるように
変更される。古いデータ・ブロックと新しいデータ・ブ
ロックは、対角線パリティの再計算それぞれについて同
じである。また対角線パリティ値はこの場合、対応する
古いパリティ値の論理的補数として決定することができ
る。
【0026】
【実施例】
【数1】 は以降ティルドXと記載する。
【0027】図1は、並行パス11、13、15、17
において高性能パリティ生成横線バッファ(PSB)7
を結合する第1及び第2のDASDパリティ・グループ
から成る配列を示す。CPU1とCPU2から形成され
るプロセッサ配列はデータと制御のバス9に接続され
る。
【0028】プロセッサ1または3によって発行される
読取りと書込みのコマンドにより、DASDのグループ
(グループ1または2)へのテーブル指向アクセス・パ
スが確立される。これは標準的なアクセス・プロトコル
と、バス9を介した共有メモリ5からPSB7へのデー
タ移動による。論理ファイルの論理的処理はPSB7で
実行される。ここで論理的処理は、横線(データのシリ
アル/並行変換)とパリティの生成及びチェックの両方
を含む。DASDとの間のパスはテーブル指向である。
基本的に読取りまたは書込みの引数で指定されたアドレ
スはPSB7によって、配列記憶アドレス・テーブルを
介して、PSB7とDASDの必須グループのDASD
上の位置の間の実際の物理パスに変換される。本発明の
目的上、グループ1を成すDASD等のグループはM個
のDASDの配列とみなされる。「ホット・スペア」と
して追加されるDASDも、MのDASD配列のうち最
高2つまでが故障した場合に配列へ追加するために使用
できる。これについては、Dunphyによる米国特許第49
14656号を参照されたい。
【0029】PSB7は、書込み更新コマンドを実行す
るには、最初にプロセッサから新しいデータ・ブロック
をバッファし、旧データ・ブロックを、また本発明の場
合には、MのDASD配列に格納された2つのパリティ
・ブロックを読取ってバッファしなければならない。新
しい対角線及び行のパリティは、旧データ、旧パリティ
及び新データを考慮して計算され、次に、新しいデータ
・ブロックと新しいパリティが対応するDASD配列に
記録される。
【0030】読取り操作の場合、PSB7はプロセッサ
からの読取りコマンドに応答して、書込みとは逆の操作
シーケンスを実行する。すなわち、読取るデータがその
中から抽出されるデータ配列がPSB7にバッファさ
れ、対応する行及び対角線のパリティがテストされて、
アドレスされたデータがバス9を通して共有メモリ5に
転送される。
【0031】読取りでデータがアクセスされている時に
DASD障害が発生した場合、PSB7は選択肢の中か
ら1つを選択できる。これらには、(1)読取りコマン
ドの再試行、または、(2)本発明に従った、残りのD
ASDからのデータの再生と置換により、破壊されたデ
ータを素早く再生する操作が含まれる。
【0032】読取りコマンドを発行するプロセッサ1ま
たは3については、1つの方法としては、読取りデータ
の移動完了後に障害発生をこれに通知することである。
これによりプロセッサが、Parkらによる方法により、各
パリティ・グループに排他的に予約されたプールから、
またはDASDからのスペアDASDの代用を制御する
ことができる。PSB7は、DISABLE、RECONSTRUCT等の
プロセッサコマンドに応答して、スペアへのディレクト
リ・パスを、故障したDASDのテーブル・ディレクト
リ・パスに代えるテーブルにより、故障したDASDを
指定されたスペアDASDと置換えることができる。次
に、故障したDASD上のデータを指定されたスペアD
ASD上で再生できる。
【0033】1実施例の場合、PSB7は、DASDの
可用性のビット・マップ及びDASDのアドレス・マッ
プを格納する。次に、可用性とアドレス・マップが各ア
クセス・コマンドの処理中に参照される。マップの変更
は、DISABLEとRECONSTRUCTのコマンドを使用するプロセ
ッサから行なえる。このような例では、スペアDASD
に永久アドレスが割当てられる。ここで重要なことは、
障害通知の後、プロセッサ1または3がDASDのマッ
プをアドレスできることである。次に、可用性とアドレ
ス・マップが、各アクセス・コマンドの処理中に参照さ
れる。マップの変更はプロセッサによって、DISABLEとR
ECONSTRUCTのコマンドを使用して行なわれる。この実施
例は、永久アドレスをスペアDASDに割当てるもので
ある。
【0034】要点をまとめると、障害通知の後プロセッ
サは、(1)何もしないことにする、または、(2)ス
ペアDASDのアドレスを、最高2つまでの故障したD
ASDのアドレスに代えるためのコマンドを生成し、且
つ、(3)後述の再生方法に従って、パリティとデータ
・ブロックを格納した残りのDASDとのモジュロ2加
算により、最高2つまでの故障したDASDの内容を割
当てられたスペア上に再生する。
【0035】フォーマットされたスペアDASDの、他
のDASDとのオンラインでの動的代替が「ホット・ス
ペアリング」と呼ばれる。
【0036】図2、図3、図4は、DASDの障害や消
去が発生した場合に短い書込み動作を実行することと応
答性とを目的とした、対角線及び行を主とした順序にお
ける(M−1)* Mのデータ・ブロック配列の非再帰的
単純パリティ・コーディング要素の制御の流れを示す。
すなわち、配列の形の論理配列に投射されたデータ・ブ
ロックは、所定の処理過程について、または配列の対角
線や行等のデータ・ブロックのサブセットについて計算
された冗長値を持ち得る。冗長値は次に、別のDASD
またはDASD配列上に予約されたスペースに格納され
る。最高2つまでの使用可能なDASDに存在するデー
タの部分はパリティ値を使って再生し、スペアDASD
に、または残りのM−2のDASDのスペア・スペース
に再び書込める。
【0037】本発明で「コーディング」とは、データ・
ブロックの所定サブセットに対する冗長値の計算を意味
する。「再生」は、データ・ブロックのサブセットと冗
長値を用いた冗長性計算と同じプロセスによるデータ・
ブロックまたはパリティ・ブロックの計算を言う。「X
OR」は、2進フィールドに対する排他的論理和演算の
意味である。
【0038】本発明の方法によれば、コーディングと短
い書込み操作における再帰をなくし、それらがデータの
単純パリティ・チェック、すなわち行と対角線のパリテ
ィ・チェックに置換えられる。変更されたデータ・ブロ
ックは、ほとんどの時間、2つの冗長(パリティ)値に
しか影響しないので、短い書込み動作は簡略化される。
【0039】本発明ではM個のDASDの配列を想定す
る。Mは素数である。データ・ブロックは(M−1)*
Mの論理配列に、a(i、j)が、j番目のDASDに
格納されたi番目のブロックになるように配置される。
iは閉じたインタバル[0、M−2]に、jは閉じたイ
ンタバル[0、M−1]に位置する。Mが素数であると
いう要件は実際には制限要因ではない。M未満のDAS
Dが必要な場合には、適切な数の(架空の)DASDが
0だけを格納すると仮定することによってコードを常に
短縮できるからである。
【0040】データ・ブロックは最初のM−2個のDA
SDに、パリティ値はM−1番目とM番目のDASDに
それぞれ格納される。またパリティ値は、Mattson らが
述べているようにDASD配列に分散させることもでき
る。
【0041】パリティ値はブロックa(M−1、j)=
0と想定している。ここで、jはインタバル[0、M−
1]にある。言い換えると、(架空の)全て0の行が想
定される。図2、図3、図4ではまた、全てのサブイン
デックスがモジュロMとして扱われることを想定してい
る。
【0042】次にコーディングについて説明する。短い
書込み操作と再生(デコーディング)の式は図2、図
3、図4に示す通りである。
【0043】コーディングは図2で説明する。冗長性a
(t、M−2)とa(t、M−1)の値はボックス22
で与えられる。ここで、tはインタバル[0、M−2]
にある。特殊対角線(M−3、0)、(M−4、
1)、...、(0、M−3)のパリティの値Sは先に
ボックス21で計算される。値Sは他の全ての対角線の
パリティを決定する(偶数または奇数)。手続き上、対
角線(M−3、0)、(M−4、1)、...、(0、
M−3)のパリティは、対角線を主とした順序で取られ
る残りの対角線のパリティを制御するモードとして用い
られる。この主対角線または基準対角線に沿ったデータ
・ブロックが偶数個の1である場合は、偶数パリティが
残りの対角線を制御する。行のパリティは常に偶数とし
て取られる。ここでは、2進値の例を示しているが、ブ
ロックのシンボルは任意のアルファベットにすることが
できる。
【0044】ボックス22で予測された値の書込み操作
はボックス23で実行される。
【0045】データ・ブロックa(i、j)は、短い書
込み操作により、別の任意のデータ・ブロックrに置換
えられる。ここで、iはインタバル[0、m−2]に、
jはインタバル[0、m−3]に位置する。この操作は
冗長ブロックに影響する。ほとんどの時間、冗長ブロッ
クは2つだけを変更すればよく、例外は、再び書込まれ
たデータ・ブロックa(i、j)が基準対角線(M−
3、0)、(M−4、1)、...、(0、M−3)に
ある時である。その場合は、対角線パリティを全て変更
する必要がある。水平パリティは先の例のように変更さ
れる。これら2つの事例は再帰を伴わない。
【0046】(M−1)×Mの配列はボックス31でア
クセスされる。ボックス32は、a(i、j)を置換え
る値の入力rを受取る。ボックス33はa(i、j)と
rのXOR演算を実行してバッファする。ボックス34
で、実際に位置(i、j)にrが書込まれ、a(i、m
−1)、a(i、j)及びrのXORが位置(i、m−
1)で取られる。ボックス35は、エントリ(i、j)
が基準対角線(M−3、0)、(M−4、
1)、...、(0、M−3)にあるかどうかチェック
される。存在しない場合はボックス36で、a(i+j
+2、m−2)、a(i、j)及びrのXORがエント
リ(i+j+2、m−2)に書込まれる。存在する場合
は、ボックス37でインタバル[0、M−2]の各sに
ついて、a(s、m−2)、a(i、j)及びrのXO
Rがエントリ(s、m−2)に書込まれる。
【0047】デコーディングのステップでは、最高2つ
までの使用不能なDASDの内容を残りのM−2個のD
ASDから再生することができる。
【0048】(M−1)×Mの配列はボックス401で
アクセスされる。ボックス402では、使用不能な2つ
のDASDの入力i、jが受信される。ここでi<J、
iとjはインタバル[0、M−1]に位置する。ボック
ス403は、jがM−1かどうか、すなわちDASDが
水平冗長性を持つかどうかをチェックする。持つ場合、
コーディング操作と同様に対角線のパリティがボックス
405で予測される(奇数または偶数)。次に、失われ
たエントリa(t、i)、a(t、M−1)の値がボッ
クス406で予測される。ここで、tはインタバル
[0、M−2]にある。再生された値はスペア・ディス
クに書込まれ、使用不能なDASDのiとM−1が置換
えられる(ボックス412)。i=M−2の時には、図
2のコーディングの式が再び取得される。その意味でコ
ーディングはデコーディングの特別な場合である。
【0049】ボックス403での答えがNoの場合は、
ボックス404でjがM−2かどうか、すなわちDAS
Dが対角線冗長性を持つかどうかチェックされる。Ye
sの場合は、最初のステップでエントリa(t、i)が
検索される。ここでtはインタバル[0、M−2]にあ
る。これはボックス408において、水平パリティa
(t、M−1)を使用して行なわれる。エントリa
(t、i)が復元されると、ボックス409で対角線パ
リティSが予測される。次にボックス410で、対角線
パリティa(t、M−2)が取得される(tはインタバ
ル[0、M−2])。再生された値はスペア・ディスク
に書込まれ、使用不能なDASDのi、M−2がボック
ス412で置換えられる。
【0050】ボックス404の答えがNoの場合、これ
は主要事例になる。すなわちデータ・ブロックを持つ2
つのDASD、iとjは使用不能である。冗長なDAS
Dはいずれも影響を受けない。ボックス407で対角線
パリティが、冗長シンボルa(t、M−2)、a(t、
M−1)全ての排他的論理和(XOR)によって決定さ
れる。次にDASDのi、jで失われたデータがボック
ス411で検索される。ボックス411での処理は再帰
である。インデックスlは、1乃至M−1である。エン
トリはボックス411で指示される順序で検索される。
最初はl=1、最後はl=M−1である。従って、デコ
ーディングにおける再帰は必要であるが、ダブル・ディ
スク障害の発生時に限られ、これは極めて稀である。上
述のように、再生された値はスペアDASDに書込ま
れ、使用不能なDASDのi、jが置換えられる(ボッ
クス412)。
【0051】以下ではコーディングの例をあげる。短い
書込み操作とデコーディングについては図2、図3、図
4で説明する。
【0052】データ・ブロックはM=5のDASDの配
列に格納するのが望ましいとする。データとパリティ・
ブロックと値はa(i、j)で示す。ここでiはティル
ドO0、3aに、jはティルドO0、4aにある。基準
対角線(M−3、0)、(M−4、1)、...、
(0、M−3)に沿って取られたデータ・ブロックのパ
リティSは、図2のボックス21に従って次のように表
わされる。 S=a(2、0)XOR a(1、1)XOR a(0、2)
【0053】図2のボックス22の式を用いると、M−
1番目のDASDに格納されるM−2の対角線パリティ
値は次式に従って決定される。 a(0、3)=a(3、0)XOR a(2、1)XOR a(1、2)XOR
S a(1、3)=a(3、1)XOR a(2、2)XOR S a(2、3)=a(0、0)XOR a(3、2)XOR S a(3、3)=a(1、0)XOR a(0、1)XOR S
【0054】M番目のDASDに格納されるM−1の行
パリティ値は次のようにまとめられる。 a(i、4)=a(i、0)XOR a(i、1)XOR a(i、2) ここで、iはティルドO0、3aにある。
【0055】パリティ・コード化される(M−1)*
(M−2)のデータ・ブロック・マトリックスを次のよ
うに仮定する(便宜上、データ・ブロックはどこでも長
さ1ビットになるように取る)。 1 0 1 0 1 1 1 1 0 0 1 0 ここで、上記式を用いて次を得る。 S=a(2、0)XOR a(1、1)XOR a(0、2)=1 XOR 1 XO
R 1=1または奇数パリティ a(0、3)=a(3、0)XOR a(2、1)XOR a(1、2)XOR
S=0 XOR 1 XOR 1 XOR1=1 a(1、3)=a(3、1)XOR a(2、2)XOR S=1 XOR 0 XO
R 1=0 a(2、3)=a(0、0)XOR a(3、2)XOR S=1 XOR 0 XO
R 1=0 a(3、3)=a(1、0)XOR a(0、1)XOR S=0 XOR 0 XO
R 1=1 a(0、4)=a(0、0)XOR a(0、1)XOR a(0、2)=1
XOR 0 XOR 1=0 a(1、4)=a(1、0)XOR a(1、1)XOR a(1、2)=0
XOR 1 XOR 1=0 a(2、4)=a(2、0)XOR a(2、1)XOR a(2、2)=1
XOR 1 XOR 0=0 a(3、4)=a(3、0)XOR a(3、1)XOR a(3、2)=0
XOR 1 XOR 0=1
【0056】最終的なコード化は次のようになる。 DASD0 DASD1 DASD2 DASD3 DASD4 対角線 水平 パリティ パリティ (奇数) (偶数) 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 1 1
【0057】以下は、本発明によって簡略化される短い
書込み操作である。M=5とし、以下の(M−1)*
のデータ・ブロック配列がM個のDASDに格納される
とする。 DASD0 DASD1 DASD2 DASD3 DASD4 0 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 0 1
【0058】a(0、1)=0を、a(0、1)=1で
置換えるとする。エントリ(0、1)は、(2、0)、
(1、1)、(0、2)に沿った基準対角線上にないの
で、図3に従って、読取り3回と書込み3回だけで書込
み更新が可能になる。すなわち変更する必要があるの
は、データa(0、1)、対角線パリティa(3、3)
及び行パリティa(0、4)だけである。従って、a
(0、1)=1と変更すれば、a(3、3)=1であ
り、奇数対角線パリティが維持され、a(0、4)=1
であり、偶数行パリティが維持される。そこで新しい配
列は次のようになる。 DASD0 DASD1 DASD2 DASD3 DASD4 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1
【0059】ここで、上記の配列に関しては、a(1、
1)=0をセットすることが望ましい。これは主対角線
上にあるので、対角線パリティは全て、行パリティa
(1、4)と共に変更しなければならない。これにより
次の新しい配列が得られる。 DASD0 DASD1 DASD2 DASD3 DASD4 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 対角線パリティは奇数から偶数に変わっている。
【0060】ここで、再び図3の流れ図を参照し、短い
書込み操作について説明する。
【0061】DASDの1つが故障した場合、これは与
えられた行が消去されたことと同じである。従ってi番
目の行またはDASDが消去された場合、その内容は、
XORによって、すなわち残りの行またはDASDによ
って、Ouchi の特許と同じように再計算することができ
る。しかし、2つのDASD、iとjが同時に故障し
た、または行が消去された場合、i<j、iとjがイン
タバル[0、M−1]にある時、図4の方法によって問
題を解決しなければならない。
【0062】次の配列を考える。 DASD0 DASD1 DASD2 DASD3 DASD4 0 ? 0 1 ? 1 ? 0 0 ? 0 ? 1 0 ? 0 ? 0 0 ?
【0063】シンボル"?"は、対応するエントリで情報
が失われたことを示す。この例の場合、DASD1とD
ASD4は使用不能、すなわちi=1、j=M−1=4
である。図4に従ってデコーディングを実現する際、ボ
ックス403はボックス405へ移る。そこで次のよう
に予測する。 S=a(0、0)XOR a(3、2)XOR a(2、3)=0 XOR 0 XO
R 0=0または偶数パリティ
【0064】次にボックス406で、a(t、1)とa
(t、4)を次のように予測する。 a(0、1)=a(1、0)XOR a(3、3)XOR S=1 XOR 0 XO
R 0=1 a(1、1)=a(2、0)XOR a(0、2)XOR S=0 XOR 0 XO
R 0=0 a(2、1)=a(3、0)XOR a(1、2)XOR a(0、3)XOR
S=0 XOR 0 XOR 1 XOR0=1 a(3、1)=a(2、2)XOR a(1、3)XOR S=1 XOR 0 XO
R 0=1 a(0、4)=a(0、0)XOR a(0、1)XOR a(0、2)=0
XOR 1 XOR 0=1 a(1、4)=a(1、0)XOR a(1、1)XOR a(1、2)=1
XOR 0 XOR 0=1 a(2、4)=a(2、0)XOR a(2、1)XOR a(2、2)=0
XOR 1 XOR 1=0 a(3、4)=a(3、0)XOR a(3、1)XOR a(3、2)=0
XOR 1 XOR 0=1
【0065】従って再生されたDASDは次のようにな
る。 DASD0 DASD1 DASD2 DASD3 DASD4 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1
【0066】同様に、ここでは以下の配列が受取られた
とする。 DASD0 DASD1 DASD2 DASD3 DASD4 ? 1 0 ? 1 ? 0 0 ? 1 ? 1 1 ? 0 ? 1 0 ? 1
【0067】従って、DASDi=0とj=3は使用不
能である。j=M−2であるから、ボックス404はボ
ックス408に進み、そこでa(t、0)は次のように
予測される。 a(0、0)=a(0、1)XOR a(0、2)XOR a(0、4)=1
XOR 0 XOR 1=0 a(1、0)=a(1、1)XOR a(1、2)XOR a(1、4)=0
XOR 0 XOR 1=1 a(2、0)=a(2、1)XOR a(2、2)XOR a(2、4)=1
XOR 1 XOR 0=0 a(3、0)=a(3、1)XOR a(3、2)XOR a(3、4)=1
XOR 0 XOR 1=0
【0068】次にボックス409に進み、対角線パリテ
ィが次のように予測される。 S=a(2、0)XOR a(1、1)XOR a(0、2)=0 XOR 0 XO
R 0=0または偶数パリティ
【0069】最後にボックス410で、DASD3のシ
ンボルが次のように予測される。 a(0、3)=a(3、0)XOR a(2、1)XOR a(1、2)XOR
S=0 XOR 1 XOR 0 XOR0=1 a(1、3)=a(3、1)XOR a(2、2)XOR S=1 XOR 1 XO
R 0=0 a(2、3)=a(0、0)XOR a(3、2)XOR S=0 XOR 0 XO
R 0=0 a(3、3)=a(1、0)XOR a(0、1)XOR S=1 XOR 1 XO
R 0=0
【0070】デコーディングの最終結果は次のようにな
る。 DASD0 DASD1 DASD2 DASD3 DASD4 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1
【0071】ここで次の配列が受取られたとする。 DASD0 DASD1 DASD2 DASD3 DASD4 ? 1 ? 1 1 ? 0 ? 0 1 ? 0 ? 1 0 ? 1 ? 0 1
【0072】従って、DASDi=0、j=2は消去さ
れている。j=2<3=M−2であるから、ボックス4
04はボックス407に進む。そこで対角線パリティが
次のように予測される。 S=a(0、3)XOR a(0、4)XOR a(1、3)XOR a(1、
4)XOR a(2、3)XOR a(2、4)XOR a(3、3)XOR a
(3、4)=1 XOR 1 XOR 0 XOR 1 XOR 1 XOR 0 XOR0 XOR
1=1
【0073】ここで、ボックス411における最後の再
帰が次のように求められる。 a(1、0)=a(0、1)XOR a(3、3)XOR S=1 XOR 0 XO
R 1=0 a(1、2)=a(1、0)XOR a(1、1)XOR a(1、4)=0
XOR 0 XOR 1=1 a(3、0)=a(2、1)XOR a(1、2)XOR a(0、3)XOR
S=0 XOR 1 XOR 1 XOR1=1 a(3、2)=a(3、0)XOR a(3、1)XOR a(3、4)=1
XOR 1 XOR 1=1 a(0、0)=a(3、2)XOR a(2、3)XOR S=1 XOR 1 XO
R 1=1 a(0、2)=a(0、0)XOR a(0、1)XOR a(0、4)=1
XOR 1 XOR 1=1 a(2、0)=a(1、1)XOR a(0、2)XOR S=0 XOR 1 XO
R 1=0 a(2、2)=a(2、0)XOR a(2、1)XOR a(2、4)=0
XOR 0 XOR 0=0
【0074】最終的に再生された配列は次のようにな
る。 DASD0 DASD1 DASD2 DASD3 DASD4 1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 1 1 0 1
【0075】
【発明の効果】本願発明によれば、複雑な演算の実行を
せずに、また、エラーを伝搬することなく故障したDA
SDを原状に復することができる。また、特にM個で構
成されるDASDの配列中において2つまでのDASD
が故障したときに適用することができる。
【図面の簡単な説明】
【図1】横線、パリティ・コーディング、スペアリング
及びスペアに対するデータの再実行を示すハイレベルR
AID DASD配列の図である。
【図2】(M−1)* (M−2)のデータ・ブロック配
列の非再帰的単純パリティ・コーディング要素について
対角線及び行を軸とした順序の制御の流れを示す図であ
る。
【図3】短い書込み動作を実行するために、(M−1)
* Mのデータ・ブロック配列の非再帰的単純パリティ・
コーディング要素について対角線及び行を軸とした順序
の制御の流れを示す図である。
【図4】最高2つまでのDASDの障害が発生して再生
されたデータの制御の流れを示す図である。
【図5】最高2つまでのDASDの障害が発生して再生
されたデータの制御の流れを示す図である。
【図6】最高2つまでのDASDの障害が発生して再生
されたデータの制御の流れを示す図である。
【符号の説明】
1、3 プロセッサ 5 共有メモリ 7 高性能パリティ生成横線バッファ(PSB) 9 バス 11、13、15、17 並行パス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームス・トムソン・ブラディ アメリカ合衆国95120、カリフォルニア州 サン・ホセ、クイーンズブリッジ・コート 1060 (72)発明者 ジェオシュア・ブルック アメリカ合衆国94306、カリフォルニア州 パロ・アルト、ブライアント・ストリート 3278 (72)発明者 ジャイシャンカー・ムーセダス・メノン アメリカ合衆国95120、カリフォルニア州 サン・ホセ、ステアリング・ゲート・ドラ イブ 1095

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】障害の影響を受けないM個のDASDの配
    列と、上記DASD配列のスペアとして動作可能な複数
    のDASDのうち、または上記M個のDASDに2つの
    DASDと同等のスペア・スペースが分散した配列のう
    ち、使用不能な最高2つまでのDASDのデータ内容を
    コーディングし再生する方法であって、Mは素数であ
    り、上記データ内容が(M−1)*(M−2) のデータ
    ・ブロック配列として表現され、上記データ配列の各行
    のブロックが対応するDASDに格納される上記方法
    は、 (a)(M−1)*(M−2) のデータ・ブロック配列
    の対角線と行の処理過程について、非再帰的単純パリテ
    ィ値を対角線及び行を主とした順序で計算することによ
    って(M−1)*(M−2) のデータ・ブロック配列か
    ら(M−1)*Mのデータ・ブロックを生成するステッ
    プであり、主対角線または基準対角線に沿ったデータ・
    ブロックのパリティ・モード(奇数または偶数)が、非
    基準対角線のそれぞれのパリティ値を計算するモードと
    して働き、各行のパリティ値が偶数モードに従って計算
    されるステップと、 (b)上記(M−1)* Mのデータ配列の各行のブロッ
    クを上記障害の影響を受けないM個のDASDのうち対
    応するDASDに書込むステップと、 (c)上記最高2つまでのDASDが使用不能であるこ
    とに応答して、上記データ配列のうち消去された部分ま
    たは使用できない部分を、M−2個を超える使用可能な
    DASDから、スケジュール・ベースまたは機会ベース
    に再生し、対応するスペアDASDまたは残りのM−2
    を超えるDASD上で使用可能なスペア・スペースのい
    ずれかに再生された部分を書込むステップと、 を含むデータ・コーディング再生方法。
  2. 【請求項2】複数のDASDを有し、上記複数のDAS
    Dの1部が障害の影響を受けないM個のDASDの配列
    を成し、該サブシステムが更に外部コマンドに応答し
    て、上記M個のDASDからデータ・ブロックの(M−
    1)* (M−2)の配列に論理的にアドレスされたデー
    タ・ブロックのサブセットをアクセスするための手段を
    有しており、Mが素数であり、上記データ・ブロック配
    列が主対角線または基準対角線を有し、上記データ・ブ
    ロックが上記データ・ブロック配列に、対角線及び行を
    主とした順序に配置されており、上記データ・ブロック
    の対角線と行の順序がそれぞれパリティ・モード(奇数
    または偶数)を有する、システムにおいて、上記M個の
    DASDの配列のうち最高2つまでのDASDが使用不
    能になった場合に上記配列の内容をコーディングし再生
    する方法であって、 (a)上記(M−1)*(M−2) のデータ・ブロック
    配列のデータ・ブロックの主対角線のパリティ・モード
    を突き止めるステップと、 (b)ステップ(a)のモードに従って、対角線を主と
    した順序で上記データ・ブロックから単純パリティ値を
    計算してM−1番目の列を形成すると共に、偶数パリテ
    ィ・モードに従って行を主とした順序で上記データ・ブ
    ロックから単純パリティ値を計算してM番目の列を形成
    することによって、上記(M−1)* (M−2)のデー
    タ配列から(M−1)* Mのデータ・ブロック配列を生
    成するステップと、 (c)DASDが使用できない場合に上記(M−1)*
    Mのデータ・ブロック配列を、上記MのDASD配列ま
    たは同等のスペースの対応する位置に書込むステップ
    と、 (d)上記最高2つまでのDASDが使用不能であるこ
    とに応答して、上記データ配列の消去された部分または
    使用できない部分を、使用可能なM−2を超えるDAS
    Dから、スケジュール・ベースまたは機会ベースに再生
    するステップと、 を含むコーディング再生方法。
  3. 【請求項3】上記アクセス手段が、所定の方法で上記M
    個のDASDに割当てられたスペア容量を割当てるため
    の手段と、故障したDASDに対してスペアDASDを
    代用する手段とを含み、ステップ(d)が、上記再生さ
    れた部分を、動作時にスペアと指定された上記複数のD
    ASDのうち対応するDASDに、またはM−2を超え
    る残りのDASD上で使用可能なスペア・スペースに書
    込むステップを含む、請求項2記載の方法。
  4. 【請求項4】Mが素数ではない場合にはステップ
    (b)、(c)及び(d)により、均一な2進値の列が
    追加されて、M'がMよりも大きい素数を成す(M'−
    1)*M'の有効な配列を形成するよう拡張されたデータ
    ・ブロック配列をエミュレートする、請求項2記載の方
    法。
  5. 【請求項5】上記方法が、M個のDASDの配列に格納
    された(M−1)* Mのデータ配列に対する上記アクセ
    ス手段を通して、少なくとも1つの短い書込みアクセス
    を実行し、第1及び第2のDASDが単純パリティ値を
    格納し、他のM−2のDASDがデータ・ブロックを格
    納する他、更に上記方法が、 (1)変更されるデータ・ブロックが上記データ・ブロ
    ック配列の主対角線上にあるかまたは基準対角線上にあ
    るかを突き止めるステップと、 (2)変更されるブロックが主対角線上にない場合に
    は、(a)旧データ・ブロックを上記ブロックを格納し
    たDASDから読取り、旧対角線パリティ値と旧行パリ
    ティ値をそれぞれ第1及び第2の冗長なDASDから読
    取るステップと、(d)上記旧データ・ブロック、新デ
    ータ・ブロック及び旧対角線パリティ値のXORをとる
    ことによって、新しい対角線パリティ値を判定し、旧デ
    ータ・ブロック、新データ・ブロック及び旧行パリティ
    値のXORをとることによって新しい行パリティ値を判
    定するステップと、(c)上記新データ・ブロック及び
    対角線と行の新パリティ値を、それぞれデータ・ブロッ
    クを格納したDASDと第1及び第2の冗長なDASD
    に書込むステップと、 (3)変更されるブロックが主対角線上にある場合に
    は、(a)旧データ・ブロックを上記ブロックを格納し
    たDASDから、旧行パリティ値を第2の冗長なDAS
    Dから、及びM個の対角線パリティ値を第1の冗長なD
    ASDから読取るステップと、(b)M−1個の新対角
    線パリティ値のそれぞれを、対応する旧対角線パリティ
    値、旧データ・ブロック及び新データ・ブロックのXO
    Rをとることによって判定し、新行パリティ値を、旧デ
    ータ・ブロック、新データ・ブロック及び旧行パリティ
    値のXORをとることによって判定するステップと、
    (c)上記新データ・ブロック、新行パリティ値及びM
    個の新対角線パリティ値を、上記M個のDASDのうち
    対応するDASDに書込むステップと、を含む方法。
  6. 【請求項6】ステップ(3)(c)が、上記データ・ブ
    ロックとパリティ値を上記対応するDASDに書込むス
    テップを含む、請求項5記載の方法。
  7. 【請求項7】複数のDASDを有し、ハイレベルのRA
    ID構成における上記複数のDASDのうち素数である
    M個のDASDを動作可能にアクセスする手段を含み、
    該アクセス手段が外部コマンドに応答して、上記M個の
    DASDのうち選択されたDASDに格納されたデータ
    ・ブロックの読取りと書込みを行ない、同期データ・ブ
    ロックが、(M−1)* (M−2)の論理配列に配置さ
    れており、上記配列の(M−1)の行のそれぞれの(M
    −2)のデータ・ブロックのそれぞれが、上記DASD
    のうちM−2のDASDの対応するDASDに書込ま
    れ、上記複数のDASDのいくつかがスペアと指定され
    ているシステムにおいて、 (a)上記論理配列の主対角線に分散したデータ・ブロ
    ックのパリティ・モードを突き止めるステップと、 (b)(M−1)*Mの論理配列を、(M−1)*(M−
    2)の論理配列から、パリティ値のM−1番目の列を、
    ステップ(a)のモードに従って、対角線を主とした順
    序で各対角線について単純パリティを計算して形成する
    と共に、パリティ値のM番目の列を、行を主とした順序
    で各列について単純パリティを計算して形成することに
    よって、生成するステップと、 (c)生成された(M−1)* Mの論理配列を上記M個
    のDASDに書込むステップと、 (d)旧データ・ブロック、旧対角線パリティ値、及び
    旧行パリティ値を読取ることによって、上記論理配列の
    主対角線にはないデータ・ブロックを変更するために書
    込み更新コマンドに応答して、対角線と行の新しいパリ
    ティ値を計算し、変更されたデータ・ブロックと、対角
    線及び行の新しいパリティ値を、上記M個のDASDに
    書込む他、主対角線に位置するデータ・ブロックを変更
    するために書込み更新コマンドに応答して、(M−1)
    の新しい対角線パリティ値と新しい行パリティ値の生成
    に関するステップ(a)及び(b)を繰返し、変更され
    たデータ・ブロック、新対角線パリティ及び新行パリテ
    ィを上記M個のDASDに書込むステップと、 (e)最高2つまでのDASDの非可用性に応答して、
    上記データ配列のうち消去された部分または使用できな
    い部分を、M−2を超える使用可能なDASDから、ス
    ケジュール・ベースまたは機会ベースに再生し、再生さ
    れた部分を、スペアとして動作可能に指定された上記複
    数のDASDのうち対応するDASDに書込むステップ
    と、 を含む方法。
  8. 【請求項8】上記アクセス手段が、最高2つのDASD
    のスペアと同等のM−2のDASDにスペア・スペース
    を予約するための手段を含み、ステップ(e)が、上記
    再生された部分を、M−2の残りのDASDを超えるD
    ASD上で使用可能なスペア・スペースに書込むステッ
    プを含む、請求項7記載の方法。
  9. 【請求項9】主対角線上に位置するデータ・ブロックを
    変更するための書込み更新コマンドに応答して(M−
    1)の新対角線パリティ値を計算するステップが、対応
    する旧対角線パリティ値を論理的に補うステップを含
    む、請求項7記載の方法。
  10. 【請求項10】(1)故障した2つのDASDが、それ
    ぞれ対角線パリティ(M−1番目のDASD)と行パリ
    ティ(M番目のDASD)の値を格納したDASDから
    成る場合には、ステップ(b)を繰返し、再生された行
    とパリティの値を、それぞれ、M−1番目及びM番目の
    DASDの代用となるスペアDASDに書込み、 (2)故障した2つのDASDが、データ・ブロックを
    格納するDASD(i番目のDASD)と、行パリティ
    値を格納するDASD(M番目のDASD)とから成る
    場合には、i番目のDASDを、主対角線のパリティ・
    モードを突き止めることによって再生し、i番目のDA
    SDの各データ・ブロックを、突き止められたパリティ
    ・モードに従ってi番目のDASDと交差する対角線に
    沿ったデータ・ブロックだけのXORをとることによっ
    て計算し、M番目のDASDを、M番目のDASDと交
    差する行に沿ったデータ・ブロックだけのXORをとっ
    て各行パリティ値を計算することによってM番目のDA
    SDを再生し、計算されたデータ・ブロックと行パリテ
    ィ値を、それぞれi番目及びM番目のDASDの代用と
    なるスペアDASDに書込み、 (3)故障した2つのDASDが、データ・ブロックを
    格納するDASD(i番目のDASD)と、対角線パリ
    ティ値を格納するDASD(M−1番目のDASD)と
    から成る場合には、i番目のDASDをi番目のDAS
    Dと交差する残りのデータ・ブロックそれぞれと行パリ
    ティ値のXORをとってi番目のDASDの各データ・
    ブロックを計算することによって再生し、M−1番目の
    DASDを主対角線のパリティ・モードを突き止めるこ
    とによって再生し、M−1番目のDASDと交差する対
    角線に沿ったデータ・ブロックのXORをとって、上記
    主対角線のパリティ・モードと共に各対角線パリティ値
    を計算し、検索されたデータ・ブロックと対角線パリテ
    ィ値を、それぞれi番目のDASDとM−1番目のDA
    SDに代わるスペアDASDに書込み、 (4)故障した2つのDASDが、データ・ブロックを
    格納する1対のDASD(i番目及びj番目のDAS
    D)から成る場合には、対角線パリティ値のXORが行
    パリティ値のXORと等しくなければ奇数として、他の
    場合には偶数として、主配列対角線のパリティ・モード
    を突き止め、i番目またはj番目のDASDの各データ
    ・ブロック値を、データ・ブロックの対角線と、計算さ
    れた上記各データ・ブロックと交差する対角線パリティ
    値とによって、またはデータ・ブロックの行と、計算さ
    れた上記各データ・ブロックと交差する行パリティ値と
    によって成る1つの未知の値を持つ単一式のXOR解と
    して突き止める、 ようにステップ(e)が変更される、請求項7記載の方
    法。
JP6143535A 1993-06-30 1994-06-24 データのコーディング及び再生方法 Expired - Lifetime JP2750316B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8570793A 1993-06-30 1993-06-30
US085707 1993-06-30

Publications (2)

Publication Number Publication Date
JPH0728710A true JPH0728710A (ja) 1995-01-31
JP2750316B2 JP2750316B2 (ja) 1998-05-13

Family

ID=22193429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6143535A Expired - Lifetime JP2750316B2 (ja) 1993-06-30 1994-06-24 データのコーディング及び再生方法

Country Status (3)

Country Link
EP (1) EP0632376B1 (ja)
JP (1) JP2750316B2 (ja)
DE (1) DE69408498D1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100472079B1 (ko) * 2001-05-24 2005-02-21 에스케이케미칼주식회사 불소수지의 제조방법
JP2008197886A (ja) * 2007-02-13 2008-08-28 Nec Corp ストレージ装置及びその制御方法
US7571291B2 (en) 2005-01-05 2009-08-04 Fujitsu Limited Information processing system, primary storage device, and computer readable recording medium recorded thereon logical volume restoring program
US7809979B2 (en) 2005-03-15 2010-10-05 Fujitsu Limited Storage control apparatus and method
US8386837B2 (en) 2007-10-31 2013-02-26 Fujistu Limited Storage control device, storage control method and storage control program
JP2014511158A (ja) * 2011-02-28 2014-05-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ・アレイにデータを保管するための方法、システム、およびコンピュータ・プログラム、ならびにストレージ・アレイ内の消去を訂正するための方法およびコンピュータ・プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271012A (en) * 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5258984A (en) * 1991-06-13 1993-11-02 International Business Machines Corporation Method and means for distributed sparing in DASD arrays
EP0519669A3 (en) * 1991-06-21 1994-07-06 Ibm Encoding and rebuilding data for a dasd array

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100472079B1 (ko) * 2001-05-24 2005-02-21 에스케이케미칼주식회사 불소수지의 제조방법
US7571291B2 (en) 2005-01-05 2009-08-04 Fujitsu Limited Information processing system, primary storage device, and computer readable recording medium recorded thereon logical volume restoring program
US7809979B2 (en) 2005-03-15 2010-10-05 Fujitsu Limited Storage control apparatus and method
JP2008197886A (ja) * 2007-02-13 2008-08-28 Nec Corp ストレージ装置及びその制御方法
US8386837B2 (en) 2007-10-31 2013-02-26 Fujistu Limited Storage control device, storage control method and storage control program
JP2014511158A (ja) * 2011-02-28 2014-05-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ・アレイにデータを保管するための方法、システム、およびコンピュータ・プログラム、ならびにストレージ・アレイ内の消去を訂正するための方法およびコンピュータ・プログラム

Also Published As

Publication number Publication date
EP0632376A2 (en) 1995-01-04
DE69408498D1 (de) 1998-03-19
JP2750316B2 (ja) 1998-05-13
EP0632376A3 (en) 1995-03-01
EP0632376B1 (en) 1998-02-11

Similar Documents

Publication Publication Date Title
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
US5271012A (en) Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5504858A (en) Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
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
US5333143A (en) Method and means for b-adjacent coding and rebuilding data from up to two unavailable DASDS in a DASD array
US7281089B2 (en) System and method for reorganizing data in a raid storage system
US5303244A (en) Fault tolerant disk drive matrix
US5581690A (en) Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system
US7409625B2 (en) Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
CN102346694B (zh) 一种在存储系统中计算奇偶校验的方法
US7529970B2 (en) System and method for improving the performance of operations requiring parity reads in a storage array system
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
US6269453B1 (en) Method for reorganizing the data on a RAID-4 or RAID-5 array in the absence of one disk
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
JP3742494B2 (ja) 大容量記憶装置
JPH09305328A (ja) ディスクアレイ装置
US20070083710A1 (en) Semi-static distribution technique
JPH04230512A (ja) Dasdアレイのための更新記録方法及び装置
JP2000207136A (ja) 複数ドライブ故障トレラントraidアルゴリズム
JPH0731579B2 (ja) Dasdアレイの階層を管理する方法および装置
JPH05143471A (ja) 記憶装置の冗長アレイ内の故障記憶装置のオンライン再構成方法
JPH06504863A (ja) コピーバックキャッシュを有する記憶装置アレイ
JP2750316B2 (ja) データのコーディング及び再生方法
JP2004164675A (ja) ディスクアレイ装置
JP2570614B2 (ja) デイスクアレイ装置