(57)【特許請求の範囲】
【請求項１】
ミラーリング構成の複数のディスク装置に用いられるディスク選択方法であって、
故障したディスク装置に記憶されているデータと同一のデータを別のディスク装置に書き込むリビルド処理中に読み出し要求があったか否かを判定し、
リビルド処理中に読み出し要求があった場合には、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択して読み出しを行うディスク選択方法。
【請求項２】
通常の読み出し時は読み出しアドレスが基準アドレス以上か否かを判定し、その判定結果に基づいて前記複数のディスク装置を切り換えて読み出しを行い、
リビルド処理中に読み出し要求があった場合には、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択して読み出しを行う請求項１記載のディスク選択方法。
【請求項３】
前記複数のディスク装置は少なくとも２台のディスク装置からなり、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う請求項１または２記載のディスク選択方法。
【請求項４】
前記複数のディスク装置は少なくとも２台のディスク装置からなり、通常の読み出し時は読み出し要求のあったブロックアドレスが、読み出しを行う複数のブロックアドレスの平均値以上か否かにより前記２台のディスク装置の一方を選択し、リビルド処理中に読み出し要求があった場合には、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う請求項１または２記載のディスク選択方法。
【請求項５】
ミラーリング構成の複数のディスク装置に用いられるディスク選択プログラムであって、
故障したディスク装置に記憶されているデータと同一のデータを別のディスク装置に書き込むリビルド処理中に読み出し要求があったか否かを判定する処理と、
リビルド処理中に読み出し要求があった場合に、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択して読み出しを行うディスク選択処理とをコンピュータに実行させるディスク選択プログラム。
【請求項６】
前記ディスク選択処理は、通常の読み出し時は、読み出しアドレスが所定のアドレス以上か否かにより前記ディスク装置を切り換えて読み出しを行い、リビルド処理中に読み出し要求があった場合には、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択して読み出しを行う請求項６記載のディスク選択プログラム。
【請求項７】
複数のディスク装置に同一のデータが記憶されている場合に、故障したディスク装置に記憶されているデータと同一のデータを別のディスク装置に書き込むリビルド処理中に読み出し要求があったか否かを判定する判定手段と、
前記判定手段によりリビルド処理中に読み出し要求があったと判定された場合には、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択するディスク選択手段とを備えるＲＡＩＤ制御装置。
【請求項８】
前記ディスク選択手段は、通常のデータの読み出し時は、読み出しアドレスが基準アドレス以上か否かにより読み出し先のディスク装置を切り換えて読み出しを行い、リビルド処理中にデータの読み出し要求があった場合には、前記所定のブロックサイズ単位で読み出し先のディスク装置を順に切り換えて読み出しを行う請求項７記載のＲＡＩＤ制御装置。
【請求項９】
前記複数のディスク装置は少なくとも２台のディスク装置からなり、前記ディスク選択手段は、前記判定手段によりリビルド処理中に読み出し要求があったと判定された場合に、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う請求項７または８記載のＲＡＩＤ制御装置。
【請求項１０】
前記複数のディスク装置は少なくとも２台のディスク装置からなり、前記ディスク選択手段は、通常のデータの読み出し時は、読み出し要求のあったブロックアドレスが、読み出しを行う複数のブロックアドレスの平均値以上か否かにより前記２台のディスク装置の一方を選択し、前記判定手段によりリビルド処理中に読み出し要求があったと判定された場合には、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う請求項７または８記載のＲＡＩＤ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ装置に用いられるディスク選択方法、そのディスク選択プログラム、ＲＡＩＤ制御装置、ＲＡＩＤシステム及びそのディスク装置に関する。
【背景技術】
【０００２】
複数のディスク装置にデータを分散して書き込むＲＡＩＤシステム及び複数のディスク装置に同一のデータを書き込むＲＡＩＤシステムが知られている。
複数のディスク装置に同一のデータを書き込むＲＡＩＤ１レベルのＲＡＩＤシステムでは、データの読み出し時間を短縮できるように読み出し対象のディスク装置を選択する必要がある。
【０００３】
例えば、特許文献１には、ミラーリング構成のディスクアレイ装置において、アクセスアドレスの平均値を算出し、リード要求のアドレスと算出されたアドレスの平均値を比較して、いずれのディスク装置からデータを読み出すかを決めることが記載されている。
【０００４】
図８は、従来のディスク選択方法の説明図である。ミラーリングされたディスク装置２１，２２の論理ブロックアドレスＬＢＡ（Logical Block Address）の最小値を「０」、最大値をＭＡＸとする。
【０００５】
複数のリード要求のアドレスの平均値を境界ＬＢＡとしたときに、境界ＬＢＡより小さいアドレスが指定された場合にデータの読み出しが行われるディスク装置を早番担当ディスク装置２１、境界ＬＢＡ以上のアドレスが指定された場合にデータの読み出しが行われるディスク装置を遅番担当ディスク装置２２とする。
【０００６】
上記のようにリード要求のアドレスの平均値を境界ＬＢＡとし、その境界ＬＢＡを基準にして読み出し先のディスク装置を切り換えることで、それぞれのディスク装置のヘッドのシーク距離を少なくできる。
【０００７】
ところで、ＲＡＩＤ装置の中の１台のディスク装置が故障した場合、故障したディスク装置に記憶されているデータと同一のデータを別のディスク装置に複写する必要があり、これをリビルドと呼んでいる。
【０００８】
図９は、正常ディスク装置２３とリビルド先ディスク装置２４のヘッドのシーク（移動）距離の説明図である。図９は、正常ディスク装置２３が遅番担当ディスク、リビルド先ディスク装置２４が早番担当ディスクの場合を示している。
【０００９】
今、ホストコンピュータから指示された複数の読み出しアドレスの平均値である境界ＬＢＡが、ディスク装置のＬＢＡの最大値ＭＡＸと最小値０のほぼ中央のアドレスで、リビルド処理中の領域ａのアドレスがＬＢＡのＭＡＸに近い位置であるとする。
【００１０】
ホストコンピュータから要求された読み出しアドレスが、境界ＬＢＡより大きい場合には、正常ディスク装置２３からデータの読み出しが行われる。
この場合、読み出しアドレスが境界ＬＢＡよりわずかに大きいとき、リビルド処理中の領域ａから読み出しアドレスの位置までヘッドを移動させるときのシーク距離が、正常ディスク装置２３の最大シーク距離となる。
【００１１】
ホストコンピュータから要求された読み出しアドレスが境界ＬＢＡよりわずかに小さい場合には、早番担当のディスク装置であるリビルド先ディスク装置２４からデータの読み出しが行われる。
【００１２】
この場合、読み出しアドレスが境界ＬＢＡよりわずかに小さいときに、リビルド処理の領域ａから読み出しアドレスの位置までヘッドを移動させるときのシーク距離が最小シーク距離となる。また、読み出しアドレスが最小値「０」のときに、リビルド処理中の領域ａからその位置までヘッドを移動させるときのシーク距離が最大シーク距離となる。
【００１３】
上述した読み出しアドレスが境界ＬＢＡ以上か否かにより読み出し先のディスク装置を切り換えるディスク選択方法は、リビルド処理中に通常のデータの読み出しを行う場合にヘッドのシーク距離が長くなり、ホストコンピュータの読み出し要求に対する応答が遅くなるという問題点があった。
【特許文献１】特開２００２−１６３０７５号公報
【発明の開示】
【００１４】
本発明の課題は、リビルド処理中のディスク装置の応答を速めることである。
本発明は、ミラーリング構成の複数のディスク装置に用いられるディスク選択方法であって、故障したディスク装置に記憶されているデータと同一のデータを別のディスク装置に書き込むリビルド処理中に読み出し要求があったか否かを判定し、リビルド処理中に読み出し要求があった場合には、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択して読み出しを行う。
【００１５】
この発明によれば、リビルド処理中は通常の読み出し時より小さい所定のブロックサイズ単位で読み出し先のディスク装置を切り換えてデータの読み出しを行うことで各ディスク装置におけるヘッドのシーク距離の不均衡を減らすことができる。これにより、ヘッドの移動距離が大きい場合のディスク装置の応答を速めることができる。
【００１６】
上記の発明のディスク選択方法において、通常の読み出し時は読み出しアドレスが基準アドレス以上か否かを判定し、その判定結果に基づいて前記複数のディスク装置を切り換えて読み出しを行い、リビルド処理中に読み出し要求があった場合には、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択して読み出しを行う。
【００１７】
このように構成することで、通常の読み出し時は各ディスク装置のヘッドのシーク距離を少なくして読み出し要求に対する応答を速くし、リビルド処理中は、各ディスク装置のヘッドのシーク距離の不均衡を減らしてヘッドの移動距離が大きい読み出し要求に対する応答を速めることができる。
【００１８】
上記の発明のディスク選択方法において、前記複数のディスク装置は少なくとも２台のディスク装置からなり、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う。
【００１９】
このように構成することで、整数Ｎにより定まるブロックサイズ単位で読み出し先のディスク装置を切り換えることで、２台のディスク装置のヘッドのシーク距離の不均衡を減らし、ヘッドのシーク距離が大きくなる読み出し要求に対する応答を速めることができる。
【００２０】
上記の発明において、前記複数のディスク装置は少なくとも２台のディスク装置からなり、通常の読み出し時は読み出し要求のあったブロックアドレスが、読み出しを行う複数のブロックアドレスの平均値以上か否かにより前記２台のディスク装置の一方を選択し、リビルド処理中に読み出し要求があった場合には、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う。
【００２１】
このように構成することで、通常の読み出し時には、読み出しを行うブロックアドレスが平均値以上か否かにより読み出し先のディスク装置を切り換えることでデータの読み出しを均等に行いうことができる。また、リビルド処理中は、２台のディスク装置を所定のブロックサイズ単位で順に切り換えてデータの読み出しを行うことで、２台のディスク装置のヘッドのシーク距離の不均衡を減らすことができる。これにより、ＲＡＩＤ装置のデータの読み出し要求に対する応答を速めることができる。
【００２２】
上記の発明において、前記複数のディスク装置は２台のディスク装置からなり、前記ディスク装置の最大ブロック数の１／４以下の所定のブロックサイズ単位で前記２台のディスク装置を交互に選択してデータの読み出しを行う。
【００２３】
このように構成することでリビルド処理中に通常のデータの読み出し要求があった場合に、ヘッドのシーク距離が大きくなる読み出し要求が２台のディスク装置に対してほぼ均等に割り当てられるので、全体としてディスク装置の応答を速めることができる。
【００２４】
図１は、本発明のＲＡＩＤ装置の原理説明図である。図１において、ＲＡＩＤ装置は、ＲＡＩＤ制御装置５と複数のディスク装置３及び４とからなる。
複数のディスク装置に同一のデータが記憶されている場合に、ＲＡＩＤ制御装置５は、故障したディスク装置に記憶されているデータと同一のデータを別のディスク装置に書き込むリビルド処理中に読み出し要求があったか否かを判定する判定手段１と、前記判定手段１によりリビルド処理中に読み出し要求があったと判定された場合に、通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で前記複数のディスク装置を順に選択するディスク選択手段２とを備える。
【００２５】
この発明によれば、リビルド処理中は通常の読み出し時より小さい所定のブロックサイズ単位でディスク装置を切り換えてデータの読み出しを行うことで、各ディスク装置におけるヘッドのシーク距離の不均衡を減らすことができる。これにより、ヘッドの移動距離が大きい場合のディスク装置の応答を速めることができる。
【００２６】
上記のＲＡＩＤ制御装置５において、前記ディスク選択手段２は、通常のデータの読み出し時は、読み出しアドレスが基準アドレス以上か否かにより読み出し先のディスク装置を切り換えて読み出しを行い、リビルド処理中にデータの読み出し要求があった場合には、前記所定のブロックサイズ単位で読み出し先のディスク装置を順に切り換えて読み出しを行う。
【００２７】
このように構成することで、通常の読み出し時は各ディスク装置のヘッドのシーク距離を少なくして読み出し要求に対する応答を速くし、リビルド処理中は、各ディスク装置のヘッドのシーク距離の不均衡を減らしてヘッドの移動距離が大きい読み出し要求に対する応答を速めることができる。
【００２８】
上記のＲＡＩＤ制御装置５において、前記複数のディスク装置は少なくとも２台のディスク装置からなり、前記ディスク選択手段２は、前記判定手段１によりリビルド処理中に読み出し要求があったと判定された場合に、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う。
【００２９】
このように構成することで、整数Ｎにより定まるブロックサイズ単位で読み出し先のディスク装置を順に切り換えることで、２台のディスク装置のヘッドのシーク距離の不均衡を減らし、ヘッドのシーク距離が大きくなる読み出し要求に対する応答を速めることができる。
【００３０】
上記のＲＡＩＤ制御装置５において、前記複数のディスク装置は少なくとも２台のディスク装置からなり、前記ディスク選択手段２は、通常のデータの読み出し時は、読み出し要求のあったブロックアドレスが、読み出しを行う複数のブロックアドレスの平均値以上か否かにより前記２台のディスク装置の一方を選択し、前記判定手段１によりリビルド処理中に読み出し要求があったと判定された場合には、読み出し要求のあったブロックアドレスを整数Ｎで除算して得られる値が偶数か、奇数かにより前記２台のディスク装置の一方を選択してデータの読み出しを行う。
【００３１】
このように構成することで、通常の読み出し時は各ディスク装置のヘッドのシーク距離を少なくして読み出し要求に対する応答を速くし、リビルド処理中は、各ディスク装置のヘッドのシーク距離の不均衡を減らしてヘッドの移動距離が大きい読み出し要求に対する応答を速めることができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態を図面を参照して説明する。図２は、実施の形態のＲＡＩＤ１のシステム（ＲＡＩＤ装置）のシステム構成図である。
ＲＡＩＤシステムは、ホストコンピュータ１１と、ディスクアレイ制御装置（ＲＡＩＤ制御装置）１２と、少なくとも２台のディスク装置１３及び１４とからなる。
【００３３】
なお、図２のホストコンピュータ１１を除いた、ディスクアレイ制御装置１２と複数のディスク装置１３及び１４とをＲＡＩＤ装置としても良い。
ディスクアレイ制御装置１２は、ホストコンピュータ１１からの指示に従ってディスク装置１３または１４に対してデータの書き込みまたは読み出しを指示する。
【００３４】
ディスクアレイ制御装置１２は、ＣＰＵとメモリと制御プログラムなどを記憶するＲＯＭ等を有し、後述するディスク選択処理を実行する。
ディスク装置１３及び１４は、ハードディスクドライブ等からなり、それぞれＣＰＵとメモリ等を有する。
【００３５】
最初に、リビルド処理の実行中にデータの読み出し要求（リビルド処理におけるデータの読み出し要求以外のもの）があった場合のディスク選択方法について説明する。本実施の形態では、リビルド処理中に読み出し要求があった場合には、リビルド処理を実行していない通常の読み出し時に、各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で正常ディスク装置１３とリビルド先ディスク装置１４とを交互に選択して読み出しを行う。
【００３６】
図３は、リビルド処理中に、リビルド処理におけるデータの読み出し要求以外の読み出し要求があった場合に、所定のブロック数Ｎ単位で読み出し先のディスク装置を交互に選択するときの正常ディスク装置１３とリビルド先ディスク装置１４のリード担当範囲を示している。図３において、正常ディスク装置１３とリビルド先ディスク装置１４が読み出しを担当する範囲は、それぞれ所定のブロック数Ｎ単位で交互に割り当てられている。
【００３７】
例えば、読み出し要求のあったロジカルブロックアドレスＬＢＡが「０〜Ｎ−１」の範囲にあるときには、正常ディスク装置１３からデータの読み出しが行われ、ロジカルブロックアドレスＬＢＡが「Ｎ〜２Ｎ−１」の範囲にあるときには、リビルド先ディスク装置１４からデータの読み出しが行われる。また、ロジカルブロックアドレスＬＢＡが「２Ｎ〜３Ｎ−１」の範囲にあるときには、正常ディスク装置１３からデータの読み出しが行われる。以下、同様に、ブロック数Ｎ単位で２台のディスク装置１３及び１４に交互に読み出し担当範囲が割り当てられている。
【００３８】
次に、通常のデータ読み出し時及びリビルド処理中に読み出し要求があった場合の本発明の第１の実施の形態のディスク選択処理を、図４のフローチャートを参照して説明する。以下の処理は、ディスクアレイ制御装置１２のＣＰＵにより実行され、あるいはファームウェアにより実現される。
【００３９】
先ず、故障したディスク装置に記憶されているデータと同じデータを別のディスク装置に書き込むリビルド処理中か否かを判別する（図４、Ｓ１１）。
ステップＳ１１において、リビルド処理中ではなく、通常のデータの読み出しまたは書き込みを行う動作モードと判別された場合には、ステップ１２に進み、ホストコンピュータ１１からの読み出し要求の数が２以上か否か、すなわち、読み出し要求のしかかり数ｎが２以上か否かを判別する。
【００４０】
しかかり数ｎが２以上の場合には（Ｓ１３，ｎ≧２）、ステップ１３に進み、各ディスク装置１３及び１４でリード中のロジカルブロックアドレスＬＢＡの平均値を算出し、その平均値を境界ＬＢＡとしてメモリに保存する。なお、ディスクアレイ制御装置１２から各ディスク装置１３及び１４に出力されたロジカルブロックアドレスＬＢＡは、ディスクアレイ制御装置１２の内部のメモリに保存されている。
【００４１】
しかかり数ｎが２未満の場合には（Ｓ１２，ｎ＜２）、ステップ１４に進み、ディスク装置１３及び１４のロジカルブロックアドレスＬＢＡの中点のＬＢＡを計算により求め、その値を境界ＬＢＡとして設定する。この境界ＬＢＡは、ディスクアレイ制御装置１３のメモリ、レジスタ等に記憶する。
【００４２】
ステップ１３またはＳ１４の次には、ホストコンピュータの読み出し要求に対応するロジカルブロックアドレスＬＢＡが境界ＬＢＡ以下か否かを判別する（Ｓ１５）。
要求されたロジカルブロックアドレスＬＢＡが境界ＬＢＡ以下の場合には（Ｓ１５，要求ＬＢＡ≦境界ＬＢＡ）、ステップＳ１６に進み、境界ＬＢＡ以下のＬＢＡを担当する早番担当ディスク装置１３（Ｄｉｓｋ１）を選択してデータの読み出しを行う。
【００４３】
要求されたロジカルブロックアドレスＬＢＡが境界ＬＢＡより大きい場合には（Ｓ１５，要求ＬＢＡ＞境界ＬＢＡ）、ステップ１７に進み、遅番担当ディスク装置（Ｄｉｓｋ２）を選択してデータの読み出しを行う。
【００４４】
ステップ１１において、リビルド処理の実行中に、リビルド処理におけるデータの読み出し要求以外の読み出し要求があったと判定された場合には、図４のステップＳ１８に進み、読み出し要求のあったロジカルブロックアドレスＬＢＡを、リビルド処理を実行していない通常の読み出し時に各ディスク装置１３及び１４が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位であるブロック数Ｎ（整数）で除算して得られる値が偶数か、それとも奇数かを判定する。
【００４５】
ブロック数Ｎで除算したときの商が偶数の場合には、ステップＳ１９に進み、読み出し先のディスク装置としてディスク装置１３（Ｄｉｓｋ１）を選択する。
また、ブロック数Ｎで除算したときの商が奇数の場合には、ステップＳ２０に進み、読み出し先のディスク装置としてリビルド先ディスク装置１４（Ｄｉｓｋ２）を選択する。
【００４６】
ここで、図３を参照して上述したディスク選択処理の内容を具体的に説明する。図３において、正常ディスク装置１３とリビルド先ディスク装置１４が読み出しを担当する範囲は、所定のブロック数Ｎ単位で交互に割り当てられている。
【００４７】
図示しないディスク装置に故障が発生した場合には、故障したディスク装置と同じデータが記憶されている正常なディスク装置１３からデータを読み出し、その読み出したデータをリビルド先ディスク装置１４に複写する処理を実行する。図３において、黒く示す領域ａが現在リビルド処理中の領域であり、図３の例ではロジカルブロックアドレスＬＢＡの最大値ＭＡＸに近い位置にある。
【００４８】
リビルド処理中にホストコンピュータ１１から読み出し要求があった場合には、ディスクアレイ制御装置１２は、要求されたアドレスに対応するロジカルブロックアドレスＬＢＡを所定のブロック数Ｎで除算して得られる値が偶数か、それとも奇数かを判定する。
【００４９】
リビルド処理の実行中に読み出し要求（リビルド処理におけるデータの読み出し要求以外のもの）があり、読み出し要求のあったロジカルブロックアドレスＬＢＡをブロック数Ｎで除算して得られる値が、例えば「０」（偶数）であった場合には、読み出し先のディスク装置として正常なディスク装置１３が選択される。この場合、ロジカルブロックアドレスＬＢＡの最小値「０」からＮブロック分の領域が正常ディスク装置１３の読み出し担当範囲となる。
【００５０】
次に、別の読み出し要求のロジカルブロックアドレスＬＢＡをブロック数Ｎで除算して得られる値が、例えば「１」であった場合には、読み出し先のディスク装置としてリビルド先ディスク装置１４が選択される。この場合、ロジカルブロックアドレス「Ｎ」からＮブロック分の領域がリビルド先ディスク装置１４の読み出し担当範囲となる。
【００５１】
次に、別の読み出し要求のロジカルブロックアドレスＬＢＡをブロック数Ｎで除算して得られる値が、例えば「２」であった場合には、再び正常ディスク装置１３が読み出し先のディスク装置として選択される。この場合、ロジカルブロックアドレス「２Ｎ」からＮブロック分の領域が正常ディスク装置１３の読み出し担当範囲となる。
【００５２】
以下同様に、図３に示すように、正常ディスク装置１３とリビルド先ディスク装置１４には、Ｎブロック単位で交互に読み出し担当範囲が割り当てられ、ディスクアレイ制御装置１２は、所定のブロックサイズ単位（実施の形態ではＮブロック単位）で正常ディスク装置１３とリビルド先ディスク装置１４とを交互に読み出し先のディスク装置として選択する。
【００５３】
上述した実施の形態は、リビルド処理の実行中に読み出し要求があった場合、リビルド処理が実行されていな通常の読み出し時に各ディスク装置が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位で複数のディスク装置を順に切り換えてデータを読み出すことで、複数のディスク装置のヘッドのシーク距離の不均衡を減らすことができる。これにより、リビルド処理中の領域と離れた位置を読み出し先として指定された場合の２台のディスク装置のヘッドのシーク距離の差を少なくして、ホストコンピュータ１１の読み出し要求に対する各ディスク装置１３及び１４の応答時間を短縮することができる。また、それにより、並行して実行されるリビルド処理の終了までの時間を短くし、さらに終了までに要する最大時間を確定させることができる。
【００５４】
なお、２台のディスク装置１３及び１４を切り換えるときの基準となる所定のブロックサイズは、使用するディスク装置に応じて適宜な値を設定することができる。例えば、ディスク装置の最大ブロック数の１／４以下のブロックサイズに設定しても良い。
【００５５】
ここで、図５及び図６の説明図を参照して従来のディスク選択方法と実施の形態のディスク選択方法のヘッドのシーク距離を比較する。
従来のディスク選択方法とは、読み出しアドレスの平均値を基準にして早番担当ディスクまたは遅番担当ディスクを選択してデータの読み出しを行う方法である。
【００５６】
以下、従来のディスク選択方法における早番担当ディスク装置をＤｉｓｋ１，遅番担当ディスク装置をＤｉｓｋ２とする。また、実施の形態のディスク選択方法においては、リビルド処理の複写元ディスク装置をＤｉｓｋ２、複写先ディスク装置（リビルド先ディスク装置）をＤｉｓｋ１とする。
【００５７】
説明を簡単にするために、Ｄｉｓｋ１とＤｉｓｋ２は、ロジカルブロックアドレスＬＢＡとして「０」〜「９９」までの１００ブロック（Ｂｌｏｃｋ）分のアドレスを有するものとする。さらに、実施の形態のディスク選択方法は、リビルド時には１０ブロック単位でＤｉｓｋ１とＤｉｓｋ２を交互に切り換えるものとする。
【００５８】
最初に、ディスク全体に均等に読み出し要求アドレスが分散している場合について、従来のディスク選択方法と実施の形態のディスク選択方法のシーク距離を比較する（図５の（１）の場合）。
【００５９】
ロジカルブロックアドレスＬＢＡ、「５，１５，２５，３５，４５，５５，６５，７５，８５，９５」に対して読み出し要求があり、ロジカルブロックアドレスＬＢＡ＝９５の位置がリビルド処理中の領域であるとする。
【００６０】
この場合、従来のディスク選択方法において、境界ＬＢＡは読み出しアドレスの平均値の「５０」となるので、読み出しアドレスがＬＢＡ＝５，１５，２５，３５，４５のとき、読み出し先のディスク装置としてＤｉｓｋ１が選択され、読み出しアドレスがＬＢＡ＝５５，６５，７５，８５，９５のとき、読み出し先のディスク装置としてＤｉｓｋ２が選択される。
【００６１】
これに対して、実施の形態のディスク選択方法では、例えば、読み出しアドレスがＬＢＡ＝５のときには、５÷１０で商が「０」（偶数）となり、読み出し先のディスク装置としてＤｉｓｋ１が選択されてデータが読み出される。また、読み出しアドレスがＬＢＡ＝１５のとき、１５÷１０で商が「１」（奇数）となるので、読み出し先のディスク装置としてＤｉｓｋ２が選択されてデータが読み出される。また、ＬＢＡ＝２５のとき、２５÷１０で商が「２」となるので、読み出し先のディスク装置としてＤｉｓｋ１が選択されデータが読み出される。
【００６２】
以下、同様に、ＬＢＡをブロック数「１０」で除算したときの商が偶数のときにはＤｉｓｋ１が選択され、奇数のときにはＤｉｓｋ２が選択される。このように所定のブロックサイズ単位（例えば、１０ブロック単位）でＤｉｓｋ１とＤｉｓｋ２が読み出し先のディスク装置として交互に選択される。
【００６３】
この結果、ロジカルブロックアドレスＬＢＡが「５，２５，４５，６５，８５」のときＤｉｓｋ１が選択され、ロジカルブロックアドレスＬＢＡが「１５，３５，５５，７５，９５」のときＤｉｓｋ２が選択される。
【００６４】
図５の（１）に示すように、従来のディスク選択方法では、リビルド処理中のＬＢＡ＝９５の位置からのＤｉｓｋ１の最小シーク距離は「５０」、最大シーク距離は「９０」、平均シーク距離は「７０」となり、Ｄｉｓｋ２の最大シーク距離は「４０」、平均シーク距離は「２０」となる。
【００６５】
実施の形態のディスク選択方法では、リビルド処理中のＬＢＡ＝９５の位置からのＤｉｓｋ１の最小シーク距離は「１０」、最大シーク距離は「９０」、平均シーク距離「５０」となり、Ｄｉｓｋ２の最大シーク距離は「８０」、平均シーク距離は「４０」となる。
【００６６】
シーク距離が大きいＤｉｓｋ１に対する両者のシーク距離を比較すると、従来のディスク選択方法は、リビルド処理中の位置からの平均シーク距離が「７０」であるのに対して、実施の形態のディスク選択方法は、リビルド処理中の位置からの平均シーク距離が「５０」となっている。
【００６７】
すなわち、従来のディスク選択方法では、リビルド処理中の領域から、読み出し要求のあったデータの読み出し位置までヘッドを移動させて再び元の位置にヘッドを移動させるためには、平均して７０×２＝１４０ブロック分のヘッドの移動距離が必要があるのに対して、実施の形態のディスク選択方法では、５０×２＝１００ブロック分のヘッドの移動距離で済む。
【００６８】
従って、実施の形態のディスク選択方法は、ディスク全体に均等の読み出しアドレスが分散している場合において、Ｄｉｓｋ１のヘッドのシーク距離を少なくし、Ｄｉｓｋ１とＤｉｓｋ２のシーク距離の不均衡を減らすことができる。よって、リビルド処理中のヘッドのシーク距離が大きくなる読み出し要求に対するＤｉｓｋ１の応答時間を短縮することができる。これによりディスク装置全体としての読み出し要求に対する応答を速めることができる。
【００６９】
次に、ＬＢＡ＝０に近い位置に読み出しアドレスが集中している場合について従来のディスク選択方法と実施の形態のディスク選択方法のシーク距離を比較する（図５の（２）の場合）。
【００７０】
今、ロジカルブロックアドレスＬＢＡ、「１，４，７，１０，１３，１６，１９，２２，２５，２８」に対して読み出し要求があったとする。
この場合、従来のディスク選択方法では、境界ＬＢＡは、読み出し要求のあったＬＢＡの平均値である「１４．５」となるので、読み出しアドレスがＬＢＡ＝１，４，７，１０，１３のとき、読み出し先のディスク装置としてＤｉｓｋ１が選択され、読み出しアドレスがＬＢＡ＝１５，３５，５５，７５，９５のとき、読み出し先のディスク装置としてＤｉｓｋ２が選択される。
【００７１】
これに対して、実施の形態のディスク選択方法では、読み出しアドレスがＬＢＡ＝１、４，７、２２，２５，２８のとき、ＬＢＡの値をブロックサイズ単位である「１０」で除算した商が偶数となり、読み出し先のディスク装置としてＤｉｓｋ１が選択されてデータが読み出される。また、ＬＢＡ＝１０，１３，１６，１９のときには、ＬＢＡの値を「１０」で除算したときの商が奇数となり、読み出し先のディスク装置としてＤｉｓｋ２が選択されてデータの読み出しが行われる。
【００７２】
図５の（２）に示すように、従来のディスク選択方法では、リビルド処理中のＬＢＡ＝９５の位置からのＤｉｓｋ１の最小シーク距離は「８２」、最大シーク距離は「９４」、平均シーク距離は「８８」となり、Ｄｉｓｋ２の最小シーク距離は「６７」、最大シーク距離は「７９」、平均シーク距離は「７３」となる。
【００７３】
実施の形態のディスク選択方法では、リビルド処理中のＬＢＡ＝９５の位置からのＤｉｓｋ１の最小シーク距離は「６７」、最大シーク距離は「９４」、平均シーク距離は「８１」となり、Ｄｉｓｋ２の最小シーク距離は「７６」、最大シーク距離は「８５」、平均シーク距離は「８１」となる。
【００７４】
シーク距離が大きいＤｉｓｋ１に対する両者のシーク距離を比較すると、従来のディスク選択方法は、リビルド処理中の位置からの平均シーク距離が「８８」であるのに対して、実施の形態のディスク選択方法は、リビルド処理中の位置からの平均シーク距離が「８１」である。
【００７５】
すなわち、従来のディスク選択方法では、リビルド処理中の領域から、読み出し要求のあったデータの読み出し位置までヘッドを移動させて再び元の位置にヘッドを移動させるためには、平均して８８×２＝１７６ブロック分のヘッドの移動距離が必要があるのに対して、実施の形態のディスク選択方法では、８１×２＝１６２ブロック分のヘッドの移動距離でよい。
【００７６】
従って、リビルド処理中の領域から離れたＬＢＡ＝０に近い位置に読み出しアドレスが集中している場合でも、実施の形態のディスク選択方法は、各ディスク装置のヘッドのシーク距離の不均衡を減らし、Ｄｉｓｋ１の平均シーク距離を短くすることができる。よって、リビルド処理中のヘッドのシーク距離が大きくなる読み出し要求に対するＤｉｓｋ１の応答時間を短縮することができる。これによりディスク装置全体での応答を速めることができる。
【００７７】
次に、ＬＢＡ＝９９に近い位置に読み出しアドレスが集中している場合について従来のディスク選択方法と実施の形態のディスク選択方法のシーク距離を比較する（図６の（３）の場合）。
【００７８】
ロジカルブロックアドレスＬＢＡ、「７１，７４，７７，８０，８３，８６，８９，９２，９５，９８」に対して読み出し要求があり、ロジカルブロックアドレスＬＢＡ＝９５の位置がリビルド処理の対象領域であるとする。
【００７９】
この場合、従来のディスク選択方法では、境界ＬＢＡはそれらの平均値の「８５．３」となるので、読み出しアドレスがＬＢＡ＝７１，７４，７７，８０，８３のとき、読み出し先のディスク装置としてＤｉｓｋ１が選択され、読み出しアドレスがＬＢＡ＝８６，８９，９２，９５，９８のとき、読み出し先のディスク装置としてＤｉｓｋ２が選択される。
【００８０】
これに対して、実施の形態のディスク選択方法では、読み出しアドレスがＬＢＡ＝７１、７４，７７，９２，９５，９８のとき、ＬＢＡの値をブロック単位である「１０」で除算したときの商が奇数となり、読み出し先のディスク装置としてＤｉｓｋ２が選択されてデータが読み出される。また、ＬＢＡ＝８０，８３，８６，８９のとき、ＬＢＡの値を「１０」で除算したときの商が偶数となり、読み出し先のディスク装置としてＤｉｓｋ１が選択されてデータの読み出しが行われる。このように、１０ブロック単位でＤｉｓｋ１とＤｉｓｋ２が交互に選択されてデータの読み出しが行われる。
【００８１】
図６に示すように、従来のディスク選択方法では、リビルド処理中のＬＢＡ＝９５の位置からのＤｉｓｋ１の最大シーク距離は「２４」、平均シーク距離は「１８」となり、Ｄｉｓｋ２の最大シーク距離は「９」、平均シーク距離は「５」となる。
【００８２】
これに対して実施の形態のディスク選択方法では、リビルド処理中のＬＢＡ＝９５の位置からのＤｉｓｋ１の最大シーク距離は「１５」、平均シーク距離「１１」となり、Ｄｉｓｋ２の最大シーク距離は「２４」、平均シーク距離は「１３」となる。
【００８３】
平均シーク距離が大きい従来のディスク選択方法のＤｉｓｋ１と実施の形態のディスク選択方法のＤｉｓｋ２のシーク距離を比較すると、従来のディスク選択方法ではリビルド処理中の位置からのＤｉｓｋ１の平均シーク距離が「１８」であるのに対して、実施の形態のディスク選択方法では、リビルド処理中の位置からのＤｉｓｋ２の平均シーク距離が「１１」となる。
【００８４】
すなわち、従来のディスク選択方法では、リビルド処理中の領域から、読み出し要求のあったデータの読み出し位置までヘッドを移動させて再び元の位置にヘッドを移動させるためには、平均して１８×２＝３６ブロック分のヘッドの移動距離が必要があるのに対して、実施の形態のディスク選択方法では、１３×２＝２６ブロック分のヘッドの移動距離でよい。
【００８５】
従って、リビルド処理中の領域に近い位置に読み出しアドレスが集中している場合でも、実施の形態のディスク選択方法は、読み出し要求を多く担当するＤｉｓｋ２の平均シーク距離を従来の方法に較べて短くすることができる。よって、リビルド処理中のヘッドのシーク距離が大きくなる読み出し要求に対するディスク装置の応答時間を、従来のディスク選択方法に較べて短縮することができる。これにより、ＲＡＩＤ装置全体での読み出し要求に対する応答を速めることができる。
【００８６】
次に、図７は、本発明の第２の実施の形態のディスク選択処理のフローチャートである。この第２の実施の形態は、２台のディスク装置に割り当てられるリードの担当範囲によってはリード処理に偏りができる可能性があるので、図３のフローチャートに特定のディスク装置に負荷が集中しないようにする処理を付け加えたものである。以下の処理は、ディスクアレイ制御装置１２のＣＰＵにより実行され、あるいはファームウェアにより実現される。
【００８７】
図７のフローチャートにおいてステップＳ１１〜Ｓ１７の処理は、図４のフローチャートの対応するステップの処理と同じであるのでそれらの説明は省略する。
ステップ１１においてリビルド処理の実行中にデータの読み出し要求（リビルド処理におけるデータの読み出し要求以外のも）があったと判定された場合には、図７のステップＳ２１に進み、リビルド先ディスク装置１４（Ｄｉｓｋ２）と正常なディスク装置１３（Ｄｉｓｋ１）のしかかり数（読み出し要求数）を比較し、ディスク装置１４のしかかり数がディスク装置１３のしかかり数よりＭ以上多いか、正常なディスク装置１３のしかかり数がリビルド先ディスク装置１４のしかかり数よりＭ以上多いか、それとも両ディスク装置１３，１４のしかかり数の差がＭ−１以下かを判定する。
【００８８】
ステップ２１において、リビルド先ディスク装置１４（Ｄｉｓｋ２）のしかかり数が正常なディスク装置１３（Ｄｉｓｋ１）のしかかり数よりＭ以上多いと判定された場合、つまりリビルド先ディスク装置１４の負荷が大きい場合には、ステップＳ１９に進み、読み出し先のディスク装置として負荷の小さい正常なディスク装置１３（ディスク１）を選択する。
【００８９】
ステップＳ２１において、正常なディスク装置１３（Ｄｉｓｋ１）のしかかり数がリビルド先ディスク装置１４（Ｄｉｓｋ２）のしかかり数よりＭ以上多いと判定された場合、つまり正常なディスク装置１３の負荷が大きい場合には、ステップ２０に進み、読み出し先のディスク装置として負荷の小さいリビルド先ディスク装置１４（Ｄｉｓｋ２）を選択する。
【００９０】
ステップＳ２１において、両ディスク装置１３及び１４のしかかり数の差がＭ−１以下と判定された場合には、ステップＳ１８に進み、読み出し要求のあったロジカルブロックアドレスＬＢＡを、リビルド処理を実行していない通常の読み出し時に各ディスク装置１３及び１４が読み出しを担当するブロックサイズより小さい所定のブロックサイズ単位であるブロック数Ｎ（整数）で除算して得られる値が偶数か、それとも奇数かを判定する。
【００９１】
ブロック数Ｎで除算したときの商が偶数の場合には、上述したステップＳ１９に進み、読み出し先のディスク装置としてディスク装置１３（Ｄｉｓｋ１）を選択する。
また、ブロック数Ｎで除算したときの商が奇数の場合には、上記のステップＳ２０に進み、読み出し先のディスク装置としてリビルド先のディスク装置１４（Ｄｉｓｋ２）を選択する。
【００９２】
例えば、Ｄｉｓｋ１とＤｉｓｋ２は、ロジカルブロックアドレスＬＢＡとして「０」〜「９９」までの１００ブロック（Ｂｌｏｃｋ）分のアドレスを有するものとする。また、リビルド処理中にデータの読み出し要求があった場合には、Ｄｉｓｋ１とＤｉｓｋ２の読み出し担当範囲が１０ブロック単位で交互に切り換えるられるものとする。そして、読み出し要求のあったＬＢＡをブロック数「１０」で除算したときの商が偶数のときＤｉｓｋ１を選択し、奇数のときＤｉｓｋ２を選択し、しかかり数がＭ＝３以上で負荷の偏りがある場合には負荷の調整を行う。
【００９３】
ＬＢＡをブロック数Ｎ＝１０で除算した商にしたがってディスク装置を選択する場合で、Ｄｉｓｋ１がＬＢＡ＝３，５，７，９，２１，２３，２５，２７の読み出し要求を担当し、Ｄｉｓｋ２がＬＢＡ＝１１，１３，１５，１７，１９の読み出し要求を担当しているときに、新たにＬＢＡ＝２９の読み出し要求があったとする。この場合、両ディスク装置のしかかり数の差が「３」以上であり、ディスク１の負荷が高いので、本来であればＤｉｓｋ１が選択されべきであるがより負荷の少ないＤｉｓｋ２が選択される。この処理により各ディスク装置の読み出しの負荷をバランスさせている。
【００９４】
また、Ｄｉｓｋ１がＬＢＡ＝１，４，７，２２，２５，２８の読み出し要求を担当し、Ｄｉｓｋ２がＬＢＡ＝１０，１３，１６，１９の読み出し要求を担当しているときに、新たにＬＢＡ＝３１の読み出し要求があったとする。この場合、両ディスク装置のしかかり数の差は「１」で負荷の偏りが無いので、ＬＢＡ３１をＮ＝１０で除算した商により定まるＤｉｓｋ２が選択される。
【００９５】
上述した第２の実施の形態によれば、リビルド処理の実行中に、リビルド処理におけるデータの読み出し要求以外のデータの読み出し要求があった場合に、２台のディスク装置に負荷の偏りがあるか否かを判別し、負荷の偏りがある場合には、ＬＢＡを所定のブロック数Ｎで除算して得られる商により定まるディスク装置ではなく、より負荷の小さいディスク装置からデータを読み出すようにしている。これにより、各ディスク装置の負荷をほぼ均等にしてディスク装置の応答を速めることができる。
【００９６】
本発明によればリビルド処理中の各ディスク装置のヘッドのシーク距離の不均衡を減らして読み出し要求に対するディスク装置の応答を速めることができる。また、各ディスク装置の負荷の偏りを少なくし、かつリビルド処理中の各ディスクのヘッドのシーク距離の不均衡を減らすことができる。
【００９７】
本発明は、上述した実施の形態に限らず、例えば、以下のように構成しても良い。
（１）ディスク装置を切り換える方法は、ロジカルブロックアドレスＬＢＡを所定のブロック数で除算して得られる値が偶数か、奇数かにより決める方法に限らず、例えば、読み出しアドレスが予め各ディスク装置に割り当てられている所定のアドレス範囲に入るか否かを判断して決めても良く、ヘッドの移動距離が大きい読み出し要求を各ディスク装置にほぼ均等に割り当てることができるようなディスク選択方法であればどのような方法でも良い。
（２）本発明は、２台のディスク装置に限らず３台以上のディスク装置に対して適用することもできる。
（３）ディスク装置の選択の基準となる所定のブロックサイズ単位は固定した値ではなくアクセス条件等に応じてブロックサイズを可変できるようにしても良い。
【図面の簡単な説明】
【００９８】
【図１】発明の原理説明図である。
【図２】実施の形態のＲＡＩＤ装置を示す図である。
【図３】各ディスク装置のリード担当範囲を示す図である。
【図４】第１の実施の形態のディスク選択処理のフローチャートである。
【図５】シーク距離の説明図（１）である。
【図６】シーク距離の説明図（２）である。
【図７】第２の実施の形態のディスク選択処理のフローチャートである。
【図８】従来のディスク選択方法の説明図である。
【図９】正常ディスクとリビルド先ディスクのシーク距離の説明図である。
【図１】
0004044129.tif 000002
【図２】
0004044129.tif 000003
【図３】
0004044129.tif 000004
【図４】
0004044129.tif 000005
【図５】
0004044129.tif 000006
【図６】
0004044129.tif 000007
【図７】
0004044129.tif 000008
【図８】
0004044129.tif 000009
【図９】
0004044129.tif 000010