JP3790756B2 - ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法 - Google Patents

ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法 Download PDF

Info

Publication number
JP3790756B2
JP3790756B2 JP2003308823A JP2003308823A JP3790756B2 JP 3790756 B2 JP3790756 B2 JP 3790756B2 JP 2003308823 A JP2003308823 A JP 2003308823A JP 2003308823 A JP2003308823 A JP 2003308823A JP 3790756 B2 JP3790756 B2 JP 3790756B2
Authority
JP
Japan
Prior art keywords
data
disk
write
writing
disk array
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 - Lifetime
Application number
JP2003308823A
Other languages
English (en)
Other versions
JP2005078430A (ja
Inventor
享一 笹本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003308823A priority Critical patent/JP3790756B2/ja
Publication of JP2005078430A publication Critical patent/JP2005078430A/ja
Application granted granted Critical
Publication of JP3790756B2 publication Critical patent/JP3790756B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、少なくとも3台のディスクドライブにより構成される冗長構成のディスクアレイを備えたディスクアレイ装置に係り、特にディスクアレイを構成するディスクドライブのうちの1つが故障したために欠陥となったデータセットへのデータ書き込みが異常終了したことに起因して発生するデータ障害を復旧するのに好適な、ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法に関する。
近年の計算機システムでは、当該システムの外部記憶装置として、複数のディスクドライブ(物理ディスクドライブ)、例えば磁気ディスクドライブ(以下、HDDと称する)から構成されるディスクアレイを備えたディスクアレイ装置が用いられることが多くなっている。この種のディスクアレイ装置の特徴は、ディスクアレイ内の各HDD(メンバーHDD)を並列に動かして読み出し/書き込みを分散して実行することでアクセスの高速化を実現すると共に、冗長構成によって信頼性の向上を実現する点にある。ディスクアレイを制御する制御装置(ディスク制御装置)は、ホスト(ホストコンピュータ)から転送される書き込みデータに対して、データ訂正情報としての冗長データを生成し、上記複数のHDDのうちのいずれかに書き込む。これにより、複数のHDDのうちの1台の故障に対し、この冗長データと残りのHDDのデータを用いて故障したHDDのデータを修復することを可能としている。
データ冗長化の手法の1つとして、RAID(Redundant Array of Independent DisksまたはRedundant Array of Inexpensive Disks)の手法が知られている。RAID手法では、RAIDのデータと冗長データとの関連において、種々のRAIDレベルに分類されている。RAIDレベルの代表的なものとして、少なくとも3台のHDDから構成されるディスクアレイに適用され、冗長データとしてのパリティデータの付加によりデータの信頼性を高めるようにした、レベル3とレベル4とレベル5とが知られている。例えば、レベル3(RAIDレベル3)では、ホストから転送される更新データ(書き込みデータ)を分割して、その分割された更新データ間の排他的論理和(XOR)演算を行うことでパリティデータを生成し、当該パリティデータで複数(少なくとも3台)のHDDのいずれかに書き込まれている元のパリティデータを更新する。一方、レベル5(RAIDレベル5)では、ホスト計算機から転送される更新データ(新データ)と、当該更新データの格納先となるHDD内領域に格納されている更新前のデータ(旧データ)と、当該更新データの格納先に対応する別のHDDの領域に格納されている更新前のパリティデータ(旧パリティデータ)との間の排他的論理和演算を行うことで、更新されたパリティデータ(新パリティデータ)を生成し、当該更新パリティデータで元のパリティデータを更新する。レベル4(RAIDレベル4)は、レベル5と同様である。但し、レベル4ではパリティデータは特定のHDDに格納され、レベル5ではパリティデータは各HDDに分散して格納される。
このようなRAID手法を適用したディスクアレイ装置では、ディスクアレイ内のメンバーHDDが故障した場合に、故障したHDD以外のHDDから、一定のデータ単位毎にデータを読み出して、それらのデータの排他的論理和演算を行うRAIDの機能により、故障したHDDのデータを、故障したHDDに代えて用いられるHDD内に修復することができる。その一方、この種のディスクアレイ装置には、以下の問題点があることも知られている。
ディスクアレイ装置の問題点は、データとパリティデータとを各HDDに書き込んでいる最中に停電などの障害が発生して、この書き込みが正常に終了できなかった場合(つまり異常終了した場合)に発生する。一般にHDDへのデータ書き込みでは、当該HDD内でのシーク動作や回転待ちなど、様々な要因により遅延が発生する。シーク動作とは、ヘッドを目標トラックに移動させる動作である。回転待ちとは、シーク動作の完了後にディスク媒体の回転により目標トラックの目標セクタ(データセクタ)がヘッドの位置に到達するのを待つことである。データ書き込みの遅延時間は各HDDで一定しないことから、ディスク制御装置(ディスクアレイコントローラ)の制御によりデータとパリティデータのHDDへの書き込みを同時に実施したとしても、このデータとパリティデータとが対応するHDD(内のディスク媒体)に実際に書き込まれるタイミングには必ずずれが生じる。したがって、データとパリティデータとをそれぞれ対応するHDDに書き込んでいる最中に停電などによりその書き込みが中断された(異常終了した)場合、データとパリティデータのどちらか一方のみの書き込みが完了していることもあり得る。このような状態が発生すると、データとパリティデータとを関連付ける最小単位であるデータセットでは、データとパリティデータとの相関関係が不整合となる。この状態をそのまま放置すると、将来HDDが故障した場合には、パリティデータを使用して故障したHDDのデータを復元する際に、誤ったデータを復元してしまう。
そこで従来から、上述のディスクアレイ装置における問題に対処するための技術が提案されている(例えば、特許文献1参照)。この特許文献1で提案された技術(以下、先行技術と称する)では、ディスク制御装置は、HDDに格納されているデータを更新する際に、そのデータの書き込み対象領域が特定可能な情報を不揮発メモリに記憶する。データの書き込み途中に停電が発生した場合、ディスク制御装置は、停電からの復帰後の装置立ち上げ処理にて不揮発性メモリを参照して、書き込み途中の領域を検出する。ディスクアレイは、検出した書き込み途中の領域の例えばデータセットを単位に、当該データセット内のデータから新たなパリティデータを再計算しHDDの元の位置に上書きする。これにより、書き込み途中の停電によるデータとパリティデータとの不整合を解消できる。
特開平11−154058号公報(段落0010、0020、0023、0024、図4、図5)
上記先行技術は、ディスクアレイ内の何れのHDDも故障していない、パリティデータにより冗長性が正しく保たれているデータセットでは確かに有効である。しかし、ディスクアレイ内の何れかのHDDが故障している状態で、データの書き込み途中で停電が発生した場合、書き込み途中の領域のデータセットは欠陥のあるデータセットとなっている可能性がある。もし、書き込み途中の領域のデータセットが欠陥のあるデータセットの場合、復帰後の装置立ち上げ処理で、当該データセットにおけるデータとパリティデータとの不整合を解消することはできない。その理由について、ディスクアレイが第1乃至第3のHDDから構成されている場合を例に述べる。
まず、第2のHDDが故障している状態で、第1のHDDにデータを書き込む必要があるものとする。このデータ(新データ)に対応するパリティデータ(旧パリティデータ)、即ち新データが書き込まれる領域が属するデータセットにおける旧パリティデータは、第3のHDDに格納されているものとする。この場合、ディスク制御装置は、新データが書き込まれる領域が属するデータセットを対象に、第1のHDDからの旧データ(更新されるデータ)の読み出しと第3のHDDからの旧パリティデータの読み出しとを行い、旧データと新データと旧パリティデータとの間の排他的論理和(XOR)演算から、新パリティデータを生成する。次にディスク制御装置は、第1のHDDへの新データの書き込みと第3のHDDへの新パリティデータの書き込みとを開始する。この状態で停電が発生し、そのとき第1のHDDへの新データの書き込みは完了しているのに対し、第3のHDDへの新パリティデータの書き込みは未完了であったものとする。この場合、第1のHDDに書き込まれた新データと、第3のHDD内の対応するパリティデータとの相関関係は不整合となる。この不整合を解消するには、停電からの復帰後の装置立ち上げ処理で、第3のHDD内のパリティデータに対応する、他の第1及び第2のHDD内のデータの間の排他的論理和演算を行って、正しいパリティデータを生成する必要がある。そのためには、故障している第2のHDDのデータを復元する必要がある。しかし、当該第2のHDDのデータに対応する、第1のHDDのデータと第3のHDDのパリティデータとの間の整合性は失われているため、当該第2のHDDのデータを正しく復元することはできず、データの消失が発生する。
通常、ディスクアレイ装置には、故障したHDDに代えて用いられる、ホットスペアと呼ばれるHDDが設けられている。そこでディスクアレイ装置では、ディスクアレイ内のいずれかのHDDが故障した場合に、当該故障したHDDのデータを、ディスクアレイ内の他のHDDのデータからホットスペアHDD上に復元することにより、欠陥のあるデータセットへの書き込みが長時間継続しないように配慮されている。しかし、故障したHDDのデータをホットスペアHDDに復元するには、当該HDDの容量にもよるが、通常数時間かかることから、その間上記の問題が発生する危険性を有している。
本発明は上記事情を考慮してなされたものでその目的は、ディスクアレイを構成するディスクドライブのうちの1つが故障したために欠陥となったデータセットへのデータ書き込みが異常終了しても、当該データセットに含まれているデータとパリティデータとの不整合によりデータが消失するのを簡単に防止できる、ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法に関する。
本発明の1つの観点によれば、少なくとも3台のディスクドライブにより構成されるディスクアレイであって、データ及び当該データに対応する冗長データを格納する少なくとも1つのデータセットを含むストライプを単位に管理されるディスクアレイと、このディスクアレイを制御するディスク制御装置とを備えたディスクアレイ装置が提供される。上記ディスク制御装置は、上記ディスクアレイを構成するディスクドライブの1つが故障している状態で、外部から与えられた書き込み要求に従って、当該ディスクアレイに割り付けられたスペアディスクドライブへのデータ復元が完了していないデータセットを書き込み対象とするデータ書き込みを行う場合に、当該ディスクアレイ内の故障したディスクドライブを除く正常なディスクドライブから、当該書き込み対象データセットにおける故障したディスクドライブのデータを復元する部分復元手段と、この部分復元手段により復元されたデータを、上記スペアディスクドライブの上記書き込み対象データセットに対応する領域に書き込む手段と、上記部分復元手段により復元されたデータが上記スペアディスクドライブの上記書き込み対象データセットに対応する領域に書き込まれた後に、当該スペアディスクドライブを含む正常なディスクドライブの当該書き込み対象データセットに対応する領域へのデータ書き込みを実行する手段と、上記書き込み要求で指定されたデータ書き込みが開始される時点から当該書き込みが完了するまで、書き込みの対象となる書き込み領域を特定する書き込み領域情報を記憶する不揮発性の書き込み領域情報記憶手段と、データ書き込みが異常終了した後の起動時に、上記書き込み領域情報記憶手段に記憶されている書き込み領域情報によって示される書き込み領域を書き込み途中領域として特定する手段と、この特定手段により特定された書き込み途中領域に対応する全データセットを対象に、データ及び冗長データの整合性を修復する手段とを備えたことを特徴とする。
また本発明は、上記ディスク制御装置に、次の各手段、即ち上記書き込み要求で指定されたデータ書き込みが開始される際に、書き込みの対象となる書き込み領域を特定する書き込み領域情報を上記書き込み領域情報記憶手段に記憶する手段と、上記書き込み領域への書き込みが完了した際に当該書き込み領域を特定する、上記書き込み領域情報記憶手段内の書き込み領域情報を無効化する手段とを更に備えたことを特徴とする。
また本発明は、上記ディスク制御装置を2重化し、当該2重化されたディスク制御装置に、当該2重化されたディスク制御装置間で、上記書き込み領域情報記憶手段の内容を一致化させるための通信を行う通信手段をそれぞれ備えたことを特徴とする。
本発明によれば、スペアディスクドライブへのデータ復元が完了していない欠陥のあるデータセットへの書き込みが発生した場合には、そのデータセットにおける故障ディスクドライブのデータをスペアディスクドライブに復元してから、そのデータセットへのデータ書き込みを行うことにより、欠陥のあるデータセットへの書き込みを無くすことができる。これにより、データセットへのデータの書き込み途中で、停電が発生したり、或いはディスク制御装置の故障が発生した結果、データ書き込みが異常終了しても、当該データセットにおけるデータと冗長データの整合性を修復できる。ここで、データ書き込みが異常終了した領域の情報、つまり書き込み途中の領域の情報は、不揮発性の書き込み領域情報記憶手段に記憶されていることから、簡単に特定できる。
また本発明によれば、ディスク制御装置が2重化されたディスクアレイ装置において、当該2重化されたディスク制御装置間の通信で、当該2重化されたディスク制御装置がそれぞれ有する書き込み領域情報記憶手段の内容を一致化することができるため、書き込み処理中のディスク制御装置が故障により停止しても、他方のディスク制御装置が当該他方の制御装置が有する書き込み領域情報記憶手段の内容から書き込み途中の領域を特定して、対応するデータセットにおけるデータと冗長データの整合性を修復することができる。
以下、本発明の実施の形態につき図面を参照して説明する。図1は本発明の一実施形態に係るディスクアレイ装置10の構成を示すブロック図である。図1において、ディスクアレイ装置10は、2重化されたディスク制御装置11-0及び11-1と、当該ディスク制御装置11-0及び11-1によって制御されるディスクアレイ12とを備えている。ディスク制御装置11-0及び11-1は、ディスクアレイ装置10を外部記憶装置として利用するホスト(ホストコンピュータ)20と、ホストインタフェースバス13を介して接続されている。ディスク制御装置11-0及び11-1はまた、ディスクアレイ12と、ディスクインタフェースバス14を介して接続されている。ホストインタフェースバス13は、例えばSCSI(Small Computer System Interface)、或いはファイバチャネル(Fibre Channnel)である。ディスクインタフェースバス14も、SCSI、或いはファイバチャネルである。ディスクアレイ12は、少なくとも3台のHDD、例えば4台のHDD120-0(#0)〜120-3(#3)から構成される。HDD120-0〜120-3は、ディスクインタフェースバス14により相互接続されている。また、ディスクインタフェースバス14には、ディスクアレイ12を構成するHDD120-0〜120-3のうちのいずれかのHDDが故障した場合に、その故障HDDに代えて用いられるホットスペアHDD120(#SP)も接続されている。
ここで、本実施形態において適用されるRAIDに関係する用語について、図2を参照して説明する。本実施形態では、HDD120-0〜120-3全体が、ホスト20により、1つのディスクアレイ12として使用される。アレイ(ディスクアレイ)とは、複数のHDD(ここではHDD120-0〜120-3)から構成される、RAIDの機能により関連付けられた単位である。本実施形態では、説明を簡単にするため、複数の物理的なHDD(ここではHDD120-0〜120-3)が提供するディスク領域全体で、1つのディスクアレイ12、つまり論理的に単一のディスクドライブ(論理ディスクドライブ、或いは論理ディスク)が構成されているものとする。しかし一般的には、HDD120-0〜120-3の各記憶領域にまたがって形成されるパーティション毎に、ディスクアレイ(論理ディスク)を定義することが可能である。つまり、HDD120-0〜120-3から同一の物理オフセットで論理的に切り出されるHDD120-0〜120-3内の各記憶領域をそれぞれ論理的なHDDと見なして、ディスクアレイ(論理ディスク)を定義することが可能である。
メンバーHDDとは、RAIDの機能によりディスクアレイ12を構成する個々のHDD、即ちHDD120-0〜120-3を示す。セクタブロック(データブロック)121とは、HDD120-0〜120-3の最小アクセス単位であり、通常512バイトである。データセット122とは、RAIDの機能によりデータ及びパリティデータが関連付けられた、各HDD120-0〜120-3内の同一物理オフセット(物理位置)に存在するセクタデータのグループを示す。ストライプ123とは、ホスト20から指定されたデータを、ディスクアレイ12を構成する各HDD120-0〜120-3へ分散する単位を示す。1つのストライプ123は、n個(nは1以上の整数)のデータセット122から構成される。このn個のデータセット122のうち、1つのHDDに含まれるn個のセクタデータ121は、当該HDD内で物理的に連続している。1つのストライプ123を構成するn個のデータセット122は、それぞれデータセット番号0〜n−1で識別される。
再び図1を参照する。ディスク制御装置11-0及び11-1の内部の基本構成は同一である。そこで図1には、ディスク制御装置11-0及び11-1のうちの例えばディスク制御装置11-0の構成だけが示されており、ディスク制御装置11-1の構成については省略されている。ディスク制御装置11-0は、ホストインタフェース(ホストI/F)201と、ディスクインタフェース(ディスクI/F)202と、キャッシュメモリ203と、キャッシュコントローラ204と、FROM(フラッシュROM)205と、NVRAM(Nonvolatile RAM)206と、ローカルメモリ207と、CPU208と、チップセット209と、通信回路210と、内部バス211とを備えている。
ホストインタフェース201は、ホスト20とディスクアレイ装置10内のディスク制御装置11-0との接続を制御する。即ちホストインタフェース201は、ホスト20とディスク制御装置11との間のデータ転送(データ転送プロトコル)を制御する。ホストインタフェース201は、ディスクアレイ12にデータを書き込むことを要求する書き込み要求をホスト20から受信した場合、当該要求で指定されたデータをキャッシュコントローラ204によりキャッシュメモリ203に書き込ませるために、当該データを内部バス211を介してキャッシュコントローラ204に転送するデータ転送回路としての機能を有する。またホストインタフェース201は、ディスクアレイ12からデータを読み出すことを要求する読み出し要求をホスト20から受信した場合、当該要求で指定されたデータをキャッシュメモリ204から読み出してホスト20に送信するための制御を行う。
ディスクインタフェース202は、ディスクアレイ12内の各HDD120-0〜120-3との間のデータ転送を制御する。即ちディスクインタフェース202は、HDD120〜120-3へのデータの書き込み、及びHDD120-0〜120-3からのデータの読み出しを制御する。ディスクインタフェース202は、ディスクアレイ12内のHDD120-i(i=0〜3)から読み出されたデータを、キャッシュコントローラ204によりキャッシュメモリ203に書き込ませるために、内部バス211を介してキャッシュコントローラ203に転送するデータ転送回路としての機能を有する。
キャッシュメモリ203は、ホスト20からホストインタフェースバス13を介して与えられる、ディスクアレイ11(論理ディスク)への書き込み/読み出し(入出力)要求で指定されるデータの書き込み/読み出しの高速化のためのバッファとして用いられる。例えば、書き込み要求に対しては、当該要求で指定されたデータがキャッシュメモリ125に書き込まれ、その段階で要求元に書き込み処理完了が通知される。その後、キャッシュメモリ203に書き込まれたデータがディスクアレイ11に書き込まれる(ライトバックされる)。一方、読み出し要求に対しては、当該要求で指定されたデータがキャッシュメモリ203に格納されているか否かが判定され、格納されているならば、そのデータが要求元に転送される。これに対し、指定されたデータがキャッシュメモリ203に格納されていないならば、当該データがディスクアレイ11からキャッシュメモリ203に読み出される。しかる後に、キャッシュメモリ203に読み出されたデータが要求元に転送される。キャッシュメモリコントローラ204は、キャッシュメモリ203を制御する。キャッシュメモリコントローラ204は、キャッシュメモリ203上の任意のデータに対し排他的論理和(XOR)演算によりパリティデータを生成する機能を有する。FROM205は、CPU208により実行される制御用プログラムを格納するための書き換えが可能な不揮発性メモリである。なお、FROM205に代えて読み出し専用の不揮発性メモリ、例えばROMを用いることも可能である。
NVRAM206は、書き換え可能な不揮発性メモリである。ここでは、NVRAM206は、バッテリバックアップされたRAMである。しかし、NVRAM206としてバックアップ電源を必要としない書き換え可能な不揮発性メモリ、例えばFROM(フラッシュROM)を用いることも可能である。NVRAM206は、ディスク書き込み管理テーブルTBL1と故障HDD復元管理テーブルTBL2とを保存するのに用いられる。ディスク書き込み管理テーブルTBL1は、ディスクアレイ12にデータを書き込むことを要求するホスト20からの書き込み要求(書き込みコマンド)に関する情報(例えば、書き込み要求で指定されたデータが書き込まれるディスクアレイ12の領域を特定するための情報)を、当該要求に従うディスク書き込み処理が完了するまで記憶するのに用いられる。このディスク書き込み管理テーブルTBL1を用いたディスク書き込みの管理のために、ホスト20からディスク制御装置11-0に与えられる書き込み要求(書き込みコマンド)には、当該要求(コマンド)を識別するためのID(コマンドID)が割り当てられる。本実施形態において、書き込み要求(書き込みコマンド)に割り当てられるコマンドIDは番号(以下、コマンド番号と称する)である。一方、故障HDD復元管理テーブルTBL2は、ディスクアレイ12内のいずれかのHDDが故障した結果実行される、当該故障HDDのデータをホットスペアHDD120に復元する復元処理での復元状況を管理するのに用いられる。
ローカルメモリ207は、FROM205からコピーされた制御プログラムを記憶するのに用いられる。またローカルメモリ207の一部の領域は、CPU208が動作する上で使用するワーク領域として用いられる。CPU208は、ローカルメモリ207に格納された制御プログラムのプログラムコードに従い、ディスク制御装置11-0内の各部を制御する。特にCPU208は、システムの再起動時に、書き込み処理が異常終了したために書き込み途中の状態にある領域(以下、書き込み途中領域と称する)が属する全てのデータセットにおけるデータと冗長データとの間の一貫性を回復するための処理を実行する。
チップセット209は、CPU208及び当該CPU208の周辺回路を内部バス211に結合するブリッジ回路を含む。このブリッジ回路は、内部バス211が後述するようにPCI(Peripheral Component Interconnect)バスである本実施形態では、PCIブリッジである。通信回路210は、ディスク制御装置11-1内の通信回路220と信号線15を介して通信することにより、ディスク制御装置11-0内のNVRAM206の内容(ディスク書き込み管理テーブルTBL1及び故障HDD復元管理テーブルTBL2)とディスク制御装置11-1内のNVRAM(図示せず)の内容(ディスク書き込み管理テーブル及び故障HDD復元管理テーブル)との一致化を図る。内部バス211は汎用バスであり、例えばPCIバスである。ホストインタフェース201、ディスクインタフェース202、キャッシュコントローラ204及びチップセット209は、内部バス211により相互接続されている。また、FROM205、NVRAM206、ローカルメモリ207、CPU208及び通信回路210は、チップセット209により内部バス211に接続されている。
図3は、NVRAM206に保存されるディスク書き込み管理テーブルTBL1のデータ構造例を示す。図3に示すように、ディスク書き込み管理テーブルTBL1は、書き込み要求に関する情報を記憶するための複数のエントリを有している。この複数のエントリは、書き込み要求(書き込みコマンド)を識別するためのコマンド番号に対応付けて用意される。つまりディスク書き込み管理テーブルTBL1の各エントリは、それぞれ固有のコマンド番号に対応付けられている。各エントリは、フラグフィールド31と、論理ディスク番号フィールド32と、論理アドレス(論理ブロックアドレス)フィールド33と、転送サイズフィールド34とを有する。フィールド31は、フラグ(フラグ情報)を記憶するのに用いられる。このフラグは、対応するエントリの内容、つまり対応するコマンド番号が割り当てられた書き込み要求に関する情報(論理ディスク番号、論理アドレス及び転送サイズ)が有効であるか否か(無効であるか)を示す。ここでは、フラグは1バイトで構成され、01h(末尾のhは16進表現であることを示す)、つまり“1”で、対応するエントリの内容が有効であることを示し、00h、つまり“0”で、対応するエントリの内容が無効(対応するエントリが空き)であることを示す。フィールド32は、論理ディスク番号を記憶するのに用いられる。論理ディスク番号とは、ホスト20から認識可能なディスクの単位であり、例えばアレイ番号である。ここでは、フィールド32には、対応するコマンド番号が割り当てられた書き込み要求で指定される書き込み先の論理ディスク(ディスクアレイ12)を示す論理ディスク番号(アレイ番号)が記憶される。フィールド33及び34は、それぞれ、書き込み要求で指定される書き込みを開始すべき論理アドレス及び書き込みデータのサイズ(転送サイズ)の情報を記憶するのに用いられる。論理アドレスとは、論理ディスク(ディスクアレイ12)内での相対的なセクタアドレスを示す。転送サイズとは、例えばセクタ(データセクタ)数で示される書き込みデータのデータ長を示す。つまりフィールド33及び34は、書き込み要求で指定される論理ディスク(ディスクアレイ12)上の領域を特定するための情報を記憶するのに用いられる。
図4は、NVRAM206に保存される故障HDD復元管理テーブルTBL2のデータ構造例を示す。図4に示すように、故障HDD復元管理テーブルTBL2は、ストライプ番号に対応付けられる複数のエントリを有している。このテーブルTBL2のエントリ数は、ディスクアレイ12上のストライプ数に一致する。故障HDD復元管理テーブルTBL2の各エントリには、対応するストライプ内のn個のデータセット0〜n−1のうち、故障HDDに含まれているデータ(セクタデータ)が全て復元済みであるか否かを示すフラグ(フラグ情報)が設定される。
次に、図1のディスクアレイ装置の動作を説明する。まず、ディスクアレイ12内のHDD120-0(#0)〜120-3(#3)のうちの例えばHDD120-1(#1)が故障したものとする。この場合、故障HDD120-1のデータをホットスペアHDD120(#SP)に復元するための故障HDD復元処理が、例えばディスク制御装置11-0によって、図5のフローチャートの示す手順で次のように実行される。
まず、ディスク制御装置11-0内のCPU208は、最初に処理すべきストライプ123のストライプ番号iを初期値0に設定すると共に(ステップS1)、ストライプ番号iで指定されるストライプ123内の最初に処理すべきデータセット122のデータセット番号jを初期値0に設定する(ステップS2)。以下の説明では、ストライプ番号iで指定されるストライプ123及びデータセット番号jで指定されるデータセット122を、それぞれストライプi及びデータセットjと呼ぶ。
次にCPU208は、NVRAM206に保存されている故障HDD復元管理テーブルTBL2のストライプ番号iに対応するエントリiに設定されているフラグを参照する(ステップS3)。そしてCPU208は、参照したフラグの状態から、ストライプiに属するn個のデータセット0〜n−1に含まれている、故障HDD120-1内の各セクタデータ121が全て復元済みであるか否かを判定する(ステップS4)。
もし、復元済みでないならば、CPU208は、ストライプiに属する各データセット0〜n−1を対象に、当該各データセット0〜n−1に含まれている故障HDD120-1のデータを復元するための制御を次のように実行する。まずCPU208は、ストライプiに属するデータセットjの中から、故障HDD120-1を除く正常なHDD、即ちHDD120-0,120-2及び120-3に格納されているセクタデータを読み出すための制御を行う(ステップS5)。キャッシュコントローラ204は、HDD120-0,120-2及び120-3から読み出されたセクタデータを排他的論理和(XOR)演算することにより、ストライプiに属するデータセットj内の、故障HDD120-1のデータ(セクタデータ)を復元する(ステップS6)。CPU208は、復元された故障HDD120-1のデータ(セクタデータ)を、ストライプiに属するデータセットjに対応するスペアHDD120内の領域(セクタ位置)に書き込むための制御を行う(ステップS7)。これにより、ストライプiに属するデータセットj内の、故障HDD120-1のデータ(セクタデータ)が、スペアHDD120の対応する領域に復元される。
CPU208は、以上の制御(ステップS5〜S7)を、ストライプiに属する全てのデータセットについて処理し終えるまで、データセット番号jをインクリメントしながら繰り返す(ステップS8,S9)。そして、ストライプiに属する全てのデータセットについて処理し終えると、CPU208は、ステップS3で参照した故障HDD復元管理テーブルTBL2のエントリi中のフラグを、復元済みを示す状態に変更する(ステップS10)。次にCPU208は、ディスク制御装置11-1の故障HDD復元管理テーブル(図示せず)のエントリi中のフラグを、復元済みを示す状態に変更することを、通信回路210を用いて当該ディスク制御装置11-1に要求する(ステップS11)。これにより、ディスク制御装置11-0内のNVRAM206に保存されている故障HDD復元管理テーブルTBL2と、ディスク制御装置11-1内のNVRAMに保存されている故障HDD復元管理テーブルとの一致化が図られる。
次にCPU208は、全ストライプについて処理し終えたか否かを判定する(ステップS12)。もし、未処理のストライプが残されているならば、CPU208はストライプ番号iを1だけインクリメントし(ステップS13)、そのインクリメント後のストライプ番号iで指定されるストライプiについて、上述の制御を行う。やがて、ディスクアレイ12における全てのストライプについて処理し終えると、CPU208は、スペアHDD120を、故障HDD120-1に代えて用いられる、ディスクアレイ12の新たなメンバーHDDとして設定する(ステップS14)。
次に、ホスト20から書き込み要求が与えられた場合の動作について、図6及び図7を参照して説明する。なお、図6は、ホスト20からの書き込み要求に従うディスク書き込み処理の手順を示すフローチャート、図7はデータセット復元を説明するための図である。今、ホスト20からディスクアレイ装置10のディスク制御装置11-0に対して、ディスクアレイ12(論理ディスク)にデータを書き込むための書き込み要求が与えられたものとする。この場合、ホスト20からの書き込み要求により指定された書き込みデータがホストインタフェース201で受信されてキャッシュコントローラ204に転送され、当該キャッシュコントローラ204によりキャッシュメモリ125に記憶される。この段階で、ホスト20からの書き込み要求に対する書き込み完了が、ホストインタフェース201からホスト20に通知される。その後、ディスク制御装置12内のCPU208は、キャッシュメモリ125に記憶された書き込みデータをディスクアレイ11に書き込む(ライトバックする)ためのディスク書き込み処理を図6のフローチャートに従って開始する。
まずCPU208は、ホスト20からの書き込み要求で指定された書き込み先(書き込みターゲット)のアレイ(ここではディスクアレイ12)の状態をチェックし(ステップS21)、当該アレイ内に故障しているHDDが存在するか否かを判定する(ステップS22)。ここでは、図7に示すように、ディスクアレイ12内のHDD120-1が故障しているものとする。また、HDD120-1のデータを図5のフローチャートの示す手順でスペアHDD120に復元している最中であるものとする。
この例のように、故障HDD(ここではHDD120-1)が存在する場合、CPU208は、ディスクアレイ12に対してスペアHDDが割り付けられているか否か、つまりディスクアレイ12内のメンバーHDDが故障した場合に、当該故障したHDDの内容が復元されるスペアHDDが割り付けられているか否かを判定する(ステップS23)。この例では、ディスクアレイ12に対してスペアHDD120が割り付けられている。この場合、CPU208は、ホスト20からの書き込み要求に含まれている書き込み開始論理アドレス及び転送サイズで指定される書き込み対象領域に対応するストライプ(以下、書き込み対象ストライプpと呼ぶ)について、故障HDD120-1のデータをスペアHDD120に復元済みであるか否かを判定する(ステップS24)。この判定は、故障HDD復元管理テーブルTBL2内の、ストライプpに対応するエントリ(つまりエントリp)を参照することで行われる。
もし、ストライプpに対応する故障HDD120-1内のデータの復元が未完了であるならば、ホスト20からの書き込み要求で指定されたデータの書き込みを実行する前に、以下に述べるデータ復元処理を実行する。まずCPU208は、書き込み対象ストライプpに属するデータセットのうちの、上記書き込み対象領域に対応するデータセット(以下、書き込み対象データセットqと呼ぶ)の中から、図7に示すように、故障HDD120-1を除く正常なHDD、即ちHDD120-0,120-2及び120-3に格納されているセクタデータD0,D2,Pを読み出すための制御を行う(ステップS25)。キャッシュコントローラ204は、HDD120-0,120-2及び120-3から読み出されたセクタデータD0,D2,Pを排他的論理和(XOR)演算することにより、書き込み対象ストライプpに属する書き込み対象データセットq内の、故障HDD120-1のデータ(セクタデータ)D1を復元する(ステップS26)。
CPU208は、復元された故障HDD120-1のデータ(セクタデータ)D1を、ストライプpに属するデータセットqに対応するスペアHDD120内の領域(セクタ位置)に書き込むための制御を行う(ステップS27)。これにより、ストライプpに属するデータセットq内の、故障HDD120-1のデータ(セクタデータ)が、スペアHDD120の対応する領域に復元される。この段階で、故障HDD120-1に代えてスペアHDD120をディスクアレイ12の要素として利用するならば、データセットqは、当該データセットq内のデータD0,D1及びD2とパリティデータPとの間で整合性のある、つまり欠陥のない完全なデータセットとなる。
CPU208はステップS27を実行すると、ステップS25でHDD120-0,120-2及び120-3から読み出されたセクタデータのうち、ホスト20からの書き込み要求で指定される更新の対象となるセクタデータが格納されているHDDを除くHDDから読み出されたセクタデータと、ステップS27でスペアHDD120内に復元されたセクタデータと、書き込み要求で指定された書き込みデータ(新データ)とから、新パリティデータを生成する(ステップS28)。
CPU208は、以上のステップS25〜S28を、上記書き込み対象領域に対応する全ての書き込み対象ストライプpを対象に、その書き込み対象ストライプpに属する全ての書き込み対象データセットqについて実行する(ステップS29,S30)。
一方、ディスクアレイ12を構成するHDD120-0〜120-3がいずれも故障していない場合には(ステップS22)、CPU208は、周知の新パリティデータ生成処理(ステップS31,S32)を実行する。同様に、HDD120-0〜120-3のいずれか1つが故障しているにも拘わらずに、ディスクアレイ12に対してスペアHDD120が割り付けられていなくても(ステップS23)、ホスト20からの書き込み要求で指定された書き込み対象領域が故障HDD120-1以外のHDDに存在する場合には(ステップS33)、CPU208は上記新パリティデータ生成処理(ステップS31,S32)を実行する。同様に、HDD120-0〜120-3のいずれか1つが故障していても、ディスクアレイ12に対してスペアHDD120が割り付けられ(ステップS23)、且つホスト20からの書き込み要求で指定された書き込み対象領域に対応する書き込み対象ストライプが復元済みの場合には(ステップS24)、CPU208は上記新パリティデータ生成処理(ステップS31,S32)を実行する。この新パリティデータ生成処理では、まず、ホスト20からの書き込み要求で指定された書き込み対象領域に対応する全ての書き込み対象データセットqについて、当該書き込み対象領域に格納されているデータ(旧データ)と、当該書き込み対象領域に対応するHDD(例えばHDD120-3)内の領域に格納されているパリティデータ(旧パリティデータ)とが読み出される(ステップS31)。そして、ステップS31で読み出された旧データ及び旧パリティデータと、ホスト20からの書き込み要求で指定された新データとの排他的論理和演算により、新パリティデータが生成される(ステップS32)。
CPU208は、書き込み対象領域に対応する全ての書き込み対象データセットqについて新パリティデータが生成されると、NVRAM206に保存されているディスク書き込み管理テーブルTBL1を参照して、フラグフィールド31に設定されているフラグにより無効(空き)であることが示されているエントリ(以下、エントリrと呼ぶ)を探す(ステップS35)。CPU208は、探したディスク書き込み管理テーブルTBL1内のエントリr中のフィールド32、フィールド33及びフィールド34に、それぞれホスト20からの書き込み要求で指定された論理ディスク番号(アレイ番号)、論理アドレス及び転送サイズを示す情報を設定すると共に、当該エントリr中のフィールド31に設定されているフラグを有効を示す状態(01h)に更新する(ステップS36)。
次にCPU208は、ディスク書き込み管理テーブルTBL1のエントリrに設定した情報と当該エントリrを指定する情報とを、通信回路210により信号線15を介して、ディスク制御装置11-1内の通信回路220に送信することにより、テーブルTBL1のエントリrに設定された情報と同一の情報を、当該ディスク制御装置11-1内に設けられたNVRAMに保存されているディスク書き込み管理テーブル(いずれも図示せず)内のエントリrに設定させる(ステップS37)。これにより、ディスク制御装置11-0内のNVRAM206に保存されているディスク書き込み管理テーブルTBL1と、ディスク制御装置11-1内のNVRAMに保存されているディスク書き込み管理テーブルとの一致化が図られる。
次にCPU208は、上記書き込み要求で指定された書き込み対象領域に対応する全ての書き込み対象データセットqについて、当該書き込み要求で指定された新データと、上記生成された新パリティデータとを、当該データセットqのうちの対応するHDD内の領域に書き込むための制御を行う(ステップS38)。CPU208は、この新データ及び新パリティデータの書き込みが完了すると、NVRAM206に保存されているディスク書き込み管理テーブルTBL1内のエントリrのフィールド31に設定されているフラグを無効状態(00h)に変更する(ステップS39)。またCPU208は、ディスク制御装置11-1のディスク書き込み管理テーブル内のエントリrのフィールド31に設定されているフラグを無効状態にすることを、通信回路210を用いて当該ディスク制御装置11-1に要求する(ステップS40)。
これにより、新データ及び新パリティデータの書き込みの途中で停電が発生しても、NVRAM206内のディスク書き込み管理テーブルTBL1の中から、有効を示すフラグが設定されているエントリを検索することで、データとパリティデータとの相関関係が不整合となる可能性のある書き込み途中領域を特定することができる。また、ディスク制御装置11-0内の通信回路210とディスク制御装置11-1内の通信回路220との通信により、ディスク制御装置11-0に設けられたディスク書き込み管理テーブルTBL1とディスク制御装置11-1に設けられたディスク書き込み管理テーブルとの一致化が図られるため、例えばディスク制御装置11-0が故障しても、当該ディスク制御装置11-0に代えてディスク制御装置11-1が当該制御装置11-1内のディスク書き込み管理テーブルを用いて、データとパリティデータとの相関関係が不整合となる可能性のある書き込み途中領域を特定することができる。
また、本実施形態においては、故障したHDD120-1のデータをスペアHDD120に復元する処理(故障HDD復元処理)が完了していない状態で、欠陥のあるデータセットq(つまり復元未完了のデータセットq)への書き込みが発生した場合には、まずスペアHDD120を利用して当該データセットqを復元する処理が行われる。即ち、データセットqの中から、正常なHDD120-0,120-2及び120-3に格納されているデータD0,D2及びパリティデータPが読み出され、それらの排他的論理和演算を行うことで、故障したHDD120-1のデータD1が復元される。この復元されたデータD1を、データセットqに対応するスペアHDD120内の領域に書き込むことにより、当該データセットqは、故障HDD120-1に代えてスペアHDD120を用いるならば、欠陥のない完全なデータセットとなる。即ち本実施形態においては、まだ復元が完了していないデータセットqへの書き込み時には、データを書き込む前に、そのデータセットqについてスペアHDD120へHDD120-1のデータを復元し、一時的に完全なデータセットqとした上でデータを書き込む。このように本実施形態においては、復元が済んでいない欠陥のあるデータセットqへの書き込みが発生した場合に、スペアHDD120を利用して当該データセットqを欠陥のない完全なデータセットqとした後に、当該データセットqへの新データ及び新パリティデータの書き込みを行うことにより、欠陥のあるデータセットqへの書き込みを無くすことができる。このようにすると、データセットqへのデータの書き込み中に停電やディスク制御装置11-0の故障が発生しても、後述するように、故障していない正常なHDDとスペアHDD120とから、当該データセットqにおけるデータとパリティデータとの整合性を修復することができる。
なお、本実施形態では、書き込み対象ストライプpが復元未完了の場合に、当該ストライプpに属するデータセットのうち、書き込み対象領域に対応するデータセットqだけを復元処理(ステップS25〜S27)の対象としている。しかし、書き込み対象ストライプpに属する全データセットを復元処理の対象としても構わない。この場合、故障HDD復元管理テーブルTBL2のエントリpのフラグを復元済みを示す状態とするとよい。
次に、停電等の要因によりディスクアレイ装置10の電源が遮断され、その後、ディスクアレイ装置10の電源が復帰して装置が再起動された際、或いはディスク制御装置11-1が故障してディスク制御装置11-0が処理を引き継ぐ場合に行われる、データとパリティデータとの整合性を修復するための処理(データ整合性修復処理)について、図8のフローチャートを参照して説明する。
まず、ディスク制御装置11-0内のCPU208は、NVRAM206に保存されているディスク書き込み管理テーブルTBL1内の各エントリのフィールド31に設定されているフラグの状態を順次参照することにより、有効なエントリ、つまりディスクアレイ12へのデータ書き込みの途中で当該書き込みが異常終了した書き込み要求に関する情報(書き込み対象領域を特定する情報)が記憶されているエントリを検索する(ステップS41)。もし、目的のエントリが検索できたなら、つまり書き込み途中領域が存在するならば、(ステップS42)、CPU208は、ディスクアレイ12内に故障したHDDが存在するか否かを判定する(ステップS43)。この例のように、故障したHDD(ここではHDD120-1)が存在するならば、CPU208は、ディスクアレイ12にスペアHDD120が割り付けられているか否かを判定する(ステップS44)。もし、ディスクアレイ12にスペアHDD120が割り付けられているならば、上述した図6のフローチャートに従うディスク書き込み処理から明らかなように、書き込み途中のデータセットqに対応する故障HDD120-1のデータは必ずスペアHDD120に復元される。したがって、故障HDD120-1のデータをスペアHDD120に復元するための図5のフローチャートに従う処理の進捗状況に無関係に、欠陥のない完全なデータセットqが形成される。本実施形態では、この完全なデータセットqが形成された状態で当該データセットqへのデータの書き込みが行われる。したがって、このデータセットqへのデータの書き込み途中で、停電等の要因で当該書き込みが異常終了しても、データセットqにおけるデータとパリティデータとの相関関係の整合性を以下に述べる手順で修復できる。
まずCPU208は、ステップS41で検索できたディスク書き込み管理テーブルTBL1内のエントリの情報により特定される書き込み途中領域に対応するデータセットを1つ選択し、そのデータセット(以下、データセットqと称する)の中から、故障したHDD120-1とパリティデータが格納されているHDD120-3とを除くHDD、即ちHDD120-0、HDD120-2及びスペアHDD120にそれぞれ格納されているデータD0,D2及びD1を読み出すための制御を行う(ステップS45)。キャッシュコントローラ204は、読み出されたデータD0,D2及びD1の排他的論理和演算を行うことで、正しいパリティデータPを生成する(ステップS46)。
CPU208は、キャッシュコントローラ204により算出されたパリティデータPを、データセットqに対応するHDD120-3の領域に上書きするための制御を行う(ステップS47)。これにより、データセットqにおけるデータD0,D1及びD2とパリティデータPとの整合性をデータを消失することなく修復できる。
CPU208は、以上のステップS45〜S47を、上記書き込み途中領域に対応する全てのデータセットqについて実行する(ステップS48)。これにより、書き込み途中領域に対応する全てのデータセットqにおけるデータD0,D1及びD2とパリティデータPとの整合性をデータを消失することなく修復できる。そこでCPU208は、ステップS41で検索されたディスク書き込み管理テーブルTBL1内のエントリのフィールド31に設定されているフラグを、無効を示す状態(00h)に変更する(ステップS49)。
CPU208は、上述した一連の処理(ステップS41〜S49)を、ディスク書き込み管理テーブルTBL1から未処理の有効なエントリが検索されなくなるまで(ステップS42)、つまり全ての書き込み途中領域について、当該書き込み途中領域に対応する全てのデータセットにおけるデータとパリティデータとの整合性を修復し終えるまで、繰り返す。
なお、本実施形態とは異なって、ディスクアレイ12内に故障したHDDが存在しない場合には(ステップS43)、書き込み途中領域に対応する全てのデータセットに関し、ディスクアレイ12を構成するHDD120-0〜120-3のうち、パリティデータが記憶されているHDDを除く他のHDDだけを用いて、データとパリティデータとの整合性を修復することができる。この場合、CPU208は、ディスクアレイ12にスペアHDD120が割り付けられているか否かを判定する処理(ステップS44)を行わずに、上記ステップS45に進む。
また、ディスクアレイ12内に故障したHDD(HDD120-1)が存在しているにも拘わらずに、ディスクアレイ12にスペアHDD120が割り付けられていない場合には、欠陥のあるデータセットに対してデータ書き込みが行われることになる。この欠陥のあるデータセットに対する書き込みの途中で当該書き込みが異常終了した場合、当該データセットにおけるデータとパリティデータとの整合性を修復することは不可能である。そこで、故障したHDDが存在しているにも拘わらずに、ディスクアレイ12にスペアHDD120が割り付けられていない場合には(ステップS43,S44)、CPU208は、ディスクアレイ12をホスト20からアクセスできない状態(いわゆる閉塞状態)にする(ステップS50)。そしてCPU208は、ディスクアレイ12の領域に対応するディスク書き込み管理テーブルTBL1の全エントリを対象に、フィールド31に設定されているフラグを無効を示す状態(00h)に変更する(ステップS51)。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係るディスクアレイ装置の構成を示すブロック図。 同実施形態において適用されるRAIDに関係する用語を説明するための図。 図1中のNVRAM206に保存されるディスク書き込み管理テーブルTBL1のデータ構造例を示す図。 図1中のNVRAM206に保存される故障HDD復元管理テーブルTBL2のデータ構造例を示す図。 同実施形態におけるスペアHDD120を利用した故障HDD復元処理の手順を示すフローチャート。 同実施形態におけるディスク書き込み処理の手順を示すフローチャート。 同実施形態におけるデータセット復元を説明するための図。 同実施形態におけるデータ整合性修復処理の手順を示すフローチャート。
符号の説明
10…ディスクアレイ装置、11-0,11-1…ディスク制御装置、12…ディスクアレイ、20…ホスト、120-0〜120-3…HDD(ディスクドライブ)、120…スペアHDD(スペアディスクドライブ)、203…キャッシュメモリ、204…キャッシュコントローラ、206…NVRAM(不揮発性メモリ)、208…CPU、210,220…通信回路、TBL1…ディスク書き込み管理テーブル(書き込み領域情報記憶手段)、TBL2…故障HDD復元管理テーブル(復元管理情報記憶手段)。

Claims (10)

  1. 少なくとも3台のディスクドライブにより構成されるディスクアレイであって、データ及び当該データに対応する冗長データを格納する少なくとも1つのデータセットを含むストライプを単位に管理されるディスクアレイと、
    前記ディスクアレイを制御するディスク制御装置とを具備し、
    前記ディスク制御装置は、
    前記ディスクアレイを構成するディスクドライブの1つが故障している状態で、外部から与えられた書き込み要求に従って、当該ディスクアレイに割り付けられたスペアディスクドライブへのデータ復元が完了していないデータセットを書き込み対象とするデータ書き込みを行う場合に、当該ディスクアレイ内の故障したディスクドライブを除く正常なディスクドライブから、当該書き込み対象データセットにおける故障したディスクドライブのデータを復元する部分復元手段と、
    前記部分復元手段により復元されたデータを、前記スペアディスクドライブの前記書き込み対象データセットに対応する領域に書き込む手段と、
    前記部分復元手段により復元されたデータが前記スペアディスクドライブの前記書き込み対象データセットに対応する領域に書き込まれた後に、当該スペアディスクドライブを含む正常なディスクドライブの当該書き込み対象データセットに対応する領域へのデータ書き込みを実行する手段と、
    前記書き込み要求で指定されたデータ書き込みが開始される時点から当該書き込みが完了するまで、書き込みの対象となる書き込み領域を特定する書き込み領域情報を記憶する不揮発性の書き込み領域情報記憶手段と、
    データ書き込みが異常終了した後の起動時に、前記書き込み領域情報記憶手段に記憶されている書き込み領域情報によって示される書き込み領域を書き込み途中領域として特定する手段と、
    前記特定手段により特定された書き込み途中領域に対応する全データセットを対象に、データ及び冗長データの整合性を修復する手段とを備えている
    ことを特徴とするディスクアレイ装置。
  2. 前記ディスク制御装置は、
    前記書き込み要求で指定されたデータ書き込みが開始される際に、書き込みの対象となる書き込み領域を特定する書き込み領域情報を前記書き込み領域情報記憶手段に記憶する手段と、
    前記書き込み領域への書き込みが完了した際に当該書き込み領域を特定する、前記書き込み領域情報記憶手段内の書き込み領域情報を無効化する手段と
    を更に備えることを特徴とする請求項1記載のディスクアレイ装置。
  3. 前記ディスク制御装置は2重化されており、当該2重化されたディスク制御装置は、当該2重化されたディスク制御装置間で、前記書き込み領域情報記憶手段の内容を一致化させるための通信を行う通信手段をそれぞれ備えていることを特徴とする請求項2記載のディスクアレイ装置。
  4. 前記ディスク制御装置内の通信手段は、前記書き込み領域情報記憶手段に書き込み領域情報が記憶される際には、他方のディスク制御装置内の通信手段との間の通信により、当該他方のディスク制御装置内の前記書き込み領域情報記憶手段に同一の書き込み領域情報を記憶させ、前記書き込み領域情報記憶手段内の書き込み領域情報が無効化される際には、当該他方のディスク制御装置内の通信手段との間の通信により、当該他方のディスク制御装置の前記書き込み領域情報記憶手段内の対応する書き込み領域情報を無効化させることを特徴とする請求項3記載のディスクアレイ装置。
  5. 前記ディスク制御装置は、
    前記ディスクアレイを構成するディスクドライブの1つが故障した場合に、故障したディスクドライブのデータを、当該故障したディスクドライブを除く前記ディスクアレイ内の正常なディスクドライブから前記スペアディスクドライブに復元する全復元手段と、
    故障したディスクドライブのデータの復元の状況を示す復元管理情報を記憶する不揮発性の復元管理情報記憶手段と、
    前記部分復元手段によるデータ復元が必要か否かを前記復元管理情報記憶手段に記憶されている復元管理情報をもとに判定する手段と
    を更に備えることを特徴とする請求項2記載のディスクアレイ装置。
  6. 前記ディスク制御装置は2重化されており、当該2重化されたディスク制御装置は、当該2重化されたディスク制御装置間で、前記書き込み領域情報記憶手段の内容及び前記復元管理情報記憶手段の内容をそれぞれ一致化させるための通信を行う通信手段をそれぞれ備えていることを特徴とする請求項5記載のディスクアレイ装置。
  7. 前記ディスク制御装置内の通信手段は、前記書き込み領域情報記憶手段に書き込み領域情報が記憶される際には、他方のディスク制御装置内の通信手段との間の通信により、当該他方のディスク制御装置内の前記書き込み領域情報記憶手段に同一の書き込み領域情報を記憶させ、前記書き込み領域情報記憶手段内の書き込み領域情報が無効化される際には、当該他方のディスク制御装置内の通信手段との間の通信により、当該他方のディスク制御装置の前記書き込み領域情報記憶手段内の対応する書き込み領域情報を無効化させ、前記復元管理情報記憶手段にデータ復元済みを示す復元管理情報が記憶される際には、当該他方のディスク制御装置内の通信手段との間の通信により、当該他方のディスク制御装置の前記復元管理情報記憶手段に同一の復元管理情報を記憶させることを特徴とする請求項6記載のディスクアレイ装置。
  8. 前記ディスク制御装置に備えられる前記復元管理情報記憶手段は、前記全復元手段によりストライプ単位で前記スペアディスクドライブにデータが復元される都度、復元済みを示す復元管理情報を記憶し
    前記ディスク制御装置内の通信手段は、前記復元管理情報記憶手段に復元済みを示す復元管理情報が記憶される際には、他方のディスク制御装置内の通信手段との間の通信により、当該他方のディスク制御装置内の前記復元管理情報記憶手段に同一の復元管理情報を記憶させる
    ことを特徴とする請求項7記載のディスクアレイ装置。
  9. 少なくとも3台のディスクドライブにより構成されるディスクアレイであって、データ及び当該データに対応する冗長データを格納する少なくとも1つのデータセットを含むストライプを単位に管理されるディスクアレイを制御するディスク制御装置において、
    前記ディスクアレイを構成するディスクドライブの1つが故障している状態で、外部から与えられた書き込み要求に従って、当該ディスクアレイに割り付けられたスペアディスクドライブへのデータ復元が完了していないデータセットを書き込み対象とするデータ書き込みを行う場合に、当該ディスクアレイ内の故障したディスクドライブを除く正常なディスクドライブから、当該書き込み対象データセットにおける故障したディスクドライブのデータを復元する部分復元手段と、
    前記部分復元手段により復元されたデータを、前記スペアディスクドライブの前記書き込み対象データセットに対応する領域に書き込む手段と、
    前記部分復元手段により復元されたデータが前記スペアディスクドライブの前記書き込み対象データセットに対応する領域に書き込まれた後に、当該スペアディスクドライブを含む正常なディスクドライブの当該書き込み対象データセットに対応する領域へのデータ書き込みを実行する手段と、
    前記書き込み要求で指定されたデータ書き込みが開始される時点から当該書き込みが完了するまで、書き込みの対象となる書き込み領域を特定する書き込み領域情報を記憶する不揮発性の書き込み領域情報記憶手段と、
    データ書き込みが異常終了した後の起動時に、前記書き込み領域情報記憶手段に記憶されている書き込み領域情報によって示される書き込み領域を書き込み途中領域として特定する手段と、
    前記特定手段により特定された書き込み途中領域に対応する全データセットを対象に、データ及び冗長データの整合性を修復する手段と
    を具備することを特徴とするディスク制御装置。
  10. データ及び当該データに対応する冗長データを格納する少なくとも1つのデータセットを含むストライプを単位に管理され、少なくとも3台のディスクドライブにより構成されるディスクアレイを備えたディスクアレイ装置において、ディスクアレイのデータ障害を復旧する方法であって、
    前記ディスクアレイを構成するディスクドライブの1つが故障している状態で、外部から与えられた書き込み要求に従って、当該ディスクアレイに割り付けられたスペアディスクドライブへのデータ復元が完了していないデータセットを書き込み対象とするデータ書き込みを行う場合に、当該ディスクアレイ内の故障したディスクドライブを除く正常なディスクドライブから、当該書き込み対象データセットにおける故障したディスクドライブのデータを復元するステップと、
    復元されたデータを、前記スペアディスクドライブの前記書き込み対象データセットに対応する領域に書き込むステップと、
    復元されたデータが前記スペアディスクドライブの前記書き込み対象データセットに対応する領域に書き込まれた後に、当該スペアディスクドライブを含む正常なディスクドライブの当該書き込み対象データセットに対応する領域へのデータ書き込みを実行するステップと、
    前記書き込み要求で指定されたデータ書き込みが開始される際に、書き込みの対象となる書き込み領域を特定する書き込み領域情報を不揮発性の書き込み領域情報記憶手段に記憶するステップと、
    前記書き込み領域への書き込みが完了した際に当該書き込み領域を特定する、前記書き込み領域情報記憶手段内の書き込み領域情報を無効化するステップと、
    データ書き込みが異常終了した後の起動時に、前記書き込み領域情報記憶手段に記憶されている書き込み領域情報によって示される書き込み領域を書き込み途中領域として特定するステップと、
    特定された書き込み途中領域に対応する全データセットを対象に、データ及び冗長データの整合性を修復するステップと
    を具備することを特徴とするディスクアレイのデータ障害を復旧する方法。
JP2003308823A 2003-09-01 2003-09-01 ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法 Expired - Lifetime JP3790756B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003308823A JP3790756B2 (ja) 2003-09-01 2003-09-01 ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003308823A JP3790756B2 (ja) 2003-09-01 2003-09-01 ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法

Publications (2)

Publication Number Publication Date
JP2005078430A JP2005078430A (ja) 2005-03-24
JP3790756B2 true JP3790756B2 (ja) 2006-06-28

Family

ID=34411179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003308823A Expired - Lifetime JP3790756B2 (ja) 2003-09-01 2003-09-01 ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法

Country Status (1)

Country Link
JP (1) JP3790756B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169572A1 (en) * 2008-07-22 2010-07-01 Lsi Corporation Data storage method, apparatus and system for interrupted write recovery
WO2012053085A1 (ja) 2010-10-21 2012-04-26 富士通株式会社 ストレージ制御装置およびストレージ制御方法
JP5475085B1 (ja) * 2012-10-24 2014-04-16 日本電信電話株式会社 データ整合装置、データ整合方法およびデータ整合プログラム
JP6233086B2 (ja) 2014-02-20 2017-11-22 富士通株式会社 ストレージ制御装置,ストレージシステム及び制御プログラム
CN116009786A (zh) * 2022-12-30 2023-04-25 超聚变数字技术有限公司 提升镜像冗余磁盘阵列raid5写性能的方法及设备

Also Published As

Publication number Publication date
JP2005078430A (ja) 2005-03-24

Similar Documents

Publication Publication Date Title
US6990611B2 (en) Recovering data from arrays of storage devices after certain failures
JP3682256B2 (ja) ディスクアレイ装置及び同装置におけるパリティ処理方法
JP2603757B2 (ja) アレ−ディスク装置の制御方法
US6728898B2 (en) Producing a mirrored copy using incremental-divergence
JP3058743B2 (ja) ディスクアレイ制御装置
US7277997B2 (en) Data consistency for mirroring updatable source data storage
US6606683B2 (en) Information recording apparatus and control method thereof
US6816981B2 (en) Disk array device including a memory with backup power supply and method thereof
JP3435400B2 (ja) ディスクアレイ装置におけるデータ修復方法及びディスクアレイコントローラ
JP2002169729A (ja) 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP2002149499A (ja) データの完全性を備えるリモートコピーシステム
JP3790756B2 (ja) ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法
JP4248164B2 (ja) ディスクアレイのエラー回復方法、ディスクアレイ制御装置及びディスクアレイ装置
JP2001043031A (ja) 分散パリティ生成機能を備えたディスクアレイ制御装置
US6854038B2 (en) Global status journaling in NVS
JP2868001B1 (ja) ディスクアレイ装置制御方法およびディスクアレイ装置
JP2003303057A (ja) ディスクアレイ装置におけるデータ修復方法及びディスクアレイコントローラ
US5878202A (en) I/O device having check recovery function
JPH07306758A (ja) ディスクアレイ装置及びその制御方法
JP3798773B2 (ja) ディスク制御装置及び冗長化論理ディスクドライブの一貫性回復方法
JP3590015B2 (ja) ディスクアレイ装置および冗長データをもつ論理ドライブの一貫性回復方法
JP3620110B2 (ja) ファイル記憶装置
JP3120039B2 (ja) チェックリカバリ機能を備えた入出力制御方法、及びチェックリカバリ機能を備えた入出力制御装置
JP3178913B2 (ja) 半導体ファイル装置
JPH09282105A (ja) ディスク記憶システム及びその誤り訂正データ作成処理の回復方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060308

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: 20060328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060403

R151 Written notification of patent or utility model registration

Ref document number: 3790756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110407

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130407

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140407

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term