JP2011227859A - 破損データまたはシンドローム・ブロックの突止めおよび訂正 - Google Patents

破損データまたはシンドローム・ブロックの突止めおよび訂正 Download PDF

Info

Publication number
JP2011227859A
JP2011227859A JP2010179253A JP2010179253A JP2011227859A JP 2011227859 A JP2011227859 A JP 2011227859A JP 2010179253 A JP2010179253 A JP 2010179253A JP 2010179253 A JP2010179253 A JP 2010179253A JP 2011227859 A JP2011227859 A JP 2011227859A
Authority
JP
Japan
Prior art keywords
block
syndrome
data
data blocks
syndrome block
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.)
Pending
Application number
JP2010179253A
Other languages
English (en)
Inventor
L Segura Zeresa
エル. セグラ ゼレサ
Batwara Ashish
バットワラ アシシュ
G Lomelino William
ジー. ロメリノ ウィリアム
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.)
LSI Corp
Original Assignee
LSI 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 LSI Corp filed Critical LSI Corp
Publication of JP2011227859A publication Critical patent/JP2011227859A/ja
Pending legal-status Critical Current

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
    • 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/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】破壊または不正確データをもつ、RAIDレベル6ストライプのデータ・ブロックを判定する方法およびシステムを提供する。
【解決手段】ストライプの各データ・ブロックごとに、他のデータ・ブロックおよびPシンドローム・データ・ブロックを使って復元データ・ブロックが作成される。復元データ・ブロックおよび他のデータ・ブロックは、新しいQシンドローム・データ・ブロックを作成するのに使われる。新しいQシンドローム・データ・ブロックと格納Qシンドローム・データ・ブロックが比較される。新しいQシンドローム・データ・ブロックと格納Qシンドローム・データ・ブロックが一致する場合、データ・ブロックには、破壊または不正確データをもつ疑いがあるものとして印がつけられる。このプロセスは、ストライプ中のすべてのデータ・ブロックに対して繰り返される。不審データ・ブロックがただ1つしかない場合、復元データ・ブロックは、不審データ・ブロックの置換物としてストライプに格納される。
【選択図】図4

Description

