JP2012509523A - Raid情報のメモリ効率検査 - Google Patents

Raid情報のメモリ効率検査 Download PDF

Info

Publication number
JP2012509523A
JP2012509523A JP2011536341A JP2011536341A JP2012509523A JP 2012509523 A JP2012509523 A JP 2012509523A JP 2011536341 A JP2011536341 A JP 2011536341A JP 2011536341 A JP2011536341 A JP 2011536341A JP 2012509523 A JP2012509523 A JP 2012509523A
Authority
JP
Japan
Prior art keywords
data
raid
address
accumulator
result
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
JP2011536341A
Other languages
English (en)
Other versions
JP5502883B2 (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.)
LSI Corp
Original Assignee
LSI Logic 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 Logic Corp filed Critical LSI Logic Corp
Publication of JP2012509523A publication Critical patent/JP2012509523A/ja
Application granted granted Critical
Publication of JP5502883B2 publication Critical patent/JP5502883B2/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
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

RAIDデータ検査システムが開示される。記憶装置からRAIDデータを読み取って、そのデータを仮想メモリ・アドレス範囲に転送するためのI/Oコントローラが提供される。これらの仮想メモリ・アドレス範囲はP+Q検査機能によって認識される。P+Q検査機能は、仮想メモリ・アドレス範囲に送信されたデータを受信する。しかし、入ってくるデータを格納する代わりに、P+Q検査機能は、入ってくるデータに関連付けられるPおよびQ冗長データ計算の中間値をアップデートする。全てのストリップが受信されると、P+Q検査機能はPおよびQ冗長データの計算を完了したことになる。P+Q検査機能は、記憶装置からPまたはQデータを受け取ってもよい。この場合、全てのストリップおよびPまたはQデータの受信後、全てのデータならびにPおよびQデータが正しかった場合、P+Q検査機能はゼロを保持する。エラーがあった場合、P+Q検査機能は非ゼロ値を保持する。

Description

