図1は、本発明の一実施態様であるディスクアレイ装置及びその制御装置の構成を示す図である。
図1において、ホスト装置1は、例えばホストコンピュータ、サーバ(サーバ装置)等からなる。ホスト装置1は、データ転送手段としてのHBA(Host Bus Adaptor)11を備える。HBA11は、ディスクアレイ装置2にデータの書込みを要求し、書き込むべきデータをディスクアレイ装置2に送信する。また、HBA11は、ディスクアレイ装置2にデータの読出しを要求し、ディスクアレイ装置2から読み出されたデータを受信する。HBA11は、例えばコンピュータのPCI(Peripheral Components Interconnect)バスに従うカードアダプタ等である。
ディスクアレイ装置2は、コントローラ部3と、ディスク格納部4を備える。コントローラ部3は、HBA11からの要求に応じて、ディスク格納部4へのデータの書込み及びディスク格納部4からのデータの読出しを制御する。
コントローラ部3は、チャネル制御部31、CPU32、キャッシュメモリ33、ディスク制御部34、ディスク管理テーブル35、ホットスペアディスクデータ管理テーブル(HSD管理テーブル)36を備える。
ディスク格納部4は、複数のディスク装置41を備える。ディスク装置41は、データを格納するために使用される。ディスク格納部4は、データをミラーリングする。ディスク装置41の中で、ミラーリングの対を構成する一方のディスクを「ディスク装置41A」と表し、他方のディスクを「ディスク装置41B」と表す。ミラーリングの対を構成するディスク装置41A及びディスク装置41Bは、予め定められる。
ディスク格納部4は、1又は複数のディスク装置42を備える。ディスク装置42は、予備のディスク(ホットスペアディスク)である。即ち、ディスク装置42は、ミラーリングの対を構成せず、ディスク装置41が故障した場合等において、当該故障したディスク装置41に代えて使用される。
しかし、この例では、ディスク装置42は、ディスク装置41の予備ディスクとして用いられる他に、ミラーリングすべきデータを一時的に記録するためのデータバッファとして用いられる。換言すれば、予備ディスクとして用いられていないディスク装置42が、データバッファとして用いられる。
ディスク装置41及びディスク装置42は、例えば磁気ディスク装置即ちハードディスク装置(HDD:Hard Disk Drive)である。ディスク装置41及びディスク装置42は、光ディスク等の円盤型の媒体であっても良い。
なお、ディスク格納部4において、1個のディスク装置41A、1個のディスク装置41B、1個のディスク装置42を1組として、複数の組を設けるようにしても良い。また、1個のディスク装置41Aと1個のディスク装置41Bを1組として、1組毎に又は複数の組毎に、1個のディスク装置42を設けるようにしても良い。
コントローラ部3において、チャネル制御部31は、ホスト装置1のHBA11との間でデータ転送を実行する。即ち、チャネル制御部31は、HBA11からのデータの書込み要求及び書き込むべきデータを受信し、CPU32に送る。また、チャネル制御部31は、HBA11からのデータの読出し要求をCPU32に送り、キャッシュメモリ33又はディスク格納部4から読み出されたデータをHBA11に送信する。
CPU32は、コントローラ部3を制御して、HBA11からデータの書込み要求及びデータの読出し要求を実行する。このために、CPU32は、コントローラ部3におけるデータ転送のための演算を実行し、これに基づいて、チャネル制御部31、キャッシュメモリ33、ディスク制御部34の間におけるデータ転送を制御する。キャッシュメモリ33は、チャネル制御部31とディスク制御部34との間でデータ転送を行う際、一時的にデータを記憶する。
ディスク制御部34は、CPU32からの制御に従って、ディスク装置41A及びディスク装置41B、ディスク装置42に対するデータの読出し及び書込みを制御する。このために、ディスク制御部34は、ディスク管理テーブル35及びHSD管理テーブル36を用いる。これらについては、図3等を参照して後述する。
図2は、図1のディスクアレイ装置におけるディスクの説明図である。
図2(A)において、ディスク装置41Aは、矢印Aで示すように、当該ディスクの外側から、論理アドレスを順に(昇順に)割当てられる。即ち、当該ディスクの外周方向から、順に、トラック及びセクタの物理位置に従って論理アドレスが割り当てられる。従って、ディスク装置41Aにおいて、論理アドレスの昇順は物理アドレスの昇順と一致する。このようなディスクを「ミラー正」又は第1のディスクと言うこととする。
図2(B)において、ディスク装置41Bは、矢印Bで示すように、当該ディスクの内側から、論理アドレスを順に(昇順に)割当てられる。即ち、当該ディスクの内周方向から順にトラック及びセクタの物理位置に従って論理アドレスが割り当てられる。従って、ディスク装置41Bにおける論理アドレスは、ディスク装置41Aにおける論理アドレスと逆とされる。ディスク装置41Bにおいて、論理アドレスの昇順は物理アドレスの昇順と逆になる。このようなディスクを「ミラー副」又は第2のディスクと言うこととする。
図2(C)において、ディスク装置42は、矢印Cで示すように、当該ディスクの外側から、論理アドレスを順に(昇順に)割当てられる。即ち、ディスク装置42と同様である。しかし、データバッファとして用いられるディスク装置42(以下、単にディスク装置42)において、書き込むべきデータは、予め定められた順に書き込まれる。この書込みの順は、当該データのディスク装置41におけるアドレスとは独立に、当該ディスク装置42において定められる。例えば、書き込むべきデータは、当該ディスクにおける物理アドレスの先頭から順に書込まれる。具体的には、ディスク装置42においては、ディスク制御部34により、当該書込み処理の直前の書き込み処理が行われた物理アドレスに続く物理アドレスに、当該書込み処理におけるデータが書込まれる。
なお、図2(A)は、ディスク装置41Aが備える複数のディスク(物理ディスク)の中の1個の物理ディスク101Aのみについて示す。図2(B)は、ディスク装置41Bが備える複数の物理ディスクの中の1個の物理ディスク101Bのみについて示す。図2(C)は、ディスク装置42が備える複数の物理ディスクの中の1個の物理ディスク101Cのみについて示す。
また、物理ディスク101Aは、ヘッド103A、アーム105A、トラック111A、113Aを備える。トラック111Aはヘッド位置のトラックであり、トラック113Aはトラック111Aの次の隣接トラックである。セクタ115Aは、トラック111Aにおける最終アクセス時のヘッド位置のセクタである。物理ディスク101B及び物理ディスク101Cにおいても、同様である。
また、ディスク装置41Aにおいて、外周方向から論理アドレスが割当てられるため、トラック111Aの内側の隣接トラックであるトラック113Aが、論理アドレス上、トラック111Aの次トラックとなる。これは、ディスク装置42においても、同様である。一方、ディスク装置41Bにおいて、内周方向から論理アドレスが割当てられるため、論理アドレス上、トラック111Bの外側の隣接トラックであるトラック113Bが、トラック111Bの次トラックとなる。
図3(A)はディスク管理テーブル35を示し、図3(B)はHSD管理テーブル36を示す。
図3(A)において、ディスク管理テーブル35は、ディスク装置41及び42における物理ディスク毎に、ディスク種別と、最終アクセス時のヘッドの位置情報とを格納する。ディスク装置41及び42の物理ディスクは、物理ディスク番号(ID)により表される。例えば、ディスク装置41Aの物理ディスク101Aの物理ディスク番号は「1」とされる。ディスク種別は、当該物理ディスクの属するディスク装置41又は42が「ミラー正」「ミラー副」「ホットスペアディスク(データバッファ)」であるかの区別である。最終アクセスヘッド位置は、当該ディスク装置41又は42における最後の(直前の)アクセスを実行した後のヘッド位置である。例えば、ディスク装置41Aの最終アクセスヘッド位置をP(a)と表すとする。
例えば、物理ディスク番号が「1」であるディスク装置41Aの物理ディスク101Aにおいて、その最終アクセスヘッド位置は、図2(A)において、トラック111Aのセクタ115Aである。そこで、セクタ115Aの論理アドレス値が最終アクセスヘッド位置P(a)として、ディスク管理テーブル35に格納される。物理ディスク101Bの最終アクセスヘッド位置P(b)は、図2(B)におけるトラック111Bのセクタ115Bの論理アドレス値である。物理ディスク101Cの最終アクセスヘッド位置P(c)は、図2(C)におけるトラック111Cのセクタ115Cの論理アドレス値である。
最終アクセスヘッド位置P(a)は、例えば、以下の処理により算出される。なお、ディスク装置41Bの最終アクセスヘッド位置P(b)及びディスク装置42の最終アクセスヘッド位置P(c)についても、同様である。
例えば、計算の簡単化のために、物理ディスクを円周方向に例えば2等分して、外側の1/2周を第1領域とし、内側の1/2周を第2領域とする。また、物理ディスク101Aのトラックの数を100とする。従って、第1領域は、最外周da(第1トラック)から物理ディスク101Aの中点dbの直前のトラック(第50トラック)までである。第2領域は、物理ディスク101Aの中点dbの直後のトラック(第51トラック)から最内周dc(第100トラック)までである。第1領域におけるセクタ密度Xは1000セクタ/トラックであり、第2領域におけるセクタ密度Yは500セクタ/トラックであるとする。なお、以下の例は、外周から順に論理アドレスが割当てられる場合の例である。
このような例において、第1領域における最終アクセスヘッド位置P(a)は、P(a)=LBA1÷Xにより求まる。ここで、LBA1は、第1領域における最終アクセスの論理ブロックアドレスLBA(Logical Block Address)の値である。この例では、LBAは、セクタ単位で計算されるものとする。LBAの値は、先頭トラックである第1トラックにおける先頭セクタである第1セクタを「0番地」として、セクタが1個増加する毎に、アドレスが1番地増加するものとする。
例えば、LBA1=10002番地の場合、最終アクセスヘッド位置P(a)は、10002(番地/セクタ)÷1000(セクタ/トラック)=第10トラックの第2セクタとなる。
第2領域における最終アクセスヘッド位置P(a)は、P(a)=(LBA2−db×X)÷Y+dbにより求まる。ここで、LBA2は、第2領域における最終アクセスの論理ブロックアドレスLBAの値である。
例えば、LBA1=60014番地の場合、最終アクセスヘッド位置P(a)は、(LBA2−50×1000)÷Y+50=(60014−50×1000)(番地/セクタ)÷500(セクタ/トラック)+50(トラック)=第70トラックの第14セクタとなる。
図3(B)において、HSD管理テーブル36は、当該ディスク装置42に格納された複数のデータ毎に、その先頭格納位置と、データ長と、正規の格納位置とを格納する。先頭格納位置は、例えば当該ディスク装置42における物理アドレス(又は論理アドレス)により表される。正規の格納位置は、当該データがミラーリングの対をなすディスク装置41A及び41Bに格納される場合における論理アドレス(以下、正規のアドレスという)である。正規のアドレスは、当該ディスク装置41A及び41Bにおける物理ディスク番号(ID)と、当該物理ディスクにおける論理アドレスとを含む。
複数のデータは、当該データが当該ディスク装置42に格納される順にHSD管理テーブル36に登録される。例えば、あるデータについて見ると、その先頭格納位置はSA(d)、データ長はL(g)、その正規の格納位置は物理ディスク番号が1かつ格納位置がP(j)である。この場合、次のデータの先頭格納位置SA(e)は、直前のデータの先頭格納位置SA(d)にそのデータ長L(g)を加算したアドレスの次のアドレスとなる。従って、ディスク装置42においては、常に、直前の書込み処理のためのアクセスにおける最終アクセスヘッド位置の次の位置から、当該書き込み処理が開始される。
図4は、ディスク装置42における書込み処理を示す図である。
図4において、ディスク装置42には、複数のデータが、ブロックBa、Bb、Bc、Bd、Beに記憶されているものとする。例えば、ブロックBaのデータが、図3(B)における先頭格納位置SA(d)のデータであるとする。この場合、ディスク装置42の物理ディスク101Cのトラック111Cにおいて、ブロックBaには、データ長L(g)のデータが格納されている。ブロックBaは、例えば複数のセクタに格納され、その先頭の論理アドレスはSA(d)である。このデータの正規の格納位置は、物理ディスク番号が1であるディスク装置41Aにおける格納位置P(j)である。ブロックBb等についても、同様である。
例えば、ブロックBaのデータの書込み処理の後にブロックBbのデータが書込まれる場合、ヘッド103Cは、殆ど移動する必要が無い。従って、ディスク装置42における書込み処理のためのアクセス時間は、事実上、無視することができる。
また、例えば、ブロックBeのデータの書込み処理の後において、ブロックBaのデータを格納するディスク装置41A又は41Bについてのアクセスが無い期間(空き時間)が生じたとする。ディスク制御部34は、この空き時間を利用して、ブロックBaのデータをディスク装置42から読み出して、ディスク装置41A又は41Bにおける正規の格納位置に書込む。この場合、当該読出し処理の結果、ディスク装置42において、そのヘッド103Cの位置は、ブロックBaのデータの最後の位置となる。
そこで、ディスク制御部34は、正規の格納位置への書込み処理の後に、ヘッド103Cを、当該正規の格納位置への書込み処理の直前の状態に復帰させる。即ち、ヘッド103Cの位置は、ブロックBeのデータの最後の位置とされる。これにより、ブロックBbのデータの次のデータが書込まれる場合、ヘッド103Cは、殆ど移動する必要が無い。従って、この場合も、ディスク装置42における書込み処理のためのアクセス時間は、事実上、無視して良い。
以上により、ディスク装置42は、高速で書込み処理を行うデータバッファとして動作する。これにより、ディスク装置41A及び41Bの双方にミラーリングされるデータを書込むよりも高速で、書込み処理を行うことができる。この結果、ディスクアレイ装置2のアクセス処理の負荷を分散することができる。
図5は、ミラーリングされたデータをディスク装置41Aとディスク装置41Bから読出す処理を示す図である。
例えば、読出し処理の対象であるデータが、ディスク装置41Aにおいては、図5(A)に示すように、セクタ125Aに存在し、ディスク装置41Bにおいては、図5(B)に示すように、セクタ125Bに存在するとする。
この場合、ディスク制御部34は、ディスク装置41A又はディスク装置41Bのいずれか一方から当該データを読出し、キャッシュメモリ33に転送する。この転送後、コントローラ部3はキャッシュメモリ33から当該データをホスト装置1のHBA11へ転送する。
この時、ディスク制御部34は、ディスク管理テーブル35に基づいて、ディスク装置41A又はディスク装置41Bのいずれから当該データを読み出すかを決定する。即ち、ヘッド103A又は103Bが当該データのブロックに移動するまでの時間、即ち、ヘッドの位置決め時間(シーク時間+サーチ時間)を最短とするディスク装置41A又は41Bが選択される。
具体的には、ディスク制御部34は、ディスク管理テーブル35を参照し、ディスク装置41Aにおけるヘッド103Aの最終アクセスヘッド位置P(a)と、ヘッド103Bの最終アクセスヘッド位置P(b)を読み出す。そして、ディスク制御部4は、ヘッド103Aの最終アクセスヘッド位置P(a)と、当該データが存在するセクタ125Aの論理アドレス値とから、ヘッド103Aの位置決め時間を算出する。ディスク装置41Bにおけるヘッド103Bについても、同様に、位置決め時間を算出する。
例えば、セクタ125Aの場合、位置決め時間は、(1トラック分のヘッド移動)+(1/3回転)程度となる。一方、セクタ125Bの場合、位置決め時間は、(98トラック分のヘッド移動)+(1/4回転)程度となる。従って、セクタ125Aの移動時間の方が短い。
この計算結果に基づいて、ディスク制御部34は、ヘッド103Aの移動時間がより短い物理ディスク101A(ディスク装置41A)のセクタ125Aを選択する。従って、データは、ディスク装置41Aから読み出される。
以上により、ディスク装置41A及び41Bの一方から、ミラーリングされたデータの読出し処理を、より高速で行うことができる。この結果、ディスクアレイ装置2のアクセス処理の負荷を分散することができる。
なお、以上は、当該データがキャッシュメモリ33に存在しない場合の処理である。当該データがキャッシュメモリ33に存在する場合、当該データは、キャッシュメモリ33から読み出されて、ホスト装置1へ転送される。
以上のように、ディスク制御部34は、ディスク装置41A、ディスク装置41B、ディスク装置42についての書込み処理及び読出し処理を行う。即ち、ディスク制御部34は、書込み処理において、ディスク装置41A及びディスク装置41Bの双方が使用中でない場合に、ディスク装置41A及びディスク装置41Bのいずれかアクセス時間が短いディスク装置と、ディスク装置42とに、当該データを書込む。この書込み処理を第1の書込み処理という。
また、ディスク制御部34は、書込み処理において、ディスク装置41A及びディスク装置41Bの一方が使用中である場合に、ディスク装置41A及びディスク装置41Bの当該使用中でないディスク装置と、ディスク装置42とに、当該データを書込む。この書込み処理を第2の書込み処理という。ここで、「一方が使用中」とは、当該一方の装置が読出し処理中である場合を言い、ある書込み処理中に他の書込み処理が実行されることは無い。
ディスク制御部34は、第1又は第2の書込み処理においてディスク装置42に書込んだデータを、ディスク装置41又はディスク装置42の一方に書込む。この書込み処理を正規のアドレスへの書込み処理という。この時書き込まれるディスク装置は、当該第1又は第2の書込み処理において当該データが書込まれなかったディスク装置である。正規のアドレスへの書込み処理は、当該ディスクについての他の書込み処理及び他の読出し処理が行われていない期間に、実行される。
これにより、最終的には、書込み処理において、データは、ディスク制御部34により、ディスク装置41Aとディスク装置41Bにおける同一の論理アドレス(正規のアドレス)に書込まれる。正規のアドレスへの書込み処理の後、HSD管理テーブル36における当該データについての情報は、ディスク制御部34により削除される。
ディスク制御部34は、書込み処理によって書き込まれたデータの読出し処理において、前記第1及び第2のディスクのいずれかアクセス時間が短いディスクから当該データを読み出す。
ディスク制御部34は、ディスク管理テーブル35に格納された情報に基づいて、データ書込み要求時に、ディスク装置41Aとディスク装置41Bから、書込み対象の論理アドレスに対応する物理アクセス位置へ移動するヘッドの位置決め時間(“シーク時間+サーチ時間”とする)を最短とするディスクを判断して選択する。
そして、ディスク制御部34は、このように選択されたディスクへデータを書込む。これと共に、ディスク制御部34は、ミラーリングの対象データを、ヘッドの位置が保持され、かつ、ヘッドの移動時間が短いディスク装置42の予め定めた論理アドレスへ、予め定めた順序により一時的に書込む。この書込みの情報は、HSD管理テーブル36に記録し、格納される。この書込み終了後、ディスク装置42のヘッド位置を論理アドレスの物理位置に保持するように制御する。
以上の結果、ミラーリング時のディスク装置41Aとディスク装置41Bとに対し同時処理的に同一データを両ディスクに書込む動作に比較して、一方の書込みデータを一時的にディスク装置42に書込むことにより、ヘッドの位置決め時間を短くすることができ、ディスクアレイ装置2の書込み処理の一時的な負荷処理に対する占有時間を短縮することができる。
また、このように一時的にディスク装置42に書込んだデータは、本来のミラーリングされるディスクに対して、当該ディスクのアクセスが行われていない空き時間中に、HSD管理テーブル36に基づいて、ディスク装置42から処理データを転送し、当該ディスクの所定論理アドレスへ書込む。これにより、ディスクアレイ装置2のアクセス処理の負荷を分散することができる。
更に、ホスト装置1からのデータ読出し要求時において、コントローラ部3は、ディスク管理テーブル35に格納された情報に基づいて、ディスク装置41A又はディスク装置41Bから、読出し要求データのブロックの論理アドレスに対応する物理位置へ移動するヘッドの位置決め時間(シーク時間+サーチ時間)を最短とするディスクを判断して選択する。
当該ディスクの選択後、コントローラ部3は、選択されたディスクからデータを読出し、その読出し終了後の論理アドレスの物理位置にヘッド位置を保持するように制御する。この状態での論理アドレスを、ディスク制御部34からディスク管理テーブル35に通知し、その情報をディスク管理テーブル35が格納する。
以上により、ミラーリングされたディスクアレイ装置2において、データ読出し要求時に、ディスク装置41Aとディスク装置41Bの中でヘッドの位置決め時間を短くすることができるディスクを判断し、選択できるようにすることで、読出し処理時間を短縮することができる。
以下、図6〜図8を参照して、図1のディスクアレイ装置における書込み処理と読出し処理について説明する。
図6は、ディスクアレイ装置2における第1の書込み処理の流れを示し、図7は、ディスクアレイ装置2における第2の書込み処理の流れを示す。図8は、ディスクアレイ装置2における読出し処理の流れを示す。
図6は、ディスク装置41A、ディスク装置41Bともに使用中でない場合における第1の書込み処理(第1の書込み処理)の流れを示す説明図である。
コントローラ部3では、書込み要求を受信したチャネル制御部31からこれを通知されたCPU32がキャッシュメモリ33上に空きが存在するか否かを調べる。キャッシュメモリ33上に空きが存在した場合、CPU32によりチャネル制御部31からデータをキャッシュメモリ33上へ書込む指示が出され、この指示によりデータがキャッシュメモリ33上に書込まれる(TR11)。キャッシュメモリ33は、ディスク制御部34に対して、書込み要求のあることを通知する。この通知を受けたディスク制御部34は、ディスク格納部4の中からデータ書込み対象のディスク装置を判断し、選択する。即ち、ディスク制御部34は、前述のように、ディスク管理テーブル35を参照して、ディスク装置41Aとディスク装置41Bの中で、アクセス時間がより短い方を選択する。この場合、例えばディスク装置41Aが選択される。
次に、ディスク制御部34は、キャッシュメモリ33へ書込みデータの転送指示を出し、この後、データを受信する(TR12)。ディスク制御部34は、最初にディスク装置41Aに対して、転送されたデータを書き込む(TR13)。
この書込み終了後、ディスク制御部34は、ディスク装置42に対して、ディスク装置41Aに対して書込んだデータと同じデータを書込む処理を行う(TR14)。この際、ディスク装置42は、前述した説明のようにディスクのトラックの外周方向から順次使用される。
ディスク制御部34は、ディスク装置42にデータを書込むと同時に、HSD管理テーブル36に、書込んだデータに関して、ディスク装置42における先頭格納位置等を格納する。この後、ディスク制御部34は、ディスク装置41Bが空いている時間に、HSD管理テーブル36に基づいて、ディスク装置42から、ディスク装置41Bへ書込む(TR15)。
一方、コントローラ部3において、キャッシュメモリ33上に空きが存在しなかった場合、キャッシュメモリ33上に空きを作るために、ディスク装置41A又はディスク装置42について、処理TR12〜TR15と同様の処理を行う。即ち、キャッシュメモリ33が、例えばLRU(Least Recently Used)制御により選択したデータについて、当該ディスク装置41に当該データの書き込みを行う。これにより、キャッシュメモリ33上に空き領域ができる。そこで、この空き領域を利用して、処理TR11〜TR15を実行する。
なお、この書込み処理においても、キャッシュメモリ33から書込み要求の通知を受けたディスク制御部34は、ディスク格納部4の中からデータ書込み対象のディスク装置を判断し、ディスク管理テーブル35を参照して、ディスク装置41Aとディスク装置41Bの中で、アクセス時間がより短い方を選択する。
以上のようなミラーリングされたディスクへの書込み処理において、ディスク制御部34により、ディスク装置42のヘッドは、ヘッドの移動時間が最短(もしくは、それに近い時間)となるように制御される。これにより、通常のミラーリング正及び副のディスクに同時に書込み処理を行うよりも、書込み処理の負荷分散ができ、ホスト装置1側の書込み要求から書込み処理完了待ちの時間を短縮することができる。
具体的な例を挙げると、ハードディスク(Hard Disk Drive:HDD)におけるアクセス時間Tacsは、以下の式により求められる。即ち、Tacs=Tseek+Trot+Ttrsである。アクセス時間Tacsは、データの処理要求からデータの読出し又は書き込み処理が終了するまでの時間である。
ここで、シーク時間Tseek(平均位置決め時間)は、データを読込むために、磁気ヘッドをデータが格納されているトラックまで移動する時間である。シーク時間Tseekは、標準的なHDDにおいて、数ミリ秒のオーダであり、例えば8ミリ秒である。
サーチ時間Trot(平均回転待ち時間)は、データが格納されているセクタがヘッドに来るまでの時間である。サーチ時間Trotは、通常は1分間あたりの回転数RPM(rpm)から求められる。即ち、Trot=1/RPM×60(秒)÷2である。例えば、回転数RPMが10000(rpm)である場合、サーチ時間Trot=60(秒)/10000(回転)÷2=3(ミリ秒)となる。
データ転送時間Ttrsは、目的とするセクタのデータを読み出し又は書き込みする時間である。即ち、Ttrs=60(秒)/RPM×1/(トラック当りの平均セクタ数)である。例えば、トラック当りの平均セクタ数が1000セクタである場合、データ転送時間Ttrs=60(秒)/10000(rpm)×1/1000=0.006(ミリ秒)となる。
以上の例によれば、アクセス時間Tacs=8(ミリ秒)+3(ミリ秒)+0.006(ミリ秒)となる。以上から、アクセス時間Tacsの大部分は、シーク時間とサーチ時間に依存し、データ転送時間はほぼ無視して良いことが判る。
以上のように、第1の書込み処理の場合、ミラーリングの一方のディスクに書込むデータを、ディスク装置41Aとディスク装置41Bの中で、今回の書込みアクセス位置と最終アクセスヘッド位置の格納情報から判断する。
ディスク装置41Aとディスク装置41Bでは、外周方向、内周方向での論理アドレス割当が異なるため、最短であるヘッド位置のディスクを選択することにより、平均で、アクセス時間をTseek(平均位置決め時間)/2に短縮することができる。例えば、前述のアクセス時間Tacsの計算例で言えば、平均で、Tseek/2=8(ミリ秒)/2=4(ミリ秒)だけ、アクセス時間を削減することができる。
また、ディスクアレイ装置2によれば、ホスト装置1からの書込み要求処理時において、ミラーリングのもう一方のディスクへ書込むデータを、ディスク装置42に書込む処理により、ディスク装置42の保持ヘッド位置の論理アドレスに書込むため、前述の(a)シーク時間と(b)サーチ時間を無くすことができる。これにより、前述のアクセス時間Tacsの計算例で言えば、Tseek+Trot=8(ミリ秒)+3(ミリ秒)=11(ミリ秒)だけ、アクセス時間を削減することができる。
以上の結果、ミラーリング時のディスク装置41Aとディスク装置41Bに対し、同時処理的に同一データを両ディスクに書込む動作に比較して、一方の書込みデータを一時的にディスク装置42に書込むことにより、ディスクアレイ装置2の書込み処理の一時的な負荷処理に対する占有時間を短縮することができる。
図7は、書込み処理の際に、ディスク装置41Aが読出し処理中である場合における書込み処理(第2の書込み処理)の説明図である。
第2の書込み処理において、基本的には、第1の書込み処理における処理TR11〜TR15と同様にして、処理TR21〜TR25が実行される。この場合、処理TR23において、前述のように、ディスク装置41Aが使用中であるので、ディスク装置41Bに当該データが書込まれる。
以上により、前述のアクセス時間Tacsの計算例で言えば、平均で、Tseek+Trot=8(ミリ秒)+3(ミリ秒)=11(ミリ秒)だけ、アクセス時間を削減することができる。
また、ディスク装置41Aにおけるアクセス時間がディスク装置41Bにおけるアクセス時間よりも短いとしても、ディスク装置41Aが選択されることは無い。使用中のディスク装置41Aが使用可能となるまで待つよりも、ディスク装置41Bに書込む方が、平均して、より早く書込み処理を終了することができる。従って、使用中のディスク装置41Aが使用可能となるまで待ってこれに当該書き込み処理を行うことは無く、また、当該選択のためにアクセス時間を算出して比較する処理を行うことも無い。これにより、ディスク制御部4における処理の負担を軽減することができる。
図8は、ディスク読出し処理要求があった時の読出し処理の動作説明の図である。
ホスト装置1からディスクアレイ装置2に対してデータ読出し要求が発生すると、コントローラ部3において、読出し要求を受信したチャネル制御部31からこれを通知されたCPU32がキャッシュメモリ33上に空きが存在するか否かを調べる。存在する(キャッシュヒットした)場合、CPU32によりデータをキャッシュメモリ33からチャネル制御部31へ読み出す指示が出され、この指示によりデータがチャネル制御部31に読み出される。このデータは、チャネル制御部31から、ホスト装置1のHBA11に転送される。
一方、コントローラ部3において、キャッシュメモリ33上にデータが存在しない(キャッシュヒットしない)場合、CPU32によりディスク制御部34にデータを読み出す指示が出される。これに応じて、ディスク制御部34は、ディスク装置41A又はディスク装置41Bのいずれかを選択し、選択したディスク装置(例えば、ディスク装置41A)からデータを読出す(TR31)。次に、ディスク制御部34からキャッシュメモリ33にデータが転送され(TR32)、この後、キャッシュメモリ33からチャネル制御部31を介して(TR33)、ホスト装置1側へ転送される。
ここで、処理TR31においてディスク装置41は、以下のように選択される。例えば、ディスク制御部34は、HSD管理テーブル36を参照して、当該データがディスク装置42に格納されているか否かを調べる。ディスク装置42に格納されていない場合、ディスク制御部34は、図5を参照して前述したように、読出し処理時間の短い方のディスク装置4141A又はディスク装置41Bのいずれかを選択する。一方、ディスク装置42に格納されている場合、ディスク制御部34は、HSD管理テーブル36に格納された正規のアドレスに基づいて、当該ディスク装置とミラーリングの対をなす他方のディスク装置41A又は41Bを選択する。
なお、この例では、処理TR31において、ディスク装置42は選択されない。ディスク装置42を選択すると、当該読出し処理のためにヘッドの移動が生じ、これが却って書き込み処理の時間短縮の障害となるからである。
以上により、平均で、アクセス時間をTseek(平均位置決め時間)/2に短縮することができる。例えば、前述のアクセス時間Tacsの計算例で言えば、平均で、Tseek/2=8(ミリ秒)/2=4(ミリ秒)だけ、アクセス時間を削減することができる。