JP2006259894A - ストレージ制御装置および方法 - Google Patents

ストレージ制御装置および方法 Download PDF

Info

Publication number
JP2006259894A
JP2006259894A JP2005073669A JP2005073669A JP2006259894A JP 2006259894 A JP2006259894 A JP 2006259894A JP 2005073669 A JP2005073669 A JP 2005073669A JP 2005073669 A JP2005073669 A JP 2005073669A JP 2006259894 A JP2006259894 A JP 2006259894A
Authority
JP
Japan
Prior art keywords
storage device
disk
information
storage
restoration
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.)
Granted
Application number
JP2005073669A
Other languages
English (en)
Other versions
JP4754852B2 (ja
Inventor
Shinya Mochizuki
信哉 望月
Mikio Ito
実希夫 伊藤
Hidejiro Ookurotani
秀治郎 大黒谷
Kazuhiko Ikeuchi
和彦 池内
秀夫 ▲高▼橋
Hideo Takahashi
Yoshihito Konta
與志仁 紺田
Yasutake Sato
靖丈 佐藤
Hiroaki Ochi
弘昭 越智
Tsukasa Makino
司 牧野
Norihide Kubota
典秀 久保田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005073669A priority Critical patent/JP4754852B2/ja
Priority to EP05254323A priority patent/EP1703397A3/en
Priority to CNB2005100854173A priority patent/CN100392611C/zh
Priority to KR1020050065647A priority patent/KR100701563B1/ko
Priority to US11/237,657 priority patent/US7809979B2/en
Publication of JP2006259894A publication Critical patent/JP2006259894A/ja
Application granted granted Critical
Publication of JP4754852B2 publication Critical patent/JP4754852B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1035Keeping track, i.e. keeping track of data and parity changes

Abstract

【課題】 パリティを用いてデータの冗長化を行うストレージ装置において、データ/パリティを格納する2つの記憶装置が故障したときの再構築処理を改善して、効率よく冗長性を回復する。
【解決手段】 故障ディスク#0のデータ/パリティの復元中にディスク#1が故障したとき、既に復元されて予備ディスクHS#0に書き込まれているデータ/パリティを破棄せずに、他の正常ディスクに格納されたデータ/パリティを用いて、ディスク#0の未復元領域とディスク#1のデータ/パリティを復元し、HS#0の対応する領域とHS#1にそれぞれ書き込む。
【選択図】図4

Description

本発明は、RAID(Redundant Array of Inexpensive Disks)のような複数の記憶装置にデータおよびパリティを分散して格納し、記憶装置の故障時にデータおよびパリティの再構築(Rebuild )処理を行うストレージ制御装置および方法に関する。
RAIDは、複数のハードディスクを組み合わせて、冗長化された1台のハードディスクとして管理する技術であり、ディスクへのデータ配置やデータの冗長化の方法により、RAID0〜RAID6の7つのレベルに分類されている。このうち、RAID3〜RAID6では、データから生成されたパリティをデータとは別に格納することで、冗長化を実現している。ディスク故障時には、このパリティを用いて故障したディスクのデータを復元する再構築処理が行われる(例えば、特許文献1参照)。
RAID6は2つのディスクの故障に対応したRAIDレベルである。RAID6では、異なる2種類のパリティPとQがそれぞれが異なるディスクに分散して格納され、1つのディスクが故障したとき(1ディスク故障)の再構築処理と2つのディスクが故障したとき(2ディスク故障)の再構築処理では、復元方法が異なる。
例えば、図23に示すように、ディスク10〜14の5つのディスクからなるRAID装置において、ディスク10が故障してデータD0が失われた場合、予備ディスクであるホットスペア15を用いて1ディスク故障の再構築処理が行われる。そして、他のディスク11〜13に格納されたデータD1、D2、およびパリティPからデータD0が復元される。
これに対して、図24に示すように、ディスク10および11が故障してデータD0およびD1が失われた場合、ホットスペア15および16を用いて2ディスク故障の再構築処理が行われる。そして、他のディスク12〜14に格納されたデータD2およびパリティP、QからデータD0およびD1が復元される。
一般に、RAID6ではデータおよびパリティを担当するディスクがストライプ毎に異なるため、故障ディスクに格納された情報およびその復元に必要となる情報の種類もストライプ毎に異なってくる。そこで、以下の説明では、各ディスクに格納された情報をデータ/パリティと記すことにする。
1ディスク故障から2ディスク故障になった場合、再構築処理も1ディスク故障の処理から2ディスク故障の処理へ切り替えて行う必要がある。例えば、図25に示すように、最初に故障したディスク#0をホットスペア(HS)と入れ替えて1ディスク故障の再構築処理を実行している間に、2番目のディスク#1が故障した場合、1ディスク故障の再構築処理ではデータ/パリティの復元ができなくなる。そこで、1ディスク故障の再構築処理を中止し、HS#0およびHS#1を対象に2ディスク故障の再構築処理を開始することが想定される。
特開平03−240123号公報
上述した2ディスク故障の再構築方法には、次のような問題がある。
図25に示した2ディスク故障の再構築処理では、HS#0の再構築済み領域へ既に格納された復元データ/パリティが破棄され、再び最初から再構築が実施されることになるため、復元データ/パリティが有効活用されない。
また、1ディスク故障の再構築処理に比べて、より大きな処理コストを要する2ディスク故障の再構築処理を、HS#0およびHS#1の全領域に対して実施するため、冗長性の回復までに多くの時間がかかる。
本発明の課題は、パリティを用いてデータの冗長化を行うRAIDのようなストレージ装置において、データ/パリティを格納する2つの記憶装置が故障したときの再構築処理を改善して、効率よく冗長性を回復することである。
図1は、本発明のストレージ制御装置の原理図である。図1のストレージ制御装置101は、再構築手段111および112を備え、複数の記憶装置102−1〜102−Nにデータおよびパリティを分散して格納する制御を行うことで、データの冗長化を実現する。
再構築手段111は、記憶装置102−1が故障したとき、それ以外の記憶装置に格納された情報を用いて記憶装置102−1の情報を復元し、予備記憶装置103−1に書き込む。再構築手段112は、記憶装置102−1の情報を復元している間に記憶装置102−2が故障したとき、記憶装置102−1および102−2以外の記憶装置に格納された情報を用いて記憶装置102−1の未復元領域の情報と記憶装置102−2の情報を復元し、予備記憶装置103−1の対応する領域と予備記憶装置103−2にそれぞれ書き込む。
各記憶装置には、データまたはパリティが情報として格納されている。故障した記憶装置の情報は、その時点で故障していない正常な記憶装置に格納された情報を用いて復元され、対応する予備記憶装置に書き込まれる。記憶装置102−1の情報を復元している間に記憶装置102−2が故障したとき、記憶装置102−1の復元済み領域の情報はそのまま予備記憶装置103−1内に保存され、記憶装置102−1の未復元領域と記憶装置102−2の全領域を対象として復元処理が行われる。
このような再構築制御によれば、1ディスク故障から2ディスク故障になったとき、既に復元されている情報が消去されずに有効利用される。また、記憶装置102−1の復元済み領域は復元対象から除外されるため、再構築処理に要する時間が削減される。さらに、記憶装置102−1の復元済み領域に対応する記憶装置102−2の領域については、処理コストの小さな1ディスク故障の再構築処理を適用できるため、さらなる効率化が可能である。
ストレージ制御装置101は、例えば、後述する図2のコントローラ211、図21のホストバスアダプタ1911、または図22のホスト装置2001に対応する。
本発明によれば、複数の記憶装置にデータおよびパリティを分散して格納するストレージ装置において、2つの記憶装置が故障したときの再構築処理が改善され、データの冗長性が効率よく回復する。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
図2は、実施形態のストレージシステムの構成例を示している。図2のストレージシステムは、ホスト装置201およびRAID装置202からなり、RAID装置202は、コントローラ211およびDisk#0〜Disk#3の4つのディスクを備えるストレージ装置に対応する。
各ディスクは、1つ以上の磁気ディスク装置からなり、ホスト装置201は、各ディスクを1つの記憶装置とみなしてデータのリード/ライトを行う。ただし、コントローラ211に接続されるディスクの数は4つに限られるわけではなく、一般にはより多くのディスクが接続される。
コントローラ211は、プロセッサ221、メモリ222、およびキャッシュメモリ223を備え、Disk#0〜Disk#3の故障時の再構築処理を行う。プロセッサ221は、メモリ222に格納されたプログラムを実行することにより、キャッシュメモリ223をデータバッファとして利用しながら再構築処理を行う。
本実施形態においては、2ディスク故障の再構築処理を改善するために、図3に示す改善案1〜6を採用する。まず、図4から図8までを参照しながら、各改善案の概要について説明する。
1.個別実行案(改善案1)
コントローラ211は、1番目のディスクの再構築と2番目のディスクの再構築を独立に行う。特に、両方のディスクの故障部分に対応する二重故障部分の再構築処理では、2つのディスクのデータ/パリティをデータバッファ上で復元しながら、一方のディスクの復元データ/パリティのみをディスクにライトし、もう一方のディスクの復元データ/パリティはライトせずに破棄する。
例えば、図4に示すように、最初にディスク#0が故障し、HS#0を用いてディスク#0のデータ/パリティを復元している間にディスク#1が故障した場合について説明する。この場合、ディスク#1が故障するまでの間は、正常なディスク#1〜#3のデータ/パリティを用いて1ディスク故障の再構築処理によりディスク#0のデータ/パリティが復元される。
ディスク#1が故障すると、HS#0については、再構築済み領域のデータ/パリティを破棄せずにそのまま保持し、残りの部分のデータ/パリティのみを2ディスク故障の再構築処理により復元する。この処理では、正常なディスク#2〜#3のデータ/パリティを用いてHS#0の残りの部分のデータ/パリティが復元される。このとき、ディスク#1のデータ/パリティも同時に生成されるが、ディスク#1の再構築処理は別途独立に行われるため、生成されたデータ/パリティは破棄される。
HS#1については、HS#0の再構築処理と並行して、正常なディスク#2〜#3のデータ/パリティを用いて2ディスク故障の再構築処理により全体のデータ/パリティを復元する。このとき、2ディスク故障の再構築処理により同時に生成されるディスク#0のデータ/パリティは破棄される。
このような再構築処理によれば、ディスク#1が故障したときに、ディスク#0の再構築処理が、復元対象のディスクのみが故障している1ディスク故障の再構築処理から、復元対象以外にも故障ディスクが存在する2ディスク故障の再構築処理に切り替えられ、復元済み領域のデータ/パリティはそのまま保持される。したがって、図25に示したように復元済み領域のデータ/パリティを再度復元し直す必要がなく、図25の再構築処理よりも早くディスク#0の復元が完了する。
2.同じ進捗位置になるまで待つ案(改善案2)
コントローラ211は、2番目のディスクの故障時に、1番目のディスクの再構築処理を一旦停止し、2番目のディスクのみを1番目と同じ進捗位置になるまで再構築する。そして、同じ進捗位置になったら、それ以降は両方同時に再構築する。
例えば、図5に示すように、最初にディスク#0が故障し、HS#0を用いてディスク#0のデータ/パリティを復元している間にディスク#1が故障した場合について説明する。ディスク#1が故障するまでの動作は、図4の場合と同様である。
ディスク#1が故障すると、最初に、HS#0の再構築済み領域に対応するHS#1のデータ/パリティのみを、HS#0の再構築済み領域のデータ/パリティと正常なディスク#2〜#3のデータ/パリティを用いて1ディスク故障の再構築処理により復元する。そして、その部分のデータ/パリティが復元されたら、次に、HS#0およびHS#1の残りの部分のデータ/パリティを、正常なディスク#2〜#3のデータ/パリティを用いて2ディスク故障の再構築処理により同時に復元する。
このような再構築処理によれば、改善案1と同様の利点に加えて、復元中のディスク#0の復元済み領域のデータ/パリティを他のディスク#1の復元に有効利用することができ、ディスク#1の再構築処理が効率化される。
3.混在案(改善案3)
改善案1と改善案2の混在案である。コントローラ211は、処理中に2つのディスクHS#0およびHS#1の再構築進捗位置をモニタしながら、復元方法を選択する。具体的には、進捗位置の差をチェックし、その差が所定の閾値以上であれば改善案1を適用して、HS#0の再構築を優先させ、差が閾値未満であれば改善案2を適用して、互いの進捗位置が同じとなるまでHS#1の再構築を行う。進捗位置の差のチェックは、所定単位のデータ/パリティを復元する度に毎回行うか、あるいは一定範囲のデータ/パリティを復元する度に行う。
改善案2を適用した場合、HS#0およびHS#1の進捗位置の差は、冗長性が失われている二重故障部分の復元開始を待ち合わせる時間に対応し、進捗位置の差が大きいほど冗長性の回復は遅れることになる。そこで、待ち合わせ時間が一定時間以上となる場合は、それを避けるために改善案1を適用して、HS#0およびHS#1の再構築処理を並行して行う。
ただし、改善案1とは異なり、HS#1の二重故障部分以外のデータ/パリティは、HS#0の再構築済み領域のデータ/パリティと正常なディスク#2〜#3のデータ/パリティを用いて1ディスク故障の再構築処理により復元する。一般に、1ディスク故障の再構築処理に比べて、2ディスク故障の再構築処理の方が多くの計算量が必要となる。このため、先行しているHS#0の2ディスク故障の再構築処理より、HS#1の1ディスク故障の再構築処理の方が早く進行し、時間と共に進捗位置の差が縮まってくる可能性が高い。
このような再構築処理によれば、改善案2と同様の利点に加えて、待ち合わせによる冗長性回復の遅れを回避することができる。また、並行処理によりプロセッサ資源等が有効利用されることも期待できる。
4.二重故障部分を先に復元する案(改善案4)
コントローラ211は、2番目のディスクの故障時に、1番目のディスクの現在の進捗位置を復元完了位置(後述する停止位置)として保存し、その位置から両方同時の再構築を行う。そして、両方同時の再構築が最後まで終了したら、2番目のディスクの未済領域復旧のため、2番目のディスクの最初から復元完了位置までの再構築を行う。
例えば、図6に示すように、最初にディスク#0が故障し、HS#0を用いてディスク#0のデータ/パリティを復元している間にディスク#1が故障した場合について説明する。ディスク#1が故障するまでの動作は、図4の場合と同様である。
ディスク#1が故障すると、最初に、HS#0の再構築未済領域に対応するHS#0およびHS#1のデータ/パリティを、正常なディスク#2〜#3のデータ/パリティを用いて2ディスク故障の再構築処理により同時に復元する。そして、その部分のデータ/パリティが復元されたら、次に、HS#1の残りの部分のデータ/パリティを、HS#0の再構築済み領域のデータ/パリティと正常なディスク#2〜#3のデータ/パリティを用いて1ディスク故障の再構築処理により復元する。
再構築処理中にRAID6の通常のリード/ライトアクセスがあったときは、アクセス対象データの再構築済み/未済をチェックするか、あるいは、リード要求に対してデータを再構築しながら返すというように、通常のリード/ライトアクセスをすべて縮退動作にする。
このような再構築処理によれば、改善案2と同様の利点に加えて、二重故障部分のデータ/パリティを先に復元することで、RAIDグループとしての冗長性を短時間で回復することが可能になる。
5.二重故障復元と復元済みHSを用いた復元を並行して実施する案(改善案5)
コントローラ211は、改善案4において後で実施していた2番目のディスクの最初から復元完了位置までの再構築処理を、二重故障部分の再構築処理を待ち合わせずに並行して実施する。
例えば、図7に示すように、最初にディスク#0が故障し、HS#0を用いてディスク#0のデータ/パリティを復元している間にディスク#1が故障した場合について説明する。ディスク#1が故障するまでの動作は、図4の場合と同様である。
ディスク#1が故障すると、HS#0およびHS#1の二重故障部分のデータ/パリティを、正常なディスク#2〜#3のデータ/パリティを用いて2ディスク故障の再構築処理により復元する処理と、HS#1の残りの部分のデータ/パリティを、HS#0の再構築済み領域のデータ/パリティと正常なディスク#2〜#3のデータ/パリティを用いて1ディスク故障の再構築処理により復元する処理とを、並行して実施する。
再構築処理中に通常のリード/ライトアクセスがあったときは、改善案4の場合と同様に、アクセス対象データの再構築済み/未済をチェックするか、あるいは縮退動作を行う。
このような再構築処理によれば、RAIDグループとしての冗長性の回復は改善案4より遅くなるが、冗長性が失われた二重故障部分と冗長性が残っている他の部分の復元処理が並行して行われるため、全体の復元に要する時間が短縮される。
6.ランダム案(改善案6)
コントローラ211は、キャッシュメモリ223上のビットマップを用いて、ディスクの所定領域毎に再構築動作を行う。再構築順序としては、上記改善案1〜5のいずれかを採用する。基本的には、データ/パリティの保全の観点から改善案4の順序を採用することが望ましいが、他の改善案の順序でも動作可能である。
また、通常のリード/ライトアクセスの延長で再構築動作が行われたときも、ビットマップには再構築済みと記録する。このため、リード/ライトアクセスとは無関係のシーケンシャルな再構築と、リード/ライトアクセスの延長で行われるワンポイント再構築の2種類の処理を併用して、再構築処理が行われる。ワンポイント再構築では、リード要求に対してデータを復元した場合、コントローラ211は復元データをディスクの対応位置にライトする。
コントローラ211は、再構築対象のディスク毎に、例えば、1ストライプを1ビットに対応付けたビットマップを用意して、進捗状況を管理する。もし、ビットマップが失われた場合は、最初から再構築を開始する。1つの論理ブロックを1ビットに対応付けたビットマップを用いてもよい。
また、最初にビットマップ用のメモリ領域が獲得できなかった場合、コントローラ211は以下のいずれかの動作を行う。
・上述の別の改善案で再構築を実行する。
・ビットマップのサイズに上限を設定しておき、これを超えたビットマップを必要とする場合、再構築は資源の獲得を待ってから行う。
コントローラ211は、再構築動作を並行して行うことが可能であり、電源オフ/オンを考慮して、ビットマップのバックアップ/リストアの機能も有する。コントローラ211が冗長化(二重化)されている場合、ビットマップもコントローラ間で二重化することが基本であるが、二重化しなくてもデータロストに繋がることはない。上述したように、ビットマップが失われた場合は再構築が再始動される。
例えば、図8に示すように、最初にディスク#0が故障し、HS#0を用いてディスク#0のデータ/パリティを復元している間にディスク#1が故障した場合について説明する。
コントローラ211は、HS#0およびHS#1のそれぞれに対してビットマップを生成し、各ストライプを1ビットのデータで管理する。再構築未済のストライプについては対応するビットに“1”が記録され、再構築済みのストライプについては“0”が記録される。HS#0の再構築済み領域の全ストライプについては、ディスク#1が故障した時点で“0”が記録されており、残りのストライプについては再構築が行われたときに“0”が記録される。
このような再構築処理によれば、改善案1〜5と同様の利点に加えて、ワンポイント再構築により復元されたデータ/パリティをディスクに書き戻して復元済み領域として扱うことで、処理が効率化される。
次に、図9から図19までを参照しながら、上述した各改善案の詳細について説明する。
各改善案の再構築処理は、ディスクの故障を契機として起動されるか、または他の再構築処理により起動される。コントローラ211は、契機となったディスクを担当Mainに指定し、必要に応じて他の故障ディスクを担当Subとして追加する。再構築処理では、図9に示すように、担当Mainと担当Subで共通となる現在位置について、復元処理が行われる。ここで、現在位置とは、現在、復元処理が実施されている場所を表す。
また、コントローラ211は、RAID装置202を構成する全ディスクの情報を、すべての改善案に共通の制御情報としてキャッシュメモリ223に保持する。具体的には、図10に示すように、各ディスクについて、復元状態(復元済み、復元中、および未復元)、復元先頭位置、および停止位置(必要であれば)の情報が保持される。ただし、正常ディスクについては、すべての領域が復元済みに設定される。
故障ディスクの復元先頭位置は、そのディスクを担当Mainとして実施されている復元処理の現在位置と一致し、復元処理が未実施の場合はそのディスクの端(図9の下端)に設定される。復元処理は、復元先頭位置から上へ向かう方向に進行する。停止位置は、復元処理を停止すべき場所を表す。
復元状態は、ストリップ、論理ブロック等の単位領域毎に管理され、現在位置、復元先頭位置、および停止位置等の位置情報は、その単位領域のアドレスまたはその単位領域が属するストライプの識別子を用いて管理される。
図11は、再構築処理のフローチャートである。コントローラ211は、まず、担当Mainの端(図9の下端)をそのディスクの現在位置として設定し(ステップ1101)、復元ルーチンを実行して復元処理を行う(ステップ1102)。この復元処理では、復元対象ディスクの復元対象となるデータ/パリティが他のディスクのデータ/パリティを用いて生成され、対応するホットスペアにライトされる。1回の復元処理では、論理ブロック、ストライプ等の所定単位のデータ/パリティが復元されるが、一般的には、ストライプが所定単位として用いられる。
次に、再構築制御のための復元後処理を行う(ステップ1103)。この復元後処理では、復元先頭位置の設定や復元処理を終了するか否かの判定等が行われる。その後、復元後処理において復元処理終了と判定されたか否かをチェックする(ステップ1104)。復元処理終了と判定されなければ、現在位置を1ストライプだけ進めて(ステップ1105)、ステップ1102以降の処理を繰り返し、復元処理終了と判定されれば、再構築処理を終了する。
ステップ1102の復元ルーチンおよびステップ1103の復元後処理は、改善案毎に異なるため、以下、改善案1〜6について順番に説明する。
1.改善案1
改善案1では、図11の再構築処理は各ディスクの故障を契機として起動され、契機となったディスクが担当Mainに設定されるが、他の故障ディスクが担当Subとして追加されることはない。したがって、2番目のディスクが故障した後は、2つの再構築処理が並行して実行され、各再構築処理における復元対象ディスクは担当Mainのみとなる。
図12は、改善案1の復元ルーチンのフローチャートである。コントローラ211は、まず、担当Mainを復元対象ディスクに設定し、その現在位置を設定して(ステップ1201)、故障ディスクの個数をチェックする(ステップ1202)。そして、故障ディスクが1個であれば、復元方法を1ディスク故障の再構築に決定する(ステップ1203)。
次に、現在位置のストライプに属するデータ/パリティのうち、1ディスク故障の再構築に必要なものを正常ディスクからリードし(ステップ1205)、それらがすべてリードできたか否かをチェックする(ステップ1206)。データ/パリティがすべてリードできた場合は、それらを用いて同じストライプに属する復元対象ディスクのデータ/パリティを復元し、対応するホットスペアにライトする(ステップ1207)。
ステップ1206においてリードエラーが発生した場合は、リード対象のディスクが故障したものと判断する。そこで、故障ディスクの個数をチェックし(ステップ1208)、それが2個であれば、ステップ1202以降の処理を行う。
そして、復元方法を2ディスク故障の再構築に変更し(ステップ1204)、2ディスク故障の再構築に必要なデータ/パリティを正常ディスクからリードする(ステップ1205)。データ/パリティがすべてリードできた場合は、それらを用いて復元対象ディスクのデータ/パリティを復元し、ホットスペアにライトする(ステップ1207)。
故障ディスクが2個のときにさらにリードエラーが発生した場合は、故障ディスクが3個となるため(ステップ1208)、復元不可能と判断し、エラー処理を行う(ステップ1209)。
図13は、改善案1の復元後処理のフローチャートである。コントローラ211は、まず、復元ルーチンで用いた現在位置を担当Mainの復元先頭位置に設定し(ステップ1301)、担当Mainのすべての領域の復元が完了したか否かをチェックする(ステップ1302)。ここでは、復元ルーチンで用いた現在位置が担当Mainの端(図9の上端)に達していれば、すべての領域の復元が完了したものと判定される。すべての領域の復元が完了していなければ、復元処理継続と判定し(ステップ1303)、すべての領域の復元が完了すれば、復元処理終了と判定する(ステップ1304)。
例えば、図4に示したように、最初にディスク#0が故障すると、ディスク#0を担当Mainとして再構築処理が起動される。このとき、故障ディスクは1個であるから(図12のステップ1202)、復元方法は1ディスク故障の再構築となり(ステップ1203)、正常なディスク#1〜#3のデータ/パリティのうち、ディスク#0のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1205)。そして、リードされたデータ/パリティを用いてディスク#0のデータ/パリティが復元され、HS#0にライトされる(ステップ1207)。
ディスク#0の現在位置は、その復元先頭位置として設定され(図13のステップ1301)、復元処理継続と判定される(ステップ1303)。復元先頭位置は、ディスク#0に対するリード/ライトアクセス等の他の処理から参照される。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行される(図11のステップ1105)。
次に、ディスク#1が故障すると、故障ディスクは2個となるから(ステップ1202)、復元方法は2ディスク故障の再構築となり(ステップ1204)、正常なディスク#2〜#3のデータ/パリティのうち、ディスク#0および#1のデータ/パリティを2ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1205)。そして、リードされたデータ/パリティを用いてディスク#0および#1のデータ/パリティが復元され、そのうちディスク#0のデータ/パリティがHS#0にライトされる(ステップ1207)。
復元後処理については、ディスク#1の故障前と同様である。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#0のすべての領域の復元が完了すれば(ステップ1304)、ディスク#0の再構築処理を終了する(ステップ1104)。
さらに、ディスク#1の故障時には、ディスク#1を担当Mainとしてもう1つの再構築処理が起動される。このとき、故障ディスクは2個であるから(ステップ1202)、復元方法は2ディスク故障の再構築処理となり(ステップ1204)、正常なディスク#2〜#3のデータ/パリティのうち、ディスク#0および#1のデータ/パリティを2ディスク故障の再構築処理により復元するために必要なものがリードされる(ステップ1205)。
そして、リードされたデータ/パリティを用いてディスク#0および#1のデータ/パリティが復元され、そのうちディスク#1のデータ/パリティがHS#1にライトされる(ステップ1207)。
復元後処理については、ディスク#0の場合と同様である。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#1のすべての領域の復元が完了すれば(ステップ1304)、ディスク#1の再構築処理を終了する(ステップ1104)。
2.改善案2
改善案2では、改善案1と同様に、図11の再構築処理は各ディスクの故障を契機として起動され、契機となったディスクが担当Mainに設定される。2番目のディスクが故障すると、1番目の故障ディスクを担当Mainとする再構築処理が中断され、2番目の故障ディスクを担当Mainとする再構築処理が開始される。そして、2番目の故障ディスクの現在位置が1番目と同じ進捗位置に達すると、1番目の故障ディスクが担当Subとして追加される。
図14は、改善案2の復元ルーチンのフローチャートである。この場合、図12の復元ルーチンとは異なり、復元対象ディスクは担当Mainと担当Subで表され、2個まで設定できる。また、復元方法は、故障ディスクの個数ではなく、復元対象ディスクの個数に基いて選択される。
コントローラ211は、まず、担当Main/担当Subを復元対象ディスクに設定し、担当Mainの現在位置を設定する(ステップ1401)。このとき、担当Subが設定されていなければ、担当Mainのみが復元対象ディスクに設定される。
次に、復元対象ディスクの個数をチェックし(ステップ1402)、復元対象ディスクが1個であれば、復元方法を1ディスク故障の再構築に決定する(ステップ1403)。そして、現在位置のストライプに属するデータ/パリティのうち、1ディスク故障の再構築に必要なものを正常ディスクからリードし(ステップ1405)、それらがすべてリードできたか否かをチェックする(ステップ1406)。データ/パリティがすべてリードできた場合は、それらを用いて同じストライプに属する復元対象ディスクのデータ/パリティを復元し、対応するホットスペアにライトする(ステップ1407)。
ステップ1406においてリードエラーが発生した場合は、リード対象のディスクが故障したものと判断する。そこで、復元対象ディスクの個数をチェックし(ステップ1408)、それが1個であれば、故障ディスクを復元対象ディスクに追加して(ステップ1410)、ステップ1402以降の処理を行う。
そして、復元方法を2ディスク故障の再構築に変更し(ステップ1404)、2ディスク故障の再構築に必要なデータ/パリティを正常ディスクからリードする(ステップ1405)。データ/パリティがすべてリードできた場合は、それらを用いて2個の復元対象ディスクのデータ/パリティを復元し、それぞれ対応するホットスペアにライトする(ステップ1407)。
復元対象ディスクが2個のときにさらにリードエラーが発生した場合は、故障ディスクが3個となるため(ステップ1408)、復元不可能と判断し、エラー処理を行う(ステップ1409)。
図15は、改善案2の復元後処理のフローチャートである。コントローラ211は、まず、復元ルーチン終了時の担当Mainの現在位置を担当Main/Subの復元先頭位置に設定し(ステップ1501)、以下の条件aが満たされるか否かをチェックする(ステップ1502)。
条件a:担当Main以外に他の故障ディスクが存在し、担当Mainおよびその故障ディスクのいずれにも停止位置が設定されておらず、かつ、その故障ディスクの復元先頭位置が担当Mainのそれより後ろ(下方)である。
他の故障ディスクの復元先頭位置が担当Mainより後ろの場合、担当Mainより復元処理が遅れていることを意味する。条件aが満たされれば、担当Mainの復元先頭位置を他の故障ディスクの停止位置に設定し(ステップ1506)、担当Mainの再構築処理を中断するために復元処理終了と判定する(ステップ1508)。
条件aが満たされなければ、次に、担当Mainのすべての領域の復元が完了したか否かをチェックする(ステップ1503)。すべての領域の復元が完了していれば、復元処理終了と判定する(ステップ1508)。
すべての領域の復元が完了していなければ、次に、担当Mainに停止位置が設定されており、かつ、担当Mainの現在位置がその停止位置であるか否かをチェックする(ステップ1504)。現在位置が停止位置であれば、他の故障ディスクを担当Subに追加し(ステップ1507)、復元処理継続と判定する(ステップ1505)。
現在位置が停止位置でない場合、および、停止位置が設定されていない場合は、そのまま復元処理継続と判定する(ステップ1505)。
例えば、図5に示したように、最初にディスク#0が故障すると、ディスク#0を担当Mainとして再構築処理が起動される。このとき、復元対象ディスクは1個であるから(図14のステップ1401)、復元方法は1ディスク故障の再構築となり(ステップ1403)、正常なディスク#1〜#3のデータ/パリティのうち、ディスク#0のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1405)。そして、リードされたデータ/パリティを用いてディスク#0のデータ/パリティが復元され、HS#0にライトされる(ステップ1407)。
ディスク#0の現在位置は、その復元先頭位置として設定され(図15のステップ1501)、他の故障ディスクはないので(ステップ1502)、復元処理継続と判定される(ステップ1505)。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行される(図11のステップ1105)。
次に、ディスク#1が故障すると、担当Mainであるディスク#0の復元先頭位置はその現在位置に一致しており(ステップ1501)、他の故障ディスクであるディスク#1の復元先頭位置はその下端に一致しているため、条件aが満たされる(ステップ1502)。そこで、ディスク#0の復元先頭位置がディスク#1の停止位置に設定され(ステップ1506)、復元処理終了と判定される(ステップ1508)。これにより、ディスク#0を担当Mainとする再構築処理が中断される(ステップ1104)。
このとき、ディスク#1を担当Mainとして別の再構築処理が起動される。復元対象ディスクは1個であるから(ステップ1401)、復元方法は1ディスク故障の再構築となり(ステップ1403)、ディスク#0、#2、および#3のデータ/パリティのうち、ディスク#1のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1405)。ただし、ディスク#0については、HS#0にライトされた復元済みのデータ/パリティがリードされる。
そして、リードされたデータ/パリティを用いてディスク#1のデータ/パリティが復元され、HS#1にライトされる(ステップ1407)。
ディスク#1の現在位置は、その復元先頭位置として設定され(ステップ1501)、ディスク#1には既に停止位置が設定されているため、条件aは満たされない(ステップ1502)。また、ディスク#1の現在位置はその停止位置に到達していないので(ステップ1504)、復元処理継続と判定される(ステップ1505)。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行される(ステップ1105)。
そして、ディスク#1の現在位置がその停止位置に到達すると(ステップ1504)、処理が中断していたディスク#0が担当Subとして追加され(ステップ1507)、復元処理継続と判定される(ステップ1505)。これにより、現在位置が更新される(ステップ1105)。
これにより、復元対象ディスクは2個となるから(ステップ1401)、復元方法は2ディスク故障の再構築処理となり(ステップ1404)、正常なディスク#2〜#3のデータ/パリティのうち、ディスク#0および#1のデータ/パリティを2ディスク故障の再構築処理により復元するために必要なものがリードされる(ステップ1405)。そして、リードされたデータ/パリティを用いてディスク#0および#1のデータ/パリティが復元され、それぞれHS#0およびHS#1にライトされる(ステップ1407)。
ディスク#1の現在位置は、ディスク#0および#1の復元先頭位置として設定され(ステップ1501)、ディスク#1の現在位置はその停止位置を越えているため(ステップ1504)、復元処理継続と判定される(ステップ1505)。
このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#1のすべての領域の復元が完了すれば(ステップ1508)、ディスク#1を担当Mainとする再構築処理を終了する(ステップ1104)。この時点で、担当Subであるディスク#0の現在位置もその上端に達しているため、ディスク#0の復元も同時に完了する。
3.改善案3
改善案3では、改善案2と同様に、図11の再構築処理は各ディスクの故障を契機として起動され、契機となったディスクが担当Mainに設定される。2番目のディスクが故障すると、2つの故障ディスクの進捗位置の差に応じて改善案1または2が選択される。
進捗位置の差が閾値以上であれば改善案1が選択され、2つの再構築処理が並行して実行される。ただし、改善案1とは異なり、2番目の故障ディスクのデータ/パリティは、1番目の故障ディスクの復元済みのデータ/パリティと正常なディスクのデータ/パリティを用いて1ディスク故障の再構築処理により復元される。
そして、進捗位置の差が閾値未満になると改善案2が選択され、1番目の故障ディスクを担当Mainとする再構築処理が中断され、2番目の故障ディスクを担当Mainとする再構築処理が開始される。そして、2番目の故障ディスクの現在位置が1番目と同じ進捗位置に達すると、1番目の故障ディスクが担当Subとして追加される。
改善案3の復元ルーチンのフローチャートは改善案2と同様であり、復元後処理のフローチャートは図16のようになる。図16の復元後処理は、図15の復元後処理にステップ1603の判定を追加した構成を有する。
ステップ1603において、コントローラ211は、他の故障ディスクと担当Mainの復元先頭位置の差を閾値と比較する。そして、復元先頭位置の差が閾値未満であれば、担当Mainの復元先頭位置を他の故障ディスクの停止位置に設定して(ステップ1607)、復元処理終了と判定する(ステップ1609)。また、復元先頭位置の差が閾値以上であれば、ステップ1604以降の処理を行う。
したがって、改善案2で説明した条件aが満たされ、かつ、他の故障ディスクと担当Mainの復元先頭位置の差が閾値未満であれば、他の故障ディスクに停止位置が設定され(ステップ1607)、それ以外の場合は停止位置は設定されない。
例えば、図5に示したように、最初にディスク#0が故障すると、ディスク#0を担当Mainとして再構築処理が起動され、ディスク#1が故障するまで改善案2と同様の処理が行われる。
次に、ディスク#1が故障すると、条件aが満たされるため(図16のステップ1602)、ディスク#0および#1の復元先頭位置の差が閾値と比較される(ステップ1603)。ここで、ディスク#0が故障してから十分に時間が経過している場合は、ディスク#0の復元処理がかなり進行しており、復元先頭位置の差は閾値を超えていると考えられる。この場合、ステップ1604以降の処理が行われ、ディスク#0には停止位置が設定されていないので(ステップ1605)、復元処理継続と判定される(ステップ1606)。
このとき、復元対象ディスクは1個であるから(図14のステップ1401)、復元方法は1ディスク故障の再構築となり(ステップ1403)、ディスク#1〜#3のデータ/パリティのうち、ディスク#0のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1405)。
ここで、ディスク#1のデータ/パリティがリードされた場合、リードエラーが発生し、ディスク#1が復元対象ディスクに追加されて(ステップ1410)、復元対象ディスクは2個となる。
このため、復元方法は2ディスク故障の再構築処理に変更され(ステップ1404)、正常なディスク#2〜#3のデータ/パリティのうち、ディスク#0および#1のデータ/パリティを2ディスク故障の再構築処理により復元するために必要なものがリードされる(ステップ1405)。そして、リードされたデータ/パリティを用いてディスク#0および#1のデータ/パリティが復元され、そのうちディスク#0のデータ/パリティがHS#0にライトされる(ステップ1407)。
ディスク#0の現在位置は、その復元先頭位置として設定され(ステップ1601)、条件aが満たされるが(ステップ1602)、復元先頭位置の差はまだ閾値より大きい(ステップ1603)。また、ディスク#0には停止位置が設定されていないので(ステップ1605)、復元処理継続と判定される(ステップ1606)。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行される(図11のステップ1105)。
さらに、ディスク#1の故障時には、ディスク#1を担当Mainとしてもう1つの再構築処理が起動される。復元対象ディスクは1個であるから(ステップ1401)、復元方法は1ディスク故障の再構築となり(ステップ1403)、ディスク#0、#2、および#3のデータ/パリティのうち、ディスク#1のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1405)。ただし、ディスク#0については、HS#0にライトされた復元済みのデータ/パリティがリードされる。
そして、リードされたデータ/パリティを用いてディスク#1のデータ/パリティが復元され、HS#1にライトされる(ステップ1407)。
ディスク#1の現在位置は、その復元先頭位置として設定され(ステップ1601)、他の故障ディスクであるディスク#0の復元先頭位置は担当Mainであるディスク#1の復元先頭位置より前にあるため、条件aは満たされない(ステップ1602)。また、ディスク#1には停止位置が設定されていないので(ステップ1605)、復元処理継続と判定される(ステップ1606)。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行される(ステップ1105)。
こうして、ディスク#0を担当Mainとする2ディスク故障の再構築処理と、ディスク#1を担当Mainとする1ディスク故障の再構築処理とが並行して実行され、ディスク#1の復元先頭位置が徐々にディスク#0の復元先頭位置に接近してくる。
そして、ディスク#0を担当Mainとする再構築処理において、ディスク#0および#1の復元先頭位置の差が閾値未満になると(ステップ1603)、ディスク#0の復元先頭位置がディスク#1の停止位置に設定され(ステップ1607)、復元処理終了と判定される(ステップ1609)。これにより、ディスク#0を担当Mainとする再構築処理が中断される(ステップ1104)。
その後、ディスク#1を担当Mainとする再構築処理のみが継続されるが、ディスク#1には既に停止位置が設定されているため、やはり条件aは満たされない(ステップ1602)。また、ディスク#1の現在位置はその停止位置に到達していないので(ステップ1605)、復元処理継続と判定される(ステップ1606)。
そして、ディスク#1の現在位置がその停止位置に到達すれば(ステップ1605)、処理が中断していたディスク#0が担当Subとして追加され(ステップ1608)、復元処理継続と判定される(ステップ1606)。これにより、現在位置が更新される(ステップ1105)。
これにより、復元対象ディスクは2個となるから(ステップ1401)、復元方法は2ディスク故障の再構築処理となり(ステップ1404)、正常なディスク#2〜#3のデータ/パリティのうち、ディスク#0および#1のデータ/パリティを2ディスク故障の再構築処理により復元するために必要なものがリードされる(ステップ1405)。そして、リードされたデータ/パリティを用いてディスク#0および#1のデータ/パリティが復元され、それぞれHS#0およびHS#1にライトされる(ステップ1407)。
ディスク#1の現在位置は、ディスク#0および#1の復元先頭位置として設定され(ステップ1601)、ディスク#1の現在位置はその停止位置を越えているため(ステップ1605)、復元処理継続と判定される(ステップ1606)。
このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#1のすべての領域の復元が完了すれば(ステップ1609)、ディスク#1を担当Mainとする再構築処理を終了する(ステップ1104)。この時点で、担当Subであるディスク#0の現在位置もその上端に達しているため、ディスク#0の復元も同時に完了する。
4.改善案4
改善案4では、図11の再構築処理はディスクの故障を契機として起動されるか、あるいは他の再構築処理から起動され、契機となったディスクが担当Mainに設定される。前者の契機では、RAIDグループあたり1つの再構築処理のみが起動される。したがって、2番目のディスクが故障しても、既にRAIDグループとして再構築処理が起動済みであれば、新たな再構築処理は起動されない。
2番目のディスクが故障すると、1番目の故障ディスクの現在位置が2番目の故障ディスクの停止位置として設定され、2番目の故障ディスクが担当Subとして追加されて、再構築処理が続行される。そして、1番目の故障ディスクの復元が完了すると、2番目の故障ディスクを担当Mainとして、その下端から停止位置までの再構築処理が行われる。改善案4の復元ルーチンのフローチャートは改善案2と同様である。
図17は、改善案4の復元後処理のフローチャートである。コントローラ211は、まず、復元ルーチン終了時の担当Mainの現在位置を担当Main/Subの復元先頭位置に設定し(ステップ1701)、以下の条件bが満たされるか否かをチェックする(ステップ1702)。
条件b:担当Main以外に他の故障ディスクが存在し、担当Mainおよびその故障ディスクのいずれにも停止位置が設定されていない。
条件bが満たされれば、担当Mainの復元先頭位置を他の故障ディスクの停止位置に設定し、その故障ディスクを担当Subに追加する(ステップ1706)。そして、担当Mainのすべての領域の復元が完了したか否かをチェックする(ステップ1703)。条件bが満たされなければ、そのままステップ1703の処理を行う。
すべての領域の復元が完了していれば、他の故障ディスクがあるか否かをチェックし、そのような故障ディスクがあれば、それを担当Mainとする別の再構築処理を起動する(ステップ1707)。そして、復元処理終了と判定する(ステップ1708)。他の故障ディスクがなければ、別の再構築処理を起動することなく復元処理終了と判定する(ステップ1708)。
すべての領域の復元が完了していなければ、次に、担当Mainの現在位置がその停止位置である否かをチェックする(ステップ1704)。現在位置が停止位置であれば、復元処理終了と判定する(ステップ1708)。
現在位置が停止位置でない場合、および、停止位置が設定されていない場合は、そのまま復元処理継続と判定する(ステップ1705)。
例えば、図6に示したように、最初にディスク#0が故障すると、ディスク#0を担当Mainとして再構築処理が起動される。このとき、復元対象ディスクは1個であるから(図14のステップ1401)、復元方法は1ディスク故障の再構築となり(ステップ1403)、正常なディスク#1〜#3のデータ/パリティのうち、ディスク#0のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1405)。そして、リードされたデータ/パリティを用いてディスク#0のデータ/パリティが復元され、HS#0にライトされる(ステップ1407)。
ディスク#0の現在位置は、その復元先頭位置として設定され(図17のステップ1701)、他の故障ディスクはないので(ステップ1702)、復元処理継続と判定される(ステップ1705)。このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行される(図11のステップ1105)。
次に、ディスク#1が故障すると、条件bが満たされ(ステップ1702)、ディスク#0の復元先頭位置がディスク#1の停止位置に設定され、ディスク#1が担当Subとして追加される(ステップ1706)。しかし、ディスク#0には停止位置が設定されていないので(ステップ1704)、復元処理継続と判定される(ステップ1705)。
このとき、復元対象ディスクは2個となるから(ステップ1401)、復元方法は2ディスク故障の再構築処理となり(ステップ1404)、正常なディスク#2〜#3のデータ/パリティのうち、ディスク#0および#1のデータ/パリティを2ディスク故障の再構築処理により復元するために必要なものがリードされる(ステップ1405)。そして、リードされたデータ/パリティを用いてディスク#0および#1のデータ/パリティが復元され、それぞれHS#0およびHS#1にライトされる(ステップ1407)。
ディスク#0の現在位置は、ディスク#0および#1の復元先頭位置として設定され(ステップ1701)、ディスク#1には既に停止位置が設定されているため、条件bは満たされない(ステップ1702)。また、ディスク#0には停止位置が設定されていないので(ステップ1704)、復元処理継続と判定される(ステップ1705)。
このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#0のすべての領域の復元が完了すれば(ステップ1703)、ディスク#1を担当Mainとする別の再構築処理が起動され(ステップ1707)、復元処理終了と判定される(ステップ1708)。これにより、ディスク#0を担当Mainとする再構築処理が終了する(ステップ1104)。この時点で、担当Subであるディスク#1の現在位置は、その上端に達している。
次に、ディスク#1を担当Mainとする再構築処理において、ディスク#1の下端が現在位置として設定される(ステップ1101)。このとき、復元対象ディスクは1個であるから(ステップ1401)、復元方法は1ディスク故障の再構築となり(ステップ1403)、ディスク#0、#2、および#3のデータ/パリティのうち、ディスク#1のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1405)。ただし、ディスク#0については、HS#0にライトされた復元済みのデータ/パリティがリードされる。
そして、リードされたデータ/パリティを用いてディスク#1のデータ/パリティが復元され、HS#1にライトされる(ステップ1407)。
ディスク#1の現在位置は、その復元先頭位置として設定され(ステップ1701)、ディスク#1には既に停止位置が設定されているため、条件bは満たされない(ステップ1702)。また、ディスク#1の現在位置はその停止位置に到達していないので(ステップ1704)、復元処理継続と判定される(ステップ1705)。
このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#1の現在位置が停止位置に到達する。このとき、ディスク#1の現在位置はその上端に達していないため、すべての領域の復元が完了していないと判定される(ステップ1703)。しかし、現在位置が停止位置に一致するので(ステップ1704)、復元処理終了と判定される(ステップ1708)。これにより、ディスク#1を担当Mainとする再構築処理が終了し(ステップ1104)、ディスク#1の復元が完了する。
5.改善案5
改善案5では、改善案1と同様に、図11の再構築処理は各ディスクの故障を契機として起動され、契機となったディスクが担当Mainに設定される。
2番目のディスクが故障すると、改善案4と同様に、1番目の故障ディスクの現在位置が2番目の故障ディスクの停止位置として設定され、2番目の故障ディスクが担当Subとして追加されて、再構築処理が続行される。それと同時に、2番目の故障ディスクを担当Mainとする再構築処理が起動され、1番目の故障ディスクを担当Mainとする再構築処理と並行して実行される。
改善案5の復元ルーチンのフローチャートは改善案2と同様であり、復元後処理のフローチャートは図18のようになる。図18の復元後処理は、図17の復元後処理からステップ1707の処理を除いた構成を有する。
例えば、図7に示したように、最初にディスク#0が故障すると、ディスク#0を担当Mainとして再構築処理が起動され、ディスク#1が故障するまで改善案4と同様の処理が行われる。
次に、ディスク#1が故障すると、条件bが満たされ(ステップ1802)、ディスク#0の復元先頭位置がディスク#1の停止位置に設定され、ディスク#1が担当Subとして追加される(ステップ1806)。しかし、ディスク#0には停止位置が設定されていないので(ステップ1804)、復元処理継続と判定される(ステップ1805)。
このとき、復元対象ディスクは2個となるから(ステップ1401)、復元方法は2ディスク故障の再構築処理となり(ステップ1404)、正常なディスク#2〜#3のデータ/パリティのうち、ディスク#0および#1のデータ/パリティを2ディスク故障の再構築処理により復元するために必要なものがリードされる(ステップ1405)。そして、リードされたデータ/パリティを用いてディスク#0および#1のデータ/パリティが復元され、それぞれHS#0およびHS#1にライトされる(ステップ1407)。
ディスク#0の現在位置は、ディスク#0および#1の復元先頭位置として設定され(ステップ1801)、ディスク#1には既に停止位置が設定されているため、条件bは満たされない(ステップ1802)。また、ディスク#0には停止位置が設定されていないので(ステップ1804)、復元処理継続と判定される(ステップ1805)。
このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#0のすべての領域の復元が完了すれば(ステップ1803)、復元処理終了と判定される(ステップ1807)。これにより、ディスク#0を担当Mainとする再構築処理が終了する(ステップ1104)。この時点で、担当Subであるディスク#1の現在位置は、その上端に達している。
さらに、ディスク#1の故障時には、ディスク#1を担当Mainとしてもう1つの再構築処理が起動され、ディスク#1の下端が現在位置として設定される(ステップ1101)。このとき、復元対象ディスクは1個であるから(ステップ1401)、復元方法は1ディスク故障の再構築となり(ステップ1403)、ディスク#0、#2、および#3のデータ/パリティのうち、ディスク#1のデータ/パリティを1ディスク故障の再構築により復元するために必要なものがリードされる(ステップ1405)。ただし、ディスク#0については、HS#0にライトされた復元済みのデータ/パリティがリードされる。
そして、リードされたデータ/パリティを用いてディスク#1のデータ/パリティが復元され、HS#1にライトされる(ステップ1407)。
ディスク#1の現在位置は、その復元先頭位置として設定され(ステップ1801)、ディスク#1には既に停止位置が設定されているため、条件bは満たされない(ステップ1802)。また、ディスク#1の現在位置はその停止位置に到達していないので(ステップ1804)、復元処理継続と判定される(ステップ1805)。
このような復元ルーチンおよび復元後処理が1ストライプ毎に繰り返し実行され(ステップ1105)、ディスク#1の現在位置が停止位置に到達する。このとき、ディスク#1の現在位置はその上端に達していないため、すべての領域の復元が完了していないと判定される(ステップ1803)。しかし、現在位置が停止位置に一致するので(ステップ1804)、復元処理終了と判定される(ステップ1807)。これにより、ディスク#1を担当Mainとする再構築処理が終了する(ステップ1104)。
ディスク#0を担当Mainとする2ディスク故障の再構築処理と、ディスク#1を担当Mainとする1ディスク故障の再構築処理は並行して実行され、両方の再構築処理が終了した時点でディスク#1の復元が完了する。
6.改善案6
改善案1〜5の再構築処理において、各ディスクのストリップや論理ブロックのような所定領域毎にその復元状態を表すビットマップを、制御情報として追加する。ディスク全体に対する進捗の制御は、改善案1〜5により行われる。
コントローラ211は、再構築処理または復元ルーチンの実行時に、ビットマップ中の復元位置に対応するビット情報を参照する。そして、図19に示すように、リード/ライトアクセスの延長等により既に復元済みであれば、復元処理をスキップする。これにより、余計な復元処理のコストを削減することができる。
図20は、コントローラ211のプロセッサ221が処理に用いるプログラムおよびデータの提供方法を示している。情報処理装置等の外部装置1801や可搬記録媒体1802に格納されたプログラムおよびデータは、RAID装置202のメモリ222にロードされる。
外部装置1801は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介してRAID装置202に送信する。可搬記録媒体1802は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。プロセッサ221は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
図21および22は、ストレージシステムの別の構成例を示している。図21は、ホスト装置に実装されたホストバスアダプタが再構築処理を行う例を示しており、図22は、ホスト装置に実装されたソフトウェアが再構築処理を行う例を示している。いずれの構成においても、必要なプログラムおよびデータは、RAID装置202の場合と同様にして提供される。
図21のストレージシステムは、ホスト装置1901およびDisk#0〜Disk#3からなり、ホスト装置1901は、ホストバスアダプタ1911を備える。ホストバスアダプタ1911は、プロセッサ1921、メモリ1922、およびキャッシュメモリ1923を備え、Disk#0〜Disk#3の故障時の再構築処理を行う。このとき、プロセッサ1921は、メモリ1922に格納されたプログラムを実行することにより、上述した再構築処理を行う。
図22のストレージシステムは、ホスト装置2001およびDisk#0〜Disk#3からなる。ホスト装置2001は、プロセッサ2011およびメモリ2012、2013を備え、Disk#0〜Disk#3の故障時の再構築処理を行う。このとき、プロセッサ2011は、メモリ2012に格納されたプログラムを実行することにより、メモリ2013上で上述した再構築処理を行う。
なお、以上の実施形態では、ディスク装置として磁気ディスク装置が用いられているが、本発明は、光ディスク装置、光磁気ディスク装置等の他のディスク装置や、テープ装置のような他の記憶装置を用いたストレージシステムに対しても、適用可能である。
本発明のストレージ制御装置の原理図である。 第1のストレージシステムの構成図である。 再構築処理の改善案を示す図である。 改善案1を示す図である。 改善案2を示す図である。 改善案4を示す図である。 改善案5を示す図である。 改善案6を示す図である。 MainとSubの現在位置を示す図である。 各ディスクの復元状態を示す図である。 再構築処理のフローチャートである。 改善案1の復元ルーチンのフローチャートである。 改善案1の復元後処理のフローチャートである。 改善案2〜5の復元ルーチンのフローチャートである。 改善案2の復元後処理のフローチャートである。 改善案3の復元後処理のフローチャートである。 改善案4の復元後処理のフローチャートである。 改善案5の復元後処理のフローチャートである。 改善案6の復元状態を示す図である。 プログラムおよびデータの提供方法を示す図である。 第2のストレージシステムの構成図である。 第3のストレージシステムの構成図である。 1ディスク故障のデータ復元を示す図である。 2ディスク故障のデータ復元を示す図である。 2ディスク故障の再構築処理を示す図である。
符号の説明
101 ストレージ制御装置
102−1、102−2、102−N 記憶装置
103−1、103−2 予備記憶装置
111、112 再構築手段
201、1901、2001 ホスト装置
202 RAID装置
211 コントローラ
211、1921、2011 プロセッサ
222、1922、2012、2013 メモリ
223、1923 キャッシュメモリ
1801 外部装置
1802 可搬記録媒体
1911 ホストバスアダプタ
Disk0、Disk1、Disk2、Disk3 ディスク

Claims (11)

  1. 複数の記憶装置にデータおよびパリティを分散して格納する制御を行うことで、データの冗長化を実現するストレージ制御装置であって、
    前記複数の記憶装置のうち第1の記憶装置が故障したとき、該第1の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の情報を復元し、第1の予備記憶装置に書き込む第1の再構築手段と、
    前記第1の記憶装置の情報を復元している間に第2の記憶装置が故障したとき、該第1および第2の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の未復元領域の情報と第2の記憶装置の情報を復元し、前記第1の予備記憶装置の対応する領域と第2の予備記憶装置にそれぞれ書き込む第2の再構築手段と
    を備えることを特徴とするストレージ制御装置。
  2. 前記第2の再構築手段は、前記第1の記憶装置の未復元領域の情報を復元する処理と前記第2の記憶装置の情報を復元する処理をそれぞれ独立に並行して実行することを特徴とする請求項1記載のストレージ制御装置。
  3. 前記第2の再構築手段は、前記第1および第2の記憶装置以外の記憶装置に格納された、前記第1の記憶装置の復元済み領域に対応する領域の情報を用いて、該第2の記憶装置の対応する領域の情報を復元した後、該第1および第2の記憶装置以外の記憶装置に格納された、前記第1の記憶装置の未復元領域に対応する領域の情報を用いて、該第1の記憶装置の未復元領域および該第2の記憶装置の対応する領域の情報を復元することを特徴とする請求項1記載のストレージ制御装置。
  4. 前記第2の再構築手段は、前記第1の記憶装置の復元進捗位置と前記第2の記憶装置の復元進捗位置の差を閾値と比較し、該復元進捗位置の差が該閾値以上であれば、前記第1の記憶装置の未復元領域の情報を復元する処理と該第2の記憶装置の情報を復元する処理をそれぞれ独立に並行して実行し、該復元進捗位置の差が該閾値未満であれば、前記第1および第2の記憶装置以外の記憶装置に格納された、前記第1の記憶装置の復元済み領域に対応する領域の情報を用いて、該第2の記憶装置の対応する領域の情報を復元した後、該第1および第2の記憶装置以外の記憶装置に格納された、前記第1の記憶装置の未復元領域に対応する領域の情報を用いて、該第1の記憶装置の未復元領域および該第2の記憶装置の対応する領域の情報を復元することを特徴とする請求項1記載のストレージ制御装置。
  5. 前記第2の再構築手段は、前記第1および第2の記憶装置以外の記憶装置に格納された、前記第1の記憶装置の未復元領域に対応する領域の情報を用いて、該第1の記憶装置の未復元領域および該第2の記憶装置の対応する領域の情報を復元した後、該第1および第2の記憶装置以外の記憶装置に格納された、該第1の記憶装置の復元済み領域に対応する領域の情報を用いて、該第2の記憶装置の対応する領域の情報を復元することを特徴とする請求項1記載のストレージ制御装置。
  6. 前記第2の再構築手段は、前記第1および第2の記憶装置以外の記憶装置に格納された、前記第1の記憶装置の復元済み領域に対応する領域の情報を用いて、該第2の記憶装置の対応する領域の情報を復元する処理と、該第1および第2の記憶装置以外の記憶装置に格納された、前記第1の記憶装置の未復元領域に対応する領域の情報を用いて、該第1の記憶装置の未復元領域および該第2の記憶装置の対応する領域の情報を復元する処理を、並行して実行することを特徴とする請求項1記載のストレージ制御装置。
  7. 前記第1および第2の記憶装置の所定領域毎に復元済みか否かを表すビットマップ情報を格納する格納手段をさらに備え、前記第2の再構築手段は、該ビットマップ情報を参照しながら復元済み以外の領域の情報を復元することを特徴とする請求項1乃至6記載のストレージ制御装置。
  8. 前記第2の再構築手段は、前記第1および第2の記憶装置に対するアクセス要求が発生したとき、アクセス対象の情報を復元し、前記ビットマップ情報の該アクセス対象の情報に対応する位置に復元済みと記録することを特徴とする請求項7記載のストレージ制御装置。
  9. データの冗長化を実現するために、データおよびパリティを分散して格納する複数の記憶装置と、
    前記複数の記憶装置のうち第1の記憶装置が故障したとき、該第1の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の情報を復元し、第1の予備記憶装置に書き込む第1の再構築手段と、
    前記第1の記憶装置の情報を復元している間に第2の記憶装置が故障したとき、該第1および第2の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の未復元領域の情報と第2の記憶装置の情報を復元し、前記第1の予備記憶装置の対応する領域と第2の予備記憶装置にそれぞれ書き込む第2の再構築手段と
    を備えることを特徴とするストレージ装置。
  10. 複数の記憶装置にデータおよびパリティを分散して格納する制御を行うことで、データの冗長化を実現するプロセッサのためのプログラムであって、
    前記複数の記憶装置のうち第1の記憶装置が故障したとき、該第1の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の情報を復元し、第1の予備記憶装置に書き込み、
    前記第1の記憶装置の情報を復元している間に第2の記憶装置が故障したとき、該第1および第2の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の未復元領域の情報と第2の記憶装置の情報を復元し、前記第1の予備記憶装置の対応する領域と第2の予備記憶装置にそれぞれ書き込む
    処理を前記プロセッサに実行させることを特徴とするプログラム。
  11. 複数の記憶装置にデータおよびパリティを分散して格納することで、データの冗長化を実現するストレージ制御方法であって、
    前記複数の記憶装置のうち第1の記憶装置が故障したとき、該第1の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の情報を復元し、第1の予備記憶装置に書き込み、
    前記第1の記憶装置の情報を復元している間に第2の記憶装置が故障したとき、該第1および第2の記憶装置以外の記憶装置に格納された情報を用いて該第1の記憶装置の未復元領域の情報と第2の記憶装置の情報を復元し、前記第1の予備記憶装置の対応する領域と第2の予備記憶装置にそれぞれ書き込む
    ことを特徴とするストレージ制御方法。
JP2005073669A 2005-03-15 2005-03-15 ストレージ制御装置および方法 Expired - Fee Related JP4754852B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005073669A JP4754852B2 (ja) 2005-03-15 2005-03-15 ストレージ制御装置および方法
EP05254323A EP1703397A3 (en) 2005-03-15 2005-07-11 Storage control apparatus and method
CNB2005100854173A CN100392611C (zh) 2005-03-15 2005-07-18 存储控制装置和方法
KR1020050065647A KR100701563B1 (ko) 2005-03-15 2005-07-20 스토리지 제어 장치 및 방법
US11/237,657 US7809979B2 (en) 2005-03-15 2005-09-29 Storage control apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005073669A JP4754852B2 (ja) 2005-03-15 2005-03-15 ストレージ制御装置および方法

Publications (2)

Publication Number Publication Date
JP2006259894A true JP2006259894A (ja) 2006-09-28
JP4754852B2 JP4754852B2 (ja) 2011-08-24

Family

ID=36648659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005073669A Expired - Fee Related JP4754852B2 (ja) 2005-03-15 2005-03-15 ストレージ制御装置および方法

Country Status (5)

Country Link
US (1) US7809979B2 (ja)
EP (1) EP1703397A3 (ja)
JP (1) JP4754852B2 (ja)
KR (1) KR100701563B1 (ja)
CN (1) CN100392611C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110456A (ja) * 2007-10-31 2009-05-21 Fujitsu Ltd ストレージ制御装置、方法、及びプログラム
JP2010072966A (ja) * 2008-09-18 2010-04-02 Toshiba Corp 情報処理装置および再構築処理および修復処理の制御方法
JP2011086214A (ja) * 2009-10-19 2011-04-28 Fujitsu Ltd ディスクアレイ装置
CN102681794A (zh) * 2012-04-23 2012-09-19 浪潮(北京)电子信息产业有限公司 基于双控制器实现磁盘冗余阵列保护的方法及系统
JP2013200764A (ja) * 2012-03-26 2013-10-03 Fujitsu Ltd ストレージシステム、ストレージ装置およびデータ復元方法
JP2015525377A (ja) * 2012-07-23 2015-09-03 株式会社日立製作所 ストレージシステム及びデータ管理方法
US9697081B2 (en) 2014-04-25 2017-07-04 Fujitsu Limited Storage control device and data recovery method

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4303187B2 (ja) * 2004-11-10 2009-07-29 富士通株式会社 プログラム、記憶制御方法及び記憶装置
TWI295021B (en) * 2004-12-10 2008-03-21 Infortrend Technology Inc Storage system and method for handling bad storage device data therefor
JP2008046986A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム
US7877626B2 (en) * 2007-12-31 2011-01-25 Datadirect Networks, Inc. Method and system for disk storage devices rebuild in a data storage system
US7979635B2 (en) * 2008-02-14 2011-07-12 International Business Machines Corporation Apparatus and method to allocate resources in a data storage library
JP5286956B2 (ja) * 2008-06-13 2013-09-11 富士通株式会社 制御方法、ディスクアレイ装置
JP2010049637A (ja) * 2008-08-25 2010-03-04 Hitachi Ltd 計算機システム、ストレージシステム及び構成管理方法
JP5207988B2 (ja) * 2009-01-07 2013-06-12 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、プログラム、及び記憶媒体
CN101482733B (zh) * 2009-02-04 2011-10-19 浙江中控技术股份有限公司 一种数据冗余的方法及装置
JP5218147B2 (ja) * 2009-02-26 2013-06-26 富士通株式会社 ストレージ制御装置,ストレージ制御方法およびストレージ制御プログラム
US8341457B2 (en) * 2010-03-11 2012-12-25 Lsi Corporation System and method for optimizing redundancy restoration in distributed data layout environments
US8726070B2 (en) * 2010-09-27 2014-05-13 Dell Products L.P. System and method for information handling system redundant storage rebuild
US8782339B2 (en) * 2010-10-11 2014-07-15 Open Invention Network, Llc Storage system having cross node data redundancy and method and computer readable medium for same
CN102055797A (zh) * 2010-11-29 2011-05-11 北京卓微天成科技咨询有限公司 一种云存储的数据存取的方法、装置及系统
CN102164165B (zh) * 2011-02-18 2013-06-12 杭州宏杉科技有限公司 一种网络存储系统的管理方法及装置
JP5729043B2 (ja) * 2011-03-17 2015-06-03 富士通株式会社 ストレージ装置および制御装置
JP5472947B2 (ja) * 2012-03-08 2014-04-16 株式会社東芝 ビデオサーバ装置及びそのリビルド処理制御方法
CN102684782A (zh) * 2012-05-08 2012-09-19 成都瑞凌科信息技术有限公司 Epon系统的保护装置和数据冗余备份方法及监控方法
CN103902232B (zh) * 2012-12-28 2018-11-09 联想(北京)有限公司 一种写入的数据的方法及装置
CN103970481B (zh) * 2013-01-29 2017-03-01 国际商业机器公司 重建存储器阵列的方法和装置
JP6171616B2 (ja) * 2013-06-24 2017-08-02 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
US9501360B2 (en) 2013-07-01 2016-11-22 International Business Machines Corporation Rebuilding data while reading data in a dispersed storage network
CN106227627A (zh) * 2016-08-22 2016-12-14 浪潮(北京)电子信息产业有限公司 一种raid在数据恢复后再插入新磁盘的数据分布方法及系统
CN108228086B (zh) * 2016-12-21 2021-07-16 伊姆西Ip控股有限责任公司 Raid重建的方法和设备
US10437691B1 (en) * 2017-03-29 2019-10-08 Veritas Technologies Llc Systems and methods for caching in an erasure-coded system
CN110058961B (zh) * 2018-01-18 2023-05-05 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
CN110058965B (zh) * 2018-01-18 2023-07-28 伊姆西Ip控股有限责任公司 存储系统中的数据重建方法及设备
CN111381997B (zh) * 2018-12-28 2024-03-01 杭州宏杉科技股份有限公司 一种raid重建方法及装置
CN110389724B (zh) * 2019-07-23 2023-06-06 深圳忆联信息系统有限公司 基于固态硬盘的parity page识别方法和装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0786810B2 (ja) 1990-02-16 1995-09-20 富士通株式会社 アレイディスク装置
US5271012A (en) * 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5579475A (en) * 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
JPH05341918A (ja) * 1992-05-12 1993-12-24 Internatl Business Mach Corp <Ibm> 二重化デイスク記憶装置システムを構成するための接続装置
DE69408498D1 (de) 1993-06-30 1998-03-19 Ibm Kodierung und Rekonstruktion des Dateninhaltes von bis zu zwei nichtverfügbaren DASDs in einer DASD-Anordnung
US5666512A (en) * 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US5862158A (en) 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
JP3597349B2 (ja) * 1997-09-05 2004-12-08 株式会社日立製作所 記憶サブシステムおよびその障害回復方法
US6353895B1 (en) * 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
JP2000259359A (ja) 1999-03-04 2000-09-22 Toshiba Corp Raid装置および記録媒体
US6516425B1 (en) 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US6647514B1 (en) 2000-03-23 2003-11-11 Hewlett-Packard Development Company, L.P. Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
JP2002123372A (ja) 2000-10-18 2002-04-26 Nec Corp キャッシュメモリ付きディスクアレイ装置及びそのエラー制御方法並びにその制御プログラムを記録した記録媒体
JP3617631B2 (ja) 2001-07-19 2005-02-09 富士通株式会社 ストレージ制御装置及びその制御方法
JP2003085019A (ja) 2001-09-07 2003-03-20 Toshiba Corp ディスク管理装置、ディスク管理方法及びディスク管理プログラム
US6976187B2 (en) * 2001-11-08 2005-12-13 Broadcom Corporation Rebuilding redundant disk arrays using distributed hot spare space
US7055058B2 (en) * 2001-12-26 2006-05-30 Boon Storage Technologies, Inc. Self-healing log-structured RAID
US7073115B2 (en) 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US6993701B2 (en) 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7080278B1 (en) 2002-03-08 2006-07-18 Network Appliance, Inc. Technique for correcting multiple storage device failures in a storage array
US7103796B1 (en) * 2002-09-03 2006-09-05 Veritas Operating Corporation Parallel data change tracking for maintaining mirrored data consistency
US6952794B2 (en) * 2002-10-10 2005-10-04 Ching-Hung Lu Method, system and apparatus for scanning newly added disk drives and automatically updating RAID configuration and rebuilding RAID data
CN1253791C (zh) * 2002-11-22 2006-04-26 华为技术有限公司 5级独立冗余磁盘阵列中多盘失败情况下的读写操作方法
JP3676793B2 (ja) 2004-01-26 2005-07-27 富士通株式会社 ディスクアレイ装置
US7475211B2 (en) * 2004-02-13 2009-01-06 International Business Machines Corporation Method and system for restoring data
US7249277B2 (en) * 2004-03-11 2007-07-24 Hitachi, Ltd. Disk array including plural exchangeable magnetic disk unit
US20050210318A1 (en) * 2004-03-22 2005-09-22 Dell Products L.P. System and method for drive recovery following a drive failure
JP2007087039A (ja) * 2005-09-21 2007-04-05 Hitachi Ltd ディスクアレイシステム及びその制御方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110456A (ja) * 2007-10-31 2009-05-21 Fujitsu Ltd ストレージ制御装置、方法、及びプログラム
JP4499776B2 (ja) * 2007-10-31 2010-07-07 富士通株式会社 ストレージ制御装置、方法、及びプログラム
US8386837B2 (en) 2007-10-31 2013-02-26 Fujistu Limited Storage control device, storage control method and storage control program
JP2010072966A (ja) * 2008-09-18 2010-04-02 Toshiba Corp 情報処理装置および再構築処理および修復処理の制御方法
JP2011086214A (ja) * 2009-10-19 2011-04-28 Fujitsu Ltd ディスクアレイ装置
JP2013200764A (ja) * 2012-03-26 2013-10-03 Fujitsu Ltd ストレージシステム、ストレージ装置およびデータ復元方法
CN102681794A (zh) * 2012-04-23 2012-09-19 浪潮(北京)电子信息产业有限公司 基于双控制器实现磁盘冗余阵列保护的方法及系统
JP2015525377A (ja) * 2012-07-23 2015-09-03 株式会社日立製作所 ストレージシステム及びデータ管理方法
US9697081B2 (en) 2014-04-25 2017-07-04 Fujitsu Limited Storage control device and data recovery method

Also Published As

Publication number Publication date
CN100392611C (zh) 2008-06-04
KR20060101156A (ko) 2006-09-22
EP1703397A2 (en) 2006-09-20
JP4754852B2 (ja) 2011-08-24
CN1834932A (zh) 2006-09-20
KR100701563B1 (ko) 2007-03-30
US20060212748A1 (en) 2006-09-21
EP1703397A3 (en) 2008-07-02
US7809979B2 (en) 2010-10-05

Similar Documents

Publication Publication Date Title
JP4754852B2 (ja) ストレージ制御装置および方法
US7480909B2 (en) Method and apparatus for cooperative distributed task management in a storage subsystem with multiple controllers using cache locking
JP2501752B2 (ja) コンピユ―タ・システムのストレ―ジ装置及びデ―タのストア方法
US8392752B2 (en) Selective recovery and aggregation technique for two storage apparatuses of a raid
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
EP2250563B1 (en) Storage redundant array of independent drives
JP4815825B2 (ja) ディスクアレイ装置及びその再構築方法
US8839028B1 (en) Managing data availability in storage systems
CN104035830B (zh) 一种数据恢复方法和装置
US20070088990A1 (en) System and method for reduction of rebuild time in raid systems through implementation of striped hot spare drives
US20040037120A1 (en) Storage system using fast storage devices for storing redundant data
US20090204846A1 (en) Automated Full Stripe Operations in a Redundant Array of Disk Drives
US8386837B2 (en) Storage control device, storage control method and storage control program
US7694171B2 (en) Raid5 error recovery logic
JPH08263227A (ja) ディスクアレイにおけるパリティデータの無矛盾性保持方法
US9378092B2 (en) Storage control apparatus and storage control method
JP2020042805A (ja) 永続記憶装置の管理
US7240237B2 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
US6732290B1 (en) Recovery system for raid write
US7174476B2 (en) Methods and structure for improved fault tolerance during initialization of a RAID logical unit
US20150378622A1 (en) Management of data operations
JP2010267037A (ja) ディスクアレイ装置
KR101544501B1 (ko) 증대된 성능을 갖는 리던던시 보호 대량 저장 시스템
JP2002123372A (ja) キャッシュメモリ付きディスクアレイ装置及びそのエラー制御方法並びにその制御プログラムを記録した記録媒体
JP2008065601A (ja) バックアップ処理中にディスクの再構築を行うディスクアレイ装置と方法並びにプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090616

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110526

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

Free format text: PAYMENT UNTIL: 20140603

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4754852

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees