JP4756704B2 - データ・ストレージ・アレイ - Google Patents

データ・ストレージ・アレイ Download PDF

Info

Publication number
JP4756704B2
JP4756704B2 JP2006519917A JP2006519917A JP4756704B2 JP 4756704 B2 JP4756704 B2 JP 4756704B2 JP 2006519917 A JP2006519917 A JP 2006519917A JP 2006519917 A JP2006519917 A JP 2006519917A JP 4756704 B2 JP4756704 B2 JP 4756704B2
Authority
JP
Japan
Prior art keywords
stripe
array
elements
recipient
donor
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
Application number
JP2006519917A
Other languages
English (en)
Other versions
JP2007529061A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007529061A publication Critical patent/JP2007529061A/ja
Application granted granted Critical
Publication of JP4756704B2 publication Critical patent/JP4756704B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1084Degraded mode, e.g. caused by single or multiple storage removals or disk failures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • 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/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
    • 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/1028Distributed, i.e. distributed RAID systems with parity

Description

本発明は、ストレージ・システムに関する。具体的に言うと、本発明は、アレイに保管されたデータの消失なしでアレイが許容できるストレージ・ユニット故障の数を増やすためにストレージ・ユニットのアレイを構成する方法に関する。
次の定義が、本明細書で使用され、制限ではなく例示のために提供される。
「要素」は、ストレージ・ユニット上のデータのブロックである。
「ベース・アレイ」は、ECC用のアレイ・ユニットを含む要素の組である。
「アレイ」は、1つまたは複数のベース・アレイを保持するストレージ・ユニットの組である。
「ストライプ」は、アレイ内のベース・アレイである。
nは、ベース・アレイのデータ・ユニットの個数である。
rは、ベース・アレイの冗長ユニットの個数である。
mは、アレイのストレージ・ユニットの個数である。
dは、ベース・アレイの最小ハミング距離である。
Dは、アレイの最小ハミング距離である。
従来のアレイでは、アレイ内のストレージ・ユニットの個数が、ベース・アレイ内のデータ・ユニットの個数とベース・アレイ内の冗長ユニットの個数の合計と等しい。すなわちm=n+rである。ほとんどの従来のストレージ・アレイは、パリティなどのMDS(マキシマム・ディスタンス・セパレーション)コードまたは故障を許容するためのミラーリング技法を使用する。MDSコードを有するベース・アレイの最小ハミング距離は、1とベース・アレイ内の冗長ユニットの個数の合計と等しい(すなわち、d=1+rである)。ミラー構成について、ベース・アレイ内の冗長ユニットの個数は、ベース・アレイ内のデータ・ユニットの個数と等しく(r=n=1)、最小ハミング距離はd=2である。
m個のストレージ・ユニットにわたってアナモルフィックに(anamorphically)アレイを符号化することが可能であり、mは、アレイ内のデータ・ユニットの個数nとアレイ内の冗長ユニットの個数rの合計より大きい、すなわち、m>n+rである。文献では、性能のためにパリティ・ブロックを配置するにアナモルフィック符号化が使用される時に、そのような符号化を、通常は「クラスタリングされていないパリティ(de-clusteringparity)」と称する。本明細書で使用される時に、そのような符号化方式を、アナモルフィック符号化と称する。というのは、これによって、その符号化方式がアレイの新しいプロパティを提供できることがより正確に識別されるからである。
アナモルフィズムは、アレイ内のベース・アレイの組を選択的に配置することによって達成することができる。たとえば、4要素コードを使用する図3に示された例示的なアレイ200を検討されたい。アレイ200に、列の形で示された6つのストレージ・ユニットD1〜D6が含まれる。アレイ200について、m=6である。アレイ200に、n個のデータ・ユニットとr個の冗長ユニットからそれぞれが形成される複数のベース・アレイも含まれる。すなわち、ベース・アレイごとに、n+r=4である。めいめいのベース・アレイは、図3ではストライプ1として順次番号を付けられて、アレイ200の4要素コードがストレージ・ユニットD1〜D6にまたがって分散することが示されている。各ストライプに4つのブロックがあり、各ストライプは、独立のベース・アレイとして働く。したがって、アレイの最小距離は、めいめいのストライプのすべての最小ハミング距離の最小値すなわち、D=min(d)であり、dは、ストライプiの最小距離である。
アナモルフィック・アレイ200は、r=2であり使用されるコードがMDSの場合に、どの2つのストレージ・ユニットでも、データの消失なしで故障することができる。このストライプは、その要素のうちのいずれか3つが失われた場合に故障する。しかし、アナモルフィック・アレイ200によって許容できる3ユニット故障のある組合せがある。たとえば、ストレージ・ユニットD1、D3、およびD5のそれぞれが故障した場合に、ストライプ1の2つの要素、ストライプ2の2つの要素、およびストライプ3の2つの要素が失われるが、どのストライプも、3つの要素を失ってはいない。したがって、アナモルフィック・アレイ200は、過剰仕様であり、有利に活用することができる。
必要なものは、ストレージ・ユニットのアナモルフィック・アレイと共に使用される時にECCの最小ハミング距離を強化し、これによってアレイの有効最小距離を増やす技法である。
本発明は、ストレージ・ユニットのアナモルフィック・アレイと共に使用されるECCの最小ハミング距離を強化し、これによってアレイの最小距離を増やす技法を提供する。
本発明の利益は、k個のストライプがm個のストレージ・ユニットのアレイにまたがって保管されるm個のストレージ・ユニットのアナモルフィック・アレイのエラー許容範囲を増やす方法およびシステムである第1の実施形態によって提供される。各ストライプは、最小ハミング距離d=r+1を有する対称コードに対応するn+r個の要素を有し、nは、m個のストレージ・ユニットのアレイのベース・アレイのデータ・ストレージ・ユニットの個数であり、rは、このベース・アレイの冗長ユニットの個数である。さらに、n=r、n≧2、m>n+r、jm=k(n+r)であり、jおよびkは整数である。あるストライプの各めいめいの要素は、異なるストレージ・ユニットに保管される。ドナー・ストライプ(donor stripe)の最小距離とレシピエント・ストライプ(recipient stripe)の最小距離の間の差が2以上である時に、要素が選択される。選択された要素は、レシピエント・ストライプの要素を有しないストレージ・ユニットで再作成される。失われた要素を再作成する前に、ドナー・ストライプを保管したストレージ・ユニットは、選択された要素が寄贈(donate)され、その結果、データが、ドナー・ストライプの一部として選択された要素から読み取られず、書き込まれなくなることを知らされる。次に、レシピエント・ストライプの失われた要素が、選択された要素で再作成される。本発明によれば、レシピエント・ストライプの最小ハミング距離は、ドナー・ストライプの要素が選択される前に、d≧1である。ドナー・ストライプの選択された要素を、さらに、アレイに対する最小の性能影響に基づいて選択することができる。さらに、レシピエント情報が、アレイの改善された性能に基づいて選択される。ストレージ・システムのアレイに、パリティ・コード、Winogradコード、対称コード、リード−ソロモン・コード、EVENODDコード、またはEVENODDコードの派生物(derivative)など、消去または誤り訂正コードに基づく冗長性が含まれる。代替案では、アレイに、複数の消去または誤り訂正コードの結果に基づく冗長性が含まれ、消去または誤り訂正コードの少なくとも1つが、パリティ・コード、Winogradコード、対称コード、リード−ソロモン・コード、EVENODDコード、またはEVENODDコードの派生物である。
ドナー・ストライプの要素が、選択された要素でレシピエント・ストライプからレシピエント情報の少なくとも一部を再作成するステップ中に故障した時に、選択された要素でレシピエント・ストライプからレシピエント情報の少なくとも一部を再作成するステップが打ち切られる。第2ドナー・ストライプの最小距離と第2レシピエント・ストライプの最初距離の間の差が2以上である時に、第2ドナー・ストライプが、複数のストライプから選択される。ドナー要素が、第2ドナー・ストライプ内で選択される。レシピエント・ストライプから失われたレシピエント情報の少なくとも一部が、第2ドナー・ストライプ内の選択された要素で再作成される。予備要素が使用可能になった時に、予備要素が、選択されたストレージ・ユニットに割り当てられる。
本発明の第2の実施形態は、故障の選択されたパターンに脆弱であるm個のストレージ・ユニットのアレイの故障許容範囲を増やす方法およびシステムを提供する。本発明のこの実施形態によれば、k個のストライプが、m個のストレージ・ユニットのアレイにまたがって保管される。m個のストレージ・ユニットのアレイは、アナモルフィック・アレイである。各ストライプは、n+r個の要素を有し、nは、ベース・アレイのデータ要素の個数であり、rは、ベース・アレイの冗長要素の個数であり、m>n+r、jm=k(n+r)であり、jおよびkは整数である。各ストライプは、複数の要素を有し、各ストライプは、最小ハミング距離dを有する消去または誤り訂正コードを形成する。あるストライプの各めいめいの要素は、異なるストレージ・ユニットに保管される。要素故障の後に、レシピエント要素が選択される。アレイの故障許容範囲が再作成動作の後に増えるように、ドナー・ストライプ内の要素が選択される。レシピエント・ストライプの失われた要素が、ドナー・ストライプの要素で再作成される。レシピエント・ストライプの最小ハミング距離は、要素がドナー・ストライプで選択される前に、d≧2である。さらに、アレイの最小ハミング距離は、ドナー・ストライプの選択された要素でのレシピエント・ストライプの再作成の完了時に増える。レシピエント要素を、アレイの故障パターンに基づいて選択することができる。さらに、ドナー要素を、所定のターゲット・パターンに基づいて選択することができる。ドナー・ストライプを保管するストレージ・ユニットは、レシピエント・ストライプの失われた要素が選択された要素で再作成される前に、選択された要素が寄贈されたことを知らされる。ストレージ・ユニットのアレイに、パリティ・コード、Winogradコード、対称コード、リード−ソロモン・コード、EVENODDコード、またはEVENODDコードの派生物など、消去または誤り訂正コードに基づく冗長性が含まれる。代替案では、ストレージ・ユニットのアレイに、複数の消去または誤り訂正コードの結果に基づく冗長性が含まれ、消去または誤り訂正コードの少なくとも1つが、パリティ・コード、Winogradコード、対称コード、リード−ソロモン・コード、EVENODDコード、またはEVENODDコードの派生物である。
本発明の第3の実施形態は、各アレイがm個のストレージ・ユニットを含み、k個のストライプがm個のストレージ・ユニットの各めいめいのアレイにまたがって保管される、ストレージ・ユニットの複数のアレイを有するストレージ・システムのエラー許容範囲を増やす方法およびシステムを提供する。各ストライプは、最小ハミング距離dを有する対称コードに対応するn+r個の要素を有し、nは、m個のストレージ・ユニットのアレイのベース・アレイのデータ要素の個数であり、rは、ベース・アレイの冗長要素の個数である。さらに、n=r、n≧2、m>n+r、jm=k(n+r)であり、jおよびkは整数である。あるストライプの各めいめいの要素は、アレイの異なるストレージ・ユニットに保管される。ドナー・ストライプの最小距離とレシピエント・ストライプの最小距離の間の差が2以上である時に、要素がドナー・ストライプ内で選択される。選択された要素は、レシピエント・ストライプの要素を有しないストレージ・ユニットに保管される。ドナー・ストライプは、レシピエント・ストライプのアレイと異なるアレイに保管することができる。その代わりに、ドナー・ストライプを、レシピエント・ストライプと同一のアレイに保管することができる。失われた要素を再作成する前に、ドナー・ストライプを保管したストレージ・ユニットは、選択された要素が寄贈され、その結果、データが、ドナー・ストライプの一部として選択された要素から読み取られず、書き込まれなくなることを知らされる。次に、レシピエント・ストライプの失われた要素が、選択された要素で再作成される。本発明によれば、レシピエント・ストライプの最小ハミング距離は、ドナー・ストライプの要素が選択される前に、d≧2である。ドナー・ストライプの選択された要素を、さらに、ドナー・ストライプに対する最小の性能影響に基づいて、またはストレージ・システムに対する最小の性能影響に基づいて選択することができる。さらに、レシピエント情報が、レシピエント・ストライプの改善された性能に基づいて、またはストレージ・システムの改善された性能に基づいて選択される。ストレージ・システムのアレイに、パリティ・コード、Winogradコード、対称コード、リード−ソロモン・コード、EVENODDコード、またはEVENODDコードの派生物など、消去または誤り訂正コードに基づく冗長性が含まれる。代替案では、アレイに、複数の消去または誤り訂正コードの結果に基づく冗長性が含まれ、消去または誤り訂正コードの少なくとも1つが、パリティ・コード、Winogradコード、対称コード、リード−ソロモン・コード、EVENODDコード、またはEVENODDコードの派生物である。
本発明を、制限ではなく例として添付図面に示すが、添付図面では、同一の符号が同一の要素を指す。
本願は、US Patent Application Serial No.10/619,649 (Attorney Docket No. ARC92003015US1), entitled “Automatic ParityExchange”、US Patent Application Serial No. 10/619,633 (entitled “Multi-pathData Retrieval From Redundant Array”、およびUS Patent Application Serial No.10/619,648 (entitled “RAID 3 + 3”に関する。本願は、同時係属であり本願と同一の譲受人に譲渡されたUS PatentApplication Serial No. 10/600,593 (Attorney Docket No. YOR9-2003-0069US1)にも関する。
パリティ・コード、Winogradコード、対称コード、リード−ソロモン・コード、EVENODDコード、またはEVENODDコードの派生物などの消去または誤り訂正コード(ECC)によって許容できるアレイの故障の最小個数は、少なくとも、ECCの最小ハミング距離dから1を引いた数すなわちd−1である。本発明は、本明細書で「ドッジング(dodging)」動作と称する、ECCのハミング距離より大きい「有効距離」を提供する動作を利用することによって、ECCの最小ハミング距離を拡張する。したがって、故障がデバイス故障またはハード故障のどちらであるかにかかわりなく、アレイが許容できる故障の個数は、ECCによって提供される最小距離を超えて増やされる。本明細書で使用する用語「有効距離」および「有効最小距離」は、1に、本発明による1つまたは複数のドッジング動作を利用するアレイが許容できる故障の個数を加えた数を指す。
次では、ドッジング動作は、アレイ内のストライプがレシピエント・ストライプへの要素の寄贈のために選択され、レシピエント情報が寄贈された要素上で再作成され、これによってアレイの最小距離が増やされる処理である。ドッジング動作は、距離d≧d+2である時にストライプの対(i,j)に対して実行することができる。ドッジング動作の後に、ドナー・ストライプは、距離が1つだけ減る。対照的に、レシピエント・ストライプは、距離が1つだけ増える。ドッジング動作を、最小アレイ距離であるすべてのストライプに対して実行できる時に、総合的な最小アレイ距離が増える。ドッジング動作は、アレイの構成に応じて、さまざまな距離で行うことができる。
図1に、共通のアレイ・コントローラ101に接続された2つのストレージ・アレイ102および103を含む、全般的に100として示された例示的なストレージ・システムを示す。ストレージ・アレイ102および103は、複数のストレージ・ユニット104を含み、インターフェース105を介してアレイ・コントローラ101と通信する。アレイ・コントローラ101は、インターフェース106を介して他のコントローラおよびホスト・システムと通信する。そのような構成は、アレイ・コントローラが複数のストレージ・アレイと通信することを可能にする。
図2に、異なるアレイ・コントローラ152および151にそれぞれ接続された2つのストレージ・アレイ153および154を含む、全般的に150として示された例示的なストレージ・システムを示す。ストレージ・アレイ153は、インターフェース157を介してアレイ・コントローラ152と通信し、ストレージ・アレイ154は、インターフェース156を介してアレイ・コントローラ151と通信する。アレイ・コントローラ151および152は、それぞれ、インターフェース158および159を介して他のアレイ・コントローラおよびストレージ・システムと通信する。図2には、アレイ・コントローラ151および152が互いに通信できるようにする通信接続160も示されている。
図1および2に示されたアレイ・コントローラは、ハードウェア・コントローラまたはソフトウェア・コントローラとして設計することができる。用語コントローラは、本明細書では、一般に、上で説明した構成のいずれかを指すのに使用される。
多数のアナモルフィック・アレイが、ドッジングから利益を得ることができる。アナモルフィック・アレイがドッジング動作から利益を得る能力は、アレイの故障組合せの検査によって検証することができる。たとえば、図4に、9つのストレージ・ユニットD1〜D9を有する例示的なアナモルフィック・アレイ300を示す。この例では、アレイ300が、(3+3)対称コードを使用し、このコードは、n=3、r=3、およびd=4のMDSである。アレイ300は、ストライプ内の6つの要素からの3つの故障した要素を訂正できる3つの冗長要素を含むように配置される。それぞれ1、2、および3として示された3つの独自のストライプが、アレイ300内に配置されている。3つのストレージユニット故障のどれであっても、1つのストライプの3つを超える要素に影響しない。したがって、アレイ300は、最小距離D=4を有する。
本発明によるドッジング動作を実行して、アレイ300の有効最小距離を増やすことができることを示すために、考慮を必要とする3ストレージユニット故障の3つの配置だけがある。第1の3ストレージユニット故障配置を、図5に示すが、ここで、ブロック内の×はストレージユニット故障を示す。この特定の故障配置では、各ストライプの2つのブロックが故障している。その結果、各ストライプは、最小距離d=2を有し、したがって、アレイ300は、最小距離D=2を有する。したがって、アレイ300は、図5に示されているように、可能なデータ消失なしに、もう1つのストレージユニット故障を許容することができる。
第2の3ストレージユニット故障配置を図6に示すが、ここで、ブロック内の×はストレージユニット故障を示す。第2の3ストレージユニット故障配置では、ストライプ1が、3つの要素を失っており、ストライプ2が、2つの要素を失っており、ストライプ3が、1つの要素を失っている。したがって、ストライプ1は、最小距離d=1を有し、データ消失なしでこれ以上のストレージユニット故障を許容することができない。ストライプ2は、最小距離d=2を有し、ストライプ3は、最小距離d=3を有する。その結果、アレイ300は、最小距離D=1を有する。
ドッジング動作は、第2の3ストレージユニット故障配置について、ストライプ3の故障していない要素の1つで周知の形でストライプ1の失われた要素の1つの内容を再作成することによって実行することができる。図7に、ドッジング動作を実行した後の図6のアレイを示す。ここで、ユニットD9のストライプ3の要素が、ストライプ1に寄贈されている。ドッジング動作の後に、すべてのストライプが、最小距離d=2を有し、したがって、アレイ300は、最小距離D=2を有する。ドッジング動作の後のアレイの構成は、データを失わずにもう1つの故障を許容することができる。
第3の3ストレージユニット故障配置を図8に示すが、ここで、ブロック内の×はストレージユニット故障を示す。第3の3ストレージユニット故障配置では、ストライプ1および2が、それぞれ3つの要素を失っており、最小距離d=1を有する。しかし、ストライプ3は、要素を失っておらず、その結果、最小距離d=4を有する。ストライプ1および2(d=1)のそれぞれからの1つの失われた要素の内容を周知の形でストライプ3(d=4)の異なる要素で再作成することによって、第3の3ストレージユニット故障配置についてドッジング動作を実行することができる。たとえば、ストレージ・ユニットD1の要素1の内容を、ディスクD9の要素3で再作成することができ、ディスクD1の要素2の内容を、ディスクD4の要素3で再作成することができる。
図9に、ドッジング動作を実行した後の図8のアレイを示す。その結果は、やはり、すべてのストライプが最小距離d=2を有し、その結果、アレイ300が最小距離D=2を有することである。ドッジング動作の後に、どのストレージ・ユニットにも同一ストライプからの2つの要素が含まれないことが重要である。すなわち、ストレージ・ユニットD4に保管されたストライプ3の要素のどれもが、ストライプ1の失われた要素の再作成のために選択されていない。というのは、ストレージ・ユニットD4のそれぞれに、既にストライプ1の要素が含まれるからである。同様に、ストレージ・ユニットD7に保管されたストライプ3の要素のどれもが、ストライプ2の失われた要素の再作成のために選択されていない。
したがって、ドッジングは、3つのストレージユニット故障の後に、図4のアレイ300の最小距離をD=1からD=2に復元する技法を提供する。さらに、アレイ300の有効最小距離は、アレイ300のシステムがまだ距離d=4を有するコードの書込性能を有する場合であっても、d=4からd=5に増えている。
有効距離が増える(3+3)コードに関する最小のアナモルフィック・アレイは、9ストレージ・ユニットのアレイである。9ストレージ・ユニットより大きいすべてのアレイも、(3+3)コードが使用される時に、増えた有効距離というプロパティを有する。(3+3)コードの8ストレージ・ユニットのアレイは、増えた有効距離というプロパティを有しない。12個のストレージ・ユニットに対して利用される(4+4)コードも、増えた有効距離というプロパティを有する。しかし、ドッジング動作は、最小アレイ距離がd=2の時に行われなければならない。その結果、ドッジング動作中のさらなるストレージユニット故障を許容することができる。
本発明の実施形態によれば、ドッジング動作は、アレイ内、別々のアレイの間、または、アレイと予備プールの間で実行することができ、後者を、本明細書で外部ドッジング動作と称する。予備プールに対して実行されるドッジング動作が可能ではあるが、通常は、予備で完全な再作成動作を実行し、予備プールが使い果たされた時に限ってドッジング動作を実行することがよりよい。これは、ドッジング動作が、寄贈されたストレージ・ユニット上で故障したストレージ・ユニットから一部の要素だけを再作成するが、予備作成(sparing)動作が、予備ストレージ・ユニット上で故障したストレージからすべての要素を再作成するからである。
外部ドッジング動作は、参照によって本明細書に組み込まれている同時係属のUSPatent Application Serial No.10/619,649に開示されたものなどのパリティ交換動作と異なる。すなわち、ドッジング動作は、ストライプを基礎として実行されるが、パリティ交換動作は、ストレージ・ユニットを基礎として実行される。
本発明による外部(アレイ対アレイ)ドッジング動作によって提供される利益を示すために、図10に示された例示的なアレイ900を検討されたい。アレイ900は、8つのストレージ・ユニットD1〜D8を含み、(3+3)対称コードを使用する。アレイ900に、符号1〜4によって示された4つのストライプも含まれる。各ストライプは、6つの要素を有し、距離d=4を有する。前に述べたように、アレイ900など、(3+3)コードを使用する8ストレージ・ユニットのアレイの内部のドッジング動作は、アレイの有効最小ハミング距離を増やさない。というのは、残りの故障していないストライプが、複数のユニット故障によって影響を受けるストライプの個数を補償するのには少なすぎるからである。
対照的に、図11に示された、3つの8ストレージユニット・アレイ1001を含む例示的なアレイ・システム1000を検討されたい。具体的に言うと、アレイ1001に、ストレージ・ユニットD1〜D8が含まれ、アレイ1002に、ストレージ・ユニットD9〜D16が含まれ、アレイ1003に、ストレージ・ユニットD17〜D24が含まれる。各めいめいのアレイ1001〜1003に、アレイ内に配置された4つのストライプも含まれる。たとえば、アレイ1001に、ストライプ1〜4が含まれ、アレイ1002に、ストライプ5〜8が含まれ、アレイ1003に、ストライプ9〜12が含まれる。
いずれか3つのストレージユニット故障の後に、同時係属のUS PatentApplication Serial No.10/619,649に開示されたものなどのパリティ交換動作を使用して、各アレイ1001〜1003が1つの故障したストレージ・ユニットを有することを保証すると仮定する。パリティ交換動作の結果は、たとえば、ストレージ・ユニットのブロック内に×を有して示されているストレージ・ユニットD1、D9、およびD17によって示されている。さらに、第4のストレージユニット故障が、パリティ交換動作の後に発生したと仮定する。第4のストレージユニット故障は、たとえば、ストレージ・ユニットD2のブロック内に×を有して示されている、アレイ1001内のストレージ・ユニットD2によって示されている。第4のストレージユニット故障の後に、アレイ1001、1002、および1003のそれぞれは、距離D=(2,3,3)を有する。ストレージ・ユニットD2以外の別のストレージ・ユニットが、第4のストレージユニット故障として故障する可能性があり、下で説明する手順に似た手順が、ストレージ・システムの有効距離を増やすために実行されることを理解されたい。
アレイ1001内のストライプ1、2、および3は、現在、距離d=2のみを有する。アレイ1001の内部のドッジング動作は、アレイ100の最小距離を2から3に増やすために少なくとも3つの距離d=4を有する要素が必要なので、失敗する。アレイ1001内のストライプ4だけが、距離d=4を有する。それでも、アレイの間の外部ドッジング動作によって、アレイ1002および1003の最小距離を変更せずに、アレイ1001の最小距離を2から3に増やすことが可能になる。これを達成するために、ストライプ1〜3のそれぞれの欠けている要素の1つの内容を、周知の形で、アレイ1001のストライプ4、アレイ1002のストライプ8、およびアレイ1003のストライプ12など、まだ距離d=4を有する他のストライプの要素に再作成する。
図12に、本発明による外部ドッジング動作を実行した後の図11のアレイ・システム1000を示す。具体的に言うと、ストライプ3の要素が、ストレージ・ユニットD3内のストライプ4での再作成のために選択される。ストライプ2の要素が、ストレージ・ユニットD10内のストライプ8での再作成のために選択される。最後に、ストライプ1の要素が、ストレージ・ユニットD17内のストライプ12での再作成のために選択される。
要素がドナー・ストライプ内で選択された時に、選択された要素を含むストレージ・ユニットは、レシピエント・ストライプの要素を含むことができない。たとえば、ストレージ・ユニットD7およびD8の両方にストライプ1の要素が含まれないので、ストレージ・ユニットD7またはストレージ・ユニットD8のいずれかに含まれるストライプ4の要素を、ストライプ1からの故障した要素の再作成に選択することができる。同様に、ストレージ・ユニットD5およびD6の両方にストライプ2の要素が含まれないので、ストレージ・ユニットD5またはストレージ・ユニットD6のいずれかに含まれるストライプ4の要素を、ストライプ2からの故障した要素の再作成に選択することができる。最後に、ストレージ・ユニットD3およびD4の両方にストライプ3の要素が含まれないので、ストレージ・ユニットD3またはストレージ・ユニットD4のいずれかに含まれるストライプ4の要素を、ストライプ3からの故障した要素の再作成に選択することができる。この例において、ストレージ・ユニットD3に含まれるストライプ4の要素が、ストライプ3の要素の再作成のためのドナー要素に選択されると仮定する。
d=4を有するストライプ8の要素のいずれか1つを、それぞれがd=2を有する残りのストライプのいずれか1つの故障した要素の再作成のために選択することができ、d=4を有するストライプ12の要素のいずれか1つを、それぞれがd=2を有する最後の残りのストライプの故障した要素の再作成のために選択することができる。この例示的な例において、ストレージ・ユニットD11に含まれるストライプ8の要素が、ストライプ2の要素の再作成のためのドナー要素に選択され、ストレージ・ユニットD19に含まれるストライプ12の要素が、ストライプ1の要素の再作成のためのドナー要素に選択されると仮定する。ドッジング動作の前のこの例示的な例のドッジング選択のそれぞれについて、ドナー・ストライプは、距離d=4を有し、レシピエント・ストライプ(すなわち、ストライプ1〜3)は、距離d=2を有する。
この外部ドッジング動作の正味の結果は、アレイ・システム1000が、4つの故障の後に最小距離D=3を有することである。対照的に、同時係属のUS Patent Application Serial No.10/619,649に開示されたものなどのパリティ交換動作だけを使用することによって、最小距離は2だけを有する。その結果、外部ドッジング動作が、アレイ・システム1000について利用される時に、アレイ・システム1000がd=2の最小距離を有するためには、4つの故障が必要である。これは、6つのユニットの4つのアレイとして配置され、各アレイが同時係属のUSPatent Application Serial No.10/619,649に開示されたものなどのパリティ交換動作だけを使用する、24ユニットのアレイ・システムと同一の結果である。したがって、パリティ交換動作と組み合わされたドッジング動作は、システム信頼性がアレイ構成と独立になることをもたらす。
パリティ交換動作と組み合わされた一般化されたドッジング動作の処理を、各さらなるストレージ・ユニット故障と共に継続することができる。上で説明したように、故障した要素が、残っている要素で再作成され、各アレイの最小距離が、最大化される。図10および11の例示的な24ユニットのアレイ・システムでは、システムのすべてのアレイについてd=2の最小距離に、8つのストレージユニット故障が必要である。各アレイの最小距離がd=2になったならば、もはや、システムの有効距離を増やすためにパリティ交換動作またはドッジング動作を実行することは不可能である。その結果、2つのさらなる故障が、データ消失をもたらす可能性がある。
経時的に、一般化されたドッジング動作は、もはや所与のアレイに局所的でないストライプをもたらす。したがって、ドナー・ストライプの選択を、ドナー要素の選択として実現することができる。
保守を介するなど、予備ユニットが使用可能になったならば、その予備ユニットを、故障したユニットのいずれかを交換するために割り当てることができる。最小の最小距離を有するストライプの要素を、予備ユニット上で再作成することが好ましい。図13の例を検討されたい。アレイ1200は、10個のストレージ・ユニットD1〜D10を含み、(3+3)対称コードを使用する。アレイ1200に、符号1〜5によって示された、5つのストライプも含まれる。各ストライプは、6つの要素を有し、距離d=4を有する。3つのストレージ・ユニットD1、D2、およびD4が、故障したものとして示され、ストライプ1の要素が、ユニットD10のストライプ5の要素上でドッジング動作を介して再作成されており、ストライプ4の要素が、ユニットD8のストライプ5の第2の要素上でドッジング動作を介して再作成されている。この時点で、ストライプ1、2、4、および5のすべてが、距離d=2を有し、ストライプ3が、距離d=3を有する。その後、予備がアレイ1200から使用可能にされた場合に、距離d=2のストライプからの情報を、その予備で再作成しなければならない。予備で再作成される要素は、ストライプ内に現在存在しない要素の組から選択されなければならない。たとえば、ユニットD2のストライプ1の要素が、ユニットD10上で再作成され、ユニットD1からのストライプ4の要素が、ユニットD8上で再作成されたと仮定する。予備で再作成される要素に、ストライプ1および4の再作成される要素を含めることはできない。再作成される要素を選択したならば、情報が、周知の形で予備上で再作成される。
ドナー要素選択の主判断基準は、ドナー・ストライプ信頼性に対する最も少ない影響を有するドナー要素を選択することに基づく。副判断基準は、最も高価な冗長性計算を有する要素など、性能に対する最小の影響を有するストレージ要素を選択することに基づく。図13の例では、主に、ストライプ5が最大の距離を有し、第2に、D8およびD10が最も高価なパリティ計算を有するので、ストライプ5の要素が選択された。D9は、既にストライプ4の要素を含むので、ストライプ4の要素の再作成のために選択することができない。再作成される情報の選択の主判断基準は、信頼性の最大の向上をもたらす情報セットに基づく。副判断基準は、再作成動作の後に最善のアレイ性能をもたらす情報セットを選択することである。図13の例では、ストライプ1および4の要素が、主に残りの距離に基づき、第2に選択された要素の再作成がドッジング動作の後に性能を最大にするので、再作成のために選択された。
一般化されたドッジングには、さらに重要な効果がある。図10および11の例で、一般化されたドッジング動作は、レシピエント・ストライプが距離d=2の時にアレイの間で実行されたが、内部ドッジング動作は、レシピエント・ストライプが距離d=1の時に9ユニット・アレイで実行された(図7および8)。したがって、外部ドッジング動作中のデータ消失のために、外部ドッジング動作に用いられるストライプ内で2つの故障が必要である。
ドナー・ストライプからレシピエント・ストライプへの寄贈は、ストレージ・システムがあるストライプから別のストライプに要素を割り当てることができることを必要とする。ドナー・ストライプおよびレシピエント・ストライプが、図1に示されているように共通のアレイ・コントローラ101に接続されている時には、コントローラ101が、この動作を内部で実行することができる。ドナー・ストライプおよびレシピエント・ストライプが、図2に示されているように別々のコントローラ151および152に接続されている時には、コントローラ151および152が、情報を交換する。たとえば、コントローラは、JBOD(Just a Bunch of Disks)アレイ構成の形のように、通信接続160を介して個々のドライブを公表することができる。その代わりに、コントローラが、用いられるストレージ・ユニットの位置から読み取られ、書き込まれるデータに関する情報を交換することができる。
ドッジングの技法を、アナモルフィック・アレイについて説明した。ドッジングは、最小距離d=3以上を有するアレイ・タイプと共に使用することができる。ただし、一般化されたドッジングは、対称アレイと共に最もよく働く。
ドッジングは、ストレージ・システムの最小距離を単純に増やすことを超えて使用することができる。多数の他の要因を、ドッジングを実行するかどうかの判定ならびにドナーおよびレシピエントの選択の判定に含めることができる。たとえば、不均一である時のコンポーネントの個々の故障確率、データ消失につながる故障の組合せ、およびシステム性能に対する影響のすべてを考慮することができる。その場合に、システムの最小距離を、ドッジングの後に変更されないままにすることができる。
本発明を、HDDストレージ・ユニットから形成されるストレージ・アレイに関して説明したが、本発明は、ランダム・アクセス・メモリ(RAM)ストレージ・デバイス(揮発性と不揮発性の両方)、光ストレージ・デバイス、およびテープ・ストレージ・デバイスなどの他のメモリ・デバイスのアレイから形成されるストレージ・システムに適用可能である。さらに、本発明は、network attached storageから作られたアレイなど、仮想化されたストレージ・システムに適する。さらに、本発明は、冗長コンポーネントをコンポーネントの特定のサブセットに関連付ける状態情報があり、その状態情報を寄贈動作を使用して転送できるすべての冗長システムに適用可能である。
前述の発明は、理解を明瞭にするために詳細に説明されたが、添付請求項の範囲内である変更および修正を実践できることは明白である。したがって、本実施形態は、例示的であって制限的でないものと考えられなければならず、本発明は、本明細書で与えられた詳細に制限されるのではなく、添付請求項の範囲および同等物の中で変更することができる。
共通のストレージ・コントローラに接続された複数のアレイを有するストレージ・システムの通常の構成を示す図である。 別々のストレージ・コントローラに接続された複数のアレイを有するストレージ・システムの通常の構成を示す図である。 6つのストレージ・ユニットを有する例示的なアナモルフィック・アレイを示す図である。 本発明の実施形態によるドッジング動作の利益を示す、9つのストレージ・ユニットを有する例示的なアナモルフィック・アレイを示す図である。 図4に示されたアナモルフィック・アレイの第1の3ストレージユニット故障配置を示す図である。 図4に示されたアナモルフィック・アレイの第2の3ストレージユニット故障配置を示す図である。 本発明の実施形態によるドッジング動作を実行した後の図6のアレイを示す図である。 図4に示されたアナモルフィック・アレイの第3の3ストレージユニット故障配置を示す図である。 本発明の実施形態によるドッジング動作を実行した後の図8のアレイを示す図である。 (3+3)対称コードを使用する、8つのストレージ・ユニットを有する例示的なアレイを示す図である。 3つの8ストレージユニット・アレイを有するシステムを示す図である。 本発明の実施形態による外部ドッジング動作を実行した後の図11のアレイ・システムを示す図である。 ドッジング動作の組の後の3つの故障したストレージ・ユニットを有する10ストレージ・ユニット・アレイを示す図である。
符号の説明
100 ストレージ・システム
101 アレイ・コントローラ
102、103 ストレージ・アレイ
104 ストレージ・ユニット
105、106 インターフェース
150 ストレージ・システム
151、152 アレイ・コントローラ
153、154 ストレージ・アレイ
156、157、158、159 インターフェース
160 通信接続
200 アレイ
300 アナモルフィック・アレイ
900 アレイ
1000 アレイ・システム
1001、1002、1003 アレイ
1200 アレイ

Claims (13)

  1. m個のストレージ・ユニットのアレイのエラー許容範囲を増やす方法であって、
    m個のストレージ・ユニットの前記アレイにまたがってk個のストライプを保管するステップであって、各ストライプが複数の要素を有し、各ストライプが最小ハミング距離dを有する消去または誤り訂正コードを形成し、ストライプの各めいめいの要素が、異なるストレージ・ユニットに保管される、ステップと;
    ドナー・ストライプの最小距離とレシピエント・ストライプの最小距離との間の差が2以上の時に前記ドナー・ストライプ内の要素を選択するステップであって、前記選択された要素が、前記レシピエント・ストライプの要素を有しないストレージ・ユニットに保管される、ステップと;
    前記選択された要素上で前記レシピエント・ストライプの失われた要素を再作成するステップとを含み、
    前記各ストライプが、n+r個の要素を含み、nが、ベース・アレイのデータ要素の個数であり、rが、ベース・アレイの冗長要素の個数であり、m>n+r、jm=k(n+r)であり、m、k、d、n、rおよびjが正の整数である、
    方法。
  2. 前記消去または誤り訂正コードが、パリティ・コード;Winogradコード;対称コード;リード−ソロモン・コード;EVENODDコード;またはEVENODDコードの派生物のうちの1つである、請求項1に記載の方法。
  3. 故障の選択されたパターンに脆弱なm個のストレージ・ユニットのアレイの故障許容範囲を増やす方法であって、
    m個のストレージ・ユニットの前記アレイにまたがってk個のストライプを保管するステップであって、各ストライプが、複数の要素を有し、各ストライプが、最小ハミング距離dを有する消去または誤り訂正コードを形成し、ストライプの各めいめいの要素が、異なるストレージ・ユニットに保管される、ステップと;
    要素故障の後に、レシピエント要素を選択するステップと;前記アレイの故障許容範囲が再作成動作の後に増えるように、ドナー・ストライプ内の要素を選択するステップと;
    前記ドナー・ストライプの前記選択された要素上でレシピエント・ストライプの失われた要素を再作成するステップとを含み、
    前記各ストライプが、n+r個の要素を含み、nが、ベース・アレイのデータ要素の個数であり、rが、ベース・アレイの冗長要素の個数であり、m>n+r、jm=k(n+r)であり、m、k、d、n、rおよびjが正の整数である、
    方法。
  4. m個のストレージ・ユニットのアナモルフィック・アレイであって、
    k個のストライプがm個のストレージ・ユニットの前記アレイにまたがって保管され、各ストライプが複数の要素を有し、各ストライプが最小ハミング距離dを有する消去または誤り訂正コードを形成し、ストライプの各めいめいの要素が、異なるストレージ・ユニットに保管される、m個のストレージ・ユニットのアレイと;
    ドナー・ストライプの最小距離とレシピエント・ストライプの最小距離との間の差が2以上の時に前記ドナー・ストライプ内の要素を選択するシステム・アレイ・コントローラであって、前記選択された要素が、前記レシピエント・ストライプの要素を有しないストレージ・ユニットに保管される、システム・アレイ・コントローラとを有し;
    前記各ストライプが、n+r個の要素を含み、nが、ベース・アレイのデータ要素の個数であり、rが、ベース・アレイの冗長要素の個数であり、m>n+r、jm=k(n+r)であり、m、k、d、n、rおよびjが正の整数であり、
    前記システム・アレイ・コントローラが、前記選択された要素上で前記レシピエント・ストライプの失われた要素を再作成するデータ・ストレージ・システム。
  5. 前記選択された要素上で前記レシピエント・ストライプの失われた要素を再作成する前に、前記システム・アレイ・コントローラが、前記選択された要素が寄贈されたことを前記ドナー・ストライプを保管する前記ストレージ・ユニットに示す、請求項4に記載のデータ・ストレージ・システム。
  6. 前記システム・アレイ・コントローラが、前記アレイに対する最小限の性能影響にさらに基づいて前記ドナー・ストライプを選択する、請求項4に記載のデータ・ストレージ・システム。
  7. 前記システム・アレイ・コントローラが、前記アレイの改善された性能に基づいてレシピエント情報を選択する、請求項4に記載のデータ・ストレージ・システム。
  8. 前記システム・アレイ・コントローラが前記選択された要素上で前記レシピエント・ストライプからレシピエント情報の少なくとも一部を再作成している時に前記ドナー・ストライプ内の要素が故障した時に、前記システム・アレイ・コントローラが、前記選択された要素上で前記レシピエント・ストライプから前記レシピエント情報を再作成するのを打ち切り、第2ドナー・ストライプの最小距離と第2レシピエント・ストライプの最小距離との間の差が2以上である時に複数のストライプから前記第2ドナー・ストライプを選択し、前記第2ドナー・ストライプ内でドナー要素を選択し、前記第2ドナー・ストライプ内の前記選択された要素上で前記レシピエント・ストライプから失われたレシピエント情報の少なくとも一部を再作成する、請求項4に記載のデータ・ストレージ・システム。
  9. 予備要素が使用可能になった時に、前記システム・アレイ・コントローラが、前記予備要素を選択されたストレージ・ユニットに割り当てる、請求項4に記載のデータ・ストレージ・システム。
  10. m個のストレージ・ユニットのアレイであって、
    k個のストライプが、m個のストレージ・ユニットの前記アレイにまたがって保管され、各ストライプが、複数の要素を有し、各ストライプが、最小ハミング距離dを有する消去または誤り訂正コードを形成し、ストライプの各めいめいの要素が、異なるストレージ・ユニットに保管される、m個のストレージ・ユニットのアレイと;
    要素故障の後にレシピエント・ストライプを選択し、前記アレイの故障許容範囲が再作成動作の後に増えるように、ドナー・ストライプ内の要素を選択するシステム・アレイ・コントローラであって、前記システム・アレイ・コントローラが、前記ドナー・ストライプの前記選択された要素上で前記レシピエント・ストライプの失われた要素を再作成する、システム・アレイ・コントローラとを含み、
    前記各ストライプが、n+r個の要素を含み、nが、ベース・アレイのデータ要素の個数であり、rが、ベース・アレイの冗長要素の個数であり、m>n+r、jm=k(n+r)であり、m、k、d、n、rおよびjが正の整数である、
    データ・ストレージ・システム。
  11. 前記レシピエント・ストライプの最小ハミング距離が、前記システム・アレイ・コントローラが前記ドナー・ストライプ内の要素を選択する前にd≧2である、請求項4または10に記載のデータ・ストレージ・システム。
  12. 前記アレイの最小ハミング距離が、前記ドナー・ストライプの前記選択された要素上での前記レシピエント・ストライプの前記失われた要素の再作成の完了時に増える、請求項4または10に記載のデータ・ストレージ・システム。
  13. ストレージ・ユニットの複数のアレイであって、
    各アレイが、m個のストレージ・ユニットを有し、k個のストライプが、m個のストレージ・ユニットの各めいめいのアレイにまたがって保管され、各ストライプが、複数の要素を有し、各ストライプが、最小ハミング距離d=n+1を有する消去または誤り訂正コードを形成し、ストライプの各めいめいの要素が、前記アレイ内の異なるストレージ・ユニットに保管される、ストレージ・ユニットの複数のアレイと;
    ドナー・ストライプの最小距離とレシピエント・ストライプの最小距離との間の差が2以上の時に前記ドナー・ストライプ内の要素を選択するシステム・アレイ・コントローラであって、前記選択された要素が、前記レシピエント・ストライプの要素を有しないストレージ・ユニットに保管され、前記システム・アレイ・コントローラが、前記選択された要素上で前記レシピエント・ストライプの失われた要素を再作成する、システム・アレイ・コントローラとを有し、
    前記各ストライプが、n+r個の要素を含み、nが、ベース・アレイのデータ要素の個数であり、rが、ベース・アレイの冗長要素の個数であり、m>n+r、jm=k(n+r)であり、m、k、d、n、rおよびjが正の整数である、
    データ・ストレージ・システム。
JP2006519917A 2003-07-14 2004-07-07 データ・ストレージ・アレイ Expired - Fee Related JP4756704B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/619,641 US7533325B2 (en) 2003-07-14 2003-07-14 Anamorphic codes
US10/619,641 2003-07-14
PCT/EP2004/051382 WO2005006215A2 (en) 2003-07-14 2004-07-07 Redundant resource balancing in a data storage array

Publications (2)

Publication Number Publication Date
JP2007529061A JP2007529061A (ja) 2007-10-18
JP4756704B2 true JP4756704B2 (ja) 2011-08-24

Family

ID=34062605

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006519917A Expired - Fee Related JP4756704B2 (ja) 2003-07-14 2004-07-07 データ・ストレージ・アレイ

Country Status (12)

Country Link
US (2) US7533325B2 (ja)
EP (1) EP1644851B1 (ja)
JP (1) JP4756704B2 (ja)
KR (1) KR101054814B1 (ja)
CN (1) CN100465908C (ja)
AT (1) ATE423350T1 (ja)
CA (1) CA2532997C (ja)
DE (1) DE602004019534D1 (ja)
ES (1) ES2318323T3 (ja)
SG (1) SG145728A1 (ja)
TW (1) TWI317475B (ja)
WO (1) WO2005006215A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6730883B2 (en) * 2002-10-02 2004-05-04 Stratagene Flexible heating cover assembly for thermal cycling of samples of biological material
JP2011199414A (ja) * 2010-03-17 2011-10-06 Toshiba Corp 素材収録装置及び素材収録方法
US8392805B2 (en) 2010-07-15 2013-03-05 Hewlett-Packard Development Company, L. P. Non-MDS erasure codes for storage systems
US8433979B2 (en) * 2011-02-28 2013-04-30 International Business Machines Corporation Nested multiple erasure correcting codes for storage arrays
US8874995B2 (en) * 2012-02-02 2014-10-28 International Business Machines Corporation Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
CN103577274B (zh) 2012-07-31 2016-07-06 国际商业机器公司 管理存储器阵列的方法和装置
CN102929743A (zh) * 2012-11-28 2013-02-13 中国人民解放军国防科学技术大学 具有软错误容错功能的一级缓存数据存储方法及装置
TWI461901B (zh) * 2012-12-10 2014-11-21 Ind Tech Res Inst 資料儲存與重建的方法與系統
US9594634B2 (en) * 2014-06-02 2017-03-14 Intel Corporation Techniques to efficiently compute erasure codes having positive and negative coefficient exponents to permit data recovery from more than two failed storage units
WO2017039274A1 (ko) * 2015-08-30 2017-03-09 엘지전자 주식회사 무선 통신 시스템에서 클러스터 기반 협력 전송 방법 및 이를 위한 장치
EP3364541B1 (en) 2016-12-24 2019-08-14 Huawei Technologies Co., Ltd. Storage controller, data processing chip, and data processing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100960A (ja) * 1991-06-13 1993-04-23 Internatl Business Mach Corp <Ibm> 記憶サブシステム及びパリテイ・グループの一部を再生する方法
JPH10260789A (ja) * 1997-03-17 1998-09-29 Fujitsu Ltd デバイスアレイ・システム

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3949208A (en) * 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US5148432A (en) 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5680574A (en) 1990-02-26 1997-10-21 Hitachi, Ltd. Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
US5134619A (en) * 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
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
US5301297A (en) 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
US5257391A (en) 1991-08-16 1993-10-26 Ncr Corporation Disk controller having host interface and bus switches for selecting buffer and drive busses respectively based on configuration control signals
US5506977A (en) 1991-12-17 1996-04-09 Dell Usa, L.P. Method and controller for minimizing reads during partial stripe write operations to a disk drive
US5398253A (en) 1992-03-11 1995-03-14 Emc Corporation Storage unit generation of redundancy information in a redundant storage array system
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5666511A (en) 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
US6269453B1 (en) 1993-06-29 2001-07-31 Compaq Computer Corporation Method for reorganizing the data on a RAID-4 or RAID-5 array in the absence of one disk
US5485571A (en) 1993-12-23 1996-01-16 International Business Machines Corporation Method and apparatus for providing distributed sparing with uniform workload distribution in failures
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
KR100275900B1 (ko) 1996-09-21 2000-12-15 윤종용 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
US6161165A (en) 1996-11-14 2000-12-12 Emc Corporation High performance data path with XOR on the fly
US6154853A (en) 1997-03-26 2000-11-28 Emc Corporation Method and apparatus for dynamic sparing in a RAID storage system
US6028933A (en) * 1997-04-17 2000-02-22 Lucent Technologies Inc. Encrypting method and apparatus enabling multiple access for multiple services and multiple transmission modes over a broadband communication network
US5937428A (en) 1997-08-06 1999-08-10 Lsi Logic Corporation Method for host-based I/O workload balancing on redundant array controllers
US6081812A (en) * 1998-02-06 2000-06-27 Ncr Corporation Identifying at-risk components in systems with redundant components
US6353895B1 (en) 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6138125A (en) 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US7000069B2 (en) 1999-04-05 2006-02-14 Hewlett-Packard Development Company, L.P. Apparatus and method for providing very large virtual storage volumes using redundant arrays of disks
US6275898B1 (en) 1999-05-13 2001-08-14 Lsi Logic Corporation Methods and structure for RAID level migration within a logical unit
US6530004B1 (en) 2000-06-20 2003-03-04 International Business Machines Corporation Efficient fault-tolerant preservation of data integrity during dynamic RAID data migration
US6883131B2 (en) * 2001-09-28 2005-04-19 Sun Microsystems, Inc. XOR processing incorporating error correction code data protection
US7346831B1 (en) * 2001-11-13 2008-03-18 Network Appliance, Inc. Parity assignment technique for parity declustering in a parity array of a storage system
US20030149750A1 (en) * 2002-02-07 2003-08-07 Franzenburg Alan M. Distributed storage array
US7350126B2 (en) 2003-06-23 2008-03-25 International Business Machines Corporation Method for constructing erasure correcting codes whose implementation requires only exclusive ORs
US7379974B2 (en) 2003-07-14 2008-05-27 International Business Machines Corporation Multipath data retrieval from redundant array
US7254754B2 (en) 2003-07-14 2007-08-07 International Business Machines Corporation Raid 3+3
US7281177B2 (en) 2003-07-14 2007-10-09 International Business Machines Corporation Autonomic parity exchange
US7970994B2 (en) * 2008-03-04 2011-06-28 International Business Machines Corporation High performance disk array rebuild

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100960A (ja) * 1991-06-13 1993-04-23 Internatl Business Mach Corp <Ibm> 記憶サブシステム及びパリテイ・グループの一部を再生する方法
JPH10260789A (ja) * 1997-03-17 1998-09-29 Fujitsu Ltd デバイスアレイ・システム

Also Published As

Publication number Publication date
CA2532997A1 (en) 2005-01-20
CN100465908C (zh) 2009-03-04
CA2532997C (en) 2012-07-24
JP2007529061A (ja) 2007-10-18
US20090132890A1 (en) 2009-05-21
ES2318323T3 (es) 2009-05-01
US20050015656A1 (en) 2005-01-20
DE602004019534D1 (de) 2009-04-02
CN1898650A (zh) 2007-01-17
WO2005006215A3 (en) 2006-08-17
EP1644851A2 (en) 2006-04-12
KR101054814B1 (ko) 2011-08-05
EP1644851B1 (en) 2009-02-18
US8386891B2 (en) 2013-02-26
KR20060037319A (ko) 2006-05-03
ATE423350T1 (de) 2009-03-15
US7533325B2 (en) 2009-05-12
SG145728A1 (en) 2008-09-29
TWI317475B (en) 2009-11-21
WO2005006215A2 (en) 2005-01-20
TW200515141A (en) 2005-05-01

Similar Documents

Publication Publication Date Title
US8386891B2 (en) Anamorphic codes
JP4516846B2 (ja) ディスク・アレイ・システム
US7788569B2 (en) Autonomic parity exchange
US7529970B2 (en) System and method for improving the performance of operations requiring parity reads in a storage array system
US7149847B2 (en) RAID 6 disk array architectures
US8839028B1 (en) Managing data availability in storage systems
US7562281B2 (en) Autonomic parity exchange
JP6655175B2 (ja) データ・ストレージ・システムにおける自律パリティ交換方法、プログラム、およびシステム
JP3676793B2 (ja) ディスクアレイ装置
JP3699473B2 (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100413

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20100423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100705

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110408

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110415

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110524

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees