JPH0772985A - Raidレベル5ディスクアレイにおけるリード−モディファイ−ライト パリティ オペレーションの遅延イニシエション方法 - Google Patents

Raidレベル5ディスクアレイにおけるリード−モディファイ−ライト パリティ オペレーションの遅延イニシエション方法

Info

Publication number
JPH0772985A
JPH0772985A JP5286277A JP28627793A JPH0772985A JP H0772985 A JPH0772985 A JP H0772985A JP 5286277 A JP5286277 A JP 5286277A JP 28627793 A JP28627793 A JP 28627793A JP H0772985 A JPH0772985 A JP H0772985A
Authority
JP
Japan
Prior art keywords
data
parity
drive
disk
new
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
Application number
JP5286277A
Other languages
English (en)
Inventor
Robert A Demoss
エイ.デモス ロバート
Keith B Dulac
ビー.デュラーク キース
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.)
NCR International Inc
NCR Voyix Corp
Original Assignee
AT&T Global Information Solutions Co
AT&T Global Information Solutions International Inc
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 AT&T Global Information Solutions Co, AT&T Global Information Solutions International Inc filed Critical AT&T Global Information Solutions Co
Publication of JPH0772985A publication Critical patent/JPH0772985A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【目的】RAIDレベル4および5 ディスクアレイ内でデ
ータおよびパリティ情報を更新するための改良方法を与
える。 【構成】リード-モディファイ-ライト(RMW)オペレ
ーションの期間中、更新すべき旧データおよび旧パリテ
ィ情報がディスクから読みだされ、新規パリティが発生
され、更新すべきデータおよびパリティを収容するディ
スクを同定し、当該データドライブおよびパリティドラ
イブを獲得するための適当な読み取りおよび書き込みリ
クエストをI/Oキュー中に置き、パリティオペレーシ
ョンのスケジュールを立てる。すなわち新規パリティ情
報の書き込みの実行はキュー待機中に、書き込みドライ
ブを獲得する最良の時期に行う。 【効果】データ読み出しおよび書き込みオペレーション
をパリティの読み取り、発生、および書き込みのオペレ
ーションから分離するのでアレイ内のドライブの利用効
率が高まる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピューターシステム
のディスクアレイ格納装置に関し、とくに、ディスクア
レイI/Oオペレーションの改良方法に関する。
【0002】
【従来の技術】RAID(Redundant Array of Inexpensive
Disks, 以下 RAID という)格納システムは現今のコン
ピューターシステムアーキテクチャのみならず将来のア
ーキテクチャで使用する高価な大型のディスク ドライ
ブの代わりとして開発されたものである。RAID 格納シ
ステムはパーソナルコンピューターおよびワークステー
ションで現在使用されている5.25インチもしくは
3.5インチ ディスク ドライブのような小型の廉価な
ハードディスクのアレイを含む。ここ数年間、ディスク
アレイ製品が利用されてきたが、小型ディスク ドライ
ブの信頼性と性能が著しく改良され、しかもドライブの
コストが低下したため、近年 RAID システムの用途が一
層強い関心を集めている。
【0003】現在使われているいろいろのディスクアレ
イの設計が「廉価ディスク重複配列(RAID)の例」と題
するデヴィッド エイ.パターソン、ガース ギブソンお
よびランディー エイチ.カッツ共著の記事(ユニヴァ
ーシティー オヴ カリフォルニア レポート UCB/CSD 87
/391 号、1987年12月発行)に記載されている。
この記事をここに参考文献として引用する。この記事は
ディスクアレイについて議論すると共にディスクアレイ
が単一の大型磁気ディスクに比較して与えることのでき
る性能、信頼性、電力消費および拡大縮尺性(scalabil
ity)に関する改良点について議論している。廉価ディ
スク重複配列(RAID)レベルと呼ばれる5個のディスク
アレイの構成が議論されている。最も簡単なアレイはRA
IDレベル1システムと呼ばれているが、これはデータを
格納するための一つ以上のディスクおよびこれと同数
の、データディスクに書き込まれた情報のコピーを格納
するための加重の「鏡像」ディスクを含む。RAIDレベル
2、3、4、5システムと呼ばれる残りのRAIDレベル
は、いくつかのデータディスクにまたがる格納部分にデ
ータを断片化して格納する。パリティ情報は一つ以上の
加重ディスクを使用してエラーチェック情報すなわち格
納される。本発明はRAIDレベル4および5のシステムの
オペレーションの改良を目指すものである。
【0004】データ格納に使用するディスクの数をNと
するとき、RAIDレベル4ディスクアレイは(N+1)個
のディスクを含み、加重ディスクはパリティ情報を格納
するのに使用される。保存すべきデータはディスク間に
格納するため、一つ以上のデータブロックからなるいく
かの部分に分割される。対応するパリティ情報は、Nデ
ータドライブにまたがって格納されたデータの対応部分
をビット単位の排他的OR演算を施すことにより、計算
でき、これが専用のディスクに書き込まれる。このパリ
ティディスクはディスクの故障が生じた際に情報を再構
築するのに使われる。後で詳述するように書き込みは特
に二つのディスク、すなわちNデータディスクの一つと
パリティディスク、へのアクセスを必要とする。読み取
りオペレーションは通常、読み取るべきデータが各ディ
スク上に格納されたブロック長を超えない限り、Nデー
タディスクの内のただ一つにアクセスすれば足りる。
【0005】RAIDレベル5ディスクアレイはRAIDレベル
4システムと類似するが、データに加えてパリティ情報
が各グループ内の(N+1)ディスクにまたがって分布
される。(N+1)ディスクは各々、データを格納する
ためのいくつかのブロックとパリティ情報を格納するた
めのいくつかのブロックとを含む。パリティ情報がどこ
に格納されるかはユーザーの与えるアルゴリズムにより
制御される。RAIDレベル4システムにおけるように、RA
IDレベル5の書き込みは、通常、二つのディスクへのア
クセスが必要である。しかしRAIDレベル4システムにお
いて当該アレイへの書き込みの度に同じ専用パリティデ
ィスクへアクセスすることはもはや必要ない。この特長
により同時的書き込みオペレーションを行う機会を設け
ることができる。
【0006】RAIDレベル5システムは図1に示すように
5個のデータドライブおよびパリティディスク ドライ
ブとして DRIVE A ないし DRIVE E と予備ディスク ド
ライブである DRIVE F とを含む。アレイコントローラ
100がホストシステム147とアレイ ディスク ドラ
イブとの間のデータ転送を組織化する。このコントロー
ラはまたパリティ情報を計算し、検査する。ブロック1
45Aないし145Eはデータおよびパリティが5個の
アレイドライブ上に格納される様子を例示している。デ
ータブロックはブロック0ないしブロック15と同定す
ることにする。パリティブロックはパリティ0ないしパ
リティ3と同定することにする。パリティブロックおよ
びデータブロック間の関係は次の通りである。 パリティ0=(ブロック0)XOR(ブロック1)XOR(ブ
ロック2)XOR(ブロック3) パリティ1=(ブロック4)XOR(ブロック5)XOR(ブ
ロック6)XOR(ブロック7) パリティ2=(ブロック8)XOR(ブロック9)XOR(ブ
ロック10)XOR(ブロック11) パリティ3=(ブロック12)XOR(ブロック13)XOR
(ブロック14)XOR(ブロック15)
【0007】上述のように、パリティデータはNデータ
ドライブにまたがって格納されたデータの対応部分にビ
ット単位の排他的OR演算を施すことによって計算する
ことができる。しかしながら、各パリティビットはデー
タドライブからとった対応データすべての単なる排他的
OR積であるので、新規パリティは以下の方程式により
旧データと旧パリティおよび新規データとからもっと容
易に決定することができる。 新規パリティ=(旧データ XOR 新規データ)XOR 旧パ
リティ
【0008】上記方程式に示すRAIDレベル4又は5に対
するパリティ計算は、データドライブにまたがって格納
されたデータの対応部分にビット単位の排他的OR演算
を施すことによる計算よりはるかに簡単であるが、通
常、RAIDレベル4又は5の書き込みオペレーションは最
小限二つのディスク読み取りと二つのディスク書き込み
とを必要とする。一データブロックを超えるデータ書き
込みオペレーションでは三つ以上のディスク読み取りと
書き込みが必要となる。各ディスク読み取りオペレーシ
ョン毎に個別に読み取り対象の適当なディスクトラック
およびセクターへのシーク(探索)および回転が必要で
ある。したがってすべてのディスクを対象とするシーク
時間は各ディスクのシーク時間の最大値である。RAIDレ
ベル4又は5システムはしたがっって単一ディスク格納
装置あるいはRAIDレベル1、2、3システムと比較する
とき書き込みに顕著な負担が掛かる。
【0009】
【発明が解決しようとする課題】それゆえ本発明の課題
は、ディスクアレイ内でデータおよびパリティ情報を更
新するための新規かつ有用な方法を与えることである。
【0010】本発明のもう一つの課題は、RAIDレベル4
および5ディスクアレイ内でリード-モディファイ-ライ
ト プロシージャを最適に実行する方法を与えることで
ある。
【0011】本発明の別の課題はディスクアレイ内のデ
ィスク ドライブ利用効率を改善する新規かつ有用な方
法を与えることである。
【0012】本発明のさらに別の課題はディスクアレイ
内の各ドライブに対するI/Oサービス時間とI/Oキ
ュー(I/O queue)待機時間を最小限化する新規かつ有
用な方法を与えることである。
【0013】
【課題を解決するための手段】本発明のよれば、リード
-モディファイ-ライト(read-modigy-write, 以下、R
MWという)プロセスを使用してディスクアレイ内のデ
ータおよびパリティ情報を更新する改良された方法が与
えられる。リード-モディファイ-ライト プロセスは、
(a)旧データおよび旧パリティ情報をそれぞれ第一お
よび第二ディスク ドライブから読み取るステップと、
(b)旧データ、ディスクアレイから受信した新規デー
タ、および旧パリティ情報から新規パリティ情報を発生
するステップと、(c)新旧のデータおよび新規パリテ
ィ情報をそれぞれ前記第一および第二ディスク ドライ
ブに書き込むステップとを含む。ここに開示する改良し
たRMW方法は旧パリティの読み取り、新規パリティの
発生および新規パリティの書き込みプロシージャを旧デ
ータ読み取りプロシージャが完了するまで遅延させる。
【0014】ここに述べる方法はRAIDレベル5ディスク
アレイ用アレイコントローラ内に与えられる。ホストシ
ステムから新規データを受信すると、アレイコントロー
ラは更新すべきデータおよびパリティを含むディスク
ドライブを同定し、同定されたそのデータドライブおよ
びパリティドライブを求めてI/Oキュー中に適当な読
み取りリクエストおよび書き込みリクエストを置く。I
/Oオペレーションは、コントローラが当該データドラ
イブから旧データを最初に読み取り、新規および旧デー
タをそれぞれ格納バッファ内の第一および第二領域に書
き込むように予定が立てられる。コントローラは次いで
新規データをそのデータドライブに書き込む。パリティ
オペレーションとは、旧ぺり情報をパリティドライブか
ら読み取り、旧パリティ情報を上記格納バッファ内の第
三領域に保存し、旧パリティ情報を進級データに結合し
て新規パリティ情報を発生(新規パリティ=旧データ X
OR新規データ XOR 旧パリティ情報)し、新規パリティ
情報をパリティドライブに書き込むオペレーションであ
るが、このオペレーションを実行するスケジュールは、
当該データドライブからの旧データの読み取りの後、I
/Oキュー内に収容されている間にパリティドライブを
獲得するに最適の時期に行われるように、立てられる。
【0015】
【実施例】添付の図面および以下の詳細な説明を通して
本発明の上記課題その他の課題、特徴、および利点を明
らかにする。
【0016】
【アレイコントローラアーキテクチャ】図2には RAID
システムに供するディスクアレイコントローラ100の
アーキテクチャがブロック線図で示してある。このアレ
イコントローラは当該アレイ内の複数ディスク ドライ
ブのオペレーション(動作)を組織化して読み取りおよ
び書き込み、パリティの発生と検査、およびデータの回
復と再構築を果たす。コントローラはホストコンピュー
ターシステム(図示してなし)とホストインターフェー
ス兼CRC論理ブロック200を介してデータを交換す
る。ホストインターフェース論理ブロック200はプロ
セッサ101の制御の下に四つの18ビット幅の内部バ
ッファバスABUF、BBUF、CBUF、DBUFを
使って、ホストシステムに関連する18ビットもしくは
36ビット幅の外部SCSI-2バス107との間のイ
ンターフェースを果たす。バス107はブロック109
Uおよび109Lで表す標準SCSI-2チップおよび
18ビットバス111Uおよび111Lを介してホスト
インターフェース論理ブロック200に接続する。ブロ
ック200とプロセッサ101との間の相互接続はアド
レス/データバス113により与えられる。
【0017】ホストインターフェース論理ブロック20
0はSCSI-2デバイス109U、109Lと四つの
バッファバスABUF、BBUF、CBUF、DBUF
との間でデータを多重化する働きをする。ブロック20
0はバス111U、111Lと、(1)4+1RAIDレベ
ル3および高帯域RAIDレベル5アプリケーションに対す
る四つのバッファバスすべて(これは前記四つのバスに
またがるデータを回転シーケンス順にワードストリッピ
ング(word stripping)を行うことにより行う)、
(2)2+1RAIDレベル3アプリケーションに対する2
対のバッファバスの一方(これは当該バッファバス対に
またがるデータを回転シーケンス順にワードストリッピ
ングすることにより行う)、(3)RAIDレベル1および
単一バスRAIDレベル5のアプリケーションに対する任意
の一バッファバスとの間で多重化機能を果たす。
【0018】内部バッファバスABUF、BBUF、C
BUF、およびDBUFはホストホストインターフェー
ス論理ブロック200をRAMバッファ120と上方バ
ススイッチ400Uおよび下方バススイッチ400Lと
に接続する。RAMバッファ120は上記四つのバスか
ら72ビット幅のワードを読み、かつ書き込み、あるい
は上記バッファバスの一つから個別の18ビット幅ワー
ドを読み、書き込むことができる能力を有する。バス1
13への18又は36ビットのアクセスもトランシーバ
ーシー115を介してできる。
【0019】バススイッチ400Uおよび400Lは、
バッファバスABUF、BBUF、CBUF、およびD
BUFと六つの18ビット幅ドライブバスADRV、B
DRV、CDRV、DDRV、EDRV、FDRVとの
間の可変バスマッピングを与える。このとき各スイッチ
は一バイト(8ビットデータおよび一ビットパリティ)
の情報に対する経路を与える。バススイッチ400Uお
よび400Lはさらにパリティ情報を発生する能力を有
し、この能力は故障したディスク ドライブ上に格納さ
れている検査パリティ情報および再構築情報を、上記バ
ッファバス又はドライブバスの任意の一つに指向させる
ことができる。下に説明するように、図3にはバススイ
ッチ400Uおよび400Lの構成および動作が詳細に
示してある。
【0020】各ドライブバスADRV、BDRV、CD
RV、DDRV、EDRV、FDRVは130Aないし
130Fと記した関連のSCSI-2デバイスに接続さ
れる。これらのデバイスはディスクアレイを形成してい
る六つのディスク ドライブ(図示してなし)の対応す
るものへの接続を与える。これら六つのドライブを DRI
VE A ないし DRIVE F と命名する。リード−ソロモン
(Reed-Solomon, RS)サイクリック重複チェック(CR
C)論理ブロック500AB、500CD、および50
0EFはそれぞれバスADRVとBDRVの間、CDR
VとDDRVの間、EDRVとFDRVの間を接続して
当該アレイコントローラのためにエラー検出およびリー
ド-ソロモンCRCの発生を行う。
【0021】ホストインターフェース論理ブロック20
0、バススイッチ400Uおよび400L、RSCRC
論理ブロック500AB、500CD、および500E
F、並びにSCSIデバイス109U、109L、13
0Aないし130Fの制御はマイクロプロセッサ101
により行われる。マイクロプロセッサ101、関連プロ
セッサメモリ103、およびプロセッサ制御入力10
5、と上記諸要素との間の通信はアドレス/データバス
113により与えられる。図に示すようにバス113に
はDMA制御論理ブロック300が接続されている。ブ
ロック300内の論理演算がはホストインターフェース
論理ブロック200、バススイッチ400U、400
L、SCSI-2デバイス130Aないし130Fおよ
びプロセッサ101に対するDMア制御を与える。
【0022】図2に示すコントローラアーキテクチャは
いろいろに異なる量のディスク ドライブを包含できる
ように、また異なる RAID コンフィグレーションを包含
できるように構成できる。上述した図2のディスクアレ
イコントローラの構成および動作に関するより詳しい説
明は1991年8月16日付け米国特許出願第 07/74
6,399 号に記載されており、これを文献としてここに引
用する。「ディスクアレイコントローラアーキテクチ
ャ」と題するこの米国特許出願はNCRコーポレーショ
ンに譲渡されたものである。
【0023】
【バススイッチアーキテクチャ】バススイッチ400U
および400L各々に含まれる論理回路は図3のブロッ
ク線図に示してある。図示した構成は単一半導体チップ
上に形成してある。四つのホストポート481ないし4
84はそれぞれ、四つのコントローラバスABUF、B
BUF、CBUF、およびDBUFへの接続を与える。
参照番号491ないし496で同定されるアレイポート
はそれぞれ六つのディスク ドライブバスADRV、B
DRV、CDRV、DDRV、EDRV、FDRVにつ
ながる。バススイッチ400Uおよび400Lは一体的
に動作してコントローラバスABUF、BBUF、CB
UF、およびDBUFの任意の一つと、ドライブバスA
DRV、BDRV、CDRV、DDRV、EDRV、F
DRVの任意の一つとの間の一方向接続を与える。いく
つかのコントローラバスおよびそれと同数のドライブバ
ス間の多重接続も許される。さらに、これらバススイッ
チは任意のコントローラバスから二つ以上のドライブバ
スへの一方向接続を与えることができる。バス453を
介してえられたパリティ情報もまたこれらドライブバス
の任意の一つに出力することができる。
【0024】各バススイッチのアーキテクチャは三つの
主ブロック、すなわちラッチモジュール450、スイッ
チモジュール460およびパリティモジュール470か
ら成る。スイッチモジュール460はコントローラバス
ABUF、BBUF、CBUF、およびDBUFとドラ
イブバスADRV、BDRV、CDRV、DDRV、E
DRV、FDRVとの間に接続される。追加バス453
がパリティモジュール470をスイッチモジュール46
0に接続する。スイッチモジュール460によりいくつ
かの追加的機能が与えられる。第一に、スイッチモジュ
ール460は任意のコントローラバスと任意のドライブ
バスとの間の一方向接続を与える。いくつかのコントロ
ーラバスおよび同数のドライブバス間の多重接続も許さ
れる。
【0025】第二に、このバススイッチモジュールは任
意の二つ以上のドライブバス間の接続を与える。そのよ
うなオペレーションはホストあるいはコントローラのオ
ペレーションに干渉することなくディスクドライブ間で
情報を転送するのに必要である。
【0026】第三に、スイッチモジュール460は任意
の二つ以上のコントローラバス間の接続を与える。この
モードのオペレーションは、一コントローラバスから別
のコントローラバスにデータを伝えることを許すことに
より、当該コントローラ上のデータ再構築をサポートす
る。このモードのターンアラウンド(turnaround)オペ
レーションもまた内蔵自己テスト(Built-In Self Tes
t, BIST)の開発にも有利である。
【0027】最後に、このバススイッチモジュールは任
意のコントローラバスから一つ以上のドライブバスへの
一方向接続を与えることができる。バス453を介して
得られたパリティ情報もまた任意の一ドライブバスに出
力することができる。
【0028】パリティモジュール470はデータ受信用
の接続端を各コントローラバスにつなげており、またス
イッチモジュール460にパリティ情報を与えるバス4
53への接続端をもっている。パリティモジュール47
0は、各アクティブコントローラバスについてビット幅
の的排他的OR演算を行うことにより RAID レベル3、
4、5オペレーションのためのパリティ情報を発生す
る。このパリティ情報はバス453を介してスイッチモ
ジュール460に与えられる。
【0029】上述し、図3に示したバススイッチ400
Uおよび400Lの構成およびオペレーションに関する
より詳しい説明が1991年5月17日付け米国特許出
願第07/701,921 号に与えられており、これを
ここに文献として引用する。「多重チャンネル データ
およびパリティ 交換デバイス」と題する米国特許出願
第07/701,921 号はNCRコーポレーションに
譲渡されたものである。
【0030】
【RAID レベル5 リード-モディファイ-ライト オペレ
ーション】図4および5は DRIVE A および DRIVE B が
関与する RAID レベル5のライト(書き込み)を例示す
るもので、この場合、データは DRIVE B に書き込むべ
きもの、またパリティ情報は DRIVE A を更新すべきも
のである。図4および5にはリード-モディファイ-ライ
ト(RMW)オペレーションを支えるに必要な構成のみ
が示してある。
【0031】図示してないコントローラ プロセッサの
監督の下に、旧データおよびパリティ情報は最初に、図
4に示す二つのドライブから読み込まれる。この旧デー
タおよびパリティは DRIVE B および DRIVE A 内の目標
領域からそれぞれ読み取られ、バス135Bおよび13
5Aを経てバススイッチ400に送られる。バススイッ
チ400は受信したデータとパリティを結合して排他的
OR積である旧データXOR旧パリティを発生するよう
に構成されている。この積はバッファ120内の第一領
域120Dに格納される。ホストシステム147から受
信した新規データは同時にバッファ120内の第二領域
120Aに保存される。
【0032】次いで新規データおよびパリティ情報は図
5に示すように DRIVE B および DRIVE A に書き込まれ
る。バススイッチ400は再構成されて、格納バッファ
120内の領域120Aから読み出された新規データを
DRIVE B に送る。バススイッチ400はさらに、先に
バッファ領域120Dに保存された積、すなわち旧デー
タXOR旧パリティ、と新規データとを結合することに
より、新規パリティ情報を発生するように構成されてい
る。その結果である旧データXOR旧パリティXOR新
規データが DRIVE A に書き込まれる。
【0033】
【モディファイド RAID レベル5 ライト オペレーショ
ン】図6ないし9は、本発明の方法に従ってパリティラ
イト オペレーションが遅延されるモディファイド RAID
レベル5 ライト オペレーションを例示している。図
4および5におけると同様、図6ないし9にはこのライ
ト(書き込み)オペレーションに役立つ構成のみを示
す。
【0034】図6はモディファイド RAID レベル5 ラ
イト オペレーションにおける最初のステップを示す。
この第一ステップではディスク格納装置から受信した旧
データおよびホストシステムから受信した新規データは
バッファ120に保存される。図6ではホストシステム
147から受信した新規データはホストインターフェー
ス論理ブロック200およびバッファバスABUFを介
してバッファ120内の第一格納領域に指向される。旧
データは DRIVE B から読み取られて、バス135B、
BDRV、バススイッチ400、およびバッファバスD
BUFを経由してバッファ120内の第二格納領域に送
られる。ホストシステム147から受信した新規データ
はホストインターフェース論理ブロック200およびバ
ッファバスABUFを通してバッファ120内の第二格
納領域に指向される。バススイッチ400はその後再構
成されてバッファ120内に格納された新規データが図
7に示すように DRIVE B に書き込まれる。
【0035】旧パリティは図8に示すように DRIVE A
から読み取られて格納バッファ120内の領域120D
に書き込まれる。このステップは、旧データを DRIVE B
から読み取り格納領域120内に保存するという図6
に示すオペレーションと同時にあるいはその後の任意時
刻行うことができる。図9に示すように、バススイッチ
400がこの後再構成され、格納領域120Aから得た
新規データ、格納領域120Cから得た旧データおよび
格納領域120Dから得た旧パリティを結合することに
より新規パリティ情報を発生する。その結果である旧デ
ータXOR旧パリティXOR新規データが DRIVE A に
書き込まれる。図9に示す新規パリティ書き込みオペレ
ーションは、図8に示す旧パリティ読み取りオペレーシ
ョンの完了に伴って直ちに行うことができ、あるいはも
っと適当な時刻に実行を遅延させることができる。
【0036】DRIVE B(データ)および DRIVE A (パ
リティ)の読み取りと書き込みオペレーションを分離す
ることにより、一層有効なディスク ドライブの利用が
できる。図4および5に示した上述のRMW手順では、
パリティ又はデータドライブへのアクセス獲得の遅延は
RMWオペレーション全体を遅延させる。DRIVE B 上の
データはドライブが利用可能になったときに直ちに更新
される。この更新はパリティドライブである DRIVE A
が利用できないときは遅延されない。同様にして DRIVE
A のオペレーションは万一 DRIVE B が利用できないと
きは延期されない。
【0037】本発明の方法によれば、 DRIVE A を含む
パリティ読み取りおよび書き込みオペレーションを遅延
させることにより、パリティの読み取り、発生、および
書き込みオペレーション(図8および9)がディスクサ
ービスについて時間的損失を強いられることなく効率よ
く進行できるようになるまで、 DRIVE A を他の入力/
出力オペレーションに利用することができるようにす
る。
【0038】ディスクの読み取りおよび書き込みオペレ
ーションのスケジュールは、アレイ内の各ドライブに対
し別個のI/Oキューを維持しているアレイコントロー
ラにより組み立てられる。本方法は上記の例では更新す
べきデータおよびパリティを収容しているディスク ド
ライブを、ドライブ DRIVE B および DRIVE A とし、当
該データおよびパリティドライブを獲得するための適当
な読み取りおよび書き込みリクエストをI/Oキューに
置き、パリティオペレーションのスケジュールを立て
る。すなわち DRIVE A からは旧パリティ情報を読み取
り、新規パリティ情報を発生し、その新規パリティ情報
を DRIVE A に書き込む。そしてその実行は DRIVE B か
らの旧データを読み取った後、I/Oキュー内に収容さ
れている間にDRIVE A を獲得する最良の時期に行われ
る。
【0039】さらに、書き込みリクエストを発行したホ
ストシステムから見た全体的応答時間を最小限にするた
め、本モディファイド書き込みルーチンは DRIVE B へ
のデータの書き込みが完了したすぐ後に、ホストシステ
ムに対し書き込み完了ステータスを報告するためのプロ
シージャを含むことができる。これは DRIVE A への関
連パリティの発生および書き込みの完了を待たずに行う
ことができる。
【0040】アレイあるいはドライブの故障が起きた場
合に当該アレイ内のデータの信頼性およびパリティの一
体性を確保するため、本アレイコントローラは、保留中
のパリティブロックを同定するステータステーブルを保
有している。このステータステーブルはアレイコントロ
ーラから離隔された安全な二次的格納デバイス内に置く
べきである。そうすることにより、コントローラの故障
があってもこのステータステーブルが生き残り、データ
およびパリティの再生が可能である。
【0041】
【効果】以上、本発明によりディスクアレイ内のディス
ク ドライブの利用効率を改善する方法が与えられるこ
とを示した。すなわち、本方法によればディスクアレイ
内でデータおよびパリティ情報を効率よく更新すること
ができ、またディスクアレイ内でデスクドライブの利用
効率を改善することができる。さらにまたディスクアレ
イ内の各ドライブに対するI/Oサービス時間およびI
/Oキュー待機時間を最小限化することができる。
【0042】データおよびパリティ情報の格納用のアレ
イコントローラおよび5個のディスク ドライブを含む
RAID レベル5システムを図示し、説明したが、当業者
には本発明は上記特定の実施例に限定されないことが了
解できよう。また本発明の要旨から逸脱することなく多
数の設計変更および修正が可能であることを了解された
い。例えば本方法は RAID レベル4その他のアレイシス
テムの性能改善に利用することができる。本方法はまた
専用のアレイコントローラを含まないディスクアレイシ
ステムの場合にもホストシステムプロセッサに採用する
ことができる。
【0043】本発明を、「ディスクアレイにおける高速
ライトI/O処理」と題するキースバーナード デュラ
ーク およびロバート アレン デモスによる米国特許出
願第966, 107号に開示されている方法を合わせれ
ばアレイ性能の一層の向上が実現される。上記米国出願
を参考文献としてここに引用する。
【図面の簡単な説明】
【図1】六個のディスク ドライブを含むRAIDレベル5
アレイのブロック線図である。
【図2】図1に示すディスクアレイコントローラ100
として使用可能な一つのアーキテクチャを示すブロック
線図である。
【図3】図2に示すバススイッチブロック400Uに含
まれる論理回路のブロック線図である。
【図4】RAIDレベル5リード-モディファイ-ライト オ
ペレーションを示す図である。
【図5】RAIDレベル5リード-モディファイ-ライト オ
ペレーションを示す別の図である。
【図6】本発明の方法によりパリティライト オペレー
ションを表示する場合の、設計変更にかかるRAIDレベル
5ライト オペレーションを示す図である。
【図7】本発明の方法によりパリティライト オペレー
ションが表示される場合の、設計変更にかかるRAIDレベ
ル5ライト オペレーションを示す別の図である。
【図8】本発明の方法によりパリティライト オペレー
ションが表示される場合の、設計変更にかかるRAIDレベ
ル5ライト オペレーションを示す別の図である。
【図9】本発明の方法によりパリティライト オペレー
ションが表示される場合の、設計変更にかかるRAIDレベ
ル5ライト オペレーションを示す別の図である。
【符号の説明】
100 アレイコントローラ 101 プロセッサ 107 外部SCSI-2バス 113 アドレス/データバス 115 トランシーバー 120 RAMバッファ 147 ホストシステム 200 ホストインターフェース兼CRC論理ブロック 400U 上方バススイッチ 400L 下方バススイッチ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】ホストシステムからの新規データを受信す
    るとディスクアレイ内の第一および第二ディスク ドラ
    イブにそれぞれ格納されているデータおよび関連パリテ
    ィ情報を更新する方法であって、(A)該第一ドライブ
    から旧データを読み取り、該旧データを第一格納バッフ
    ァに保存するステップと、(B)該新規データを第二格
    納バッファに書き込むステップと、(C)該第一ドライ
    ブ上に在駐している該旧データを該新規データで置換す
    るステップと、(D)該ホスト書き込みオペレーション
    が終了したことを示すライト完了ステータス信号を該ホ
    ストシステムに発行するステップと、(E)ステップA
    の完了後に新規パリティ情報を発生するステップと、
    (F)該第二ドライブに在駐している旧パリティ情報を
    該新規パリティ情報で置換するステップとを含む更新方
    法。
  2. 【請求項2】第一および第二ディスク ドライブ上にそ
    れぞれ格納されているデータとパリティ情報とを更新す
    るため(a)旧データおよび旧パリティ情報が該第一お
    よび第二ディスクドライ部からそれぞれ読み取られ、
    (b)新規パリティ情報が発生され、(c)新規データ
    および該新規パリティ情報が該第一および第二ディスク
    ドライブに書き込まれるようにされたディスクアレイ
    のリード-モディファイ-ライト方法において、 旧データ読み取りプロシージャが完了するまで、旧パリ
    ティの読み取り、新規パリティの発生、および新規パリ
    ティの書き込みプロシージャを遅延するステップを含む
    改良方法。
JP5286277A 1992-10-23 1993-10-22 Raidレベル5ディスクアレイにおけるリード−モディファイ−ライト パリティ オペレーションの遅延イニシエション方法 Pending JPH0772985A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/966,106 US5388108A (en) 1992-10-23 1992-10-23 Delayed initiation of read-modify-write parity operations in a raid level 5 disk array
US966106 1992-10-23

Publications (1)

Publication Number Publication Date
JPH0772985A true JPH0772985A (ja) 1995-03-17

Family

ID=25510924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5286277A Pending JPH0772985A (ja) 1992-10-23 1993-10-22 Raidレベル5ディスクアレイにおけるリード−モディファイ−ライト パリティ オペレーションの遅延イニシエション方法

Country Status (4)

Country Link
US (1) US5388108A (ja)
EP (1) EP0594464B1 (ja)
JP (1) JPH0772985A (ja)
DE (1) DE69331369T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173361B1 (en) 1998-01-19 2001-01-09 Fujitsu Limited Disk control device adapted to reduce a number of access to disk devices and method thereof
JP2016510148A (ja) * 2013-12-31 2016-04-04 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. 分散ファイルストレージシステムにおけるデータ処理の方法およびデバイス

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332623A (ja) * 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置
GB2289779B (en) * 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
JPH0830397A (ja) * 1994-07-20 1996-02-02 Sony Corp 情報記憶装置
JP3661205B2 (ja) * 1994-09-09 2005-06-15 株式会社日立製作所 ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法
US5533190A (en) * 1994-12-21 1996-07-02 At&T Global Information Solutions Company Method for maintaining parity-data consistency in a disk array
US5671439A (en) * 1995-01-10 1997-09-23 Micron Electronics, Inc. Multi-drive virtual mass storage device and method of operating same
US5745671A (en) * 1995-02-28 1998-04-28 International Business Machines Corporation Data storage system with localized XOR function
US5737744A (en) * 1995-10-13 1998-04-07 Compaq Computer Corporation Disk array controller for performing exclusive or operations
US5860090A (en) * 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
US5778426A (en) * 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US5720025A (en) 1996-01-18 1998-02-17 Hewlett-Packard Company Frequently-redundant array of independent disks
KR100275900B1 (ko) * 1996-09-21 2000-12-15 윤종용 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
US5883909A (en) * 1996-11-06 1999-03-16 Lsi Logic Corporation Method and apparatus for reducing data transfers across a memory bus of a disk array controller
JP3133004B2 (ja) * 1996-11-21 2001-02-05 株式会社日立製作所 ディスクアレイ装置およびその制御方法
KR100205072B1 (ko) * 1996-12-05 1999-06-15 정선종 디스크 어레이 제어기에서의 vram 기판 패리티 엔진
US5835694A (en) * 1996-12-06 1998-11-10 International Business Machines Corporation Raid-configured disk drive array wherein array control occurs at the disk drive level
US5933824A (en) * 1996-12-23 1999-08-03 Lsi Logic Corporation Methods and apparatus for locking files within a clustered storage environment
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US5944838A (en) * 1997-03-31 1999-08-31 Lsi Logic Corporation Method for fast queue restart after redundant I/O path failover
US5953352A (en) 1997-06-23 1999-09-14 Micron Electronics, Inc. Method of checking data integrity for a raid 1 system
US6061822A (en) * 1997-06-23 2000-05-09 Micron Electronics, Inc. System and method for providing a fast and efficient comparison of cyclic redundancy check (CRC/checks sum) values of two mirrored disks
US6098114A (en) 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US5987628A (en) * 1997-11-26 1999-11-16 Intel Corporation Method and apparatus for automatically correcting errors detected in a memory subsystem
US6035347A (en) * 1997-12-19 2000-03-07 International Business Machines Corporation Secure store implementation on common platform storage subsystem (CPSS) by storing write data in non-volatile buffer
US6223323B1 (en) * 1998-07-17 2001-04-24 Ncr Corporation Method for storing parity information in a disk array storage system
US6343343B1 (en) 1998-07-31 2002-01-29 International Business Machines Corporation Disk arrays using non-standard sector sizes
US6530035B1 (en) 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
US6405284B1 (en) 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
US6330625B1 (en) * 1999-01-15 2001-12-11 Oracle Corporation System for initiating multiple read operation requests to multiple copies of a data item and identifying a first one of the requests as having the fastest response time
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
US6418512B1 (en) 1999-08-31 2002-07-09 International Business Machines Corporation Method and system for reporting disk utilizations for disk subsystems
US7127668B2 (en) * 2000-06-15 2006-10-24 Datadirect Networks, Inc. Data management architecture
US20060259683A1 (en) * 2005-05-16 2006-11-16 Oracle International Corporation Method and system for disk stippling
CN100397352C (zh) * 2005-09-15 2008-06-25 威盛电子股份有限公司 磁碟阵列的检测回复电路及其方法
US7680992B1 (en) * 2006-06-14 2010-03-16 Nvidia Corporation Read-modify-write memory with low latency for critical requests
WO2008070191A2 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8458515B1 (en) * 2009-11-16 2013-06-04 Symantec Corporation Raid5 recovery in a high availability object based file 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
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
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
US8478938B2 (en) 2010-10-28 2013-07-02 Lsi Corporation Performing data writes in parity protected redundant storage arrays
CN103902232B (zh) * 2012-12-28 2018-11-09 联想(北京)有限公司 一种写入的数据的方法及装置
WO2016051512A1 (ja) 2014-09-30 2016-04-07 株式会社日立製作所 分散型ストレージシステム
US10191841B2 (en) 2015-07-06 2019-01-29 Shannon Systems Ltd. Host device, access system, and access method
CN106339179B (zh) * 2015-07-06 2020-11-17 上海宝存信息科技有限公司 主机装置、存取系统、以及存取方法
US20180113616A1 (en) * 2016-10-21 2018-04-26 Nec Corporation Disk array control device, disk array device, disk array control method, and recording medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4884271A (en) * 1987-12-28 1989-11-28 International Business Machines Corporation Error checking and correcting for read-modified-write operations
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory
US5265098A (en) * 1990-08-03 1993-11-23 International Business Machines Corporation Method and means for managing DASD array accesses when operating in degraded mode
US5257362A (en) * 1991-03-08 1993-10-26 International Business Machines Corporation Method and means for ensuring single pass small read/write access to variable length records stored on selected DASDs in a DASD array

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173361B1 (en) 1998-01-19 2001-01-09 Fujitsu Limited Disk control device adapted to reduce a number of access to disk devices and method thereof
JP2016510148A (ja) * 2013-12-31 2016-04-04 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. 分散ファイルストレージシステムにおけるデータ処理の方法およびデバイス
US10127233B2 (en) 2013-12-31 2018-11-13 Huawei Technologies Co., Ltd. Data processing method and device in distributed file storage system

