ディスクアレイ装置およびディスクアレイ装置のデータ管理方法
【課題】例えばRAID−6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とするディスクアレイ装置を提供する。
【解決手段】セクタ冗長領域確保部23は、HDD3のセクタあたりの記憶容量を、実際に有効なデータを格納する容量に対して大きくなるように設定し、セクタ冗長領域を確保する。アクセス履歴記録部24は、セクタ冗長領域確保部23によって確保されたセクタ冗長領域に、アクセス履歴情報を記録する。そして、データ不正箇所特定部25は、セクタ冗長領域に記録されたアクセス履歴情報に基づいて、HDDが1台故障の縮減状態時に不整合を検出した場合のデータ不正箇所の特定を実行する。
【解決手段】セクタ冗長領域確保部23は、HDD3のセクタあたりの記憶容量を、実際に有効なデータを格納する容量に対して大きくなるように設定し、セクタ冗長領域を確保する。アクセス履歴記録部24は、セクタ冗長領域確保部23によって確保されたセクタ冗長領域に、アクセス履歴情報を記録する。そして、データ不正箇所特定部25は、セクタ冗長領域に記録されたアクセス履歴情報に基づいて、HDDが1台故障の縮減状態時に不整合を検出した場合のデータ不正箇所の特定を実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばRAID(redundant array of inexpensive disks)6を構成するディスクアレイ装置に適用して好適なデータ管理技術に関する。
【背景技術】
【0002】
近年、電子商取引の普及等に伴い、高応答性や耐障害性など、データ記憶装置に対する要求が非常に高まっている。この要求に応える技術として、複数のディスク装置を並列に接続して、これらをあたかも1台のディスク装置のように連携して動作させるRAID機能が存在する。
【0003】
特に、最新のRAID−6では、パリティデータなどと称される冗長データを2種類使用することにより、整合性確認の強化が図られている。また、このRAID−6を構成するディスクアレイ装置においては、データ不正箇所を特定するための手法なども種々提案されている(例えば特許文献1等参照)。
【特許文献1】特開2005−293263号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
この特許文献1に記載のディスクアレイ装置では、2種類の冗長データが存在することに着目し、被疑データを未知数とする連立方程式を順次解いていくことにより、誤りデータを特定する。
【0005】
しかしながら、この手法は、ディスクアレイ装置が備える複数のディスク装置すべてが正常稼働している場合、より厳密には、ストライプグループ内に、故障状態にあるディスク装置内の区域が配置されていない場合にのみ有効である。換言すれば、1台のディスク装置が故障状態にある場合、この故障状態にあるディスク装置内の区域が配置されたストライプグループでは、整合性確認で不整合が検出できたとしても、データ不正箇所を特定することはできないことになる。
【0006】
この発明は、このような事情を考慮したものであり、例えばRAID−6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とするディスクアレイ装置およびディスクアレイ装置のデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
前述した目的を達成するために、この発明は、複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置において、前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保する冗長領域確保手段と、データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録するアクセス履歴情報記録手段と、を具備することを特徴とする。
【0008】
また、この発明は、複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置のデータ管理方法であって、前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保し、データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録する、ことを特徴とする。
【発明の効果】
【0009】
この発明によれば、例えばRAID−6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とする。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して本発明の実施形態を説明する。
【0011】
図1には、本実施形態に係るディスクアレイ装置の構成例が示されている。このディスクアレイ装置は、RAIDコントローラ2と複数のHDD(hard disk drive)3とで構成され、あたかも1台のディスク装置のごとく振る舞ってホスト装置1からのアクセス要求を受け付ける。そして、このRAIDコントローラ2は、複数のHDD3を使ってRAID−6形式のRAID4を構成する。つまり、RAIDコントローラ2は、並列接続された複数のHDD3でストライピングを行い、各ストライプグループ4AごとにPパリティ/Qパリティと称される2種類のパリティデータ(冗長データ)を生成して、この2種類のパリティデータを複数のHDD3に巡回的に分散させて記録する。
【0012】
ここで、本実施形態のディスクアレイ装置についての理解を助けるために、RAID−6の基本原理について説明する。図2に、RAID−6のデータ配置例を示す。
【0013】
(1)RAID−6のパリティ生成
(a)Pパリティデータ生成時の計算式
RAID−6のPパリティデータは、RAID−5のパリティデータと同様に、対象となるストライプグループ全てのデータストライプのビット単位の排他的論理和(XOR)演算にて算出する。例えば、ストライプグループ1のPパリティデータは、次の(1)式で求められる。
【数1】
【0014】
(b)Qパリティデータは、対象となるストライプグループの各々のデータストライプに、そのストライプグループに唯一のデータとなる係数(重み)を用いてガロア体の乗算を行い、それぞれの積をXOR演算することで算出する。例えば、ストライプグループ1のQパリティデータは、次の(2)式で求められる。
【数2】
【0015】
(2)RAID−6のパリティ更新
RAID−6のPパリティデータとQパリティデータは、データストライプのデータが新しいデータで更新される場合には、整合性を維持するためにそれぞれ更新しなければならない。
【0016】
(a)Pパリティデータ更新時の計算式
Pパリティデータ更新の計算には、newデータを用いてパリティ生成時と同じ計算を行う方法と、ライト対象のoldデータおよびnewデータとPパリティのoldデータとから計算を行う方法がある。ストライプグループ1のデータ1がライトされた場合の後者の方法による計算式を以下に示す((3)式)。
【数3】
【0017】
(b)Qパリティデータ更新時の計算式
Qパリティデータ更新にも2種類の計算方法があり、以下に、ストライプグループ1のデータ2がライトされた場合に、ライト対象のoldデータおよびnewデータとQパリティのoldデータとから計算を行う計算式を示す((4)式)。
【数4】
【0018】
(3)RAID−6の整合性確認
例えば、HDDに格納したデータとパリティデータを読み出し、読み出したデータをもとにパリティデータを再計算して、先に読み出したパリティデータと一致するか否かを確認する。
【0019】
(a)RAIDが正常状態の場合
RAIDが正常状態の場合は、すべてのHDDからデータを読み出してパリティを再計算し、読み出したパリティと一致するかの確認を行う。なお、不整合を検出した場合、改めてパリティを再生する等、システムの方針に基づいてリカバリする。
【0020】
(ア)Pパリティデータを使用した整合性の確認方法
次の(5)式が成立することを確認する。
【数5】
【0021】
(イ)Qパリティデータを使用した整合性の確認方法
次の(6)式が成立することを確認する。
【数6】
【0022】
(b)RAIDが縮退状態(HDDが1台故障)の場合
RAIDが縮退状態で、かつ、故障HDDがデータストライプの場合は、まずPパリティとその他の正常HDDのデータから故障したHDDのデータを復元し、その復元データと正常HDDのデータからQパリティを再計算し、読み出したQパリティと一致するかの確認を行う。
【0023】
例えば、図3に示すように、ストライプグループ1のデータ2が記録されたHDDが故障した場合を想定すると、この場合の整合性確認は、以下の(7)式,(8)式の順に計算して、(8)式が成立することを確認する。
【数7】
【0024】
【数8】
【0025】
以上のように、RAID−6では、HDDが1台故障の縮減状態の場合にも、データ整合性確認を行うことができる。しかしながら、このデータ整合性確認で万一不整合が検出された場合は、データ誤りのある不正箇所を特定することができない。そこで、本実施形態のディスクアレイ装置は、HDDが1台故障の縮減状態の場合にあっても、データ整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能としたものであり、以下、この点について詳述する。
【0026】
図1に示すように、RAIDコントローラ2は、制御部21、整合性確認部22、セクタ冗長領域確保部23、アクセス履歴記録部24、データ不正箇所特定部25および簡易整合性確認部26を有している。RAIDコントローラ2は、制御部21によって全体的な動作制御が司られており、整合性確認部22、セクタ冗長領域確保部23、アクセス履歴記録部24、データ不正箇所特定部25および簡易整合性確認部26の各部は、この制御部21の制御下で動作する。
【0027】
整合性確認部22は、例えばホスト装置1からのデータアクセスが無い空き時間などを利用して、前述したデータ整合性確認を実施する。即ち、HDD3に格納されたデータとパリティデータを読み出し、読み出したデータをもとにパリティデータを再計算して、先に読み出したパリティデータと一致するか否かを確認する処理を実行する。
【0028】
セクタ冗長領域確保部23は、HDD3のセクタあたりの記憶容量(Byte par Sector)を、実際に有効なデータを格納する容量に対して大きくなるように設定して、未使用部分となる領域を確保する。この未使用部分となって任意に使用可能とした領域を、ここでは、セクタ冗長領域と称する。例えば、HDD3の1セクタあたりの記録容量を520バイトフォーマットとし、見かけ上のフォーマットは1セクタあたり512バイトとすることで、セクタ冗長領域確保部23は、8バイトのセクタ冗長領域を確保する。
【0029】
また、アクセス履歴記録部24は、セクタ冗長領域確保部23によって確保されたセクタ冗長領域に、アクセス履歴情報およびデータ保護情報(CRC:cyclic redundancy check)を記録する。アクセス履歴情報は、次の2種類の内容を含んでいる。
【0030】
(1)タイムスタンプ
ライト要求に伴い、対象ストライプグループの同時ライトするHDD3すべてに同じタイムスタンプ(HDD3にデータをライトする時刻)を記録する。
【0031】
(2)ビットマップデータ
対象ストライプグループの同時ライトするHDD3すべてのRAID内の位置を示すビットマップデータを記録する。ライト先HDD3が故障のためにデータをライトできない場合でも、ライト対象のHDD3であることを示すようにビットマップに反映する(後でHDD3が交換され、データ復元の際、セクタ冗長領域のアクセス履歴情報をコピーするときの制御で使用するためである)。
【0032】
図4は、セクタ冗長領域確保部23によって確保されたセクタ冗長領域に、アクセス履歴記録部24によってアクセス履歴情報およびデータ保護情報が記録される様子を示す概念図である。なお、RAIDの初期化処理は、データストライプからパリティを生成してHDDにライトする処理であるが、この初期化処理時には、データストライプおよびパリティストライプのすべてのHDDのセクタ冗長領域に、初期化処理によってライトする時刻をタイムスタンプとして、ストライプグループすべてのHDDがライト対象となるデータをビットマップデータとしてそれぞれ記録する。また、初期化処理中に初期化が完了していない論理アドレスに対するライト要求があった場合には、通常のライト時と同じアクセス履歴情報を記録しておく。初期化処理が進み、いずれ、そのストライプグループも初期化によって上記のアクセス履歴情報に上書きされることになる。
【0033】
そして、データ不正箇所特定部25は、このセクタ冗長領域に記録されたアクセス履歴情報に基づいて、これまでは不可能であった、HDDが1台故障の縮減状態時に整合性確認部22が不整合を検出した場合のデータ不正箇所の特定を実現する。
【0034】
データの更新(ライト)に伴い、その対象ストライプグループのデータとパリティ間の整合性を保つために、PパリティデータおよびQパリティデータも同時に更新しなければならない。基本的にRAIDが正常な状態におけるデータライトでは、少なくともデータストライプ,Pパリティストライプ,Qパリティストライプの3つが同時に更新されるはずである。つまり、これらのHDD3にライトされたセクタ冗長領域には、同じ情報が格納されているはずであるので、この点に着目して、データ不正箇所特定部25は、データ不正箇所を特定する。
【0035】
次に、図5乃至図7を参照して、データライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース1〜ケース3)を説明する。
【0036】
(ケース1:図5)
ホスト装置1からのデータライト要求を受けると(図5(1))、RAIDコントローラ2の制御部21は、ライトすべきHDD3を判断する。ここでは、HDD(1)にライトデータがライトされ、これに伴い、HDD(4)のPパリティデータ、HDD(5)のQパリティデータが更新(ライト)されるものとする。
【0037】
この場合、アクセス履歴記録部24は、HDD(1),HDD(4),HDD(5)がライト対象HDDであると判断されたことから、”10011”というビットマップデータを生成する。また、アクセス履歴記録部24は、例えば内蔵する時計モジュール等のハードウェア資源より時刻を取得し、タイムスタンプを準備する。
【0038】
これと並行して、RAIDコントローラ2では、Pパリティデータ/Qパリティデータを更新するためのoldデータのリード(図5(2))と、Pパリティデータ/Qパリティデータの再計算(図5(3),(4))とが行われる。図5の例では、前述した2つの計算方法のうち、ライト対象のoldデータとnewデータとを使った計算方法が使用されている。
【0039】
そして、ライトデータおよびPパリティデータ/QパリティデータのHDDへのライトが行われる際(図5(5))、アクセス履歴記録部24は、セクタ冗長領域へのタイムスタンプおよびビットマップデータのライトを同時に行う。その結果、ライトデータおよびPパリティデータ/QパリティデータがライトされたHDD(1)、HDD(4)、HDD(5)の各セクタのセクタ冗長領域には、図5(B)に示すような、同一のアクセス履歴情報が記録されることになる。また、このセクタ冗長領域へのタイムスタンプおよびビットマップデータのライト時、アクセス履歴記録部24は、ライトデータおよびPパリティデータ/QパリティデータのCRCを計算して、それぞれのセクタ冗長領域へライトすることも併せて行っている(以下、同じ)。
【0040】
(ケース2:図6)
このケースでは、HDD(1)、HDD(2)にライトデータがライトされ、これに伴って、HDD(4)のPパリティデータ、HDD(5)のQパリティデータが更新(ライト)される。そこで、アクセス履歴記録部24は、”11011”というビットマップデータを生成する。
【0041】
また、図6の例では、Pパリティデータ/Qパリティデータが、newデータを用いてパリティ生成時と同じ計算を行う方法で再計算されている。そのために、HDD(3)からのデータリードが行われるが、HDD(3)へのデータライトは行われないため、アクセス履歴情報は記録されない。よって、このHDD(3)を除いた、ライトデータおよびPパリティデータ/QパリティデータがライトされたHDD(1)、HDD(2)、HDD(4)、HDD(5)の各セクタのセクタ冗長領域に、図6(B)に示すような、同一のアクセス履歴情報が記録されることになる。
【0042】
(ケース3:図7)
このケースは、図5に示したケース1と同様、HDD(1)にライトデータがライトされ、これに伴って、HDD(4)のPパリティデータ、HDD(5)のQパリティデータが更新(ライト)されるというものである。しかしながら、HDD(1)が故障状態にあるために、HDD(1)へのライトが行えない状況にある。
【0043】
そのために、ここでは、図7に示すように、ライト対象のoldデータとnewデータとを使った計算方法ではなく、newデータを用いてパリティ生成時と同じ計算を行う方法でPパリティデータ/Qパリティデータを再計算し、このPパリティデータ/QパリティデータのみのライトをHDD(4)、HDD(5)に対して行っている。従って、HDD(1)へのライトは実際には行っていない。
【0044】
この場合でも、アクセス履歴記録部24は、HDD(1)はライトが行われるべきであったとして、”10011”というビットマップデータを作成する。HDD(1)は故障状態にあるので、図7(B)に示すような、同一のアクセス履歴情報が、HDD(4)、HDD(5)に記録されることになる。
【0045】
次に、図8を参照して、このようにアクセス履歴情報が記録される本実施形態のディスクアレイ装置において、データ不正箇所特定部25が、HDDが1台故障の縮減状態時に整合性確認部22が不整合を検出した場合のデータ不正箇所の特定をどのように実現しているのかについて説明する。
【0046】
データ不正箇所特定部25は、まず、PパリティとQパリティのアクセス履歴情報を読み出し(ステップA1)、これらが一致しているかを調べる(ステップA2)。もし、一致していれば(ステップA2のYes)、データ不正箇所特定部25は、このパリティストライプのビットマップを参照し、対象となる同時ライトしたHDD3からアクセス履歴情報をリードする(ステップA3)。そして、データ不正箇所特定部25は、データHDDのアクセス履歴情報とパリティHDDのアクセス履歴情報を比較し(ステップA4)、情報が一致しない矛盾があるHDD3を見つけてRAID機能にてデータ訂正する(ステップA5)。
【0047】
一方、PパリティとQパリティのアクセス履歴情報が一致していなければ(ステップA2のNo)、データ不正箇所特定部25は、第1に、Pパリティのアクセス履歴情報のビットマップデータをもとに対象となる同時ライトしたHDD3からアクセス履歴情報をリードして比較する(ステップA6)。ここで、データ不正箇所特定部25は、”比較対象HDDなし”であれば比較結果A、”全て一致”であれば比較結果B、”不一致”であれば比較結果C、とする分類を行う(ステップA7)。
【0048】
また、データ不正箇所特定部25は、第2に、Qパリティのアクセス履歴情報のビットマップデータをもとに対象となる同時ライトしたHDD3からアクセス履歴情報をリードして比較する(ステップA8)。ここでも、データ不正箇所特定部25は、”比較対象HDDなし”であれば比較結果D、”全て一致”であれば比較結果E、”不一致”であれば比較結果F、とする分類を行う(ステップA9)。
【0049】
そして、データ不正箇所特定部25は、この第1の比較結果の分類と第2の比較結果の分類との組み合わせに基づき、図9に示すように、データ不正箇所の判定および訂正を実行する(ステップA10)。
【0050】
このように、本実施形態のディスクアレイ装置は、セクタ冗長領域確保部23によってセクタ冗長領域を確保し、(この確保したセクタ冗長領域に)アクセス履歴記録部24によってアクセス履歴情報を記録するので、データ不正箇所特定部25による、これまでは不可能であった、HDDが1台故障の縮減状態時に整合性確認部22が不整合を検出した場合のデータ不正箇所の特定を実現する。
【0051】
ところで、以上では、このアクセス履歴情報の用途として、整合性確認部22によりデータ不整合が検出された場合のデータ不正箇所の特定に利用する例を説明した。しかしながら、このアクセス履歴情報は、これだけに限定されず、例えばデータライト時の検証にも利用することができる。そのために、本実施形態のディスクアレイ装置では、簡易整合性確認部26を備える。
【0052】
簡易整合性確認部26は、ライト処理の過程において動作し、PパリティやQパリティを使った高負荷の計算を実行することなく、当該ライト処理が正常に行われたかどうかを検証するものである。図10を参照して、この簡易整合性確認部26が実行する簡易整合性確認の手順を説明する。
【0053】
簡易整合性確認部26は、まず、両パリティストライプをリードし、アクセス履歴情報が一致しているか確認する(ステップB1のYes,ステップB2)。もし、一致していなければ(ステップB3のNo)、この時点で、不整合が生じていると判定する(ステップB8)。
【0054】
一方、アクセス履歴情報が一致していれば(ステップB3のYes)、簡易整合性確認部26は、ビットマップデータを参照し、同時ライト対象のHDDからアクセス履歴情報をリードしてパリティストライプの情報と一致しているか確認する(ステップB4,ステップB5)。そして、一致していなければ(ステップB5のNo)、不整合が生じていると判定する(ステップB8)。
【0055】
また、一致していれば(ステップB5のYes)、簡易整合性確認部26は、データ保護情報(CRC)を使ってデータ自体のチェックを行い(ステップB6)、エラーが検出されたら(ステップB7のNo)、不整合が生じていると判定する(ステップB8)。
【0056】
従って、本実施形態のディスクアレイ装置が実行するデータライトの手順は、図11に示すような流れとなる。
【0057】
ホスト装置1からデータライト要求を受け付けると(ステップC1)、どのHDDのどのアドレス(セクタ)へライトすべきか判断し、対象ストライプグループのライトすべき全てのHDDの位置を示すビットマップを生成すると共に(ステップC2)、データ書き込み時刻(タイムスタンプ)を内蔵のハードウェアなどから得る(ステップC3)。
【0058】
次に、必要により各々のHDDからoldデータをリードし(ステップC4)、パリティ更新データを計算すると共に(ステップC5)、ライトデータおよびパリティ更新データのCRCを計算する(ステップC6)。そして、対象セクタのデータ領域にホスト要求ライトデータ、冗長領域にタイムスタンプ、ビットマップデータおよびCRCが格納されるように、バッファ領域にデータをセットして(ステップC7)、HDDへライト要求を発行する(ステップC8)。
【0059】
すべてのライト対象HDDへのデータライトが完了したら(ステップC9のYES)、図10に詳細な手順を示した、アクセス履歴情報を使った簡易整合性確認を実施する(ステップC10)。もし、不整合と判定したら(ステップC11のYES)、ライト処理を再実行し(ステップC12)、整合と判定したら(ステップC11のNO)、ホスト装置1に対してデータライト完了を応答する(ステップC13)。
【0060】
データライト時に簡易整合性確認で不整合が検出できれば、RAIDコントローラ2中にライトすべきデータが存在しているので、リカバリが短時間で可能である。また、簡易整合性確認自体も、パリティ計算を必要としないので、応答性の大幅な低下を招くといったことがない。さらに、このアクセス履歴情報の一致確認をハードウェアで行うようにすれば、高速に処理することが可能である。
【0061】
また、次に、HDDが1台故障の縮減状態から正常状態に復帰した場合のアクセス履歴情報のコピー手順について説明する。
【0062】
HDD故障時、HDDの交換やホットスペアHDDを使用することなどによって、故障したHDDのデータをRAID機能により復元し、交換したHDDにデータを格納することで、故障状態から回復させることができる。そこで、本実施形態のディスクアレイ装置においては、このデータ復元の際、セクタ冗長領域のアクセス履歴情報もコピーする。図12は、このコピー手順を示すフローチャートである。
【0063】
まず、P,Qどちらかアクセス可能な方のパリティストライプをリードし、アクセス履歴情報のビットマップデータをコピーする(ステップD1のYes,ステップD2)。データ復元先のHDDが、そのビットマップ情報でライト先HDDの対象となっている場合は(ステップD3のYes)、タイムスタンプもパリティストライプのタイムスタンプをコピーする(ステップD4)。一方、ライト先HDDの対象になっていない場合は(ステップD3のNo)、タイムスタンプをゼロとして格納する(ステップD5)。
【0064】
故障などで両パリティストライプがリードできない場合は(ステップD1のNo)、データストライプのアクセス履歴情報のタイムスタンプが最新のものを見つけて、その情報をコピーする(ステップD6)。そして、データ復元先のHDDが、そのビットマップ情報でライト先HDDの対象となっている場合は(ステップD7のYes)、タイムスタンプもデータストライプのタイムスタンプをコピーし(ステップD8)、一方、ライト先HDDの対象になっていない場合は(ステップD7のNo)、タイムスタンプをゼロとして格納する(ステップD9)。
【0065】
これにより、有効データの復元時に、セクタ冗長領域のアクセス履歴情報も復元されることになる。なお、データ保護情報(CRC)は、復元した有効データそれぞれから再計算されることになる。
【0066】
以上のように、本実施形態のディスクアレイ装置によれば、データライト抜けによるデータ不正をセクタ冗長領域に記録されたタイムスタンプおよびビットマップデータを使って検出できるので、RAID−6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とする。さらに、ビット化けによるデータ不正もセクタ冗長領域に記録されたCRCを使って検出することを可能とする。
【0067】
なお、以上では、RAID−6形式のRAIDについて説明したが、セクタ冗長領域を確保してアクセス履歴情報を記録するという手法は、RAID−6形式以外のRAIDについても適用することが可能である。
【0068】
また、例えばホスト装置1からのデータアクセスが無い空き時間などを利用して、データ整合性確認を周期的に実施する整合性確認部22は、前述のように、読み出したデータからパリティデータを再計算して比較することによって整合性を確認するのが一般的であるが、本実施形態のディスクアレイ装置では、簡易整合性確認部26と同様に、セクタ冗長領域に記録されたタイムスタンプ、ビットマップデータおよびCRCを使って効率的に整合性を確認することも可能である(つまり、整合性確認部22を設けず、簡易整合性確認部26に周期的な整合性確認も行わせることも可能となる)。特に、ビットマップデータは、データライト時の検証よりも、この周期的な整合性確認の際に有用である。どのHDD3にライトを行ったかは、データライト直後であればRAIDコントローラ2のメモリ上に記憶されているので、これを利用して判断可能であるが、(データライトが既に過去の事となっている)周期的な整合性確認の際には、当該ビットマップデータが存在するからこそ判断可能となるからである。
【0069】
このように、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0070】
【図1】本発明の実施形態に係るディスクアレイ装置の構成例を示す図
【図2】RAID−6のデータ配置例を示す図
【図3】RAIDが縮退状態(HDDが1台故障)の場合のデータ整合性確認を説明するための図
【図4】同実施形態のディスクアレイ装置において、セクタ冗長領域確保部によって確保されたセクタ冗長領域に、アクセス履歴記録部によってアクセス履歴情報が記録される様子を示す概念図
【図5】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース1)を示す図
【図6】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース2)を示す図
【図7】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース3)を示す図
【図8】同実施形態のディスクアレイ装置が実行する、HDDが1台故障の縮減状態時に不整合が検出された場合のデータ不正箇所の特定手順を示すフローチャート
【図9】同実施形態のディスクアレイ装置によるデータ不正箇所の判定および訂正を説明するための図
【図10】同実施形態のディスクアレイ装置が実行する簡易整合性確認の手順を示すフローチャート
【図11】本実施形態のディスクアレイ装置が実行するデータライトの手順を示すフローチャート
【図12】同実施形態のディスクアレイ装置が実行する、データ復元の際のセクタ冗長領域のアクセス履歴情報のコピーの手順を示すフローチャート
【符号の説明】
【0071】
1…ホスト装置、2…RAIDコントローラ、3…HDD、4…RAID、21…制御部、22…整合性確認部、23…セクタ冗長領域確保部、24…アクセス履歴記録部、25…データ不正箇所特定部、26…簡易整合性確認部。
【技術分野】
【0001】
本発明は、例えばRAID(redundant array of inexpensive disks)6を構成するディスクアレイ装置に適用して好適なデータ管理技術に関する。
【背景技術】
【0002】
近年、電子商取引の普及等に伴い、高応答性や耐障害性など、データ記憶装置に対する要求が非常に高まっている。この要求に応える技術として、複数のディスク装置を並列に接続して、これらをあたかも1台のディスク装置のように連携して動作させるRAID機能が存在する。
【0003】
特に、最新のRAID−6では、パリティデータなどと称される冗長データを2種類使用することにより、整合性確認の強化が図られている。また、このRAID−6を構成するディスクアレイ装置においては、データ不正箇所を特定するための手法なども種々提案されている(例えば特許文献1等参照)。
【特許文献1】特開2005−293263号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
この特許文献1に記載のディスクアレイ装置では、2種類の冗長データが存在することに着目し、被疑データを未知数とする連立方程式を順次解いていくことにより、誤りデータを特定する。
【0005】
しかしながら、この手法は、ディスクアレイ装置が備える複数のディスク装置すべてが正常稼働している場合、より厳密には、ストライプグループ内に、故障状態にあるディスク装置内の区域が配置されていない場合にのみ有効である。換言すれば、1台のディスク装置が故障状態にある場合、この故障状態にあるディスク装置内の区域が配置されたストライプグループでは、整合性確認で不整合が検出できたとしても、データ不正箇所を特定することはできないことになる。
【0006】
この発明は、このような事情を考慮したものであり、例えばRAID−6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とするディスクアレイ装置およびディスクアレイ装置のデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
前述した目的を達成するために、この発明は、複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置において、前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保する冗長領域確保手段と、データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録するアクセス履歴情報記録手段と、を具備することを特徴とする。
【0008】
また、この発明は、複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置のデータ管理方法であって、前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保し、データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録する、ことを特徴とする。
【発明の効果】
【0009】
この発明によれば、例えばRAID−6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とする。
【発明を実施するための最良の形態】
【0010】
以下、図面を参照して本発明の実施形態を説明する。
【0011】
図1には、本実施形態に係るディスクアレイ装置の構成例が示されている。このディスクアレイ装置は、RAIDコントローラ2と複数のHDD(hard disk drive)3とで構成され、あたかも1台のディスク装置のごとく振る舞ってホスト装置1からのアクセス要求を受け付ける。そして、このRAIDコントローラ2は、複数のHDD3を使ってRAID−6形式のRAID4を構成する。つまり、RAIDコントローラ2は、並列接続された複数のHDD3でストライピングを行い、各ストライプグループ4AごとにPパリティ/Qパリティと称される2種類のパリティデータ(冗長データ)を生成して、この2種類のパリティデータを複数のHDD3に巡回的に分散させて記録する。
【0012】
ここで、本実施形態のディスクアレイ装置についての理解を助けるために、RAID−6の基本原理について説明する。図2に、RAID−6のデータ配置例を示す。
【0013】
(1)RAID−6のパリティ生成
(a)Pパリティデータ生成時の計算式
RAID−6のPパリティデータは、RAID−5のパリティデータと同様に、対象となるストライプグループ全てのデータストライプのビット単位の排他的論理和(XOR)演算にて算出する。例えば、ストライプグループ1のPパリティデータは、次の(1)式で求められる。
【数1】
【0014】
(b)Qパリティデータは、対象となるストライプグループの各々のデータストライプに、そのストライプグループに唯一のデータとなる係数(重み)を用いてガロア体の乗算を行い、それぞれの積をXOR演算することで算出する。例えば、ストライプグループ1のQパリティデータは、次の(2)式で求められる。
【数2】
【0015】
(2)RAID−6のパリティ更新
RAID−6のPパリティデータとQパリティデータは、データストライプのデータが新しいデータで更新される場合には、整合性を維持するためにそれぞれ更新しなければならない。
【0016】
(a)Pパリティデータ更新時の計算式
Pパリティデータ更新の計算には、newデータを用いてパリティ生成時と同じ計算を行う方法と、ライト対象のoldデータおよびnewデータとPパリティのoldデータとから計算を行う方法がある。ストライプグループ1のデータ1がライトされた場合の後者の方法による計算式を以下に示す((3)式)。
【数3】
【0017】
(b)Qパリティデータ更新時の計算式
Qパリティデータ更新にも2種類の計算方法があり、以下に、ストライプグループ1のデータ2がライトされた場合に、ライト対象のoldデータおよびnewデータとQパリティのoldデータとから計算を行う計算式を示す((4)式)。
【数4】
【0018】
(3)RAID−6の整合性確認
例えば、HDDに格納したデータとパリティデータを読み出し、読み出したデータをもとにパリティデータを再計算して、先に読み出したパリティデータと一致するか否かを確認する。
【0019】
(a)RAIDが正常状態の場合
RAIDが正常状態の場合は、すべてのHDDからデータを読み出してパリティを再計算し、読み出したパリティと一致するかの確認を行う。なお、不整合を検出した場合、改めてパリティを再生する等、システムの方針に基づいてリカバリする。
【0020】
(ア)Pパリティデータを使用した整合性の確認方法
次の(5)式が成立することを確認する。
【数5】
【0021】
(イ)Qパリティデータを使用した整合性の確認方法
次の(6)式が成立することを確認する。
【数6】
【0022】
(b)RAIDが縮退状態(HDDが1台故障)の場合
RAIDが縮退状態で、かつ、故障HDDがデータストライプの場合は、まずPパリティとその他の正常HDDのデータから故障したHDDのデータを復元し、その復元データと正常HDDのデータからQパリティを再計算し、読み出したQパリティと一致するかの確認を行う。
【0023】
例えば、図3に示すように、ストライプグループ1のデータ2が記録されたHDDが故障した場合を想定すると、この場合の整合性確認は、以下の(7)式,(8)式の順に計算して、(8)式が成立することを確認する。
【数7】
【0024】
【数8】
【0025】
以上のように、RAID−6では、HDDが1台故障の縮減状態の場合にも、データ整合性確認を行うことができる。しかしながら、このデータ整合性確認で万一不整合が検出された場合は、データ誤りのある不正箇所を特定することができない。そこで、本実施形態のディスクアレイ装置は、HDDが1台故障の縮減状態の場合にあっても、データ整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能としたものであり、以下、この点について詳述する。
【0026】
図1に示すように、RAIDコントローラ2は、制御部21、整合性確認部22、セクタ冗長領域確保部23、アクセス履歴記録部24、データ不正箇所特定部25および簡易整合性確認部26を有している。RAIDコントローラ2は、制御部21によって全体的な動作制御が司られており、整合性確認部22、セクタ冗長領域確保部23、アクセス履歴記録部24、データ不正箇所特定部25および簡易整合性確認部26の各部は、この制御部21の制御下で動作する。
【0027】
整合性確認部22は、例えばホスト装置1からのデータアクセスが無い空き時間などを利用して、前述したデータ整合性確認を実施する。即ち、HDD3に格納されたデータとパリティデータを読み出し、読み出したデータをもとにパリティデータを再計算して、先に読み出したパリティデータと一致するか否かを確認する処理を実行する。
【0028】
セクタ冗長領域確保部23は、HDD3のセクタあたりの記憶容量(Byte par Sector)を、実際に有効なデータを格納する容量に対して大きくなるように設定して、未使用部分となる領域を確保する。この未使用部分となって任意に使用可能とした領域を、ここでは、セクタ冗長領域と称する。例えば、HDD3の1セクタあたりの記録容量を520バイトフォーマットとし、見かけ上のフォーマットは1セクタあたり512バイトとすることで、セクタ冗長領域確保部23は、8バイトのセクタ冗長領域を確保する。
【0029】
また、アクセス履歴記録部24は、セクタ冗長領域確保部23によって確保されたセクタ冗長領域に、アクセス履歴情報およびデータ保護情報(CRC:cyclic redundancy check)を記録する。アクセス履歴情報は、次の2種類の内容を含んでいる。
【0030】
(1)タイムスタンプ
ライト要求に伴い、対象ストライプグループの同時ライトするHDD3すべてに同じタイムスタンプ(HDD3にデータをライトする時刻)を記録する。
【0031】
(2)ビットマップデータ
対象ストライプグループの同時ライトするHDD3すべてのRAID内の位置を示すビットマップデータを記録する。ライト先HDD3が故障のためにデータをライトできない場合でも、ライト対象のHDD3であることを示すようにビットマップに反映する(後でHDD3が交換され、データ復元の際、セクタ冗長領域のアクセス履歴情報をコピーするときの制御で使用するためである)。
【0032】
図4は、セクタ冗長領域確保部23によって確保されたセクタ冗長領域に、アクセス履歴記録部24によってアクセス履歴情報およびデータ保護情報が記録される様子を示す概念図である。なお、RAIDの初期化処理は、データストライプからパリティを生成してHDDにライトする処理であるが、この初期化処理時には、データストライプおよびパリティストライプのすべてのHDDのセクタ冗長領域に、初期化処理によってライトする時刻をタイムスタンプとして、ストライプグループすべてのHDDがライト対象となるデータをビットマップデータとしてそれぞれ記録する。また、初期化処理中に初期化が完了していない論理アドレスに対するライト要求があった場合には、通常のライト時と同じアクセス履歴情報を記録しておく。初期化処理が進み、いずれ、そのストライプグループも初期化によって上記のアクセス履歴情報に上書きされることになる。
【0033】
そして、データ不正箇所特定部25は、このセクタ冗長領域に記録されたアクセス履歴情報に基づいて、これまでは不可能であった、HDDが1台故障の縮減状態時に整合性確認部22が不整合を検出した場合のデータ不正箇所の特定を実現する。
【0034】
データの更新(ライト)に伴い、その対象ストライプグループのデータとパリティ間の整合性を保つために、PパリティデータおよびQパリティデータも同時に更新しなければならない。基本的にRAIDが正常な状態におけるデータライトでは、少なくともデータストライプ,Pパリティストライプ,Qパリティストライプの3つが同時に更新されるはずである。つまり、これらのHDD3にライトされたセクタ冗長領域には、同じ情報が格納されているはずであるので、この点に着目して、データ不正箇所特定部25は、データ不正箇所を特定する。
【0035】
次に、図5乃至図7を参照して、データライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース1〜ケース3)を説明する。
【0036】
(ケース1:図5)
ホスト装置1からのデータライト要求を受けると(図5(1))、RAIDコントローラ2の制御部21は、ライトすべきHDD3を判断する。ここでは、HDD(1)にライトデータがライトされ、これに伴い、HDD(4)のPパリティデータ、HDD(5)のQパリティデータが更新(ライト)されるものとする。
【0037】
この場合、アクセス履歴記録部24は、HDD(1),HDD(4),HDD(5)がライト対象HDDであると判断されたことから、”10011”というビットマップデータを生成する。また、アクセス履歴記録部24は、例えば内蔵する時計モジュール等のハードウェア資源より時刻を取得し、タイムスタンプを準備する。
【0038】
これと並行して、RAIDコントローラ2では、Pパリティデータ/Qパリティデータを更新するためのoldデータのリード(図5(2))と、Pパリティデータ/Qパリティデータの再計算(図5(3),(4))とが行われる。図5の例では、前述した2つの計算方法のうち、ライト対象のoldデータとnewデータとを使った計算方法が使用されている。
【0039】
そして、ライトデータおよびPパリティデータ/QパリティデータのHDDへのライトが行われる際(図5(5))、アクセス履歴記録部24は、セクタ冗長領域へのタイムスタンプおよびビットマップデータのライトを同時に行う。その結果、ライトデータおよびPパリティデータ/QパリティデータがライトされたHDD(1)、HDD(4)、HDD(5)の各セクタのセクタ冗長領域には、図5(B)に示すような、同一のアクセス履歴情報が記録されることになる。また、このセクタ冗長領域へのタイムスタンプおよびビットマップデータのライト時、アクセス履歴記録部24は、ライトデータおよびPパリティデータ/QパリティデータのCRCを計算して、それぞれのセクタ冗長領域へライトすることも併せて行っている(以下、同じ)。
【0040】
(ケース2:図6)
このケースでは、HDD(1)、HDD(2)にライトデータがライトされ、これに伴って、HDD(4)のPパリティデータ、HDD(5)のQパリティデータが更新(ライト)される。そこで、アクセス履歴記録部24は、”11011”というビットマップデータを生成する。
【0041】
また、図6の例では、Pパリティデータ/Qパリティデータが、newデータを用いてパリティ生成時と同じ計算を行う方法で再計算されている。そのために、HDD(3)からのデータリードが行われるが、HDD(3)へのデータライトは行われないため、アクセス履歴情報は記録されない。よって、このHDD(3)を除いた、ライトデータおよびPパリティデータ/QパリティデータがライトされたHDD(1)、HDD(2)、HDD(4)、HDD(5)の各セクタのセクタ冗長領域に、図6(B)に示すような、同一のアクセス履歴情報が記録されることになる。
【0042】
(ケース3:図7)
このケースは、図5に示したケース1と同様、HDD(1)にライトデータがライトされ、これに伴って、HDD(4)のPパリティデータ、HDD(5)のQパリティデータが更新(ライト)されるというものである。しかしながら、HDD(1)が故障状態にあるために、HDD(1)へのライトが行えない状況にある。
【0043】
そのために、ここでは、図7に示すように、ライト対象のoldデータとnewデータとを使った計算方法ではなく、newデータを用いてパリティ生成時と同じ計算を行う方法でPパリティデータ/Qパリティデータを再計算し、このPパリティデータ/QパリティデータのみのライトをHDD(4)、HDD(5)に対して行っている。従って、HDD(1)へのライトは実際には行っていない。
【0044】
この場合でも、アクセス履歴記録部24は、HDD(1)はライトが行われるべきであったとして、”10011”というビットマップデータを作成する。HDD(1)は故障状態にあるので、図7(B)に示すような、同一のアクセス履歴情報が、HDD(4)、HDD(5)に記録されることになる。
【0045】
次に、図8を参照して、このようにアクセス履歴情報が記録される本実施形態のディスクアレイ装置において、データ不正箇所特定部25が、HDDが1台故障の縮減状態時に整合性確認部22が不整合を検出した場合のデータ不正箇所の特定をどのように実現しているのかについて説明する。
【0046】
データ不正箇所特定部25は、まず、PパリティとQパリティのアクセス履歴情報を読み出し(ステップA1)、これらが一致しているかを調べる(ステップA2)。もし、一致していれば(ステップA2のYes)、データ不正箇所特定部25は、このパリティストライプのビットマップを参照し、対象となる同時ライトしたHDD3からアクセス履歴情報をリードする(ステップA3)。そして、データ不正箇所特定部25は、データHDDのアクセス履歴情報とパリティHDDのアクセス履歴情報を比較し(ステップA4)、情報が一致しない矛盾があるHDD3を見つけてRAID機能にてデータ訂正する(ステップA5)。
【0047】
一方、PパリティとQパリティのアクセス履歴情報が一致していなければ(ステップA2のNo)、データ不正箇所特定部25は、第1に、Pパリティのアクセス履歴情報のビットマップデータをもとに対象となる同時ライトしたHDD3からアクセス履歴情報をリードして比較する(ステップA6)。ここで、データ不正箇所特定部25は、”比較対象HDDなし”であれば比較結果A、”全て一致”であれば比較結果B、”不一致”であれば比較結果C、とする分類を行う(ステップA7)。
【0048】
また、データ不正箇所特定部25は、第2に、Qパリティのアクセス履歴情報のビットマップデータをもとに対象となる同時ライトしたHDD3からアクセス履歴情報をリードして比較する(ステップA8)。ここでも、データ不正箇所特定部25は、”比較対象HDDなし”であれば比較結果D、”全て一致”であれば比較結果E、”不一致”であれば比較結果F、とする分類を行う(ステップA9)。
【0049】
そして、データ不正箇所特定部25は、この第1の比較結果の分類と第2の比較結果の分類との組み合わせに基づき、図9に示すように、データ不正箇所の判定および訂正を実行する(ステップA10)。
【0050】
このように、本実施形態のディスクアレイ装置は、セクタ冗長領域確保部23によってセクタ冗長領域を確保し、(この確保したセクタ冗長領域に)アクセス履歴記録部24によってアクセス履歴情報を記録するので、データ不正箇所特定部25による、これまでは不可能であった、HDDが1台故障の縮減状態時に整合性確認部22が不整合を検出した場合のデータ不正箇所の特定を実現する。
【0051】
ところで、以上では、このアクセス履歴情報の用途として、整合性確認部22によりデータ不整合が検出された場合のデータ不正箇所の特定に利用する例を説明した。しかしながら、このアクセス履歴情報は、これだけに限定されず、例えばデータライト時の検証にも利用することができる。そのために、本実施形態のディスクアレイ装置では、簡易整合性確認部26を備える。
【0052】
簡易整合性確認部26は、ライト処理の過程において動作し、PパリティやQパリティを使った高負荷の計算を実行することなく、当該ライト処理が正常に行われたかどうかを検証するものである。図10を参照して、この簡易整合性確認部26が実行する簡易整合性確認の手順を説明する。
【0053】
簡易整合性確認部26は、まず、両パリティストライプをリードし、アクセス履歴情報が一致しているか確認する(ステップB1のYes,ステップB2)。もし、一致していなければ(ステップB3のNo)、この時点で、不整合が生じていると判定する(ステップB8)。
【0054】
一方、アクセス履歴情報が一致していれば(ステップB3のYes)、簡易整合性確認部26は、ビットマップデータを参照し、同時ライト対象のHDDからアクセス履歴情報をリードしてパリティストライプの情報と一致しているか確認する(ステップB4,ステップB5)。そして、一致していなければ(ステップB5のNo)、不整合が生じていると判定する(ステップB8)。
【0055】
また、一致していれば(ステップB5のYes)、簡易整合性確認部26は、データ保護情報(CRC)を使ってデータ自体のチェックを行い(ステップB6)、エラーが検出されたら(ステップB7のNo)、不整合が生じていると判定する(ステップB8)。
【0056】
従って、本実施形態のディスクアレイ装置が実行するデータライトの手順は、図11に示すような流れとなる。
【0057】
ホスト装置1からデータライト要求を受け付けると(ステップC1)、どのHDDのどのアドレス(セクタ)へライトすべきか判断し、対象ストライプグループのライトすべき全てのHDDの位置を示すビットマップを生成すると共に(ステップC2)、データ書き込み時刻(タイムスタンプ)を内蔵のハードウェアなどから得る(ステップC3)。
【0058】
次に、必要により各々のHDDからoldデータをリードし(ステップC4)、パリティ更新データを計算すると共に(ステップC5)、ライトデータおよびパリティ更新データのCRCを計算する(ステップC6)。そして、対象セクタのデータ領域にホスト要求ライトデータ、冗長領域にタイムスタンプ、ビットマップデータおよびCRCが格納されるように、バッファ領域にデータをセットして(ステップC7)、HDDへライト要求を発行する(ステップC8)。
【0059】
すべてのライト対象HDDへのデータライトが完了したら(ステップC9のYES)、図10に詳細な手順を示した、アクセス履歴情報を使った簡易整合性確認を実施する(ステップC10)。もし、不整合と判定したら(ステップC11のYES)、ライト処理を再実行し(ステップC12)、整合と判定したら(ステップC11のNO)、ホスト装置1に対してデータライト完了を応答する(ステップC13)。
【0060】
データライト時に簡易整合性確認で不整合が検出できれば、RAIDコントローラ2中にライトすべきデータが存在しているので、リカバリが短時間で可能である。また、簡易整合性確認自体も、パリティ計算を必要としないので、応答性の大幅な低下を招くといったことがない。さらに、このアクセス履歴情報の一致確認をハードウェアで行うようにすれば、高速に処理することが可能である。
【0061】
また、次に、HDDが1台故障の縮減状態から正常状態に復帰した場合のアクセス履歴情報のコピー手順について説明する。
【0062】
HDD故障時、HDDの交換やホットスペアHDDを使用することなどによって、故障したHDDのデータをRAID機能により復元し、交換したHDDにデータを格納することで、故障状態から回復させることができる。そこで、本実施形態のディスクアレイ装置においては、このデータ復元の際、セクタ冗長領域のアクセス履歴情報もコピーする。図12は、このコピー手順を示すフローチャートである。
【0063】
まず、P,Qどちらかアクセス可能な方のパリティストライプをリードし、アクセス履歴情報のビットマップデータをコピーする(ステップD1のYes,ステップD2)。データ復元先のHDDが、そのビットマップ情報でライト先HDDの対象となっている場合は(ステップD3のYes)、タイムスタンプもパリティストライプのタイムスタンプをコピーする(ステップD4)。一方、ライト先HDDの対象になっていない場合は(ステップD3のNo)、タイムスタンプをゼロとして格納する(ステップD5)。
【0064】
故障などで両パリティストライプがリードできない場合は(ステップD1のNo)、データストライプのアクセス履歴情報のタイムスタンプが最新のものを見つけて、その情報をコピーする(ステップD6)。そして、データ復元先のHDDが、そのビットマップ情報でライト先HDDの対象となっている場合は(ステップD7のYes)、タイムスタンプもデータストライプのタイムスタンプをコピーし(ステップD8)、一方、ライト先HDDの対象になっていない場合は(ステップD7のNo)、タイムスタンプをゼロとして格納する(ステップD9)。
【0065】
これにより、有効データの復元時に、セクタ冗長領域のアクセス履歴情報も復元されることになる。なお、データ保護情報(CRC)は、復元した有効データそれぞれから再計算されることになる。
【0066】
以上のように、本実施形態のディスクアレイ装置によれば、データライト抜けによるデータ不正をセクタ冗長領域に記録されたタイムスタンプおよびビットマップデータを使って検出できるので、RAID−6を構成する複数のディスク装置の中の1台のディスク装置が故障状態にあっても、整合性確認で不整合が検出された場合には、データ不正箇所を特定すること等を可能とする。さらに、ビット化けによるデータ不正もセクタ冗長領域に記録されたCRCを使って検出することを可能とする。
【0067】
なお、以上では、RAID−6形式のRAIDについて説明したが、セクタ冗長領域を確保してアクセス履歴情報を記録するという手法は、RAID−6形式以外のRAIDについても適用することが可能である。
【0068】
また、例えばホスト装置1からのデータアクセスが無い空き時間などを利用して、データ整合性確認を周期的に実施する整合性確認部22は、前述のように、読み出したデータからパリティデータを再計算して比較することによって整合性を確認するのが一般的であるが、本実施形態のディスクアレイ装置では、簡易整合性確認部26と同様に、セクタ冗長領域に記録されたタイムスタンプ、ビットマップデータおよびCRCを使って効率的に整合性を確認することも可能である(つまり、整合性確認部22を設けず、簡易整合性確認部26に周期的な整合性確認も行わせることも可能となる)。特に、ビットマップデータは、データライト時の検証よりも、この周期的な整合性確認の際に有用である。どのHDD3にライトを行ったかは、データライト直後であればRAIDコントローラ2のメモリ上に記憶されているので、これを利用して判断可能であるが、(データライトが既に過去の事となっている)周期的な整合性確認の際には、当該ビットマップデータが存在するからこそ判断可能となるからである。
【0069】
このように、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0070】
【図1】本発明の実施形態に係るディスクアレイ装置の構成例を示す図
【図2】RAID−6のデータ配置例を示す図
【図3】RAIDが縮退状態(HDDが1台故障)の場合のデータ整合性確認を説明するための図
【図4】同実施形態のディスクアレイ装置において、セクタ冗長領域確保部によって確保されたセクタ冗長領域に、アクセス履歴記録部によってアクセス履歴情報が記録される様子を示す概念図
【図5】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース1)を示す図
【図6】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース2)を示す図
【図7】同実施形態のディスクアレイ装置が実行するデータライトに伴うセクタ冗長領域へのアクセス履歴情報の記録例(ケース3)を示す図
【図8】同実施形態のディスクアレイ装置が実行する、HDDが1台故障の縮減状態時に不整合が検出された場合のデータ不正箇所の特定手順を示すフローチャート
【図9】同実施形態のディスクアレイ装置によるデータ不正箇所の判定および訂正を説明するための図
【図10】同実施形態のディスクアレイ装置が実行する簡易整合性確認の手順を示すフローチャート
【図11】本実施形態のディスクアレイ装置が実行するデータライトの手順を示すフローチャート
【図12】同実施形態のディスクアレイ装置が実行する、データ復元の際のセクタ冗長領域のアクセス履歴情報のコピーの手順を示すフローチャート
【符号の説明】
【0071】
1…ホスト装置、2…RAIDコントローラ、3…HDD、4…RAID、21…制御部、22…整合性確認部、23…セクタ冗長領域確保部、24…アクセス履歴記録部、25…データ不正箇所特定部、26…簡易整合性確認部。
【特許請求の範囲】
【請求項1】
複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置において、
前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保する冗長領域確保手段と、
データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録するアクセス履歴情報記録手段と、
を具備することを特徴とするディスクアレイ装置。
【請求項2】
前記アクセス履歴情報記録手段は、タイムスタンプをアクセス履歴情報として各区域の冗長領域に記録することを特徴とする請求項1記載のディスクアレイ装置。
【請求項3】
前記アクセス履歴情報記録手段は、ストライプグループを構成する全区域の中で前記データまたは前記冗長データが同期的に記録される区域を示すビットマップデータをアクセス履歴情報として各区域の冗長領域に記録することを特徴とする請求項1記載のディスクアレイ装置。
【請求項4】
前記アクセス履歴情報記録手段は、前記データまたは前記冗長データの誤りを検出するためのデータ保護情報を各区間の冗長領域にさらに記録することを特徴とする請求項1記載のディスクアレイ装置。
【請求項5】
前記アクセス履歴情報記録手段は、CRC(cyclic redundancy check)をデータ保護情報として各区間の冗長領域に記録することを特徴とする請求項4記載のディスクアレイ装置。
【請求項6】
RAID(redundant array of inexpensive disks)6を構成するディスクアレイ装置であって、
前記複数のディスク装置の中の1台のディスク装置が故障状態にあるとき、この故障状態にあるディスク装置内の区域が配置されたストライプグループにおいて前記冗長データを用いた整合性確認で不整合が検出された場合に、前記冗長領域に記録されたアクセス履歴情報に基づいてデータ不正箇所を特定するデータ不正箇所特定手段を具備することを特徴とする請求項1記載のディスクアレイ装置。
【請求項7】
データの書き込み直後、当該データおよび当該データの冗長データが記録された区域の冗長領域のすべてのアクセス履歴情報が一致しているか否かを確認する簡易整合性確認手段を具備することを特徴とする請求項1記載のディスクアレイ装置。
【請求項8】
簡易整合性確認手段によりアクセス履歴情報の不一致が検出された場合、データの書き込みを再実行させる制御手段を具備することを特徴とする請求項5記載のディスクアレイ装置。
【請求項9】
複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置のデータ管理方法であって、
前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保し、
データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録する、
ことを特徴とするディスクアレイ装置のデータ管理方法。
【請求項10】
前記データまたは前記冗長データの誤りを検出するためのデータ保護情報を各区間の冗長領域にさらに記録することを特徴とする請求項9記載のディスクアレイ装置のデータ管理方法。
【請求項11】
前記ディスクアレイ装置は、RAID6を構成し、
前記複数のディスク装置の中の1台のディスク装置が故障状態にあるとき、この故障状態にあるディスク装置内の区域が配置されたストライプグループにおいて前記冗長データを用いた整合性確認で不整合が検出された場合に、前記冗長領域に記録されたアクセス履歴情報に基づいてデータ不正箇所を特定する、
ことを特徴とする請求項9記載のディスクアレイ装置のデータ管理方法。
【請求項12】
データの書き込み直後、当該データおよび当該データの冗長データが記録された区域の冗長領域のすべてのアクセス履歴情報が一致しているか否かを確認し、アクセス履歴情報の不一致が検出された場合、データの書き込みを再実行させる、
ことを特徴とする請求項9記載のディスクアレイ装置のデータ管理方法。
【請求項1】
複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置において、
前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保する冗長領域確保手段と、
データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録するアクセス履歴情報記録手段と、
を具備することを特徴とするディスクアレイ装置。
【請求項2】
前記アクセス履歴情報記録手段は、タイムスタンプをアクセス履歴情報として各区域の冗長領域に記録することを特徴とする請求項1記載のディスクアレイ装置。
【請求項3】
前記アクセス履歴情報記録手段は、ストライプグループを構成する全区域の中で前記データまたは前記冗長データが同期的に記録される区域を示すビットマップデータをアクセス履歴情報として各区域の冗長領域に記録することを特徴とする請求項1記載のディスクアレイ装置。
【請求項4】
前記アクセス履歴情報記録手段は、前記データまたは前記冗長データの誤りを検出するためのデータ保護情報を各区間の冗長領域にさらに記録することを特徴とする請求項1記載のディスクアレイ装置。
【請求項5】
前記アクセス履歴情報記録手段は、CRC(cyclic redundancy check)をデータ保護情報として各区間の冗長領域に記録することを特徴とする請求項4記載のディスクアレイ装置。
【請求項6】
RAID(redundant array of inexpensive disks)6を構成するディスクアレイ装置であって、
前記複数のディスク装置の中の1台のディスク装置が故障状態にあるとき、この故障状態にあるディスク装置内の区域が配置されたストライプグループにおいて前記冗長データを用いた整合性確認で不整合が検出された場合に、前記冗長領域に記録されたアクセス履歴情報に基づいてデータ不正箇所を特定するデータ不正箇所特定手段を具備することを特徴とする請求項1記載のディスクアレイ装置。
【請求項7】
データの書き込み直後、当該データおよび当該データの冗長データが記録された区域の冗長領域のすべてのアクセス履歴情報が一致しているか否かを確認する簡易整合性確認手段を具備することを特徴とする請求項1記載のディスクアレイ装置。
【請求項8】
簡易整合性確認手段によりアクセス履歴情報の不一致が検出された場合、データの書き込みを再実行させる制御手段を具備することを特徴とする請求項5記載のディスクアレイ装置。
【請求項9】
複数のディスク装置にデータおよび前記データの冗長データを分散して記録するディスクアレイ装置のデータ管理方法であって、
前記データおよび前記冗長データの実際の記録単位よりも大きいデータ長で前記複数のディスク装置それぞれの記録領域を区域分けして、前記データまたは前記冗長データの書き込みに関するアクセス履歴情報を記録するための冗長領域を前記複数のディスク装置それぞれの各区域ごとに確保し、
データの書き込み時、同一の冗長データを用いるストライプグループごとに、当該データが記録される1または2以上の区域の冗長領域と当該データの冗長データが記録される区域の冗長領域とに同一のアクセス履歴情報を記録する、
ことを特徴とするディスクアレイ装置のデータ管理方法。
【請求項10】
前記データまたは前記冗長データの誤りを検出するためのデータ保護情報を各区間の冗長領域にさらに記録することを特徴とする請求項9記載のディスクアレイ装置のデータ管理方法。
【請求項11】
前記ディスクアレイ装置は、RAID6を構成し、
前記複数のディスク装置の中の1台のディスク装置が故障状態にあるとき、この故障状態にあるディスク装置内の区域が配置されたストライプグループにおいて前記冗長データを用いた整合性確認で不整合が検出された場合に、前記冗長領域に記録されたアクセス履歴情報に基づいてデータ不正箇所を特定する、
ことを特徴とする請求項9記載のディスクアレイ装置のデータ管理方法。
【請求項12】
データの書き込み直後、当該データおよび当該データの冗長データが記録された区域の冗長領域のすべてのアクセス履歴情報が一致しているか否かを確認し、アクセス履歴情報の不一致が検出された場合、データの書き込みを再実行させる、
ことを特徴とする請求項9記載のディスクアレイ装置のデータ管理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−71297(P2008−71297A)
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願番号】特願2006−251721(P2006−251721)
【出願日】平成18年9月15日(2006.9.15)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願日】平成18年9月15日(2006.9.15)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】
[ Back to top ]