本発明は、記憶システムにおけるデータの正確性および整合性を維持するシステムおよび方法に関する。より詳細には、本発明は、RAIDレベル6ストライプのどのデータ・ブロックが破壊または不正確データをもつか判定する方法およびシステムに関する。
大容量記憶システムは、ユーザ要求を満たすために記憶容量を増大させ続けている。写真および動画記憶、ならびに写真および動画共有は、さらに大規模な記憶システムに対する要求の高まりを刺激するアプリケーションの例である。
こうした増大する要求に対する解決法は、複数の安価なディスクからなるアレイの使用である。こうしたアレイは、データを全く損失せずに冗長性および誤り回復を提供するように構成することができる。こうしたアレイは、データを複数のディスク・ドライブに同時に読み込ませ、書き込ませることによって、読み書き性能を向上するように構成することもできる。こうしたアレイは、アレイの記憶サービスを中断せずに損傷ディスクを置き換えさせる「ホットスワップ」を可能にするように構成することもできる。何らかの冗長性が与えられるかどうかに関わらず、こうしたアレイは一般に、独立ディスクの冗長アレイ(redundant arrays of independent disks、またはより一般的には、頭字語によってRAID)と呼ばれる。「A Case for Redundant Arrays of Inexpensive Disks(RAID)」というタイトルの、David A.PattersonらによるUniversity of California、Berkeleyからの1987年の発表は、RAID技術の根本的概念およびレベルについて論じている。
RAID記憶システムは一般に、記憶アレイの管理詳細をユーザまたはホスト・システムに見せないコントローラを使用する。コントローラは、記憶アレイを、1つまたは複数のディスク・ドライブ(またはボリューム)として見せる。これは、ある特定のボリュームに対するデータ(または冗長データ)が、複数のディスク・ドライブにまたがり得るという事実にも関わらず、遂行される。
「A Case for Redundant Arrays of Inexpensive Disks(RAID)」、David A.Pattersonら、University of California、Berkeley、1987年
本発明の実施形態はしたがって、データの正確性を維持する方法であって、複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含むRAIDストライプを受け取ること、前記複数のデータ・ブロックに基づいて、第1の算出シンドローム・ブロックおよび第2の算出シンドローム・ブロックを判定すること、前記第1の格納シンドローム・ブロックと前記第1の算出シンドローム・ブロックが等しくなく、および前記第2の格納シンドローム・ブロックと前記第2の算出シンドローム・ブロックが等しくないという判定に基づいて、前記複数のデータ・ブロックの不審データ・ブロックを選択することを含み、前記選択に用いられる方法が、前記第1の格納シンドローム・ブロックと、前記複数のデータ・ブロックの1つのデータ・ブロックを含まない、前記複数のデータ・ブロックのサブセットとに基づいて、前記複数のデータ・ブロックのうち1つの復元データ・ブロックを判定すること、前記複数のデータ・ブロックの前記サブセットおよび前記複数のデータ・ブロックのうち前記1つの復元データ・ブロックに基づいて、復元された第2のシンドローム・ブロックを判定すること、ならびに、前記復元された第2のシンドローム・ブロックと前記第2の格納シンドローム・ブロックが等しいという判定に基づいて、前記複数のデータ・ブロックの前記1つのデータ・ブロックを、前記不審データ・ブロックとして選択することを含む方法を含み得る。
本発明の実施形態はしたがって、RAIDストライプ中の整合データおよびシンドロームを維持する方法であって、複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含む前記RAIDストライプを読み込むこと、前記複数のデータ・ブロックに基づいて、第1の算出シンドローム・ブロックを判定すること、前記複数のデータ・ブロックに基づいて、第2の算出シンドローム・ブロックを判定すること、前記第1の格納シンドローム・ブロックを前記第1の算出シンドローム・ブロックと比較することによって、第1の等価性インジケータを判定すること、前記第2の格納シンドローム・ブロックを前記第2の算出シンドローム・ブロックと比較することによって、第2の等価性インジケータを判定すること、前記第1の格納シンドローム・ブロックが前記第1の算出シンドローム・ブロックと等しくないことを前記第1の等価性インジケータが示す場合、および前記第2の格納シンドローム・ブロックが前記第2の算出シンドローム・ブロックと等しくないことを前記第2の等価性インジケータが示す場合、少なくとも1つの不審ブロックを判定することを含み、前記判定に用いられる方法が、前記複数のデータ・ブロックそれぞれに対して、前記第1の格納シンドローム・ブロックを使って、前記データ・ブロックのうち、1つの復元データ・ブロックを復元すること、前記データ・ブロックの前記1つの復元データ・ブロックと、前記複数のデータ・ブロックの前記1つのデータ・ブロックを除く前記複数のデータ・ブロックとを使って、復元された第2のシンドローム・ブロックを判定すること、前記データ・ブロックの前記1つのデータ・ブロックに関連づけられた、前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しいかどうかを示す不審ブロック・インジケータを判定すること、前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しいことを示す、関連した不審ブロック・インジケータをもつ、前記複数のデータ・ブロックの1つのデータ・ブロックがある場合、前記複数のデータ・ブロックの前記1つのデータ・ブロックに関連づけられた、前記データ・ブロックの前記1つの復元データ・ブロックを前記RAIDストライプに格納することを含む方法をさらに含み得る。
本発明の実施形態はしたがって、RAIDストライプを提供するように構成された複数のディスク・ドライブと、前記RAIDストライプを受け取るように構成されたRAIDプロセッサとを備え、前記RAIDストライプが、複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含み、前記RAIDプロセッサが、前記複数のデータ・ブロックに基づいて第1の算出シンドローム・ブロックおよび第2の算出シンドローム・ブロックを判定し、前記第1の格納シンドローム・ブロックと前記第1の算出シンドローム・ブロックが等しくなく、かつ前記第2の格納シンドローム・ブロックと前記第2の算出シンドローム・ブロックが等しくないと判定し、前記第1の格納シンドローム・ブロックと、前記複数のデータ・ブロックの1つのデータ・ブロックを含まない、前記複数のデータ・ブロックのサブセットとに基づいて、前記複数のデータ・ブロックの1つの復元データ・ブロックを判定し、前記複数のデータ・ブロックの前記サブセットと、前記複数のデータ・ブロックの前記1つの復元データ・ブロックとに基づいて、復元された第2のシンドローム・ブロックを判定し、前記復元された第2のシンドローム・ブロックと前記第2の格納シンドローム・ブロックが等しいという判定に基づいて、前記複数のデータ・ブロックの前記1つのデータ・ブロックを、前記不審データ・ブロックとして選択するように構成された記憶システムをさらに含み得る。
RAID記憶システムを示すブロック図である。 単純パリティ(P)およびリードソロモン(Q)冗長情報を有するRAID記憶システムを示すブロック図である。 データの正確性を維持する方法を示すフローチャートである。 破壊された可能性のあるデータ・ブロックを判定する方法を示すフローチャートである。 コンピュータを示すブロック図である。
図1は、RAID記憶システムを示すブロック図である。図1において、記憶システム100は、ディスク・アレイ110、RAIDコントローラ120、ホスト130、ホスト131、仮想ボリューム140、仮想ボリューム141、および仮想ボリューム142からなる。ディスク・アレイ110は、少なくとも第1のドライブ111、第2のドライブ112、第3のドライブ113、および第4のドライブ114を含む。ディスク・アレイ110は、より多くのディスク・ドライブを含んでもよい。ただし、こうしたドライブは、簡潔にするために図1からは省いてある。第1のドライブ111は、データ・ブロック1110、1111、1112を含む。第2のドライブ112は、データ・ブロック1120、1121、1122を含む。第3のドライブ113は、第1の格納シンドローム・ブロック1130、1131、1132を含む。第4のドライブ114は、第2の格納シンドローム・ブロック1140、1141、1142を含む。
ディスク・アレイ110、およびドライブ111〜114は、RAIDコントローラ120に動作可能に結合される。したがって、RAIDコントローラ120は、ドライブ111〜114およびブロック1110〜1112、1120〜1122、1130〜1132、1140〜1142を制御し、スパニングし、かつ/またはストライピングするように動作して、RAIDレベル6(RAID6)機能性を提供することができる。RAID6は、ディスク・アレイ110の全メンバ・ディスクに分散された2つのパリティ・ブロックでの、ブロック・レベルのストライピングを用いることができる。このスパニングおよび/またはストライピングの結果、格納シンドローム・ブロック1130〜1132、1140〜1142が、ドライブ111〜114の1つまたは複数に実際に存在することになる。同様に、データ・ブロック1110〜1112、1120〜1122は、ドライブ111〜114の1つまたは複数に存在し得る。ただし、簡潔明瞭にするために、シンドローム・ブロック1130〜1132、1140〜1142は、ドライブ113、114上に存在するものとして示し、論じる。データ・ブロック1110〜1112、1120〜1122は、ドライブ111、112上に存在するものとして示し、論じる。ドライブ111〜114は、実際の物理ドライブでも、仮想ドライブでもよいことに留意されたい。したがって、1つまたは複数のデータ・ブロック、第1のシンドローム・ブロック、および第2のシンドローム・ブロックを含むRAIDストライプは、データ・ブロック1110〜1112、1120〜1122(および図示しない他のデータ・ブロック)ならびにシンドローム・ブロック1130〜1132、1140〜1142の様々な組合せまたはマッピングに格納することができる。
Raidコントローラ120は、第1のシンドローム・エンジン121を含む。第1のシンドローム・エンジン121は、少なくともデータ・ブロック1110〜1112、1120〜1122に基づいて第1の格納シンドローム・ブロック1130〜1132を算出し、かつ/またはチェックするモジュールでもプロセスでもよい。第1のシンドローム・エンジン121は、第1の格納シンドローム・ブロック1130〜1132の算出および/またはチェックの性能を向上するための専用ハードウェアを含み得る。ある実施形態では、第1のシンドローム・エンジンは、第1の格納シンドローム・ブロック1130〜1132を算出し、かつ/またはチェックするために、データ・ブロック1110〜1112のビット単位XORを算出することができる。
Raidコントローラ120は、第2のシンドローム・エンジン122を含む。第2のシンドローム・エンジン122は、少なくともデータ・ブロック1110〜1112、1120〜1122に基づいて第2の格納シンドローム・ブロック1140〜1142を算出し、かつ/またはチェックするモジュールでもプロセスでもよい。第2のシンドローム・エンジン122は、第2の格納シンドローム・ブロック1140〜1142の算出および/またはチェックの性能を向上するための専用ハードウェアを含み得る。ある実施形態では、第2のシンドローム・エンジンは、第2の格納シンドローム・ブロック1140〜1142を算出し、かつ/またはチェックするために、データ・ブロック1110〜1112、1120〜1122のリードソロモン・コードを算出することができる。ただし、RAID6機能性を提供する他の方法またはエンコーディングが用いられ得ることを理解されたい。たとえば、RAID6機能性を実装するのに、直交二重パリティ・チェック・データおよび対角線パリティが用いられ得る。
RAIDコントローラ120は、ホスト130に仮想ボリューム140を投影することができる。RAIDコントローラ120は、ホスト131に仮想ボリューム141〜142を投影することができる。RAIDコントローラ120は、追加仮想ボリュームを投影することもできる。ただし、こうしたボリュームは、簡潔にするために図1からは省いてある。RAID構成から作成されると、仮想ボリューム140〜142は、ホスト・コンピュータ130〜131によってアクセスすることができる。
ある実施形態では、RAIDコントローラ120は、データ・ブロック1110〜1112、1120〜1122またはシンドローム・ブロック1130〜1132、1140〜1142を分離し訂正する。RAIDコントローラ120が訂正するエラーは、データ・ブロック1110〜1112、1120〜1122によって格納されたデータと、シンドローム・ブロック1130〜1132、1140〜1142の少なくとも1つによって格納されたデータとの間の不一致によって表わされる。
RAIDコントローラ120は、ディスク・アレイ110によって格納されたRAIDストライプのデータおよびシンドローム・ブロックを読み込む。RAIDコントローラ120は、RAIDストライプから読み込まれたデータに基づいて、第1のシンドローム・ブロックおよび第2のシンドローム・ブロックを算出する。こうした算出シンドローム・ブロックは、ディスク・アレイ110上に格納されていたシンドローム・ブロック(たとえば、格納シンドローム・ブロック)と比較される。こうした比較の結果、算出および格納シンドローム・ブロックの等価性のインジケータが作成され、または格納され得る。
格納および算出シンドローム・ブロック両方が一致する場合、RAIDコントローラ120は、データ・ブロック1110〜1112、1120〜1122によって格納されたデータと、シンドローム・ブロック1130〜1132、1140〜1142のいずれか1つによって格納されたデータとの間の不一致を見つけていない。第1の算出シンドローム・ブロックが第1の格納シンドローム・ブロックと一致せず、かつ第2の算出シンドローム・ブロックが第2の格納シンドローム・ブロックと一致する場合、RAIDコントローラ120は、ストライプ中のデータ、第2の格納シンドローム・ブロック、および第1の算出シンドローム・ブロックが正しいと判定する。したがって、RAIDコントローラ120は、第1の算出シンドローム・ブロックをディスク・アレイ110に書き込む。
第2の算出シンドローム・ブロックが第2の格納シンドローム・ブロックと一致せず、かつ第1の算出シンドローム・ブロックが第1の格納シンドローム・ブロックと一致する場合、RAIDコントローラ120は、ストライプ中のデータ、第1の格納シンドローム・ブロック、および第2の算出シンドローム・ブロックが正しいと判定する。したがって、RAIDコントローラ120は、第2の算出シンドローム・ブロックをディスク・アレイ110に書き込む。
第1の算出シンドローム・ブロックが第1の格納シンドローム・ブロックと一致せず、かつ第2の算出シンドローム・ブロックが第2の格納シンドローム・ブロックと一致しない場合、RAIDコントローラ120は、データ・ブロック1110〜1112、1120〜1122の1つまたは複数が不正確な可能性があると判定する。RAIDコントローラ120は、RAIDストライプ中のデータ・ブロックのどの1つまたは複数が他のデータ・ブロックならびに第1および第2の(格納または算出)シンドローム・ブロックと整合しないかの判定に進む。
Raidコントローラ120は、第1のデータ・ブロックを選択する。この第1のデータ・ブロックは、RAIDストライプの他のデータ・ブロックおよび第1の格納シンドローム・ブロックを使って復元される。復元された第1のデータ・ブロックは次いで、他のデータ・ブロックとともに、新しい第2のシンドローム・ブロックを算出するのに使われる。この新しい第2のシンドローム・ブロックは、第2の格納シンドローム・ブロックと比較される。新しい第2のシンドローム・ブロックと第2の格納シンドローム・ブロックが一致する場合、この第1のデータ・ブロックには、不良データを保持している疑いがあるものとして印がつけられる。このプロセスは、RAIDストライプ中のデータ・ブロックそれぞれに対して繰り返される。この印づけの結果、対応するブロックに関連づけられた不審ブロック・インジケータが作成され、または格納され得る。
RAIDストライプ中のデータ・ブロックすべてが上述したようにスキャンされると、RAIDコントローラ120は、複数のデータ・ブロックに、不良データを保持している疑いがあるものとして印がつけられたかどうか判定する。単一のデータ・ブロックが、不良データを保持している疑いがあると識別された場合、RAIDコントローラ120は、そのブロックに対するデータを、第1の格納シンドローム・ブロックおよびRAIDストライプの他のデータ・ブロックから復元する(または、予め算出されたデータを使う)。複数のドライブが、不良データを保持している疑いがあると識別された場合、RAIDコントローラ120は、第1および第2の算出シンドローム・ブロックを再生成し(または、予め算出された第1および第2の算出シンドローム・ブロックを使い)、その一方または両方をディスク・アレイ110に書き込むことができる。再生成された、または予め算出された第1および第2の算出シンドローム・ブロックのうち1つまたは複数のブロックの書込みは、任意選択のステップであることを理解されたい。ある実施形態では、RAIDコントローラ120は、RAIDストライプ全体に、不良データ(および/または1つまたは複数の不良シンドローム)を保持する疑いがあるものとして印をつけるインジケータをセットすることができる。
図2は、単純パリティ(P)およびリードソロモン(Q)冗長情報を有するRAID記憶システムを示すブロック図である。図2において、記憶システム200は、ディスク・アレイ210、RAIDコントローラ220、ホスト230、ホスト231、仮想ボリューム240、仮想ボリューム241、および仮想ボリューム242からなる。ディスク・アレイ210は、少なくともドライブ211〜214を含む。ディスク・アレイ210は、より多くのディスク・ドライブを含んでもよい。ただし、こうしたドライブは、簡潔にするために図2からは省いてある。第1のドライブ211は、データ・ブロック2110、2111、2112を含む。第2のドライブ212は、データ・ブロック2120、2121、2122を含む。第3のドライブ213は、格納Pシンドローム・ブロック2130、2131、2132を含む。第4のドライブ214は、格納Qシンドローム・ブロック2140、2141、2142を含む。
ディスク・アレイ210、およびドライブ211〜214は、RAIDコントローラ220に動作可能に結合される。したがって、RAIDコントローラ220は、ドライブ211〜214およびブロック2110〜2112、2120〜2122、2130〜2132、2140〜2142を制御し、スパニングし、かつ/またはストライピングして、RAIDレベル6(RAID6)機能性を提供するように動作し得る。RAID6は、全メンバ・ディスクに分散された2つのパリティ・ブロックでのブロック・レベルのストライピングを用いることができる。このスパニングおよび/またはストライピングの結果、格納Pシンドローム・ブロック2130〜2132および格納Qシンドローム・ブロック2140〜2142が、ドライブ211〜214の1つまたは複数に実際に存在することになり得る。同様に、データ・ブロック2110〜2112、2120〜2122は、ドライブ211〜214の1つまたは複数に存在し得る。ただし、簡潔明瞭にするために、格納Pシンドローム・ブロック2130〜2132および格納Qシンドローム・ブロック2140〜2142は、ドライブ213、214上に存在するものとして示し、論じる。データ・ブロック2110〜2112、2120〜2122は、ドライブ211、212上に存在するものとして示し、論じる。ドライブ211〜214は、実際の物理ドライブでも、仮想ドライブでもよいことに留意されたい。したがって、1つまたは複数のデータ・ブロック、1つのPシンドローム・ブロック、および1つのQシンドローム・ブロックを含むRAIDストライプは、データ・ブロック2110〜2112、2120〜2122(および図示しない他のデータ・ブロック)と、格納Pシンドローム・ブロック2130〜2132と、格納Qシンドローム・ブロック2140〜2142との様々な組合せまたはマッピングに格納することができる。
Raidコントローラ220は、Pシンドローム・エンジン221を含む。Pシンドローム・エンジン221は、少なくともデータ・ブロック2110〜2112、2120〜2122に基づいて格納Pシンドローム・ブロック2130〜2132を算出し、かつ/またはチェックするモジュールでもプロセスでもよい。Pシンドローム・エンジン221は、格納Pシンドローム・ブロック2130〜2132の算出および/またはチェックの性能を向上するための専用ハードウェアを含み得る。ある実施形態では、Pシンドローム・エンジンは、格納Pシンドローム・ブロック2130〜2132を算出し、かつ/またはチェックするために、データ・ブロック2110〜2112のビット単位XORを算出する。
Raidコントローラ220は、Qシンドローム・エンジン222を含む。Qシンドローム・エンジン222は、少なくともデータ・ブロック2110〜2112、2120〜2122に基づいて格納Qシンドローム・ブロック2142〜2140を算出し、かつ/またはチェックするモジュールでもプロセスでもよい。Qシンドローム・エンジン222は、格納Qシンドローム・ブロック2142〜2140の算出および/またはチェックの性能を向上するための専用ハードウェアを含み得る。ある実施形態では、Qシンドローム・エンジンは、格納Qシンドローム・ブロック2140〜2142を算出し、かつ/またはチェックするために、データ・ブロック2110〜2112のリードソロモン・コードを算出する。
RAIDコントローラ220は、仮想ボリューム240をホスト230に投影し得る。RAIDコントローラ1220は、仮想ボリューム241〜242をホスト231に投影し得る。RAIDコントローラ220は、追加の仮想ボリュームも投影し得る。ただし、こうしたボリュームは、簡潔にするために図2からは省いてある。RAID構成から作成されると、仮想ボリューム240〜242は、ホスト・コンピュータ230〜231によってアクセスすることができる。
ある実施形態では、RAIDコントローラ220は、データ・ブロック2110〜2112、2120〜2122または格納PおよびQシンドローム・ブロック2130〜2132、2140〜2142を分離し訂正する。RAIDコントローラ220が訂正するエラーは、データ・ブロック2110〜2112、2120〜2122によって格納されたデータと、RAIDストライプの格納Pシンドローム・ブロック1130〜1132および格納Qシンドローム・ブロック1140〜1142の少なくとも1つによって格納されたデータとの間の不一致によって表わされる。
RAIDコントローラ220は、データ・ブロックならびにディスク・アレイ210によって格納されたRAIDストライプのPおよびQシンドローム・ブロックを読み込む。RAIDコントローラ220は、RAIDストライプから読み込まれたデータ・ブロックに基づいて、Pシンドローム・ブロックおよびQシンドローム・ブロック(それぞれP、Qで示す)を算出する。こうした算出シンドローム・ブロック(P、Q)は、ディスク・アレイ210上に格納されたシンドローム・ブロック(それぞれP、Qで示す)と比較される。こうした比較の結果、算出および格納シンドローム・ブロックの等価性インジケータが作成され、または格納され得る。
格納および算出シンドローム・ブロック両方が一致する場合(すなわち、P=P、かつQ=Qである場合)、RAIDコントローラ220は、格納データ・ブロック2110〜2112、2120〜2122と、RAIDストライプの格納Pシンドローム・ブロック2130〜2132および格納Qシンドローム・ブロック2140〜2142のいずれか1つとの間の不一致を見つけていない。算出Pシンドローム・ブロックが格納Pシンドローム・ブロックと一致せず、かつ算出Qシンドローム・ブロックが格納Qシンドローム・ブロックと一致する場合(すなわち、P≠P、かつQ=Qである場合)、RAIDコントローラ220は、ストライプ中のデータ・ブロック、格納Qシンドローム・ブロック、および算出Pシンドローム・ブロックが正しいと判定する。したがって、RAIDコントローラ220は、算出Pシンドローム・ブロック、すなわちPをディスク・アレイ210に書き込む。
算出Qシンドローム・ブロックが格納Qシンドローム・ブロックと一致せず、算出Pシンドローム・ブロックが格納Pシンドローム・ブロックと一致する場合(すなわち、P=P、かつQ≠Qである場合)、RAIDコントローラ220は、ストライプ中のデータ・ブロック、格納Pシンドローム・ブロック、および算出Qシンドローム・ブロックが正しいと判定する。したがって、RAIDコントローラ220は、算出Qシンドローム・ブロック、すなわちQをディスク・アレイ210に書き込む。
算出Pシンドローム・ブロックが格納Pシンドローム・ブロックと一致せず、かつ算出Qシンドローム・ブロックが格納Qシンドローム・ブロックと一致しない場合(すなわち、P≠P、かつQ≠Qである場合)、RAIDコントローラ220は、RAIDストライプに関連づけられたデータ・ブロック2110〜2112、2120〜2122の1つまたは複数が不正確な可能性があると判定する。RAIDコントローラ220は、RAIDストライプ中のデータ・ブロックのどの1つまたは複数が、他のデータ・ブロックおよび格納PおよびQシンドローム・ブロックと整合しないかの判定に進む。
RAIDストライプ中のデータ・ブロックのどれが他のデータ・ブロックならびに格納PおよびQシンドローム・ブロックと整合しないか判定するために、RAIDコントローラ220は、第1のデータ・ブロックを選択する。この第1のデータ・ブロックは、RAIDストライプの他のデータ・ブロックおよび格納Pシンドローム・ブロックを使って復元される。復元された第1のデータ・ブロックは次いで、他のデータ・ブロックとともに、新しいQシンドローム・ブロック(Qで示す)を算出するのに使われる。この新しいQシンドローム・ブロックは、格納Qシンドローム・ブロックと比較される。新しいQシンドローム・ブロックと格納Qシンドローム・ブロックが一致する(すなわち、Q=Q)場合、この第1のデータ・ブロックは、不良データを保持している疑いがあるものとして選択される。この印づけの結果、データ・ブロックに関連づけられた不審ブロック・インジケータが作成され、または格納され得る。このプロセスは、RAIDストライプ中のデータ・ブロックそれぞれに対して繰り返される。
RAIDストライプ中のデータ・ブロックがすべて上述したようにスキャンされると、RAIDコントローラ220は、複数のデータ・ブロックに、不良データを保持している疑いがあるものとして印がつけられたかどうか判定する。単一のドライブが、不良データを保持している疑いがあるものとして識別されている場合、RAIDコントローラ220は、格納Pシンドローム・ブロックおよびRAIDストライプの他のデータ・ブロックから、そのブロックに対するデータを復元する(または、予め算出されたデータを使う)。複数のドライブが、不良データを保持している疑いがあるものとして識別されている場合、RAIDコントローラ220は、算出PおよびQシンドローム・ブロックを再生成し(または予め算出されたP、Qを使い)、その一方または両方をディスク・アレイ210に書き込むことができる。再生成された、または予め算出されたPおよびQシンドローム・ブロックのうち1つまたは複数のブロックの書込みは、任意選択のステップであることを理解されたい。ある実施形態では、RAIDコントローラ220は、RAIDストライプ全体(および/または不良PおよびQシンドローム・ブロックの1つもしくは複数)に、不良データを保持する疑いがあるものとして印をつけるインジケータをセットすることができる。
図3は、データの正確性を維持する方法を示すフローチャートである。図3に示すステップは、記憶システム100および記憶システム200の1つまたは複数の要素によって実施することができる。
複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含むRAIDストライプが受け取られる(302)。たとえば、RAIDコントローラ220は、ディスク・アレイ210からRAIDストライプを受け取ることができる。このRAIDストライプは、複数のデータ・ブロック、1つの格納Pシンドローム・ブロック(P)、および1つの格納Qシンドローム・ブロック(Q)を含み得る。第1の算出シンドローム・ブロックおよび第2の算出シンドローム・ブロックが判定される(304)。たとえば、Pシンドローム・エンジン221は、RAIDストライプ中の複数のデータ・ブロックに基づいてPシンドローム・ブロック(P)を算出することができる。Qシンドローム・エンジン222は、RAIDストライプ中の複数のデータ・ブロックに基づいてQシンドローム・ブロック(Q)を算出することができる。
算出シンドローム・ブロックが、格納シンドローム・ブロックと比較される(306)。たとえば、RAIDコントローラ220は、ボックス304で算出されたシンドローム・ブロック、すなわちP、Qを、それぞれ、ブロック302で受け取られた格納シンドローム・ブロック、すなわちP、Qと比較すればよい。両方の格納シンドローム・ブロックが、そのそれぞれの算出シンドローム・ブロックと等しくないと判定される(308)。たとえば、RAIDコントローラ220は、算出Pシンドローム・ブロックが格納Pシンドローム・ブロックと一致せず、かつ算出Qシンドローム・ブロックが格納Qシンドローム・ブロック一致しないと判定することができる(すなわち、P≠P、かつQ≠Qである場合)。第1の不審データ・ブロックが選択される(310)。たとえば、RAIDコントローラ220は、RAIDストライプ中のデータ・ブロックのうち第1のデータ・ブロックを、不正確または破壊データをもつ疑いがあるものとして選択してよい。この選択プロセスについては、後で図4を参照してさらに詳しく論じる。
第2の不審データ・ブロックがある場合、フローはブロック316に進む。第2の不審データ・ブロックがない場合、フローはブロック314に進む(312)。たとえば、RAIDコントローラ220は、ただ1つの不審データ・ブロックがあると判定する場合がある。第2の不審データ・ブロックがない場合、第1の格納シンドローム・ブロックが、第1の不審データ・ブロックを復元するのに使われる(314)。たとえば、RAIDコントローラ220は、RAIDストライプにある格納Pシンドローム・ブロック(P)および他のデータ・ブロックを使って、不正確または破壊データをもつ疑いのあるデータ・ブロックを復元することができる。この復元されたデータ・ブロックは、RAIDコントローラ220によってディスク・アレイ210に書き込まれて、複数のデータ・ブロックと格納RAIDストライプ中のPおよびQシンドローム・データ・ブロックとの間の不整合をなくすことができる。
第2の不審データ・ブロックがある場合、複数のデータ・ブロックが、第1および第2の格納シンドローム・ブロックを復元するのに使われる(316)。たとえば、RAIDコントローラ220は、RAIDストライプのデータ・ブロックを使って、新しいPシンドローム・ブロックおよび新しいQシンドローム・ブロックを算出することができる。こうした復元されたPおよびQシンドローム・ブロックは、RAIDコントローラ220によってディスク・アレイ210に書き込まれて、複数のデータ・ブロックと、格納RAIDストライプ中のシンドローム・データ・ブロックとの間の不整合をなくすことができる。このブロック316は任意選択であり、復元された第1および第2のシンドローム・ブロックの書込みは、一部の実施形態では実施されなくてよいことを理解されたい。ある実施形態では、RAIDストライプ全体が不良データ(および/またはシンドローム)を保持する疑いがあることを示すインジケータを格納することができる。
図4は、破壊された可能性のあるデータ・ブロックを判定する方法を示すフローチャートである。図4に示すステップは、記憶システム100および記憶システム200の1つまたは複数の要素によって実施することができる。
データ・ブロックが選択され、第1の格納シンドローム・ブロックが、このデータ・ブロックを復元するのに使われる(402)。たとえば、RAIDコントローラ220が、データ・ブロックを選択してよい。RAIDストライプの他のデータ・ブロック、およびPシンドローム・ブロックが、データ・ブロックを復元するのに使われ得る。復元されたデータ・ブロックは、復元された第2のシンドローム・ブロックを判定するのに使われる(404)。たとえば、RAIDコントローラ220は、復元されたデータ・ブロックを使って、復元Qシンドローム・ブロック(Q)を算出することができる。
復元された第2のシンドローム・ブロックは、第2の格納シンドローム・ブロックと比較される(406)。たとえば、RAIDコントローラ220は、復元されたQシンドローム・ブロック(Q)を、RAIDストライプの格納Qシンドローム・ブロック(Q)と比較すればよい。復元された第2のシンドローム・ブロックが第2の格納シンドローム・ブロックと等しい場合、データ・ブロックが、不審データ・ブロックとして選択される(408)。たとえば、RAIDコントローラ220は、復元されたQシンドローム・ブロックがRAIDストライプの格納Qシンドローム・ブロックと等しい(すなわち、Q=Q)場合、データ・ブロックを、不正確または破壊データをもつ疑いがあるものとして選択してよい。
ブロックがすべて選択された場合、フローはブロック412に進み、プロセスは終わる。ブロックすべてが選択されたわけではない場合、フローはブロック402に戻り、検査されるべき新しいデータ・ブロックを選択し、データ・ブロックを、不正確または破壊データをもつ疑いがあるものとして選択し、印をつける。
上述したシステム、ドライブ、コントローラ、エンジン、および機能は、1つまたは複数のコンピュータ・システムで実装することも、そうしたシステムによって実行することもできる。上述した方法は、コンピュータ可読媒体上に格納することができる。記憶システム100および記憶システム200の要素の多くは、コンピュータ・システムでよく、コンピュータ・システムを備え、または含み得る。こうした要素は、RAIDコントローラ120、RAIDコントローラ220、第1のシンドローム・エンジン121、第2のシンドローム・エンジン122、ディスク・アレイ110、ディスク・ドライブ111〜114、ホスト130〜131、Pシンドローム・エンジン221、Qシンドローム・エンジン222、ディスク・アレイ210、ディスク・ドライブ211〜214、およびホスト230〜231を含むが、それに限定されない。
図5は、コンピュータ・システムを示すブロック図である。コンピュータ・システム500は、通信インタフェース520、処理システム530、記憶システム540、およびユーザ・インタフェース560を含む。処理システム530は、記憶システム540に動作可能に結合される。記憶システム540は、ソフトウェア550およびデータ570を格納する。処理システム530は、通信インタフェース520およびユーザ・インタフェース560に動作可能に結合される。コンピュータ・システム500は、プログラム式汎用コンピュータを備え得る。コンピュータ・システム500は、マイクロプロセッサを含み得る。コンピュータ・システム500は、プログラム可能または特殊目的回路構成を備え得る。コンピュータ・システム500は、要素520〜570をともに備える複数の装置、プロセッサ、記憶装置、および/またはインタフェースに分散してよい。
通信インタフェース520は、ネットワーク・インタフェース、モデム、ポート、バス、リンク、トランシーバ、または他の通信装置を含み得る。通信インタフェース520は、複数の通信装置に分散してよい。処理システム530は、マイクロプロセッサ、マイクロコントローラ、論理回路、または他の処理装置を備え得る。処理システム530は、複数の処理装置に分散してよい。ユーザ・インタフェース560は、キーボード、マウス、音声認識インタフェース、マイクロホンおよびスピーカ、グラフィカル・ディスプレイ、タッチ・スクリーン、または他のタイプのユーザ・インタフェース装置を備え得る。ユーザ・インタフェース560は、複数のインタフェース装置に分散してよい。記憶システム540は、ディスク、テープ、集積回路、RAM、ROM、ネットワーク記憶装置、サーバ、または他のメモリ機能を備え得る。記憶システム540は、コンピュータ可読媒体でよい。記憶システム540は、複数のメモリ装置に分散してよい。
処理システム530は、記憶システム540からソフトウェア550を取り出し、実行する。処理システムは、データ570を取り出し、格納することができる。処理システムは、通信インタフェース520を介してデータを取り出し、格納することもできる。処理システム530は、具体的結果を達成するように、ソフトウェア550またはデータ570を作成し、または修正することができる。処理システムは、具体的結果を達成するように、通信インタフェース520またはユーザ・インタフェース560を制御することができる。処理システムは、通信インタフェース520を介してリモート格納ソフトウェアを取り出し、実行することができる。
ソフトウェア550およびリモート格納ソフトウェアは、オペレーティング・システム、ユーティリティ、ドライバ、ネットワーク用ソフトウェア、および一般にコンピュータ・システムによって実行される他のソフトウェアを含み得る。ソフトウェア550は、アプリケーション・プログラム、アプレット、ファームウェア、または一般にコンピュータ・システムによって実行される他の形のマシン可読処理命令を含み得る。処理システム530によって実行されると、ソフトウェア550またはリモート格納ソフトウェアは、本明細書に記載した通りに動作するよう、コンピュータ・システム500に指示することができる。
本発明の上記説明は、例示および説明の目的で提示した。網羅的であることも、開示した厳密な形に本発明を限定することも意図しているわけではなく、他の修正形態および変形形態が、上記教示を顧みたうえで可能であり得る。実施形態は、本発明の原理およびその実際の用途を最も分かりやすく説明するために選び、記載してあり、そうすることによって、企図される特定の使用法に適合されるように、様々な実施形態および様々な修正形態において本発明を当業者が最も都合よく使用できるようにするものである。添付の請求項は、従来技術によって限定されない限り、本発明の他の代替実施形態を含むと見なされることを意図している。

