(57)【要約】【課題】ミラーリングされた複数のディスクの読込み処理を高速化させるための書込み処理制御を行うディスクアレイ装置を提供する。【解決手段】ディスク格納部４は、外側から順に論理アドレスを割当てられたディスク装置４１Ａと、内側から順に論理アドレスを割当てられたディスク装置４１Ｂと、データを予め定められた順に書き込むディスク装置４２とを備える。コントローラ部３は、書き込み処理において、ディスク装置４１Ａ及びディスク装置４１Ｂが使用中でない場合に、ディスク装置４１Ａ及びディスク装置４１Ｂのアクセス時間が短い方とディスク装置４２とにデータを書込み、ディスク装置４１Ａ及びディスク装置４１Ｂの一方が使用中である場合に、ディスク装置４１Ａ及びディスク装置４１Ｂの使用中でない方とディスク装置４２とにデータを書込む。【選択図】図１
2010015347.tif 000002
【特許請求の範囲】
【請求項１】
当該ディスクの外側から順に論理アドレスを割当てられた第１のディスクと、
前記第１のディスクとミラーリングの対をなし、当該ディスクの内側から順に論理アドレスを割当てられた第２のディスクと、
前記第１及び第２のディスクに書き込むべきデータを、予め定められた順に書き込む第３のディスクと、
前記第１及び第２のディスクの双方が使用中でない場合に、前記第１及び第２のディスクのいずれかアクセス時間が短いディスクと前記第３のディスクとに当該データを書込み、前記第１及び第２のディスクの一方が使用中である場合に、前記第１及び第２のディスクの当該使用中でないディスクと前記第３のディスクとに当該データを書込むコントロール手段とを備える
ことを特徴とするディスクアレイ装置。
【請求項２】
前記コントロール手段が、前記第３のディスクに書込んだデータを、前記第１及び第２のディスクであって前記書込み処理において当該データが書込まれなかったディスクに、当該ディスクについての他の書込み処理及び他の読出し処理が行われていない期間に、書き込む
ことを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
前記コントロール手段が、前記書込み処理によって書き込まれたデータの読出し処理において、前記第１及び第２のディスクのいずれかアクセス時間が短いディスクから当該データを読み出す
ことを特徴とする請求項１記載のディスクアレイ装置。
【請求項４】
当該ディスクの外側から順に論理アドレスを割当てられた第１のディスクと、前記第１のディスクとミラーリングの対をなし、当該ディスクの内側から順に論理アドレスを割当てられた第２のディスクと、前記第１及び第２のディスクに書き込むべきデータを、予め定められた順に書き込む第３のディスクとを備えるディスクアレイ装置の制御装置であって、
前記第１及び第２のディスクの双方が使用中でない場合に、前記第１及び第２のディスクのいずれかアクセス時間が短いディスクと前記第３のディスクとに当該データを書込み、前記第１及び第２のディスクの一方が使用中である場合に、前記第１及び第２のディスクの当該使用中でないディスクと前記第３のディスクとに当該データを書込む
ことを特徴とするディスクアレイ装置の制御装置。
【請求項５】
当該ディスクの外側から順に論理アドレスを割当てられた第１のディスクと、前記第１のディスクとミラーリングの対をなし、当該ディスクの内側から順に論理アドレスを割当てられた第２のディスクと、前記第１及び第２のディスクに書き込むべきデータを、予め定められた順に書き込む第３のディスクとを備えるディスクアレイ装置の制御方法であって、
前記第１及び第２のディスクの双方が使用中でない場合に、前記第１及び第２のディスクのいずれかアクセス時間が短いディスクと前記第３のディスクとに当該データを書込み、前記第１及び第２のディスクの一方が使用中である場合に、前記第１及び第２のディスクの当該使用中でないディスクと前記第３のディスクとに当該データを書込む
ことを特徴とするディスクアレイ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置及びその制御装置並びに制御方法に関し、特に、ミラーリングされるデータの書込み処理を高速化するディスクアレイ装置及びその制御装置並びに制御方法に関する。
【背景技術】
【０００２】
近年、物理ディスクの大容量化に伴い、大量のデータが１つのディスクに格納されることが多い。これは、ビット単価の面からは好ましいが、逆に、ホストコンピュータからのＩＯ（Input/Output）処理、特にライト動作のＩＯ処理が多くなる原因となっている。例えば、ディスクアレイ装置内のキャッシュが枯渇すると物理ディスクへの書込み量が多くなるが、当該書込み処理の高速化が要求される場合には、物理ディスクの数が多い方が、個々の物理ディスクに対する負荷が分散され、書込み処理の高速化には有利となる。
【０００３】
一方、一般的に、信頼性の観点から、物理ディスクはミラーリングされることが多い。この場合、読出し処理において、データはミラーリングの対の一方のディスクからデータを読み出せばよい。しかし、書き込み処理では、ミラーリングの対をなす２個のディスクへのデータの書込みが必要なため、書込み処理の高速化が要求される。物理ディスクへの書込み処理速度は、ヘッドの機械的な動作であるヘッドの位置決め時間に大きく左右される。このため、データを書き込むべきアドレス即ちディスク内の物理アクセス位置が現在のヘッド位置から離れていた場合、ヘッド移動に時間がかかるため、処理時間が長くなってしまう。
【０００４】
なお、ミラーリングされた磁気ディスク装置のための制御機構を、トラックの物理アドレスと論理アドレスとの間の通信レコードと、各磁気ディスク装置のための変換機位置決めアームの現在位置を維持するようにして、レコードへの読取りアクセスでは、保存されたトラックから最も近い磁気ディスク装置のアームが、レコードデータをアクセスすることが知られている。
【０００５】
また、通常の動作時には、スペアディスクを冗長ディスクのコピーとして使用し、リードモディファイライト時の冗長ディスクにかかる負荷を分散することにより、ディスクアレイ装置の同時複数書込み処理の実現と高速化、及びディスクアレイ装置の信頼性を向上させることが知られている。
【０００６】
更に、アレイ型記憶装置において、パリティ記憶装置の複数パリティブロックへの同時独立アクセスを可能とすることでライト性能を改善することが知られている。
【特許文献１】特開平７−５６６８８号公報
【特許文献２】特開平７−４４３３１号公報
【特許文献３】特開平６−１８０６３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述の従来技術によれば、読取りアクセスでは、当該トラックから最も近いアームが、レコードデータをアクセスする。従って、データの読出し処理は高速化することができる。しかし、この技術によっては、ミラーリングされるデータの書込み処理は高速化することはできない。
【０００８】
また、前述の従来技術によれば、スペアディスクを冗長ディスクのコピーとして使用する。従って、冗長ディスクにかかる負荷を分散することができる。しかし、この技術によっては、負荷分散の結果として間接的には処理を高速化することはできても、データの読出し処理及び書込み処理は高速化することはできない。
【０００９】
また、前述の従来技術によれば、複数のパリティブロックへ同時に独立してアクセスすることができる。しかし、この技術によっては、パリティブロックへのライト処理は高速化することはできても、ミラーリングされるデータの読出し処理及び書込み処理は高速化することはできない。
【００１０】
本発明は、ミラーリングされるデータの書込み処理を高速化するディスクアレイ装置を提供することを目的とする。
【００１１】
また、本発明は、ミラーリングされるデータの書込み処理を高速化するディスクアレイ装置の制御装置を提供することを目的とする。
【００１２】
また、本発明は、ミラーリングされるデータの書込み処理を高速化するディスクアレイ装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
このディスクアレイ装置は、第１のディスクと、第２のディスクと、第３のディスクと、コントロール手段とを備える。第１のディスクは、当該ディスクの外側から順に論理アドレスを割当てられる。第２のディスクは、前記第１のディスクとミラーリングの対をなし、当該ディスクの内側から順に論理アドレスを割当てられる。第３のディスクは、前記第１及び第２のディスクに書き込むべきデータを、予め定められた順に書き込む。コントロール手段は、前記第１及び第２のディスクの双方が使用中でない場合に、前記第１及び第２のディスクのいずれかアクセス時間が短いディスクと前記第３のディスクとに当該データを書込み、前記第１及び第２のディスクの一方が使用中である場合に、前記第１及び第２のディスクの当該使用中でないディスクと前記第３のディスクとに当該データを書込む。
【００１４】
このディスクアレイ装置の制御装置及び制御方法は、前述の第１乃至第３のディスクを備えるディスクアレイ装置を制御する。この制御装置及び制御方法によれば、前記第１及び第２のディスクの双方が使用中でない場合に、前記第１及び第２のディスクのいずれかアクセス時間が短いディスクと前記第３のディスクとに当該データを書込み、前記第１及び第２のディスクの一方が使用中である場合に、前記第１及び第２のディスクの当該使用中でないディスクと前記第３のディスクとに当該データを書込む。
【発明の効果】
【００１５】
このディスクアレイ装置並びにその制御装置及びその制御方法によれば、第１及び第２のディスクの双方が使用中でない場合、ミラーリングされるデータは、第１及び第２のディスクのいずれかアクセス時間が短いディスクと第３のディスクとに書込まれる。第３のディスクはデータを予め定められた順に書き込むので、そのアクセス時間は極めて短い。従って、この場合のアクセス時間は、第１及び第２のディスクにおけるより短いアクセス時間に依存して定まる。また、第１及び第２のディスクの一方が使用中である場合、ミラーリングされるデータは、第１及び第２のディスクの当該使用中でないディスクと第３のディスクとに書込まれる。従って、この場合のアクセス時間は、第１及び第２のディスクのアクセス時間に依存して定まる。
【００１６】
以上の結果、ミラーリングされるデータの書込み処理におけるアクセス時間をその時点での最短の時間とすることができる。これにより、ミラーリングされるデータの書込み処理を高速化することができる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明の一実施態様であるディスクアレイ装置及びその制御装置の構成を示す図である。
【００１８】
図１において、ホスト装置１は、例えばホストコンピュータ、サーバ（サーバ装置）等からなる。ホスト装置１は、データ転送手段としてのＨＢＡ（Host Bus Adaptor）１１を備える。ＨＢＡ１１は、ディスクアレイ装置２にデータの書込みを要求し、書き込むべきデータをディスクアレイ装置２に送信する。また、ＨＢＡ１１は、ディスクアレイ装置２にデータの読出しを要求し、ディスクアレイ装置２から読み出されたデータを受信する。ＨＢＡ１１は、例えばコンピュータのＰＣＩ（Peripheral Components Interconnect）バスに従うカードアダプタ等である。
【００１９】
ディスクアレイ装置２は、コントローラ部３と、ディスク格納部４を備える。コントローラ部３は、ＨＢＡ１１からの要求に応じて、ディスク格納部４へのデータの書込み及びディスク格納部４からのデータの読出しを制御する。
【００２０】
コントローラ部３は、チャネル制御部３１、ＣＰＵ３２、キャッシュメモリ３３、ディスク制御部３４、ディスク管理テーブル３５、ホットスペアディスクデータ管理テーブル（ＨＳＤ管理テーブル）３６を備える。
【００２１】
ディスク格納部４は、複数のディスク装置４１を備える。ディスク装置４１は、データを格納するために使用される。ディスク格納部４は、データをミラーリングする。ディスク装置４１の中で、ミラーリングの対を構成する一方のディスクを「ディスク装置４１Ａ」と表し、他方のディスクを「ディスク装置４１Ｂ」と表す。ミラーリングの対を構成するディスク装置４１Ａ及びディスク装置４１Ｂは、予め定められる。
【００２２】
ディスク格納部４は、１又は複数のディスク装置４２を備える。ディスク装置４２は、予備のディスク（ホットスペアディスク）である。即ち、ディスク装置４２は、ミラーリングの対を構成せず、ディスク装置４１が故障した場合等において、当該故障したディスク装置４１に代えて使用される。
【００２３】
しかし、この例では、ディスク装置４２は、ディスク装置４１の予備ディスクとして用いられる他に、ミラーリングすべきデータを一時的に記録するためのデータバッファとして用いられる。換言すれば、予備ディスクとして用いられていないディスク装置４２が、データバッファとして用いられる。
【００２４】
ディスク装置４１及びディスク装置４２は、例えば磁気ディスク装置即ちハードディスク装置（ＨＤＤ：Hard Disk Drive）である。ディスク装置４１及びディスク装置４２は、光ディスク等の円盤型の媒体であっても良い。
【００２５】
なお、ディスク格納部４において、１個のディスク装置４１Ａ、１個のディスク装置４１Ｂ、１個のディスク装置４２を１組として、複数の組を設けるようにしても良い。また、１個のディスク装置４１Ａと１個のディスク装置４１Ｂを１組として、１組毎に又は複数の組毎に、１個のディスク装置４２を設けるようにしても良い。
【００２６】
コントローラ部３において、チャネル制御部３１は、ホスト装置１のＨＢＡ１１との間でデータ転送を実行する。即ち、チャネル制御部３１は、ＨＢＡ１１からのデータの書込み要求及び書き込むべきデータを受信し、ＣＰＵ３２に送る。また、チャネル制御部３１は、ＨＢＡ１１からのデータの読出し要求をＣＰＵ３２に送り、キャッシュメモリ３３又はディスク格納部４から読み出されたデータをＨＢＡ１１に送信する。
【００２７】
ＣＰＵ３２は、コントローラ部３を制御して、ＨＢＡ１１からデータの書込み要求及びデータの読出し要求を実行する。このために、ＣＰＵ３２は、コントローラ部３におけるデータ転送のための演算を実行し、これに基づいて、チャネル制御部３１、キャッシュメモリ３３、ディスク制御部３４の間におけるデータ転送を制御する。キャッシュメモリ３３は、チャネル制御部３１とディスク制御部３４との間でデータ転送を行う際、一時的にデータを記憶する。
【００２８】
ディスク制御部３４は、ＣＰＵ３２からの制御に従って、ディスク装置４１Ａ及びディスク装置４１Ｂ、ディスク装置４２に対するデータの読出し及び書込みを制御する。このために、ディスク制御部３４は、ディスク管理テーブル３５及びＨＳＤ管理テーブル３６を用いる。これらについては、図３等を参照して後述する。
【００２９】
図２は、図１のディスクアレイ装置におけるディスクの説明図である。
【００３０】
図２（Ａ）において、ディスク装置４１Ａは、矢印Ａで示すように、当該ディスクの外側から、論理アドレスを順に（昇順に）割当てられる。即ち、当該ディスクの外周方向から、順に、トラック及びセクタの物理位置に従って論理アドレスが割り当てられる。従って、ディスク装置４１Ａにおいて、論理アドレスの昇順は物理アドレスの昇順と一致する。このようなディスクを「ミラー正」又は第１のディスクと言うこととする。
【００３１】
図２（Ｂ）において、ディスク装置４１Ｂは、矢印Ｂで示すように、当該ディスクの内側から、論理アドレスを順に（昇順に）割当てられる。即ち、当該ディスクの内周方向から順にトラック及びセクタの物理位置に従って論理アドレスが割り当てられる。従って、ディスク装置４１Ｂにおける論理アドレスは、ディスク装置４１Ａにおける論理アドレスと逆とされる。ディスク装置４１Ｂにおいて、論理アドレスの昇順は物理アドレスの昇順と逆になる。このようなディスクを「ミラー副」又は第２のディスクと言うこととする。
【００３２】
図２（Ｃ）において、ディスク装置４２は、矢印Ｃで示すように、当該ディスクの外側から、論理アドレスを順に（昇順に）割当てられる。即ち、ディスク装置４２と同様である。しかし、データバッファとして用いられるディスク装置４２（以下、単にディスク装置４２）において、書き込むべきデータは、予め定められた順に書き込まれる。この書込みの順は、当該データのディスク装置４１におけるアドレスとは独立に、当該ディスク装置４２において定められる。例えば、書き込むべきデータは、当該ディスクにおける物理アドレスの先頭から順に書込まれる。具体的には、ディスク装置４２においては、ディスク制御部３４により、当該書込み処理の直前の書き込み処理が行われた物理アドレスに続く物理アドレスに、当該書込み処理におけるデータが書込まれる。
【００３３】
なお、図２（Ａ）は、ディスク装置４１Ａが備える複数のディスク（物理ディスク）の中の１個の物理ディスク１０１Ａのみについて示す。図２（Ｂ）は、ディスク装置４１Ｂが備える複数の物理ディスクの中の１個の物理ディスク１０１Ｂのみについて示す。図２（Ｃ）は、ディスク装置４２が備える複数の物理ディスクの中の１個の物理ディスク１０１Ｃのみについて示す。
【００３４】
また、物理ディスク１０１Ａは、ヘッド１０３Ａ、アーム１０５Ａ、トラック１１１Ａ、１１３Ａを備える。トラック１１１Ａはヘッド位置のトラックであり、トラック１１３Ａはトラック１１１Ａの次の隣接トラックである。セクタ１１５Ａは、トラック１１１Ａにおける最終アクセス時のヘッド位置のセクタである。物理ディスク１０１Ｂ及び物理ディスク１０１Ｃにおいても、同様である。
【００３５】
また、ディスク装置４１Ａにおいて、外周方向から論理アドレスが割当てられるため、トラック１１１Ａの内側の隣接トラックであるトラック１１３Ａが、論理アドレス上、トラック１１１Ａの次トラックとなる。これは、ディスク装置４２においても、同様である。一方、ディスク装置４１Ｂにおいて、内周方向から論理アドレスが割当てられるため、論理アドレス上、トラック１１１Ｂの外側の隣接トラックであるトラック１１３Ｂが、トラック１１１Ｂの次トラックとなる。
【００３６】
図３（Ａ）はディスク管理テーブル３５を示し、図３（Ｂ）はＨＳＤ管理テーブル３６を示す。
【００３７】
図３（Ａ）において、ディスク管理テーブル３５は、ディスク装置４１及び４２における物理ディスク毎に、ディスク種別と、最終アクセス時のヘッドの位置情報とを格納する。ディスク装置４１及び４２の物理ディスクは、物理ディスク番号（ＩＤ）により表される。例えば、ディスク装置４１Ａの物理ディスク１０１Ａの物理ディスク番号は「１」とされる。ディスク種別は、当該物理ディスクの属するディスク装置４１又は４２が「ミラー正」「ミラー副」「ホットスペアディスク（データバッファ）」であるかの区別である。最終アクセスヘッド位置は、当該ディスク装置４１又は４２における最後の（直前の）アクセスを実行した後のヘッド位置である。例えば、ディスク装置４１Ａの最終アクセスヘッド位置をＰ（ａ）と表すとする。
【００３８】
例えば、物理ディスク番号が「１」であるディスク装置４１Ａの物理ディスク１０１Ａにおいて、その最終アクセスヘッド位置は、図２（Ａ）において、トラック１１１Ａのセクタ１１５Ａである。そこで、セクタ１１５Ａの論理アドレス値が最終アクセスヘッド位置Ｐ（ａ）として、ディスク管理テーブル３５に格納される。物理ディスク１０１Ｂの最終アクセスヘッド位置Ｐ（ｂ）は、図２（Ｂ）におけるトラック１１１Ｂのセクタ１１５Ｂの論理アドレス値である。物理ディスク１０１Ｃの最終アクセスヘッド位置Ｐ（ｃ）は、図２（Ｃ）におけるトラック１１１Ｃのセクタ１１５Ｃの論理アドレス値である。
【００３９】
最終アクセスヘッド位置Ｐ（ａ）は、例えば、以下の処理により算出される。なお、ディスク装置４１Ｂの最終アクセスヘッド位置Ｐ（ｂ）及びディスク装置４２の最終アクセスヘッド位置Ｐ（ｃ）についても、同様である。
【００４０】
例えば、計算の簡単化のために、物理ディスクを円周方向に例えば２等分して、外側の１／２周を第１領域とし、内側の１／２周を第２領域とする。また、物理ディスク１０１Ａのトラックの数を１００とする。従って、第１領域は、最外周ｄａ（第１トラック）から物理ディスク１０１Ａの中点ｄｂの直前のトラック（第５０トラック）までである。第２領域は、物理ディスク１０１Ａの中点ｄｂの直後のトラック（第５１トラック）から最内周ｄｃ（第１００トラック）までである。第１領域におけるセクタ密度Ｘは１０００セクタ/トラックであり、第２領域におけるセクタ密度Ｙは５００セクタ/トラックであるとする。なお、以下の例は、外周から順に論理アドレスが割当てられる場合の例である。
【００４１】
このような例において、第１領域における最終アクセスヘッド位置Ｐ（ａ）は、Ｐ（ａ）＝ＬＢＡ１÷Ｘにより求まる。ここで、ＬＢＡ１は、第１領域における最終アクセスの論理ブロックアドレスＬＢＡ（Logical  Block  Address）の値である。この例では、ＬＢＡは、セクタ単位で計算されるものとする。ＬＢＡの値は、先頭トラックである第１トラックにおける先頭セクタである第１セクタを「０番地」として、セクタが１個増加する毎に、アドレスが１番地増加するものとする。
【００４２】
例えば、ＬＢＡ１＝１０００２番地の場合、最終アクセスヘッド位置Ｐ（ａ）は、１０００２（番地／セクタ）÷１０００（セクタ／トラック）＝第１０トラックの第２セクタとなる。
【００４３】
第２領域における最終アクセスヘッド位置Ｐ（ａ）は、Ｐ（ａ）＝（ＬＢＡ２−ｄｂ×Ｘ）÷Ｙ＋ｄｂにより求まる。ここで、ＬＢＡ２は、第２領域における最終アクセスの論理ブロックアドレスＬＢＡの値である。
【００４４】
例えば、ＬＢＡ１＝６００１４番地の場合、最終アクセスヘッド位置Ｐ（ａ）は、（ＬＢＡ２−５０×１０００）÷Ｙ＋５０＝（６００１４−５０×１０００）（番地／セクタ）÷５００（セクタ／トラック）＋５０（トラック）＝第７０トラックの第１４セクタとなる。
【００４５】
図３（Ｂ）において、ＨＳＤ管理テーブル３６は、当該ディスク装置４２に格納された複数のデータ毎に、その先頭格納位置と、データ長と、正規の格納位置とを格納する。先頭格納位置は、例えば当該ディスク装置４２における物理アドレス(又は論理アドレス)により表される。正規の格納位置は、当該データがミラーリングの対をなすディスク装置４１Ａ及び４１Ｂに格納される場合における論理アドレス（以下、正規のアドレスという）である。正規のアドレスは、当該ディスク装置４１Ａ及び４１Ｂにおける物理ディスク番号（ＩＤ）と、当該物理ディスクにおける論理アドレスとを含む。
【００４６】
複数のデータは、当該データが当該ディスク装置４２に格納される順にＨＳＤ管理テーブル３６に登録される。例えば、あるデータについて見ると、その先頭格納位置はＳＡ（ｄ）、データ長はＬ（ｇ）、その正規の格納位置は物理ディスク番号が１かつ格納位置がＰ（ｊ）である。この場合、次のデータの先頭格納位置ＳＡ（ｅ）は、直前のデータの先頭格納位置ＳＡ（ｄ）にそのデータ長Ｌ（ｇ）を加算したアドレスの次のアドレスとなる。従って、ディスク装置４２においては、常に、直前の書込み処理のためのアクセスにおける最終アクセスヘッド位置の次の位置から、当該書き込み処理が開始される。
【００４７】
図４は、ディスク装置４２における書込み処理を示す図である。
【００４８】
図４において、ディスク装置４２には、複数のデータが、ブロックＢａ、Ｂｂ、Ｂｃ、Ｂｄ、Ｂｅに記憶されているものとする。例えば、ブロックＢａのデータが、図３(Ｂ)における先頭格納位置ＳＡ（ｄ）のデータであるとする。この場合、ディスク装置４２の物理ディスク１０１Ｃのトラック１１１Ｃにおいて、ブロックＢａには、データ長Ｌ（ｇ）のデータが格納されている。ブロックＢａは、例えば複数のセクタに格納され、その先頭の論理アドレスはＳＡ（ｄ）である。このデータの正規の格納位置は、物理ディスク番号が１であるディスク装置４１Ａにおける格納位置Ｐ（ｊ）である。ブロックＢｂ等についても、同様である。
【００４９】
例えば、ブロックＢａのデータの書込み処理の後にブロックＢｂのデータが書込まれる場合、ヘッド１０３Ｃは、殆ど移動する必要が無い。従って、ディスク装置４２における書込み処理のためのアクセス時間は、事実上、無視することができる。
【００５０】
また、例えば、ブロックＢｅのデータの書込み処理の後において、ブロックＢａのデータを格納するディスク装置４１Ａ又は４１Ｂについてのアクセスが無い期間（空き時間）が生じたとする。ディスク制御部３４は、この空き時間を利用して、ブロックＢａのデータをディスク装置４２から読み出して、ディスク装置４１Ａ又は４１Ｂにおける正規の格納位置に書込む。この場合、当該読出し処理の結果、ディスク装置４２において、そのヘッド１０３Ｃの位置は、ブロックＢａのデータの最後の位置となる。
【００５１】
そこで、ディスク制御部３４は、正規の格納位置への書込み処理の後に、ヘッド１０３Ｃを、当該正規の格納位置への書込み処理の直前の状態に復帰させる。即ち、ヘッド１０３Ｃの位置は、ブロックＢｅのデータの最後の位置とされる。これにより、ブロックＢｂのデータの次のデータが書込まれる場合、ヘッド１０３Ｃは、殆ど移動する必要が無い。従って、この場合も、ディスク装置４２における書込み処理のためのアクセス時間は、事実上、無視して良い。
【００５２】
以上により、ディスク装置４２は、高速で書込み処理を行うデータバッファとして動作する。これにより、ディスク装置４１Ａ及び４１Ｂの双方にミラーリングされるデータを書込むよりも高速で、書込み処理を行うことができる。この結果、ディスクアレイ装置２のアクセス処理の負荷を分散することができる。
【００５３】
図５は、ミラーリングされたデータをディスク装置４１Ａとディスク装置４１Ｂから読出す処理を示す図である。
【００５４】
例えば、読出し処理の対象であるデータが、ディスク装置４１Ａにおいては、図５（Ａ）に示すように、セクタ１２５Ａに存在し、ディスク装置４１Ｂにおいては、図５（Ｂ）に示すように、セクタ１２５Ｂに存在するとする。
【００５５】
この場合、ディスク制御部３４は、ディスク装置４１Ａ又はディスク装置４１Ｂのいずれか一方から当該データを読出し、キャッシュメモリ３３に転送する。この転送後、コントローラ部３はキャッシュメモリ３３から当該データをホスト装置１のＨＢＡ１１へ転送する。
【００５６】
この時、ディスク制御部３４は、ディスク管理テーブル３５に基づいて、ディスク装置４１Ａ又はディスク装置４１Ｂのいずれから当該データを読み出すかを決定する。即ち、ヘッド１０３Ａ又は１０３Ｂが当該データのブロックに移動するまでの時間、即ち、ヘッドの位置決め時間（シーク時間＋サーチ時間）を最短とするディスク装置４１Ａ又は４１Ｂが選択される。
【００５７】
具体的には、ディスク制御部３４は、ディスク管理テーブル３５を参照し、ディスク装置４１Ａにおけるヘッド１０３Ａの最終アクセスヘッド位置Ｐ（ａ）と、ヘッド１０３Ｂの最終アクセスヘッド位置Ｐ（ｂ）を読み出す。そして、ディスク制御部４は、ヘッド１０３Ａの最終アクセスヘッド位置Ｐ（ａ）と、当該データが存在するセクタ１２５Ａの論理アドレス値とから、ヘッド１０３Ａの位置決め時間を算出する。ディスク装置４１Ｂにおけるヘッド１０３Ｂについても、同様に、位置決め時間を算出する。
【００５８】
例えば、セクタ１２５Ａの場合、位置決め時間は、（１トラック分のヘッド移動）＋（１／３回転）程度となる。一方、セクタ１２５Ｂの場合、位置決め時間は、（９８トラック分のヘッド移動）＋（１／４回転）程度となる。従って、セクタ１２５Ａの移動時間の方が短い。
【００５９】
この計算結果に基づいて、ディスク制御部３４は、ヘッド１０３Ａの移動時間がより短い物理ディスク１０１Ａ（ディスク装置４１Ａ）のセクタ１２５Ａを選択する。従って、データは、ディスク装置４１Ａから読み出される。
【００６０】
以上により、ディスク装置４１Ａ及び４１Ｂの一方から、ミラーリングされたデータの読出し処理を、より高速で行うことができる。この結果、ディスクアレイ装置２のアクセス処理の負荷を分散することができる。
【００６１】
なお、以上は、当該データがキャッシュメモリ３３に存在しない場合の処理である。当該データがキャッシュメモリ３３に存在する場合、当該データは、キャッシュメモリ３３から読み出されて、ホスト装置１へ転送される。
【００６２】
以上のように、ディスク制御部３４は、ディスク装置４１Ａ、ディスク装置４１Ｂ、ディスク装置４２についての書込み処理及び読出し処理を行う。即ち、ディスク制御部３４は、書込み処理において、ディスク装置４１Ａ及びディスク装置４１Ｂの双方が使用中でない場合に、ディスク装置４１Ａ及びディスク装置４１Ｂのいずれかアクセス時間が短いディスク装置と、ディスク装置４２とに、当該データを書込む。この書込み処理を第１の書込み処理という。
【００６３】
また、ディスク制御部３４は、書込み処理において、ディスク装置４１Ａ及びディスク装置４１Ｂの一方が使用中である場合に、ディスク装置４１Ａ及びディスク装置４１Ｂの当該使用中でないディスク装置と、ディスク装置４２とに、当該データを書込む。この書込み処理を第２の書込み処理という。ここで、「一方が使用中」とは、当該一方の装置が読出し処理中である場合を言い、ある書込み処理中に他の書込み処理が実行されることは無い。
【００６４】
ディスク制御部３４は、第１又は第２の書込み処理においてディスク装置４２に書込んだデータを、ディスク装置４１又はディスク装置４２の一方に書込む。この書込み処理を正規のアドレスへの書込み処理という。この時書き込まれるディスク装置は、当該第１又は第２の書込み処理において当該データが書込まれなかったディスク装置である。正規のアドレスへの書込み処理は、当該ディスクについての他の書込み処理及び他の読出し処理が行われていない期間に、実行される。
【００６５】
これにより、最終的には、書込み処理において、データは、ディスク制御部３４により、ディスク装置４１Ａとディスク装置４１Ｂにおける同一の論理アドレス（正規のアドレス）に書込まれる。正規のアドレスへの書込み処理の後、ＨＳＤ管理テーブル３６における当該データについての情報は、ディスク制御部３４により削除される。
【００６６】
ディスク制御部３４は、書込み処理によって書き込まれたデータの読出し処理において、前記第１及び第２のディスクのいずれかアクセス時間が短いディスクから当該データを読み出す。
【００６７】
ディスク制御部３４は、ディスク管理テーブル３５に格納された情報に基づいて、データ書込み要求時に、ディスク装置４１Ａとディスク装置４１Ｂから、書込み対象の論理アドレスに対応する物理アクセス位置へ移動するヘッドの位置決め時間（“シーク時間＋サーチ時間”とする）を最短とするディスクを判断して選択する。
【００６８】
そして、ディスク制御部３４は、このように選択されたディスクへデータを書込む。これと共に、ディスク制御部３４は、ミラーリングの対象データを、ヘッドの位置が保持され、かつ、ヘッドの移動時間が短いディスク装置４２の予め定めた論理アドレスへ、予め定めた順序により一時的に書込む。この書込みの情報は、ＨＳＤ管理テーブル３６に記録し、格納される。この書込み終了後、ディスク装置４２のヘッド位置を論理アドレスの物理位置に保持するように制御する。
【００６９】
以上の結果、ミラーリング時のディスク装置４１Ａとディスク装置４１Ｂとに対し同時処理的に同一データを両ディスクに書込む動作に比較して、一方の書込みデータを一時的にディスク装置４２に書込むことにより、ヘッドの位置決め時間を短くすることができ、ディスクアレイ装置２の書込み処理の一時的な負荷処理に対する占有時間を短縮することができる。
【００７０】
また、このように一時的にディスク装置４２に書込んだデータは、本来のミラーリングされるディスクに対して、当該ディスクのアクセスが行われていない空き時間中に、ＨＳＤ管理テーブル３６に基づいて、ディスク装置４２から処理データを転送し、当該ディスクの所定論理アドレスへ書込む。これにより、ディスクアレイ装置２のアクセス処理の負荷を分散することができる。
【００７１】
更に、ホスト装置１からのデータ読出し要求時において、コントローラ部３は、ディスク管理テーブル３５に格納された情報に基づいて、ディスク装置４１Ａ又はディスク装置４１Ｂから、読出し要求データのブロックの論理アドレスに対応する物理位置へ移動するヘッドの位置決め時間（シーク時間＋サーチ時間）を最短とするディスクを判断して選択する。
【００７２】
当該ディスクの選択後、コントローラ部３は、選択されたディスクからデータを読出し、その読出し終了後の論理アドレスの物理位置にヘッド位置を保持するように制御する。この状態での論理アドレスを、ディスク制御部３４からディスク管理テーブル３５に通知し、その情報をディスク管理テーブル３５が格納する。
【００７３】
以上により、ミラーリングされたディスクアレイ装置２において、データ読出し要求時に、ディスク装置４１Ａとディスク装置４１Ｂの中でヘッドの位置決め時間を短くすることができるディスクを判断し、選択できるようにすることで、読出し処理時間を短縮することができる。
【００７４】
以下、図６〜図８を参照して、図１のディスクアレイ装置における書込み処理と読出し処理について説明する。
【００７５】
図６は、ディスクアレイ装置２における第１の書込み処理の流れを示し、図７は、ディスクアレイ装置２における第２の書込み処理の流れを示す。図８は、ディスクアレイ装置２における読出し処理の流れを示す。
【００７６】
図６は、ディスク装置４１Ａ、ディスク装置４１Ｂともに使用中でない場合における第１の書込み処理（第１の書込み処理）の流れを示す説明図である。
【００７７】
コントローラ部３では、書込み要求を受信したチャネル制御部３１からこれを通知されたＣＰＵ３２がキャッシュメモリ３３上に空きが存在するか否かを調べる。キャッシュメモリ３３上に空きが存在した場合、ＣＰＵ３２によりチャネル制御部３１からデータをキャッシュメモリ３３上へ書込む指示が出され、この指示によりデータがキャッシュメモリ３３上に書込まれる（ＴＲ１１）。キャッシュメモリ３３は、ディスク制御部３４に対して、書込み要求のあることを通知する。この通知を受けたディスク制御部３４は、ディスク格納部４の中からデータ書込み対象のディスク装置を判断し、選択する。即ち、ディスク制御部３４は、前述のように、ディスク管理テーブル３５を参照して、ディスク装置４１Ａとディスク装置４１Ｂの中で、アクセス時間がより短い方を選択する。この場合、例えばディスク装置４１Ａが選択される。
【００７８】
次に、ディスク制御部３４は、キャッシュメモリ３３へ書込みデータの転送指示を出し、この後、データを受信する（ＴＲ１２）。ディスク制御部３４は、最初にディスク装置４１Ａに対して、転送されたデータを書き込む（ＴＲ１３）。
【００７９】
この書込み終了後、ディスク制御部３４は、ディスク装置４２に対して、ディスク装置４１Ａに対して書込んだデータと同じデータを書込む処理を行う（ＴＲ１４）。この際、ディスク装置４２は、前述した説明のようにディスクのトラックの外周方向から順次使用される。
【００８０】
ディスク制御部３４は、ディスク装置４２にデータを書込むと同時に、ＨＳＤ管理テーブル３６に、書込んだデータに関して、ディスク装置４２における先頭格納位置等を格納する。この後、ディスク制御部３４は、ディスク装置４１Ｂが空いている時間に、ＨＳＤ管理テーブル３６に基づいて、ディスク装置４２から、ディスク装置４１Ｂへ書込む（ＴＲ１５）。
【００８１】
一方、コントローラ部３において、キャッシュメモリ３３上に空きが存在しなかった場合、キャッシュメモリ３３上に空きを作るために、ディスク装置４１Ａ又はディスク装置４２について、処理ＴＲ１２〜ＴＲ１５と同様の処理を行う。即ち、キャッシュメモリ３３が、例えばＬＲＵ（Least Recently Used）制御により選択したデータについて、当該ディスク装置４１に当該データの書き込みを行う。これにより、キャッシュメモリ３３上に空き領域ができる。そこで、この空き領域を利用して、処理ＴＲ１１〜ＴＲ１５を実行する。
【００８２】
なお、この書込み処理においても、キャッシュメモリ３３から書込み要求の通知を受けたディスク制御部３４は、ディスク格納部４の中からデータ書込み対象のディスク装置を判断し、ディスク管理テーブル３５を参照して、ディスク装置４１Ａとディスク装置４１Ｂの中で、アクセス時間がより短い方を選択する。
【００８３】
以上のようなミラーリングされたディスクへの書込み処理において、ディスク制御部３４により、ディスク装置４２のヘッドは、ヘッドの移動時間が最短（もしくは、それに近い時間）となるように制御される。これにより、通常のミラーリング正及び副のディスクに同時に書込み処理を行うよりも、書込み処理の負荷分散ができ、ホスト装置１側の書込み要求から書込み処理完了待ちの時間を短縮することができる。
【００８４】
具体的な例を挙げると、ハードディスク（Hard Disk Drive：ＨＤＤ）におけるアクセス時間Ｔａｃｓは、以下の式により求められる。即ち、Ｔａｃｓ＝Ｔｓｅｅｋ＋Ｔｒｏｔ＋Ｔｔｒｓである。アクセス時間Ｔａｃｓは、データの処理要求からデータの読出し又は書き込み処理が終了するまでの時間である。
【００８５】
ここで、シーク時間Ｔｓｅｅｋ（平均位置決め時間）は、データを読込むために、磁気ヘッドをデータが格納されているトラックまで移動する時間である。シーク時間Ｔｓｅｅｋは、標準的なＨＤＤにおいて、数ミリ秒のオーダであり、例えば８ミリ秒である。
【００８６】
サーチ時間Ｔｒｏｔ（平均回転待ち時間）は、データが格納されているセクタがヘッドに来るまでの時間である。サーチ時間Ｔｒｏｔは、通常は1分間あたりの回転数ＲＰＭ（ｒｐｍ）から求められる。即ち、Ｔｒｏｔ＝１／ＲＰＭ×６０（秒）÷２である。例えば、回転数ＲＰＭが１００００（ｒｐｍ）である場合、サーチ時間Ｔｒｏｔ＝６０（秒）/１００００（回転）÷２＝３（ミリ秒）となる。
【００８７】
データ転送時間Ｔｔｒｓは、目的とするセクタのデータを読み出し又は書き込みする時間である。即ち、Ｔｔｒｓ＝６０（秒）／ＲＰＭ×１／（トラック当りの平均セクタ数）である。例えば、トラック当りの平均セクタ数が１０００セクタである場合、データ転送時間Ｔｔｒｓ＝６０（秒）／１００００（ｒｐｍ）×１／１０００＝０．００６（ミリ秒）となる。
【００８８】
以上の例によれば、アクセス時間Ｔａｃｓ＝８（ミリ秒）＋３（ミリ秒）＋０．００６（ミリ秒）となる。以上から、アクセス時間Ｔａｃｓの大部分は、シーク時間とサーチ時間に依存し、データ転送時間はほぼ無視して良いことが判る。
【００８９】
以上のように、第１の書込み処理の場合、ミラーリングの一方のディスクに書込むデータを、ディスク装置４１Ａとディスク装置４１Ｂの中で、今回の書込みアクセス位置と最終アクセスヘッド位置の格納情報から判断する。
【００９０】
ディスク装置４１Ａとディスク装置４１Ｂでは、外周方向、内周方向での論理アドレス割当が異なるため、最短であるヘッド位置のディスクを選択することにより、平均で、アクセス時間をＴｓｅｅｋ（平均位置決め時間）／２に短縮することができる。例えば、前述のアクセス時間Ｔａｃｓの計算例で言えば、平均で、Ｔｓｅｅｋ／２＝８（ミリ秒）／２＝４（ミリ秒）だけ、アクセス時間を削減することができる。
【００９１】
また、ディスクアレイ装置２によれば、ホスト装置１からの書込み要求処理時において、ミラーリングのもう一方のディスクへ書込むデータを、ディスク装置４２に書込む処理により、ディスク装置４２の保持ヘッド位置の論理アドレスに書込むため、前述の（ａ）シーク時間と（ｂ）サーチ時間を無くすことができる。これにより、前述のアクセス時間Ｔａｃｓの計算例で言えば、Ｔｓｅｅｋ＋Ｔｒｏｔ＝８（ミリ秒）＋３（ミリ秒）＝１１（ミリ秒）だけ、アクセス時間を削減することができる。
【００９２】
以上の結果、ミラーリング時のディスク装置４１Ａとディスク装置４１Ｂに対し、同時処理的に同一データを両ディスクに書込む動作に比較して、一方の書込みデータを一時的にディスク装置４２に書込むことにより、ディスクアレイ装置２の書込み処理の一時的な負荷処理に対する占有時間を短縮することができる。
【００９３】
図７は、書込み処理の際に、ディスク装置４１Ａが読出し処理中である場合における書込み処理（第２の書込み処理）の説明図である。
【００９４】
第２の書込み処理において、基本的には、第１の書込み処理における処理ＴＲ１１〜ＴＲ１５と同様にして、処理ＴＲ２１〜ＴＲ２５が実行される。この場合、処理ＴＲ２３において、前述のように、ディスク装置４１Ａが使用中であるので、ディスク装置４１Ｂに当該データが書込まれる。
【００９５】
以上により、前述のアクセス時間Ｔａｃｓの計算例で言えば、平均で、Ｔｓｅｅｋ＋Ｔｒｏｔ＝８（ミリ秒）＋３（ミリ秒）＝１１（ミリ秒）だけ、アクセス時間を削減することができる。
【００９６】
また、ディスク装置４１Ａにおけるアクセス時間がディスク装置４１Ｂにおけるアクセス時間よりも短いとしても、ディスク装置４１Ａが選択されることは無い。使用中のディスク装置４１Ａが使用可能となるまで待つよりも、ディスク装置４１Ｂに書込む方が、平均して、より早く書込み処理を終了することができる。従って、使用中のディスク装置４１Ａが使用可能となるまで待ってこれに当該書き込み処理を行うことは無く、また、当該選択のためにアクセス時間を算出して比較する処理を行うことも無い。これにより、ディスク制御部４における処理の負担を軽減することができる。
【００９７】
図８は、ディスク読出し処理要求があった時の読出し処理の動作説明の図である。
【００９８】
ホスト装置１からディスクアレイ装置２に対してデータ読出し要求が発生すると、コントローラ部３において、読出し要求を受信したチャネル制御部３１からこれを通知されたＣＰＵ３２がキャッシュメモリ３３上に空きが存在するか否かを調べる。存在する（キャッシュヒットした）場合、ＣＰＵ３２によりデータをキャッシュメモリ３３からチャネル制御部３１へ読み出す指示が出され、この指示によりデータがチャネル制御部３１に読み出される。このデータは、チャネル制御部３１から、ホスト装置１のＨＢＡ１１に転送される。
【００９９】
一方、コントローラ部３において、キャッシュメモリ３３上にデータが存在しない（キャッシュヒットしない）場合、ＣＰＵ３２によりディスク制御部３４にデータを読み出す指示が出される。これに応じて、ディスク制御部３４は、ディスク装置４１Ａ又はディスク装置４１Ｂのいずれかを選択し、選択したディスク装置（例えば、ディスク装置４１Ａ）からデータを読出す（ＴＲ３１）。次に、ディスク制御部３４からキャッシュメモリ３３にデータが転送され（ＴＲ３２）、この後、キャッシュメモリ３３からチャネル制御部３１を介して（ＴＲ３３）、ホスト装置１側へ転送される。
【０１００】
ここで、処理ＴＲ３１においてディスク装置４１は、以下のように選択される。例えば、ディスク制御部３４は、ＨＳＤ管理テーブル３６を参照して、当該データがディスク装置４２に格納されているか否かを調べる。ディスク装置４２に格納されていない場合、ディスク制御部３４は、図５を参照して前述したように、読出し処理時間の短い方のディスク装置４１４１Ａ又はディスク装置４１Ｂのいずれかを選択する。一方、ディスク装置４２に格納されている場合、ディスク制御部３４は、ＨＳＤ管理テーブル３６に格納された正規のアドレスに基づいて、当該ディスク装置とミラーリングの対をなす他方のディスク装置４１Ａ又は４１Ｂを選択する。
【０１０１】
なお、この例では、処理ＴＲ３１において、ディスク装置４２は選択されない。ディスク装置４２を選択すると、当該読出し処理のためにヘッドの移動が生じ、これが却って書き込み処理の時間短縮の障害となるからである。
【０１０２】
以上により、平均で、アクセス時間をＴｓｅｅｋ（平均位置決め時間）／２に短縮することができる。例えば、前述のアクセス時間Ｔａｃｓの計算例で言えば、平均で、Ｔｓｅｅｋ／２＝８（ミリ秒）／２＝４（ミリ秒）だけ、アクセス時間を削減することができる。
【図面の簡単な説明】
【０１０３】
【図１】ディスクアレイ装置及びその制御装置の実施態様の一例を示す図である。
【図２】ディスクのヘッド位置、トラック及び論理アドレスの関係を示す図である。
【図３】ディスク管理テーブル及びＨＳＤ管理テーブルを示す図である。
【図４】ホットスペアディスクの書込み処理を示す図である。
【図５】ミラーリングディスクの読出し処理を示す図である。
【図６】ディスクアレイ装置における第１の書込み処理の流れを示す図である。
【図７】ディスクアレイ装置における第２の書込み処理の流れを示す図である。
【図８】ディスクアレイ装置における読出し処理の流れを示す図である。
【符号の説明】
【０１０４】
１  ホスト装置
２  ディスクアレイ装置
３  コントローラ部
４  ディスク格納部
１１  ホストバスアダプター（ＨＢＡ）
３１  チャネル制御部
３２  ＣＰＵ
３３  キャッシュメモリ
３４  ディスク制御部
３５  ディスク管理テーブル
３６  ホットスペアディスクデータ管理テーブル（ＨＳＤ管理テーブル）
４１、４２  ディスク
【図１】
2010015347.tif 000003
【図２】
2010015347.tif 000004
【図３】
2010015347.tif 000005
【図４】
2010015347.tif 000006
【図５】
2010015347.tif 000007
【図６】
2010015347.tif 000008
【図７】
2010015347.tif 000009
【図８】
2010015347.tif 000010