JPH0612192A - 高可用度ディスク配列に関する改善 - Google Patents

高可用度ディスク配列に関する改善

Info

Publication number
JPH0612192A
JPH0612192A JP5071013A JP7101393A JPH0612192A JP H0612192 A JPH0612192 A JP H0612192A JP 5071013 A JP5071013 A JP 5071013A JP 7101393 A JP7101393 A JP 7101393A JP H0612192 A JPH0612192 A JP H0612192A
Authority
JP
Japan
Prior art keywords
disk
parity
data
sector
user data
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
JP5071013A
Other languages
English (en)
Other versions
JP3226370B2 (ja
Inventor
Robert C Solomon
ロバート・シー・ソロモン
Stephen J Todd
ステイーブン・ジエイ・トツド
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.)
EMC Corp
Original Assignee
Data General 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 Data General Corp filed Critical Data General Corp
Publication of JPH0612192A publication Critical patent/JPH0612192A/ja
Application granted granted Critical
Publication of JP3226370B2 publication Critical patent/JP3226370B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • 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
    • G06F11/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/104Metadata, i.e. metadata associated with RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【目的】 ユーザデータセクタとそれに対応するパリテ
ィセクタとを有する複数のデータ記憶ディスク内のデー
タを取り扱うための方法である。 【構成】 本方法は、作動不能ユーザデータディスクの
セクタ内のユーザデータがその他のユーザデータディス
クの該当セクタ内のデータと対応パリティエントリとか
ら復元される低下モードにおいて前記複数のデータ記憶
ディスクが作動させられている時に、使用される。1つ
の作動ディスクの選択されたセクタの中に新たなデータ
を書き込む前に、パリティディスク内のパリティエント
リの代わりに、作動不能ディスクのユーザデータセクタ
内の復元ユーザデータが、対応するパリティセクタの中
に書き込まれる。動作不能ディスクを識別する情報が、
そうした操作が既に生じたことを示すために、パリティ
ディスクの特定の識別領域の中に書き込まれる。その後
で、新たなデータが作動ディスクの対応するセクタの中
に書き込まれる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システムで
使用するための高可用度ディスクアレイ(high availabi
lity disk array)に関わり、更に特に、データ処理シス
テムの動作中に起こり得る様々なタイプの電源障害条件
を取り扱うための改善された方法に係わる。
【0002】
【従来の技術】そのディスクアレイのディスクの高度の
可用度を与える特定のディスクアレイシステムが、最近
になって開発されており、このシステムは「低価格ディ
スクの冗長アレイ(Redundant Array of Inexpensive Di
sks)」(RAID)と呼ばれることが多い。その特定の具体例
は「レベル5アレイ(Level 5 array) 」即ち「RAID-5デ
ィスクアレイ」と呼ばれることが多く、この具体例は、
David A. Patterson他 (Dept. of Electrical Engineer
ing and Computer Sciences, University of Californi
a, Berkeley, California)による論文「低価格ディスク
の冗長アレイ(RAID)の一事例(A Case for Redundant Ar
rays of Inexpensive Disks(RAID))」で言及されてい
る。そうしたシステムは、ホストコンピュータの要請に
応じてディスクアレイの1つ以上のディスクモジュール
にアクセスするためのインテリジェント入出力(I/
0)プロセッサを使用し、そのディスクアレイの各ディ
スクモジュールは、実効的にはホストコンピュータにと
って単一のディスク駆動機構として現れるように、その
I/0プロセッサを経由して動作するディスクドライバ
によって駆動される。1つのディスクモジュールは、例
えば、ディスクと、ディスクドライバと、電源/制御回
路を含む。或いは、この代わりに、そうしたシステムの
具体例の幾つかでは、I/0プロセッサが使用される必
要がなく、ホストコンピュータが、アレイを構成する各
ディスクモジュールと直接通信する。
【0003】例えば、5つのディスクモジュールから構
成されるアレイを含む特定のRAID-5の場合に、各々のデ
ィスクが、一般的にセクタの「ストライプ」と呼ばれ
る、5つのディスクの各ディスク内のセクタに相当する
複数の「N個の」データ記憶セクタを有する。いずれの
ストライプに関しても、そのストライプ内のセクタ領域
の80%(即ち、実際には、5ディスクアレイにおいて5
つのセクタの内の4つのセクタ)がユーザデータのため
に使用され、その20%(即ち、実際には5つのセクタの
内の1つのセクタ)が冗長データ又はパリティデータの
ために使用される。そうした冗長性の使用は、そのスト
ライプ内のユーサデータの障害の際にユーザデータの復
元を可能にする。
【0004】データディスクモジュールが故障した時に
は、ストライプのパリティセクタ内で使用可能な冗長エ
ントリ又はパリティエントリと、そのストライプの中の
非故障ユーザデータセクタ内のデータとが、故障ディス
クのセクタ内にあったユーザデータが有効に復元される
ことを可能にするために使用されることが可能であり、
その結果として、故障ディスクの該当セクタ内のユーザ
データがアクセスされることが不可能である時にさえ、
そのシステムがそうした復元データを使用して動作状態
を維持することが可能である。この場合には、故障ディ
スクへのアクセスが必要とされる時に、その故障ディス
ク内のデータを復元するために余分な処理操作と従って
余分な時間とが必要とされるが故に、そのシステムは
「低下」モード(degraded mode) で動作していると称さ
れる。
【0005】しかし、そのディスクアレイが矛盾した状
態又は実際上は使用不可能な状態のままにされる幾つか
の種類の故障が生じる可能性があり、例えば、電源障害
が生じる状況が起こる可能性があり、即ち、I/0プロ
セッサ(IOP) に対する電源が故障するか、ハードウェア
欠陥の故にI/0プロセッサ自体が故障するか、又は、
ディスク駆動機構自体に対する電源が故障する可能性が
ある。例えば、電源障害の結果として、故障したIOP を
取り替えるために新IOP を使用することが必要とされ、
その旧IPO を新IPO に取り替え終わった後で、そのディ
スクアレイのセクタに対する書込み操作が何処で進行中
であったたかを発見することが不可能である場合には、
更に別の問題が生じる恐れがある。
【0006】
【発明が解決しようとする課題】現在において設計され
ているようなRAID-5システムでは取り扱い不可能なそう
した電源障害状況を取り扱うための方法を発明すること
が望ましい。
【0007】本発明は、添付図面の補助によって更に詳
細に説明されることが可能である。
【0008】
【実施例】図6は、本発明が具体化されることが可能な
システムのブロック図である。図6に見てとれるよう
に、ディスクアレイI/0制御プロセッサ25が、ホスト
コンピュータ26と通信し、複数のディスクモジュール27
と通信する。このI/0制御プロセッサ25は、更に詳細
に後述されるような不揮発性ランダムアクセス記憶装置
(RAM) を含む。この制御プロセッサは、ディスクモジュ
ールの書込み/読取り操作を制御し、更には、そのシス
テム内で使用するための、及び、更に詳細に後述される
ようにそのシステムの故障ディスク内のデータを復元す
るための、ディスクモジュールアレイのオープン(open
up) のための操作を制御する。データ処理システムは、
複数のディスクアレイから構成されるサブシステム全体
を制御するために、単一のI/0制御プロセッサを使用
してもよく、又は、各々のディスクアレイが、各ディス
クアレイに関連付けられた、各ディスクアレイ自体の関
連プロセッサを有してもよい。
【0009】図1を参照して説明されるような、基本的
なRAIDシステムの概念と、この基本システムにおける冗
長操作とパリティ操作の使用とを簡単に概観することよ
って、本発明が、より適切に理解されることが可能であ
る。そうした概念の理解を容易にするために、下記の説
明では、1つのアレイの個々のディスク内に記憶される
データを記述するために複雑なディジタル符号化を使用
するのではなく、そうしたデータを単に整数によって表
現するが、そうした整数は実際にはディジタル符号化さ
れたワードであるということを理解されたい。図1のア
レイは、例えば、5つのディスクを含むアレイ10を表
し、これらのディスクは、ディスクユニットA、B、
C、D、Eによって表され、各ディスクが、各ディスク
内にデータを記憶するために使用される複数のディスク
記憶セクタ11を有し、例えば、各ディスク上のセクタ
1、2、3、....Nが図1に概略的に特に示されてい
る。図1に示されるように、5つのディスクの各ディス
ク上のセクタ1〜Nの該当グループが、図示された5デ
ィスクアレイのストライプ12を表す。図1に示されるタ
イプの各ディスク上のセクタの該当グループ(図示され
ていない)が、その5ディスクアレイの他のストライプ
を表すことが可能である。
【0010】図1に示されるようなディスクアレイは、
他のディスクアレイを含む、より大きな複数ディスクア
レイサブシステム全体の一部分であってもよい。例え
ば、典型的な複数ディスクアレイサブシステムの1つ
は、その各アレイが図1に示されるような5つのディス
クを有するタイプのディスクアレイである6つのアレイ
を使用してもよく、それによって30のディスクから構成
される複数ディスクアレイサブシステムをもたらし、そ
のサブシステム全体が、適切な多重バス(例えば、公知
の「Small Computer System Interface (SCSI) 」バ
ス)又は当業者の間で既知の他の制御バスを介して、そ
の複数ディスクアレイサブシステムの各ディスクに対す
るアクセスを与えるために1つ以上のI/0制御プロセ
ッサに適切に接続される。本発明の理解を容易にするた
めに、図1の場合のような、単一のディスクアレイの単
一のストライプだけに関する本発明の説明が示される
が、そのアレイのその他のストライプの各々に関しても
同一の操作が行われるということを理解されたい。
【0011】図1のストライプ12では、ディスクA、
B、C、D、Eの各々のセクタ1に関して、ディスク
A、B、C、Dのセクタ1内のユーザデータが各々に整
数1、2、3、4によって表されると仮定すれば、(そ
のストライプに関する「パリティ」ディスクとして使用
される)ディスクEの該当セクタ1内のエントリは、ユ
ーザデータセクタ内のデータの合計、即ち、1+2+3
+4=10である。それらのセクタのいずれか1つのセク
タ内のデータ、例えば、故障ディスクのセクタ内のデー
タが、非故障ディスクのその他の対応する非故障セクタ
内のデータをパリティセクタ内のパリティエントリから
減算することによって復元されることが可能である。例
えば、故障ディスクがディスクCであると仮定すると、
例えば故障ディスクCのセクタ1内のデータ「3」を復
元することが求められる時には、従って、そうした復元
は例えば10−1−2−4=3のような減算処理によって
行われることが可能である。
【0012】新データが特定のディスクの特定のセクタ
の中に書き込まれ終わった後に、且つ、新たなパリティ
エントリがパリティセクタの中に書き込まれることが可
能である前に、上記の電源障害(例えば、IOP に対する
電源障害、IPO 内のハードウェア故障、ディスクに対す
る電源障害)が生じる場合には、問題が生じる可能性が
ある。例えば、図2を参照して説明すると、新データ
「3」がディスクAのセクタ1の中に書き込まれる場合
に、新パリティエントリ(即ち3+2+3+4=12)が
ディスクEの中に書き込まれるべきである。そうした新
パリティデータは普通は次のように書き込まれる。ディ
スクAのセクタ1内の旧データ(例えば「1」)が読み
出され、ディスクAのセクタ1内の新データと旧データ
の間の差(即ち3−1=2)が確認される。その後で新
データ「3」がディスクAのセクタ1内に書き込まれ
る。ディスクEのセクタ1内の旧パリティ「10」が読み
出され、新パリティエントリ「12」を得るために上記の
確認された差データ「2」に加えられ、それに続いて、
新パリティエントリ「12」がディスクEのパリティセク
タ1内に書き込まれる。
【0013】或いは、この代わりに、パリティが決定さ
れた後で、そのパリティエントリが、ユーザデータディ
スクの中に新データが書き込まれる以前に、まず最初に
パリティディスク内に書き込まれることが可能であり、
更に別の仕方としては、新データと新パリティとが概ね
同時に書き込まれることも可能である。
【0014】しかし、新パリティエントリ「12」がディ
スクEのパリティセクタ1内に書き込まれる前に、且
つ、新データ「3」がディスクAのセクタ1内に書き込
まれた後に、上記のような障害が生じる場合には、これ
らのディスクのセクタ1内のデータは図3に示される状
態となり、即ち、旧パリティ「10」がディスクEのセク
タ1内に残存すると同時に、新データ「3」がディスク
Aのセクタ1内に存在することになるだろう。そうした
条件下では、そのストライプの故障ディスクC内のデー
タを復元する試みが行われるならば、その復元データは
正しくないだろう(即ち、正しいデータは「3」である
にも係わらず、その復元データ(10−3−2−4)は
「1」となるだろう)。
【0015】故障ディスク上のデータの誤った復元を防
ぐために、図6に示される不揮発性RAM28 が、そのI/
0制御プロセッサ内で使用される。本発明によって、新
データの各々が特定のディスクのセクタの1つの中に書
き込まれようとする都度に、I/0制御プロセッサは、
その新データが書き込まれなければならない位置に関す
る次の通りの情報を不揮発性RAM(NV-RAM) の中に記憶す
る。
【0016】1.新データがその中に書き込まれなけれ
ばならない複数アレイシステムの中の特定のディスクア
レイ。
【0017】2.新データがその中に書き込まれなけれ
ばならないディスクアレイ内の特定の開始セクタ(例え
ばディスクAのセクタ1)。
【0018】3.書き込みが行われているセクタの数
(例えば、そのデータは1つのセクタだけの中に書き込
まれてよい)。
【0019】複数のI/0制御プロセッサが使用される
場合には、その各々のプロセッサは別々のディスクモジ
ュールアレイに組み合わされ、従って、普通は、各I/
0制御プロセッサが、各プロセッサに組み合わされたデ
ィスクモジュールアレイだけに関する情報を記憶するた
めにその不揮発性RAM を使用するだろう。
【0020】故障が発生してからアレイがその故障から
回復させられ終わった後で、アレイが給電される場合
は、図1に示されるアレイ内のデータを使用する前に、
そのIPO は、そのアレイのディスクA、B、C、Dの各
ディスク内の該当セクタ中のユーザデータと、ディスク
E上の該当パリティセクタ内のパリティエントリとの間
に矛盾が無いということを確認しなければならない。即
ち、そのシステムは、そのパリティが、その他の該当ユ
ーザデータセクタ内の現行ユーザデータと正しく整合す
るということを確認しなければならない。そうした確認
を行うためには、そのI/0制御プロセッサは、電源障
害が起こった時に書込み操作が何処で進行中であったか
を確認するためにNV-RAMを走査し、例えば、そのIPO
は、書込み操作がそこで進行中だったアレイと、そのア
レイの開始セクタとセクタ数とを識別する。その後で、
書込みがそこで進行中だったセクタの中に現在存在する
データに応じて、その対応パリティセクタが決定され
る。例えば、書込みがディスクAのセクタ1内で進行し
ていたけれども、ディスクAのセクタ1内のユーザデー
タが今なお旧データ「1」である場合には、そのパリテ
ィは1+2+3+4=10として決定される。しかし、デ
ィスクAのセクタ1内のユーザデータが新データ「3」
に変更され終わっていた場合には、そのパリティは3+
2+3+4=12として決定される。しかし、ディスクE
のセクタ1内の実パリティが依然として「10」である場
合には、そのIOP は不整合が存在することを認識する。
この場合には、そのIOP がディスクEのパリティセクタ
1内のパリティエントリを「12」に変更し、従って、そ
のパリティは、今度は、ディスクA、B、C、Dのユー
ザデータセクタ1内の実ユーザデータに一致する。
【0021】従って、書込み進行中の位置がNV-RAM内で
正しく確認され終わっているが故に、該当セクタのパリ
ティとユーザデータとが常に整合していることが可能で
あり、従って、故障ディスクのセクタ内の復元データ
が、その他の非故障ディスクの対応セクタ内に実際に存
在するデータと常に整合しており、その対応するパリテ
ィセクタ内のパリティセクタとに常に整合しているだろ
うということが保証されることが可能である。そうした
操作によって、1つのストライプの対応セクタ内の実ユ
ーザデータとパリティとの間に常に整合が得られるだろ
うが故に、I/0プロセッサは、そうした整合が検査さ
れる時に、非故障ディスクのユーザセクタデータとパリ
ティエントリとから復元されるデータが故障ディスクの
データを正しく表すということを保証されることが可能
である。
【0022】更に、新たなI/0制御プロセッサがシス
テム内に設置される場合(即ち、旧I/0制御プロセッ
サに欠陥があるか、もしくは、何らかの他の理由から旧
I/0制御プロセッサが交換されなければならなかった
場合)、又は、複数のI/0制御プロセッサを含むシス
テムにおいて、別のディスクアレイを制御するそのI/
0制御プロセッサの1つが、以前には故障プロセッサに
よって制御されていたディスクアレイを制御するように
求められる場合には、その新たな制御プロセッサは、そ
のNV-RAM内に必要とされる書込み進行位置の情報をもは
や持っておらず(そうしたNV-RAMが実際に空白であ
り)、従って、故障発生時に新たな書込み操作が進行中
だった位置を発見することが不可能であるが故に、その
中のデータが既に変更させられたアレイの全セクタ内の
ユーザデータとパリティとを整合させることは不可能で
ある。そうした場合には、本明細書では「バックグラウ
ンド/検証(background/verify) 」操作と呼ばれる、本
発明の更に追加的な方法が使用される。
【0023】こうした「バックグラウンド/検証」操作
によって、ホストコンピュータは、それが関与させられ
ている全操作を続行し、一方、そうした操作のために新
たなI/0制御プロセッサが必要とされない時に、そう
した新プロセッサが、そのアレイの各ディスクの各セク
タ内のユーザデータと対応パリティとを連続的に読み取
る。その読み取りの途上では、その新たなI/0制御プ
ロセッサが、各セクタ内の各パリティエントリをチェッ
クし、各パリティセクタ内のパリティエントリを、対応
する各ユーザセクタ内に実際に存在するあらゆるユーザ
データに整合させる。そうしたパリティ検証プロセスの
途上で、その新たな制御プロセッサがパリティ不整合が
存在することを発見した場合には、その新たな制御プロ
セッサは、何がその不整合の原因であるかを見い出すこ
とが不可能であるにも係わらず、即ち、1つ以上のユー
ザセクタ内のユーザデータが誤りであるかどうかを確認
することが不可能であるか、又は、対応パリティセクタ
内のパリティエントリが誤りであるかどうかを確認する
ことが不可能であるにも係わらず、対応ユーザデータセ
クタ各々の中に実際に発見されるユーザデータを使用し
てそのパリティエントリを訂正する。対応するセクタに
対して上記ユーザデータ/パリティ整合操作を行うこと
によって得られる検証が、ホストコンピュータの命令の
下でI/0制御プロセッサによって行われなければなら
ない他の操作の合間に(即ち、そうした他の操作に対し
て「背後(background)」で)行われ、I/0制御プロセ
ッサによるそうした検証操作は、ホストコンピュータに
対しては実際上は「隠れている(invisible) 」。従っ
て、この検証プロセスが完了された時には、各セクタ内
に記憶されたユーサデータと、そうしたユーザデータに
関連付けられる対応パリティセクタ内のパリティエント
リとの間に、不整合がないという保証が得られる。
【0024】新たなI/0制御プロセッサが使用され、
その新たなIOP によって制御されるアレイの中に故障デ
ィスクがある時には、更に別の問題が生じ、それ故に、
その新たなIOP のNV-RAMが、無効データがどの位置に置
かれている可能性があるかを見い出すために使用される
ことは不可能である。ホストコンピュータがそのアレイ
の故障ディスク内のセクタにアクセスを試みる時に、低
下モードでの作動中に、その故障ディスクのセクタ内の
復元データが適正に復元され終わっているということを
確認することは不可能である。そうした状況では、既に
その使用が示唆された方法が、「バージョン番号(versi
on number)」方法と呼ばれることが多い。
【0025】そうした方法は、1988年4月2日付でClar
k 他に交付された米国特許第 4,761,785号に説明されて
いる。そうした方法では、上記特許の図4に示されてい
るように、1つのアレイ内の各ディスクのユーザデータ
記憶セクタに対応する領域418 、420 、422 、424 が使
用される。バージョン番号は、そうした領域の中に書き
込まれ、その番号は最初はゼロである。更に、関連した
データディスクの中の各バージョン番号を「パリティ」
ディスクの中に記録することを可能にするために、バー
ジョン番号428 、430 、432 、434 が「パリティ」ディ
スク内で使用される。新しいデータが1つのセクタ内に
書き込まれる時に(例えば、新しいデータがディスク41
0 の1つのセクタの中に書き込まれる時に)、その中の
バージョン番号が増分され、パリティセクタが、その対
応するバージョン番号を増分させることによって、その
変化を反映する。故障ディスクがあり、そのディスクア
レイが低下モードで作動し、且つ新データが非故障セク
タ内に書き込まれた後に、しかし、その対応するバージ
ョン番号がパリティディスクセクタ内で増分される前
に、電源障害が生じる場合には、ホストが新しいI/0
プロセッサを使用してこの特定のセクタにアクセスしよ
うとする時に、その新しいI/0プロセッサのNV-RAM内
には、不整合が何処に存在する可能性があるのかを認識
するための情報が無い。従って、そうした不整合が何処
に存在するのかを確認するために、バージョン番号が使
用されることが可能である。
【0026】ホストが故障ディスクのセクタにアクセス
しようとする時に、ユーザデータディスク内のバージョ
ン番号と、その対応するパリティディスクのバージョン
番号との検査が行われる。ユーザデータのバージョン番
号がパリティディスク内のバージョン番号と整合しない
時には、そのホストは、そのI/0プロセッサを介し
て、不整合状況が生じたことを発見することが可能であ
る。そうしたバージョン番号不整合操作を使用すること
によって、そのI/0プロセッサは、その確認されたセ
クタ内のデータが無効である可能性があるということを
認識する。従って、そのホストは、そのアレイ内の他の
セクタのデータにアクセスすることは依然として許され
てはいても、故障セクタにアクセスことは許されない。
【0027】一方、バージョン番号の整合が生じる場合
には、そのI/0プロセッサは、非故障ユーザディスク
セクタ内に実際に存在するユーザデータに対してセクタ
内のパリティエントリが適正であるということを認識
し、従って、そのIOP は、故障ディスクの対応セクタ内
のデータを正しく復元することが可能である。従って、
このバージョン番号方法を使用することによって、最悪
の場合でさえ、故障ディスクの1つのセクタ又は少数の
セクタの中のデータだけがアクセス不可能であるにすぎ
ず、こうしたデータだけがホストにとって失われるにす
ぎないだろう。
【0028】しかし、上記の状態において、即ち、その
ディスクアレイが低下モードで動作している時に、これ
らの少数のセクタ内のデータを損失することさえ防止す
ることが可能であることは有益だろう。そうしたデータ
の損失は、更に詳細に後述される「パリティ置換(parit
y shedding) 」方法と呼ばれることが可能な別の追加の
方法を使用して、本発明に従って回避されることが可能
である。
【0029】ディスクアレイが低下モードで作動させら
れている、即ち、上記で説明されたように、その他の非
故障データディスクからのパリティデータとユーザデー
タとを使用してそのデータが復元されなければならない
故障ディスクがあると仮定しよう。1つの非故障データ
ディスクの1つのセクタ(例えば、その中のディスクC
が故障したアレイのディスクAのセクタ1)の中に新デ
ータを書き込む前に、その故障ディスクの復元データ
(この復元データは、ディスクAのセクタ1内の旧デー
タと、ディスクB、Dのセクタ1内の正しいデータと、
ディスクEのセクタ1内の正しいパリティエントリとに
基づいている)が、そうしたパリティセクタ内に現在存
在するパリティエントリの代わりに、そのパリティセク
タ内に書き込まれる。例えば、図4の例に見てとれるよ
うに、データ「1」、「2」、「4」がディスクA、
B、D内にあり、パリティ「10」がディスクE内にあ
り、従って、低下モードにおける動作時に、そうしたデ
ータとパリティエントリとに基づいて、(丸で囲まれ
た)データ「3」が故障ディスクCのセクタ1内に復元
されることが可能である。図4に示されるように、ディ
スクEの特定の識別領域21が、セクタ1内のエントリが
「パリティエントリ」であることを明示するエントリを
その識別領域内に有する。
【0030】前述の「パリティ置換」方法によってディ
スクAのセクタ1の中に新データ「3」を書き込むこと
が求められる場合には、そうした書込み操作を行う前
に、故障ディスクCのセクタ1内の復元データ「3」
が、図5に示されるように,旧パリティエントリ「10」
に取って代わるためにディスクEのパリティセクタ1の
中に書き込まれる。これと同時に、更に図5に示される
ように、その復元データがディスクEのパリティセクタ
の中に既に書き込まれ終わった故障ディスクの識別が、
パリティディスクEの特定の識別領域21の中に入れら
れ、その識別されたディスクの復元データによって旧パ
リティエントリが置き換えられ終わったということを示
す。
【0031】図5に示されるように、その後で、新デー
タ「3」がディスクAのセクタ1の中に書き込まれる時
に、そのIOP が故障ディスクCのセクタ1内の復元デー
タ(このデータは故障ディスク自体からは読み出し不可
能である)を読み取ることを望む場合には、そのI/0
制御プロセッサは、当初のパリティエントリの代わりに
そうした復元データがディスクEのセクタ1内に書き込
まれ終わったかどうかを確認するために、ディスクEの
パリティセクタ1内のエントリと、パリティディスクE
の識別領域21内の情報とを検査する。復元データがディ
スクEのパリティセクタ1内に書き込まれ終わっている
場合には、そのI/0制御プロセッサは、ディスクEの
パリティセクタ1から直接的にデータを確実にアクセス
することが可能であり、そのデータが故障ディスクCの
セクタ1の正しく復元されたデータであるということを
確認することが可能である。
【0032】さて、本発明の不揮発性RAM と、本発明の
「バックグラウンド/検証」方法と、バージョン番号
と、本発明の「パリティ置換」方法とを使用することが
可能な書込み/読取り操作の特定の実施例が、図7〜11
の流れ図を参照して説明される。IOP による使用のため
の具体的なプログラムが、これらの図に示される説明内
容を使用して当業者によって、これらの流れ図から容易
に作り出されることが可能である。そうした具体的なプ
ログラムは、いずれの個々のIOP プロセッサ又はホスト
コンピュータにおける使用のために案出されることが可
能であり、その作成は、図7〜図11に示される説明内容
の知識から当業の技術の範囲内で適切に行われるだろ
う。
【0033】図7に見てとれるように、例えば、1つの
アレイの1つのセクタの中への書込み操作は、3つの異
なった条件の下で、即ち、第1に、ディスク故障と電源
障害とが起こっておらず且つ全てのディスクとIOP プロ
セッサとが正しく作動している正常条件下で、第2に、
1つのアレイに単一の故障ディスクがあり、書込み操作
が非故障ディスクに対して向けられ、且つその故障ディ
スク内のデータがその非故障ディスク内のユーザデータ
とパリティエントリとを使用して復元されることが可能
である低下モード条件下で、第3に、書込みがその中に
行われなければならないディスクが非作動ディスク又は
故障ディスクである低下モード条件下で、行われること
が可能である。
【0034】図7に見てとれるように、正常書込みモー
ドにおいては、IOP は、並行書込み操作(即ち、同一セ
クタに対して現在行われているが未だ完了されていない
他の書込み操作)が完了されるのを待つ。そうした現在
の書込み操作が完了すると直ぐに、そのIOP は、新デー
タがその中に書き込まれるべきセクタの内に現存するデ
ータ(「旧データ」)を読み取り、NV-RAM内の場合に関
して上述されたように、必要な情報、即ち、書込み操作
がそこで行われるべきアレイと開始セクタとセクタ合計
数をそうした書込み操作のために識別する情報を適切に
記録する。
【0035】それに続いて、そのIOP は、書込みがその
中に行われるべきディスクに関連した適切なバージョン
番号を変更する。例えば、バージョン番号は2値番号
(例えば「0」状態と「1」状態)であってよく、書込
みが行われなければならないその都度に、その該当バー
ジョン番号がその現在状態から他の状態に切り換えられ
る。
【0036】それに続いて、各セクタ毎に、新データの
書込みが必要なセクタの中に新データが書き込まれ、部
分積を生じさせるためにその旧データと新データとがXO
R される。旧パリティが読み出され、その後で、前記部
分積とXOR される。そのパリティセクタ内のバージョン
番号が、書き込まれたセクタ旧バージョン番号と整合す
るかどうかを判定するために、そのバージョン番号が検
査される。整合が生じる場合には、新しいバージョン番
号がそのパリティセクタのバージョン番号領域内に格納
される。その後で、新パリティエントリがそのパリティ
セクタ内に書き込まれ、その旧データに関するNV-RAM内
の情報が削除される。整合が生じない時には、ユーザセ
クタからパリティが構成され、その新たに構成されたパ
リティがパリティセクタ内に書き込まれ、不揮発性RAM
が消去される。
【0037】低下モードにおける非故障ディスクに対す
る書込み操作のために、故障ディスクのセクタ内のデー
タが、パリティエントリセクタと非故障セクタ内データ
とから復元される。それに続いて、その復元データがパ
リティセクタ内に書き込まれ、そのパリティセクタ内の
パリティエントリと置き換えられ(「パリティ置換」操
作)、そうしたデータが「置換データ」のマークを付け
られる。新データが、その非故障ディスクの書き込み対
象のセクタの中に書き込まれる。
【0038】低下モードにおける故障ディスクへの書込
みでは、書き込まれるべきデータは、そのパリティセク
タのパリティエントリと置き換えられるべきデータとし
て識別され、そのデータはパリティセクタの中に直接的
に書き込まれ、その中のパリティエントリに取って代わ
る(即ち、直接のパリティ置換操作である)。
【0039】図8に示されるように、データが読み取ら
れる時には、正常な非低下モードにおいては非故障ディ
スクからデータが読み取られ、故障ディスクが存在する
低下モードでは、データがその故障ディスクから読み取
られなければならない。正常モードでは、IOP が、該当
セクタから直接的にデータを読み取り、そうしたデータ
をホストコンピュータに転送する。
【0040】低下モードにおける故障ディスクからの読
み取りでは、そのストライプのパリティセクタ内のエン
トリが読み取られ、そのパリティセクタ内のエントリが
パリティエントリであるか「置換」データ(即ち、その
パリティエントリと置き換えられたデータ)であるかど
うかを知るために検査が行われる。そのデータが「置
換」データである場合には、そのデータは、パリティセ
クタから直接読み取られ、ホストに転送される。そのデ
ータが「置換」データでない場合には、その他の非故障
ディスク内のデータが読み取られる。そのパリティエン
トリがそうした他のデータとXOR され、バージョン番号
検査(即ち、パリティディスク内のバージョン番号が非
故障ディスク内のバージョン番号に整合するか?)が行
われる。バージョン番号が整合する場合には、そのデー
タが、XOR されたパリティデータと他のデータとから復
元され、ホストに転送されることが可能である。バージ
ョン番号が整合しない場合には、「「ハード」エラーモ
ードが発生した」という表示がホストに与えられ、該当
データは、ホストへの転送のために有効に読み取られる
ことが不可能である。
【0041】図9は、そのシステムによって以前にアク
セスされたことがない新たなディスクアレイがIOP によ
ってアクセスされなければならない、又は、1つのアレ
イが一時的にアクセス不可能であった後にアクセス可能
になる(アレイを「オープンする」と呼ばれることが多
い)時に行われる操作を示している。前述のように、IO
P は、1つのアレイに関するストライプとセクタとの識
別情報を記録するために不揮発性RAM を使用する。各々
のアレイは、そのIOP 内のNV-RAM中にエントリを有する
ことが可能であり、1つのアレイをオープンする時に
は、オープンされる特定のアレイに関するエントリがIO
P 内のNV-RAM中に既に存在するか否かが、最初に確認さ
れなければならない。
【0042】オープンされるアレイに関する有効NV-RAM
がIOP 内に現時点で存在しない場合には、バックグラウ
ンド/検証プロセス(図10参照)がIOP によって起動さ
れ、そのアレイがオープンされる。有効NV-RAMがIOP 内
で既に使用可能である場合には、特定のアレイに関する
有効NV-RAMが得られ、そのエントリに関する全ユーザデ
ータからのデータが読み取られる。読み取りが完了され
た時には、読み取りデータが、パリティエントリを形成
するために互いにXOR され、新たなバージョン番号がパ
リティエントリに与えられる。そのパリティエントリが
パリティセクタ内に書き込まれ、そのNV-RAMエントリが
削除される。このアレイに関する全てのNV-RAMエントリ
が削除されると直ぐに、このアレイがオープンされる。
【0043】しかし、そのアレイが低下モードにある
(セクタはディスク上で直接読み取られることが不可能
である)が故に、読み取りが完了されない場合には、そ
のアレイに関するパリティエントリが読み取られ、パリ
ティディスク内のバージョン番号がデータディスク内の
バージョン番号に整合するかどうかに関する確認が行わ
れる。整合しない場合には、そのパリティエントリが無
効化され、そのNV-RAMに対しては何も更に行われず、そ
のNV-RAMエントリが削除され、(その次のNV-RAMエント
リがあるならば)その次のNV-RAMエントリに関して、こ
のプロセスが反復される。バージョン番号が整合する場
合には、そのNV-RAMエントリが削除されるが、そのパリ
ティは無効化されない。
【0044】図9に示されるバックグラウンド/検証プ
ロセスが図10に図示されている。IOP は、1つのアレイ
の各ディスクの第1のセクタに行き、その全ユーザデー
タセクタからデータを読み取る。読み取りが完了される
ことが可能である場合には、データが互いにXOR され、
パリティエントリを形成する。適切なバージョン番号が
作り出され、パリティセクタの適正な領域の中に書き込
まれる。パリティエントリは、対応するパリティセクタ
の中に入れられる。検証される対応セクタがそのアレイ
の対応セクタの最終グループである場合には、その検証
プロセスが行われる。最終グループでない場合には、IO
P は対応セクタのその次のグループに行き、そのアレイ
に対する検証プロセスが完了されるまで同じ操作を行
う。
【0045】そのアレイが低下モードで動作しているが
故に、対応セクタの各グループを処理する際に、ユーザ
データセクタ内のデータの読み取りが完了されることが
不可能である場合には、対応するパリティが読み取ら
れ、それらのセクタのバージョン番号が整合するどうか
を判定するために検査が行われる。整合しない場合に
は、そのパリティが無効化され、IOP がその次のセクタ
グループに行くか、又は、そのグループが最終セクタグ
ループである時には、そのアレイに対する操作が完了さ
せられる。バージョン番号の整合がある場合には、その
パリティが無効化されず、その次のセクタグループが処
理され、又は、処理されるセクタグループがアレイの最
終セクタグループである場合には、バックグラウンド/
検証プロセスが完了される。
【0046】図11は、故障ディスク内のデータを復元又
は再構成するための操作を示す。IOP は、その中で故障
ディスクのセクタが復元されなければならない第1のセ
クタグループに行く。そのセクタグループ内のパリティ
エントリが読み取られ、そのエントリが真のエントリで
あるか、又は、パリティエントリに取って代わるために
書き込まれた故障ディスクの「置換データ」である(即
ち、「パリティ置換」操作が既に行われている)かに関
する確認が行われる。パリティ置換が既に行われている
場合には、読み取られるパリティエントリは必要とされ
る復元データであり、そうしたデータが、その故障ディ
スクのセクタの中に書き込まれる。故障ディスクの全セ
クタがそのように再構成され終わると、その再構成プロ
セスが完了させられる。全セクタが再構成され終わって
いない場合には、IOP がその次のセクタグループに行
き、その故障ディスクのデータ再構成が必要なセクタ内
のデータを再構成するためにこのプロセスを繰り返す。
このプロセスは、その故障ディスクの全セクタが再構成
され終わるまで反復される。
【0047】しかし、そのパリティエントリが、「置換
データ」を含むものとしては示されず、むしろ真のパリ
ティエントリである場合には、そのセクタグループの全
ての非故障ディスク内のデータが読み取られ、パリティ
エントリとXOR される。データディスク内のバージョン
番号とパリティディスク内のバージョン番号とが整合す
る場合には、復元されつつある故障ディスクのセクタに
関するパリティディスク内のバージョン番号が、その故
障ディスク内に書き込まれ、その復元データがその故障
ディスクのセクタ内に書き込まれる。これらのバージョ
ン番号が整合しない場合には、そのセクタが無効セクタ
と識別され、そのセクタが無効であるということを表示
する情報がホストに送られ、そのセクタ内のデータの再
構成は不可能である。
【0048】こうして、上記の説明は、上記で言及され
たタイプの電源障害に係わらずにシステムの動作続行を
可能にするための、不揮発性RAM の使用と、バックグラ
ウンド/検証操作の使用と、パリティ置換方法の使用と
に関して、本発明の方法を開示する。そうした方法は、
添付クレームによってのみ範囲が限定されるであって、
上記の実施例には限定されない。
【図面の簡単な説明】
【図1】第1のデータ/パリティ状況の場合におけるデ
ィスクモジュール群内のストライプの各セクタの略図で
ある。
【図2】第2のデータ/パリティ状況の場合におけるデ
ィスクモジュール群内のストライプの各セクタの略図で
ある。
【図3】第3のデータ/パリティ状況の場合におけるデ
ィスクモジュール群内のストライプの各セクタを示す略
図である。
【図4】第4のデータ/パリティ状況の場合におけるデ
ィスクモジュール群内のストライプの各セクタを示す略
図である。
【図5】第5のデータ/パリティ状況の場合におけるデ
ィスクモジュール群内のストライプの各セクタを示す略
図である。
【図6】本発明のディスクモジュールシステムのブロッ
ク図である。
【図7】様々なデータ書込み状況を示す流れ図である。
【図8】様々なデータ読取り状況を示す流れ図である。
【図9】ディスクモジュールアレイのオープンに関する
流れ図である。
【図10】バックグラウンド/検証操作に関する流れ図
である。
【図11】故障ディスク内のデータの復元に関する流れ
図である。
【符号の説明】
1、2、3、....N セクタ A、B、C、D、E ディスクユニット 10 ディスクアレイ 11 ディスク記憶セクタ 12 ストライプ 21 識別領域 25 ディスクアレイI/0制御プロセッサ 26 ホストコンピュータ 27 ディスクモジュール 28 不揮発性ランダムアクセス記憶装置
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成5年4月6日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 選択された数の前記ディスクに属する記
    憶セクタがユーザデータを収容し、前記ディスクの選択
    された1つに属する記憶セクタが、そのパリティエント
    リに対応する前記記憶セクタ内のユーザデータエントリ
    と整合する冗長パリティエントリを収容し、前記ディス
    ク内の対応するユーザデータセクタとパリティセクタと
    が識別可能なセクタグループを形成し、更に、前記ユー
    ザデータディスクの1つが作動不能であって且つその作
    動不能ユーザデータディスク内のユーザデータがその他
    のユーザデータディスク内のユーザデータとパリティデ
    ィスク内のパリティエントリとから復元される低下モー
    ドにおいて前記複数のデータ記憶ディスクが作動させら
    れている時に使用される、複数のデータ記憶ディスクに
    対するアクセスを制御するためのプロセッサを有するシ
    ステム内でデータを取り扱う方法であって、 1つの作動ディスクの選択されたセクタの中に新たなデ
    ータを書き込む前に、前記作動不能ディスクの対応セク
    タに関する復元ユーザデータを、前記パリティディスク
    内のパリティセクタを前記復元ユーザデータに置き換え
    るために、前記パリティディスクの該当パリティセクタ
    の中に書き込む段階と、 その復元ユーザデータが前記パリティディスクの中に既
    に書き込まれた動作不能ディスクを識別する情報を、前
    記パリティディスクの特定の識別領域に書き込む段階
    と、 前記新たなデータを前記作動ディスクの前記選択された
    セクタの中に書き込む段階とを含む前記方法。
  2. 【請求項2】 前記作動不能ディスクのセクタからデー
    タが読み取り不可能である場合に、前記パリティディス
    クの該当パリティセクタ内のエントリが前記作動不能デ
    ィスクの復元データであるかどうかを確認するために、
    前記パリティディスクの前記特定の識別領域内の情報を
    読み取る段階と、 前記特定の識別領域内の情報が、前記作動不能ディスク
    の該当データセクタに関する復元ユーザデータとして対
    応パリティセクタ内のエントリを明示する場合に、前記
    パリティディスクの該当パリティセクタ内のデータを読
    み取る段階とを更に含む請求項1に記載の方法。
