JP3164499B2 - ディスクアレイにおけるパリティデータの無矛盾性保持方法 - Google Patents

ディスクアレイにおけるパリティデータの無矛盾性保持方法

Info

Publication number
JP3164499B2
JP3164499B2 JP33028795A JP33028795A JP3164499B2 JP 3164499 B2 JP3164499 B2 JP 3164499B2 JP 33028795 A JP33028795 A JP 33028795A JP 33028795 A JP33028795 A JP 33028795A JP 3164499 B2 JP3164499 B2 JP 3164499B2
Authority
JP
Japan
Prior art keywords
parity
data
write
storage area
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP33028795A
Other languages
English (en)
Other versions
JPH08263227A (ja
Inventor
ディー.ビンフォード チャールズ
エイ.ゲートナー マーク
ピー.デニー スティーブン
Original Assignee
シンバイオス・インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シンバイオス・インコーポレイテッド filed Critical シンバイオス・インコーポレイテッド
Publication of JPH08263227A publication Critical patent/JPH08263227A/ja
Application granted granted Critical
Publication of JP3164499B2 publication Critical patent/JP3164499B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • 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/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/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Detection And Correction Of Errors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピューターシステム
に供するディスクアレイ格納デバイスに関し、特にディ
スクアレイ書き込みオペレーションを防護する方法に関
する。
【0002】
【従来の技術】現在パーソナルコンピュータおよびワー
クステーションに使用されている5.25インチないし
3.5インチデスクドライブのような小さな小型の低価
格ディスクドライブを複数個並列に接続したものが、コ
ンピューターシステム内に設けた情報格納用の単一の不
揮発性大型ディスクに代わる低価格な代用物として利用
されている。
【0003】1987年12月にカリフォルニア大学か
ら発行されたデイビッド・エイ・パターソン、ガース・
ギブソンおよびランディー・エイチ・カッツ共著の「廉
価なディスクの冗長型アレイの一例」と題する記事(N
o.UCB/CSD 87/391)にはいくつかのラ
イドディスクアレイの設計例が掲載されている。ここに
引用する上記記事は、ディスクアレイおよびそれらの性
能、信頼性、電力消費量およびスケーラビリティ(scal
ability, 縮小拡張性)の改良について、単一の大型磁
気ディスクと比較して論じている。この記事にはライド
レベル(RAID levels)と呼ばれる五つのディスクアレ
イ構成が記載されている。その最も簡単なアレイである
ライドレベル1のシステムは、データ格納のためのN個
のディスクと、これらのデータディスクに書き込まれた
情報のコピーを格納するための別のN個の「ミラー」デ
ィスクとを含んでいる。残りのライドレベルであるライ
ドレベル2、3、4、5のシステムは、いくつかのデー
タディスクにまたがって格納するようにデータを分割す
る。エラー検査およびパリティ情報を格納するため、一
つ以上の付加的ディスクが使われる。
【0004】ライドレベル2および3のディスクアレイ
は並列アクセスアレイとして知られている。並列アクセ
スアレイは、すべてのメンバーディスク(データディス
クおよびパリティディスク)へのアクセスを行うことが
必要であり、特にI/O要求があったときにはこれを実
行するために同時的に書き込みを行うことが必要であ
る。ライドレベル4および5のディスクアレイは独立ア
クセスアレイとして知られている。独立アクセスアレイ
は単一のI/O要求の実行に際して同時にすべてのメン
バーディスクにアクセスする必要がない。メンバーディ
スクへのオペレーションは注意深く順序づけられ、メン
バードライブへの順待ち行列中におかれる。本発明はラ
イドレベル4および5のシステムのオペレーションの改
良を目指している。
【0005】ライドレベル4のシステムはN+1個のデ
ィスクからなるグループを1つ以上含むが、この場合、
N個のディスクはデータの格納に使用され、もう一つの
ディスクはパリティ情報の格納に利用される。保存すべ
きデータは、複数のディスクにまたがって格納するた
め、1つ以上のデータブロックからなるより大きな部分
に分割される。このデータに対応するパリティ情報は、
N個のデータドライブにまたがって格納されるデータの
対応部分のビット毎の排他的OR演算を行うことにより
計算することができ、専用のパリティディスクに書き込
まれる。データのこれら対応部分とそれに関わるパリテ
ィとを合わせて冗長グループと呼ぶ。パリティディスク
はディスクが故障したときに情報を再構築するのに使用
される。以下にさらに詳述するように、書き込みには依
然として二つのディスク、すなわちN個のデータディス
クの1つおよびパリティディスク、にアクセスすること
が必要である。読み取りオペレーションは、読み取るべ
きデータが各ディスク上に格納されているブロック長を
超えない限り、通常はN個のデータディスクのうちの一
ディスクのみにアクセスすればよい。
【0006】ライドレベル5はライドレベル4と類似し
ているが、データに加えてパリティ情報が各グループ内
のN+1個のディスクにまたがって分配される点が異な
る。アレイ内のN+1個のディスクの各々がいくつかの
データ格納用ブロックといくつかのパリティ情報格納用
ブロックとを含む。パリティ情報がどこに格納されてい
るかはユーザーが与えるアルゴリズムによって制御され
る。ライドレベル4システムと同様に、ライドレベル5
の書き込みには少なくとも二つのディスクへのアクセス
が必要である。しかし、一グループへの書き込みであれ
ば、ライドレベル4システムにおけるような専用パリテ
ィディスクへのアクセスをもはや必要としない。この特
徴は同時的書き込みオペレーションを行うのに好都合で
ある。
【0007】ドライブAないしドライブEと示す5個の
データおよびパリティディスクドライブを含むライドレ
ベル5のシステムが図1に示してある。アレイコントロ
ーラ100がホストシステム200とこれらアレイディ
スクドライブとの間のデータ転送を組織化する。このコ
ントローラはまた、パリティ情報を計算し、検査する。
ブロック101ないし105はデータおよびパリティが
5個のアレイドライブに格納される様子を示す。データ
ブロックはブロック0ないしブロック15と示されてい
る。パリティブロックはパリティ0ないしパリティ3と
示されている。これらのパリティとデータブロックとの
間の関係は以下の通りである。
【0008】 パリティ0=(ブロック0)XOR(ブ
ロック1)XOR(ブロック2)XOR(ブロック3) パリティ1=(ブロック4)XOR(ブロック5)XO
R(ブロック6)XOR(ブロック7) パリティ2=(ブロック8)XOR(ブロック9)XO
R(ブロック10)XOR(ブロック11) パリティ3=(ブロック12)XOR(ブロック13)
XOR(ブロック14)XOR(ブロック15) 上述したように、パリティデータはN個のデータドライ
ブにまたがって格納されたデータの対応部分についてビ
ット毎の排他的OR演算(bit-wise exclusive-OR)
実行することにより計算することができる。しかしなが
ら、各パリティビットは単にデータドライブからとった
対応データビットすべての排他的OR演算の結果である
から、新規パリティは次の方程式を使って旧データ、旧
パリティ、および新規データから容易に決定できる: 新規パリティ=(旧データ XOR 新規データ)XOR 旧パリティ この読み取り−修正−書き込み(read-modify-write)
方法は、書き込みオペレーションに際して更新すべきデ
ータドライブとパリティドライブのみにアクセスすれば
よい点で有利である。ただし、パリティ情報を更新する
ためにはデータドライブにまたがって格納されているデ
ータの対応部分のビット毎の排他的ORオペレーション
を行うべく当該アレイ中のすべてのドライブの読み取り
すなわちアクセスをしなければならない。読み取り−修
正−書き込みオペレーションの不利点は、通常のライド
レベル4あるいは5の書き込みオペレーションが最小限
二つのディスクの読取りとそれに続く二つのディスク書
き込みが必要なことである。
【0009】ドライブの利用効率は、パリティの読み取
り、発生および書き込みオペレーションからデータの読
み取りおよび書き込みオペレーションを分離するように
読み取り-修正-書き込みプロセッサを改修することによ
り改善することができる。このように改修した読み取り
-修正-書き込みオペレーションは、更新すべきデータお
よびパリティを収納するディスクドライブを同定し、適
切な読み取りおよび書き込み要求を、同定されたデータ
およびパリティドライブを求めるI/O順待ち行列中に
配置する。このようにしてその実行が、当該データドラ
イブからの旧データの読み取りに続いて当該パリティド
ライブを求めるI/O順待ち行列内に最良の状態に収容
されて行われるように、パリティオペレーション、すな
わち、パリティドライブからの旧パリティ情報の読み取
り、新規パリティ情報の発生、パリティドライブへの新
規パリティ情報の書き込み、のいくつかあるいはすべて
のスケジュールが立てられる。
【0010】前記の読み取り-修正-書き込み手順あるい
は改修した読み取り-修正-書き込み手順のどちらでも、
新規なデータおよびパリティの実際の書き込み転送は同
時に行われる必要はない。もしも新規データあるいは新
規パリティのいずれか一方がシステムの故障前に書き込
まれているが、他方がまだであるなら、冗長グループに
記録される事項はシステムの再起動後に矛盾(inconsis
tency)を生ずる。すなわちパリティ情報は当該冗長グ
ループ内に格納されているデータと合致しない。システ
ムの故障期間中に中断された書き込みオペレーションを
再試行しても当該冗長グループ内の矛盾は訂正されな
い。
【0011】すべての書き込み手順の完了前における停
電あるいはアレイの故障の発生に由来するデータの喪失
を防止するためには、ディスクアレイ書き込みオペレー
ションを防護するための方法および構造体が必要であ
る。
【0012】
【発明が解決しようとする課題】それゆえ、本発明の課
題は、書き込みI/Oオペレーションの中断後のディス
クアレイ内のパリティとデータとの間の無矛盾性(cons
istency)を維持するための新規かつ有用な方法を与え
ることである。
【0013】本発明の別の課題は、データおよびパリテ
ィの更新のための読み取り−修正−書き込みプロセッサ
を採用するライドレベル4あるいは5のディスクアレイ
のような独立のアクセスディスクアレイ内におけるパリ
ティとデータ間の無矛盾性を維持する方法を与えること
である。
【0014】本発明のさらに別の課題は、アレイ内のド
ライブの一つが故障したときの劣化モードで動作してい
るディスクアレイ内のパリティとデータ間の無矛盾製を
維持する新規かつ有用な方法を与えることである。
【0015】
【課題を解決するための手段】本発明によれば、一つ以
上のディスク書き込みI/Oオペレーションを中断させ
るシステムリセットあるいは停電に引き続き、独立アク
セスアレイサブシステム内の冗長グループ内に格納され
ているデータとパリティ間の無矛盾性を維持する方法が
与えられる。この方法は、ホストシステムからのリセッ
ト信号あるいは無停電電源からの電力低下警告信号の受
信に応答して、未完書き込みI/Oオペレーション(un
finished write I/O operation)を同定するため、実行
中のドライブの活動を調査するステップと、該未完書き
込みI/Oオペレーションと該未完書き込みI/Oオペ
レーションに関わる冗長グループとを同定するのに必要
な情報を不揮発性メモリ中に記録(logging)するステ
ップと、該システムメモリサブシステムを初期化する期
間中、該不揮発性メモリ内の記録事項を検査するステッ
プと、該記録中に同定される該未完書き込みI/Oオペ
レーションの各一つについて、該未完書き込みI/Oオ
ペレーションに関わる該冗長グループ内に格納されたデ
ータの対応部分のビット毎の排他的OR演算を行い、そ
の無矛盾パリティを計算するステップと、該一未完書き
込みI/Oオペレーションに関わる該冗長グループ内の
該パリティ格納領域に計算したパリティを書き込むステ
ップとを含む。
【0016】特に劣化モードで動作している、すなわち
故障したデスクドライブを含んだまま動作している、独
立アクセスディスクアレイに適用しうる本発明のもう一
つの実施例では、本方法は該未完の書き込みI/Oオペ
レーションが新規データおよびパリティをマップするデ
ータ格納領域およびパリティデータ格納領域を同定する
のに必要な情報と、これらのデータおよびパリティデー
タ格納領域内に格納されている何らかの形態の旧データ
およびパリティ情報とを記録する。システムのリセット
あるいは電力の回復に引き続き、不揮発性メモリ内に保
存されている旧データおよびパリティを、該一未完書き
込みI/Oオペレーションが新規データをマップするデ
ータ格納領域内に現に格納されているデータと結合する
ことにより、未完書き込みI/Oオペレーションに関わ
る各冗長グループの無矛盾パリティを決定する。
【0017】本発明に関する上記その他の課題、特徴お
よび利点を、添付の図面を参照しながら以下の実施例を
通して説明する。
【0018】
【実施例】
正規のアレイオペレーション 図2および図3はドライブAないしドライブEを含むラ
イドレベル5の書き込みの例を示す。この場合、新規デ
ータはドライブAに書き込まれ、パリティ情報はドライ
ブB上で更新される。読み取り-修正-書き込みオペレー
ションを補助するためにコントローラ100内に含まれ
る構造体は、転送バッファ120および排他的OR(X
OR)論理回路130を有する。本発明はシステムの再
起動あるいは電力の停止に続くディスクアレイ内のパリ
ティの無矛盾性を確保する方法に関する。コントローラ
の構成の詳細は本発明の理解には必要でないと考えられ
る。しかし、本発明を使用することができるディスクア
レイコントローラの一形態の構成および動作に関する詳
細が米国特許第5, 257, 391号に記載されてお
り、それをここに引用する。米国第5, 257, 391
号は、「コンフィギュレーションコントロール信号に基
づきバッファおよびドライブバスを選択するためのホス
トインターフェースおよびバススイッチを有するディス
クコントローラ」に関する特許である。
【0019】図には示してないコントローラプロセッサ
の指令に基づき、旧データおよび旧パリティ情報ははじ
め、図2に示す二つのドライブから読み取られる。これ
らの旧データおよびパリティは、それぞれ、ドライブA
およびドライブB内の目標領域から読み取られ、排他的
OR論理回路130へ送られる。論理回路130はこれ
らの受信したデータおよびパリティを結合して排他的O
R積(旧データXOR旧パリティ)を発生する。この積
を中間パリティと呼称する。この中間パリティはバッフ
ァ120内の第一領域120D内に格納される。ホスト
システム200から受信した新規データは、バッファ1
20内の第二領域120Aに同時的に保存される。
【0020】次に図3に示すように、新規のデータおよ
びパリティ情報がドライブドライブAおよびドライブB
に書き込まれる。この新規データは格納バッファ120
内の領域120AからドライブドライブAへ直接に書き
込まれる。新規パリティ情報を発生するため、これらの
新規データおよび中間パリティは排他的OR論理回路1
30に与えられる。この新規パリティである旧データX
OR旧パリティXOR新規データはドライブBに書き込
まれる。
【0021】本発明の一実施例では、このディスクアレ
イシステムは図4に示すようにさらに不揮発性メモリ1
40およびコントローラ100内の別の論理回路150
を含む。論理回路150はホストシステム200からの
リセット信号あるいは無停電電力源300からの低電力
信号に応答し、未完の書き込みI/Oオペレーションを
同定するために現在のドライブ活動を調査する。論理回
路150にしたがってコントローラは次いで不揮発性メ
モリ140中に未完書き込みI/Oオペレーションに関
する情報を記録する。メモリ140中に記録された各未
完書き込みI/Oオペレーションに対するこの情報は、
影響を受ける可能性のある当該アレイ内の冗長グループ
を特定するのに必要であり、ディスクドライブの同定番
号、ブロックアドレス、およびライドレベルを含むこと
ができる。
【0022】図5は冗長性和解プロセス、すなわちホス
トシステムの再起動に引き続きデータ冗長性を訂正する
プロセス、の例を示す。リセットあるいは停電後の電力
回復に続いてディスクアレイサブシステムが初期化され
る期間中、アレイコントローラは不揮発性メモリ内の記
録事項を検査する。もしも記録事項が存在すると、いか
なる未完書き込みオペレーションの再試行あるいは新規
の書込みオペレーションを開始するときでも、その前に
アレイ訂正プロセスが行われなければならない。故障し
たドライブがないときの冗長グループに対する和解オペ
レーションは、冗長グループ内のデータドライブにまた
がって格納されているデータ部分のビット毎の排他的O
R演算を行い、それらのデータの無矛盾パリティを計算
し、その結果を図5に示すアレイ内のパリティドライブ
Bに保存する。図5では、ドライブA、ドライブC,ド
ライブDおよびドライブEに保存されたデータが読み取
られ、XOR論理回路130により結合され、ドライブ
Bに保存される。
【0023】本冗長性訂正手順はパリティ情報が当該冗
長グループ内のデータと矛盾しないことを保証するが、
ホストのリセットあるいは停電時における書き込みオペ
レーションのステータスが何であるかによって、そのデ
ータは正確でない可能性がある。パリティ情報の再計算
を行った後にすべての未完書き込みオペレーションを反
復すれば、ホストシステム200により行われるオペレ
ーションがアレイドライブに保存されたデータを訂正す
る。
【0024】この代わりとして、アレイコントローラは
はじめ、冗長データ内のすべての矛盾を特定してからそ
れらを訂正することもできようが、システムの性能を向
上させる観点からは上述した訂正オペレーションを実行
する方が有利である。
【0025】劣化モードのアレイオペレーション 上述した和解プロセスは、もしもアレイ冗長グループ内
のあるディスクドライブが利用不可能であるときは変更
しなければならない。このようなアレイは、低減モード
(reduced mode)あるいは劣化モード(degraded mod
e)で動作している、という。劣化モードの動作では、
ある読み取りオペレーションが、正常動作しているディ
スクドライブ上のデータを要求すると、あたかもそのア
レイが無傷であり正規のモードで動作しているかのごと
くにそのデータが供給される。故障したドライブ上のデ
ータが要求されると、アレイ管理ソフトウェアは正常動
しているドライブメンバーから対応するブロックを読
み取って、それらの内容について排他的OR演算の結果
を計算することによりそのデータを再生しなければなら
ない。
【0026】劣化モードで動作しているアレイ内の書き
込みオペレーションは、読み取り-修正-書き込みオペレ
ーション期間中に更新されなければならないデータおよ
びパリティのロケーションの如何によって異なる。次の
三つの状況が起こりうる。
【0027】生存アレイドライブへのデータおよびパリ
ティのマップ----- 更新すべきデータブロックおよびパリティブロックがそ
れぞれ生存ドライブ上に存在する場合にデータが冗長グ
ループへ書き込まれるときは、あたかも当該アレイが無
傷であるかのように読み取り-修正-書き込みルーチンが
実行される。
【0028】故障したアレイドライブへのパリティマッ
プ----- 更新する必要のあるパリティブロックが故障ドライブメ
ンバー上にあるなら、新規パリティは計算されず、書き
込まれない。ホストから受信した新規データは生存デー
タドライブに書き込まれる。
【0029】故障アレイドライブマップへのデータマッ
プ‐‐‐‐‐ 故障したドライブメンバーにデータを書き込むべきとき
は、ホストから受信した新規データと正常動作するアレ
イドライブから得られる対応のデータブロック(パリテ
ィブロックを除く)との排他的OR演算の結果を計算す
ることにより、新規パリティが決定される。この新規パ
リティは、次いで旧パリティ上に上書きされる。ホスト
から受信した新規データはこれらのアレイドライブへは
書き込まれない。
【0030】生存するアレイドライブへデータおよびパ
リティがマップされる書き込みオペレーションに中断が
起きたときは上記パリティ和解プロセスは、中断された
書き込み記録情報と共に何らかの形態の原冗長データが
不揮発性メモリ内に保存されているときのみ、可能であ
る。中断されたライドレベル5の書き込みオペレーショ
ンの場合、保存すべき冗長データは中間パリティ(旧デ
ータXOR旧パリティ)である可能性がある。図6は本
発明に基づく、ライド4またはライド5の劣化モードオ
ペレーションに対する、継続中の書き込みI/Oオペレ
ーションと中間パリティの記録プロセスを例示してい
る。中間パリティは不揮発性メモリバッファ120から
読み取ることができる。中間パリティに関する説明は図
2および図2に関する上記議論を参照されたい。冗長グ
ループに保存されたデータと矛盾しないパリティは、図
7に示すように、中間パリティと中断された書き込みデ
ータドライブのメディア上に格納されている現在のデー
タとを結合することにより、決定することができる。
【0031】故障アレイドライブにパリティあるいはデ
ータがマップされるような書き込みオペレーションが中
断された場合は、中間パリティを不揮発性メモリに保存
する必要はない。要約すると、パリティの無矛盾性を維
持するためのアレイコントローラ論理回路は以下のオペ
レーションを行わなければならない。
【0032】1.影響を受けた領域をアレイコントロー
ラが後に同定しうるための未完書き込み関連情報を不揮
発性メモリへ記録すること。
【0033】2.劣化モードにあるアレイにおいて、不
揮発性メモリ内のデータ冗長性を訂正するのに必要な何
らかの形態の原冗長データのコピーを保存すること。
【0034】3.正規の初期化処理期間中に記録を検査
すること。
【0035】4.その記録内の各記録事項ごとに、上述
した冗長データに含まれる潜在的な矛盾を訂正するこ
と。
【0036】未完書込みに関する記録事項のみを中断が
生じた時点の記録中に残すのであれば、アレイコントロ
ーラの動作をそのまま維持することができ、したがって
正規のプロセッシングオーバーヘッドを低減することが
できる。アレイコントローラがホストからリセット信号
を受信すると、アレイコントローラはアレイデータ構造
体を走査して現在のアレイ活動を同定する。次いでコン
トローラは、リセット初期化を実行する前に、未完の書
き込みオペレーションに関する必要事項を不揮発性メモ
リ中に記録する。
【0037】無停電電源からの低電力警告を受けた後も
同様なプロセスが実行される。アレイコントローラ論理
回路は、予定時間が経過した後、アレイドライブへのす
べての読み取り要求および書き込み要求の発行を禁止す
るルーチンを実行し、現在のアレイ活動を同定すべくア
レイデータ構造体を走査し、次いで未完書き込みオペレ
ーションに関する必要事項を不揮発性メモリ中に記録す
る。未完書き込みオペレーションのいくつかは実際に停
電する前に成功裏に完了する。書き込みオペレーション
が完了すると、その書き込みはもはや未完とは見なされ
ないので、これらの書き込みオペレーションに関わる記
録事項は廃棄される。この代わりとして、無停電電源か
らの電力低下警告を受けないシステムに停電に対する保
護を与えるためには、システムがすべて未完書き込みオ
ペレーションについての記録事項を不揮発性メモリ内に
維持すればよい。この場合も、書き込みオペレーション
が完了するとその書き込みオペレーションに関する記録
事項は不揮発性メモリから除去される。
【0038】
【効果】本発明は上述した構成により、システムリセッ
トあるいは停電などによる書き込みI/Oオペレーショ
ンに中断後が生じたときでも、中断に続くディスクアレ
イ内のパリティおよびデータ間の無矛盾性を回復するこ
とができる新規かつ有用な方法を与える。この方法は特
に、データおよびパリティの更新に読み取り-修正-書き
込みプロセスを採用するライドレベル4あるいは5のデ
ィスクアレイのような独立のアクセスディスクアレイ内
におけるパリティとデータ間の無矛盾性を回復にとって
有用であることが了解できよう。本発明はまた、アレイ
内のドライブの一つが故障した劣化モードで動作してい
るディスクアレイ内のパリティとデータ間の無矛盾性の
回復に対しても新規かつ有用な方法を与えることができ
る。
【0039】本発明は好ましい実施例について上に説明
したが、前記特許請求の範囲の記載した範囲において種
々に変更しうることを了解されたい。例えば、不揮発性
メモリ140はPROM、EPROMまたはEEPRO
Mデバイス、PCMCIAフラッシュカード、あるいは
磁気ディスクドライブでもよい。
【0040】当業者は本発明の要旨を逸脱することなく
種々の設計変更、置換、均等物の実施が可能であること
が明白であろう。したがって本発明の範囲は前記の請求
項の記載によってのみ限定されることを了解されたい。
【図面の簡単な説明】
【図1】 5個のディスクドライブを含むライドレベル
5のアレイのブロック線図である。
【図2】 従来のライドレベル5の読み取り-修正-書き
込みオペレーションを示す図である。
【図3】 従来のライドレベル5の読み取り-修正-書き
込みオペレーションを示す図である。
【図4】 本発明に基づき、継続中の書き込みI/Oオ
ペレーションを不揮発性メモリに記録する記録プロセス
を示す図である。
【図5】 本発明に基づきホストシステムの再起動に続
くデータ冗長性訂正プロセスを示す図である。
【図6】 本発明に基づき、ライド4または5の劣化モ
ードオペレーションに対し、継続中の書き込みI/Oオ
ペレーションと中間パリティとを記録する記録プロセス
を示す図である。
【図7】 本発明に基づき、ホストシステムの再起動に
続き劣化モードオペレーションで動作しているライド4
または5に対する冗長性訂正プロセスを示す図である。
【符号の説明】
100 アレイコントローラ 120 転送バッファ 130 排他的OR(XOR)論理回路 140 不揮発性メモリ 150 論理回路 200 ホストシステム 300 無停電電力源
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーブン ピー.デニー アメリカ合衆国 カンザス州 67042 エル ドラド、アリゾナ 1660 (56)参考文献 特開 平6−119126(JP,A) 特開 昭63−106960(JP,A) 特開 昭63−188859(JP,A) 特表 平5−505264(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 G06F 11/10 330

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 独立アクセスディスクアレイサブシステ
    ムにおいて生じた、一つ以上のディスク書き込みI/O
    オペレーションを中断させるシステムリセットに引き続
    いて、アレイサブシステム内の冗長グループのデータ格
    納領域およびパリティ格納領域に記録された事項の無矛
    盾性を維持する方法であって、 ホストシステムから受信したリセット信号に応答して、
    未完書き込みI/Oオペレーションを同定するため、実
    行中のドライブの活動を調査するステップと、 該未完書き込みI/Oオペレーションと該未完書き込み
    I/Oオペレーションに関わる冗長グループとを同定す
    るのに必要な情報を不揮発性メモリ中に記録するステッ
    プと、 該システムリセットに続いてディスクアレイサブシステ
    ムの初期化期間中、該不揮発性メモリ内の記録事項を検
    査するステップと、 該未完書き込みI/Oオペレーションの各一つについ
    て、該一未完書き込みI/Oオペレーションに関わる該
    冗長グループのデータ格納領域にまたがって格納された
    データの対応部分のビット毎の排他的OR演算を行い、
    その無矛盾パリティを計算するステップと、 計算したパリティを、該一未完書き込みI/Oオペレー
    ションに関わる該冗長グループ内の該パリティ格納領域
    に書き込むステップと、 を含むことを特徴とする方法。
  2. 【請求項2】 請求項1に記載の方法であってさらに、
    該未完書き込みI/Oオペレーションを再実行するステ
    ップを含む方法。
  3. 【請求項3】 請求項1に記載の方法において、該未完
    書き込みI/Oオペレーションに関わる冗長グループを
    同定するのに必要な情報が、該未完I/Oオペレーショ
    ンがデータとパリティ情報とをマップするブロックアド
    レスを含むことを特徴とする方法。
  4. 【請求項4】 独立アクセスディスクアレイサブシステ
    ムにおいて生じた一つ以上のディスク書き込みI/Oオ
    ペレーションを中断させるシステムリセットに引き続
    き、冗長グループ内のデータ格納領域およびパリティ格
    納領域に記録される事項の無矛盾性を維持する方法であ
    って、 無停電電源から電力低下信号を受信したことに応答し
    て、未完書き込みI/Oオペレーションを同定するた
    め、実行中のドライブの活動を調査するステップと、 該電力低下信号の受信時から予定時間が経過した時に、
    該未完書き込みI/Oオペレーションと、該未完書き込
    みI/Oオペレーションに関わる冗長グループとを同定
    するのに必要な情報を不揮発性メモリ中に記録するステ
    ップと、 該電力低下状態からの回復に引き続いて行われるディス
    クアレイサブシステム初期化の期間中、不揮発性メモリ
    内の記録事項を検査するステップと、 該未完書き込みI/Oオペレーションの各一つについ
    て、該一未完書き込みI/Oオペレーションに関わる該
    冗長グループ内のデータ格納領域にまたがって格納され
    たデータの対応部分のビット毎の排他的OR演算を行
    い、その無矛盾パリティを計算するステップと、 該一未完書き込みI/Oオペレーションに関わる該冗長
    グループ内の該パリティ格納領域に計算したパリティを
    書き込むステップと、 を含むことを特徴とする方法。
  5. 【請求項5】 請求項4に記載の方法であってさらに、
    該未完書き込みI/Oオペレーションを再実行するステ
    ップを含むことを特徴とする方法。
  6. 【請求項6】 請求項4に記載の方法において、該未完
    書き込みI/Oオペレーションに関わる冗長グループを
    同定するのに必要な情報が、該未完I/Oオペレーショ
    ンがデータとパリティ情報とをマップするブロックアド
    レスを含むことを特徴とする方法。
  7. 【請求項7】 ホストシステムから受信した書き込みI
    /O要求に応答して、読取り−修正−書き込みプロセス
    を使用して該アレイ内の冗長グループに保存されたデー
    タとパリティ情報とを更新する独立アクセスディスクア
    レイサブシステムにおいて、一つ以上の書き込みI/O
    オペレーションの実行を中断するシステムリセットに引
    き続いて、該冗長グループ内のデータ格納領域およびパ
    リティ格納領域に保存されたデータおよびパリティ情報
    間の無矛盾性を維持する方法であって、 ホストシステムからリセット信号を受信したことに応答
    して、未完書き込みI/Oオペレーションを同定するた
    め、実行中のドライブの活動を調査するステップと、 該未完の書き込みI/Oオペレーションに関わる冗長グ
    ループを同定するのに必要な不揮発性メモリ情報中に、
    該未完書き込みI/Oオペレーションが新規データおよ
    びパリティをマップするデータ格納領域およびパリティ
    データ格納領域を同定するのに必要な情報を記録すると
    ともに、該未完書き込みI/Oオペレーションが新規の
    データおよびパリティをマップするデータ格納領域およ
    びパリティデータ格納領域に保存された何らかの形態の
    旧データおよびパリティ情報を記録するステップと、 該システムリセットに引き続きディスクアレイサブシス
    テムの初期化期間中、該不揮発性メモリ内の記録事項を
    検査するステップと、 該未完書き込みI/Oオペレーションの各一つについ
    て、旧データおよびそれに関わるかつ該不揮発性メモリ
    に保存されたパリティを、該一未完書き込みI/Oオペ
    レーションが新規データをマップするデータ格納領域内
    に現に格納されているデータと結合して、該冗長グルー
    プ内に格納されているデータの無矛盾パリティを計算す
    るステップと、 該一未完書き込みI/Oオペレーションに関わる該冗長
    グループ内の該パリティ格納領域に該計算したパリティ
    を書き込むステップと、 を含むことを特徴とする方法。
  8. 【請求項8】 請求項7に記載の方法であって、さら
    に、該未完の書き込みI/Oオペレーションを再実行す
    るステップを含むことを特徴とする方法。
  9. 【請求項9】 請求項7に記載の方法において、 該独立アクセスディスクアレイサブシステムが劣化モー
    ドで動作していて該アレイ内のディスクドライブの一つ
    が動作しておらず、 該未完書き込みI/Oオペレーションが、該アレイサブ
    システム内の活動中のディスクドライブ内にあるデータ
    格納領域およびパリティ格納領域に新規データおよびパ
    リティ情報をマップすることを特徴とする方法。
  10. 【請求項10】 請求項7に記載の方法において、 該不揮発性メモリに保存された旧データおよびパリティ
    情報が、該旧データおよび旧パリティの排他的OR演算
    の結果を含み、 冗長グループ内に格納されたデータの無矛盾パリティを
    計算する該ステップが、該一つの未完書き込みI/Oオ
    ペレーションごとに、 (1)該旧データと該一つの未完書き込みI/Oオペレ
    ーションに関わるかつ該不揮発性メモリに保存されてい
    る該旧パリティとの排他的OR演算の結果と、 (2)該一つの未完書き込みI/Oオペレーションが新
    規データをマップするデータ格納領域内の現に格納され
    ているデータとの排他的OR演算の結果を決定するステ
    ップを含むことを特徴とする方法。
  11. 【請求項11】 ホストシステムから受信した書き込み
    I/O要求に応答して、読み取り−修正−書き込みプロ
    セスを使用して該アレイ内の冗長グループに保存された
    データとパリティ情報とを更新する独立アクセスディス
    クアレイサブシステムにおいて、一つ以上の書き込みI
    /Oオペレーションの実行を中断する電力低下に引き続
    き、該冗長グループ内のデータ格納領域およびパリティ
    格納領域に保存されたデータおよびパリティ情報間の無
    矛盾性を維持する方法であって、 無停電電源から電力低下信号を受信したことに応答し
    て、未完書き込みI/Oオペレーションを同定するた
    め、実行中のドライブの活動を調査するステップと、 該電力低下信号の受信時から予定時間が経過した時に、
    該未完書き込みI/Oオペレーションに関わる冗長グル
    ープを同定するのに必要な不揮発性メモリ情報中に、該
    未完書き込みI/Oオペレーションが新規データおよび
    パリティをマップするデータ格納領域およびパリティデ
    ータ格納領域を同定するのに必要な情報を記録するとと
    もに、該未完書き込みI/Oオペレーションが新規のデ
    ータおよびパリティをマップするデータ格納領域および
    パリティデータ格納領域に保存された何らかの形態の旧
    データおよびパリティ情報を記録するステップと、 該電力低下状態からの回復に引き続いて、ディスクアレ
    イサブシステムの初期化期間中、該不揮発性メモリ内の
    記録事項を検査するステップと、 該未完書き込みI/Oオペレーションの各一つについ
    て、旧データおよびそれに関わるかつ該不揮発性メモリ
    に保存されたパリティを、該一未完書き込みI/Oオ
    ペレーションが新規データをマップするデータ格納領域
    内に現に格納されているデータと結合して、該冗長グル
    ープ内に格納されているデータと矛盾しないパリティを
    計算するステップと、 該一未完書き込みI/Oオペレーションに関わる該冗
    長グループ内の該パリティ格納領域に該計算したパリテ
    ィを書き込むステップと、 を含むことを特徴とする方法。
  12. 【請求項12】 請求項11に記載の方法であって、さ
    らに、該未完の書き込みI/Oオペレーションを再実行
    するステップを含むことを特徴とする方法。
  13. 【請求項13】 請求項11に記載の方法において、 該独立アクセスディスクアレイサブシステムが劣化モー
    ドで動作していて該アレイ内のディスクドライブの一つ
    が動作しておらず、 該未完書き込みI/Oオペレーションが、該アレイサブ
    システム内の活動中のディスクドライブ内にあるデータ
    格納領域およびパリティ格納領域に新規データおよびパ
    リティ情報をマップすることを特徴とする方法。
  14. 【請求項14】 請求項11に記載の方法において、 該不揮発性メモリに保存された旧データおよびパリティ
    情報が、該旧データおよび旧パリティの排他的OR演算
    の結果を含み、 冗長グループ内に格納されたデータの無矛盾パリティを
    計算する該ステップが、該一つの未完書き込みI/Oオ
    ペレーションごとに、 (1)該旧データおよび該一つの未完書き込みI/Oオ
    ペレーションに関わるかつ該不揮発性メモリに保存され
    ている該旧パリティの排他的OR演算の結果と、 (2)該一つの未完書き込みI/Oオペレーションが新
    規データをマップするデータ格納領域内に現に格納され
    ているデータとの排他的OR演算の結果を決定するステ
    ップを含むことを特徴とする方法。
JP33028795A 1994-12-21 1995-12-19 ディスクアレイにおけるパリティデータの無矛盾性保持方法 Expired - Lifetime JP3164499B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/360,198 1994-12-21
US08/360,198 US5533190A (en) 1994-12-21 1994-12-21 Method for maintaining parity-data consistency in a disk array

Publications (2)

Publication Number Publication Date
JPH08263227A JPH08263227A (ja) 1996-10-11
JP3164499B2 true JP3164499B2 (ja) 2001-05-08

Family

ID=23416985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33028795A Expired - Lifetime JP3164499B2 (ja) 1994-12-21 1995-12-19 ディスクアレイにおけるパリティデータの無矛盾性保持方法

Country Status (5)

Country Link
US (1) US5533190A (ja)
EP (1) EP0718766B1 (ja)
JP (1) JP3164499B2 (ja)
KR (1) KR100396197B1 (ja)
DE (1) DE69528443T2 (ja)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3661205B2 (ja) * 1994-09-09 2005-06-15 株式会社日立製作所 ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法
JP3253473B2 (ja) * 1995-01-27 2002-02-04 富士通株式会社 二重化された共用メモリの等価性回復処理方法および装置
US5774641A (en) * 1995-09-14 1998-06-30 International Business Machines Corporation Computer storage drive array with command initiation at respective drives
US5774643A (en) * 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
US5812753A (en) * 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
US6067635A (en) * 1995-10-27 2000-05-23 Lsi Logic Corporation Preservation of data integrity in a raid storage device
US5829013A (en) 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US5790773A (en) * 1995-12-29 1998-08-04 Symbios, Inc. Method and apparatus for generating snapshot copies for data backup in a raid subsystem
US5917998A (en) * 1996-07-26 1999-06-29 International Business Machines Corporation Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging
JP3593814B2 (ja) * 1996-09-18 2004-11-24 ソニー株式会社 記録再生装置
KR100275900B1 (ko) * 1996-09-21 2000-12-15 윤종용 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
US5896493A (en) * 1997-01-17 1999-04-20 Dell Usa, L.P. Raid algorithm using a multimedia functional unit
US5889933A (en) * 1997-01-30 1999-03-30 Aiwa Co., Ltd. Adaptive power failure recovery
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6311290B1 (en) 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5822245A (en) * 1997-03-26 1998-10-13 Atmel Corporation Dual buffer flash memory architecture with multiple operating modes
US6088759A (en) 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
JP3618529B2 (ja) * 1997-11-04 2005-02-09 富士通株式会社 ディスクアレイ装置
US6516440B1 (en) * 1998-05-14 2003-02-04 Seiko Epson Corporation Printer and a control method for saving data from volatile to nonvolatile memory in the printer
US6513097B1 (en) 1999-03-03 2003-01-28 International Business Machines Corporation Method and system for maintaining information about modified data in cache in a storage system for use during a system failure
US6502174B1 (en) * 1999-03-03 2002-12-31 International Business Machines Corporation Method and system for managing meta data
US6438661B1 (en) * 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
JP2001344076A (ja) * 2000-06-05 2001-12-14 Fujitsu Ltd ディスクアレイ装置
US7240235B2 (en) * 2002-03-13 2007-07-03 Intel Corporation Journaling technique for write transactions to mass storage
US7149769B2 (en) * 2002-03-26 2006-12-12 Hewlett-Packard Development Company, L.P. System and method for multi-destination merge in a storage area network
US7032131B2 (en) * 2002-03-26 2006-04-18 Hewlett-Packard Development Company, L.P. System and method for ensuring merge completion in a storage area network
US6934826B2 (en) * 2002-03-26 2005-08-23 Hewlett-Packard Development Company, L.P. System and method for dynamically allocating memory and managing memory allocated to logging in a storage area network
US7886298B2 (en) * 2002-03-26 2011-02-08 Hewlett-Packard Development Company, L.P. Data transfer protocol for data replication between multiple pairs of storage controllers on a san fabric
US6947981B2 (en) * 2002-03-26 2005-09-20 Hewlett-Packard Development Company, L.P. Flexible data replication mechanism
US7542986B2 (en) * 2002-03-26 2009-06-02 Hewlett-Packard Development Company, L.P. System and method for maintaining order for a replicated multi-unit I/O stream
US6928513B2 (en) * 2002-03-26 2005-08-09 Hewlett-Packard Development Company, L.P. System and method for managing data logging memory in a storage area network
US6996672B2 (en) * 2002-03-26 2006-02-07 Hewlett-Packard Development, L.P. System and method for active-active data replication
US6880052B2 (en) * 2002-03-26 2005-04-12 Hewlett-Packard Development Company, Lp Storage area network, data replication and storage controller, and method for replicating data using virtualized volumes
US7007042B2 (en) * 2002-03-28 2006-02-28 Hewlett-Packard Development Company, L.P. System and method for automatic site failover in a storage area network
US6859890B2 (en) * 2002-04-30 2005-02-22 Lsi Logic Corporation Method for reducing data/parity inconsistencies due to a storage controller failure
KR100740225B1 (ko) * 2002-04-30 2007-07-18 삼성전자주식회사 전원의 재공급에 따른 동작상태를 복구할 수 있는 콤보시스템 및 방법
US7236987B1 (en) 2003-02-28 2007-06-26 Sun Microsystems Inc. Systems and methods for providing a storage virtualization environment
US7383381B1 (en) 2003-02-28 2008-06-03 Sun Microsystems, Inc. Systems and methods for configuring a storage virtualization environment
US7430568B1 (en) 2003-02-28 2008-09-30 Sun Microsystems, Inc. Systems and methods for providing snapshot capabilities in a storage virtualization environment
US7290168B1 (en) 2003-02-28 2007-10-30 Sun Microsystems, Inc. Systems and methods for providing a multi-path network switch system
US7380198B2 (en) 2003-06-11 2008-05-27 International Business Machines Corporation System and method for detecting write errors in a storage device
GB2402803B (en) * 2003-06-11 2006-06-28 Ibm Arrangement and method for detection of write errors in a storage system
US7308397B2 (en) * 2003-06-30 2007-12-11 Lsi Corporation Method for controlling and emulating functional and logical behaviors of an array of storage devices for different protocols
CN100350371C (zh) * 2003-10-07 2007-11-21 普安科技股份有限公司 磁盘阵列一致性初始化方法
KR20050049199A (ko) * 2003-11-21 2005-05-25 삼성전자주식회사 콤보시어터 시스템 및 그의 동작 제어방법
US7194640B2 (en) * 2003-12-08 2007-03-20 Lsi Logic Corporation Alternate non-volatile memory for robust I/O
CN100370429C (zh) * 2003-12-11 2008-02-20 鸿富锦精密工业(深圳)有限公司 确认数据完整性系统及方法
CN100340989C (zh) * 2004-04-14 2007-10-03 华为技术有限公司 随机存储器的数据保存方法
US7730257B2 (en) * 2004-12-16 2010-06-01 Broadcom Corporation Method and computer program product to increase I/O write performance in a redundant array
US7779294B2 (en) * 2005-04-15 2010-08-17 Intel Corporation Power-safe disk storage apparatus, systems, and methods
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US8595573B2 (en) 2006-12-03 2013-11-26 Apple Inc. Automatic defect management in memory devices
US7730347B1 (en) * 2007-01-03 2010-06-01 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Data recovery system and method including a disk array architecture that provides recovery of data to any point of time
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US20080276124A1 (en) * 2007-05-04 2008-11-06 Hetzler Steven R Incomplete write protection for disk array
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) * 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8259497B2 (en) * 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8300478B2 (en) 2007-09-19 2012-10-30 Apple Inc. Reducing distortion using joint storage
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US7827441B1 (en) * 2007-10-30 2010-11-02 Network Appliance, Inc. Disk-less quorum device for a clustered storage system
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) * 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) * 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US7849356B2 (en) * 2008-01-17 2010-12-07 International Business Machines Corporation Parity data management system apparatus and method
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8493783B2 (en) 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
JP4819116B2 (ja) * 2008-12-19 2011-11-24 富士通株式会社 制御装置、ストレージ装置および制御方法
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
KR101512493B1 (ko) 2009-02-06 2015-04-15 삼성전자주식회사 저전력 시스템온칩
US8228701B2 (en) * 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
WO2012053085A1 (ja) * 2010-10-21 2012-04-26 富士通株式会社 ストレージ制御装置およびストレージ制御方法
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
US9053809B2 (en) 2011-11-09 2015-06-09 Apple Inc. Data protection from write failures in nonvolatile memory
CN103049220B (zh) * 2012-12-19 2016-05-25 华为技术有限公司 存储控制方法、存储控制装置和固态存储系统
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
US10684927B2 (en) 2014-07-29 2020-06-16 Hewlett Packard Enterprise Development Lp Methods and systems for storing information that facilitates the reconstruction of at least some of the contents of a storage unit on a storage system
WO2016076850A1 (en) * 2014-11-12 2016-05-19 Hewlett Packard Enterprise Development Lp Data write back
US9946607B2 (en) * 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
CN109313593B (zh) * 2016-09-16 2022-03-01 株式会社日立制作所 存储系统
US10467074B2 (en) 2016-12-30 2019-11-05 Western Digital Technologies, Inc. Conditional journal for storage class memory devices
US10459798B2 (en) 2017-09-15 2019-10-29 Seagate Technology Llc Data storage system with multiple parity redundancy
CN109725824A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于向存储系统中的盘阵列写入数据的方法和设备
CN110058791B (zh) * 2018-01-18 2022-05-10 伊姆西Ip控股有限责任公司 存储系统以及相应的方法和计算机可读介质
US10754726B2 (en) * 2018-08-21 2020-08-25 Micron Technology, Inc. Tracking error-correction parity calculations
JP6777330B2 (ja) * 2018-12-18 2020-10-28 Necプラットフォームズ株式会社 ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
CN114079616B (zh) * 2021-11-02 2023-11-03 中国船舶重工集团公司第七0三研究所 一种非热备磁盘阵列服务器数据库冗余方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375128A (en) * 1990-10-18 1994-12-20 Ibm Corporation (International Business Machines Corporation) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US5235601A (en) * 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
US5379417A (en) * 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system
US5418921A (en) * 1992-05-05 1995-05-23 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
US5388108A (en) * 1992-10-23 1995-02-07 Ncr Corporation Delayed initiation of read-modify-write parity operations in a raid level 5 disk array
JPH08511368A (ja) * 1993-06-04 1996-11-26 ネットワーク・アプリアンス・コーポレーション 不揮発性メモリを用いてraidサブシステムにパリティを形成する方法

