JP3579389B2 - ディスクアレイ装置及び同装置におけるデータ復旧方法 - Google Patents
ディスクアレイ装置及び同装置におけるデータ復旧方法 Download PDFInfo
- Publication number
- JP3579389B2 JP3579389B2 JP2001367818A JP2001367818A JP3579389B2 JP 3579389 B2 JP3579389 B2 JP 3579389B2 JP 2001367818 A JP2001367818 A JP 2001367818A JP 2001367818 A JP2001367818 A JP 2001367818A JP 3579389 B2 JP3579389 B2 JP 3579389B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- logical
- stripe
- disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、複数のディスク装置から構成されるディスクアレイを備えたディスクアレイ装置に係り、特に、ディスクアレイを構成するディスク装置に障害が発生したときのデータ復旧に好適なディスクアレイ装置及び同装置におけるデータ復旧方法に関する。
【0002】
【従来の技術】
従来から、複数のディスク装置から構成されるRAID(Redundant Array of Inexpensive Disks,Redundant Array of Independent Disks)に代表されるディスクアレイを備えたディスクアレイ装置が種々開発されている。ディスクアレイは、物理ストライプ単位にアクセスされるのが一般的である。
【0003】
ディスクアレイ装置への高速な書き込み方法として、米国特許第6,219,752号公報または米国特許第6,233,648号公報(以下、先行技術文献と称する)に開示されているように、ホストコンピュータからの更新(書き込み)要求に対して本来更新されるべき旧データの領域の内容を書き換えるのではなく、更新データを溜めておき、ディスクアレイを構成する各ディスク装置内の予め用意した別の空き領域にまとめて書き込む(遅延書き込みを適用した)方法が提案されている。
【0004】
通常、ディスクアレイを構成する複数のディスク装置のいずれか1つに使用不可能となるような故障(障害)が発生した場合、正常な置換ディスク装置(予備ディスク装置)を使用してディスクアレイを再構築する必要がある。この再構築を可能とするために、ディスクアレイはRAID等で知られている冗長化ディスク構成を適用するのが一般的である。したがって、冗長化ディスク構成のディスクアレイでは、ディスク装置が故障した場合。その冗長化ディスク構成を速やかに維持(再構築)する必要がある。
【0005】
そこで、上記先行技術文献に開示されている高速書き込み方法を適用する従来のディスクアレイ装置では、ディスク装置に障害が発生した場合、ディスクアレイを構成する全ての物理ストライプを読み込み論理ブロックのデータとパリティデータを復旧し、正常な予備ディスク装置を含む新たなディスクアレイに書き戻す処理を実施している。
【0006】
【発明が解決しようとする課題】
このように、上記先行技術文献に開示されている高速書き込み方法を適用する従来のディスクアレイ装置では、ディスクアレイを構成するディスク装置が故障した場合、ディスクアレイを構成する全ての物理ストライプを読み込み論理ブロックのデータとパリティデータを復旧し、正常な予備ディスク装置を含む新たなディスクアレイに書き戻す処理を実施することにより、ディスクアレイの冗長化ディスク構成を再構築するようにしている。
【0007】
しかしながら、このようなデータ復旧方法では、データ復旧にかかる時間がディスクアレイのデータ容量に依存して長くなるため、今後ディスクアレイの大容量化が一層進むことを考慮すると、問題である。
【0008】
一方、ディスクアレイ装置への高速な書き込み方法を適用するディスクアレイ装置とは異なるが、特開平11−24849号公報に開示されているディスクアレイ装置で適用される方法(障害復旧方法)では、ディスクアレイ装置内の論理的なデータの有効、無効やディスクアレイ装置内の空領域を管理するファイル管理テーブルであって、オペレーティングシステム(OS)が使用するファイル管理テーブルを利用してデータ復旧を行うようにしている。
【0009】
このファイル管理テーブル利用の復旧方法は、ディスクアレイ装置がOSに依存するため、OSにディスクアレイ装置とOSとの間のインターフェースを追加するか、OSやファイルシステムの内部構造が公開されている必要がある。更に、各OS毎にディスクアレイ装置を用意する必要があり、OSが異なる場合のディスクアレイ装置間での互換性にも問題がある。
【0010】
本発明は上記事情を考慮してなされたものでその目的は、OSやファイルシステム、ディバイスドライバ等に一切の変更を加えず、異なるOS環境下においてもディスクアレイ装置間での互換性を保証しながら、ディスクアレイ内のディスク装置の故障時におけるディスクアレイの再構築に必要なデータ復旧に要する時間を短縮できるディスクアレイ装置及び同装置におけるデータ復旧方法を提供することにある。
【0011】
【課題を解決するための手段】
本発明の第1の観点によれば、複数のディスク装置から構成される冗長化ディスク構成のディスクアレイを備え、ホストコンピュータからの書き込み要求の指定するデータをブロック単位に分割して書き込みバッファに詰めて蓄積し、当該バッファに所定のブロック数のデータが蓄積された段階で、その所定のブロック数のデータを含む1ストライプ分のデータが、上記ディスクアレイ内の上記複数のディスク装置上の更新されるべきデータを保持している領域とは別の空き領域内の物理的に連続する領域に書き込まれるディスクアレイ装置が提供される。このディスクアレイ装置は、上記ディスクアレイを構成する複数のディスク装置のいずれか1つが故障して、当該故障したディスク装置(故障ディスク装置)に代えて予備のディスク装置を用いてディスクアレイを再構築する場合に、ホストコンピュータにより使用されている有効な論理ブロックの論理アドレス(有効な論理アドレス)を当該論理ブロックが格納されているディスクアレイの物理アドレスに変換するためのアドレス変換情報が設定されたアドレス変換テーブルに従って検索する手段と、この検索手段により検索された有効な論理アドレスに対応する物理アドレスの物理ブロックが故障ディスク装置上に存在することがアドレス変換テーブルから判定される場合、その物理ブロックを含む物理ストライプ中の故障ディスク装置以外の各ディスク装置上に存在するストライプユニットを読み込む手段と、この読み込み手段により読み込まれた各ストライプユニットから故障ディスク装置のデータをブロック単位で復旧する手段と、この復旧手段により復旧されたデータを上記予備ディスク装置に書き込む手段とを備えている。
【0012】
上記第1の観点に係るディスクアレイ装置においては、アドレス変換テーブルを利用して、ホストコンピュータにより使用されている論理ブロックの論理アドレス、つまり有効な論理ブロックの論理アドレスを検索し、その有効な論理アドレスに対応する物理アドレスの物理ブロックが含まれる物理ストライプ(中の故障していない各ディスク装置上に存在するストライプユニット)のみをディスクアレイから読み込んで、そのストライプからデータを復旧して予備ディスク装置に書き込む構成を適用している。
【0013】
このように第1の観点に係るディスクアレイ装置によれば、ホストコンピュータにより使用されていない無効な論理アドレスに対応する物理アドレスの物理ブロックが含まれる物理ストライプ(中の故障していない各ディスク装置上に存在するストライプユニット)については、データ復旧のための読み込みの対象外とすることにより、その無効な論理アドレスに対応する物理ストライプの読み込み処理、その読み込み処理に伴う無効な論理アドレスに対応するデータの復旧処理、その復旧処理に伴う無効な論理アドレスに対応する復旧されたデータの書き込み処理が行われるのを防止して、ディスクアレイのデータ復旧(ディスクアレイの再構築)に要する時間を大幅に短縮することが可能となる。
【0014】
また本発明の第2の観点に係るディスクアレイ装置においては、上記第1の観点に係るディスクアレイ装置におけるのと同様にしてディスクアレイ(中の故障していない各ディスク装置)から読み込まれた、有効な論理アドレスに対応する物理アドレスの物理ブロックが含まれる物理ストライプ(中の故障していない各ディスク装置上に存在するストライプユニット)から故障ディスク装置のデータを復旧するだけでなく、その復旧されたデータと、上記読み込まれた各ストライプユニット中の有効なデータとを、ブロック単位で書き込みバッファに書き込んで蓄積し、この書き込みバッファに蓄積されたデータを含む1ストライプ分のデータが揃う毎に、当該1ストライプ分のデータを、予備のディスク装置を含む新たなディスクアレイを構成する各ディスク装置上の更新されるべきデータを保持している領域とは別の空き領域内の物理的に連続する領域に書き込む構成としたことを特徴とする。
【0015】
このように、第2の観点に係るディスクアレイ装置によれば、ホストコンピュータにとって無効な論理アドレスに対応する物理ブロックが含まれる物理ストライプ(中の故障していない各ディスク装置上に存在するストライプユニット)について、データ復旧のための読み込みの対象外とすることにより、ディスクアレイのデータ復旧に要する時間を大幅に短縮するだけでなく、復旧されたデータと、データ復旧のために読み込まれた物理ストライプ中の故障していない各ディスク装置上に存在するストライプユニットに含まれている有効なデータ(有効な論理アドレスのデータ)とを利用して1ストライプ分のデータが揃えられる毎に新たなディスクアレイの空き領域に書き込むことにより、即ち故障ディスク装置の有効なデータの復旧と同時にディスクアレイにおける有効なデータの詰め替えを行うことで、データ復元後に改めてデータ詰め替え処理を行うことなくディスクアレイの空き領域を増やすことが可能となる。
【0016】
本発明の第3の観点に係るディスクアレイ装置は、上記第2の観点に係るディスクアレイ装置における上記第1の検索手段に、次の検索機能、即ち有効な論理アドレスを当該論理アドレスの順番に検索する機能を持たせたことを特徴とする。
【0017】
このように、有効な論理アドレスを当該論理アドレスの順番に検索することにより、有効な論理アドレスが当該論理アドレスの順番に処理されるため、復旧されたデータと、データ復旧のために読み込まれた物理ストライプ中の故障していない各ディスク装置上に存在するストライプユニットに含まれている有効なデータとを、少なくとも同一ストライプ内では、新たなディスクアレイ上に論理アドレス順で且つ物理アドレス順に再配置することが可能となる。つまり本発明の第3の観点に係るディスクアレイ装置によれば、ディスクアレイのデータ復旧に要する時間を短縮できるだけでなく、データ復元後に改めてデフラグメンテーション処理を行うことなく、有効な論理ブロックを、少なくとも対応するストライプ内では、ディスクアレイ上の論理的にも物理的にも連続する位置に再配置することができる。
【0018】
なお、以上のディスクアレイ装置に係る本発明は、ディスクアレイを制御する制御装置(ディスクアレイコントローラ)に係る発明としても、ディスクアレイを構成する複数のディスク装置のいずれか1つが故障した場合に、当該発明に相当する手順を実行することによりディスクアレイのデータを復旧する方法(データ復旧方法)に係る発明としても成立する。
【0019】
また、本発明は、コンピュータに当該発明に相当する手順を実行させるための(或いはコンピュータを当該発明に相当する各手段として機能させるための、或いはコンピュータに当該発明に相当する機能を実現させるための)プログラムに係る発明としても成立する。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るディスクアレイ装置を備えたコンピュータシステムの構成を示すブロック図である。
【0021】
図1において、ディスクアレイ装置は、制御装置1と、当該制御装置1に接続されたディスクアレイ2と、当該制御装置1に接続された不揮発性メモリ3とから構成される。
【0022】
ディスクアレイ2は、複数のディスク装置、例えば3台のディスク装置21,22,23から構成される。ディスクアレイ2は、ディスク装置21,22,23のいずれか1台が故障しても、その故障したディスク装置のデータの復旧(復元)が可能なように、冗長化ディスク構成を適用している。ここでは、説明を簡略化するために、ディスクアレイ2がRAID4の冗長化ディスク構成を適用しており、ディスク装置21〜23のうちの特定の1台、例えばディスク装置23がパリティデータを格納するパリティ用ディスク装置として割り当てられているものとする。ディスクアレイ2は、ディスク装置21〜23のいずれか1台が故障した場合に、その故障したディスク装置に代えて使用される予備ディスク装置(置換ディスク装置)24を含む。この予備ディスク装置24は、ディスク装置21〜23が稼動中は、論理的にはディスクアレイ2から切り離されている。なお、予備ディスク装置24が、ディスク装置21〜23のいずれか1台が故障した場合に、ディスクアレイ2に組み込み使用されるものであっても構わない。
【0023】
制御装置1は、ディスクアレイ2を制御するコントローラ(ディスクアレイコントローラ)であり、ホストコンピュータ10と接続されている。ディスクアレイ2は、ホストコンピュータ10からは1つの論理的なディスク装置としてみえる。ホストコンピュータ10と制御装置1とのインターフェースには、例えばSCSI(Small Computer System Interface)、或いはPCIバス(Peripheral Component Interconnect Bus)等が適用可能である。
【0024】
なお、本実施形態では、図1に示す構成を中心として説明するが、当該技術分野に属する熟練者にとって、それらの詳しい細部の説明がなくても、図1に示す構成から派生する他のコンピュータシステムの構成であっても、本発明を実施できることは明らかである。例えば、制御装置1を実現するのに、特開2000−10738号公報の第25頁右欄の段落0042〜0045に記載されたディスクアレイコントローラの実現方法を適用することも可能である。
【0025】
ここで、図1の構成の詳細な説明の前に、本実施形態の説明で用いる用語について説明する。
a)論理ブロック
論理ブロックとは、ホストコンピュータ10からみたデータブロック、更に詳細に述べるならば、ホストコンピュータ10からみたディスクアレイ2における論理的なディスク領域上のデータブロックを示す。
b)物理ブロック
物理ブロックとは、ディスクアレイ2上の物理的なブロック、更に詳細に述べるならば、ディスクアレイ2における物理的なディスク領域上のデータブロックを示す。データブロック(論理ブロック、物理ブロック)のサイズは予め定められており、一定である。
【0026】
c)論理アドレス
論理アドレスとは、ホストコンピュータ10からみたディスクアレイ(ディスク装置)2上のデータアドレスを示す。ここでは、論理アドレスは、ディスクアレイ2における論理的なディスク領域上のデータブロックの位置、つまり論理ブロックの位置を示す論理ブロックアドレスとして用いられる。
【0027】
d)物理アドレス
物理アドレスとは、ディスクアレイ2上のデータ(データブロック)の物理的位置を示すために使用する。ここでは、物理アドレスは、ディスクアレイ2(を構成するディスク装置)上のデータブロックの物理的位置、つまり物理ブロックの位置を示す物理ブロックアドレスであり、後述する物理ストライプ番号と物理ブロック番号とから構成される。
【0028】
e)論理アドレスタグ
論理アドレスタグとは、各論理ブロックに対する論理アドレスとタイムスタンプからなる情報群を示す。
f)パリティブロック
パリティブロックとは、複数の論理ブロックに対応する冗長データを格納するためのデータブロックを意味する。
g)論理アドレスタグブロック
論理アドレスタグブロックとは、論理アドレスタグからならデータブロックを意味する。
【0029】
h)論理ブロック番号
論理ブロック番号とは、ホストコンピュータからみたディスクアレイ2上のデータブロックの番号を示す。
i)物理ブロック番号
物理ブロック番号とは、ディスクアレイ2上の物理ストライプ内のデータブロックの相対位置を示す番号であり、ディスクアレイ2を構成するディスク装置に固有の番号である。
【0030】
制御装置1は、ROM等の記憶装置(図示せず)に予め格納されている制御プログラムに従ってディスクアレイ2を制御する他に、書き込みバッファ6及びアドレス変換テーブル7を管理する。書き込みバッファ6及びアドレス変換テーブルは、書き換えが可能な不揮発性メモリ3に配置される。
【0031】
ディスクアレイ2を構成する各ディスク装置21〜23は、それぞれデータブロックのサイズ(ブロックサイズ)の整数倍(ここでは、K倍とする、但しKは1以上の整数)である予め決められた単位、つまりKブロック単位(以下、ストライプユニットと称する)で書き込みを行う。このとき、ディスク装置21〜23の物理的に同じ位置のストライプユニットは、1つの物理ストライプを構成するストライプユニットとして、同じタイミングで書き込みが行われる。明らかなように、ディスクアレイ2を構成するディスク装置が3台である本実施形態では、1ストライプは3ストライプユニットから構成される。もし、ディスクアレイ2を構成するディスク装置がN+1台(Nは2以上の整数であり、図1の例ではN=2)、1ストライプユニットのサイズがブロックサイズのK倍であるものとすると、1ストライプは(N+1)×K個のデータブロック、更に詳細に述べるならば、N×K−1個の論理ブロック、1個の論理アドレスタグブロック、及びK個のパリティブロックから構成される。
【0032】
制御装置1は、従来の技術の欄で述べたのと同様の高速書き込み方法を適用している。即ち制御装置1は、ホストコンピュータからの更新(書き込み)要求に対してディスクアレイ2内の対応する旧データの領域の内容を書き換えるのではなく、更新データを書き込みバッファ6の空き領域にブロック単位に分割して詰めて書き込んで蓄積しておく。この書き込みバッファ6は、1ストライプ−1ストライプユニット分、即ちN×Kデータブロック分の記憶容量を有している。
【0033】
制御装置1は、1ストライプ分に1ストライプユニット+1データブロック少ない数まで、書き込みバッファ6にデータブロックが蓄積された時点で、論理アドレスタグとタイムスタンプから構成される論理アドレスタグブロックを生成して当該書き込みバッファ6上に格納する。そして制御装置1は、生成した論理アドレスタグブロックが加えられた、書き込みバッファ6上の1ストライプ−1ストライプユニット分のデータ(N×K個のデータブロック)から、1ストライプユニット分のパリティデータ(K個のパリティブロック)を生成し、その1ストライプ−1ストライプユニット分のデータに1ストライプユニット分のパリティデータを加えた((N+1)×K個のブロックからなる)1ストライプ分のデータを、ディスクアレイ2を構成するN+1台のディスク装置(N=2の図1の例では、3台のディスク装置21〜23)上の更新されるべきデータを保持している領域とは別の空き領域に、一括して書き込む動作を開始する。
【0034】
この制御装置1により用意された1ストライプ分のデータの例(K=3の場合)と、当該1ストライプ分のデータがディスクアレイ2内のディスク装置21〜23に書き込まれる様子を図2に示す。図2の例では、論理アドレスL3,L7,L11の論理ブロック(L3Data,L7Data,L11Data)からなるストライプユニットと、論理アドレスL100,L1の論理ブロック(L100Data,L1Data)及び論理アドレスタグブロック(LA−TAG)からなるストライプユニットと、論理アドレスL3,L100の論理ブロックに対するパリティブロックP0、論理アドレスL7,L1の論理ブロックに対するパリティブロックP1及び論理アドレスL11の論理ブロックと論理アドレスタグブロックに対するパリティブロックP2からなるストライプユニットとが、それぞれディスク装置21,22,23の空き領域に、データD1,D2,Pとして一括して書き込まれる様子が示されている。この例では、パリティブロックP0は論理アドレスL3,L100の論理ブロックの間の排他的論理和(XOR)演算により生成され、パリティブロックP1は論理アドレスL7,L1の論理ブロックの間の排他的論理和演算により生成される。また、パリティブロックP2は論理アドレスL1の論理ブロックと論理アドレスタグブロックとの間の排他的論理和演算により生成される。
【0035】
不揮発性メモリ3に配置(格納)されているアドレス変換テーブル7は、ホストコンピュータ10からみたディスクアレイ(ディスク装置)2上のデータアドレス(データブロックアドレス)、つまり論理アドレス(論理ブロックアドレス)を、ディスクアレイ2における物理的なデータ(データブロック)の位置を示すアドレス、つまり物理アドレス(物理ブロックアドレス)に変換するのに用いられる変換マップである。
【0036】
アドレス変換テーブル7のデータ構造例を図3に示す。図3の例では、アドレス変換テーブル7の各エントリは、それぞれ固有の論理アドレスに対応している。ここでは、アドレス変換テーブル7を参照する場合の効率を考慮して、当該テーブル7のi番目のエントリを、論理アドレスi(論理ブロックiの論理アドレス)に対応させている。アドレス変換テーブル7のエントリ数は、ホストコンピュータ10からみえる全論理アドレスの数に一致する。
【0037】
アドレス変換テーブル7の各エントリの情報(アドレス変換情報)は、論理アドレス(論理ブロックアドレス)と、当該論理アドレス(論理ブロックアドレス)で示される論理ブロックが割り当てられるディスクアレイ2(における物理的なディスク領域)上の物理ブロックを含む物理ストライプを示す物理ストライプ番号と、その物理ストライプ内の当該物理ブロックの相対位置を示す物理ブロック番号と、当該論理アドレスのデータブロックがディスクアレイ2に書き込まれた時間的順序を管理するためのタイムスタンプと、当該論理アドレスの論理ブロックのデータ復旧処理が済んでいるか否かを示すフラグ(復旧フラグ)の各項目(フィールド)から構成される。なお、本実施形態のように、アドレス変換テーブル7のi番目のエントリを論理アドレスiに対応させる場合、当該論理アドレスiから対応するi番目のエントリを参照可能であることから、当該エントリ中に必ずしも論理アドレスの項目を用意する必要はない。但し、後述する第2の変形例で使用される、有効な論理アドレスの順にソートされた復旧処理用アドレス変換テーブルでは、各エントリ中に論理アドレスの項目を用意する必要がある。
【0038】
アドレス変換テーブル7が不揮発性メモリ3上に配置(生成)された初期状態では、当該アドレス変換テーブル7の各エントリの論理アドレスの項目にだけ有効なデータ(論理アドレス)が設定され、他の項目にはNULLが設定されている。この論理アドレス以外の各項目にNULLが設定されている、アドレス変換テーブル7のエントリに対応する論理アドレス(図3の例では論理アドレスLi)は、ホストコンピュータ10から使用されていない無効な論理ブロックの論理アドレスを示す。また、論理アドレス以外の各項目にNULL以外のデータが設定されている、アドレス変換テーブル7のエントリに対応する論理アドレス(図3の例では論理アドレスL0,L1,L2)は、ホストコンピュータ10から使用されている有効な論理ブロックの論理アドレスを示す。なお以下では、説明の簡略化のために、単に無効な論理アドレス、有効な論理アドレス、或いは論理アドレスが有効、論理アドレスが無効であると表現することもある。
【0039】
制御装置1は、ホストコンピュータ10からの読み込みまたは書き込み要求で指定された論理アドレス(論理ブロックアドレス)をアドレス変換テーブル7に従って物理ブロック番号に変換する。
【0040】
さて、図1の構成のディスクアレイ装置では、ディスクアレイ2を構成するディスク装置21〜23のうちのいずれか1つのディスク装置が故障した場合、予備ディスク装置24を使用してディスクアレイ2が再構築される。
【0041】
図4に、図2の状態でディスク装置21が故障した結果、そのディスク装置21に代えて予備ディスク装置24を使用してディスクアレイ2が再構築された際の当該ディスクアレイ2の状態を示す。ここでは、データD1,D2,Pから構成される物理ストライプに着目すると、正常なディスク装置22,23内のデータD2,Pから、例えば当該ディスク装置22,23内の同一位置のデータブロックを単位とする排他的論理和演算により、故障したディスク装置21内データD1が復旧(復元)され、予備ディスク装置24内の同一ストライプ位置に格納される。この動作が、従来であれば、ディスクアレイ2のすべての物理ストライプについて順に行われる。これに対して本実施形態では、以下に述べるように、アドレス変換テーブル7を利用して、有効な論理アドレスに対応する物理ブロックが存在する物理ストライプだけを対象にデータ復旧処理を行う。
【0042】
次に、本実施形態において、ディスクアレイ2内のディスク装置が故障したために当該ディスクアレイ2のデータを復旧するデータ復旧処理について、図5のフローチャート参照して説明する。
本実施形態の特徴は、アドレス変換テーブル7を利用して、故障したディスク装置の全ての有効な論理アドレスのデータを復旧する点にある。
【0043】
まず制御装置1は、復旧する論理ブロックの論理アドレスを示す変数iの初期値として0(i=0)を設定する(ステップS501)。
【0044】
次に制御装置1は、不揮発性メモリ3上のアドレス変換テーブル7を参照して、論理アドレスiが有効か否かを判定する(ステップS502)。この判定は、論理アドレスiに対応するアドレス変換テーブル7内エントリの各項目がNULL以外であるか否かを調べることで行われる。なお、アドレス変換テーブル7内エントリに、対応する論理アドレスが有効であるか或いは無効であるかを示すフラグ(有効/無効フラグ)を設け、当該フラグを参照することで、対応する論理アドレスが有効であるか否かを判定する構成であってもよい。
【0045】
論理アドレスiが有効な場合(ステップS502のYES)、つまりアドレス変換テーブル7から有効な論理アドレスiが検索できた場合、制御装置1は当該論理アドレスiのデータが復旧(復旧処理)済みであるか否かを判定する(ステップS503)。この判定は、論理アドレスiに対応するアドレス変換テーブル7内のエントリ中の復旧フラグフィールドを参照することで行われる。
【0046】
論理アドレスiのデータが復旧済みでなかった場合(ステップS503のNO)、制御装置1はアドレス変換テーブル7を参照して、その論理アドレスiに対応する物理ブロック番号で示される物理ブロックが故障したディスク装置に存在するか否かを判定する(ステップS504)。ここで、1つの物理ブロック番号は1つのディスク装置に予め対応付けられている。したがって、ステップS504の判定は、論理アドレスiに対応する物理ブロック番号をもとに容易に行える。この具体例を、図2中の論理ブロックL3Data,L7Data,L11Data,L100Data,L1Data,LA−TAG,P0,P1,P2が割り当てられる物理ストライプ内の物理ブロックの番号が、それぞれ0,1,2,3,4,5,6,7,8である場合について説明する。この例では、物理ブロック番号0,1,2の物理ブロックはディスク装置21に、物理ブロック番号3,4,5の物理ブロックはディスク装置22に、そして物理ブロック番号6,7,8の物理ブロックはディスク装置23に、それぞれ存在する。したがって、ディスク装置21が故障した図4の例では、物理ブロック番号が0または1または2の場合だけ、対応する物理ブロックが故障ディスク装置に存在すると判定される。
【0047】
論理アドレスiに対応する物理ブロック番号で示される物理ブロックが故障したディスク装置に存在する場合、制御装置1は当該論理アドレスiに対応するアドレス変換テーブル7内のエントリに設定されている物理ストライプ番号の示す物理ストライプ、つまり論理アドレスiに対応する物理ブロックを含む物理ストライプをディスクアレイ2から読み込む(ステップS505)。但し、この物理ストライプ中の、故障したディスク装置に格納されているデータブロック(ストライプユニット)は読み込まれない。したがって図4の例であれば、上記ステップS505では、論理アドレスiに対応する(物理ブロックを含む)物理ストライプ中の、故障していないディスク装置22,23に格納されているストライプユニットが、当該ディスク装置22,23から制御装置1に読み込まれることになる。
【0048】
制御装置1はステップS505で論理アドレスiに対応する物理ストライプを読み込むと、読み込んだ物理ストライプのデータから、故障したディスク装置のデータブロックを復旧する(ステップS506)。具体的には、図4の例のようにディスク装置21が故障した場合であれば、読み込んだ物理ストライプのデータであるディスク装置23のパリティブロックと、ディスク装置22のデータブロックとから、故障したディスク装置21のデータブロックが復旧される。例えば図2に示す物理ストライプを読み込んだ場合であれば、パリティブロックP0とデータブロックL100Dataとの排他的論理和演算からディスク装置21のデータブロックL3Dataが復旧される。同様に、パリティブロックP1とデータブロックL1Dataとの排他的論理和演算からディスク装置21のデータブロックL7Dataが、パリティブロックP2とデータブロック(論理アドレスタグブロック)LA−TAGとの排他的論理和演算からディスク装置21のデータブロックL11Dataが、それぞれ復旧される。
【0049】
次に制御装置1は、ステップS505で読み込んだ物理ストライプに含まれる物理ブロックが割り当てられている論理ブロックの論理アドレスの中に、有効な論理アドレスが存在するか否かを判定する(ステップS507)。この判定は、上記物理ストライプの物理ストライプ番号によりアドレス変換テーブル7を参照して、当該物理ストライプ番号が設定されているエントリを検索することで行われる。もし、目的のエントリが検索できたならば、そのエントリに対応する論理アドレスが上記物理ストライプ内に存在する有効な論理アドレスであると判定される(ステップS507のYES)。この場合、制御装置1は有効であると判定された論理アドレスに対応するアドレス変換テーブル7内エントリ中の復旧フラグを復旧済みを示す状態(ここでは、1が書き込まれた状態)に設定することで、当該論理アドレス(の論理ブロック)を復旧(復旧処理)済みとする(ステップS508)。制御装置1は、以上の処理(ステップS508)を、物理ストライプに含まれる全ての有効な論理アドレスについて行う(ステップS509)。つまり制御装置1は、ステップS505で読み込んだ物理ストライプに含まれる物理ブロックが割り当てられている論理ブロックの論理アドレスのうちの、有効な論理ブロックの論理アドレスを全て探して、その論理アドレスを復旧済みする(ステップS507〜S509)。この処理により、つまり、有効な論理アドレスiを含む物理ストライプに含まれる全ての有効な論理アドレスについて、故障したディスク装置の論理ブロックの論理アドレスであるか否かに無関係に復旧済みとすることにより、当該物理ストライプが復旧処理のために再度読まれる無駄を防止できる。
【0050】
制御装置1は、物理ストライプに含まれる全ての有効な論理アドレスについて処理をすると(ステップS509のYES)、復旧したデータを予備ディスク24に書き込む(ステップS510)。
【0051】
次に制御装置1は、後続の論理アドレスを処理するために論理アドレスiを1加算し(ステップS511)、その加算後のi(論理アドレスi)から、全ての論理アドレスを処理したか否かを判定する(ステップS512)。もし、未処理の論理アドレスが残っているならば(ステップS512のNO)、制御装置1は加算後の論理アドレスiについて、上記ステップS502以降の処理を行う。
【0052】
以上に述べた一連の操作を全ての論理アドレスについて実行することで、例えば図4に示すようにディスク装置21が障害となった場合であれば、当該ディスク装置21のデータ(のうちの有効な論理ブロックに対応する物理ブロックのデータ)は予備ディスク装置24に復旧される。
【0053】
このように本実施形態においては、アドレス変換テーブル7を利用して有効な論理アドレスを抽出し、その有効な論理アドレスに対応する物理ブロックが故障したディスク装置に含まれる物理ストライプのみをディスクアレイ2から読み込んで、その物理ストライプから故障したディスク装置のデータを復旧するようにした。つまり本実施形態によれば、ホストコンピュータ10が使用している有効な論理アドレスに対応する物理ブロックを故障したディスク装置に含まない物理ストライプは、データ復旧のための読み込みの対象外としたことにより、ディスクアレイ2のデータ復元時間を大幅に短縮することができる。
【0054】
[第1の変形例]
次に、本実施形態の第1の変形例について説明する。この第1の変形例の特徴は、ディスクアレイ2内のディスク装置が故障したために当該ディスクアレイ2のデータを復旧する処理で、当該故障したディスク装置の有効な論理ブロックを復旧する際に、他の正常なディスク装置の有効な論理ブロックを含めて新たなディスクアレイ2上で再配置する点にある。更に詳細に述べるならば、第1の変形例の特徴は、物理ストライプ上の無効な論理ブロックは新たなディスクアレイ2上での再配置の対象とせず、故障ディスク装置の復旧された有効な論理ブロック及び正常なディスク装置の有効な論理ブロックだけを書き込みバッファ6に書き込んで蓄積し、この書き込みバッファ6に蓄積されたデータを含む1ストライプ分のデータが揃う毎に、その1ストライプ分のデータを、新たなディスクアレイ2を構成するディスク装置上の更新されるべきデータを保持している領域とは別の空き領域に書き込むことにある。
【0055】
以下、第1の変形例において、ディスクアレイ2内のディスク装置が故障したために当該ディスクアレイ2のデータを復旧するデータ復旧処理について、図6のフローチャート参照して説明する。
【0056】
まず制御装置1は、アドレス変換テーブル7を、図7に示すように不揮発性メモリ3の別の領域にアドレス変換テーブル70として複写する(ステップS701)。以後、この複写されたアドレス変換テーブル70を使用して処理が進められる。
【0057】
まず制御装置1は、復旧する論理ブロックの論理アドレスを示す変数iの初期値として0(i=0)を設定する(ステップS602)。
次に制御装置1は、不揮発性メモリ3上の複写されたアドレス変換テーブル70を参照して、前記ステップS502と同様にして、論理アドレスiが有効か否かを判定する(ステップS603)。
【0058】
論理アドレスiが有効な場合(ステップS603のYES)、制御装置1は当該論理アドレスiのデータが復旧済みであるか否かを判定する(ステップS604)。
【0059】
論理アドレスiのデータが復旧済みでなかった場合(ステップS503のNO)、制御装置1は当該論理アドレスiに対応するアドレス変換テーブル7内のエントリに設定されている物理ストライプ番号の示す物理ストライプ、つまり論理アドレスiに対応する物理ブロックを含む物理ストライプをディスクアレイ2から読み込む(ステップS605)。
【0060】
制御装置1はステップS605で論理アドレスiに対応する物理ストライプを読み込むと、読み込んだ物理ストライプから論理アドレスタグブロックを取り出す(ステップS606)。但し、この物理ストライプ中の、故障したディスク装置に格納されているデータブロック(ストライプユニット)は読み込まれない点は、前記ステップS505と同様である。ここで、論理アドレスタグブロックが格納されているディスク装置が故障した場合、読み込んだ物理ストライプ中の他の故障していないディスク装置のデータから論理アドレスタグブロックを復旧すればよい。例えば図2の状態で、ディスク装置22が故障した場合であれば、論理ブロックL11DataとパリティブロックP2とから論理アドレスタグブロックLA−TAGが復旧される。この論理アドレスタグブロックの復旧処理は、読み込んだ物理ストライプからの論理アドレスタグブロックの取り出し処理と等価である。
【0061】
次に制御装置1は、ステップS606で取り出した論理アドレスタグブロックとアドレス変換テーブル70とを利用して、ステップS605で読み込んだ物理ストライプに含まれる物理ブロックが割り当てられている論理ブロックの論理アドレスの中に、有効な論理アドレスが存在するか否かを順に判定する(ステップS607)。この判定は、上記論理アドレスタグブロック中の論理アドレスを1つずつ順に取り出して、その論理アドレスが設定されているアドレス変換テーブル70内のエントリを参照することで行われる。明らかなように、参照したアドレス変換テーブル70内エントリの論理アドレスを除く各項目にNULLが設定されているならば、対応するアドレスは無効であり、NULLが設定されていないならば、対応するアドレスは有効であると判定される。
【0062】
制御装置1は、論理アドレスタグブロックから取り出された論理アドレスが有効であった場合に限り、つまり論理アドレスタグブロックから有効な論理アドレスが検索された場合に限り、当該論理アドレスに対応するデータを復旧し、書き込みを実行する(ステップS608)。
【0063】
ステップS608での有効な論理アドレスに対応するデータの復旧とは、当該論理アドレスの論理ブロックが格納されているディスク装置が故障していないならば、ステップS605で読み込まれた物理ストライプから対応するデータブロックを取り出すことであり、故障しているならば、その物理ストライプから前記ステップS506と同様にして当該論理アドレスの論理ブロックを復旧することである。
【0064】
また、ステップS608での書き込みは、従来技術の欄で述べたような高速書き込み方法を用いた通常通りの手順で次のように行われる。
まず制御装置1は、復旧された論理ブロックと対応する論理アドレスとをもとに、その論理ブロックを書き込みデータとして不揮発性メモリ3上の書き込みバッファ6の空き領域に詰めて書き込む。通常は、この書き込みバッファ6への書き込みで、ステップS608は完了する。しかし、復旧された論理ブロックを書き込みバッファ6に書き込んだ結果、当該バッファ6に蓄積されている書き込みデータの量が1ストライプ分に1ストライプユニット+1ブロック分少ない量となった場合には、制御装置1は上記ステップS608において更に次に述べる書き込みを行う。
【0065】
即ち制御装置1は、書き込みバッファ6に蓄積されている1ストライプ−(1ストライプユニット+1ブロック)分の書き込みデータに対応する論理アドレスタグブロックを生成して書き込みバッファ6の最後のブロック領域に書き込み、この論理アドレスタグブロック書き込み後の書き込みバッファ6上のデータ(1ストライプ−1ストライプユニット分のデータ)から1ストライプユニット分のパリティデータ(つまり1ストライプユニット分のブロック数のパリティブロック)を生成する。そして制御装置1は、書き込みバッファ6上の1ストライプ−1ストライプユニット分のデータと生成された1ストライプユニット分のパリティデータとから構成される1ストライプ分のデータを、故障ディスク装置に代えて予備ディスク装置24を用いることで新しく構成されたディスクアレイ2に一括して書き込む。この一括書き込みは、新たなディスクアレイ2内の各ディスク装置(ディスク装置21が故障した場合であれば、ディスク装置22,23,24)上の更新されるべきデータを保持している領域とは別の空き領域(具体的には当該空き領域の中から選択された物理的に連続した領域)に対し、新たなディスクアレイ2に対応する新たなストライピングルールに従って行われる。
【0066】
なお、ストライピングルールは、ディスクアレイ2(のRAIDレベル)を構成するディスク装置の台数に対応している。したがって、データ復旧処理の前後でディスク装置の台数が同一の本実施形態では、新たなストライピングルールは、元のディスクアレイ2に対応するストライピングルールと本質的な相違はない。但し、ディスク装置21が故障して予備ディスク装置24に置き換えられた場合を例にとると、新たなストライピングルールは、物理ブロック番号0,1,2の物理ブロックがディスク装置21ではなくて予備ディスク装置24に存在することを前提としている。
【0067】
制御装置1は、ステップS608において書き込みバッファ6への1ブロックの書き込みが完了する毎に、当該ブロックの論理アドレスに対応するアドレス変換テーブル70内のエントリ中の復旧フラグを復旧済みを示す状態に設定する(ステップS609)。更に制御装置1は、ステップS608でストライプの一括書き込みが行われた場合には、当該ストライプ中の各論理ブロックについて、当該論理ブロックに対する論理アドレスと、当該論理ブロックが書き込まれたディスクアレイ2上の物理的なデータ位置、つまり物理ストライプ番号と物理ブロック番号とで示される物理アドレスとの関係を、アドレス変換テーブル70に設定する。具体的には、上記ストライプ中の各論理ブロックに対する論理アドレスに対応するアドレス変換テーブル70内のエントリにおける物理ブロック番号と物理ストライプ番号とが、それぞれ当該論理ブロックが実際に書き込まれた物理ストライプ内の物理ブロック位置を示す番号と当該物理ストライプの番号とに更新される。
【0068】
制御装置1は、以上のステップS607〜S609を、ステップS605で読み込んだ物理ストライプに含まれる物理ブロックに対応する論理アドレスが全て処理されるまで繰り返す(ステップS610)。
【0069】
次に制御装置1は、後続の論理アドレスを処理するために論理アドレスiを1加算する(ステップS611)。そして制御装置1は、加算後のi(論理アドレスi)から、以上に述べた一連の操作を全ての論理アドレスについて処理したか否かを判定する(ステップS612)。もし、未処理の論理アドレスが残っているならば(ステップS612のNO)、制御装置1は加算後の論理アドレスiについて、上記ステップS603以降の処理を行う。一方、全ての論理アドレスについて処理したならば(ステップS612のYES)、データ復旧処理は終了となる。以後、アドレス変換テーブル70が新たなアドレス変換テーブル7として用いられ、元のアドレス変換テーブル7は破棄(削除)される。
【0070】
このように第1の変形例によれば、図6のフローチャートに従うデータ復旧処理を実行することで、故障したディスク装置の有効な論理ブロックを、故障ディスク装置に代えて予備ディスク装置24を用いて新しく構成されたディスクアレイ2に復旧することができる。つまり第1の変形例では、新たなディスクアレイ2には、物理ストライプ上の無効な論理ブロックは復旧するデータとして再配置(保持)されない。しかも第1の変形例によれば、故障ディスク装置の復旧された有効な論理ブロック及び正常なディスク装置の有効な論理ブロックだけを復旧するデータとし、その復旧された有効な論理ブロック及び正常なディスク装置の有効な論理ブロックを含むデータが1ストライプ分揃えられる都度、その1ストライプ分のデータが新たなディスクアレイ2上の空き領域に再配置される。つまり第1の変形例では、データの復旧とディスクアレイ2でのデータ詰め替え(リパック)処理とが同時に行われている。これにより、ディスクアレイ2のデータ復元時間を大幅に短縮できると共に、データ復元後に改めてデータ詰め替え処理を行うことなくディスクアレイ2の空き領域を増やすことができる。
【0071】
[第2の変形例]
次に、本実施形態の第2の変形例について説明する。この第2の変形例の特徴は、ディスクアレイ2内のディスク装置が故障したために当該ディスクアレイ2のデータを復旧する処理で、当該故障したディスク装置の有効なデータを復旧する際に、他の正常なディスク装置のデータを含めて新たなディスクアレイ2上に論理アドレス順で且つ物理アドレス順に再配置する点にある。そのために第2の変形例では、第1の変形例とは異なって、有効な論理アドレスの順番で対応する物理ストライプを取り込むようにしている。
【0072】
以下、第2の変形例において、ディスクアレイ2内のディスク装置が故障したために当該ディスクアレイ2のデータを復旧する場合の動作について、図8のフローチャート参照して説明する。
【0073】
まず制御装置1は、アドレス変換テーブル7を使用して、有効な論理アドレスを例えば昇順にソートし、図9に示すように不揮発性メモリ3上に、アドレス変換テーブル7とは別の復旧処理用のアドレス変換テーブル700を生成する(ステップS801)。このソートには、従来からよく知られているMergesort、Quicksort、Shellsort、Heapsort等の高速ソートアルゴリズムを適用するとよい。なお、アドレス変換テーブル7のi番目のエントリを論理アドレスiに対応させている場合、当該テーブル7内の各エントリは論理アドレスの昇順の並びとなっていることから、特別のソートアルゴリズムは不要である。
【0074】
以後、制御装置1は復旧処理用のアドレス変換テーブル700を使用して、図6に示したステップS602以降の処理を実行する(ステップS802)。つまり、第2の変形例が第1の変形例と異なる点は、第1の変形例ではアドレス変換テーブル7のコピーであるアドレス変換テーブル7を使用して復旧処理が行われるのに対し、第2の変形例では、アドレス変換テーブル7に基づいて有効な論理アドレスが昇順にソートされた復旧処理用のアドレス変換テーブル700を使用して復旧処理が行われることである。
【0075】
この復旧処理用のアドレス変換テーブル700を使用したステップS602以降の処理の実行、つまりステップS802の実行により、有効な論理アドレスの順番に対応する物理ストライプが取り出され、当該物理ストライプから復旧された故障ディスク装置の有効な論理ブロック及び正常なディスク装置の有効な論理ブロックを含むデータが1ストライプ分揃えられる都度、その1ストライプ分のデータが、新たなディスクアレイ2を構成するディスク装置上の更新されるべきデータを保持している領域とは別の空き領域における物理的に連続した位置に再配置される。このとき、ディスクアレイ2上に再配置されたストライプ中の各論理ブロックに対する論理アドレスに対応するアドレス変換テーブル700内のエントリの情報が、再配置先の物理アドレスを示すように更新される。
【0076】
このように第2の変形例では、データの復旧とディスクアレイ2でのデータ再配置とが論理アドレス順に同時に行われている。これにより、ディスクアレイ2のデータ復元時間を大幅に短縮できると共に、データ復元後に改めてデフラグメンテーション(いわゆるデフラグ)処理を行うことなく、有効な論理ブロックを、少なくとも対応するストライプ内では、ディスクアレイ2上の論理的にも物理的にも連続する位置に再配置することができる。なお、複数のストライプにまたがって当該ストライプ内の論理ブロックに対する論理アドレスが連続している場合には、当該複数のストライプを物理的に連続する領域に配置するとよい。
【0077】
図8のフローチャートに従うデータ復旧処理が終了すると、以後、アドレス変換テーブル700が新たなアドレス変換テーブル7として用いられ、元のアドレス変換テーブル7は破棄(削除)される。この新たなアドレス変換テーブル7は、有効な論理アドレスの昇順にソートされていることから、図3のデータ構造と異なる。そこで上記ステップS801において、アドレス変換テーブル700とは別に、アドレス変換テーブル7のコピー(第1の変形例におけるアドレス変換テーブル70に相当)を生成し、以後、新たなディスクアレイ2に1ストライプ単位でデータを書き込む(再配置する)毎に、上記第1の変形例と同様に、そのストライプ中の各論理ブロックに対する論理アドレスに対応するコピーテーブル内のエントリを更新するようにし、データ復旧処理後は、このコピーテーブルを新たなアドレス変換テーブル7とする構成としてもよい。
【0078】
以上に述べた実施形態及びその変形例では、書き込みバッファ6及びアドレス変換テーブル7が不揮発性メモリ3に配置されるものとして説明したが、これに限るものではない。例えば、図10に示すように、揮発性メモリ4と電源オフ時にも当該揮発性メモリ4の記憶内容が消失するのを防止するための、電池等のメモリバックアップ機構5とにより、等価的に不揮発性メモリ3に相当する不揮発性メモリ30を実現し、書き込みバッファ6及びアドレス変換テーブル7が、揮発性メモリ4に配置される構成であっても構わない。つまり書き込みバッファ6及びアドレス変換テーブル7が、揮発性メモリ4とメモリバックアップ機構5とから構成される不揮発性メモリ30に配置される構成であっても構わない。
【0079】
また、以上に述べた実施形態及びその変形例では、ディスクアレイ2がRAID4の冗長化ディスク構成を適用しているものとして説明したが、これに限るものではない。本発明は、パリティブロックの格納先ディスク装置が物理ストライプ単位でサイクリックに切り替わるRAID5、或いはRAID50の冗長化ディスク構成など、故障ディスク装置のデータが復旧可能な冗長化ディスク構成であれば、どのような種類の冗長化ディスク構成のディスクアレイであっても、同様に適用できる。
【0080】
なお、本発明は、上記実施形態またはその変形例に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態またはその変形例には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0081】
【発明の効果】
以上詳述したように本発明によれば、アドレス変換テーブルを利用してホストコンピュータが使用している有効な論理アドレスを検索し、その検索された論理アドレスに対応する物理アドレスの物理ブロックが含まれる物理ストライプのみをデータ復旧(ディスクアレイ再構築)のための読み込みの対象とするようにしたので、OSやファイルシステム、ディバイスドライバ等に一切の変更を加えず、異なるOS環境下においてもディスクアレイ装置間での互換性を保証しながら、ディスクアレイ内のディスク装置の故障時におけるディスクアレイの再構築に必要なデータ復旧に要する時間を短縮できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るディスクアレイ装置を備えたコンピュータシステムの構成を示すブロック図。
【図2】1ストライプ分のデータの例と、当該1ストライプ分のデータがディスクアレイ2内のディスク装置21〜23に書き込まれる様子を示す図。
【図3】図1中のアドレス変換テーブル7のデータ構造例を示す図。
【図4】図2の状態でディスク装置21が故障した結果、そのディスク装置21に代えて予備ディスク装置24を使用してディスクアレイ2が再構築された際の当該ディスクアレイ2の状態を示す図。
【図5】同実施形態におけるデータ復旧処理の手順を説明するためのフローチャート。
【図6】同実施形態の第1の変形例におけるデータ復旧処理の手順を説明するためのフローチャート。
【図7】同第1の変形例におけるアドレス変換テーブルのコピーを説明するための図。
【図8】同実施形態の第2の変形例におけるデータ復旧処理の手順を説明するためのフローチャート。
【図9】同第2の変形例におけるアドレス変換テーブルを対象とする有効な論理アドレスのソートを説明するための図。
【図10】本発明の他の実施形態に係るディスクアレイ装置を備えたコンピュータシステムの構成を示すブロック図。
【符号の説明】
1…制御装置
2…ディスクアレイ
3,30…不揮発性メモリ
4…揮発性メモリ
5…メモリバックアップ機構
6…書き込みバッファ
7…アドレス変換テーブル
10…ホストコンピュータ
21〜23…ディスク装置
24…予備ディスク装置
70…アドレス変換テーブル(複写されたアドレス変換テーブル)
700…アドレス変換テーブル(有効な論理アドレスの順にソートされたアドレス変換テーブル)
Claims (8)
- 複数のディスク装置から構成される冗長化ディスク構成のディスクアレイを備え、ホストコンピュータからの書き込み要求の指定するデータをブロック単位に分割して書き込みバッファに詰めて蓄積し、当該バッファに所定のブロック数のデータが蓄積された段階で、その所定のブロック数のデータを含む1ストライプ分のデータが、前記ディスクアレイ内の前記複数のディスク装置上の更新されるべきデータを保持している領域とは別の空き領域内の物理的に連続する領域に書き込まれるディスクアレイ装置において、
前記ホストコンピュータにより使用されている有効な論理ブロックの論理アドレスを当該論理ブロックが格納されている前記ディスクアレイの物理アドレスに変換するためのアドレス変換情報が設定されたアドレス変換テーブルを記憶しておくためのアドレス変換テーブル記憶手段と、
前記ディスクアレイを構成する複数のディスク装置のいずれか1つが故障して、当該故障したディスク装置に代えて予備のディスク装置を用いて前記ディスクアレイを再構築する場合に、前記アドレス変換テーブルに従って有効な論理アドレスを検索する第1の検索手段と、
前記第1の検索手段により検索された有効な論理ブロックに対応する物理ブロックを含む物理ストライプ中の前記故障ディスク装置以外の各ディスク装置上に存在するストライプユニットを読み込む手段と、
前記読み込み手段により読み込まれた各ストライプユニットを含む物理ストライプに含まれている物理ブロックに対応する論理ブロックの論理アドレスのうちの有効な論理アドレスを前記アドレス変換テーブルに従って検索する第2の検索手段と、
前記第2の検索手段により検索された有効な論理アドレスに対応する有効なデータのうちの前記故障ディスク装置のデータを、前記読み込み手段により読み込まれた各ストライプユニットからブロック単位で復旧する手段と、
前記第2の検索手段により検索された有効な論理アドレスに対応する有効なデータのうちの前記読み込み手段により読み込まれた各ストライプユニット中の有効なデータ、及び前記復旧手段により復旧されたデータを、ブロック単位で前記書き込みバッファに書き込んで蓄積する手段と、
前記書き込みバッファに蓄積されたデータを含む1ストライプ分のデータが揃う毎に、当該1ストライプ分のデータを、前記予備のディスク装置を含む新たなディスクアレイを構成する各ディスク装置上の更新されるべきデータを保持している領域とは別の空き領域内の物理的に連続する領域に書き込む手段と
を具備することを特徴とするディスクアレイ装置。 - 前記書き込みバッファへの書き込みが完了したブロックに対応する論理アドレスの状態を復旧済みとして記録するための手段を更に具備し、
前記読み込み手段は、前記第1の検索手段により検索された有効な論理アドレスのうち、復旧済みとして既に記録されている論理アドレスに対応する物理ストライプについては、読み込みの対象外とする
ことを特徴とする請求項1記載のディスクアレイ装置。 - 前記物理ストライプは、1ストライプ−(1ストライプユニット+1ブロック)分のブロック数の論理ブロックと、当該各論理ブロックの論理アドレスを含む1つの論理アドレスタグブロックと、前記1ストライプ−(1ストライプユニット+1ブロック)分のブロック数の論理ブロック及び前記論理アドレスタグブロックから構成される1ストライプ−1ストライプユニット分のブロック数のブロックに対する1ストライプユニット分のブロック数のパリティブロックとから構成されており、
前記第2の検索手段は、前記読み込み手段により読み込まれた各ストライプユニットに含まれている、または当該各ストライプユニットから復旧される論理アドレスタグブロック中の各論理アドレスについて、前記アドレス変換テーブルに従って有効であるか否かを判定することで、有効な論理アドレスを検索することを特徴とする請求項1記載のディスクアレイ装置。 - 前記第1の検索手段は、前記有効な論理アドレスを当該論理アドレスの順番に検索することを特徴とする請求項1記載のディスクアレイ装置。
- 前記ディスクアレイを再構築するに際し、前記アドレス変換テーブルに従って、当該テーブルに設定されているアドレス変換情報が有効な論理アドレスの順にソートされた復旧処理用アドレス変換テーブルを生成する手段を更に具備し、
前記第1の検索手段、前記判定手段、及び前記第2の検索手段は前記復旧処理用アドレス変換テーブルを利用することを特徴とする
請求項1記載のディスクアレイ装置。 - 複数のディスク装置から構成される冗長化ディスク構成のディスクアレイを備え、ホストコンピュータからの書き込み要求の指定するデータをブロック単位に分割して書き込みバッファに詰めて蓄積し、当該バッファに所定のブロック数のデータが蓄積された段階で、その所定のブロック数のデータを含む1ストライプ分のデータが、前記ディスクアレイ内の前記複数のディスク装置上の更新されるべきデータを保持している領域とは別の空き領域内の物理的に連続する領域に書き込まれるディスクアレイ装置におけるデータ復旧方法であって、
前記ディスクアレイを構成する複数のディスク装置のいずれか1つが故障して、当該故障したディスク装置に代えて予備のディスク装置を用いて前記ディスクアレイを再構築する場合に、前記ホストコンピュータにより使用されている有効な論理ブロックの論理アドレスを当該論理ブロックが格納されている前記ディスクアレイの物理アドレスに変換するためのアドレス変換情報が設定されたアドレス変換テーブルに従って有効な論理アドレスを検索する第1の検索ステップと、
前記第1の検索ステップで検索された有効な論理アドレスの示す論理ブロックに対応する物理アドレスの物理ブロックを含む物理ストライプ中の前記故障ディスク装置以外の各ディスク装置上に存在するストライプユニットを読み込むステップと、
前記読み込まれた各ストライプユニットを含む物理ストライプに含まれている物理ブロックに対応する論理ブロックの論理アドレスのうちの有効な論理アドレスを前記アドレス変換テーブルに従って検索する第2の検索ステップと、
前記第2の検索ステップで検索された有効な論理アドレスに対応する有効なデータのうちの前記故障ディスク装置のデータを、前記読み込まれた各ストライプユニットからブロック単位で復旧するステップと、
前記第2の検索ステップで検索された有効な論理アドレスに対応する有効なデータのうちの前記読み込まれた各ストライプユニット中の有効なデータ、及び前記復旧されたデータを、ブロック単位で前記書き込みバッファに書き込んで蓄積するステップと、
前記書き込みバッファに蓄積されたデータを含む1ストライプ分のデータが揃う毎に、当該1ストライプ分のデータを、前記予備のディスク装置を含む新たなディスクアレイを構成する各ディスク装置上の更新されるべきデータを保持している領域とは別の空き領域内の物理的に連続する領域に書き込むステップと
を具備することを特徴とするディスクアレイ装置。 - 前記物理ストライプは、1ストライプ−(1ストライプユニット+1ブロック)分のブロック数の論理ブロックと、当該各論理ブロックの論理アドレスを含む1つの論理アドレスタグブロックと、前記1ストライプ−(1ストライプユニット+1ブロック)分のブロック数の論理ブロック及び前記論理アドレスタグブロックから構成される1ストライプ−1ストライプユニット分のブロック数のブロックに対する1ストライプユニット分のブロック数のパリティブロックとから構成されており、
前記第2の前記ステップでは、前記読み込まれた各ストライプユニットに含まれている、または当該各ストライプユニットから復旧される論理アドレスタグブロック中の各論理アドレスについて、前記アドレス変換テーブルに従って有効であるか否かを判定することで、有効な論理アドレスを検索する
ことを特徴とする請求項6記載のデータ復旧方法。 - 前記第1の検索ステップでは、前記有効な論理アドレスを当該論理アドレスの順番に検索することを特徴とする請求項6記載のデータ復旧方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001367818A JP3579389B2 (ja) | 2001-11-30 | 2001-11-30 | ディスクアレイ装置及び同装置におけるデータ復旧方法 |
US10/231,027 US6912614B2 (en) | 2001-11-30 | 2002-08-30 | Disk array apparatus and data restoring method used therein |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001367818A JP3579389B2 (ja) | 2001-11-30 | 2001-11-30 | ディスクアレイ装置及び同装置におけるデータ復旧方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003167690A JP2003167690A (ja) | 2003-06-13 |
JP3579389B2 true JP3579389B2 (ja) | 2004-10-20 |
Family
ID=19177512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001367818A Expired - Fee Related JP3579389B2 (ja) | 2001-11-30 | 2001-11-30 | ディスクアレイ装置及び同装置におけるデータ復旧方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6912614B2 (ja) |
JP (1) | JP3579389B2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4079506B2 (ja) * | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
JP2004171206A (ja) * | 2002-11-19 | 2004-06-17 | Hitachi Ltd | ストレージシステム |
US20050091452A1 (en) * | 2003-10-28 | 2005-04-28 | Ying Chen | System and method for reducing data loss in disk arrays by establishing data redundancy on demand |
JP2005135116A (ja) * | 2003-10-29 | 2005-05-26 | Nec Corp | ストレージ装置及びそのアクセス制御方法 |
JP4493321B2 (ja) * | 2003-11-19 | 2010-06-30 | 株式会社日立製作所 | ディスクアレイ装置及びデータ退避方法 |
GB2411261B (en) * | 2004-02-20 | 2007-07-11 | Hewlett Packard Development Co | Standalone memory device and system and method using such device |
WO2006100776A1 (ja) * | 2005-03-24 | 2006-09-28 | Fujitsu Limited | ファームウェアによるメモリエラーアドレス管理 |
JP2006285802A (ja) * | 2005-04-04 | 2006-10-19 | Sony Corp | データ記憶装置、再構築制御装置、再構築制御方法、プログラム及び記憶媒体 |
US10860424B1 (en) | 2005-09-30 | 2020-12-08 | Pure Storage, Inc. | Background verification processing in a storage network |
US8555109B2 (en) | 2009-07-30 | 2013-10-08 | Cleversafe, Inc. | Method and apparatus for distributed storage integrity processing |
US11620185B2 (en) | 2005-09-30 | 2023-04-04 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
US11221917B1 (en) | 2005-09-30 | 2022-01-11 | Pure Storage, Inc. | Integrity processing in a dispersed storage network |
TWI350526B (en) * | 2005-11-21 | 2011-10-11 | Infortrend Technology Inc | Data access methods and storage subsystems thereof |
US20070294565A1 (en) * | 2006-04-28 | 2007-12-20 | Network Appliance, Inc. | Simplified parity disk generation in a redundant array of inexpensive disks |
JP4821448B2 (ja) * | 2006-06-14 | 2011-11-24 | 富士通株式会社 | Raidコントローラおよびraid装置 |
JP4958739B2 (ja) | 2007-11-09 | 2012-06-20 | 株式会社日立製作所 | 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム |
JP2009294901A (ja) | 2008-06-05 | 2009-12-17 | Hitachi Ltd | ストレージ装置及び障害復旧方法 |
JP5388976B2 (ja) | 2010-09-22 | 2014-01-15 | 株式会社東芝 | 半導体記憶制御装置 |
KR20130111821A (ko) * | 2012-04-02 | 2013-10-11 | 삼성전자주식회사 | Raid 메모리 시스템 |
JP2017199043A (ja) * | 2014-07-25 | 2017-11-02 | 日本電気株式会社 | ストレージ装置とシステム及び方法とプログラム |
US9781225B1 (en) * | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
US10162561B2 (en) * | 2016-03-21 | 2018-12-25 | Apple Inc. | Managing backup of logical-to-physical translation information to control boot-time and write amplification |
US10579471B2 (en) * | 2017-03-02 | 2020-03-03 | Toshiba Memory Corporation | Storage device and error correction method for storage device |
JP2019008730A (ja) * | 2017-06-28 | 2019-01-17 | 東芝メモリ株式会社 | メモリシステム |
CN111435286B (zh) * | 2019-01-14 | 2023-12-05 | 深圳市茁壮网络股份有限公司 | 一种数据存储方法、装置和系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5303244A (en) * | 1991-03-01 | 1994-04-12 | Teradata | Fault tolerant disk drive matrix |
JPH0588988A (ja) | 1991-09-27 | 1993-04-09 | Fujitsu Ltd | デイスクアレイ装置及びデータの復元方法 |
JP3944280B2 (ja) | 1997-07-08 | 2007-07-11 | 株式会社日立製作所 | 障害回復方法および装置 |
JPH1153235A (ja) * | 1997-08-08 | 1999-02-26 | Toshiba Corp | ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム |
JPH11194899A (ja) * | 1997-12-26 | 1999-07-21 | Toshiba Corp | ディスク記憶システム及び同システムに適用するデータ更新方法 |
JP2000010738A (ja) | 1998-06-17 | 2000-01-14 | Toshiba Corp | ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体 |
JP2000047832A (ja) | 1998-07-27 | 2000-02-18 | Toshiba Corp | ディスクアレイ装置、及びそのデータ制御方法 |
US7266706B2 (en) * | 1999-03-03 | 2007-09-04 | Yottayotta, Inc. | Methods and systems for implementing shared disk array management functions |
US6571351B1 (en) * | 2000-04-07 | 2003-05-27 | Omneon Video Networks | Tightly coupled secondary storage system and file system |
-
2001
- 2001-11-30 JP JP2001367818A patent/JP3579389B2/ja not_active Expired - Fee Related
-
2002
- 2002-08-30 US US10/231,027 patent/US6912614B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6912614B2 (en) | 2005-06-28 |
JP2003167690A (ja) | 2003-06-13 |
US20030105921A1 (en) | 2003-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3579389B2 (ja) | ディスクアレイ装置及び同装置におけるデータ復旧方法 | |
JP3682256B2 (ja) | ディスクアレイ装置及び同装置におけるパリティ処理方法 | |
JP3702231B2 (ja) | ディスクアレイ装置及び同装置における動的記憶容量拡張方法 | |
JP3526452B2 (ja) | ディスクアレイ装置及びデータバックアップ方法 | |
US7761655B2 (en) | Storage system and method of preventing deterioration of write performance in storage system | |
JP5116151B2 (ja) | 仮想ホットスペアを用いて動的に拡張可能かつ縮小可能な故障許容格納システム | |
KR100211790B1 (ko) | 직접 액세스 저장 장치에서 데이터 압축을 위한 디렉토리 재 구축 방법 및 장치 | |
US5488701A (en) | In log sparing for log structured arrays | |
US5404361A (en) | Method and apparatus for ensuring data integrity in a dynamically mapped data storage subsystem | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
US20030115437A1 (en) | Disk array apparatus and data update method therein | |
US6636941B1 (en) | Enhanced stable disk storage | |
KR20020009564A (ko) | 메모리 시스템 | |
JP2008204041A (ja) | ストレージ装置及びデータ配置制御方法 | |
CN112596673B (zh) | 具有双重raid数据保护的多活多控存储系统 | |
JP6696280B2 (ja) | 情報処理装置、raid制御方法、およびraid制御プログラム | |
JP3788961B2 (ja) | ディスクアレイ装置及び同装置におけるレイドレベル変更方法 | |
JP2005107839A (ja) | アレイコントローラ及びディスクアレイ再構築方法 | |
JP2006178926A (ja) | 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法 | |
JP6794827B2 (ja) | ストレージ管理装置、ストレージシステム、方法およびプログラム | |
JP2000047832A (ja) | ディスクアレイ装置、及びそのデータ制御方法 | |
CN110597454B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
JP2004013786A (ja) | データ記憶方法およびデータ記憶制御装置 | |
JP7056874B2 (ja) | 制御装置、ディスクアレイ装置、制御方法、及びプログラム | |
US20230297242A1 (en) | Storage device and data recovery method by storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040420 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040621 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040713 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040715 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080723 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100723 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100723 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110723 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120723 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |