JP3270959B2 - ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置 - Google Patents

ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置

Info

Publication number
JP3270959B2
JP3270959B2 JP20919794A JP20919794A JP3270959B2 JP 3270959 B2 JP3270959 B2 JP 3270959B2 JP 20919794 A JP20919794 A JP 20919794A JP 20919794 A JP20919794 A JP 20919794A JP 3270959 B2 JP3270959 B2 JP 3270959B2
Authority
JP
Japan
Prior art keywords
parity
data
disk
disk array
updated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP20919794A
Other languages
English (en)
Other versions
JPH07152499A (ja
Inventor
仁 角田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP20919794A priority Critical patent/JP3270959B2/ja
Publication of JPH07152499A publication Critical patent/JPH07152499A/ja
Application granted granted Critical
Publication of JP3270959B2 publication Critical patent/JP3270959B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディスクファイルシステ
ムに係り、特に高性能な入出力動作を可能とするディス
クアレイ装置と該装置におけるパリティ格納方法および
障害回復方法に関する。
【0002】
【従来の技術】現在のコンピュータシステムにおいて
は、CPU等の上位側が必要とするデ−タは2次記憶装
置に格納され、CPUが必要とする時に応じ2次記憶装
置に対してデ−タの書込み、読み出しを行っている。こ
の2次記憶装置としては一般に不揮発な記憶媒体が使用
され、代表的なものとして磁気ディスク装置(以下ドラ
イブとする)、光ディスクなどがあげられる。近年高度
情報化に伴い、コンピュータシステムにおいて、2次記
憶装置の高性能化が要求されてきた。その一つの解とし
て、多数の比較的容量の小さなドライブにより構成され
るディスクアレイが考えられている。ディスクアレイに
ついて記載された文献として、「D.Patterso
n,G.Gibson,and R.H.Kartz;
A Case for Redundant Arra
ys of Inexpensive Disks(R
AID),in ACM SIGMOD Confer
ence,Chicago,IL,(June198
8)」がある。D.Patterson,G.Gibs
on,and R.H.Kartz;A Case f
or Redundant Arrays of In
expensive Disks(RAID)におい
て、データを分割して並列に処理を行うディスクアレイ
(レベル3)とデータを分散して、独立に扱うディスク
アレイ(レベル4、5)について、その性能および信頼
性の検討結果が報告されている。現在この論文に書かれ
ている方式が最も一般的なディスクアレイと考えられて
いる。
【0003】レベル4、5のディスクアレイでは個々の
データを分割せずに独立に扱い、多数の比較的容量の小
さなドライブに分散して格納するものである。以下にデ
ータを分散して、独立に扱うディスクアレイについて説
明する。レベル4はレベル5において論理グループを構
成するドライブに分散しているパリティを、1台のパリ
ティのみを格納するドライブにまとめたものである。こ
こで、レベル3、レベル4、レベル5について簡単に説
明しておく。レベル3は、ディスクに格納するデータ#
1として、例えば「001010101011・・・・
・」を想定し、データ#1とパリティを格納するための
ディスクとしてディスク#1〜#5が設けられた場合、
ディスク#1に‘0’、ディスク#2に‘0’、ディス
ク#3に‘1’、ディスク#4に‘0’を順次格納し、
格納された‘0010’に対するパリティをディスク#
5に格納する。そして、次に同様にして‘1’,
‘0’,‘1’,‘0’を順次ディスク#1〜#4に格
納し、そのパリティを#5に格納してゆく。レベル4
は、データとパリティを格納するためのディスクとして
ディスク#1〜#5が設けられた場合、データ#1,#
5,・・・がディスク#1に、データ#2,#6,・・
・がディスク#2に、データ#3,#7,・・・がディ
スク#3に、データ#4,#8,・・・がディスク#4
に格納される。そして、例えば、データ#1が「01・
・・」、データ#2が「00・・・」、データ#3が
「11・・・」、データ#4が「00・・・」であると
すると、各データの先頭ビット‘0010’に対するパ
リティをパリティ専用として指定されたディスク#5の
先頭ビットととして格納し、以下同様にして、各データ
の2番目のビット‘1010’に対するパリティをディ
スク#5の2番目のビットととして格納してゆく。そし
て、データ#5〜#8のデータ組に対するパリティデー
タをディスク#5に2番目のパリティデータとして格納
するようにしてゆく。レベル5は、レベル4のようなパ
リティ専用のディスクを決めず、データ#1をディスク
#1、データ#2をディスク#2、データ#3をディス
ク#3、データ41をディスク#4に格納し、データ#
1〜#4のデータ組に対するパリティデータP1234をデ
ィスク#5に格納し、次いで、データ#5をディスク#
2、データ#6をディスク#3、データ#7をディスク
#4、データ8をディスク#5に格納し、データ#5〜
#8のデータ組に対するパリティデータP5678をディス
ク#1に格納し、次いで、データ#9をディスク#1、
データ#10をディスク#3、データ#11をディスク
#4、データ12をディスク#5に格納し、データ#9
〜#12のデータ組に対するパリティデータP9101112
をディスク#2に格納するようにしてゆく。
【0004】現在、一般に使用されている汎用大型コン
ピュータシステムの2次記憶装置では、1ドライブ当り
の容量が大きいため、他の読み出し/書込み要求に当該
ドライブが使用されて、そのドライブを使用できずに待
たされることが多く発生した。上記文献に記載されたタ
イプのディスクアレイでは汎用大型コンピュータシステ
ムの2次記憶装置で使用されている大容量のドライブ
を、多数の比較的容量の小さなドライブで構成し、デー
タを分散して格納してあるため、読み出し/書込み要求
が増加してもディスクアレイの複数のドライブで分散し
て処理することが可能となり、読み出し/書込み要求が
またされることが減少する。しかし、ディスクアレイ
は、このように多数のドライブにより構成されるため、
部品点数が増加し障害が発生する確率が高くなる。そこ
で、信頼性の向上を図る目的で、パリティを用意する必
要がある。このパリティによりデータを格納したドライ
ブに障害が発生した場合、その障害ドライブ内のデータ
を復元することが可能となる。ディスクアレイではデー
タからパリティを作成しデータと同様にドライブに格納
しておく。この時、パリティは、パリティの作成に関与
したデータとは別のドライブに格納される。
【0005】これらのディスクアレイでは、現在一般に
使用されている汎用大型コンピュータシステムと同様、
2次記憶装置内では、個々のデータの格納場所(アドレ
ス)は予め指定したアドレスに固定され、CPUから当
該データへ読み出しまたは書込みする場合、この固定さ
れたアドレスへアクセスすることになっている。この分
散して格納するディスクアレイ(レベル5)ではストレ
−ジテクノロジコーポレーション(以下STKとする)
から製品発表がされている。STK社から出願されてい
る米国特許WO 91/20076では、レベル5の基
本アーキテクチャにおいて、動的に変更可能なアドレス
のテーブルを用意することにより、データ圧縮を行いデ
ータの書込み処理において、トラック単位で書込み先の
アドレスを動的に変換する方法について開示されてい
る。また、IBM社の特開平4−230512号公報に
はレベル5において、書き込み時に書き込むデータと、
この書き込みにより更新したパリティを、それぞれ別の
場所に書き込む方法について開示されている。さらに、
IBM社からディスクアレイ(9337)では、レベル
5においてWAD(ライト アシスト デバイス)を設
けることが発表されている。
【0006】一方、近年磁気ディスクの置き換えデバイ
スとしてフラッシュメモリが着目されている。フラッシ
ュメモリは不揮発な半導体メモリのため、磁気ディスク
と比較して高速にデータの読み出し、書き込みが可能で
ある。しかし、フラッシュメモリでは書き込む際に書き
込み先に書き込まれているデータを消去してからでなけ
れば書き込めない。HN28F1600シリーズのフラ
ッシュメモリのデータシート(ADJ−203−045
(A)(z))によると、データの書き込みまたは読み
だし時間は、DRAM等と同様に約100ns程度だ
が、消去時間が10msかかる。また、フラッシュメモ
リでは書き込み回数に限界があり、一般にフラッシュメ
モリでは百万回が書き込み回数の限界とされ実用化にお
いては問題とされている。このように、フラッシュメモ
リにおける、書き込み回数に限界があるという問題点を
解決する方法として、書き込み時にマッピングテーブル
でフラッシュメモリへの書き込回数が平均化するように
アドレス変換する方法についてIBM社から特開平5ー
27924号公報において開示されている。
【0007】
【発明が解決しようとする課題】現在の汎用大型計算機
システム等ではドライブにより構成される2次記憶装置
内では、CPUから転送されてくるデータは個々のデー
タの格納場所(アドレス)が予め指定したアドレスに固
定され、CPUから当該データへ読み出しまたは書込む
場合は、この固定されたアドレスへアクセスすることに
なる。これは、ディスクアレイにおいても同じである。
データを分割して並列に処理を行うディスクアレイ(レ
ベル3)ではこのようにアドレスを固定しても影響は無
いが、データを分散して、独立に扱うディスクアレイ
(レベル4、5)ではアドレスを固定した場合、書込み
時に大きな処理オーバヘッドが必要になる。この書き込
み時の処理オーバヘッドについては特願平4−2305
12に説明されている。以下それについて説明する。
【0008】図10は公知例で示したD.Patter
sonらが提案したRAIDに述べられている、データ
を分散して独立に扱うディスクアレイ(レベル5)内部
のデータアドレスを示している。この各アドレスにある
データは1回の読み出し/書込み処理される単位で、個
々のデータは独立している。前述したようにこのような
システムでは、信頼性を向上するためパリティを設定す
ることが不可欠である。本システムでは各ドライブ内の
同一アドレスのデータによりパリティが作成される。す
なわち、ドライブ#1から4までのアドレス(1,1)
のデータの組によりパリティが作成され、パリティを格
納するドライブの(1,1)に格納される。本システム
では読み出し/書込み処理は現在の汎用大型計算機シス
テムと同様に各ドライブに対し当該データをアクセスす
る。このようなディスクアレイにおいて、例えばドライ
ブ#3のアドレス(2,2)のデータを更新する場合、
まず、更新される前のドライブ#3の(2,2)のデー
タと、パリティを格納してあるドライブの(2,2)の
パリティを読み出す(1)。読み出したデータと、読み
出したパリティと、更新する新しいデータとの排他的論
理和をとり、新たなパリティを作成する(2)。パリテ
ィの作成完了後、更新する新しいデータをドライブ#3
の(2,2)に、新パリティをパリティを格納するドラ
イブの(2,2)に格納する(3)。
【0009】このようなレベル5のディスクアレイで
は、データの格納されているドライブ、パリティの格納
されているドライブから古いデータとパリティを読みだ
すため、ディスクを平均1/2回転待ち、それから読み
出してパリティを作成する。この新しく作成したパリテ
ィを書き込むため更に1回転必要となり、データを書き
替える場合最低で1.5回転待たなければならない。特
に更新されたパリティを書き込む際に待たされる1回転
の回転待ちが、書き込み時の性能低下を引き起こす大き
な問題である。このように、ドライブにおいては1.5
回転ディスクの回転を待つということは非常に大きなオ
ーバヘッドとなる。この書き込み時のオーバヘッドはレ
ベル4においても同様である。このような書込み時のオ
ーバヘッドを削減するため、書込み先のアドレスを動的
に変換する方法が考えられ、STK社から出願されてい
るWO 91/20076に開示されている。また、I
BM社から出願されている特願平4−230512号公
報においても、書き込み時において書き込みデータを書
き込みデータが書き込まれるアドレスではなく別のアド
レスに書き込むことにより書き込みオーバヘッドを削減
する方法について開示されている。このように、レベル
5のディスクアレイでは、読み出しと比較し書き込み時
ではパリティ生成とこの生成したパリティを書き込む処
理のオーバヘッドが非常に大きいため、CPUからの読
み出し、書き込み要求が多いときには、この処理オーバ
ヘッドが性能低下の大きな原因となる。
【0010】本発明の目的は、ディスクアレイにおける
パリティを書き込み処理のオーバヘッドを大幅に減少さ
せることにある。本発明の他の目的は、ディスクアレイ
において、パリティをフラッシュメモリ(FMEM)に
格納することで、書き込み処理のオーバヘッドを大幅に
減少させることにある。本発明のさらに他の目的として
は、パリティを格納するFMEMの書き込み回数を平均
化させることにある。
【0011】
【課題を解決するための手段】上位装置から1回に読み
出しまたは書込みする単位で転送されてきたデ−タを分
割せずに複数台のディスク装置の内の複数台のデータ用
のディスク装置のいずれかに格納し、複数台のデータ用
のディスク装置に格納されている各データによりパリテ
ィを生成し、この生成したパリティを、複数台のディス
ク装置の内のパリティ用のディスク装置に格納するディ
スクアレイ装置において、このディスクアレイ装置に対
し上位装置から発行された書き込み要求に対し、パリテ
ィを更新した後、この更新したパリティを前記キャッシ
ュメモリに格納し、同様に上位装置から発行されてきた
別の書き込み要求に対し更新したパリティも該キャッシ
ュメモリに格納し、これらの更新されたパリティを該キ
ャッシュメモリ内に貯蔵し、このキャッシュメモリ内の
更新されたパリティ群を書き込み要求の発行順に前記パ
リティ用のディスク装置の更新前のパリティ群の一連の
アドレスへ一度にシーケンシャルに書き込むようにして
いる。また、前記キャッシュメモリにアドレス変換用テ
ーブルを設け、該テーブルには、パリティグループの各
データの論理アドレスと該論理アドレスに対応するディ
スク装置番号およびディスク装置内アドレスと、パリテ
ィの論理アドレスと該論理アドレスに対応するディスク
装置番号およびディスク装置内アドレスとパリティをキ
ャッシュメモリ内に貯蔵した場合のキャッシュアドレス
とキャッシュメモリ内に貯蔵されたパリティとディスク
装置内に格納されているパリティの何れが有効かを示す
フラグを備えるようにしている。また、キャッシュメモ
リにアドレス変換用テーブルを設けておき、更新された
パリティ群をシーケンシャルにまとめてディスク装置に
書き込む途中において、書き込み要求が発行されていな
いため更新されていない有効なパリティが書き込まれて
いるディスク装置のアドレスにおいては、一旦書き込み
を中断し、書き込み要求が発行され、すでに更新されて
いるディスク装置の無効なパリティのアドレスにおい
て、シーケンシャル書き込みを再開するようにしてい
る。また、キャッシュメモリにアドレス変換用テーブル
を設けておき、更新されたパリティ群をシーケンシャル
にまとめてディスク装置に書き込む際、ディスク装置の
書き込み先の領域に、書き込み要求が発行されていない
ため更新されていない有効なパリティが書き込まれてい
る場合、この有効なパリティをキャッシュメモリに読み
出し、更新されたパリティと合わせてパリティ群を構成
すると共にパリティの書き込み順を決定し、該パリティ
群を該書き込み順にディスク装置の書き込み前のパリテ
ィ群の一連のアドレスへ一度にシーケンシャルに書き込
むようにしている。また、パリティ用のディスク装置を
複数台設け、更新されたパリティ群をまとめてディスク
装置に書き込む際、複数のパリティ用のディスク装置
に、更新されたパリティ単位に、書き込み要求の発行順
に更新前のパリティの一連のアドレスへ一度に並列に書
き込むようにしている。更新されたパリティ群をシーケ
ンシャルにまとめて書き込むパリティ用のディスクを複
数の領域に分割し、更新される前のパリティが所属する
領域ごとに、更新されたパリティ群を作成し、該作成さ
れたパリティ群を該パリティ群が所属する領域に、かつ
書き込み要求の発行順に更新前のパリティ群の一連のア
ドレスへ一度にシーケンシャルに書き込むようにしてい
る。また、パリティ用のディスク装置を設けず、複数台
のディスク装置の夫々にパリティ格納領域を設け、該パ
リティ格納領域が割り当てられるディスク装置内の領域
を各ディスク装置において夫々異なるディスク装置内の
領域とし、上位装置から発行された書き込み要求に対
し、パリティを更新した後、この更新したパリティをキ
ャッシュメモリに格納し、同様に上位装置から発行され
てきた別の書き込み要求に対し更新したパリティも該キ
ャッシュメモリに格納し、これらの更新されたパリティ
を該キャッシュメモリ内に貯蔵し、このキャッシュメモ
リ内の更新されたパリティ群を更新される前のパリティ
が所属するディスク装置のパリティ格納領域毎に作成
し、対応するディスク装置のパリティ格納領域に、該パ
リティ群を書き込み要求の発行順に更新前のパリティ群
の一連のアドレスへ一度にシーケンシャルに書き込むよ
うにしている。
【0012】また、上位装置から1回に読み出しまたは
書込みする単位で転送されてきたデ−タを分割せずに複
数台のディスク装置の内の複数台のデータ用のディスク
装置のいずれかに格納し、複数台のデータ用のディスク
装置に格納されている各データによりパリティを生成
し、この生成したパリティを、複数台のディスク装置の
内のパリティ用のディスク装置に格納するディスクアレ
イ装置において、該パリティ用のディスク装置をフラッ
シュメモリとし、該パリティ用のフラッシュメモリ上の
前記更新前のパリティ群を消去した後、前記キャッシュ
メモリ内の更新されたパリティ群を書き込み要求の発行
順に前記パリティ用のフラッシュメモリの消去された更
新前のパリティ群の一連のアドレスへ一度にシーケンシ
ャルに書き込むようにしている。また、キャッシュメモ
リにアドレス変換用テーブルを設け、該テーブルには、
パリティグループの各データの論理アドレスと該論理ア
ドレスに対応するディスク装置番号およびディスク装置
内アドレスと、パリティの論理アドレスと該論理アドレ
スに対応するフラッシュメモリチィップ番号およびフラ
ッシュメモリチィップ内アドレスとパリティをキャッシ
ュメモリ内に貯蔵した場合のキャッシュアドレスとキャ
ッシュメモリ内に貯蔵されたパリティとディスク装置内
に格納されているパリティの何れが有効かを示すフラグ
を備えるようにしている。また、更新されたパリティ群
をシーケンシャルにまとめてフラッシュメモリに書き込
む時の、実際にパリティをフラッシュメモリに書き込む
前に、フラッシュメモリ内のパリティを書き込むアドレ
スの消去を行う際に、書き込み要求が発行されていない
ため更新されていない有効なパリティが書き込まれてい
るフラッシュメモリのアドレスにおいては消去を行わず
に、書き込み要求が発行され、すでに更新されているフ
ラッシュメモリの無効なパリティのアドレスに対しての
み、消去を行うようにしている。さらに、更新されたパ
リティ群をシーケンシャルにまとめてフラッシュメモリ
に書き込む際に、書き込み要求が発行され、すでに消去
されているフラッシュメモリの無効なパリティのアドレ
スに対してのみ、書き込みを行うようにしている。ま
た、更新されたパリティ群をシーケンシャルにまとめて
フラッシュメモリに書き込む際、フラッシュメモリの更
新されたパリティ群の書き込み先の領域に、書き込み要
求が発行されていないため更新されていない有効なパリ
ティが書き込まれている場合、この有効なパリティをキ
ャッシュメモリに読み出し、更新されたパリティと合わ
せてパリティ群を構成すると共にパリティの書き込み順
を決定し、該パリティ群に対応するフラッシュメモリ上
の書き込み前のパリティ群を消去した後、前記キャッシ
ュメモリ内のパリティ群を前記書き込み順にフラッシュ
メモリの書き込み前のパリティ群の一連のアドレスへ一
度にシーケンシャルに書き込むようにしている。また、
更新されたパリティ群をシーケンシャルにまとめてフラ
ッシュメモリに書き込む際、フラッシュメモリ内の低い
アドレスから高いアドレスに向かって順次書き込んでい
き、最も高いアドレスまでパリティを書き込んだら、最
も低いアドレスに戻り、又、順次パリティを書き込んで
いく、リングバッファのようにフラッシュメモリにパリ
ティをシーケンシャルに書き込んでいくようにしてい
る。また、フラッシュメモリ内の最も低いアドレスにパ
リティを書き込んだ回数のカウントをするようにしてい
る。また、上記カウントした回数に基づきフラッシュメ
モリの寿命を判定し、寿命がきたことを出力するように
している。また、パリティ用のフラッシュメモリを複数
のフラッシュメモリチィップで構成し、更新されたパリ
ティ群をまとめてフラッシュメモリに書き込む際、複数
のフラッシュメモリチィップに、更新されたパリティ単
位に、更新前のパリティを消去した後、書き込み要求の
発行順に更新前のパリティの一連のアドレスへ一度に並
列に書き込むようにしている。また、パリティ用のフラ
ッシュメモリを複数のフラッシュメモリチィップで構成
し、更新されたパリティ群をまとめてフラッシュメモリ
に書き込む際、複数のフラッシュメモリチップに、バイ
ト単位に、更新前のパリティを消去した後、書き込み要
求の発行順に更新前のパリティの一連のアドレスへ一度
に並列に書き込むようにしている。また、データが格納
されているドライブに障害が発生した場合は、このドラ
イブに格納されているデータを回復するたびに、パリテ
ィが格納されているフラッシュメモリから、当該パリテ
ィを読み出し、障害回復をするようにしている。
【0013】
【作用】データの書き込みによるパリティの更新後、更
新された新パリティを更新のたびに更新前のパリティが
格納されていたドライブのアドレスに書き込むと、その
都度回転待ちが必要となる。本発明では、更新パリティ
をキャッシュメモリに貯蔵しておき、これらの更新パリ
ティをシーケンシャルにまとめ書きすることにより、こ
のまとめ書きを行なう時に0.5回転の回転待ちが必要
となるが、まとめ書きを開始以降は回転待ちは無い。つ
まり、まとめられた更新パリティの集団の中で、一番最
初に書き込まれるパリティについては0.5回転の回転
待ちが必要であるが、引き続き書き込まれる2番目以降
のパリティについては回転待ちがなくなる。また、更新
パリティをキャッシュメモリに貯蔵しておき、これらの
更新パリティをシーケンシャルにFMEMにまとめ書き
することにより、このまとめ書きを行なう時は最初に一
括消去の時間(約10ms)が必要となるのみである。
FMEMでは部分消去時間と一括消去時間はほとんど同
じである。つまり、まとめられた更新パリティの集団の
中で、一番最初に書き込まれるパリティについては、全
ての更新パリティに対応する更新前のパリティを一括消
去する時間が必要であるが、引き続き書き込まれる2番
目以降のパリティについてはFMEMへの書き込み時間
のみとなる。また、FMEMに対する新パリティのシー
ケンシャルなまとめ書きは、アドレスの低い方から高い
方へ一方向に行なわれるため、FMEMチップでは書き
込み回数が平均化される。
【0014】
【実施例】
(実施例1)以下本発明の一実施例を説明する。図1
は、本実施例のハードウェア構成を示し、1はCPU、
2はディスクアレイコントローラ(以下ADC)、3は
ディスクアレイユニット(以下ADU)である。ADU
3は複数の論理グループ10により構成され,個々の論
理グループ10はm台のドライブ12と、各々のドライ
ブ12とADC2を接続するディスクアレイユニットパ
ス9−1から9−4により構成される。なお、このドラ
イブ12の数については特に制限は無い。この論理グル
ープ10は障害回復単位で、この論理グループ10内の
各ドライブ12内の各データによりパリティを作成す
る。本実施例ではm−1台の個々のドライブ12内のデ
ータから各々のパリティが作成される。
【0015】次にADC2の内部構造について図1を用
いて説明する。ADC2はチャネルパスディレクタ5と
2個のクラスタ13とバッテリバックアップ等により不
揮発化された半導体メモリであるキャッシュメモリ7に
より構成される。このキャッシュメモリ7にはデータと
アドレス変換用テーブルが格納されている。このキャッ
シュメモリ7およびその中のアドレス変換用テーブルは
ADC2内の全てのクラスタ13において共有で使用さ
れる。クラスタ13はADC2内において独立に動作可
能なパスの集合で、各クラスタ13間においては電源、
回路は全く独立となっている。クラスタ13はチャネ
ル、キャッシュメモリ7間のパスであるチャネルパス6
と、キャッシュメモリ7、ドライブ12間のパスである
ドライブパス6−1から4が、それぞれ、2個ずつで構
成されている。それぞれのチャネルパス6−1から4と
ドライブパス8はキャッシュメモリ7を介して接続され
ている。CPU1より発行されたコマンドは外部インタ
ーフェースパス4を通ってADC2のチャネルパスディ
レクタ5に発行される。ADC2は2個のクラスタ13
により構成され、それぞれのクラスタは2個のパスで構
成されるため、ADC2は合計4個のパスにより構成さ
れる。このことから、ADC2ではCPU1からのコマ
ンドを同時に4個まで受け付けることが可能である。そ
こで、CPU1からコマンドが発行された場合ADC2
内のチャネルパスディレクタ5によりコマンドの受付が
可能かどうか判断する。
【0016】図2は図1のチャネルパスディレクタ5と
1クラスタ13−1内の内部構造を示した図である。図
2に示すように、CPU1からADC2に送られてきた
コマンドはインターフェースアダプタ(以下IF Ad
p)15により取り込まれ、マイクロプロセッサである
MP20はクラスタ内の外部インターフェースパス4の
中で使用可能なパスがあるかを調べ、使用可能な外部イ
ンターフェースパス4がある場合はMP20はチャネル
パススイッチ16を切り換えてコマンドの受付け処理を
行ない、受け付けられない場合は受付不可の応答をCP
U1へ送る。
【0017】(アドレス変換法)本実施例ではADU3
を構成するドライブ12はSCSIインターフェースの
ドライブを使用する。以下にアドレス変換について説明
する。CPU1は論理アドレスとしてデータ名を指定
し、ADC2のMP20により実際のドライブ12内の
物理的アドレスであるドライブ12内のアドレス(SC
SI内Addr)に変換される。SCSI内Addrは
図11に示すように当該データが格納されているトラッ
クが所属するシリンダの位置とそのシリンダ内において
当該データが格納されているトラックを決定するヘッド
アドレスと、そのトラック内のレコードの位置で構成さ
れる。具体的には要求データが格納されている当該ドラ
イブ12の番号と当該ドライブ12内のシリンダ番号で
あるシリンダアドレスとシリンダにおいてトラックを選
択するヘッドの番号であるヘッドアドレスとレコードア
ドレスからなる。このアドレス変換には以下に示すよう
なアドレス変換用のテーブル(以下アドレステーブルと
する)が使用される。ADC2内のキャッシュメモリ7
には、その内部の適当な領域に図4に示すようなアドレ
ステーブルが格納されている。
【0018】アドレステーブルは論理アドレス27に対
し、無効データの場合オン(1)となる無効フラグ28
と、データが格納されているドライブ12のアドレスで
あるデータドライブ番号29(DDrive No.)
と、そのドライブ12内の実際にデータが格納されてい
る物理アドレスであるSCSI内Addr30と、その
データがキャッシュメモリ7内にある場合のキャッシュ
メモリ7内のアドレスであるキャッシュアドレス31
と、キャッシュメモリ7内にデータがある場合オン
(1)とするキャッシュフラグ32と、パリティグルー
プにおいてパリティの論理アドレスであるP論理アドレ
ス33と、パリティが格納されているドライブ番号であ
るパリティドライブ番号34(PDrive No.)
と、そのドライブ12内の実際にパリティが格納されて
いる物理アドレスであるPSCSI内Addr35と、
パリティの格納されているキャッシュアドレスであるP
キャッシュアドレス36と、パリティがキャッシュメモ
リ7内に存在するか否かを示すPキャッシュフラグ37
により構成されている。パリティは、論理グループ10
を構成する各ドライブ12において同一SCSI内Ad
dr30のデータにより作成される。パリティグループ
は、論理グループ10を構成する各ドライブ12におい
て同一SCSI内Addr30のデータと、これらのデ
ータから作成されたパリティにより構成される。具体的
には、図4においてSCSI内Addr30がDADR
1についてはSD#1のドライブ12に格納されている
Data#1と、SD#2のドライブ12に格納されて
いるData#2と、SD#3のドライブ12に格納さ
れているData#3と、SD#4のドライブ12に格
納されているData#4とにより作成されたパリティ
であるParity#1がSD#5のドライブ12のP
SCSI内ADDRがDADR5に格納され、これらの
データとパリティがパリティグループを構成する。
【0019】以上に説明したアドレステーブルにより、
CPUが指定する論理アドレス27に基づき、データが
実際に格納されているドライブ番号29とSCSI内A
ddr30を決定する。例えば、図4においてCPU1
からData#2に対し要求を発行してきた場合、アド
レステーブルからSD#2のドライブ12内のSCSI
内Addr30としてDADR1が該当していることが
分かり、物理的なアドレスへ変換される。また、このD
ata#2に対応するパリティは、P論理アドレス33
がParity#1で、パリティドライブ番号(PDr
ive No)34がSD#5のドライブ12であり、
PSCSI内ADDRがDADR5の位置に格納されて
いる。このように、CPU1から指定された論理アドレ
ス27を、実際に読み出し/書き込みを行うドライブ1
2の物理的なアドレスに変換した後、SD#2のドライ
ブ12のData#2に対し読み出しまたは書込み要求
が発行される。この時アドレステーブルにおいてDat
a#2の論理アドレス27ではキャッシュフラグ32が
オン(1)のため、このデータはキャッシュメモリ7内
のCADR5に存在する。もし、キャッシュフラグ32
がオフ(0)であればキャッシュメモリ7内には、当該
データは存在しない。この、アドレステーブルはシステ
ムの電源をオンした時に、MP20により論理グループ
10内のある特定のドライブ12から、キャッシュメモ
リ7にCPU1の関知無しに自動的に読み込まれる。一
方,電源をオフする時はMP20によりキャッシュメモ
リ7内のアドレステーブルを、読み込んできたドライブ
12内の所定の場所にCPU1の関知無しに自動的に格
納する。
【0020】(読み出し処理)次に、ADC2内での具
体的なI/O処理について図1、図2を用いて説明す
る。CPU1より発行されたコマンドはIF Adp1
5を介してADC2に取り込まれ、MP20により読み
出し要求か書込み要求か解読される。まず、読み出し要
求の場合の処理方法を以下に示す。MP20が読み出し
要求のコマンドを認識すると、MP20はCPU1から
送られてきた論理アドレスをアドレステーブルを参照
し、キャッシュメモリ7内に存在するかどうかキャッシ
ュフラグ32を調べ、判定する。キャッシュフラグ32
がオンでキャッシュメモリ7内に格納されている場合
(キャッシュヒット)は、MP20がキャッシュメモリ
7から当該データを読み出す制御を開始し、キャッシュ
メモリ7内に無い場合(キャッシュミス)は当該ドライ
ブ12へその内部の当該データを読みだす制御を開始す
る。キャッシュヒット時はMP20はアドレステーブル
によりCPU1から指定してきた論理アドレス27に対
し、当該データが格納されているキャッシュメモリ7の
キャッシュアドレス31に変換し、キャッシュメモリ7
へ当該データを読み出しに行く。具体的にはMP20の
指示の元でキャッシュアダプタ回路(C Adp)23
によりキャッシュメモリ7から当該データは読み出され
る。C Adp23はキャッシュメモリ7に対するデー
タの読み出し、書き込みをMP20の指示で行う回路
で、キャッシュメモリ7の状態の監視、各読み出し、書
き込み要求に対し排他制御を行う回路である。C Ad
p23により読み出されたデータはデータ制御回路(D
CC)22の制御によりチャネルインターフェース回路
(CH IF)21に転送される。CH IF21では
CPU1におけるチャネルインターフェースのプロトコ
ルに変換し、チャネルインターフェースに対応する速度
に速度調整する。具体的にはCPU1,ADC2間のチ
ャネルインターフェースを光のインターフェースにした
場合、光のインターフェースのプロトコルをADC2内
では電気処理でのプロトコルに変換する。CH IF2
1におけるプロトコル変換および速度調整後は、チャネ
ルパスディレクタ5において、チャネルパススイッチ1
6が外部インターフェースパス4を選択しIF Adp
15によりCPU1へデータ転送を行なう。
【0021】一方、キャッシュミス時はキャッシュヒッ
ト時と同様にアドレステーブルにより、CPU1が指定
した論理アドレス27から当該ドライブ番号とそのドラ
イブ12内の実際にデータが格納されているSCSI内
Addr30を認識し、そのアドレスに対し、MP20
はDrive IF24に対し、当該ドライブ12への
読み出し要求を発行するように指示する。Drive
IF24ではSCSIの読み出し処理手順に従って、読
み出しコマンドをドライブユニットパス9−1または9
−2を介して発行する。Drive IF24から読み
出しコマンドを発行された当該ドライブ12においては
指示されたSCSI内Addr30へシーク、回転待ち
のアクセス処理を行なう。当該ドライブ12におけるア
クセス処理が完了した後、当該ドライブ12は当該デー
タを読み出しドライブユニットパス9を介してDriv
e IF24へ転送する。Drive IF24では転
送されてきた当該データをドライブ12側のキャッシュ
アダプタ回路(C Adp)14に転送し、(C Ad
p)14ではキャッシュメモリ7にデータを格納する。
この時、C Adp14はキャッシュメモリ7にデータ
を格納することをMP20に報告し、MP20はこの報
告を元に、アドレステーブル内のCPUが読み出し要求
を発行した論理アドレス27のキャッシュフラグ32を
オン(1)にし、キャッシュアドレス31にキャッシュ
メモリ7内のデータを格納したアドレスを登録する。キ
ャッシュメモリ7にデータを格納し、アドレステーブル
のキャッシュフラグ32をオン(1)にし、キャッシュ
メモリ7内のアドレスを更新した後はキャッシュヒット
時と同様な手順でキャッシュメモリ7からデータを読み
出し、CPU1へ当該データを転送する。
【0022】(書き込み処理)一方書き込み時は以下の
ように処理される。書き込み処理にはユーザが書き込み
先の論理アドレスを指定し、そのデータを書き換える更
新と、新たに空き領域に書き込む新規書き込みがある。
CPU1から書き込み命令が発行されたとする。まず、
ADC2のMP20はCPU1から書込み要求のコマン
ドを受け取った後、コマンドを受け取ったMP20が所
属するクラスタ13内の各チャネルパス6において処理
可能かどうかを調べ、可能な場合は処理可能だという応
答をCPU1へ返す。CPU1では処理可能だという応
答を受け取った後にADC2へデータを転送する。この
時、ADC2ではMP20の指示によりチャネルパスデ
ィレクタ5において、チャネルパススイッチ16が当該
外部インターフェースパス4とIF Adp15を当該
チャネルパス6と接続しCPU1とADC2間の接続を
確立する。CPU1とADC2間の接続を確立後CPU
1からのデータ転送を受け付ける。CPU1から転送さ
れてくるデータには、論理アドレスと書き込みデータ
(以下新データとする)があり、これらのデータはMP
20の指示により、CH IF21によりプロトコル変
換を行ない、外部インターフェースパス4での転送速度
からADC2内での処理速度に速度調整する。CH I
F21におけるプロトコル変換および速度制御の完了
後、データはDCC22によるデータ転送制御を受け、
C Adp24に転送され、C Adp23によりキャ
ッシュメモリ7内に格納される。この時、CPU1から
送られてきたデータが、論理アドレスの場合は、読み出
しと同様にアドレステーブルによりアドレス変換を行
い、物理アドレスに変換する。また、CPU1から送ら
れてきたデータが新データの場合は、キャッシュメモリ
7に格納したアドレスをアドレステーブル内のキャッシ
ュアドレス31に登録する。この時、書き込む新データ
をキャッシュメモリ7内に保持するときは、論理アドレ
ス27のキャッシュフラグ32をオン(1)とし、保持
しない場合はキャッシュフラグ32をオフ(0)とす
る。なお、キャッシュメモリ7内に保持されている新デ
ータに対し、さらに書き込み要求がCPU1から発行さ
れた場合は、キャッシュメモリ7内に保持されている新
データを書き替える。
【0023】キャッシュメモリ7に格納された新データ
は、この新データにより新しくパリティを更新し(以下
更新されたパリティを新パリティとする)、以下のよう
に論理グループ10内のドライブ12へ新データと新パ
リティを格納する。まず、すでにドライブ12内に書き
込まれているデータを新しいデータに書き換える更新の
場合についてのフローを図12を用いて示す。本発明で
はパリティは論理グループ10を構成するドライブ12
において、RAIDのレベル4のように特定のパリティ
専用のドライブ12に格納する。
【0024】本発明の書き込み処理方法を図3を用いて
説明する。MP20はCPU1が指定した論理アドレス
からアドレステーブルを参照し、データ、パリティが格
納されているドライブ12(DDrive No.2
9,PDrive No.34で指定される)とそのド
ライブ12内の物理的なアドレスであるSCSI内Ad
dr30,PSCSI内Addr35を認識する。図3
に示すようにCPU1からSD#1のドライブ12のD
ata#1に対し、New Data#1に更新する書
き込み要求が発行された場合、MP20はアドレステー
ブルにより更新されるデータ(旧データ)であるDat
a#1および更新されるパリティ(旧パリティ)である
Parity#1の物理アドレスを認識した後、それぞ
れのドライブに対し旧データと旧パリティの読み出しを
行なう(図3、図12の(1))。この時の読み出し方
法は先に説明した読み出し処理におけるドライブ12か
らキャッシュメモリ7への読み出しと同じである。た
だ、書き込み時の読み出しでは、ADC2のMP20が
発行した読み出し要求のため、読み出したデータはCP
U1へは転送せず、キャッシュメモリ7に転送するのみ
である。この様に読み出した旧データ、旧パリティと書
き込む新データとで排他的論理和を行ない更新後の新パ
リティであるNew Parity#1を作成しキャッ
シュメモリ7に格納する(図3、図12の(2))。新
パリティ(New Parity#1)のキャッシュメ
モリ7への格納完了後、MP20は新データ(New
Data#1)をSD#1のドライブ12のData#
1のアドレスに書き込む(図3、図12の(3))。な
お、この新データの書き込みはMP20の管理の下で非
同期に行なわれるようにしてもよい。新パリティ(Ne
w Parity#1)はキャッシュメモリ7にそのま
ま格納しておく。この時、図4に示すアドレステーブル
に対し論理アドレスがData#1のエントリにNew
Data#1を登録し、キャッシュメモリ7に保持し
ておく場合はキャッシュアドレス31にキャッシュ内の
アドレスを登録し、キャッシュフラグ32をオンとす
る。また、パリティに関してはキャッシュメモリ7に保
持したままのため、Pキャッシュアドレス36にキャッ
シュアドレスを登録し、Pキャッシュフラグ37をオン
とする。なお、この様にアドレステーブルでPキャッシ
ュフラグ37がオンとなっているパリティは、更新済み
のパリティとなり、パリティ格納用のドライブ12内に
格納されているパリティは無効とされる。本発明では図
5に示すように、CPU1からの新データを不揮発化さ
れたキャッシュメモリ7内の領域に格納し、新パリティ
の作成が完了しキャッシュメモリ7に格納した時点で、
MP20は書き込み処理を終了したとCPU1に報告す
る。なお、従来方法では図5に示したように、新パリテ
ィをドライブの1回転後に書き込み、MP20が書き込
み処理を終了したとCPU1に報告している。新パリテ
ィのドライブ12への書き込みはMP20の管理の下で
非同期に行なわれるため、ユーザからは見えない。ま
た、新データのドライブ12への書き込みをMP20の
管理の下に非同期に行なう場合は、同様にしてユーザか
らは見えない。以後CPU1からData#10、Da
ta#8に対する書き込み処理が発行されれば、上記と
同様に処理し、各新パリティをキャッシュメモリ7に格
納していく。
【0025】キャッシュメモリ7に溜められた新パリテ
ィは、予めユーザが設定した設定値以上の新パリティが
キャッシュメモリ7に溜った場合か、または、ユーザか
らの読み出し/書き込み要求の発行されていないタイミ
ングが生じた場合にパリティ格納用のドライブ12にま
とめて書き込む(図3、図12の(4))。このように
新パリティをパリティ格納用のドライブ12にまとめて
書き込む場合は、シーケンシャルに書き込まれる。この
様に新パリティをパリティ格納用のドライブ12に書き
込む際に、アドレステーブルのPSCSI内Addr3
5に実際に新パリティを書き込んだSCSI内Addr
を登録する。従来方法では制御の簡略化のため、パリテ
ィを格納するドライブ12内でパリティを格納するPS
CSI内Addr35はデータを格納するドライブ12
内のデータを格納するSCSI内Addr30と同一に
していた。しかし、本発明では新パリティはシーケンシ
ャルにまとめて書き込まれるため、パリティ格納用のド
ライブ12内でパリティを格納するPSCSI内Add
r35とデータ格納用のドライブ12内のデータを格納
したSCSI内Addr30は原則として同一にはせ
ず、異なるものにしている。
【0026】また、キャッシュメモリ7内に溜められた
新パリティをシーケンシャルにまとめて書き込む最中に
CPU1より読み出し要求が発行された場合、読み出し
処理にはパリティは関与しないため、先に説明したよう
に通常の読み出し処理を行なう。一方、キャッシュメモ
リ7内に溜められた新パリティをシーケンシャルにまと
めて書き込む最中にCPU1より書き込み要求が発行さ
れた場合は、通常の書き込み処理と同様に旧データを読
み出し、旧データの読み出し後新データを書き込む。こ
の時、キャッシュメモリ7には新データと旧データを保
持し、キャッシュメモリ7内に溜められた新パリティを
シーケンシャルにまとめて書き込む処理が終了次第、当
該書き込まれた新パリティを旧パリティとして読み出
し、この旧パリティと先の新データと旧データとにより
新パリティを作成しキャッシュメモリ7に格納する。
【0027】本発明では新パリティをまとめ、シーケン
シャルに書き込むが、図7、8に示すように、前に書き
込まれているパリティが有効な場合、その上に新パリテ
ィを書き込んで消すわけには行かない。本発明では、ア
ドレステーブルでPキャッシュフラグ37がオンとなっ
ている旧パリティは、更新済みのパリティとなり、パリ
ティ格納用のドライブ12内では無効となっているが、
Pキャッシュフラグ37がオフとなっているパリティは
パリティ格納用のドライブ12内においてまだ有効なパ
リティである。この有効なパリティが消されると、ドラ
イブ障害が発生した場合、障害ドライブ内のこのパリテ
ィの作成に関与したデータの回復が不可能となる。以下
に新パリティのシーケンシャルまとめ書きの時のパリテ
ィ格納用ドライブ12内の有効データの扱い方について
説明する。図7に示すようにパリティ書き込み前のトラ
ックにおいてパリティのP1,P2,P3はデータの書
き込み要求に伴い更新された無効パリティであり、P
8,P9はデータに対する書き込み要求が発行されてい
ないため、更新されていない有効パリティである。書き
込み要求1、2、3の順に書き込み要求が発行され、こ
れによりP2,P3,P1の順に旧パリティが更新され
更新済みの新パリティとしてP’2,P’3,P’1の
順にキャッシュメモリ7に格納されているとする。これ
らの新パリティをパリティ格納用のドライブ12にシー
ケンシャルにまとめ書きする場合は、旧パリティP1の
位置に新パリティP’2を書き込み、有効パリティであ
るP8はそのまま残し、旧パリティP2の位置に新パリ
ティP’3を書き込み、旧パリティP3の位置に新パリ
ティP’1を順に書き込んでいく。すなわち、旧パリテ
ィの一連の位置に新パリティをその書き込み要求の発行
順に順次書き込むのである。以上のように本発明ではシ
ーケンシャルにまとめ書きする際に、有効データはその
まま残し、飛ばして新パリティを書き込んでいく。な
お、シーケンシャルにパリティを書き込んでゆく際、1
つのパリティを書き込み、次のパリティの書き込みを開
始するための処理をしている間に、次のパリティを書き
込むためのブロックが通り過ぎてしまわないように、I
Sギャップ(これについては、“トランジスタ技術 S
PECIAL NO.27 第20頁”に記載されてい
る)を充分に取る必要がある。また、別の方法としては
図8に示すように有効パリティであるP8,P9をMP
20の指示により擬似的な読み出し要求を発行し、この
擬似的な読み出し要求によりキャッシュメモリ7に読み
出し、この読み出しによりMP20はアドレステーブル
のPキャッシュアドレス36をセットしPキャッシュフ
ラグ37をオンとすることで、更新する新パリティとみ
なし、他の新パリティと一緒にシーケンシャルにまとめ
て書き込む方法もある。すなわち、図8に示すように、
更新する新パリティP’2,P’3,P’1と更新する
新パリティとみなしたパリティP8,P9からなる更新
パリティ群の書き込み順をP’2,P’3,P’1,P
8,P9とし、書き込み前のパリティ群P1,P8,P
2,P3,P9の一連のアドレスへ上記書き込み順にし
たがって更新パリティ群を順次書き込む。書き込み結果
は図8のパリティ書き込み後のトラックに示すようにな
る。
【0028】一方ドライブ12にすでに格納されている
データに新しいデータ追加する新規書き込みの場合は、
MP20はアドレステーブルにおいて空き領域を探す。
空き領域には2種類ある。まず一つはまったく使用され
ていない未使用領域である。この様にまったく使用され
ていない領域では、アドレステーブルにおいて論理アド
レス27の項に論理アドレスは登録されていない。この
ため、MP20はアドレステーブルにおいて論理アドレ
ス27の項に論理アドレスが登録されていない領域を探
すことで、未使用領域を見つけられる。もう一つの空き
領域は、以前その領域は使用されていたが(データが書
き込まれていた)、ユーザがそのデータが必要でなくな
ったため削除した削除領域である。削除領域は、アドレ
ステーブルにおいて論理アドレス27の項に論理アドレ
スが登録されてるが無効フラグ28をオン(1)として
いる。このため、MP20はアドレステーブルにおいて
無効フラグ28がオンになっている領域を探すことで、
削除領域を見つけられる。MP20が新規書き込みを行
なう空き領域を決定する場合、まず、未使用領域を探
す。もし、未使用領域が無い場合は削除領域を新規書き
込み先に使用する。これは、未使用領域はパリティの作
成に関与していない(全て0で構成されているとした)
ため、新規書き込みの際のパリティの更新は、新規書き
込みする新データと更新される旧パリティとの排他的論
理和のみで行なえるが、削除領域のデータはユーザにと
っては意味が無いデータとなっているが、パリティの作
成には関与しているため、新規書き込みの際に旧データ
と同じように読み出して、旧パリティと新規書き込みデ
ータとの間で排他的論理和をとり新パリティを作成しな
ければならない。このため、未使用領域に新規書き込み
を行なうのと、削除領域に新規書き込みを行なうので
は、削除領域から削除されたデータを読み出す処理が入
らない分、未使用領域に新規書き込みを行なう方が早く
処理できるためである。以上述べたようにMP20が空
き領域を探し、空き領域の認識が完了した後、この空き
領域に新規書き込みデータの書き込みを行ない、更新と
同様にアドレステーブルに論理アドレス27を登録し、
削除領域に新規書き込みを行なった場合は無効フラグ2
8をオフとする。以上述べたように、新規書き込みと更
新では、新データの書き込み先が異なるのみで処理自体
は同じである。
【0029】(障害回復処理)次にドライブ12に障害
が発生した場合の、障害ドライブ12内のデータを回復
する方法を説明する。図3に示すようにSD#1のドラ
イブ12のData#1とSD#2のドライブ12のD
ata#2とSD#3のドライブ12のData#3と
SD#4のドライブ12のData#4からSD#5の
ドライブ12のParity#1が作成されている。同
様にData#5,6,7,8からParity#2、
Data#9,10,11,12からParity#3
が作成されている。SD#1,2,3,4のドライブ1
2の中でどれか1台のドライブ12に障害が発生した場
合、残りのドライブ12内のデータとパリティから、障
害ドライブ12内のデータを回復する。本発明では、パ
リティはパリティを格納するドライブ12内においてラ
ンダムに格納されている。そこで、障害ドライブ12内
のデータを回復する際は、MP20はSD#5のドライ
ブ12内のパリティをキャッシュメモリ7内に全て読み
出す。例えば、図3においてSD#1のドライブ12に
障害が発生したとする。まず、MP20はSD#5のド
ライブ12からParity#1,2,3をキャッシュ
メモリ7に読み出し、アドレステーブルのPキャッシュ
アドレス36にキャッシュメモリ7内のアドレスを登録
し、Pキャッシュフラグ37をオンにする。次に、MP
20はSD#2,3,4のドライブ12からData#
2,3,4をそれぞれ読み出し、これらのデータとアド
レステーブルによりこれらのデータに対応するパリティ
を、アドレステーブルにより探す。当該パリティを見つ
けた後は、上記データと先に読み出している当該パリテ
ィであるParity#1とをパリティ生成回路(P
G)25に送り、Data#1を復元する。同様にDa
ta#5,9も復元する。この様に復元したデータは、
障害ドライブ12を正常なドライブ12に交換した後、
この正常なドライブ12に書き込むことで回復処理を行
なう。また、ドライブ12の障害時に備え予め予備の正
常なドライブ12を用意してある場合は、この予備の正
常なドライブ12に復元したデータを書き込みことで回
復処理を行なう。
【0030】以上の説明では更新後の新パリティを格納
するキャッシュメモリ7は不揮発な半導体メモリとし
た。しかし、パリティはデータとは異なり停電等によっ
てキャッシュメモリ7から消失しても、新たに作り直す
ことが可能なため、この、新たに作成する手間を許容で
きるなら、キャッシュメモリ7内で旧パリティを格納す
る領域を揮発な半導体メモリにすることも可能である。
以上の説明では、更新後の新パリティをキャッシュメモ
リ7に格納したが、キャッシュメモリ7ではなく専用の
メモリを用意することも可能である。従来のレベル4,
5では書き込み処理を行なうたびに新パリティの書き込
みを行なっていたため、常にパリティの更新後に回転の
回転待ちを必要としたが、本発明ではシーケンシャルな
まとめ書きを行なう際の最初に0.5回転の回転待ちを
必要とするのみである。
【0031】(実施例2)本実施例では実施例1で示し
たように、1台のパリティ格納用のドライブ12にシー
ケンシャルにまとめ書きするのではなく、複数のパリテ
ィ格納用のドライブ12に対し新パリティをパラレルに
書き込む方法を示す。本実施例でも実施例1と同じ処理
により、データの書き込みに伴いパリティを更新し、更
新した新パリティはキャッシュメモリ7に保持される。
図9に示すように書き込み要求1、2、3によりDat
a#1,#9,#8がそれぞれNew Data#1,
#9,#8に更新され、このデータの更新により更新さ
れた新パリティとしてNew Parity#1,#
3,#2がキャッシュメモリ7に保持されている(図9
の(1)(2)(3))。実施例1と同様に予めユーザ
の設定値以上の新パリティがキャッシュメモリ7に溜っ
た場合か、または、ユーザからの読み出し/書き込み要
求の発行されていないタイミングで、複数のパリティ格
納用のドライブ12であるSD#5,SD#6にパラレ
ルにまとめて書き込む(図9の(5))。パラレルにま
とめて書き込む単位としては、レベル3のようにバイト
単位と、レベル4、5のようにパリティ単位がある。こ
の時、各パリティ格納用のドライブ12に対する書き込
み方法は、実施例1の1台のパリティ格納用のドライブ
12への書き込み方法と同じである。また、本実施例の
変形として、パラレルに書き込む新パリティによりパリ
ティを作成し、SD#7のパリティ格納用のドライブ1
2に書き込む。この様にパリティのパリティを作成する
ことにより、パリティ格納用のドライブ12の障害時に
新たにパリティを作成する際に、データを読み出す必要
が無く、その間のデータへのアクセスを受け付けること
が可能となる。
【0032】(実施例3)本実施例では、図6に示すよ
うにパリティ格納用のドライブ12を複数の領域に分割
し、各領域単位で行なう方法を説明する。この領域の分
割は、SCSI内Addr30により行なう。例えばS
CSI内Addr30がDADR1からDADRkまで
を領域1とする。SD#1,2,3,4のドライブ12
においてSCSI内Addr30がDADR1からDA
DRkまで領域1に所属する各データに対するパリティ
は、SD#5のドライブ12のPSCSI内Addr3
6がDADR1からDADRkの領域1に格納される。
このように、アドレステーブルにおいて、データ、パリ
ティに対し所属する領域を対応させる。この様な領域分
割を行なった場合、領域1に所属するパリティに対しデ
ータの書き込みによるパリティの更新が行なわれた場
合、新パリティは領域1のパリティとしてキャッシュメ
モリ7に保持する。同様にCPU1からの他の書き込み
による新パリティをキャッシュメモリ7に保持してい
き、領域1のパリティとして保持されている新パリティ
はまとめられ、領域1にシーケンシャルにまとめて書き
込む。他の領域に対しても同様に各領域に所属するパリ
ティの新パリティは、まとめてそれぞれの領域にシーケ
ンシャルに書き込む。また、この様に領域に分割した際
のドライブ12に障害が発生した場合の回復方法は、基
本的には実施例1で示した領域に分割しない場合と同じ
である。異なるのは、障害ドライブ12内のデータを回
復する際に、MP20はSD#5のドライブ12内のパ
リティをキャッシュメモリ7内に全て読み出さず、各領
域単位に読み出す。つまり、回復処理を領域単位で行な
う。
【0033】本実施例の変形例を以下に示す。本変形例
では、図13に示すように、パリティを書き込む領域
を、1台のパリティ書き込み用の専用ドライブ12に限
定せず、論理グループ10を構成するドライブ12全体
に分散させる。この様に、パリティを書き込む領域を論
理グループ10を構成するドライブ12に分散させた場
合と上記のように1台のドライブ12に限定した場合で
異なる点を以下に示す。上記のように1台のドライブ1
2に限定した場合、パリティの格納先のドライブ12が
限定されているため、MP20がアドレステーブルによ
りパリティが格納されている領域を決定する場合、SC
SI内Addrのみで可能である。一方、本変形例のよ
うに、パリティを書き込む領域を論理グループ10を構
成するドライブ12に分散させた場合、MP20がアド
レステーブルにより領域を決定する場合、SCSI内A
ddrの他にドライブ番号も必要となる。この様に本変
形例ではアドレス変換方法が異なるが、その他の制御方
法は同じである。
【0034】(実施例4)以下本発明の実施例4を説明
する。図14は、本実施例のハードウェア構成を示し、
1はCPU、2はディスクアレイコントローラ(以下A
DC)、3はディスクアレイユニット(以下ADU)で
ある。ADU3は複数の論理グループ10により構成さ
れ,個々の論理グループ10はm台のドライブ12とフ
ラッシュメモリコントローラ(FMEMC)42と複数
のフラッシュメモリチィップ(FMEMチィップ)40
により構成されるフラッシュメモリ(FMEM)41
と、各々のドライブ12またはFMEM41とADC2
を接続するディスクアレイユニットパス9−1から9−
4により構成される。本実施例では,各論理グループ1
0内にパリティを専用に格納するFMEM41を設け、
書き込み時にADC2がレベル4の制御により作成した
パリティをADC2内のキャッシュメモリ7に溜め、こ
れらのパリティを一度にシーケンシャルにFMEM41
に書き込む所に特徴がある。このように作成したパリテ
ィを溜め、まとめて一度にシーケンシャルにFMEM4
1に格納することで、ドライブ12で構成されたレベル
4のディスクアレイで問題となった書き込み時のパリテ
ィ更新オーバヘッド(回転待ち時間)を削減することが
可能になる。なお、このドライブ12の数については特
に制限は無い。この論理グループ10は障害回復単位
で、この論理グループ10内の各ドライブ12内の各デ
ータによりパリティを作成する。本実施例ではADC2
のMP20はm台の個々のドライブ12内のデータから
各々のパリティが作成され、これらのパリティが論理グ
ループ10の一ケ所に集めて格納されるレベル4の制御
を行う。従来のディスクアレイではこのパリティはドラ
イブに格納されていた。
【0035】次にADC2の内部構造についての説明で
あるが、これは実施例1における図1および図2を用い
た説明と同様であるので省略する。なお、実施例1の図
2に対応する本実施例の図15ではパリティ格納用のデ
ィスクドライブがフラッシュメモリ(FMEM)41に
置き換えられている。また、(アドレス変換法)につい
ては、実施例1における説明と同様であるので省略す
る。但し、実施例1の図4におけるPDrive N
o.34、PSCSI内Addr35は図4に対応する
本実施例の図17においてはFMEM34’、FMEM
内Addr35’となっている。次に、(読み出し処
理)についての説明は、実施例1における説明と同様で
あるので省略する。
【0036】(書き込み処理)次に本実施例の特徴とな
る書き込み時の処理について以下に示す。書き込み処理
にはユーザが書き込み先の論理アドレスを指定し、その
データを書き換える更新と、新たに空き領域に書き込む
新規書き込みがある。CPU1から書き込み命令が発行
されたとする。まず、ADC2のMP20はCPU1か
ら書込み要求のコマンドを受け取った後、コマンドを受
け取ったMP20が所属するクラスタ13内の各チャネ
ルパス6において処理可能かどうかを調べ、可能な場合
は処理可能だという応答をCPU1へ返す。CPU1で
は処理可能だという応答を受け取った後にADC2へデ
ータを転送する。この時、ADC2ではMP20の指示
によりチャネルパスディレクタ5において、チャネルパ
ススイッチ16が当該外部インターフェースパス4とI
F Adp15を当該チャネルパス6と接続しCPU1
とADC2間の接続を確立する。CPU1とADC2間
の接続を確立後CPU1からのデータ転送を受け付け
る。CPU1から転送されてくるデータには、論理アド
レスと書き込みデータ(以下新データとする)があり、
これらのデータはMP20の指示により、CH IF2
1によりプロトコル変換を行ない、外部インターフェー
スパス4での転送速度からADC2内での処理速度に速
度調整する。CH IF21におけるプロトコル変換お
よび速度制御の完了後、データはDCC22によるデー
タ転送制御を受け、C Adp24に転送され、C A
dp23によりキャッシュメモリ7内に格納される。こ
の時、CPU1から送られてきたデータが、論理アドレ
スの場合は、読み出しと同様にアドレステーブルにより
アドレス変換を行い、物理アドレスに変換する。また、
CPU1から送られてきたデータが新データの場合は、
キャッシュメモリ7に格納したアドレスをアドレステー
ブル内のキャッシュアドレス31に登録する。この時、
書き込む新データをキャッシュメモリ7内に保持すると
きは、論理アドレス27のキャッシュフラグ32をオン
(1)とし、保持しない場合はキャッシュフラグ32を
オフ(0)とする。なお、キャッシュメモリ7内に保持
されている新データに対し、さらに書き込み要求がCP
U1から発行された場合は、キャッシュメモリ7内に保
持されている新データを書き替える。
【0037】キャッシュメモリ7に格納された新データ
は、この新データにより新しくパリティを更新し(以下
更新されたパリティを新パリティとする)、以下のよう
に論理グループ10内のドライブ12へ新データを格納
し、FMEM41に新パリティを格納する。まず、すで
にドライブ12内に書き込まれているデータを新しいデ
ータに書き換える更新の場合についてのフローを図12
を用いて示す。本実施例では論理グループ10におい
て、RAIDのレベル4の制御を行い、パリティはパリ
ティ専用のFMEM41に格納する。
【0038】本実施例の書き込み処理方法を図16を用
いて説明する。MP20はCPU1が指定した論理アド
レスからアドレステーブルを参照し、データが格納され
ているドライブ12(DDrive No.29で指定
される)とそのドライブ12内の物理的なアドレスであ
るSCSI内Addr30とパリティが格納されている
FMEMチィップ40のアドレスであるFMEMアドレ
ス34’と、このFMEMチィップ0内の物理アドレス
であるFMEM内Addr35’を認識する。図16に
示すようにCPU1からSD#1のドライブ12のDa
ta#1に対し、New Data#1に更新する書き
込み要求が発行された場合、MP20はアドレステーブ
ルにより更新されるデータ(旧データ)であるData
#1および更新されるパリティ(旧パリティ)であるP
arity#1の物理アドレスを認識した後、旧データ
の格納されているドライブ12と旧パリティの格納され
ているFMEMチィップ40に対し読み出しを行なう
(図16、図12の(1))。この時の旧データの読み
出し方法は先に説明した読み出し処理におけるドライブ
12からキャッシュメモリ7への読み出しと同じであ
る。FMEM41からの旧パリティの読み出しは以下の
ように行う。MP20は図17に示すアドレステーブル
を参照し、更新される旧パリティのPアドレス33に対
応する、旧パリティが格納されている物理アドレス(F
MEMアドレス34’と、このFMEMアドレス34’
のFMEMチィップ40内のFMEM内Addr3
5’)を認識する。MP20がこのように更新される旧
パリティのFMEM41内の物理アドレスを認識した後
は、FMEM41内のFMEMC42に対し、当該旧パ
リティの読み出しコマンドとこの物理アドレスを送る。
読み出しコマンドと物理アドレスを受け取ったFMEM
C42では、FMEMアドレス34’に対するFMEM
チィップ40をイネーブルにし、FMEM内Addr3
5’を当該FMEMチィップ40にセットし、当該旧パ
リティを読み出し、FMEMC42内のバッファに格納
する。当該旧パリティを読み出したFMEMC42で
は、MP20に対し当該旧パリティの格納されている当
該FMEMチィップ40からの読み出しが完了したこと
を報告する。この報告を受け取ったMP20はFMEM
C42に対し、当該旧パリティをキャッシュメモリ7に
転送するように指示し、この指示を受け取ったFMEM
C42は当該旧パリティをキャッシュメモリ7に転送す
る。ただ、書き込み時の読み出しでは、ADC2のMP
20が発行した読み出し要求のため、読み出したデータ
はCPU1へは転送せず、キャッシュメモリ7に転送す
るのみである。この様に読み出した旧データ、旧パリテ
ィと書き込む新データとで排他的論理和を行ない更新後
の新パリティであるNew Parity#1を作成し
キャッシュメモリ7に格納する(図16、図12の
(2))。新パリティ(New Parity#1)の
キャッシュメモリ7への格納完了後、MP20は新デー
タ(New Data#1)をSD#1のドライブ12
のData#1のアドレスに書き込む(図16、図12
の(3))。なお、この新データの書き込みはMP20
の管理の下で非同期に行なわれるようにしてもよい。新
パリティ(New Parity#1)はキャッシュメ
モリ7にそのまま格納しておく。この時、図17に示す
アドレステーブルに対し論理アドレスがData#1の
エントリにNew Data#1を登録し、キャッシュ
メモリ7に保持しておく場合はキャッシュアドレス31
にキャッシュ内のアドレスを登録し、キャッシュフラグ
32をオンとする。また、パリティに関してはキャッシ
ュメモリ7に保持したままのため、Pキャッシュアドレ
ス36にキャッシュアドレスを登録し、Pキャッシュフ
ラグ37をオンとする。なお、この様にアドレステーブ
ルでPキャッシュフラグ37がオンとなっているパリテ
ィは、更新済みのパリティとなり、FMEM41内に格
納されているパリティは無効とされる。本実施例では図
5に示すように、CPU1からの新データを不揮発化さ
れたキャッシュメモリ7内の領域に格納し、新パリティ
の作成が完了しキャッシュメモリ7に格納した時点で、
MP20は書き込み処理を終了したとCPU1に報告す
る。なお、従来方法では図5に示したように、新パリテ
ィをドライブの1回転後に書き込み、MP20が書き込
み処理を終了したとCPU1に報告している。新パリテ
ィのFMEM41への書き込みはMP20の管理の下で
非同期に行なわれるため、ユーザからは見えない。ま
た、新データのドライブ12への書き込みをMP20の
管理の下に非同期に行なう場合は、同様にしてユーザか
らは見えない。以後CPU1からData#10、Da
ta#8に対する書き込み処理が発行されれば、上記と
同様に処理し、各新パリティをキャッシュメモリ7に格
納していく。
【0039】キャッシュメモリ7に溜められた新パリテ
ィは、予めユーザが設定した設定値以上の新パリティが
キャッシュメモリ7に溜った場合か、または、ユーザか
らの読み出し/書き込み要求の発行されていないタイミ
ングが生じた場合にパリティ格納用のFMEM41にま
とめて書き込む(図16、図12の(4))。このよう
に新パリティをパリティ格納用のFMEM41にまとめ
て書き込む場合は、シーケンシャルに書き込まれる。ま
た、この様に新パリティをパリティ格納用のFMEM4
1に書き込む際に、アドレステーブルのFMEMアドレ
ス34’、FMEM内Addr35’に実際に新パリテ
ィを書き込んだアドレスを登録する。従来のディスクア
レイは全てドライブで構成され、データもパリティもド
ライブに格納されていた。また、新データは旧データが
格納されていたアドレスに書き戻されるため、更新によ
る書き込み時にアドレステーブルの変更を必要とせず、
制御は簡単であった。しかし、本実施例では、新パリテ
ィは書き込み要求が発行された順にシーケンシャルにま
とめて書き込まれるため、パリティ格納用のFMEM4
1内では、新パリティが格納されるアドレス(FMEM
アドレス34とFMEM内Addr35)は原則とし
て、その新パリティに対する旧パリティが格納されてい
たアドレスとは同一にせず、異なるものにしている。
【0040】また、キャッシュメモリ7内に溜められた
新パリティをシーケンシャルにまとめて書き込む最中に
CPU1より読み出し要求が発行された場合、読み出し
処理にはパリティは関与しないため、先に説明したよう
に通常の読み出し処理を行なう。一方、キャッシュメモ
リ7内に溜められた新パリティをシーケンシャルにまと
めて書き込む最中にCPU1より書き込み要求が発行さ
れた場合は、通常の書き込み処理と同様に旧データを読
み出し、旧データの読み出し後新データを書き込む。こ
の時、キャッシュメモリ7には新データと旧データを保
持し、キャッシュメモリ7内に溜められた新パリティを
シーケンシャルにまとめて書き込む処理が終了次第、当
該書き込まれた新パリティとで新たにパリティを更新す
る。
【0041】本実施例では新パリティをまとめ、シーケ
ンシャルに書き込むが、図19、20に示すように、前
に書き込まれているパリティが有効な場合、その上に新
パリティを書き込んで消すわけには行かない。本実施例
では、アドレステーブルでPキャッシュフラグ37がオ
ンとなっている旧パリティは、更新済みのパリティとな
り、パリティ格納用のFMEM41内では無効となって
いるが、Pキャッシュフラグ37がオフとなっているパ
リティはFMEM41内においてまだ有効なパリティで
ある。この有効なパリティが消されると、ドライブ障害
が発生した場合、障害ドライブ内のこのパリティの作成
に関与したデータの回復が不可能となる。
【0042】そこで、新パリティをシーケンシャルにま
とめ書きする時のパリティ格納用FMEM41内の有効
データの扱い方について以下に説明する。図19に示す
ようにパリティ書き込み前のFMEMチィップ40にお
いてパリティのP1、P2、P3はデータの書き込み要
求に伴い更新された無効パリティであり、P8、P9は
データに対する書き込み要求が発行されていないため、
更新されていない有効パリティである。書き込み要求
1、2、3の順に書き込み要求が発行され、これにより
P2、P3、P1の順に旧パリティが更新され更新済み
の新パリティとしてP’2、P’3、P’1の順にキャ
ッシュメモリ7に格納されているとする。これらの新パ
リティをパリティ格納用のFMEM41にシーケンシャ
ルにまとめ書きする場合は、MP20は書き込む新パリ
ティの量を調べ、この量に相当すFMEMチィップ40
内の無効パリティ(P1、P2、P3)が書き込まれて
いるアドレスを一度に消去する(フラッシュメモリの書
き込みにおける消去方法についてはHN28F1600
シリーズのデータシート(ADJ−203−045
(a)(z))に記載されている)。このように、新パ
リティをシーケンシャルにまとめ書きするFMEMチィ
ップ40内の消去が完了すると、旧パリティP1のアド
レスに新パリティP’2を書き込み、有効パリティであ
るP8はそのまま残し、旧パリティP2の位置に新パリ
ティP’3を書き込み、旧パリティP3の位置に新パリ
ティP’1を順に書き込んでいく。すなわち、旧パリテ
ィの一連の位置に新パリティをその書き込み要求の発行
順に順次書き込むのである。以上のように本発明ではシ
ーケンシャルにまとめ書きする際に、有効データをその
まま残し、飛ばして新パリティを書き込んでいく。
【0043】また、別の方法としては図20に示すよう
に有効パリティであるP8、P9をMP20の指示によ
り、FMEM41に対し擬似的な読み出し要求を発行
し、この擬似的な読み出し要求によりキャッシュメモリ
7に有効パリティを読み出し、この有効パリティのキャ
ッシュメモリ7への読み出しによりMP20はアドレス
テーブルのPキャッシュアドレス36をセットしPキャ
ッシュフラグ37をオンとすることで、更新する新パリ
ティとみなす。MP20はキャッシュメモリ7に溜めら
れている新パリティと読み出された有効パリティの量を
調べ、この量に相当するFMEMチィップ40内の領域
を一度に消去する。このように、FMEMチィップ40
内の消去が完了すると、FMEM41から読み出した有
効パリティは新パリティとして、他の新パリティと一緒
にシーケンシャルにまとめて書き込む。すなわち、図2
0に示すように、更新する新パリティP’2,P’3,
P’1と更新する新パリティとみなしたパリティP8,
P9からなる更新パリティ群の書き込み順をP’2,
P’3,P’1,P8,P9とし、書き込み前のパリテ
ィ群P1,P8,P2,P3,P9の一連のアドレスへ
上記書き込み順にしたがって更新パリティ群を順次書き
込む。書き込み結果は図20のパリティ書き込み後のト
ラックに示すようになる。フラッシュメモリではデータ
をフラッシュメモリに書き込む場合、まず書き込むアド
レスに格納されているデータを消去し、この消去が完了
した後に実際にデータを書き込む。フラッシュメモリで
は1セクタ(フラッシュメモリをアクセスする場合、デ
ィスクにアクセスするときのアドレスと同じフォーマッ
トのアドレスでアクセスする)を消去しても、複数セク
タを一度に消去しても消去時間は同じである。又、書き
込み時間の大半はこの消去時間が占めており、実際にフ
ラッシュメモリに書き込む時間は消去時間と比較した場
合無視できるほど小さい。本実施例の特徴であるシーケ
ンシャルにまとめて書き込みを行うことにより、消去が
一回で済むため、新パリティのまとめる数が多いほどオ
ーバヘッドが小さく出来る。
【0044】本実施例では、FMEM41を構成する全
FMEMチィップ40に対し、平均に書き込みが行われ
るようにFMEMチィップ40への書き込み回数をカウ
ントする。フラッシュメモリはドライブと比較してラン
ダムにアクセスしても短時間で処理できる利点がある
が、その反面書き込み回数に制限がある。このため、あ
るアドレスに集中して書き込みが行われると、フラッシ
ュメモリの一部が書き込み回数の限界に達してしまい、
以後書き込めなくなってしまう。本実施例では、FME
M41に対しシーケンシャルにまとめて新パリティを書
き込むため、FMEM41へ新パリティをシーケンシャ
ルにまとめて書き込む際に、規則的に書き込むことで全
FMEMチィップ40に対し書き込み回数を平均化す
る。具体的には、図18に示すようにFMEM41がF
MEM#1、2、3、4、、nのn個のFMEMチィッ
プ40で構成され、アドレスが0000からffffと
する。MP20は新パリティのシーケンシャルなまとめ
書きを行うことを認識すると、前回のまとめ書きを行っ
た際に、新パリティを格納した最終のアドレスを調べ
る。例えば、前回のまとめ書きにおいて、FMEM41
内で0000からaaaaまで新パリティを書き込んだ
とすると、アドレスaaaaをMP20は記憶してお
く。そして、次のシーケンシャルなまとめ書き時にはこ
の記憶しておいたアドレス(aaaa)を調べる。この
ように、MP20が前回の最終アドレスを記憶すると、
MP20は次の新パリティのシーケンシャルなまとめ書
きはアドレスaaaaの次から行うように判断する。M
P20がこのようにして新パリティのシーケンシャルな
まとめ書きを行う先頭アドレスを認識すると、次にFM
EM41への書き込み回数の限界に達しているかどおか
を判定する。
【0045】図22の書き込み回数判定フローチャート
に示すように、新パリティをシーケンシャルにまとめ書
きする先頭アドレスが0000かどおかを判定する(5
1)。0000でなければ判定フローは終了し(5
2)、0000であればMP20は書き込み回数カウン
タのカウンタ値に1をたす(53)。すなわち、先頭ア
ドレスに来る度にカウンタの値を増加する。次にMP2
0はこの1をたしたカウンタ値が、予めセットされてい
るFMEMチィップ40の書き込み回数の限界値かどお
かを判定する(54)。FMEMチィップ40の書き込
み回数の限界値は、初期設定において予めMP20に対
しユーザが設定する。この判定結果において、FMEM
チィップ40の書き込み回数の限界値を越えていなけれ
ば判定フローを終了し(52)、越えている場合はFM
EMチィップ40の交換を通報する(55)。以上のよ
うに本実施例ではFMEM41に対する新パリティのシ
ーケンシャルなまとめ書きは、アドレスの低い方から高
い方へ一方向に行われる。これにより、FMEM41の
全FMEMチィップ40では、書き込み回数は平均化さ
れることになる。本実施例ではこのようにしてFMEM
41内においてFMEMチィップ40への書き込み回数
を平均化する。
【0046】一方ドライブ12にすでに格納されている
データに新しいデータ追加する新規書き込みの場合は、
MP20はアドレステーブルにおいて空き領域を探す。
空き領域には2種類ある。まず一つはまったく使用され
ていない未使用領域である。この様にまったく使用され
ていない領域では、アドレステーブルにおいて論理アド
レス27の項に論理アドレスは登録されていない。この
ため、MP20はアドレステーブルにおいて論理アドレ
ス27の項に論理アドレスが登録されていない領域を探
すことで、未使用領域を見つけられる。もう一つの空き
領域は、以前その領域は使用されていたが(データが書
き込まれていた)、ユーザがそのデータが必要でなくな
ったため削除した削除領域である。削除領域は、アドレ
ステーブルにおいて論理アドレス27の項に論理アドレ
スが登録されてるが無効フラグ28をオン(1)として
いる。このため、MP20はアドレステーブルにおいて
無効フラグ28がオンになっている領域を探すことで、
削除領域を見つけられる。MP20が新規書き込みを行
なう空き領域を決定する場合、まず、未使用領域を探
す。もし、未使用領域が無い場合は削除領域を新規書き
込み先に使用する。これは、未使用領域はパリティの作
成に関与していない(全て0で構成されているとした)
ため、新規書き込みの際のパリティの更新は、新規書き
込みする新データと更新される旧パリティとの排他的論
理和のみで行なえるが、削除領域のデータはユーザにと
っては意味が無いデータとなっているが、パリティの作
成には関与しているため、新規書き込みの際に旧データ
と同じように読み出して、旧パリティと新規書き込みデ
ータとの間で排他的論理和をとり新パリティを作成しな
ければならない。このため、未使用領域に新規書き込み
を行なうのと、削除領域に新規書き込みを行なうので
は、削除領域から削除されたデータを読み出す処理が入
らない分、未使用領域に新規書き込みを行なう方が早く
処理できるためである。以上述べたようにMP20が空
き領域を探し、空き領域の認識が完了した後、この空き
領域に新規書き込みデータの書き込みを行ない、更新と
同様にアドレステーブルに論理アドレス27を登録し、
削除領域に新規書き込みを行なった場合は無効フラグ2
8をオフとする。以上述べたように、新規書き込みと更
新では、新データの書き込み先が異なるのみで処理自体
は同じである。
【0047】(障害回復処理)次にドライブ12に障害
が発生した場合の、障害ドライブ12内のデータを回復
する方法を説明する。図16に示すようにSD#1のド
ライブ12のData#1とSD#2のドライブ12の
Data#2とSD#3のドライブ12のData#3
とSD#4のドライブ12のData#4からFMEM
#1のFMEMチップ40のParity#1が作成さ
れている。同様にData#5、6、7、8からPar
ity#2、Data#9、10、11、12からPa
rity#3が作成されている。SD#1、2、3、4
のドライブ12の中でどれか1台のドライブ12に障害
が発生した場合、残りのドライブ12内のデータとFM
EM41内のパリティから、障害ドライブ12内のデー
タを回復する。本実施例では、パリティはパリティを格
納するFMEM41内においてランダムなアドレスに格
納されている。例えば、図16においてSD#1のドラ
イブ12に障害が発生し、このSD#1のドライブ12
内のData#1に読み出し要求が発生したとする。ま
ず、MP20はアドレステーブルから読み出し要求が発
行されたData#1は障害が発生したドライブ内のデ
ータだと認識した場合は、SD#2、3、4のドライブ
12からData#2、3、4をそれぞれ読み出し、M
P20はアドレステーブルによりこれらのデータに対応
するパリティを、アドレステーブルにより探す。MP2
0がアドレステーブルにより当該パリティのFMEM4
1内のアドレスを認識した後はFMEM41から当該パ
リティであるParity#1を読み出し、上記データ
と共にパリティ生成回路(PG)25に送り、排他的論
理和を行うことでData#1を復元する。同様にDa
ta#5、9も復元する。フラッシュメモリはドライブ
のようにディスクを回転させたり、ヘッドをシークさせ
るような機械的な動作を必要としない。また、フラッシ
ュメモリでは先に述べたように書き込み時は消去を必要
とするが、読み出し時にはDRAMのような半導体メモ
リからの読み出しと同じように短時間で読み出せる。こ
のようにフラッシュメモリにおけるランダムな読み出し
はドライブと比較して無視できるほど短時間で処理でき
る。このため、本実施例のようにデータの回復毎にアド
レステーブルを調査し、アドレスを認識し、FMEM4
1から読み出しても、ドライブからのデータの読み出し
と比較し短時間で処理できる。この様に復元したデータ
は、障害ドライブ12を正常なドライブ12に交換した
後、この正常なドライブ12に書き込むことで回復処理
を行なう。また、ドライブ12の障害時に備え予め予備
の正常なドライブ12を用意してある場合は、この予備
の正常なドライブ12に復元したデータを書き込みこと
で回復処理を行なう。
【0048】以上の説明では更新後の新パリティを格納
するキャッシュメモリ7は不揮発な半導体メモリとし
た。しかし、パリティはデータとは異なり停電等によっ
てキャッシュメモリ7から消失しても、新たに作り直す
ことが可能なため、この、新たに作成する手間を許容で
きるなら、キャッシュメモリ7内で旧パリティを格納す
る領域を揮発な半導体メモリにすることも可能である。
以上の説明では、更新後の新パリティをキャッシュメモ
リ7に格納したが、キャッシュメモリ7ではなく専用の
メモリを用意することも可能である。従来のレベル4、
5では新パリティをドライブに格納しているため、書き
込み処理を行なうたびに新パリティの書き込みを行なっ
ていたため、新パリティを書き込む毎に回転の回転待ち
を必要としたが、本実施例ではシーケンシャルなまとめ
書きを行なう際のFMEMチィップ40の一括消去(約
10ms)と書き込みを行う時間のみである。
【0049】(実施例5)本実施例では実施例4で示し
たように、1つのパリティ格納用のFMEMチップにシ
ーケンシャルにまとめ書きするのではなく、複数のパリ
ティ格納用のFMEMチィップ40に対し新パリティを
パラレルに書き込む方法を示す。本実施例でも実施例4
と同じ処理により、データの書き込みに伴いパリティを
更新し、更新した新パリティはキャッシュメモリ7に保
持される。図21に示すように書き込み要求1、2、3
によりData#1、#9、#8がそれぞれNew D
ata#1、#9、#8に更新され、このデータの更新
により更新された新パリティとしてNew Parit
y#1、#3、#2がキャッシュメモリ7に保持されて
いる(図21の(1)(2)(3))。実施例1と同様
に予めユーザの設定値以上の新パリティがキャッシュメ
モリ7に溜った場合か、または、ユーザからの読み出し
/書き込み要求の発行されていないタイミングで、複数
のパリティ格納用のFMEM41であるFMEM#1、
FMEM#2にパラレルにまとめて書き込む(図21の
(5))。パラレルにまとめて書き込む単位としては、
レベル3のようにバイト単位と、レベル4、5のように
パリティ単位がある。この時、各パリティ格納用のFM
EM41に対する書き込み方法は、実施例1のパリティ
格納用のFMEM41への書き込み方法と同じである。
また、本実施例の変形として、パラレルに書き込む新パ
リティによりパリティを作成し、FMEM#3のパリテ
ィ格納用のFMEM41に書き込む。この様にパリティ
のパリティを作成することにより、パリティ格納用のF
MEM41の障害時に新たにパリティを作成する際に、
データを読み出す必要が無く、その間のデータへのアク
セスを受け付けることが可能となる。
【0050】
【発明の効果】従来はデータの書き込みによるパリティ
の更新ごとにドライブに書き込むため、この更新された
新パリティの書き込みに1回転の回転待ちが必要であっ
た。本発明によれば、更新した新パリティをキャッシュ
メモリに貯蔵しておき、後に、この様に貯蔵された新パ
リティをまとめてシーケンシャルにパリティ格納用のド
ライブに書き込んでいるため、シーケンシャルにまとめ
書きする際の、最初に0.5回転の回転待ちが必要にな
るのみであり、従来問題となっいた書き込み時の処理時
間を減少させることが可能となる。また、更新した新パ
リティをキャッシュメモリに貯蔵しておき、後に、この
様に貯蔵された新パリティをまとめてシーケンシャルに
パリティ格納用のFMEMに書き込んでいるため、シー
ケンシャルにまとめ書きする際の、FMEMの消去時間
と書き込み時間のオーバヘッドが必要になるのみであ
り、書き込み時の処理時間を減少させることが可能とな
る。また、パリティを格納するFMEMの書き込み回数
の平均化が可能になる。
【図面の簡単な説明】
【図1】実施例1のハードウェア構成を示す図である。
【図2】図1のチャネルパスディレクタと1クラスタの
内部構造を示した図である。
【図3】実施例1の書き込み処理時におけるデータ移動
を説明する図である。
【図4】アドレス変換テーブルを説明する図である。
【図5】書き込み処理のタイミングチャートを示す図で
ある。
【図6】磁気ディスク装置内の領域分割を説明する図で
ある。
【図7】新パリティのシーケンシャル書き込み方法を説
明する図である。
【図8】新パリティの他のシーケンシャル書き込み方法
を説明するである。
【図9】実施例2の書き込み処理時におけるデータ移動
を説明する図である。
【図10】RAIDのレベル4、5における更新処理を
説明する図である。
【図11】磁気ディスク装置内のアドレスを説明する図
である。
【図12】データおよびパリティの書き込み処理のフロ
ーチャートを示す図である。
【図13】実施例3における磁気ディスク装置内の領域
分割を説明する図である。
【図14】実施例4のハードウェア構成を示す図であ
る。
【図15】図14のチャネルパスディレクタと1クラス
タの内部構造を示した図である。
【図16】実施例4の書き込み処理時におけるデータ移
動を説明する図である。
【図17】実施例4におけるアドレス変換テーブルを説
明する図である。
【図18】FMEM内のアドレスを説明する図である。
【図19】実施例4における新パリティのシーケンシャ
ル書き込み方法を説明する図である。
【図20】実施例4における新パリティの他のシーケン
シャル書き込み方法を説明する図である。
【図21】実施例5の書き込み処理時におけるデータ移
動を説明する図である。
【図22】FMEMの書き込み回数を判定するフローチ
ャートを示す図である。
【符号の説明】
1 CPU 2 ディスクアレイコントローラ(ADC) 3 ディスクアレイユニット(ADU) 4 外部インターフェースパス 5 チャネルパスディレクタ 6 チャネルパス 7 キャッシュメモリ 8 ドライブパス 9 ディスクアレイユニットパス 10 論理グループ 12 ドライブ 13 クラスタ 14 ドライブ側キャッシュアダプタ(C Adp) 15 インターフェースアダプタ 16 チャネルパススイッチ 17 制御信号線 18 データ線 19 パス 20 マイクロプロセッサ(MP) 21 チャネルインターフェース回路(CH IF) 22 データ制御回路(DCC) 23 チャネル側キャッシュアダプタ(C Adp) 24 ドライブインターフェース回路(Drive I
F) 25 パリティ生成回路(PG) 27 論理アドレス 28 無効フラグ 29 データドライブ番号(DDrive No.) 30 SCSI内Addr 31 キャッシュアドレス 32 キャッシュフラグ 33 P論理アドレス 34 パリティドライブ番号(PDrive No.) 34’ FMEMアドレス 35 PSCSI内Addr 35’ FMEM内Addr 36 Pキャッシュアドレス 37 Pキャッシュフラグ 40 フラッシュメモリチィップ(FMEMチィップ) 41 フラッシュメモリ(FMEM) 42 フラッシュメモリコントローラ(FMEMC)

Claims (24)

    (57)【特許請求の範囲】
  1. 【請求項1】 上位装置に接続され、キャッシュメモリ
    と少なくとも1台の制御装置を備えるディスクアレイコ
    ントローラと、該ディスクアレイコントローラに接続さ
    れ複数台のディスク装置からなる少なくとも1つの論理
    グループを備えるディスクアレイユニットとを備え、 前記ディスクアレイコントローラの制御装置が、前記上
    位装置から1回に読み出しまたは書込みする単位で転送
    されてきたデ−タを分割せずに前記複数台のディスク装
    置の内の複数台のデータ用のディスク装置のいずれかに
    格納し、前記複数台のデータ用のディスク装置に格納さ
    れている各データによりパリティを生成し、この生成し
    たパリティを、前記複数台のディスク装置の内のパリテ
    ィ用のディスク装置に格納するディスクアレイ装置にお
    けるパリティ格納方法であって、 このディスクアレイ装置に対し上位装置から発行された
    書き込み要求に対し、前記制御装置はパリティを更新し
    た後、この更新したパリティを前記キャッシュメモリに
    格納し、同様に上位装置から発行されてきた別の書き込
    み要求に対し更新したパリティも該キャッシュメモリに
    格納し、これらの更新されたパリティを該キャッシュメ
    モリ内に貯蔵し、このキャッシュメモリ内の更新された
    パリティ群を書き込み要求の発行順に前記パリティ用の
    ディスク装置の更新前のパリティ群の一連のアドレスへ
    一度にシーケンシャルに書き込むことを特徴とするディ
    スクアレイ装置におけるパリティ格納方法。
  2. 【請求項2】 請求項1記載のディスクアレイ装置にお
    けるパリティ格納方法において、 前記ディスクアレイコントローラに更新されたパリティ
    を格納する専用メモリを設け、更新されたパリティを前
    記キャッシュメモリに替えて前記専用メモリに格納する
    ようにしたことを特徴とするディスクアレイ装置におけ
    るパリティ格納方法。
  3. 【請求項3】 請求項2記載のディスクアレイ装置にお
    けるパリティ格納方法において、 前記専用メモリを揮発メモリとしたことを特徴とするデ
    ィスクアレイ装置におけるパリティ格納方法。
  4. 【請求項4】 請求項1記載のディスクアレイ装置にお
    けるパリティ格納方法において、 前記キャッシュメモリにアドレス変換用テーブルを設
    け、 該テーブルには、パリティグループの各データの論理ア
    ドレスと該論理アドレスに対応するディスク装置番号お
    よびディスク装置内アドレスと、パリティの論理アドレ
    スと該論理アドレスに対応するディスク装置番号および
    ディスク装置内アドレスとパリティをキャッシュメモリ
    内に貯蔵した場合のキャッシュアドレスとキャッシュメ
    モリ内に貯蔵されたパリティとディスク装置内に格納さ
    れているパリティの何れが有効かを示すフラグを備える
    ことを特徴とするディスクアレイ装置におけるパリティ
    格納方法。
  5. 【請求項5】 請求項4記載のディスクアレイ装置にお
    けるパリティ格納方法において、 更新されたパリティ群をシーケンシャルにまとめてディ
    スク装置に書き込む途中において、書き込み要求が発行
    されていないため更新されていない有効なパリティが書
    き込まれているディスク装置のアドレスにおいては、一
    旦書き込みを中断し、書き込み要求が発行され、すでに
    更新されているディスク装置の無効なパリティのアドレ
    スにおいて、シーケンシャル書き込みを再開することを
    特徴とするディスクアレイ装置におけるパリティ格納方
    法。
  6. 【請求項6】 請求項4記載のディスクアレイ装置にお
    けるパリティ格納方法において、 更新されたパリティ群をシーケンシャルにまとめてディ
    スク装置に書き込む際、ディスク装置の書き込み先の領
    域に、書き込み要求が発行されていないため更新されて
    いない有効なパリティが書き込まれている場合、この有
    効なパリティをキャッシュメモリに読み出し、更新され
    たパリティと合わせてパリティ群を構成すると共にパリ
    ティの書き込み順を決定し、該パリティ群を該書き込み
    順にディスク装置の書き込み前のパリティ群の一連のア
    ドレスへ一度にシーケンシャルに書き込むことを特徴と
    するディスクアレイ装置におけるパリティ格納方法。
  7. 【請求項7】 請求項1記載のディスクアレイ装置にお
    けるパリティ格納方法において、 前記パリティ用のディスク装置を複数台設け、更新され
    たパリティ群をまとめてディスク装置に書き込む際、複
    数のパリティ用のディスク装置に、更新されたパリティ
    単位に、書き込み要求の発行順に更新前のパリティの一
    連のアドレスへ一度に並列に書き込むことを特徴とする
    ディスクアレイ装置におけるパリティ格納方法。
  8. 【請求項8】 請求項1記載のディスクアレイ装置にお
    けるパリティ格納方法において、 前記パリティ用のディスク装置を複数台設け、更新され
    たパリティ群をまとめてディスク装置に書き込む際、複
    数のパリティ用のディスク装置に、バイト単位に、書き
    込み要求の発行順に更新前のパリティの一連のアドレス
    へ一度に並列に書き込むことを特徴とするディスクアレ
    イ装置におけるパリティ格納方法。
  9. 【請求項9】 請求項1記載のディスクアレイ装置にお
    けるパリティ格納方法において、 更新されたパリティ群をシーケンシャルにまとめて書き
    込む前記パリティ用のディスクを複数の領域に分割し、
    更新される前のパリティが所属する領域ごとに、更新さ
    れたパリティ群を作成し、該作成されたパリティ群を該
    パリティ群が所属する領域に、かつ書き込み要求の発行
    順に更新前のパリティ群の一連のアドレスへ一度にシー
    ケンシャルに書き込むことを特徴とするディスクアレイ
    装置におけるパリティ格納方法。
  10. 【請求項10】 上位装置に接続され、キャッシュメモ
    リと少なくとも1台の制御装置を備えるディスクアレイ
    コントローラと、該ディスクアレイコントローラに接続
    され複数台のディスク装置からなる少なくとも1つの論
    理グループを備えるディスクアレイユニットとを備え、 前記ディスクアレイコントローラの制御装置が、前記上
    位装置から1回に読み出しまたは書込みする単位で転送
    されてきたデ−タを分割せずに前記複数台のディスク装
    置の内の複数台のデータ用のディスク装置のいずれかに
    格納し、前記複数台のデータ用のディスク装置に格納さ
    れている各データによりパリティを生成し、この生成し
    たパリティを、前記複数台のディスク装置の内のパリテ
    ィ用のディスク装置に格納するディスクアレイ装置にお
    いて、 前記制御装置は、このディスクアレイ装置に対し上位装
    置から発行された書き込み要求に対し、パリティを更新
    した後、この更新したパリティを前記キャッシュメモリ
    に格納し、同様に上位装置から発行されてきた別の書き
    込み要求に対し更新したパリティも該キャッシュメモリ
    に格納し、これらの更新されたパリティを該キャッシュ
    メモリ内に貯蔵する手段と、このキャッシュメモリ内の
    更新されたパリティ群を書き込み要求の発行順に前記パ
    リティ用のディスク装置の更新前のパリティ群の一連の
    アドレスへ一度にシーケンシャルに書き込む手段を備え
    ることを特徴とするディスクアレイ装置。
  11. 【請求項11】 請求項10記載のディスクアレイ装置
    において、 前記ディスクアレイコントローラに更新されたパリティ
    を格納する専用メモリを設け、更新されたパリティを前
    記キャッシュメモリに替えて前記専用メモリに格納する
    ようにしたことを特徴とするディスクアレイ装置。
  12. 【請求項12】 請求項11記載のディスクアレイ装置
    において、 前記専用メモリを揮発メモリとしたことを特徴とするデ
    ィスクアレイ装置。
  13. 【請求項13】 上位装置に接続され、キャッシュメモ
    リと少なくとも1台の制御装置を備えるディスクアレイ
    コントローラと、該ディスクアレイコントローラに接続
    され複数台のディスク装置からなる少なくとも1つの論
    理グループを備えるディスクアレイユニットとを備え、 前記ディスクアレイコントローラの制御装置が、前記上
    位装置から1回に読み出しまたは書込みする単位で転送
    されてきたデ−タを分割せずに前記複数台のディスク装
    置のいずれかに格納し、前記複数台のデータ用のディス
    ク装置に格納されている各データによりパリティを生成
    し、この生成したパリティを、前記複数台のディスク装
    置のいずれかに格納するディスクアレイ装置において、 前記複数台のディスク装置の夫々にパリティ格納領域を
    設け、該パリティ格納領域が割り当てられるディスク装
    置内の領域を各ディスク装置において夫々異なるディス
    ク装置内の領域とし、 前記制御装置は、このディスクアレイ装置に対し上位装
    置から発行された書き込み要求に対し、パリティを更新
    した後、この更新したパリティを前記キャッシュメモリ
    に格納し、同様に上位装置から発行されてきた別の書き
    込み要求に対し更新したパリティも該キャッシュメモリ
    に格納し、これらの更新されたパリティを該キャッシュ
    メモリ内に貯蔵し、このキャッシュメモリ内の更新され
    たパリティ群を更新される前のパリティが所属するディ
    スク装置のパリティ格納領域毎に作成する手段と、該パ
    リティ群を対応するディスク装置のパリティ格納領域
    に、かつ書き込み要求の発行順に更新前のパリティ群の
    一連のアドレスへ一度にシーケンシャルに書き込む手段
    を備えることを特徴とするディスクアレイ装置。
  14. 【請求項14】 請求項10乃至請求項12のいずれか
    の請求項記載のディスクアレイ装置において、 前記パリティ用のディスク装置をフラッシュメモリと
    し、該パリティ用のフラッシュメモリ上の前記更新前の
    パリティ群を消去した後、前記キャッシュメモリ内の更
    新されたパリティ群を書き込み要求の発行順に前記パリ
    ティ用のフラッシュメモリの消去された更新前のパリテ
    ィ群の一連のアドレスへ一度にシーケンシャルに書き込
    む手段を備えることを特徴とするディスクアレイ装置。
  15. 【請求項15】 請求項14記載のディスクアレイ装置
    において、 前記キャッシュメモリにアドレス変換用テーブルを設
    け、 該テーブルには、パリティグループの各データの論理ア
    ドレスと該論理アドレスに対応するディスク装置番号お
    よびディスク装置内アドレスと、パリティの論理アドレ
    スと該論理アドレスに対応するフラッシュメモリチィッ
    プ番号およびフラッシュメモリチィップ内アドレスとパ
    リティをキャッシュメモリ内に貯蔵した場合のキャッシ
    ュアドレスとキャッシュメモリ内に貯蔵されたパリティ
    とフラッシュメモリ内に格納されているパリティの何れ
    が有効かを示すフラグを備えることを特徴とするディス
    クアレイ装置。
  16. 【請求項16】 請求項15記載のディスクアレイ装置
    において、 前期制御装置は、更新されたパリティ群をシーケンシャ
    ルにまとめてフラッシュメモリに書き込む時の、実際に
    パリティをフラッシュメモリに書き込む前に、フラッシ
    ュメモリ内のパリティを書き込むアドレスの消去を行う
    際に、書き込み要求が発行されていないため更新されて
    いない有効なパリティが書き込まれているフラッシュメ
    モリのアドレスにおいては消去を行わずに、書き込み要
    求が発行され、すでに更新されているフラッシュメモリ
    の無効なパリティのアドレスに対してのみ、消去を行う
    手段を備えることを特徴とするディスクアレイ装置。
  17. 【請求項17】 請求項16記載のディスクアレイ装置
    において、 更新されたパリティ群をシーケンシャルにまとめてフラ
    ッシュメモリに書き込む際に、書き込み要求が発行さ
    れ、すでに消去されているフラッシュメモリの無効なパ
    リティのアドレスに対してのみ、書き込みを行う手段を
    備えることを特徴とするディスクアレイ装置。
  18. 【請求項18】 請求項15記載のディスクアレイ装置
    において、 前記制御装置は、更新されたパリティ群をシーケンシャ
    ルにまとめてフラッシュメモリに書き込む際、フラッシ
    ュメモリの更新されたパリティ群の書き込み先の領域
    に、書き込み要求が発行されていないため更新されてい
    ない有効なパリティが書き込まれている場合、この有効
    なパリティをキャッシュメモリに読み出し、更新された
    パリティと合わせてパリティ群を構成すると共にパリテ
    ィの書き込み順を決定手段と、該パリティ群に対応する
    フラッシュメモリ上の書き込み前のパリティ群を消去す
    る手段と、前記キャッシュメモリ内のパリティ群を前記
    書き込み順にフラッシュメモリの書き込み前のパリティ
    群の一連のアドレスへ一度にシーケンシャルに書き込む
    手段を備えることを特徴とするディスクアレイ装置。
  19. 【請求項19】 請求項15または請求項18記載のデ
    ィスクアレイ装置において、 更新されたパリティ群をシーケンシャルにまとめてフラ
    ッシュメモリに書き込む際、 フラッシュメモリ内の低いアドレスから高いアドレスに
    向かって順次書き込んでいく手段と、最も高いアドレス
    までパリティを書き込んだら、最も低いアドレスに戻
    り、又、順次パリティを書き込んでいく、リングバッフ
    ァのようにフラッシュメモリにパリティをシーケンシャ
    ルに書き込んでいく手段を備えることを特徴とするディ
    スクアレイ装置。
  20. 【請求項20】 請求項19記載のディスクアレイ装置
    において、 フラッシュメモリ内の最も低いアドレスにパリティを書
    き込んだ回数のカウントをする手段を備えることを特徴
    とするディスクアレイ装置。
  21. 【請求項21】 請求項20記載のディスクアレイ装置
    において、 前記カウントした回数に基づきフラッシュメモリの寿命
    を判定し、寿命がきたことを出力する手段を備えること
    を特徴とするディスクアレイ装置。
  22. 【請求項22】 請求項14記載のディスクアレイ装置
    において、 前記パリティ用のフラッシュメモリチィップを複数台設
    け、前記制御装置は、更新されたパリティ群をまとめて
    フラッシュメモリに書き込む際、複数のフラッシュメモ
    リチィップに、更新されたパリティ単位に、更新前のパ
    リティを消去した後、書き込み要求の発行順に更新前の
    パリティの一連のアドレスへ一度に並列に書き込む手段
    を備えることを特徴とするディスクアレイ装置。
  23. 【請求項23】 請求項14記載のディスクアレイ装置
    において、 前記パリティ用のフラッシュメモリチィップを複数台設
    け、前記制御装置は、更新されたパリティ群をまとめて
    フラッシュメモリに書き込む際、複数のフラッシュメモ
    リチップに、バイト単位に、更新前のパリティを消去し
    た後、書き込み要求の発行順に更新前のパリティの一連
    のアドレスへ一度に並列に書き込む手段を備えることを
    特徴とするディスクアレイ装置。
  24. 【請求項24】 上位装置に接続され、キャッシュメモ
    リと少なくとも1台の制御装置を備えるディスクアレイ
    コントローラと、該ディスクアレイコントローラに接続
    され複数台のディスク装置と複数個のフラッシュメモリ
    からなる少なくとも1つの論理グループを備えるディス
    クアレイユニットとを備え、 前記ディスクアレイコントローラの制御装置が、前記上
    位装置から1回に読み出しまたは書込みする単位で転送
    されてきたデ−タを分割せずに前記複数台のディスク装
    置の内の複数台のデータ用のディスク装置のいずれかに
    格納し、前記複数台のデータ用のディスク装置に格納さ
    れている各データによりパリティを生成し、この生成し
    たパリティを、前記フラッシュメモリに格納するディス
    クアレイ装置において、 前記制御装置は、このディスクアレイ装置に対し上位装
    置から発行された書き込み要求に対し、パリティを更新
    した後、この更新したパリティを前記キャッシュメモリ
    に格納し、同様に上位装置から発行されてきた別の書き
    込み要求に対し更新したパリティも該キャッシュメモリ
    に格納し、これらの更新されたパリティを該キャッシュ
    メモリ内に貯蔵する手段と、このキャッシュメモリ内の
    更新されたパリティ群を、一度にシーケンシャルに前記
    パリティ用のフラッシュメモリに書き込まれたディスク
    アレイ装置において、データが格納されているドライブ
    に障害が発生した場合は、このドライブに格納されてい
    るデータを回復するたびに、パリティが格納されている
    フラッシュメモリから、当該パリティを読み出す手段を
    備えることを特徴とするディスクアレイ装置。
JP20919794A 1993-10-05 1994-08-10 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置 Expired - Fee Related JP3270959B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20919794A JP3270959B2 (ja) 1993-10-05 1994-08-10 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP27320093 1993-10-05
JP5-273200 1993-10-05
JP20919794A JP3270959B2 (ja) 1993-10-05 1994-08-10 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置

Publications (2)

Publication Number Publication Date
JPH07152499A JPH07152499A (ja) 1995-06-16
JP3270959B2 true JP3270959B2 (ja) 2002-04-02

Family

ID=26517277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20919794A Expired - Fee Related JP3270959B2 (ja) 1993-10-05 1994-08-10 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置

Country Status (1)

Country Link
JP (1) JP3270959B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4044160B2 (ja) * 1995-08-23 2008-02-06 富士通株式会社 ディスクアレイ装置
JP3202600B2 (ja) * 1996-06-27 2001-08-27 日本電気株式会社 磁気ディスク装置
KR100321987B1 (ko) * 1999-02-19 2002-02-04 윤종용 레이드 시스템에서 패러티 캐쉬 및 이의 운영 방법
JP2004213470A (ja) * 2003-01-07 2004-07-29 Nec Corp ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
JP2008217811A (ja) * 2008-04-03 2008-09-18 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
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
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
US8156368B2 (en) 2010-02-22 2012-04-10 International Business Machines Corporation Rebuilding lost data in a distributed redundancy data storage system
JP5279785B2 (ja) * 2010-09-17 2013-09-04 株式会社東芝 コントローラ、記憶装置、およびプログラム
US9311181B2 (en) 2012-11-15 2016-04-12 Samsung Electronics Co., Ltd. Memory controller changing partial data in memory device and method for changing partial data thereof
WO2015011825A1 (ja) * 2013-07-26 2015-01-29 株式会社日立製作所 ストレージシステムおよびストレージシステムの制御方法

Also Published As

Publication number Publication date
JPH07152499A (ja) 1995-06-16

Similar Documents

Publication Publication Date Title
US6256749B1 (en) Disk array system and its control method
JP3129732B2 (ja) コピーバックキャッシュを有する記憶装置アレイ
JP3176157B2 (ja) ディスクアレイ装置及びそのデータ更新方法
US6021463A (en) Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem
US5463765A (en) Disk array system, data writing method thereof, and fault recovering method
US5515500A (en) Recording apparatus and method for an arrayed recording apparatus
US7464322B2 (en) System and method for detecting write errors in a storage device
US7861035B2 (en) Method of improving input and output performance of raid system using matrix stripe cache
US5583876A (en) Disk array device and method of updating error correction codes by collectively writing new error correction code at sequentially accessible locations
JP2008204041A (ja) ストレージ装置及びデータ配置制御方法
JP3270959B2 (ja) ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置
JPH08161124A (ja) 計算機システム
JPH06230903A (ja) ディスクアレイ装置の障害回復方法、およびディスクアレイ装置
JP3256329B2 (ja) ディスクアレイ装置及びその制御方法
JP3122252B2 (ja) ディスクアレイ制御方式
JP3793544B2 (ja) ディスクアレイ装置及びその制御方法
JP3615274B2 (ja) ファイル制御装置
JPH1031563A (ja) 記憶装置
JP3573599B2 (ja) ディスクアレイにおけるデータ回復方法
JP2857289B2 (ja) ディスクアレイ装置
JP3615250B2 (ja) ディスクアレイ装置
JP3542577B2 (ja) ディスクアレイ装置及びその制御方法
JPH07234763A (ja) ディスクアレイ装置の処理方法
JP4131953B2 (ja) ファイル制御装置
JPH0756693A (ja) ディスク・アレイ装置とディスク書込み制御装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080125

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080125

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090125

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100125

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees