JPH09231017A - データ記憶装置 - Google Patents
データ記憶装置Info
- Publication number
- JPH09231017A JPH09231017A JP9002533A JP253397A JPH09231017A JP H09231017 A JPH09231017 A JP H09231017A JP 9002533 A JP9002533 A JP 9002533A JP 253397 A JP253397 A JP 253397A JP H09231017 A JPH09231017 A JP H09231017A
- Authority
- JP
- Japan
- Prior art keywords
- data
- array
- parity
- disk
- written
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
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)
- Detection And Correction Of Errors (AREA)
Abstract
(57)【要約】
【課題】 フォールト・トレラント記憶装置における処
理性能の向上を図る。 【解決手段】データが書き込まれるべきアレイ内のブロ
ックすなわちストライプの目標領域を先ず識別する。次
に、目標領域にある古いデータを読み取ることなく新し
いデータを直接目標領域に書き込む。その際、書き込ま
れたデータが非保護であることを示すためNPRBすな
わちパリティ再構築必要ビットを不揮発性メモリに書き
込む。現在存在するNPRBの数を基にMTTDLすな
わち平均データ損失時間を動的に計算し、MTTDLが
所定の範囲内にある限り、アレイがアイドルになるまで
パリティ更新を延期する。ディスク・アレイがアイドル
になると、パリティ情報を生成してストライプの該当す
る目標領域に書き込む。MTTDL条件が充足されない
場合、更新は従来技術のRMW更新プロトコールに従っ
て行われる。このようにしてパリティ情報生成および書
き込みの無駄を省く。
理性能の向上を図る。 【解決手段】データが書き込まれるべきアレイ内のブロ
ックすなわちストライプの目標領域を先ず識別する。次
に、目標領域にある古いデータを読み取ることなく新し
いデータを直接目標領域に書き込む。その際、書き込ま
れたデータが非保護であることを示すためNPRBすな
わちパリティ再構築必要ビットを不揮発性メモリに書き
込む。現在存在するNPRBの数を基にMTTDLすな
わち平均データ損失時間を動的に計算し、MTTDLが
所定の範囲内にある限り、アレイがアイドルになるまで
パリティ更新を延期する。ディスク・アレイがアイドル
になると、パリティ情報を生成してストライプの該当す
る目標領域に書き込む。MTTDL条件が充足されない
場合、更新は従来技術のRMW更新プロトコールに従っ
て行われる。このようにしてパリティ情報生成および書
き込みの無駄を省く。
Description
【0001】
【発明の属する技術分野】本発明は、コンピュータのデ
ータ記憶システムに関するもので、特に、独立ディスク
の冗長アレイに適するフォールト・トレラント記憶装置
アーキテクチャに関するものである。
ータ記憶システムに関するもので、特に、独立ディスク
の冗長アレイに適するフォールト・トレラント記憶装置
アーキテクチャに関するものである。
【0002】
【従来の技術】コンピュータ産業において、現在使用さ
れているパーソナル・コンピュータは、現在より大型で
高価な10年前のメインフレームおよびミニコンピュー
タの能力を越える能力を有する。このような処理性能の
向上は、部分的にはバス・サイズの増大とマイクロプロ
セッサの高速化に起因している。コンピュータの処理性
能を向上させる努力における1つの要因は、データ損失
に対する懸念を持つことなく大容量不揮発性記憶装置と
マイクロプロセッサの間のデータ転送時間を短縮する点
である。
れているパーソナル・コンピュータは、現在より大型で
高価な10年前のメインフレームおよびミニコンピュー
タの能力を越える能力を有する。このような処理性能の
向上は、部分的にはバス・サイズの増大とマイクロプロ
セッサの高速化に起因している。コンピュータの処理性
能を向上させる努力における1つの要因は、データ損失
に対する懸念を持つことなく大容量不揮発性記憶装置と
マイクロプロセッサの間のデータ転送時間を短縮する点
である。
【0003】元来、高性能大容量記憶装置は、単一の大
規模で高価なディスク(Single Large Expensive Diskを
略称してSLEDとも呼ばれる)を使った。SLED
は、12ないし14インチの範囲の典型的な形状係数を
持っていて、データ損失を非常に懸念しなければならな
いことが判明している。例えば、SLEDが故障する
と、そこに記憶されていた情報はもはやコンピュータに
とって使用できなくなる。
規模で高価なディスク(Single Large Expensive Diskを
略称してSLEDとも呼ばれる)を使った。SLED
は、12ないし14インチの範囲の典型的な形状係数を
持っていて、データ損失を非常に懸念しなければならな
いことが判明している。例えば、SLEDが故障する
と、そこに記憶されていた情報はもはやコンピュータに
とって使用できなくなる。
【0004】SLEDの欠点を克服するため、RAID
(Redundant Arrays of IndependentDisksの略称)が開発
された。RAIDアーキテクチャは、並列的にデータの
読み書きが行われる標準的ディスク集団アレイを含む。
(Redundant Arrays of IndependentDisksの略称)が開発
された。RAIDアーキテクチャは、並列的にデータの
読み書きが行われる標準的ディスク集団アレイを含む。
【0005】RAIDアーキテクチャの1つであるRA
ID5は、パリティ・エラー訂正技術を使用して冗長情
報を作成し、それによってディスク故障の際のデータ損
失を防止する。RAID5アーキテクチャにおいては、
集合的N+1個のディスク(冗長度グループとしても呼
ばれる)が、ブロックと呼ばれる複数の等サイズのアド
レス領域に分割される。各ディスクは一般的に同数のブ
ロックを含む。同じディスク・アドレス範囲を持つ冗長
度グループの各ディスクのブロックは、「ストライプ
(帯)」と呼ばれる。各ストライプは、N個のデータ・ブ
ロックと該N個のデータ・ブロック部分に関するパリテ
ィ情報を保持する1つのディスク上の1つのパリティ・
ブロックを持つ。パリティ情報は、ディスク故障の事象
の際のデータ損失を防止する。各アレイは、複数のスト
ライプとそれに対応する複数のパリティ・ブロックを持
ち、パリティ・ブロックには、アレイを形成する異なる
ディスク上に典型的に記録される複数のストライプに関
するパリティ・データが保持される。
ID5は、パリティ・エラー訂正技術を使用して冗長情
報を作成し、それによってディスク故障の際のデータ損
失を防止する。RAID5アーキテクチャにおいては、
集合的N+1個のディスク(冗長度グループとしても呼
ばれる)が、ブロックと呼ばれる複数の等サイズのアド
レス領域に分割される。各ディスクは一般的に同数のブ
ロックを含む。同じディスク・アドレス範囲を持つ冗長
度グループの各ディスクのブロックは、「ストライプ
(帯)」と呼ばれる。各ストライプは、N個のデータ・ブ
ロックと該N個のデータ・ブロック部分に関するパリテ
ィ情報を保持する1つのディスク上の1つのパリティ・
ブロックを持つ。パリティ情報は、ディスク故障の事象
の際のデータ損失を防止する。各アレイは、複数のスト
ライプとそれに対応する複数のパリティ・ブロックを持
ち、パリティ・ブロックには、アレイを形成する異なる
ディスク上に典型的に記録される複数のストライプに関
するパリティ・データが保持される。
【0006】RAID5の欠点は、現在時パリティ情報
を維持するため、複数の入出力要求を伴う読み取り−修
正−書き込み命令(Read-Modify-Writeを略してRMWと
呼ばれる)更新プロトコールを必要とする点である。R
MW更新プロトコールは、古いパリティおよびデータの
ブロックを読み取りそのブロックと新しいデータのXO
R(排他的論理和)演算を行うことを必要とする。その
後、新しいデータおよびパリティ・ブロックがアレイに
書き込まれなければならない。結果として、このような
動作は、予備読み取り命令を必要としないSLEDに比
較して、より長い回転待ち時間を必要とする。古いデー
タの予備読み取りは、書き込み命令を実行する前にディ
スクが適切な位置に再度回転するまでの待機期間を必要
とさせる。待機時間は、部分的ストライプを伴う多数の
小規模ファイル更新を行う場合に特に厄介である。これ
は、小規模更新問題として知られているものである。回
転待機時間が、典型的RMWについて必要とされる時間
の約50%にも達することもあるので、複数の部分的ス
トライプ更新は、膨大なアクセス時間量という結果を生
じることがある。
を維持するため、複数の入出力要求を伴う読み取り−修
正−書き込み命令(Read-Modify-Writeを略してRMWと
呼ばれる)更新プロトコールを必要とする点である。R
MW更新プロトコールは、古いパリティおよびデータの
ブロックを読み取りそのブロックと新しいデータのXO
R(排他的論理和)演算を行うことを必要とする。その
後、新しいデータおよびパリティ・ブロックがアレイに
書き込まれなければならない。結果として、このような
動作は、予備読み取り命令を必要としないSLEDに比
較して、より長い回転待ち時間を必要とする。古いデー
タの予備読み取りは、書き込み命令を実行する前にディ
スクが適切な位置に再度回転するまでの待機期間を必要
とさせる。待機時間は、部分的ストライプを伴う多数の
小規模ファイル更新を行う場合に特に厄介である。これ
は、小規模更新問題として知られているものである。回
転待機時間が、典型的RMWについて必要とされる時間
の約50%にも達することもあるので、複数の部分的ス
トライプ更新は、膨大なアクセス時間量という結果を生
じることがある。
【0007】多数の従来技術が小規模更新問題を克服す
ることを試みてきた。Stodosky氏その他著の"Parity lo
gging:overcoming the small write problem in redund
antdisk arrays, "Proceedings 20th international Sy
mposium on Computer Architecture, May 16-19 1993,
pages 64-75は、RMW更新プロトコールの修正を論
じ、読み取った古いデータとパリティのプロシージャを
実行するが、古いデータとパリティのXORをログに送
り出すことによってパリティ更新を遅延させ、後に、当
該アレに関するログ・ファイルが読み取られ、パリティ
がその場で更新される方法を開示している。Stodosky氏
らの提案の問題は、それがあまりに複雑であるという点
である。
ることを試みてきた。Stodosky氏その他著の"Parity lo
gging:overcoming the small write problem in redund
antdisk arrays, "Proceedings 20th international Sy
mposium on Computer Architecture, May 16-19 1993,
pages 64-75は、RMW更新プロトコールの修正を論
じ、読み取った古いデータとパリティのプロシージャを
実行するが、古いデータとパリティのXORをログに送
り出すことによってパリティ更新を遅延させ、後に、当
該アレに関するログ・ファイルが読み取られ、パリティ
がその場で更新される方法を開示している。Stodosky氏
らの提案の問題は、それがあまりに複雑であるという点
である。
【0008】Jai MenonおよびJim Kassonの両氏は、"Me
thods for improved update performance of disk arra
ys", IBM report RJ6928(66034), July 13,1989に、浮
動パリティ方式を記載している。この浮動パリティ方式
は、標準的RMWシーケンスを実行する。しかし、ディ
スクの完全な1回転を待つこととは対照的に、更新され
たデータとパリティは、アレイの最近接の使用可能空間
に直ちに書き込まれる。MenonおよびKasson両氏の提案
は、ディスク上のデータの回転位置について余分なマッ
ピング・ポインタと知識を必要とすることによって過度
の複雑さを持ち込む。
thods for improved update performance of disk arra
ys", IBM report RJ6928(66034), July 13,1989に、浮
動パリティ方式を記載している。この浮動パリティ方式
は、標準的RMWシーケンスを実行する。しかし、ディ
スクの完全な1回転を待つこととは対照的に、更新され
たデータとパリティは、アレイの最近接の使用可能空間
に直ちに書き込まれる。MenonおよびKasson両氏の提案
は、ディスク上のデータの回転位置について余分なマッ
ピング・ポインタと知識を必要とすることによって過度
の複雑さを持ち込む。
【0009】Thomas H. CormenおよびDavid Kotz両氏
は、"Integrating Theory and Practice in Parallel F
ile Systems" Proceedings of the 193 DAGS/PC Sympos
ium, pages 64-74, June 1993において、パリティ保護
なしにアレイへファイルを選択的に書き込む方法を開示
している。パリティ保護なしに書き込まれるファイル
は、アレイ上において他のファイルに比較して相対的に
一時的状態を持つものである。ディスク故障からの回復
を可能にするため、上記著書において、パリティ・ポイ
ント・プロシージャが論じられているが、これはチェッ
クポイントと同等のものとみなされる。パリティ・ポイ
ントは、プログラムがディスク故障から動作を再開する
ポイント、すなわち、最後に記録された冗長情報がアレ
イに記憶されているポイントである。このアーキテクチ
ャの問題点は、データが保護されていない間の長期間に
わたってアプリケーションおよびファイル・システムが
明示的にこの仕組みに関与する必要があるという点であ
る。
は、"Integrating Theory and Practice in Parallel F
ile Systems" Proceedings of the 193 DAGS/PC Sympos
ium, pages 64-74, June 1993において、パリティ保護
なしにアレイへファイルを選択的に書き込む方法を開示
している。パリティ保護なしに書き込まれるファイル
は、アレイ上において他のファイルに比較して相対的に
一時的状態を持つものである。ディスク故障からの回復
を可能にするため、上記著書において、パリティ・ポイ
ント・プロシージャが論じられているが、これはチェッ
クポイントと同等のものとみなされる。パリティ・ポイ
ントは、プログラムがディスク故障から動作を再開する
ポイント、すなわち、最後に記録された冗長情報がアレ
イに記憶されているポイントである。このアーキテクチ
ャの問題点は、データが保護されていない間の長期間に
わたってアプリケーションおよびファイル・システムが
明示的にこの仕組みに関与する必要があるという点であ
る。
【0010】Brant氏その他に付与の米国特許第5,274,7
99号は、バスを経由してアレイ・コントローラ、典型的
にはフォルト・トレラント・コントローラに接続された
CPUを含むコピーバック・キャッシュを備えた記憶装
置を記載している。アレイ・コントローラは、複数の記
憶装置すなわちディスク・ドライブの各々にI/Oバス
経由で接続される。不揮発性記憶装置すなわちコピーバ
ック・キャッシュもまたI/Oバスに接続される。ま
た、コピーバック・キャッシュに書き込まれた情報を同
時に記憶するため、鏡写しに構成される別のコピーバッ
ク・キャッシュが備えられる。RAIDへの書込みが発
生すると、データはコピーバック・キャッシュの最初の
有効位置に直ちに書き込まれる。コピーバック・キャッ
シュへの書込みが完了すると直ちに、書き込み動作が成
功したことがCPUへ通知される。その後、書き込まれ
たデータに対するエラー訂正ブロック更新を待つことな
く、CPUによる後続の記憶装置アクセスが続行され
る。1つの実施形態では、アイドル時間を利用して従来
技術のRMW更新プロトコルを実行することによって、
コピーバック・キャッシュにあるデータ・ブロックの各
々に関するエラー訂正ブロックが計算される。別の実施
形態では、書き込みデータがコピーバック・キャッシュ
に記録された後、コントローラのバッファ・メモリにお
ける書込みデータを使用して、他のCPUI/Oアクセ
スとオーバーラップする形態で、アレイに対する書込み
動作が継続する。このようにして、コピーバック・キャ
ッシュは、書込みデータの走行「ログ」としての機能が
加わる。この装置の欠点は、「ログ」のサイズが相対的
に小さい点で、このため、データ量が制限され、更新を
遅延させることとなる。
99号は、バスを経由してアレイ・コントローラ、典型的
にはフォルト・トレラント・コントローラに接続された
CPUを含むコピーバック・キャッシュを備えた記憶装
置を記載している。アレイ・コントローラは、複数の記
憶装置すなわちディスク・ドライブの各々にI/Oバス
経由で接続される。不揮発性記憶装置すなわちコピーバ
ック・キャッシュもまたI/Oバスに接続される。ま
た、コピーバック・キャッシュに書き込まれた情報を同
時に記憶するため、鏡写しに構成される別のコピーバッ
ク・キャッシュが備えられる。RAIDへの書込みが発
生すると、データはコピーバック・キャッシュの最初の
有効位置に直ちに書き込まれる。コピーバック・キャッ
シュへの書込みが完了すると直ちに、書き込み動作が成
功したことがCPUへ通知される。その後、書き込まれ
たデータに対するエラー訂正ブロック更新を待つことな
く、CPUによる後続の記憶装置アクセスが続行され
る。1つの実施形態では、アイドル時間を利用して従来
技術のRMW更新プロトコルを実行することによって、
コピーバック・キャッシュにあるデータ・ブロックの各
々に関するエラー訂正ブロックが計算される。別の実施
形態では、書き込みデータがコピーバック・キャッシュ
に記録された後、コントローラのバッファ・メモリにお
ける書込みデータを使用して、他のCPUI/Oアクセ
スとオーバーラップする形態で、アレイに対する書込み
動作が継続する。このようにして、コピーバック・キャ
ッシュは、書込みデータの走行「ログ」としての機能が
加わる。この装置の欠点は、「ログ」のサイズが相対的
に小さい点で、このため、データ量が制限され、更新を
遅延させることとなる。
【0011】Noya氏その他に付与の米国特許第5,315,60
2号は、ディスク・システムのような一時データ記憶と
永久記憶装置を持つホスト中央処理装置を含み、ディス
ク・ドライブの冗長アレイに対する最適化されたストラ
イプ検出機能を持つコンピュータ・システムを開示して
いる。通信バスが、中央処理装置と永久記憶装置を接続
する。キャッシュ・メモリがまた通信バスに接続され
る。ホスト処理装置とディスク・ドライブの間でデータ
を伝送するI/O要求の数を減少させるため、プロセッ
サによって頻繁に使用されるデータはキャッシュに維持
される。すべての新しいデータは、アレイに書き込まれ
る前にキャッシュに書き込まれる。典型的にはキャッシ
ュは不揮発性であって、そこに記憶されるデータを電源
故障による損失から保護する。コンピュータによって必
要とされるI/O要求の数を更に減少させるため、パリ
ティ・データを生成するために必要とされるI/O要求
数を減少させる技術が用いられる。第1のプロシージャ
は、アレイに書き込まれるべき新しいデータを含めて、
ストライプ全体からパリティ・データを生成するために
必要なI/O要求の数を決定する。第2のプロシージャ
は、ストライプの新しいデータおよび古いパリティ・デ
ータからパリティ・データを生成するために必要なI/
O要求の数を決定する。次に、システムは、第1または
第2のプロシージャによって決定される最小I/O要求
数を必要とする技術を使用して、ストライプ全体あるい
は個々のブロックとしてパリティ・データを生成するた
めに必要なブロックをキャッシュにおいて統合する。
2号は、ディスク・システムのような一時データ記憶と
永久記憶装置を持つホスト中央処理装置を含み、ディス
ク・ドライブの冗長アレイに対する最適化されたストラ
イプ検出機能を持つコンピュータ・システムを開示して
いる。通信バスが、中央処理装置と永久記憶装置を接続
する。キャッシュ・メモリがまた通信バスに接続され
る。ホスト処理装置とディスク・ドライブの間でデータ
を伝送するI/O要求の数を減少させるため、プロセッ
サによって頻繁に使用されるデータはキャッシュに維持
される。すべての新しいデータは、アレイに書き込まれ
る前にキャッシュに書き込まれる。典型的にはキャッシ
ュは不揮発性であって、そこに記憶されるデータを電源
故障による損失から保護する。コンピュータによって必
要とされるI/O要求の数を更に減少させるため、パリ
ティ・データを生成するために必要とされるI/O要求
数を減少させる技術が用いられる。第1のプロシージャ
は、アレイに書き込まれるべき新しいデータを含めて、
ストライプ全体からパリティ・データを生成するために
必要なI/O要求の数を決定する。第2のプロシージャ
は、ストライプの新しいデータおよび古いパリティ・デ
ータからパリティ・データを生成するために必要なI/
O要求の数を決定する。次に、システムは、第1または
第2のプロシージャによって決定される最小I/O要求
数を必要とする技術を使用して、ストライプ全体あるい
は個々のブロックとしてパリティ・データを生成するた
めに必要なブロックをキャッシュにおいて統合する。
【0012】DeMoss氏その他に付与の米国特許第5,418,
925号は、バッファ用にディスク・アレイ・コントロー
ラを含む予備ドライを使用するディスク・アレイにおけ
る迅速な書込み処理手段を開示している。コントローラ
は、ホスト・インターフェースを経由して電子的にホス
ト・コンピュータ・システムに接続される。コントロー
ラは、予備ドライブを含むディスク・ドライブのアレイ
の動作を調整する。予備ドライブは、いわゆる迅速書込
みドライブ(fast-write-driveの頭文字をとってFWD
と略称される)である。コントローラの制御の下、ディ
スク・アレイに書き込まれるべきデータ・ブロックの各
々はFWDに即刻送られる。コントローラは、各FWD
データ・トラックの現在時状態を示す状態テーブルを維
持する。FWDデータ・トラックへのブロック書き込み
の各々が完了すると、コントローラは、状態テーブルを
更新して、揮発性メモリに更新されたテーブルを保存す
る。次に、書込みステップが完了したことがホスト・シ
ステムに通知される。このように、コントローラが書込
み動作を独自に実行している間ホストは他の動作を処理
することができる。アレイのドライブの1つに記憶され
ているデータを更新するには、先ず古いデータおよびパ
リティ情報がアレイから読み取られる。古いデータおよ
びパリティ情報はXORされる。既にFWDに保存され
ている新しいデータが読み取られ、XORされた古いデ
ータおよびパリティ情報とXORされる。このアーキテ
クチャの欠点は、古いパリティ情報およびデータを読み
取るため付加的読み取り動作が必要とされることであ
る。また、FWD上のデータを読み取ることがこのアー
キテクチャの処理性能を減少させる。
925号は、バッファ用にディスク・アレイ・コントロー
ラを含む予備ドライを使用するディスク・アレイにおけ
る迅速な書込み処理手段を開示している。コントローラ
は、ホスト・インターフェースを経由して電子的にホス
ト・コンピュータ・システムに接続される。コントロー
ラは、予備ドライブを含むディスク・ドライブのアレイ
の動作を調整する。予備ドライブは、いわゆる迅速書込
みドライブ(fast-write-driveの頭文字をとってFWD
と略称される)である。コントローラの制御の下、ディ
スク・アレイに書き込まれるべきデータ・ブロックの各
々はFWDに即刻送られる。コントローラは、各FWD
データ・トラックの現在時状態を示す状態テーブルを維
持する。FWDデータ・トラックへのブロック書き込み
の各々が完了すると、コントローラは、状態テーブルを
更新して、揮発性メモリに更新されたテーブルを保存す
る。次に、書込みステップが完了したことがホスト・シ
ステムに通知される。このように、コントローラが書込
み動作を独自に実行している間ホストは他の動作を処理
することができる。アレイのドライブの1つに記憶され
ているデータを更新するには、先ず古いデータおよびパ
リティ情報がアレイから読み取られる。古いデータおよ
びパリティ情報はXORされる。既にFWDに保存され
ている新しいデータが読み取られ、XORされた古いデ
ータおよびパリティ情報とXORされる。このアーキテ
クチャの欠点は、古いパリティ情報およびデータを読み
取るため付加的読み取り動作が必要とされることであ
る。また、FWD上のデータを読み取ることがこのアー
キテクチャの処理性能を減少させる。
【0013】DeMoss氏その他に付与の米国特許第5,388,
108号は、RMW更新プロトコールを使ってディスク・
アレイにおけるデータおよびパリティ情報を更新する方
法を開示している。この方法は、RAID5ディスク・
アレイに対するコントローラを使用し、ホスト・システ
ムからの新しいデータの受領の完了とともにI/O待ち
行列に適切な読み書き要求を入れることを含む。コント
ローラが先ずデータ・ドライブから古いデータを読み、
新しいデータおよび古いデータを記憶バッファ内の第1
および第2の領域にそれぞれ書き込むように、I/O動
作はスケジュールされる。コントローラは次にデータ・
ドライブに新しいデータを書き込み、パリティ動作を実
行する、すなわちパリティ・ドライブから古いパリティ
情報を読み取り、記憶バッファ内の第3の領域に古いパ
リティ情報を保存する。新しいパリティ情報を生成し
て、それをパリティ・ドライブに書き込む動作は、該当
するドライブが情報を受け取る用意ができるまで遅延さ
れる。このようにして、パリティ読取り、生成および書
込み動作がディスク・サービス時間の犠牲を伴わずに効
率的に進むことができるようになるまでパリティ・ドラ
ブを他の入出力動作に使用することが可能とされる。こ
の方法の欠点は、バッファ・サイズが限られていること
であって、そのため更新できるデータ量が減少する。
108号は、RMW更新プロトコールを使ってディスク・
アレイにおけるデータおよびパリティ情報を更新する方
法を開示している。この方法は、RAID5ディスク・
アレイに対するコントローラを使用し、ホスト・システ
ムからの新しいデータの受領の完了とともにI/O待ち
行列に適切な読み書き要求を入れることを含む。コント
ローラが先ずデータ・ドライブから古いデータを読み、
新しいデータおよび古いデータを記憶バッファ内の第1
および第2の領域にそれぞれ書き込むように、I/O動
作はスケジュールされる。コントローラは次にデータ・
ドライブに新しいデータを書き込み、パリティ動作を実
行する、すなわちパリティ・ドライブから古いパリティ
情報を読み取り、記憶バッファ内の第3の領域に古いパ
リティ情報を保存する。新しいパリティ情報を生成し
て、それをパリティ・ドライブに書き込む動作は、該当
するドライブが情報を受け取る用意ができるまで遅延さ
れる。このようにして、パリティ読取り、生成および書
込み動作がディスク・サービス時間の犠牲を伴わずに効
率的に進むことができるようになるまでパリティ・ドラ
ブを他の入出力動作に使用することが可能とされる。こ
の方法の欠点は、バッファ・サイズが限られていること
であって、そのため更新できるデータ量が減少する。
【0014】Neufeld氏へ付与の米国特許第5,333,305号
は、ディスク・アレイ・サブシステムにおける部分的ス
トライプ書込み性能を改善する方法を開示している。こ
の方法は、部分的なストライプ書込み動作が開始したか
否か、および部分的ストライプ書き込みの間新しいデー
タを受け取らないストライプ部分がファイル・システム
の未使用空間を含むか否か両方を判断するステップを含
む。未使用空間がストライプの中に確保されていない場
合、部分的ストライプ書込み動作は、従来のRMW更新
プロトコルを使用して実行される。部分的ストライプ書
き込みの間、新しいデータを受け取らないストライプ部
分がファイル・システムの未使用空間を含む場合、デー
タ・ストライプの現在の内容は維持される必要がない。
この方法は、ファイル・システムが大量の未使用ファイ
ル空間を持っているシステムに関して使用される場合に
のみ利点がある。
は、ディスク・アレイ・サブシステムにおける部分的ス
トライプ書込み性能を改善する方法を開示している。こ
の方法は、部分的なストライプ書込み動作が開始したか
否か、および部分的ストライプ書き込みの間新しいデー
タを受け取らないストライプ部分がファイル・システム
の未使用空間を含むか否か両方を判断するステップを含
む。未使用空間がストライプの中に確保されていない場
合、部分的ストライプ書込み動作は、従来のRMW更新
プロトコルを使用して実行される。部分的ストライプ書
き込みの間、新しいデータを受け取らないストライプ部
分がファイル・システムの未使用空間を含む場合、デー
タ・ストライプの現在の内容は維持される必要がない。
この方法は、ファイル・システムが大量の未使用ファイ
ル空間を持っているシステムに関して使用される場合に
のみ利点がある。
【0015】Schneider氏その他へ付与の米国特許第5,4
08,644号は、ディスク・アレイ・サブシステムにおける
部分的ストライプ動作の性能を改善する方法および装置
を開示している。このサブシステムは、電子的にディス
ク・アレイおよびディスク・アレイ・コントローラに接
続された転記メモリを含む。ディスク・アレイへの書込
み動作が例えばホスト・プロセッサによって実行される
時、書込みデータは、使用可能空間があるとすれば転記
メモリへ書き込まれる。転記メモリは、ホストへレディ
信号を直ちに返す。後刻、転記メモリのデータ・ブロッ
クの各々に対して従来技術のRMW更新プロトコルが実
行される。ディスク・アレイ・システムのシーク遅延お
よび回転待ち時間のため、転記メモリにおけるデータ記
憶時間は、ディスク・アレイ・システムの場合よりも非
常に迅速であり、そのため、ホストは他の動作を続行で
きる。この装置の欠点は、転記メモリのサイズに関する
ものであり、更新されるデータ量が制限される可能性が
ある。
08,644号は、ディスク・アレイ・サブシステムにおける
部分的ストライプ動作の性能を改善する方法および装置
を開示している。このサブシステムは、電子的にディス
ク・アレイおよびディスク・アレイ・コントローラに接
続された転記メモリを含む。ディスク・アレイへの書込
み動作が例えばホスト・プロセッサによって実行される
時、書込みデータは、使用可能空間があるとすれば転記
メモリへ書き込まれる。転記メモリは、ホストへレディ
信号を直ちに返す。後刻、転記メモリのデータ・ブロッ
クの各々に対して従来技術のRMW更新プロトコルが実
行される。ディスク・アレイ・システムのシーク遅延お
よび回転待ち時間のため、転記メモリにおけるデータ記
憶時間は、ディスク・アレイ・システムの場合よりも非
常に迅速であり、そのため、ホストは他の動作を続行で
きる。この装置の欠点は、転記メモリのサイズに関する
ものであり、更新されるデータ量が制限される可能性が
ある。
【0016】
【発明が解決しようとする課題】小規模更新問題を克服
する上述の試みの大部分が持つ欠点は、データとパリテ
ィの間の堅固な密着性であって、これは、現在時パリテ
ィ情報を維持することから派生し、小規模更新がRMW
シーケンスの間ディスクの長い回転待ちを経験する原因
となる。かくして、データとパリティの間の上述のよう
な堅固な密着性を緩和して、ディスク・アレイ上に記憶
されたデータの更新のために必要とされるアクセス時間
を短縮するアーキテクチャが求められている。
する上述の試みの大部分が持つ欠点は、データとパリテ
ィの間の堅固な密着性であって、これは、現在時パリテ
ィ情報を維持することから派生し、小規模更新がRMW
シーケンスの間ディスクの長い回転待ちを経験する原因
となる。かくして、データとパリティの間の上述のよう
な堅固な密着性を緩和して、ディスク・アレイ上に記憶
されたデータの更新のために必要とされるアクセス時間
を短縮するアーキテクチャが求められている。
【0017】
【課題を解決するための手段】本発明は、ディスク・ア
レイを形成する複数のディスク・ドライブ装置を持つフ
ォルト・トレラント記憶装置上で、処理性能を向上させ
るためパリティ・ブロックの更新を一時的に中断する形
態でデータ更新プロトコールを実行する方法および装置
を提供する。典型的には、ディスクがアイドルであるこ
とをディスク・アレイの入出力速度が示すまでパリティ
・ブロック更新が延期され、それによって、データとパ
リティの密着性が短時間の間緩和される。これは、アレ
イ上に記憶された古いデータおよび古いパリティ情報を
読み取らずに小規模更新を実行することを可能にし、ド
ライブ装置の回転待ちを減少させる。パリティの更新を
延期させることによって、アレイが冗長情報を常に含む
ことはなくなる。むしろ、アレイは冗長情報を常にでな
く頻繁に含むことになる。このように、本発明の更新プ
ロトコールは、頻繁に保存される冗長情報を持つ独立デ
ィスク・アレイを提供する。このようなアレイ・プロト
コールを、本発明は、a Frequently Redundant Array o
f Independent Disksの頭文字をとってAFRAIDプ
ロトコールと呼称する。
レイを形成する複数のディスク・ドライブ装置を持つフ
ォルト・トレラント記憶装置上で、処理性能を向上させ
るためパリティ・ブロックの更新を一時的に中断する形
態でデータ更新プロトコールを実行する方法および装置
を提供する。典型的には、ディスクがアイドルであるこ
とをディスク・アレイの入出力速度が示すまでパリティ
・ブロック更新が延期され、それによって、データとパ
リティの密着性が短時間の間緩和される。これは、アレ
イ上に記憶された古いデータおよび古いパリティ情報を
読み取らずに小規模更新を実行することを可能にし、ド
ライブ装置の回転待ちを減少させる。パリティの更新を
延期させることによって、アレイが冗長情報を常に含む
ことはなくなる。むしろ、アレイは冗長情報を常にでな
く頻繁に含むことになる。このように、本発明の更新プ
ロトコールは、頻繁に保存される冗長情報を持つ独立デ
ィスク・アレイを提供する。このようなアレイ・プロト
コールを、本発明は、a Frequently Redundant Array o
f Independent Disksの頭文字をとってAFRAIDプ
ロトコールと呼称する。
【0018】本発明のAFRAIDプロトコールは、小
規模更新を実行するため、データが書き込まれるべきア
レイ内のブロックすなわちストライプの目標領域を先ず
識別する。その後、新しいデータは、目標領域にある古
いデータを読み取ることなく直接目標領域に書き込まれ
る。新しいデータの書き込みに加えて、「パリティ再構
築必要ビット」(Needs Parity Rebuild Bitを略してN
PRBと呼称される)が不揮発性メモリに書き込まれ
る。このビットは、更新されたストライプが新しいデー
タに対応するパリティ情報を持っていないすなわちスト
ライプは保護されていないことを標示する。本発明の第
1の局面において、現在存在するNPRBの数を監視し
て、平均データ損失時間(Mean-Time-To-Data-Lossを略
してMTTDLと呼称される)の連続的計算を可能にす
る。MTTDLが所定の範囲内にある限り、アレイがア
イドルになるまでパリティ更新は延期される。アイドル
か否かを判断するため、アレイに対するI/O要求が監
視される。ディスク・アレイがアイドルとなると、パリ
ティ情報を再構築する必要がある1つまたは複数の非保
護ストライプが選択される。そのようなストライプの各
々毎に、そのストライプのすべてのデータが読み取ら
れ、排他論理和演算(すなわちXOR)が行われ、新しい
パリティ・データが生成される。次に、新しいパリティ
・データがストライプの該当する目標領域に書き込まれ
る。MTTDL条件が充足されない場合、更新は、従来
技術のRMW更新プロトコールに従って進む。
規模更新を実行するため、データが書き込まれるべきア
レイ内のブロックすなわちストライプの目標領域を先ず
識別する。その後、新しいデータは、目標領域にある古
いデータを読み取ることなく直接目標領域に書き込まれ
る。新しいデータの書き込みに加えて、「パリティ再構
築必要ビット」(Needs Parity Rebuild Bitを略してN
PRBと呼称される)が不揮発性メモリに書き込まれ
る。このビットは、更新されたストライプが新しいデー
タに対応するパリティ情報を持っていないすなわちスト
ライプは保護されていないことを標示する。本発明の第
1の局面において、現在存在するNPRBの数を監視し
て、平均データ損失時間(Mean-Time-To-Data-Lossを略
してMTTDLと呼称される)の連続的計算を可能にす
る。MTTDLが所定の範囲内にある限り、アレイがア
イドルになるまでパリティ更新は延期される。アイドル
か否かを判断するため、アレイに対するI/O要求が監
視される。ディスク・アレイがアイドルとなると、パリ
ティ情報を再構築する必要がある1つまたは複数の非保
護ストライプが選択される。そのようなストライプの各
々毎に、そのストライプのすべてのデータが読み取ら
れ、排他論理和演算(すなわちXOR)が行われ、新しい
パリティ・データが生成される。次に、新しいパリティ
・データがストライプの該当する目標領域に書き込まれ
る。MTTDL条件が充足されない場合、更新は、従来
技術のRMW更新プロトコールに従って進む。
【0019】本発明の第2の局面において、AFRAI
Dプロトコールは、多数の基準を基に選択的に用いられ
る。例えば、AFRAID更新プロトコールをデフォル
トの更新プロトコールとして、特定の更新要求にフラグ
を立て、それらの更新には従来技術の更新プロトコール
を用いるようにする。更に、アレイの記憶空間の一部す
なわち特定のブロック・アドレスにフラグを立て、その
空間に対する更新は従来技術の更新プロトコールを使用
することとする。逆に、デフォルトの更新プロトコール
を従来技術の更新プロトコルとして、特定の更新動作あ
るいはブロック・アドレスにフラグを立てそれらの更新
にはAFRAIDプロトコールを使用する。
Dプロトコールは、多数の基準を基に選択的に用いられ
る。例えば、AFRAID更新プロトコールをデフォル
トの更新プロトコールとして、特定の更新要求にフラグ
を立て、それらの更新には従来技術の更新プロトコール
を用いるようにする。更に、アレイの記憶空間の一部す
なわち特定のブロック・アドレスにフラグを立て、その
空間に対する更新は従来技術の更新プロトコールを使用
することとする。逆に、デフォルトの更新プロトコール
を従来技術の更新プロトコルとして、特定の更新動作あ
るいはブロック・アドレスにフラグを立てそれらの更新
にはAFRAIDプロトコールを使用する。
【0020】
【発明の実施の形態】図1は、バッファ・メモリ11と
連係動作するCPU10を含むコンピュータ・システム
を示す。CPU10は、線12を介してアレイ・コント
ローラ14と電気的または光学的に通信する。コントロ
ーラ14は、バッファ・メモリ13と連係動作する。不
揮発性記憶アレイ16は、ディスク・ドライブ18、2
0、22、24および26のような複数の記憶装置から
構成される。5つのディスク・ドライブが図示されてい
るけれども、アレイ16は、実際には、アプリケーショ
ンに従って、所望の数のディスク・ドライブを含むこと
ができる。アレイ・コントローラ14は、アレイ16の
各ディスク・ドライブと電気的あるいは光学的に通信す
る。アレイ・コントローラ14は、典型的には、ディス
ク・ドライブ18−26を制御するため、CPU10と
は別に、プログラム可能プロセッサを含む。CPU10
は、広範囲のコンピュータ・アプリケーションを実行す
る複数のユーザをサポートする。動作の間、コントロー
ラ14を経由してメモリ11とアレイ16の間でデータ
を転送するため、CPU10は読み取り(READ)およ
び書き込み(WRITE)コマンドのようなI/O要求を
出す。
連係動作するCPU10を含むコンピュータ・システム
を示す。CPU10は、線12を介してアレイ・コント
ローラ14と電気的または光学的に通信する。コントロ
ーラ14は、バッファ・メモリ13と連係動作する。不
揮発性記憶アレイ16は、ディスク・ドライブ18、2
0、22、24および26のような複数の記憶装置から
構成される。5つのディスク・ドライブが図示されてい
るけれども、アレイ16は、実際には、アプリケーショ
ンに従って、所望の数のディスク・ドライブを含むこと
ができる。アレイ・コントローラ14は、アレイ16の
各ディスク・ドライブと電気的あるいは光学的に通信す
る。アレイ・コントローラ14は、典型的には、ディス
ク・ドライブ18−26を制御するため、CPU10と
は別に、プログラム可能プロセッサを含む。CPU10
は、広範囲のコンピュータ・アプリケーションを実行す
る複数のユーザをサポートする。動作の間、コントロー
ラ14を経由してメモリ11とアレイ16の間でデータ
を転送するため、CPU10は読み取り(READ)およ
び書き込み(WRITE)コマンドのようなI/O要求を
出す。
【0021】RAID5アーキテクチャでは、ディスク
・ドライブ18、20、22、24および26の記憶空
間は、各ディスク・ドライブ上に順次に番号付けされた
1組のブロックに構成される。典型的には、1データ・
ブロックは、ディスクの伝統的セクタ上に記憶される情
報量に等しい。しかし、ブロックの数は多いことがあ
る。例えば、ブロックはセクタの整数に匹敵するかもし
れない。ブロックは、更に、(ストライプとして知られ
ている)データ・セクタに構成される。上述のように、
ストライプは、各ディスク上で同一のアドレス範囲を持
つブロックから構成される。各ストライプは、N個のデ
ータ・ブロックに加えて1つのパリティ・ブロックを持
つ。パリティ・ブロックは、ストライプの残りのブロッ
クに記録されたデータに関するパリティ情報を含む。パ
リティ・ブロックは、ディスク・ドライブの各々にわた
って分散されることもある。ストライプを使用する技術
は、いくつかの異なるディスク・ドライブ上のいくつか
のディスクにデータを同時並行的に読み書きすることを
可能にする。
・ドライブ18、20、22、24および26の記憶空
間は、各ディスク・ドライブ上に順次に番号付けされた
1組のブロックに構成される。典型的には、1データ・
ブロックは、ディスクの伝統的セクタ上に記憶される情
報量に等しい。しかし、ブロックの数は多いことがあ
る。例えば、ブロックはセクタの整数に匹敵するかもし
れない。ブロックは、更に、(ストライプとして知られ
ている)データ・セクタに構成される。上述のように、
ストライプは、各ディスク上で同一のアドレス範囲を持
つブロックから構成される。各ストライプは、N個のデ
ータ・ブロックに加えて1つのパリティ・ブロックを持
つ。パリティ・ブロックは、ストライプの残りのブロッ
クに記録されたデータに関するパリティ情報を含む。パ
リティ・ブロックは、ディスク・ドライブの各々にわた
って分散されることもある。ストライプを使用する技術
は、いくつかの異なるディスク・ドライブ上のいくつか
のディスクにデータを同時並行的に読み書きすることを
可能にする。
【0022】RAID5アーキテクチャおよび一般的に
従来技術が持つ問題は、データのパリティ保護が、小規
模更新の各々毎に多数のI/O要求を必要とする点であ
る。例えば、データが、ブロック36を目標領域として
メモリ11に現在記憶されていると仮定する。ブロック
36は、ブロック30、32、34、36および38か
らなるストライプ28に含まれている。新しいデータを
ブロック36に書き込むために、パリティ保護を維持し
ている限り、そのブロックのデータの古い値を読み取る
ことが必要とされる。加えて、古いパリティも読み取ら
れなければならない。例えば、ブロック38に記憶され
ている(目標領域36に対応する)パリティが読み取られ
なければならない。この情報がメモリ13へ転送され、
そこに記憶されている新しいデータとのXOR(排他的
論理和)動作を受ける。その後、新しいデータがブロッ
ク36に書き込まれ、新しいパリティ・データがブロッ
ク38に書き込まれる。このように、4つのI/O要求
が小規模更新を達成するため必要とされる。これら4つ
のI/O要求のうち、2つがREAD命令を含み、2つ
がWRITE命令を含む。
従来技術が持つ問題は、データのパリティ保護が、小規
模更新の各々毎に多数のI/O要求を必要とする点であ
る。例えば、データが、ブロック36を目標領域として
メモリ11に現在記憶されていると仮定する。ブロック
36は、ブロック30、32、34、36および38か
らなるストライプ28に含まれている。新しいデータを
ブロック36に書き込むために、パリティ保護を維持し
ている限り、そのブロックのデータの古い値を読み取る
ことが必要とされる。加えて、古いパリティも読み取ら
れなければならない。例えば、ブロック38に記憶され
ている(目標領域36に対応する)パリティが読み取られ
なければならない。この情報がメモリ13へ転送され、
そこに記憶されている新しいデータとのXOR(排他的
論理和)動作を受ける。その後、新しいデータがブロッ
ク36に書き込まれ、新しいパリティ・データがブロッ
ク38に書き込まれる。このように、4つのI/O要求
が小規模更新を達成するため必要とされる。これら4つ
のI/O要求のうち、2つがREAD命令を含み、2つ
がWRITE命令を含む。
【0023】小規模更新に必要とされるI/O要求数を
減少させるため、本発明は、アレイが使用可能なパリテ
ィ情報をほとんど使用しないという事実と共に、最近の
ディスク・ドライブが持つ信頼性を有効に活かす。具体
的には、本発明は、アレイ上の古いデータおよび古いパ
リティ情報を読み取ることなく小規模更新を実行するこ
とを可能にする。データは、短時間の間、新しいデータ
に対応するパリティ・エラー訂正情報なしにアレイ上へ
書き込まれる。
減少させるため、本発明は、アレイが使用可能なパリテ
ィ情報をほとんど使用しないという事実と共に、最近の
ディスク・ドライブが持つ信頼性を有効に活かす。具体
的には、本発明は、アレイ上の古いデータおよび古いパ
リティ情報を読み取ることなく小規模更新を実行するこ
とを可能にする。データは、短時間の間、新しいデータ
に対応するパリティ・エラー訂正情報なしにアレイ上へ
書き込まれる。
【0024】最近のディスク・ドライブが持つ信頼性
は、ディスク・ドライブに関するデータの可用性によっ
て示すことができる。可用性は、ディスクまたはアレイ
上のデータがアクセス可能であるかまたは消失しない時
間量として定義される。ほとんどのRAIDアーキテク
チャの可用性は、ディスク故障から生じる最初の破局的
データ損失に対する時間を検査することによって決定す
ることができる。RAID5はパリティ/冗長度情報を
常に提供するので、破局的データ損失は、2つのディス
ク故障が時間的に接近している時すなわち最初のディス
ク故障の後冗長度情報が再構築される前に第2のディス
クが故障する場合に発生する。このタイプのデータ損失
の尺度は、第1のデータ損失までの平均時間(mean-time
-to-first-data-lossを略してMTTDLと呼ぶ)であっ
て、(N+1)個のディスクを持つRAID5ディスク・
アレイに関しては次の式(1)のように表すことができ
る。
は、ディスク・ドライブに関するデータの可用性によっ
て示すことができる。可用性は、ディスクまたはアレイ
上のデータがアクセス可能であるかまたは消失しない時
間量として定義される。ほとんどのRAIDアーキテク
チャの可用性は、ディスク故障から生じる最初の破局的
データ損失に対する時間を検査することによって決定す
ることができる。RAID5はパリティ/冗長度情報を
常に提供するので、破局的データ損失は、2つのディス
ク故障が時間的に接近している時すなわち最初のディス
ク故障の後冗長度情報が再構築される前に第2のディス
クが故障する場合に発生する。このタイプのデータ損失
の尺度は、第1のデータ損失までの平均時間(mean-time
-to-first-data-lossを略してMTTDLと呼ぶ)であっ
て、(N+1)個のディスクを持つRAID5ディスク・
アレイに関しては次の式(1)のように表すことができ
る。
【0025】
【数1】(1) MTTDLRAID-catastrophic=(MTT
Fdisk)2/(N(N+1)×MTTRdisk)
Fdisk)2/(N(N+1)×MTTRdisk)
【0026】上式において、MTTFdiskはディスク故
障までの平均時間であり、MTTRは平均修復時間であ
る。MTTFdisk=1,000,000時間、MTTR
disk=48時間の5ディスク・アレイは、約475,0
00年のMTTDLRAID-catastro phicを提供する。こ
のタイプの信頼性の場合、データ損失のリスクをほとん
ど伴うことなくすなわち可用性を大幅に減ずることな
く、短時間の間パリティ更新を遅延させることができる
と本発明は判断した。典型的には、CPU10によるア
クセス要求の観点からアレイ16がアイドルとなるまで
パリティ更新が延期される。このようにパリティ更新を
延期することは、CPU10の要求によって起きる回転
待ち時間を減少させ、非冗長ディスク・アレイに匹敵す
る書込み「応答」時間を提供することによって処理性能
を向上させる。
障までの平均時間であり、MTTRは平均修復時間であ
る。MTTFdisk=1,000,000時間、MTTR
disk=48時間の5ディスク・アレイは、約475,0
00年のMTTDLRAID-catastro phicを提供する。こ
のタイプの信頼性の場合、データ損失のリスクをほとん
ど伴うことなくすなわち可用性を大幅に減ずることな
く、短時間の間パリティ更新を遅延させることができる
と本発明は判断した。典型的には、CPU10によるア
クセス要求の観点からアレイ16がアイドルとなるまで
パリティ更新が延期される。このようにパリティ更新を
延期することは、CPU10の要求によって起きる回転
待ち時間を減少させ、非冗長ディスク・アレイに匹敵す
る書込み「応答」時間を提供することによって処理性能
を向上させる。
【0027】AFRAIDプロトコルを使うことによっ
て、アレイ16の可用性が変わることが観察される。特
に、時間的に接近した2つのディスク故障についてのみ
データ損失を示すRAID5とは異なり、1つのディス
クが不意に故障する時にデータ損失が発生する。アレイ
16上に保護データおよび非保護データの両者が存在す
る場合、非保護データ期間に関するMTTDLへの貢献
は次の式(2)のように示すことができる。
て、アレイ16の可用性が変わることが観察される。特
に、時間的に接近した2つのディスク故障についてのみ
データ損失を示すRAID5とは異なり、1つのディス
クが不意に故障する時にデータ損失が発生する。アレイ
16上に保護データおよび非保護データの両者が存在す
る場合、非保護データ期間に関するMTTDLへの貢献
は次の式(2)のように示すことができる。
【0028】
【数2】(2) MTTDLAFRAID-UNPROTECTED=(T
total/Tunprot.) × (MTTFdisk/(N+1))
total/Tunprot.) × (MTTFdisk/(N+1))
【0029】Tunprot./Ttotalはアレイ16において
非保護データが存在する時間の割合であり、MTTF
diskはディスク故障までの平均時間であり、N+1はア
レイ16におけるディスク総数である。
非保護データが存在する時間の割合であり、MTTF
diskはディスク故障までの平均時間であり、N+1はア
レイ16におけるディスク総数である。
【0030】非保護データがアレイ上に存在しない場合
は、アレイのMTTDLは上式(1)によって定まるもの
に等しく、次の式(3)のように示される。
は、アレイのMTTDLは上式(1)によって定まるもの
に等しく、次の式(3)のように示される。
【0031】
【数3】(3) MTTDLAFRAID-RAID-catastrophic=
Ttotal/(Ttotal−Tunprot.) × MTTDL
RAID-catastrophic
Ttotal/(Ttotal−Tunprot.) × MTTDL
RAID-catastrophic
【0032】Tunprot./Ttotalは上式(2)の場合と同
様である。式(2)および式(3)を加えることによって、A
FRAIDプロトコールを用いるアレイのMTTDLは
次の式(4)のようになる。
様である。式(2)および式(3)を加えることによって、A
FRAIDプロトコールを用いるアレイのMTTDLは
次の式(4)のようになる。
【0033】
【数4】 (4) MTTDLAFRAID=1/(MTTDL
AFRAID-UNPROTECTED+1/(MTTDL
AFRAID-RAID-catastrophic))
AFRAID-UNPROTECTED+1/(MTTDL
AFRAID-RAID-catastrophic))
【0034】上記の点より、アレイ中の非保護データ
は、使用可能アレイを少なくするMTTDLを減らすこ
とができることがわかる。I/Oアクセスがアイドルと
なるまでパリティ更新を延期することによる所与の時間
における非保護データの量は、CPU10上で動作する
プログラム/アプリケーションのI/O集中度によって
決定されることが観察される。例えば、冗長情報を持た
ないアレイに匹敵する書込みスループット時間を維持し
ながら、AFRAIDアレイの可用性がRAID5のよ
うな完全な冗長度を提供するアレイの可用性にほぼ等し
くなる程十分なアイドルI/O時間を提供する特定のア
プリケーションが存在する。逆に、一部のプログラム/
アプリケーションは十分なアイドルI/O時間を提供し
ないため、保護データを持たないディスク・アレイと同
じ可用性を持つアレイになる。
は、使用可能アレイを少なくするMTTDLを減らすこ
とができることがわかる。I/Oアクセスがアイドルと
なるまでパリティ更新を延期することによる所与の時間
における非保護データの量は、CPU10上で動作する
プログラム/アプリケーションのI/O集中度によって
決定されることが観察される。例えば、冗長情報を持た
ないアレイに匹敵する書込みスループット時間を維持し
ながら、AFRAIDアレイの可用性がRAID5のよ
うな完全な冗長度を提供するアレイの可用性にほぼ等し
くなる程十分なアイドルI/O時間を提供する特定のア
プリケーションが存在する。逆に、一部のプログラム/
アプリケーションは十分なアイドルI/O時間を提供し
ないため、保護データを持たないディスク・アレイと同
じ可用性を持つアレイになる。
【0035】前述の概念の特長を活かして、AFRAI
Dプロトコールは、所望の可用性レベルを維持しつつ最
適な処理性能を提供する。これは、プログラム/アプリ
ケーションが連続的に実行されている間にアレイのMT
TDLを決定することによって達成される。このため、
所与の時間にアレイにおける非保護データ量を確認する
ことが必要とされる。
Dプロトコールは、所望の可用性レベルを維持しつつ最
適な処理性能を提供する。これは、プログラム/アプリ
ケーションが連続的に実行されている間にアレイのMT
TDLを決定することによって達成される。このため、
所与の時間にアレイにおける非保護データ量を確認する
ことが必要とされる。
【0036】図2、図3および図4において、AFRA
IDプロトコールは、アレイ16とのWRITEおよび
READ動作を完遂するためコントローラ14によって
実行されるコンピュータ・プログラムとして好ましくは
実施される3つの非同期サブルーチンとして記述されて
いる。AFRAIDプロトコールは記述を簡単にするた
めWRITE動作に関して記述されているが、以下の記
述はREAD動作についても同様に適応できる。図2に
示されるサブルーチンのステップは、CPU10からの
I/O要求をコントローラ14が実質的に連続して監視
することを含む。活動プロセスまたはアプリケーション
によってCPU10がWRITEコマンドを生成する
と、コマンドはコントローラ14上へ渡される。コント
ローラ14は、データを書き込むディスク・ドライブ上
の目標領域を識別する。目標領域は、アレイ16のデー
タ・ストライプを形成する各ディスク・ドライブのディ
スク上のブロックに位置する。
IDプロトコールは、アレイ16とのWRITEおよび
READ動作を完遂するためコントローラ14によって
実行されるコンピュータ・プログラムとして好ましくは
実施される3つの非同期サブルーチンとして記述されて
いる。AFRAIDプロトコールは記述を簡単にするた
めWRITE動作に関して記述されているが、以下の記
述はREAD動作についても同様に適応できる。図2に
示されるサブルーチンのステップは、CPU10からの
I/O要求をコントローラ14が実質的に連続して監視
することを含む。活動プロセスまたはアプリケーション
によってCPU10がWRITEコマンドを生成する
と、コマンドはコントローラ14上へ渡される。コント
ローラ14は、データを書き込むディスク・ドライブ上
の目標領域を識別する。目標領域は、アレイ16のデー
タ・ストライプを形成する各ディスク・ドライブのディ
スク上のブロックに位置する。
【0037】図2のステップ44において、WRITE
コマンドがコントローラ14によって受け取られる。ス
テップ46において、データを受け取るディスク・ドラ
イブ上のストライプを識別する1つまたは複数の目印が
メモリ13に記録される。ステップ48において、デー
タがアレイ16に書き込まれ、更新されたストライプが
作成される。このようにして、目標領域中に存在するい
かなるデータも読み取りを行うことなく上書きされる。
メモリ13に記憶される目印は、更新されたストライプ
中のデータが非保護であること、すなわち、更新された
ストライプについてアレイ16上にパリティ(エラー訂
正)情報が存在しないことを示す。この目印は、典型的
には「パリティ再構築必要ビット(すなわちNeeds Parit
y RebuildBitを略してNPRBと呼ばれる)」として知
られているもので、好ましくは不揮発性メモリ13に書
き込まれる情報ビットである。具体的には、メモリ13
は典型的には電源故障の際でも情報損失のないようにバ
ッテリ・バックアップを有するRAMであり、そのた
め、アレイのディスク・ドライブ上の非保護データの量
を連続的に監視することができる。ステップ48がステ
ップ46と別のものとして示されているが、ステップ4
6および48は、目標領域への新しいデータの書込みの
間同時に処理されることもできる。
コマンドがコントローラ14によって受け取られる。ス
テップ46において、データを受け取るディスク・ドラ
イブ上のストライプを識別する1つまたは複数の目印が
メモリ13に記録される。ステップ48において、デー
タがアレイ16に書き込まれ、更新されたストライプが
作成される。このようにして、目標領域中に存在するい
かなるデータも読み取りを行うことなく上書きされる。
メモリ13に記憶される目印は、更新されたストライプ
中のデータが非保護であること、すなわち、更新された
ストライプについてアレイ16上にパリティ(エラー訂
正)情報が存在しないことを示す。この目印は、典型的
には「パリティ再構築必要ビット(すなわちNeeds Parit
y RebuildBitを略してNPRBと呼ばれる)」として知
られているもので、好ましくは不揮発性メモリ13に書
き込まれる情報ビットである。具体的には、メモリ13
は典型的には電源故障の際でも情報損失のないようにバ
ッテリ・バックアップを有するRAMであり、そのた
め、アレイのディスク・ドライブ上の非保護データの量
を連続的に監視することができる。ステップ48がステ
ップ46と別のものとして示されているが、ステップ4
6および48は、目標領域への新しいデータの書込みの
間同時に処理されることもできる。
【0038】図3は、AFRAIDプロトコールの第2
のサブルーチンを示し、ステップ49において、コント
ローラ14がメモリ13のNPRBを検査して非保護デ
ータがアレイ16上に存在するか否かを判断する。ステ
ップ50において、コントローラ14は、アレイ16に
関してパリティ情報を生成してそれを書き込むことがで
きるようにアレイが十分アイドルであるか否かを判断す
る。アイドルの判断は当業者に既知の方法の1つを基に
して行われる。それら方法のいくつかが、Richard Gold
ing氏その他著の"Idleness is not sloth,"Proceedings
of Winter USENIX 1995 Technical Conference, Janua
ry 16-20, 1995, pages 201-212に記載されている。例
えば、コントローラ14がディスク・ドライブとのI/
Oをあらかじめ定められた一定時間(例えば100ミリ
秒)検出しなければディスク・ドライブはアイドルであ
るとみなされる。また、ディスク・ドライブとのI/O
速度があらかじめ決められた速度またはしきい値以下
に、例えばゼロ以上でユーザによって設定された上限以
下に落下した場合ディスク・ドライブはアイドルである
とみなすこともできる。アレイがアイドルでないとコン
トローラが判断すると、サブルーチンは、ステップ42
に戻る。書き込み要求などのI/O要求が更にあれば、
図2に関する上述のように、書込みコマンドが処理され
る。新しいI/O要求がなければ、コントローラ14
は、アレイがアイドルであるとみなすことができるか再
度判断する。ステップ54において、アレイ16がアイ
ドルとみなされると、コントローラ14は、1つまたは
複数の非保護ストライプのデータを読み取る。次に、ス
テップ56において、パリティ情報が生成される。次
に、ステップ58において、生成されたパリティ情報が
非保護ストライプの該当するブロックに書き込まれる。
その後、ステップ60において、パリティが更新された
ストライプに対応するNPRBがメモリ13から消去さ
れ、コントローラ14は、別のI/O要求に関してCP
U10を引き続き監視する。
のサブルーチンを示し、ステップ49において、コント
ローラ14がメモリ13のNPRBを検査して非保護デ
ータがアレイ16上に存在するか否かを判断する。ステ
ップ50において、コントローラ14は、アレイ16に
関してパリティ情報を生成してそれを書き込むことがで
きるようにアレイが十分アイドルであるか否かを判断す
る。アイドルの判断は当業者に既知の方法の1つを基に
して行われる。それら方法のいくつかが、Richard Gold
ing氏その他著の"Idleness is not sloth,"Proceedings
of Winter USENIX 1995 Technical Conference, Janua
ry 16-20, 1995, pages 201-212に記載されている。例
えば、コントローラ14がディスク・ドライブとのI/
Oをあらかじめ定められた一定時間(例えば100ミリ
秒)検出しなければディスク・ドライブはアイドルであ
るとみなされる。また、ディスク・ドライブとのI/O
速度があらかじめ決められた速度またはしきい値以下
に、例えばゼロ以上でユーザによって設定された上限以
下に落下した場合ディスク・ドライブはアイドルである
とみなすこともできる。アレイがアイドルでないとコン
トローラが判断すると、サブルーチンは、ステップ42
に戻る。書き込み要求などのI/O要求が更にあれば、
図2に関する上述のように、書込みコマンドが処理され
る。新しいI/O要求がなければ、コントローラ14
は、アレイがアイドルであるとみなすことができるか再
度判断する。ステップ54において、アレイ16がアイ
ドルとみなされると、コントローラ14は、1つまたは
複数の非保護ストライプのデータを読み取る。次に、ス
テップ56において、パリティ情報が生成される。次
に、ステップ58において、生成されたパリティ情報が
非保護ストライプの該当するブロックに書き込まれる。
その後、ステップ60において、パリティが更新された
ストライプに対応するNPRBがメモリ13から消去さ
れ、コントローラ14は、別のI/O要求に関してCP
U10を引き続き監視する。
【0039】図4はAFRAIDプロトコールの第3の
サブルーチンを示す。ステップ61において、コントロ
ーラ14は、メモリ13に記録されているNPRBの数
およびその数が変化しなかった持続時間を調べる。ステ
ップ62において、CPU10は、メモリ13に記録さ
れているNPRBの数およびその数が変化しなかった持
続時間に基づいて、MTTDLを計算する。ステップ6
3において、サブルーチンは、ステップ62で計算され
たMTTDLがユーザによって要求された可用性を満た
すか否かを判断する。このようにして、アレイ16の可
用性が連続的に計算され、アレイ16が保護データなし
でアレイの可用性を提供するか、データの連続的保護を
提供するかあるいはそのどこかの間にするかが判断され
る。例えば、あるユーザは、基本線としてRAID5の
アーキテクチャを使用するとして、提供される可用性が
RAID5アーキテクチャの可用性の90%であるよう
にAFRAIDプロトコールを設定するかもしれない。
典型的には、可用性の要求されたレベルの各々がメモリ
13におけるNPRBの持続時間に対応するようにプロ
トコールによって提供される可用性をメモリ13に存在
するNPRB数の関数として決定されることもできる。
メモリ13におけるNPRBの持続時間があらかじめ定
められた時間の長さを越える場合、MTTDLは受容さ
れず、プロトコールは図3のステップ54ないしステッ
プ60と同様のステップ64ないしステップ67を処理
する。メモリ13におけるNPRBの持続時間があらか
じめ定められた時間の長さ以下である場合、プロトコー
ルはステップ61に戻って、アレイ16の可用性の監視
を継続する。更に、可用性をメモリ13におけるNPR
Bの数に基づくようにさせることもできる。メモリ13
にビットを記録することの代わりに、他のいかなるデー
タ構造も非保護データを示すため用いることができる。
例えば、メモリ13のデータは非保護データを持つスト
ライプ数のリストを含むこともできる。
サブルーチンを示す。ステップ61において、コントロ
ーラ14は、メモリ13に記録されているNPRBの数
およびその数が変化しなかった持続時間を調べる。ステ
ップ62において、CPU10は、メモリ13に記録さ
れているNPRBの数およびその数が変化しなかった持
続時間に基づいて、MTTDLを計算する。ステップ6
3において、サブルーチンは、ステップ62で計算され
たMTTDLがユーザによって要求された可用性を満た
すか否かを判断する。このようにして、アレイ16の可
用性が連続的に計算され、アレイ16が保護データなし
でアレイの可用性を提供するか、データの連続的保護を
提供するかあるいはそのどこかの間にするかが判断され
る。例えば、あるユーザは、基本線としてRAID5の
アーキテクチャを使用するとして、提供される可用性が
RAID5アーキテクチャの可用性の90%であるよう
にAFRAIDプロトコールを設定するかもしれない。
典型的には、可用性の要求されたレベルの各々がメモリ
13におけるNPRBの持続時間に対応するようにプロ
トコールによって提供される可用性をメモリ13に存在
するNPRB数の関数として決定されることもできる。
メモリ13におけるNPRBの持続時間があらかじめ定
められた時間の長さを越える場合、MTTDLは受容さ
れず、プロトコールは図3のステップ54ないしステッ
プ60と同様のステップ64ないしステップ67を処理
する。メモリ13におけるNPRBの持続時間があらか
じめ定められた時間の長さ以下である場合、プロトコー
ルはステップ61に戻って、アレイ16の可用性の監視
を継続する。更に、可用性をメモリ13におけるNPR
Bの数に基づくようにさせることもできる。メモリ13
にビットを記録することの代わりに、他のいかなるデー
タ構造も非保護データを示すため用いることができる。
例えば、メモリ13のデータは非保護データを持つスト
ライプ数のリストを含むこともできる。
【0040】隣接する非保護ストライプ・データに関す
るパリティ更新は並列的に実行することができ、それに
よって必要ディスク時間を減少させることができる点は
理解されるべきである。これは、パリティ再構築の間の
時間効率を大幅に向上させる。非保護ストライプの数が
アイドルの長さおよび周期数の関数であることは明白で
ある。従って、非保護になるかもしれないストライプの
数は、アイドルの基準を変えることによって調節するこ
とができる。
るパリティ更新は並列的に実行することができ、それに
よって必要ディスク時間を減少させることができる点は
理解されるべきである。これは、パリティ再構築の間の
時間効率を大幅に向上させる。非保護ストライプの数が
アイドルの長さおよび周期数の関数であることは明白で
ある。従って、非保護になるかもしれないストライプの
数は、アイドルの基準を変えることによって調節するこ
とができる。
【0041】代替的形態として、アレイに関する別の可
用性基準を、メモリ13に記憶されたNPRB数が変化
することのなかった平均時間から決定することもでき
る。これは、所与の時間間隔の間のアレイ上の非保護デ
ータの平均量すなわち平均パリティ遅れ時間の決定を可
能にするもので、設定されたNPRBの数およびそれら
が設定された時間の長さから決定することができる。平
均パリティ遅れ時間の測定から、平均データ損失率(Mea
n-Data-Loss-Rateの頭文字をとってMDLRと呼ばれ
る)を決定することが可能である。これは、所与の時間
において損失するデータ量に比例し、データが非保護で
ある時間の分数である。上述の通り、RAID5アーキ
テクチャに関する破局的データ損失は、時間的に接近し
た2つのディスク故障に対して発生する。従って、RA
ID5アーキテクチャに関するMDLRは次の式(5)の
ように示すことができる。
用性基準を、メモリ13に記憶されたNPRB数が変化
することのなかった平均時間から決定することもでき
る。これは、所与の時間間隔の間のアレイ上の非保護デ
ータの平均量すなわち平均パリティ遅れ時間の決定を可
能にするもので、設定されたNPRBの数およびそれら
が設定された時間の長さから決定することができる。平
均パリティ遅れ時間の測定から、平均データ損失率(Mea
n-Data-Loss-Rateの頭文字をとってMDLRと呼ばれ
る)を決定することが可能である。これは、所与の時間
において損失するデータ量に比例し、データが非保護で
ある時間の分数である。上述の通り、RAID5アーキ
テクチャに関する破局的データ損失は、時間的に接近し
た2つのディスク故障に対して発生する。従って、RA
ID5アーキテクチャに関するMDLRは次の式(5)の
ように示すことができる。
【0042】
【数5】 (5) MDLRRAID-catastrophic = 2Vdisk × N/
(N+1)× 1/MTTDLRAID-catastrophic
(N+1)× 1/MTTDLRAID-catastrophic
【0043】Vdiskは、単一ディスクの容量であり、N
+1はアレイにおけるディスクの数である。上述の通
り、AFRAIDプロトコールは、1つのディスクの故
障に対して破局的故障を経験するので、このプロトコー
ルに関するMDLRは次の式(6)のようになる。
+1はアレイにおけるディスクの数である。上述の通
り、AFRAIDプロトコールは、1つのディスクの故
障に対して破局的故障を経験するので、このプロトコー
ルに関するMDLRは次の式(6)のようになる。
【0044】
【数6】(6) MDLRunprotected= (平均パリティ遅
れ/N) × (N+1)/MTTFdisk
れ/N) × (N+1)/MTTFdisk
【0045】平均パリティ遅れ/Nは1つのディスク故
障に対して弱い非保護データの平均量を定義し、((N+
1)/MTTF)は、アレイ中のすべてのディスクの総故
障率を定義する。(5)および(6)を加算することによっ
て、AFRAIDプロトコールに関するMDLRが次の
式(7)のように得られる。
障に対して弱い非保護データの平均量を定義し、((N+
1)/MTTF)は、アレイ中のすべてのディスクの総故
障率を定義する。(5)および(6)を加算することによっ
て、AFRAIDプロトコールに関するMDLRが次の
式(7)のように得られる。
【0046】
【数7】(7) MDLRAFRAID = MDLR
RAID-catastrophic + MDLRunprotected
RAID-catastrophic + MDLRunprotected
【0047】MDLR計算を用いることによって、AF
RAIDプロトコールにおいて、ユーザは信頼性を平均
データ損失時間(MTTDL)だけでなく損失データ量
(MDLR)にも基づかせることができる。MTTDLと
同様に、AFRAIDプロトコールがMTTDLと連係
して動作するようにあるいはその代わりに動作するする
ように使われている間に、MDLRは連続的に計算され
ることができる。MDLRがMTTDLと連係して動作
するように使われるならば、ステップ61で測定された
ビットの数は、プロトコールがステップ64を続ける前
にステップ63で充足されなければならない2つの基準
を示すであろう。しかし、MTTDLを減少させる程に
はAFRAIDプロトコールがMDLRを増加させない
ので、MTTDLがアレイの信頼性劣化に関する制御変
数であると本発明は判断した。従って、計算を単純化す
るため、MDLRの計算を先行させることが望ましい。
RAIDプロトコールにおいて、ユーザは信頼性を平均
データ損失時間(MTTDL)だけでなく損失データ量
(MDLR)にも基づかせることができる。MTTDLと
同様に、AFRAIDプロトコールがMTTDLと連係
して動作するようにあるいはその代わりに動作するする
ように使われている間に、MDLRは連続的に計算され
ることができる。MDLRがMTTDLと連係して動作
するように使われるならば、ステップ61で測定された
ビットの数は、プロトコールがステップ64を続ける前
にステップ63で充足されなければならない2つの基準
を示すであろう。しかし、MTTDLを減少させる程に
はAFRAIDプロトコールがMDLRを増加させない
ので、MTTDLがアレイの信頼性劣化に関する制御変
数であると本発明は判断した。従って、計算を単純化す
るため、MDLRの計算を先行させることが望ましい。
【0048】図5には、RAID5アーキテクチャを用
いるRAIDシステムとAFRAIDプロトコールの間
の比較が示されている。図示されているデータは、複数
のトレース(traces)でアレイの動作をシミュレートした
イベント主導型シミュレータを使用して得られたもので
ある。トレースは、種々の処理システムとディスク・ド
ライブ・アレイの間のI/Oアクセスに対応している。
シミュレータは、HPC3325、2GB、3.5"、5
400RPMディスクを含むアレイをモデル化した。グ
ラフ82は、分析されたトレースのすべてから得られた
結果の平均を表す。縦軸は、RAID5アーキテクチャ
と比較されたAFRAIDプロトコールの相対的信頼性
を示す。横軸は、RAID5と比較されたAFRAID
の相対的書込み応答時間を示す。点80において、AF
RAIDプロトコールは、RAID5アーキテクチャの
信頼性の約90%で約1.5倍の応答時間向上を与え
る。点84において、AFRAIDプロトコールは、R
AID5アーキテクチャの信頼性の約60%で約3.5
倍の応答時間向上を与える。図5は、処理性能と可用性
の間のトレードオフを示す。本発明の好ましい実施形態
において、ユーザは、例えばRAID5の50%、70
%または90%のように所望の信頼性を設定し、AFR
AIDプロトコールがMTTDLを連続的に計算する。
MTTDLが設定された基準の範囲内にある限り、AF
RAIDプロトコールは、アレイ16がアイドルとなる
まで、パリティ更新を延期する。基準内でなければ、A
FRAIDプロトコールは直ちに1つまたは複数の非保
護ストライプに保持されているデータを読み取り、パリ
ティ情報を書き込む。非保護ストライプのパリティ再構
築を達成するため、パリティ更新のピギーバッキングや
ディスク全体の単一掃引を含むいかなる従来技術をも使
用することができる。
いるRAIDシステムとAFRAIDプロトコールの間
の比較が示されている。図示されているデータは、複数
のトレース(traces)でアレイの動作をシミュレートした
イベント主導型シミュレータを使用して得られたもので
ある。トレースは、種々の処理システムとディスク・ド
ライブ・アレイの間のI/Oアクセスに対応している。
シミュレータは、HPC3325、2GB、3.5"、5
400RPMディスクを含むアレイをモデル化した。グ
ラフ82は、分析されたトレースのすべてから得られた
結果の平均を表す。縦軸は、RAID5アーキテクチャ
と比較されたAFRAIDプロトコールの相対的信頼性
を示す。横軸は、RAID5と比較されたAFRAID
の相対的書込み応答時間を示す。点80において、AF
RAIDプロトコールは、RAID5アーキテクチャの
信頼性の約90%で約1.5倍の応答時間向上を与え
る。点84において、AFRAIDプロトコールは、R
AID5アーキテクチャの信頼性の約60%で約3.5
倍の応答時間向上を与える。図5は、処理性能と可用性
の間のトレードオフを示す。本発明の好ましい実施形態
において、ユーザは、例えばRAID5の50%、70
%または90%のように所望の信頼性を設定し、AFR
AIDプロトコールがMTTDLを連続的に計算する。
MTTDLが設定された基準の範囲内にある限り、AF
RAIDプロトコールは、アレイ16がアイドルとなる
まで、パリティ更新を延期する。基準内でなければ、A
FRAIDプロトコールは直ちに1つまたは複数の非保
護ストライプに保持されているデータを読み取り、パリ
ティ情報を書き込む。非保護ストライプのパリティ再構
築を達成するため、パリティ更新のピギーバッキングや
ディスク全体の単一掃引を含むいかなる従来技術をも使
用することができる。
【0049】図6には、コントローラ14がCPU10
からのI/O要求を実質的に連続的に監視するAFRA
IDプロトコールの実施プロセスが示されている。ステ
ップ72でアレイ16がWRITEコマンドを受け取る
と、ステップ74において、コントローラ14はステッ
プ76、77および78で従来技術のRMW更新プロト
コールが起動されるべきか、AFRAIDプロトコール
が起動されるべきかを判断する。AFRAIDプロトコ
ールが使われるならば、プログラムはステップ75へ進
み、図2および図4に示されたサブルーチンを実行す
る。このようにして、ユーザは、AFRAIDプロトコ
ールが小規模更新のため用いられることを選択すること
ができる。
からのI/O要求を実質的に連続的に監視するAFRA
IDプロトコールの実施プロセスが示されている。ステ
ップ72でアレイ16がWRITEコマンドを受け取る
と、ステップ74において、コントローラ14はステッ
プ76、77および78で従来技術のRMW更新プロト
コールが起動されるべきか、AFRAIDプロトコール
が起動されるべきかを判断する。AFRAIDプロトコ
ールが使われるならば、プログラムはステップ75へ進
み、図2および図4に示されたサブルーチンを実行す
る。このようにして、ユーザは、AFRAIDプロトコ
ールが小規模更新のため用いられることを選択すること
ができる。
【0050】従来技術の更新プロトコールにおいては、
新しいデータが書き込まれる領域としてコントローラ1
4によって識別されるディスク上の目標領域からデータ
の古い値を、その目標領域に対応する古いパリティ情報
と共に、読み取る(ステップ76)。この古いデータおよ
びパリティ情報はメモリ13に送られ、新しいパリティ
情報を生成するためそこに記憶されている新しいデータ
とのXOR動作を受ける(ステップ77)。その後、ステ
ップ78において、新しいデータおよびパリティ情報が
アレイ16上の該当する目標領域に書き込まれる。
新しいデータが書き込まれる領域としてコントローラ1
4によって識別されるディスク上の目標領域からデータ
の古い値を、その目標領域に対応する古いパリティ情報
と共に、読み取る(ステップ76)。この古いデータおよ
びパリティ情報はメモリ13に送られ、新しいパリティ
情報を生成するためそこに記憶されている新しいデータ
とのXOR動作を受ける(ステップ77)。その後、ステ
ップ78において、新しいデータおよびパリティ情報が
アレイ16上の該当する目標領域に書き込まれる。
【0051】ステップ74における2つの更新プロトコ
ールのどちらを使用するかの判断は、複数の条件のいず
れかの発生に基づいて行われる。例えば、デフォルト更
新プロセスはAFRAIDプロトコールを使うものとし
て、特定の書き込み「フラグ」があれば、従来技術の更
新プロトコールを使用することとすることができるであ
ろう。更に、特定のブロックまたはストライプ・アドレ
スなどのアレイ記憶空間のサブセットにフラグを立て、
それによって従来技術の更新プロトコールを使用するよ
うにできる。逆に、デフォルト更新プロセスは従来技術
の更新プロトコールを使うものとして、特定の書き込み
「フラグ」があれば、AFRAIDプロトコールを使用
することとすることもできる。更に、I/Oパターンが
目標MTTDLを維持しながらスループット時間の増加
を許容するものとCPU10が予測するならば、AFR
AIDプロトコールを自動的に起動させることもでき
る。そのような予測を行うため、過去のI/O機能を監
視する既知の予測技術のいずれをも使うことができる。
ールのどちらを使用するかの判断は、複数の条件のいず
れかの発生に基づいて行われる。例えば、デフォルト更
新プロセスはAFRAIDプロトコールを使うものとし
て、特定の書き込み「フラグ」があれば、従来技術の更
新プロトコールを使用することとすることができるであ
ろう。更に、特定のブロックまたはストライプ・アドレ
スなどのアレイ記憶空間のサブセットにフラグを立て、
それによって従来技術の更新プロトコールを使用するよ
うにできる。逆に、デフォルト更新プロセスは従来技術
の更新プロトコールを使うものとして、特定の書き込み
「フラグ」があれば、AFRAIDプロトコールを使用
することとすることもできる。更に、I/Oパターンが
目標MTTDLを維持しながらスループット時間の増加
を許容するものとCPU10が予測するならば、AFR
AIDプロトコールを自動的に起動させることもでき
る。そのような予測を行うため、過去のI/O機能を監
視する既知の予測技術のいずれをも使うことができる。
【0052】本発明が小規模ファイル更新すなわち部分
的ストライプ更新に関して記述されたが、本発明は、新
しいデータが(ストライプ全体でなければ)ストライプ
を含む相当数のブロックに書き込まれる形態の大規模ス
トライプ更新にも同様に適用することができる。ストラ
イプ全体が書き込まれる場合は、AFRAIDプロトコ
ールを使用する利益はほとんどない。そのようなストラ
イプの場合は、消去される関連NPRBに関する新しい
パリティを含めてその全体が単純に書き込まれるべきで
ある。
的ストライプ更新に関して記述されたが、本発明は、新
しいデータが(ストライプ全体でなければ)ストライプ
を含む相当数のブロックに書き込まれる形態の大規模ス
トライプ更新にも同様に適用することができる。ストラ
イプ全体が書き込まれる場合は、AFRAIDプロトコ
ールを使用する利益はほとんどない。そのようなストラ
イプの場合は、消去される関連NPRBに関する新しい
パリティを含めてその全体が単純に書き込まれるべきで
ある。
【0053】AFRAIDプロトコールは、また、デー
タの1つのストライプのサブストライプを更新するよう
に実施することもできる。このように、新しいデータ
は、ストライプを構成するいくつかのブロックの部分に
書き込まれる。例えば、各ブロックが64KBの情報を
含むとすれば、所与のストライプにおいて、更新される
サブストライプは各ブロックに書き込まれる2KBのデ
ータすなわちブロックのサブセットを含むことができ
る。この例では、2KBの新しいパリティ情報だけを生
成してストライプのパリティ・ブロックに書き込むだけ
でよい。
タの1つのストライプのサブストライプを更新するよう
に実施することもできる。このように、新しいデータ
は、ストライプを構成するいくつかのブロックの部分に
書き込まれる。例えば、各ブロックが64KBの情報を
含むとすれば、所与のストライプにおいて、更新される
サブストライプは各ブロックに書き込まれる2KBのデ
ータすなわちブロックのサブセットを含むことができ
る。この例では、2KBの新しいパリティ情報だけを生
成してストライプのパリティ・ブロックに書き込むだけ
でよい。
【0054】本発明には、例として次のような実施様態
が含まれる。 (1)データおよびパリティ情報を記憶するため複数の
ストライプを有するディスク・アレイを形成する複数の
ディスク装置を備えたフォールト・トレラント記憶装置
にデータを記憶する方法であって、上記複数のストライ
プの1つに位置し、古いデータに重ねて新しいデータを
書き込むべき少なくとも1つの目標領域を識別するステ
ップと、古いデータおよびそれに関連するパリティ情報
を読み取ることなく、新しいデータを上記少なくとも1
つの識別された目標領域に非保護データとして書き込む
ステップと、上記アレイ上に存在する上記非保護データ
の数量を監視するステップと、上記アレイ上に存在する
上記非保護データの数量を動的に調節するステップと、
を含むデータ記憶方法。 (2)上記調節するステップが、上記数量があらかじめ
定められたしきい値を越えないことを保証するように非
保護データの上記数量を調節することを含む、上記
(1)に記載のデータ記憶方法。 (3)上記監視するステップが、平均データ損失時間を
連続的に決定することを含む、上記(1)または(2)
に記載のデータ記憶方法。
が含まれる。 (1)データおよびパリティ情報を記憶するため複数の
ストライプを有するディスク・アレイを形成する複数の
ディスク装置を備えたフォールト・トレラント記憶装置
にデータを記憶する方法であって、上記複数のストライ
プの1つに位置し、古いデータに重ねて新しいデータを
書き込むべき少なくとも1つの目標領域を識別するステ
ップと、古いデータおよびそれに関連するパリティ情報
を読み取ることなく、新しいデータを上記少なくとも1
つの識別された目標領域に非保護データとして書き込む
ステップと、上記アレイ上に存在する上記非保護データ
の数量を監視するステップと、上記アレイ上に存在する
上記非保護データの数量を動的に調節するステップと、
を含むデータ記憶方法。 (2)上記調節するステップが、上記数量があらかじめ
定められたしきい値を越えないことを保証するように非
保護データの上記数量を調節することを含む、上記
(1)に記載のデータ記憶方法。 (3)上記監視するステップが、平均データ損失時間を
連続的に決定することを含む、上記(1)または(2)
に記載のデータ記憶方法。
【0055】(4)上記監視するステップが、あらかじ
め定められた時間量にわたって上記数量を監視して、上
記時間間隔の間の非保護データの平均量を決定し、平均
データ損失率を決定することを含む、上記(1)、
(2)または(3)に記載のデータ記憶方法。 (5)上記調節するステップが、上記新しいデータに関
するエラー訂正情報を生成して、上記更新されるストラ
イプに上記エラー訂正情報を書き込むことを含む、上記
(1)、(2)、(3)または(4)に記載のデータ記
憶方法。 (6)上記調節するステップが、アレイに対するI/O
要求率を監視し、上記I/O要求率があらかじめ定めら
れた範囲内にある場合上記新しいデータに関するエラー
訂正ブロックを生成することを含む、上記(1)、
(2)、(3)、(4)または(5)に記載のデータ記
憶方法。 (7)上記識別するステップおよび上記新しいデータを
書き込むステップが複数回起き、新しいデータで複数の
ストライプを更新するステップが上記調節ステップの前
に行われる、上記(1)、(2)、(3)、(4)、
(5)または(6)に記載のデータ記憶方法。 (8)上記新しいデータに対応するエラー訂正情報が上
記ディスク・アレイ上に存在しないことを示すためパリ
ティ再構築必要ビットすなわちNPRBを定義する情報
をメモリに書き込むステップを含み、上記監視ステップ
が上記NPRBを検出することを含み、上記生成ステッ
プが上記NPRBの存在に応答してエラー訂正情報を生
成することを含む、上記(1)、(2)、(3)、
(4)、(5)、(6)または(7)に記載のデータ記
憶方法。 (9)上記生成ステップが、新しいデータを保持する上
記複数のストライプに関してエラー訂正情報を並列的に
生成することを含む、上記(7)に記載のデータ記憶方
法。
め定められた時間量にわたって上記数量を監視して、上
記時間間隔の間の非保護データの平均量を決定し、平均
データ損失率を決定することを含む、上記(1)、
(2)または(3)に記載のデータ記憶方法。 (5)上記調節するステップが、上記新しいデータに関
するエラー訂正情報を生成して、上記更新されるストラ
イプに上記エラー訂正情報を書き込むことを含む、上記
(1)、(2)、(3)または(4)に記載のデータ記
憶方法。 (6)上記調節するステップが、アレイに対するI/O
要求率を監視し、上記I/O要求率があらかじめ定めら
れた範囲内にある場合上記新しいデータに関するエラー
訂正ブロックを生成することを含む、上記(1)、
(2)、(3)、(4)または(5)に記載のデータ記
憶方法。 (7)上記識別するステップおよび上記新しいデータを
書き込むステップが複数回起き、新しいデータで複数の
ストライプを更新するステップが上記調節ステップの前
に行われる、上記(1)、(2)、(3)、(4)、
(5)または(6)に記載のデータ記憶方法。 (8)上記新しいデータに対応するエラー訂正情報が上
記ディスク・アレイ上に存在しないことを示すためパリ
ティ再構築必要ビットすなわちNPRBを定義する情報
をメモリに書き込むステップを含み、上記監視ステップ
が上記NPRBを検出することを含み、上記生成ステッ
プが上記NPRBの存在に応答してエラー訂正情報を生
成することを含む、上記(1)、(2)、(3)、
(4)、(5)、(6)または(7)に記載のデータ記
憶方法。 (9)上記生成ステップが、新しいデータを保持する上
記複数のストライプに関してエラー訂正情報を並列的に
生成することを含む、上記(7)に記載のデータ記憶方
法。
【0056】(10)複数のディスク・ドライブに関す
るパリティ情報を生成する装置であって、古いデータに
重ねて新しいデータを書き込むべき少なくとも1つの目
標領域を各々が持つ複数のストライプを有するディスク
・アレイを構成する複数の個別ディスク・ドライブと、
上記アレイとのデータ通信を通して上記アレイの動作を
調整するコントローラと、上記コントローラおよび上記
アレイとのデータ通信を通して、上記古いデータ目標領
域を含む複数の目標領域のうちの第1の複数の新しいデ
ータ目標領域へ新しいデータをエラー訂正情報を持たな
い非保護データとして書き込むサブルーチンを記憶し、
上記新しいデータ目標領域に存在する上記新しいデータ
からエラー訂正情報を生成し、上記アレイ上に存在する
非保護データの数量を監視し、上記アレイ上に存在する
非保護データの数量を動的に調節するメモリ手段と、を
備えるパリティ情報生成装置。
るパリティ情報を生成する装置であって、古いデータに
重ねて新しいデータを書き込むべき少なくとも1つの目
標領域を各々が持つ複数のストライプを有するディスク
・アレイを構成する複数の個別ディスク・ドライブと、
上記アレイとのデータ通信を通して上記アレイの動作を
調整するコントローラと、上記コントローラおよび上記
アレイとのデータ通信を通して、上記古いデータ目標領
域を含む複数の目標領域のうちの第1の複数の新しいデ
ータ目標領域へ新しいデータをエラー訂正情報を持たな
い非保護データとして書き込むサブルーチンを記憶し、
上記新しいデータ目標領域に存在する上記新しいデータ
からエラー訂正情報を生成し、上記アレイ上に存在する
非保護データの数量を監視し、上記アレイ上に存在する
非保護データの数量を動的に調節するメモリ手段と、を
備えるパリティ情報生成装置。
【0057】
【発明の効果】本発明は、パリティ情報の生成、書き込
みをディスクがアイドルとなるまで延期することによっ
て、小規模更新を行う場合に従来技術のRMWシーケン
スが派生する長いディスク回転待ちを回避して、ディス
ク・アレイ上のデータ更新に必要とされるアクセス時間
を短縮するという効果を奏する。
みをディスクがアイドルとなるまで延期することによっ
て、小規模更新を行う場合に従来技術のRMWシーケン
スが派生する長いディスク回転待ちを回避して、ディス
ク・アレイ上のデータ更新に必要とされるアクセス時間
を短縮するという効果を奏する。
【図1】本発明に従った小規模データ更新プロトコール
を組み入れたコンピュータ・システムのブロック図であ
る。
を組み入れたコンピュータ・システムのブロック図であ
る。
【図2】図3および図4と共に、本発明に従った小規模
更新プロトコールを実行する第1の方法の非同期サブル
ーチンの動作を示す流れ図である。
更新プロトコールを実行する第1の方法の非同期サブル
ーチンの動作を示す流れ図である。
【図3】図2および図4と共に、本発明に従った小規模
更新プロトコールを実行する第1の方法の非同期サブル
ーチンの動作を示す流れ図である。
更新プロトコールを実行する第1の方法の非同期サブル
ーチンの動作を示す流れ図である。
【図4】図2および図3と共に、本発明に従った小規模
更新プロトコールを実行する第1の方法の非同期サブル
ーチンの動作を示す流れ図である。
更新プロトコールを実行する第1の方法の非同期サブル
ーチンの動作を示す流れ図である。
【図5】処理性能および信頼性に関する本発明とRAI
D5アーキテクチャの比較を示すグラフ図である。
D5アーキテクチャの比較を示すグラフ図である。
【図6】本発明に従った小規模更新プロトコールを実行
する第2の方法の動作を示す流れ図である。
する第2の方法の動作を示す流れ図である。
10 CPU 11、13 バッファ・メモリ 12 線 14 アレイ・コントロー
ラ 18、20、22、24、26 ディスク・ドライブ 28 ストライプ(帯) 30、32、34、36、38 ブロック
ラ 18、20、22、24、26 ディスク・ドライブ 28 ストライプ(帯) 30、32、34、36、38 ブロック
Claims (1)
- 【請求項1】データおよびパリティ情報を記憶するため
複数のストライプを有するディスク・アレイを形成する
複数のディスク装置を備えたフォールト・トレラント記
憶装置にデータを記憶する方法であって、 上記複数のストライプの1つに位置し、古いデータに重
ねて新しいデータを書き込むべき少なくとも1つの目標
領域を識別するステップと、 古いデータおよびそれに関連するパリティ情報を読み取
ることなく、新しいデータを上記少なくとも1つの識別
された目標領域に非保護データとして書き込むステップ
と、 上記アレイ上に存在する上記非保護データの数量を監視
するステップと、 上記アレイ上に存在する上記非保護データの数量を動的
に調節するステップと、 を含むデータ記憶方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/588,140 US5720025A (en) | 1996-01-18 | 1996-01-18 | Frequently-redundant array of independent disks |
| US588,140 | 1996-01-18 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09231017A true JPH09231017A (ja) | 1997-09-05 |
Family
ID=24352643
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9002533A Pending JPH09231017A (ja) | 1996-01-18 | 1997-01-10 | データ記憶装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5720025A (ja) |
| EP (1) | EP0785512A2 (ja) |
| JP (1) | JPH09231017A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102097133A (zh) * | 2010-12-31 | 2011-06-15 | 中国人民解放军装备指挥技术学院 | 一种海量存储系统的可靠性测试系统及测试方法 |
| JP2012064139A (ja) * | 2010-09-17 | 2012-03-29 | Toshiba Corp | コントローラ、記憶装置、およびプログラム |
Families Citing this family (69)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6230203B1 (en) | 1995-10-20 | 2001-05-08 | Scientific-Atlanta, Inc. | System and method for providing statistics for flexible billing in a cable environment |
| US5966163A (en) | 1995-10-20 | 1999-10-12 | Scientific-Atlanta, Inc. | Providing constant bit rate upstream data transport in a two way cable system by scheduling preemptive grants for upstream data slots using selected fields of a plurality of grant fields |
| US7028088B1 (en) * | 1996-04-03 | 2006-04-11 | Scientific-Atlanta, Inc. | System and method for providing statistics for flexible billing in a cable environment |
| US6041423A (en) * | 1996-11-08 | 2000-03-21 | Oracle Corporation | Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment |
| US6272150B1 (en) | 1997-01-17 | 2001-08-07 | Scientific-Atlanta, Inc. | Cable modem map display for network management of a cable data delivery system |
| US6308328B1 (en) | 1997-01-17 | 2001-10-23 | Scientific-Atlanta, Inc. | Usage statistics collection for a cable data delivery system |
| US6286058B1 (en) | 1997-04-14 | 2001-09-04 | Scientific-Atlanta, Inc. | Apparatus and methods for automatically rerouting packets in the event of a link failure |
| JPH11119922A (ja) * | 1997-10-17 | 1999-04-30 | Fujitsu Ltd | データ記憶システム及び冗長データ書き込み制御方法 |
| US6098114A (en) | 1997-11-14 | 2000-08-01 | 3Ware | Disk array system for processing and tracking the completion of I/O requests |
| US6233696B1 (en) * | 1997-12-31 | 2001-05-15 | Emc Corporation | Data verification and repair in redundant storage systems |
| US6195761B1 (en) | 1997-12-31 | 2001-02-27 | Emc Corporation | Method and apparatus for identifying and repairing mismatched data |
| US6167485A (en) | 1997-12-31 | 2000-12-26 | Emc Corporation | On-line data verification and repair in redundant storage systems |
| JP3511576B2 (ja) * | 1998-10-02 | 2004-03-29 | 松下電器産業株式会社 | ディスク記録再生方法および装置 |
| US6542960B1 (en) * | 1999-12-16 | 2003-04-01 | Adaptec, Inc. | System and method for parity caching based on stripe locking in raid data storage |
| US6826148B1 (en) | 2000-07-25 | 2004-11-30 | Sun Microsystems, Inc. | System and method for implementing a routing scheme in a computer network using intention packets when fault conditions are detected |
| US6741561B1 (en) | 2000-07-25 | 2004-05-25 | Sun Microsystems, Inc. | Routing mechanism using intention packets in a hierarchy or networks |
| US6925056B1 (en) | 2000-07-25 | 2005-08-02 | Sun Microsystems, Inc. | System and method for implementing a routing scheme using intention packets in a computer network |
| US7171338B1 (en) * | 2000-08-18 | 2007-01-30 | Emc Corporation | Output performance trends of a mass storage system |
| US6938181B1 (en) | 2000-11-21 | 2005-08-30 | Sun Microsystems, Inc. | Field replaceable storage array |
| US7401161B2 (en) | 2000-12-18 | 2008-07-15 | Sun Microsystems, Inc. | High performance storage array interconnection fabric using multiple independent paths |
| US6718428B2 (en) | 2000-12-18 | 2004-04-06 | Sun Microsystems, Inc. | Storage array interconnection fabric using a torus topology |
| US7072976B2 (en) * | 2001-01-04 | 2006-07-04 | Sun Microsystems, Inc. | Scalable routing scheme for a multi-path interconnection fabric |
| US7007189B2 (en) * | 2001-05-07 | 2006-02-28 | Sun Microsystems, Inc. | Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network |
| US6909695B2 (en) * | 2001-05-07 | 2005-06-21 | Sun Microsystems, Inc. | Fault-tolerant, self-healing routing scheme for a multi-path interconnection fabric in a storage network |
| US6883108B2 (en) * | 2001-05-07 | 2005-04-19 | Sun Microsystems, Inc. | Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network |
| US7027413B2 (en) * | 2001-09-28 | 2006-04-11 | Sun Microsystems, Inc. | Discovery of nodes in an interconnection fabric |
| US7000033B2 (en) * | 2001-09-28 | 2006-02-14 | Sun Microsystems, Inc. | Mapping of nodes in an interconnection fabric |
| 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 |
| US7210005B2 (en) * | 2002-09-03 | 2007-04-24 | Copan Systems, Inc. | Method and apparatus for power-efficient high-capacity scalable storage system |
| US7210004B2 (en) * | 2003-06-26 | 2007-04-24 | Copan Systems | Method and system for background processing of data in a storage system |
| US7085953B1 (en) | 2002-11-01 | 2006-08-01 | International Business Machines Corporation | Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array |
| US7324564B2 (en) * | 2003-02-20 | 2008-01-29 | Sun Microsystems, Inc. | Transmitting odd-sized packets over a double data rate link |
| US6950905B2 (en) * | 2003-02-20 | 2005-09-27 | Sun Microsystems, Inc. | Write posting memory interface with block-based read-ahead mechanism |
| US7003594B2 (en) * | 2003-05-12 | 2006-02-21 | Sun Microsystems, Inc. | Streaming protocol for storage devices |
| US7434097B2 (en) * | 2003-06-05 | 2008-10-07 | Copan System, Inc. | Method and apparatus for efficient fault-tolerant disk drive replacement in raid storage systems |
| US20050210304A1 (en) * | 2003-06-26 | 2005-09-22 | Copan Systems | Method and apparatus for power-efficient high-capacity scalable storage system |
| US7620736B2 (en) * | 2003-08-08 | 2009-11-17 | Cray Canada Corporation | Network topology having nodes interconnected by extended diagonal links |
| US7373559B2 (en) * | 2003-09-11 | 2008-05-13 | Copan Systems, Inc. | Method and system for proactive drive replacement for high availability storage systems |
| US20060090098A1 (en) * | 2003-09-11 | 2006-04-27 | Copan Systems, Inc. | Proactive data reliability in a power-managed storage system |
| US7818530B2 (en) * | 2003-11-26 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | Data management systems, articles of manufacture, and data storage methods |
| US7434090B2 (en) * | 2004-09-30 | 2008-10-07 | Copan System, Inc. | Method and apparatus for just in time RAID spare drive pool management |
| US20060123271A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR |
| US7290199B2 (en) * | 2004-11-19 | 2007-10-30 | International Business Machines Corporation | Method and system for improved buffer utilization for disk array parity updates |
| US7392428B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system |
| US7392458B2 (en) * | 2004-11-19 | 2008-06-24 | International Business Machines Corporation | Method and system for enhanced error identification with disk array parity checking |
| US20060123312A1 (en) * | 2004-11-19 | 2006-06-08 | International Business Machines Corporation | Method and system for increasing parallelism of disk accesses when restoring data in a disk array system |
| US7587626B2 (en) * | 2004-12-15 | 2009-09-08 | Dell Products L.P. | Intelligent hotspare or “SmartSpare” drive with pre-emptive drive rebuild |
| US7669076B2 (en) * | 2006-05-30 | 2010-02-23 | Oracle International Corporation | Estimating data availability on managed storage devices |
| US7565575B2 (en) * | 2006-05-30 | 2009-07-21 | Oracle International Corporation | Selecting optimal repair strategy for mirrored files |
| CN100514271C (zh) * | 2006-11-10 | 2009-07-15 | 威盛电子股份有限公司 | 芯片组、北桥芯片以及磁盘数据存取方法 |
| US8019938B2 (en) | 2006-12-06 | 2011-09-13 | Fusion-I0, Inc. | Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage |
| US8370715B2 (en) * | 2007-04-12 | 2013-02-05 | International Business Machines Corporation | Error checking addressable blocks in storage |
| CN101140540B (zh) * | 2007-10-19 | 2010-10-13 | 中兴通讯股份有限公司 | 一种自动监控磁阵故障的方法和系统 |
| CN101566924B (zh) * | 2008-04-23 | 2011-07-13 | 中兴通讯股份有限公司 | 一种磁盘阵列的数据读写方法 |
| JP5286956B2 (ja) * | 2008-06-13 | 2013-09-11 | 富士通株式会社 | 制御方法、ディスクアレイ装置 |
| CN101702113B (zh) * | 2009-11-23 | 2011-02-16 | 成都市华为赛门铁克科技有限公司 | 写操作处理方法和装置 |
| CN102087586B (zh) * | 2009-12-02 | 2012-05-30 | 成都市华为赛门铁克科技有限公司 | 数据处理方法及装置 |
| US8156368B2 (en) * | 2010-02-22 | 2012-04-10 | International Business Machines Corporation | Rebuilding lost data in a distributed redundancy data storage system |
| US8103904B2 (en) * | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
| US8583866B2 (en) * | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
| US8103903B2 (en) * | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
| US10929040B1 (en) * | 2011-09-28 | 2021-02-23 | EMC IP Holding Company LLC | RAID 1—half compressed data storage |
| WO2013057764A1 (en) | 2011-10-19 | 2013-04-25 | Hitachi, Ltd. | Storage system |
| US20140215148A1 (en) * | 2013-01-31 | 2014-07-31 | International Business Machines Corporation | Limiting the execution of background management operations in a drive array |
| US11303627B2 (en) | 2018-05-31 | 2022-04-12 | Oracle International Corporation | Single Sign-On enabled OAuth token |
| US11340989B2 (en) | 2019-09-27 | 2022-05-24 | Dell Products L.P. | RAID storage-device-assisted unavailable primary data/Q data rebuild system |
| US11023321B2 (en) | 2019-09-27 | 2021-06-01 | Dell Products L.P. | Raid storage-device-assisted deferred parity data update system |
| US12406698B1 (en) | 2024-04-08 | 2025-09-02 | Kabushiki Kaisha Toshiba | Magnetic disk device and method of controlling the same |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5274799A (en) * | 1991-01-04 | 1993-12-28 | Array Technology Corporation | Storage device array architecture with copyback cache |
| US5333305A (en) * | 1991-12-27 | 1994-07-26 | Compaq Computer Corporation | Method for improving partial stripe write performance in disk array subsystems |
| US5408644A (en) * | 1992-06-05 | 1995-04-18 | Compaq Computer Corporation | Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem |
| US5315602A (en) * | 1992-08-12 | 1994-05-24 | Digital Equipment Corporation | Optimized stripe detection for redundant arrays of disk drives |
| JP3183719B2 (ja) * | 1992-08-26 | 2001-07-09 | 三菱電機株式会社 | アレイ型記録装置 |
| US5418925A (en) * | 1992-10-23 | 1995-05-23 | At&T Global Information Solutions Company | Fast write I/O handling in a disk array using spare drive for buffering |
| 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 |
| US5463765A (en) * | 1993-03-18 | 1995-10-31 | Hitachi, Ltd. | Disk array system, data writing method thereof, and fault recovering method |
| JPH06332623A (ja) * | 1993-05-24 | 1994-12-02 | Mitsubishi Electric Corp | アレイ型記録装置及び記録装置 |
| US5522032A (en) * | 1994-05-05 | 1996-05-28 | International Business Machines Corporation | Raid level 5 with free blocks parity cache |
| US5559764A (en) * | 1994-08-18 | 1996-09-24 | International Business Machines Corporation | HMC: A hybrid mirror-and-chained data replication method to support high data availability for disk arrays |
| US5572661A (en) * | 1994-10-05 | 1996-11-05 | Hewlett-Packard Company | Methods and system for detecting data loss in a hierarchic data storage system |
| US5497457A (en) * | 1994-10-17 | 1996-03-05 | International Business Machines Corporation | Redundant arrays of independent libraries of dismountable media with parity logging |
| 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 |
| US5657468A (en) * | 1995-08-17 | 1997-08-12 | Ambex Technologies, Inc. | Method and apparatus for improving performance in a reduntant array of independent disks |
-
1996
- 1996-01-18 US US08/588,140 patent/US5720025A/en not_active Expired - Lifetime
- 1996-11-12 EP EP96118133A patent/EP0785512A2/en not_active Withdrawn
-
1997
- 1997-01-10 JP JP9002533A patent/JPH09231017A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012064139A (ja) * | 2010-09-17 | 2012-03-29 | Toshiba Corp | コントローラ、記憶装置、およびプログラム |
| CN102097133A (zh) * | 2010-12-31 | 2011-06-15 | 中国人民解放军装备指挥技术学院 | 一种海量存储系统的可靠性测试系统及测试方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5720025A (en) | 1998-02-17 |
| EP0785512A2 (en) | 1997-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH09231017A (ja) | データ記憶装置 | |
| JP3129732B2 (ja) | コピーバックキャッシュを有する記憶装置アレイ | |
| JP4372134B2 (ja) | データ比較機能を有するストレージシステム | |
| US7281089B2 (en) | System and method for reorganizing data in a raid storage system | |
| KR100396197B1 (ko) | 디스크어레이에서의패리티-데이터일치성을유지하기위한방법 | |
| US6523087B2 (en) | Utilizing parity caching and parity logging while closing the RAID5 write hole | |
| US7975168B2 (en) | Storage system executing parallel correction write | |
| US9378093B2 (en) | Controlling data storage in an array of storage devices | |
| KR100211788B1 (ko) | 디스크 어레이의 고장 예측을 위한 데이타 처리방법및시스템 | |
| JP2981245B2 (ja) | アレイ型ディスク駆動機構システム及び方法 | |
| US5504858A (en) | Method and apparatus for preserving data integrity in a multiple disk raid organized storage system | |
| US7861035B2 (en) | Method of improving input and output performance of raid system using matrix stripe cache | |
| US6049890A (en) | Disk array system and its control method | |
| US20040205300A1 (en) | Method of detecting sequential workloads to increase host read throughput | |
| KR100208801B1 (ko) | 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법 | |
| JPH06208476A (ja) | 冗長アレイパリティキャッシングシステム | |
| JP2003131817A (ja) | Raid論理ドライブ・マイグレーションにおいてデータをマイグレーションするための方法及びシステム | |
| JP2005063441A (ja) | 4kブロックサイズを用いてハードディスクドライブへの書き込みを行うハードディスクドライブコントローラおよびそれを用いたハードディスクドライブ | |
| EP0662660A1 (en) | An improved data storage device and method of operation | |
| US5659677A (en) | Data storage apparatus for disk array | |
| JPH1124848A (ja) | ディスクアレイの障害領域交代処理方法およびディスクアレイ装置 | |
| WO2000067250A2 (en) | Methods and systems for mirrored disk arrays | |
| CN1124376A (zh) | 改进的数据存储设备及操作方法 | |
| JP3615274B2 (ja) | ファイル制御装置 | |
| JP3573599B2 (ja) | ディスクアレイにおけるデータ回復方法 |