JPH04230512A - Dasdアレイのための更新記録方法及び装置 - Google Patents

Dasdアレイのための更新記録方法及び装置

Info

Publication number
JPH04230512A
JPH04230512A JP3199910A JP19991091A JPH04230512A JP H04230512 A JPH04230512 A JP H04230512A JP 3199910 A JP3199910 A JP 3199910A JP 19991091 A JP19991091 A JP 19991091A JP H04230512 A JPH04230512 A JP H04230512A
Authority
JP
Japan
Prior art keywords
parity
block
data
blocks
dasd
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
JP3199910A
Other languages
English (en)
Other versions
JPH0642193B2 (ja
Inventor
Jaishankar M Menon
ジャイシャンカー・ムーセダス・ミノン
James M Kasson
ジェイムズ・マシューズ・カーソン
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 JPH04230512A publication Critical patent/JPH04230512A/ja
Publication of JPH0642193B2 publication Critical patent/JPH0642193B2/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
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、直接アクセス記憶装
置(DASD)のアレイに関し、特にデータ・ブロック
の修正書き込み若しくは更新記録を行い、少なくともい
くつかのDASDに分散し変更されたブロックを含むデ
ータ・ブロックのグループの明示的パリティを変更する
ときに必要なトラック回転数を少なくする方法及び手段
に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】高速コ
ンピュータはストレージ・サブシステムの一部としてD
ASDアレイを含む。アレイのアーキテクチャ、及びデ
ータの構成と分散は、動作性能、フォールト・トレラン
ス(耐障害性)、及びフォールトが発生した後のデータ
の再生速度に影響を与える。従来の技術では、アレイの
効率を高めると、アレイ操作の細かい調整が起動される
【0003】“ストレージ・サブシステム”は、そのI
/O境界に、ブロードバンドのデータ/制御パスを通し
てプロセサまたはプロセサ・アレイをつなぐ。サブシス
テムは、自体のデバイス・アダプタを通して個別にアク
セスされる単体のマルチトラック磁気データ循環記憶装
置(DASD)、共通の制御ユニットで終端する数個の
DASD(“ストリング”という)、またはDASDア
レイ・コントローラ(DAC)によって接続されたDA
SDアレイである。
【0004】“DASDアレイ”は、論理的に関連づけ
られ、共通のモードまたは手段によって動作するDAS
Dの集合であり、同期をとって選択され操作されるDA
SDの集合を含む。これらのDASDは、高速プロセサ
と外部記憶装置との間でデータが高速に交換される場合
に用いられる。所定のサイズで分けられたデータ(バイ
ト、ワード、ブロック)をシリアルからパラレルへマッ
プすることによってデータの高速転送が維持される。同
期動作の場合、N個のDASDを同じ回転数(RPM)
で回転させ、同じオフセット角を持たせ、同じ方法で同
時にアクセスする必要がある。この方法はデータの転送
速度を最大にするが、並行性(コンカレンシ)は最小に
なる。
【0005】上記とは別のタイプのDASDアレイは、
1個のDASDの障害によって使用できなくなったデー
タは、障害の影響を受けなかったDASDに格納された
パリティなどの冗長性によって復元できるという事実に
よって関連づけられたDASDの集合より成る。このよ
うなアレイは必ずしも同期をとって動作させる必要はな
い。
【0006】“アレイ”は、数学的には添え字つき変数
であり、添え字は、変数の各インスタンスの相対位置、
つまり論理トラック内の各ブロックの位置を示す。添え
字の要素はアレイの大きさも定義する。したがって、ア
レイA(i、j)は、相対位置が、閉じた2つの整数範
囲(1、1<(i、j)<N、K)にマップされる変数
“A”を指定する。
【0007】アレイの大きさは相互に排他的にすること
ができる。したがって、閉じた整数範囲1<i<Nと1
<j<Kによって表わされる大きさは、各々類似のデバ
イスと時間の順序づけ(インデクシング)を示し、Nと
Kは整数の上限になる。規約では、列のオーダは、ある
アレイの大きさを、行のオーダは別のアレイの大きさを
示す。その場合、NはDASDの個数、Kは各DASD
の各トラックのブロック数である。
【0008】同期をとってアクセスされるN個のDAS
Dを物理的に配置したものがDASDアレイになる。ス
トアとしてのアレイのフォーマット設定とその後のアク
セスは、行または列を基準にして連続した位置に値を挿
入していくことによって進行する。列の方向に操作を行
う場合、操作は“列主オーダ”で実行される。同様に行
の方向では、“行主オーダ”で操作が実行される。
【0009】ストレージ・サブシステムはフォールトや
エラーに陥ることがある。このようなシステムを、シス
テム・フォールトが生じた直前のデータ整合(コンシス
テンシ)ポイントにまで回復する次のような方法がある
。(1)既知のチェックポイントからトランザクション
・ログを処理する、(2)ストレージ内容全体の2重化
とバックアップ切り替え、(3)専用コード及び格納さ
れたデータの一部だけを用いたデータの再構成、
【00
10】第1の方法は、ログをベースにした回復によるも
ので、イベント履歴の再生に重点を置いている。 しかし、終了までは現在の処理が禁止される。
【0011】第2の方法は、DASDのすべての内容を
2重化する方法では、現在の操作を中断する必要はない
が、2重化(ミラーリングともいう)では、使用できな
くなったデータがわずかであっても、ストレージ資源/
コストがかなり大きくなる。
【0012】データ・コードを用い、追加されるストレ
ージを最小にする第3の方法では、計算資源及び複雑な
ストレージ・モデルが必要である。“パリティ”と呼ば
れる専用データ・コードは、データとともにDASDに
格納され、冗長である。“パリティ”は、この発明では
、使用できない部分を回復する使用可能なデータの部分
とともに計算に用いられる冗長性と定義される。パリテ
ィは、単純パリティ、ハミング符号、リードソロモン符
号、ECC符号等を含むことができる。
【0013】文献では、“フォールト・トレランス”と
“縮退モード”での動作が区別される。また“フォール
ト”、“エラー”、及び“消去”も区別される。“トレ
ランス”は、この発明では、システムの動作を継続する
ために、使用できないようにすることのできるDASD
の個数である。“縮退モード”はフォールト発生後のシ
ステムの継続動作をいう。“フォールト”は永続的障害
の発生である。“エラー”は、しばしばノイズによって
データ・シーケンスに生じる偽の値の発生または、ソフ
トウェアやハードウェアのランダムな障害や間欠的な障
害の発生である。また“消去”は、データ・シーケンス
内の1個以上の位置にデータが存在しないことをいう。
【0014】James N. Grayは、“Not
es on Database Operating 
Systems”(Operating System
s − An Advanced Course、co
pyright 1979 Springer Ver
lag)、393−481ページで、履歴の再生にポイ
ンタを要するデータベースとトランザクションの管理シ
ステムを、ログをベースに回復することについて述べて
いる。このシステムは、既知の、前の整合ポイント(チ
ェックポイント)までロールバックさせる必要がある。 ロールバックの後、ログによってトランザクションのリ
ドゥが起動される。
【0015】Pattersonらによる“A Cas
e for Redundant Arrays of
 Inexpensive Disks(RAID)”
(ACM SIGMOD Conference、Ch
icago、IL、June 1−3、1988)、及
びBradyらによる米国特許出願第528999号明
細書(90年5月24日出願)“Method and
 Means for Accessing DASD
 Arrays with Tuned Data T
ransfer Rate and Concurre
ncy”は、ストレージ管理レベルでの回復を扱ってい
る。
【0016】Patterson らは、DASDアレ
イ上のデータの2重化または“ミラーリング”とパリテ
ィ・コード化について述べている。この点に関して、N
個のDASDアレイに格納されたデータのミラーイング
では、少なくとも2N個のDASDが必要がある。Pa
tterson、Brady両者が指摘しているように
、データの一部のパリティ・コード化と、ストレージ更
新ごとのアクセス回数の増加を組み合わせれば、DAS
Dは2N個よりも少なくなる。
【0017】Brady らはまた、N*K個のデータ
とパリティのブロック(各DASDの各トラックにブロ
ックがK個)の順次ファイルを、トラックが回転してい
るときに対応するコントローラを通してN個のDASD
を同期をとってアクセスすることによって、2次元アレ
イ(1つはスペース的大きさ、1つは一時的大きさ)に
マップすることについて述べている。
【0018】パリティをコード化すると、格納されたデ
ータの一部を使うだけでデータを再生することができる
。2重化で用いられる量と比べるとストレージが節約さ
れ、ログ・ベースの回復に比べると時間も節約される。 アップデート・ライトごとのアクセス回数の増加により
、効率は低下する。フォールト・トレランスと回復を補
助するために、データとパリティのブロックを、同じ論
理ファイルから、接続されたDASDに分散することに
最初に言及したのはOuchiとClarkである。
【0019】Ouchiによる米国特許第409273
2号明細書“System For Recoveri
ng Data Stored In A Faile
d Memory Unit”(1978年5月30日
発行)は、同じ論理ファイルからのデータ・ブロックを
、障害について関連性のないN−1個のDASDストリ
ングに分散し、N番目のDASD上のパリティ・ブロッ
クを回復することについて述べている。Ouchi に
よると、パリティ・ブロックは、他のN−1個のブロッ
クの内容であるバイナリ・コードのXORをとること(
モジュロ2加算)である。 アクセスのできない1個のDASDからの内容は、アク
セスのできる残りのN−2個のDASDに格納されたブ
ロックでパリティ・ブロックのXORをとることによっ
て回復することができる。これと同じような結果は、パ
リティ・ブロックが使用できない場合に得られる。
【0020】Clarkらによる米国特許第47617
85号明細書“Parity Spreading t
oEnhance Storage Access”(
1988年8月2日発行)は、特に縮退モードにおける
動作で1個のDASDが欠けていることによって、すべ
てのパリティ・ブロックが使用できなくなるのを避ける
ために、パリティ・ブロックをDASDに分散させるこ
とによってOuchi の特許に変更を加えている。こ
の点、Ouchi、Clarkの特許では、DASD障
害を1つまでは克服でき、データを再生した後に動作を
継続することができる。
【0021】Patterson は数種類のアレイ・
アーキテクチャについて述べている。データとDASD
の構成についての説明と、それらを“レベル”に分類す
ることは事実上のトポロジとなっている。すなわち、与
えられたアレイがRAIDレベル1ないしレベル5とさ
れる。
【0022】Patterson のレベル1、2は、
DASDのストリングに関係し、各々データ・ミラーイ
ング(データ2重化)とハミング符号を利用する。
【0023】Patterson のレベル3は、N個
のDASDに対して読み出しと書き込みの動作が同期を
とって行われるレベルである。その場合、N−1個のD
ASDはデータを、1個のDASDは他のデータDAS
Dに及ぶパリティを格納する。すなわちこのグループに
は1個のチェック用DASDが与えられる。障害のあっ
たDASDの内容はOuchiの方法で再生することが
できる。Ouchiの場合、論理レコードから物理トラ
ックへのマッピングと、DASDアレイへの列主オーダ
のアクセスが行われ、大小いずれのアクセス要求にも対
応する。
【0024】レベル4では、小さい読み出し、書き込み
アクセスについて効率が高められる。これは、第1タイ
ム・スロット(DASDセクタ1)ではブロック1ない
しNが各々DASD1ないしNに格納され、第2タイム
・スロット(DASDセクタ2)ではブロックN+1な
いし2Nが格納されなど、列に沿ってブロックを格納す
ることによって達成される。K個目のタイム・スロット
(DASDセクタK)ではブロック[(K−1)]*N
+1ないしKNが対応するデバイスに格納される。
【0025】Patterson の最後のレベル、レ
ベル5では、データとパリティのブロックがすべてのD
ASDアレイに分散され、トランザクション処理に関わ
る小さい読み出しと書き込み及び数値演算の多い処理に
関わる大きい読み出しと書き込みが促進される。
【0026】RAIDレベル3ないし5では、DASD
アレイ1個に障害のあった場合に備えて別にDASDを
少なくとも1個は使用することができる。この点につい
てはDunphyによる米国特許第4914656号明
細書“Disk Drive Memory” (19
90年4月3日発行)が参考になろう。
【0027】更新記録(書き込み) RAIDタイプ4のDASDアレイにおいて、あるファ
イルのブロックD1、D2、D3、及びD4は、任意の
順序で4個のDASDに配置され、これらと対をなすパ
リティ・ブロックP1ないしP4が、パリティDASD
に書き込まれているとする。ブロック配置は表1のよう
になる。
【0028】                    DASD1 
 D1  D2  D3  D4          
         DASD2  D1  D2  D
3  D4                   D
ASD3  D1  D2  D3  D4     
              DASD4  D1  
D2  D3  D4               
    DASD5  P1  P2  P3  P4
                         
         表1
【0029】P1はDASD1
ないしDASD4に対するD1のモジュロ2加算(XO
R)である。P2、P3、及びP4は各々D2、D3、
及びD4をカバーする。DASD1に障害が発生した場
合、その内容は、DASD2ないしDASD5の内容の
XORをとることによって、スペアDASD上で再生す
ることができる。
【0030】ストレージ・サブシステム(DASDアレ
イ・コントローラ)は、データ・ブロックの書き込み要
求を受け取るとき、整合性を保つために対応するパリテ
ィ・ブロックも更新しなければならない。D1に変更を
加える場合、次のように、P1の再計算が必要である。 新しいP1 : = (古いD1) XOR (新しい
D1) XOR (古いP1)
【0031】この場合、
データ・ブロックを更新記録するために、4回のDAS
Dアレイ・アクセスが必要になる。すなわち(1)古い
データの読み出し、(2)古いパリティの読み出し、(
3)新しいデータの書き込み、及び(4)新しいパリテ
ィの書き込みである。その場合ストレージ・サブシステ
ム(アレイ・コントローラ)は、新しいデータとパリテ
ィを古いデータ及びパリティが存在するのと同じDAS
Dロケーションに書込み。これを“所定位置への書き込
む”という。
【0032】DASDロケーションは、読み出された直
後にはディスク1回転離れたところにくることになる。 これまでのストレージ・サブシステムは、古いデータを
読み出してから新しいデータを書き込むまでのディスク
回転時間に、DASDと、プロセサからDASDへのパ
スの両方を予約する。代表的なストレージ・サブシステ
ムでは、プロセサから32個または64個のDASDア
レイへのパスが4つ設けられる。古いデータの読み出し
と更新記録との間でパスを予約すると、パスの並行性(
コンカレンシ)がかなり抑えられる。ただし、更新記録
が試行されるときにパスは使用できないとも言える。
【0033】この発明の目的は、RAIDタイプ4また
は5のDASDアレイで形成され、情報が、データとパ
リティのブロックとして格納され、明示的なパリティ・
グループの中に配置されたストレージ・サブシステムの
使用率を高めることにある。
【0034】この発明の目的には、データ・ブロックを
更新記録し、変更されてDASDアレイ内の少なくとも
いくつかのDASDに分散されたデータ・ブロックを含
むデータ・ブロックのグループの明示的パリティに変更
を加えるのに必要なトラック回転数を少なくする方法を
提供することも含まれる。
【0035】この発明の目的には、データ・パスの占有
率と並行性の両方をストレージ・サブシステムを通して
最適化することも含まれる。
【0036】
【課題を解決するための手段】上記の目的は、DASD
ディスク・スペースを利用して、パリティまたはデータ
または両方をブロック、トラック、またはシリンダのレ
ベルでシャドー・ライトする方法によって達成される。 所定位置への書き込みではなくシャドー・ライトを行う
ことによって、スピードが上がるとともに、容量に余裕
のあるアレイを管理することによって、シャドー・ライ
トを行うときに空きブロックをほぼ即座に広げる可能性
が高まる。この方法の変形としては、(1)ダブル・パ
リティ方式、(2)浮動パリティ・トラック方式、(3
)浮動データ/パリティ・トラック方式、及び(4)浮
動データ/パリティ・ブロック方式がある。
【0037】ダブル・パリティ方式では、障害について
関連性のないN−2個の異なるDASDからの、アクセ
スされたディスク・トラックN−2個と、別のDASD
からのパリティ・トラック2個を想定する。この方式で
は、各DASDトラックがトラック当たりK個のブロッ
クをサポートする。各パリティ・トラックは、N−2個
のデータ・ブロックで定義されたK個のパリティ・ブロ
ックを列主オーダで格納する。また、2K個のパリティ
・ブロック(パリティ・トラック当たりK個)が置かれ
、そのうち一度に用いられるのはK個だけであり、K個
は空き状態である。
【0038】この方式では、最初に古いブロックと古い
パリティをトラック1回転で読み出すことによって更新
記録が行われる。次に、新しいパリティ(データ・ブロ
ックとパリティ・グループの古い値と新しいデータ・ブ
ロック値のXOR)が計算される。データ・ブロックを
含むDASDの2回目の回転のとき、新しいデータ・ブ
ロックが所定位置に書き込まれる。新しいパリティ値は
、パリティ・トラック上の、テーブルで制御される最初
に使用可能な空きスペースにシャドー・ライトされる。 最後に、テーブルが変更され、古いパリティ・ブロック
・スペースが使用できることが示される。
【0039】空きパリティ・ブロックの占有率をp=0
.5とした場合、1ブロック時間で検出できる空きパリ
ティ・ブロックの可用性は次のようになる。 1−p^2=1−(0.5)^2=0.75
【0040
】浮動パリティ・トラック方式は、ダブル・パリティ方
式を拡張したもので、ストレージは、トラック当たりK
ブロックで、各シリンダのトラック数がT−1個の、障
害について関連性のないN個のDASDからのN個のデ
ータ・シリンダとしてモデル化される。パリティはパリ
ティ・トラックのシリンダとして構成される。トラック
(T−1)は各々、これと対をなす、N個の各データ・
シリンダからのデータ・トラックの垂直パリティをKブ
ロック記録する。K個のブロックのうち1パリティ・ト
ラックは空いたままにされる。
【0041】浮動パリティ方式では、更新記録のために
、データ・ブロックを含むDASDのトラック2回転が
必要である。1回目に古いデータが読み出され、2回目
に新しいデータが所定位置に書き込まれる。また、古い
パリティを読み出すために数分の1の回転が必要で、パ
リティ・シリンダ内の最初に使用できる部分に新しいパ
リティをシャドー・ライトするのに数分の1の回転が必
要である。
【0042】浮動データ/パリティ・トラック方式は、
データとパリティの両方をシャドー・ライトすることに
よって、パリティ・トラック方式を拡張したものである
。この方式は、ストレージを、トラック当たりMデータ
・ブロックの同期トラックN個と、Mブロックのパリテ
ィ・トラックとのシリンダとしてモデル化する。トラッ
クはすべて、障害の影響を受けないN+1個のDASD
からアクセスされる。
【0043】そして浮動データ/パリティ・ブロック方
式は、データとパリティの両方をシャドー・ライトする
ことによって、浮動パリティ方式を拡張している。この
方式のストレージ・モデルは、障害について関連性のな
いN+1個のDASDの各々に対応するN+1個のデー
タとパリティのシリンダである。各シリンダのトラック
はT個で、トラック当たりのブロック数はKである。K
個のブロックのうち1トラックは、N+1個の各シリン
ダで空き状態のままである。K個の空きブロックは、テ
ーブルで管理され、シリンダのどこにでも置くことがで
きる。各シリンダの残りのT−1個のトラックまたはK
*(T−1)個のブロックには、データまたはパリティ
を格納するすることができる。
【0044】
【実施例】代表的なDASDアレイとそのアクセス環境
図1は、外部ストレージとして同期DASDアレイ3を
接続したプロセサのアレイ1を含むシステムを示す。プ
ロセサ5、7、9としては様々な高性能プロセサが考え
られる。DASDアレイ3の形で付加される外部ストレ
ージは、アダプタ15によってアレイ1に接続される。 ローカル・エリア・ネットワーク、プリンタ、ディスプ
レイ等、他のデータ処理ソースまたはシンクも、対応す
るアダプタ17を通して同じように接続される。
【0045】DASDアレイ3は、たとえばPatte
rsonやBradyらの文献に説明されているように
、RAIDタイプ4または5のDASDとDASDアレ
イ・コントローラ(DAC)23で構成するのが望まし
い。
【0046】図1のアレイ・コントローラ(要素19な
いし31)は、チャネル・アダプタ15によってホスト
・バス11につながる。このパスは、メモリ(RAM)
13、グローバル・レジスタを含めたすべてのシステム
資源へのアクセスを提供する。アダプタ15は、対をな
すシンプレクス・メガバイト・レートの送受信インタフ
ェース19(レシーバ)、21(トランスミッタ)を通
してDASDに接続するのが望ましい。このインタフェ
ースには、ANSI規格草案X3T9/88−127第
6.8版(8/29/1989)のOEMIまたは高性
能パラレル・インタフェース(HIPPI)が考えられ
る。
【0047】ホスト/DASD方向のデータの移動は、
内部メモリ13からスタートし、バス11、アダプタ1
5、レシーバ19を通って、データ・ブロック(バッフ
ァ)24に至る。制御ロジックによって、古いデータと
古いパリティを含むデバイスとブロックの番号がテーブ
ル・メモリ25から判定される。次にこれらのブロック
が、制御ロジックによって、ECC回路27、29、及
び31を介して読み出される。各ブロックは、エラーの
検出・訂正用ECCバイトをブロック相互間をベースに
付加することによって保護される。次にパリティ・ロジ
ックがパリティの新しい値を計算する。新しいデータと
パリティを書き込むDASDロケーションは、この発明
の4種類の方式の1つに従って、テーブル・メモリ25
を使って検出され、新しいデータとパリティのブロック
がそこに書き込まれる。最後にテーブル・メモリ25が
更新され、データとパリティの新しいロケーションが反
映される。DASD/プロセサ(ホスト)方向のデータ
移動は、DASD33、35、37からスタートし、E
CC回路27、29、31を通ってデータ・バッファ2
4に至る。データはそこでバッファからトランスミッタ
を経てアダプタ15、バス11を通り、プロセサ(ホス
ト)の内部メモリ13へ転送される。
【0048】用語 実施例を説明する便宜上、次の用語を用いる。 T  各シリンダのトラック数 C  各DASDのシリンダ数 m  各トラックのブロック数 B  ブロック・サイズ(バイト) d  アレイのDASD数 n  列サイズ(各列のデータ・トラック数)TS  
DASDコントローラに必要なテーブルのサイズ
【00
49】また次の計算量を用いる。 ストレージ効率  :=  1/(1+1/n)テーブ
ルのオーバヘッド  :=  TS/(DASD上のデ
ータのサイズ)
【0050】“パリティ・グループ”は
、整合性と回復の単位であることに注意されたい。パリ
ティ・グループは、所定個数のデータ・ブロックが、障
害について関連性ののない複数のDASD上に定義され
たものである。 また、異なるDASDからのパリティ・ブロックを含む
こともできる。パリティ・グループ内のパリティ・ブロ
ックは、パリティ・グループ内の全データ・ブロックの
パリティを含む。パリティ・グループからブロックの読
み出しができなくなった場合、そのブロックは、グルー
プ内の残りのブロックから再生することができる。以下
に述べる浮動/データ・ブロック方式では、“列”は“
単一パリティ・グループ”と同義であるが、他の変形方
式の場合、“列”は“K個のパリティ・グループ”と同
義である。
【0051】ダブル・パリティ方式 この方式では、2つのパリティ・トラックがDASD上
に予約されて、他のDASDからのn個のデータ・トラ
ックが保護されるが、パリティ・トラック内のブロック
は常に2分の1しか用いられない。ここで、ストレージ
効率が1/(1+2/n)の場合、パリティが占めるス
ペースはデータの2/n倍である。DASDが5個で、
各々5トラックのシリンダを持ち、トラック当たり1ブ
ロック、列サイズが3の表2に示した例を考える。
【0052】                 DASD1  D1
  P3  P3  D4  D5         
       DASD2  D1  D2  P4 
 P4  D5                DA
SD3  D1  D2  D3  P5  P5  
              DASD4  P1  
P1  D2  D3  D4           
     DASD5  P2  P2  D3  D
4  D5                    
              表2
【0053】DAS
D4上の2つのパリティ・トラック(P1)は、DAS
D1、2、3上の3つのトラック(D1)上のデータを
保護する。この例ではパリティが、アレイ内の5個のD
ASDに分散されるが、5個のDASDのうち2個をパ
リティの格納に充てることもできる。例では、3個のデ
ータ・トラックを保護する2個のパリティ・トラックが
同じDASDに格納されるが(DASD5上のP2トラ
ック2個等)、列の2個のパリティ・トラックは2個の
別個のDASD上にも置ける。列の2個のパリティ・ト
ラックを両方とも同じDASDに置けば性能が上がる。
【0054】ダブル・パリティ方式の場合、パリティが
分散され、列の両方のパリティ・トラックが同じDAS
Dに置かれるが、T*C(各DASDのトラック数)が
n+2の整数倍で、列数がDASD数の整数倍であれば
、コントローラは、全DASD上の全トラックを使用す
ることができる。
【0055】ダブル・パリティ方式の動作ダブル・パリ
ティ方式がどのように働くかを理解するために、ここで
、表3に示すように、各トラックにブロックが4個で、
データ・トラックが3個、パリティ・トラックが2個の
単一列を考える。
【0056】 B1  B2    B3    B4B5  B6 
   B7    B8    3データ・トラック(
3個のDASD上)B9  B10  B11  B1
2 P1  P2    P3    P4P5  P6 
   P7    P8    2パリティ・トラック
(同じDASD上)                
                  表3
【0057
】最初、ブロックB1、B5、B9のパリティがP1に
、ブロックB2、B6、B10のパリティがP3に、ブ
ロックB3、B7、B11のパリティがP5に、及びB
4、B8、B12のパリティがP7に格納される。ブロ
ックB1、B5、B9とパリティ・ブロックP1は“パ
リティ・グループ”を形成し、表3の例では各列のグル
ープが4つになる。
【0058】ブロックP2、P4、P6、及びP8は空
であり、使用できるので、DACには、どのパリティ・
ブロックが用いられ、どれが使用できるかを知るための
手段が必要である。そのためDACは、“空きスペース
・テーブル”というビットマップを、アレイの各列に対
して維持する。表3の例では、各ビットマップが8ビッ
トを占め、各々列内の各パリティ・ブロックに対応し、
どのブロックが空で、どのブロックが使用できるかが指
示される。システムが初期化されたとき、ビットマップ
は次のようになる。
【0059】DACは、パリティのストレージ・ロケー
ションを覚えておくために、各列の“パリティ・アドレ
ス・テーブル”を格納する。上記のビットマップに対応
するパリティ・アドレス・テーブルは次のようになる。
【0060】これは、ブロックの第1グループのパリテ
ィがP1にあり、第2グループのパリティがP3に、第
3グループのパリティがP5に、第4グループのパリテ
ィがP7にあることを示す。
【0061】パリティ・アドレス・テーブルが存在する
場合、空きスペース・テーブルには冗長なデータが含ま
れる。それでも、空きブロックを探すとき、サーチは高
速である。
【0062】ブロックB7への更新を考える。DACは
最初、ブロックが属する列を判定する。これで、どのパ
リティ・アドレス・テーブル、空きスペース・テーブル
をアクセスすべきかが分かる。次にブロックB7がグル
ープ3の一部であると判定し、パリティ・アドレス・テ
ーブルの第3項目にアクセスする。この項目は5である
。そこで、ブロックB7のパリティが現在P5にあるこ
とが分かる。DACは次に、空きスペース・テーブルを
調べ、新しいパリティ値を書き込める最も近い空きブロ
ックを探す。最も近い空きブロックは2つのパリティ・
トラックのいずれかにあると考えられる。DACは、空
きスペース・テーブルから、現在はP2とP6が両方と
も空いており、いずれかのロケーションを使えば、第3
グループのパリティの新しい値を格納することができる
と判定する。現在のロケーションP5に隣接するのはP
6なのでDACはP6を選択する。
【0063】DACの次の処理は以下のようになる。 (1)ブロックB7から古い値を読み出す。 (2)B7の新しい値を適当なところに書き込む。 (3)P5の古い値を読み出す。 (4)P5とP6の間のギャップで、P5とP7の古い
値と、B7に書き込むべき新しい値との排他的ORをと
る。 (5)その結果をP6に書き込む。
【0064】P5の読み出しとP6の書き込みは、更新
された列のパリティ・トラックを含むディスクへの1回
のアクセスで行われる。データB7を含むディスクに対
してはまだ2回のアクセスが必要である(1回は古い値
の読み出し、1回は新しい値の書き戻し)。DACは、
パリティを変更した後、空きスペース・テーブルを次の
ように更新し、 そしてパリティ・アドレス・テーブルを次のように更新
し、 グループ3のパリティがP6になり、P5が使用できる
ようになったことを指示する。
【0065】ダブル・パリティ方式の効率ダブル・パリ
ティ方式による効率向上には2つの面がある。第1に、
パリティの読み出しと書き込みのサービス時間を、DA
SDディスクのほぼ1回転分短縮する。第2に、DAS
Dが他の場合よりも1回転分速く開放されるか、または
書き込みの前にDASDを開放することによってDAS
Dアームの往復運動がなくなるので、DASDの使用率
が低下する。もしDAC23が、パリティの読み出しと
書き込みの間のパスを他の方法で予約した場合には、パ
スの使用率も低下する。これらのファクタを組み合わせ
た場合は、かなりの効果が得られよう。
【0066】多くのシステムでそうだが、データの読み
出しと書き込みの間の1回転についてDACからデータ
DASDへのパスを予約することは現実的でない。この
パスは多数のDASDによって共有されるからである。 したがって、その場合には古いデータ・ブロックの読み
出しと新しいデータ・ブロックの書き込みが2回のDA
SDアクセスで実行される。ただしDASDアレイ・コ
ントローラDAC23は、古いパリティの読み出しと新
しいパリティの書き込みにかかる時間が、平均アクセス
に比べて短い場合は、これら2つのイベントを1回のア
クセスで行える。以下の計算から、これにあたるケース
を示す。
【0067】ある時点で、列内のパリティ・ブロックの
1/2が空いているとする。上記の例では、P2とP6
が両方とも占有されている場合、DAC23はP3かま
たはP7が使用できるかどうかを判定する。システムは
、列のパリティ・トラックが両方とも同じ物理シリンダ
内に置かれるように構成するのが望ましい。ここではD
ASDが専用サーボを使用するものとする。DASDに
サーボが内蔵されている場合、ヘッド切り替え時間はか
なり長くなり、実際にパリティを書き込めるロケーショ
ンはP6とP7だけになる。
【0068】列のパリティ・トラックが両方とも同じ物
理シリンダに置かれるようにする方法はいくつかある。 1つは、パリティ・シリンダとデータ・シリンダを分離
し、T(各シリンダのトラック数)が2の倍数であるD
ASDを使用することである。コントローラDAC23
はその場合、新しいパリティを書き込めるブロックを見
つけるまでこのプロシジャを繰り返す。
【0069】空いているパリティ・ブロックが1ブロッ
ク時間で見つかる可能性は次のようになる。 1−(0.5)^2=0.75
【0070】m(各トラックのブロック数)が無限に大
きく、xを、空きブロックが1ブロック離れたところで
見つかる可能性とすると、空いているパリティ・ブロッ
クまでに予測されるブロック数は次のようになる。 x+2x(1−x)+ 3x((1−x)^2)+4x
((1−x)^3)+...これは1/xである。ダブ
ル・パリティ方式の場合、x=0.75で、サーチ対象
と予測されるブロック数は1.33である。
【0071】浮動パリティ・トラック方式浮動パリティ
・トラック方式は、ダブル・パリティ方式よりもストレ
ージ効率が高い。浮動パリティ・トラック方式では、ア
レイのどのDASDでも、全シリンダが、パリティ・ト
ラックしか含まないパリティ・シリンダ、またはデータ
・トラックしか含まないデータ・シリンダと指定される
。どのパリティ・シリンダも、T−1個の列(Tは各シ
リンダのトラック数)のパリティ・データを含む。各列
は、n個の異なるDASDからのn個のデータ・トラッ
クと、それらとは別のDASD上の(m個のブロックの
)パリティ・トラックとから成る。パリティ・トラック
のm個のブロックをすべて物理的に同じトラック上に置
く必要はない(後述)。通常、パリティ・シリンダ内の
スペースには、T個の列のパリティ・データを格納する
ことができる。浮動パリティ・トラック方式では、m個
の空きブロックがパリティ・シリンダに残り、それらは
効率を高めるために用いられる。
【0072】図2は、浮動パリティ・トラック方式によ
るDASDアレイ上のデータ/パリティ・ブロックのシ
リンダ及びトラックのレイアウトを示す。図2の例では
、d=5のDASDが用いられ、各DASDにC=4の
シリンダ、各シリンダにT=4のトラック、各トラック
にm=1のブロックがある。列サイズはn=4になって
いる。
【0073】上述のように、DASD上のPiは、他の
4つの各DASDからのDiを保護する。DASD1で
は、第2シリンダが唯一のパリティ・シリンダとして機
能する。DAC23は、各パリティ・シリンダ上の3つ
のパリティ・トラックしか格納せず、4番目のトラック
は空いたままである。例では、浮動パリティ・トラック
のアレイがパリティを分散した形でインプリメントされ
ている。アレイの各DASDには、TC/(1+(T/
(n*(T−1))))個のデータ・トラックと、TC
−(TC/(1+(T/(n*(T−1))))) 個
のパリティ・トラックが必要である。
【0074】全DASD上の全トラックを使用するには
、データ・トラック数とパリティ・トラック数は両方と
もTの倍数でなければならない。
【0075】浮動パリティ方式の動作 3つの列を考える。各列はn=3のデータ・トラックと
1パリティ・トラックを持つ。列番号と、列を格納する
ための配置アルゴリズムの知識が分かっている場合は、
パリティ・トラックのロケーションを生成することがで
きる。表4に、各シリンダのトラックがT=4、各トラ
ックのブロックがm=4のDASDを使った例を示す。 パリティが同じパリティ・シリンダに格納される3つの
列をすべて示している。
【0076】   B1  B2   B3   B4     B1
3  B14  B15  B16    B25  
B26  B27  B28  B5  B6   B
7   B8     B17  B18  B19 
 B20    B29  B30  B31  B3
2  B9  B10  B11  B12    B
21  B22  B23  B24    B33 
 B34  B35  B36これらは、9データ・ト
ラックである。   これは4トラック(3つはパリティ有り、1つは未
使用)のパリティ・シリンダである
【0077】表4の例では、B1ないしB12及びP1
ないしP4が第1列、B13ないしB24及びP5ない
しP8が第2列、B25ないしB36及びP9ないしP
12が第3列を表わす。まず、ブロックB1、B5、B
9のパリティがP1に格納され、ブロックB2、B6、
B10のパリティがP2に、ブロックB3、B7、B1
1のパリティがP3に、B4、B8、B12のパリティ
がP4に格納される。ブロックP5ないしP8は、デー
タ・ブロックB13ないしB24のパリティを格納する
。これらのブロックはすべて同じ列にある(P5はB1
3、B17、B21のパリティ等)。また、P9ないし
P12は、データ・ブロックB25ないしB36の列の
パリティである。P13ないしP16は最初は空いてい
る。DAC23は、各DASD上の各パリティ・シリン
ダに対して、16ビットの空きスペース・テーブル(1
ビットはパリティ・シリンダ内の各ブロックに対応)を
使用して、どのブロックが空いていて、どれが使用でき
るかを示す。DAC23がアレイを初期化すると、1シ
リンダの空きスペース・テーブルは次のようになる。
【0078】DAC23はまた、次のように、DASD
アレイのパリティ・シリンダごとにパリティ・アドレス
・テーブルを格納する。           1、2、3、4、5、6、7、8
、9、10、11、12
【0079】パリティ・アドレ
ス・テーブルはm(T−1)個の項目を含み、各項目は
、パリティがパリティ・シリンダに格納された各列の各
ブロック・グループに対応する。表4の例では、DAC
23が、同じパリティ・シリンダにある異なる3つの列
のパリティを格納し、これら3つの列の各々にブロック
のグループが4つあるので、パリティ・アドレス・テー
ブルには12項目必要である。
【0080】パリティ・アドレス・テーブルは、3つの
列の最初の列からの第1ブロック・グループがP1にあ
り、3つの列の第1列からの第2ブロック・グループの
パリティがP2にあること(以下同様)を指示する。最
後の項目は、3番目の列のブロックの最後のグループの
パリティがP12にあることを示す。
【0081】ブロックB7への更新を考える。DAC2
3は最初、ブロックが属する列を判定する。そこで、ど
のパリティ・シリンダがブロックB7のパリティ・デー
タを含むかが分かる。つまり、どのパリティ・アドレス
・テーブル、どの空きスペース・テーブルをアクセスす
べきかが分かる。また、対象となる列が、パリティがそ
のパリティ・シリンダにマップされた3つの列の最初の
列であることを判定する。次に、B7がグループ3の一
部であることを判定し、パリティ・アドレス・テーブル
の第3の項目にアクセスする。この項目は3である。そ
こで、B7のパリティが現在P3にあることが分かる。 DAC23は、空きスペース・テーブルから、P4、P
8、P12、P16のどれが空いているかを確かめ、P
16が空いていると判定する。したがって、パリティ・
データの新しいストレージ・ロケーションとしてP16
を選択する。これら4つのブロックのいずれも空いてい
ない場合、DAC23は次に、P1、P5、P9、P1
3のどれが空いているかを調べる。以下同様である。
【0082】DAC23は次のように処理を進める。 (1)ブロックB7から古い値を読み出す。 (2)B7の新しい値を適当なところに書き込む。 (3)P3の古い値を読み出す。 (4)P3とP16の間のギャップで、P3とB7の古
い値と、B7に書き込むべき新しい値との排他的ORを
とる。 (5)その結果をP16に書き込む。
【0083】DAC23は、P3の読み出しとP16の
書き込みを、更新された列のパリティ・トラックを含む
DASDへの1回のアクセスで行う。データB7を含む
DASDに対してはまだ2回のアクセスが必要である(
1回は古い値の読み出し、1回は新しい値の書き戻し)
。DAC23は、パリティの更新を終えた後、空きスペ
ース・テーブルを次のように更新し、そしてパリティ・
アドレス・テーブルを次のように更新し、          1、2、16、4、5、6、7、8
、9、10、11、12最初の列の第3グループのパリ
ティがP16になり、P3が使用できるようになったこ
とを指示する。
【0084】浮動パリティ・トラック方式の効率上述の
ように、古いデータ・ブロックの読み出しと、新しいデ
ータ・ブロックの書き込みには2回のDASDアクセス
が必要である。ただしDAC23は、古いパリティの読
み出しと新しいパリティの書き込みを1回のアクセスで
行える。下記の計算に示すように、これら2つのイベン
トの間の待ち時間が短いからである。
【0085】ある時点で、パリティ・シリンダの空きブ
ロックがmであり、1ブロックが空いている可能性はm
/mTまたは1/Tである。ここでまたP3の更新を考
える。パリティの新しい値は、P4、P8、P12、ま
たはP16が空いていれば1ブロック離れたところに書
き込める。DAC23は、次のTブロックのいずれかが
空いていれば新しいパリティを1ブロック離れたところ
に書き込める。この可能性は次のようになる。 1−((T−1)/T)^T
【0086】T=16とすると、この可能性は0.64
4である。先に示したとおり、空きブロックが見つかる
までサーチされる予想ブロック数は1/0.644また
は1.55である。
【0087】浮動データ/パリティ・トラック方式浮動
パリティ・トラック方式の基本は、パリティ・トラック
のほかデータ・トラックも含まれるように拡張すること
ができる。この方式を一般化する方法としては、各シリ
ンダでトラック(mブロック)を空き状態にしておくこ
とが考えられる(シリンダはこれでデータ・トラックと
パリティ・トラックの両方を含む)。各列は、異なるn
個のDASDからのnデータ・トラック(mブロック)
と、これとは別のDASD上のパリティ・トラック(m
ブロック)とから成る。トラックのmブロックはすべて
が物理的に同じトラックにある必要はない(後述)。
【0088】図3は浮動データ/パリティ・トラック方
式によるデータ/パリティ・ブロックのシリンダとトラ
ックのレイアウトを示す。図3の例では5つのDASD
が用いられ、各DASDはC=5シリンダを含み、各シ
リンダにT=3トラック、各トラックにm=1ブロック
がある。列サイズはn=4となっている。
【0089】上述のように、DASD上のPiは他の4
つの各DASDからのDiを保護する。各シリンダから
の1トラックは空いているので、各DASDから使用で
きるトラックは(T−1)*Cだけである。そのうち、
C*(T−1)/(1+(1/n)) はデータ・トラックであり、残りはパリティ・トラック
である。説明の便宜上、各DASD上のCの未使用トラ
ックを、ストレージ効率を下げるオーバヘッド・トラッ
クとしてカウントする。全DASD上の全トラックを使
用するには、データ・トラック数とパリティ・トラック
数は両方ともT−1の倍数でなければならない。
【0090】浮動データ/パリティ・ブロック方式最後
に、各シリンダでブロックが空き状態になる方式につい
て考える。この変形方式では、列は、トラックではなく
ブロックに基づいて定義される−−nの異なるDASD
からのnデータ・ブロックと別のDASD上のパリティ
・ブロック。
【0091】図4に、浮動データ/パリティ・ブロック
方式によるDASDアレイ上のデータ/パリティ・ブロ
ックのシリンダとトラックのレイアウトを示す。図4の
例では、列サイズがn=3で、4つのDASDが用いら
れ、各DASDがC=1シリンダを含み、各シリンダは
T=3トラック、各トラックはm=3ブロックである。
【0092】先にも述べたとおり、DASD上のPiは
他の3つの各DASDからのDiを保護するが、シリン
ダの1ブロックは空き状態にされる。各DASDから使
用できるブロックはC(mT−1)だけである。このう
ち、 C*(mT−1)/(1+(1/n))はデータ・ブロ
ック、残りはパリティ・ブロックである。各DASD上
のCの未使用ブロックは、オーバヘッド・ブロックとし
てカウントされ、この方式のオーバヘッドを判定するた
めに、パリティ・ブロック数に追加される。全DASD
上の全ブロックを使用するには、データ・ブロック数と
パリティ・ブロック数は両方ともmT−1の倍数でなけ
ればならない。
【0093】浮動データ/パリティ・ブロック方式の動
作 表5の例を考える。この例では4個のDASDが用いら
れ、各DASDに、シリンダ当たりT=4トラック、ト
ラック当たりm=4ブロックがある。列サイズはn=3
になっている。 データ、パリティ、及び1空きブロックを含むシリンダ
データ、パリティ、及び1空きブロックを含むシリンダ
データ、パリティ、及び1空きブロックを含むシリンダ
 データ、パリティ、及び1空きブロックを含むシリン
【0094】異なる4つのDASDからの4シリンダを
示している。DAC23は、A1、B1、C1のパリテ
ィをD1に、A2、B2、C2のパリティをD2に、以
下同様に格納する。A15、B15、C15のパリティ
はD15に置かれ、A16、B16、C16、D16は
空いたままである。各DASD上の各シリンダに対して
空きスペース・テーブルがあり、各空きスペース・テー
ブルの1項目は、シリンダ内の空きブロックのロケーシ
ョンを示す。初期化時に空きスペース・テーブルは次の
ようになる。
【0095】DAC23はまた、DASDアレイの各シ
リンダに対してパリティ・アドレス・テーブルを格納す
る。パリティ・アドレス・テーブルはこの例の4つのシ
リンダでは次のようになる。            1、2、3、4、5、6、7、
8、9、10、11、12、13、14、15    
       1、2、3、4、5、6、7、8、9、
10、11、12、13、14、15        
   1、2、3、4、5、6、7、8、9、10、1
1、12、13、14、15           1
、2、3、4、5、6、7、8、9、10、11、12
、13、14、15
【0096】パリティ・アドレス・
テーブルは、データまたはパリティを含むシリンダ内の
15ブロックについて、それが格納されたシリンダ内の
現在のブロックを示す。
【0097】ここで、4つのシリンダのうち最初のシリ
ンダ内の第3ブロックへの更新について考える。DAC
23は、このシリンダのパリティ・アドレス・テーブル
から、このブロックがA3に格納されていると判定し、
そのブロックのパリティ・データを含むシリンダを更新
することを決定する。DAC23は次に、このシリンダ
のパリティ・アドレス・テーブルにアクセスし、そのパ
リティがD3に格納されていると判定する。DAC23
は、対応する空きスペース・テーブルから、第1シリン
ダ上のA16と最後のシリンダ上のD16が空いている
と判定する。第1シリンダを含むDASD上では、1回
のアクセスで、A3からデータを読み出し、新しいデー
タをA16に書き込む。A3の値を得た後、DAC23
は別のアクセスで、D3を読み出し、新しいパリティを
計算して、それをD16に書き込む。
【0098】空きスペース・テーブルの値は最終的に次
のようになる。 パリティ・アドレス・テーブルは次のようになる。            1、2、16、4、5、6、7
、8、9、10、11、12、13、14、15   
        1、2、3、4、5、6、7、8、9
、10、11、12、13、14、15       
    1、2、3、4、5、6、7、8、9、10、
11、12、13、14、15           
1、2、16、4、5、6、7、8、9、10、11、
12、13、14、15
【0099】浮動データ/パリ
ティ・ブロック方式の効率 シリンダの空きブロックはどこにでも置けるので、デー
タまたはパリティの読み出しと書き込みの間の遅れは、
平均で半回転になる。読み出しと書き込みが1回のアク
セスで行えるかどうかは議論の余地がある。半回転の間
にDASDとDAC23の間のパスを維持するのは依然
許容できないと思われるからである。
【0100】この方式による効率向上は、従来のパリテ
ィ方式に比べて、サービス時間が1/2回転であること
と、DASDが、1回転待つ必要がなく、1/2回転で
開放されることによるDASD使用率の低下である。D
ASDとDAC23との間のパスが、読み出しと書き込
みの間に開放されれば、従来のパリティ方式に必要なア
クセス回数は少なくならない。
【0101】ここで、デバイスのキュー配置がないとき
、I/Oレートが低い場合にのみ有効なサービス時間を
下記のように分析してみる。従来のパリティ方式では、
読み出してからブロックをDASDに書き込むまでの時
間は、 平均シーク+遅れ(0.5回転)+1回転+1ブロック
書き込み であり、これは浮動データ/パリティ・ブロック方式で
は、 平均シーク+遅れ(0.5回転)+0.5回転+1ブロ
ック書き込み である。平均シーク時間を3msecs、DASD回転
時間を16msecs、ブロック書き込み時間を1ms
ecとすると、ブロックの読み出しと書き込みにかかる
時間は28msecから20msecになる。
【0102】拡張 浮動パリティ・トラック方式は、各パリティ・シリンダ
のトラックが2個以上空くように拡張することができる
。浮動データ/パリティ・トラック方式は、各シリンダ
のトラックが2個以上空くように拡張することができる
。そして浮動データ/パリティ・ブロック方式は、各シ
リンダのブロックが2個以上空くように拡張することが
できる。
【0103】4つの変形方式のうち浮動パリティ・トラ
ック方式は、パリティのオーバヘッドが少なく、テーブ
ル(空きスペース・マップ、パリティ・アドレス・テー
ブル)のオーバヘッドも少なく、最大の効率を示す。2
つの変形方式(浮動パリティ・トラック、浮動データ/
パリティ・トラック)は、ヘッド切り替えが高速なDA
SDアレイには適している。他の方式(ダブル・パリテ
ィ、浮動データ/パリティ・ブロック)は、ヘッド切り
替えが遅いDASDアレイで利用することができる。
【0104】
【発明の効果】DASDアレイにおいて、データ・ブロ
ック及びパリティ・ブロックを迅速に更新することがで
きる。即ち、必要なトラック・サイクル若しくはアクセ
ス回数を少なくすることができる。
【図面の簡単な説明】
【図1】プロセサ・アレイと、DASDアレイで形成さ
れた外部ストレージ・サブシステムとの間のデータの流
れ図である。
【図2】浮動パリティ・トラック方式によるDASDア
レイ上のデータとパリティのブロックのシリンダ及びト
ラックのレイアウトを示す図である。
【図3】浮動データ/パリティ・トラック方式によるデ
ータとパリティのブロックのシリンダ及びトラックのレ
イアウトを示す図である。
【図4】浮動データ/パリティ・ブロック方式によるD
ASDアレイ上のデータとパリティのブロックのシリン
ダ及びトラックのレイアウトを示す図である。
【符号の説明】
1・・・プロセサ・アレイ 3・・・DASDアレイ 5、7、9・・・プロセサ 15・・・チャネル・アダプタ 19・・・レシーバ 21・・・トランスミッタ 23・・・DASDアレイ・コントローラ24・・・デ
ータ・バッファ 25・・・テーブル・メモリ 27、29、31・・・ECC回路 33、35、37・・・DASD D1、D2等・・・データ・ブロック

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】データ・ブロックと明示的パリティ・ブロ
    ックより成るパリティ・グループを、少ないDASDト
    ラック・サイクルでDASDアレイに更新記録する方法
    であって、(a)各パリティ・グループのデータ・ブロ
    ックとパリティ・ブロックを、障害について関連性のな
    い形式で複数のDASDに分散し、且つ未使用DASD
    スペースを予約するステップと、(b)第1トラック・
    サイクルの間に上記パリティ・グループの選択された古
    いデータ・ブロック及びパリティ・ブロックを読み出す
    ことによって、該データ・ブロックを修正し、且つ新し
    いパリティ・ブロックを計算し、少なくとも該新しいパ
    リティ・ブロックを予約された未使用スペースにシャド
    ー・ライトし、該修正されたデータ・ブロックを第1ト
    ラック・サイクルの後続部分において該予約された未使
    用スペースにシャドー・ライトするか、又は該修正され
    たデータ・ブロックを第2サイクルの間に所定位置に書
    き込むステップとを含む、更新記録方法。
  2. 【請求項2】新しいパリティを計算する上記ステップが
    、上記古いデータ・ブロックと、上記修正されたデータ
    ・ブロックと上記古いパリティ・ブロックとのモジュロ
    2加算を行うステップを含む、請求項1に記載の更新記
    録方法。
  3. 【請求項3】マルチトラックの循環記憶メディアを構成
    するアレイの所定個数のDASDに書き込まれたデータ
    ・ブロックとこれに対応する明示的パリティ・ブロック
    で形成されたパリティ・グループを更新する方法であっ
    て、(a)ブロック、トラック、またはシリンダより成
    る集合から選択され、上記パリティ・ブロックが定義さ
    れた上記パリティ・グループの障害について関連性のな
    いパターンで上記アレイにおいて上記パリティ・グルー
    プをフォーマットし、且つ対応する空きパリティのブロ
    ック、トラック、またはシリンダのスペースを、グルー
    プ数を超える個数だけ、上記アレイにおいて予約し分散
    させるステップと、(b)第1トラック・サイクルの間
    に、上記アレイ内の対応する選択されフォーマットされ
    たブロック、トラック、またはシリンダからデータ・ブ
    ロックとこれに対応するパリティ・ブロックを読み出す
    ことによって、あるデータ・ブロックを修正し、第2ト
    ラック・サイクルの間に、新しいパリティ・ブロックを
    計算し、修正されたデータ・ブロックを書き込み、該新
    しいパリティ・ブロックを元のパリティ・ブロックが再
    現する前に検出される使用可能な空きスペースにシャド
    ー・ライトするステップとを含む、パリティ・グループ
    更新方法。
  4. 【請求項4】第2トラック・サイクルの間に、上記修正
    されたデータ・ブロックが所定位置に書き込まれる、請
    求項3に記載のパリティ・グループ更新方法。
  5. 【請求項5】上記第2トラック・サイクルの間に、上記
    修正されたデータ・ブロックが、上記第1サイクルの後
    続部分において元のデータ・ブロックが再現する前に検
    出されるパリティに予約されていない使用可能な空きス
    ペースにシャドー・ライトされる、請求項3に記載のパ
    リティ・グループ更新方法。
  6. 【請求項6】上記ステップ(b)が、シャドー・ライト
    されたデータ・ブロックとパリティ・ブロックに予約さ
    れたDASDアレイ・スペースのロケーションと占有状
    態を管理するテーブルを用いることを含む、請求項5に
    記載のパリティ・グループ更新方法。
  7. 【請求項7】マルチトラックの循環記憶メディアを構成
    するN個のDASDのアレイに書き込まれたデータ・ブ
    ロックと明示的パリティ・ブロックで形成されたパリテ
    ィ・グループを修正するのに必要なアクセスの回数を最
    小にする方法であって、 (a)上記パリティ・ブロックが定義された上記パリテ
    ィ・グループの障害について関連性のないパターンで上
    記DASDアレイにおいて上記パリティ・グループをフ
    ォーマットし、空きパリティ・ブロック・スペースが、
    各パリティ・ブロックに1個のパリティ・グループを置
    くのに必要なスペースを超えるように、該空きパリティ
    ・ブロック・スペースを該アレイにおいて予約し分散さ
    せるステップと、(b)第1トラック・サイクルの間に
    、上記アレイ内の選択されたDASDトラックから上記
    データ・ブロックとこれに対応する上記パリティ・ブロ
    ックを読み出すことによって、あるデータ・ブロックを
    修正し、新しいパリティ・ブロックを計算し、修正され
    たデータ・ブロックを所定位置に書き込み、該第1サイ
    クルの後続部分において、元のパリティ・ブロックが再
    現する前に、該新しいパリティ・ブロックを最初に使用
    可能な空きスペースにシャドー・ライトするステップと
    を含む、アクセス回数低減方法。
  8. 【請求項8】上記明示的パリティ・ブロックが各々、障
    害ついて関連性のないトラック上に列主オーダで配置さ
    れたデータ・ブロックの所定個数のグループに関して定
    義される、請求項7に記載のアクセス回数低減方法。
  9. 【請求項9】上記フォーマット・ステップが、上記明示
    的パリティ・ブロックと予約された空きパリティ・ブロ
    ック・スペースを、上記グループの障害について関連性
    のないフォーマットで予め選択されていたトラックまた
    はシリンダに配置し、且つ、どのパリティ・ブロック・
    スペースが使用できるかを示すテーブルと、修正対象の
    データ・ブロックを含むグループをカバーする該パリテ
    ィ・ブロックのアドレスを示すテーブルとを維持するス
    テップを含む、請求項7に記載のアクセス回数低減方法
  10. 【請求項10】上記修正ステップが、上記テーブルを通
    して、修正されたパリティ・ブロックの書き込みに使用
    できる次の空きスペースを確認するステップを含む、請
    求項9に記載のアクセス回数低減方法。
  11. 【請求項11】マルチトラックの循環記憶メディアを構
    成するN個のDASDのアレイに書き込まれたデータ・
    ブロックと明示的パリティ・ブロックで形成されたパリ
    ティ・グループの修正に必要なアクセス回数を最小にす
    る方法であって、(a)上記パリティ・グループを、上
    記パリティ・ブロックが定義された該グループの障害に
    ついて関連性のないパターンで、上記DASDアレイに
    おける専用のデータ・シリンダ及びパリティ・シリンダ
    にフォーマットし、空きパリティ・ブロック・スペース
    が、各パリティ・グループに1個のパリティ・ブロック
    を置くのに必要なスペースを超えるように、該空きパリ
    ティ・ブロック・スペースを該パリティ・シリンダに分
    散させるステップと、(b)第1トラック・サイクルの
    間に、上記データ・ブロックを読み出し、修正されたデ
    ータ・ブロックを所定位置に書き込むことによって、あ
    るデータ・ブロックを修正し、対応するパリティ・ブロ
    ックを読み出し、新しいパリティ・ブロックを計算して
    、該第1トラック・サイクルの後続部分において元のパ
    リティ・ブロックが再現する前に、該新しいパリティ・
    ブロックをパリティ・シリンダ上の最初に使用可能な予
    約された空きスペースにシャドー・ライトするステップ
    とを含む、アクセス回数低減方法。
  12. 【請求項12】T個のトラックを持ち、T−1個の列の
    パリティを含み、該T−1個のパリティ・トラックの各
    々が、障害について関連性のないn−1個のDASDシ
    リンダ上のn個のデータ・トラックのモジュロ2加算で
    ある、少なくとも1個のパリティ・シリンダが含まれる
    ように、上記アレイ内の上記n個のDASDの各々がフ
    ォーマットされる、請求項11に記載のアクセス回数低
    減方法。
  13. 【請求項13】上記フォーマット・ステップが、上記明
    示的パリティ・ブロック及び予約された空きパリティ・
    ブロック・スペースを、上記グループの障害について関
    連性のないフォーマットで予め選択されていたトラック
    またはシリンダに配置し、且つ、どのパリティ・ブロッ
    ク・スペースが使用できるかを示すテーブルと、修正対
    象のデータ・ブロックを含む該グループをカバーする該
    パリティ・ブロックのアドレスを示すテーブルとを維持
    するステップを含む、請求項11に記載のアクセス回数
    低減方法。
  14. 【請求項14】上記空きデータ・ブロック・スペースが
    すべてのシリンダ上に予約されるように上記フォーマッ
    ト・ステップが変更され、上記修正されたデータ・ブロ
    ックが任意のシリンダ上の最初に使用できる空きスペー
    スにシャドー・ライトされるように、上記修正ステップ
    が変更される、請求項11に記載のアクセス回数低減方
    法。
  15. 【請求項15】マルチトラックの循環記憶メディアを構
    成するN個のDASDのアレイに書き込まれたデータ・
    ブロックと明示的パリティ・ブロックで形成されたパリ
    ティ・グループを修正するのに必要なアクセス回数を最
    小にする方法であって、(a)上記パリティ・ブロック
    が定義された上記パリティ・グループの障害について関
    連性のないパターンで、且つ各シリンダに、データ・ブ
    ロックとパリティ・ブロック及び少なくとも1個の予約
    された空きブロック・スペースが含まれるように、上記
    パリティ・グループを上記DASDアレイにおけるシリ
    ンダにフォーマットするステップと、(b)第1トラッ
    ク・サイクルの間に、或るデータ・ブロックを読み出し
    、修正されたデータ・ブロックを古いデータ・ブロック
    が再現する前に検出される最初に使用可能な空きスペー
    スにシャドー・ライトすることによって、該データ・ブ
    ロックを修正し、対応するパリティ・ブロックを読み出
    し、新しいパリティ・ブロックを計算して、古いパリテ
    ィ・ブロックが再現する前に検出される2番目に使用可
    能な空きスペースに該新しいパリティ・ブロックをシャ
    ドー・ライトするステップとを含む、アクセス回数低減
    方法。
  16. 【請求項16】上記フォーマット・ステップが、スペー
    スのロケーションと占有状態に関するテーブルの形でス
    ペース管理手段を生成するステップを含む、請求項15
    に記載のアクセス回数低減方法。
  17. 【請求項17】パリティ判定手段と、データ・ブロック
    及び明示的パリティ・ブロックから成るパリティ・グル
    ープの読み出しと書き込みをDASDの対応するトラッ
    クに対して行う手段とを含み、論理的に関連づけられ、
    障害について関連性のないN個の該DASDのアレイで
    あって、該書き込み手段が、(a)各パリティ・グルー
    プの上記データ・ブロックとパリティ・ブロックを、障
    害について関連性のない形式で上記アレイの上記DAS
    Dに分散させ、且つ未使用DASDスペースを予約する
    手段と、(b)第1トラック・サイクルの間に、上記パ
    リティ・グループの選択された古いデータ・ブロック及
    びパリティ・ブロックを読み出すことによって、該デー
    タ・ブロックを修正し、新しいパリティ・ブロックを計
    算し、予約された未使用スペースに少なくとも該新しい
    パリティ・ブロックをシャドー・ライトし、且つ、該第
    1トラック・サイクルの後続部分において、該予約され
    た未使用スペースに該修正されたデータ・ブロックをシ
    ャドー・ライトするか又は第2サイクルの間に、修正さ
    れたデータ・ブロックを所定位置に書き込む手段とを含
    む、DASDアレイ。
JP3199910A 1990-10-18 1991-07-16 Dasdアレイのための更新記録方法及び装置 Expired - Lifetime JPH0642193B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/600,034 US5375128A (en) 1990-10-18 1990-10-18 Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US600034 1990-10-18

Publications (2)

Publication Number Publication Date
JPH04230512A true JPH04230512A (ja) 1992-08-19
JPH0642193B2 JPH0642193B2 (ja) 1994-06-01

Family

ID=24402103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3199910A Expired - Lifetime JPH0642193B2 (ja) 1990-10-18 1991-07-16 Dasdアレイのための更新記録方法及び装置

Country Status (3)

Country Link
US (1) US5375128A (ja)
EP (1) EP0481759A3 (ja)
JP (1) JPH0642193B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
US5621882A (en) * 1992-12-28 1997-04-15 Hitachi, Ltd. Disk array system and method of renewing data thereof
US6098191A (en) * 1996-02-28 2000-08-01 Hitachi, Ltd. Storage unit and storage unit subsystem
JP2012018624A (ja) * 2010-07-09 2012-01-26 Nec Corp データ記録再生装置、データ記録方法、及び、データ記録プログラム

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
US5636356A (en) * 1992-09-09 1997-06-03 Hitachi, Ltd. Disk array with original data stored in one disk drive and duplexed data distributed and stored in different disk drives
US5819109A (en) * 1992-12-07 1998-10-06 Digital Equipment Corporation 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
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5761402A (en) * 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
US5566316A (en) * 1994-02-10 1996-10-15 Storage Technology Corporation Method and apparatus for hierarchical management of data storage elements in an array storage device
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
DE69524329T2 (de) * 1994-09-16 2002-08-14 International Computers Ltd., Putney Datenspeicherplattenanordnung
US5533190A (en) * 1994-12-21 1996-07-02 At&T Global Information Solutions Company Method for maintaining parity-data consistency in a disk array
US5748885A (en) * 1994-12-23 1998-05-05 Emc Corporation Method and apparatus for reduction of I/O operations in persistent storage system
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5649093A (en) * 1995-05-22 1997-07-15 Sun Microsystems, Inc. Server disk error recovery system
US5720029A (en) * 1995-07-25 1998-02-17 International Business Machines Corporation Asynchronously shadowing record updates in a remote copy session using track arrays
US5684944A (en) * 1995-08-14 1997-11-04 Lubbers; Clark E. Atomic update of EDC protected data
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6449730B2 (en) 1995-10-24 2002-09-10 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6067635A (en) * 1995-10-27 2000-05-23 Lsi Logic Corporation Preservation of data integrity in a raid storage device
US5857203A (en) * 1996-07-29 1999-01-05 International Business Machines Corporation Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system
US5864655A (en) * 1996-09-09 1999-01-26 International Business Machines Corporation Managing removable media in raid and rail environments
KR100223186B1 (ko) * 1997-01-29 1999-10-15 윤종용 Dvd-ram에서 고속의 데이타기록방법
US5960169A (en) * 1997-02-27 1999-09-28 International Business Machines Corporation Transformational raid for hierarchical storage management system
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
US6446220B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating data and parity data with and without read caches
US6272662B1 (en) 1998-08-04 2001-08-07 International Business Machines Corporation Distributed storage system using front-end and back-end locking
US6332197B1 (en) * 1998-08-04 2001-12-18 International Business Machines Corp. System for updating data in a multi-adaptor environment
US6128762A (en) * 1998-08-04 2000-10-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system with request forwarding
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US6446237B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6769088B1 (en) * 1999-06-30 2004-07-27 Maxtor Corporation Sector-coding technique for reduced read-after-write operations
KR100390853B1 (ko) * 2000-06-07 2003-07-10 차상균 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
US7054927B2 (en) 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6862692B2 (en) 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US20020174295A1 (en) * 2001-01-29 2002-11-21 Ulrich Thomas R. Enhanced file system failure tolerance
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US20020138559A1 (en) * 2001-01-29 2002-09-26 Ulrich Thomas R. Dynamically distributed file system
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US7062644B2 (en) * 2001-05-30 2006-06-13 International Business Machines Corporation Method, system, and program for initializing a storage device comprising multiple storage units through a storage controller
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US7640484B2 (en) * 2001-12-28 2009-12-29 Netapp, Inc. Triple parity technique for enabling efficient recovery from triple failures in a storage array
US8402346B2 (en) 2001-12-28 2013-03-19 Netapp, Inc. N-way parity technique for enabling recovery from up to N storage device failures
KR100463841B1 (ko) * 2002-02-25 2004-12-29 한국전자통신연구원 레이드 서브 시스템과 이를 이용한 디스크 에러 모드에서데이터 입출력 및 복구 방법
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
US7386754B2 (en) * 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
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
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
US20080183988A1 (en) * 2007-01-30 2008-07-31 Yanling Qi Application Integrated Storage System Volume Copy and Remote Volume Mirror
US8209587B1 (en) 2007-04-12 2012-06-26 Netapp, Inc. System and method for eliminating zeroing of disk drives in RAID arrays
US7975102B1 (en) 2007-08-06 2011-07-05 Netapp, Inc. Technique to avoid cascaded hot spotting
US8132088B2 (en) * 2007-08-14 2012-03-06 Hewlett-Packard Development Company, L.P. Data formatting in data storage
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
US8566673B2 (en) * 2011-08-04 2013-10-22 Lsi Corporation Method for improving performance in RAID systems
US11579797B2 (en) * 2021-04-29 2023-02-14 Micron Technology, Inc. Memory sub-system refresh

Family Cites Families (10)

* 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
JPS5637883A (en) * 1979-09-04 1981-04-11 Fanuc Ltd Information rewrite system
DE3040004A1 (de) * 1979-10-24 1981-05-07 Matsushita Electric Industrial Co., Ltd., Kadoma, Osaka Verfahren und vorrichtung zum codieren von pruefworten geringer redundanz aus ursprungsdaten
JPS60142418A (ja) * 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
FR2591015B1 (fr) * 1985-11-29 1989-05-12 Picard Michel Procede d'ecriture avec mise a jour et de lecture d'informations sur un support non effacable organise en secteurs
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4989206A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US4989205A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5130992A (en) * 1990-04-16 1992-07-14 International Business Machines Corporaiton File-based redundant parity protection in a parallel computing system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
US5621882A (en) * 1992-12-28 1997-04-15 Hitachi, Ltd. Disk array system and method of renewing data thereof
US6049890A (en) * 1992-12-28 2000-04-11 Hitachi, Ltd. Disk array system and its control method
US6256749B1 (en) 1992-12-28 2001-07-03 Hitachi, Ltd. Disk array system and its control method
US6557140B2 (en) 1992-12-28 2003-04-29 Hitachi, Ltd. Disk array system and its control method
US7185265B2 (en) 1992-12-28 2007-02-27 Hitachi, Ltd. Disk array system and its control method
US6098191A (en) * 1996-02-28 2000-08-01 Hitachi, Ltd. Storage unit and storage unit subsystem
JP2012018624A (ja) * 2010-07-09 2012-01-26 Nec Corp データ記録再生装置、データ記録方法、及び、データ記録プログラム

Also Published As

Publication number Publication date
US5375128A (en) 1994-12-20
EP0481759A2 (en) 1992-04-22
JPH0642193B2 (ja) 1994-06-01
EP0481759A3 (en) 1993-08-18

Similar Documents

Publication Publication Date Title
JPH04230512A (ja) Dasdアレイのための更新記録方法及び装置
JP3304115B2 (ja) 構成可能な冗長アレイ記憶装置
JP2959901B2 (ja) 記憶装置の冗長アレイおよびオンライン再構成方法
US7281089B2 (en) System and method for reorganizing data in a raid storage system
US5632012A (en) Disk scrubbing system
US7315976B2 (en) Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US5504858A (en) Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
US5526482A (en) Storage device array architecture with copyback cache
US5974544A (en) Method and controller for defect tracking in a redundant array
US8839028B1 (en) Managing data availability in storage systems
US5313585A (en) Disk drive array with request fragmentation
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
US9104342B2 (en) Two stage checksummed raid storage model
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
US8677063B2 (en) Parity declustered storage device array with partition groups
US6647460B2 (en) Storage device with I/O counter for partial data reallocation
US8112679B2 (en) Data reliability bit storage qualifier and logical unit metadata
US20050050381A1 (en) Methods, apparatus and controllers for a raid storage system
JPH0769873B2 (ja) コンピユータのためのメモリ装置及びメモリ構成方法
US5896493A (en) Raid algorithm using a multimedia functional unit
US7028139B1 (en) Application-assisted recovery from data corruption in parity RAID storage using successive re-reads
KR19980047273A (ko) 레이드 레벨 5 시스템에서 캐쉬 관리 방법
Thomasian RAID Organizations for Improved Reliability and Performance: A Not Entirely Unbiased Tutorial
US20240354246A1 (en) Method and Apparatus for Generating Chunk Group and Device
US7337270B2 (en) Apparatus, system, and method for servicing a data storage device using work-in-process (WIP) maps