(57)【要約】【課題】  リビルド処理中にＩ/Ｏ処理の要求があった場合における処理時間の短縮化を図る。【解決手段】  ストレージ制御装置１は、制御部２を有している。この制御部２は、冗長化構成を構築する複数のメインの記憶装置３，４に関わるリビルド処理を制御する。また、制御部２は、外部からの要求に応じて、メインの記憶装置３，４にデータを書き込む処理、および、メインの記憶装置３，４からデータを読み出し当該データを外部に出力する読み出し処理（つまり、Ｉ/Ｏ処理）を制御する機能を備えている。さらに、制御部２は、リビルド処理中にＩ/Ｏ処理が要求された場合には、リビルド処理における予備の記憶装置５への書き込み処理と併行してＩ/Ｏ処理を制御する。【選択図】      図１
2014170370.tif 000002
【特許請求の範囲】
【請求項１】
冗長化構成を構築する複数のメインの記憶装置のうちの少なくとも１つの記憶装置のデータを、前記メインの記憶装置とは別の予備の記憶装置を利用して修復するリビルド処理と、外部から受け取ったデータを前記メインの記憶装置に書き込む処理と、前記メインの記憶装置からデータを読み出し外部に出力する読み出し処理とを制御する制御部を有し、
前記制御部は、前記リビルド処理中に前記書き込み処理あるいは前記読み出し処理が要求された場合には、前記要求に応じた前記メインの記憶装置に対する前記書き込み処理あるいは前記読み出し処理が、前記リビルド処理における前記予備の記憶装置へのデータ書き込み処理と併行するように前記各記憶装置を制御するストレージ制御装置。
【請求項２】
前記制御部は、前記リビルド処理中に前記書き込み処理あるいは前記読み出し処理が要求された場合には、前記要求に応じた前記書き込み処理あるいは前記読み出し処理を前記メインの記憶装置が実行するように前記メインの記憶装置を制御すると共に、リビルド処理を実行していない予備の記憶装置も前記要求に応じた前記書き込み処理あるいは前記読み出し処理を実行するようにその予備の記憶装置を制御する請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、前記リビルド処理中に前記書き込み処理あるいは前記読み出し処理が要求された場合には、前記リビルド処理の進行状況の情報を取り込み、当該情報に基づいて、前記リビルド処理を実行する前記予備の記憶装置と、前記要求に応じた前記書き込み処理あるいは前記読み出し処理を実行する前記予備の記憶装置とを確定する機能を備えている請求項２記載のストレージ制御装置。
【請求項４】
前記制御部は、前記リビルド処理により複数の前記予備の記憶装置に分散して記憶されたデータを一つの前記予備の記憶装置に統合するように前記予備の記憶装置を制御する機能を有し、
前記制御部は、前記リビルド処理による書き込み処理を実行する前記予備の記憶装置と、前記要求に応じた前記書き込み処理を実行する前記予備の記憶装置とを確定する場合に、前記複数の予備の記憶装置の中で前記リビルド処理によって書き込まれたデータ量が最も多い前記予備の記憶装置が、前記リビルド処理と前記書き込み処理とのうちの書き込むデータ量が多い方の処理を実行するように前記処理の割り当てを確定する請求項３記載のストレージ制御装置。
【請求項５】
冗長化構成を構築する複数のメインの記憶装置と、
前記メインの記憶装置とは別の複数の前記予備の記憶装置と、
請求項１乃至請求項４の何れか一つに記載のストレージ制御装置と
を備えるストレージ装置。
【請求項６】
前記記憶装置は、ハードディスク装置である請求項５記載のストレージ装置。
【請求項７】
冗長化構成を構築する複数のメインの記憶装置のうちの少なくとも１つの記憶装置のデータを、前記メインの記憶装置とは別の予備の記憶装置を利用して修復するリビルド処理と、外部から受け取ったデータを前記メインの記憶装置に書き込む処理と、前記メインの記憶装置からデータを読み出し外部に出力する読み出し処理とを制御する制御部は、前記リビルド処理中に前記書き込み処理あるいは前記読み出し処理が要求された場合には、前記要求に応じた前記メインの記憶装置に対する前記書き込み処理あるいは前記読み出し処理が、前記リビルド処理における前記予備の記憶装置へのデータ書き込み処理と併行するように前記各記憶装置を制御するストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置（記憶装置）におけるデータ復旧に係る技術に関する。
【背景技術】
【０００２】
ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）技術を利用したストレージ装置は、複数の記憶装置（ハードディスク装置）を有する。ＲＡＩＤには、データを各ハードディスク装置に記憶（保持）する手法の違いによる複数の種類がある。
【０００３】
例えば、ＲＡＩＤ１と呼ばれる技術を利用したストレージ装置は、複数のハードディスク装置に同じデータを書き込む。このＲＡＩＤ１のストレージ装置は、仮に、１つのハードディスク装置に障害が発生しても、別のハードディスク装置に格納されている同じデータによって、障害が発生したハードディスク装置のデータを復元できる。
【０００４】
また、ＲＡＩＤ５と呼ばれる技術を利用したストレージ装置は、データを予め定められた個数のブロック（データブロック）に分けると共に、それら各ブロックのデータに基づいたパリティを計算する。そして、当該ストレージ装置は、各ブロックのデータとパリティを各ハードディスク装置に分散記憶する。当該ＲＡＩＤ５のストレージ装置は、仮に、１つのハードディスク装置に障害が発生した場合に、残りのハードディスク装置に記憶されているデータとパリティを利用した計算によって、障害が発生したハードディスク装置のデータを復元できる。
【０００５】
つまり、ＲＡＩＤ構成を持つストレージ装置は、一部のハードディスク装置に障害が発生しても、ストレージ装置全体としての機能を維持できる冗長化構成を持つ装置である。
【０００６】
このような冗長化構成を持つストレージ装置は、データ復旧のために次のようなリビルド処理を実行する。例えば、ＲＡＩＤ構成を持つストレージ装置は、予備（スペア）のハードディスク装置を備えており、リビルド処理では、その予備のハードディスク装置を利用する。すなわち、ストレージ装置は、正常なハードディスク装置からデータを読み出す。そして、例えばＲＡＩＤ１の場合には、ストレージ装置は、その読み出したデータを予備のハードディスク装置に書き込む。また、例えばＲＡＩＤ５の場合には、ストレージ装置は、前記読み出したデータに基づいた計算によってデータを復旧し、当該復旧したデータを予備のハードディスク装置に書き込む。
【０００７】
ストレージ装置は、上記のようなデータの読み出しから書き込みまでの一連の処理を一つの処理単位とし、当該一連の処理を繰り返し行うことにより、障害が発生したハードディスク装置のデータを予備のハードディスク装置に復旧する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−４０６８７号公報
【特許文献２】特開平７−２００１９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、リビルド処理中に、外部からストレージ装置にデータの書き込みが要求される場合や、外部からストレージ装置にデータの読み出しが要求される場合がある。このような場合には、ストレージ装置は、外部からのそのような要求に対する処理（以下、Ｉ（Input）/Ｏ(Output)処理とも記す）よりもリビルド処理が優先であるという観点から、リビルド処理の前記一連の処理が完了するまでＩ/Ｏ処理を開始しない。
【００１０】
このようにＩ/Ｏ処理を開始するまでに待機時間があるために、リビルド処理中にＩ/Ｏ処理が要求された場合に、ストレージ装置がその要求を受け取ってからＩ/Ｏ処理を終了するまでに要する時間（応答時間）が長くなるという問題が発生する。また、Ｉ/Ｏ処理を実行する際には、ストレージ装置は、リビルド処理を中断する。このため、ストレージ装置は、リビルド処理に要する処理時間も長くなるという問題が発生する。
【００１１】
なお、特許文献１はデータ復元制御装置に関し、当該引用文献１には、復元データを記憶するスペアディスクを選択する場合に、スペアディスク装置のビジー状態の情報を利用する技術が示されている。また、特許文献２はディスクアレイ装置に関し、当該引用文献２には、データ復元に関わる技術が開示されている。
【００１２】
本発明は上記課題を解決するためになされたものである。すなわち、本発明の主な目的は、リビルド処理中に、ストレージ装置に外部からＩ/Ｏ処理の要求（つまり、データの書き込み要求又は読み出し要求）があった場合に、当該要求に応じた処理およびリビルド処理に要する時間の短縮化を図る技術を提供することである。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明のストレージ制御装置は、
冗長化構成を構築する複数のメインの記憶装置のうちの少なくとも１つの記憶装置のデータを、前記メインの記憶装置とは別の予備の記憶装置を利用して修復するリビルド処理と、外部から受け取ったデータを前記メインの記憶装置に書き込む処理と、前記メインの記憶装置からデータを読み出し外部に出力する読み出し処理とを制御する制御部を有し、
前記制御部は、前記リビルド処理中に前記書き込み処理あるいは前記読み出し処理が要求された場合には、前記要求に応じた前記メインの記憶装置に対する前記書き込み処理あるいは前記読み出し処理が、前記リビルド処理における前記予備の記憶装置へのデータ書き込み処理と併行するように前記各記憶装置を制御する。
【００１４】
また、本発明のストレージ装置は、
冗長化構成を構築する複数のメインの記憶装置と、
前記メインの記憶装置とは別の複数の前記予備の記憶装置と、
上記本発明のストレージ制御装置と
を備える。
【００１５】
ストレージ制御方法は、
冗長化構成を構築する複数のメインの記憶装置のうちの少なくとも１つの記憶装置のデータを、前記メインの記憶装置とは別の予備の記憶装置を利用して修復するリビルド処理と、外部から受け取ったデータを前記メインの記憶装置に書き込む処理と、前記メインの記憶装置からデータを読み出し外部に出力する読み出し処理とを制御する制御部は、前記リビルド処理中に前記書き込み処理あるいは前記読み出し処理が要求された場合には、前記要求に応じた前記メインの記憶装置に対する前記書き込み処理あるいは前記読み出し処理が、前記リビルド処理における前記予備の記憶装置へのデータ書き込み処理と併行するように前記各記憶装置を制御する。
【発明の効果】
【００１６】
本発明によれば、リビルド処理中に、ストレージ装置に外部からＩ/Ｏ処理の要求（つまり、データの書き込み要求又は読み出し要求）があった場合に、当該要求に応じた処理およびリビルド処理に要する時間の短縮化を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係るストレージ制御装置の第１実施形態を簡略化して表すブロック図である。
【図２】図１に示すストレージ制御装置を備えたストレージ装置の一実施形態を簡略化して表すブロック図である。
【図３】本発明に係るストレージ装置の第２実施形態を簡略化して表すブロック図である。
【図４】第２実施形態のストレージ装置（ストレージ制御装置）の動作例を表すシーケンス図である。
【図５】第２実施形態のストレージ装置（ストレージ制御装置）の別の動作例を表すシーケンス図である。
【図６】第２実施形態のストレージ装置（ストレージ制御装置）のさらに別の動作例を表すシーケンス図である。
【図７】第２実施形態のストレージ装置（ストレージ制御装置）のさらに別の動作例を表すシーケンス図である。
【図８】第２実施形態のストレージ装置（ストレージ制御装置）のさらに別の動作例を表すシーケンス図である。
【図９】第２実施形態のストレージ装置（ストレージ制御装置）のさらに別の動作例を表すシーケンス図である。
【図１０】第２実施形態のストレージ装置（ストレージ制御装置）のさらにまた別の動作例を表すシーケンス図である。
【発明を実施するための形態】
【００１８】
以下に、本発明に係る実施形態を図面を参照しながら説明する。
【００１９】
（第１実施形態）
図１は、本発明に係る第１実施形態のストレージ制御装置の構成を簡略化して表すブロック図である。このストレージ制御装置１は、制御部２を有している。この制御部２は、リビルド処理を制御する機能を備えている。リビルド処理とは、冗長化構成を構築する複数のメインの記憶装置（図１の例では、２台のメインの記憶装置３，４）のうちの少なくとも１つの記憶装置のデータを、メインの記憶装置３，４とは別の予備の記憶装置５を利用して修復する処理である。また、制御部２は、外部からの要求に応じて、メインの記憶装置３，４にデータを書き込む処理と、メインの記憶装置３，４からデータを読み出し当該データを外部に出力する読み出し処理とを制御する機能を備えている。換言すれば、制御部２は、Ｉ/Ｏ処理を制御する機能を備えている。
【００２０】
さらに、制御部２は、リビルド処理中にＩ/Ｏ処理が要求された場合には、リビルド処理における予備の記憶装置５への書き込み処理と併行してＩ/Ｏ処理を制御する機能を備えている。
【００２１】
この第１実施形態のストレージ制御装置１は、図２に示されるようなストレージ装置１０を構成することができる。すなわち、このストレージ装置１０は、ストレージ制御装置１と、複数のメインの記憶装置３，４と、複数の予備の記憶装置５，６とを有している。
【００２２】
この第１実施形態におけるストレージ制御装置１およびストレージ装置１０は、リビルド処理中にＩ/Ｏ処理が要求された場合に、リビルド処理と併行してＩ/Ｏ処理を制御する。このため、ストレージ制御装置１およびストレージ装置１０は、Ｉ/Ｏ処理の待機時間（つまり、リビルド処理における一つの処理単位の処理が終了するまでＩ/Ｏ処理を開始せずに待機している時間）を削減できる。これにより、ストレージ制御装置１およびストレージ装置１０は、リビルド処理中にＩ/Ｏ処理が要求された場合におけるＩ/Ｏ処理の応答時間が長くなるという問題を抑制できる。また、ストレージ制御装置１およびストレージ装置１０は、リビルド処理中にＩ/Ｏ処理が要求された場合に、Ｉ/Ｏ処理を実行するためにリビルド処理を中断しなくて済むので、リビルド処理の処理時間が長くなるという問題も抑制できる。
【００２３】
なお、制御部２は、例えばＣＰＵ（Central Processing Unit）により構成される。すなわち、ストレージ制御装置１に備えられているメモリ（記憶媒体）には、ストレージ制御装置１が実行する処理手順を表すプログラム（コンピュータプログラム）が格納されている。制御部２は、メモリからそのプログラムを読み出し、当該プログラムを実行することにより、上記のような機能を実現する。
【００２４】
（第２実施形態）
以下に、本発明に係る第２実施形態を説明する。
【００２５】
図３は、第２実施形態のストレージ装置の構成を簡略化して表すブロック図である。この第２実施形態のストレージ装置２０は、制御装置（ストレージ制御装置）２１と、複数のディスク装置（記憶装置）２２〜２５とを有している。
【００２６】
ディスク装置２２〜２５は、ハードディスク（記憶媒体）を備えた記憶装置である。この第２実施形態では、ディスク装置２２〜２５のうちのディスク装置２２，２３は、メインの記憶装置として機能し、ディスク装置２４，２５は、予備（スペア）の記憶装置として機能する。メインのディスク装置２２，２３は、ＲＡＩＤ１の構成を持つ。つまり、ディスク装置２２，２３には、同じデータが書き込まれる。
【００２７】
制御装置２１は、ディスク装置２２〜２５の動作を制御する機能を備えている。当該制御装置２１は、制御部２７と、記憶部２８とを備えている。記憶部２８は、各種データやプログラム（コンピュータプログラム）を記憶する記憶媒体を備えている。当該記憶部２８には、制御装置２１が行う処理の処理手順を表すプログラムが記憶されている。また、記憶部２８には、リビルド処理の進行状況の情報（データ）を格納する領域が設定されている。さらに、記憶部２８には、外部からの要求に応じたＩ/Ｏ処理（データをディスク装置２２，２３に書き込む処理およびデータをディスク装置２２，２３から読み出す処理）の処理状況の情報（データ）を格納する領域が設定されている。
【００２８】
制御部２７は、例えばＣＰＵにより構成される。当該制御部２７は、記憶部２８に記憶されているプログラムを読み出し、当該プログラムを実行することによって、次のような機能を実現する。すなわち、制御部２７は、機能部として、指示部３０と、Ｉ/Ｏ処理部３１と、リビルド処理部３２とを有している。
【００２９】
Ｉ/Ｏ処理部３１は、Ｉ/Ｏ処理を制御する機能を備えている。つまり、Ｉ/Ｏ処理部３１は、データの書き込み要求（Ｉ/Ｏ（ライト）要求）が外部から入力した場合に、書き込み要求（指示）を書き込み対象のデータと共にディスク装置２２，２３に出力する。また、Ｉ/Ｏ処理部３１は、データの読み出し要求（Ｉ/Ｏ（リード）要求）が外部から入力した場合に、読み出し要求（指示）を読み出し対象のデータの情報（例えばアドレス情報）と共にディスク装置２２，２３に出力する。さらに、Ｉ/Ｏ処理部３１は、読み出されたデータをディスク装置２２，２３から受け取った場合には、その受け取ったデータを前記読み出し要求を発信した発信元に返信する。
【００３０】
この第２実施形態では、ディスク装置２２，２３はＲＡＩＤ１構成を構築することから、ディスク装置２２，２３は、Ｉ/Ｏ処理部３１の要求（指示）によって、同じ書き込み対象のデータを書き込む。また、ディスク装置２２，２３は、Ｉ/Ｏ処理部３１の要求（指示）によって、読み出し対象のデータを分担して読み出して、Ｉ/Ｏ処理部３１に送信する。なお、この第２実施形態では、Ｉ/Ｏ処理部３１は、指示部３０からの情報に基づいて、データの書き込み要求や読み出し要求が外部から入力したことを検知する。また、Ｉ/Ｏ処理部３１は、指示部３０を介して、書き込み対象のデータや、読み出し対象のデータの情報（アドレス情報）を受け取る。
【００３１】
リビルド処理部３２は、リビルド処理を制御する機能を備えている。リビルド処理とは、メインのディスク装置２２，２３のうちの一方が故障した場合に、故障したディスク装置のデータを復旧する処理である。この第２実施形態では、リビルド処理は、ディスク装置２２，２３のうちの正常なディスク装置から設定のデータ量（領域）分のデータを読み出し、当該読み出したデータを復旧データとして予備のディスク装置２４，２５の一方に書き込む一連の処理を繰り返す。なお、リビルド処理によりデータを書き込む書き込み先としての予備のディスク装置は適宜選択される。
【００３２】
指示部３０は、Ｉ/Ｏ処理部３１とリビルド処理部３２の動作を制御する機能を備えている。すなわち、指示部３０は、データの書き込み要求（Ｉ/Ｏ（ライト）要求）や読み出し要求（Ｉ/Ｏ（リード）要求）が外部から入力したことを検知すると、Ｉ/Ｏ処理を開始する要求（指示）をＩ/Ｏ処理部３１に通知する。また、指示部３０は、書き込み要求や読み出し要求と共に外部から受け取った情報をＩ/Ｏ処理部３１に通知する。このような指示部３０の処理によって、Ｉ/Ｏ処理部３１は処理を開始する。
【００３３】
また、指示部３０は、リビルド処理が必要であることを検知した場合に、リビルド処理を開始する要求をリビルド処理部３２に出力する。これにより、リビルド処理部３２はリビルド処理を開始する。
【００３４】
さらに、指示部３０は、Ｉ/Ｏ処理部３１から受け取ったＩ/Ｏ処理の処理状況の情報を記憶部２８に書き込む機能を備えている。さらにまた、指示部３０は、リビルド処理部３２から受け取ったリビルド処理の進行状況の情報を記憶部２８に書き込む（更新する）機能を備えている。
【００３５】
この第２実施形態では、さらに、指示部３０は、リビルド処理中にＩ/Ｏ処理が要求された場合に、次のような処理を実行する。
【００３６】
すなわち、この第２実施形態では、指示部３０は、リビルド処理中にＩ/Ｏ処理が要求された場合に、リビルド処理における予備のディスク装置２４（２５）へのデータ書き込み中にＩ/Ｏ処理を実行することをＩ/Ｏ処理部３１に指示する。これにより、Ｉ/Ｏ処理は、リビルド処理に併行して実行される。
【００３７】
また、この第２実施形態では、指示部３０は、リビルド処理中にＩ/Ｏ処理を併行することに因る不具合を防止するために、次のような処理も行う。
【００３８】
つまり、この第２実施形態では、メインのディスク装置２２，２３は、ＲＡＩＤ１を構成するために、同じデータを格納していなければならない。しかしながら、リビルド処理中においては、ディスク装置２２，２３の一方（つまり、データ復旧中のディスク装置（ここでは、仮にディスク装置２２とする））に対し、Ｉ/Ｏ処理によるデータの書き込み処理は実行できない。このために、リビルド処理中に、Ｉ/Ｏ処理部３１が他方のディスク装置２３のみにＩ/Ｏ処理（データの書き込み処理）を実行すると、次のような不具合が生じる。つまり、Ｉ/Ｏ処理およびリビルド処理が終了したときに、予備のディスク装置２４，２５に格納されているディスク装置２２の復旧データとしてのデータと、ディスク装置２３に格納されているデータとが同一ではなくなる。
【００３９】
また、ＲＡＩＤ１では、Ｉ/Ｏ処理部３１は、読み出し対象のデータをメインのディスク装置２２，２３から分担して読み出すことによって、読み出し要求に対する応答時間を短縮できる。しかしながら、リビルド処理中においては、ディスク装置２２，２３の一方（ここでは、ディスク装置２２とする）からデータを読み出すことができないため、読み出し要求に対する応答時間が長くなる虞がある。
【００４０】
この第２実施形態では、指示部３０は、上記のような不具合を防止することを考慮した処理を行う。つまり、指示部３０は、リビルド処理中にＩ/Ｏ処理を併行する場合には、予備のディスク装置２４，２５をデータ復旧中のディスク装置（例えばディスク装置２２）と見なしたＩ/Ｏ処理が実行されるようにＩ/Ｏ処理部３１に情報を通知する。具体的には、リビルド処理中にＩ/Ｏ処理による書き込み処理を併行する場合には、指示部３０は、リビルド処理で使用しない予備のディスク装置を表す情報（例えば識別情報）と当該ディスク装置へのデータ書き込み要求とをＩ/Ｏ処理部３１に通知する。また、リビルド処理中にＩ/Ｏ処理による読み出し処理を併行する場合には、指示部３０は、記憶部２８に格納されているリビルド処理の進行状況の情報を参照し、読み出し対象のデータが予備のディスク装置に復旧（格納）されているか否かを判断する。そして、指示部３０は、格納されていると判断した場合には、その復旧データを格納している予備のディスク装置を表す情報（例えば識別情報）と当該ディスク装置へのデータ読み出し要求とをＩ/Ｏ処理部３１に通知する。
【００４１】
この第２実施形態のストレージ装置２０は上記のように構成されている。これにより、このストレージ装置２０は次のような効果を得ることができる。つまり、ストレージ装置２０は、第１実施形態と同様に、リビルド処理中にＩ/Ｏ処理が要求された場合には、リビルド処理中における予備のディスク装置へのデータ書き込み中にＩ/Ｏ処理を併行して実行する構成を備えている。これにより、ストレージ装置２０は、リビルド処理中にＩ/Ｏ処理が要求された場合において、Ｉ/Ｏ処理の要求を受けてからＩ/Ｏ処理を開始するまでの待機時間を削減できる、換言すれば、Ｉ/Ｏ処理の応答時間を短縮できる。また、ストレージ装置２０は、リビルド処理中にＩ/Ｏ処理が要求された場合において、Ｉ/Ｏ処理を実行するためにリビルド処理を中断しなくて済むので、リビルド処理の処理時間が長くなることを防止できる。
【００４２】
さらに、この第２実施形態では、ストレージ装置２０は、リビルド処理中にＩ/Ｏ処理を併行する場合に、リビルド処理で使用しない予備のディスク装置をデータ復旧中のメインのディスク装置と見なしてＩ/Ｏ処理を実行できる構成を備えている。これにより、ストレージ装置２０は、リビルド処理中にＩ/Ｏ処理を併行することに因る不具合を防止できる。
【００４３】
以下に、ストレージ装置２０（制御装置２１）の具体的な動作例を図４〜図１０を参照しながら説明する。
【００４４】
図４は、制御装置２１におけるリビルド処理の動作例を表すシーケンス図である。なお、ここでは、メインのディスク装置２２，２３のうち、一方のディスク装置２３が正常であり、他方のディスク装置２２が障害発生によってデータ復旧対象の装置であるとする。
【００４５】
例えば、指示部３０は、まず、リビルド開始要求をリビルド処理部３２に向けて出力する（図４のステップＳ１０１）。リビルド処理部３２は、その要求を受けて、正常なメインのディスク装置２３に向けて、予め定めたデータ量（データ領域）分のデータを読み出すこと（リード）を要求する（ステップＳ１０２）。ディスク装置２３は、その要求に従ったデータの読み出し処理（リード）を実行する（ステップＳ１０３）。この読み出されたデータは、例えば、制御装置２１に備えられているメモリに一時的に格納される。
【００４６】
然る後に、ディスク装置２３によるデータの読み出し処理（リード）が終了したことをリビルド処理部３２が検知すると（ステップＳ１０４）、リビルド処理部３２は、リビルド処理の進行状況の情報を指示部３０に通知（報告）する（ステップＳ１０５）。具体的には、リビルド処理部３２は、ディスク装置２３におけるデータの読み出し領域を表す情報を、指示部３０に通知（報告）する。
【００４７】
指示部３０は、その情報を受け取ると、受け取った情報をリビルド処理の進行状況情報として記憶部２８に書き込む（ステップＳ１０６）。その後、指示部３０は、予備のディスク装置２４，２５のうちの一方を、ディスク装置２３から読み出したデータを書き込む書き込み先として選択する（割り当て判断する（ステップＳ１０７））。そして、指示部３０は、そのデータ書き込み先として処理を割り当てられた予備のディスク装置（ここでは、ディスク装置２４とする）を表す情報（例えば識別情報）をリビルド処理部３２に通知する。
【００４８】
リビルド処理部３２は、その通知を受け取ると、データ書き込み先としての予備のディスク装置２４に向けて、ディスク装置２３から読み出したデータを書き込む処理（ライト）を要求する（ステップＳ１０８）。このとき、リビルド処理部３２は、ディスク装置２３から読み出したデータをディスク装置２４に供給する。
【００４９】
ディスク装置２４は、リビルド処理部３２からの要求を受けて、書き込み処理（ライト）を実行する（ステップＳ１０９）。その後、ディスク装置２４は、書き込み処理が終了すると、書き込み処理が終了したことをリビルド処理部３２に通知する（ステップＳ１１０）。これにより、リビルド処理部３２は、リビルド処理の進行状況の情報を指示部３０に通知（報告）する（ステップＳ１１１）。具体的には、リビルド処理部３２は、ディスク装置２３から予備のディスク装置２４に書き込まれたデータ領域を表す情報と、そのデータ領域の書き込み先である予備のディスク装置２４を表す情報（識別情報）とを関連付けた情報を指示部３０に通知する。指示部３０は、その通知を受け取ると、その通知された情報に基づいてリビルド処理の進行状況の情報を記憶部２８に書き込む（換言すれば、リビルド処理の進行状況の情報を更新する（ステップＳ１１２））。
【００５０】
制御装置２１は、リビルド処理として、前記ステップＳ１０２〜ステップＳ１１２の動作を繰り返し行うことによって、ディスク装置２３に格納されている全てのデータを、ディスク装置２２の復旧データとして予備のディスク装置２４，２５に格納する。このようなリビルド処理によって予備のディスク装置２４，２５に格納されたデータは、リビルド処理完了後、例えば障害発生のディスク装置２２に代えて正常な新規のディスク装置が設置された以降に、その新規のディスク装置に書き込まれる。なお、復旧データは、予備のディスク装置２４，２５に分散して格納される場合がある。この場合には、復旧データは、予備のディスク装置２４，２５の一方に統合された後に、新規のディスク装置に書き込まれる。
【００５１】
図５は、リビルド処理の読み出し処理（リード）中に、データを読み出す処理（Ｉ/Ｏ処理）が外部から要求された場合における制御装置２１の動作例を表すシーケンス図である。なお、図５では、図４に示す動作と同様な動作を表す部分には、同一の符号（ステップ番号）を付し、図５の動作例の説明において、その重複する部分の動作の説明は省略する。
【００５２】
図５に示す例では、リビルド処理によってメインのディスク装置２３がデータの読み出し処理（リード）を実行中に、データを読み出す処理（Ｉ/Ｏ処理）が外部からストレージ装置２０に要求される（ステップＳ２０１）。指示部３０が、その要求を認識（検知）し、記憶部２８に格納されている情報に基づいて、ディスク装置２２〜２５の処理状況を確認する（ステップＳ２０２）。その後、指示部３０は、リビルド処理部３２からの情報に基づいて、リビルド処理における読み出し処理（リード）が終了したことを検知した以降に、記憶部２８に格納されているリビルド処理の進行状況の情報を参照（確認）する（ステップＳ２０３）。
【００５３】
そして、指示部３０は、その情報に基づいて、外部から要求されている読み出し対象のデータが予備のディスク装置２４，２５に格納されているか否か、および、格納されている場合には何れの予備のディスク装置に格納されているかを判定する。指示部３０は、その判定結果に基づいて、読み出し対象のデータがリビルド処理によって書き込まれている予備のディスク装置があると判断した場合には、予備のディスク装置２４，２５に次のように処理を割り当てる。つまり、指示部３０は、その読み出し対象のデータが書き込まれている一方の予備のディスク装置（ここでは、ディスク装置２４とする）をＩ/Ｏ処理に割り当て、他方の予備のディスク装置２５をリビルド処理に割り当てると判断する（ステップＳ２０４）。そして、指示部３０は、リビルド処理部３２に向けて、リビルド処理に割り当てられた予備のディスク装置２５を表す情報（例えば識別情報）を通知する。リビルド処理部３２は、通知された予備のディスク装置２５に向けて、ディスク装置２３から読み出したデータを書き込む処理（ライト）を要求する（ステップＳ１０８）。
【００５４】
また、指示部３０は、Ｉ/Ｏ処理による読み出し処理（リード）を開始する要求をＩ/Ｏ処理部３１に通知する（ステップＳ２０５）。このとき、指示部３０は、読み出し対象のデータを表す情報（例えばアドレス情報）と、Ｉ/Ｏ処理に割り当てられた予備のディスク装置２４を表す情報（識別情報）とをＩ/Ｏ処理部３１に通知する。これにより、Ｉ/Ｏ処理部３１は、メインのディスク装置２３および予備のディスク装置２４のそれぞれに、読み出し対象のデータを表す情報を通知すると共に、読み出す処理（リード）を要求する（ステップＳ２０６）。これにより、ディスク装置２３，２４は、それぞれ、読み出し対象のデータを読み出す（リードする（ステップＳ２０７，Ｓ２０８））。
【００５５】
その後、Ｉ/Ｏ処理部３１は、ディスク装置２３，２４による読み出し処理（リード）が終了したことを検知すると（ステップＳ２０９）、実行されたＩ/Ｏ処理の処理内容を表す情報を指示部３０に通知（報告）する（ステップＳ２１０）。指示部３０は、その情報を受け取ると、受け取った情報に基づいてＩ/Ｏ処理の処理状況を表す情報を記憶部２８に書き込む（ステップＳ２１１）。
【００５６】
図６は、図５と同様にリビルド処理の読み出し処理（リード）中に、データを読み出す処理（Ｉ/Ｏ処理）が外部から要求された場合における制御装置２１の動作例を表すシーケンス図である。ただ、図６では、Ｉ/Ｏ処理による読み出し対象のデータが予備のディスク装置２４，２５に格納されていない場合の動作例を表している。なお、図６では、図５に示す動作と同様な動作を表す部分には、同一の符号（ステップ番号）を付し、図６の動作例の説明において、その重複する部分の動作の説明は省略する。
【００５７】
図６に示す動作例では、Ｉ/Ｏ処理の読み出し対象のデータが予備のディスク装置２４，２５の何れにも格納されていない。このため、指示部３０は、ステップＳ２０４での割り当て判断において、ディスク装置２４，２５にＩ/Ｏ処理は割り当てず、この例では、ディスク装置２４にリビルド処理による書き込み処理（ライト）を割り当てると判断する。これにより、Ｉ/Ｏ処理については、予備のディスク装置からの読み出し処理（リード）は行われず、メインのディスク装置２３からの読み出し処理（リード）だけが実行される。また、図６では、リビルド処理による書き込み処理（ライト）は、予備のディスク装置２４によって実行される。図６に示されるそれ以外の動作は図５と同様である。
【００５８】
図７は、リビルド処理の読み出し処理（リード）中に、データを書き込む処理（Ｉ/Ｏ処理）が外部から要求された場合における制御装置２１の動作例を表すシーケンス図である。なお、図７では、図４〜図６に示す動作と同様な動作を表す部分には、同一の符号（ステップ番号）を付し、図７の動作例の説明において、その重複する部分の動作の説明は省略する。
【００５９】
すなわち、図７に示す例では、メインのディスク装置２３がリビルド処理によるデータの読み出し処理（リード）を実行中に、データを書き込む処理（Ｉ/Ｏ処理）が書き込み対象のデータと共に外部からストレージ装置２０に要求される（ステップＳ３０１）。指示部３０が、その要求を認識（検知）する（ステップＳ３０２）。その後、指示部３０は、リビルド処理部３２からの情報に基づいて、リビルド処理における読み出し処理（リード）が終了したことを検知した以降に、記憶部２８に格納されているリビルド処理の進行状況の情報を参照（確認）する（ステップＳ３０３）。
【００６０】
そして、指示部３０は、その情報と、例えば予め設定されたリビルド処理によるデータ書き込み先の情報とに基づいて、次に実行されるリビルド処理によるデータの書き込み処理が実行される予備のディスク装置（ここでは、ディスク装置２５とする）を確認する。そして、指示部３０は、リビルド処理によるデータの書き込み処理が実行されない予備のディスク装置（ここでは、ディスク装置２４）をＩ/Ｏ処理によるデータの書き込み処理を実行するディスク装置として割り当てる（ステップＳ３０４）。
【００６１】
その後、指示部３０は、リビルド処理部３２に向けて、リビルド処理に割り当てられた予備のディスク装置２５を表す情報（例えば識別情報）を通知する。リビルド処理部３２は、通知された予備のディスク装置２５に向けて、ディスク装置２３から読み出したデータを書き込む処理（ライト）を要求する（ステップＳ１０８）。
【００６２】
また、指示部３０は、Ｉ/Ｏ処理による書き込み処理（ライト）を開始する要求をＩ/Ｏ処理部３１に通知する（ステップＳ３０５）。このとき、指示部３０は、書き込み対象のデータと、Ｉ/Ｏ処理に割り当てられた予備のディスク装置２４を表す情報（識別情報）とをＩ/Ｏ処理部３１に通知する。これにより、Ｉ/Ｏ処理部３１は、メインのディスク装置２３および予備のディスク装置２４のそれぞれに、書き込み対象のデータを通知すると共に、書き込み処理（ライト）を要求する（ステップＳ３０６）。これにより、ディスク装置２３，２４は、それぞれ、書き込み対象のデータを書き込む（ライトする（ステップＳ３０７，Ｓ３０８））。
【００６３】
その後、ディスク装置２３，２４は、書き込み処理（ライト）が終了すると、書き込み処理が終了したことをＩ/Ｏ処理部３１に通知する（ステップＳ３１１，Ｓ３１２）。これにより、Ｉ/Ｏ処理部３１は、実行されたＩ/Ｏ処理の処理内容を表す情報を指示部３０に通知（報告）する（ステップＳ３１３）。指示部３０は、その通知を受け取ると、その通知された情報に基づいてＩ/Ｏ処理の処理状況の情報を記憶部２８に書き込む（ステップＳ３１４）。
【００６４】
図８は、リビルド処理の書き込み処理（ライト）中に、データを読み出す処理（Ｉ/Ｏ処理）が外部から要求された場合における制御装置２１の動作例を表すシーケンス図である。なお、図８では、図４〜図７に示す動作と同様な動作を表す部分には、同一の符号（ステップ番号）を付し、図８の動作例の説明において、その重複する部分の動作の説明は省略する。
【００６５】
すなわち、図８に示す例では、リビルド処理によって予備のディスク装置２４がデータの書き込み処理（ライト）を実行中に、データを読み出す処理（Ｉ/Ｏ処理）が外部からストレージ装置２０に要求される（ステップＳ４０１）。指示部３０が、その要求を認識（検知）する（ステップＳ４０２）。そして、指示部３０は、記憶部２８に格納されているリビルド処理の進行状況の情報を参照（確認）し、リビルド処理により書き込み処理を実行している予備のディスク装置（ここでは、ディスク装置２４とする）を確認する（ステップＳ４０３）。
【００６６】
これにより、指示部３０は、リビルド処理によるデータの書き込み処理が実行されていない予備のディスク装置（ここでは、ディスク装置２５）をＩ/Ｏ処理によるデータの書き込み処理を実行するディスク装置として確定する。そして、指示部３０は、Ｉ/Ｏ処理による読み出し処理（リード）を開始する要求をＩ/Ｏ処理部３１に通知する（ステップＳ４０４）。このとき、指示部３０は、読み出し対象のデータを表す情報（例えばアドレス情報）と、Ｉ/Ｏ処理に割り当てられた予備のディスク装置２５を表す情報（識別情報）とをＩ/Ｏ処理部３１に通知する。これにより、Ｉ/Ｏ処理部３１は、メインのディスク装置２３および予備のディスク装置２５のそれぞれに、読み出し対象のデータを表す情報を通知すると共に、読み出し処理（リード）を要求する（ステップＳ４０５）。これにより、ディスク装置２３，２５は、それぞれ、読み出し対象のデータを読み出す（リードする（ステップＳ４０６，Ｓ４０７））。
【００６７】
その後、Ｉ/Ｏ処理部３１は、ディスク装置２３，２５による読み出し処理（リード）が終了したことを検知すると、実行されたＩ/Ｏ処理の処理内容を表す情報を指示部３０に通知（報告）する（ステップＳ４０８）。指示部３０は、その情報を受け取ると、受け取った情報に基づいてＩ/Ｏ処理の処理状況を表す情報を記憶部２８に書き込む（ステップＳ４０９）。
【００６８】
図９は、図８と同様にリビルド処理の書き込み処理（ライト）中に、データを読み出す処理（Ｉ/Ｏ処理）が外部から要求された場合における制御装置２１の動作例を表すシーケンス図である。ただ、図９では、Ｉ/Ｏ処理による読み出し対象のデータが、リビルド処理を実行していない予備のディスク装置２５に格納されていない場合の動作例を表している。なお、図９では、図４〜図８に示す動作と同様な動作を表す部分には、同一の符号（ステップ番号）を付し、図９の動作例の説明において、その重複する部分の動作の説明は省略する。
【００６９】
図９に示す動作例では、予備のディスク装置２４がリビルド処理を実行している。また、予備のディスク装置２５には、Ｉ/Ｏ処理による読み出し対象のデータが格納されていない。このため、指示部３０は、ステップＳ４０４において、予備のディスク装置２５にＩ/Ｏ処理は割り当てできないと判断する。これにより、Ｉ/Ｏ処理については、予備のディスク装置からの読み出し処理（リード）は行われず、メインのディスク装置２３からの読み出し処理（リード）だけが実行される。図９に示されるそれ以外の動作は図８と同様である。
【００７０】
図１０は、リビルド処理の書き込み処理（ライト）中に、データを書き込む処理（Ｉ/Ｏ処理）が書き込み対象のデータと共に外部から要求された場合における制御装置２１の動作例を表すシーケンス図である。なお、図１０では、図４〜図９に示す動作と同様な動作を表す部分には、同一の符号（ステップ番号）を付し、図１０の動作例の説明において、その重複する部分の動作の説明は省略する。
【００７１】
すなわち、図１０に示す例では、予備のディスク装置２４がリビルド処理によるデータの書き込み処理（ライト）を実行中に、データを書き込む処理（Ｉ/Ｏ処理）が外部からストレージ装置２０に要求される（ステップＳ５０１）。指示部３０が、その要求を認識（検知）する（ステップＳ５０２）。そして、指示部３０は、記憶部２８に格納されているリビルド処理の進行状況の情報を参照（確認）し、リビルド処理により書き込み処理を実行している予備のディスク装置（ここでは、ディスク装置２４とする）を確認する（ステップＳ５０３）。
【００７２】
これにより、指示部３０は、リビルド処理によるデータの書き込み処理が実行されていない予備のディスク装置（ここでは、ディスク装置２５）をＩ/Ｏ処理によるデータの書き込み処理を実行するディスク装置として確定する。そして、指示部３０は、Ｉ/Ｏ処理による書き込み処理（ライト）を開始する要求をＩ/Ｏ処理部３１に通知する（ステップＳ５０４）。このとき、指示部３０は、書き込み対象のデータと、Ｉ/Ｏ処理に割り当てられた予備のディスク装置２５を表す情報（識別情報）とをＩ/Ｏ処理部３１に通知する。これにより、Ｉ/Ｏ処理部３１は、メインのディスク装置２３および予備のディスク装置２５のそれぞれに、書き込み対象のデータを通知すると共に、書き込み処理（ライト）を要求する（ステップＳ５０５）。これにより、ディスク装置２３，２５は、それぞれ、受け取ったデータを書き込む（ライトする（ステップＳ５０６，Ｓ５０７））。
【００７３】
その後、ディスク装置２３，２５は、書き込み処理（ライト）が終了すると、処理が終了したことをＩ/Ｏ処理部３１に通知する（ステップＳ５０８，Ｓ５０９）。これにより、Ｉ/Ｏ処理部３１は、ディスク装置２３，２５による書き込み処理（ライト）が終了したことを検知すると、実行されたＩ/Ｏ処理の処理内容を表す情報を指示部３０に通知（報告）する（ステップＳ５１０）。指示部３０は、その情報を受け取ると、受け取った情報に基づいてＩ/Ｏ処理の処理状況を表す情報を記憶部２８に書き込む（ステップＳ５１１）。
【００７４】
（第３実施形態）
以下に、本発明に係る第３実施形態を説明する。
【００７５】
この第３実施形態のストレージ装置は、第２実施形態と同様な図３に示されるような構成を有する。この第３実施形態では、指示部３０は、次のような機能を備えている。なお、この第３実施形態の説明において、第２実施形態と同様な構成部分には同一符号を付し、その共通部分の重複説明は省略する。
【００７６】
この第３実施形態では、指示部３０は、リビルド処理における読み出し処理（リード）中に、データを書き込む処理（Ｉ/Ｏ処理（ライト））が外部から要求された場合（図７参照）に、割り当て判断を次のように行う。すなわち、リビルド処理によって予備のディスク装置２４，２５に復旧されたデータは、データの復旧完了後に、復旧されたデータ量が多い方の予備のディスク装置に統合される。このようなデータを統合するために要する時間の短縮化を図ることを考慮すると、データは予備のディスク装置の一方に偏って格納される方がよい。つまり、この場合には、データが予備のディスク装置に同程度のデータ量ずつ格納される場合に比べて、一方（データ量が少ない方）の予備のディスク装置から他方（データ量が多い方）の予備のディスク装置に移す（書き込む）データ量を少なくできる。これにより、データ統合に要する時間の短縮化が図られる。
【００７７】
この第３実施形態では、リビルド処理による書き込み処理（ライト）と、Ｉ/Ｏ処理による書き込み処理（ライト）とを併行して実行する場合に、指示部３０は、それら処理を予備のディスク装置に次のように割り当てる。すなわち、指示部３０は、リビルド処理とＩ/Ｏ処理の各書き込み処理が実行された後の予備のディスク装置２４，２５のデータ量に差が出るように処理を予備のディスク装置２４，２５に割り当てる。つまり、データ量の多い方の予備のディスク装置のデータ量がより多くなるように、指示部３０は、書き込み処理を割り当てる。
【００７８】
具体的には、処理の割り当ては次のパターン１〜４となる。ここで、リビルド処理による書き込み対象のデータ量をｄrとし、Ｉ／Ｏ処理による書き込み対象のデータ量をｄiとする。また、予備のディスク装置２４に書き込まれているデータ量をＤ24とし、予備のディスク装置２５に書き込まれているデータ量をＤ25とする。
【００７９】
パターン１：
ｄr＞ｄi  かつ  Ｄ24＞Ｄ25
この場合には、指示部３０は、リビルド処理による書き込み処理をディスク装置２４に割り当て、Ｉ/Ｏ処理による書き込み処理をディスク装置２５に割り当てる。
【００８０】
パターン２：
ｄr＜ｄi  かつ  Ｄ24＞Ｄ25
この場合には、指示部３０は、リビルド処理による書き込み処理をディスク装置２５に割り当て、Ｉ/Ｏ処理による書き込み処理をディスク装置２４に割り当てる。
【００８１】
パターン３：
ｄr＞ｄi  かつ  Ｄ24＜Ｄ25
この場合には、指示部３０は、リビルド処理による書き込み処理をディスク装置２５に割り当て、Ｉ/Ｏ処理による書き込み処理をディスク装置２４に割り当てる。
【００８２】
パターン４：
ｄr＜ｄi  かつ  Ｄ24＜Ｄ25
この場合には、指示部３０は、リビルド処理による書き込み処理をディスク装置２４に割り当て、Ｉ/Ｏ処理による書き込み処理をディスク装置２５に割り当てる。
【００８３】
この第３実施形態のストレージ装置２０は、第２実施形態と同様の構成を備えているので、第２実施形態と同様の効果を得ることができる。そのうえ、ストレージ装置２０は、リビルド処理とＩ/Ｏ処理の各書き込み処理が実行される場合に、データ量の多い方の予備のディスク装置のデータ量がより多くなるように、指示部３０が書き込み処理を予備のディスク装置２４，２５に割り当てる。このため、リビルド処理の最終工程として、予備のディスク装置２４，２５に格納されているデータを統合する際に、ストレージ装置２０は、そのデータ統合に要する時間の短縮化を図ることができる。
【００８４】
（その他の実施形態）
なお、本発明は、第１〜第３の実施形態に限定されず様々な実施の形態を採り得る。例えば、第２と第３の実施形態における記憶装置（ディスク装置）は、ＲＡＩＤ１構成を有している。これに対し、本発明は、ＲＡＩＤ１以外の例えばＲＡＩＤ５等のＲＡＩＤ構成を構築する記憶装置を制御するストレージ制御装置およびそれを備えたストレージ装置に適用することができる。また、本発明は、ＲＡＩＤ構成以外の冗長化構成を構築する記憶装置を制御するストレージ制御装置およびそれを備えたストレージ装置にも適用することができる。
【００８５】
また、第２と第３の実施形態では、予備のディスク装置は２台である。これに代えて、予備のディスク装置は３台以上であってもよい。この場合には、例えば、２台の予備のディスク装置を、リビルド処理とＩ/Ｏ処理の一方の処理に割り当て、残りの予備のディスク装置を他方の処理に割り当てるというように、指示部３０は、リビルド処理とＩ/Ｏ処理を予備のディスク装置に割り当ててもよい。
【００８６】
この場合には、リビルド処理とＩ/Ｏ処理の少なくとも一方の処理によって、複数台の予備のディスク装置に同じデータが書き込まれることになる。このため、その複数台の予備のディスク装置に重複して書き込まれたデータを読み出す要求が発生した場合には、それら複数台の予備のディスク装置から読み出し対象のデータを分散して読み出すことが可能である。このことにより、上記構成は、処理時間の短縮を図ることができる。
【００８７】
さらに、第２と第３の実施形態では、メインのディスク装置は２台である。これに代えて、ストレージ装置は、メインのディスク装置として３台以上のディスク装置を備えていてもよい。この場合に、メインのディスク装置（例えばＲＡＩＤ１構成）の複数台に障害が発生した場合には、順次、リビルド処理が実行される。
【符号の説明】
【００８８】
１  ストレージ装置
２，２７  制御部
３，４，５，６  記憶装置
１０，２０  ストレージ装置
２１  制御装置
２２，２３，２４，２５  ディスク装置
３０  指示部
３１  Ｉ/Ｏ処理部
３２  リビルド処理部
【図１】
2014170370.tif 000003
【図２】
2014170370.tif 000004
【図３】
2014170370.tif 000005
【図４】
2014170370.tif 000006
【図５】
2014170370.tif 000007
【図６】
2014170370.tif 000008
【図７】
2014170370.tif 000009
【図８】
2014170370.tif 000010
【図９】
2014170370.tif 000011
【図１０】
2014170370.tif 000012