関連出願の相互参照
本出願は、2008年11月19日にWilliam Patrick Delaneyによって出願された米国仮特許出願第61/116,265号「Memory Efficient Check of RAID Information」の利益を主張する。上記出願の内容全体をその開示および教示について参照により本明細書に明確に組み込む。
大容量記憶システムは、ユーザの要望を満たすために、増加した記憶容量を提供し続けている。ますます大きな記憶システムを求める要望の増大に拍車をかける用途の例には、写真および映画記憶装置ならびに写真および映画共有がある。
これらの高まりつつある要望への解決策は、複数の安価なディスクのアレイを使用することである。これらのアレイはいかなるデータ損失もなしに冗長性およびエラー回復を提供するような方法で構成されうる。これらのアレイはまた、複数のディスク・ドライブでデータが同時に読み取りまたは書き込みできるようにすることによって、読取りおよび書込み性能が向上するように構成されうる。これらのアレイはまた、アレイの記憶サービスを中断せずに異常を起こしたディスクの交換ができるようにする「ホット・スワッピング」ができるように構成されうる。冗長性が提供されるかどうかにかかわらず、これらのアレイは一般に独立ディスクの冗長アレイ(または、より一般的には頭字語でRAID)と呼ばれる。カリフォルニア大学バークレー校のDavid A. Patterson他による1987年の刊行物「A Case for Redundant Arrays of Inexpensive Disks(RAID)」は、基本概念およびRAID技術のレベルを論じている。
RAID記憶システムは、記憶アレイを管理することの詳細をユーザまたはホスト・システムから見えないようにするコントローラを一般的に利用する。コントローラは記憶アレイを1つまたは複数のディスク・ドライブ(またはボリューム)に見せる。これは、特定のボリュームのためのデータ(または冗長データ)が複数のディスク・ドライブに分散されうるという事実にもかかわらず達成される。
カリフォルニア大学バークレー校のDavid A. Patterson他による1987年の刊行物「A Case for Redundant Arrays of Inexpensive Disks(RAID)」
したがって本発明の一実施形態は、RAID情報を検査するためのシステムにおいて、RAID検査範囲に対応するシステム・バス上の第1アドレスを決定するアドレス比較と、RAID P−データ・アキュムレータに格納されたデータの排他的論理和の第1結果および前記システム・バスから受信されたデータを格納するRAID P−データ・アキュムレータであって、前記システム・バスから受信された前記データが、前記システム・バス上の前記第1アドレスに送信されるデータに対応し、前記システム・バス上の前記第1アドレスが前記RAID検査範囲に対応するRAID P−データ・アキュムレータと、前記システム・バス上の前記第1アドレスに基づいて、前記システム・バスから受信された前記データに対応する定数のセットのうちの1つを選択する定数セレクタと、RAID Q−データ・アキュムレータに格納されたデータの排他的論理和の第2結果、および定数の前記セットのうちの前記1つのガロア体乗算の第3結果、ならびに前記システム・バスから受信された前記データを格納するRAID Q−データ・アキュムレータとを備えるシステムを備えうる。
したがって本発明の一実施形態は、RAID情報を検査する方法において、IDストリップを提供するために複数の記憶装置を制御することであって、前記複数のRAIDストリップが複数の仮想バッファに送信されることと、前記複数のRAIDストリップを受信することと、それぞれの前記複数の仮想バッファに対応する複数のP−データ値および複数のQ−データ値を累算することであって、前記複数のP−データ値および前記複数のQ−データ値が、それぞれの前記複数の仮想バッファのために受信された前記複数のRAIDストリップに対応することとを備える方法をさらに備えうる。
したがって本発明の一実施形態は、RAID情報を検査するためのシステムであって、システム・バス上に提示されたアドレスを複数の仮想アドレス・バッファ範囲と比較する仮想バッファ比較と、前記複数の仮想アドレス・バッファ範囲のうちの1つに対応する前記システム・バス上に提示された前記アドレスに応答して、ガロア体定数およびアキュムレータ・バッファ・アドレスを選択するセレクタと、前記ガロア体定数および前記システム・バス上に提示された前記アドレスに対応するデータのブロックにガロア体乗算を実行するガロア体乗算器と、データの前記ブロックおよび前記アキュムレータ・バッファ・アドレスに対応する格納されたP−データ値への排他的論理和演算のP−データ結果を格納するP−データ排他的論理和アキュムレータと、ガロア体乗算結果および前記アキュムレータ・バッファ・アドレスに対応する格納されたQ−データ値への排他的論理和演算のQ−データ結果を格納するQ−データ排他的論理和アキュムレータとを備えるシステムをさらに備えうる。
RAID情報を検査するためのシステムのブロック図である。 RAID情報のブロックを検査するためのシステムのブロック図である。 RAID情報を検査する方法の流れ図である。 コンピュータ・システムのブロック図である。
図1はRAID情報を検査するためのシステムのブロック図である。P+Q検査システム100はアドレス・バス101、データ・バス102、アドレス比較110、定数セレクタ120、ガロア体(GF)乗算器130、P−データ・アキュムレータ140、Q−データ・アキュムレータ150、排他的論理和(XOR)160、および排他的論理和161を備える。アドレス・バス101およびデータ・バス102はシステム・バス103を共同で備える。アドレス・バス101はアドレス比較110および定数セレクタ120に動作可能なように結合される。データ・バス102はGF乗算器130およびXOR160に動作可能なように結合される。
アドレス比較110はHITP、HITD、およびHITQの3つの信号を生成する。HITDはQ−データ・アキュムレータ150およびP−データ・アキュムレータ140に動作可能なように結合される。HITPはP−データ・アキュムレータ140に動作可能なように結合される。HITQはQ−データ・アキュムレータ150に動作可能なように結合される。アドレス比較110はあらかじめ定義されたデータ範囲内のアドレス・バス101上のメモリ・アドレスに応答してHITDを生成する。このあらかじめ定義されたデータ範囲は、システム・バス103に結合された記憶装置から送信されたRAIDデータを受信するためにP+Q検査システム100がエミュレートする仮想メモリのブロックを定義する。アドレス比較110はあらかじめ定義されたP−データ範囲内のアドレス・バス101上のメモリ・アドレスに応答してHITPを生成する。このあらかじめ定義されたP−データ範囲は、システム・バス103に結合された記憶装置から送信されたRAID P−データを受信するためにP+Q検査システム100がエミュレートする仮想メモリのブロックを定義する。アドレス比較110はあらかじめ定義されたQ−データ範囲内のアドレス・バス101上のメモリ・アドレスに応答してHITQを生成する。このあらかじめ定義されたQ−データ範囲は、システム・バス103に結合された記憶装置から送信されたRAID Q−データを受信するためにP+Q検査システム100がエミュレートする仮想メモリのブロックを定義する。HITDおよびHITQはまた、定数セレクタ120に動作可能なように結合される。
一般にRAIDシステムは複数の記憶装置を介してデータおよび冗長データを配信する。全てが相互に関連しているデータおよび冗長データのブロックはストライプと呼ばれる。特定のディスク上にストライプを備えるデータのブロックはストリップと呼ばれうる。RAID−5には単一の冗長ブロックしかない。この冗長ブロックはストライプのためのパリティを格納する。したがって、P−ブロックまたはP−データと呼ばれる。P−データ内のそれぞれのビットは単にデータ・ストリップ内の対応するビットの、ビット単位の排他的論理和(XOR)である。したがってP−データ計算は、
Figure 2012509523
として表すことができ、上式でD[i]は第1データ・ストリップ内のi番目のバイトであり、D[i]は第2データ・ストリップ内のi番目のバイトであり、以下同様である。
RAID−6には少なくとも2つの冗長ブロックがある。1つはP−ブロックであり、もう1つはQ−ブロック(またはQ−データ)と呼ばれる。Q−データは以下の数式に従って計算される。
Figure 2012509523
上式でD[i]は第1データ・ストリップ内のi番目のバイトであり、D[i]は第2データ・ストリップ内のi番目のバイトであり、以下同様である。C、Cなどは、Q−データを生成するために使用される冗長法(たとえばReed−Solomon)によって値が管理された固定定数バイトである。これらの定数はQ−データ定数と呼ばれうる。「・」記号はGF(2)におけるガロア体乗算を表すことを意図する。Q−データ定数CからCのための適当な値を選択することによって、Q−データの追加ブロックが生成されうることが理解されるべきである。Q−データのこれらの追加ブロックにより、RAIDシステムはより多くのエラーを検出して回復できるようになる。
一実施形態では、RAIDアレイからのデータは、最初にメモリに格納されずに記憶装置からP+Q検査システム100に直接送信される。P+Q検査システム100は、RAIDアレイの記憶装置を制御するI/Oコントローラにとってメモリ・スペースに見えるようにシステム・バス103に結合される。したがって既存のI/Oコントローラは修正なしに機能して制御されうる。
RAID制御ソフトウェアは、I/Oコントローラが記憶装置からRAIDデータを読み取って、そのデータを仮想メモリ・アドレス範囲に転送するようにプログラムする。これらの仮想メモリ・アドレス範囲はP+Q検査システム100によって認識される。P+Q検査システム100は仮想メモリ・アドレス範囲に送信されたデータを受信する。しかし、入ってくるデータを格納する代わりに、P+Q検査システム100は入ってくるデータに関連付けられるPおよびQ冗長データ計算の中間値をアップデートする。全てのストリップが受信されると、P+Q検査システム100はPおよびQ冗長データの計算を完了したことになる。P+Q検査システム100は、記憶装置からPまたはQデータも受け取ってよい。この場合、全てのストリップおよびPまたはQデータの受信後、全てのデータならびにPおよびQデータが正しかった場合、P+Q検査システム100はゼロを保持する。エラーがあった場合、P+Q検査システム100は非ゼロ値を保持する。
P+Q検査システム100はRAID−5および/またはRAID−6検証操作のためのメモリの利用を減らす。これらの検証操作は、RAIDシステムのためのデータ統合性の保証において重要な要素である。これは、消費者クラスの記憶装置が使用される場合、それらは企業クラスの装置よりも信頼性が低いため、特に重要である。検証操作を実行するためにメモリ・ベース技法を使用することは、メモリおよびシステム・バスの負荷を増加させる。これはRAIDシステムの性能を低下させる。P+Q検査システム100はP+Q冗長データの計算および/または検査のためのメモリ・アクセスを削除する。
定数セレクタ120は、HITDまたはHITQ信号に応答してQデータ定数を生成する。生成されたQデータ定数は、アドレス・バス101に存在するアドレスに基づく。アドレス・バス101上の特定のビットを検査することによって、定数セレクタ120はどのデータ・ストリップ(すなわちD、Dなど)がデータ・バス102上にあるかを決定できる。したがって、定数セレクタ120はデータ・バス102上のストリップのために対応する定数を出力する。定数セレクタ120によって出力された定数およびデータ・バス102上のストリップのためのデータは、GF乗算器130によってGF乗算される。この演算は、Q−データの計算におけるD[i]・C項を形成する。
データ・バス102上のデータはXOR160にも入力される。XOR160への他の入力はP−データ・アキュムレータ140からである。HITDまたはHITP信号に応答して、P−データ・アキュムレータは、XOR160の出力をXOR160に入力されるべき次の値として格納する。したがって、P−データ・アキュムレータ140およびXOR160によるこの演算は
Figure 2012509523
演算を形成し、上式でD[i]はデータ・バス102上の現在の値であり、
Figure 2012509523
は以前のXOR演算の結果である。一旦1からNまでの全てのデータ値がXOR160によってXORされ、その結果がP−データ・アキュムレータ140によって累算されると、P−データ・アキュムレータ140は結果P[i]を保持することになることが理解されるべきである。さらに、P−データのために格納された値が受信されてXOR160によってXORされると(たとえばHITP信号に応答して)、全てのデータおよび格納されたP−データが正しい場合、P−データ・アキュムレータ140に格納された結果はゼロになる。そうでない場合はP−データ・アキュムレータ140に格納された結果は非ゼロになり、したがってエラーを示す。
GF乗算器130によって出力されたデータはXOR161に入力される。XOR161への他の入力はQ−データ・アキュムレータ150からである。HITDまたはHITQ信号に応答して、Q−データ・アキュムレータはXOR161の出力をXOR161に入力されるべき次の値として格納する。したがって、Q−データ・アキュムレータ150およびXOR161によるこの演算は
Figure 2012509523
演算を形成し、上式でD[i]はデータ・バス102上の現在の値であり、
Figure 2012509523
は以前のXOR演算の結果である。一旦1からNまでの全てのデータ値がGF乗算器130によってGF乗算され、その結果がXOR160によってXORされ、XORの結果がQ−データ・アキュムレータ150によって累算されると、Q−データ・アキュムレータ150は結果Q[i]を保持することになることが理解されるべきである。さらに、Q−データのために格納された値が受信され、Q−データ値を変更しない定数値によってGF乗算され、XOR161によってXORされると(たとえば、HITQ信号に応答して)、全てのデータおよび格納されたQ−データが正しい場合、Q−データ・アキュムレータ150に格納された結果はゼロになる。そうでない場合はQ−データ・アキュムレータ150に格納された結果は非ゼロになり、したがってエラーを示す。追加のQ−データ・ブロックを検査するために、追加のGF乗算器、XOR、およびQ−データ・アキュムレータが使用されてよいことも理解されるべきである。
図2はRAID情報のブロックを検査するためのシステムのブロック図である。図2に示されたシステムは図1に示されたシステムとよく似た機能をする。しかし、図2に示されたシステムは、データの複数のPおよびQブロックを計算して累算するように構成されている。P+Q検査システム200はアドレス・バス201、データ・バス202、アドレス比較210、ガロア体(GF)乗算器230、P−データ・アキュムレータ・バッファ240、Q−データ・アキュムレータ・バッファ250、排他的論理和(XOR)260、および排他的論理和261を備える。アドレス比較210は定数セレクタ211、完了検出器212、およびバッファ管理213を含む。アドレス・バス201およびデータ・バス202は、システム・バス203を共同で備える。アドレス・バス201はアドレス比較210、そして定数セレクタ211に動作可能なように結合される。アドレス・バス201はQ−データ・アキュムレータ・バッファ250およびP−データ・アキュムレータ・バッファ240に動作可能なように結合される。データ・バス202はGF乗算器230およびXOR260に動作可能なように結合される。
アドレス比較210はHITP、HITD、およびHITQの3つの信号を生成してよい。HITDはQ−データ・アキュムレータ・バッファ250およびP−データ・アキュムレータ・バッファ240に動作可能なように結合される。HITPはP−データ・アキュムレータ・バッファ240に動作可能なように結合される。HITQはQ−データ・アキュムレータ・バッファ250に動作可能なように結合される。アドレス比較210はあらかじめ定義されたデータ範囲内のアドレス・バス201上のメモリ・アドレスに応答してHITDを生成する。このあらかじめ定義されたデータ範囲は、システム・バス203に結合された記憶装置から送信されたRAIDデータを受信するためにP+Q検査システム200がエミュレートする仮想メモリのブロックを定義する。アドレス比較210はあらかじめ定義されたP−データ範囲内のアドレス・バス201上のメモリ・アドレスに応答してHITPを生成する。このあらかじめ定義されたP−データ範囲は、システム・バス203に結合された記憶装置から送信されたRAID P−データを受信するためにP+Q検査システム200がエミュレートする仮想メモリのブロックを定義する。アドレス比較210はあらかじめ定義されたQ−データ範囲内のアドレス・バス201上のメモリ・アドレスに応答してHITQを生成する。このあらかじめ定義されたQ−データ範囲は、システム・バス203に結合された記憶装置から送信されたRAID Q−データを受信するためにP+Q検査システム200がエミュレートする仮想メモリのブロックを定義する。
完了検出器212は、あるブロックのために格納された全てのデータがいつ受信されてQ−データ・アキュムレータ・バッファ250またはP−データ・アキュムレータ・バッファ240によって累算されたかを決定するために、アドレス・バス201上のアドレスを追跡してよい。バッファ管理213はP+Q検査システム200に関連付けられる仮想バッファを管理してよい。たとえば、バッファ管理213は仮想バッファのアドレス範囲を決定してよい。バッファ管理は、特定の仮想バッファ・アドレス範囲に関連付けられるQ−データ・アキュムレータ・バッファ250およびP−データ・アキュムレータ・バッファ240内の位置も決定してよい。
定数セレクタ211はQ−データ定数を生成する。生成されたQデータ定数は、アドレス・バス201に存在するアドレスに基づく。アドレス・バス201上の特定のビットを検査することによって、定数セレクタ211はどのデータ・ストリップ(すなわちD、Dなど)がデータ・バス202上にあるかを決定できる。したがって、定数セレクタ211はデータ・バス202上のストリップのために対応する定数を出力する。定数セレクタ211によって出力された定数およびデータ・バス202上のストリップのためのデータは、GF乗算器230によってGF乗算される。この演算は、ブロックjのためのQ−データの計算におけるD[i][j]・C項を形成する。どのブロック、jがデータ・バス202上にあるかが、アドレス・バス201上の特定のビットから決定される。
データ・バス202上のデータもXOR260に入力される。XOR260への他の入力はP−データ・アキュムレータ・バッファ240からである。アドレス比較210からの信号に応答して、P−データ・アキュムレータ・バッファ240はXOR260の出力をXOR160に入力されるべきブロックjのための次の値として格納する。どの累算されたP−データを取り出して格納するべきかを決定するために、P−データ・アキュムレータ・バッファ240はアドレス・バス201からの特定のビットを使用する。したがって、P−データ・アキュムレータ・バッファ240およびXOR260によるこの演算は
Figure 2012509523
演算を形成し、上式でD[i][j]はデータ・バス202上の現在の値であり、
Figure 2012509523
はブロックjに関連付けられるP−データ・アキュムレータ・バッファ240位置における以前のXOR演算の結果である。一旦ブロックjのための1からNまでの全てのデータ値がXOR260によってXORされ、その結果がP−データ・アキュムレータ・バッファ240によって累算されると、ブロックjに関連付けられるP−データ・アキュムレータ・バッファ240内の位置は結果P[i][j]を保持することになることが理解されるべきである。さらに、ブロックjに関連付けられるP−データのために格納された値が受信されてXOR260によってXORされると(たとえばHITP信号に応答して)、全てのデータおよび格納されたブロックjに関連付けられるP−データが正しい場合、ブロックjに関連付けられるP−データ・アキュムレータ・バッファ240に格納された結果はゼロになる。そうでない場合はブロックjに関連付けられるP−データ・アキュムレータ・バッファ240に格納された結果は非ゼロになり、したがってエラーを示す。
GF乗算器230によって出力されたデータはXOR261に入力される。XOR261への他の入力は、Q−データ・アキュムレータ・バッファ250からである。HITDまたはHITQ信号に応答して、Q−データ・アキュムレータ・バッファ250はXOR261の出力をXOR261に入力されるべきブロックjのための次の値として格納する。したがって、Q−データ・アキュムレータ・バッファ250およびXOR261によるこの演算は
Figure 2012509523
演算を形成し、上式でD[i][j]はデータ・バス202上の現在の値であり、
Figure 2012509523
はブロックjに関連付けられるQ−データ・アキュムレータ・バッファ250位置における以前のXOR演算の結果である。一旦ブロックjに関連付けられる1からNまでの全てのデータ値がGF乗算器230によってGF乗算され、その結果がXOR260によってXORされ、XORの結果がQ−データ・アキュムレータ・バッファ250によって累算されると、ブロックjに関連付けられるQ−データ・アキュムレータ・バッファ250における位置は結果Q[i][j]を保持することになることが理解されるべきである。さらに、ブロックjに関連付けられるQ−データのために格納された値が受信され、Q−データ値を変更しない定数値によってGF乗算され、XOR261によってXORされると(たとえば、HITQ信号に応答して)、全てのデータおよび格納されたブロックjに関連付けられるQ−データが正しい場合、ブロックjに関連付けられるQ−データ・アキュムレータ・バッファ250に格納された結果はゼロになる。そうでない場合はブロックjに関連付けられるQ−データ・アキュムレータ・バッファ250に格納された結果は非ゼロになり、したがってエラーを示す。追加のQ−データ・ブロックを検査するために、追加のGF乗算器、XOR、およびQ−データ・アキュムレータが使用されてよいことも理解されるべきである。
図3はRAID情報を検査する方法の流れ図である。図3に示された諸ステップは、P+Q検査システム100およびP+Q検査システム200のうちの1つまたは複数の要素によって実行されうる。
複数のRAIDストリップを複数の仮想バッファに提供するために複数の記憶装置が制御される(302)。たとえば、RAIDアレイにおける複数の記憶装置はそれらのRAIDストリップをP+Q検査システム200によってエミュレートされたアドレス範囲に提供するために制御されてよい。複数のRAIDストリップが受信される(304)。たとえば、XOR260およびGF乗算器230はブロック302で提供されたRAIDストリップを受信してよい。
複数のRAIDストリップに基づいて複数のP−データ値が累算される(306)。たとえば、P−データ・アキュムレータ・バッファ240はブロック304で受信されたRAIDストリップに基づいて複数のP−データ値を累算してよい。複数のQ−データ値が複数のRAIDストリップおよび複数の定数に基づいて累算される(308)。たとえば、Q−データ・アキュムレータ・バッファ250はGF乗算器230から受信された複数のQ−データ値を累算してよい。GF乗算器230から受信された結果は、ブロック304で受信されたRAIDストリップおよび定数セレクタ211から受信された定数に基づいてよい。
上述の方法、システム、および機能は1つまたは複数のコンピュータ・システムに実装されてもよく、1つまたは複数のコンピュータ・システムによって実行されてもよい。上述の方法はコンピュータ可読媒体に格納されてもよい。P+Q検査システム100およびP+Q検査システム200のうちの諸要素の多くはコンピュータ・システムを備えてもよく、含んでもよい。これは、アドレス比較110、定数セレクタ120、ガロア体(GF)乗算器130、P−データ・アキュムレータ140、Q−データ・アキュムレータ150、排他的論理和(XOR)160、排他的論理和160、アドレス比較210、ガロア体(GF)乗算器230、P−データ・アキュムレータ・バッファ240、Q−データ・アキュムレータ・バッファ250、排他的論理和(XOR)260、排他的論理和261、定数セレクタ211、完了検出器212、およびバッファ管理213を含むが、これに限定されない。
図4はコンピュータ・システムのブロック図を示している。コンピュータ・システム400は通信インターフェース420、処理システム430、記憶システム440、およびユーザ・インターフェース460を含む。処理システム430は記憶システム440に動作可能なように結合される。記憶システム440はソフトウェア450およびデータ470を格納する。処理システム430は通信インターフェース420およびユーザ・インターフェース460に動作可能なように結合される。コンピュータ・システム400はプログラムされた汎用コンピュータを備えてよい。コンピュータ・システム400はマイクロプロセッサを含んでよい。コンピュータ・システム400はプログラム可能または特殊用途回路を備えてよい。コンピュータ・システム400は、ともに要素420〜470を備える複数の装置、プロセッサ、記憶装置、および/またはインターフェースの間で分散されてよい。
通信インターフェース420はネットワーク・インターフェース、モデム、ポート、バス、リンク、トランシーバ、または他の通信装置を備えてよい。通信インターフェース420は複数の通信装置の間で分散されてよい。処理システム430はマイクロプロセッサ、マイクロコントローラ、論理回路、または他の処理装置を備えてよい。処理システム430は複数の処理装置の間で分散されてよい。ユーザ・インターフェース460はキーボード、マウス、音声認識インターフェース、マイクロフォンおよびスピーカ、グラフィカル・ディスプレイ、タッチ・スクリーン、または他のタイプのユーザ・インターフェース装置を備えてよい。ユーザ・インターフェース460は複数のインターフェース装置の間で分散されてよい。記憶システム440はディスク、テープ、集積回路、RAM、ROM、ネットワーク記憶装置、サーバ、または他のメモリ機能を備えてよい。記憶システム440はコンピュータ可読媒体でよい。記憶システム440は複数のメモリ装置の間で分散されてよい。
処理システム430は記憶システム440からソフトウェア450を取り出して実行する。処理システムはデータ470を取り出して格納してよい。処理システムは通信インターフェース420を介してデータを取り出して格納してもよい。明確な結果を達成するために、処理システム450はソフトウェア450またはデータ470を作成してもよく、修正してもよい。明確な結果を達成するために、処理システムは通信インターフェース420またはユーザ・インターフェース470を制御してよい。処理システムは遠隔に格納されたソフトウェアを通信インターフェース420を介して取り出して実行してよい。
ソフトウェア450および遠隔に格納されたソフトウェアはオペレーティング・システム、ユーティリティ、ドライバ、ネットワーキング・ソフトウェア、および一般にコンピュータ・システムによって実行される他のソフトウェアを備えてよい。ソフトウェア450はアプリケーション・プログラム、アプレット、ファーム・ウェア、または一般にコンピュータ・システムによって実行される他の形式の機械可読の処理命令を備えてよい。処理システム430によって実行されると、ソフトウェア450または遠隔に格納されたソフトウェアは、本明細書に説明されたように機能するようコンピュータ・システム400に指示してよい。
本発明の上記の記述は例示および説明の目的で提示された。上記の記述は網羅的であることまたは本発明を開示した正確な形式に限定することを意図するものではなく、上記の教示を踏まえて他の変形および変更が可能でよい。当分野の他の技術者が、企図された特定の使用に適する様々な実施形態および様々な修正形態で本発明を最もよく利用できるようにするために、本発明の原則および実際的なアプリケーションを最もよく説明するために実施形態が選択されて説明された。添付の特許請求の範囲は、従来技術によって限定される範囲を除く本発明の他の代替実施形態を含むものと解釈されることを意図する。

Claims (12)

  1. RAID情報を検査するシステムであって、
    RAID検査範囲に対応するシステム・バス上の第1アドレスを決定するアドレス比較と、
    RAID P−データ・アキュムレータに格納されたデータの排他的論理和の第1結果および前記システム・バスから受信されたデータを格納するRAID P−データ・アキュムレータとを含み、前記システム・バスから受信された前記データが、前記システム・バス上の前記第1アドレスに送信されるデータに対応し、前記システム・バス上の前記第1アドレスが前記RAID検査範囲に対応するものであり、さらに、
    前記システム・バス上の前記第1アドレスに基づいて、前記システム・バスから受信された前記データに対応する定数のセットのうちの1つを選択する定数セレクタと、
    RAID Q−データ・アキュムレータに格納されたデータの排他的論理和の第2結果、および定数の前記セットのうちの前記1つのガロア体乗算の第3結果、ならびに前記システム・バスから受信された前記データを格納するRAID Q−データ・アキュムレータとを備えるシステム。
  2. データのセットが前記システム・バスからいつ受信されたかを決定する完了検出器をさらに備える、請求項1に記載のシステム。
  3. データの前記セットが、RAID P−データおよびRAID Q−データを備えるRAIDデータ・ストライプを備える複数のデータ・ブロックを備える、請求項2に記載のシステム。
  4. RAID P−データ検査範囲に対応する前記システム・バス上の第2アドレスを決定するP−アドレス比較をさらに備え、前記RAID Q−データ・アキュムレータが、前記RAID P−データ検査範囲に対応する前記システム・バス上の前記第2アドレスに応答して前記第2結果を格納しない、請求項1に記載のシステム。
  5. RAID Q−データ検査範囲に対応する前記システム・バス上の第2アドレスを決定するQ−アドレス比較をさらに備え、前記RAID P−データ・アキュムレータが、前記RAID Q−データ検査範囲に対応する前記システム・バス上の前記第2アドレスに応答して前記第1結果を格納しない、請求項1に記載のシステム。
  6. RAID Q−データ検査範囲に対応する前記システム・バス上の第3アドレスを決定するQ−アドレス比較をさらに備え、前記RAID P−データ・アキュムレータが、前記RAID Q−データ検査範囲に対応する前記システム・バス上の前記第3アドレスに応答して第1結果を格納しない、請求項4に記載のシステム。
  7. RAID情報を検査する方法であって、
    複数のRAIDストリップを提供するために複数の記憶装置を制御することを含み、前記複数のRAIDストリップが複数の仮想バッファに送信され、さらに、
    前記複数のRAIDストリップを受信し、
    それぞれの前記複数の仮想バッファに対応する複数のP−データ値および複数のQ−データ値を累算することを含み、前記複数のP−データ値および前記複数のQ−データ値が、それぞれの前記複数の仮想バッファのために受信された前記複数のRAIDストリップに対応する、方法。
  8. 前記複数のQ−データ値が、それぞれの前記複数のRAIDストリップが送信される前記複数の仮想バッファのうちの対応する1つに基づいて選択される複数の定数に基づく、請求項7に記載の方法。
  9. RAID P−データ・ストリップを提供するために記憶装置を制御することをさらに含み、前記RAID P−データ・ストリップがP−データ仮想バッファに送信され、さらに、
    前記RAID P−データ・ストリップを受信し、そして、
    前記RAID P−データ・ストリップを前記複数のP−データ値のうちの少なくとも1つと累算した前記結果に基づいて、エラー状態を決定することを含む、請求項7に記載の方法。
  10. RAID Q−データ・ストリップを提供するために記憶装置を制御することをさらに含み、前記RAID Q−データ・ストリップがQ−データ仮想バッファに送信され、さらに、
    前記RAID Q−データ・ストリップを受信し、
    前記RAID Q−データ・ストリップを前記複数のQ−データ値のうちの少なくとも1つと累算した前記結果に基づいて、エラー状態を決定することを含む、請求項7に記載の方法。
  11. RAID P−データ・ストリップを提供するために第1記憶装置を制御することをさらに含み、前記RAID P−データ・ストリップがP−データ仮想バッファに送信され、さらに、
    前記RAID P−データ・ストリップを受信し、
    RAID Q−データ・ストリップを提供するために第2記憶装置を制御することをさらに含み、前記RAID Q−データ・ストリップがQ−データ仮想バッファに送信され、さらに、
    前記RAID Q−データ・ストリップを受信し、
    前記RAID Q−データ・ストリップを前記複数のQ−データ値のうちの少なくとも1つと累算した前記結果に基づいて、および前記RAID P−データ・ストリップを前記複数のP−データ値のうちの少なくとも1つと累算した前記結果に基づいて、エラー状態を決定することをさらに含む、請求項7に記載の方法。
  12. RAID情報を検査するシステムであって、
    システム・バス上に提示されたアドレスを複数の仮想アドレス・バッファ範囲と比較する仮想バッファ比較と、
    前記複数の仮想アドレス・バッファ範囲のうちの1つに対応する前記システム・バス上に提示された前記アドレスに応答して、ガロア体定数およびアキュムレータ・バッファ・アドレスを選択するセレクタと、
    前記ガロア体定数および前記システム・バス上に提示された前記アドレスに対応するデータのブロックにガロア体乗算を実行するガロア体乗算器と、
    データの前記ブロックおよび前記アキュムレータ・バッファ・アドレスに対応する格納されたP−データ値への排他的論理和演算のP−データ結果を格納するP−データ排他的論理和アキュムレータと、
    ガロア体乗算結果および前記アキュムレータ・バッファ・アドレスに対応する格納されたQ−データ値への排他的論理和演算のQ−データ結果を格納するQ−データ排他的論理和アキュムレータとを備えるシステム。