Claims (19)

  1. データの正確性を維持する方法であって、
    複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含むRAIDストライプを受け取り、
    前記複数のデータ・ブロックに基づいて、第1の算出シンドローム・ブロックおよび第2の算出シンドローム・ブロックを判定し、そして、
    前記第1の格納シンドローム・ブロックと前記第1の算出シンドローム・ブロックが等しくなく、および前記第2の格納シンドローム・ブロックと前記第2の算出シンドローム・ブロックが等しくないという判定に基づいて、前記複数のデータ・ブロックの不審データ・ブロックを選択することを含み、前記選択に用いられる方法が、
    前記第1の格納シンドローム・ブロックと、前記複数のデータ・ブロックの1つのデータ・ブロックを含まない、前記複数のデータ・ブロックのサブセットとに基づいて、前記複数のデータ・ブロックのうち1つの復元データ・ブロックを判定し、
    前記複数のデータ・ブロックの前記サブセットおよび前記複数のデータ・ブロックの前記1つの復元データ・ブロックに基づいて、復元された第2のシンドローム・ブロックを判定し、そして、
    前記復元された第2のシンドローム・ブロックと前記第2の格納シンドローム・ブロックが等しいという判定に基づいて、前記複数のデータ・ブロックの前記1つのデータ・ブロックを、前記不審データ・ブロックとして選択する、ことを含む、方法。
  2. 前記第1の格納シンドローム・ブロックが前記複数のデータ・ブロックのビット単位XORによって判定され、前記第2の格納シンドローム・ブロックがリードソロモン・コードによって判定される、請求項1に記載の方法。
  3. 前記第1の格納シンドローム・ブロック、および前記複数のデータ・ブロックの第2のデータ・ブロックを含まない、前記複数のデータ・ブロックの第2のサブセットに基づいて、前記複数のデータ・ブロックのうち復元された第2のデータ・ブロックを判定し、
    前記複数のデータ・ブロックの前記第2のサブセットおよび前記複数のデータ・ブロックのうち前記復元された第2のデータ・ブロックに基づいて、別の復元された第2のシンドローム・ブロックを判定し、そして、
    前記別の復元された第2のシンドローム・ブロックと前記第2の格納シンドローム・ブロックが等しいという判定に基づいて、前記複数のデータ・ブロックのうち前記第2のデータ・ブロックを、前記第2の不審データ・ブロックとして選択することを含む方法を用いて、前記複数のデータ・ブロックのうち、第2の不審データ・ブロックを選択する、ことをさらに含む、請求項1に記載の方法。
  4. 前記複数のデータ・ブロックを使って、前記第1の格納シンドローム・ブロックおよび前記第2の格納シンドローム・ブロックを再生成し格納することをさらに含む、請求項3に記載の方法。
  5. 前記第1の格納シンドローム・ブロックと前記第1の算出シンドローム・ブロックが等しいという判定に基づいて、前記第2の算出シンドローム・ブロックを前記RAIDストライプに格納することをさらに含む、請求項1に記載の方法。
  6. 前記第2の格納シンドローム・ブロックと前記第2の算出シンドローム・ブロックが等しいという判定に基づいて、前記第1の算出シンドローム・ブロックを前記RAIDストライプに格納することをさらに含む、請求項1に記載の方法。
  7. RAIDストライプ中の整合データおよびシンドロームを維持する方法であって、
    複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含む前記RAIDストライプを読み込み、
    前記複数のデータ・ブロックに基づいて、第1の算出シンドローム・ブロックを判定し、
    前記複数のデータ・ブロックに基づいて、第2の算出シンドローム・ブロックを判定し、
    前記第1の格納シンドローム・ブロックを前記第1の算出シンドローム・ブロックと比較することによって、第1の等価性インジケータを判定し、
    前記第2の格納シンドローム・ブロックを前記第2の算出シンドローム・ブロックと比較することによって、第2の等価性インジケータを判定し、そして、
    前記第1の格納シンドローム・ブロックが前記第1の算出シンドローム・ブロックと等しくないことを前記第1の等価性インジケータが示す場合、および前記第2の格納シンドローム・ブロックが前記第2の算出シンドローム・ブロックと等しくないことを前記第2の等価性インジケータが示す場合、少なくとも1つの不審ブロックを判定する、ことを含み、前記判定に用いられる方法が、
    前記複数のデータ・ブロックそれぞれに対して、
    前記第1の格納シンドローム・ブロックを使って、前記データ・ブロックのうち1つの復元データ・ブロックを復元し、
    前記データ・ブロックの前記1つの復元データ・ブロックと、前記複数のデータ・ブロックの前記1つのデータ・ブロックを除く前記複数のデータ・ブロックとを使って、復元された第2のシンドローム・ブロックを判定し、
    前記データ・ブロックの前記1つのデータ・ブロックに関連づけられた、前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しいかどうかを示す不審ブロック・インジケータを判定し、そして、
    前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しいことを示す、関連した不審ブロック・インジケータをもつ、前記複数のデータ・ブロックのうち1つのデータ・ブロックがある場合、前記複数のデータ・ブロックの前記1つに関連づけられた、前記データ・ブロックの前記1つの復元データ・ブロックを前記RAIDストライプに格納する、ことを含む、方法。
  8. 前記複数のデータ・ブロック、前記第1の格納シンドローム・ブロック、および前記第2の格納シンドローム・ブロックがそれぞれ、複数のディスク・ドライブの1つに関連づけられる、請求項7に記載の方法。
  9. 前記第1の算出シンドローム・ブロックが前記複数のデータ・ブロックのビット単位XORによって判定され、前記第2の算出シンドローム・ブロックがリードソロモン・コードによって判定される、請求項7に記載の方法。
  10. 前記複数のデータ・ブロックのうち、前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しくないことを示す、関連した不審ブロック・インジケータをもつものが1つより多い場合、前記第1の算出シンドローム・ブロックおよび前記第2の算出シンドローム・ブロックを前記RAIDストライプに格納することをさらに含む、請求項7に記載の方法。
  11. RAIDストライプを提供するように構成された複数のディスク・ドライブと、
    前記RAIDストライプを受け取るように構成されたRAIDプロセッサとを含み、前記RAIDストライプが、複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含み、前記RAIDプロセッサが、
    前記複数のデータ・ブロックに基づいて第1の算出シンドローム・ブロックおよび第2の算出シンドローム・ブロックを判定し、
    前記第1の格納シンドローム・ブロックと前記第1の算出シンドローム・ブロックが等しくなく、かつ前記第2の格納シンドローム・ブロックと前記第2の算出シンドローム・ブロックが等しくないと判定し、
    前記第1の格納シンドローム・ブロックと、前記複数のデータ・ブロックのうち1つのデータ・ブロックを含まない、前記複数のデータ・ブロックのサブセットとに基づいて、前記複数のデータ・ブロックのうち1つの復元データ・ブロックを判定し、
    前記複数のデータ・ブロックの前記サブセットと、前記複数のデータ・ブロックのうち前記1つの復元データ・ブロックとに基づいて、復元された第2のシンドローム・ブロックを判定し、
    前記復元された第2のシンドローム・ブロックと前記第2の格納シンドローム・ブロックが等しいという判定に基づいて、前記複数のデータ・ブロックの前記1つのデータ・ブロックを、前記不審データ・ブロックとして選択する、ように構成された、記憶システム。
  12. 前記第1の格納シンドローム・ブロックが前記複数のデータ・ブロックのビット単位XORによって判定され、前記第2の格納シンドローム・ブロックがリードソロモン・コードによって判定される、請求項11に記載の記憶システム。
  13. 前記RAIDプロセッサが、前記複数のデータ・ブロックの第2の不審データ・ブロックを選択するようにさらに構成される、請求項11に記載の記憶システム。
  14. 前記RAIDプロセッサが、前記複数のデータ・ブロックを使って前記第1の格納シンドローム・ブロックおよび前記第2の格納シンドローム・ブロックを再生成するようにさらに構成される、請求項13に記載の記憶システム。
  15. 前記RAIDプロセッサが、
    前記第1の格納シンドローム・ブロックと前記第1の算出シンドローム・ブロックが等しいという判定に基づいて、前記第1の算出シンドローム・ブロックを複数のディスク・ドライブに格納するようにさらに構成される、請求項11に記載の記憶システム。
  16. RAIDストライプ中の整合データおよびシンドロームを維持する命令を格納したコンピュータ可読媒体であって、前記命令が、コンピュータによって実行されると、前記コンピュータに、
    複数のデータ・ブロック、第1の格納シンドローム・ブロック、および第2の格納シンドローム・ブロックを含む前記RAIDストライプを読み込み、
    前記複数のデータ・ブロックに基づいて、第1の算出シンドローム・ブロックを判定し、
    前記複数のデータ・ブロックに基づいて、第2の算出シンドローム・ブロックを判定し、
    前記第1の格納シンドローム・ブロックを前記第1の算出シンドローム・ブロックと比較することによって、第1の等価性インジケータを判定し、
    前記第2の格納シンドローム・ブロックを前記第2の算出シンドローム・ブロックと比較することによって、第2の等価性インジケータを判定し、
    前記第1の格納シンドローム・ブロックが前記第1の算出シンドローム・ブロックと等しくないことを前記第1の等価性インジケータが示す場合、および前記第2の格納シンドローム・ブロックが前記第2の算出シンドローム・ブロックと等しくないことを前記第2の等価性インジケータが示す場合、少なくとも1つの不審ブロックを判定するように少なくとも命令し、前記判定に用いられる方法が、
    前記複数のデータ・ブロックそれぞれに対して、
    前記第1の格納シンドローム・ブロックを使って、前記データ・ブロックのうち、1つの復元データ・ブロックを復元し、
    前記データ・ブロックの前記1つの復元データ・ブロックと、前記複数のデータ・ブロックの前記1つのデータ・ブロックを除く前記複数のデータ・ブロックとを使って、復元された第2のシンドローム・ブロックを判定し、
    前記データ・ブロックの前記1つのデータ・ブロックに関連づけられた、前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しいかどうかを示す不審ブロック・インジケータを判定し、そして、
    前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しいことを示す、関連した不審ブロック・インジケータをもつ、前記複数のデータ・ブロックのうち1つのデータ・ブロックがある場合、前記複数のデータ・ブロックの前記1つのデータ・ブロックに関連づけられた、前記データ・ブロックの前記1つの復元データ・ブロックを前記RAIDストライプに格納する、ことを含む、コンピュータ可読媒体。
  17. 前記複数のデータ・ブロック、前記第1の格納シンドローム・ブロック、および前記第2の格納シンドローム・ブロックがそれぞれ、複数のディスク・ドライブの1つに関連づけられる、請求項16に記載のコンピュータ可読媒体。
  18. 前記第1の算出シンドローム・ブロックが前記複数のデータ・ブロックのビット単位XORによって判定され、前記第2の算出シンドローム・ブロックがリードソロモン・コードによって判定される、請求項16に記載のコンピュータ可読媒体。
  19. 前記複数のデータ・ブロックのうち、前記第2の格納シンドローム・ブロックが前記復元された第2のシンドローム・ブロックと等しくないことを示す、関連した不審ブロック・インジケータをもつものが1つより多い場合、前記第1の算出シンドローム・ブロックおよび前記第2の算出シンドローム・ブロックを前記RAIDストライプに格納するように前記コンピュータがさらに命令される、請求項16に記載のコンピュータ可読媒体。
