(57)【要約】【課題】上位装置に対する応答の遅延を回避する。【解決手段】ストレージ装置１は、複数のディスク４１を備え、複数のディスク４１毎に冗長構成であるか否かの情報を記憶する記憶部２５、２６と、記憶部に記憶された情報に基づいて、複数のディスク４１のうち、冗長構成である複数のディスク４１を特定するディスク判定部２４１と、ディスク判定部２４１によって特定された複数のディスク４１について、ヘッドが潤滑材を平滑化するスイープ動作の実行タイミングを同時期に１個のディスク４１となるように制御するスイープ実行制御部２４３とを備える。【選択図】図１
2014137829.tif 000002
【特許請求の範囲】
【請求項１】
複数の磁気ディスクドライブを備えるストレージ装置であって、
前記複数の磁気ディスクドライブ毎に冗長構成であるか否かの情報を記憶する記憶部と、
前記記憶部に記憶された情報に基づいて、前記複数の磁気ディスクドライブのうち、冗長構成である複数の磁気ディスクドライブを特定する特定部と、
前記特定部によって特定された複数の磁気ディスクドライブについて、ヘッドが潤滑材を平滑化するスイープ動作の実行タイミングを同時期に１個の磁気ディスクドライブとなるように制御する制御部と
を備えることを特徴とするストレージ装置。
【請求項２】
前記特定部は、前記複数の磁気ディスクドライブのうち、磁気ディスクドライブの実容量と使用可能な容量とを比較した結果に基づいて前記スイープ動作を実行する複数の磁気ディスクドライブの候補を決定し、決定した候補のうち、冗長構成である複数の磁気ディスクドライブを特定する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記制御部は、さらに、前記特定部によって特定された複数の磁気ディスクドライブについて、前記スイープ動作の動作間隔が一定となるように制御する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項４】
前記特定部によって特定された複数の磁気ディスクドライブについて、前記制御部によって制御された、前記スイープ動作の実行タイミングを監視し、前記スイープ動作の実行タイミングとなる期間に、前記スイープ動作があった磁気ディスクドライブに対して上位装置から読み出し要求があった場合、冗長構成の磁気ディスクドライブに対して読み出し処理を実行する処理実行部
をさらに備えることを特徴とする請求項１に記載のストレージ装置。
【請求項５】
前記処理実行部は、さらに、前記特定部によって特定された複数の磁気ディスクドライブについて、前記制御部によって制御された、前記スイープ動作の実行タイミングを監視し、前記スイープ動作の実行タイミングとなる期間に、前記スイープ動作があった磁気ディスクドライブに対して上位装置からデータの書き込み要求があった場合、予備の記憶装置に対して前記データを書き込み、前記スイープ動作の実行後に前記予備の記憶装置から前記書き込み要求のあった磁気ディスクドライブへ前記データを書き戻す
ことを特徴とする請求項４に記載のストレージ装置。
【請求項６】
前記制御部は、さらに、前記スイープ動作の実行時間に到達した磁気ディスクドライブについて、前記スイープ動作を促すコマンドを発行し、加えて、当該磁気ディスクドライブにアクセスする所定コマンドを定期的に発行し、前記スイープ動作の実行時間に到達した時点から、発行した所定コマンドに対する応答が規定値を超えた時点までの期間を前記スイープ動作の実行タイミングとなる期間とする
ことを特徴とする請求項５に記載のストレージ装置。
【請求項７】
複数の磁気ディスクドライブを備えるストレージ装置が、
前記複数の磁気ディスクドライブ毎に冗長構成であるか否かの情報に基づいて、前記複数の磁気ディスクドライブのうち、冗長構成である複数の磁気ディスクドライブを特定し、
前記特定する処理によって特定された複数の磁気ディスクドライブについて、ヘッドが潤滑材を平滑化するスイープ動作の実行タイミングを同時期に１個の磁気ディスクドライブとなるように制御する
各処理を実行することを特徴とするスイープ動作制御方法。
【請求項８】
コンピュータに、
複数の磁気ディスクドライブ毎に冗長構成であるか否かの情報に基づいて、前記複数の磁気ディスクドライブのうち、冗長構成である複数の磁気ディスクドライブを特定し、
前記特定する処理によって特定された複数の磁気ディスクドライブについて、ヘッドが潤滑材を平滑化するスイープ動作の実行タイミングを同時期に１個の磁気ディスクドライブとなるように制御する
処理を実行させることを特徴とするスイープ動作制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置などに関する。
【背景技術】
【０００２】
ストレージ装置に含まれるハードディスクドライブ（ＨＤＤ）の媒体上には、ヘッドの動作を滑らかにするための潤滑油が敷いてある。ＨＤＤの媒体へのアクセスにおいて、媒体の外側のみ或いは媒体の内側のみが使用される場合に、内側と外側との間に潤滑油の轍が発生しやすくなることが知られている。
【０００３】
轍が発生すると、ヘッドやＨＤＤの媒体のエラーが急増し、ＨＤＤの故障の原因の１つとなる。そこで、轍を発生させない機能として、ＨＤＤの内部で制御されている潤滑油スイープ機能がある。潤滑油スイープ機能とは、ＨＤＤの媒体上の潤滑油を平準化させる機能のことである。この潤滑油スイープ機能は、ＨＤＤ毎に有効または無効に設定され、有効に設定されれば、ＨＤＤの故障率を低減できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−６７８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、潤滑油スイープ機能が有効であるとき、上位装置に対する応答の遅延を回避することができない場合がある。すなわち、ＨＤＤの故障率を低減させるために、潤滑油スイープ機能を有効にすると、上位装置に対する応答の遅延を回避することができない場合がある。
【０００６】
例えば、上位装置からＨＤＤへのアクセス要求と、当該ＨＤＤ内部の潤滑油スイープ機能とが競合すると、当該ＨＤＤに対するアクセスは停止する。そして、潤滑油スイープ機能の動作が終了した後に、停止していた当該ＨＤＤへのアクセスが再開し、ＨＤＤではアクセスが完了した後に上位装置へ応答を返す。潤滑油スイープ機能の動作が未発生であるときの書き込み処理に対する応答が数ミリ秒であるのに対して、潤滑油スイープ機能の動作が発生しているときの書き込み処理に対する応答は例えば５００ミリ秒（ｍｓ）である。したがって、ＨＤＤへのアクセスと潤滑油スイープ機能とが競合すると、上位装置に対する応答の遅延を回避することができない。
【０００７】
また、複数のＨＤＤがＲＡＩＤグループを構成するストレージ装置では、同一ＲＡＩＤグループ内のＨＤＤで同時に潤滑油スイープ機能の動作が発生すると、動作中いずれのＨＤＤでもアクセスは停止するので、上位装置への応答の遅延を回避することができない。
【０００８】
１つの側面では、本発明は、上位装置に対する応答の遅延を回避することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するストレージ装置は、１つの態様において、複数の磁気ディスクドライブを備えるストレージ装置であって、前記複数の磁気ディスクドライブ毎に、冗長構成であるか否かの情報を含む構成情報を記憶する記憶部と、前記複数の磁気ディスクドライブのうち、前記記憶部に記憶された構成情報に表される冗長構成である磁気ディスクドライブについて、ヘッドが潤滑材を平滑化するスイープ動作の実行タイミングを同時期に１個の磁気ディスクドライブとなるように制御する制御部とを備える。
【発明の効果】
【００１０】
本願の開示するストレージ装置の１つの態様によれば、上位装置に対する応答の遅延を回避することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係るストレージ装置のハードウェア構成を示す図である。
【図２Ａ】図２Ａは、ディスク情報記憶部のデータ構造の一例を示す図である。
【図２Ｂ】図２Ｂは、ＲＡＩＤ情報記憶部のデータ構造の一例を示す図である。
【図３】図３は、実施例に係るスイープ動作制御を説明する図である。
【図４】図４は、実施例に係るスイープ動作時間の算出を説明する図である。
【図５】図５は、ディスク判定処理のフローチャートを示す図である。
【図６】図６は、スイープ実行制御処理（スイープ実行前処理）のフローチャートを示す図である。
【図７】図７は、スイープ実行制御処理（スイープ実行処理）のフローチャートを示す図である。
【図８】図８は、スイープ実行検知処理のフローチャートを示す図である。
【図９】図９は、アクセス制御処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するストレージ装置、スイープ動作制御方法およびスイープ動作制御プログラムの実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。以下では、ストレージ装置に本発明を適用した場合について説明する。
【実施例】
【００１３】
［実施例に係るストレージ装置の構成］
図１は、実施例に係るストレージ装置のハードウェア構成を示す図である。図１に示すように、ストレージ装置１は、複数のＣＭ（Controller  Module）２，３と複数のＤＥ（Disk  Enclosure）４とを有する。ＣＭ２，３は、互いに接続されている。また、ＣＭ２，３は、２重化され、それぞれＤＥ４と接続している。さらに、ＣＭ２，３は、それぞれサーバ９と接続する。
【００１４】
ＤＥ４は、複数のディスクドライブ（以降、「ディスク」という）４１を搭載する筐体である。複数のディスク４１は、データを冗長化するＲＡＩＤ（Redundant  Array  of  Inexpensive  Disks）グループを構成している。ＲＡＩＤグループは、例えばＲＡＩＤ１やＲＡＩＤ１＋０のＲＡＩＤレベルでグループ化されている。
【００１５】
ＣＭ２，３は、ストレージ装置１のコントローラである。さらに、ＣＭ２は、ＣＡ２１と、ＤＩ２２と、ＲＡＩＤコントロール部２３と、スイープ制御部２４と、ディスク情報記憶部２５と、ＲＡＩＤ情報記憶部２６と、ディスクアクセス部２７とを有する。なお、ＣＭ３は、ＣＭ２と同様の構成であるため、その説明を省略する。
【００１６】
ＣＡ２１は、サーバ９との接続インタフェースである。ＤＩ２２は、ＤＥ４との接続インタフェースである。
【００１７】
ＲＡＩＤコントロール部２３は、データの書き込みやデータの読み出しなど、スイープ制御部２４を介してディスク４１に対する各種処理を制御する。例えば、ＲＡＩＤコントロール部２３は、サーバ９から送信されたデータ書き込み要求をＣＡ２１から受信した場合に、データ書き込み要求をスイープ制御部２４の後述するアクセス制御部２４５に出力する。データ書き込み要求には、例えば、書き込みデータおよび書き込むディスク４１の識別子が含まれる。また、ＲＡＩＤコントロール部２３は、サーバ９から送信されたデータ読み出し要求をＣＡ２１から受信した場合に、データ読み出し要求をアクセス制御部２４５に出力する。データ読み出し要求には、例えば、データを読み出すディスク４１の識別子および読み出しデータのアドレスが含まれる。また、ＲＡＩＤコントロール部２３は、アクセス制御部２４５からアクセスされたことを示す情報を取得すると、データ書き込み要求またはデータ読み出し要求に対応するレスポンスを、ＣＡ２１を介してサーバ９に返却する。
【００１８】
スイープ制御部２４は、各ディスク４１の潤滑油スイープ機能（以降、「スイープ機能」という）を制御するとともに、ディスク４１へのアクセスを制御する。本実施例では、スイープ制御部２４は、複数のディスク４１のうち、同一ＲＡＩＤグループ内のディスク４１について、スイープ機能の動作（以降、「スイープ動作」という）の実行タイミングを同時期に１個となるように制御する。そして、スイープ制御部２４は、ディスク４１のスイープ動作とディスク４１へのアクセスが競合しないように、ディスク４１へのアクセスを制御する。
【００１９】
スイープ制御部２４は、ディスク判定部２４１、ＨＳグループ作成部２４２、スイープ実行制御部２４３、スイープ実行検知部２４４およびアクセス制御部２４５を有する。
【００２０】
ディスク判定部２４１は、ディスクのスイープ機能を制御する対象となるディスク（対象ディスク）を判定する。例えば、ディスク判定部２４１は、ＤＥ４内の各ディスク４１について、スイープ機能が搭載されているか否かを判定する。そして、ディスク判定部２４１は、スイープ機能が搭載されていると判定されたディスク４１について、轍が発生しやすいか否かを判定する。轍が発生しやすいか否かは、一例として、ディスクの使用可能な容量がディスク全体の実容量の所定の割合（例えば、１５％）未満か否かにより判定できる。これは、シーク時のヘッドの移動距離が短いと潤滑油が溜まり易くなり、轍が発生しやすくなるからである。そして、ディスク判定部２４１は、轍が発生しやすいと判定されたディスク４１について、冗長構成であるか否かを判定し、冗長構成であると判定されたディスク４１を、対象ディスクと判定する。ディスク判定部２４１による処理は、各ディスク４１の情報を記憶するディスク情報記憶部２５およびＲＡＩＤ情報記憶部２６を用いて行われる。なお、ディスク判定部２４１による処理は、例えば、ストレージ装置１の電源が投入された時点で実行されれば良い。
【００２１】
ここで、ディスク情報記憶部２５のデータ構造について、図２Ａを参照して説明する。図２Ａは、ディスク情報記憶部のデータ構造の一例を示す図である。図２Ａに示すように、ディスク情報記憶部２５は、ディスク識別子２５ａと、ＲＡＩＤグループ２５ｂと、ディスクの実容量２５ｃと、ディスクの使用可能な容量２５ｄと、対象ディスク２５ｅと、ヘッドの移動距離２５ｆと、スイープ動作時間２５ｇとを対応付けて記憶する。
【００２２】
ディスク識別子２５ａは、ディスク４１の識別子である。ＲＡＩＤグループ２５ｂは、ディスク４１が所属するＲＡＩＤグループの識別子である。例えば、ディスク判定部２４１は、このＲＡＩＤグループ２５ｂをキーとして、後述するＲＡＩＤ情報記憶部２６からＲＡＩＤレベルを取得し、取得したＲＡＩＤレベルを用いて、判定対象のディスク４１について、冗長構成であるか否かを判定すれば良い。
【００２３】
ディスクの実容量２５ｃは、ディスク４１全体の実容量である。ディスクの使用可能な容量２５ｄは、ディスク４１の実際に使用できる容量である。例えば、ディスク判定部２４１は、ディスクの実容量２５ｃとディスクの使用可能な容量２５ｄとを用いて、判定対象のディスク４１について、轍が発生しやすいか否かを判定すれば良い。すなわち、ディスク判定部２４１は、判定対象のディスク４１に対応するディスクの使用可能な容量２５ｄがディスクの実容量２５ｃの、例えば１５％未満か否かを判定し、１５％未満であれば轍が発生しやすいと判定すれば良い。
【００２４】
対象ディスク２５ｅは、スイープ機能を制御する対象となるディスク（対象ディスク）を示す。一例として、対象ディスクである場合、「○」が設定され、対象ディスクでない場合、「×」が設定される。例えば、ディスク判定部２４１は、判定の結果、スイープ機能を制御する対象となるディスクについて、対象ディスク２５ｅに「○」を設定すれば良い。
【００２５】
ヘッドの移動距離２５ｆは、シーク時のヘッドの移動可能な距離である。例えば、ディスク４１の使用可能な容量がディスクの実容量より小さい場合、ヘッドの移動距離２５ｆが最大長（ディスクの半径）より短くなる。ヘッドの移動距離２５ｆは、ディスク実容量２５ｃおよびディスクの使用可能な容量２５ｄとともに轍が発生しやすいか否かの判定に用いられる。スイープ動作時間２５ｇは、ディスク４１のスイープ動作に要する時間である。このスイープ動作時間２５ｇについては、後述する。
【００２６】
一例として、ディスク識別子２５ａが「Ａ２」である場合、ＲＡＩＤグループ２５ｂとして「＃０」、ディスクの実容量２５ｃとして「３００」ＧＢ、ディスクの使用可能な容量２５ｄとして「４５」ＧＢ、と記憶している。また、対象ディスク２５ｅとして「○」、ヘッドの移動距離２５ｆとして「１０００」トラック、スイープ動作時間２５ｇとして「１０」秒と記憶している。
【００２７】
また、ＲＡＩＤ情報記憶部２６のデータ構造について、図２Ｂを参照して説明する。図２Ｂは、ＲＡＩＤ情報記憶部のデータ構造の一例を示す図である。図２Ｂに示すように、ＲＡＩＤ情報記憶部２６は、ＲＡＩＤグループ２６ａと、ＲＡＩＤレベル２６ｂとを対応付けて記憶する。
【００２８】
ＲＡＩＤグループ２６ａは、ディスク４１が所属するＲＡＩＤグループの識別子であり、ディスク情報記憶部２５のＲＡＩＤグループ２５ｂに対応する。ＲＡＩＤレベル２６ｂは、ＲＡＩＤグループのＲＡＩＤレベルである。一例として、ＲＡＩＤグループ２６ａが「＃０」である場合、ＲＡＩＤレベル２６ｂとして「ＲＡＩＤ１＋０」と記憶している。
【００２９】
ＨＳグループ作成部２４２は、ディスク判定部２４１によって冗長構成でないと判定されたディスク４１について、ホットスペア（ＨＳ）である場合には、このＨＳを含む装置内のＨＳでＲＡＩＤグループに相当するＨＳグループを作成する。ここでいうＨＳとは、障害が発生したディスクを代替させる予備のディスクのことをいう。ＨＳグループ内のＨＳについても、ＲＡＩＤグループ内のディスク４１と同様にスイープ機能を制御する対象とするためである。
【００３０】
スイープ実行制御部２４３は、同一ＲＡＩＤグループに所属する複数のディスク４１について、スイープ機能の実行開始を制御する。スイープ実行制御部２４３には、「スイープ実行前処理」と「スイープ実行処理」とがある。
【００３１】
「スイープ実行前処理」として、スイープ実行制御部２４３は、同一ＲＡＩＤグループに所属する複数のディスク４１に対して、順次発行するスイープ動作を促す指示（スイープＯＮコマンド）の発行間隔を平均化するように算出する。例えば、スイープ実行制御部２４３は、ディスク情報記憶部２５に記憶された対象ディスク２５ｅを用いて、同一ＲＡＩＤグループに所属する対象ディスクの数を検索する。そして、スイープ実行制御部２４３は、検索された対象ディスクの数を、１ディスク４１であればスイープ機能が実行される間隔（Ｎ）で除算する。そして、スイープ実行制御部２４３は、除算して得られた値をスイープＯＮコマンドの発行間隔とする。仮にＮが６００秒（１０分）であり、対象ディスクの数が２であれば、スイープＯＮコマンドの発行間隔は５分間隔となる。なお、Ｎは、ディスク４１の故障率低減のため１０分であることが望ましいが、これに限定されず、Ｎは１秒から６５５３５秒までの間で可変に設定される。
【００３２】
また、「スイープ実行処理」として、スイープ実行制御部２４３は、算出したスイープＯＮコマンドの発行間隔を用いて、同一ＲＡＩＤグループに所属する対象ディスクに対してスイープ動作の実行時間を制御する。例えば、スイープ実行制御部２４３は、スイープＯＮコマンドの発行間隔を用いて、各対象ディスクについて、スイープ実行時間に到達したか否かを判定する。そして、スイープ実行制御部２４３は、スイープ実行時間に到達したと判定した対象ディスクに対して、スイープＯＮコマンドを発行する。
【００３３】
これにより、スイープ実行制御部２４３は、スイープＯＮコマンドの発行間隔を用いて、複数のディスク４１に対して順次スイープＯＮコマンドを発行することができるので、同一ＲＡＩＤグループ内でスイープ動作中のディスク４１を１台だけに制御できる。
【００３４】
スイープ実行検知部２４４は、スイープＯＮコマンドが発行された対象ディスクについて、スイープ動作が実際に実行されたことを検知する。すなわち、対象ディスクでは、スイープＯＮコマンドが発行されても、直ぐに、スイープ動作が実際に実行されるとは限らない。そこで、スイープ実行検知部２４４は、スイープＯＮコマンドが発行された後、スイープ動作が実際に実行されたことを検知する。
【００３５】
例えば、スイープ実行検知部２４４は、スイープＯＮコマンドが発行された対象ディスクについて、当該対象ディスクにアクセスする所定コマンドを定期的に発行する。そして、スイープ実行検知部２４４は、所定コマンドを発行してからレスポンスが返ってくるまでのレスポンス時間が規定値を超えたか否かを判定する。すなわち、スイープ動作が実際に実行されていなければ、所定コマンドを発行してからレスポンスが返ってくるまでのレスポンス時間は規定値を超えないのに対して、スイープ動作が実行されていれば、当該レスポンス時間は規定値を超える。そして、スイープ実行検知部２４４は、レスポンス時間が規定値を超えたと判定した場合、スイープ動作が実際に実行されたと判定し、スイープＯＦＦコマンドを発行し、スイープ動作の実行タイミングを示すスイープ動作時間を算出する。ここでいうスイープ動作時間とは、スイープＯＮコマンドが発行された時点からスイープＯＦＦコマンドが発行された時点までの時間を示す。すなわち、スイープ実行検知部２４４は、スイープ動作時間として、レスポンスＯＦＦコマンドが発行された時点とスイープＯＮコマンドが発行された時点との差分を算出する。一例として、所定のコマンドとして、例えば書き込みが正しく行われたかどうかを検証するベリファイ（Ｖｅｒｉｆｙ）コマンドが用いられる。Ｖｅｒｉｆｙコマンドを定期的に発行するタイミングとして、１００ミリ秒（ｍｓ）が用いられる。スイープ動作が実行されたと判定する規定値として、４００ｍｓが用いられる。なお、Ｖｅｒｉｆｙコマンドを定期的に発行するタイミングは、１００ｍｓに限定されず、スイープ動作が実行されていない場合のレスポンス時間より大きい値であれば良い。規定値は、４００ｍｓに限定されず、スイープ動作が実行されたと判定される値であれば良い。
【００３６】
また、スイープ実行検知部２４４は、算出したスイープ動作時間と過去に算出したスイープ動作時間とから計算されるスイープ動作時間の平均を、ディスク情報記憶部２５の対象ディスクに対応するスイープ動作時間２５ｇに格納する。
【００３７】
アクセス制御部２４５は、対象ディスク毎にスイープ動作時間を監視する。そして、アクセス制御部２４５は、対象ディスクのスイープ動作時間となる時間に、当該対象ディスクに対してサーバ９から読み出し要求があった場合、冗長の対象ディスクに対して読み出しを実行するように制御する。すなわち、アクセス制御部２４５は、スイープ動作とサーバ９からの読み出し要求とが競合する対象ディスクについて、冗長ディスクを用いた縮退読み出しを実行する。例えば、アクセス制御部２４５は、スイープＯＮコマンドが発行される対象ディスクを特定し、特定した対象ディスクのスイープ動作時間を監視する。対象ディスクのスイープ動作時間は、ディスク情報記憶部２５から取得される。そして、アクセス制御部２４５は、特定した対象ディスクのスイープ動作時間内にサーバ９から読み出し要求があれば、同一ＲＡＩＤグループの他の対象ディスクに対して読み出しを実行する。これにより、アクセス制御部２４５は、読み出し要求における、スイープ要因のレスポンスの遅延を回避できる。
【００３８】
また、アクセス制御部２４５は、対象ディスク毎にスイープ動作時間を監視する。そして、アクセス制御部２４５は、対象ディスクのスイープ動作時間となる時間に、当該対象ディスクに対してサーバ９から書き込み要求があった場合、ＨＳに対して書き込みを実行するように制御する。すなわち、アクセス制御部２４５は、スイープ動作とサーバ９からの書き込み要求とが競合する対象ディスクについて、未使用のＨＳがあれば当該ＨＳに対して書き込みを実行する。なお、未使用のＨＳとは、スイープが動作していないディスクであるものとする。例えば、アクセス制御部２４５は、スイープＯＮコマンドが発行される時点の対象ディスクを特定し、特定した対象ディスクのスイープ動作時間を監視する。対象ディスクのスイープ動作時間は、ディスク情報記憶部２５から取得される。そして、アクセス制御部２４５は、特定した対象ディスクのスイープ動作時間内にサーバ９から書き込み要求があれば、未使用のＨＳに対して書き込みを実行する。これにより、アクセス制御部２４５は、書き込み要求における、スイープ要因のレスポンスの遅延を回避できる。なお、アクセス制御部２４５は、スイープ動作完了後に、ＨＳから対象ディスクにデータをコピーバックし、対象ディスクへのデータを復元すれば良い。
【００３９】
ディスクアクセス部２７は、アクセス制御部２４５からの指示に基づいて、指示されたディスクに対してアクセスする。
【００４０】
次に、図３を参照して、スイープ実行制御部２４３およびスイープ実行検知部２４４によるスイープ動作制御について説明する。図３は、実施例に係るスイープ動作制御を説明する図である。なお、図３では、Ａ１〜Ａ４は、同一ＲＡＩＤグループの対象ディスクであるとする。また、スイープ機能が実行される間隔（Ｎ）は６００秒（１０分）であるとする。
【００４１】
図３に示すように、スイープ実行制御部２４３は、対象ディスクの数をスイープ機能が実行される間隔（Ｎ）で除算し、スイープＯＮコマンドの発行間隔を算出する。ここでは、Ｎが６００（秒）であり、対象ディスクの数が４であるので、スイープＯＮコマンドの発行間隔は１５０（秒）、すなわち２．５分と算出される。
【００４２】
そして、スイープ実行制御部２４３は、算出したスイープＯＮコマンドの発行間隔を用いて、同一ＲＡＩＤグループの対象ディスクＡ１〜Ａ４について、スイープ実行時間に到達したか否かを判定する。そして、スイープ実行制御部２４３は、スイープ実行時間に到達した対象ディスクに対して、スイープＯＮコマンドを発行する。ここでは、対象ディスクＡ１について、スイープ実行時間に到達したとする。すると、スイープ実行制御部２４３は、対象ディスクＡ１に対して、スイープＯＮコマンドを発行する。
【００４３】
そして、スイープ実行検知部２４４は、スイープＯＮコマンドが発行された対象ディスクＡ１について、スイープ動作が実際に実行されたと判定したとき、スイープＯＦＦコマンドを発行する。そして、スイープ実行検知部２４４は、スイープＯＮコマンドが発行された時点とスイープＯＦＦコマンドが発行された時点とを用いて、スイープ動作時間を算出する。ここでは、スイープ実行検知部２４４は、対象ディスクＡ１について、スイープ動作時間として、スイープＯＦＦコマンドが発行された時点とスイープＯＮコマンドが発行された時点との差分を算出する。かかる算出時間が、対象ディスクＡ１のスイープ動作時間として、アクセス制御部２４５で用いられる。
【００４４】
次に、図４を参照して、スイープ実行制御部２４３およびスイープ実行検知部２４４によるスイープ動作時間の算出について説明する。図４は、実施例に係るスイープ動作時間の算出を説明する図である。なお、図４では、スイープ実行制御部２４３によりスイープＯＮコマンドが発行されたディスクは、対象ディスクＡ１であるとする。
【００４５】
図４に示すように、スイープ実行検知部２４４は、スイープＯＮコマンドが発行された対象ディスクＡ１について、定期的にＶｅｒｉｆｙコマンドを発行する。そして、スイープ実行検知部２４４は、Ｖｅｒｉｆｙコマンドを発行する毎に、Ｖｅｒｉｆｙコマンドを発行してからレスポンスが返ってくるまでのレスポンス時間が規定値を超えたか否かを判定する。そして、スイープ実行検知部２４４は、レスポンス時間が規定値を超えたと判定した場合、スイープ動作が実際に実行されたと判定する。そして、スイープ実行検知部２４４は、スイープＯＦＦコマンドを発行する。ここでは、Ｖｅｒｉｆｙコマンドｖ１、ｖ２、ｖ３、ｖ４が定期的に発行されたとする。Ｖｅｒｉｆｙコマンドｖ１、ｖ２、ｖ３が発行された場合、スイープ実行検知部２４４は、レスポンス時間が規定値以下であるので、スイープ動作が実際に実行されていないと判定する。Ｖｅｒｉｆｙコマンドｖ４が発行された場合、スイープ実行検知部２４４は、レスポンス時間が規定値を超えているので、スイープ動作が実際に実行されたと判定し、スイープコマンドＯＦＦを発行する。
【００４６】
そして、スイープ実行検知部２４４は、スイープＯＦＦコマンドが発行された時点とスイープＯＮコマンドが発行された時点との差分を算出し、スイープ動作時間を求める。ここでは、スイープ実行検知部２４４は、スイープＯＦＦコマンドが発行された時点ｔ２とスイープＯＮコマンドが発行された時点ｔ１との差分を算出し、スイープ動作時間（＝ｔ２−ｔ１）を求める。
【００４７】
［ディスク判定処理のフローチャート］
次に、実施例に係るディスク判定処理について、図５を参照して説明する。図５は、ディスク判定処理のフローチャートを示す図である。なお、図５では、ストレージ装置１の電源が投入された時点とする。また、図５では、ディスク判定部２４１は、ＤＥ４内のディスク４１を１台ずつ選択し、選択したディスクについて、以下のディスク判定処理を行う。
【００４８】
まず、ディスク判定部２４１は、選択したディスク４１について、スイープ機能が搭載しているか否かを判定する（ステップＳ１１）。例えば、ディスク判定部２４１は、選択したディスク４１の型番を読み出し、読み出した型番を用いてスイープ機能が搭載しているか否かを判定する。
【００４９】
スイープ機能が搭載していないと判定した場合（ステップＳ１１；Ｎｏ）、ディスク判定部２４１は、ディスク判定処理を終了する。一方、スイープ機能が搭載していると判定した場合（ステップＳ１１；Ｙｅｓ）、ディスク判定部２４１は、シーク時のヘッドの移動距離が最大長（ディスクの半径）の半分以下であるか否かを判定する（ステップＳ１２）。これは、轍が発生しやすいか否かを判定するためである。例えば、ディスク判定部２４１は、選択したディスクに対応するシーク時のヘッドの移動距離２５ｆをディスク情報記憶部２５から読み出す。そして、ディスク判定部２４１は、読み出したヘッドの移動距離が、選択したディスクの種類から判別されるヘッドの移動距離の最大長の半分以下であるか否かを判定する。
【００５０】
シーク時のヘッドの移動距離が最大長の半分以下であると判定した場合（ステップＳ１２；Ｙｅｓ）、ディスク判定部２４１は、轍が発生しやすいと判断し、ステップＳ１４に移行する。すなわち、シーク時のヘッドの移動距離が短いと、潤滑油が溜まり易くなり、轍が発生しやすいのである。
【００５１】
一方、シーク時のヘッドの移動距離が最大長の半分以下でないと判定した場合（ステップＳ１２；Ｎｏ）、ディスク判定部２４１は、ディスクの使用可能な容量がディスク全体の実容量の１５％未満か否かを判定する（ステップＳ１３）。これは、シーク時のヘッドの移動距離が最大長の半分以下でない場合であっても、轍が発生しやすいか否かを判定するためである。例えば、ディスク判定部２４１は、選択したディスクに対応するディスクの実容量２５ｃおよびディスクの使用可能な容量２５ｄをディスク情報記憶部２５から読み出す。そして、ディスク判定部２４１は、読み出したディスクの使用可能な容量２５ｄが読み出したディスクの実容量２５ｃの１５％未満か否かを判定する。
【００５２】
ディスクの使用可能な容量がディスク全体の実容量の１５％以上であると判定した場合（ステップＳ１３；Ｎｏ）、ディスク判定部２４１は、轍が発生しにくいと判断し、ディスク判定処理を終了する。一方、ディスクの使用可能な容量がディスク全体の実容量の１５％未満であると判定した場合（ステップＳ１３；Ｙｅｓ）、ディスク判定部２４１は、轍が発生しやすいと判断し、ステップＳ１４に移行する。すなわち、シーク時のヘッドの移動距離が短いと、潤滑油が溜まり易くなり、轍が発生しやすいのである。
【００５３】
ステップＳ１４では、ディスク判定部２４１は、選択したディスクがＲＡＩＤグループに含まれているか否かを判定する（ステップＳ１４）。例えば、ディスク判定部２４１は、選択したディスクに対応するＲＡＩＤグループ２５ｂをディスク情報記憶部２５から読み出す。そして、ディスク判定部２４１は、読み出したＲＡＩＤグループに対応するＲＡＩＤレベル２６ｂをＲＡＩＤ情報記憶部２６から読み出す。そして、ディスク判定部２４１は、読み出したＲＡＩＤレベルが冗長構成のレベルであるか否かを判定する。
【００５４】
選択したディスクがＲＡＩＤグループに含まれていると判定した場合（ステップＳ１４；Ｙｅｓ）、ディスク判定部２４１は、選択したディスクを対象ディスクとしてディスク情報記憶部２５の対象ディスク２５ｅに設定する（ステップＳ１５）。例えば、ディスク判定部２４１は、選択したディスクに該当するディスク識別子２５ａの対象ディスク２５ｅに、対象ディスクであることを示す「○」を設定する。そして、ディスク判定部２４１は、ディスク判定処理を終了する。
【００５５】
一方、選択したディスクがＲＡＩＤグループに含まれていないと判定した場合（ステップＳ１４；Ｎｏ）、ＨＳグループ作成部２４２は、ディスク判定部２４１によって選択されたディスクがＨＳであるか否かを判定する（ステップＳ１６）。選択されたディスクがＨＳであると判定した場合（ステップＳ１６；Ｙｅｓ）、ＨＳグループ作成部２４２は、当該ＨＳを含む装置内のＨＳでＨＳグループを作成する（ステップＳ１７）。これは、ＨＳグループ内のＨＳについても、ＲＡＩＤグループ内のディスク４１と同様にスイープ機能を制御する対象とするためである。そして、ＨＳグループ作成部２４２は、ディスク判定処理を終了する。
【００５６】
［スイープ実行制御処理（スイープ実行前処理）のフローチャート］
次に、スイープ実行前処理におけるスイープ実行制御処理について、図６を参照して説明する。図６は、スイープ実行制御処理（スイープ実行前処理）のフローチャートを示す図である。なお、図６では、ストレージ装置１の運用直後であり、例えば、ディスク判定部２４１の処理が実行された後であれば良い。また、図６では、スイープ実行制御部２４３は、ＲＡＩＤグループを１個ずつ選択し、選択したＲＡＩＤグループについて、以下の処理を行う。
【００５７】
スイープ実行制御部２４３は、選択したＲＡＩＤグループについて、冗長性が保たれているか否かを判定する（ステップＳ２１）。そして、冗長性が保たれていないと判定した場合（ステップＳ２１；Ｎｏ）、スイープ実行制御部２４３は、選択したＲＡＩＤグループについて、スイープ実行制御処理を終了する。
【００５８】
一方、冗長性が保たれていると判定した場合（ステップＳ２１；Ｙｅｓ）、スイープ実行制御部２４３は、選択したＲＡＩＤグループに対象ディスクがあるか否かを判定する（ステップＳ２２）。例えば、スイープ実行制御部２４３は、選択したＲＡＩＤグループに対応する対象ディスク２５ｅをディスク情報記憶部２５から読み出す。そして、スイープ実行制御部２４３は、読み出した対象ディスク２５ｅに対象ディスクを示す「○」が含まれているか否かを判定する。
【００５９】
選択したＲＡＩＤグループに対象ディスクがないと判定した場合（ステップＳ２２；Ｎｏ）、スイープ実行制御部２４３は、選択したＲＡＩＤグループについて、スイープ実行制御処理を終了する。一方、選択したＲＡＩＤグループに対象ディスクがあると判定した場合（ステップＳ２２；Ｙｅｓ）、スイープ実行制御部２４３は、対象ディスクの台数を検索する（ステップＳ２３）。例えば、スイープ実行制御部２４３は、ディスク情報記憶部２５から読み出した対象ディスク２５ｅの対象ディスクを示す「○」の数を検索する。
【００６０】
そして、スイープ実行制御部２４３は、スイープＯＮの発行間隔を算出する（ステップＳ２４）。例えば、スイープ実行制御部２４３は、検索された対象ディスクの数を、１ディスクにつきスイープ機能が実行される間隔（Ｎ）で除算する。そして、スイープ実行制御部２４３は、除算して得られた値をスイープＯＮの発行間隔とする。そして、スイープ実行制御部２４３は、選択したＲＡＩＤグループについて、スイープ実行制御処理を終了する。
【００６１】
［スイープ実行制御処理（スイープ実行処理）のフローチャート］
次に、スイープ実行処理におけるスイープ実行制御処理について、図７を参照して説明する。図７は、スイープ実行制御処理（スイープ実行処理）のフローチャートを示す図である。なお、図７では、ストレージ装置１の運用中であり、例えば、スイープ実行制御部２４３のスイープ実行前処理が実行された後であれば良い。また、図７では、スイープ実行制御部２４３は、冗長性が保たれているＲＡＩＤグループに含まれるそれぞれの対象ディスクについて、以下の処理を行う。
【００６２】
スイープ実行制御部２４３は、スイープ実行前処理によって算出された、ＲＡＩＤグループに対応するスイープＯＮの発行間隔を用いて、対象ディスクについて、スイープ実行時間に到達したか否かを判定する（ステップＳ３１）。対象ディスクについて、スイープ実行時間に到達していないと判定した場合（ステップＳ３１；Ｎｏ）、スイープ実行制御部２４３は、スイープ実行時間に到達していると判定するまで、判定処理を繰り返す。
【００６３】
一方、スイープ実行時間に到達したと判定した場合（ステップＳ３１；Ｙｅｓ）、スイープ実行制御部２４３は、スイープ実行時間に到達した対象ディスクに対して、スイープＯＮコマンドを発行する（ステップＳ３２）。
【００６４】
［スイープ実行検知処理のフローチャート］
次に、スイープ実行検知処理について、図８を参照して説明する。図８は、スイープ実行検知処理のフローチャートを示す図である。なお、図８では、ストレージ装置１の運用中であるとする。また、冗長性が保たれているＲＡＩＤグループに含まれる対象ディスクのうちいずれかの対象ディスクで、スイープＯＮコマンドが発行されたとする。
【００６５】
スイープ実行検知部２４４は、スイープＯＮコマンドが発行された対象ディスクについて、定期的な間隔でＶｅｒｉｆｙコマンドを発行する（ステップＳ４１）。定期的な間隔は、例えば１００ｍｓであるが、スイープ動作が実行されていない場合のレスポンス時間より大きい値であれば良い。
【００６６】
そして、スイープ実行検知部２４４は、発行したＶｅｒｉｆｙコマンドのレスポンスが規定値を超えたか否かを判定する（ステップＳ４２）。規定値は、例えば４００ｍｓであるが、スイープ動作が実行されたと判定できる値であれば良い。発行したＶｅｒｉｆｙコマンドのレスポンスが規定値を超えたと判定した場合（ステップＳ４２；Ｙｅｓ）、スイープ実行検知部２４４は、スイープ動作が実際に実行されたと判定し、ステップＳ４４に移行する。
【００６７】
発行したＶｅｒｉｆｙコマンドのレスポンスが規定値を超えていないと判定した場合（ステップＳ４２；Ｎｏ）、スイープ実行検知部２４４は、スイープＯＮコマンドが発行されてから一定時間が経過したか否かを判定する（ステップＳ４３）。スイープＯＮコマンドが発行されてから一定時間が経過していないと判定した場合（ステップＳ４３；Ｎｏ）、スイープ実行検知部２４４は、次のＶｅｒｉｆｙコマンドを発行すべく、ステップＳ４１に移行する。
【００６８】
一方、スイープＯＮコマンドが発行されてから一定時間が経過したと判定した場合（ステップＳ４３；Ｙｅｓ）、スイープ実行検知部２４４は、レスポンスを捉えきれず、スイープ動作が既に実際に実行されたと判定し、ステップＳ４４に移行する。一定時間は、例えば１０秒であるが、スイープＯＮの発行間隔より小さい値であれば良い。
【００６９】
ステップＳ４４では、スイープ実行検知部２４４は、スイープ動作が実際に実行されたと判定されたので、スイープＯＮコマンドが発行された対象ディスクについて、スイープＯＦＦコマンドを発行する（ステップＳ４４）。
【００７０】
そして、スイープ実行検知部２４４は、スイープＯＮコマンドが発行された対象ディスクについて、スイープ動作時間を算出する（ステップＳ４５）。すなわち、スイープ実行検知部２４４は、スイープ動作の実行タイミングを示すスイープ動作時間を算出する。例えば、スイープ実行検知部２４４は、スイープ動作時間として、スイープＯＦＦコマンドが発行された時点とスイープＯＮコマンドが発行された時点との差分を算出する。
【００７１】
このとき、スイープ実行検知部２４４は、算出したスイープ動作時間と過去に算出したスイープ動作時間とから算出されるスイープ動作時間の平均を算出する。そして、スイープ実行検知部２４４は、算出したスイープ動作時間の平均を、ディスク情報記憶部２５の該当する対象ディスクに対応するスイープ動作時間２５ｇに設定する。
【００７２】
そして、アクセス制御部２４５は、スイープ動作中にＨＳへの書き込みがあったか否かを判定する（ステップＳ４６）。すなわち、アクセス制御部２４５は、スイープＯＮコマンドが発行された対象ディスクについて、スイープＯＮコマンドが発行された時点からスイープ動作時間内に、書き込み要求があってＨＳへの書き込みがあったか否かを判定する。
【００７３】
スイープ動作中にＨＳへの書き込みがあったと判定した場合（ステップＳ４６；Ｙｅｓ）、アクセス制御部２４５は、書き込みがあったデータをＨＳから該当するスイープ対象ディスクに書き戻す（ステップＳ４７）。一方、スイープ動作中にＨＳへの書き込みがなかったと判定した場合（ステップＳ４６；Ｎｏ）、アクセス制御部２４５は、スイープ実行検知処理を終了する。
【００７４】
［アクセス制御処理のフローチャート］
次に、アクセス制御処理について、図９を参照して説明する。図９は、アクセス制御処理のフローチャートを示す図である。なお、図９では、ストレージ装置１の運用中であるとする。また、図９で示されるＲＡＩＤグループとは、冗長性が保たれているＲＡＩＤグループを指すものとする。また、ここでは、ＨＳは１台であるとする。
【００７５】
アクセス制御部２４５は、サーバ９からアクセス要求を受け取ったか否かを判定する（ステップＳ５１）。サーバ９からアクセス要求を受け取っていないと判定した場合（ステップＳ５１；Ｎｏ）、アクセス制御部２４５は、アクセス要求を受け取るまで判定処理を繰り返す。一方、サーバ９からアクセス要求を受け取ったと判定した場合（ステップＳ５１；Ｙｅｓ）、アクセス制御部２４５は、アクセス要求がされたディスクを含むＲＡＩＤグループでスイープを実行しているか否かを判定する（ステップＳ５２）。
【００７６】
アクセス要求がされたディスクを含むＲＡＩＤグループでスイープを実行していないと判定した場合（ステップＳ５２；Ｎｏ）、アクセス制御部２４５は、通常のアクセスをすべく、ステップＳ５５に移行する。一方、アクセス要求がされたディスクを含むＲＡＩＤグループでスイープを実行していると判定した場合（ステップＳ５２；Ｙｅｓ）、アクセス制御部２４５は、当該ディスクがスイープのスケジュールに合致するか否かを判定する（ステップＳ５３）。例えば、アクセス制御部２４５は、スイープ実行制御部２４３によって直近にスイープＯＮコマンドが発行されたディスクを特定し、特定したディスクが、アクセス要求がされたディスクであるか否かを判定する。
【００７７】
アクセス要求がされたディスクがスイープのスケジュールに合致していないと判定した場合（ステップＳ５３；Ｎｏ）、アクセス制御部２４５は、通常のアクセスをすべく、ステップＳ５５に移行する。一方、アクセス要求がされたディスクがスイープのスケジュールに合致すると判定した場合（ステップＳ５３；Ｙｅｓ）、アクセス制御部２４５は、アクセス要求がされた時点がスイープ動作時間内であるか否かを判定する（ステップＳ５４）。例えば、アクセス制御部２４５は、アクセス要求がされた時点が、アクセス要求がされたディスクのスイープＯＮコマンドを発行してからのスイープ動作時間内であるか否かを判定する。スイープ動作時間は、ディスク情報記憶部２５の、アクセス要求がされたディスクに対応するスイープ動作時間２５ｇを用いる。
【００７８】
アクセス要求がされた時点がスイープ動作時間内でないと判定した場合（ステップＳ５４；Ｎｏ）、アクセス制御部２４５は、通常のアクセスをすべく、ステップＳ５５に移行する。ステップＳ５５では、アクセス制御部２４５は、通常のアクセスを実行する。なお、ここでいう通常のアクセスとは、アクセス要求があったディスクへのアクセスを意味する。
【００７９】
一方、アクセス要求がされた時点がスイープ動作時間内であると判定した場合（ステップＳ５４；Ｙｅｓ）、アクセス制御部２４５は、アクセス要求が書き込み要求か否かを判定する（ステップＳ５６）。
【００８０】
アクセス要求が書き込み要求でないと判定した場合（ステップＳ５６；Ｎｏ）、アクセス制御部２４５は、アクセス要求が読み出し要求であると判断し、縮退読み出しを実行する（ステップＳ５７）。すなわち、アクセス制御部２４５は、スイープ動作と読み出し要求とが競合するディスクについて、冗長ディスクを用いた縮退読み出しを実行する。例えば、アクセス制御部２４５は、アクセス要求がされたディスクのＲＡＩＤグループ２５ｂと同一のＲＡＩＤグループに対応するディスクを特定し、特定したディスクに対して読み出しを実行する。そして、アクセス制御部２４５は、アクセス制御処理を終了する。
【００８１】
一方、アクセス要求が書き込み要求であると判定した場合（ステップＳ５６；Ｙｅｓ）、アクセス制御部２４５は、ＨＳがスイープ動作中であるか否かを判定する（ステップＳ５８）。ＨＳがスイープ動作中であると判定した場合（ステップＳ５８；Ｙｅｓ）、アクセス制御部２４５は、通常のアクセスを実行する（ステップＳ５９）。なお、ここでいう通常のアクセスとは、アクセス要求があったディスクへのデータの書き込みを意味する。
【００８２】
一方、ＨＳがスイープ動作中でないと判定した場合（ステップＳ５８；Ｎｏ）、アクセス制御部２４５は、アクセス要求がされたデータを、ＨＳに書き込む（ステップＳ６０）。そして、アクセス制御部２４５は、アクセス制御処理を終了する。
【００８３】
［実施例の効果］
上記実施例によれば、スイープ制御部２４は、複数のディスク４１のうち、ディスク情報記憶部２５およびＲＡＩＤ情報記憶部２６に記憶された冗長構成であるディスク４１について、スイープ動作の実行タイミングを同時期に１個のディスクとなるよう制御する。かかる構成によれば、スイープ制御部２４は、冗長構成であるディスク４１について、スイープ動作の実行タイミングを同時期に１個のディスクとなるようにしたので、スイープ要因によるサーバ９へのレスポンスの遅延を回避できる。一例として、スイープ制御部２４は、スイープ動作中のディスク４１に対してサーバ９から読み出し要求があっても、冗長構成の別のディスク４１へ読み出しを代替させることができるので、スイープ要因によるサーバ９へのレスポンスの遅延を回避できる。
【００８４】
また、上記実施例によれば、スイープ制御部２４は、複数のディスク４１のうち、ディスク４１の実容量と使用可能な容量とを比較した結果に基づいてスイープ動作候補のディスクを決定する。そして、スイープ制御部２４は、決定した複数のディスク４１のうち、冗長構成である複数のディスク４１を対象ディスクに決定する。そして、スイープ制御部２４は、決定した複数の対象ディスクについて、スイープ動作の実行タイミングを同時期に１個のディスクとなるように制御する。かかる構成によれば、スイープ制御部２４は、轍が発生しやすいディスクであって冗長構成のディスクをスイープ対象ディスクに決定することで、轍が発生しやすいディスクのスイープ要因によるサーバ９へのレスポンスの遅延を回避できる。
【００８５】
また、上記実施例によれば、スイープ制御部２４は、複数の対象ディスクについて、スイープ動作の動作間隔が一定となるように制御する。かかる構成によれば、スイープ制御部２４は、複数の対象ディスクについて、スイープ動作の動作間隔を平均化することで、スイープ動作とサーバ９からのアクセスとが競合してしまうことを平均化することができる。
【００８６】
また、上記実施例によれば、スイープ制御部２４は、複数の対象ディスクのうち、スイープ動作の動作間隔に応じて動作時間に到達した対象ディスクについて、スイープＯＮコマンドを発行する。さらに、スイープ制御部２４は、当該対象ディスクにアクセスする所定コマンドを定期的に発行し、動作時間に到達した時点から、発行した所定コマンドに対する応答が規定値を超えた時点までの期間をスイープ動作の実行タイミングとして設定する。かかる構成によれば、スイープ制御部２４は、対象ディスクについて、スイープ動作の実行タイミングを設定できるので、このスイープ動作の実行タイミングを用いてサーバ９からのアクセスがスイープ動作と競合しているかどうかを容易に判別できる。
【００８７】
また、上記実施例によれば、スイープ制御部２４は、複数の対象ディスクについて、スイープ動作の実行タイミングを監視する。そして、スイープ制御部２４は、スイープ動作の実行タイミングとなる期間に、スイープ動作があった対象ディスクに対してサーバ９から読み出し要求があった場合、冗長構成の対象ディスクに対して読み出し処理を実行する。かかる構成によれば、スイープ制御部２４は、対象ディスクについて、サーバ９からの読み出し要求とスイープ動作が競合しても、サーバ９への最適なレスポンスを担保可能となる。
【００８８】
また、上記実施例によれば、スイープ制御部２４は、複数の対象ディスクについて、スイープ動作の実行タイミングを監視する。そして、スイープ制御部２４は、スイープ動作の実行タイミングとなる期間に、スイープ動作があった対象ディスクに対してサーバ９からデータの書き込み要求があった場合、ＨＳに対して当該データを書き込む。そして、スイープ制御部２４は、スイープ動作の実行後にＨＳから書き込み要求のあった対象ディスクへ当該データを書き戻す。かかる構成によれば、スイープ制御部２４は、対象ディスクについて、サーバ９からの書き込み要求とスイープ動作が競合しても、サーバ９への最適なレスポンスを担保可能となる。
【００８９】
［その他］
なお、図示したストレージ装置１は、停電時における電力を供給する電源供給ユニットを有しない構成とした。しかしながら、ストレージ装置１は、電源供給ユニットを有する構成であっても良い。かかる場合に、スイープ制御部２４では、電源ＯＦＦの期間や停電の期間にスイープ動作を実行しないようにする。これにより、スイープ制御部２４は、図示しないキャッシュメモリに保持されたデータのディスク４１へのバックアップに要する時間を短縮することができる。
【００９０】
また、図示したストレージ装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ストレージ装置１の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、ディスク判定部２４１とＨＳグループ作成部２４２とを１個の部に統合しても良い。スイープ実行制御部２４３をスイープ実行前処理を実行する第１の実行制御部と、スイープ実行処理を実行する第２の実行制御部とに分散しても良い。
【符号の説明】
【００９１】
１  ストレージ装置
２，３  ＣＭ
４  ＤＥ
９  サーバ
２１，３１  ＣＡ
２２，３２  ＤＩ
２３，３３  ＲＡＩＤコントロール部
２４，３４  スイープ制御部
２４１，３４１  ディスク判定部
２４２，３４２  ＨＳグループ作成部
２４３，３４３  スイープ実行制御部
２４４，３４４  スイープ実行検知部
２４５，３４５  アクセス制御部
２５，３５  ディスク情報記憶部
２６，３６  ＲＡＩＤ情報記憶部
２７，３７  ディスクアクセス部
４１  ディスク
【図１】
2014137829.tif 000003
【図２Ａ】
2014137829.tif 000004
【図２Ｂ】
2014137829.tif 000005
【図３】
2014137829.tif 000006
【図４】
2014137829.tif 000007
【図５】
2014137829.tif 000008
【図６】
2014137829.tif 000009
【図７】
2014137829.tif 000010
【図８】
2014137829.tif 000011
【図９】
2014137829.tif 000012