(57)【要約】【課題】例えばＲＡＩＤ−６を構成する複数のディスク装置の中の１台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とするディスクアレイ装置を提供する。【解決手段】セクタ冗長領域確保部２３は、ＨＤＤ３のセクタあたりの記憶容量を、実際に有効なデータを格納する容量に対して大きくなるように設定し、セクタ冗長領域を確保する。アクセス履歴記録部２４は、セクタ冗長領域確保部２３によって確保されたセクタ冗長領域に、アクセス履歴情報を記録する。そして、データ不正箇所特定部２５は、セクタ冗長領域に記録されたアクセス履歴情報に基づいて、ＨＤＤが１台故障の縮減状態時に不整合を検出した場合のデータ不正箇所の特定を実行する。【選択図】      図１
2008071297.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置において、
前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保する冗長領域確保手段と、
データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される１または２以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録するアクセス履歴情報記録手段と、
を具備することを特徴とするディスクアレイ装置。
【請求項２】
前記アクセス履歴情報記録手段は、タイムスタンプをアクセス履歴情報として各区域の冗長領域に記録することを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
前記アクセス履歴情報記録手段は、ストライプグループを構成する全区域の中で前記データまたは前記冗長データが同期的に記録される区域を示すビットマップデータをアクセス履歴情報として各区域の冗長領域に記録することを特徴とする請求項１記載のディスクアレイ装置。
【請求項４】
前記アクセス履歴情報記録手段は、前記データまたは前記冗長データの誤りを検出するためのデータ保護情報を各区間の冗長領域にさらに記録することを特徴とする請求項１記載のディスクアレイ装置。
【請求項５】
前記アクセス履歴情報記録手段は、ＣＲＣ（cyclic redundancy check）をデータ保護情報として各区間の冗長領域に記録することを特徴とする請求項４記載のディスクアレイ装置。
【請求項６】
ＲＡＩＤ（redundant array of inexpensive disks）６を構成するディスクアレイ装置であって、
前記複数のディスク装置の中の１台のディスク装置が故障状態にあるとき、この故障状態にあるディスク装置内の区域が配置されたストライプグループにおいて前記冗長データを用いた整合性確認で不整合が検出された場合に、前記冗長領域に記録されたアクセス履歴情報に基づいてデータ不正箇所を特定するデータ不正箇所特定手段を具備することを特徴とする請求項１記載のディスクアレイ装置。
【請求項７】
データの書き込み直後、当該データおよび当該データの冗長データが記録された区域の冗長領域のすべてのアクセス履歴情報が一致しているか否かを確認する簡易整合性確認手段を具備することを特徴とする請求項１記載のディスクアレイ装置。
【請求項８】
簡易整合性確認手段によりアクセス履歴情報の不一致が検出された場合、データの書き込みを再実行させる制御手段を具備することを特徴とする請求項５記載のディスクアレイ装置。
【請求項９】
複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置のデータ管理方法であって、
前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保し、
データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される１または２以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録する、
ことを特徴とするディスクアレイ装置のデータ管理方法。
【請求項１０】
前記データまたは前記冗長データの誤りを検出するためのデータ保護情報を各区間の冗長領域にさらに記録することを特徴とする請求項９記載のディスクアレイ装置のデータ管理方法。
【請求項１１】
前記ディスクアレイ装置は、ＲＡＩＤ６を構成し、
前記複数のディスク装置の中の１台のディスク装置が故障状態にあるとき、この故障状態にあるディスク装置内の区域が配置されたストライプグループにおいて前記冗長データを用いた整合性確認で不整合が検出された場合に、前記冗長領域に記録されたアクセス履歴情報に基づいてデータ不正箇所を特定する、
ことを特徴とする請求項９記載のディスクアレイ装置のデータ管理方法。
【請求項１２】
データの書き込み直後、当該データおよび当該データの冗長データが記録された区域の冗長領域のすべてのアクセス履歴情報が一致しているか否かを確認し、アクセス履歴情報の不一致が検出された場合、データの書き込みを再実行させる、
ことを特徴とする請求項９記載のディスクアレイ装置のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＲＡＩＤ（redundant array of inexpensive disks）６を構成するディスクアレイ装置に適用して好適なデータ管理技術に関する。
【背景技術】
【０００２】
近年、電子商取引の普及等に伴い、高応答性や耐障害性など、データ記憶装置に対する要求が非常に高まっている。この要求に応える技術として、複数のディスク装置を並列に接続して、これらをあたかも1台のディスク装置のように連携して動作させるＲＡＩＤ機能が存在する。
【０００３】
特に、最新のＲＡＩＤ−６では、パリティデータなどと称される冗長データを２種類使用することにより、整合性確認の強化が図られている。また、このＲＡＩＤ−６を構成するディスクアレイ装置においては、データ不正箇所を特定するための手法なども種々提案されている（例えば特許文献１等参照）。
【特許文献１】特開２００５−２９３２６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この特許文献１に記載のディスクアレイ装置では、２種類の冗長データが存在することに着目し、被疑データを未知数とする連立方程式を順次解いていくことにより、誤りデータを特定する。
【０００５】
しかしながら、この手法は、ディスクアレイ装置が備える複数のディスク装置すべてが正常稼働している場合、より厳密には、ストライプグループ内に、故障状態にあるディスク装置内の区域が配置されていない場合にのみ有効である。換言すれば、１台のディスク装置が故障状態にある場合、この故障状態にあるディスク装置内の区域が配置されたストライプグループでは、整合性確認で不整合が検出できたとしても、データ不正箇所を特定することはできないことになる。
【０００６】
この発明は、このような事情を考慮したものであり、例えばＲＡＩＤ−６を構成する複数のディスク装置の中の１台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とするディスクアレイ装置およびディスクアレイ装置のデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前述した目的を達成するために、この発明は、複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置において、前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保する冗長領域確保手段と、データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される１または２以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録するアクセス履歴情報記録手段と、を具備することを特徴とする。
【０００８】
また、この発明は、複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置のデータ管理方法であって、前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保し、データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される１または２以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録する、ことを特徴とする。
【発明の効果】
【０００９】
この発明によれば、例えばＲＡＩＤ−６を構成する複数のディスク装置の中の１台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とする。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明の実施形態を説明する。
【００１１】
図１には、本実施形態に係るディスクアレイ装置の構成例が示されている。このディスクアレイ装置は、ＲＡＩＤコントローラ２と複数のＨＤＤ（hard disk drive）３とで構成され、あたかも１台のディスク装置のごとく振る舞ってホスト装置１からのアクセス要求を受け付ける。そして、このＲＡＩＤコントローラ２は、複数のＨＤＤ３を使ってＲＡＩＤ−６形式のＲＡＩＤ４を構成する。つまり、ＲＡＩＤコントローラ２は、並列接続された複数のＨＤＤ３でストライピングを行い、各ストライプグループ４ＡごとにＰパリティ／Ｑパリティと称される２種類のパリティデータ（冗長データ）を生成して、この２種類のパリティデータを複数のＨＤＤ３に巡回的に分散させて記録する。
【００１２】
ここで、本実施形態のディスクアレイ装置についての理解を助けるために、ＲＡＩＤ−６の基本原理について説明する。図２に、ＲＡＩＤ−６のデータ配置例を示す。
【００１３】
（１）ＲＡＩＤ−６のパリティ生成
（ａ）Ｐパリティデータ生成時の計算式
ＲＡＩＤ−６のＰパリティデータは、ＲＡＩＤ−５のパリティデータと同様に、対象となるストライプグループ全てのデータストライプのビット単位の排他的論理和（ＸＯＲ）演算にて算出する。例えば、ストライプグループ１のＰパリティデータは、次の（１）式で求められる。
【数１】
2008071297.tif 000003
【００１４】
（ｂ）Ｑパリティデータは、対象となるストライプグループの各々のデータストライプに、そのストライプグループに唯一のデータとなる係数（重み）を用いてガロア体の乗算を行い、それぞれの積をＸＯＲ演算することで算出する。例えば、ストライプグループ１のＱパリティデータは、次の（２）式で求められる。
【数２】
2008071297.tif 000004
【００１５】
（２）ＲＡＩＤ−６のパリティ更新
ＲＡＩＤ−６のＰパリティデータとＱパリティデータは、データストライプのデータが新しいデータで更新される場合には、整合性を維持するためにそれぞれ更新しなければならない。
【００１６】
（ａ）Ｐパリティデータ更新時の計算式
Ｐパリティデータ更新の計算には、ｎｅｗデータを用いてパリティ生成時と同じ計算を行う方法と、ライト対象のｏｌｄデータおよびｎｅｗデータとＰパリティのｏｌｄデータとから計算を行う方法がある。ストライプグループ１のデータ１がライトされた場合の後者の方法による計算式を以下に示す（（３）式）。
【数３】
2008071297.tif 000005
【００１７】
（ｂ）Ｑパリティデータ更新時の計算式
Ｑパリティデータ更新にも２種類の計算方法があり、以下に、ストライプグループ１のデータ２がライトされた場合に、ライト対象のｏｌｄデータおよびｎｅｗデータとＱパリティのｏｌｄデータとから計算を行う計算式を示す（（４）式）。
【数４】
2008071297.tif 000006
【００１８】
（３）ＲＡＩＤ−６の整合性確認
例えば、ＨＤＤに格納したデータとパリティデータを読み出し、読み出したデータをもとにパリティデータを再計算して、先に読み出したパリティデータと一致するか否かを確認する。
【００１９】
（ａ）ＲＡＩＤが正常状態の場合
ＲＡＩＤが正常状態の場合は、すべてのＨＤＤからデータを読み出してパリティを再計算し、読み出したパリティと一致するかの確認を行う。なお、不整合を検出した場合、改めてパリティを再生する等、システムの方針に基づいてリカバリする。
【００２０】
（ア）Ｐパリティデータを使用した整合性の確認方法
次の（５）式が成立することを確認する。
【数５】
2008071297.tif 000007
【００２１】
（イ）Ｑパリティデータを使用した整合性の確認方法
次の（６）式が成立することを確認する。
【数６】
2008071297.tif 000008
【００２２】
（ｂ）ＲＡＩＤが縮退状態（ＨＤＤが１台故障）の場合
ＲＡＩＤが縮退状態で、かつ、故障ＨＤＤがデータストライプの場合は、まずＰパリティとその他の正常ＨＤＤのデータから故障したＨＤＤのデータを復元し、その復元データと正常ＨＤＤのデータからＱパリティを再計算し、読み出したＱパリティと一致するかの確認を行う。
【００２３】
例えば、図３に示すように、ストライプグループ１のデータ２が記録されたＨＤＤが故障した場合を想定すると、この場合の整合性確認は、以下の（７）式，（８）式の順に計算して、（８）式が成立することを確認する。
【数７】
2008071297.tif 000009
【００２４】
【数８】
2008071297.tif 000010
【００２５】
以上のように、ＲＡＩＤ−６では、ＨＤＤが１台故障の縮減状態の場合にも、データ整合性確認を行うことができる。しかしながら、このデータ整合性確認で万一不整合が検出された場合は、データ誤りのある不正箇所を特定することができない。そこで、本実施形態のディスクアレイ装置は、ＨＤＤが１台故障の縮減状態の場合にあっても、データ整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能としたものであり、以下、この点について詳述する。
【００２６】
図１に示すように、ＲＡＩＤコントローラ２は、制御部２１、整合性確認部２２、セクタ冗長領域確保部２３、アクセス履歴記録部２４、データ不正箇所特定部２５および簡易整合性確認部２６を有している。ＲＡＩＤコントローラ２は、制御部２１によって全体的な動作制御が司られており、整合性確認部２２、セクタ冗長領域確保部２３、アクセス履歴記録部２４、データ不正箇所特定部２５および簡易整合性確認部２６の各部は、この制御部２１の制御下で動作する。
【００２７】
整合性確認部２２は、例えばホスト装置１からのデータアクセスが無い空き時間などを利用して、前述したデータ整合性確認を実施する。即ち、ＨＤＤ３に格納されたデータとパリティデータを読み出し、読み出したデータをもとにパリティデータを再計算して、先に読み出したパリティデータと一致するか否かを確認する処理を実行する。
【００２８】
セクタ冗長領域確保部２３は、ＨＤＤ３のセクタあたりの記憶容量（Byte par Sector）を、実際に有効なデータを格納する容量に対して大きくなるように設定して、未使用部分となる領域を確保する。この未使用部分となって任意に使用可能とした領域を、ここでは、セクタ冗長領域と称する。例えば、ＨＤＤ３の１セクタあたりの記録容量を５２０バイトフォーマットとし、見かけ上のフォーマットは１セクタあたり５１２バイトとすることで、セクタ冗長領域確保部２３は、８バイトのセクタ冗長領域を確保する。
【００２９】
また、アクセス履歴記録部２４は、セクタ冗長領域確保部２３によって確保されたセクタ冗長領域に、アクセス履歴情報およびデータ保護情報（ＣＲＣ：cyclic redundancy check）を記録する。アクセス履歴情報は、次の２種類の内容を含んでいる。
【００３０】
（１）タイムスタンプ
ライト要求に伴い、対象ストライプグループの同時ライトするＨＤＤ３すべてに同じタイムスタンプ（ＨＤＤ３にデータをライトする時刻）を記録する。
【００３１】
（２）ビットマップデータ
対象ストライプグループの同時ライトするＨＤＤ３すべてのＲＡＩＤ内の位置を示すビットマップデータを記録する。ライト先ＨＤＤ３が故障のためにデータをライトできない場合でも、ライト対象のＨＤＤ３であることを示すようにビットマップに反映する（後でＨＤＤ３が交換され、データ復元の際、セクタ冗長領域のアクセス履歴情報をコピーするときの制御で使用するためである）。
【００３２】
図４は、セクタ冗長領域確保部２３によって確保されたセクタ冗長領域に、アクセス履歴記録部２４によってアクセス履歴情報およびデータ保護情報が記録される様子を示す概念図である。なお、ＲＡＩＤの初期化処理は、データストライプからパリティを生成してＨＤＤにライトする処理であるが、この初期化処理時には、データストライプおよびパリティストライプのすべてのＨＤＤのセクタ冗長領域に、初期化処理によってライトする時刻をタイムスタンプとして、ストライプグループすべてのＨＤＤがライト対象となるデータをビットマップデータとしてそれぞれ記録する。また、初期化処理中に初期化が完了していない論理アドレスに対するライト要求があった場合には、通常のライト時と同じアクセス履歴情報を記録しておく。初期化処理が進み、いずれ、そのストライプグループも初期化によって上記のアクセス履歴情報に上書きされることになる。
【００３３】
そして、データ不正箇所特定部２５は、このセクタ冗長領域に記録されたアクセス履歴情報に基づいて、これまでは不可能であった、ＨＤＤが１台故障の縮減状態時に整合性確認部２２が不整合を検出した場合のデータ不正箇所の特定を実現する。
【００３４】
データの更新（ライト）に伴い、その対象ストライプグループのデータとパリティ間の整合性を保つために、ＰパリティデータおよびＱパリティデータも同時に更新しなければならない。基本的にＲＡＩＤが正常な状態におけるデータライトでは、少なくともデータストライプ，Ｐパリティストライプ，Ｑパリティストライプの３つが同時に更新されるはずである。つまり、これらのＨＤＤ３にライトされたセクタ冗長領域には、同じ情報が格納されているはずであるので、この点に着目して、データ不正箇所特定部２５は、データ不正箇所を特定する。
【００３５】
次に、図５乃至図７を参照して、データライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例（ケース１〜ケース３）を説明する。
【００３６】
（ケース１：図５）
ホスト装置１からのデータライト要求を受けると（図５（１））、ＲＡＩＤコントローラ２の制御部２１は、ライトすべきＨＤＤ３を判断する。ここでは、ＨＤＤ（１）にライトデータがライトされ、これに伴い、ＨＤＤ（４）のＰパリティデータ、ＨＤＤ（５）のＱパリティデータが更新（ライト）されるものとする。
【００３７】
この場合、アクセス履歴記録部２４は、ＨＤＤ（１），ＨＤＤ（４），ＨＤＤ（５）がライト対象ＨＤＤであると判断されたことから、”１００１１”というビットマップデータを生成する。また、アクセス履歴記録部２４は、例えば内蔵する時計モジュール等のハードウェア資源より時刻を取得し、タイムスタンプを準備する。
【００３８】
これと並行して、ＲＡＩＤコントローラ２では、Ｐパリティデータ／Ｑパリティデータを更新するためのｏｌｄデータのリード（図５（２））と、Ｐパリティデータ／Ｑパリティデータの再計算（図５（３），（４））とが行われる。図５の例では、前述した２つの計算方法のうち、ライト対象のｏｌｄデータとｎｅｗデータとを使った計算方法が使用されている。
【００３９】
そして、ライトデータおよびＰパリティデータ／ＱパリティデータのＨＤＤへのライトが行われる際（図５（５））、アクセス履歴記録部２４は、セクタ冗長領域へのタイムスタンプおよびビットマップデータのライトを同時に行う。その結果、ライトデータおよびＰパリティデータ／ＱパリティデータがライトされたＨＤＤ（１）、ＨＤＤ（４）、ＨＤＤ（５）の各セクタのセクタ冗長領域には、図５（Ｂ）に示すような、同一のアクセス履歴情報が記録されることになる。また、このセクタ冗長領域へのタイムスタンプおよびビットマップデータのライト時、アクセス履歴記録部２４は、ライトデータおよびＰパリティデータ／ＱパリティデータのＣＲＣを計算して、それぞれのセクタ冗長領域へライトすることも併せて行っている（以下、同じ）。
【００４０】
（ケース２：図６）
このケースでは、ＨＤＤ（１）、ＨＤＤ（２）にライトデータがライトされ、これに伴って、ＨＤＤ（４）のＰパリティデータ、ＨＤＤ（５）のＱパリティデータが更新（ライト）される。そこで、アクセス履歴記録部２４は、”１１０１１”というビットマップデータを生成する。
【００４１】
また、図６の例では、Ｐパリティデータ／Ｑパリティデータが、ｎｅｗデータを用いてパリティ生成時と同じ計算を行う方法で再計算されている。そのために、ＨＤＤ（３）からのデータリードが行われるが、ＨＤＤ（３）へのデータライトは行われないため、アクセス履歴情報は記録されない。よって、このＨＤＤ（３）を除いた、ライトデータおよびＰパリティデータ／ＱパリティデータがライトされたＨＤＤ（１）、ＨＤＤ（２）、ＨＤＤ（４）、ＨＤＤ（５）の各セクタのセクタ冗長領域に、図６（Ｂ）に示すような、同一のアクセス履歴情報が記録されることになる。
【００４２】
（ケース３：図７）
このケースは、図５に示したケース１と同様、ＨＤＤ（１）にライトデータがライトされ、これに伴って、ＨＤＤ（４）のＰパリティデータ、ＨＤＤ（５）のＱパリティデータが更新（ライト）されるというものである。しかしながら、ＨＤＤ（１）が故障状態にあるために、ＨＤＤ（１）へのライトが行えない状況にある。
【００４３】
そのために、ここでは、図７に示すように、ライト対象のｏｌｄデータとｎｅｗデータとを使った計算方法ではなく、ｎｅｗデータを用いてパリティ生成時と同じ計算を行う方法でＰパリティデータ／Ｑパリティデータを再計算し、このＰパリティデータ／ＱパリティデータのみのライトをＨＤＤ（４）、ＨＤＤ（５）に対して行っている。従って、ＨＤＤ（１）へのライトは実際には行っていない。
【００４４】
この場合でも、アクセス履歴記録部２４は、ＨＤＤ（１）はライトが行われるべきであったとして、”１００１１”というビットマップデータを作成する。ＨＤＤ（１）は故障状態にあるので、図７（Ｂ）に示すような、同一のアクセス履歴情報が、ＨＤＤ（４）、ＨＤＤ（５）に記録されることになる。
【００４５】
次に、図８を参照して、このようにアクセス履歴情報が記録される本実施形態のディスクアレイ装置において、データ不正箇所特定部２５が、ＨＤＤが１台故障の縮減状態時に整合性確認部２２が不整合を検出した場合のデータ不正箇所の特定をどのように実現しているのかについて説明する。
【００４６】
データ不正箇所特定部２５は、まず、ＰパリティとＱパリティのアクセス履歴情報を読み出し（ステップＡ１）、これらが一致しているかを調べる（ステップＡ２）。もし、一致していれば（ステップＡ２のＹｅｓ）、データ不正箇所特定部２５は、このパリティストライプのビットマップを参照し、対象となる同時ライトしたＨＤＤ３からアクセス履歴情報をリードする（ステップＡ３）。そして、データ不正箇所特定部２５は、データＨＤＤのアクセス履歴情報とパリティＨＤＤのアクセス履歴情報を比較し（ステップＡ４）、情報が一致しない矛盾があるＨＤＤ３を見つけてＲＡＩＤ機能にてデータ訂正する（ステップＡ５）。
【００４７】
一方、ＰパリティとＱパリティのアクセス履歴情報が一致していなければ（ステップＡ２のＮｏ）、データ不正箇所特定部２５は、第１に、Ｐパリティのアクセス履歴情報のビットマップデータをもとに対象となる同時ライトしたＨＤＤ３からアクセス履歴情報をリードして比較する（ステップＡ６）。ここで、データ不正箇所特定部２５は、”比較対象ＨＤＤなし”であれば比較結果Ａ、”全て一致”であれば比較結果Ｂ、”不一致”であれば比較結果Ｃ、とする分類を行う（ステップＡ７）。
【００４８】
また、データ不正箇所特定部２５は、第２に、Ｑパリティのアクセス履歴情報のビットマップデータをもとに対象となる同時ライトしたＨＤＤ３からアクセス履歴情報をリードして比較する（ステップＡ８）。ここでも、データ不正箇所特定部２５は、”比較対象ＨＤＤなし”であれば比較結果Ｄ、”全て一致”であれば比較結果Ｅ、”不一致”であれば比較結果Ｆ、とする分類を行う（ステップＡ９）。
【００４９】
そして、データ不正箇所特定部２５は、この第１の比較結果の分類と第２の比較結果の分類との組み合わせに基づき、図９に示すように、データ不正箇所の判定および訂正を実行する（ステップＡ１０）。
【００５０】
このように、本実施形態のディスクアレイ装置は、セクタ冗長領域確保部２３によってセクタ冗長領域を確保し、（この確保したセクタ冗長領域に）アクセス履歴記録部２４によってアクセス履歴情報を記録するので、データ不正箇所特定部２５による、これまでは不可能であった、ＨＤＤが１台故障の縮減状態時に整合性確認部２２が不整合を検出した場合のデータ不正箇所の特定を実現する。
【００５１】
ところで、以上では、このアクセス履歴情報の用途として、整合性確認部２２によりデータ不整合が検出された場合のデータ不正箇所の特定に利用する例を説明した。しかしながら、このアクセス履歴情報は、これだけに限定されず、例えばデータライト時の検証にも利用することができる。そのために、本実施形態のディスクアレイ装置では、簡易整合性確認部２６を備える。
【００５２】
簡易整合性確認部２６は、ライト処理の過程において動作し、ＰパリティやＱパリティを使った高負荷の計算を実行することなく、当該ライト処理が正常に行われたかどうかを検証するものである。図１０を参照して、この簡易整合性確認部２６が実行する簡易整合性確認の手順を説明する。
【００５３】
簡易整合性確認部２６は、まず、両パリティストライプをリードし、アクセス履歴情報が一致しているか確認する（ステップＢ１のＹｅｓ，ステップＢ２）。もし、一致していなければ（ステップＢ３のＮｏ）、この時点で、不整合が生じていると判定する（ステップＢ８）。
【００５４】
一方、アクセス履歴情報が一致していれば（ステップＢ３のＹｅｓ）、簡易整合性確認部２６は、ビットマップデータを参照し、同時ライト対象のＨＤＤからアクセス履歴情報をリードしてパリティストライプの情報と一致しているか確認する（ステップＢ４，ステップＢ５）。そして、一致していなければ（ステップＢ５のＮｏ）、不整合が生じていると判定する（ステップＢ８）。
【００５５】
また、一致していれば（ステップＢ５のＹｅｓ）、簡易整合性確認部２６は、データ保護情報（ＣＲＣ）を使ってデータ自体のチェックを行い（ステップＢ６）、エラーが検出されたら（ステップＢ７のＮｏ）、不整合が生じていると判定する（ステップＢ８）。
【００５６】
従って、本実施形態のディスクアレイ装置が実行するデータライトの手順は、図１１に示すような流れとなる。
【００５７】
ホスト装置１からデータライト要求を受け付けると（ステップＣ１）、どのＨＤＤのどのアドレス（セクタ）へライトすべきか判断し、対象ストライプグループのライトすべき全てのＨＤＤの位置を示すビットマップを生成すると共に（ステップＣ２）、データ書き込み時刻（タイムスタンプ）を内蔵のハードウェアなどから得る（ステップＣ３）。
【００５８】
次に、必要により各々のＨＤＤからｏｌｄデータをリードし（ステップＣ４）、パリティ更新データを計算すると共に（ステップＣ５）、ライトデータおよびパリティ更新データのＣＲＣを計算する（ステップＣ６）。そして、対象セクタのデータ領域にホスト要求ライトデータ、冗長領域にタイムスタンプ、ビットマップデータおよびＣＲＣが格納されるように、バッファ領域にデータをセットして（ステップＣ７）、ＨＤＤへライト要求を発行する（ステップＣ８）。
【００５９】
すべてのライト対象ＨＤＤへのデータライトが完了したら（ステップＣ９のＹＥＳ）、図１０に詳細な手順を示した、アクセス履歴情報を使った簡易整合性確認を実施する（ステップＣ１０）。もし、不整合と判定したら（ステップＣ１１のＹＥＳ）、ライト処理を再実行し（ステップＣ１２）、整合と判定したら（ステップＣ１１のＮＯ）、ホスト装置１に対してデータライト完了を応答する（ステップＣ１３）。
【００６０】
データライト時に簡易整合性確認で不整合が検出できれば、ＲＡＩＤコントローラ２中にライトすべきデータが存在しているので、リカバリが短時間で可能である。また、簡易整合性確認自体も、パリティ計算を必要としないので、応答性の大幅な低下を招くといったことがない。さらに、このアクセス履歴情報の一致確認をハードウェアで行うようにすれば、高速に処理することが可能である。
【００６１】
また、次に、ＨＤＤが１台故障の縮減状態から正常状態に復帰した場合のアクセス履歴情報のコピー手順について説明する。
【００６２】
ＨＤＤ故障時、ＨＤＤの交換やホットスペアＨＤＤを使用することなどによって、故障したＨＤＤのデータをＲＡＩＤ機能により復元し、交換したＨＤＤにデータを格納することで、故障状態から回復させることができる。そこで、本実施形態のディスクアレイ装置においては、このデータ復元の際、セクタ冗長領域のアクセス履歴情報もコピーする。図１２は、このコピー手順を示すフローチャートである。
【００６３】
まず、Ｐ，Ｑどちらかアクセス可能な方のパリティストライプをリードし、アクセス履歴情報のビットマップデータをコピーする（ステップＤ１のＹｅｓ，ステップＤ２）。データ復元先のＨＤＤが、そのビットマップ情報でライト先ＨＤＤの対象となっている場合は（ステップＤ３のＹｅｓ）、タイムスタンプもパリティストライプのタイムスタンプをコピーする（ステップＤ４）。一方、ライト先ＨＤＤの対象になっていない場合は（ステップＤ３のＮｏ）、タイムスタンプをゼロとして格納する（ステップＤ５）。
【００６４】
故障などで両パリティストライプがリードできない場合は（ステップＤ１のＮｏ）、データストライプのアクセス履歴情報のタイムスタンプが最新のものを見つけて、その情報をコピーする（ステップＤ６）。そして、データ復元先のＨＤＤが、そのビットマップ情報でライト先ＨＤＤの対象となっている場合は（ステップＤ７のＹｅｓ）、タイムスタンプもデータストライプのタイムスタンプをコピーし（ステップＤ８）、一方、ライト先ＨＤＤの対象になっていない場合は（ステップＤ７のＮｏ）、タイムスタンプをゼロとして格納する（ステップＤ９）。
【００６５】
これにより、有効データの復元時に、セクタ冗長領域のアクセス履歴情報も復元されることになる。なお、データ保護情報（ＣＲＣ）は、復元した有効データそれぞれから再計算されることになる。
【００６６】
以上のように、本実施形態のディスクアレイ装置によれば、データライト抜けによるデータ不正をセクタ冗長領域に記録されたタイムスタンプおよびビットマップデータを使って検出できるので、ＲＡＩＤ−６を構成する複数のディスク装置の中の１台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とする。さらに、ビット化けによるデータ不正もセクタ冗長領域に記録されたＣＲＣを使って検出することを可能とする。
【００６７】
なお、以上では、ＲＡＩＤ−６形式のＲＡＩＤについて説明したが、セクタ冗長領域を確保してアクセス履歴情報を記録するという手法は、ＲＡＩＤ−６形式以外のＲＡＩＤについても適用することが可能である。
【００６８】
また、例えばホスト装置１からのデータアクセスが無い空き時間などを利用して、データ整合性確認を周期的に実施する整合性確認部２２は、前述のように、読み出したデータからパリティデータを再計算して比較することによって整合性を確認するのが一般的であるが、本実施形態のディスクアレイ装置では、簡易整合性確認部２６と同様に、セクタ冗長領域に記録されたタイムスタンプ、ビットマップデータおよびＣＲＣを使って効率的に整合性を確認することも可能である（つまり、整合性確認部２２を設けず、簡易整合性確認部２６に周期的な整合性確認も行わせることも可能となる）。特に、ビットマップデータは、データライト時の検証よりも、この周期的な整合性確認の際に有用である。どのＨＤＤ３にライトを行ったかは、データライト直後であればＲＡＩＤコントローラ２のメモリ上に記憶されているので、これを利用して判断可能であるが、（データライトが既に過去の事となっている）周期的な整合性確認の際には、当該ビットマップデータが存在するからこそ判断可能となるからである。
【００６９】
このように、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７０】
【図１】本発明の実施形態に係るディスクアレイ装置の構成例を示す図
【図２】ＲＡＩＤ−６のデータ配置例を示す図
【図３】ＲＡＩＤが縮退状態（ＨＤＤが１台故障）の場合のデータ整合性確認を説明するための図
【図４】同実施形態のディスクアレイ装置において、セクタ冗長領域確保部によって確保されたセクタ冗長領域に、アクセス履歴記録部によってアクセス履歴情報が記録される様子を示す概念図
【図５】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例（ケース１）を示す図
【図６】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例（ケース２）を示す図
【図７】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例（ケース３）を示す図
【図８】同実施形態のディスクアレイ装置が実行する、ＨＤＤが１台故障の縮減状態時に不整合が検出された場合のデータ不正箇所の特定手順を示すフローチャート
【図９】同実施形態のディスクアレイ装置によるデータ不正箇所の判定および訂正を説明するための図
【図１０】同実施形態のディスクアレイ装置が実行する簡易整合性確認の手順を示すフローチャート
【図１１】本実施形態のディスクアレイ装置が実行するデータライトの手順を示すフローチャート
【図１２】同実施形態のディスクアレイ装置が実行する、データ復元の際のセクタ冗長領域のアクセス履歴情報のコピーの手順を示すフローチャート
【符号の説明】
【００７１】
１…ホスト装置、２…ＲＡＩＤコントローラ、３…ＨＤＤ、４…ＲＡＩＤ、２１…制御部、２２…整合性確認部、２３…セクタ冗長領域確保部、２４…アクセス履歴記録部、２５…データ不正箇所特定部、２６…簡易整合性確認部。
【図１】
2008071297.tif 000011
【図２】
2008071297.tif 000012
【図３】
2008071297.tif 000013
【図４】
2008071297.tif 000014
【図５】
2008071297.tif 000015
【図６】
2008071297.tif 000016
【図７】
2008071297.tif 000017
【図８】
2008071297.tif 000018
【図９】
2008071297.tif 000019
【図１０】
2008071297.tif 000020
【図１１】
2008071297.tif 000021
【図１２】
2008071297.tif 000022