JP2010179253A 2010-04-16 2010-08-10 破損データまたはシンドローム・ブロックの突止めおよび訂正 Pending JP2011227859A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/762,213 2010-04-16
US12/762,213 US20110258520A1 (en) 2010-04-16 2010-04-16 Locating and correcting corrupt data or syndrome blocks

Publications (1)

Publication Number Publication Date
JP2011227859A true JP2011227859A (ja) 2011-11-10

Family

ID=44520782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010179253A Pending JP2011227859A (ja) 2010-04-16 2010-08-10 破損データまたはシンドローム・ブロックの突止めおよび訂正

Country Status (6)

Country Link
US (1) US20110258520A1 (ja)
EP (1) EP2378424A3 (ja)
JP (1) JP2011227859A (ja)
KR (1) KR20110115947A (ja)
CN (1) CN102222026A (ja)
TW (1) TW201137602A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016992A1 (en) * 2010-07-16 2012-01-19 Lsi Corporation Architecture for improved cloud computing
US9899104B2 (en) * 2016-03-18 2018-02-20 Silicon Motion Inc. Raid decoding architecture with reduced bandwidth
CN118377441B (zh) * 2024-06-25 2024-09-27 四川华鲲振宇智能科技有限责任公司 一种伪可变raid模式的存储系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146461B1 (en) * 2003-07-01 2006-12-05 Veritas Operating Corporation Automated recovery from data corruption of data volumes in parity RAID storage systems
US7797612B2 (en) * 2006-12-29 2010-09-14 Intel Corporation Storage accelerator
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
US8020074B2 (en) * 2007-08-24 2011-09-13 Datadirect Networks, Inc. Method for auto-correction of errors in a RAID memory system
JP2010033287A (ja) * 2008-07-28 2010-02-12 Hitachi Ltd ストレージサブシステム及びこれを用いたデータ検証方法