Also Published As

Publication number Publication date
EP0718766A2 (en) 1996-06-26
EP0718766A3 (en) 1999-03-17
KR100396197B1 (ko) 2003-11-01
EP0718766B1 (en) 2002-10-02
KR960024954A (ko) 1996-07-20
US5533190A (en) 1996-07-02
DE69528443D1 (de) 2002-11-07
DE69528443T2 (de) 2003-11-27
JPH08263227A (ja) 1996-10-11

Similar Documents

Publication Publication Date Title
JP3164499B2 (ja) ディスクアレイにおけるパリティデータの無矛盾性保持方法
JP3129732B2 (ja) コピーバックキャッシュを有する記憶装置アレイ
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
US7464322B2 (en) System and method for detecting write errors in a storage device
US5758054A (en) Non-volatile memory storage of write operation identifier in data storage device
US5469453A (en) Data corrections applicable to redundant arrays of independent disks
US6067635A (en) Preservation of data integrity in a raid storage device
US6523087B2 (en) Utilizing parity caching and parity logging while closing the RAID5 write hole
JP2501752B2 (ja) コンピユ―タ・システムのストレ―ジ装置及びデ―タのストア方法
JP3071017B2 (ja) 冗長アレイ・システムにおける冗長情報の復元方法および制御システム
US5819109A (en) System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete
US6766491B2 (en) Parity mirroring between controllers in an active-active controller pair
US7240237B2 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
US6901551B1 (en) Method and apparatus for protection of data utilizing CRC
GB2343265A (en) Data storage array rebuild
JP2857288B2 (ja) ディスクアレイ装置
US20040216012A1 (en) Methods and structure for improved fault tolerance during initialization of a RAID logical unit
JP3009987B2 (ja) ディスクアレイ装置
GB2402803A (en) Arrangement and method for detection of write errors in a storage system
JP2002123372A (ja) キャッシュメモリ付きディスクアレイ装置及びそのエラー制御方法並びにその制御プログラムを記録した記録媒体
EP0831484A1 (en) Data reconstruction method and data storage system
WO1996041249A2 (en) Intelligent disk-cache memory

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S631 Written request for registration of reclamation of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313631

S633 Written request for registration of reclamation of name

Free format text: JAPANESE INTERMEDIATE CODE: R313633

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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: 20090302

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100302

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100302

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110302

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120302

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120302

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20140302

Year of fee payment: 13

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term