(57)【要約】【課題】ディスクアレイを構成する各物理ドライブの使用領域に対する不整合検査のエラーログのみを記録できるディスクアレイコントローラを提供する。【解決手段】検査・修復実行部１２は、各ＨＤＤのディスクアレイに使用されない未使用領域を含む全領域を対象に整合性検査を行い、不整合が検出されたにその修復を行う。初回検査済みブロック情報記録部１３は、ＲＡＩＤ構築後の初回の整合性検査が終了した最後のブロック番号を取得して記録する。エラーログ記録部１４は、検査・修復実行部１２による検査で不整合が検出されたとき、このブロックが初回検査済みのブロックか否かを、今回の検査対象であるブロック番号と不揮発性の記憶部に記録されたブロック番号とを比較して判定し、初回検査済みのブロックである場合、そのブロック番号、ＨＤＤ識別情報およびエラー検出時刻などを不整合エラーのログとして記録する。【選択図】図１
2006155320.tif 000002
【特許請求の範囲】
【請求項１】
ディスクアレイを構成する複数の物理ドライブの、前記ディスクアレイとして未使用の領域を含む全領域に対してブロックの単位で整合性の検査をこの検査で検出された不整合の修復とともに行う検査手段と、
前記検査手段によって前記ディスクアレイの構築後の検査が完了したブロックに関する情報を記録する検査済みブロック情報記録手段と、
前記検査手段による検査によって不整合が検出されたとき、この不整合が検出されたブロックが検査済みのブロックか否かを、前記不整合が検出されたブロックに関する情報と前記検査済みブロック情報記録手段により記録された情報とに基づいて判定し、前記検査済みのブロックである場合にはエラーログの記録を行うエラーログ記録手段と
を具備することを特徴とするディスクアレイコントローラ。
【請求項２】
前記検査済みブロック情報記録手段は、前記検査手段によって前記ディスクアレイの構築後の初回の検査が完了したブロックに関する情報を記録するものであることを特徴とする請求項１に記載のディスクアレイコントローラ。
【請求項３】
前記検査手段は、前記各物理ドライブからデータを読み出してパリティを計算し、この計算したパリティと前記物理ドライブ上のパリティとを比較して整合性の検査を行い、不整合が検出された場合、前記計算されたパリティで前記既存のパリティを書き換えて修復を行うことを特徴とする請求項１または２に記載のディスクアレイコントローラ。
【請求項４】
前記検査手段は、前記各物理ドライブからデータを読み出し比較して整合性の検査を行い、不整合が検出された場合、一方の前記物理ドライブのデータを他方の前記物理ドライブのデータを書き換えて修復を行うことを特徴とする請求項１または２に記載のディスクアレイコントローラ。
【請求項５】
ディスクアレイを構成する複数の物理ドライブの、前記ディスクアレイとして未使用の領域を含む全領域に対してブロックの単位で整合性の検査をこの検査で検出された不整合の修復とともに行う検査手段と、
前記検査手段によって前記ディスクアレイの構築後の検査が完了したブロックに関する情報を記録する検査済みブロック情報記録手段と、
前記検査手段による検査によって不整合が検出されたとき、この不整合が検出されたブロックが検査済みのブロックか否かを、前記不整合が検出されたブロックに関する情報と前記検査済みブロック情報記録手段により記録された情報とに基づいて判定し、前記検査済みのブロックである場合にはエラーログの記録を行うエラーログ記録手段と
を具備することを特徴とするコンピュータシステム。
【請求項６】
前記検査済みブロック情報記録手段は、前記検査手段によって前記ディスクアレイの構築後の初回の検査が完了したブロックに関する情報を記録するものであることを特徴とする請求項５に記載のコンピュータシステム。
【請求項７】
前記検査手段は、前記各物理ドライブからデータを読み出してパリティを計算し、この計算したパリティと前記物理ドライブ上のパリティとを比較して整合性の検査を行い、不整合が検出された場合、前記計算されたパリティで前記既存のパリティを書き換えて修復を行うことを特徴とする請求項５または６に記載のコンピュータシステム。
【請求項８】
前記検査手段は、前記各物理ドライブからデータを読み出し比較して整合性の検査を行い、不整合が検出された場合、一方の前記物理ドライブのデータを他方の前記物理ドライブのデータを書き換えて修復を行うことを特徴とする請求項５または６に記載のコンピュータシステム。
【請求項９】
ディスクアレイを構成する複数の物理ドライブの、前記ディスクアレイとして未使用の領域を含む全領域に対してブロックの単位で整合性の検査をこの検査で検出された不整合の修復とともに行うステップと、
前記ディスクアレイの構築後の検査が完了したブロックに関する情報を記録するステップと、
前記検査によって不整合が検出されたとき、この不整合が検出されたブロックが検査済みのブロックか否かを前記不整合が検出されたブロックに関する情報と前記記録された検査完了ブロックに関する情報とに基づいて判定し、前記検査済みのブロックである場合にはエラーログの記録を行うステップと
を有することを特徴とするディスクアレイの整合性検査エラーログ記録方法。
【請求項１０】
前記ブロックに関する情報を記録するステップは、前記ディスクアレイの構築後の初回の検査が完了したブロックに関する情報を記録することを特徴とする請求項８に記載のディスクアレイの整合性検査エラーログ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイを制御するディスクアレイコントローラ、コンピュータシステム、およびディスクアレイの整合性検査エラーログ記録方法に関する。
【背景技術】
【０００２】
物理ドライブたとえばＨＤＤ（Hard Disk Drive）を用いた記録再生装置の信頼性向上、高速化を実現する技術にＲＡＩＤ（Redundant Arrays of Independent (Inexpensive) Disks）がある。このＲＡＩＤは、ストライピング、ミラーリング、パリティチェック、ＥＣＣ（Error Check and Correct）、データとパリティ、ＥＣＣの分散書き込みなどの機能で構成され、採用している機能やその組み合わせの違いにより、ＲＡＩＤ０からＲＡＩＤ６、さらにはＲＡＩＤ０＋１、ＲＡＩＤ１０／３０／５０など様々なレベルがある。
【０００３】
ＲＡＩＤ５は、データからパリティと呼ばれる誤り訂正符号を生成し、データとともに複数のＨＤＤに分散して記録する方式である。すなわち、データだけでなくパリティも複数のＨＤＤに分散して記録することで、ディスクアレイ中の一台のＨＤＤが故障しても他のＨＤＤのデータを用いて復旧することができるので、より高い信頼性が保証される。
【０００４】
故障した物理ドライブを復旧するとき、ディスクアレイのいずれかのＨＤＤにメディアエラー（不良ブロック）があると、リビルド時にそのブロックのデータを復旧させることができなくなる。そこで、ディスクアレイを構成する各ＨＤＤの全領域について不良ブロックの検査を定期的に実施して、不良ブロックの情報を不良ブロックリストに登録し、以降のＲＡＩＤ構成に際して使用禁止にしている。
【０００５】
また、ＲＡＩＤ４、ＲＡＩＤ５においては、電源障害などでディスクアレイの書き込み処理が中断された場合には、書き込まれているデータとパリティとの不整合が生じるおそれがある。このため、各ＨＤＤからブロックのデータを読み出してパリティを再計算し、この再計算したパリティとＨＤＤに書き込まれているパリティとを比較して整合性検査を行い、不整合が検出された場合には、その復旧すなわち再計算したパリティで既存のパリティを書き換えている。この整合性検査は、ＲＡＩＤ４、ＲＡＩＤ５では上記のように再計算パリティと既存パリティとの比較により行っているが、ＲＡＩＤ０ではＥＣＣチェック、ＲＡＩＤ１ではミラードライブペアのデータの比較により行われる。
【特許文献１】特開平１０−３３６３号公報（段落００１０）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
通常ＲＡＩＤの整合性検査はメディアエラー検査と同時に行われる。これにより検査のためのＨＤＤのアクセス回数を最小限に押えられ、効率的である。しかしながら、これらの検査は、ディスクアレイを構成している各ＨＤＤにおいて、ディスクアレイに使用するように割り当てられた領域に限らずＨＤＤの全領域に対して行われる。このため、ＨＤＤにおいて未使用の領域が存在していると、その未使用領域では、ほとんどの位置で不整合が検出され、結果的に大量の無為なログが記録されてしまうという問題があった。
【０００７】
ところで、本発明に関連する公知の技術には特許文献１などがある。この特許文献１では、ミラーリングされた２つのディスク装置において、一方のディスク装置の使用領域の容量を記憶しておき、他方のディスク装置の診断を行う場合には、記憶されている容量に相当する領域だけを診断の対象とすることで、必要な領域だけを診断できるとしている。  しかしながら、この公知技術では、個々のディスク装置の領域を診断するものであり、本発明が対象としているディスクアレイの整合性検査を対象とするものではない。
【０００８】
本発明は、このような課題を解決するためになされたものであり、ディスクアレイを構成する各物理ドライブの使用領域に対する不整合検査のエラーログのみを記録することのできるディスクアレイコントローラ、コンピュータシステム、およびディスクアレイの整合性検査エラーログ記録方法を提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる課題を解決するために、本発明にかかるディスクアレイコントローラは、ディスクアレイを構成する複数の物理ドライブの、ディスクアレイとして未使用の領域を含む全領域に対してブロックの単位で整合性の検査をこの検査で検出された不整合の修復とともに行う検査手段と、検査手段によってディスクアレイの構築後の検査が完了したブロックに関する情報を記録する検査済みブロック情報記録手段と、検査手段による検査によって不整合が検出されたとき、この不整合が検出されたブロックが検査済みのブロックか否かを、不整合が検出されたブロックに関する情報と検査済みブロック情報記録手段により記録された情報とに基づいて判定し、検査済みのブロックである場合にはエラーログの記録を行うエラーログ記録手段とを具備することを特徴とする。
【００１０】
また、本発明において、検査済みブロック情報記録手段は、検査手段によって前記ディスクアレイの構築後の初回の検査が完了したブロックに関する情報を記録するものであることを特徴とする。
【００１１】
また、本発明において、検査手段は、各物理ドライブからデータを読み出してパリティを計算し、この計算したパリティと物理ドライブ上のパリティとを比較して整合性の検査を行い、不整合が検出された場合、計算されたパリティで既存のパリティを書き換えて修復を行う。
【００１２】
また、検査手段は、各物理ドライブからデータを読み出し比較して整合性の検査を行い、不整合が検出された場合、一方の物理ドライブのデータを他方の物理ドライブのデータを書き換えて修復を行うものであってもよい。
【発明の効果】
【００１３】
本発明のディスクアレイコントローラ、コンピュータシステム、およびディスクアレイの整合性検査エラーログ記録方法によれば、ディスクアレイを構成する各物理ドライブの使用領域に対する不整合検査のエラーログのみを記録することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。
【００１５】
図１は本発明の一実施形態にかかるディスクアレイコントローラ１００の構成を示す図である。同図に示すように、このディスクアレイコントローラ１００は、ＣＰＵ（Central Processing Unit)、ＣＰＵで実行されるディスクアレイコントロールのためのファームウェアや各種パラメータなどが格納されたＲＯＭ（Read Only Memory）などで構成される制御プロセッサ１と、ディスクアレイコントロールのための作業領域として用いられるＲＡＭ（Random Access Memory）２と、ディスクアレイ３を構成する複数の物理ドライブであるＨＤＤ４−１、４−２，・・がそれぞれ接続される複数のポート５−１，５−２，・・と、これらのポート５−１，５−２，・・に接続された各ＨＤＤ４−１、４−２，・・に対する読み書きなどの制御を行うディスクコントローラ６と、コンピュータシステムのホストＣＰＵとの通信を制御するホストインタフェース７と、これらを接続する伝送路としてのバス８などで構成されている。なお、各々のポート５−１，５−２，・・に対してＨＤＤ４−１、４−２，・・は着脱可能とされている。
【００１６】
制御プロセッサ１は、ＲＯＭに格納されたファームウェアによって、ＲＡＩＤ制御部１１、検査・修復実行部１２、初回検査済みブロック情報記録部１３およびエラーログ記録部１４として機能する。
【００１７】
ＲＡＩＤ制御部１１は、ＲＡＩＤの制御たとえばＲＡＩＤ４、ＲＡＩＤ５のように書き込み時にデータのパリティを生成してこれらデータおよびパリティを複数のＨＤＤ４−１、４−２，・・の同じブロックに分散して記録したり読み出す制御などを行う。
【００１８】
検査・修復実行部１２は、各ＨＤＤ４−１、４−２，・・の同じブロックのデータを読み込んでメディア検査および整合性検査をＨＤＤ全領域（ディスクアレイに使用されない未使用領域を含む全領域）を対象に実行し、不整合が検出された場合にはその修復を行う。
【００１９】
初回検査済みブロック情報記録部１３は、検査・修復実行部１２からＲＡＩＤ構築後の初回の整合性検査が終了した最後のブロック番号（ＬＢＡ：Logical Block Address ）を取得し、初回の検査が完了したブロックに関する情報として不揮発性の記憶部たとえばＨＤＤ４−１、４−２，・・の専用のリザーブ領域などに記録する。
【００２０】
エラーログ記録部１４は、検査・修復実行部１２による検査によって不整合が検出されたとき、この不整合が検出されたブロックが初回検査済みのブロックか否かを、当該ブロック番号と初回検査済みブロック情報記録部１３によって記録された情報とに基づいて判定し、初回検査済みのブロックである場合には、そのブロック番号、ＨＤＤ識別情報およびエラー検出時刻などをＨＤＤ４−１、４−２，・・の専用のリザーブ領域に不整合エラーのログとして記録する。
【００２１】
このディスクアレイコントローラ１００は、パーソナルコンピュータなどのコンピュータシステム内のバスと接続され、コンピュータシステムのホストＣＰＵとバスを通じて通信することが可能とされている。
【００２２】
次に、この実施形態のディスクアレイコントローラ１００の整合性検査の動作を説明する。
【００２３】
図２はこの整合性検査の動作を示すフローチャートである。図３はＲＡＩＤ５のディスクアレイ３の例を示す図である。
【００２４】
図３のＲＡＩＤ５のディスクアレイ３は、たとえば３つのＨＤＤ４−１，４−２，４−３で構成される。各々のＨＤＤ４−１，４−２，４−３にはその先頭番地から共通のサイズの使用領域が割り当てられており、使用領域の後にはディスクアレイ３に使用されない未使用領域が存在している。検査・修復実行部１２は、ＨＤＤ４−１，４−２，４−３の使用領域の位置を認識することなくＨＤＤ全体領域（使用領域＋未使用領域）を検査対象としている。
【００２５】
まず、ＲＡＩＤ構築後、初回の検査を実行する（ステップ２０２）。検査は各ＨＤＤ４−１，４−２，４−３のそれぞれの先頭ブロックから開始される。検査は、図３において、ＨＤＤ４−１のデータＤ０およびＨＤＤ４−２のデータＤ１をリードして、これらのデータセットのパリティを計算し、これをＨＤＤ４−３に書き込まれている既存のパリティＰ０−１と比較して行われ、一致していれば整合、不一致ならば不整合と判定される。
【００２６】
この検査で不整合が検出されなければ（ステップ２０３のＮＯ）、各ＨＤＤ４−１，４−２，４−３の次のブロックの検査へと移行する。不整合が検出された場合（ステップ２０３のＹＥＳ）、新たに計算されたパリティで既存のパリティを上書きして不整合の修復を行う（ステップ２０４）。この不整合検査と修復は各ＨＤＤ４−１，４−２，４−３の全領域に対して行われ、未使用領域ではほとんどの場合、不整合が検出されて修復が行われることとなる。なお、未使用領域には各ＨＤＤ４−１，４−２，４−３にパリティがまだ記録されていないので、未使用領域での修復は、図４に示すように、計算したパリティの新規の書き込みとなる。図４において、Ｐａ−ｂはＨＤＤ４−１の未使用領域のデータａとＨＤＤ４−２の未使用領域のデータｂとのセットに対するパリティ、Ｐｅ−ｆはＨＤＤ４−２の未使用領域のデータｅとＨＤＤ４−３の未使用領域のデータｆとのセットに対するパリティである。
【００２７】
初回の検査では、修復後、不整合エラーのログを記録せずに次のブロックの検査へと移行し（ステップ２０７）、最後のブロックの検査が完了するまで上記の動作を繰り返す。
【００２８】
最後のブロックの検査が終了したところで（ステップ２０１のＹＥＳ）、初回検査済みブロック情報記録部１３は、検査・修復実行部１２より最後のブロックのＬＢＡ（Logical Block Address ）を取得して、不揮発性の記憶部たとえばＨＤＤ４−１，４−２，４−３の専用のリザーブ領域などに記録する。
【００２９】
ステップ２０４の不整合の修復が終了すると、次にエラーログ記録部１４は、今回の検査対象であるブロックのＬＢＡと上記不揮発性の記憶部に記録されたＬＢＡとを比較して、今回の検査対象であるブロックが初回検査済みのブロックであるかどうかを判定する（ステップ２０５）。初回検査時は、上記不揮発性の記憶部にＬＢＡが記録されていないので、今回の検査対象であるブロックが初回検査済みのブロックでないことが判定され、上記したように不整合エラーのログを記録せずに次のブロックの検査へ移行することとなる。
【００３０】
二回目以降の整合性検査が行われるときには、上記不揮発性の記憶部に最後のＬＢＡが記録されているので、エラーログ記録部１４は、今回の検査対象であるブロックが初回検査済みのブロックであることを判定し、そのＬＢＡ、ＨＤＤ識別情報およびエラー検出時刻などを不整合エラーのログとしてＨＤＤ４−１，４−２，４−３の不整合エラーログ用のリザーブ領域に記録する（ステップ２０６）。
【００３１】
すなわち、この実施形態では、ＲＡＩＤ構築後の初回の検査でＨＤＤ４−１，４−２，４−３の未使用領域を含む全体領域を対象に整合性の検査と不整合の修復を実施し、この初回の検査では不整合エラーのログを記録せず、二回目以降の検査でログを記録するようにする。これにより、ＨＤＤ４−１，４−２，４−３の未使用領域についての無為な不整合エラーのログが記録されずに済む。
【００３２】
以上は、ＲＡＩＤ５のディスクアレイ３を用いた場合の動作を説明したが、ＲＡＩＤ４のディスクアレイの場合も動作は同様である。
【００３３】
さらに、本発明は、ＲＡＩＤ１のように、ミラーリングを使って同一のデータを複数のＨＤＤに書き込む方式のディスクアレイにも適用可能である。
【００３４】
図５はＲＡＩＤ１のディスクアレイ３の例を示す図である。
【００３５】
図５のＲＡＩＤ１のディスクアレイ３は、ミラーリングを使って同一のデータが記録されるたとえば２つのＨＤＤ１４−１，１４−２で構成される。各々のＨＤＤ４−１，４−２にはその先頭番地から共通のサイズの使用領域が割り当てられており、使用領域の後にはディスクアレイに使用されない未使用領域が存在している。検査・修復実行部１２は、ＨＤＤ１４−１，１４−２の使用領域の位置を認識することなくＨＤＤ全体領域（使用領域＋未使用領域）を検査対象としている。
【００３６】
まず、ＲＡＩＤ構築後、初回の検査を実行する（ステップ２０２）。検査は各ＨＤＤ１４−１，１４−２の先頭ブロックから開始される。検査は、図５において、ＨＤＤ１４−１のデータＤ０およびＨＤＤ１４−２のデータＤ０をリードして、これらのデータを比較することで行われる。一致していれば整合、不一致ならば不整合と判定される。
【００３７】
この検査で不整合が検出されなければ（ステップ２０３のＮＯ）、各ＨＤＤ１４−１，１４−２の次のブロックの検査へと移行する。不整合が検出された場合（ステップ２０３のＹＥＳ）、たとえばマスターとして設定されている一方のＨＤＤのデータでスレーブとして設定されている他方のＨＤＤのデータに対して上書きするなどして不整合の修復を行う（ステップ２０４）。この不整合検査と修復は各ＨＤＤ１４−１，１４−２の全領域に対して行われ、未使用領域ではほとんどの場合、不整合が検出されて修復が行われることとなる。なお、未使用領域には各ＨＤＤ１４−１，１４−２間でデータがミラーリングされていないので、図６に示すように、未使用領域での修復は、マスターとして設定されている一方のＨＤＤ（たとえばＨＤＤ１４−１）のデータの、スレーブとして設定されている他方のＨＤＤ（たとえばＨＤＤ１４−２）へのコピーとなる。
【００３８】
初回の検査では、修復後、不整合エラーのログを記録せずに次のブロックの検査へと移行し（ステップ２０７）、最後のブロックの検査が完了するまで上記の動作を繰り返す。  最後のブロックの検査が終了したところで、初回検査済みブロック情報記録部１３は、最後のブロックのＬＢＡ（Logical Block Address ）を不揮発性の記憶部たとえばＨＤＤ１４−１，１４−２の専用のリザーブ領域などに記録する。
【００３９】
ステップ２０４の不整合の修復が終了すると、次にエラーログ記録部１４は、今回の検査対象であるブロックのＬＢＡと上記不揮発性の記憶部に記録されたＬＢＡとを比較して、今回の検査対象であるブロックが初回検査済みのブロックであるかどうかを判定する（ステップ２０５）。初回検査時は、上記不揮発性の記憶部にＬＢＡが記録されていないので、今回の検査対象であるブロックが初回検査済みのブロックでないことが判定され、上記したように不整合エラーのログを記録せずに次のブロックの検査へ移行することとなる。
【００４０】
二回目以降の整合性検査が行われるときには、上記不揮発性の記憶部に最後のＬＢＡが記録されているので、エラーログ記録部１４は、今回の検査対象であるブロックが初回検査済みのブロックであることを判定し、そのＬＢＡ、ＨＤＤ識別情報およびエラー検出時刻などを不整合エラーのログとしてＨＤＤ１４−１，１４−２の不整合エラーログ用のリザーブ領域に記録する（ステップ２０６）。
【００４１】
したがって、この実施形態によれば、ＲＡＩＤ１のようにミラーリングを使って同一のデータを複数のＨＤＤ１４−１，１４−２に書き込む方式のディスクアレイについても、初回の検査でＨＤＤ１４−１，１４−２の未使用領域を含む全体領域を対象に検査を実施し、この初回の検査では不整合検出エラーのログを記録せず、二回目以降の検査でログを記録するようにする。これにより、ＨＤＤ１４−１，１４−２の未使用領域についての無為な不整合エラーのログが記録されずに済む。
【００４２】
本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００４３】
上記の実施形態のディスクアレイコントローラ１００の機能は、コンピュータシステム上でホストＣＰＵによって解釈実行されるソフトウェア（ディスクアレイコントローラ用のドライバソフト）によっても実現可能である。
【００４４】
さらに、本発明は、上記実施形態で挙げたバージョン以外のＲＡＩＤにも応用することが可能である。
【００４５】
さらに、上記実施形態では、ディスクアレイの構築後の初回の検査が完了したブロックに関する情報を記録するものとしたが、本発明はこれに限定されるものではなく、ディスクアレイの構築後から任意の初回の検査が完了したブロックに関する情報を記録するようにしてもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施形態にかかるディスクアレイコントローラの構成を示す図である。
【図２】図１のディスクアレイコントローラの整合性検査の動作を示すフローチャートである。
【図３】ＲＡＩＤ５のディスクアレイの例を示す図である。
【図４】図３のディスクアレイの修復結果を示す図である。
【図５】ＲＡＩＤ１のディスクアレイの例を示す図である。
【図６】図５のディスクアレイの修復結果を示す図である。
【符号の説明】
【００４７】
１…制御プロセッサ、２…ＲＡＭ、３…ディスクアレイ、４−１，４−２，４−３…ＨＤＤ、６…ディスクコントローラ、７…ホストインタフェース、８…バス、１１…ＲＡＩＤ制御部、１２…修復実行部、１３…初回検査済みブロック情報記録部、１４…エラーログ記録部、１００…ディスクアレイコントローラ
【図１】
2006155320.tif 000003
【図２】
2006155320.tif 000004
【図３】
2006155320.tif 000005
【図４】
2006155320.tif 000006
【図５】
2006155320.tif 000007
【図６】
2006155320.tif 000008