JP2011536341A 2008-11-19 2009-01-09 Raid情報のメモリ効率検査 Expired - Fee Related JP5502883B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11626508P 2008-11-19 2008-11-19
US61/116,265 2008-11-19
PCT/US2009/030656 WO2010059255A1 (en) 2008-11-19 2009-01-09 Memory efficient check of raid information

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013252080A Division JP2014041664A (ja) 2008-11-19 2013-12-05 Raid情報のメモリ効率検査

Publications (2)

Publication Number Publication Date
JP2012509523A true JP2012509523A (ja) 2012-04-19
JP5502883B2 JP5502883B2 (ja) 2014-05-28

Family

ID=42198425

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011536341A Expired - Fee Related JP5502883B2 (ja) 2008-11-19 2009-01-09 Raid情報のメモリ効率検査
JP2013252080A Pending JP2014041664A (ja) 2008-11-19 2013-12-05 Raid情報のメモリ効率検査

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013252080A Pending JP2014041664A (ja) 2008-11-19 2013-12-05 Raid情報のメモリ効率検査

Country Status (7)

Country Link
US (1) US8898380B2 (ja)
EP (1) EP2297741A1 (ja)
JP (2) JP5502883B2 (ja)
KR (1) KR20110095126A (ja)
CN (1) CN101868834A (ja)
TW (1) TWI498725B (ja)
WO (1) WO2010059255A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081559B (zh) * 2011-01-11 2013-06-05 华为数字技术(成都)有限公司 一种独立磁盘冗余阵列的数据恢复方法和装置
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US9037564B2 (en) 2011-04-29 2015-05-19 Stephen Lesavich Method and system for electronic content storage and retrieval with galois fields on cloud computing networks
US9361479B2 (en) 2011-04-29 2016-06-07 Stephen Lesavich Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks
US9137250B2 (en) 2011-04-29 2015-09-15 Stephen Lesavich Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks
USD827654S1 (en) * 2013-12-20 2018-09-04 Sony Corporation Wearable player with graphical user interface
CN105487938A (zh) * 2015-11-30 2016-04-13 浪潮(北京)电子信息产业有限公司 一种gf乘法器、校验位生成装置、主控芯片及固态硬盘
CN111625181B (zh) * 2019-02-28 2022-03-29 华为技术有限公司 数据处理方法、独立硬盘冗余阵列控制器和数据存储系统
US10936420B1 (en) * 2019-09-27 2021-03-02 Dell Products L.P. RAID storage-device-assisted deferred Q data determination system
US11023321B2 (en) 2019-09-27 2021-06-01 Dell Products L.P. Raid storage-device-assisted deferred parity data update system
US11023322B2 (en) 2019-09-27 2021-06-01 Dell Products L.P. Raid storage-device-assisted parity update data storage system
CN115878052B (zh) * 2023-03-08 2023-05-23 苏州浪潮智能科技有限公司 Raid阵列巡检方法、巡检装置和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123092A (en) * 1988-10-21 1992-06-16 Zenith Data Systems Corporation External expansion bus interface
JPH09138735A (ja) * 1995-02-17 1997-05-27 Toshiba Corp 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置
US5809559A (en) * 1993-10-06 1998-09-15 Ast Research, Inc. System and method utilizing a virtual addressing buffer circuit to emulate a device which is physically not present
JP2002323991A (ja) * 2001-03-14 2002-11-08 Hewlett Packard Co <Hp> パリティセグメント計算方法
JP2005149224A (ja) * 2003-11-17 2005-06-09 Nec Corp ディスクアレイ装置,raid用パリティデータ生成回路およびガロア体乗算回路
US20080040646A1 (en) * 2004-11-19 2008-02-14 International Business Machines Corporation Raid environment incorporating hardware-based finite field multiplier for on-the-fly xor
US20080148025A1 (en) * 2006-12-19 2008-06-19 Vinodh Gopal High performance raid-6 system architecture with pattern matching

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139873B1 (en) * 2001-06-08 2006-11-21 Maxtor Corporation System and method for caching data streams on a storage media
US7370248B2 (en) * 2003-11-07 2008-05-06 Hewlett-Packard Development Company, L.P. In-service raid mirror reconfiguring
JP4435705B2 (ja) * 2005-03-14 2010-03-24 富士通株式会社 記憶装置、その制御方法及びプログラム
US8291161B2 (en) * 2005-10-07 2012-10-16 Agere Systems Llc Parity rotation in storage-device array
JP4358869B2 (ja) * 2007-02-21 2009-11-04 富士通株式会社 ストレージ制御装置、ストレージ制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123092A (en) * 1988-10-21 1992-06-16 Zenith Data Systems Corporation External expansion bus interface
US5809559A (en) * 1993-10-06 1998-09-15 Ast Research, Inc. System and method utilizing a virtual addressing buffer circuit to emulate a device which is physically not present
JPH09138735A (ja) * 1995-02-17 1997-05-27 Toshiba Corp 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置
JP2002323991A (ja) * 2001-03-14 2002-11-08 Hewlett Packard Co <Hp> パリティセグメント計算方法
JP2005149224A (ja) * 2003-11-17 2005-06-09 Nec Corp ディスクアレイ装置,raid用パリティデータ生成回路およびガロア体乗算回路
US20080040646A1 (en) * 2004-11-19 2008-02-14 International Business Machines Corporation Raid environment incorporating hardware-based finite field multiplier for on-the-fly xor
US20080148025A1 (en) * 2006-12-19 2008-06-19 Vinodh Gopal High performance raid-6 system architecture with pattern matching
JP2010514066A (ja) * 2006-12-19 2010-04-30 インテル・コーポレーション パターンマッチングによる高性能raid6システムアーキテクチャ

