(57)【要約】【課題】リビルド処理中に別のストレージに障害が発生したストレージグループを復旧すること。【解決手段】ストレージシステム１００は、スナップショット作成後のディスク１１１〜ディスク１１４の記憶情報が更新される場合、更新対象の記憶情報の格納位置をトラッキングビットマップ１２２に記録開始する。ストレージ制御装置１０１は、ディスク１１４が第１の縮退ディスクとなった場合、トラッキングビットマップ１２２に基づいて、ＨＳ１１５に、ディスク１１４のうちの更新対象の記憶情報を、先に復元する。通常リビルド処理の実行中にディスク１１３が縮退ディスクとなった場合、ストレージ制御装置１０１は、通常リビルド処理を中断させる。そして、ストレージ制御装置１０１は、連携リビルド処理として、バックアップボリューム１２１とトラッキングビットマップ１２２とに基づいて、ＨＳ１１５にディスク１１４の記憶情報を復元する。【選択図】図１
2014067313.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持する保持部と、
前記第１のストレージに障害が発生した場合、前記保持部によって保持された前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行する第１の復元部と、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行する第２の復元部と、
前記第２の復元部による第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する第３の復元部と、
を有することを特徴とするストレージ制御装置。
【請求項２】
前記第３の復元部は、
前記第２の復元処理の実行中に前記第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の記憶領域に複製された第１の記憶情報と、前記管理情報と前記第２の復元処理の進捗を表す情報とに基づいて、前記他のストレージに、前記第１のストレージの全記憶情報のうちの前記第１の復元処理および前記第２の復元処理によって復元されていない記憶情報を復元することを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記ストレージグループへの書込要求を受け付ける受付部と、
前記第１の復元処理の実行中、または前記第２の復元処理の実行中に、前記受付部によって前記書込要求が受け付けられた場合、前記複数のストレージのうちの障害が発生したストレージを除く残余のストレージと前記他のストレージとのうちの前記書込要求から特定される書込先の記憶領域に前記書込要求の書込内容を書き込む書込処理を実行する実行部と、
を有することを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
前記ストレージグループへの読込要求を受け付ける受付部と、
前記第１の復元処理の実行中か、前記第２の復元処理の実行中か、前記第３の復元部による第３の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による読込先の記憶情報が、前記第１の復元処理か前記第２の復元処理か前記第３の復元処理かによって復元された記憶情報か否かを判断する判断部と、
前記判断部による判断結果に基づいて、前記複数のストレージのうちの障害が発生したストレージを除く残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理か、前記バックアップ先の記憶領域に複製された記憶情報のうちの前記読込先の記憶情報を読み込む読込処理を実行する実行部と、
を有することを特徴とする請求項１〜３のいずれか一つに記載のストレージ制御装置。
【請求項５】
前記判断部は、
前記第３の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による前記読込先の記憶情報が、前記第１の復元処理か前記第２の復元処理か前記第３の復元処理かによって復元された記憶情報か否かを判断し、
前記実行部は、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報であると判断された場合、前記残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理を実行し、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報でないと判断された場合、前記バックアップ先の記憶領域に複製された記憶情報のうちの前記読込先の記憶情報を読み込む読込処理を実行することを特徴とする請求項４に記載のストレージ制御装置。
【請求項６】
前記判断部は、
前記第１の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による前記読込先の記憶情報が、前記第１の復元処理の進捗を表す情報と前記管理情報とに基づいて特定される前記第１の復元処理によって復元された記憶情報に含まれているか否かを判断し、
前記実行部は、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報であると判断された場合、前記残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理を実行し、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報でないと判断された場合、前記残余のストレージの記憶情報に基づいて前記読込先の記憶情報と同一の内容の記憶情報を取得する取得処理を実行することを特徴とする請求項４または５に記載のストレージ制御装置。
【請求項７】
前記判断部は、
前記第１の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による前記読込先の記憶情報が、前記第１の復元処理の進捗を表す情報から特定される記憶情報でなく、前記第１の復元処理の実行開始前の前記管理情報から特定される記憶情報でなく、かつ前記第１の復元処理の実行開始後の前記管理情報から特定される記憶情報であるか否かを判断し、
前記実行部は、
前記判断部によって前記読込先の記憶情報が前記第１の復元処理の進捗を表す情報から特定される記憶情報でなく、前記第１の復元処理の実行開始前の前記管理情報から特定される記憶情報でなく、かつ前記第１の復元処理の実行開始後の前記管理情報から特定される記憶情報であると判断された場合、前記残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理を実行することを特徴とする請求項４または５に記載のストレージ制御装置。
【請求項８】
コンピュータが、
複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持し、
前記第１のストレージに障害が発生した場合、保持した前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行し、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行し、
前記第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する、
処理を実行することを特徴とするストレージ制御方法。
【請求項９】
コンピュータに、
複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持し、
前記第１のストレージに障害が発生した場合、保持した前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行し、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行し、
前記第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する、
処理を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
従来、複数台のストレージを組み合わせることにより仮想的な１台のストレージグループとして運用し冗長性を向上させるＲｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ（ＲＡＩＤ）という技術が開示されている。また、複数のストレージのバックアップ以降の更新データの箇所を記録する修正マップを有し、障害が発生したストレージのデータを再構築する際、修正マップに記録されたバックアップ以降の更新データについて、他のストレージを基に再構築する技術がある。さらに、複数のディスクと、複数のディスクのデータをバックアップするバックアップストレージを有し、複数のディスクのうちの故障ディスクを交換した際の交換ディスクのデータの復旧をバックアップストレージから行う技術がある。（たとえば、下記特許文献１、２を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１０８５７１号公報
【特許文献２】特開２００６−２５２１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、あるストレージに障害が発生してストレージグループの冗長性を回復させるリビルド処理中に、あるストレージ以外の別のストレージに障害が発生すると、ストレージグループを復旧することが困難である。
【０００５】
１つの側面では、本発明は、リビルド処理中に別のストレージに障害が発生したストレージグループを復旧することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に第１のストレージの第１の記憶情報が更新される場合、更新対象の第１のストレージにおける格納位置を示す情報を含む管理情報を保持し、第１のストレージに障害が発生した場合、保持した管理情報に基づいて、複数のストレージとは異なる他のストレージに、第１のストレージの格納位置の第２の記憶情報を復元する第１の復元処理を実行し、第１のストレージに記憶された全記憶情報のうち、第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、複数のストレージのうち第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行し、第２の復元処理の実行中に複数のストレージのうちの第１のストレージとは異なる第２のストレージに障害が発生した場合、第２の復元処理を中断させた後、バックアップ先の第１の記憶情報と管理情報とに基づいて、他のストレージに、第１のストレージに記憶された記憶情報を復元するストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムが提案される。
【発明の効果】
【０００７】
本発明の一態様によれば、リビルド処理中に別のストレージに障害が発生したストレージグループを復旧できるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態にかかるストレージ制御装置の動作例を示す説明図である。
【図２】図２は、ストレージシステムのハードウェア構成例を示す説明図である。
【図３】図３は、ＯＰＣの動作例を示す説明図である。
【図４】図４は、ストレージ制御装置の機能構成例を示すブロック図である。
【図５】図５は、通常読込と縮退読込との動作例を示す説明図である。
【図６】図６は、差分リビルド処理中のＨＳ内の更新される記憶情報の状態を示す説明図である。
【図７】図７は、通常リビルド処理中のＨＳ内の更新される記憶情報の状態を示す説明図である。
【図８】図８は、連携リビルド処理中のＨＳ内の更新される記憶情報の状態を示す説明図である。
【図９】図９は、連携リビルド処理中の第１の縮退読込の動作例を示す説明図である。
【図１０】図１０は、連携リビルド処理中の第２の縮退読込の動作例を示す説明図である。
【図１１】図１１は、ストレージシステムの状態遷移の一例を示す説明図である。
【図１２】図１２は、差分リビルド処理手順の一例を示すフローチャートである。
【図１３】図１３は、差分リビルド処理時の読込処理手順の一例を示すフローチャートである。
【図１４】図１４は、差分リビルド処理時の書込処理手順の一例を示すフローチャートである。
【図１５】図１５は、通常リビルド処理手順の一例を示すフローチャートである。
【図１６】図１６は、通常リビルド処理時の読込処理手順の一例を示すフローチャートである。
【図１７】図１７は、連携リビルド処理手順の一例を示すフローチャートである。
【図１８】図１８は、連携リビルド処理時の読込処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、開示のストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムの実施の形態を詳細に説明する。
【００１０】
図１は、本実施の形態にかかるストレージ制御装置の動作例を示す説明図である。ストレージシステム１００は、ストレージ制御装置１０１と、制御対象となるディスク１１１〜ディスク１１４と、バックアップボリューム１２１とを含む。
【００１１】
ディスク１１１〜ディスク１１４は、データを記憶する記憶媒体である。ストレージは、データを記憶する装置である。ストレージには、ディスクとなる記憶媒体を制御するドライブ、コントローラを含む。本実施の形態では、説明の簡略化のため、１ストレージに１ディスクがあるという前提で説明を行う。よって、ストレージ制御装置１０１は、ストレージグループとなるディスク１１１〜ディスク１１４を制御する。より具体的に、ストレージ制御装置１０１は、ストレージグループとなるディスク１１１〜ディスク１１４を、冗長性が保たれた１つのＲＡＩＤグループとして扱う。ＲＡＩＤにはＲＡＩＤレベルがあり、本実施の形態では、ＲＡＩＤ１以上のＲＡＩＤレベルにて実施可能である。
【００１２】
バックアップボリューム１２１は、ある時刻でのディスク１１１〜ディスク１１４の複製となるスナップショットを記憶する。なお、ボリュームは、ディスクを論理的に区切ったものである。したがって、バックアップボリューム１２１は、１つのディスクでもよいし、複数のディスクにより形成されていてもよい。
【００１３】
図１の（Ａ）は、ストレージシステム１００が行っている運用について説明している。運用にて行う１つ目の処理として、人為的、またはソフトウェアの不具合によるデータの消失や改変の対策として、ストレージシステム１００は、ある時刻でのディスク１１１〜ディスク１１４の複製となるスナップショットを、バックアップボリューム１２１に格納する。以下、ある時刻での完全な複製を、「スナップショット」と呼称する。スナップショットの作成については、図３にて後述する。この場合、ある時刻以降の新規書込要求の書込内容については、バックアップボリューム１２１では保証されていない。ストレージシステム１００は、運用中のデータをＲＡＩＤグループの冗長性によって保証しており、人為的、またはソフトウェアの不具合により削除されたデータを、スナップショットによって保証している。
【００１４】
さらに、運用にて行う２つ目の処理として、ストレージシステム１００は、スナップショット作成後のディスク１１１〜ディスク１１４のデータが更新される場合、更新されるデータの格納位置をトラッキングビットマップ１２２に記録する。
【００１５】
トラッキングビットマップ１２２は、更新されるデータが記憶されたディスク１１１〜ディスク１１４の格納位置を示す情報である。たとえば、トラッキングビットマップ１２２は、ディスク内の各ブロックに付与した通し番号を１ビットとして各ブロック分記録している。具体的に、１ブロック目のデータは、トラッキングビットマップ１２２の１ビット目に対応し、２ブロック目のデータは、トラッキングビットマップ１２２の２ビット目に対応している。また、トラッキングビットマップ１２２内の黒墨で塗られた矩形領域は、データに対応するビットがＯＮとなっていることを示す。
【００１６】
以下、各ディスク内の各ブロックに付与した通し番号を、Ｐｈｙｓｉｃａｌ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ（ＰＬＢＡ）と定義する。また、ＲＡＩＤグループ単位でブロックに付与した通し番号を、ＲＡＩＤ  Ｇｒｏｕｐ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ（ＲＬＢＡ）と定義する。また、ＲＡＩＤグループ内のブロックのうち、利用者が使いたいサイズだけ切り出して形成したブロックに付与した通し番号を、Ｓｈａｒｅｄ  Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ（ＳＬＢＡ）として定義する。たとえば、バックアップボリューム１２１は、ＳＬＢＡを指定することでデータにアクセスできる。
【００１７】
次に、図１の（Ｂ）〜（Ｄ）は、ディスク１１１〜ディスク１１４のリストアの動作を示している。リストアは、ディスクに障害が発生した場合に行われる。本実施の形態では、リストアの動作として、第１の復元処理となる差分リビルド処理、第２の復元処理となる通常リビルド処理、第３の復元処理となるバックアップボリューム１２１との連携リビルド処理、という３つの処理を逐次行う。ここで、リビルドとは、ディスク１１１〜ディスク１１４のデータを障害が発生する前の状態に再構築して、冗長性を回復することをいう。以下、バックアップボリューム１２１との連携リビルド処理を、単に「連携リビルド処理」と呼称する。また、障害が発生したディスクを、「縮退ディスク」と呼称する。図１の（Ｂ）〜図１の（Ｄ）では、第１の縮退ディスクがディスク１１４として、また第２の縮退ディスクがディスク１１３として説明する。
【００１８】
差分リビルド処理は、バックアップボリューム１２１にバックアップされていない、冗長グループを構成するディスク１１１〜ディスク１１４のうちの、第１の縮退ディスク１１４の更新対象の記憶情報を、残りのディスク１１１〜ディスク１１３の記憶情報（たとえばＲＡＩＤ５の場合、複数のストライプデータおよびパリティデータで構成される冗長ストライプ）を利用して、先に復元し、とりあえずディスク１１１〜ディスク１１４の冗長度を回復させる処理である。
【００１９】
通常リビルド処理は、第１の縮退ディスク１１４に記憶された全記憶情報を、残りのディスク１１１〜ディスク１１３に記憶された記憶情報（たとえばＲＡＩＤ５の場合、複数のストライプデータおよび／またはパリティデータで構成される冗長ストライプ）を利用して、先頭から復元し、ディスク１１１〜ディスク１１４の冗長度を回復させる処理である。また、この通常リビルド処理を利用することで、差分リビルド処理で復元された箇所は除いた箇所について復元することができる。
【００２０】
連携リビルド処理は、ディスク１１１〜ディスク１１４のうちの、第１の縮退ディスク１１４とは異なる第２の縮退ディスク１１３が発生してＲＡＩＤグループが故障した状態で、バックアップボリューム１２１から復元する処理である。連携リビル処理ドでは、差分リビルドおよび通常リビルドで復元できなかった残りの箇所について、バックアップボリューム１２１に記憶された第１の記憶情報により復元することができる。
【００２１】
また、データの復元先は、縮退ディスクの代わりに嵌装されたディスクであってもよいし、ストレージシステム１００内に予め用意されたホットスペアディスク１１５でもよい。本実施の形態では、データの復元先が、ホットスペアディスク１１５であるとする。また、ホットスペアディスクを、「ＨＳ」と呼称する。また、ストレージ制御装置１０１は、ＨＳ１１５をＲＡＩＤグループに組み込んでリストアしてもよいし、ＲＡＩＤグループに組み込まずにリストアしてもよい。
【００２２】
図１の（Ｂ）では、差分リビルド処理の動作例を示している。差分リビルド処理として、ストレージ制御装置１０１は、ディスク１１４が第１の縮退ディスクとなった場合、トラッキングビットマップ１２２に基づいて、ＨＳ１１５に、ディスク１１４の更新されるデータが記憶された格納位置の更新データを復元する。更新データとは、ディスク１１４の格納位置に記憶されたデータであってもよいし、障害が発生した後にディスク１１４の格納位置に格納される予定のデータであってもよい。具体的に、ストレージ制御装置１０１は、トラッキングビットマップ１２２のＯＮとなっているビットに対応するデータを、ＨＳ１１５に復元する。
【００２３】
図１の（Ｃ）では、通常リビルド処理の動作例を示している。通常リビルド処理として、ストレージ制御装置１０１は、差分リビルド処理によって復元していないデータについてディスク１１４の先頭から復元する。
【００２４】
図１の（Ｄ）では、連携リビルド処理の動作例を示している。ディスク１１３が故障した場合、連携リビルド処理として、ストレージ制御装置１０１は、通常リビルド処理を中断させた後、バックアップボリューム１２１とトラッキングビットマップ１２２とに基づいて、ＨＳ１１５にディスク１１４のデータを復元する。通常リビルド処理の進捗を表す情報を取得した場合、ストレージ制御装置１０１は、通常リビルド処理の続きから復元する。
【００２５】
このように、ストレージ制御装置１０１は、ＲＡＩＤバックアップ後の更新箇所を記憶し、ディスク故障時に更新箇所を復元した後、別ディスクが故障したら更新箇所以外をバックアップから復元する。これにより、ストレージ制御装置１０１は、更新箇所の冗長性はＲＡＩＤグループの故障時に回復済のため、ＲＡＩＤグループを復旧できる。以下、図２〜図１８を用いて、ストレージ制御装置１０１について詳細に説明する。
【００２６】
図２は、ストレージシステムのハードウェア構成例を示す説明図である。ストレージシステム１００は、ストレージ制御装置１０１＃０、１０１＃１と、ホストサーバ２０１と、Ｄｅｖｉｃｅ  Ｅｎｃｌｏｓｕｒｅ（ＤＥ）２０２と、を含む。以下、接尾記号“＃ｘ”が付与されている場合は、ストレージ制御装置１０１＃ｘに関するハードウェアであることを示している。ストレージ制御装置１０１＃０と、ストレージ制御装置１０１＃１とは、ストレージ制御装置間通信２０３によって接続されている。
【００２７】
ストレージ制御装置１０１＃０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１１＃０と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１３＃０と、を含む。また、ストレージ制御装置１０１＃０は、Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ（ＣＡ）２１４＃０と、Ｄｉｓｋ  Ｉｎｔｅｒｆａｃｅ（ＤＩ）２１５＃０と、を含む。また、各部はバス２１６＃０によってそれぞれ接続されている。また、ストレージ制御装置１０１＃１も、ストレージ制御装置１０１＃０と同様のハードウェアを有している。
【００２８】
ＤＥ２０２は、ＲＡＩＤ  ｇｒｏｕｐ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ（ＲＬＵ）２２１＃０、ＲＬＵ２２１＃１、ＨＳ１１５を含む。ＲＬＵ２２１＃０は、ディスク１１１＃０〜ディスク１１４＃０を含む。ＲＬＵ２２１＃１は、ディスク１１１＃１〜ディスク１１４＃１を含む。
【００２９】
ストレージ制御装置１０１は、ストレージとなるディスク群を制御する装置である。具体的に、ストレージ制御装置１０１＃０は、ＲＬＵ２２１＃０に含まれるディスク１１１＃０〜ディスク１１４＃０を制御する。また、ストレージ制御装置１０１＃１は、ＲＬＵ２２１＃１に含まれるディスク１１１＃１〜ディスク１１４＃１を制御する。具体的な制御内容として、ストレージ制御装置１０１は、ディスク１１１〜ディスク１１４へのアクセスやリビルド等のリカバリ動作を制御する。
【００３０】
ホストサーバ２０１は、ストレージ制御装置１０１と接続しているサーバである。ホストサーバ２０１は、さらに、ネットワークを介して、ストレージシステム１００を利用する利用者端末と接続していてもよい。ＤＥ２０２は、ディスク１１１〜ディスク１１４を収める筐体である。
【００３１】
ＣＰＵ２１１は、ストレージ制御装置１０１の全体の制御を司る演算処理装置である。また、ＣＰＵ２１１は、キャッシュメモリを有していてもよい。ＲＯＭ２１２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ２１３は、ＣＰＵ２１１のワークエリアとして使用される揮発性メモリである。ＣＡ２１４は、ホストサーバ２０１とのインターフェースを提供するモジュールである。ＣＡ２１４は、たとえば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ（ＦＣ）やＩｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ｉＳＣＳＩ）を採用することができる。ＤＩ２１５は、ストレージ制御装置１０１とディスク１１１〜ディスク１１４を接続するモジュールである。
【００３２】
ＲＬＵ２２１は、複数のＲＡＩＤグループを識別するために付与された番号によって区別されたディスクの集合である。図２では、ＤＥ２０２は、番号“＃０”が付与されたＲＬＵ２２１＃０と、番号“＃１”が付与されたＲＬＵ２２１＃１とを示している。また、ストレージシステム１００は、ＲＬＵ２２１＃１をバックアップボリューム１２１として使用している。ＲＬＵ２２１＃０のＲＡＩＤレベルとＲＬＵ２２１＃１のＲＡＩＤレベルは同一でもよいし、異なってもよい。
【００３３】
続けて、図３にて、本実施の形態にかかるストレージ制御装置１０１が用いる、コピー元ディスクの完全な複製を作成するＯｎｅ  Ｐｏｉｎｔ  Ｃｏｐｙ（ＯＰＣ）の動作例を説明する。
【００３４】
図３は、ＯＰＣの動作例を示す説明図である。ＯＰＣは、ある時刻でのコピー元ディスク３０１の完全な複製となるスナップショットを作成する機能である。ストレージ制御装置１０１は、ある時刻にて、コピー元ディスク３０１の先頭から、コピー先ボリューム３０２に複製を行う。コピー元ディスク３０１とコピー先ボリューム３０２は、同一のサイズとなる。さらに、ＯＰＣ実行中にホストサーバ２０１から書込要求が発生した場合、ストレージ制御装置１０１は、コピー元ディスク３０１に書き込む前にコピー元ディスク３０１の旧データを先にコピー先ボリューム３０２に退避する。これにより、ストレージ制御装置１０１は、スナップショット作成以降の新規書込要求の書込内容がコピー先ボリューム３０２に反映されないようにする。
【００３５】
また、ストレージ制御装置１０１は、Ｉ／ＯＴｒａｃｋｉｎｇ機能として、書込要求の発生箇所を記録するトラッキングビットマップ１２２の該当のビットをＯＮにする。また、リビルドを開始する際に、ストレージ制御装置１０１は、トラッキングビットマップ１２２をコピーしたリビルドビットマップを用意する。ストレージ制御装置１０１は、ＯＰＣとトラッキングビットマップ１２２と、リビルドビットマップを用いて、本実施の形態にかかるストレージ制御方法を実行する。
【００３６】
（ストレージ制御装置１０１の機能）
次に、ストレージ制御装置１０１の機能について説明する。図４は、ストレージ制御装置の機能構成例を示すブロック図である。ストレージ制御装置１０１は、保持部４０１と、第１の復元部４０２と、第２の復元部４０３と、第３の復元部４０４と、受付部４０５と、判断部４０６と、実行部４０７を含む。制御部となる保持部４０１〜実行部４０７は、記憶装置に記憶されたプログラムをＣＰＵ２１１が実行することにより、保持部４０１〜実行部４０７の機能を実現する。記憶装置とは、具体的には、たとえば、図２に示したＲＯＭ２１２、ＲＡＭ２１３などである。
【００３７】
また、ストレージ制御装置１０１は、ディスク１１１〜ディスク１１４、ＨＳ１１５を含むディスク群４１０、バックアップボリューム１２１、トラッキングビットマップ１２２、リビルドビットマップ４１１にアクセス可能である。トラッキングビットマップ１２２、リビルドビットマップ４１１は、ＲＡＭ２１３といった記憶装置に格納されている。リビルドビットマップ４１１は、第１の復元部４０２によって差分リビルド処理が実行開始された際の、トラッキングビットマップ１２２がコピーされたデータである。
【００３８】
保持部４０１は、ＲＡＩＤグループのうちのディスク１１４の第１の記憶情報をバックアップボリューム１２１に複製した後にディスク１１４の第１の記憶情報が更新される場合、更新対象のディスク１１４における格納位置を示す情報を含む管理情報を保持する。更新対象のディスク１１４の格納位置を示す情報は、トラッキングビットマップ１２２に記憶されている。記憶情報は、ＲＡＩＤ１であればユーザデータであり、ＲＡＩＤ５であればユーザデータとパリティである。また、管理情報は、格納位置を示す情報の他に、更新内容を含めてもよい。なお、保持するデータは、ＲＡＭ２１３等の記憶領域に記憶される。
【００３９】
第１の復元部４０２は、ディスク１１４に障害が発生した場合、保持部４０１によって保持された管理情報に基づいて、ディスク１１１〜ディスク１１４とは異なるＨＳ１１５に、ディスク１１４の格納位置の第２の記憶情報を復元する差分リビルド処理を実行する。なお、復元された第２の記憶情報は、ＨＳ１１５などの記憶領域に記憶される。
【００４０】
第２の復元部４０３は、ディスク１１４に記憶された全記憶情報のうち、第３の記憶情報を、複数のストレージのうちディスク１１４を除く残余のディスクに記憶された記憶情報に基づいて復元する通常リビルド処理を実行する。第３の記憶情報とは、第１の復元部４０２による差分リビルド処理により復元された第２の記憶情報を除く残りの記憶情報である。なお、復元された第３の記憶情報は、ＨＳ１１５などの記憶領域に記憶される。
【００４１】
第３の復元部４０４は、第２の復元部４０３による通常リビルド処理の実行中にディスク１１１〜ディスク１１４のうちのディスク１１４とは異なるディスク１１３に障害が発生した場合、通常リビルド処理を中断させる。続けて、第３の復元部４０４は、バックアップボリューム１２１に複製された第１の記憶情報と管理情報とに基づいて、ＨＳ１１５に、ディスク１１４に記憶された記憶情報を復元する。たとえば、第３の復元部４０４は、復元対象の記憶情報がトラッキングビットマップ１２２のビットがＯＦＦの記憶情報である場合、バックアップボリューム１２１の記憶情報を参照して、ＨＳ１１５に、ディスク１１４の記憶情報のうちの復元対象の記憶情報を復元する。
【００４２】
また、第３の復元部４０４は、通常リビルド処理の実行中にディスク１１３に障害が発生した場合、通常リビルド処理を中断させる。続けて、第３の復元部４０４は、バックアップボリューム１２１に複製された第１の記憶情報と管理情報と通常リビルド処理の進捗を表す情報とに基づいて、ＨＳ１１５に、ディスク１１４の全記憶情報のうちの通常リビルド処理によって復元されていない記憶情報を復元してもよい。通常リビルド処理の進捗を表す情報は、ＲＬＢＡ＝０から通常リビルド処理が行われていれば、復元を完了したＲＬＢＡの最大値となる。たとえば、第３の復元部４０４は、復元を完了したＲＬＢＡの最大値の次のＲＬＢＡから復元する。または、第３の復元部４０４は、ＲＡＩＤグループのＲＬＢＡの最大値から、復元を完了したＲＬＢＡの最大値の次のＲＬＢＡまで復元してもよい。なお、復元された記憶情報は、ＨＳ１１５などの記憶領域に記憶される。
【００４３】
受付部４０５は、ＲＡＩＤグループへの書込要求を受け付ける。また、受付部４０５は、ＲＡＩＤグループへの読込要求を受け付ける。書込要求や読込要求は、たとえば、ホストサーバ２０１から発行される。なお、受付結果は、ＲＡＭ２１３などの記憶領域に記憶される。
【００４４】
判断部４０６は、差分リビルド処理か、通常リビルド処理か、連携リビルド処理の実行中に、受付部４０５によって読込要求が受け付けられた場合、読込要求による読込先の記憶情報が、復元された記憶情報か否かを判断する。復元された記憶情報か否かの判断については、復元処理の進捗を示したＲＬＢＡの値や、トラッキングビットマップ１２２のビットを参照することで判断できる。具体的な判断方法については、それぞれ図１３、図１６、図１８にて後述する。
【００４５】
また、判断部４０６は、連携リビルド処理の実行中に読込要求が受け付けられた場合、読込要求による読込先の記憶情報が、差分リビルド処理か通常リビルド処理か連携リビルド処理かによって復元された記憶情報か否かを判断してもよい。
【００４６】
また、判断部４０６は、差分リビルド処理の実行中に読込要求が受け付けられた場合、読込先の記憶情報が、差分リビルド処理の進捗を表す情報と管理情報とに基づいて特定される差分リビルド処理によって復元された記憶情報に含まれているか否かを判断する。差分リビルド処理の進捗を表す情報は、たとえば、ＲＬＢＡ＝０から差分リビルド処理が行われていれば、復元を完了したＲＬＢＡの最大値となる。たとえば、管理情報が、ＲＬＢＡ＝１、５、１０、１４であったとする。このとき、差分リビルド処理の進捗を表す情報が１０を指していた場合、復元された記憶情報は、ＲＬＢＡ＝１、５の記憶情報となる。
【００４７】
また、判断部４０６は、差分リビルド処理の実行中に、読込要求が受け付けられた場合、読込要求による読込先の記憶情報が、次の条件を満たすか否かを判断してもよい。条件とは、読込先の記憶情報が、差分リビルド処理の進捗を表す情報から特定される記憶情報でなく、差分リビルド処理の実行開始前の管理情報から特定される記憶情報でなく、かつ差分リビルド処理の実行開始後の管理情報から特定される記憶情報であるという条件である。差分リビルド処理の実行開始前の管理情報は、リビルドビットマップ４１１に記述されている。なお、判断結果は、ＲＡＭ２１３などの記憶領域に記憶される。
【００４８】
実行部４０７は、差分リビルド処理、または通常リビルド処理の実行中に書込要求が受け付けられた場合、ディスク群４１０のうち縮退ディスクを除くディスクのうちの書込要求から特定される書込先の記憶領域に書込要求の書込内容を書き込む書込処理を実行する。ディスク群４１０のうちの障害が発生したディスクを除くディスクは、言いかえれば、ディスク１１１〜ディスク１１４のうちの障害が発生したディスクを除く残余のディスクとＨＳ１１５である。
【００４９】
また、実行部４０７は、判断部４０６によって読込先の記憶情報が復元された記憶情報であると判断された場合、残余のストレージとＨＳ１１５とのうちの読込先の記憶情報を読み込む読込処理を実行する。また、実行部４０７は、判断部４０６によって読込先の記憶情報が復元された記憶情報でないと判断された場合、バックアップボリューム１２１に複製された記憶情報のうちの読込先の記憶情報を読み込む読込処理を実行してもよい。ここで、読込先の記憶情報が縮退ディスクにある場合の読み込みを、「縮退読込」と呼称する。一方、読込先の記憶情報が障害が発生していないディスクにある場合の読み込みを、「通常読込」と呼称する。
【００５０】
また、実行部４０７は、判断部４０６によって読込先の記憶情報が復元された記憶情報であると判断された場合、残余のストレージとＨＳ１１５とのうちの読込先の記憶情報を読み込む読込処理を実行する。また、実行部４０７は、判断部４０６によって読込先の記憶情報が復元された記憶情報でないと判断された場合、残余のストレージの記憶情報に基づいて読込先の記憶情報と同一の内容の記憶情報を取得する取得処理を実行してもよい。取得処理は、ＲＡＩＤレベルによって異なる。ＲＡＩＤ１であれば、取得処理は、故障していないペアディスクから、読込先の記憶情報と同一の内容の記憶情報を取得する処理内容となる。また、ＲＡＩＤ５であれば、取得処理は、故障していないディスクや、ＨＳ１１５上の記憶情報およびパリティのＸＯＲの算出結果から、読込先の記憶情報と同一の内容の記憶情報を取得する処理内容となる。
【００５１】
また、実行部４０７は、判断部４０６によって次の条件を満たすと判断された場合、残余のディスクとＨＳ１１５とのうちの読込先の記憶情報を読み込む読込処理を実行してもよい。条件とは、読込先の記憶情報が差分リビルド処理の進捗を表す情報から特定される記憶情報でなく、差分リビルド処理の実行開始前の管理情報から特定される記憶情報でなく、かつ差分リビルド処理の実行開始後の管理情報から特定される記憶情報である。
【００５２】
図５は、通常読込と縮退読込との動作例を示す説明図である。図５の（Ａ）は、ＲＡＩＤ５における通常読込の動作例を示しており、図５の（Ｂ）は、ＲＡＩＤ５における縮退読込の動作例を示している。図５の（Ａ）と図５の（Ｂ）に共通する説明として、ディスク１１１〜ディスク１１４と、ＨＳ１１５とがあり、ディスク１１３に障害が発生したとする。
【００５３】
通常読込は、障害が発生していないディスク１１１、ディスク１１２、ディスク１１４に記憶されている記憶情報に対して読み込む場合の処理である。図５の（Ａ）にて示すように、通常読込を行う場合、ストレージ制御装置１０１は、障害が発生していないディスクから記憶情報を読み込む。また、ＨＳ１１５内の復元が完了している記憶情報を読み込む場合も、ストレージ制御装置１０１は、通常読込として、ＨＳ１１５から記憶情報を読み込む。
【００５４】
縮退読込は、障害が発生したディスクに記憶されている記憶情報に対して読み込む場合の処理である。図５の（Ｂ）にて示すように、縮退読込を行う場合、ストレージ制御装置１０１は、障害が発生したディスク１１３にはアクセスせずに、障害が発生していないディスク１１１、ディスク１１２、ディスク１１４の記憶情報を読み込んで、目的の記憶情報を生成する。ＲＡＩＤ５の場合、ストレージ制御装置１０１は、ディスク１１１の記憶情報と、ディスク１１２の記憶情報と、ディスク１１４の記憶情報とをＸＯＲすることにより、目的の記憶情報を生成して、目的の記憶情報を読み込む。
【００５５】
次に、図６〜図８にて、差分リビルドと、通常リビルドと、連携リビルドとについて、ＨＳ１１５内の更新される記憶情報の状態を示す。
【００５６】
図６は、差分リビルド処理中のＨＳ内の更新される記憶情報の状態を示す説明図である。ビットマップ６００は、差分リビルド処理中のＨＳ１１５に関するトラッキングビットマップ１２２とリビルドビットマップ４１１の状態を図示している。また、ビットマップ６００は、ビット６０１〜ビット６０８を含む。図６〜図８において、ビット６０１〜ビット６０８の内部が黒墨である場合、ビットに対応する記憶情報が保証されていることを示す。
【００５７】
ビット６０１〜ビット６０３は、リビルドビットマップ４１１がＯＮとなっており、さらに、ビットが示すＲＬＢＡがリビルドの進捗を示すリビルドＲＬＢＡ未満となるビットである。具体的に、リビルドＲＬＢＡは、リビルド処理を行っているＲＬＢＡの値を示している。ビット６０１〜ビット６０３は、対応する記憶情報が、差分リビルドの実行により保証された記憶情報を示している。
【００５８】
ビット６０４、ビット６０５は、トラッキングビットマップ１２２がＯＮとなっているビットである。ビット６０４、ビット６０５は、対応する記憶情報が、リビルド処理開始以降に発生した書込要求により書き込まれ、書込要求の書込内容が保証された記憶情報となることを示している。
【００５９】
ビット６０６〜ビット６０８は、トラッキングビットマップ１２２がＯＦＦ、リビルドビットマップ４１１がＯＮとなっており、さらに、ビットが示すＲＬＢＡがリビルドＲＬＢＡ以上となるビットである。ビット６０６〜ビット６０８は、対応する記憶情報が、差分リビルドの対象であるが、未復元の状態にあることを示している。
【００６０】
図７は、通常リビルド処理中のＨＳ内の更新される記憶情報の状態を示す説明図である。ビットマップ７００は、通常リビルド処理中のＨＳ１１５に関するトラッキングビットマップ１２２とリビルドビットマップ４１１の状態を図示している。また、ビットマップ７００は、ビット６０５〜ビット６０８を含む。図６にて示していたビット６０１〜ビット６０４を含む、ビットが示すＲＬＢＡがリビルドＲＬＢＡ未満となるビットは、対応する記憶情報が、通常リビルドの実行により保証された記憶情報を示している。
【００６１】
ビット６０５は、トラッキングビットマップ１２２がＯＮとなっており、さらに、ビットが示すＲＬＢＡがリビルドＲＬＢＡ以上となるビットである。ビット６０５は、対応する記憶情報が、リビルド処理開始以降に発生した書込要求により書き込まれ、保証された記憶情報であることを示している。
【００６２】
ビット６０６〜ビット６０８は、トラッキングビットマップ１２２がＯＮとなっており、さらに、ビットが示すＲＬＢＡがリビルドＲＬＢＡより大きいビットである。ビット６０６〜ビット６０８は、対応する記憶情報が、差分リビルドの実行により保証された記憶情報を示す。ビット６０５〜ビット６０８は、トラッキングビットマップ１２２のＯＮとなっているビットと一致している。
【００６３】
図８は、連携リビルド処理中のＨＳ内の更新される記憶情報の状態を示す説明図である。図８では、通常リビルド処理中に、ディスク１１４に障害が発生して、連携リビルドに移行した状態を示している。ビットマップ８００は、連携リビルド処理中のＨＳ１１５に関するトラッキングビットマップ１２２とリビルドビットマップ４１１の状態を図示している。また、ビットマップ８００は、ビット６０５〜ビット６０８を含む。図６にて示していたビット６０１〜ビット６０４を含む、ビットが示すＲＬＢＡがリビルドＲＬＢＡ未満となるビットは、対応する記憶情報が、通常リビルドの実行により保証された記憶情報を示している。
【００６４】
ビット６０５〜ビット６０８は、トラッキングビットマップ１２２がＯＮとなっており、さらに、ビットが示すＲＬＢＡがリビルドＲＬＢＡ以上となるビットである。ＨＳ１１５上で、最新の書き込みされた記憶情報が保証されている領域は、ＲＬＢＡ＝０からＲＬＢＡ＝リビルドＲＬＢＡまでの範囲と、トラッキングビットマップ１２２がＯＮとなっているビットである。続けて、連携リビルド処理中の縮退読込について説明する。読込対象のＲＬＢＡがリビルドＲＬＢＡ未満である場合、ストレージ制御装置１０１は、図９に示す第１の縮退読込を行う。読込対象のＲＬＢＡがリビルドＲＬＢＡ以上である場合、ストレージ制御装置１０１は、図１０に示す第２の縮退読込を行う。
【００６５】
図９は、連携リビルド処理中の第１の縮退読込の動作例を示す説明図である。図９では、バックアップボリューム１２１を用いない縮退読込の動作例について説明する。バックアップボリューム１２１を用いない縮退読込は、ＲＡＩＤグループ中１つのディスクが縮退した状態の読込と同様となる。
【００６６】
図９中（１）で示すように、読込対象のＲＬＢＡが、障害が発生していないディスク１１１、ディスク１１２にある場合、ストレージ制御装置１０１は、ディスク１１１、ディスク１１２から読み込む。
【００６７】
また、図９中（２）で示すように、ＨＳ１１５から読み込む場合、既に最新の記憶情報が書き込まれていることが保証されているため、ストレージ制御装置１０１は、ＨＳ１１５から読み込む。
【００６８】
また、図９中（３）で示すように、新たな縮退ディスクとなったディスク１１４から読み込む場合、ストレージ制御装置１０１は、同一ストライプの故障していないディスクや、ＨＳ１１５から記憶情報を復元して読み込む。たとえば、ＲＡＩＤ１であれば、ストレージ制御装置１０１は、故障していないペアディスクから読み込む。また、ＲＡＩＤ５であれば、ストレージ制御装置１０１は、故障していないディスクや、ＨＳ１１５上の記憶情報のＸＯＲの算出結果から、縮退ディスクの記憶情報を復元する。
【００６９】
図１０は、連携リビルド処理中の第２の縮退読込の動作例を示す説明図である。図１０では、バックアップボリューム１２１を用いる縮退読込の動作例について説明する。バックアップボリューム１２１を用いる縮退読込では、ＨＳ１１５は縮退している状態と同じ状況である。また、読込対象はバックアップボリューム１２１にバックアップ後の新規書込要求がなかった箇所であるので、すべての記憶情報は、バックアップボリューム１２１から読込可能である。
【００７０】
図１０中（１）で示すように、読込対象のＲＬＢＡが、障害が発生していないディスク１１１、ディスク１１２にある場合、ストレージ制御装置１０１は、ディスク１１１、ディスク１１２から読み込む。
【００７１】
また、図１０中（２）で示すように、ＨＳ１１５から読み込む場合、ストレージ制御装置１０１は、読込対象のＲＬＢＡから一意に求められるバックアップボリューム１２１上のＳＬＢＡから読み込む。
【００７２】
また、図１０中（３）で示すように、新たな縮退ディスクとなったディスク１１４から読み込む場合、ストレージ制御装置１０１は、バックアップボリューム１２１から読み込む。以下、図１１を用いてリカバリ中の状態遷移を説明する。
【００７３】
図１１は、ストレージシステムの状態遷移の一例を示す説明図である。初めに、ストレージシステム１００は、ＲＡＩＤグループ正常状態となっている。ＲＡＩＤグループ正常状態において、ストレージ制御装置１０１は、定期的にスナップショットを作成し、さらに、スナップショットの作成の後、トラッキングビットマップ１２２を作成してストレージ制御装置１０１の記憶領域に保持する（ステップＳ１１０１）。ＲＡＩＤグループ正常状態において、ディスクに障害が発生した場合（ステップＳ１１０２）、ストレージシステム１００は、リカバリ開始状態となる。リカバリ開始状態において、ストレージ制御装置１０１は、ＨＳ１１５を、障害が発生した縮退ディスクの代替ディスクに設定する。また、ストレージ制御装置１０１は、ストレージシステム１００の管理者によって、縮退ディスクの代わりに換装されたディスクを縮退ディスクの代替ディスクに設定してもよい。
【００７４】
リカバリ開始状態において、差分リビルド処理を開始した場合（ステップＳ１１０３）、ストレージシステム１００は、差分リビルド処理実行状態となる。差分リビルド処理の詳細は、図１２にて後述する。差分リビルド処理実行状態において、別のディスクに障害が発生した場合（ステップＳ１１０４）、ストレージシステム１００は、リカバリ終了（失敗）状態となる。また、差分リビルド処理実行状態において、差分リビルド処理が完了した場合（ステップＳ１１０５）、ストレージシステム１００は、通常リビルド処理を開始して、通常リビルド処理実行状態となる。通常リビルド処理の詳細は、図１５にて後述する。
【００７５】
通常リビルド処理実行状態において、通常リビルド処理が完了した場合（ステップＳ１１０６）、ストレージシステム１００は、リカバリ終了（成功）状態となる。また、通常リビルド処理実行状態において、別のディスクに障害が発生した場合（ステップＳ１１０７）、ストレージシステム１００は、連携リビルド処理を開始して、連携リビルド処理実行状態となる。連携リビルド処理の詳細は、図１７にて後述する。
【００７６】
連携リビルド処理実行状態において、さらに別のディスクに障害が発生した場合（ステップＳ１１０８）、ストレージシステム１００は、リカバリ終了（失敗）状態となる。また、連携リビルド処理実行状態において、連携リビルド処理が完了した場合（ステップＳ１１０９）、ストレージシステム１００は、リカバリ終了（成功）状態となる。
【００７７】
図１２は、差分リビルド処理手順の一例を示すフローチャートである。差分リビルド処理は、冗長度が低下している更新された記憶情報を復元する処理である。ストレージ制御装置１０１は、差分リビルド処理時点のトラッキングビットマップ１２２をコピーして、リビルドビットマップ４１１を作成する（ステップＳ１２０１）。以降の処理において、ストレージ制御装置１０１は、差分リビルド処理開始後の新規書込要求を含めないリビルドビットマップ４１１と、リビルドＲＬＢＡにより、差分リビルド処理の進捗を管理する。復元する箇所をトラッキングビットマップ１２２ではなく、トラッキングビットマップ１２２をコピーしたリビルドビットマップ４１１にて判断する理由は、トラッキングビットマップ１２２は書込要求により動的に変化するため、進捗管理が複雑となるためである。
【００７８】
次に、ストレージ制御装置１０１は、リビルドＲＬＢＡに、先頭のビットのＲＬＢＡを設定する（ステップＳ１２０２）。続けて、ストレージ制御装置１０１は、差分リビルド処理実行状態に遷移する（ステップＳ１２０３）。次に、ストレージ制御装置１０１は、当該ＲＬＢＡの部分リビルドを実行する（ステップＳ１２０４）。当該ＲＬＢＡは、リビルドＲＬＢＡが指すＲＬＢＡのことである。部分リビルドの処理の内容は、ＲＡＩＤレベルに依存する処理となる。たとえば、ＲＡＩＤレベルがＲＡＩＤ１であれば、ストレージ制御装置１０１は、リビルド元ディスクから当該ＲＬＢＡの記憶情報となるユーザデータをコピーしてリビルド先ディスクの当該ＲＬＢＡに書き込む処理を行う。また、ＲＡＩＤレベルがＲＡＩＤ５であれば、ストレージ制御装置１０１は、複数のリビルド元ディスクから記憶情報内のストライプデータとパリティを読み込み、読み込んだストライプデータとパリティをＸＯＲして、ＸＯＲして得られたデータをリビルド先ディスクに書き込む処理を行う。
【００７９】
続けて、ストレージ制御装置１０１は、次のビットがあるか否かを判断する（ステップＳ１２０５）。次のビットは、リビルドビットマップ４１１が示す次のビットとなる。次のビットがある場合（ステップＳ１２０５：Ｙｅｓ）、ストレージ制御装置１０１は、リビルドＲＬＢＡに次のビットのＲＬＢＡを設定する（ステップＳ１２０６）。ステップＳ１２０６の実行後、ストレージ制御装置１０１は、ステップＳ１２０４の処理に移行する。
【００８０】
次のビットがない場合（ステップＳ１２０５：Ｎｏ）、ストレージ制御装置１０１は、リビルドビットマップ４１１を解放する（ステップＳ１２０７）。ステップＳ１２０７の実行終了後、ストレージ制御装置１０１は、差分リビルド処理を終了する。これにより、ストレージシステム１００は、冗長度が低下している更新された記憶情報を復元することができる。
【００８１】
図１３は、差分リビルド処理時の読込処理手順の一例を示すフローチャートである。差分リビルド処理時の読込処理は、差分リビルド処理中に、読込要求が発生した場合の処理である。
【００８２】
読込要求を受け付けると、ストレージ制御装置１０１は、読込対象のＲＬＢＡがリビルドＲＬＢＡ未満か否かを判断する（ステップＳ１３０１）。読込対象のＲＬＢＡがリビルドＲＬＢＡ未満である場合（ステップＳ１３０１：Ｙｅｓ）、続けて、ストレージ制御装置１０１は、トラッキングビットマップ１２２の読込対象のＲＬＢＡのビットがＯＮか否かを判断する（ステップＳ１３０２）。
【００８３】
読込対象のＲＬＢＡがリビルドＲＬＢＡ未満でない場合（ステップＳ１３０１：Ｎｏ）、ストレージ制御装置１０１は、トラッキングビットマップ１２２の読込対象のＲＬＢＡのビットがＯＮであり、リビルドビットマップ４１１の読込対象のＲＬＢＡのビットがＯＦＦか否かを判断する（ステップＳ１３０３）。
【００８４】
読込対象のＲＬＢＡのビットがＯＮでない場合（ステップＳ１３０２：Ｎｏ）か、ステップＳ１３０３の条件に当てはまらない場合（ステップＳ１３０３：Ｎｏ）、ストレージ制御装置１０１は、読込対象ディスクが縮退ディスクか否かを判断する（ステップＳ１３０４）。読込対象ディスクが縮退ディスクである場合（ステップＳ１３０４：Ｙｅｓ）、ストレージ制御装置１０１は、図５の（Ｂ）で示した縮退読込を実行する（ステップＳ１３０５）。
【００８５】
読込対象のＲＬＢＡのビットがＯＮである場合（ステップＳ１３０２：Ｙｅｓ）か、ステップＳ１３０３の条件に当てはまる場合（ステップＳ１３０３：Ｙｅｓ）か、読込対象ディスクが縮退ディスクでない場合（ステップＳ１３０４：Ｎｏ）、ストレージ制御装置１０１は、図５の（Ａ）で示した通常読込を実行する（ステップＳ１３０６）。ステップＳ１３０５、またはステップＳ１３０６の処理終了後、ストレージ制御装置１０１は、差分リビルド処理時の読込処理を終了する。差分リビルド処理時の読込処理を実行することにより、ストレージシステム１００は、差分リビルド処理時に、読込要求を受け付けて読込処理を実行することができる。
【００８６】
リビルドビットマップ４１１ではなくトラッキングビットマップ１２２を参照する理由について説明する。差分リビルド処理実行開始後の書込要求について、ストレージ制御装置１０１は、ＨＳ１１５も含めて書き込む。したがって、ＨＳ１１５上のリビルドＲＬＢＡ未満の領域については、差分リビルド処理実行開始前の記憶情報は差分リビルド処理によって復元済である。さらに、トラッキングビットマップ１２２に記録された新規書込要求による書込内容についてもＨＳ１１５上に書込内容が保証されているため、ストレージ制御装置１０１は、通常読込を行う。リビルドＲＬＢＡ以降のトラッキングビットマップ１２２について、差分リビルド処理実行開始後に書込要求により書き込まれた記憶情報について、ストレージ制御装置１０１は、通常読込を行う。差分リビルド処理実行開始後に書込要求により書き込まれた記憶情報は、リビルドビットマップ４１１の対応するビットがＯＮになっておらず、トラッキングビットマップ１２２の対応するビットがＯＮとなっている。
【００８７】
図１４は、差分リビルド処理時の書込処理手順の一例を示すフローチャートである。差分リビルド処理時の読込処理は、差分リビルド処理中に、書込要求が発生した場合の処理である。
【００８８】
書込要求を受け付けると、ストレージ制御装置１０１は、トラッキングビットマップ１２２に書込要求のＲＬＢＡを記録する（ステップＳ１４０１）。次に、ストレージ制御装置１０１は、リビルド先ディスクを含めたディスクに対して書き込む（ステップＳ１４０２）。ステップＳ１４０２の終了後、ストレージ制御装置１０１は、差分リビルド処理時の書込処理を終了する。差分リビルド処理時の読込処理を実行することにより、ストレージシステム１００は、差分リビルド処理時に、書込要求を受け付けることができる。
【００８９】
図１５は、通常リビルド処理手順の一例を示すフローチャートである。通常リビルド処理は、縮退ディスクの記憶情報を復旧する処理である。ストレージ制御装置１０１は、リビルドＲＬＢＡを０に設定する（ステップＳ１５０１）。次に、ストレージ制御装置１０１は、通常リビルド処理実行状態に遷移する（ステップＳ１５０２）。続けて、ストレージ制御装置１０１は、当該ＲＬＢＡの部分リビルドを実行する（ステップＳ１５０３）。当該ＲＬＢＡの部分リビルドについては、ステップＳ１２０４にて説明した処理内容と同様であるため、説明を省略する。
【００９０】
次に、ストレージシステム１００は、故障したディスクを検出したか否かを判断する（ステップＳ１５０４）。故障したディスクを検出した場合（ステップＳ１５０４：Ｙｅｓ）、ストレージシステム１００は、連携リビルド処理を実行する（ステップＳ１５０５）。
【００９１】
故障したディスクを検出していない場合（ステップＳ１５０４：Ｎｏ）、ストレージシステム１００は、リビルドＲＬＢＡが末尾ＲＬＢＡか否かを判断する（ステップＳ１５０６）。リビルドＲＬＢＡが末尾ＲＬＢＡである場合（ステップＳ１５０６：Ｙｅｓ）、ストレージシステム１００は、リビルドＲＬＢＡをインクリメントする（ステップＳ１５０７）。リビルドＲＬＢＡが末尾ＲＬＢＡでない場合（ステップＳ１５０６：Ｎｏ）、ストレージシステム１００は、通常リビルド処理を終了する。通常リビルド処理を実行することにより、縮退ディスクの記憶情報を復旧することができる。
【００９２】
図１６は、通常リビルド処理時の読込処理手順の一例を示すフローチャートである。通常リビルド処理時の読込処理は、通常リビルド処理中に、読込要求が発生した場合の処理である。
【００９３】
読込要求を受け付けると、ストレージ制御装置１０１は、読込対象のＲＬＢＡがリビルドＲＬＢＡ未満か否かを判断する（ステップＳ１６０１）。読込対象のＲＬＢＡがリビルドＲＬＢＡ以上である場合（ステップＳ１６０１：Ｎｏ）、ストレージ制御装置１０１は、読込対象ディスクが縮退ディスクか否かを判断する（ステップＳ１６０２）。縮退ディスクである場合（ステップＳ１６０２：Ｙｅｓ）、ストレージ制御装置１０１は、縮退読込を実行する（ステップＳ１６０３）。
【００９４】
読込対象ディスクが縮退ディスクでない場合か（ステップＳ１６０２：Ｎｏ）、読込対象のＲＬＢＡがリビルドＲＬＢＡ未満である場合（ステップＳ１６０１：Ｙｅｓ）、ストレージ制御装置１０１は、通常読込を実行する（ステップＳ１６０４）。ステップＳ１６０３の処理、またはステップＳ１６０３の処理を実行終了後、ストレージ制御装置１０１は、通常リビルド処理時の読込処理を終了する。通常リビルド処理時の読込処理を実行することにより、ストレージシステム１００は、通常リビルド処理時に、読込要求を受け付けて、読込処理を実行することができる。なお、通常リビルド処理中の書込処理については、差分リビルド処理中の書込処理と同一の処理となるため、説明を省略する。
【００９５】
図１７は、連携リビルド処理手順の一例を示すフローチャートである。連携リビルド処理は、ＲＡＩＤグループが故障した際に、バックアップボリューム１２１を用いて復元する処理である。
【００９６】
ストレージ制御装置１０１は、通常リビルド処理からリビルドＲＬＢＡを引き継ぐ（ステップＳ１７０１）。次に、ストレージ制御装置１０１は、連携リビルド処理実行状態に遷移する（ステップＳ１７０２）。続けて、ストレージ制御装置１０１は、トラッキングビットマップ１２２の当該ＲＬＢＡのビットがＯＮか否かを判断する（ステップＳ１７０３）。
【００９７】
トラッキングビットマップ１２２の当該ＲＬＢＡのビットがＯＦＦとなっている場合、ビットに対応する記憶情報は、ＯＰＣによる最後のバックアップ以降、更新されていない記憶情報である。したがって、トラッキングビットマップ１２２の当該ＲＬＢＡのビットがＯＦＦである場合（ステップＳ１７０３：Ｎｏ）、ストレージ制御装置１０１は、バックアップボリューム１２１からリビルド先ディスクへコピーする（ステップＳ１７０４）。
【００９８】
トラッキングビットマップ１２２の当該ＲＬＢＡのビットがＯＮとなっている場合、ビットに対応する記憶情報は、ＯＰＣによる最後のバックアップ以降、書込要求によって更新された記憶情報である。したがって、トラッキングビットマップ１２２の当該ＲＬＢＡがＯＮである場合（ステップＳ１７０３：Ｙｅｓ）、ストレージ制御装置１０１は、バックアップボリューム１２１の記憶情報で上書きせず、ステップＳ１７０５の処理に移行する。
【００９９】
ステップＳ１７０４、ステップＳ１７０５の処理終了後、ストレージ制御装置１０１は、リビルドＲＬＢＡが末尾ＲＬＢＡか否かを判断する（ステップＳ１７０５）。リビルドＲＬＢＡが末尾ＲＬＢＡでない場合（ステップＳ１７０５：Ｎｏ）、ストレージ制御装置１０１は、リビルドＲＬＢＡをインクリメントする（ステップＳ１７０６）。ステップＳ１７０６の処理終了後、ストレージ制御装置１０１は、ステップＳ１７０３の処理に移行する。
【０１００】
リビルドＲＬＢＡが末尾ＲＬＢＡである場合（ステップＳ１７０５：Ｙｅｓ）、ストレージ制御装置１０１は、連携リビルド処理を終了する。これにより、ストレージシステム１００は、全体のリカバリ動作が成功として終了する。連携リビルド処理を実行することにより、ＲＡＩＤグループが故障した際もＲＡＩＤグループを復旧できる。
【０１０１】
図１８は、連携リビルド処理時の読込処理手順の一例を示すフローチャートである。連携リビルド処理時の読込処理は、連携リビルド処理中に、読込要求が発生した場合の処理である。
【０１０２】
読込要求を受け付けると、ストレージ制御装置１０１は、読込対象のＲＬＢＡがリビルドＲＬＢＡ未満か否かを判断する（ステップＳ１８０１）。読込対象のＲＬＢＡがリビルドＲＬＢＡ以上である場合（ステップＳ１８０１：Ｎｏ）、ストレージ制御装置１０１は、トラッキングビットマップ１２２の読込対象のＲＬＢＡのビットがＯＮか否かを判断する（ステップＳ１８０２）。
【０１０３】
読込対象のＲＬＢＡがリビルドＲＬＢＡ未満である場合（ステップＳ１８０１：Ｙｅｓ）、または、読込対象のＲＬＢＡのビットがＯＮである場合（ステップＳ１８０２：Ｙｅｓ）、ストレージ制御装置１０１は、図９で説明した第１の縮退読込を実行する（ステップＳ１８０３）。読込対象のＲＬＢＡのビットがＯＦＦである場合（ステップＳ１８０２：Ｎｏ）、ストレージ制御装置１０１は、図１０で説明した第２の縮退読込を実行する（ステップＳ１８０４）。ステップＳ１８０３、またはステップＳ１８０４の処理実行後、ストレージ制御装置１０１は、連携リビルド処理時の読込処理を終了する。連携リビルド処理時の読込処理を実行することにより、ストレージシステム１００は、連携リビルド処理時にも、読込要求を受け付けることができる。なお、連携リビルド処理中、ストレージ制御装置１０１は、書込要求を受け付けない。
【０１０４】
以上説明したように、ストレージ制御装置１０１によれば、ＲＡＩＤバックアップ後の更新箇所を記憶し、ディスク故障時に更新箇所を復元した後、別ディスクが故障したら更新箇所以外をバックアップから復元する。これにより、ストレージ制御装置１０１は、更新箇所の冗長性はＲＡＩＤグループの故障時に回復済のため、ＲＡＩＤグループを復旧できる。すなわち、ＲＡＩＤグループ故障時、スナップショットからのリストア時にスナップショット作成以降の書込要求による更新部分について、ストレージ制御装置１０１は、データロストすることなくリストアできる。近年、ストレージ内のディスク容量が増加しているため、リビルドにかかる時間が増大しており、リビルド処理中に別のストレージに障害が発生する確率が増大しているため、本実施の形態にかかるストレージ制御プログラムの有用性が増すことになる。
【０１０５】
また、通常リビルドについては、本実施の形態にかかるストレージ制御プログラムが実行せずに、他のソフトウェアが実行してもよい。他のソフトウェアが通常リビルドに失敗した場合、本実施の形態にかかるストレージ制御プログラムは、他のソフトウェアから進捗状態を取得できない可能性もある。この場合、本実施の形態にかかるストレージ制御プログラムは、リビルドＲＬＢＡ＝０から連携リビルド処理を行ってもよい。これにより、ストレージシステム１００は、ＲＡＩＤグループの故障を復旧できる。
【０１０６】
また、ストレージ制御装置１０１によれば、通常リビルド処理を中断させた際に、通常リビルドの進捗を表す情報に基づいて、通常リビルド処理によって復元されていない記憶情報を連携リビルド処理によって復元してもよい。これにより、ストレージ制御装置１０１は、ＲＡＩＤグループ故障時のリストアを、バックアップ先からフルコピーによるリストアを行わず、復元されていない記憶情報だけリストアすることができるため、連携リビルドによるリストア時間が短縮できる。連携リビルド処理によるリストア時間が短縮することにより、差分リビルド処理、通常リビルド処理、連携リビルド処理という全体のリストア時間も短縮することができる。
【０１０７】
また、ストレージ制御装置１０１によれば、差分リビルド処理か、通常リビルド処理の実行中に、障害が発生していないディスクとＨＳ１１５のうちの書込要求から特定される書込先の記憶領域に書込要求の書込内容を書き込んでもよい。これにより、ストレージ制御装置１０１は、差分リビルド処理、通常リビルド処理中では、書込処理を行う業務を停止せずにリストアすることができる。
【０１０８】
また、ストレージ制御装置１０１によれば、リストアの実行中に、障害が発生していないディスクとＨＳ１１５とのうちの読込先の記憶情報を読み込むか、バックアップボリューム１２１から読込先の記憶情報を読み込むかを行ってもよい。これにより、ストレージ制御装置１０１は、差分リビルド処理中、通常リビルド処理中、連携リビルド処理中、いずれであっても、読込処理を行う業務を停止せずにリストアすることができる。
【０１０９】
以上のように、リストア中でも、差分リビルド処理中と通常リビルド処理中では読込要求と書込要求を受け付けることができるため、ストレージ制御装置１０１は、書込処理と読込処理を行う業務を止めずにリストアすることができる。また、上記リストア中の連携リビルド処理であっても、読込要求を受け付けることができるため、ストレージ制御装置１０１は、書込処理を行わず読込処理のみ行う業務であれば、業務を止めずにリストアすることができる。
【０１１０】
また、ストレージ制御装置１０１によれば、連携リビルド処理中に読込要求を受け付けた場合、読込要求による読込先の記憶情報が、復元された記憶情報である場合、ＨＳ１１５とのうちの読込先の記憶情報を読み込む。また、読込要求による読込先の記憶情報が、復元された記憶情報でない場合、ストレージ制御装置１０１は、バックアップボリューム１２１から読込先の記憶情報を読み込んでもよい。これにより、ストレージ制御装置１０１は、連携リビルド中の読込要求の読込先の記憶情報が復元された記憶情報であれば、アクセスに時間がかからないＨＳ１１５からアクセスできるため、ストレージシステム１００の性能を向上することができる。なお、バックアップボリューム１２１へのアクセスは、ストレージ制御装置間通信２０３を介すため、自ＲＡＩＤグループへのアクセスより遅くなる可能性がある。
【０１１１】
また、ストレージ制御装置１０１によれば、差分リビルド処理中に読込要求を受け付けた場合、読込要求による読込先の記憶情報が、復元された記憶情報に含まれている場合、ＨＳ１１５から読み込んでもよい。これにより、ストレージ制御装置１０１は、差分リビルド中の読込要求の読込先の記憶情報が復元された記憶情報であれば、アクセスに時間がかからないＨＳ１１５からアクセスできるため、ストレージシステム１００の性能を向上することができる。
【０１１２】
また、ストレージ制御装置１０１によれば、差分リビルド処理中に読込要求を受け付けた際、リビルドビットマップ４１１の読込対象のビットがＯＦＦであり、トラッキングビットマップ１２２の読込対象のビットがＯＮであれば、ＨＳ１１５から読み込んでもよい。これにより、ストレージ制御装置１０１は、アクセスに時間がかからないＨＳ１１５からアクセスできるため、ストレージシステム１００の性能を向上することができる。
【０１１３】
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１５】
（付記１）複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持する保持部と、
前記第１のストレージに障害が発生した場合、前記保持部によって保持された前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行する第１の復元部と、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行する第２の復元部と、
前記第２の復元部による第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する第３の復元部と、
を有することを特徴とするストレージ制御装置。
【０１１６】
（付記２）前記第３の復元部は、
前記第２の復元処理の実行中に前記第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の記憶領域に複製された第１の記憶情報と、前記管理情報と前記第２の復元処理の進捗を表す情報とに基づいて、前記他のストレージに、前記第１のストレージの全記憶情報のうちの前記第１の復元処理および前記第２の復元処理によって復元されていない記憶情報を復元することを特徴とする付記１に記載のストレージ制御装置。
【０１１７】
（付記３）前記ストレージグループへの書込要求を受け付ける受付部と、
前記第１の復元処理の実行中、または前記第２の復元処理の実行中に、前記受付部によって前記書込要求が受け付けられた場合、前記複数のストレージのうちの障害が発生したストレージを除く残余のストレージと前記他のストレージとのうちの前記書込要求から特定される書込先の記憶領域に前記書込要求の書込内容を書き込む書込処理を実行する実行部と、
を有することを特徴とする付記１または２に記載のストレージ制御装置。
【０１１８】
（付記４）前記ストレージグループへの読込要求を受け付ける受付部と、
前記第１の復元処理の実行中か、前記第２の復元処理の実行中か、前記第３の復元部による第３の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による読込先の記憶情報が、前記第１の復元処理か前記第２の復元処理か前記第３の復元処理かによって復元された記憶情報か否かを判断する判断部と、
前記判断部による判断結果に基づいて、前記複数のストレージのうちの障害が発生したストレージを除く残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理か、前記バックアップ先の記憶領域に複製された記憶情報のうちの前記読込先の記憶情報を読み込む読込処理を実行する実行部と、
を有することを特徴とする付記１〜３のいずれか一つに記載のストレージ制御装置。
【０１１９】
（付記５）前記判断部は、
前記第３の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による前記読込先の記憶情報が、前記第１の復元処理か前記第２の復元処理か前記第３の復元処理かによって復元された記憶情報か否かを判断し、
前記実行部は、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報であると判断された場合、前記残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理を実行し、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報でないと判断された場合、前記バックアップ先の記憶領域に複製された記憶情報のうちの前記読込先の記憶情報を読み込む読込処理を実行することを特徴とする付記４に記載のストレージ制御装置。
【０１２０】
（付記６）前記判断部は、
前記第１の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による前記読込先の記憶情報が、前記第１の復元処理の進捗を表す情報と前記管理情報とに基づいて特定される前記第１の復元処理によって復元された記憶情報に含まれているか否かを判断し、
前記実行部は、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報であると判断された場合、前記残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理を実行し、
前記判断部によって前記読込先の記憶情報が前記復元された記憶情報でないと判断された場合、前記残余のストレージの記憶情報に基づいて前記読込先の記憶情報と同一の内容の記憶情報を取得する取得処理を実行することを特徴とする付記４または５に記載のストレージ制御装置。
【０１２１】
（付記７）前記判断部は、
前記第１の復元処理の実行中に、前記受付部によって前記読込要求が受け付けられた場合、前記読込要求による前記読込先の記憶情報が、前記第１の復元処理の進捗を表す情報から特定される記憶情報でなく、前記第１の復元処理の実行開始前の前記管理情報から特定される記憶情報でなく、かつ前記第１の復元処理の実行開始後の前記管理情報から特定される記憶情報であるか否かを判断し、
前記実行部は、
前記判断部によって前記読込先の記憶情報が前記第１の復元処理の進捗を表す情報から特定される記憶情報でなく、前記第１の復元処理の実行開始前の前記管理情報から特定される記憶情報でなく、かつ前記第１の復元処理の実行開始後の前記管理情報から特定される記憶情報であると判断された場合、前記残余のストレージと前記他のストレージとのうちの前記読込先の記憶情報を読み込む読込処理を実行することを特徴とする付記４または５に記載のストレージ制御装置。
【０１２２】
（付記８）複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持する保持部と、
前記第１のストレージに障害が発生した場合、前記保持部によって保持された前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行する第１の復元部と、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行する第２の復元部と、
前記第２の復元部による第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する第３の復元部と、
を有するコンピュータを含むことを特徴とするストレージ制御装置。
【０１２３】
（付記９）コンピュータが、
複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持し、
前記第１のストレージに障害が発生した場合、保持した前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行し、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行し、
前記第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する、
処理を実行することを特徴とするストレージ制御方法。
【０１２４】
（付記１０）コンピュータに、
複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持し、
前記第１のストレージに障害が発生した場合、保持した前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行し、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行し、
前記第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する、
処理を実行させることを特徴とするストレージ制御プログラム。
【０１２５】
（付記１１）複数のストレージにより冗長性が保たれたストレージグループのうちの第１のストレージの第１の記憶情報をバックアップ先の記憶領域に複製した後に前記第１のストレージの第１の記憶情報が更新される場合、更新対象の前記第１のストレージにおける格納位置を示す情報を含む管理情報を保持し、
前記第１のストレージに障害が発生した場合、保持した前記管理情報に基づいて、前記複数のストレージとは異なる他のストレージに、前記第１のストレージの前記格納位置の第２の記憶情報を復元する第１の復元処理を実行し、
前記第１のストレージに記憶された全記憶情報のうち、前記第１の復元処理により復元された第２の記憶情報を除く残りの第３の記憶情報を、前記複数のストレージのうち前記第１のストレージを除く残余のストレージに記憶された記憶情報に基づいて復元する第２の復元処理を実行し、
前記第２の復元処理の実行中に前記複数のストレージのうちの前記第１のストレージとは異なる第２のストレージに障害が発生した場合、前記第２の復元処理を中断させた後、前記バックアップ先の前記第１の記憶情報と前記管理情報とに基づいて、前記他のストレージに、前記第１のストレージに記憶された記憶情報を復元する、
処理をコンピュータに実行させるストレージ制御プログラムを記録したことを特徴とする記録媒体。
【符号の説明】
【０１２６】
１００  ストレージシステム
１０１  ストレージ制御装置
１１１〜１１４  ディスク
１１５  ＨＳ
１２１  バックアップボリューム
１２２  トラッキングビットマップ
４０１  保持部
４０２  第１の復元部
４０３  第２の復元部
４０４  第３の復元部
４０５  受付部
４０６  判断部
４０７  実行部
４１１  リビルドビットマップ
【図１】
2014067313.tif 000003
【図２】
2014067313.tif 000004
【図３】
2014067313.tif 000005
【図４】
2014067313.tif 000006
【図５】
2014067313.tif 000007
【図６】
2014067313.tif 000008
【図７】
2014067313.tif 000009
【図８】
2014067313.tif 000010
【図９】
2014067313.tif 000011
【図１０】
2014067313.tif 000012
【図１１】
2014067313.tif 000013
【図１２】
2014067313.tif 000014
【図１３】
2014067313.tif 000015
【図１４】
2014067313.tif 000016
【図１５】
2014067313.tif 000017
【図１６】
2014067313.tif 000018
【図１７】
2014067313.tif 000019
【図１８】
2014067313.tif 000020