(57)【要約】【課題】故障していない物理ディスクからのデータの読み出しが失敗した場合であっても、故障した物理ディスクに記憶されていたデータを復元できるようにすることを目的とする。【解決手段】ディスクアレイ制御装置２００は、正常ディスク群１１３から、故障ディスク１１１の旧ブロックに対応する１つ以上のブロックである参照ブロック群を読み出す。参照ブロック群の読み出しが成功した場合、ディスクアレイ制御装置２００は、参照ブロック群を用いて旧ブロックのデータを生成し、生成したデータを新ディスク１１２の新ブロックに書き込む。参照ブロック群の読み出しが失敗した場合、ディスクアレイ制御装置２００は、故障ディスク１１１から旧ブロックのデータを読み出し、読み出したデータを新ディスク１１２の新ブロックに書き込む。【選択図】図３
2019169032.tif 000002
【特許請求の範囲】
【請求項１】
ディスクアレイを構成する複数の物理ディスクのうちの故障した物理ディスクを新たな物理ディスクに置き換えるためのディスクアレイ制御システムであり、
前記複数の物理ディスクのうちの前記故障した物理ディスク以外の１つ以上の物理ディスクである正常な物理ディスク群から、前記故障した物理ディスクの旧ブロックに対応する１つ以上のブロックである参照ブロック群を読み出し、前記参照ブロック群の読み出しが成功した場合に前記参照ブロック群を用いて前記旧ブロックのデータを生成し、生成したデータを前記新たな物理ディスクの新ブロックに書き込む通常再構築部と、
前記参照ブロック群の読み出しが失敗した場合に前記故障した物理ディスクから前記旧ブロックのデータを読み出し、読み出したデータを前記新たな物理ディスクの前記新ブロックに書き込む特殊再構築部と
を備えるディスクアレイ制御システム。
【請求項２】
前記特殊再構築部は、前記参照ブロック群の読み出しが失敗した場合に、前記新たな物理ディスクの１つ以上の記憶領域のそれぞれの更新の有無を示す更新管理テーブルを参照することによって、前記新ブロックを含む記憶領域である該当領域が更新されているか判定し、前記該当領域が更新されていない場合に前記読み出したデータを前記新ブロックに書き込む
請求項１に記載のディスクアレイ制御システム。
【請求項３】
前記更新管理テーブルは、前記複数の物理ディスクに対応する複数の更新フラグ群を有し、
１つの更新フラグ群は、１つの物理ディスクの中の１つ以上の記憶領域に対応する１つ以上の更新フラグであり、
前記ディスクアレイ制御システムは、
前記旧ブロックのデータが前記新ブロックに書き込まれる前に、前記ディスクアレイによって構成される仮想ディスクに対して前記新ブロックに対応する仮想ブロックへの書き込みが行われる場合に、前記更新管理テーブルの中の更新フラグのうち前記該当領域に対応する更新フラグを更新有りに変更する物理書き込み部を備える
請求項２に記載のディスクアレイ制御システム。
【請求項４】
故障条件を満たした物理ディスクを前記故障した物理ディスクとして検出し、前記故障した物理ディスクを検出した時に前記更新管理テーブルの中の更新フラグ群のうち前記故障した物理ディスクに対応する更新フラグ群を更新無しに初期化する縮退部を備える
請求項３に記載のディスクアレイ制御システム。
【請求項５】
前記ディスクアレイ制御システムは、
前記正常な物理ディスク群と前記故障した物理ディスクと前記新たな物理ディスクとが接続されるディスクアレイ制御装置を備え、
前記ディスクアレイ制御装置は、
前記通常再構築部と前記特殊再構築部とを備える
請求項１から請求項４のいずれか１項に記載のディスクアレイ制御システム。
【請求項６】
前記ディスクアレイ制御システムは、
前記正常な物理ディスク群と前記新たな物理ディスクとが接続されるディスクアレイ制御装置と、
前記故障した物理ディスクが接続されるホスト装置とを備え、
前記ディスクアレイ制御装置は、前記通常再構築部を備え、
前記ホスト装置は、前記特殊再構築部を備える
請求項１から請求項４のいずれか１項に記載のディスクアレイ制御システム。
【請求項７】
ディスクアレイを構成する複数の物理ディスクのうちの故障した物理ディスクを新たな物理ディスクに置き換えるためのディスクアレイ制御システムで使用されるディスクアレイ制御プログラムであり、
前記複数の物理ディスクのうちの前記故障した物理ディスク以外の１つ以上の物理ディスクである正常な物理ディスク群から、前記故障した物理ディスクの旧ブロックに対応する１つ以上のブロックである参照ブロック群を読み出し、前記参照ブロック群の読み出しが成功した場合に前記参照ブロック群を用いて前記旧ブロックのデータを生成し、生成したデータを前記新たな物理ディスクの新ブロックに書き込む通常再構築部と、
前記参照ブロック群の読み出しが失敗した場合に前記故障した物理ディスクから前記旧ブロックのデータを読み出し、読み出したデータを前記新たな物理ディスクの前記新ブロックに書き込む特殊再構築部
としてコンピュータを機能させるためのディスクアレイ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイの再構築に関するものである。
【背景技術】
【０００２】
ＲＡＩＤ制御装置は、複数台の物理ディスクを組み合わせ、冗長性を持った仮想的なディスクを提供する。
ＲＡＩＤ（レイド）は、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ、または、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓの略称である。
【０００３】
非特許文献１には、ＲＡＩＤについて記載されている。特に、非特許文献１の４．２．８にはＲＡＩＤ５について記載されている。
【０００４】
従来のＲＡＩＤ再構築では、故障していない物理ディスクのそれぞれからデータが読み取られ、読み取られたデータを用いて所定の演算式が演算される。これにより、故障した物理ディスクに記憶されていたデータが復元される。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＳＮＩＡ  Ｔｅｃｈｎｉｃａｌ  Ｐｏｓｉｔｉｏｎ、“Ｃｏｍｍｏｎ  ＲＡＩＤ  Ｄｉｓｋ  Ｄａｔａ  Ｆｏｒｍａｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”、［ｏｎｌｉｎｅ］、ＳＮＩＡ、［２０１８年３月１９日検索］、インターネット（ＵＲＬ：ｈｔｔｐｓ：／／ｗｗｗ．ｓｎｉａ．ｏｒｇ／ｓｉｔｅｓ／ｄｅｆａｕｌｔ／ｆｉｌｅｓ／ＳＮＩＡ＿ＤＤＦ＿Ｔｅｃｈｎｉｃａｌ＿Ｐｏｓｉｔｉｏｎ＿ｖ２．０．ｐｄｆ）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のＲＡＩＤ再構築では、故障していない物理ディスクからのデータの読み出しが失敗すると、故障した物理ディスクに記憶されていたデータを復元することができない。その結果、データの欠損が発生する。
【０００７】
本発明は、故障していない物理ディスクからのデータの読み出しが失敗した場合であっても、故障した物理ディスクに記憶されていたデータを復元できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明のディスクアレイ制御システムは、ディスクアレイを構成する複数の物理ディスクのうちの故障した物理ディスクを新たな物理ディスクに置き換えるためのシステムである。
前記ディスクアレイ制御システムは、
前記複数の物理ディスクのうちの前記故障した物理ディスク以外の１つ以上の物理ディスクである正常な物理ディスク群から、前記故障した物理ディスクの旧ブロックに対応する１つ以上のブロックである参照ブロック群を読み出し、前記参照ブロック群の読み出しが成功した場合に前記参照ブロック群を用いて前記旧ブロックのデータを生成し、生成したデータを前記新たな物理ディスクの新ブロックに書き込む通常再構築部と、
前記参照ブロック群の読み出しが失敗した場合に前記故障した物理ディスクから前記旧ブロックのデータを読み出し、読み出したデータを前記新たな物理ディスクの前記新ブロックに書き込む特殊再構築部とを備える。
【０００９】
前記特殊再構築部は、前記対応ブロック群の読み出しが失敗した場合に、前記新たな物理ディスクの１つ以上の記憶領域のそれぞれの更新の有無を示す更新管理テーブルを参照することによって、前記新ブロックを含む記憶領域である該当領域が更新されているか判定し、前記該当領域が更新されていない場合に前記読み出したデータを前記新ブロックに書き込む。
【００１０】
前記更新管理テーブルは、前記複数の物理ディスクに対応する複数の更新フラグ群を有する。
１つの更新フラグ群は、１つの物理ディスクの中の１つ以上の記憶領域に対応する１つ以上の更新フラグである。
前記ディスクアレイ制御システムは、
前記旧ブロックのデータが前記新ブロックに書き込まれる前に、前記ディスクアレイによって構成される仮想ディスクに対して前記新ブロックに対応する仮想ブロックへの書き込みが行われる場合に、前記更新管理テーブルの中の更新フラグのうち前記該当領域に対応する更新フラグを更新有りに変更する物理書き込み部を備える。
【００１１】
前記ディスクアレイ制御システムは、
故障条件を満たした物理ディスクを前記故障した物理ディスクとして検出し、前記故障した物理ディスクを検出した時に前記更新管理テーブルの中の更新フラグ群のうち前記故障した物理ディスクに対応する更新フラグ群を更新無しに初期化する縮退部を備える。
【００１２】
前記ディスクアレイ制御システムは、
前記正常な物理ディスク群と前記故障した物理ディスクと前記新たな物理ディスクとが接続されるディスクアレイ制御装置を備える。
前記ディスクアレイ制御装置は、
前記通常再構築部と前記特殊再構築部とを備える。
【００１３】
前記ディスクアレイ制御システムは、
前記正常な物理ディスク群と前記新たな物理ディスクとが接続されるディスクアレイ制御装置と、
前記故障した物理ディスクが接続されるホスト装置とを備える。
前記ディスクアレイ制御装置は、前記通常再構築部を備える。
前記ホスト装置は、前記特殊再構築部を備える。
【００１４】
本発明のディスクアレイ制御プログラムは、ディスクアレイを構成する複数の物理ディスクのうちの故障した物理ディスクを新たな物理ディスクに置き換えるためのディスクアレイ制御システムで使用される。
前記ディスクアレイ制御プログラムは、通常再構築部と特殊再構築部としてコンピュータを機能させる
通常再構築部は、前記複数の物理ディスクのうちの前記故障した物理ディスク以外の１つ以上の物理ディスクである正常な物理ディスク群から、前記故障した物理ディスクの旧ブロックに対応する１つ以上のブロックである参照ブロック群を読み出し、前記参照ブロック群の読み出しが成功した場合に前記参照ブロック群を用いて前記旧ブロックのデータを生成し、生成したデータを前記新たな物理ディスクの新ブロックに書き込む。
特殊再構築部は、前記参照ブロック群の読み出しが失敗した場合に前記故障した物理ディスクから前記旧ブロックのデータを読み出し、読み出したデータを前記新たな物理ディスクの前記新ブロックに書き込む。
【発明の効果】
【００１５】
本発明によれば、故障していない物理ディスクからのデータの読み出しが失敗した場合であっても、故障した物理ディスクに記憶されていたデータを復元することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１におけるディスクアレイ制御システム１００の構成図。
【図２】実施の形態１における仮想ディスク１２０と複数の物理ディスク１１０との関係図。
【図３】実施の形態１におけるディスクアレイ制御システム１００の縮退時の構成図。
【図４】実施の形態１におけるディスクアレイ制御装置２００の構成図。
【図５】実施の形態１における不正ブロック管理テーブル２９１の構成図。
【図６】実施の形態１におけるディスク状態管理テーブル２９２の構成図。
【図７】実施の形態１における更新管理テーブル２９３の構成図。
【図８】実施の形態１における記号の説明図。
【図９】実施の形態１における前処理のフローチャート。
【図１０】実施の形態１における初期化処理のフローチャート。
【図１１】実施の形態１における初期化処理のフローチャート。
【図１２】実施の形態１における仮想読み出し処理のフローチャート。
【図１３】実施の形態１における仮想読み出し処理のフローチャート。
【図１４】実施の形態１における仮想書き込み処理のフローチャート。
【図１５】実施の形態１における仮想書き込み処理のフローチャート。
【図１６】実施の形態１におけるブロック復元処理のフローチャート。
【図１７】実施の形態１における縮退処理のフローチャート。
【図１８】実施の形態１における物理書き込み処理のフローチャート。
【図１９】実施の形態１における再構築処理のフローチャート。
【図２０】実施の形態１における再構築処理のフローチャート。
【図２１】実施の形態１における再構築処理のフローチャート。
【図２２】実施の形態２におけるディスクアレイ制御システム１００の縮退時の構成図。
【図２３】実施の形態２におけるディスクアレイ制御装置２００の構成図。
【図２４】実施の形態２におけるホスト装置１３０の構成図。
【図２５】実施の形態２における再構築処理のフローチャート。
【図２６】実施の形態２における再構築処理のフローチャート。
【図２７】実施の形態２における再構築処理のフローチャート。
【図２８】実施の形態２における特殊再構築処理のフローチャート。
【発明を実施するための形態】
【００１７】
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１８】
実施の形態１．
ディスクアレイ制御システム１００について、図１から図２１に基づいて説明する。
【００１９】
＊＊＊構成の説明＊＊＊
図１に基づいて、ディスクアレイ制御システム１００の構成を説明する。
ディスクアレイ制御システム１００は、ディスクアレイを利用するためのコンピュータシステムである。
具体的には、ディスクアレイ制御システム１００は、ＲＡＩＤ５を利用するコンピュータシステムである。
【００２０】
ディスクアレイ制御システム１００は、複数の物理ディスク１１０とディスクアレイ制御装置２００とホスト装置１３０とを備える。
ディスクアレイ制御装置２００は、複数の物理ディスク１１０を制御する。
複数の物理ディスク１１０は、仮想ディスク１２０を構成する。
ホスト装置１３０は、仮想ディスク１２０にアクセスする。
【００２１】
図２に基づいて、仮想ディスク１２０と複数の物理ディスク１１０との関係を説明する。
仮想ディスク１２０は、複数のブロックを有する。図２において、仮想ディスク１２０は、Ｍ個のブロックを有している。
仮想ディスク１２０におけるブロックを仮想ブロックと称する。
第ｘ仮想ブロックのデータをｂｌｏｃｋ（ｘ）と記す。
【００２２】
複数の物理ディスク１１０は、複数の仮想ブロックに対応する複数の記憶領域グループを有する。
記憶領域グループは、複数の物理ディスク１１０に対応する複数の記憶領域である。記憶領域グループは、１つ以上のデータ領域と１つ以上のパリティ領域とを含む。データ領域はデータが記憶される記憶領域であり、パリティ領域は欠損したデータを復元するためのパリティが記憶される記憶領域である。
第ｘ仮想ブロックに対応する第ｊ記憶領域グループをＳｔｒｉｐｅ（ｊ）と記す。
【００２３】
データ領域を有する物理ディスク１１０を物理ディスク１１０ｉと称する。
パリティ領域を有する物理ディスク１１０を物理ディスク１１０ｐと称する。
１つ以上の物理ディスク１１０ｉと１つ以上の物理ディスク１１０ｐとの組み合わせは、記憶領域グループによって異なる。
例えば、第１記憶領域グループでは、第１物理ディスク１１０が物理ディスク１１０ｐとして機能し、残りの物理ディスク１１０のそれぞれが物理ディスク１１０ｉとして機能する。また、第２記憶領域グループでは、第２物理ディスク１１０が物理ディスク１１０ｐとして機能し、残りの物理ディスク１１０のそれぞれが物理ディスク１１０ｉとして機能する。
【００２４】
物理ディスク１１０ｉの第ｊ記憶領域をＳｔｒｉｐ（ｊ，ｉ）と記す。
物理ディスク１１０ｐの第ｊ記憶領域をＳｔｒｉｐ（ｊ，ｐ）と記す。
【００２５】
それぞれの記憶領域は、１つ以上のブロックを有する。図２において、それぞれの記憶領域は、Ｌ個のブロックを有している。
物理ディスク１１０において、記憶領域の中のブロックを物理ブロックと称する。
物理ディスク１１０ｉの第ｊ記憶領域において、第ｋ物理ブロックのデータをｂｌｏｃｋ（ｋ，ｉ，ｊ）と記す。
物理ディスク１１０ｐの第ｊ記憶領域において、第ｋ物理ブロックをパリティをｂｌｏｃｋ（ｋ，ｐ，ｊ）と記す。
【００２６】
記憶領域の大きさは、例えば、２５６キロバイトである。
ブロックの大きさは、例えば、物理ディスク１１０のセクタと同じ大きさか、または、セクタの整数倍の大きさである。セクタの大きさは、例えば、５１２バイトまたは４キロバイトである。
【００２７】
図３において、ディスクアレイの再構築におけるディスクアレイ制御システム１００の構成を説明する。
ディスクアレイの再構築において、故障した物理ディスク１１０が新たな物理ディスク１１０に置き換えられる。
故障した物理ディスク１１０を故障ディスク１１１と称する。
新たな物理ディスク１１０を新ディスク１１２と称する。
故障ディスク１１１と新ディスク１１２と以外の１つ以上の物理ディスク１１０を正常ディスク群１１３と称する。
新ディスク１１２は、ホットスペアによって予備ディスクとして予めディスクアレイ制御装置２００に接続される。または、新ディスク１１２は、ディスクアレイ制御装置２００の空きスロットに新たに接続される。これにより、ディスクアレイ制御装置２００は、故障ディスク１１１と新ディスク１１２との双方にアクセスできる。
【００２８】
図４に基づいて、ディスクアレイ制御装置２００の構成を説明する。
ディスクアレイ制御装置２００は、プロセッサ２０１とメモリ２０２と補助記憶装置２０３と通信装置２０４と入出力インタフェース２０５といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【００２９】
プロセッサ２０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ２０２は揮発性の記憶装置である。メモリ２０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ２０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ２０２に記憶されたデータは必要に応じて補助記憶装置２０３に保存される。
補助記憶装置２０３は不揮発性の記憶装置である。例えば、補助記憶装置２０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置２０３に記憶されたデータは必要に応じてメモリ２０２にロードされる。
通信装置２０４はレシーバ及びトランスミッタである。例えば、通信装置２０４は通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入出力インタフェース２０５は、入力装置、出力装置および複数の物理ディスク１１０が接続されるインタフェースである。
【００３０】
ディスクアレイ制御装置２００は、前処理部２１１と初期化部２１２と仮想読み出し部２１３と仮想書き込み部２１４と物理書き込み部２１５とブロック復元部２１６と縮退部２１７と通常再構築部２１８と特殊再構築部２１９といった要素を備える。これらの要素はソフトウェアで実現される。
【００３１】
補助記憶装置２０３には、前処理部２１１と初期化部２１２と仮想読み出し部２１３と仮想書き込み部２１４と物理書き込み部２１５とブロック復元部２１６と縮退部２１７と通常再構築部２１８と特殊再構築部２１９としてコンピュータを機能させるためのディスクアレイ制御プログラムが記憶されている。ディスクアレイ制御プログラムは、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
さらに、補助記憶装置２０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
つまり、プロセッサ２０１は、ＯＳを実行しながら、ディスクアレイ制御プログラムを実行する。
ディスクアレイ制御プログラムを実行して得られるデータは、メモリ２０２、補助記憶装置２０３、プロセッサ２０１内のレジスタまたはプロセッサ２０１内のキャッシュメモリといった記憶装置に記憶される。
【００３２】
メモリ２０２は記憶部２９０として機能する。但し、他の記憶装置が、メモリ２０２の代わりに、又は、メモリ２０２と共に、記憶部２９０として機能してもよい。
【００３３】
ディスクアレイ制御装置２００は、プロセッサ２０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ２０１の役割を分担する。
【００３４】
ディスクアレイ制御プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータで読み取り可能に記録（格納）することができる。
【００３５】
図５に基づいて、不正ブロック管理テーブル２９１の構成を説明する。
不正ブロック管理テーブル２９１には、１つ以上のレコードが登録される。
それぞれのレコードは、領域番号とディスク番号とオフセットといった要素を有する。これらの要素は互いに対応付けられる。
領域番号は、記憶領域グループを識別する。
ディスク番号は、物理ディスク１１０を識別する。
オフセットは、物理ブロックを識別する。
不正ブロック管理テーブル２９１は、記憶部２９０に記憶される。
【００３６】
図６に基づいて、ディスク状態管理テーブル２９２の構成を説明する。
ディスク状態管理テーブル２９２は、物理ディスク１１０別のレコードが登録される。
それぞれのレコードは、ディスク番号と状態フラグとエラー数といった要素を有する。これらの要素は互いに対応付けられる。
ディスク番号は、物理ディスク１１０を識別する。
状態フラグは、物理ディスク１１０の状態を示す。
エラー数は、物理ディスク１１０で発生したエラーの数である。
ディスク状態管理テーブル２９２は、記憶部２９０に記憶される。
【００３７】
図７に基づいて、更新管理テーブル２９３の構成を説明する。
更新管理テーブル２９３は、記憶領域別のレコードを有する。
それぞれのレコードは、ディスク番号と領域番号と更新フラグといった要素を有する。これらの要素は互いに対応付けられる。
ディスク番号は、物理ディスク１１０を識別する。
領域番号は、記憶領域グループを識別する。
更新フラグは、記憶領域の更新の有無を示す。
更新管理テーブル２９３は、記憶部２９０に記憶される。
【００３８】
＊＊＊動作の説明＊＊＊
ディスクアレイ制御システム１００の動作、特に、ディスクアレイ制御装置２００の動作はディスクアレイ制御方法に相当する。また、ディスクアレイ制御方法の手順はディスクアレイ制御プログラムの手順に相当する。
【００３９】
図８に基づいて、以降の説明で使用する記号について説明する。
仮想ブロック番号ｘは、仮想ブロックの番号であり、仮想ブロックを識別する。
仮想ブロック数Ｍは、仮想ブロックの数である。
物理ディスク数Ｎは、物理ディスク１１０の数である。
物理ブロック数Ｌは、１つの記憶領域に含まれるブロックの数である。
物理ディスク番号ｉは、データ用の物理ディスク１１０の番号であり、物理ディスク１１０ｉを識別する。
物理ディスク番号ｐは、パリティ用の物理ディスク１１０の番号であり、物理ディスク１１０ｐを識別する。
領域番号ｊは、記憶領域グループの番号であり、記憶領域グループおよび記憶領域を識別する。
オフセットｋは、物理ブロックの番号であり、物理ブロックを識別する。
ＦＬＯＯＲ（ａ）は、実数ａの整数部である。つまり、ＦＬＯＯＲ（ａ）は、実数ａの小数を切り捨てて得られる整数である。
ＭＯＤ（ａ，ｂ）は、値ａを値ｂで除算して得られる剰余である。
丸に十字を記した記号は、排他的論理和の演算子を意味する。
【００４０】
図９に基づいて、前処理を説明する。
前処理において、前処理部２１１は、仮想ブロック番号ｘと物理ブロック数Ｌと物理ディスク数Ｎとを用いて、物理ディスク番号ｉと領域番号ｊとオフセットｋとパリティディスク番号ｐとを算出する。
【００４１】
ステップＳ１０１において、前処理部２１１は、オフセットｋと領域番号ｊと物理ディスク番号ｐとを算出する。算出式は、図９に示す通りである。
【００４２】
ステップＳ１０２において、前処理部２１１は、値αを算出する。算出式は、図９に示す通りである。
【００４３】
ステップＳ１０３において、前処理部２１１は、値αをパリティディスク番号ｐと比較する。
値αがパリティディスク番号ｐより小さい場合、処理はステップＳ１０４に進む。
値αがパリティディスク番号ｐ以上である場合、処理はステップＳ１０５に進む。
【００４４】
ステップＳ１０４において、前処理部２１１は、物理ディスク番号ｉを算出する。算出式は、図９に示す通りである。
【００４５】
ステップＳ１０５において、前処理部２１１は、物理ディスク番号ｉを算出する。算出式は、図９に示す通りである。
【００４６】
図１０および図１１に基づいて、初期化処理を説明する。
初期化処理において、初期化部２１２は、ディスクアレイを初期化する。
【００４７】
ステップＳ１１１において、初期化部２１２は、不正ブロック管理テーブル２９１を初期化する。
具体的には、初期化部２１２は、不正ブロック管理テーブル２９１を空にする。
【００４８】
さらに、初期化部２１２は、ディスク状態管理テーブル２９２を初期化する。
具体的には、初期化部２１２は、ディスク状態管理テーブル２９２の全てのレコードにおいて、状態フラグに「正常」を設定し、エラー数にゼロを設定する。
【００４９】
次に、ステップＳ１１２からステップＳ１１７が変数ｊと変数ｋとの範囲内で繰り返し実行される。変数ｊと変数ｋとのそれぞれの範囲は、図１０に示す通りである。
【００５０】
ステップＳ１１２において、初期化部２１２は、値ｐを算出する。算出式は図１０のステップＳ１１２に示す通りである。
【００５１】
次に、ステップＳ１１３およびステップＳ１１４が変数ｎの範囲内で繰り返し実行される。変数ｎの範囲は、図１０に示す通りである。
【００５２】
ステップＳ１１３において、初期化部２１２は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）を読み出す。ｂｌｏｃｋ（ｋ，ｎ，ｊ）は、第ｎ物理ディスクにおいて第ｊ記憶領域の第ｋブロックに記憶されているデータを意味する。
【００５３】
ステップＳ１１４において、初期化部２１２は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了していない場合、処理はステップＳ１１３に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了した場合、処理はステップＳ１１５に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが失敗した場合、処理はステップＳ１１９１に進む。
【００５４】
ステップＳ１１５において、初期化部２１２は、ｂｌｏｃｋ（ｋ，ｐ，ｊ）を算出する。算出式は図１０に示す通りである。
ｂｌｏｃｋ（ｋ，ｐ，ｊ）は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の集合から得られるパリディである。
【００５５】
ステップＳ１１６において、初期化部２１２は、ｂｌｏｃｋ（ｋ，ｐ，ｊ）を書き込む。つまり、初期化部２１２は、第ｐ物理ディスク１１０において第ｊ記憶領域の第ｋ物理ブロックにパリティを書き込む。
【００５６】
ステップＳ１１７において、初期化部２１２は、ｂｌｏｃｋ（ｋ，ｐ，ｊ）の書き込みが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｐ，ｊ）の書き込みが成功し、変数ｊと変数ｋとのループが完了していない場合、処理はステップＳ１１２に進む。
ｂｌｏｃｋ（ｋ，ｐ，ｊ）の書き込みが成功し、変数ｊと変数ｋとのループが完了した場合、処理は終了する。
ｂｌｏｃｋ（ｋ，ｐ，ｊ）の書き込みが失敗した場合、処理はステップＳ１１９２に進む。
【００５７】
ステップＳ１１９１において、初期化部２１２は、ディスク状態管理テーブル２９２を更新する。
具体的には、初期化部２１２は、ディスク番号ｎが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、初期化部２１２は、第ｎ物理ディスクのエラー数を１増やす。
【００５８】
ステップＳ１１９２において、初期化部２１２は、不正ブロック管理テーブル２９１にレコード（ｊ，ｐ，ｋ）を追加する。
レコード（ｊ，ｐ，ｋ）は、領域番号ｊとディスク番号ｐとオフセットｋとが設定されたレコードである。
【００５９】
ステップＳ１１９３において、初期化部２１２は、ディスク状態管理テーブル２９２を更新する。
具体的には、初期化部２１２は、ディスク番号ｐが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、初期化部２１２は、第ｐ物理ディスクのエラー数を１増やす。
【００６０】
ステップＳ１１９３の後、変数ｊと変数ｋとのループが完了していない場合、処理はステップＳ１１２に進む。
ステップＳ１１９３の後、変数ｊと変数ｋとのループが完了した場合、処理は終了する。
【００６１】
図１２および図１３に基づいて、仮想読み出し処理を説明する。
仮想読み出し処理は、ホスト装置１３０が第ｘ仮想ブロックのデータを参照するときに実行される。
仮想読み出し処理において、仮想読み出し部２１３は、第ｘ仮想ブロックのデータをディスクアレイから読み出す。
【００６２】
ステップＳ１２１において、前処理部２１１が前処理を実行する。前処理は、図９に基づいて説明した通りである。
前処理によって、物理ディスク番号ｉと領域番号ｊとオフセットｋとパリティディスク番号ｐとが算出する。
【００６３】
ステップＳ１２２において、仮想読み出し部２１３は、ディスク状態管理テーブル２９２に基づいて、第ｉ物理ディスク１１０が正常であるか判定する。
具体的には、仮想読み出し部２１３は、ディスク状態管理テーブル２９２からディスク番号ｉに対応付けられた状態フラグを選択する。そして、仮想読み出し部２１３は、選択された状態フラグが「正常」を示すか判定する。
第ｉ物理ディスク１１０が正常である場合、処理はステップＳ１２３に進む。
第ｉ物理ディスク１１０が正常でない場合、処理はステップＳ１２９２に進む。
【００６４】
ステップＳ１２３において、仮想読み出し部２１３は、不正ブロック管理テーブル２９１に基づいて、ｂｌｏｃｋ（ｋ，ｉ，ｊ）が正常であるか判定する。
具体的には、仮想読み出し部２１３は、不正ブロック管理テーブル２９１にレコード（ｊ，ｉ，ｋ）が登録されているか判定する。レコード（ｊ，ｉ，ｋ）は、領域番号ｊとディスク番号ｉとオフセットｋとが設定されたレコードである。レコード（ｊ，ｉ，ｋ）が不正ブロック管理テーブル２９１に登録されていない場合、ｂｌｏｃｋ（ｋ，ｉ，ｊ）が正常である。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）が正常である場合、処理はステップＳ１２４に進む。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）が正常でない場合、処理はステップＳ１２９２に進む。
【００６５】
ステップＳ１２４において、仮想読み出し部２１３は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）を読み出す。
つまり、仮想読み出し部２１３は、第ｉ物理ディスク１１０の第ｊ記憶領域から第ｋ物理ブロックのデータを読み出す。
【００６６】
ステップＳ１２５において、仮想読み出し部２１３は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）の読み出しが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の読み出しが成功した場合、処理はステップＳ１２６に進む。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の読み出しが失敗した場合、処理はステップＳ１２９１に進む。
【００６７】
ステップＳ１２６において、仮想読み出し部２１３は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）をホスト装置１３０へ送信する。
ステップＳ１２６の後、処理は正常終了する。
【００６８】
ステップＳ１２９１において、仮想読み出し部２１３は、ディスク状態管理テーブル２９２を更新する。
具体的には、仮想読み出し部２１３は、ディスク番号ｉが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、仮想読み出し部２１３は、第ｉ物理ディスクのエラー数を１増やす。
【００６９】
ステップＳ１２９２において、ブロック復元部２１６がｂｌｏｃｋ（ｋ，ｉ，ｊ）を復元する。
ブロック復元部２１６の動作については後述する。
【００７０】
ステップＳ１２９３において、仮想読み出し部２１３は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）の復元が成功したか判定する。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の復元が成功した場合、処理はステップＳ１２９４に進む。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の復元が失敗した場合、処理はエラー終了する。
【００７１】
ステップＳ１２９４において、物理書き込み部２１５がｂｌｏｃｋ（ｋ，ｉ，ｊ）を書き込む。
物理書き込み部２１５の動作については後述する。
ステップＳ１２９４の後、処理はステップＳ１２６に進む。
【００７２】
図１４および図１５に基づいて、仮想書き込み処理を説明する。
仮想書き込み処理は、ホスト装置１３０が第ｘ仮想ブロックのデータを更新するときに実行される。
仮想書き込み処理において、仮想書き込み部２１４は、第ｘ仮想ブロックのデータをディスクアレイに書き込む。
【００７３】
ステップＳ１３１において、前処理部２１１が前処理を実行する。前処理は、図９に基づいて説明した通りである。
前処理によって、物理ディスク番号ｉと領域番号ｊとオフセットｋとパリティディスク番号ｐとが算出する。
【００７４】
次に、ステップＳ１３２からステップＳ１３５が変数ｎの範囲内で繰り返し実行される。変数ｎの範囲は、図１４に示す通りである。
【００７５】
ステップＳ１３２において、仮想書き込み部２１４は、ディスク状態管理テーブル２９２に基づいて、第ｎ物理ディスク１１０が正常であるか判定する。
具体的には、仮想書き込み部２１４は、ディスク状態管理テーブル２９２からディスク番号ｎに対応付けられた状態フラグを選択する。そして、仮想書き込み部２１４は、選択された状態フラグが「正常」を示すか判定する。
第ｎ物理ディスク１１０が正常である場合、処理はステップＳ１３３に進む。
第ｎ物理ディスク１１０が正常でない場合、処理はステップＳ１３９２に進む。
【００７６】
ステップＳ１３３において、仮想書き込み部２１４は、不正ブロック管理テーブル２９１に基づいて、ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常であるか判定する。
具体的には、仮想読み出し部２１３は、不正ブロック管理テーブル２９１にレコード（ｊ，ｎ，ｋ）が登録されているか判定する。レコード（ｊ，ｎ，ｋ）は、領域番号ｊとディスク番号ｎとオフセットｋとが設定されたレコードである。レコード（ｊ，ｎ，ｋ）が不正ブロック管理テーブル２９１に登録されていない場合、ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常である。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常である場合、処理はステップＳ１３４に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常でない場合、処理はステップＳ１３９２に進む。
【００７７】
ステップＳ１３４において、仮想書き込み部２１４は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）を読み出す。
つまり、仮想書き込み部２１４は、第ｎ物理ディスクの第ｊ記憶領域から第ｋ物理ブロックのデータを読み出す。
【００７８】
ステップＳ１３５において、仮想書き込み部２１４は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了していない場合、処理はステップＳ１３２に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了した場合、処理はステップＳ１３６に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが失敗した場合、処理はステップＳ１３９１に進む。
【００７９】
ステップＳ１３６において、仮想書き込み部２１４は、ホスト装置１３０から仮想ブロックｘのデータを、ｂｌｏｃｋ（ｋ，ｉ，ｊ）として受け取る。
【００８０】
ステップＳ１３７において、仮想書き込み部２１４は、ｂｌｏｃｋ（ｋ，ｐ，ｊ）を算出する。算出式は図１４に示す通りである。
ｂｌｏｃｋ（ｋ，ｐ，ｊ）は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の集合から得られるパリディである。
【００８１】
ステップＳ１３８１において、物理書き込み部２１５がｂｌｏｃｋ（ｋ，ｐ，ｊ）を書き込む。
物理書き込み部２１５の動作については後述する。
【００８２】
ステップＳ１３８２において、物理書き込み部２１５がｂｌｏｃｋ（ｋ，ｉ，ｊ）を書き込む。
物理書き込み部２１５の動作については後述する。
ステップＳ１３８２の後、処理は終了する。
【００８３】
ステップＳ１３９１において、仮想書き込み部２１４は、ディスク状態管理テーブル２９２を更新する。
具体的には、仮想書き込み部２１４は、ディスク番号ｐが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、仮想書き込み部２１４は、第ｐ物理ディスクのエラー数を１増やす。
【００８４】
ステップＳ１３９２において、ブロック復元部２１６がｂｌｏｃｋ（ｋ，ｎ，ｊ）を復元する。
ブロック復元部２１６の動作については後述する。
【００８５】
ステップＳ１３９３において、仮想書き込み部２１４は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の復元が成功したか判定する。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の復元が失敗した場合、処理はステップＳ１３９４に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の復元が成功し、変数ｎのループが完了していない場合、処理はステップＳ１３２に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の復元が成功し、変数ｎのループが完了した場合、処理はステップＳ１３６に進む。
【００８６】
ステップＳ１３９４において、仮想書き込み部２１４は、不正ブロック管理テーブル２９１にレコード（ｊ，ｐ，ｋ）を追加する。
レコード（ｊ，ｐ，ｋ）は、領域番号ｊとディスク番号ｐとオフセットｋとが設定されたレコードである。
【００８７】
ステップＳ１３９５において、仮想書き込み部２１４は、ホスト装置１３０から仮想ブロックｘのデータを、ｂｌｏｃｋ（ｋ，ｉ，ｊ）として受け取る。
ステップＳ１３９５の後、処理はステップＳ１３８２に進む。
【００８８】
図１６に基づいて、ブロック復元処理を説明する。
ブロック復元処理において、ブロック復元部２１６は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）を復元する。つまり、ブロック復元部２１６は、第ｉ物理ディスク１１０の第ｊ記憶領域において第ｋ物理ブロックのデータを復元する。
【００８９】
まず、ステップＳ１４１からステップＳ１４４が変数ｎの範囲内で繰り返し実行される。変数ｎの範囲は、図１６に示す通りである。
【００９０】
ステップＳ１４１において、ブロック復元部２１６は、ディスク状態管理テーブル２９２に基づいて、第ｎ物理ディスク１１０が正常であるか判定する。
具体的には、ブロック復元部２１６は、ディスク状態管理テーブル２９２からディスク番号ｎに対応付けられた状態フラグを選択する。そして、ブロック復元部２１６は、選択された状態フラグが「正常」を示すか判定する。
第ｎ物理ディスク１１０が正常である場合、処理はステップＳ１４２に進む。
第ｎ物理ディスク１１０が正常でない場合、復元が失敗し、処理は終了する。
【００９１】
ステップＳ１４２において、ブロック復元部２１６は、不正ブロック管理テーブル２９１に基づいて、ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常であるか判定する。
具体的には、ブロック復元部２１６は、不正ブロック管理テーブル２９１にレコード（ｊ，ｎ，ｋ）が登録されているか判定する。レコード（ｊ，ｎ，ｋ）は、領域番号ｊとディスク番号ｎとオフセットｋとが設定されたレコードである。レコード（ｊ，ｎ，ｋ）が不正ブロック管理テーブル２９１に登録されていない場合、ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常である。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常である場合、処理はステップＳ１４３に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常でない場合、復元が失敗し、処理は終了する。
【００９２】
ステップＳ１４３において、ブロック復元部２１６は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）を読み出す。
つまり、ブロック復元部２１６は、第ｎ物理ディスクの第ｊ記憶領域から第ｋ物理ブロックのデータを読み出す。
【００９３】
ステップＳ１４４において、ブロック復元部２１６は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了していない場合、処理はステップＳ１４１に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了した場合、処理はステップＳ１４５に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが失敗した場合、処理はステップＳ１４６に進む。
【００９４】
ステップＳ１４５において、ブロック復元部２１６は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）を算出する。算出式は図１６に示す通りである。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の集合から得られるデータである。
ステップＳ１４５によって復元が成功する。その後、処理は終了する。
【００９５】
ステップＳ１４６において、ブロック復元部２１６は、ディスク状態管理テーブル２９２を更新する。
具体的には、ブロック復元部２１６は、ディスク番号ｎが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、ブロック復元部２１６は、第ｎ物理ディスクのエラー数を１増やす。
【００９６】
図１７に基づいて、縮退処理を説明する。
縮退処理において、縮退部２１７は、故障ディスク１１１を検出する。そして、縮退部２１７は、ディスク状態管理テーブル２９２と更新管理テーブル２９３とを故障ディスク１１１について更新する。
【００９７】
ステップＳ１５１からステップＳ１５３が変数ｎの範囲内で繰り返し実行される。変数ｎの範囲は、図１７に示す通りである。
【００９８】
ステップＳ１５１において、縮退部２１７は、ディスク状態管理テーブル２９２に基づいて、第ｎ物理ディスク１１０が故障したか判定する。
具体的には、縮退部２１７は、ディスク番号ｎが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードからエラー数を取得する。そして、縮退部２１７は、取得したエラー数をエラー閾値と比較する。取得したエラー数がエラー閾値より大きい場合、縮退部２１７は、第ｎ物理ディスク１１０が故障したと判定する。
第ｎ物理ディスク１１０が故障した場合、処理はステップＳ１５２に進む。
第ｎ物理ディスク１１０が故障しておらず、変数ｎのループが完了していない場合、変数ｎの値が変更され、処理はステップＳ１５１に進む。
第ｎ物理ディスク１１０が故障しておらず、変数ｎのループが完了した場合、処理は終了する。
【００９９】
ステップＳ１５２において、縮退部２１７は、ディスク状態管理テーブル２９２を更新する。
具体的には、縮退部２１７は、ディスク番号ｎが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中の状態フラグを「故障」に変更する。
【０１００】
ステップＳ１５３は、実施の形態１において特徴となるステップである。
ステップＳ１５３において、縮退部２１７は、更新管理テーブル２９３を更新する。
具体的には、縮退部２１７は、ディスク番号ｎが設定された全てのレコードについて、それぞれの更新フラグを「更新無し」に初期化する。
ステップＳ１５３の後、変数ｎのループが完了していない場合、変数ｎの値が変更され、処理はステップＳ１５１に進む。
ステップＳ１５３の後、変数ｎのループが完了した場合、処理は終了する。
【０１０１】
図１８に基づいて、物理書き込み処理を説明する。
物理書き込み処理において、物理書き込み部２１５は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）を書き込む。つまり、物理書き込み部２１５は、第ｉ物理ディスク１１０において第ｊ記憶領域の第ｋ物理ブロックにデータまたはパリティを書き込む。
【０１０２】
ステップＳ１６１において、物理書き込み部２１５は、ディスク状態管理テーブル２９２に基づいて、第ｉ物理ディスク１１０の状態を判定する。
具体的には、物理書き込み部２１５は、ディスク番号ｉが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中の状態フラグを参照する。
第ｉ物理ディスク１１０の状態が「正常」または「再構築中」である場合、処理はステップＳ１６２に進む。
第ｉ物理ディスク１１０の状態が「故障」である場合、処理はステップＳ１６７に進む。
【０１０３】
ステップＳ１６２において、物理書き込み部２１５は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）を書き込む。
【０１０４】
ステップＳ１６３において、物理書き込み部２１５は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）の書き込みが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の書き込みが成功した場合、処理はステップＳ１６４に進む。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の書き込みが失敗した場合、処理はステップＳ１６５に進む。
【０１０５】
ステップＳ１６４において、物理書き込み部２１５は、不正ブロック管理テーブル２９１からレコード（ｊ，ｉ，ｋ）を削除する。
レコード（ｊ，ｉ，ｋ）は、領域番号ｊとディスク番号ｉとオフセットｋとが設定されたレコードである。
レコード（ｊ，ｉ，ｋ）が不正ブロック管理テーブル２９１に登録されていない場合、ステップＳ１６４は不要である。
ステップＳ１６４の後、処理は終了する。
【０１０６】
ステップＳ１６５において、物理書き込み部２１５は、不正ブロック管理テーブル２９１にレコード（ｊ，ｉ，ｋ）を追加する。
レコード（ｊ，ｉ，ｋ）は、領域番号ｊとディスク番号ｉとオフセットｋとが設定されたレコードである。
【０１０７】
ステップＳ１６６において、物理書き込み部２１５は、ディスク状態管理テーブル２９２を更新する。
具体的には、物理書き込み部２１５は、ディスク番号ｉが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、物理書き込み部２１５は、第ｉ物理ディスクのエラー数を１増やす。
【０１０８】
ステップＳ１６７は、実施の形態１において特徴となるステップである。
ステップＳ１６７において、物理書き込み部２１５は、更新管理テーブル２９３を更新する。
具体的には、物理書き込み部２１５は、ディスク番号ｉと領域番号ｊとが設定されたレコードを更新管理テーブル２９３から選択し、選択したレコードの中の更新フラグを「更新有り」に変更する。
ステップＳ１６７の後、処理は終了する。
【０１０９】
図１９、図２０および図２１に基づいて、再構築処理を説明する。
再構築処理において、第ｘ物理ディスク１１０が故障ディスク１１１から新ディスク１１２に置き換えられる。
【０１１０】
ステップＳ１７１において、通常再構築部２１８は、ディスク状態管理テーブル２９２を更新する。
具体的には、通常再構築部２１８は、ディスク番号ｘが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中の状態フラグを「再構築中」に変更する。
【０１１１】
次に、ステップＳ１７２１からステップＳ１７３３が変数ｊと変数ｋとの範囲内で繰り返し実行される。変数ｊと変数ｋとのそれぞれの範囲は、図１９に示す通りである。
【０１１２】
さらに、変数ｊと変数ｋとのループ内で、ステップＳ１７２１からステップＳ１７２４が変数ｎの範囲内で繰り返し実行される。変数ｎの範囲は、図１９に示す通りである。
【０１１３】
ステップＳ１７２１において、通常再構築部２１８は、ディスク状態管理テーブル２９２に基づいて、第ｎ物理ディスク１１０が正常であるか判定する。
具体的には、通常再構築部２１８は、ディスク状態管理テーブル２９２からディスク番号ｎに対応付けられた状態フラグを選択する。そして、通常再構築部２１８は、選択された状態フラグが「正常」を示すか判定する。
第ｎ物理ディスク１１０が正常である場合、処理はステップＳ１７２２に進む。
第ｎ物理ディスク１１０が正常でない場合、処理はステップＳ１７９２に進む。
【０１１４】
ステップＳ１７２２において、通常再構築部２１８は、不正ブロック管理テーブル２９１に基づいて、ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常であるか判定する。
具体的には、通常再構築部２１８は、不正ブロック管理テーブル２９１にレコード（ｊ，ｎ，ｋ）が登録されているか判定する。レコード（ｊ，ｎ，ｋ）は、領域番号ｊとディスク番号ｎとオフセットｋとが設定されたレコードである。レコード（ｊ，ｎ，ｋ）が不正ブロック管理テーブル２９１に登録されていない場合、ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常である。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常である場合、処理はステップＳ１７２３に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）が正常でない場合、処理はステップＳ１７９２に進む。
【０１１５】
ステップＳ１７２３において、通常再構築部２１８は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）を読み出す。
つまり、通常再構築部２１８は、第ｎ物理ディスク１１０の第ｊ記憶領域から第ｋ物理ブロックのデータを読み出す。
【０１１６】
ステップＳ１７２４において、通常再構築部２１８は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了していない場合、処理はステップＳ１７２１に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが成功し、変数ｎのループが完了した場合、１７３１に進む。
ｂｌｏｃｋ（ｋ，ｎ，ｊ）の読み出しが失敗した場合、処理はステップＳ１７９１に進む。
【０１１７】
ステップＳ１７３１において、通常再構築部２１８は、ｂｌｏｃｋ（ｋ，ｘ，ｊ）を算出する。算出式は図２０に示す通りである。
ｂｌｏｃｋ（ｋ，ｘ，ｊ）は、ｂｌｏｃｋ（ｋ，ｎ，ｊ）の集合から得られるデータである。
【０１１８】
ステップＳ１７３２において、通常再構築部２１８は、ｂｌｏｃｋ（ｋ，ｘ，ｊ）を新ディスク１１２に書き込む。
つまり、通常再構築部２１８は、新ディスク１１２において第ｊ記憶領域の第ｋブロックにｂｌｏｃｋ（ｋ，ｘ，ｊ）を書き込む。
【０１１９】
ステップＳ１７３３において、通常再構築部２１８は、ｂｌｏｃｋ（ｋ，ｘ，ｊ）の書き込みが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｘ，ｊ）の書き込みが成功し、変数ｊと変数ｋとのループが完了していない場合、処理はステップＳ１７２１に進む。
ｂｌｏｃｋ（ｋ，ｘ，ｊ）の書き込みが成功し、変数ｊと変数ｋとのループが完了した場合、処理はステップＳ１７４に進む。
ｂｌｏｃｋ（ｋ，ｘ，ｊ）の書き込みが失敗した場合、処理はステップＳ１７９５に進む。
【０１２０】
ステップＳ１７４において、通常再構築部２１８は、ディスク状態管理テーブル２９２を更新する。
具体的には、通常再構築部２１８は、ディスク番号ｎが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中の状態フラグを「正常」に変更する。
ステップＳ１７４の後、処理は終了する。
【０１２１】
ステップＳ１７９１において、通常再構築部２１８は、ディスク状態管理テーブル２９２を更新する。
具体的には、通常再構築部２１８は、ディスク番号ｎが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、通常再構築部２１８は、第ｎ物理ディスクのエラー数を１増やす。
【０１２２】
ステップＳ１７９２からステップＳ１７９４は、実施の形態１において特徴となるステップである。
【０１２３】
ステップＳ１７９２において、特殊再構築部２１９は、更新管理テーブル２９３に基づいて、該当領域の更新の有無を判定する。
該当領域は、第ｘ物理ディスク１１０の第ｊ記憶領域である。
具体的には、特殊再構築部２１９は、ディスク番号ｘと領域番号ｊとが設定されたレコードを更新管理テーブル２９３から選択し、選択したレコードの中の更新フラグを参照する。
該当領域の更新が無かった場合、処理はステップＳ１７９３に進む。
該当領域の更新が有った場合、処理はステップＳ１７９５に進む。
【０１２４】
ステップＳ１７９３において、特殊再構築部２１９は、故障ディスク１１１からｂｌｏｃｋ（ｋ，ｘ，ｊ）を読み出す。
つまり、特殊再構築部２１９は、故障ディスク１１１の第ｊ記憶領域から第ｋ物理ブロックのデータを読み出す。
【０１２５】
ステップＳ１７９４において、特殊再構築部２１９は、ｂｌｏｃｋ（ｋ，ｘ，ｊ）の読み出しが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｘ，ｊ）の読み出しが成功した場合、処理はステップＳ１７３２に進む。
ｂｌｏｃｋ（ｋ，ｘ，ｊ）の読み出しが失敗した場合、処理はステップＳ１７９５に進む。
【０１２６】
ステップＳ１７９５において、通常再構築部２１８は、不正ブロック管理テーブル２９１にレコード（ｊ，ｘ，ｋ）を追加する。
レコード（ｊ，ｘ，ｋ）は、領域番号ｊとディスク番号ｘとオフセットｋとが設定されたレコードである。
【０１２７】
ステップＳ１７９６において、通常再構築部２１８は、ディスク状態管理テーブル２９２を更新する。
具体的には、通常再構築部２１８は、ディスク番号ｘが設定されたレコードをディスク状態管理テーブル２９２から選択し、選択したレコードの中のエラー数を１増やす。つまり、通常再構築部２１８は、第ｘ物理ディスクのエラー数を１増やす。
ステップＳ１７９６の後、変数ｊと変数ｋとのループが完了していない場合、処理はステップＳ１７２１に進む。
ステップＳ１７９６の後、変数ｊと変数ｋとのループが完了した場合、処理はステップＳ１７４に進む。
【０１２８】
＊＊＊実施の形態１の特徴＊＊＊
ディスクアレイ制御システム１００は、ディスクアレイを構成する複数の物理ディスク１１０のうちの故障した物理ディスク１１０を新たな物理ディスク１１０に置き換える。
【０１２９】
ディスクアレイ制御システム１００は、ディスクアレイ制御装置２００を備える。
ディスクアレイ制御装置２００には、正常な物理ディスク群と故障した物理ディスク１１０と新たな物理ディスク１１０とが接続される。正常な物理ディスク群は、複数の物理ディスク１１０のうちの故障した物理ディスク１１０以外の１つ以上の物理ディスク１１０である。
ディスクアレイ制御装置２００は、通常再構築部２１８、特殊再構築部２１９、物理書き込み部２１５および縮退部２１７などを備える。
【０１３０】
通常再構築部２１８は、正常な物理ディスク群から参照ブロック群を読み出す（図１９のステップＳ１７２３参照）。参照ブロック群は、故障した物理ディスク１１０の旧ブロックに対応する１つ以上のブロックである。旧ブロックは、故障した物理ディスク１１０の中のブロックである。
参照ブロック群の読み出しが成功した場合、通常再構築部２１８は、参照ブロック群を用いて旧ブロックのデータを生成する（図２０のステップＳ１７３１参照）。そして、通常再構築部２１８は、生成したデータを新たな物理ディスク１１０の新ブロックに書き込む。新ブロックは、新たな物理ディスク１１０の中のブロックである。
参照ブロック群の読み出しが失敗した場合、特殊再構築部２１９は、故障した物理ディスク１１０から旧ブロックのデータを読み出す（図２１のステップＳ１７９３参照）。そして、特殊再構築部２１９は、読み出したデータを新たな物理ディスク１１０の新ブロックに書き込む（図２０のステップＳ１７３２参照）。
【０１３１】
参照ブロック群の読み出しが失敗した場合、特殊再構築部２１９は、更新管理テーブル２９３を参照することによって、新ブロックを含む記憶領域である該当領域が更新されているか判定する（図２１のステップＳ１７９２参照）。更新管理テーブル２９３は、新たな物理ディスク１１０の１つ以上の記憶領域のそれぞれの更新の有無を示す。該当領域が更新されていない場合、特殊再構築部２１９は、読み出したデータを新ブロックに書き込む（図２０のステップＳ１７３２参照）。
【０１３２】
更新管理テーブル２９３は、複数の物理ディスク１１０に対応する複数の更新フラグ群を有する（図７参照）。
１つの更新フラグ群は、１つの物理ディスク１１０の中の１つ以上の記憶領域に対応する１つ以上の更新フラグである。
旧ブロックのデータが新ブロックに書き込まれる前に、ディスクアレイによって構成される仮想ディスク１２０に対して新ブロックに対応する仮想ブロックへの書き込みが行われる場合、物理書き込み部２１５は、更新管理テーブル２９３の中の更新フラグのうち該当領域に対応する更新フラグを更新有りに変更する。
【０１３３】
縮退部２１７は、故障条件を満たした物理ディスク１１０を故障した物理ディスク１１０として検出する（図１７のステップＳ１５１参照）。故障した物理ディスク１１０を検出した時に、縮退部２１７は、更新管理テーブル２９３の中の更新フラグ群のうち故障した物理ディスク１１０に対応する更新フラグ群を更新無しに初期化する（図１７のステップＳ１５３参照）。
【０１３４】
＊＊＊実施の形態１の効果＊＊＊
通常の方式でデータの復元ができない場合に、故障した物理ディスクから該当部分のデータを読み出すことによって、データを復元することができる。さらに、故障していない物理ディスクで読み出しエラーが生じた部分を修復することも可能となる。これにより、データ復旧できないためにデータ欠損が発生する、というリスクが低下し、システムの可用性が向上する。
但し、縮退以降、つまり、故障した物理ディスクをディスクアレイから切り離した以降にデータ更新があった記憶領域については、本来復元されるべきデータと、故障した物理ディスクに残されているデータとが異なる。そこで、それぞれの物理ディスクを適当なサイズの記憶領域に分割し、記憶領域毎に物理ディスクの切り離し後のデータ更新の有無を管理する。そして、データ更新が無い記憶領域に対しては故障した物理ディスクを利用する復元方式を適用するが、データ更新があった記憶領域には故障した物理ディスクを利用する復元方式を適用しない。
故障した物理ディスクには多数の読み出し不能セクタが存在すると想定されるが、通常の方式でデータ復元できない部分は僅かであると考えられ、故障した物理ディスクから該当データを読み出せる可能性は高い。
【０１３５】
＊＊＊他の構成＊＊＊
実施の形態１では、ディスク状態管理テーブル２９２によって管理するエラー数に基づいて物理ディスク１１０の故障を判定する例を説明した。
但し、他の方法によって物理ディスク１１０の故障が判定されてもよい。例えば、不正ブロックの数、応答性能、または、ＳＭＡＲＴ特性に基づいて、物理ディスク１１０の故障が判定されてもよい。ＳＭＡＲＴはＳｅｌｆ−Ｍｏｎｉｔｏｒｉｎｇ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｐｏｒｔｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙの略称である。
【０１３６】
実施の形態１では、更新管理テーブル２９３によってＳｔｒｉｐ単位で更新の有無を管理する例を説明した。
但し、Ｓｔｒｉｐ単位とは別の単位で更新の有無が管理されてもよい。管理される単位が小さければ、細かい管理が可能となり、物理ディスク１１０を利用してデータを復元できる可能性が増える。しかし、更新管理テーブル２９３のサイズは大きくなる。
【０１３７】
実施の形態１は、ＲＡＩＤ５以外のＲＡＩＤシステムに適用することが可能である。例えば、ＲＡＩＤ６において故障した物理ディスクが１台である場合には、実施の形態１を利用しなくても再構築が可能である。しかし、ＲＡＩＤ６において故障した物理ディスクが２台である場合には、実施の形態１を利用して再構築を行うことにより、実施の形態１の効果を奏することができる。
【０１３８】
実施の形態２．
故障ディスク１１１をディスクアレイ制御装置２００に接続できない場合の形態について、主に実施の形態１と異なる点を図２２から図２８に基づいて説明する。
【０１３９】
＊＊＊構成の説明＊＊＊
通常時のディスクアレイ制御システム１００の構成は、実施の形態１における構成と同じである（図１および図２参照）。
【０１４０】
図２２において、ディスクアレイの再構築におけるディスクアレイ制御システム１００の構成を説明する。
故障ディスク１１１は、ディスクアレイ制御装置２００の代わりに、ホスト装置１３０に接続される。
例えば、ホットスペアまたは空きスロットが利用できない環境において、故障ディスク１１１はホスト装置１３０に接続される。
他の構成は、実施の形態１における構成と同じである（図３参照）。
【０１４１】
図２３に基づいて、ディスクアレイ制御装置２００の構成を説明する。
ディスクアレイ制御装置２００は、実施の形態１で説明した要素のうち、特殊再構築部２１９を備えない（図４参照）。他の構成は、実施の形態１における構成と同じである。
【０１４２】
図２４に基づいて、ホスト装置１３０の構成を説明する。
ホスト装置１３０は、プロセッサ１３１とメモリ１３２と補助記憶装置１３３と通信装置１３４と入出力インタフェース１３５といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【０１４３】
プロセッサ１３１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ１３１はＣＰＵ、ＤＳＰまたはＧＰＵである。
メモリ１３２は揮発性の記憶装置である。メモリ１３２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ１３２はＲＡＭである。メモリ１３２に記憶されたデータは必要に応じて補助記憶装置１３３に保存される。
補助記憶装置１３３は不揮発性の記憶装置である。例えば、補助記憶装置１３３は、ＲＯＭ、ＨＤＤまたはフラッシュメモリである。補助記憶装置１３３に記憶されたデータは必要に応じてメモリ１３２にロードされる。
通信装置１３４はレシーバ及びトランスミッタである。例えば、通信装置１３４は通信チップまたはＮＩＣである。
入出力インタフェース１３５は、入力装置、出力装置および故障ディスク１１１が接続されるインタフェースである。
【０１４４】
ホスト装置１３０は、特殊再構築部１３６を備える。特殊再構築部１３６はソフトウェアで実現される。
【０１４５】
補助記憶装置１３３には、特殊再構築部１３６としてコンピュータを機能させるための特殊再構築プログラムが記憶されている。特殊再構築プログラムは、メモリ１３２にロードされて、プロセッサ１３１によって実行される。
さらに、補助記憶装置１３３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ１３２にロードされて、プロセッサ１３１によって実行される。
つまり、プロセッサ１３１は、ＯＳを実行しながら、特殊再構築プログラムを実行する。
特殊再構築プログラムを実行して得られるデータは、メモリ１３２、補助記憶装置１３３、プロセッサ１３１内のレジスタまたはプロセッサ１３１内のキャッシュメモリといった記憶装置に記憶される。
【０１４６】
ホスト装置１３０は、プロセッサ１３１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ１３１の役割を分担する。
【０１４７】
特殊再構築プログラムは、ディスクアレイ制御プログラムの一部である。
特殊再構築プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータで読み取り可能に記録（格納）することができる。
【０１４８】
不正ブロック管理テーブル２９１とディスク状態管理テーブル２９２と更新管理テーブル２９３とのそれぞれの構成は、実施の形態１における構成と同じである（図５、図６および図７参照）。
【０１４９】
＊＊＊動作の説明＊＊＊
前処理は、実施の形態１において説明した通りである（図９参照）。
初期化処理は、実施の形態１において説明した通りである（図１０および図１１参照）。
仮想読み出し処理は、実施の形態１において説明した通りである（図１２および図１３参照）。
仮想書き込み処理は、実施の形態１において説明した通りである（図１４および図１５参照）。
ブロック復元処理は、実施の形態１において説明した通りである（図１６参照）。
縮退処理は、実施の形態１において説明した通りである（図１７参照）。
物理書き込み処理は、実施の形態１において説明した通りである（図１８参照）。
【０１５０】
図２５、図２６および図２７に基づいて、再構築処理を説明する。
再構築処理は、実施の形態１で説明したステップのうち、ステップＳ１７９２からステップＳ１７９４までのステップを有さない。他のステップは、実施の形態１におけるステップと同じである（図１９、図２０および図２１参照）。
【０１５１】
図２８に基づいて、特殊再構築処理を説明する。
特殊再構築処理は、再構築処理の後に実行される。
【０１５２】
ステップＳ２０１において、特殊再構築部１３６は、仮想ディスク１２０への書き込みを抑止する。
具体的には、特殊再構築部１３６は、セマフォなどを利用して仮想ディスク１２０に対する排他処理を行う。
これにより、仮想ディスク１２０への書き込みの競合を防ぐことができる。
【０１５３】
ステップＳ２０２において、特殊再構築部１３６は、ディスクアレイ制御装置２００から、不正ブロック管理テーブル２９１と更新管理テーブル２９３とを読み出す。
【０１５４】
次に、ステップＳ２１１からステップＳ２１５が不正ブロック管理テーブル２９１の範囲内で繰り返し実行される。つまり、不正ブロック管理テーブル２９１のそれぞれのレコードに対してステップＳ２１１からステップＳ２１５が実行される。
不正ブロック管理テーブル２９１のそれぞれのレコードを不正ブロック管理レコードと呼ぶ。
不正ブロック管理レコードは、領域番号ｊとディスク番号ｉとオフセットｋとを有する。
【０１５５】
ステップＳ２１１において、特殊再構築部１３６は、不正ブロック管理レコードが故障ディスク１１１のレコードであるか判定する。
具体的には、特殊再構築部１３６は、不正ブロック管理レコードの中のディスク番号ｉが故障ディスク１１１のディスク番号ｘと一致するか判定する。
不正ブロック管理レコードが故障ディスク１１１のレコードである場合、処理はステップＳ２１２に進む。
不正ブロック管理レコードが故障ディスク１１１のレコードでなく、ループが完了していない場合、新たな不正ブロック管理レコードに対してステップＳ２１２からステップＳ２１５が実行される。
不正ブロック管理レコードが故障ディスク１１１のレコードでなく、ループが完了した場合、処理はステップＳ２２１に進む。
【０１５６】
ステップＳ２１２において、特殊再構築部１３６は、更新管理テーブル２９３に基づいて、該当領域の更新の有無を判定する。
該当領域は、不正ブロック管理レコードに対応する記憶領域である。つまり、該当領域は、第ｉ物理ディスク１１０の第ｊ記憶領域である。
具体的には、特殊再構築部１３６は、ディスク番号ｉと領域番号ｊとが設定されたレコードを更新管理テーブル２９３から選択し、選択したレコードの中の更新フラグを参照する。
該当領域の更新が無かった場合、処理はステップＳ２１３に進む。
該当領域の更新が有り、ループが完了していない場合、新たな不正ブロック管理レコードに対してステップＳ２１２からステップＳ２１５が実行される。
該当領域の更新が有り、ループが完了した場合、処理はステップＳ２２１に進む。
【０１５７】
ステップＳ２１３において、特殊再構築部１３６は、故障ディスク１１１からｂｌｏｃｋ（ｋ，ｉ，ｊ）を読み出す。
つまり、特殊再構築部１３６は、故障ディスク１１１の第ｊ記憶領域から第ｋ物理ブロックのデータを読み出す。
【０１５８】
ステップＳ２１４において、特殊再構築部１３６は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）の読み出しが成功したか判定する。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の読み出しが成功した場合、処理はステップＳ２１５に進む。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の読み出しが失敗し、ループが完了していない場合、新たな不正ブロック管理レコードに対してステップＳ２１２からステップＳ２１５が実行される。
ｂｌｏｃｋ（ｋ，ｉ，ｊ）の読み出しが失敗し、ループが完了した場合、処理はステップＳ２２１に進む。
【０１５９】
ステップＳ２１５において、特殊再構築部１３６は、ｂｌｏｃｋ（ｋ，ｉ，ｊ）を新ディスク１１２に書き込む。
つまり、特殊再構築部１３６は、新ディスク１１２において第ｊ記憶領域の第ｋブロックにｂｌｏｃｋ（ｋ，ｉ，ｊ）を書き込む。
具体的には、特殊再構築部１３６は、新ディスク１１２へのｂｌｏｃｋ（ｋ，ｉ，ｊ）の書き込みを物理書き込み部２１５に指示する。そして、物理書き込み部２１５がｂｌｏｃｋ（ｋ，ｉ，ｊ）を新ディスク１１２に書き込む。
【０１６０】
ステップＳ２２１において、特殊再構築部１３６は、仮想ディスク１２０への書き込みの抑止を解除する。
【０１６１】
＊＊＊実施の形態２の特徴＊＊＊
ディスクアレイ制御システム１００は、ディスクアレイ制御装置２００とホスト装置１３０とを備える。
ディスクアレイ制御装置２００には、正常な物理ディスク群と新たな物理ディスク１１０とが接続される。
ホスト装置１３０には、故障した物理ディスク１１０が接続される。
ディスクアレイ制御装置２００は、通常再構築部２１８、物理書き込み部２１５および縮退部２１７などを備える。
ホスト装置１３０は、特殊再構築部１３６を備える。
【０１６２】
＊＊＊実施の形態２の効果＊＊＊
故障ディスク１１１をディスクアレイ制御装置２００に接続できない場合であっても、通常の方式で復元できなかったデータを故障ディスク１１１を利用して復元することができる。
【０１６３】
＊＊＊実施の形態の補足＊＊＊
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【０１６４】
１００  ディスクアレイ制御システム、１１０  物理ディスク、１１１  故障ディスク、１１２  新ディスク、１１３  正常ディスク群、１２０  仮想ディスク、１３０  ホスト装置、１３１  プロセッサ、１３２  メモリ、１３３  補助記憶装置、１３４  通信装置、１３５  入出力インタフェース、１３６  特殊再構築部、２００  ディスクアレイ制御装置、２０１  プロセッサ、２０２  メモリ、２０３  補助記憶装置、２０４  通信装置、２０５  入出力インタフェース、２１１  前処理部、２１２  初期化部、２１３  仮想読み出し部、２１４  仮想書き込み部、２１５  物理書き込み部、２１６  ブロック復元部、２１７  縮退部、２１８  通常再構築部、２１９  特殊再構築部、２９０  記憶部、２９１  不正ブロック管理テーブル、２９２  ディスク状態管理テーブル、２９３  更新管理テーブル。
【図１】
2019169032.tif 000003
【図２】
2019169032.tif 000004
【図３】
2019169032.tif 000005
【図４】
2019169032.tif 000006
【図５】
2019169032.tif 000007
【図６】
2019169032.tif 000008
【図７】
2019169032.tif 000009
【図８】
2019169032.tif 000010
【図９】
2019169032.tif 000011
【図１０】
2019169032.tif 000012
【図１１】
2019169032.tif 000013
【図１２】
2019169032.tif 000014
【図１３】
2019169032.tif 000015
【図１４】
2019169032.tif 000016
【図１５】
2019169032.tif 000017
【図１６】
2019169032.tif 000018
【図１７】
2019169032.tif 000019
【図１８】
2019169032.tif 000020
【図１９】
2019169032.tif 000021
【図２０】
2019169032.tif 000022
【図２１】
2019169032.tif 000023
【図２２】
2019169032.tif 000024
【図２３】
2019169032.tif 000025
【図２４】
2019169032.tif 000026
【図２５】
2019169032.tif 000027
【図２６】
2019169032.tif 000028
【図２７】
2019169032.tif 000029
【図２８】
2019169032.tif 000030