(57)【要約】【課題】リビルド動作中に一部のセクタにおいてリードエラーが発生しても、そのセクタと同じストライピングに属する他のハードディスクのセクタについてはデータを復元可能とするディスクアレイコントローラの提供。【解決手段】ディスクアレイコントローラが不良セクタ管理テーブルを具備し、不良セクタを登録管理する。不良セクタは実際には、ディスクアレイシステムとしてパリティチェックの整合性を満たすダミーデータが上書きされて読み込み可能状態にされるが、上位部から読み込みが要求されてもディスクアレイコントローラが不良セクタ管理テーブルを参照して読み込み不可と返答する。【選択図】図１
2008225612.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ複数のセクタを具備する複数のＨＤＤ（ハードディスクドライブ）と、
前記複数のＨＤＤを管理するディスクアレイコントローラと
を具備し、
前記複数のＨＤＤの前記複数のセクタは、冗長的に分割されたデータを格納され、
前記ディスクアレイコントローラは、
不良セクタ管理テーブル
を具備し、
前記不良セクタ管理テーブルに登録されるデータは、
前記ディスクアレイシステムのリビルド動作中にソースＨＤＤでリードエラーが発生したセクタの情報
を含む
ディスクアレイシステム。
【請求項２】
請求項１に記載のディスクアレイシステムにおいて、
前記リビルド動作中にリードエラーが発生したセクタは、
前記ディスクアレイコントローラによってダミーデータを上書きされて、ディスクアレイシステムとしてパリティチェックの整合性が取られている
ディスクアレイシステム。
【請求項３】
請求項１または２に記載のディスクアレイシステムにおいて、
前記ディスクアレイコントローラは、前記不良セクタ管理テーブルに登録されたセクタからはデータの読み込みを行なわない
ディスクアレイシステム。
【請求項４】
請求項１〜３のいずれかに記載のディスクアレイシステムにおいて、
前記ディスクアレイコントローラは、
上位部に接続されて、前記上位部からの書き込みまたは読み込みに係る命令を受けるＣＰＵ部と、
前記ＣＰＵ部の指示に従って、前記複数のＨＤＤに対してデータの書き込みまたは読み込みを行なうリーダライタ部と、
前記複数のＨＤＤに対して書き込みまたは読み込みが行なわれるデータの排他的論理和を計算するＥＸＯＲ部と
をさらに具備する
ディスクアレイシステム。
【請求項５】
請求項１〜４のいずれかに記載のディスクアレイシステムにおける
ディスクアレイコントローラ。
【請求項６】
（ａ）ディスクアレイシステムにおいて複数のＨＤＤを管理するディスクアレイコントローラが、独自の不良セクタ管理テーブルを具備し、リビルド動作中にリードエラーが発生した不良セクタを管理することによって、前記不良セクタと同じストライピングに含まれる他のセクタを読み込み可能にすることと、
（ｂ）前記ディスクアレイコントローラが、リビルド動作中にソースＨＤＤでリードエラーが発生した際に、前記リードエラーが発生したソースＨＤＤの番号とセクタの番号とを、前記不良セクタ管理テーブルに登録することと、
（ｃ）前記ディスクアレイコントローラが、前記不良セクタ管理テーブルに登録された不良セクタを、読み込み可能に処理することと、
（ｄ）前記ディスクアレイコントローラが、リビルド動作完了後の通常動作中に上位部からデータの読み出しを要求された際に、前記要求されたデータが格納されているセクタが前記不良セクタ管理テーブルに登録されているかどうかで前記要求されたデータの読み出し可否を判断することと
を具備する
ディスクアレイ不良セクタ管理方法。
【請求項７】
請求項６に記載のディスクアレイ不良セクタ管理方法において、
前記ステップ（ｃ）は、
（ｃ−１）前記ディスクアレイコントローラが、前記リードエラーが発生したソースＨＤＤのセクタに対応するターゲットＨＤＤのセクタに、ダミーデータを書き込むことと、
（ｃ−２）前記ディスクアレイコントローラが、前記リードエラーが発生したソースＨＤＤのセクタに、ディスクアレイシステムとしてパリティチェックの整合性が取れたダミーデータを書き込むことと
を具備する
ディスクアレイ不良セクタ管理方法。
【請求項８】
請求項６または７に記載のディスクアレイ不良セクタ管理方法において、
前記ステップ（ｄ）は、
（ｄ−１）前記ディスクアレイコントローラが、前記上位部から読み込みを要求されたデータが格納されているセクタが、前記不良セクタ管理テーブルに登録されているかどうかを確認することと、
（ｄ−２）前記ディスクアレイコントローラが、前記上位部から読み込みを要求されたデータが格納されているセクタが、前記不良セクタ管理テーブルに登録されている場合は、たとえ実際には読み込み可能であったとしても、前記要求データは読み込み不可として前記上位部に通知することと、
（ｄ−３）前記ディスクアレイコントローラが、前記上位部から読み込みを要求されたデータが格納されているセクタが、前記不良セクタ管理テーブルに登録されていない場合は、前記要求されたデータを通常通りに読み込んで前記上位部に引き渡すことと
を具備する
ディスクアレイ不良セクタ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイシステムに係り、特に、データが復元する可能性が向上されたディスクアレイシステムの発明に関する。
【背景技術】
【０００２】
ディスクアレイシステムでは、複数のハードディスクドライブ（以降「ＨＤＤ」と記す）が、連動した単独の記憶装置として用いられる。この時、ディスクアレイシステムを構成する全てのＨＤＤは、ディスクアレイコントローラによって制御される。
【０００３】
この技術は一般的にＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）と呼ばれている。その中でも特に、ＲＡＩＤ５と呼ばれる規格では、１つのデータが複数のＨＤＤに分散されて記憶されたり、同じデータが複数のＨＤＤに冗長的に記憶されたりする。その結果、複数のＨＤＤがそれぞれ単独で使用される場合よりも、１つのＨＤＤが動作不能に陥っても残りのＨＤＤだけで全てのデータが回収可能となる信頼性の向上が得られる。具体的には、ｎ台のＨＤＤを用いるＲＡＩＤ５のディスクアレイシステムでは、１つのデータを（ｎ−１）分割し、分割されたデータをｎ台のうち（ｎ−１）台のそれぞれが記憶する。さらに、（ｎ−１）個の分割されたデータ全ての排他的論理和が計算されて最後のＨＤＤによって記憶される。このようにすることで、ｎ台のＨＤＤのうち１台が使用不能状態に陥っても、残りの（ｎ−１）台のデータを合わせることで元のデータが復元可能となる。すなわち、（ｎ−１）個の分割されたデータのうち１つが失われても、最後のＨＤＤに記憶された排他的論理和と残る（ｎ−２）個の分割されたデータ全てとの排他的論理和を計算すれば、失われた分割データが得られる。
ここで、１つの元データを構成する複数の分割データをそれぞれ記憶する、複数のＨＤＤのセクタの集合は、その元データのストライピングと呼ばれる。
【０００４】
ＲＡＩＤでデータを冗長的に記憶することによって信頼性は向上するものの、限界がある。多くの場合、具体的には、ディスクアレイを構成する複数のＨＤＤのうち、１台が故障しただけなら全てのデータが回収可能だが、２台が同時に故障すると、一部または全てのデータが失われてしまう。したがって、１台のＨＤＤが故障した際には、すぐに正常なＨＤＤに交換されることが望ましい。この時、故障したＨＤＤに記憶されていたデータは、ディスクアレイに残るその他のＨＤＤから得られるので、交換された新しいＨＤＤにすぐにコピーされることが必要となる。この作業はディスクアレイのリビルドと呼ばれる。
【０００５】
リビルドが完了するまでは、ディスクアレイにおけるデータの冗長性が失われている。したがって、リビルド動作中において、あるデータを構成する分割データについて読み込みエラーが発生した場合、そのデータは失われてしまう。
【０００６】
上記に関連して、特許文献１には、アレイディスク装置における交代ブロックの自動割当方法に係る発明が開示されている。
特許文献１発明のアレイディスク装置における交代ブロックの自動割当方法は、アレイディスク装置のデータチェックエラー検出時において、エラーリストにエラー個所を記憶させ、処理終了後に交代ブロックを割り当てる。
【０００７】
また、特許文献２には、アレイコントローラに係る発明が開示されている。
特許文献２発明のアレイコントローラは、少なくとも２台のディスクドライブから構成される冗長性を持つディスクアレイを制御する。特許文献２発明のアレイコントローラは、再構築用データリード手段と、データ復元手段と、メディアエラー設定手段とを具備する。ここで、再構築用データリード手段は、少なくとも２台のディスクドライブのうちの１台に障害が発生したためにディスクアレイを再構築する場合に、残りの少なくとも１台のディスクドライブのデータをリードする。データ復元手段は、再構築用データリード手段によりリードされたデータをもとに、障害が発生したディスクドライブに代えて用いられる新たなディスクドライブに、当該障害が発生したディスクドライブのデータを復元する。メディアエラー設定手段は、再構築用データリード手段によるデータリードでメディアエラーが発生した場合、当該メディアエラーが発生した領域に対応する新たなディスクドライブの領域の情報がリードされる際にメディアエラーを発生させる情報を設定する。
【０００８】
また、特許文献３には、ディスクアレイ制御システムに係る発明が開示されている。
特許文献３発明のディスクアレイ制御システムは、所定の媒体に対するリードエラーの有無と復旧失敗位置リストとをホスト装置に報告する。特許文献３発明のディスクアレイ制御システムは、リードエラー検出手段と、復旧失敗位置リスト登録手段と、報告手段とを具備する。ここで、リードエラー検出手段は、復旧元のリードエラーを検出する。復旧失敗位置リスト登録手段は、リードエラー検出手段によって検出されたリードエラーが発生した位置を示すエラー位置情報を復旧失敗位置リストとして記憶する。報告手段は、媒体の全面のデータ復旧が完了した時点でリードエラーの有無と、復旧に失敗した位置を示すエラー位置情報からなる復旧失敗位置リストと、ホスト装置からのファイル読み込み命令により指定されたセクタアドレスの範囲をセクタ範囲リストとしてホスト装置に報告する。
【０００９】
【特許文献１】特開平４−２３１２０号公報
【特許文献２】特開２００５−１０７６７６号公報
【特許文献３】特開２００５−２７５４７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
リビルド動作中にリードエラーが発生すると、そのリードエラーが発生したＨＤＤのセクタに係るデータ全体が読み取り不可能とされてしまう。しかし実際には、リードエラーが発生したデータを完全な形で復旧することが可能な場合がある。それは、次のような場合である。
上述したように、ＲＡＩＤ５のディスクアレイシステムにおいて、１つのデータは複数の部分に分割されてそれぞれのＨＤＤに記憶される。しかし、このように複数のＨＤＤから最低でも１つのセクタが提供されても、元のデータ全体が十分に小さく、１つのＨＤＤの１つのセクタに納まる場合がある。このとき、そのセクタに対応する他のＨＤＤのセクタには、ダミーデータが記憶されることになる。また、１つでは足りなくても、ディスクアレイシステムを構成するＨＤＤの数をｎと置いたとき、（ｎ−２）以下のセクタに元のデータが収まるならば、そのデータに関してはデータの冗長性が通常よりも高くなる。すなわち、最初に故障して交換されたＨＤＤと、そのためのリビルド動作の最中にリードエラーを起こしたＨＤＤ以外のＨＤＤに、元データの分割データが全て記憶されていたなら、元データはまだ復元可能な状態で残っている。
【００１１】
しかし、従来のディスクアレイシステムでは、冗長性が失われているリビルド動作中に、リードエラーが発生した場合は、そのセクタが属する同じストライピングに属する別のＨＤＤのセクタについても、データが復旧不可能と判断される。この判断はディスクアレイシステムを統括するディスクアレイコントローラが行う。
【００１２】
本発明の目的は、リビルド動作中に一部のセクタにおいてリードエラーが発生しても、そのセクタと同じストライピングに属する他のＨＤＤのセクタについてはデータを復元可能とするディスクアレイコントローラを提供することである。
【課題を解決するための手段】
【００１３】
以下に、（発明を実施するための最良の形態）で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、（特許請求の範囲）の記載と（発明を実施するための最良の形態）との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、（特許請求の範囲）に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１４】
本発明によるディスクアレイシステムは、それぞれ複数のセクタ（８）を具備する複数のＨＤＤ（７）と、複数のＨＤＤ（７）を管理するディスクアレイコントローラ（１）とを具備する。複数のＨＤＤ（７）の前記複数のセクタ（８）は、冗長的に分割されたデータを格納される。ディスクアレイコントローラ（１）は、不良セクタ管理テーブル（３）を具備する。不良セクタ管理テーブル（３）に登録されるデータは、ディスクアレイシステムのリビルド動作中にソースＨＤＤ（７−３）でリードエラーが発生したセクタ（８−３）の情報を含む。
【００１５】
本発明のディスクアレイシステムにおいて、リビルド動作中にリードエラーが発生したセクタ（８−３）は、ディスクアレイコントローラ（１）によってダミーデータを上書きされて、ディスクアレイシステムとしてパリティチェックの整合性が取られている。
【００１６】
本発明のディスクアレイシステムにおいて、ディスクアレイコントローラ（１）は、不良セクタ管理テーブル（３）に登録されたセクタからはデータの読み込みを行なわない。
【００１７】
本発明のディスクアレイシステムにおいて、ディスクアレイコントローラ（１）は、ＣＰＵ部（２）と、リーダライタ部（５）と、ＥＸＯＲ部（４）とをさらに具備する。ここで、ＣＰＵ部（２）は、上位部（９）に接続されて、上位部（９）からの書き込みまたは読み込みに係る命令を受ける。リーダライタ部（５）は、ＣＰＵ部（２）の指示に従って、複数のＨＤＤ（７）に対してデータの書き込みまたは読み込みを行なう。ＥＸＯＲ部（４）は、複数のＨＤＤ（７）に対して書き込みまたは読み込みが行なわれるデータの排他的論理和を計算する。
【００１８】
本発明ののディスクアレイシステムにおけるディスクアレイコントローラ（１）。
【００１９】
本発明のディスクアレイ不良セクタ管理方法は、（ａ）ディスクアレイシステムにおいて複数のＨＤＤ（７）を管理するディスクアレイコントローラ（１）が、独自の不良セクタ管理テーブル（３）を具備し、リビルド動作中にリードエラーが発生した不良セクタ（８−３）を管理することによって、不良セクタ（８−３）と同じストライピングに含まれる他のセクタ（８−２）を読み込み可能にすることと、（ｂ）ディスクアレイコントローラ（１）が、リビルド動作中にソースＨＤＤ（７−３）でリードエラーが発生した際に、リードエラーが発生したソースＨＤＤ（７−３）の番号とセクタの番号（８−３）とを、不良セクタ管理テーブル（３）に登録することと、（ｃ）ディスクアレイコントローラ（１）が、不良セクタ管理テーブル（３）に登録された不良セクタ（８−３）を、読み込み可能に処理することと、（ｄ）ディスクアレイコントローラ（１）が、リビルド動作完了後の通常動作中に上位部（９）からデータの読み出しを要求された際に、要求されたデータが格納されているセクタ（８）が不良セクタ管理テーブル（３）に登録されているかどうかで要求されたデータの読み出し可否を判断することとを具備する。
【００２０】
本発明のディスクアレイ不良セクタ管理方法において、ステップ（ｃ）は、（ｃ−１）ディスクアレイコントローラ（１）が、リードエラーが発生したソースＨＤＤ（７−３）のセクタに対応するターゲットＨＤＤ（７−１）のセクタ（８−１）に、ダミーデータを書き込むことと、（ｃ−２）ディスクアレイコントローラ（１）が、リードエラーが発生したソースＨＤＤ（７−３）のセクタ（８−３）に、ディスクアレイシステムとしてパリティチェックの整合性が取れたダミーデータを書き込むこととを具備する。
【００２１】
本発明のディスクアレイ不良セクタ管理方法において、ステップ（ｄ）は、（ｄ−１）ディスクアレイコントローラ（１）が、上位部（９）から読み込みを要求されたデータが格納されているセクタ（８）が、不良セクタ管理テーブル（３）に登録されているかどうかを確認することと、（ｄ−２）ディスクアレイコントローラ（１）が、上位部（９）から読み込みを要求されたデータが格納されているセクタ（８）が、不良セクタ管理テーブル（３）に登録されている場合は、たとえ実際には読み込み可能であったとしても、要求データは読み込み不可として上位部（９）に通知することと、（ｄ−３）ディスクアレイコントローラ（１）が、上位部（９）から読み込みを要求されたデータが格納されているセクタ（８）が、不良セクタ管理テーブル（３）に登録されていない場合は、要求されたデータを通常通りに読み込んで上位部（９）に引き渡すこととを具備する。
【発明の効果】
【００２２】
本発明のディスクアレイコントローラは、ディスクアレイに含まれるＨＤＤの不良セクタを管理する。不良セクタのそれぞれについて、その不良セクタを持つＨＤＤ意外の全てのＨＤＤにおいて、その不良セクタに対応するセクタを正常状態にする。その結果、ディスクアレイシステムとしてパリティチェックの整合性が保たれ、データが復元可能となる。
【発明を実施するための最良の形態】
【００２３】
添付図面を参照して、本発明によるディスクアレイコントローラを実施するための最良の形態を以下に説明する。
【００２４】
図１は、本実施形態によるディスクアレイコントローラを用いるディスクアレイコントロールシステムの構成図である。
本実施形態によるディスクアレイシステムは、ディスクアレイコントローラ１と、ディスクアレイコントローラ１によって制御される複数のメンバディスク７−１〜３と、ディスクアレイコントローラ１と複数のメンバディスク７−１〜３とを接続するケーブル６とを具備する。なお、本実施形態ではメンバディスク７の数が３であるが、３以上であっても構わない。
本実施形態によるディスクアレイコントローラ１は、ＣＰＵ部２と、不良セクタ管理テーブル３と、ＥＸＯＲ部４と、リーダライタ部５とを具備する。
【００２５】
本実施形態によるディスクアレイコントローラ１において、ＣＰＵ部Ｂと、ＥＸＯＲ部４と、リーダライタ部５とは、相互に接続されている。また、ＣＰＵ部２はさらに、不良セクタ管理テーブル３に接続されている。また、ＣＰＵ部２はさらに、図示されない上位機器に接続されている。リーダライタ部５はさらに、ディスクアレイに含まれる全てのＨＤＤ７−１〜３に接続されている。
【００２６】
まず、正常時におけるディスアレイクシステムの動作について説明する。
ディスクアレイコントローラ１は、上位部９からの命令を受け取ると、ＣＰＵ部２がその命令を解読する。解読された命令に従って、ＣＰＵ部２は、データの書き込みまたは読み込みをＲ／Ｗ部５に指示する。Ｒ／Ｗ部５は、指示に従い、接続ケーブル６を介してＨＤＤ７−１〜３に対するデータの書き込みまたはＨＤＤ７−１〜３からデータの読み込みを行なう。
【００２７】
この時、上位部からの命令が書き込みであれば、元データは分割されて、分割データについてＥＸＯＲ部４が排他的論理和の計算を行なう。すなわち、１つの元データはセクタ８−１〜３のサイズ毎に分割されて、例えばセクタ８−１および８−２の２箇所に分割されて書き込みが行なわれる。同時に、ＥＸＯＲ部４が２つの分割データの排他的論理和を計算し、その結果がセクタＨ−３に記憶される。なお、元データがセクタのサイズの２倍よりも大きい場合は、ＨＤＤ７−１〜３において、セクタ８−１〜３の他に、例えばセクタ８−４〜６が用意されて、今度はセクタ８−５および６の２箇所にも分割データが格納される。そしてセクタ８−４にはセクタ５および６に格納された分割データの排他的論理和が格納される。特定のＨＤＤに排他的論理和が集中してボトルネックとなら内容に、分散されるのが一般的である。以下、簡単のために、元データがセクタ２つ分の容量に収まる場合を想定して説明を続ける。
【００２８】
反対に、上位部からの命令が読み込みであれば、ＨＤＤ７−１〜２のセクタ８−１〜２からそれぞれ分割データが読み込まれて、元のデータに結合されてから上位部に引き渡される。
なお、本当は最初に上位部９からデータの読み込み命令を受け取った時点で、ＣＰＵ部２はそのデータを構成する分割データがそれぞれ格納されているセクタ８−１〜３が不良セクタかどうかを確認する。そのために、不良セクタ管理テーブルが参照される。ただし、ここではまだ不良セクタが無いので何にも影響しない。
【００２９】
次に、縮退モードにおけるディスクアレイシステムの動作について説明する。
縮退モードでは、例えばＨＤＤ７−１が故障などの理由により使用不能状態になっている。そのため、データの冗長性は失われているが、しかし残りのＨＤＤ７−２〜３だけはデータの正しい読み書きが可能である。
【００３０】
縮退モードにおいて、上位部からデータの書き込みを命令されると、ＣＰＵ部２はその命令を解読してＲ／Ｗ部５にその指示を出す。Ｒ／Ｗ部５は、元データを２つに分割するがＨＤＤ７−１には書き込みが出来ないので、ＨＤＤ７−２に分割データの一方を書き込み、ＨＤＤ７−３に２つの分割データの排他的論理和を書き込む。
【００３１】
縮退モードにおいて、上位部からデータの読み込みを命令されると、ＣＰＵ部２はその命令を解読してＲ／Ｗ部５にその指示を出す。Ｒ／Ｗ部５が分割データを全て読み込むことで、元データが復元されなければならないのだが、ＨＤＤ７−１からは読み込みが出来ないので、ＨＤＤ７−２および７−３に記憶された分割データのみが読み込まれて、ＥＸＯＲ部４に向けて送られる。ＥＸＯＲ部４は、ＨＤＤ７−２および７−３から読み込まれた分割データの排他的論理和を計算して、ＨＤＤ７−１に記憶されていたはずの分割データを得る。これにＨＤＤ７−２に記憶されていた分割データが結合されることで元のデータが復元され、上位部９に引き渡される。
なお、本当は最初に上位部９からデータの読み込み命令を受け取った時点で、ＣＰＵ部２はそのデータを構成する分割データがそれぞれ格納されているセクタ８−２〜３が不良セクタかどうかを確認する。そのために、不良セクタ管理テーブルが参照される。ただし、ここではまだ不良セクタが無いので何にも影響しない。
【００３２】
次に、故障したＨＤＤ７−１が新しいＨＤＤに換装された後の、リビルド動作について説明する。
換装された直後のＨＤＤ７−１は空っぽの状態なので、本来記憶しているべきデータが書き込まれる。その内容は、セクタのそれぞれについて、ＨＤＤ７−２のデータとＨＤＤ７−３のデータとの排他的論理和を計算することで得られる。例えば、ＨＤＤ７−１のセクタ８−１に記憶されているべきデータは、ＨＤＤ７−２のセクタ８−２のデータと、ＨＤＤ７−３のセクタ８−３のデータとの排他的論理和に等しい。従って、それぞれのセクタについて、ＨＤＤ７−２のデータとＨＤＤ７−３のデータとがＲ／Ｗ部５によって読み込まれ、ＥＸＯＲ部４によって両データの排他的論理和が計算され、その結果が再度Ｒ／Ｗ部５によってＨＤＤ７−１に書き込まれる。この一連の動作が全てのセクタについて無事に行われると、リビルド動作が完了する。
【００３３】
ここで、リビルド動作中にリードエラーが発生した場合を考える。例えば、ＨＤＤ７−３のセクタ８−３において、リードエラーが発生したとする。
この時、セクタ８−３に対応するＨＤＤ７−１のセクタ８−１は当然リビルドされる前なので、データが記憶されていない。セクタ８−２のデータだけではセクタ８−１に記憶されるべきデータは計算不可能なので、従来なら、セクタ８−１〜３から構成されるストライピングに記憶された元のデータは完全に失われたことになってしまう。
【００３４】
しかし、セクタ８−２に記憶された分割データは無事である。そして、この無傷の分割データが、元データの全体である場合が多々ある。それは、元データ全体のサイズがセクタのサイズ以下であり、さらに、その元データ全体を含む分割データがＨＤＤ７−１ではなくＨＤＤ７−２に記憶された場合である。この場合、セクタ８−１の内容は最初から単なるダミーデータであるので、原理的には元データ全体が完全に復元可能である。また、セクタ８−２に格納された分割データが元データの一部だけだとしても、場合によっては何かの役に立つ可能性は十分にある。いずれにしても、セクタ８−２のデータだけでも復元できることに超したことは無い。
【００３５】
本発明のディスクアレイコントローラは、セクタが属するストライピングが破壊されていても、セクタ単位で無事なデータは復元可能である。その仕組みを以下に説明する。
【００３６】
リビルド動作中にリードエラーが発生すると、そのリードエラーが発生したＨＤＤの番号とセクタの番号が、ディスクアレイコントローラに内蔵された不良セクタ管理テーブルに登録される。この例では、ＨＤＤ７−３のセクタ８−３が不良セクタ管理テーブルに登録される。物理的に失われたデータは復元不可能なので、ＨＤＤ７−１のセクタ８−１と、ＨＤＤ７−３のセクタ８−３とには、ダミーデータが上書きされる。この時のダミーデータは、１つのストライピングを構成するＨＤＤ７−１のセクタ８−１と、ＨＤＤ７−２のセクタ８−２と、ＨＤＤ７−３のセクタ８−３とが、ディスクアレイシステムとしてパリティチェックの整合性が取られるように選択される。具体的には、セクタ８−１とセクタ８−２のデータの排他的論理和が結果的にセクタ８−３のデータと一致するならば、どのようなダミーデータが用いられても構わない。リビルド動作中に他にもリードエラーが発生したら、同様の処理が繰り返される。
【００３７】
次に、リビルド動作が完了した後の、ディスクアレイシステムの通常動作について説明する。
上位部９が、ディスクアレイコントローラに対して、データの書き込みを命令する。この場合は、上記の説明と同じく、ＣＰＵ部２が上位部９からの命令を解読して、リーダライタ部５にデータの書き込みを指示し、データは分割されて、ＥＸＯＲ部４によって排他的論理和が計算されて、１つのストライピングを構成する複数のセクタに分散されて格納されるだけである。
上位部９が、ディスクアレイコントローラに対して、データの読み込みを命令する。ディスクアレイコントローラのＣＰＵ部２は、上位部からの命令を解読する。ここで、ＣＰＵ部２はまず不良セクタ管理テーブルを参照する。読み込みが要求されたデータが、不良セクタ管理テーブルに登録されていた場合は、リビルド動作中にデータが破壊されていることが分かっているので、ＣＰＵ部２はリーダライタ部５に読み込みを指示することなく、要求されたデータは読み込み不可であると上位部９に通知する。ここで、実際にはダミーデータによってディスクアレイシステムとしてパリティチェックの整合性は取れており、読み込みだけなら可能であることに注意されたい。しかしデータの内容に意味は無いため、読み込みは不可との返答がＣＰＵ部２から上位部９に向けてなされる。
上位部から読み出しを要求されたデータが格納されているセクタが、不良セクタ管理テーブルに含まれていなければ、上記の説明と同様に通常通り分割データが読み出されて元のデータが復元されて上位部９に送られる。ここで、セクタ８−２のデータも問題無く読み込まれることに注意されたい。同じストライピングを構成するセクタ８−１と８−３とはダミーデータを格納しているが、セクタ８−２は最初から正しいデータを格納しているので、読み込む意味があるのである。さらに、リビルド動作完了後に、不幸にもセクタ８−２にリードエラーが発生しても、セクタ８−１とセクタ８−３に格納されたデータの排他的論理和を計算すればセクタ８−２に格納されていたデータが復元可能であることにも注目されたい。
【図面の簡単な説明】
【００３８】
【図１】図１は、本発明によるディスクアレイコントローラを用いるディスクアレイコントロールシステムの構成図である。
【符号の説明】
【００３９】
１  ディスクアレイコントローラ
２  ＣＰＵ部
３  不良セクタ管理テーブル
４  ＥＸＯＲ（排他的論理和計算）部
５  Ｒ／Ｗ（リーダ・ライタ）部
６  接続ケーブル
７−１〜ｎ  ハードディスクドライブ
８−１〜ｎ  あるデータを記憶するストライピングを構成するセクタ
９  上位部
【図１】
2008225612.tif 000003