(57)【要約】【課題】ディスク上のデータ欠損箇所が簡単に管理でき、しかもホストから欠損箇所へのリード要求が発生するまで当該欠陥個所をホストに認識させないで済むようにする。【解決手段】データ欠損登録部１１３は、論理ディスク１２へのリードアクセス時のデータ読み出し失敗によりデータ欠損のある不良セクタが検出された場合、当該不良セクタに関し、当該不良セクタが割り当てられる代替セクタの欠損情報領域に“データ欠損あり”を示す欠損情報を記録する。データ欠損判定部１１５ａは、ホスト２０からのリード要求に従うリードアクセスによって論理ディスク１２から読み出されるセクタのデータに基づき、当該セクタの欠損情報領域に“データ欠損あり”を示す欠損情報が記録されているかを判定する。エラー通知部１１５ｂは、データ欠損判定部１１５ａによる判定結果に応じて、データ読み出し失敗をホスト２０に返す。【選択図】      図１
2005293119.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するためのデータ領域及びデータ欠損の有無を示す欠損情報を格納するための欠損情報領域を含むセクタを最小のアクセス単位としてアクセス可能な複数の物理ディスクから構成され、データのみ、もしくはデータ及び当該データに対応する冗長データを前記複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置であって、
前記論理ディスクへのリードアクセス時に復元不能なデータ欠損のある不良セクタが検出された場合、当該不良セクタに関し、当該不良セクタが割り当てられる代替セクタの前記欠損情報領域にデータ欠損ありを示す欠損情報を記録することにより、前記論理ディスクへのリードアクセスが前記論理ディスクを利用するホストからのリード要求以外で行われた場合に、データ読み出し失敗が前記ホストに通知されるのを抑止するデータ欠損登録手段と、
前記ホストからのリード要求に従うリードアクセスによって前記論理ディスクから読み出されるセクタのデータに基づき、当該セクタの前記欠損情報領域にデータ欠損ありを示す欠損情報が記録されているかを判定するデータ欠損判定手段と、
前記データ欠損判定手段によってデータ欠損ありを示す欠損情報が記録されていると判定された場合に、前記リード要求に対する応答としてデータ読み出し失敗を前記ホストに返すエラー通知手段と
を具備することを特徴とするディスクアレイ制御装置。
【請求項２】
前記データ欠損登録手段は、前記検出された不良セクタが割り当てられる前記代替セクタの前記欠損情報領域にデータ欠損ありを示す欠損情報を記録する際に、当該不良セクタのデータに対応する冗長データ、もしくは当該不良セクタのデータに対応するデータ及び冗長データを格納している、前記複数の物理ディスクのうちの当該不良セクタとは異なる物理ディスク上のセクタの前記欠損情報領域にも、データ欠損ありを示す欠損情報を記録することを特徴とする請求項１記載のディスクアレイ制御装置。
【請求項３】
前記複数の物理ディスクのうちのいずれか１つの物理ディスクのデータを復元するためのデータ復元手段であって、データの復元に必要な冗長データ、もしくはデータ及び冗長データを前記論理ディスクから読み出すためのリードアクセスを実行するデータ復元用情報読み出し手段を含むデータ復元手段を更に具備し、
前記データ欠損登録手段は、前記データ復元に必要な情報の読み出し失敗により復元不能なデータ欠損のある不良セクタが検出された場合には、当該不良セクタに関し、データ欠損ありを示す欠損情報を記録するための処理を実行し、前記データ復元用情報読み出し手段によって読み出された前記データ復元に必要な情報に、データ欠損ありを示す欠損情報が記録されているセクタのデータが含まれている場合には、当該データ欠損ありを示す欠損情報が記録されているセクタに対応する、データを復元すべきセクタに関し、データ欠損ありを示す欠損情報を記録するための処理を実行する
ことを特徴とする請求項１記載のディスクアレイ制御装置。
【請求項４】
前記データ欠損登録手段は、前記データ復元に必要な情報の読み出し失敗により復元不能なデータ欠損のある不良セクタが検出された結果、当該不良セクタに関し、データ欠損ありを示す欠損情報を記録するための処理を実行する際には、当該不良セクタのデータに対応する冗長データ、もしくは当該不良セクタのデータに対応するデータ及び冗長データを格納している、前記複数の物理ディスクのうちの当該不良セクタとは異なる物理ディスク上のセクタの前記欠損情報領域にも、データ欠損ありを示す欠損情報を記録することを特徴とする請求項３記載のディスクアレイ制御装置。
【請求項５】
前記ホストからのライト要求を処理するライト要求処理手段であって、要求されたデータのみ、もしくは要求されたデータ及び当該データに対応する冗長データを前記論理ディスクに書き込む際には、対応するセクタの前記欠損情報領域にデータ欠損なしを示す欠損情報を記録するライト要求処理手段を更に具備することを特徴とする請求項１記載のディスクアレイ制御装置。
【請求項６】
前記ライト要求処理手段は、要求されたデータに対応する冗長データを生成する必要があり、且つ当該冗長データの生成に必要な情報を前記論理ディスクから読み出す必要がある場合に、当該冗長データの生成に必要な情報を前記論理ディスクから読み出すためのリードアクセスを実行する冗長データ生成用情報読み出し手段を含み、
前記データ欠損登録手段は、前記冗長データの生成に必要な情報の読み出し失敗により復元不能なデータ欠損のある不良セクタが検出された場合、当該不良セクタに関し、データ欠損ありを示す欠損情報を記録するための処理を実行する
ことを特徴とする請求項５記載のディスクアレイ制御装置。
【請求項７】
前記複数の物理ディスク上の各セクタは、当該セクタへのデータライトがあったか否かを示すデータライト情報を格納するためのデータライト情報領域を更に含み、
前記ライト要求処理手段は、要求されたデータのみ、もしくは要求されたデータ及び当該データに対応する冗長データを前記論理ディスクに書き込む際には、対応するセクタの前記データライト情報領域にデータライトありを示すデータライト情報を記録し、
前記データ欠損登録手段は、前記不良セクタが検出された場合、前記複数の物理ディスクのうち当該不良セクタに対応する他の物理ディスク上のセクタの前記データライト情報領域にデータライトありを示すデータライト情報が記録されているかを判定するデータライト判定手段を含み、データライトありを示すデータライト情報が記録されていないセクタに関しては、当該セクタの前記欠損情報領域へのデータ欠損ありを示す欠損情報の記録を控える
ことを特徴とする請求項５記載のディスクアレイ制御装置。
【請求項８】
セクタを最小のアクセス単位としてアクセス可能な複数の物理ディスクから構成され、データのみ、もしくはデータ及び当該データに対応する冗長データを前記複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置であって、
前記複数の物理ディスクのうちのいずれか１つの物理ディスクのデータを復元するためのデータ復元手段であって、データの復元に必要な冗長データ、もしくはデータ及び冗長データを前記論理ディスクから読み出すデータ復元用情報読み出し手段を含むデータ復元手段と、
前記データ復元用情報読み出し手段による前記データの復元に必要な冗長データ、もしくはデータ及び冗長データの読み出しに失敗した場合、データを復元すべきセクタに対するリードアクセスでメディアエラーとなるように当該セクタの情報を設定するエラー作成手段と、
前記論理ディスクを利用するホストからのリード要求に従うリードアクセスで復元不能なデータ読み出し失敗となった場合、前記リード要求に対する応答としてデータ読み出し失敗を前記ホストに返すエラー通知手段と
を具備することを特徴とするディスクアレイ制御装置。
【請求項９】
データを格納するためのデータ領域及びデータ欠損の有無を示す欠損情報を格納するための欠損情報領域を含むセクタを最小のアクセス単位としてアクセス可能な複数の物理ディスクから構成され、データのみ、もしくはデータ及び当該データに対応する冗長データを前記複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置に適用されるデータ欠損検出時の処理方法であって、
前記論理ディスクへのリードアクセス時に復元不能なデータ欠損のある不良セクタが検出された場合、当該不良セクタに関し、当該不良セクタが割り当てられる代替セクタの前記欠損情報領域にデータ欠損ありを示す欠損情報を記録することにより、前記論理ディスクへのリードアクセスが前記論理ディスクを利用するホストからのリード要求以外で行われた場合に、データ読み出し失敗が前記ホストに通知されるのを抑止するステップと、
前記ホストからのリード要求に従うリードアクセスによって前記論理ディスクから読み出されるセクタのデータに基づき、当該セクタの前記欠損情報領域にデータ欠損ありを示す欠損情報が記録されているかを判定するステップと、
データ欠損ありを示す欠損情報が記録されていると判定された場合に、前記リード要求に対する応答としてデータ読み出し失敗を前記ホストに返すステップと
を具備することを特徴とするデータ欠損検出時の処理方法。
【請求項１０】
前記ホストからのライト要求に応じて、要求されたデータのみ、もしくは要求されたデータ及び当該データに対応する冗長データを前記論理ディスクに書き込む際に、対応するセクタの前記欠損情報領域にデータ欠損なしを示す欠損情報を記録すると共に、当該セクタに前記欠損情報領域とは別に予め確保されているデータライト情報領域にデータライトありを示すデータライト情報を記録するステップと、
前記不良セクタが検出された場合に、前記複数の物理ディスクのうち当該不良セクタに対応する他の物理ディスク上のセクタの前記データライト情報領域にデータライトありを示すデータライト情報が記録されているかを判定するステップと、
データライトありを示すデータライト情報が記録されていないと判定されたセクタに関し、前記データ欠損ありを示す欠損情報が記録されるのを抑止するステップと
を更に具備することを特徴とする請求項９記載のデータ欠損検出時の処理方法。
【請求項１１】
セクタを最小のアクセス単位としてアクセス可能な複数の物理ディスクから構成され、データのみ、もしくはデータ及び当該データに対応する冗長データを前記複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置に適用されるデータ欠損検出時の処理方法であって、
前記複数の物理ディスクのうちのいずれか１つの物理ディスクのデータを復元するために、データの復元に必要な冗長データ、もしくはデータ及び冗長データを前記論理ディスクから読み出すステップと、
前記データの復元に必要な冗長データ、もしくはデータ及び冗長データの読み出しに失敗した場合、データを復元すべきセクタに対するリードアクセスでメディアエラーとなるように当該セクタの情報を設定するステップと、
前記論理ディスクを利用するホストからのリード要求に従うリードアクセスで復元不能なデータ読み出し失敗となってデータ欠損が検出された場合、前記リード要求に対する応答としてデータ読み出し失敗を前記ホストに返すステップと
を具備することを特徴とするデータ欠損検出時の処理方法。
【請求項１２】
データを格納するためのデータ領域及びデータ欠損の有無を示す欠損情報を格納するための欠損情報領域を含むセクタを最小のアクセス単位としてアクセス可能な複数の物理ディスクから構成され、データのみ、もしくはデータ及び当該データに対応する冗長データを前記複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置に、
前記論理ディスクへのリードアクセス時に復元不能なデータ欠損のある不良セクタが検出された場合、当該不良セクタに関し、当該不良セクタが割り当てられる代替セクタの前記欠損情報領域にデータ欠損ありを示す欠損情報を記録することにより、前記論理ディスクへのリードアクセスが前記論理ディスクを利用するホストからのリード要求以外で行われた場合に、データ読み出し失敗が前記ホストに通知されるのを抑止するステップと、
前記ホストからのリード要求に従うリードアクセスによって前記論理ディスクから読み出されるセクタのデータに基づき、当該セクタの前記欠損情報領域にデータ欠損ありを示す欠損情報が記録されているかを判定するステップと、
データ欠損ありを示す欠損情報が記録されていると判定された場合に、前記リード要求に対する応答としてデータ読み出し失敗を前記ホストに返すステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物理ディスクから構成される論理ディスクを制御するディスクアレイ制御装置に係り、特に当該論理ディスク上のデータ欠損が検出された場合に好適なディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラムに関する。
【背景技術】
【０００２】
ストレージ装置におけるデータの信頼性の向上とデータアクセスの高速化とを実現する技術として、ＲＡＩＤ（Redundant Array of Inexpensive Disks、またはRedundant Array of Independent Disks）技術が提案され、また実用化されている。ＲＡＩＤ技術の特徴は、複数の物理ディスク（物理ディスクドライブ）を束ねて１つの論理ディスク（論理ディスクドライブ）を実現し、データ（もしくはデータ及び冗長データ）を当該複数の物理ディスクに分散して格納する点にある。
【０００３】
ＲＡＩＤには幾つかのレベル（ＲＡＩＤレベル）が定義されており、ＲＡＩＤ０（ストライピング）、ＲＡＩＤ１（ミラーリング）並びにＲＡＩＤ３及びＲＡＩＤ５（パリティ付きストライピング）などが知られている。いずれのＲＡＩＤレベル（ＲＡＩＤ方式）を適用するストレージ装置、つまりディスクアレイ装置（ＲＡＩＤ装置）でも、複数の物理ディスクを用いて構成される論理ディスク上に、データ及び冗長データが配置される（但し、ＲＡＩＤ０を除く）。この冗長データの配置により、論理ディスクを構成する複数の物理ディスクのいずれか１つに障害が発生しても、当該冗長データを利用することで、障害が発生したディスクのデータを復元することが可能となる。この冗長データが配置される論理ディスク、即ちデータの冗長性がある論理ディスクは、冗長化論理ディスクと呼ばれる。
【０００４】
さて、冗長化論理ディスクを備えたディスクアレイ装置においても、当該冗長化論理ディスクを構成する複数の物理ディスクの中に故障したディスクが存在する状態、いわゆる縮退状態では、データの冗長性が失われる。このような状況で、更に別の物理ディスクが故障したり、或いは物理ディスク自体は故障していないが、当該ディスクの一部に物理的もしくは論理的に損傷（欠陥）があって、一部分のデータをリードすることができない、メディアエラー等の障害が発生することがある。この場合、障害が発生した箇所に保存されていたデータを復元できない。
【０００５】
ディスクアレイ装置では、当該ディスクアレイ装置が縮退状態に陥った場合に、当該ディスクアレイ装置を縮退状態から回復させるために、故障した物理ディスク（故障ディスク）を別の新たな物理ディスク（新ディスク）に交換し、残りの物理ディスクのデータを利用して、故障ディスクのデータを新ディスクに復元する処理が行われる。ところが、故障ディスクのデータを復元する処理で、残りの物理ディスクの一部分のデータをリードできないと、当該故障ディスクの該当する個所のデータを復元できない。
【０００６】
一方、上記物理ディスク（物理ディスクドライブ）に相当する磁気ディスク装置において、磁気ディスクからのデータリードで、回復不能な不良セクタが検出された場合に、その不良セクタのアドレスをテーブルに登録しておき、当該テーブルにアドレスが登録されたセクタへのデータライトに成功した場合に、磁気ディスク装置内の制御装置がホストコンピュータから独立に、当該セクタを予備セクタに割り当てる技術（自動交代処理技術）も知られている（例えば、特許文献１参照）。
【特許文献１】特開平１０−２４０４５４号公報（段落０００９、００１７〜００２３）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記したように、ＲＡＩＤ技術を適用したディスクアレイ装置であっても、論理ディスクを構成する複数の物理ディスクの１つが故障している縮退状態において、更に残りのいずれかの物理ディスクの一部分に障害が発生した場合には、その部分のデータを復元することができない。したがって、このデータ復元不能な物理ディスクの障害部分は、データ欠損を発生している部分であるといえる。このようなデータ欠損は、故障ディスクを交換して、残りの物理ディスクから故障ディスクのデータを復元しようとする場合にも発生する。
【０００８】
ディスクアレイ装置において、このようなデータ欠損が発生している箇所を検出する都度、当該ディスクアレイ装置を利用するホスト（ホストコンピュータ）に、その旨を通知するのでは、ディスクアレイ装置及びホストの処理効率が低下する。
【０００９】
一方、上記特許文献１に記載された磁気ディスク装置、即ちディスクアレイ装置の論理ディスクを構成する各物理ディスク（物理ディスクドライブ）に相当する磁気ディスク装置では、データ欠損が発生している箇所を、当該ディスク装置内の制御装置がテーブルにより管理する技術を適用している。しかし、磁気ディスク装置と接続される装置（特許文献１ではホストコンピュータであり、ディスクアレイ装置ではディスクアレイ制御装置）からは、当該ディスク装置内の制御装置における動作は、上記テーブルを含めて認識できない。そこで、ディスク装置内の制御装置が管理するテーブルとは別に、ディスクアレイ制御装置が利用可能なテーブルを用意して、当該テーブルによりデータ欠損が発生している箇所を管理することが考えられる。しかし、一般にディスクアレイ装置の論理ディスクは大容量であることが多く、その容量も年々増加する傾向にある。この場合、テーブルにも多くの容量を必要とする。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、論理ディスク上のデータ欠損箇所がテーブルを用いることなく簡単に管理でき、しかもデータ欠損箇所を検出しても当該データ欠損箇所へのホストからのリード要求が発生するまで当該ホストに認識させないで済むディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の１つの観点によれば、データを格納するためのデータ領域及びデータ欠損の有無を示す欠損情報を格納するための欠損情報領域を含むセクタを最小のアクセス単位としてアクセス可能な複数の物理ディスクから構成され、データのみ、もしくはデータ及び当該データに対応する冗長データを上記複数の物理ディスクに分散して格納可能な論理ディスクへのアクセスを制御するディスクアレイ制御装置が提供される。このディスクアレイ制御装置は、論理ディスクへのリードアクセス時に復元不能なデータ欠損のある不良セクタが検出された場合、当該不良セクタに関し、当該不良セクタが割り当てられる代替セクタの上記欠損情報領域にデータ欠損ありを示す欠損情報を記録することにより、上記論理ディスクへのリードアクセスが上記論理ディスクを利用するホストからのリード要求以外で行われた場合に、データ読み出し失敗が上記ホストに通知されるのを抑止するデータ欠損登録手段と、上記ホストからのリード要求に従うリードアクセスによって上記論理ディスクから読み出されるセクタのデータに基づき、当該セクタの上記欠損情報領域にデータ欠損ありを示す欠損情報が記録されているかを判定するデータ欠損判定手段と、このデータ欠損判定手段によってデータ欠損ありを示す欠損情報が記録されていると判定された場合に、上記リード要求に対する応答としてデータ読み出し失敗を上記ホストに返すエラー通知手段とを備えている。
【００１２】
上記の構成においては、論理ディスクを構成する各物理ディスク上の各セクタのデータ欠損の有無が、当該セクタに確保された欠損情報領域に格納される欠損情報、つまりセクタデータの一部をなす欠損情報を用いて管理される。このように上記の構成においては、ディスク上のデータ欠損箇所がテーブルを用いることなく簡単に管理できる。しかも、このディスク上の各セクタの欠損情報領域を利用したデータ欠損の有無の管理により、データ欠損箇所を検出しても当該データ欠損箇所へのホストからのリード要求が発生するまで当該ホストへのエラー通知（読み出し失敗）を抑止することにより、エラー通知が頻繁に発生するのを防止して、ディスクアレイ装置及びホストの処理効率が低下するのを抑えることができる。
【００１３】
ここで、ディスク上の各セクタに、当該セクタへのデータライトがあったか否かを示すデータライト情報を格納するためのデータライト情報領域を持たせ、上記ライト要求処理手段が、要求されたデータのみ、もしくは要求されたデータ及び当該データに対応する冗長データをディスクに書き込む際には、対応するセクタの上記データライト情報領域にデータライトありを示すデータライト情報を記録する構成とすると共に、上記データ欠損登録手段に、上記不良セクタが検出された場合、上記複数の物理ディスクのうち当該不良セクタに対応する他の物理ディスク上のセクタの上記データライト情報領域にデータライトありを示すデータライト情報が記録されているかを判定するデータライト判定手段を持たせ、データライトありを示すデータライト情報が記録されていないセクタに関しては、当該セクタの上記欠損情報領域へのデータ欠損ありを示す欠損情報の記録を控える構成とすると良い。  
このように、データが一度もライトされていないセクタのディスク障害に対しては、データ欠損の登録を行わないことで、データ欠損の発生確率を下げることができる。
【００１４】
また本発明は、論理ディスクを構成する複数の物理ディスクのうちのいずれか１つの物理ディスクのデータを復元するためのデータ復元手段であって、データの復元に必要な冗長データ、もしくはデータ及び冗長データを上記論理ディスクから読み出すデータ復元用情報読み出し手段を含むデータ復元手段と、このデータ復元用情報読み出し手段によるデータの復元に必要な冗長データ、もしくはデータ及び冗長データの読み出しに失敗した場合、データを復元すべきセクタに対するリードアクセスでメディアエラーとなるように当該セクタの情報を設定するエラー作成手段と、上記論理ディスクを利用するホストからのリード要求に従うリードアクセスで復元不能なデータ読み出し失敗となった場合、上記リード要求に対する応答としてデータ読み出し失敗を上記ホストに返すエラー通知手段とを備えたことをも特徴とする。
【００１５】
このような構成においては、データの復元に必要な冗長データ、もしくはデータ及び冗長データの読み出しに失敗した場合、つまりデータを復元すべきセクタへのデータ復元が不能な場合、当該データ復元不能なセクタはデータ欠損のあるセクタとして管理される。しかも、この管理は、データ復元不能なセクタに対するリードアクセスでメディアエラーとなるように当該セクタの情報を設定することにより行われる。つまり、データが復元されなかったデータ欠損のあるセクタを、当該セクタに上記欠損情報領域を確保することなく簡単に管理できる。
【発明の効果】
【００１６】
本発明によれば、論理ディスク上のデータ欠損箇所がテーブルを用いることなく簡単に管理できる。また本発明によれば、データ欠損箇所を検出しても当該データ欠損箇所へのホストからのリード要求が発生するまで当該ホストに認識させないで済むため、ホストへのエラー通知が頻繁に発生するのを防止できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係るディスクアレイ装置１０の構成を示すブロック図である。図１において、ディスクアレイ装置１０は、ディスクアレイ制御装置１１と、当該ディスクアレイ制御装置１１によって制御されるＲＡＩＤ構成の論理ディスク（論理ディスクドライブ）１２とを備えた、いわゆるＲＡＩＤ装置である。論理ディスク１２は、複数、例えば４つの物理ディスク１２-1〜１２-4から構成されるディスクアレイである。物理ディスク（物理ディスクドライブ）１２-1〜１２-4は例えばハードディスクドライブ（ＨＤＤ）である。物理ディスク１２-1〜１２-4は一定サイズのストライプを単位に分割して管理される。物理ディスク１２-1〜１２-4内の同一オフセット位置のストライプの集合はストライプグループと呼ばれる。
【００１８】
ディスクアレイ制御装置１１は、ディスクアレイ装置１０を外部記憶装置（ストレージ装置）として利用するホスト（ホストコンピュータ）２０と、ホストインタフェースバス１３を介して接続されている。ホスト２０からは、物理ディスク１２-1〜１２-4が１つの論理ディスク１２として認識される。ディスクアレイ制御装置１１はまた、論理ディスク１２（を構成する物理ディスク１２-1〜１２-4）と、ディスクインタフェースバス１４を介して接続されている。ホストインタフェースバス１３は、例えばＳＣＳＩ（Small Computer System Interface）バス、或いはファイバチャネル（Fibre Channel）である。ディスクインタフェースバス１４も、ＳＣＳＩバス、或いはファイバチャネルである。なお、ディスクアレイ制御装置１１とホスト２０とがネットワークを介して接続されていても構わない。
【００１９】
本実施形態では、論理ディスク１２がＲＡＩＤ１レベルで用いられる場合、当該論理ディスク１２を構成する物理ディスク１２-1〜１２-4のうち、物理ディスク１２-1及び１２-3の対と、物理ディスク１２-2及び１２-4の対が、それぞれ同一内容を保持するように制御される。ここでは、物理ディスク１２-1及び１２-2はマスタ（primary）ディスク（主ディスク）として用いられ、物理ディスク１２-3及び１２-4はサブ（secondary）ディスク（従ディスク）として用いられるものとする。
【００２０】
また、論理ディスク１２がＲＡＩＤ３レベルまたはＲＡＩＤ５レベルで用いられる場合、１つのストライプグループに属する物理ディスク１２-1〜１２-4上のストライプのうち、１つは冗長データとしてのパリティデータを格納するパリティストライプとして用いられ、残りの３つのストライプはデータを格納するデータストライプとして用いられる。物理ディスク１２-1〜１２-4上の最小のアクセス単位としてのセクタのうち、データストライプに含まれるセクタをデータセクタと呼び、パリティストライプに含まれるセクタをパリティセクタと呼ぶ。ＲＡＩＤ３レベルの場合、物理ディスク１２-1〜１２-4のうちの特定の物理ディスク（例えば物理ディスク１２-4）上のストライプだけがパリティストライプとして用いられる。一方、ＲＡＩＤ５レベルの場合、パリティストライプの位置は、物理ディスク１２-1〜１２-4の間でストライプグループ毎にサイクリックに切り替わる。
【００２１】
ディスクアレイ制御装置１１は、構成管理部１１１と、データ復元部１１２と、データ欠損登録部１１３と、アクセス要求処理部１１４とを備えている。  
構成管理部１１１は、論理ディスク１２の、ＲＡＩＤレベルを含む構成状態を管理する。  
データ復元部１１２は、物理ディスクの故障検出から故障したディスクが交換された後のデータ復元までを制御する。データ復元部１１２は、データ復元用情報読み出し部１１２ａ及びエラー作成部１１２ｂを有する。データ復元用情報読み出し部１１２ａは、物理ディスクのデータ復元に必要なデータ及び冗長データ（但し、ＲＡＩＤ１では冗長データのみ）を論理ディスク１２から読み出す。エラー作成部１１２ｂは、論理ディスク１２上の目的のセクタ（ここではデータ復元できなかったセクタ）に対し、メディアエラーを発生させるための設定を行う。
【００２２】
データ欠損登録部１１３は、論理ディスクへのリードアクセス時に検出される、少なくともその時点において復元不能な不良セクタ、つまりデータ欠損のある不良セクタを管理する。この管理の詳細は後述する。データ欠損登録部１１３は、データライト判定部１１３ａを含む。データライト判定部１１３ａは、データ欠損のある不良セクタに対応する他の物理ディスク上のセクタ（つまりオフセット位置が同一のセクタ）へのデータライト（ホスト２０からのデータライト）が一度でもあったかを判定する。
【００２３】
アクセス要求処理部１１４は、ホスト２０からのリード要求を処理するリード要求処理部１１５と、ホスト２０からのライト要求を処理するライト要求処理部１１６とを有する。リード要求処理部１１５は、後述するデータ欠損判定部１１５ａ及びエラー通知部１１５ｂを含む。ライト要求処理部１１６は、冗長データ生成用情報読み出し部１１６ａを含む。冗長データ生成用情報読み出し部１１６ａは、ライト要求処理時に冗長データ生成のための情報を論理ディスク１２から読み出す必要がある場合に、その読み出しを実行する。
【００２４】
ディスクアレイ制御装置１１は更に、論理ディスク１２を構成する物理ディスク１２-1〜１２-4の各セクタのメディアエラー（障害）の有無を定期的に検査するメディア検査部（図示せず）も有している。
【００２５】
ディスクアレイ制御装置１１の上記各部の機能は、当該ディスクアレイ制御装置１１の図示せぬメモリにインストールされた特定のディスクアレイ制御プログラムを当該ディスクアレイ制御装置１１（が有するＣＰＵ）が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体、例えばフロッピー（登録商標）ディスクに代表される磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤに代表される光ディスク、フラッシュメモリに代表される半導体メモリ等の記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード（頒布）されても構わない。
【００２６】
さて、論理ディスク１２を、ＲＡＩＤ０に代表されるデータ冗長性のないＲＡＩＤレベルで適用する場合、論理ディスク１２を構成する物理ディスク１２-1〜１２-4のいずれかのディスク上にメディアエラーなどの部分的な障害が発生すると、その障害が発生した箇所のデータを復元できない（この状態を、状態１と呼ぶ）。
【００２７】
一方、論理ディスク１２を、ＲＡＩＤ１、ＲＡＩＤ３またはＲＡＩＤ５など、データ冗長性のあるＲＡＩＤレベルで適用する場合、つまり論理ディスク１２が冗長化論理ディスクである場合でも、当該論理ディスク１２を構成する物理ディスク１２-1〜１２-4のいずれかが故障して、データ冗長性が失われた縮退状態で、残りの物理ディスクのいずれかに部分的な障害が更に発生すると、その障害が発生した箇所のデータを復元できない（この状態を、状態２と呼ぶ）。
【００２８】
状態１では、障害が発生した個所を含む論理ディスク１２上の領域に対するリードアクセスがホストから要求された場合に、要求されたデータをホストに返すことができず、データ欠損となる。一方、状態２でも、故障したディスクを別の新たなディスク（新ディスク）に交換し、その新ディスクに故障したディスクのデータを復元するためのデータ復元処理を開始した際に、障害が発生した箇所のデータ（ホスト２０からの要求に応じてライトされたデータ）を復元することができないために、新ディスクに書き込むべきデータがなく、データ欠損となる。
【００２９】
上記状態２に起因するデータ欠損を、論理ディスク１２がＲＡＩＤ１レベルを適用する場合を例に図２を参照して説明する。ここでは、物理ディスク１２-1〜１２-4のうちの物理ディスク１２-1及び１２-2がマスタディスク（主ディスク）に、物理ディスク１２-3及び１２-4がサブディスク（従ディスク）に、それぞれ割り当てられているものとする。この場合、物理ディスク１２-1または１２-2のデータ書き込み時には、物理ディスク１２-3または１２-4の相対位置が同一の領域にも同じデータが書き込まれる。ところが、図２の例のように、物理ディスク１２-3が故障している状態で、物理ディスク１２-1の一部分Ｐにメディアエラー（障害）が発生すると、その部分Ｐのデータを読み出すことができなくなり、データ欠損が発生する。これに対し、物理ディスク１２-3が故障していなければ、物理ディスク１２-1の一部分Ｐにメディアエラーが発生しても、メディアエラーの発生していない物理ディスク１２-3からデータを読み出すことができるので、データ欠損は発生しない。
【００３０】
さて、ホスト２０からディスクアレイ装置１０内のディスクアレイ制御装置１１に対しリード要求が発行された場合に、要求先にデータ欠損が発生していると、要求先のデータを回復することはできない。このような場合、ディスクアレイ制御装置１１は、ホスト２０からのリード要求に対し、失敗を返す以外にない。
【００３１】
しかし、論理ディスク１２へのアクセスは、ホスト２０からのリード要求に応じて行われるとは限らない。つまり、論理ディスク１２へのアクセスが、ディスクアレイ制御装置１１によって自律的に行われることもある。そこで本実施形態では、ディスクアレイ制御装置１１が行う論理ディスク１２へのリードアクセス時にデータ欠損が発生している箇所を検出した場合、データ欠損登録部１１３は、そのデータ欠損を対応するセクタに登録するための後述するデータ欠損登録処理を行うように構成されている。また、ディスクアレイ制御装置１１は、ホスト２０からのリード要求以外でのリードアクセス時にデータ欠損登録処理を行った場合、データ欠損箇所を検出したことをホスト２０に通知しないように構成されている。これによりディスクアレイ制御装置１１は、ホスト２０からデータ欠損が発生している箇所を含む領域を対象とするリード要求が発行されて、当該要求を実行するまで、当該箇所のデータ欠損をホスト２０に認識させないようにすることができる。
【００３２】
本実施形態において、ディスクアレイ制御装置１１が、ホスト２０からのリード要求の実行時以外でデータ欠損を検出し得るケース（つまりディスクアレイ制御装置１１が自律的に論理ディスク１２にリードアクセスするケース）としては、次の２つが挙げられる。
【００３３】
（１）故障した物理ディスク（故障ディスク）が新たなディスク（新ディスク）に交換された後、故障ディスクのデータを新ディスクに復元するデータ復元処理を行う場合
このデータ復元処理で、他の物理ディスクから復元に必要なデータを読み出す際にメディアエラーが発生すると、その部分のデータの復元を行うことができない。
【００３４】
（２）定期的なディスクの検査（メディア検査）が行われる場合
ディスクアレイ制御装置１１は、論理ディスク１２を構成する物理ディスク１２-1〜１２-4上の最小のアクセス単位としての各セクタの健全性を定期的に確認している。即ちディスクアレイ制御装置１１は、物理ディスク１２-1〜１２-4に対して定期的にコマンド（リードコマンドまたはベリファイコマンド）を出して、エラー（メディアエラー）がないかどうかを確認するメディア検査を実行している。このメディア検査では、ホストからのアクセスに関係なく、メディアエラーが検出される場合がある。論理ディスク１２が冗長性のあるＲＡＩＤレベルで用いられている場合、メディアエラーが検出された箇所のデータは他の物理ディスク上の対応する冗長データにより復元できる。しかし、縮退状態では、データの冗長性が失われているために、メディアエラーが検出された箇所のデータは復元できず、データ欠損として検出される。
【００３５】
上記したデータ復元の場合、新ディスク以外の物理ディスクの全領域がリードアクセスされる。このため、メディアエラーが検出されることが十分あり得る。特に、ホスト２０からのアクセスが一度もない領域（一度もリードされたり、或いはライトされていない部分）では、メディアエラーが時間の経過と共に発生している場合があり、ディスク交換時のデータ復元処理まで当該メディアエラーが発見されない可能性がある。
【００３６】
このような、ホスト２０からのアクセスが一度もない領域でのデータ欠損は、ライトデータが最初から存在しないため、エラーとしてホストへ通知する必要がない。そこで本実施形態では、後述するデータ欠損登録処理を行うことで、ホスト２０が必要としない領域でのデータ欠損をできる限り当該ホスト２０に認識させないようにすることができる。
【００３７】
次に、本実施形態の特徴の１つであるデータ欠損登録処理について、図３のフローチャートを参照して説明する。  
ディスクアレイ制御装置１１は、論理ディスク１２を構成する物理ディスク１２-1〜１２-4のうちのいずれかの物理ディスクの一部分に、新たなデータ欠損を検出した場合には、データ欠損登録部１１３として機能する。この場合、データ欠損登録部１１３はデータ欠損登録処理を実行する。
【００３８】
このデータ欠損登録処理が実行されるのは、次のような、ディスクの復元不能な部分的なエラーを検出した場合、即ち
（１）ＲＡＩＤ０に代表される、冗長性を持たないＲＡＩＤレベルで適用される物理ディスク１２-1〜１２-4に対するメディア検査により、ディスクの部分的なエラー（メディアエラー）を検出した場合
（２）冗長性を持たないＲＡＩＤレベルで適用される物理ディスク１２-1〜１２-4のいずれかに対するホスト２０からのリードアクセス時に、ディスクの部分的なエラーを検出した場合
（３）ＲＡＩＤ１，３または５に代表される、冗長性を持つＲＡＩＤレベルを適用しているにも拘わらずに、冗長データを用いてデータを復元できない場合。このような場合は、物理ディスク１２-1〜１２-4のいずれか１つが故障して縮退状態となっていて、且つ故障しているディスク以外のディスクに部分的なエラー（メディアエラーなど）があるときに生じる。ここでは、次に挙げる処理でデータ欠損が検出される。  
・故障したディスクを新ディスクに交換し、当該故障したディスクのデータを新ディスクに復元するデータ復元処理
・故障してないディスクを対象とするメディア検査
（４）冗長性を持つＲＡＩＤレベルで適用される物理ディスク１２-1〜１２-4のいずれか１つが故障して縮退状態となっていて、且つホスト２０からのリードアクセス時にディスクの部分的なエラーを検出した場合
である。
【００３９】
さて、データ欠損登録部１１３は、上記した４つのいずれかの場合に、ディスクの部分的なエラーが発生したデータ復元不能な箇所をデータ欠損が発生している箇所であるとして、図３のフローチャートに従う手順でデータ欠損登録処理を実行する。
【００４０】
まずデータ欠損登録部１１３は、物理ディスク１２-1〜１２-4のうちのいずれかのディスクから検出した、データ欠損が発生している箇所の全てのセクタ（データ欠損のある不良セクタ）を代替セクタ（予備セクタ）に割り当てる代替処理を行う（ステップＳ１）。
【００４１】
図４に物理ディスク１２-i上の各セクタのフォーマットを示し、図５に物理ディスク１２-i（ｉは１〜４のいずれか）上のデータ欠損のある不良セクタ５１が代替セクタ５２に割り当てられている状態と、当該代替セクタ５２の内容とを示す。
【００４２】
本実施形態において、１セクタは、図４に示すように、データ領域４１と、管理領域４２と、ＥＣＣ領域４３とから構成される。データ領域４１のサイズは例えば５１２バイトである。データ領域４１は、基本的にはホスト２０からのデータを格納するのに用いられる。管理領域４２のサイズは例えば８バイトである。管理領域４２の一部は、対応するセクタのデータ欠損の有無を示す欠損情報、例えばデータ欠損フラグを格納するためのデータ欠損フラグ領域４２１として用いられる。データ欠損フラグには、後述するようにＦ０，Ｆ１，Ｆ２の３種類がある。
【００４３】
ＥＣＣ領域４３は、データ領域４１及び管理領域４２に格納されている情報のエラー検出・訂正のためのエラー訂正符号、即ちＥＣＣ（Error Correcting Code）を格納するのに用いられる。但し、ディスクアレイ制御装置１１と論理ディスク１２を構成する物理ディスク１２-1〜１２-4との間で入出力されるのは、データ領域４１及び管理領域４２の情報（ここでは５２０バイトの情報）である。ＥＣＣ領域４３の情報（ＥＣＣ）は一般には物理ディスク１２-1〜１２-4内でのみ処理され、ディスクアレイ制御装置１１からは認識できない。
【００４４】
データ欠損登録部１１３は、上記ステップＳ１においてデータ欠損のある不良セクタ５１を代替セクタ５２に割り当てると、その代替セクタ５２のデータ領域４１に固定のデータ、例えば５１２バイトが全て０のデータを書き込む（ステップＳ２）。この固定データを書き込む理由は、代替セクタ５２に割り当てられた不良セクタ５１は、データ欠損が発生しているセクタであり、当該不良セクタ５１のデータを読み出して、または復元して、代替セクタ５２に書き込むことができないためである。上記ステップＳ２において、データ欠損登録部１１３は、代替セクタ５２のデータ欠損フラグ領域４２１に、“データ欠損あり”を示すデータ欠損フラグＦ１を設定する。このステップＳ２により、不良セクタ５１が代替セクタ５２を介してデータ欠損セクタとして登録され、当該不良セクタ５１が、データ欠損が発生しているセクタであることを示すことができる。また上記ステップＳ２において、データ欠損登録部１１３は、論理ディスク１２が適用されているＲＡＩＤレベルに応じ、データ欠損のある不良セクタ５１に対応する冗長データ（パリティデータ）の生成と生成された冗長データの論理ディスク１２（不良セクタ５１に対応するセクタ）への書き込みとを行う。但し、ＲＡＩＤ３または５では、不良セクタ５１に対応する他の物理ディスク上のデータセクタが正しく読めることが必要となる。もし、不良セクタ５１に対応するデータセクタにデータ欠損がある場合には、当該データセクタも代替処理して上記不良セクタ５１の場合と同様の処理を行った上で、冗長データの生成と書き込みを行う必要がある。
【００４５】
データ欠損登録部１１３は更に、論理ディスク１２が適用されているＲＡＩＤレベルに応じ（具体的には、論理ディスク１２が冗長性のあるＲＡＩＤレベルで適用される場合）、データ欠損のある不良セクタ５１に対応する他の物理ディスク上のセクタ（不良セクタ５１と同一オフセット位置のセクタ）のデータ欠損フラグ領域４２１に、データ欠損フラグＦ２を設定する（ステップＳ３）。このデータ欠損フラグＦ２は、当該フラグＦ２が設定されているセクタが、他の物理ディスク上のデータ欠損のあるセクタに対応していることを示す。つまりデータ欠損登録部１１３は上記ステップＳ３において、データ欠損のある不良セクタ５１に対応する他の物理ディスク上のセクタ（のデータ欠損フラグ領域４２１）に、当該セクタがデータ欠損のあるセクタ（ここでは不良セクタ５１）に対応していることを示す欠損情報（データ欠損フラグＦ２）を記録する。このステップＳ３は、論理ディスク１２がＲＡＩＤ０に代表される、冗長性を持たないＲＡＩＤレベルで適用される場合には、実行されない。また、論理ディスク１２がＲＡＩＤ１で適用される場合には、データ欠損のある不良セクタ５１に対応して冗長データが格納されるセクタにデータ欠損フラグＦ２が設定される。同様に、論理ディスク１２がＲＡＩＤ３または５で適用される場合には、データ欠損のある不良セクタ５１に対応するパリティセクタ及びデータセクタにデータ欠損フラグＦ２が設定される。これにより、不良セクタ５１が割り当てられた代替セクタ５２にデータ欠損が発生して当該代替セクタ５２からデータ欠損フラグＦ１をリードできない場合、つまりデータ欠損が再度発生した場合でも、不良セクタ５１に対応する他の物理ディスク上のセクタ（のデータ欠損フラグ領域４２１）にデータ欠損フラグＦ２が設定されているのを確認することで対処できるようになる。なお、データ欠損フラグＦ２を用いずに、不良セクタ５１を別の代替セクタに割り当てて、当該別の代替セクタ（のデータ欠損フラグ領域４２１）にデータ欠損フラグＦ１を設定しても構わない。
【００４６】
次に、上述のデータ欠損登録処理が行われたセクタへのアクセスが行われる場合の動作について、（１）ホスト２０からのリード要求に対するリード要求処理、（２）ホスト２０からのライト要求に対するライト要求処理、（３）データ復元処理を例に順次説明する。
【００４７】
まず、ホスト２０からのリード要求に対する処理（リード要求処理）について、図６のフローチャートを参照して説明する。  
ディスクアレイ制御装置１１内のリード要求処理部１１５は、ホスト２０からリード要求を受け取ると、当該リード要求を、論理ディスク１２を構成する物理ディスク１２-1〜１２-4のうちの該当する物理ディスク１２-i（１つとは限らない）へのリード要求に変換して、その変換されたリード要求を当該該当する物理ディスクに発行する。
【００４８】
リード要求処理部１１５は、物理ディスク１２-iに発行したリード要求により当該ディスクからデータ（セクタデータ）をリードする（ステップＳ１１）。もし、リード要求で指定されたセクタデータを物理ディスク１２-iから正常にリードできた場合（ステップＳ１２）、リード要求処理部１１５内のデータ欠損判定部１１５ａは、当該データに付されているデータ欠損フラグを参照する（ステップＳ１３）。ここで、リード要求で指定されたディスク領域に、例えば図５に示す状態のデータ欠損のある不良セクタ５１が含まれている場合、当該不良セクタ５１が割り当てられた代替セクタ５２のデータがリードされる。この代替セクタ５２のデータ欠損フラグ領域４２１にはデータ欠損フラグＦ１が設定されている。つまり、代替セクタ５２のデータ領域４１のデータには、“データ欠損あり”を示すデータ欠損フラグＦ１が付されている。
【００４９】
データ欠損判定部１１５ａは、物理ディスク１２-iからリードされたセクタデータに付されているデータ欠損フラグがＦ１であるか否かにより、リードされたセクタはデータ欠損が発生しているセクタ（が割り当てられた代替セクタ）であるか否かを判定する（ステップＳ１４）。もし、リードされたセクタが、データ欠損が発生しているセクタであるならば、データ欠損判定部１１５ａはホスト２０から要求されたリード要求処理は失敗（エラー）となったと判断する。この場合、リード要求処理部１１５内のエラー通知部１１５ｂは、ホスト２０からのリード要求に対する応答として、当該ホスト２０にエラーを返す（ステップＳ１５）。
【００５０】
これに対し、リードされたセクタデータにデータ欠損フラグＦ１が付されていないならば、データ欠損判定部１１５ａは、リードされたセクタは、データ欠損が発生していない正常なセクタであると判断する。この場合、リード要求処理部１１５は、リードされたセクタデータを要求されたセクタデータとしてホスト２０に転送する（ステップＳ１６）。
【００５１】
一方、リード要求で指定されたセクタデータのリードに失敗した場合（ステップＳ１２）、リード要求処理部１１５は要求されたセクタに対応する他の物理ディスク上のセクタの情報から、要求されたセクタデータを復元可能か否かを判定する（ステップＳ１７）。この判定は、要求されたセクタのデータを復元するのに必要な、当該セクタに対応する他の物理ディスク上のセクタのデータが全てリードできたか否かに基づいて行われる。ここで、一部のセクタのデータだけはリードできた場合、そのセクタのデータに付されているデータ欠損フラグが参照される。ここで、要求されたセクタに対応する他の物理ディスク上のセクタは、論理ディスク１２が例えばＲＡＩＤ１で適用される場合には、冗長データが格納されるセクタであり、論理ディスク１２が例えばＲＡＩＤ３または５で適用される場合には、データが格納されるデータセクタとパリティデータが格納されるパリティセクタとである。
【００５２】
もし、要求されたセクタデータを復元可能ならば、リード要求処理部１１５は当該セクタデータを復元し（ステップＳ１８）、その復元されたデータを要求されたセクタデータとしてホスト２０に転送する（ステップＳ１６）。これに対し、要求されたセクタデータを復元できないものの、その復元のために一部のセクタデータをリードできた場合、リード要求処理部１１５内のデータ欠損判定部１１５ａは、当該リードできたセクタデータに付されているデータ欠損フラグがＦ２であるか否か、つまり当該セクタがデータ欠損のあるセクタに対応しているか否かを判定する（ステップＳ１９）。もし、データ欠損のあるセクタに対応しているならば、リード要求処理部１１５はデータ欠損登録部１１３に対し、上記要求された（データ復元すべき）セクタを、データ欠損フラグＦ１によりデータ欠損のあるセクタとして登録させる（ステップＳ２０ａ）。そしてリード要求処理部１１５は、エラー通知部１１５ｂにより、ホスト２０にエラーを返させる（ステップＳ１５）。一方、データ欠損のあるセクタには対応していないか、データ欠損のあるセクタに対応していると判定できない場合には、リード要求処理部１１５はデータ欠損登録部１１３に対し、図３のフローチャートに示した手順でデータ欠損登録処理を行わせる（ステップＳ２０ｂ）。これにより、上記要求されたセクタがデータ欠損フラグＦ１によりデータ欠損のあるセクタとして登録されると共に、当該要求されたセクタに対応する他の物理ディスク上のセクタが、データ欠損フラグＦ２によりデータ欠損のあるセクタに対応するセクタとして登録される。リード要求処理部１１５はステップＳ２０ｂの後、エラー通知部１１５ｂにより、ホスト２０にエラーを返させる（ステップＳ１５）。
【００５３】
データ欠損が物理ディスク１２-iの一時的なエラーで発生した場合には、該当するセクタにデータを上書きすることで、エラーを解消することができる。物理ディスク１２-iに物理的な損傷があるために永続的なエラーとなっているセクタに関しても、当該セクタが割り当てられた代替セクタにデータを書き込むことで、データ欠損を解消できる。
【００５４】
次に、ホスト２０からのライト要求に対する処理（ライト要求処理）について、図７のフローチャートを参照して説明する。  
（ａ）ＲＡＩＤ０の場合
まず、論理ディスク１２がＲＡＩＤ０で用いられ、且つ要求先が物理ディスク１２-i上のセクタＳＥＣであるものとする。この場合、ディスクアレイ制御装置１１内のライト要求処理部１１６は、物理ディスク１２-i上のセクタＳＥＣに対し次のようなデータ書き込みを行う。即ちライト要求処理部１１６は、セクタＳＥＣのデータ領域４１にはホスト２０から要求されたデータを、当該セクタＳＥＣのデータ欠損フラグ領域４２１には“データ欠損なし”を示すデータ欠損フラグＦ２を、それぞれ書き込む（ステップＳ２１）。このようにディスクアレイ制御装置１１は、セクタＳＥＣへのデータライト時には、当該セクタＳＥＣを“データ欠損なし”の状態に設定する。もし、セクタＳＥＣがデータ欠損のある不良セクタ５１の場合、上記ステップＳ２１では、当該不良セクタ５１が割り当てられた代替セクタ５２へのデータ書き込みが行われる。この場合、ステップＳ２１での書き込みにより、代替セクタ５２は“データ欠損なし”の状態に設定される。
【００５５】
（ｂ）ＲＡＩＤ１の場合
次に、論理ディスク１２がＲＡＩＤ１で用いられ、且つ要求先がマスタ物理ディスク上のセクタＳＥＣであるものとする。この場合、ライト要求処理部１１６は、マスタ物理ディスク上のセクタＳＥＣと当該ＳＥＣに対応するサブ物理ディスク上のセクタＳＥＣ’へのデータライトを実行する（ステップＳ３１）。このステップＳ３１でのデータライト時には、ライト要求処理部１１６はセクタＳＥＣ及びＳＥＣ’の両方を、上記したＲＡＩＤ０におけるセクタＳＥＣへのデータライト時と同様に、“データ欠損なし”の状態に設定する。
【００５６】
（ｃ）ＲＡＩＤ３，５の場合
次に、論理ディスク１２がＲＡＩＤ３またはＲＡＩＤ５で用いられるものとする。この場合、ライト要求処理部１１６は、ホスト２０から要求されたデータのみでパリティを算出できるか否かを判定する（ステップＳ４１）。
【００５７】
例えば１つのストライプグループに属する全てのデータストライプ（ここでは、物理ディスク１２-1〜１２-3上に存在するものとする）へのデータライトの場合、要求されたライトデータのみでパリティ（冗長データ）を生成（算出）できる。この場合、ディスクアレイ制御装置１１は、各データストライプに書き込むライトデータをもとに、例えば排他的論理和演算により、同じストライプグループに属するパリティストライプに書き込むべきパリティデータを作成する（ステップＳ４２）。そしてライト要求処理部１１６は、各データストライプへのデータライトと、パリティストライプへのパリティデータライトとを実行する（ステップＳ４３）。このステップＳ４３では、ライト要求処理部１１６は、各データストライプ及びパリティストライプに含まれる全てのセクタを“データ欠損なし”の状態に設定する。
【００５８】
これに対し、例えば物理ディスク１２-i上のセクタＳＥＣへのデータライトの場合には、要求されたライトデータのみではパリティを生成できない。この場合、ライト要求処理部１１６内の冗長データ生成用情報読み出し部１１６ａは、セクタ（データセクタ）ＳＥＣに保存されているデータ（旧データ）及び当該セクタＳＥＣに対応するパリティセクタＰＳに保存されているパリティデータ（旧パリティ）を、パリティ生成用情報として読み出す（ステップＳ４４）。
【００５９】
もし、ステップＳ４４での読み出しに成功し、旧データ及び旧パリティ共にデータ欠損がないならば（ステップＳ４５）、冗長データ生成用情報読み出し部１１６ａは、当該旧データ及び旧パリティと、ホスト２０から要求されたデータセクタＳＥＣに書き込むべきデータ（新データ）とから、パリティデータ（新パリティ）を生成する（ステップＳ４６）。そして冗長データ生成用情報読み出し部１１６ａは、データセクタＳＥＣへのデータライトと、パリティスセクタＰＳへのパリティデータライトとを実行する（ステップＳ４７）。このステップＳ４７では、冗長データ生成用情報読み出し部１１６ａは、データセクタＳＥＣ及びパリティスセクタＰＳを“データ欠損なし”の状態に設定する。
【００６０】
一方、ステップＳ４４での読み出しに失敗し、旧データ及び旧パリティの少なくとも一方にデータ欠損があることが検出されたならば（ステップＳ４５）、ディスクアレイ制御装置１１内のデータ欠損登録部１１３は、データセクタＳＥＣ及びパリティスセクタＰＳを、図３のフローチャートに示した手順で、データ欠損のあるセクタとして登録する（ステップＳ４８）。なお、セクタＳＥＣに対応する他の全てのデータセクタのデータを読み出してパリティを生成する構成であっても構わない。
【００６１】
次に、ディスクアレイ制御装置１１内のデータ復元部１１２によるデータ復元処理について、図８のフローチャートを参照して説明する。  
論理ディスク１２がデータ冗長性のあるＲＡＩＤレベル（例えばＲＡＩＤ１，３または５など）で用いられている場合、当該論理ディスク１２を構成する物理ディスク１２-1〜１２-4のいずれか１つが故障しても、その故障した物理ディスクのデータを、残りの物理ディスクのデータから復元できる。但し、既に述べたように、残りの物理ディスクのいずれかにデータ欠損が発生している箇所があると、その箇所に対応する故障したディスクのデータは復元できない。
【００６２】
データ復元部１１２は、論理ディスク１２からデータ復元に必要なデータ及び冗長データ（但し、ＲＡＩＤ１では冗長データのみ）をリードする（ステップＳ５１）。ここでは、物理ディスク１２-1が故障した結果、当該故障した物理ディスク１２-1のデータを、物理ディスク１２-2〜１２-4上のデータ及び冗長データから復元し、当該故障した物理ディスク１２-1に代えて用いられる新たな物理ディスク（新ディスク）に保存するものとする。
【００６３】
もし、ステップＳ５１において、少なくとも一部のリードに失敗して、該当する箇所でのデータ欠損を検出した場合（ステップＳ５２）、データ復元部１１２からデータ欠損登録部１１３に制御が渡される。するとデータ欠損登録部１１３は、リードに失敗したセクタについて、図３のフローチャートに示したのと同様の手順で、データ欠損フラグＦ１によりデータ欠損のあるセクタとして登録する（ステップＳ５３）。このステップＳ５３では、正常にリードできたセクタには、データ欠損フラグＦ２により、データ欠損のあるセクタと対応していることが記録されるものの、データを復元すべきセクタには、データ欠損フラグＦ１によりデータ欠損のあることが記録される。ステップＳ５３が実行されると、目的とするデータの復元処理は終了し、次のデータの復元処理が開始される。
【００６４】
また、ステップＳ５１でのリードには成功したものの、リードした部分に既に“データ欠損あり”として記録されているセクタ、即ちデータ欠損フラグＦ１が設定されているセクタが含まれている場合も（ステップＳ５４）、データ復元部１１２からデータ欠損登録部１１３に制御が渡される。このとき、データ欠損のあるセクタに対応する他の物理ディスク上のセクタ（のデータ欠損フラグ領域４２１）には、データ欠損フラグＦ２が記録されている。データ欠損登録部１１３は、データを復元すべきセクタに、データ欠損フラグＦ１によりデータ欠損のあることを記録する（ステップＳ５５）。このステップＳ５５が実行されると、目的とするデータの復元処理は終了する。
【００６５】
これに対し、ステップＳ５１でのリードに成功し、且つリードした部分に“データ欠損あり”として記録されているセクタが含まれていない場合（ステップＳ５４）、データ復元部１１２は、論理ディスク１２からステップＳ５１でリードしたデータ及び冗長データをもとに、対応するデータを復元する（ステップＳ５６）。
【００６６】
上述したように本実施形態においては、各セクタの一部に確保されたデータ欠損フラグ領域４２１に保持される、データ欠損フラグと呼ぶフラグ情報（欠損情報）を用いて、データ欠損部分を管理している。これにより、ホストからの要求ではなく、ディスクアレイ装置１０の内部の処理（ディスクアレイ制御装置１１によるデータ復元処理やメディア検査）にて発見したデータ欠損を、必要なとき以外にはホストに認識させることなく、リードライト要求を処理できる。
【００６７】
なお、データ欠損登録部１１３によるデータ欠損登録処理で、データ欠損のあるセクタに対応する他の物理ディスク上のセクタに、データ欠損フラグＦ２に代えてデータ欠損フラグＦ１を記録する構成としても構わない。つまり、データ欠損のあるセクタに対応する他の物理ディスク上のセクタも、データ欠損のあるセクタとして取り扱う構成としても構わない。
【００６８】
［第１の変形例］
次に、上記実施形態の第１の変形例について説明する。  
まず、第１の変形例で適用されるセクタのフォーマットを図９に示す。図９から明らかなように、第１の変形例では、管理領域４２の一部に、データ欠損フラグ領域４２１とは別に、ライトフラグを格納するためのライトフラグ領域４２２が確保されている。このライトフラグは、対応するセクタに対してホスト２０からのライト要求に従うデータライトが一度でも行われたか否かを示すフラグ情報（データライト情報）である。つまり第１の変形例では、論理ディスク１２上の各セクタに、データ欠損の有無を示すデータ欠損フラグ以外に、ホスト２０からのデータライトがあったか否かを示すライトフラグを記録する構成が適用される。
【００６９】
第１の変形例の特徴は、各セクタにライトフラグを記録することにより、データライトがあったか否かをセクタ毎に判別可能とし、更に、ホスト２０からのデータライトがあった部分に関してはデータ欠損の有無を管理する一方、それ以外の部分では、もともとデータが書かれていないことから、データ欠損フラグの状態に無関係にデータ欠損と判定しない構成とした点にある。この第１の変形例によれば、ホスト２０から実際にデータライトがあった部分だけのデータ欠損を管理することができる。つまり、第１の変形例においては、データ欠損の発生部分を限定することができる。但し、第１の変形例では、論理ディスク１２が冗長性のあるＲＡＩＤレベルで適用される必要がある。
【００７０】
ディスクアレイ制御装置１１は、論理ディスク１２を作成する際に、当該論理ディスク１２上の全セクタを初期化する。このときディスクアレイ制御装置１１は、各セクタのライトフラグ領域４２２に、データライトなしを示す例えばライトフラグＦ１０を設定する。
【００７１】
またディスクアレイ制御装置１１は、ホスト２０からライト要求を受け取った場合には、ライト要求処理部１１６として機能して、上記図７のフローチャートと同様の手順でライト要求処理を実行する。上記実施形態と異なる点は、書き込みの対象となるセクタのデータ領域４１にデータ（またはパリティ）を書き込む際に、当該セクタのライトフラグ領域４２２に、データ欠損の有無に無関係に、データライトありを示すライトフラグＦ１１を書き込む点である。
【００７２】
次に、上記第１の変形例におけるデータ欠損登録処理について、上記実施形態におけるデータ欠損登録処理（図３のフローチャート）と異なる点を中心に、図１０のフローチャートを参照して説明する。なお、図３のフローチャートと同様のステップには、同一符号を付してある。
【００７３】
まずディスクアレイ制御装置１１内のデータ欠損登録部１１３は、データ欠損のある不良セクタが検出された場合、上記実施形態と同様に、当該不良セクタを代替セクタに割り当てる代替処理を行う（ステップＳ１）。すると、データ欠損登録部１１３内のデータライト判定部１１３ａが起動される。データライト判定部１１３ａは、データ欠損のある不良セクタに対応する他の物理ディスク上のセクタのライトフラグを参照する（ステップＳ６１）。明らかなように、論理ディスク１２が冗長性のあるＲＡＩＤレベルで適用される第１の変形例では、物理ディスク１２-1〜１２-4上のそれぞれ対応するセクタ、つまりオフセット位置が同一のセクタは、全てデータライトされているか、全てデータライトされていないかのいずれかである。したがってデータライト判定部１１３ａは、データ欠損のある不良セクタが検出された場合、当該不良セクタに対応する他の物理ディスク上のセクタのライトフラグ領域４２２に設定されているライトフラグを参照することにより、当該不良セクタに対するデータライトがあったか否かを判別することができる（ステップＳ６２）。
【００７４】
データ欠損登録部１１３は、ステップＳ６１で参照されたライトフラグがＦ１０であり、したがってライトなしを示すと判定された場合（ステップＳ６２）、データ欠損のある不良セクタが割り当てられた代替セクタのデータ領域４１には固定データ（全て０のデータ）を書くものの、データ欠損フラグ領域４２１には“データ欠損あり”を示すデータ欠損フラグＦ１を書き込まない（ステップＳ６３）。
【００７５】
このように、データライトが一度も行われていないセクタの障害に対しては、データ欠損の登録を行わないことで、データ欠損の発生確率を下げることができる。なお、ステップＳ６１で参照されたライトフラグがＦ１１であり、したがってライトありを示すと判定された場合（ステップＳ６２）、データ欠損登録部１１３は、データ欠損の登録を伴う前記ステップＳ２及びＳ３を実行する。
【００７６】
［第２の変形例］
次に、上記実施形態の第２の変形例について説明する。  
この第２の変形例の特徴は、セクタのデータ欠損を、当該セクタ内に欠損情報のための領域（データ欠損フラグ領域）を確保することなしに管理する点、つまり欠損情報（データ欠損フラグ）を用いることなく管理する点にある。したがって、第２の変形例では、論理ディスク１２上の各セクタに、図４に示したような管理領域４２を必ずしも確保する必要はない。第２の変形例で適用されるセクタのフォーマットを図１１に示す。ここでは、１セクタは、データ領域４１とＥＣＣ領域４３とから構成される。
【００７７】
第２の変形例では、データ欠損のある不良セクタが検出された場合、当該不良セクタの代替処理を行わない。これにより、その後データ欠損のある不良セクタをリードする場合には、当該リードに失敗して“データ欠損あり”が検出される。
【００７８】
さて、データを復元する処理では、上記実施形態でも述べたように、データ復元に必要なデータ及び冗長データ（ＲＡＩＤ１では冗長データのみ）のリードが行われる。しかし、データ欠損がある場合には、リードに失敗してデータを復元できない。したがって、データを復元すべき箇所（セクタ）も“データ欠損あり”とすることが好ましい。
【００７９】
そこで、データを復元できないセクタ内に欠損情報のための領域（データ欠損フラグ領域）を確保することなしに、当該セクタをデータ欠損のあるセクタとして管理することが可能な、上記第２の変形例におけるデータ復元処理について、図１２のフローチャートを参照して説明する。
【００８０】
まずディスクアレイ制御装置１１内のデータ復元部１１２は、論理ディスク１２からデータ復元に必要なデータ及び冗長データをリードする（ステップＳ７１）。  
もし、ステップＳ７１において、少なくとも一部のデータのリードに失敗して、該当する箇所でのデータ欠損を検出した場合（ステップＳ７２）、データ復元はできなくなる。この場合、データ復元部１１２はデータ欠損登録部１１３によるデータ欠損登録処理に代えて、当該データ復元部１１２内のエラー作成部１１２ｂによるエラー作成処理を行わせる。即ちエラー作成部１１２ｂは、データ復元すべき（であるもののデータ復元できなかった部分に含まれる）セクタが、メディアエラーとなるように設定する（ステップＳ７３）。この設定は、例えば、データ復元すべきセクタのデータ領域４１に固定データ（例えば全て０のデータ）が設定され、ＥＣＣ領域４３に当該データとは矛盾したＥＣＣが設定されたセクタデータ（つまりメディアエラーを引き起こすセクタデータ）を、強制的に物理ディスク１２-iに書き込むことにより実現される。既に述べたように、ディスクアレイ制御装置１１と物理ディスク１２-iとの間で入出力（リード／ライト）される情報は、一般には、セクタ内のＥＣＣ領域４３を除く部分の情報である。そしてＥＣＣ領域４３の情報、つまりＥＣＣは、セクタ内のＥＣＣ領域４３を除く部分の情報をもとに物理ディスク１２-iの内部で自動的に生成・処理される。しかし、特別のライトコマンド、例えばライトロングコマンドを用いるならば、ディスクアレイ制御装置１１内のエラー作成部１１２ｂは、物理ディスク（物理ディスクドライブ）１２-iの内部のＥＣＣ生成・処理機能を抑止して、データ及び当該データとは矛盾したＥＣＣから構成されるセクタデータを当該物理ディスク１２-iに書き込ませることができる。
【００８１】
上記ステップＳ７３により、その後、データ復元できなかったセクタへのライトアクセスが行われる前に、当該セクタに対するリード要求がホスト２０から発行された場合、当該セクタへのアクセスは可能であるが、メディアエラー（物理ディスク上でのエラー）となってリードに失敗することになる。この場合、要求されたセクタのデータは復元不能であることから、ディスクアレイ制御装置１１のリード要求処理部１１５内のデータ欠損判定部１１５ａではデータ欠損が判定（検出）される。するとリード要求処理部１１５内のエラー通知部１１５ｂは、ホスト２０からのリード要求に対する応答として、当該ホスト２０に対してエラーが返される。これによりホスト２０は、リード要求先のセクタのデータ欠損を認識できる。
【００８２】
一方、データ復元に必要なデータ及び冗長データが正常にリードできたなら（ステップＳ７２）、データ復元部１１２は、論理ディスク１２からステップＳ７１でリードしたデータ及び冗長データをもとに、対応するデータを復元する（ステップＳ７４）
このように、上記実施形態の第２の変形例によれば、データ復元処理において、データ復元に必要なデータ及び冗長データをリードした際にデータ欠損を検出した結果、データ復元ができなかった部分に対し、メディアエラーが発生するように設定することにより、データ欠損を、欠損情報（データ欠損フラグ）を用いることなく管理できる。
【００８３】
なお、上記ステップＳ７３において、データ復元すべき（であるもののデータ復元できなかった部分に含まれる）セクタだけでなく、当該セクタに対応する他の物理ディスク上のセクタに対しても、メディアエラーが発生するように設定する構成としても構わない。但し、リードに失敗したセクタについては、この設定は必ずしも必要としない。この構成を適用する場合、リード要求処理時に、リードに失敗し、要求されたセクタデータを復元することもできない場合に、要求されたセクタに対応する他の物理ディスク上のセクタに対しても、メディアエラーが発生するように設定すると良い。
【００８４】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、実施形態及びその変形例に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施形態に係るディスクアレイ装置の構成を示すブロック図。
【図２】データ欠損が発生する例を示す図。
【図３】同実施形態におけるデータ欠損登録処理の手順を示すフローチャート。
【図４】同実施形態で適用されるセクタフォーマットを示す図。
【図５】物理ディスク上のデータ欠損のある不良セクタ５１が代替セクタ５２に割り当てられている状態と、当該代替セクタ５２の内容とを示す図。
【図６】同実施形態におけるリード要求処理の手順を示すフローチャート。
【図７】同実施形態におけるライト要求処理の手順を示すフローチャート。
【図８】同実施形態におけるデータ復元処理の手順を示すフローチャート。
【図９】同実施形態の第１の変形例で適用されるセクタフォーマットを示す図。
【図１０】上記第１の変形例におけるデータ欠損登録処理の手順を示すフローチャート。
【図１１】同実施形態の第２の変形例で適用されるセクタフォーマットを示す図。
【図１２】上記第２の変形例におけるデータ復元処理の手順を示すフローチャート。
【符号の説明】
【００８６】
１０…ディスクアレイ装置、１１…ディスクアレイ制御装置、１２…論理ディスク、１２-1〜１２-4，１２-i…物理ディスク、２０…ホスト、５１…不良セクタ（データ欠損のある不良セクタ）、５２…代替セクタ、４１…データ領域、４２…非データ領域、４３…ＥＣＣ領域、１１２…データ復元部、１１２ａ…データ復元用情報読み出し部、１１２ｂ…エラー作成部、１１３…データ欠損登録部、１１３ａ…データライト判定部、１１５…リード要求処理部、１１５ａ…データ欠損判定部、１１５ｂ…エラー通知部、１１６…ライト要求処理部、１１６ａ…冗長データ生成用情報読み出し部、４２１…データ欠損フラグ領域（欠損情報領域）、４２２…ライトフラグ領域（データライト情報領域）。
【図１】
2005293119.tif 000003
【図２】
2005293119.tif 000004
【図３】
2005293119.tif 000005
【図４】
2005293119.tif 000006
【図５】
2005293119.tif 000007
【図６】
2005293119.tif 000008
【図７】
2005293119.tif 000009
【図８】
2005293119.tif 000010
【図９】
2005293119.tif 000011
【図１０】
2005293119.tif 000012
【図１１】
2005293119.tif 000013
【図１２】
2005293119.tif 000014