Also Published As

Publication number Publication date
EP2378424A3 (en) 2011-11-02
TW201137602A (en) 2011-11-01
EP2378424A2 (en) 2011-10-19
CN102222026A (zh) 2011-10-19
KR20110115947A (ko) 2011-10-24
US20110258520A1 (en) 2011-10-20

Similar Documents

Publication Publication Date Title
US9009569B2 (en) Detection and correction of silent data corruption
JP5102776B2 (ja) ストレージアレイにおける三重故障からの効率的な復旧を可能にする三重パリティ技術
KR100985444B1 (ko) 데이터 저장 서브시스템 및 데이터 갱신 방법
US9552258B2 (en) Method and system for storing data in raid memory devices
US9063910B1 (en) Data recovery after triple disk failure
US8839028B1 (en) Managing data availability in storage systems
JP4668970B2 (ja) フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正
US7017107B2 (en) Storage array employing scrubbing operations at the disk-controller level
US7062704B2 (en) Storage array employing scrubbing operations using multiple levels of checksums
US7873878B2 (en) Data integrity validation in storage systems
US8171379B2 (en) Methods, systems and media for data recovery using global parity for multiple independent RAID levels
US7752389B1 (en) Techniques for determining physical data layout of RAID devices
US20090055682A1 (en) Data storage systems and methods having block group error correction for repairing unrecoverable read errors
US8898380B2 (en) Memory efficient check of raid information
US20060136778A1 (en) Process for generating and reconstructing variable number of parity for byte streams independent of host block size
JP2000207136A (ja) 複数ドライブ故障トレラントraidアルゴリズム
US20130198585A1 (en) Method of, and apparatus for, improved data integrity
US7702948B1 (en) Auto-configuration of RAID systems
US20120198195A1 (en) Data storage system and method
WO2015045122A1 (ja) ストレージ装置、ストレージシステム、およびデータ管理方法
JP2011227859A (ja) 破損データまたはシンドローム・ブロックの突止めおよび訂正
CN104281499A (zh) 基于奇偶校验的raid条带镜像数据分布方法
US9134926B2 (en) Protection information initialization
CN111506259A (zh) 数据存储、读取方法、装置、设备及可读存储介质
US11150988B1 (en) Metadata pattern to detect write loss/inconsistencies of optimized-write-once operations