JP3234211B2 - ディスクアレイシステム - Google Patents

ディスクアレイシステム

Info

Publication number
JP3234211B2
JP3234211B2 JP2000118555A JP2000118555A JP3234211B2 JP 3234211 B2 JP3234211 B2 JP 3234211B2 JP 2000118555 A JP2000118555 A JP 2000118555A JP 2000118555 A JP2000118555 A JP 2000118555A JP 3234211 B2 JP3234211 B2 JP 3234211B2
Authority
JP
Japan
Prior art keywords
drive
data
address
scsi
parity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2000118555A
Other languages
English (en)
Other versions
JP2000330727A (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 JP2000118555A priority Critical patent/JP3234211B2/ja
Publication of JP2000330727A publication Critical patent/JP2000330727A/ja
Application granted granted Critical
Publication of JP3234211B2 publication Critical patent/JP3234211B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュ−タシステムに
係り、特に高性能な入出力動作を可能とするディスクア
レイシステムに関する。
【0002】
【従来の技術】現在のコンピュータシステムにおいて
は、CPU等の上位側が必要とするデ−タは2次記憶装
置に格納され、CPUが必要とする時に応じ2次記憶装
置に対してデ−タの書込み、読み出しを行っている。こ
の2次記憶装置としては一般に不揮発な記憶媒体が使用
され、代表的なものとして磁気ディスク装置(以下ドラ
イブとする)、光ディスクなどがあげられる。
【0003】近年高度情報化に伴い、コンピュータシス
テムにおいて、2次記憶装置の高性能化が要求されてき
た。その一つの解として、多数の比較的容量の小さなド
ライブにより構成されるディスクアレイが考えられてい
る。
【0004】「D.Patterson,G.Gibson,and R.H.Kartz;A
Case for Redundant Arrays of Inexpensive Disks(RA
ID),in ACM SIGMOD Conference,Chicago,IL,(June198
8)」において、データを分割して並列に処理を行うディ
スクアレイ(レベル3)とデータを分散して、独立に扱
うディスクアレイ(レベル5)について、その性能およ
び信頼性の検討結果が報告されている。現在この論文に
書かれている方式が最も一般的なディスクアレイと考え
られている。
【0005】以下に、データを分散して、独立に扱うデ
ィスクアレイ(レベル5)について説明する。レベル5
のディスクアレイでは、個々のデータを分割せずに独立
に扱い、多数の比較的容量の小さなドライブに分散して
格納するものである。現在、一般に使用されている汎用
大型コンピュータシステムの2次記憶装置では、1ドラ
イブ当りの容量が大きいため、他の読み出し/書込み要
求に当該ドライブが使用されて、そのドライブを使用で
きずに待たされることが多く発生した。このタイプのデ
ィスクアレイでは、汎用大型コンピュータシステムの2
次記憶装置で使用されている大容量のドライブを、多数
の比較的容量の小さなドライブで構成し、データを分散
して格納してあるため、読み出し/書込み要求が増加し
てもディスクアレイの複数のドライブで分散して処理す
るため、読み出し/書込み要求がまたされることが減少
する。しかし、ディスクアレイは、このように多数のド
ライブにより構成されるため、部品点数が増加し障害が
発生する確率が高くなる。そこで、信頼性の向上を図る
目的で、パリティを用意する必要がある。
【0006】このパリティにより、データを格納したド
ライブに障害が発生した場合、その障害ドライブ内のデ
ータを復元することが可能となる。ディスクアレイで
は、データからパリティを作成しデータと同様にドライ
ブに格納しておく。この時、パリティは、パリティの作
成に関与したデータとは別のドライブに格納される。
【0007】これらのディスクアレイでは、現在一般に
使用されている汎用大型コンピュータシステムと同様、
2次記憶装置内では、個々のデータの格納場所(アドレ
ス)が予め指定したアドレスに固定され、CPUから当
該データの読み出し、または書込みをする場合、この固
定されたアドレスへアクセスすることになっている。こ
の分散して格納するディスクアレイ(レベル5)では、
ストレ−ジテクノロジコーポレーション(以下STKと
する)から製品発表がされている。米国特許WO 91
/20076では、レベル5の基本アーキテクチャにお
いて、動的に変更可能なアドレスのテーブルを用意する
ことにより、データ圧縮を行いデータの書込み処理にお
いて、トラック単位で書込み先のアドレスを動的に変換
する方法について開示されている。
【0008】また、特開平4−230512にはレベル
5において、書き込み時に書き込むデータと、この書き
込みにより更新したパリティを、それぞれ別の場所に書
き込む方法について開示されている。さらに、IBM社
のディスクアレイ(9337)では、レベル5において
WAD(ライト アシスト デバイス)を設けることが
発表されている。
【0009】
【発明が解決しようとする課題】現在の汎用大型計算機
システム等では、ドライブにより構成される2次記憶装
置内で、CPUから転送されてくるデータは、個々のデ
ータの格納場所(アドレス)が予め指定したアドレスに
固定され、CPUから当該データを読み出し、または書
込む場合は、この固定されたアドレスへアクセスするこ
とになる。これは、ディスクアレイにおいても同じであ
る。データを分割して並列に処理を行うディスクアレイ
(レベル3)では、このようにアドレスを固定しても影
響は無いが、データを分散して、独立に扱うディスクア
レイ(レベル5)では、アドレスを固定した場合、書込
み時に大きな処理オーバヘッドが必要になる。以下、そ
れについて説明する。
【0010】図11は前記公知例でD.Pattersonらが提
案したRAIDに述べられている、データを分散して、
独立に扱うディスクアレイ(レベル5)内部のデータア
ドレスを示している。この各アドレスにあるデータは、
1回の読み出し/書込み処理される単位で、個々のデー
タは独立している。また、RAIDで述べられているア
ーキテクチャでは、データに対するアドレスは固定され
ている。前述したように、このようなシステムでは、信
頼性を向上するためパリティを設定することが不可欠で
ある。本システムでは、各ドライブ内の同一アドレスの
データによりパリティが作成される。すなわち、ドライ
ブ#1から4までのアドレス(1,1)のデータにより
パリティが作成され、パリティを格納するドライブの
(1,1)に格納される。本システムでは、読み出し/
書込み処理は、現在の汎用大型計算機システムと同様
に、各ドライブに対し当該データをアクセスする。
【0011】このようなディスクアレイにおいて、例え
ば、ドライブ#3のアドレス(2,2)のデータを更新
する場合、まず、更新される前のドライブ#3の(2,
2)のデータと、パリティを格納してあるドライブの
(2,2)のパリティとを読み出し(1)、これらと更
新する新しいデータとで排他的論理和をとり、新たなパ
リティを作成する(2)。パリティの作成完了後、更新
する新しいデータをドライブ#3の(2,2)に、新パ
リティをパリティを格納するドライブの(2,2)に格
納する(3)。
【0012】図12に示すように、このようなレベル5
のディスクアレイでは、データの格納されているドライ
ブと、パリティの格納されているドライブから古いデー
タとパリティを読み出すため、ディスクを平均1/2回
転待ち、それから読み出してパリティを作成する。この
新しく作成したパリティを書き込むため更に一回転必要
となり、データを書き替える場合最低で1.5回転待た
なければならない。ドライブにおいては1.5回転ディ
スクの回転を待つということは非常に大きなオーバヘッ
ドとなる。このような書込み時のオーバヘッドを削減す
るため、書込み先のアドレスを動的に変換する方法が考
えられ、WO 91/20076に開示されている。
【0013】また、前記特開平4−230512におい
ても、書き込み時において書き込みデータをそのまま、
書き込みデータが書き込まれるアドレスではなく、別の
アドレスに書き込むことにより、書き込みオーバヘッド
を削減する方法について開示されている。CPU側から
書き込むデータが送られてくると、直ぐにパリティの更
新を行ない、更新後のパリティを書き込む。このよう
に、レベル5のディスクアレイでは、読み出しと比較し
て、書き込み時ではパリティ生成とこの生成したパリテ
ィを書き込む処理のオーバヘッドが非常に大きいため、
CPUからの読み出し、書き込み要求が多いときには、
この処理オーバヘッドが性能低下の大きな原因となる。
【0014】本発明の目的は、レベル5のディスクアレ
イ装置において、書き込み時における処理のオーバヘッ
ドを減少させて、ディスクアレイ装置の性能向上を図る
ことにある。
【0015】本発明の他の目的は、障害ドライブ内のデ
ータ復元用スペアドライブを装置の性能向上に利用する
ことによってドライブ資源の有効活用を図ることにあ
る。
【0016】
【課題を解決するための手段】本発明では、パリティグ
ループを構成するドライブと二重化領域(スペース領
域)のドライブにより論理グループを構成し、このスペ
ース領域を有効に活用することにより、高信頼性を保ち
ながら、しかも、書き込み時のパリティ更新の開始時間
を遅らせ、後のCPUからの読みだしまたは書き込み要
求が少ないときにパリティ生成を行う。
【0017】具体的には、書き込み時に、論理グループ
10を構成するSCSIドライブ12の中で、書き込む
データ(新データ)をとりあえずスペース領域に二重化
して格納する。CPU1に対してはこの時点で書き込み
処理を完了したと報告する。
【0018】また、パリティの作成および当該SCSI
ドライブ12へのパリティの書き込みは、新データのS
CSIドライブへの書き込みとは独立のタイミングで処
理する。具体的には、ADC2のMP1 20が当該論
理グループ10に対するCPU1からの読み出し/書き
込み要求をカウントし、予めユーザまたはシステム管理
者が設定した数より少ない場合で、しかも当該SCSI
ドライブ12に対し読み出し、または書き込み要求が発
行されていないときにパリティの作成を行い、パリティ
の作成完了後、当該SCSIドライブ12に対しパリテ
ィを書き込む。
【0019】パリティの書き込みの他の方法として、一
定時間毎の割込み処理で行なってもよい。一日の中でC
PUからの読み出し、または書き込み要求数の少ない時
間帯あるいは一月の中で少ない日を予測し、スケジュー
ル化しておけばよい。
【0020】パリティの作成およびそのパリティの当該
SCSIドライブ12へのパリティの書き込みが完了す
る前に、当該論理グループ10において任意の1台のS
CSIドライブに対し障害が発生し、その内部のデータ
が読み出せなくなった場合は、二重化データ以外のデー
タが格納されているSCSIドライブ12に対しては、
前のパリティと、残っているデータから障害が発生した
SCSIドライブ12内のデータを回復することが可能
で、二重化されている新しいデータにおいては、障害が
発生していない方のSCSIドライブ12内の新データ
により回復することが可能である。
【0021】
【作用】本発明では、上記のように、データの書き込み
とパリティの作成およびSCSIドライブ12への書き
込みとを独立させることにより、ユーザ(CPU)から
は書き込み時のパリティ作成によるオーバヘッドはなく
なる。これは、CPUからの読み出しまたは書き込み要
求数には時間的変動があるため、読み出しまたは書き込
み要求数が多いときには、書き込み処理におけるパリテ
ィの更新をその都度行わず、データの書き込みが完了し
た時点でCPUには終了を報告し、比較的読み出しまた
は書き込み要求の数が少ないときまでパリティの更新を
遅らせる。このパリティの更新は、CPU側の関知はな
く、ディスクアレイコントローラ2が独自に行う。
【0022】このため、CPU側から見たとき、従来の
ディスクアレイ(RAID方式)では、図12に示すよ
うに、書き込み時に平均1.5回転の回転待ち時間を必
要としたのが、本発明によれば、平均0.5回転の回転
待ち時間で済む。また、信頼性の面から見ても、従来の
ディスクアレイ(RAID方式)と比較し、同等に向上
させることが可能となる。
【0023】
【実施例】〈実施例1〉以下、本発明の一実施例を図1
〜図5及び図13により説明する。図1において、本実
施例は、CPU1、ディスクアレイコントローラ(以下
ADC)2、ディスクアレイユニット(以下ADU)3
により構成される。ADU3は、複数の論理グループ1
0により構成され、個々の論理グループ10は、m台の
SCSIドライブ12と、各々のSCSIドライブ12
とADC2を接続するドライブパス9−1から9−4に
より構成される。なお、このSCSIドライブ12の数
は、本発明の効果を得るには特に制限は無い。この論理
グループ10は障害回復単位で、この論理グループ10
内の各SCSIドライブ12内の各データによりパリテ
ィを作成する。本実施例では、m−1台の個々のSCS
Iドライブ12内のデータから各々のパリティが作成さ
れる。
【0024】次に、ADC2の内部構造について図1を
用いて説明する。ADC2は、チャネルパスディレクタ
5と、2個のクラスタ13と、バッテリバックアップ等
により不揮発化された半導体メモリであるキャッシュメ
モリ7により構成される。このキャッシュメモリ7に
は、データとアドレス変換用テーブルが格納されてい
る。このキャッシュメモリ7およびその中のアドレス変
換用テーブルは、ADC2内の全てのクラスタにおいて
共有で使用される。クラスタ13は、ADC2内におい
て独立に動作可能なパスの集合で、各クラスタ13間に
おいては、電源、回路は全く独立となっている。クラス
タ13は、チャネル、キャッシュメモリ7間のパスであ
るチャネルパス6と、キャッシュメモリ7、SCSIド
ライブ12間のパスであるドライブパス8−1から8−
が、それぞれ、2個ずつで構成されている。それぞれ
のチャネルパス6−1から6−4とドライブパス8は、
キャッシュメモリ7を介して接続されている。CPU1
より発行されたコマンドは、外部インターフェースパス
4を通って、ADC2のチャネルパスディレクタ5に発
行される。ADC2は、2個のクラスタ13により構成
され、それぞれのクラスタは2個のパスで構成されるた
め、ADC2は合計4個のパスにより構成される。この
ことから、ADC2では、CPU1からのコマンドを同
時に4個まで受け付けることが可能である。そこで、C
PU1からコマンドが発行された場合、ADC2内のチ
ャネルパスディレクタ5により、コマンドの受付が可能
かどうか判断する。
【0025】図2は、図1のチャネルパスディレクタ5
と、1クラスタ13−1内の内部構造を示した図であ
る。図2に示すように、CPU1からADC2に送られ
てきたコマンドは、インターフェースアダプタ(以下I
F Adp)15により取り込まれ、マイクロプロセッ
サであるMP1 20は、クラスタ内の外部インターフ
ェースパス4の中で使用可能なパスがあるかを調べ、使
用可能な外部インターフェースパス4がある場合は、M
P1 20は、チャネルパススイッチ16を切り換えて
コマンドの受付け処理を行ない、受け付けられない場合
は、受付不可の応答をCPU1へ送る。
【0026】本実施例では、ADU3を構成するSCS
Iドライブ12は、SCSIインターフェースのドライ
ブを使用する。CPU1をIBMシステム9000シリ
ーズのような大型汎用計算機とした場合、CPU1から
は、IBMオペレーティングシステム(OS)で動作可
能なチャネルインターフェースのコマンド体系にのっと
ってコマンドが発行される。そこで、SCSIドライブ
12をSCSIインターフェースのドライブを使用した
場合、CPU1からのコマンドを、SCSIインターフ
ェースのコマンド体系にのっとったコマンドに変換する
必要が生じる。この変換は、コマンドのプロトコル変換
とアドレス変換に大きく分けられる。以下にアドレス変
換について説明する。
【0027】CPU1から指定されるアドレスは、図1
2に示すように、当該データが格納されているトラック
が所属するシリンダの位置と、そのシリンダ内において
当該データが格納されているトラックを決定するヘッド
アドレスと、そのトラック内のレコードの位置を特定す
る。具体的には、要求データが格納されている当該ドラ
イブの番号(CPU指定ドライブ番号)と、当該ドライ
ブ内のシリンダ番号であるシリンダアドレス(CC)
と、シリンダにおいてトラックを選択するヘッドの番号
であるヘッドアドレス(HH)と、レコードアドレス
(R)からなるCCHHRである。
【0028】従来のCKDフォーマット対応の磁気ディ
スクサブシステム(IBM3990−3390)では、
このアドレスに従ってドライブへアクセスすれば良い。
しかし、本実施例では、複数のSCSIドライブ12に
より、従来のCKDフォーマット対応の磁気ディスクサ
ブシステムを論理的にエミュレートする。つまり、AD
C2は、複数のSCSIドライブ12が従来のCKDフ
ォーマット対応の磁気ディスクサブシステムで使用され
ているドライブ1台に相当するように、CPU1にみせ
かける。このため、 MP1 20は、CPU1から指
定してきたアドレス(CCHHR)をSCSIドライブ
のアドレスに変換する。このアドレス変換には、以下に
示すようなアドレス変換用のテーブル40(以下アドレ
ステーブルとする)が使用される。
【0029】ADC2内のキャッシュメモリ7には、そ
の内部の適当な領域に、図3に示すようなアドレステー
ブル40が格納されている。本実施例では、CPU1が
指定してくるドライブは、CKDフォーマット対応の単
体ドライブである。しかし、本発明では、CPU1が単
体と認識しているドライブが、実際は複数のSCSIド
ライブ12により構成されるため、論理的なドライブと
して定義される。このため、ADC2のMP1 20
は、CPU1より指定してきたアドレス(CPU指定ド
ライブ番号41とCCHHR46)を、SCSIドライ
ブ12に対するSCSIドライブアドレス42(SCS
Iドライブ番号43とそのSCSIドライブ内のアドレ
ス(以下SCSI内Addrとする)44)に変換す
る。
【0030】アドレステーブル40は、CPU1が指定
するCPU指定ドライブ番号41と、SCSIドライブ
アドレス42により構成される。SCSIドライブアド
レス42は、SCSIドライブ12のアドレスであるS
CSIドライブ番号43と、そのSCSIドライブ内の
実際にデータが格納されているアドレスであるSCSI
内Addr44と、論理グループ10内において、その
SCSI内Addr44により決定されるパリティグル
ープにおけるパリティが格納されているSCSIドライ
ブ番号(パリティドライブ番号50)と、二重化領域
(スペース領域)が格納されているSCSIドライブ番
号(スペースドライブ番号51)により構成されてい
る。このアドレステーブル40では、論理アドレス45
により、SCSIドライブ番号43とSCSI内Add
r44を決定する。アドレステーブル40のSCSIド
ライブアドレス42に登録されているSCSIドライブ
番号43のSCSIドライブ12により論理グループ1
0は構成される。
【0031】この論理グループ10内の同一SCSI内
Addr44において、パリティが格納されているSC
SIドライブ番号43をパリティドライブ番号50に登
録し、スペース領域が確保されているSCSIドライブ
番号43をスペースドライブ番号51に登録する。スペ
ースドライブ番号51は、スペース領域が確保されてい
るSCSIドライブ番号の他に、SDフラグ53により
構成される。SDフラグ53は、スペース領域に格納さ
れているデータが有効で、書き込み処理においてスペー
ス領域として使用できない場合はオン(1)となり、無
効で、スペース領域として使用可能な場合はオフ(0)
となる。この論理グループ10は、データとこのデータ
と関連するパリティにより構成されるパリティグループ
と、スペース領域により構成される。
【0032】論理アドレス45には、CPU1から指定
されるアドレスであるCPU指定ドライブ番号41と、
CCHHRの中でCCHHR46が登録されており、そ
れ以外に、この論理アドレス45のデータがキャッシュ
メモリ7内に存在する場合の、そのデータのキャッシュ
メモリ7内のアドレスを格納するキャッシュアドレス4
7と、キャッシュメモリ7内にその論理アドレス45の
データを保持している場合にオン(1)が登録されるキ
ャッシュフラグ48と、その論理アドレス45にはスペ
ース領域が確保されている場合にオン(1)となる無効
フラグ49と、キャッシュメモリ7内の書き込みデータ
がドライブに書き込まれている場合にオン(1)となる
ドライブフラグ52により構成される。
【0033】以上のように、アドレステーブル40によ
りCPU指定ドライブ番号41とCCHHR46を論理
アドレス45に変換し、そのデータが実際に格納されて
いるSCSIドライブ番号43とSCSI内Addr4
4を決定する。
【0034】例えば、図3において、CPU1から、C
PU指定ドライブ番号41としてDrive#1、CC
HHR46がADR8のデータに対して要求を発行して
きた場合、アドレステーブル40において、CPU指定
ドライブ番号41がDrive#1の領域の各論理アド
レス45内のCCHHR46を調べ、CCHHR46が
ADR8の論理アドレス45を探す。図3においては、
論理アドレス45として、Data#23(D#23)
でCCHHR46がADR8となっており、Data#
23(D#23)が当該論理アドレス45である。
【0035】このData#23(D#23)は、アド
レステーブル40から、SD#2のSCSIインターフ
ェースのSCSIドライブ12内のSCSI内Addr
44として、DADR8に該当することが分かり、物理
的なアドレスへ変換される。また、このData#23
(D#23)に対応するパリティは、パリティドライブ
番号50から、Data#23(D#23)と同一のS
CSI内Addr44のDADR8のSD#4のSCS
Iドライブ12に格納されており、スペアドライブ番号
51から、SDフラグ53がオン(1)のためSD#
4、5のSCSI内Addr44がDADR8に二重化
して格納されているデータは有効で、この領域は二重化
領域(スペア領域)として使用することは禁止されてい
る。
【0036】このように、CPU1から指定されたアド
レスを論理アドレス45に変換し、実際に読み出し/書
き込みを行うSCSIドライブ12の物理的なアドレス
に変換した後、SD#2のSCSIドライブ12のDa
ta#23(D#23)に対し、読み出しまたは書込み
要求が発行される。この時、アドレステーブル40にお
いて、Data#23(D#23)の論理アドレス45
ではキャッシュフラグ48がオン(1)のため、このデ
ータはキャッシュメモリ7内のCADR2、1に存在す
る。もし、キャッシュフラグ48がオフ(0)であれ
ば、CADR2、4のキャッシュメモリ7内には、当該
データは存在しない。また、このデータは無効フラグ4
9がオフ(0)のため、このデータは有効となる。さら
に、ドライブフラグ52がオン(1)のため、このデー
タはキャッシュメモリ7からドライブに既に書き込まれ
ている。
【0037】この、アドレステーブル40は、システム
の電源をオンした時に、MP1 20により、論理グル
ープ10内のある特定のSCSIドライブ12からキャ
ッシュメモリ7に、CPU1は関知せずに自動的に読み
込まれる。一方、電源をオフする時は、MP1 20に
より、キャッシュメモリ7内のアドレステーブル40
を、読み込んできたSCSIドライブ12内の所定の場
所に、CPU1は関知せずに自動的に格納する。
【0038】次に、ADC2内での具体的なI/O処理
について、図1、図2を用いて説明する。CPU1より
発行されたコマンドは、IF Adp15を介してAD
C2に取り込まれ、MP1 20により、読み出し要求
か書込み要求か解読される。まず、読み出し要求の場合
の処理方法を以下に示す。
【0039】MP1 20が読み出し要求のコマンドを
認識すると、MP1 20は、CPU1から送られてき
たCPU指定ドライブ番号41とCCHHR46(以下
両方を併せてCPU指定アドレスとする)についてアド
レステーブル40を参照し、当該データの論理アドレス
45への変換を行ない、論理アドレス45に登録されて
いるキャッシュメモリ7内に存在するかどうかキャッシ
ュフラグ48を調べ、判定する。
【0040】キャッシュフラグ48がオンでキャッシュ
メモリ7内に格納されている場合(キャッシュヒット)
は、MP1 20が、キャッシュメモリ7から当該デー
タを読み出す制御を開始し、キャッシュメモリ7内に無
い場合(キャッシュミス)は、当該ドライブ12からそ
の内部の当該データを読み出す制御を開始する。
【0041】キャッシュヒット時、MP1 20は、ア
ドレステーブル40により、CPU1が指定してきたC
PU指定アドレスから論理アドレス45に変換し、論理
アドレス45内のキャッシュアドレス47によりキャッ
シュメモリ7のアドレスに変換し、キャッシュメモリ7
へ当該データを読み出しに行く。具体的には、MP12
0の指示の元で、キャッシュアダプタ回路(C Ad
p)24によりキャッシュメモリ7から当該データは読
み出される。
【0042】C Adp24は、キャッシュメモリ7に
対するデータの読み出し、書き込みをMP1 20の指
示で行う回路であり、キャッシュメモリ7の状態の監
視、各読み出し、書き込み要求に対して排他制御を行う
回路である。C Adp24により読み出されたデータ
は、データ制御回路(DCC)22の制御により、チャ
ネルインターフェース回路(CH IF)21に転送さ
れる。CH IF21では、CPU1におけるチャネル
インターフェースのプロトコルに変換し、チャネルイン
ターフェースに対応する速度に速度調整する。具体的に
は、CPU1、ADC2間のチャネルインターフェース
を光のインターフェースにした場合、光のインターフェ
ースのプロトコルをADC2内では電気処理でのプロト
コルに変換する。CH IF21におけるプロトコル変
換および速度調整後は、チャネルパスディレクタ5にお
いて、チャネルパススイッチ16が外部インターフェー
スパス4を選択し、IF Adp15によりCPU1へ
データ転送を行なう。
【0043】一方、キャッシュミス時は、キャッシュヒ
ット時と同様に、アドレステーブル40によりCPU指
定アドレスを論理アドレス45に変換し、論理アドレス
45から、当該SCSIドライブ番号とそのSCSIド
ライブ内の実際にデータが格納されているSCSI内A
ddr44を認識し、そのアドレスに対し、MP120
は、Drive IF28に対し、当該ドライブ12へ
の読み出し要求を発行するように指示する。Drive
IF28では、SCSIの読み出し処理手順に従っ
て、読み出しコマンドをドライブユニットパス9−1ま
たは9−2を介して発行する。Drive IF28か
ら読み出しコマンドを発行された当該SCSIドライブ
12においては、指示されたSCSI内Addr44へ
シーク、回転待ちのアクセス処理を行なう。当該SCS
Iドライブ12におけるアクセス処理が完了した後、当
該SCSIドライブ12は、当該データを読み出しドラ
イブユニットパス9を介してDrive IF28へ転
送する。
【0044】Drive IF28では、転送されてき
た当該データをSCSIドライブ側のキャッシュアダプ
タ回路(C Adp)14に転送し、(C Adp)1
4では、キャッシュメモリ7にデータを格納する。この
時、C Adp14は、キャッシュメモリ7にデータを
格納することをMP1 20に報告し、MP1 20
は、この報告を元に、アドレステーブル40のCPUが
読み出し要求を発行したCPU指定アドレスに対応した
論理アドレス45のキャッシュフラグ48をオン(1)
にし、キャッシュアドレス47に、キャッシュメモリ7
内のデータを格納したアドレスを登録する。キャッシュ
メモリ7にデータを格納し、アドレステーブル40のキ
ャッシュフラグ48をオン(1)にし、キャッシュメモ
リ7内のアドレスを更新した後は、キャッシュヒット時
と同様な手順で、CPU1へ当該データを転送する。
【0045】一方、書き込み時は、以下のように処理さ
れる。書き込み処理は、ユーザが書き込み先のアドレス
(CPU指定アドレス)を指定し、その位置にユーザは
データを書き込んでいると認識する。つまり、ユーザ
は、固定の位置にアドレスを指定していると認識してい
る。
【0046】CPU1から、指定アドレス、すなわち、
図3に示すアドレステーブル40においてCPU指定ド
ライブ番号41がドライブ#1で、CCHHR46がA
DR8に対して、書き込み命令が発行されたとする。ま
ず、ADC2のMP1 20は、CPU1から、ドライ
ブ#1のCCHHR46がADR8に対する書込み要求
のコマンドを受け取った後、コマンドを受け取ったMP
1 20が所属するクラスタ13内の各チャネルパス6
において処理可能かどうかを調べ、可能な場合は処理可
能だという応答をCPU1へ返す。CPU1では、処理
可能だという応答を受け取った後に、ADC2へデータ
を転送する。この時、ADC2では、MP1 20の指
示により、チャネルパスディレクタ5において、チャネ
ルパススイッチ16が、当該外部インターフェースパス
4とIF Adp15を当該チャネルパス6と接続し、
CPU1とADC2間の接続を確立する。
【0047】CPU1とADC2間の接続を確立後、C
PU1からのデータ転送を受け付ける。CPU1から転
送されてきた書き込みデータ(以下新データとする)
は、MP1 20の指示により、CH IF21により
プロトコル変換を行ない、外部インターフェースパス4
での転送速度からADC2内での処理速度に速度調整す
る。CH IF21におけるプロトコル変換および速度
制御の完了後、データは、DCC22によるデータ転送
制御を受け、C Adp24に転送され、C Adp2
4によりキャッシュメモリ7内に格納される。
【0048】この時、CPU1から送られてきた情報が
CPU指定アドレスの場合は、データが転送されてくる
前に必ずCPU指定アドレスがCPU1より転送されて
いるため、読み出しと同様に、アドレステーブル40に
よりアドレス変換を行い、論理アドレス45に変換す
る。また、CPU1から送られてきた情報がデータの場
合は、キャッシュメモリ7に格納したアドレスを上記ア
ドレス変換により変換した論理アドレス45のキャッシ
ュアドレス47に登録する。この時、書き込みデータを
キャッシュメモリ7内に保持するときは、論理アドレス
45のキャッシュフラグ48をオン(1)とし、保持し
ない場合は、キャッシュフラグ48をオフ(0)とす
る。
【0049】なお、キャッシュメモリ7内に保持されて
いる新データに対し、さらに書き込み要求がCPU1か
ら発行された場合は、キャッシュメモリ7内に保持され
ている新データを書き替える。
【0050】キャッシュメモリ7に格納された新データ
は、この新データにより新しくパリティを更新し(以
下、更新されたパリティを新パリティとする)、以下の
ように、論理グループ10内のSCSIドライブ12へ
新データと新パリティを格納する。
【0051】図3に示すように、スペース領域及びパリ
ティはデータと同じ様に扱われ、論理グループ10内の
各SCSIドライブ12に分散して格納されている。論
理グループ10を構成する各SCSIドライブ12内の
データについては、行方向(同一SCSI内Addr4
4)にパリティグループが構成され、このパリティグル
ープ内のデータにおいてパリティが作成される。つま
り、パリティグループは、データとパリティにより構成
され、論理グループ10は、パリティグループとスペー
ス領域で構成される。
【0052】図3において具体的な例を示す。SCSI
内Addr44がDADR1については、SD#1のS
CSIドライブ12に格納されているData#1(D
#1)と、SD#2のSCSIドライブ12に格納され
ているData#2(D#2)と、SD#3のSCSI
ドライブ12に格納されているData#3(D#3)
によりパリティが作成される。このパリティが、SD#
6のSCSIドライブ12に格納され、これらがパリテ
ィグループを構成する。また、論理グループ10は、S
D#4のSCSIドライブ12に確保されているスペー
ス領域(S)と、SD#5のSCSIドライブ12に確
保されているスペース領域(S)と、上記パリティグル
ープにより構成される。
【0053】MP1 20は、アドレステーブル40を
参照し、データ、スペース領域、パリティが格納されて
いるSCSIドライブ12を認識する。具体的には、ア
ドレステーブル40においてCPU指定アドレスが指定
したCPU指定ドライブ番号41に対応する領域におい
て、CPU指定アドレスで指定したCCHHR46と一
致しているSCSIドライブアドレス42に登録されて
いる論理アドレス45をMP1 20は探す。MP1
20は、CPU指定アドレスから論理アドレス45への
変換後、論理アドレス45から、その論理アドレス45
が格納されているSCSIドライブ番号43と、そのS
CSIドライブ12内の物理的なアドレスであるSCS
I内Addr44に変換する。
【0054】パリティは、論理グループ10を構成する
各SCSIドライブ12において、各SCSI内Add
r44が同一のデータに対し作成され、そのパリティも
データと同一のSCSI内Addr44に格納される。
このため、アドレステーブル40のパリティドライブ番
号50とスペースドライブ番号51において、パリティ
およびスペース領域は、それぞれが格納されているSC
SIドライブ番号43のみが登録されている。そこで、
MP1 20では、アドレステーブル40により、パリ
ティドライブ番号50とスペースドライブ番号51を決
定することが可能となる。つまり、パリティドライブ番
号50とスペースドライブ番号51を決定することによ
り、パリティおよびスペース領域は、データと同一のS
CSI内Addr44に格納されていることから、それ
らのアドレスを決定することになる。このように、デー
タ、スペース領域、パリティが格納されているSCSI
ドライブ12を認識した後は、Drive IF28に
対し、各々の当該SCSIドライブ12に対し書き込み
処理を行なうように指示する。
【0055】本発明における書き込み処理とは、論理グ
ループ10において、新データをキャッシュメモリ7か
ら実際にSCSIドライブ12に書き込む処理と、新デ
ータの書き込みによりパリティを新たに作り直さなけれ
ばならないため、この新パリティを作成するための書き
込み前のデータ(以下旧データ)と書き込み前のパリテ
ィ(以下旧パリティとする)を読み出し、新パリティを
作成する処理と、書き込み後の新パリティを実際にSC
SIドライブ12に書き込む一連の処理をいう。この新
データをキャッシュメモリ7に格納した後の一連の書き
込み処理のフローチャートを図5に示す。
【0056】図4に示すように、CPU1からSD#1
のSCSIドライブ12のData#1(D#1)の論
理アドレスに対し、ND#1のデータの書き込み要求が
発行された場合、先に示したように、CPU1からキャ
ッシュメモリ7に新データは一旦格納される。新データ
のキャッシュメモリ7への格納後、書き込み処理は次の
手順で行っていく。キャッシュメモリ7に新データ(N
D#1)が格納された後、MP1 20は書き込み処理
に入り、アドレステーブル40により、SD#1のSC
SIドライブ12が所属する論理グループ10で、Da
ta#1(D#1)のSCSI内Addr44であるD
ADR1に対し、スペース領域が確保されているSD#
4,5のSCSIドライブ12に対し、使用権の獲得を
行なう。
【0057】SD#4、5のSCSIドライブ12の使
用権を獲得した後は、図5のフローチャートに示すよう
に書き込み処理500を行なっていく。まず、MP1
20は、アドレステーブル40のスペースドライブ番号
51のSDフラグ53をチェックし、SDフラグ53が
オフ(0)の場合、スペース領域として使用でき、オン
(1)の場合は使用できないと判断する(502)。M
P1 20は、このSDフラグ53により、SD#4、
5のSCSIドライブ12にスペース領域が確保されて
いるかを判断する。そして、SDフラグ53がオフ
(0)の場合、キャッシュメモリ7に格納されているN
D#1をこのSD#4,5に二重化して書き込み(50
4)、MP1 20はCPU1へ書き込み完了の報告を
行う(508)。
【0058】一方、ステップ502のチェックにより、
SDフラグ53がオン(1)の場合は、図13に示すよ
うに、書き込む新データ(ND#1)をキャッシュメモ
リ7に書き込んだ後、MP1 20は優先的に前の書き
込み処理におけるパリティの作成を指示し、このパリテ
ィを当該SCSIドライブ12に書き込む(131
0)。前の書き込み処理におけるパリティの作成が完了
し、当該SCSIドライブへの書き込みが完了すると、
MP1 20は、アドレステーブル40においてスペー
スドライブ番号51にSDフラグ53をオフ(0)とし
(1308)、キャッシュメモリ7に格納されているN
D#1を二重化して書き込み(1316)、MP1 2
0は、CPU1へ書き込み完了の報告を行う(132
0)。
【0059】そこで、次に、SCSIドライブ12への
新データ(ND#1)の書き込み方法を示す。MP1
20は、アドレステーブル40のSDフラグ53がオフ
(0)になっているのを確認後、Drive IF28
に書き込むデータである新データ(ND#1)をスペー
ス領域が確保されているSD#4とSD#5のSCSI
ドライブ12に書き込むよう指示する。Drive I
F28では、SCSIの書込み手順に従って、ドライブ
ユニットパス9−1から9−4の中の2本を介して、S
D#4とSD#5のSCSIドライブ12に書込みコマ
ンドを発行する。
【0060】Drive IF28から書込みコマンド
を発行された当該SCSIドライブ12では、Driv
e IF28から送られてきたCPU1が書き込み先の
アドレスとして指定したCPU指定アドレスを論理アド
レス45に変換し、論理アドレス45であるData#
1に対応するSCSI内Addr44のDADR1へシ
ーク、回転待ちのアクセス処理を行なう。SD#4、5
のSCSIドライブ12においてアクセス処理が完了
し、書込みが可能になり次第、C Adp14は、キャ
ッシュメモリ7から書き込む新データ(ND#1)を読
み出してDrive IF28へ転送し、Drive
IF28では、転送されてきた新データ(ND#1)を
ドライブユニットパス9−1から9−4の中の2本を介
してSD#4、5のSCSIドライブ12へ転送する。
新データ(ND#1)のSD#4、5のSCSIドライ
ブ12への書込みが完了すると、SD#4、5のSCS
Iドライブ12は、Drive IF28に完了報告を
行ない、Drive IF28が、この完了報告を受け
取ったことをMP1 20に報告する。
【0061】この時、アドレステーブル40において、
書き込み前の旧データの論理アドレス45(Data#
1、D#1)の無効フラグをオン(1)とし、書き込み
前の論理アドレス45(Data#1、D#1)内のC
CHHR46のアドレスを、新データ(ND#1)を二
重化して書き込んだスペース領域の2つの論理アドレス
45のCCHHR46に登録し、無効フラグをオフ
(0)とし、ドライブフラグ52をオン(1)とする。
また、キャッシュメモリ7内に書き込む新データ(ND
#1)を保持する場合は、書き込み後の2つの論理アド
レス45内のキャッシュアドレス47に、キャッシュメ
モリ7内の新データ(ND#1)が格納されているアド
レスを登録し、キャッシュフラグ48をオン(1)とす
る。この新データ(ND#1)をキャッシュメモリ7上
に残さない場合、MP1 20は、この報告を元にアド
レステーブル40のキャッシュフラグ48をオフ(0)
にする。さらに、書き込みを行った論理グループ10内
のSCSI内Addr44に対し、スペースドライブ番
号51のSDフラグをオン(1)とする。
【0062】上記のようにアドレステーブル40の更新
が完了すると、MP1 20は、SD#4とSD#5の
両方のSCSIドライブ12からの完了報告を受け取っ
た後、CPU1に対し擬似的に書き込み処理の終了報告
を行う。SD#4、5のSCSIドライブ12に対する
新データ(ND#1)の格納が完了しても、キャッシュ
メモリ7内には新データ(ND#1)が存在しており、
パリティの更新はキャッシュメモリ7内に格納されてい
る新データ(ND#1)で行なう。
【0063】以上のように、MP1 20がCPU1に
対し擬似的に終了報告を行った後は、CPU1は書き込
み処理を終了したと認識しているが、MP1 20は、
新しいパリティを作成して当該SCSIドライブ12書
き込んでいないため、まだ書き込み処理は終了していな
い。そこで、MP1 20がCPU1に対し終了報告を
行った後に、MP1 20が独自に新しいパリティを作
成し、当該SCSIドライブ12に書き込む。この方法
について以下に説明する。
【0064】MP1 20は、CPU1に対し書き込み
処理の終了報告を行った後、図5に示すように、CPU
1からの読み出し、書き込み要求の状況(IO状況)を
監視する(510)。具体的には、MP1 20が、当
該論理グループ10に対するCPU1からの読み出し、
書き込み要求の単位時間当りの回数を数える。当該論理
グループ10に対するこの回数が、予めユーザまたはシ
ステム管理者により設定された数より少なく、パリティ
の作成およびこの作成したパリティを書き込むSCSI
ドライブ12が所属する論理グループ10に対する読み
出し、書き込み要求がCPU1より発行されていない場
合、パリティの作成およびパリティの当該SCSIドラ
イブ12への書き込み処理を開始する。
【0065】新しくパリティを作成する場合、CPU1
から書き込み先に指定されたアドレスに書き込まれてい
るデータ(旧データ)と、更新するパリティ(旧パリテ
ィ)を読み出し、新しく作成したパリティ(新パリテ
ィ)をSCSIドライブ12に書き込む。この時、旧デ
ータと旧パリティを読み出すSCSIドライブ12と、
新パリティを書き込む当該SCSIドライブ12に対
し、MP1 20は、CPU1からの読み出し、書き込
み要求と同様の擬似的な読み出し、書き込み要求を発行
する。この、擬似的な読み出し、書き込み要求が発行さ
れているSCSIドライブ12に対し、CPU1から読
み出しまたは書き込み要求が発行された場合は、MP1
20は、CPU1からの読み出し、書き込み要求を受
付、処理の待ち行列とする。
【0066】次に、新パリティの作成および当該SCS
Iドライブ12への作成したパリティの書き込み方法を
具体的に示す。MP1 20は、SD#1のSCSIド
ライブ12に対して旧データの読み出し要求、SD#6
のSCSIドライブ#12に対して旧パリティの読み出
し要求を発行するように、Drive IF28に指示
する(514)。
【0067】Drive IF28から読み出しコマン
ドを発行された当該SCSIドライブ12では、Dri
ve IF28から送られてきたSCSI内Addr4
4へシーク、回転待ちのアクセス処理を行なう。キャッ
シュメモリ7内には新データ(ND#1)が存在してお
り、パリティの更新はキャッシュメモリ7内に格納され
ている新データ(ND#1)で行なう。
【0068】もし、キャッシュメモリ7に新データ(N
D#1)が存在していない場合は、スペース領域に二重
化して書き込まれているデータをキャッシュメモリ7に
読み出す。
【0069】SD#1、6のSCSIドライブ12にお
いて、シーク、回転待ちのアクセス処理が完了し、旧デ
ータ(D#1)および旧パリティ(P#1)の読み出し
が可能になり次第、旧データ(D#1)および旧パリテ
ィ(P#1)を読み出し、キャッシュメモリ7に格納す
る。SD#1のSCSIドライブ12から旧データ(D
#1)を、SD#6のSCSIドライブ12から旧パリ
ティ(P#1)を読み出し、それぞれをキャッシュメモ
リ7に格納した後、MP1 20は、キャッシュメモリ
7内に格納されている書き込む新データ(ND#1)
で、排他的論理和により、更新後の新パリティ(NP#
1)を作成するようにPG36に指示を出し、PG36
において新パリティ(NP#1)を作成し、キャッシュ
メモリ7に格納する(516)。
【0070】新パリティ(NP#1)をキャッシュメモ
リ7に格納した後、MP1 20では、新パリティ(N
P#1)を格納する論理アドレス45のキャッシュアド
レス47に、キャッシュメモリ7内の新パリティ(NP
#1)を格納したアドレスを登録し、キャッシュフラグ
48をオン(1)とし、無効フラグ49とドライブフラ
グ52をオフ(0)とする(518)。新パリティ(N
P#1)の作成が完了したことを認識し、SD#6のS
CSIドライブ12にIO要求が発行されていない時
に、更新後の新パリティ(NP#1)を書き込むよう
に、Drive IF28に対し指示する。
【0071】SD#6のSCSIドライブ12への更新
後の新パリティ(NP#1)の書込み方法(520)
は、先に述べた書き込む新データ(ND#1)をSD#
4、5のSCSIドライブ12に書き込んだ方法と同じ
である。新パリティ(NP#1)の作成が完了したら、
MP1 20は、Drive IF28に、SD#6の
SCSIドライブ12に対し書込みコマンドを発行する
ように指示し、当該SCSIドライブ12では、指示S
CSI内Addr44へシーク、回転待ちのアクセス処
理を行う。新パリティ(NP#1)は既に作成されキャ
ッシュメモリ7に格納されており、SD#6のSCSI
ドライブ12におけるアクセス処理が完了した場合、C
Adp14は、キャッシュメモリ7から新パリティ
(NP#1)を読み出してDrive IF28へ転送
する。Drive IF28では、転送されてきた新パ
リティ(NP#1)をドライブユニットパス9−1から
9−4の中の1本を介してSD#6のSCSIドライブ
12へ転送する(522)。
【0072】新パリティ(NP#1)のSD#6のSC
SIドライブ12への書込みが完了すると、SD#6の
SCSIドライブ12は、Drive IF28に完了
報告を行ない、Drive IF28がこの完了報告を
受け取ったことをMP1 20に報告する。この時、M
P1 20は、この新データ(ND#1)をキャッシュ
メモリ7上に残さない場合は、この報告を元にアドレス
テーブル40のキャッシュフラグ48をオフ(0)に
し、キャッシュメモリ7上に残す場合はオン(1)とす
る。さらに、アドレステーブル40において、書き込み
後の新パリティ(NP#1)の論理アドレス45の無効
フラグをオフ(0)とし、ドライブフラグ52をオン
(1)とする(524)。
【0073】このような、新しく作成した新パリティ
(NP#1)を当該SCSIドライブ12に書き込んだ
後は、旧データ(D#1)が格納されていたSD#1の
SCSIドライブ12の旧データ(D#1)と二重化さ
れている新データ(ND#1)が格納されているSD#
4、5のSCSIドライブ12の中で、SCSIドライ
ブ番号の小さいSD#4のSCSIドライブ12に格納
されている新データ(ND#1)をスペース領域として
解放し、次の書き込み処理用にスペース領域として登録
する。この登録の方法は、MP1 20が、アドレステ
ーブル40においてSD#1とSD#4のSCSI内A
ddr44がD ADR1の旧データ(D#1)と、二
重化されていた新データ(ND#1)の一方が格納され
ている論理アドレス45において、無効フラグをオン
(1)とし、さらにスペースドライブ番号51にSD#
1とSD#4を登録し、SDフラグをオフ(0)にする
(526)。
【0074】以上のように、書き込み処理時に書き込む
新データ(ND#1)を一旦二重化して論理グループ1
0内に格納しておき、後でCPU1からの読み出し、書
き込み要求が比較的少ないときに、新パリティ(NP#
1)を作成し、SCSIドライブ12に格納すること
で、書き込み処理時の応答時間が短縮され、従来のよう
に新パリティ(NP#1)の作成により他の読み出し、
書き込み処理が待たされることが減少する。
【0075】もし、新パリティ(NP#1)を当該SC
SIドライブ12への書き込み前に論理グループ10内
のSCSIドライブ12に障害が発生した場合は、図1
4に示すように回復処理を行う。図4(a)に示すよう
に、SD#6のSCSIドライブ12に対し新パリティ
(NP#1)を書き込む前に(1402)、SD#1、
2、3の内のどれか1台のSCSIドライブ12に障害
が発生した場合(1406)、障害が発生していないS
CSIドライブ12からのデータと旧パリティから、障
害が発生したSCSIドライブ12内のデータを回復す
ることが可能となる(1410)。例えば、SD#1の
SCSIドライブ12に障害が発生した場合、SD#
2、3のD#2、D#3と、SD#6のSCSIドライ
ブ1からの旧パリティ(P#1)から、SD#1のSC
SIドライブ12内のデータであるD#1を回復するこ
とが可能となる。また、新データ(ND#1)が二重化
して格納されているSD#4、5のどちらか一方に障害
が発生した場合は、二重化データの一方のデータにより
回復することが可能となる(1412)。
【0076】図4(b)に示すように、SD#6のSC
SIドライブ12に対し新パリティ(NP#1)を書き
込んだ後は、SD#2、3、5のSCSIドライブ12
内のデータ(D#2、3、ND#1)に対し新パリティ
(NP#1)が作成されてSD#6のSCSIドライブ
12に格納されており、SD#2、3、5のSCSIド
ライブ12の中の1台のSCSIドライブ12に障害が
発生した場合、残りの正常なSCSIドライブ12内の
データとSD#6のSCSIドライブ12内のパリティ
により、障害が発生したSCSIドライブ12内のデー
タは回復される。
【0077】例えば、SD#2のSCSIドライブ12
に障害が発生した場合、SD#2のSCSIドライブ1
2内のデータ(D#2)は、SD#3のSCSIドライ
ブ12内のデータ(D#3)と、SD#4のSCSIド
ライブ12内のデータ(ND#1)と、SD#6のSC
SIドライブ12内のパリティ(NP#1)から、障害
が発生したSD#2のSCSIドライブ12内のデータ
(D#2)は回復される。
【0078】本発明のように、書き込み処理において、
スペース領域に書き込みデータ(新データ)をとりあえ
ず二重化して格納し、この段階でCPU1に対し書き込
み処理の終了報告を行うことにより、CPU1にとって
は、この二重化してSCSIドライブ12に書き込む時
間が書き込み処理時間になる。従来のアレイディスクで
は、図12に示すように、書き込み時に平均1.5回転
の回転待ち時間が必要としたのが、もし、論理グループ
10を構成するSCSIドライブ12の回転を同期させ
た場合は、回転待ちは平均0.5回転となる。また、新
パリティをSCSIドライブ12に書き込む前に論理グ
ループ10を構成するSCSIドライブ12に障害が発
生しても、先に述べたように、旧パリティと二重化され
た新データにより従来のアレイディスクと同様に、障害
回復を行うことが可能となる。
【0079】本実施例では、パリティおよびパリティの
作成に関与したデータとスペース領域は、論理グループ
10を構成する各SCSIドライブ12において、各S
CSI内Addr44を同一とした。しかし、アドレス
テーブル40の各論理アドレス45とパリティドライブ
番号50、スペースドライブ番号51において、論理グ
ループ10のアドレスを付加することにより、論理グル
ープ10を構成する各SCSIドライブ12において、
SCSI内Addr44を任意とすることが可能とな
る。
【0080】本実施例では、書き込み時の回転待ち時間
を減少させる目的で、書き込みデータを一旦二重化して
SCSIドライブ12に書き込み、後の適当なタイミン
グでパリティを更新し、パリティの更新後は二重化した
書き込みデータの一方を開放する方法について説明し
た。本発明は、上記のような性能向上の観点とは別に、
以下に示すような応用例も考えられる。
【0081】パリティによる信頼性と二重化による信頼
性では、二重化による信頼性の方が、信頼性向上のため
に必要とする容量は大きいが、信頼性は高くなる。この
特徴を活かし、本発明の応用として、最新に書き込まれ
たデータ、または、頻繁に書き込み要求が発行されるデ
ータについては、二重化されているため、高信頼とし、
あまり書き込み要求が発行されないデータについては、
二重化ほど高信頼ではないが、信頼性向上のために必要
とする容量が二重化と比較して少なくて済む、パリティ
により信頼性を確保する。つまり、あまり書き込み要求
が発行されないデータに対しては、信頼性は二重化ほど
高くないが、パリティを付けるだけで済む、パリティで
信頼性を確保し、最新に書き込まれたデータまたは、頻
繁に書き込み要求が発行されるデータについては、パリ
ティと比較し信頼性向上のために容量を多く必要とする
が、高信頼である二重化で高信頼とする、二段階の信頼
性のレベルを設定することも可能である。
【0082】〈実施例2〉本発明の他の実施例を図6を
中心にして説明する。本実施例では、実施例1で示した
システムにおいて、SCSIドライブ12に障害が発生
した時に、その障害が発生したSCSIドライブ12内
のデータを回復し、それを格納するための領域にスペー
ス領域を使用する例を示す。
【0083】本発明では図3に示すように、論理グルー
プ10内の各SCSIドライブ12では、その内部の各
々対応する同一SCSI内Addr44のデータによ
り、パリティグループを構成する。具体的には、SD#
1、2、3のSCSIドライブ12内のData#1、
2、3(D#1、2、3)で、PG36によりパリティ
#1(P#1)が作られ、SD#6のSCSIドライブ
12内に格納される。本実施例では、パリティは奇数パ
リティとし、Data#1、2、3(D#1、2、3)
の各データにおける各々対応するビットについて1の数
を数え、奇数であれば0、偶数であれば1とする(排他
的論理和)。もし、SD#1のSCSIドライブ12に
障害が発生したとする。この時、Data#1(D#
1)は読み出せなくなる。
【0084】本実施例では、パリティグループ当りにパ
リティを1個しか持っていないため、1台のSCSIド
ライブ12の障害はデータを復元できるが、データの復
元が完了する前に更にもう一台のSCSIドライブ12
に障害が発生した場合、復元出来ない。そこで、この様
な場合、2台目のSCSIドライブ12障害が発生する
前に、残りのData#2、3(D#2、3)とパリテ
ィ#1(P#1)をキャッシュメモリ7に転送し、MP
1 20がPG36に対し、Data#1(D#1)を
復元する回復処理を早急に行なうように指示する。この
回復処理を行ないData#1(D#1)を復元した後
は、MP1 20は、このData#1(D#1)をS
D#4または6のどちらかのスペース領域に格納する。
【0085】これにより、スペース領域を実施例1で示
したような、書き込み処理時の回転待ち時間を短縮させ
るためだけではなく、SCSIドライブ12に障害が発
生したときに、復元したデータを格納するためのスペア
ー領域としても活用する。この様に、MP1 20が、
スペース領域に回復したData#1(D#1)を格納
した後は、キャッシュメモリ7にある図3に示すアドレ
ステーブル40において、スペースドライブ番号51の
中で、回復データを格納した方のスペースドライブ番号
51を削除し、この削除したドライブ番号に対する論理
アドレス45に、回復したData#1(D#1)の論
理アドレス45の内容を複写する。
【0086】図6に示すように、SD#1のSCSIド
ライブ12には、Data#1(D#1)の他にスペー
ス領域、パリティ、Data#13、16、19、22
(D#13、16、19、22)が格納されている。ス
ペース領域については、回復処理を行ない復元する必要
は無い。パリティ#3(P#3)は、SD#3、4、5
のSCSIドライブ12から、Data#7、8、9
(D#7、8、9)を読み出して新たに作成し、SD#
2か6のSCSIドライブ12のスペース領域に格納す
る。Data#13(D#13)は、SD#3、5、6
のSCSIドライブ12からパリティ#5(P#5)、
Data#14、15(D#14、15)を読み出し
て、回復処理を行ない復元し、SD#2または4のSC
SIドライブ12のスペース領域に格納する。Data
#16(D#16)は、SD#2、4、6のSCSIド
ライブ12からData#17(D#17)、パリティ
#6(P#6)、Data#18(D#18)を読み出
して、回復処理を行ない復元し、SD#3または5のS
CSIドライブ12のスペース領域に格納する。以下、
同様に、Data#19、22(D#19、22)と回
復処理を行ない、論理グループ10内のスペース領域に
格納していく。
【0087】この様に、SD#2、3、4、5、6のS
CSIドライブ12内のスペース領域に、SD#1のS
CSIドライブ12の回復データを全て格納した後は、
スペース領域が論理グループ10において一つしかない
ため、実施例1で述べたような書き込み時の回転待ちを
短くすることは出来ないため、従来のアレイディスクで
あるRAIDのレベル5の処理となる。また、SD#1
のSCSIドライブ12の回復データを全て格納した後
は、SD#2、3、4、5、6のSCSIドライブ12
の中で更にもう一台SCSIドライブ12に障害が発生
した場合、同様にその障害が発生したSCSIドライブ
12内のデータについて回復処理を行ない、残りのスペ
ース領域に格納し、処理を行なえる。
【0088】この様にして、論理グループ10内のスペ
ース領域を全て使い切ってしまった場合は、障害SCS
Iドライブ12を正常のSCSIドライブ12に交換
し、この交換した正常なSCSIドライブ12は全てス
ペース領域として論理グループを再構成する。
【0089】障害SCSIドライブ12を正常のSCS
Iドライブ12に交換した直後は、スペース領域が特定
SCSIドライブ12に集中した形になっているため、
このSCSIドライブ12が使用できずに待たされるこ
とが多くなり、ネックとなるため、実施例1で示した回
転待ち時間を短縮する効果が効率的に発揮出来ない。し
かし、時間が立つにつれて、スペース領域が分散されて
SCSIドライブ12障害前の状態に戻っていき、次第
に解消されていく。もし、この時間が問題となる場合
は、SCSIドライブ12に障害が発生したことを感知
した場合、正常なSCSIドライブ12に交換して、こ
の交換した正常なSCSIドライブ12に障害が発生し
たSCSIドライブ12内のデータとパリティをユーザ
が復元することも可能とする。なお、この時スペース領
域に関しては復元せずにスペース領域として空けてお
く。
【0090】本実施例では、この回復処理とスペース領
域へ復元したデータを書き込む処理をMP1 20が独
自に行なう。この様に独自に行なうことにより、SCS
Iドライブ12に障害が発生した場合、障害が発生した
SCSIドライブ12を正常なSCSIドライブ12に
交換し、回復したデータを書き込むのと比較して、本発
明では、システムを使用するユーザがSCSIドライブ
12に障害が発生すると直ぐに正常なSCSIドライブ
12と交換する必要が無いため、ユーザの負担が軽くな
る。
【0091】〈実施例3〉本発明の第三の実施例を図7
〜図11により説明する。本実施例では、図7、8に示
すように、論理グループ10単位にサブDKC11を設
け、その内部に図9に示すように実施例1、2において
示したキャッシュメモリ7内のアドレステーブル40
と、RPC27、PG36、サブキャッシュ32と、そ
れらを制御するマイクロプロセッサMP3 29を持た
せたものを示す。本実施例におけるデータの処理手順
は、実施例1および2で示したものと同様である。以
下、実施例1、2で示した処理手順と異なる部分のみを
図10および図11を用いて示す。本実施例では、図9
に示すように、実施例1、2で示したキャッシュメモリ
7内のアドレステーブル40をサブDKC11内のデー
タアドレステーブル(DAT)30に格納する。DAT
30は、格納されているテーブルの形式や機能は実施例
1、2と同様であるが、異なるのは、データを格納する
SCSIドライブアドレス42が論理グループ10に限
られている点と、メモリがアドレステーブル40を格納
するデータを格納するのとは別の専用メモリである。A
DC2内のGAT23は、CPU1から指示されたCP
U指定アドレスから、そのCPU指定アドレスが指示す
る場所がADU3内のどの論理グループ10かを判定す
るのみである。キャッシュメモリ7内には、その特別な
領域に、図10に示すような論理グループテーブル(L
GT)60が格納されている。
【0092】LGT60は、図10に示すように、CP
U1から指定されるCPU指定ドライブ番号41とCC
HHR46に対応して、論理グループアドレス61が決
定できるテーブルとなっている。また、LGT60に
は、CPU指定アドレスに対応するデータがキャッシュ
メモリ7内に存在する場合、そのデータのキャッシュメ
モリ7内のアドレスをキャッシュアドレス47に登録で
き、また、キャッシュメモリ7内にデータが存在する場
合はオン(1)とし、キャッシュメモリ7内に存在しな
い場合はオフ(0)とするキャッシュフラグ48が用意
されている。ユーザは、初期設定する際に自分の使用可
能な容量に対する領域を確保するが、その際に、ADC
2のMP1 20が、LGT60により論理グループ1
0を割当てる。この時、MP1 20は、LGT60に
ユーザが確保するために指定したCPU指定アドレスに
対応する領域を登録する。
【0093】そこで、実際の読み出し、書き込み処理に
おいては、GAT23は、LGT60により、CPU1
から指定してきたCPU指定アドレスに対応した論理グ
ループ10を認識することが可能となる。読み出し時
は、GAT23が、LGCにより論理グループ10を確
定し、その確定した結果をMP1 20に報告し、MP
1 20が、この当該論理グループ10に対し読み出し
要求を発行するようにDrive IF28に指示す
る。MP1 20から指示を受けたDrive IF2
8は、当該論理グループ10のサブDKC11に対し、
読み出し要求とCPU1が指定するCPU指定アドレス
を発行する。サブDKC11では、マイクロプロセッサ
であるMP3 29が、この読み出し要求のコマンドと
CPU指定アドレスを受け付け、実施例1と同様に、D
rive IF28から送られてきたCPU指定アドレ
スをDAT30を参照し、当該データが格納されている
論理グループ10内の論理アドレス45に変換し、この
論理アドレス45から当該SCSIドライブアドレス4
2(SCSIドライブ番号43とその中のSCSI内A
ddr44)を確定する。
【0094】このアドレスの確定後、MP3 29は、
当該SCSIドライブ12に対して読み出し要求を発行
する。MP3 29から読み出し要求を発行されたSC
SIドライブ12では、SCSI内Addr44へシー
ク、回転待ちを行ない、当該データの読み出しが可能に
なり次第、当該データをドライブアダプタ回路(Dri
ve Adp)34に転送し、Drive Adp34
は、サブキャッシュメモリ32に格納する。サブキャッ
シュメモリ32に当該データの格納が完了した後、Dr
ive Adp34は、MP3 29に格納報告を行な
い、MP3 29は、DAT30の当該データの当該論
理アドレス45内の当該キャッシュフラグ48をオン
(1)とする。後に、当該キャッシュフラグ48がオン
(1)のデータに対して読み出しまたは書込み要求が発
行された場合、サブキャッシュ32内で処理を行なう。
【0095】実施例1と同様に、MP3 29によるD
AT30の更新が終了すると、MP329は、ADC2
内のDrive IF28に対しでデータ転送可能とい
う応答を行い、Drive IF28は、この応答を受
け取るとMP1 20に対し報告する。
【0096】MP1 20は、この報告を受け取ると、
キャッシュメモリ7への格納が可能なら、Drive
IF28に対しサブDKC11からデータを転送するよ
うに指示する。Drive IF28では、MP1 2
0からの指示を受けると、サブDKC11のMP3 2
9に対し読み出し要求を発行する。この読み出し要求を
受けたMP3 29は、サブキャッシュアダプタ回路
(SCA)31に対しサブキャッシュ32から当該デー
タを読みだすように指示し、SCA31は、実際にデー
タを読み出してDrive IF28にデータを転送す
る。DriveIF 28がデータを受け取った後は、
実施例1、2で示した処理を行なう。
【0097】一方、書込み時は、読み出し時と同様に、
当該論理グループ10を確定し、MP1 20は、Dr
ive IF28に対し、当該論理グループ10のMP
329に対し書込み要求を発行するように指示する。当
該論理グループ10内のMP3 29は、書込み要求を
受け付け、書込みデータをサブキャッシュ32に格納し
た後は、図5のフローチャートに従って、実施例1、2
と同様に処理を行う。本実施例では、実施例1、2の効
果を実現することが可能である。
【0098】以上、磁気ディスク装置を用いたシステム
を実施例として説明したが、本発明は、光ディスク装置
を用いたシステムにおいても、同様な効果を発揮するこ
とが可能である。
【0099】
【発明の効果】本発明によれば、データの書き込み時に
おけるパリティの更新処理を、CPUからの読み出しま
たは書き込み要求が少ない時まで遅らせることが可能と
なる。これにより、CPUにとっては、読み出しまたは
書き込み処理要求が多い時は書き込み処理を高速に行
え、これにより単位時間当りのI/O処理件数を増加さ
せることが可能となる。さらに、通常は使用しないスペ
アのSCSIドライブを回転待ち時間の短縮という性能
向上のために使用でき、SCSIドライブ資源の有効活
用が図れる。
【図面の簡単な説明】
【図1】第1の実施例の全体構成図。
【図2】第1の実施例のクラスタ内構成図。
【図3】アドレス変換テーブルの説明図。
【図4】書き込み処理時のデータ移動説明図。
【図5】書き込み処理フローチャート(1)。
【図6】データ回復処理説明図、パリティグループを構
成する各データのディスク上での位置説明図。
【図7】第3の実施例の全体構成図。
【図8】第3の実施例のクラスタ内構成図。
【図9】第3の実施例のサブDKC内構成図。
【図10】論理グループテーブル説明図。
【図11】RAID Level5における更新処理説
明図。
【図12】RAID5における書き込み処理タイミング
チャート。
【図13】書き込み処理フローチャート(2)。
【図14】パリティ作成処理フローチャート。
【符号の説明】
1…CPU、2…レイディスクコントローラ(AD
C)、3…アレイディスクユニット(ADU)、4…外
部インターフェースパス、5…チャネルパスディレク
タ、6…チャネルパス、7…キャッシュメモリ、8…ド
ライブパス、9…アレイディスクユニットパス、10…
論理グループ、12…SCSIドライブ、13…クラス
タ、14…ドライブ側キャッシュアダプタ(C Ad
p)、15…インターフェースアダプタ、16…チャネ
ルパススイッチ、17…制御信号線、18…データ線、
19…パス、20…マイクロプロセッサ1(MP1)、
21…チャネルインターフェース(CH IF)回路、
22…データ制御回路(DCC)、23…グループアド
レス変換回路(GAT)、24…チャネル側キャッシュ
アダプタ(C Adp)、28…ドライブインターフェ
ース回路(Drive IF)、29…マイクロプロセ
ッサ3(MP3)、30…データアドレステーブル4
0、31…サブキャッシュアダプタ、34…ドライブア
ダプタ(Drive Adp)、35…ドライブパス、
36…パリティ生成回路、40…アドレス変換用テーブ
ル(アドレステーブル)、41…CPU指定ドライブ番
号、42…SCSIドライブアドレス、43…SCSI
ドライブ番号、44…SCSI内Addr、45…論理
アドレス、46…CCHHR、47…キャッシュアドレ
ス、48…キャッシュフラグ、49…無効フラグ、50
…パリティドライブ番号、51…スペースドライブ番
号、52…ドライブフラグ、53…SDフラグ、60…
論理グループテーブル、61…論理グループアドレス
フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 12/10 G06F 12/10 Z (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 301 G06F 3/06 540

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】キャッシュメモリを有し、CPU(中央処
    理装置)と接続可能な制御装置と、上記制御装置と接続
    されたデータ格納用の複数のディスク装置とを有するデ
    ィスクアレイシステムであって、 上記複数のディスク装置のうちの特定のディスク装置
    に、上記CPUから指定された論理アドレス情報を上記
    各ディスク装置に割り当てられた物理アドレスに変換す
    るためのアドレス変換テーブルを格納しておき、 上記制御装置が、上記ディスクアレイシステムの電源オ
    ン時に、上記変換テーブルを上記特定のディスク装置か
    ら上記キャッシュメモリに読み込み、上記ディスクアレ
    イシステムの電源オフ時に、上記キャッシュメモリ内の
    変換テーブルを上記特定ディスク装置に格納し、上記
    何れかのディスク装置に障害が発生したとき、障害ディ
    スク装置で失われたデータの他のディスク装置への回復
    処理に伴って、上記変換テーブルの内容を変更すること
    を特徴とするディスクアレイシステム。
  2. 【請求項2】前記論理アドレスが、シリンダアドレス
    と、ヘッドアドレスと、レコードアドレスとからなるこ
    とを特徴とする請求項1に記載のディスクアレイシステ
    ム。
  3. 【請求項3】前記論理アドレスが、SCSIドライブア
    ドレスであることを特徴とする請求項1または請求項2
    に記載のディスクアレイシステム。
JP2000118555A 1993-05-27 2000-04-14 ディスクアレイシステム Expired - Lifetime JP3234211B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000118555A JP3234211B2 (ja) 1993-05-27 2000-04-14 ディスクアレイシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000118555A JP3234211B2 (ja) 1993-05-27 2000-04-14 ディスクアレイシステム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP12576693A Division JP3256329B2 (ja) 1992-12-28 1993-05-27 ディスクアレイ装置及びその制御方法

Publications (2)

Publication Number Publication Date
JP2000330727A JP2000330727A (ja) 2000-11-30
JP3234211B2 true JP3234211B2 (ja) 2001-12-04

Family

ID=18629668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000118555A Expired - Lifetime JP3234211B2 (ja) 1993-05-27 2000-04-14 ディスクアレイシステム

Country Status (1)

Country Link
JP (1) JP3234211B2 (ja)

Also Published As

Publication number Publication date
JP2000330727A (ja) 2000-11-30

Similar Documents

Publication Publication Date Title
US6049890A (en) Disk array system and its control method
US6061750A (en) Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure
US6006342A (en) Failover and failback system for a direct access storage device
JP3176157B2 (ja) ディスクアレイ装置及びそのデータ更新方法
JP3129732B2 (ja) コピーバックキャッシュを有する記憶装置アレイ
US5572660A (en) System and method for selective write-back caching within a disk array subsystem
JP3606881B2 (ja) 動作時にXor演算を行う高性能データ経路
US7600152B2 (en) Configuring cache memory from a storage controller
US5586291A (en) Disk controller with volatile and non-volatile cache memories
US6604171B1 (en) Managing a cache memory
US5210866A (en) Incremental disk backup system for a dynamically mapped data storage subsystem
US6591335B1 (en) Fault tolerant dual cache system
JPH08305500A (ja) 記憶制御装置、それを含むデータ記憶システムおよび二重ペア抑止方法
JPH10105467A (ja) 冗長キャッシュを備えているraidコントローラにおけるキャッシュのコンシステンシーを維持するための方法および装置
JPH07230362A (ja) ディスクアレイ装置
JP3230645B2 (ja) データ処理方法、システムおよび装置
JPH0720994A (ja) 記憶システム
JP3270959B2 (ja) ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置
JP3256329B2 (ja) ディスクアレイ装置及びその制御方法
JPH06230903A (ja) ディスクアレイ装置の障害回復方法、およびディスクアレイ装置
JP3793544B2 (ja) ディスクアレイ装置及びその制御方法
US11334508B2 (en) Storage system, data management method, and data management program
JP3234211B2 (ja) ディスクアレイシステム
JP3542577B2 (ja) ディスクアレイ装置及びその制御方法
JP3944280B2 (ja) 障害回復方法および装置

Legal Events

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

Free format text: PAYMENT UNTIL: 20070921

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080921

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080921

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090921

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090921

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 12

EXPY Cancellation because of completion of term