Also Published As

Publication number Publication date
EP0594464A2 (en) 1994-04-27
US5388108A (en) 1995-02-07
DE69331369T2 (de) 2002-06-20
EP0594464B1 (en) 2001-12-19
DE69331369D1 (de) 2002-01-31
EP0594464A3 (en) 1998-02-11

Similar Documents

Publication Publication Date Title
JPH0772985A (ja) Raidレベル5ディスクアレイにおけるリード−モディファイ−ライト パリティ オペレーションの遅延イニシエション方法
US5596708A (en) Method and apparatus for the protection of write data in a disk array
US5487160A (en) Concurrent image backup for disk storage system
US5418925A (en) Fast write I/O handling in a disk array using spare drive for buffering
US5883909A (en) Method and apparatus for reducing data transfers across a memory bus of a disk array controller
US5345565A (en) Multiple configuration data path architecture for a disk array controller
JP3237736B2 (ja) データ記憶装置のマトリックス構造
US6918007B2 (en) Memory controller interface with XOR operations on memory read to accelerate RAID operations
US5608891A (en) Recording system having a redundant array of storage devices and having read and write circuits with memory buffers
US5727144A (en) Failure prediction for disk arrays
EP0572564B1 (en) Parity calculation in an efficient array of mass storage devices
US5479611A (en) Disk array apparatus
US5148432A (en) Arrayed disk drive system and method
US5634033A (en) Disk array storage system architecture for parity operations simultaneous with other data operations
JP2981245B2 (ja) アレイ型ディスク駆動機構システム及び方法
US5598549A (en) Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver
JPH08328760A (ja) ディスクアレイ装置
WO1996018141A1 (fr) Systeme informatique
US6023754A (en) Multiple channel data bus routing switching including parity generation capabilities
US5787463A (en) Disk array system including a dual-ported staging memory and concurrent redundancy calculation capability
JP2857289B2 (ja) ディスクアレイ装置
JPH06274282A (ja) 磁気記録装置
JPH0816327A (ja) ディスクアレイ装置
JP2854471B2 (ja) ディスクアレイ装置
JPH11119915A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050802