Also Published As

Publication number Publication date
CN101868834A (zh) 2010-10-20
KR20110095126A (ko) 2011-08-24
WO2010059255A1 (en) 2010-05-27
JP5502883B2 (ja) 2014-05-28
TWI498725B (zh) 2015-09-01
US20110264857A1 (en) 2011-10-27
JP2014041664A (ja) 2014-03-06
TW201020758A (en) 2010-06-01
EP2297741A1 (en) 2011-03-23
US8898380B2 (en) 2014-11-25

Similar Documents

Publication Publication Date Title
JP5502883B2 (ja) Raid情報のメモリ効率検査
US9304860B2 (en) Arranging data handling in a computer-implemented system in accordance with reliability ratings based on reverse predictive failure analysis in response to changes
US8473816B2 (en) Data verification using checksum sidefile
US9652408B2 (en) System and method for providing data integrity
US7647526B1 (en) Reducing reconstruct input/output operations in storage systems
CN102981927B (zh) 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
US8583984B2 (en) Method and apparatus for increasing data reliability for raid operations
US7725805B2 (en) Method and information apparatus for improving data reliability
US8352835B2 (en) Data verification using checksum sidefile
US8438429B2 (en) Storage control apparatus and storage control method
JP2008539474A (ja) パワーセーフディスクストレージ装置、システム及び方法
US8595397B2 (en) Storage array assist architecture
JP2010033287A (ja) ストレージサブシステム及びこれを用いたデータ検証方法
US8489976B2 (en) Storage controlling device and storage controlling method
JP2009294901A (ja) ストレージ装置及び障害復旧方法
US9146803B2 (en) Storage apparatus, control apparatus, and storage apparatus control method
US7526714B2 (en) Apparatus for checking data coherence, raid controller and storage system having the same, and method therefor
US10353771B1 (en) Managing data storage
US20110258520A1 (en) Locating and correcting corrupt data or syndrome blocks

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130304

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131205

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140313

R150 Certificate of patent or registration of utility model

Ref document number: 5502883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees