(57)【特許請求の範囲】
【請求項１】
複数の論理ボリュームが設定された記憶装置を有するストレージ装置を制御対象とするストレージ制御装置において、
前記複数の論理ボリュームに対するアクセス履歴にもとづいて生成される、前記論理ボリュームごとの負荷情報を記憶する記憶部と、
前記複数の論理ボリュームのうちからリビルドの対象となるリビルド対象ボリュームを決定し、
前記リビルド対象ボリュームのうちから、前記リビルドのボリューム単位所要時間の見積対象の論理ボリュームを順次選択し、
前記選択した論理ボリュームにおいて前記リビルドを開始するボリューム毎開始時間を決定し、
前記選択した論理ボリュームのうち最初に選択した論理ボリュームについて、前記ボリューム毎開始時間を前記最初に選択した論理ボリュームの前記ボリューム毎開始時間とし、前記最初に選択した論理ボリュームのリビルド条件にもとづき算出したリビルド時間と、前記最初に選択した論理ボリュームの前記負荷情報にもとづく遅延時間とから前記最初に選択した論理ボリュームの前記ボリューム単位所要時間を見積もり、
前記選択した論理ボリュームのうち未だ前記ボリューム単位所要時間を見積もっていない見積前の論理ボリュームを１つ特定し、既に前記ボリューム単位所要時間を見積もった見積済の論理ボリュームの前記ボリューム毎開始時間と前記見積済の論理ボリュームの前記ボリューム単位所要時間とから前記特定した前記見積前の論理ボリュームの前記ボリューム毎開始時間を決定し、前記特定した前記見積前の論理ボリュームのリビルド条件にもとづき算出したリビルド時間と、前記特定した前記見積前の論理ボリュームの前記負荷情報にもとづく遅延時間とから前記特定した前記見積前の論理ボリュームの前記ボリューム単位所要時間を見積もることで、前記選択した論理ボリュームすべてについて前記ボリューム単位所要時間を見積もり、
前記選択した論理ボリュームのすべてについて見積もった前記ボリューム単位所要時間を積算することで前記リビルドに要する全体所要時間を算出する制御部と、
を備えるストレージ制御装置。
【請求項２】
前記制御部は、前記リビルド対象ボリュームの前記負荷情報にもとづき、前記リビルド対象ボリュームに含まれる前記論理ボリュームの前記リビルドを実行する順序を定め、
前記順序にしたがって前記論理ボリュームを選択する順序を決定する、
請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、前記リビルド対象ボリュームが設定された前記記憶装置が有するデータ量にもとづき、前記リビルド対象ボリュームに含まれる前記論理ボリュームの前記リビルドを実行する順序を定め、
前記順序にしたがって前記論理ボリュームを選択する順序を決定する、
請求項１記載のストレージ制御装置。
【請求項４】
前記制御部は、現在の時刻を、前記最初に選択した論理ボリュームの前記ボリューム毎開始時間として決定し、
前記最初に選択した論理ボリュームの前記ボリューム毎開始時間に、前記最初に選択した論理ボリュームの前記ボリューム単位所要時間を加えた時間を、次に選択した論理ボリュームのボリューム毎開始時間として決定する、
請求項２または３記載のストレージ制御装置。
【請求項５】
前記制御部は、前記リビルド対象ボリュームの前記リビルドの実行を開始する候補となる開始候補時間を生成し、
生成した前記開始候補時間にもとづき、前記最初に選択した論理ボリュームの前記ボリューム毎開始時間を決定し、
前記最初に選択した論理ボリュームの前記ボリューム毎開始時間に、前記最初に選択した論理ボリュームの前記ボリューム単位所要時間を加えた時間を、次に選択した論理ボリュームのボリューム毎開始時間として決定する、
請求項２または３記載のストレージ制御装置。
【請求項６】
前記制御部は、前記リビルド対象ボリュームの前記リビルドの実行を開始する候補となる開始候補時間を生成し、
生成した前記開始候補時間にもとづき、前記最初に選択した論理ボリュームの前記ボリューム毎開始時間を決定し、
前記最初に選択した論理ボリュームの前記ボリューム毎開始時間に、前記最初に選択した論理ボリュームの前記ボリューム単位所要時間および所定の待ち時間を加えた時間を、次に選択した論理ボリュームのボリューム毎開始時間として決定する、
請求項２または３記載のストレージ制御装置。
【請求項７】
前記論理ボリュームごとの前記負荷情報は、前記論理ボリュームに対するアクセスが発生すると予測される時間と、前記アクセスの量に関する情報と、を対応づけた情報である、
請求項１記載のストレージ制御装置。
【請求項８】
複数の論理ボリュームが設定された記憶装置を有するストレージ装置を制御対象とするストレージ制御装置のストレージ制御プログラムにおいて、
前記複数の論理ボリュームに対するアクセス履歴にもとづいて生成される、前記論理ボリュームごとの負荷情報を記憶部に記憶し、
前記複数の論理ボリュームのうちからリビルドの対象となるリビルド対象ボリュームを決定し、
前記リビルド対象ボリュームのうちから、前記リビルドのボリューム単位所要時間の見積対象の論理ボリュームを順次選択し、
前記選択した論理ボリュームにおいて前記リビルドを開始するボリューム毎開始時間を決定し、
前記選択した論理ボリュームのうち最初に選択した論理ボリュームについて、前記ボリューム毎開始時間を前記最初に選択した論理ボリュームの前記ボリューム毎開始時間とし、前記最初に選択した論理ボリュームのリビルド条件にもとづき算出したリビルド時間と、前記最初に選択した論理ボリュームの前記負荷情報にもとづく遅延時間とから前記最初に選択した論理ボリュームの前記ボリューム単位所要時間を見積もり、
前記選択した論理ボリュームのうち未だ前記ボリューム単位所要時間を見積もっていない見積前の論理ボリュームを１つ特定し、既に前記ボリューム単位所要時間を見積もった見積済の論理ボリュームの前記ボリューム毎開始時間と前記見積済の論理ボリュームの前記ボリューム単位所要時間とから前記特定した前記見積前の論理ボリュームの前記ボリューム毎開始時間を決定し、前記特定した前記見積前の論理ボリュームのリビルド条件にもとづき算出したリビルド時間と、前記特定した前記見積前の論理ボリュームの前記負荷情報にもとづく遅延時間とから前記特定した前記見積前の論理ボリュームの前記ボリューム単位所要時間を見積もることで、前記選択した論理ボリュームすべてについて前記ボリューム単位所要時間を見積もり、
前記選択した論理ボリュームのすべてについて見積もった前記ボリューム単位所要時間を積算することで前記リビルドに要する全体所要時間を算出する、
処理をコンピュータに実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
ストレージ装置において、ＲＡＩＤ（Redundant Arrays of Independent Disks）グループに含まれるディスク故障が発生する場合がある。このような場合、ストレージ装置が備えるコントローラモジュール（ストレージ制御装置）は、ＲＡＩＤグループの冗長性の回復を目的として、予備ディスクに対しデータを復元するリビルド処理をおこなう。
【０００３】
ストレージ制御装置は、ディスク故障に対応する保守作業時間を決定するため、リビルド処理に要する時間（リビルド時間）を算出する。
リビルド時間を算出する方法として、ディスクのドライブ負荷情報を用いて算出する方法などがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１４９２０９号公報
【特許文献２】特開２００４−２９５８６０号公報
【特許文献３】特開平５−５３８９３号公報
【特許文献４】特開２０１０−２６７０３７号公報
【特許文献５】特開２００９−２６６１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年のストレージ装置は、データの運用管理作業に応じて、ストレージ装置内の記憶装置に論理ボリュームを設定している。ストレージ制御装置は、論理ボリュームごとのリビルド時間がホストＩ／Ｏ（Input/Output）の負荷に応じて変動するため、リビルド時間の算出精度が十分でない。
【０００６】
一側面では、本発明は、リビルド時間を精度よく算出できるストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、以下に示すようなストレージ制御装置を提供する。ストレージ制御装置は、複数の論理ボリュームが設定された記憶装置を有するストレージ装置を制御対象とする。ストレージ制御装置は、記憶部と、制御部と、を備える。記憶部は、複数の論理ボリュームに対するアクセス履歴にもとづいて生成される、論理ボリュームごとの負荷情報を記憶する。制御部は、複数の論理ボリュームのうちからリビルドの対象となるリビルド対象ボリュームを決定し、リビルド対象ボリュームのうちから、リビルドのボリューム単位所要時間の見積対象の論理ボリュームを順次選択し、選択した論理ボリュームにおいてリビルドを開始するボリューム毎開始時間を決定し、選択した論理ボリュームのうち最初に選択した論理ボリュームについて、ボリューム毎開始時間を最初に選択した論理ボリュームのボリューム毎開始時間とし、最初に選択した論理ボリュームのリビルド条件にもとづき算出したリビルド時間と、最初に選択した論理ボリュームの負荷情報にもとづく遅延時間とから最初に選択した論理ボリュームのボリューム単位所要時間を見積もり、選択した論理ボリュームのうち未だボリューム単位所要時間を見積もっていない見積前の論理ボリュームを１つ特定し、既にボリューム単位所要時間を見積もった見積済の論理ボリュームのボリューム毎開始時間と見積済の論理ボリュームのボリューム単位所要時間とから特定した見積前の論理ボリュームのボリューム毎開始時間を決定し、特定した見積前の論理ボリュームのリビルド条件にもとづき算出したリビルド時間と、特定した見積前の論理ボリュームの負荷情報にもとづく遅延時間とから特定した見積前の論理ボリュームのボリューム単位所要時間を見積もることで、選択した論理ボリュームすべてについてボリューム単位所要時間を見積もり、選択した論理ボリュームのすべてについて見積もったボリューム単位所要時間を積算することでリビルドに要する全体所要時間を算出する。
【発明の効果】
【０００８】
一態様によれば、ストレージ制御装置およびストレージ制御プログラムにおいて、リビルド時間を精度よく算出できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態のストレージ制御装置の構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のＲＡＩＤ装置のハードウェア構成の一例を示す図である。
【図４】第２の実施形態の論理ボリューム設定情報の一例を示す図である。
【図５】第２の実施形態の負荷分析処理のフローチャートを示す図である。
【図６】第２の実施形態の履歴情報の一例を示す図である。
【図７】第２の実施形態の負荷分析情報の一例を示す図である。
【図８】第２の実施形態のリビルド時間予測処理のフローチャートを示す図である。
【図９】第２の実施形態の全体所要時間算出処理のフローチャートを示す図である。
【図１０】第２の実施形態のリビルド順序決定処理のフローチャートを示す図である。
【図１１】第２の実施形態のリビルド時間算出処理のフローチャートを示す図である。
【図１２】第２の実施形態の論理ボリュームの負荷とリビルドスケジュールの関係の一例を示す図である。
【図１３】第３の実施形態の全体所要時間算出処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージ制御装置について図１を用いて説明する。図１は、第１の実施形態のストレージ制御装置の構成の一例を示す図である。
【００１１】
ストレージ制御装置１は、ストレージ装置４を制御対象とする。ストレージ装置４は、複数の論理ボリューム６（６ａ，６ｂ，…，６ｎ）が設定された記憶装置５を有する。ストレージ制御装置１は、情報処理装置の１つであり、たとえばＲＡＩＤ（Redundant Arrays of Independent Disks）装置のコントローラモジュールなどである。
【００１２】
ストレージ制御装置１は、記憶部２と制御部３とを備える。記憶部２は、論理ボリューム６ごとの負荷情報（２ａ，２ｂ，…，２ｎ）を記憶可能であり、たとえば、ＨＤＤ（Hard Disk Drive）や各種メモリなどの記憶装置である。負荷情報（２ａ，２ｂ，…，２ｎ）は、論理ボリューム６の負荷に関する情報である。負荷情報（２ａ，２ｂ，…，２ｎ）は、たとえば、論理ボリューム６に対するアクセスに関する情報（リード／ライト回数、応答時間など）を収集した情報や、負荷の情報を分析した情報である。負荷情報（２ａ，２ｂ，…，２ｎ）は、複数の論理ボリューム６に対するアクセス履歴にもとづいて生成され、たとえば負荷情報Ａ（２ａ）は論理ボリュームＡに対する負荷情報である。
【００１３】
制御部３は、複数の論理ボリューム６のうちからリビルドの対象となるリビルド対象ボリュームを決定する。制御部３は、たとえば、論理ボリュームＡ（６ａ），論理ボリュームＢ（６ｂ），…，論理ボリュームＮ（６ｎ）を、リビルド対象ボリュームとして決定する。なお、リビルド対象ボリュームは、記憶装置５に設定された論理ボリューム６（６ａ，６ｂ，…，６ｎ）の全部であってもよいし、一部であってもよい。
【００１４】
制御部３は、リビルド対象ボリュームのうちから、ボリューム単位所要時間８の見積対象の論理ボリューム６を選択する。ボリューム単位所要時間８は、対象となる論理ボリューム６について、制御部３がリビルドの実行に要すると予測する時間である。見積もりとは、制御部３がリビルドの実行に要すると予測する時間を算出することである。制御部３は、たとえば、リビルド対象ボリューム６（６ａ，６ｂ，…，６ｎ）のうちから、ボリューム単位所要時間８を見積もっていない論理ボリュームＡ（６ａ）を選択する。なお、制御部３は、所定の条件にしたがって論理ボリューム６をリビルド対象ボリュームとして選択してもよいし、負荷情報（２ａ，２ｂ，…，２ｎ）にもとづいて論理ボリューム６をリビルド対象ボリュームとして選択してもよいし、その他の方法で論理ボリューム６をリビルド対象ボリュームとして選択してもよい。なお、所定の条件は、論理ボリューム６の記憶容量や、論理ボリューム６の使用に関する情報や、論理ボリューム６に付与された識別情報の順序などである。
【００１５】
制御部３は、選択した論理ボリューム６においてリビルドを開始するボリューム毎開始時間７を決定する。ボリューム毎開始時間７（７ａ，…，７ｎ）は、選択した論理ボリューム６のリビルドを開始する時間である。なお、制御部３は、選択した論理ボリューム６が設定されている記憶装置５の状態に応じて、ボリューム毎開始時間７を決定することができる。たとえば、記憶装置５の状態は、異常状態や使用状態がある。制御部３は、異常状態を検知した場合に、現在時刻をボリューム毎開始時間７に決定できる。また、制御部３は、使用状態に応じた複数の候補時間をボリューム毎開始時間７に決定できる。
【００１６】
制御部３は、ボリューム毎開始時間７と負荷情報（２ａ，２ｂ，…，２ｎ）とを用いることで、負荷変動に対応したボリューム単位所要時間８を見積もる。制御部３は、リビルド対象ボリュームについてボリューム単位所要時間８を見積もった後、見積もったボリューム単位所要時間８を積算して全体所要時間９を算出する。全体所要時間９は、リビルド対象ボリュームに含まれる所定の論理ボリューム６のボリューム単位所要時間８（８ａ，…，８ｎ）を積算した値である。所定の論理ボリューム６は、通常、リビルド対象ボリュームに含まれるすべての論理ボリューム６とすることができるが、無視できる、あるいは固定値で近似できるような一部の論理ボリューム６を除外することもできる。
【００１７】
これにより、ストレージ制御装置１は、リビルドの処理に要する時間を精度よく算出できる。
ここで、全体所要時間９の算出について、一例をあげて説明する。制御部３は、リビルド対象ボリュームのうちから論理ボリュームＡ（６ａ）を選択する。制御部３は、ボリューム毎開始時間７ａと負荷情報Ａ（２ａ）とを用いてボリューム単位所要時間８ａを見積もる。ボリューム毎開始時間７ａは、たとえば現在時刻である。
【００１８】
次に、制御部３は、論理ボリュームＡを除いたリビルド対象ボリュームのうちから論理ボリュームＮ（６ｎ）を選択する。制御部３は、ボリューム毎開始時間７ａとボリューム単位所要時間８ａからボリューム毎開始時間７ｎを決定する。制御部３は、ボリューム毎開始時間７ｎと負荷情報Ｎ（２ｎ）とを用いてボリューム単位所要時間８ｎを見積もる。
【００１９】
このように、制御部３は、リビルド対象ボリュームについて順次に、ボリューム毎開始時間７を決定し、ボリューム単位所要時間８を見積もる。最後の１つに論理ボリュームＢ（６ｂ）が残る場合、制御部３は、論理ボリュームＢ（６ｂ）を選択する。制御部３は、論理ボリュームＮ（６ｎ）と同様に、ボリューム毎開始時間７を決定し、ボリューム単位所要時間８を見積もる。リビルド終了時間は、論理ボリュームＢ（６ｂ）のボリューム毎開始時間７に、ボリューム単位所要時間８を加えた時間になる。
【００２０】
このように、制御部３は、リビルド対象ボリュームのボリューム単位所要時間８を積算して全体所要時間９を算出することができる。
［第２の実施形態］
次に、第２の実施形態のストレージシステムについて図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００２１】
ストレージシステム１０は、ホスト１１と、ネットワーク１２を介してホスト１１と接続するＲＡＩＤ装置１３を備える。ストレージシステム１０は、ホスト１１が要求するＩ／Ｏ要求（入出力要求）に応じて、ＲＡＩＤ装置１３にデータを書き込み、あるいはＲＡＩＤ装置１３からデータを読み出す。なお、ストレージシステム１０は、複数のホスト１１と複数のＲＡＩＤ装置１３を備えてもよい。
【００２２】
次に、ＲＡＩＤ装置１３のハードウェア構成について図３を用いて説明する。図３は、第２の実施形態のＲＡＩＤ装置のハードウェア構成の一例を示す図である。
ＲＡＩＤ装置１３は、コントローラモジュール２１と、ＤＥ（Disk Enclosure）２０を含む。なお、ＲＡＩＤ装置１３は、複数のコントローラモジュール２１と複数のＤＥ２０を備えてもよい。
【００２３】
コントローラモジュール２１は、ホストインタフェース１４と、プロセッサ１５と、ＲＡＭ（Random Access Memory）１６と、ＨＤＤ１７と、機器接続インタフェース１８と、ディスクインタフェース１９を含む。
【００２４】
コントローラモジュール２１は、プロセッサ１５によって装置全体が制御されている。プロセッサ１５には、バスを介してＲＡＭ１６と複数の周辺機器が接続されている。プロセッサ１５は、２以上のプロセッサからなるマルチコアプロセッサであってもよい。なお、コントローラモジュール２１が複数ある場合、コントローラモジュール２１は主従関係を定め、主となるコントローラモジュール２１のプロセッサ１５が従となるコントローラモジュール２１およびＲＡＩＤ装置１３全体を制御してもよい。
【００２５】
プロセッサ１５は、たとえばＣＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。
【００２６】
ＲＡＭ１６は、コントローラモジュール２１の主記憶装置として使用される。ＲＡＭ１６には、プロセッサ１５に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時格納される。また、ＲＡＭ１６には、プロセッサ１５による処理に必要な各種データが格納される。また、ＲＡＭ１６は、プロセッサ１５のキャッシュメモリとして機能する。
【００２７】
バスに接続されている周辺機器としては、ホストインタフェース１４、ＨＤＤ１７、機器接続インタフェース１８、およびディスクインタフェース１９がある。ホストインタフェース１４は、ネットワーク１２を介してホスト１１との間でデータの送受信をおこなう。
【００２８】
ＨＤＤ１７は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。ＨＤＤ１７は、ＲＡＩＤ装置１３の補助記憶装置として使用される。ＨＤＤ１７には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することができる。
【００２９】
機器接続インタフェース１８は、コントローラモジュール２１に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース１８には、図示しないメモリ装置やメモリリーダライタを接続することができる。メモリ装置は、機器接続インタフェース１８との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、たとえば、カード型の記録媒体である。
【００３０】
また、機器接続インタフェース１８には、図示しない表示部を接続してもよい。その場合、機器接続インタフェース１８は、プロセッサ１５からの命令にしたがって、情報を表示部に表示させる機能を有する。
【００３１】
また、機器接続インタフェース１８は、図示しないキーボードやマウスを接続してもよい。その場合、機器接続インタフェース１８は、キーボードやマウスから送られてくる信号をプロセッサ１５に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することができる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３２】
また、機器接続インタフェース１８は、図示しない光学ドライブ装置を接続してもよい。光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。ディスクインタフェース１９は、ＤＥ２０との間でデータの送受信をおこなう。コントローラモジュール２１は、ディスクインタフェース１９を介してＤＥ２０と接続する。
【００３３】
ＤＥ２０は、１以上のディスク３０（３０ａ，…，３０ｎ）を備え、コントローラモジュール２１からの指示にもとづきデータを格納する。ディスク３０は、記憶装置であり、たとえば、ＨＤＤやＳＳＤ（Solid State Drive）である。ディスク３０は、１以上の論理ボリューム（Logical Volume）２２（２２ａ，…，２２ｎ）が設定される。なお、論理ボリューム２２は、複数のディスク３０に跨って設定されてもよい。
【００３４】
以上のようなハードウェア構成によって、ＲＡＩＤ装置１３の処理機能を実現することができる。
ＲＡＩＤ装置１３は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、ＲＡＩＤ装置１３の処理機能を実現する。ＲＡＩＤ装置１３に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、ＲＡＩＤ装置１３に実行させるプログラムをＨＤＤ１７に格納しておくことができる。プロセッサ１５は、ＨＤＤ１７内のプログラムの少なくとも一部をＲＡＭ１６にロードし、プログラムを実行する。また、ＲＡＩＤ装置１３に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくことができる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１５からの制御により、ＨＤＤ１７にインストールされた後、実行可能となる。またプロセッサ１５が、可搬型記録媒体から直接プログラムを読み出して実行することができる。
【００３５】
次に、論理ボリューム設定情報について図４を用いて説明する。図４は、第２の実施形態の論理ボリューム設定情報の一例を示す図である。
論理ボリューム設定情報２０１は、ディスク３０に設定された論理ボリューム２２を特定可能な情報である。
【００３６】
論理ボリューム設定情報２０１は、ディスク３０の識別情報と、論理ボリューム２２の識別情報とを含む。ディスク３０の識別情報は、たとえば、ディスク３０に設定されたボリュームグループ（Volume Group）である。論理ボリューム２２の識別情報は、ディスク３０に設定された論理ボリューム２２を一意に特定可能な情報であり、たとえばＬＵＮ（Logical Unit Number）がある。論理ボリューム設定情報２０１は、ボリュームグループ「ＨＤＤ１」に対して、論理ボリューム２２としてボリュームＡ，ボリュームＢ，ボリュームＣが設定されていることを示す。論理ボリューム設定情報２０１は、たとえば、保守作業員によってあらかじめ設定される情報であり、ＨＤＤ１７に格納される。
【００３７】
図５から図７を用いて、ＲＡＩＤ装置１３における負荷分析の処理について説明する。まず、第２の実施形態の負荷分析処理について図５を用いて説明する。図５は、第２の実施形態の負荷分析処理のフローチャートを示す図である。
【００３８】
負荷分析処理は、アクセス履歴にもとづいて論理ボリューム２２ごとの負荷分析をおこなう処理である。アクセス履歴は、論理ボリューム２２ごとのアクセスに関する履歴情報であり、たとえば、１分ごとなどの時間間隔で収集されて蓄積される情報である。ＲＡＩＤ装置１３の制御部（プロセッサ１５）は、ＲＡＩＤ装置１３の起動後に負荷分析処理を実行し、所定のタイミングで履歴情報にもとづいて負荷分析をおこなう。
【００３９】
［ステップＳ１１］制御部は、負荷分析をおこなうタイミングか否かを判定する。制御部は、負荷分析をおこなうタイミングであると判定した場合にステップＳ１２にすすみ、負荷分析をおこなうタイミングでないと判定した場合に負荷分析をおこなうタイミングの成立を待つ。たとえば、制御部は、負荷分析をおこなうタイミング成立を、イベントトリガ（保守作業員による指示の受付など）やタイマトリガ（１日、１週間、１か月など）とすることができる。
【００４０】
［ステップＳ１２］制御部は、論理ボリューム２２に対する履歴情報を取得する。履歴情報は、論理ボリューム２２に対するアクセス履歴を含む。履歴情報については、図６を用いて後で説明する。
【００４１】
［ステップＳ１３］制御部は、取得した履歴情報から論理ボリューム２２ごとの負荷を分析する。制御部は、論理ボリューム２２における時系列の負荷変動から負荷パターンを抽出することにより負荷分析をおこなう。
【００４２】
たとえば、負荷パターンは、アクセス回数が絶対的にあるいは相対的に多い時間（または少ない時間）や、応答時間が絶対的にあるいは相対的に短い時間（または長い時間）などがある。絶対的にあるいは相対的な変化は、たとえば、平均値や偏差値、分散などの統計値にもとづいて判定されるものであってもよい。
【００４３】
［ステップＳ１４］制御部は、負荷分析の結果にもとづいて負荷分析情報を更新する。負荷分析情報は、論理ボリューム２２の負荷分析結果を示す情報である。負荷分析情報は、図７を用いて後で説明する。
【００４４】
次に、履歴情報について図６を用いて説明する。図６は、第２の実施形態の履歴情報の一例を示す図である。
履歴情報２０２は、履歴情報の一例である。履歴情報は、論理ボリューム２２ごとのアクセス履歴に関する情報である。履歴情報２０２は、ＨＤＤ１７に格納され、負荷分析の対象となる。
【００４５】
履歴情報２０２は、ホスト１１から論理ボリューム２２へのアクセスを制御部が監視して記録することにより生成される情報である。履歴情報２０２は、所定の監視期間を特定可能な日時情報と、論理ボリューム２２へのアクセスに関するアクセス情報とを含む。日時情報は、たとえば、監視期間の始期であり、監視期間の始期により監視期間を特定可能にしている。アクセス情報は、アクセスの種別（Read，Write）ごとのアクセス回数、応答時間、アクセス先識別情報を含む。アクセス先識別情報は、アクセス先となったディスク３０や論理ボリューム２２を識別可能な情報である。
【００４６】
履歴情報２０２は、日時情報として日時、アクセス情報としてＲｅａｄＩＯＰＳ（Input/Output Per Second）、Ｒｅａｄ平均応答時間（ｍｓ）、ＷｒｉｔｅＩＯＰＳ、Ｗｒｉｔｅ平均応答時間（ｍｓ）、アクセス先識別情報を含む。たとえば、日時「０７／０１  １０：００」は、監視期間が１分である場合に、７月１日１０：００から１分間の監視期間であることを示す。ＲｅａｄＩＯＰＳ「３０」は、アクセス先識別情報で示されるアクセス先である「ボリュームＡ」に対して、監視期間に実行されたリードアクセス要求の単位時間当たりの数が３０であったことを示す。Ｒｅａｄ平均応答時間（ｍｓ）「１」は、ボリュームＡに対して監視期間に実行されたリードアクセス要求に対する平均応答時間が１ｍｓであったことを示す。ＷｒｉｔｅＩＯＰＳ「６０」は、ボリュームＡに対して監視期間に実行されたライトアクセス要求の単位時間当たりの数が６０であったことを示す。Ｗｒｉｔｅ平均応答時間（ｍｓ）「５」は、ボリュームＡに対して監視期間に実行されたライトアクセス要求に対する平均応答時間が５ｍｓであったことを示す。アクセス先識別情報「ボリュームＡ」は、アクセス先の論理ボリューム２２がボリュームＡであったことを示す。
【００４７】
次に、負荷分析情報について図７を用いて説明する。図７は、第２の実施形態の負荷分析情報の一例を示す図である。
負荷分析情報２０３は、負荷分析情報の一例である。負荷分析情報は、論理ボリューム２２ごとの負荷分析結果を示す情報であり、論理ボリューム２２の識別情報と論理ボリューム２２の負荷パターンを含む。負荷分析情報２０３は、ＨＤＤ１７に格納され、論理ボリューム２２ごとのリビルド時間の算出に用いられる。
【００４８】
負荷分析情報２０３は、履歴情報２０２にもとづき負荷分析処理で生成される。負荷分析情報２０３は、論理ボリュームＡについて検出した負荷パターンＡ，Ｂ，Ｃ，Ｄを含む。各負荷パターンは、変動幅、始期、継続時間、周期によって表される。たとえば、負荷パターンＡは、変動幅「μ（負荷平均値）＋３σ（負荷標準偏差）以上」、始期「８月２５日  ９：００」、継続時間「１時間」、周期「３０日」によって表される。負荷パターンＡは、論理ボリュームＡにおいて、８月２５日９：００から、μ＋３σ以上の変動幅の負荷が、１時間継続する予定を示している。また、負荷パターンＡは、論理ボリュームＡにおいて、負荷の周期が３０日であることを示す。なお、始期や周期は、カレンダー情報またはその他情報にもとづいて調整されるものであってもよい。なお、負荷分析情報２０３は、論理ボリューム２２に対するアクセスが発生すると予測される時間と、アクセスの量に関する情報（アクセス数の絶対量、相対量、平均値、偏差値など）とを対応づけたものであってもよい。
【００４９】
次に、第２の実施形態のリビルド時間予測処理について図８を用いて説明する。図８は、第２の実施形態のリビルド時間予測処理のフローチャートを示す図である。
リビルド時間予測処理は、ＲＡＩＤ装置１３がリビルド対象ボリュームのリビルド時間を予測する処理である。ＲＡＩＤ装置１３の制御部（プロセッサ１５）は、リビルド時間を求める指示を受け、リビルド時間予測処理を実行する。
【００５０】
［ステップＳ２１］制御部は、リビルド条件を取得する。リビルド条件は、リビルド時間を算出する条件である。制御部は、ＨＤＤ１７に格納されたリビルド条件を取得してもよいし、保守員が入力するリビルド条件を取得してもよい。
【００５１】
たとえば、ＨＤＤ１７に格納されたリビルド条件は、論理ボリューム設定情報２０１や、ディスク３０に格納されたデータ量や、内部負荷情報などである。内部負荷情報は、リビルド処理、コピーバック処理、フォーマット処理など、ＲＡＩＤ装置１３で実行される処理によって発生する負荷情報である。また、保守員が入力するリビルド条件は、リビルド対象ボリュームの識別情報や、リビルド起点時刻などである。リビルド起点時刻は、リビルド開始時刻を生成する起点となる時刻である。
【００５２】
［ステップＳ２２］制御部は、ディスク異常種別を判定する。制御部は、ディスク異常種別を判定した結果、非緊急の場合はステップＳ２３にすすみ、緊急の場合はステップＳ２５にすすむ。
【００５３】
ディスク異常種別は、ディスク３０に異常が発生した場合に、制御部が検出するエラー種別である。たとえば、ディスク異常種別は、軽度ディスク異常から重度ディスク異常まで様々な種別がある。重度ディスク異常とは、たとえば、ＨＤＤヘッド障害、ディスク３０におけるファームウェア不良、ディスク３０が認識できないなど、データ復旧が極めて困難な状態である。
【００５４】
制御部は、ディスク異常種別が重度ディスク異常である場合、緊急と判定する。また、制御部は、ディスクに異常が発生していない場合や、重度ディスク異常でない場合は、非緊急と判定する。なお、ディスク異常種別に関する情報は、たとえばＨＤＤ１７に格納される。
【００５５】
［ステップＳ２３］制御部は、１以上のリビルド開始時刻を生成する。たとえば、制御部は、ステップＳ２１で取得したリビルド起点時刻（たとえば「０時」）を起点として、あらかじめ設定した時間間隔（たとえば「４時間間隔」）で複数のリビルド開始時刻（たとえば「０時、４時、８時、…」）を生成する。制御部は、複数のリビルド開始時刻を生成することで、リビルド開始時刻の選択肢を増やすことができる。
【００５６】
［ステップＳ２４］制御部は、取得したリビルド条件に含まれるリビルド対象ボリュームの識別情報を用いてリビルド対象ボリュームを特定する。
［ステップＳ２５］制御部は、リビルド開始時刻に現在時刻を設定する。
【００５７】
［ステップＳ２６］制御部は、異常ディスクに対応する論理ボリュームを、リビルド対象ボリュームとして特定する。制御部は、ディスク異常種別の情報と対応づけられたディスク３０の識別情報と論理ボリューム設定情報２０１とを用いて論理ボリューム２２を特定できる。
【００５８】
［ステップＳ２７］制御部は、リビルド対象ボリュームの負荷分析情報２０３を取得する。
［ステップＳ２８］制御部は、全体所要時間算出処理を実行する。全体所要時間算出処理は、リビルド条件、リビルド開始時刻、および負荷分析情報２０３にもとづいて、制御部が全体所要時間を算出する処理である。全体所要時間算出処理は、図９を用いて後で説明する。
【００５９】
［ステップＳ２９］制御部は、全体所要時間を報知し、リビルド時間予測処理を終了する。なお、制御部は、表示部に全体所要時間を表示させることで報知してもよいし、ネットワークを介して全体所要時間を送信することにより報知してもよい。また、制御部は、全体所要時間を報知するとともに、リビルド対象ボリュームのリビルドスケジュールを報知してもよい。
【００６０】
次に、第２の実施形態の全体所要時間算出処理について図９を用いて説明する。図９は、第２の実施形態の全体所要時間算出処理のフローチャートを示す図である。
全体所要時間算出処理は、リビルド条件、リビルド開始時刻、および負荷分析情報２０３にもとづいて全体所要時間を算出する処理である。
【００６１】
全体所要時間算出処理は、リビルド時間予測処理のステップＳ２８で、ＲＡＩＤ装置１３の制御部（プロセッサ１５）が実行する処理である。
［ステップＳ３１］制御部は、リビルド順序決定処理を実行する。リビルド順序決定処理は、リビルド対象ボリュームのリビルド順序について１以上の組み合わせを決定する処理である。リビルド順序決定処理については、図１０を用いて後で説明する。
【００６２】
［ステップＳ３２］制御部は、ステップＳ２３で生成したリビルド開始時刻のうちからリビルド開始時刻を１つ選択して設定する。
［ステップＳ３３］制御部は、リビルド時間算出処理を実行する。リビルド時間算出処理は、リビルド対象ボリュームのリビルド順序の組み合わせの１つについて、リビルド順序とリビルド開始時刻にしたがいリビルド対象ボリュームごとのリビルド時間を積算し、全体所要時間を算出する処理である。リビルド時間算出処理は、図１１を用いて後で説明する。
【００６３】
［ステップＳ３４］制御部は、すべてのリビルド順序の組み合わせについて、リビルド順序にしたがったリビルド時間を算出したか否かを判定する。制御部は、すべてのリビルド順序の組み合わせについてリビルド時間を算出した場合にステップＳ３５にすすみ、未だリビルド時間を算出していないリビルド順序の組み合わせがある場合にステップＳ３３にすすむ。
【００６４】
［ステップＳ３５］制御部は、ステップＳ２３で生成したリビルド開始時刻のすべてのリビルド開始時刻でリビルド時間を算出したか否かを判定する。制御部は、すべてのリビルド開始時刻でリビルド時間を算出した場合にステップＳ３７にすすみ、すべてのリビルド開始時刻でリビルド時間を算出していない場合にステップＳ３６にすすむ。
【００６５】
［ステップＳ３６］制御部は、未だ設定していないリビルド開始時刻を１つ選択して更新し、新たなリビルド開始時刻として設定する。
［ステップＳ３７］制御部は、リビルド順序の組み合わせごとの全体所要時間のうちから、報知対象となる全体所要時間を選択し、全体所要時間算出処理を終了する。
【００６６】
なお、制御部は、算出した全体所要時間のうちから、２以上の全体所要時間を報知対象として選択してもよい。たとえば、制御部は、最短のリビルド時間、最長のリビルド時間、およびリビルド時間のうちの中間値のリビルド時間を選択してもよい。また、リビルド開始時刻ごとの最短のリビルド時間、最長のリビルド時間などを選択してもよい。
【００６７】
次に、第２の実施形態のリビルド順序決定処理について図１０を用いて説明する。図１０は、第２の実施形態のリビルド順序決定処理のフローチャートを示す図である。
リビルド順序決定処理は、リビルド対象ボリュームのリビルド順序について１以上の組み合わせを決定する処理である。リビルド順序決定処理は、ＲＡＩＤ装置１３の制御部（プロセッサ１５）が、全体所要時間算出処理のステップＳ３１で実行する処理である。
【００６８】
［ステップＳ４１］制御部は、リビルド対象ボリュームについて所定の選別条件にしたがい、組み合わせ順序の決定対象となるリビルド対象ボリューム（順序決定対象ボリューム）と組み合わせ順序の決定対象とならないリビルド対象ボリューム（順序決定非対象ボリューム）とに選別する。
【００６９】
たとえば、リビルド対象ボリュームの数が大きい場合、リビルド対象ボリュームのリビルド順序の組み合わせは、膨大な数となり、すべての組み合わせを算出することが困難になる。そのため、制御部は、リビルド対象ボリュームの数が大きい場合、全体所要時間に占める割合が所定以上となるリビルド対象ボリュームを順序決定対象ボリュームとし、全体所要時間に占める割合が所定未満となるリビルド対象ボリュームを順序決定非対象ボリュームとする。これにより、制御部は、リビルド順序決定にかかる処理負担を軽減できる。選別条件は、たとえば、順序決定対象ボリュームのサイズや、順序決定対象ボリュームが設定されたディスク３０のデータ量、負荷パターン、ホストＩ／Ｏ負荷、順序決定対象ボリュームの最大数などがある。
【００７０】
［ステップＳ４２］制御部は、順序決定対象ボリュームについて、リビルド順序の組み合わせを決定する。たとえば、順序決定対象ボリュームとして３つの論理ボリューム（論理ボリュームＡ，論理ボリュームＢ，論理ボリュームＣ（以下、Ａ，Ｂ，Ｃと記載））があるとする。制御部は、最初にＡ、２番目にＢ、３番目にＣについてリビルドを実行する順序（以下、「Ａ→Ｂ→Ｃ」と記載）を、リビルド順序の組み合わせの１つとして決定する。同様にして、制御部は、「Ａ→Ｃ→Ｂ」、…、「Ｃ→Ｂ→Ａ」というように、複数の他のリビルド順序の組み合わせを決定する。
【００７１】
［ステップＳ４３］制御部は、順序決定非対象ボリュームがあるか否かを判定する。制御部は、順序決定非対象ボリュームがある場合にステップＳ４４にすすみ、順序決定非対象ボリュームがない場合にステップＳ４５にすすむ。
【００７２】
［ステップＳ４４］制御部は、順序決定非対象ボリュームを所定の規則で並べてリビルド順序を１つ決定する。たとえば、制御部は、順序決定非対象ボリュームのサイズなどで順序決定非対象ボリュームを並べる。
【００７３】
［ステップＳ４５］制御部は、すべてのリビルド対象ボリュームのリビルド順序を決定する。制御部は、順序決定対象ボリュームの順序を優先してリビルド順序を決定できる。たとえば、制御部は、順序決定対象ボリュームの後に順序決定非対象ボリュームを並べることで、すべてのリビルド対象ボリュームのリビルド順序を決定する。
【００７４】
次に、第２の実施形態のリビルド時間算出処理について図１１を用いて説明する。図１１は、第２の実施形態のリビルド時間算出処理のフローチャートを示す図である。
リビルド時間算出処理は、リビルド対象ボリュームのリビルド順序の組み合わせの１つについて、リビルド順序とリビルド開始時刻にしたがいリビルド対象ボリュームごとのリビルド時間を積算し、全体所要時間を算出する処理である。リビルド時間算出処理は、ＲＡＩＤ装置１３の制御部（プロセッサ１５）が全体所要時間算出処理のステップＳ３３で実行する処理である。
【００７５】
［ステップＳ５１］制御部は、リビルド順序におけるリビルド時間を算出する対象となるボリューム（算出対象ボリューム）を選択する。
［ステップＳ５２］制御部は、算出対象ボリュームの負荷分析情報２０３を取得する。
【００７６】
［ステップＳ５３］制御部は、リビルド順序のうち先頭の算出対象ボリュームのリビルド開始時刻をステップＳ３２で設定したリビルド開始時刻とし、以降の算出対象ボリュームのリビルド開始時刻を先に算出した算出対象ボリュームのリビルドが終了した時刻とする。たとえば、リビルド順序が「Ａ→Ｂ→Ｃ」である場合、制御部は、ＡをステップＳ３２で設定したリビルド開始時刻とし、Ｂのリビルド開始時刻を、Ａのリビルドが終了した時刻（Ａのリビルド開始時刻にＡのリビルド時間を加算した時刻）とする。また、制御部は、Ｃのリビルド開始時刻を、Ｂのリビルドが終了した時刻とする。
【００７７】
なお、制御部は、リビルド開始時刻を所定のウエイト（待ち時間）を加算した時刻にしてもよい。制御部は、負荷分析情報２０３にもとづいて待ち時間を定めることで、算出対象ボリュームの負荷が低い時間にリビルドを実行することもできる。
【００７８】
［ステップＳ５４］制御部は、算出対象ボリュームのリビルド時間を算出する。たとえば、制御部は、算出対象ボリュームのサイズと、データ転送レートを用いて算出できるリビルド時間に、負荷（ホストＩ／Ｏの負荷、内部負荷など）にもとづく遅延時間を加えて算出対象ボリュームのリビルド時間を算出できる。
【００７９】
［ステップＳ５５］制御部は、リビルド順序におけるすべての算出対象ボリュームについてリビルド時間を算出したか否かを判定する。制御部は、すべての算出対象ボリュームについてリビルド時間を算出した場合にステップＳ５６にすすみ、すべての算出対象ボリュームについてリビルド時間を算出していない場合にステップＳ５１にすすむ。
【００８０】
［ステップＳ５６］制御部は、リビルド順序におけるすべての算出対象ボリュームについて算出したリビルド時間にもとづいて全体所要時間を算出する。たとえば、制御部は、リビルド順序が「Ａ→Ｂ→Ｃ」である場合、Ａ，Ｂ，Ｃそれぞれのリビルド時間を積算した値を全体所要時間にできる。なお、制御部は、Ａのリビルド開始時刻からＣのリビルド終了時刻までの時間を全体所要時間とすることもできる。
【００８１】
次に、第２の実施形態の論理ボリュームの負荷とリビルドスケジュールの関係について図１２を用いて説明する。図１２は、第２の実施形態の論理ボリュームの負荷とリビルドスケジュールの関係の一例を示す図である。
【００８２】
負荷グラフは、３つの論理ボリューム２２（論理ボリュームＡ，論理ボリュームＢ，論理ボリュームＣ（以下、Ａ，Ｂ，Ｃと記載））の負荷量と時間の関係を示している。なお、負荷グラフは、負荷分析情報にもとづいて図示した、論理ボリューム２２の負荷変動パタンイメージである。スケジュール１は、第２の実施形態におけるリビルドのスケジューリングの一例であり、スケジュール２は、第２の実施形態の変形例におけるリビルドのスケジューリングの一例である。
【００８３】
まず、スケジュール１について説明する。スケジュール１は、最初にＡのリビルドを実行し、２番目にＢのリビルドを実行し、３番目にＣのリビルドを実行する場合を示している。
【００８４】
リビルド時間Ｔａは、Ａのリビルド時間であり、タイミングｔ２１にリビルドを開始し、タイミングｔ２２にリビルドを終了することを示す。リビルド時間Ｔｂ１は、Ｂのリビルド時間であり、タイミングｔ２２にリビルドを開始し、タイミングｔ２５にリビルドを終了することを示す。リビルド時間Ｔｃ１は、Ｃのリビルド時間であり、タイミングｔ２５にリビルドを開始し、タイミングｔ２７にリビルドを終了することを示す。
【００８５】
たとえば、スケジュール１は、負荷グラフによれば、タイミングｔ２１においてＡ，Ｂ，ＣのうちＡの負荷が小さく、タイミングｔ２２においてＢ，ＣのうちＢの負荷が小さいことから、Ａ，Ｂ，Ｃの順にスケジューリングをおこなったものである。
【００８６】
全体所要時間Ｔ１０は、スケジュール１の全体所要時間である。全体所要時間Ｔ１０は、リビルド時間Ｔａと、リビルド時間Ｔｂ１と、リビルド時間Ｔｃ１とを積算した値である。全体所要時間Ｔ１０は、Ａのリビルド開始時刻ｔ２１から、Ｃのリビルド終了時刻ｔ２７までの時間である。
【００８７】
このように、ＲＡＩＤ装置１３は、リビルド対象ボリュームのボリューム単位所要時間を積算して全体所要時間を精度よく算出することができる。
次に、スケジュール２について説明する。スケジュール２は、最初にＡのリビルドを実行し、ウエイト時間Ｔｗを設けて２番目にＣのリビルドを実行し、３番目にＢのリビルドを実行する場合を示している。
【００８８】
リビルド時間Ｔａは、Ａのリビルド時間であり、タイミングｔ２１にリビルドを開始し、タイミングｔ２２にリビルドを終了することを示す。ウエイト時間Ｔｗは、タイミングｔ２２からタイミングｔ２３までのアイドル時間を示す。リビルド時間Ｔｃ２は、Ｃのリビルド時間であり、タイミングｔ２３にリビルドを開始し、タイミングｔ２４にリビルドを終了することを示す。リビルド時間Ｔｂ２は、Ｂのリビルド時間であり、タイミングｔ２４にリビルドを開始し、タイミングｔ２６にリビルドを終了することを示す。
【００８９】
たとえば、スケジュール２は、負荷グラフによれば、タイミングｔ２１においてＡ，Ｂ，ＣのうちＡの負荷が小さく、タイミングｔ２３までのウエイトを入れて、タイミングｔ２３においてＢ，ＣのうちＣの負荷が小さいことから、Ａ，Ｃ，Ｂの順にスケジューリングをおこなったものである。制御部は、リビルド時間算出処理のステップＳ５３においてウエイトを設定することができる。たとえば、制御部は、以降の算出対象ボリュームのリビルド開始時刻を、高負荷なタイミングを避けて遅延（すなわちウエイトの挿入）させることができる。
【００９０】
全体所要時間Ｔ１１は、スケジュール２の全体所要時間である。全体所要時間Ｔ１１は、リビルド時間Ｔａと、ウエイト時間Ｔｗと、リビルド時間Ｔｃ２と、リビルド時間Ｔｂ２とを積算した値である。全体所要時間Ｔ１１は、Ａのリビルド開始時刻ｔ２１から、Ｂのリビルド終了時刻ｔ２６までの時間である。
【００９１】
このように、ＲＡＩＤ装置１３は、リビルド対象ボリュームのボリューム単位所要時間を積算して全体所要時間を精度よく算出することができる。スケジュール２は、ウエイトを設けてもスケジュール１の全体所要時間Ｔ１０より、全体所要時間Ｔ１１を小さくすることができる場合がある。
【００９２】
Ｂの負荷パターンは負荷の変動が一定幅であるため、ＲＡＩＤ装置１３は、どの時間にＢのリビルドを実行してもＢのリビルド時間に変わりがない。そこで、ＲＡＩＤ装置１３は、リビルド開始までのウエイト時間Ｔｗを設け、Ｃの負荷量が低い時間にＣのリビルドを実行することで、全体としてリビルド時間を短縮することができる。
【００９３】
これにより、ＲＡＩＤ装置１３は、リビルド時間を精度よく算出できる。
［第３の実施形態］
次に、第３の実施形態の全体所要時間算出処理について図１３を用いて説明する。図１３は、第３の実施形態の全体所要時間算出処理のフローチャートを示す図である。
【００９４】
全体所要時間算出処理は、リビルド条件、リビルド開始時刻、および負荷分析情報２０３にもとづいて全体所要時間を算出する処理である。
全体所要時間算出処理は、リビルド時間予測処理のステップＳ２８で、ＲＡＩＤ装置１３の制御部（プロセッサ１５）が実行する処理である。
【００９５】
［ステップＳ６１］制御部は、最初にリビルドを実行するリビルド開始時刻として、ステップＳ２３で生成したリビルド開始時刻を設定する。
［ステップＳ６２］制御部は、リビルド対象ボリュームのうちから、リビルド時間を算出する対象ボリューム（最短時間ボリューム）を選択する。
【００９６】
［ステップＳ６３］制御部は、最短時間ボリュームについてリビルド時間を算出し、算出したリビルド時間のうちから最短のリビルド時間を選択する。なお、リビルド時間を算出する方法は、ステップＳ５４と同様である。
【００９７】
［ステップＳ６４］制御部は、次のリビルド開始時刻を、最短のリビルドが終了した時刻として、リビルド開始時刻を更新する。なお、制御部は、直前のリビルドが終了した時刻以降であって次の最短時間ボリュームの負荷が低い時間を、次のリビルド開始時刻として設定してもよい。
【００９８】
［ステップＳ６５］制御部は、最短時間ボリュームのうちから最短リビルド時間を選択したボリュームを除き、最短時間算出対象を更新する。
［ステップＳ６６］制御部は、最短時間算出対象があるか判定する。制御部は、最短時間算出対象がある場合にステップＳ６２にすすみ、最短時間算出対象がない場合にステップＳ６７にすすむ。
【００９９】
［ステップＳ６７］制御部は、最短リビルド時間を積算し、全体所要時間を算出する。なお、制御部は、最初のリビルド開始時刻から最後のリビルド終了時刻までの時間を、全体所要時間として算出することもできる。制御部は、全体所要時間を算出し、全体所要時間算出処理を終了する。
【０１００】
このようにして、ＲＡＩＤ装置１３は、論理ボリューム２２ごとにリビルド時間を算出することで、全体所要時間を精度よく算出することができる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置１、ＲＡＩＤ装置１３が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１０１】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワーク１２を介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０２】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１０３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１０４】
１  ストレージ制御装置
２  記憶部
２ａ，２ｂ，…，２ｎ  負荷情報
３  制御部
４  ストレージ装置
５  記憶装置
６，６ａ，６ｂ，…，６ｎ，２２，２２ａ，…，２２ｎ  論理ボリューム
７，７ａ，…，７ｎ  ボリューム毎開始時間
８，８ａ，…，８ｎ  ボリューム単位所要時間
９  全体所要時間
１０  ストレージシステム
１１  ホスト
１２  ネットワーク
１３  ＲＡＩＤ装置
１４  ホストインタフェース
１５  プロセッサ
１６  ＲＡＭ
１７  ＨＤＤ
１８  機器接続インタフェース
１９  ディスクインタフェース
２０  ＤＥ
２１  コントローラモジュール
３０，３０ａ，…，３０ｎ  ディスク
【図１】
0006369235.tif 000002
【図２】
0006369235.tif 000003
【図３】
0006369235.tif 000004
【図４】
0006369235.tif 000005
【図５】
0006369235.tif 000006
【図６】
0006369235.tif 000007
【図７】
0006369235.tif 000008
【図８】
0006369235.tif 000009
【図９】
0006369235.tif 000010
【図１０】
0006369235.tif 000011
【図１１】
0006369235.tif 000012
【図１２】
0006369235.tif 000013
【図１３】
0006369235.tif 000014