JP07101393A 1992-03-06 1993-03-05 高可用度ディスク配列に関する改善 Expired - Fee Related JP3226370B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/847,639 US5305326A (en) 1992-03-06 1992-03-06 High availability disk arrays
US847639 1992-03-06

Publications (2)

Publication Number Publication Date
JPH0612192A true JPH0612192A (ja) 1994-01-21
JP3226370B2 JP3226370B2 (ja) 2001-11-05

Family

ID=25301125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07101393A Expired - Fee Related JP3226370B2 (ja) 1992-03-06 1993-03-05 高可用度ディスク配列に関する改善

Country Status (7)

Country Link
US (1) US5305326A (ja)
EP (1) EP0559487B1 (ja)
JP (1) JP3226370B2 (ja)
AU (1) AU653671B2 (ja)
CA (1) CA2089834A1 (ja)
DE (1) DE69323225T2 (ja)
IL (1) IL104743A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018624A (ja) * 2010-07-09 2012-01-26 Nec Corp データ記録再生装置、データ記録方法、及び、データ記録プログラム

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382929B2 (en) * 1989-05-22 2008-06-03 Pixel Instruments Corporation Spatial scan replication circuit
AU653670B2 (en) * 1992-03-10 1994-10-06 Data General Corporation Improvements for high availability disk arrays
JPH05341918A (ja) * 1992-05-12 1993-12-24 Internatl Business Mach Corp <Ibm> 二重化デイスク記憶装置システムを構成するための接続装置
JP2888401B2 (ja) * 1992-08-03 1999-05-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 冗長ディスクドライブアレイに対する同期方法
US5473753A (en) * 1992-10-30 1995-12-05 Intel Corporation Method of managing defects in flash disk memories
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
WO1994029796A1 (en) * 1993-06-03 1994-12-22 Network Appliance Corporation A method for allocating files in a file system integrated with a raid disk sub-system
EP1003103B1 (en) * 1993-06-03 2008-10-01 Network Appliance, Inc. Write anywhere file-system layout method and apparatus
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
US6138126A (en) * 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
EP0701715A4 (en) * 1993-06-04 1999-11-17 Network Appliance Corp METHOD FOR PROVIDING PARITY IN A RAID SUBSYSTEM USING REMANENT MEMORY
US5511227A (en) * 1993-09-30 1996-04-23 Dell Usa, L.P. Method for configuring a composite drive for a disk drive array controller
US5987622A (en) * 1993-12-10 1999-11-16 Tm Patents, Lp Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem
US5396620A (en) * 1993-12-21 1995-03-07 Storage Technology Corporation Method for writing specific values last into data storage groups containing redundancy
US5911150A (en) * 1994-01-25 1999-06-08 Data General Corporation Data storage tape back-up for data processing systems using a single driver interface unit
US5463643A (en) * 1994-03-07 1995-10-31 Dell Usa, L.P. Redundant memory channel array configuration with data striping and error correction capabilities
JP3661205B2 (ja) * 1994-09-09 2005-06-15 株式会社日立製作所 ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法
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
WO1997011426A1 (en) 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
US5961652A (en) * 1995-10-13 1999-10-05 Compaq Computer Corporation Read checking for drive rebuild
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
US6397357B1 (en) * 1996-10-08 2002-05-28 Dell Usa, L.P. Method of testing detection and correction capabilities of ECC memory controller
US5889934A (en) * 1997-02-24 1999-03-30 Data General Corporation Data validation system for a group of data storage disks
JP3595099B2 (ja) * 1997-03-17 2004-12-02 富士通株式会社 デバイスアレイ・システム
US6092215A (en) * 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
US6151659A (en) * 1997-12-22 2000-11-21 Emc Corporation Distributed raid storage system
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
US6327672B1 (en) * 1998-12-31 2001-12-04 Lsi Logic Corporation Multiple drive failure tolerant raid system
US6532548B1 (en) 1999-09-21 2003-03-11 Storage Technology Corporation System and method for handling temporary errors on a redundant array of independent tapes (RAIT)
US7000237B1 (en) * 1999-12-21 2006-02-14 Intel Corporation Method for communicating occurrence of events in a storage medium
US6584544B1 (en) * 2000-07-12 2003-06-24 Emc Corporation Method and apparatus for preparing a disk for use in a disk array
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6865650B1 (en) * 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
US6654912B1 (en) * 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
US6961868B2 (en) 2001-02-16 2005-11-01 Swsoft Holdings, Ltd. Fault tolerant storage system and method using a network of servers
US7418620B1 (en) 2001-02-16 2008-08-26 Swsoft Holdings, Ltd. Fault tolerant distributed storage method and controller using (N,K) algorithms
US6668264B1 (en) 2001-04-03 2003-12-23 Network Appliance, Inc. Resynchronization of a target volume with a source volume
US7209973B2 (en) 2001-04-09 2007-04-24 Swsoft Holdings, Ltd. Distributed network data storage system and method
US6871263B2 (en) * 2001-08-28 2005-03-22 Sedna Patent Services, Llc Method and apparatus for striping data onto a plurality of disk drives
US7346831B1 (en) 2001-11-13 2008-03-18 Network Appliance, Inc. Parity assignment technique for parity declustering in a parity array of a storage system
US6851082B1 (en) 2001-11-13 2005-02-01 Network Appliance, Inc. Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
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
US7640484B2 (en) * 2001-12-28 2009-12-29 Netapp, Inc. Triple parity technique for enabling efficient recovery from triple failures in a storage array
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US7073115B2 (en) * 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US8402346B2 (en) * 2001-12-28 2013-03-19 Netapp, Inc. N-way parity technique for enabling recovery from up to N storage device failures
US7080278B1 (en) 2002-03-08 2006-07-18 Network Appliance, Inc. Technique for correcting multiple storage device failures in a storage array
US7437727B2 (en) * 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance in a raid system
US7539991B2 (en) 2002-03-21 2009-05-26 Netapp, Inc. Method and apparatus for decomposing I/O tasks in a raid system
US7254813B2 (en) * 2002-03-21 2007-08-07 Network Appliance, Inc. Method and apparatus for resource allocation in a raid system
US7200715B2 (en) 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
US6976146B1 (en) 2002-05-21 2005-12-13 Network Appliance, Inc. System and method for emulating block appended checksums on storage devices by sector stealing
US7185144B2 (en) * 2003-11-24 2007-02-27 Network Appliance, Inc. Semi-static distribution technique
US7328364B1 (en) 2003-03-21 2008-02-05 Network Appliance, Inc. Technique for coherent suspension of I/O operations in a RAID subsystem
US7143235B1 (en) 2003-03-21 2006-11-28 Network Appliance, Inc. Proposed configuration management behaviors in a raid subsystem
US7664913B2 (en) * 2003-03-21 2010-02-16 Netapp, Inc. Query-based spares management technique
US7424637B1 (en) 2003-03-21 2008-09-09 Networks Appliance, Inc. Technique for managing addition of disks to a volume of a storage system
US7111147B1 (en) * 2003-03-21 2006-09-19 Network Appliance, Inc. Location-independent RAID group virtual block management
US7275179B1 (en) 2003-04-24 2007-09-25 Network Appliance, Inc. System and method for reducing unrecoverable media errors in a disk subsystem
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7428691B2 (en) * 2003-11-12 2008-09-23 Norman Ken Ouchi Data recovery from multiple failed data blocks and storage units
US7366837B2 (en) * 2003-11-24 2008-04-29 Network Appliance, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
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
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
US8108429B2 (en) * 2004-05-07 2012-01-31 Quest Software, Inc. System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US7565661B2 (en) 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
US7680834B1 (en) 2004-06-08 2010-03-16 Bakbone Software, Inc. Method and system for no downtime resychronization for real-time, continuous data protection
US7681105B1 (en) * 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
US7681104B1 (en) 2004-08-09 2010-03-16 Bakbone Software, Inc. Method for erasure coding data across a plurality of data stores in a network
US7979404B2 (en) 2004-09-17 2011-07-12 Quest Software, Inc. Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data
US20060075281A1 (en) * 2004-09-27 2006-04-06 Kimmel Jeffrey S Use of application-level context information to detect corrupted data in a storage system
US7904913B2 (en) * 2004-11-02 2011-03-08 Bakbone Software, Inc. Management interface for a system that provides automated, real-time, continuous data protection
US7398460B1 (en) 2005-01-31 2008-07-08 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US7779294B2 (en) * 2005-04-15 2010-08-17 Intel Corporation Power-safe disk storage apparatus, systems, and methods
US7689602B1 (en) 2005-07-20 2010-03-30 Bakbone Software, Inc. Method of creating hierarchical indices for a distributed object system
US7788521B1 (en) 2005-07-20 2010-08-31 Bakbone Software, Inc. Method and system for virtual on-demand recovery for real-time, continuous data protection
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
US8131723B2 (en) 2007-03-30 2012-03-06 Quest Software, Inc. Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity
US8364648B1 (en) 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
US8209587B1 (en) 2007-04-12 2012-06-26 Netapp, Inc. System and method for eliminating zeroing of disk drives in RAID arrays
US8898536B2 (en) * 2007-04-27 2014-11-25 Netapp, Inc. Multi-core engine for detecting bit errors
US7840837B2 (en) 2007-04-27 2010-11-23 Netapp, Inc. System and method for protecting memory during system initialization
US7836331B1 (en) 2007-05-15 2010-11-16 Netapp, Inc. System and method for protecting the contents of memory during error conditions
US7975102B1 (en) 2007-08-06 2011-07-05 Netapp, Inc. Technique to avoid cascaded hot spotting
US9158579B1 (en) 2008-11-10 2015-10-13 Netapp, Inc. System having operation queues corresponding to operation execution time
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
CN102069259B (zh) * 2009-11-23 2012-08-22 常州铭赛机器人科技有限公司 自动焊锡机器人的烙铁头机构
US8572441B2 (en) * 2011-08-05 2013-10-29 Oracle International Corporation Maximizing encodings of version control bits for memory corruption detection
US8839028B1 (en) * 2011-12-23 2014-09-16 Emc Corporation Managing data availability in storage systems
US20130198585A1 (en) * 2012-02-01 2013-08-01 Xyratex Technology Limited Method of, and apparatus for, improved data integrity
US9043559B2 (en) 2012-10-23 2015-05-26 Oracle International Corporation Block memory engine with memory corruption detection
US9672298B2 (en) 2014-05-01 2017-06-06 Oracle International Corporation Precise excecution of versioned store instructions
US9563509B2 (en) 2014-07-15 2017-02-07 Nimble Storage, Inc. Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system
US9195593B1 (en) 2014-09-27 2015-11-24 Oracle International Corporation Hardware assisted object memory migration

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4092732A (en) * 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5101492A (en) * 1989-11-03 1992-03-31 Compaq Computer Corporation Data redundancy and recovery protection
US5072378A (en) * 1989-12-18 1991-12-10 Storage Technology Corporation Direct access storage device with independently stored parity
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018624A (ja) * 2010-07-09 2012-01-26 Nec Corp データ記録再生装置、データ記録方法、及び、データ記録プログラム

Also Published As

Publication number Publication date
AU3303293A (en) 1993-09-09
EP0559487A2 (en) 1993-09-08
AU653671B2 (en) 1994-10-06
DE69323225T2 (de) 1999-11-25
DE69323225D1 (de) 1999-03-11
IL104743A (en) 1995-08-31
EP0559487B1 (en) 1999-01-27
JP3226370B2 (ja) 2001-11-05
CA2089834A1 (en) 1993-09-07
US5305326A (en) 1994-04-19
IL104743A0 (en) 1993-06-10
EP0559487A3 (en) 1995-03-29

Similar Documents

Publication Publication Date Title
JP3226370B2 (ja) 高可用度ディスク配列に関する改善
CA2089836C (en) High availability disk arrays
US6990611B2 (en) Recovering data from arrays of storage devices after certain failures
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
JP3283530B2 (ja) ディスク・アレイにおいてパリティ保全性を維持するための妥当性検査システム
US6480970B1 (en) Method of verifying data consistency between local and remote mirrored data storage systems
US5790773A (en) Method and apparatus for generating snapshot copies for data backup in a raid subsystem
US6195761B1 (en) Method and apparatus for identifying and repairing mismatched data
US6067635A (en) Preservation of data integrity in a raid storage device
JP3184171B2 (ja) ディスクアレイ装置、そのエラー制御方法、ならびにその制御プログラムを記録した記録媒体
US6233696B1 (en) Data verification and repair in redundant storage systems
US7069382B2 (en) Method of RAID 5 write hole prevention
EP0936534A2 (en) Recording device
EP0768605A2 (en) Reconstructing data blocks in a RAID array data storage system having storage device metadata and RAIDset metada
US5933592A (en) Promoting device level error to raidset level error to restore redundacy in a raid array data storage system
US7302603B2 (en) Host-initiated data reconstruction for improved RAID read operations
EP1019830A1 (en) Expansion of the number of drives in a raid set while maintaining integrity of migrated data
US6389511B1 (en) On-line data verification and repair in redundant storage system
GB2343265A (en) Data storage array rebuild
EP0559488B1 (en) Handling data in a system having a processor for controlling access to a plurality of data storage disks
JP3288724B2 (ja) ディスクアレイ内の不完全な書込を追跡する方法、およびこのような方法を行なうディスク記憶システム
JP2002373059A (ja) ディスクアレイのエラー回復方法、ディスクアレイ制御装置及びディスクアレイ装置
US20050081088A1 (en) Array controller for disk array, and method for rebuilding disk array
JP2003345529A (ja) 冗長データを持つ論理ディスクドライブの一貫性回復方法、そのためのプログラム及び論理ディスクドライブを制御するコントローラ

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080831

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees