Nothing Special   »   [go: up one dir, main page]

JP5124792B2 - RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ - Google Patents

RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ Download PDF

Info

Publication number
JP5124792B2
JP5124792B2 JP2009521760A JP2009521760A JP5124792B2 JP 5124792 B2 JP5124792 B2 JP 5124792B2 JP 2009521760 A JP2009521760 A JP 2009521760A JP 2009521760 A JP2009521760 A JP 2009521760A JP 5124792 B2 JP5124792 B2 JP 5124792B2
Authority
JP
Japan
Prior art keywords
data
processing module
target processing
raid
ecc
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.)
Active
Application number
JP2009521760A
Other languages
English (en)
Other versions
JP2009545062A (ja
JP2009545062A5 (ja
Inventor
スタルジャ、パンタス
Original Assignee
マーベル ワールド トレード リミテッド
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
Priority claimed from US11/591,325 external-priority patent/US7634686B2/en
Application filed by マーベル ワールド トレード リミテッド filed Critical マーベル ワールド トレード リミテッド
Publication of JP2009545062A publication Critical patent/JP2009545062A/ja
Publication of JP2009545062A5 publication Critical patent/JP2009545062A5/ja
Application granted granted Critical
Publication of JP5124792B2 publication Critical patent/JP5124792B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation

Landscapes

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

Description

関連出願
本願は、米国仮特許出願第60/820,180号(出願日:2006年7月24日)、米国特許出願第11/724,549号(出願日:2007年3月15日)、および米国特許出願第11/591,325号(出願日:2006年11月1日)による恩恵を主張する。上記出願の開示内容はすべて、参照により本願に組み込まれる。
本開示は、RAID(Redundant Array of Independent Disks)システムに関する。
本明細書における「背景技術」の説明は、本開示内容がどのような状況の中で考案されているのかを概して説明するためになされる。現時点において名前が挙げられている発明者による研究は、この「背景技術」部分で説明されている範囲内において、説明されていなければ出願時において先行技術としての基準を満たすものでない本明細書の側面と同様に、本開示内容に対する先行技術として、明示または黙示を問わず、認められない。
RAID(Redundant Array of Independent Disks)システムは、複数のハードディスクにデータを冗長に格納する。一部のRAIDレベルでは、データブロックを分割して複数の異なるディスクに格納して、データ格納量および検索レイテンシを低減している。また、複数のディスクを用いる場合、平均故障間隔(MTBF)が大きくなると共にフォールトトレランスが高くなる傾向がある。
RAIDシステムは、アクセスしているデバイスまたはホストデバイスにとっては、単一の論理ハードディスクドライブに見える。RAIDシステムは、各ドライブの格納スペースを複数のユニットに分割することを含むディスクストライピングを採用するとしてもよい。ユニットサイズは、アプリケーションに応じて、セクタ(512バイト)から数メガバイトまでの間で、選択される。すべてのディスクのストライプは通常、インターリーブされて順にアドレスが割り当てられる。
RAIDシステムには、冗長性を持たないアレイ(RAID−0)に加えて、多くの種類が存在する。RAID−0では、データに冗長性を持たせずにストライピングを採用したものである。性能は最も良好であるが、フォールトトレランスがない。RAID−1では、ストライピングは用いられずにディスクミラーリングが利用され、データの格納時に複製を可能とするべく少なくとも2つのドライブが必要となる。各ディスクを同時に読み出すことができるので、読出性能は向上する。書込性能は、単一のディスクストレージの場合と変わらない。RAID−1は、マルチユーザシステムにおいて、性能およびフォールトトレランスが最も高い。
RAID−2では、複数のディスクにわたってストライピングが利用される。一部のディスクは、エラー検出訂正(ECC)情報を格納している。RAID−3では、ストライピングが用いられて、1つのドライブがパリティ情報の格納専用とされる。埋め込まれたエラー検出訂正(ECC)情報を用いてエラーを検出する。データ復元は、残りのドライブに格納されている情報の論理的排他和(XOR)を算出することによって実行される。I/O動作ではすべてのドライブについて同時にアドレスを指定するので、RAID−3はI/Oを重複して行うことができない。このため、RAID−3は、記録内容が長いアプリケーションの単一ユーザシステムでの利用が最適である。
RAID4では、大きいストライプが利用される。記録内容は、どの1つのドライブからも読み出すことができる。このため、読出動作においてはI/Oを重複させて実行することができる。書込動作ではパリティドライブを更新するので、I/Oを重複させることはできない。RAID−5では、RAID−4の書込動作に関する制約に対処するべく、回転式パリティアレイを用いている。このため、読出動作および書込動作を共に重複させることができる。RAID−5では、パリティ情報を格納するが、冗長データは利用しない。しかし、パリティ情報を用いてデータを再構成することができる。RAID−5は、アレイについて、少なくとも3つ、通常は5つのディスクを必要とする。RAID−5は、性能が重要視されないマルチユーザシステムまたは書込動作がほとんど行われないマルチユーザシステムに最適である。
RAID−6は、RAID−5と同様であるが、複数の異なるドライブにわたって分散される第2のパリティが用いられる。RAID−6は、フォールトトレランスおよびドライブ故障トレランスが高い。RAID−7では、リアルタイムの埋め込みオペレーティングシステムおよびコントローラが用いられる。RAID−7は、高速バスを介したキャッシングおよびスタンドアローンのコンピュータのほかの特性を利用する。
RAID−10は、RAID−0とRAID−1とを組み合わせたものである。RAID−10はさらに2つに分類することができ、そのうち一方のRAID−0+1では、データはストライプとして複数のディスクに渡って編成され、ストライプ状のディスク群をミラーリングさせる。もう一方のRAID−1+0では、データをミラーリングさせて、ミラーリングの結果にストライピングを施す。
RAID−50(またはRAID−5+0)では、一連のRAID−5群が用いられる。RAID−5群を、RAID−0方式に従ってストライピングして、データ保護レベルを下げることなくRAID−5の性能を改善する。RAID−53(またはRAID−5+3)では、ストライピング(RAID−0方式)をRAID−3の仮想ディスクブロックに用いる。この結果、RAID−3に比べて性能も高くなるが、コストも同様に大きくなる。
ホストデバイスがストレージに対してデータブロックを送信すると、選択されているRAID方式についてRAID処理が実施される。このようなRAID処理は、選択されているRAIDレベルおよび/またはその他の処理に対する冗長処理および復元処理(例えば、エラー検出訂正(ECC))を含むとしてもよい。
1つの方法を挙げると、単一の中央演算処理装置(CPU)が別のデバイスからデータブロックを受信する。CPUはECCを含むすべてのRAID処理を実行する。当該方法によれば、ECC関連処理は一定でなく時間がかかり得るので、CPUによってデータストレージの速度が制限され得ることが多い。つまり、CPUでの処理によってボトルネックが生じると共にレイテンシが大きくなってしまう場合がある。CPUが1つの場合、1つのデータブロックのRAID再構成は、後続のデータブロックの処理の前に完了しなければならない。
RAID(Redundant Array of Independent Disks)システムは、N個のストレージアレイを備え、N個のストレージアレイのそれぞれは、ターゲット処理モジュールと、1個からM個のハードディスクドライブとを有し、MおよびNは1よりも大きい整数である。データ処理モジュールは、第1のデータブロックに対する第1のデータ格納要求を、第1のデータブロックに対するエラー検出訂正(ECC)データ処理のために、複数のターゲット処理モジュールのうちの1つのターゲット処理モジュールに割り当てる。複数のターゲット処理モジュールのうちの1つのターゲット処理モジュールは、第1のデータブロックの第1の部分および第1のデータブロックに対応付けられているECCデータを、複数のターゲット処理モジュールのうちの別の1つのターゲット処理モジュールに送信する。
別の特徴によると、複数のターゲット処理モジュールのうち別の1つのターゲット処理モジュールが受信するECCデータは、第1の部分に対応する。インターフェースは、第1のデータブロックを受信して、第1のデータブロックをデータ処理モジュールに転送する。インターフェースは、ネットワークインターフェース、ギガビットイーサネットネットワークインターフェース、およびデータバスのうち少なくとも1つを有する。スイッチモジュールは、データ処理モジュールとN個のストレージアレイとの間、および、N個のストレージアレイの間でデータを切り替える。スイッチモジュールは、マルチポート高速スイッチを有する。データ処理モジュールは、第2のデータブロックに対する第2のデータ格納要求を、第2のデータブロックに対するECCデータ処理のために、第2のターゲット処理モジュールに割り当て、第2のターゲット処理モジュールは、第2のデータブロックのうち第1の部分および第2のデータブロックに対応付けられているECCデータを複数のターゲット処理モジュールのうち第3のターゲット処理モジュールに送信する。第1および第2のデータブロックはそれぞれ、複数のターゲット処理モジュールのうち1つのターゲット処理モジュールおよび第2のターゲット処理モジュールにおいて、重複して処理される。
別の特徴によると、データ処理モジュールは、インターフェース、メモリ、および少なくとも1つのプロセッサを有する。データ処理モジュールは、第1のデータブロックに対してファイルシステム(FS)プロトコル機能を実行する。FSプロトコルは、ネットワークファイルサーバ(NFS)および共通インターネットファイルサーバ(CIFS)のうち少なくとも1つを含む。データ処理モジュールは、第1のデータブロックに適用されるRAIDストレージレベルを決定する。データ処理モジュールは、N個のストレージアレイのうち選択される複数のストレージアレイに第1のデータブロックをマッピングして、N個のストレージアレイに対するストレージマップを更新する。
別の特徴によると、データ処理モジュールは、データ取得要求を受信すると、データ取得要求を複数のターゲット処理モジュールのうち第1のターゲット処理モジュールに割り当てる。複数のターゲット処理モジュールのうち第1のターゲット処理モジュールは、複数のターゲット処理モジュールのほかの複数のターゲット処理モジュールからデータ取得要求に対応するデータを取得すると共に、データのうちエラーを含む部分に関連するECCデータを取得する。
別の特徴によると、複数のターゲット処理モジュールのうち第1のターゲット処理モジュールは、ECCデータを用いて部分に対してデータ復元を実行する。データ処理モジュールは、データ取得要求を受信すると、データ取得要求に対応するデータを含む複数のターゲット処理モジュールにデータ取得メッセージを送信する。複数のターゲット処理モジュールは、データ取得要求に対応するデータおよびデータのうちエラーを含む部分に関連するECCデータを取得する。複数のターゲット処理モジュールは、データ取得要求に対応する取得されたデータおよびECCデータを、データ処理モジュールに送信し、データ処理モジュールはECCデータを用いて部分に対してデータ復元を実行する。複数のターゲット処理モジュールは、ECCデータを用いて部分に対してデータ復元を実行する。
RAID(Redundant Array of Independent Disks)システムは、N個のストレージアレイを備え、N個のストレージアレイのうちそれぞれは、ターゲット処理モジュールと、1個からM個のハードディスクドライブとを有し、MおよびNは1よりも大きい整数である。データ処理モジュールは、複数のデータブロックに対するエラー検出訂正(ECC)処理を複数のターゲット処理モジュールのうち選択される複数のターゲット処理モジュールに、重複しないように、選択的に割り当てる。スイッチモジュールは、データ処理モジュールとN個のストレージアレイとの間、および、N個のストレージアレイのそれぞれとN個のストレージアレイのほかの複数のストレージアレイとの間において、通信経路を提供する。
別の特徴によると、データ処理モジュールは、第1のデータブロックに対するデータ格納要求を、第1のデータブロックに対するECCデータ処理のために、複数のターゲット処理モジュールのうち1つのターゲット処理モジュールに割り当て、複数のターゲット処理モジュールのうち1つのターゲット処理モジュールは、第1のデータブロックの第1の部分および第1のデータブロックに対応付けられているECCデータを、複数のターゲット処理モジュールのうち別の1つのターゲット処理モジュールに送信する。複数のターゲット処理モジュールのうち別の1つのターゲット処理モジュールが受信するECCデータは、第1の部分に対応する。インターフェースは、複数のデータブロックを受信して、複数のデータブロックをデータ処理モジュールに転送する。インターフェースは、ネットワークインターフェース、ギガビットイーサネットネットワークインターフェース、およびデータバスのうち少なくとも1つを有する。
別の特徴によると、スイッチモジュールは、マルチポート高速スイッチを有する。スイッチモジュールは、毎秒1ギガビット以上の速度で動作するマルチポートスイッチを有する。スイッチモジュールは、マルチポートギガビットイーサネットスイッチを有する。データ処理モジュールは、第2のデータブロックに対する第2のデータ格納要求を、第2のデータブロックに対するECCデータ処理のために、第2のターゲット処理モジュールに割り当てる。第2のターゲット処理モジュールは、第2のデータブロックのうち第1の部分および第2のデータブロックに対応付けられているECCデータを複数のターゲット処理モジュールのうち第3のターゲット処理モジュールに送信する。
別の特徴によると、第1および第2のデータブロックはそれぞれ、複数のターゲット処理モジュールのうち1つのターゲット処理モジュールおよび第2のターゲット処理モジュールにおいて、重複して処理される。データ処理モジュールは、インターフェース、メモリ、および少なくとも1つのプロセッサを有し、データ処理モジュールは、第1のデータブロックに対してファイルシステム(FS)プロトコル機能を実行する。FSプロトコルは、ネットワークファイルサーバ(NFS)および共通インターネットファイルサーバ(CIFS)のうち少なくとも1つを含む。データ処理モジュールは、複数のデータブロックに適用されるRAIDストレージレベルを決定する。データ処理モジュールは、N個のストレージアレイのうち選択される複数のストレージアレイに複数のデータブロックをマッピングして、N個のストレージアレイに対するストレージマップを更新する。
別の特徴によると、データ処理モジュールは、データ取得要求を受信すると、データ取得要求を複数のターゲット処理モジュールのうち第1のターゲット処理モジュールに割り当てる。複数のターゲット処理モジュールのうち第1のターゲット処理モジュールは、複数のターゲット処理モジュールのほかのターゲット処理モジュールに対してデータ取得要求に対応するデータを要求すると共にデータのうちエラーを含む部分に関連するECCデータを要求する。複数のターゲット処理モジュールのうち第1のターゲット処理モジュールは、ECCデータを用いて部分に対してデータ復元を実行する。
別の特徴によると、データ処理モジュールは、データ取得要求を受信すると、データ取得要求に対応するデータを含む複数のターゲット処理モジュールにデータ取得メッセージを送信する。複数のターゲット処理モジュールは、データ取得要求に対応するデータおよびデータのうちエラーを含む部分に関連するECCデータを取得する。複数のターゲット処理モジュールは、データ取得要求に対応する取得されたデータおよびECCデータを、データ処理モジュールに送信し、データ処理モジュールはECCデータを用いて部分に対してデータ復元を実行する。複数のターゲット処理モジュールは、ECCデータを用いて部分に対してデータ復元を実行する。
本開示内容はさらに異なる分野でも応用が可能であり、そのような分野は以下の詳細な説明から明らかとなる。本開示内容の好ましい実施形態を説明するためのものとして、詳細な記載および具体的な例を挙げるが、これらは説明を目的としたものに過ぎず本開示内容の範囲を限定するものではないと理解されたい。
以下の詳細な説明および添付図面を参照して本開示内容をより詳しく説明する。添付図面は以下の通りである。
本開示に係るRAIDシステムを示す機能ブロック図である。
データ処理モジュールを示す機能ブロック図である。
ターゲット処理モジュールを示す機能ブロック図である。
ターゲット処理モジュールの一例を示す、より詳細な機能ブロック図である。
データブロックの処理を示す機能ブロック図である。
データブロックの処理を示す機能ブロック図である。
データブロックの処理を示す機能ブロック図である。
データブロックの処理のタイミングを示す図である。
格納されるべきデータブロックの処理方法を示すフローチャートである。
データ処理モジュールによってECC処理が実施されるデータブロックを取得する方法の一例を示すフローチャートである。 データ処理モジュールによってECC処理が実施されるデータブロックを取得する方法の一例を示すフローチャートである。
ターゲット処理モジュールのそれぞれによってECC処理が実施されるデータブロックを取得する方法の一例を示すフローチャートである。 ターゲット処理モジュールのそれぞれによってECC処理が実施されるデータブロックを取得する方法の一例を示すフローチャートである。
ターゲット処理モジュールのうち選択された1つのターゲット処理モジュールによってECC処理が実施されるデータブロックを取得する方法の一例を示すフローチャートである。
以下の説明は、本質的に例示に過ぎず、本開示内容、その用途または利用を限定するものでは決してない。本開示内容を明確に説明するべく、類似の構成要素を図中で指定する際には複数の図面にわたって同一の参照番号を使用する。本明細書で使用する場合、モジュール、回路および/またはデバイスという用語は、1以上のソフトウェアまたはファームウェアプログラムを実行する特定用途集積回路(ASIC)、電子回路、プロセッサ(共有、専用または群)およびメモリ、組み合わせ論理回路、ならびに/または本明細書で記載する機能を提供する上記以外に適切な構成要素を指すものとする。本明細書で言及される場合、「A、BおよびCのうち少なくとも1つ」という表現は、論理演算(AまたはBまたはC)、非排他的論理ORを意味すると解釈されたい。尚、方法が含むステップは、本開示内容の原則を変更することなく、別の順序に従って実行され得る。
図1は、RAID(Redundant Array of Independent Disks)システム100を示す。インターフェース104は、RAIDシステム100に格納されるべきデータブロックを受信する。例えば、インターフェース104は、ギガビットイーサネット(登録商標)ネットワークインターフェース、データバス等の高速インターフェースであってもよいが、任意のほかの種類のインターフェースを用いるとしてもよい。データ処理モジュール108は、RAID処理の一部を実行する。つまり、データ処理モジュール108は、インターフェース104からデータブロックを受信して、当該データに対してオペレーティングシステム(OS)およびファイルシステム(FS)プロトコル機能を実行する。例えば、FSプロトコルは、ネットワークファイルサーバ(NFS)、共通インターネットファイルサーバ(CIFS)、および/または、その他の適切なプロトコルを含むとしてよい。データ処理モジュール108は、後述するように、他のターゲット処理デバイスに、冗長処理および復元処理(例えば、エラー検出訂正(ECC))を分配する。
データ処理モジュール108は、スイッチモジュール112と通信する。一例に過ぎないが、スイッチモジュール112は、クロスバースイッチ、ギガビットスイッチまたはギガビットイーサネットスイッチといったマルチポート高速スイッチであってもよい。スイッチモジュール112は、データパケットとして編成されたデータを切り替えるとしてもよい。想到されることであるが、スイッチモジュール112によれば、ハードワイヤード接続に比べ、拡張性および柔軟性が実現される。
スイッチモジュール112は、2つ以上のストレージアレイ120−1、120−2、・・・および120−X(ストレージアレイ120と総称する)と通信する。ここで、Xは1よりも大きい整数である。ストレージアレイ120はそれぞれ、ターゲット処理モジュール122−1、122−2、・・・および122−X(ターゲット処理モジュール122と総称する)と、1以上のハードディスクドライブ(HDD)124−11、124−12、・・・および124−XY(HDD124と総称する)とを有する。ここで、Yは0よりも大きい整数である。想到されることであるが、ストレージアレイ120の数および各ストレージアレイ120が有するHDD124の数を変化させてスケーリングを可能とするとしてもよい。
図2Aは、データ処理モジュール108の一例をさらに詳細に示す図である。データ処理モジュール108は、インターフェース104を介して、データ格納されるべきデータブロックを受信する。データ処理モジュール108は、インターフェース150、メモリ154、および1以上のプロセッサ156を有するとしてもよい。
データ処理モジュール108は、適用すべきRAIDストレージレベルを決定して、FS関連処理を実行して、ストレージアレイに対してデータブロックをマッピングして、RAID冗長処理および復元処理(例えば、エラー検出訂正(ECC))を、選択されるターゲット処理モジュールに割り当てて、ストレージマップを更新する等としてもよい。
RAID冗長処理および復元処理を実行するように割り当てられているターゲット処理モジュール122は、データ処理モジュール108から命令を受信する。選択ターゲット処理モジュール122は、割り当てられたデータブロックについてエラー検出訂正(ECC)を生成する。完了すると、当該ターゲット処理モジュール122は、データ処理モジュール108が与えたRAID命令に基づいて、他のアレイに格納させるべく、他のターゲット処理モジュールに、データブロックおよび/またはECCデータの一部分を選択的に送信することによって、データ拡散処理を実行する。一部のデータおよびECCデータは、ローカルに格納されるとしてもよい。
同時に、他のターゲット処理モジュール122には、他のデータブロックについてのRAID冗長処理および復元処理が割り当てられるとしてもよい。他のターゲット処理モジュール122は、重複して、他のデータブロックに対するECCを処理する。データ処理モジュール108は、格納されるべきデータブロックのいずれについてもECCを処理しないので、ボトルネックを生じさせることはない。データ処理モジュール108に対応付けられているメモリ154は、ストレージアレイ120のデータのグローバルドライブマップ158を格納および更新するとしてもよい。
図2Bを参照しつつ説明すると、各ターゲット処理モジュール122は、RAID構成モジュール170およびRAID取得モジュール168を有するとしてもよい。RAID構成モジュール170はECCを処理する。RAID取得モジュール168は、後述するように、RAID取得要求を処理する。
RAID構成モジュール170は、選択ターゲット処理モジュール122に対応付けられているローカルドライブ124に格納されるべきデータブロックの一部分についてのECCを処理する。さらに、RAID構成モジュール170は、リモートストレージアレイ120に対応付けられているリモートドライブについてのECCを処理する。RAID命令モジュール172は、別のターゲット処理についてのRAID命令を生成し、他のターゲット処理モジュール122から受信するRAID命令を処理するとしてもよい。RAID命令モジュール172は、RAID構成モジュール170と一体化されるとしてもよい。
選択ターゲット処理モジュール以外のターゲット処理モジュールに対応付けられているリモートストレージアレイ120は、選択ターゲット処理モジュールから受信するデータおよび/またはECCデータを格納する。リモートストレージアレイ120は単純に、選択ターゲット処理モジュール122から送信されるRAID命令に従うとしてもよい。
想到されるように、リモートストレージアレイ120が実行する処理の量は、選択ターゲット処理モジュール122が実行するRAID構成処理よりもはるかに少ない。このため、リモートストレージアレイ120のターゲット処理モジュール122は、重複して他のデータブロックのRAID構成を処理するべく利用され得る。
図2Cは、ターゲット処理モジュール122の一例をさらに詳細に示す図である。ターゲット処理モジュール122は、データ処理モジュールからのRAID構成実行要求および/またはスイッチモジュール112を介してリモートターゲット処理モジュールが送信するRAID命令を受信する。ターゲット処理モジュール122は、インターフェース178、メモリ182、および1以上のプロセッサ184を有する。
図3を参照しつつ利用について説明すると、第1のデータブロック200−1はインターフェース104を介してデータ処理モジュール108で受信される。データ処理モジュール108は、当該データブロックに対してOSおよびFSプロトコル機能を実行する。データ処理モジュール108は、当該データブロックを、ストレージアレイ120のうちの1つと対応付けられているターゲット処理モジュール122に割り当てる。さらに、当該データ処理モジュール108は、適用されるべきRAIDストレージレベルを決定し、ストレージアレイに対してデータブロックをマッピングして、ストレージマップを更新する等してもよい。
例えば、第1のデータブロック200−1は第1のストレージアレイ120−1のターゲット処理モジュール122−1に割り当てられるとしてもよい。選択ターゲット処理モジュール122−1は、当該データブロックに対してECCを生成する。ストレージアレイ120−1が第1のデータブロックについてECCを生成している間、データ処理モジュール108はインターフェース104を介して第2のデータブロック200−2を受信する。データ処理モジュール108は、ECC生成のために、ストレージアレイ120−2に対応付けられているターゲット処理モジュール122−2に第2のデータブロックを割り当てる。
このようにデータブロックについてのRAID構成処理を重複して実行させるが、これは、すべてのターゲット処理モジュールがデータブロックを処理するようになるまで、さらにデータブロック200−Pまで継続することができる。このため、他の方法に比べると、スループットを大幅に向上させ得る。
図4および図5は、データブロック200−1の処理をさらに詳細に示す図である。処理が終わると、データ処理モジュール108は、ストレージアレイ120−1のターゲット処理モジュール122−1にデータブロック200−1を送信する。データ処理モジュール108はまた、ドライブマップを更新するとしてもよい。ターゲット処理モジュール122−1は、当該データブロックについてECCを処理する。ターゲット処理モジュール122−1は、データブロック200−1に対応付けられているデータのうち一部を、ストレージアレイ120−1に対応付けられているローカルドライブ124に格納するとしてもよい。さらに、ターゲット処理モジュール122−1は、RAID命令、データ、および/またはECCデータを、他のストレージアレイに対応付けられているターゲット処理モジュール122−2、・・・および122−Xに送信するとしてもよい。リモートストレージアレイ120−2、・・・および120−Xが有する他のターゲット処理モジュール122−2、・・・および122−Xは、RAID命令に単純に従っており、処理負荷は制限されている。このため、リモートストレージアレイ120−2、・・・および120−Xが有するターゲット処理モジュール122−2、・・・および122−Xは、他のデータブロックについてECCを処理することができる。
図5において、ターゲット処理モジュール122−1が第1のデータブロック200−1についてECCを処理している間に、データ処理モジュール108は第2のデータブロック200−2を受信する。データ処理モジュール108は、第2のデータブロック200−2を、ストレージアレイ120−2に対応付けられているターゲット処理モジュール122−2に割り当てる。追加のデータブロック200−Pは、その他のストレージアレイ120のターゲット処理モジュール122に割り当てられるとしてもよい。
図6は、データブロックのRAID処理250の一例を概して示す図である。この種のRAID処理はボトルネックを生じさせることがあり、データアクセス時間およびデータ取得時間が短くなる。本開示の一部の実施形態に係るデータ処理を252として示す。それぞれのデータブロックに対するRAID構成に係る時間は、一定でないとしてもよい。本開示に係るRAIDシステムは、格納要求のうちの1つを処理する時間が大幅に長くなっても、データブロックの処理を継続することができる。
図7は、データ格納要求時におけるRAIDシステム動作方法を示す図である。ステップ300から開始される。ステップ302では、格納されるべきデータブロックがデータ処理モジュール108で受信されたか否かを判断する。ステップ302が真であれば、ステップ304において、データ処理モジュール108は、当該データブロックについてのECC処理を、複数のターゲット処理モジュール122のうち1つに割り当てる。データ処理モジュール108はさらに、グローバルドライブマップを更新して、上述したほかの機能を実行するとしてよい。ステップ306において、選択ターゲット処理モジュールは、データブロックについてECCを処理する。選択ターゲット処理モジュールは、リモートストレージアレイに対応付けられるリモートターゲット処理モジュールに、RAID命令、データ、および/またはECCデータを送信するとしてもよい。ステップ310で終了する。
図8Aから図10は、データ取得方法についてさまざまな例を示す。データ取得について説明すると、取得時にエラーが検出されるとECC処理が実行されるとしてもよい。エラーは、当該エラーに対応付けられるサブブロックを格納しているハードディスクドライブによって検出されるとしてもよい。エラーが検出されると、ECC復元は、同種の複数のターゲット処理モジュール、ターゲット処理モジュールの中から選択される1つのターゲット処理モジュール、および/または、データ処理モジュールによって、ローカルに実行されるとしてもよい。
図8Aおよび図8Bは、データブロックを取得する方法の一例を示すフローチャートである。本実施形態によると、ECCエラーを含むデータに対するECC処理は、データ処理モジュールによって実行される。図8Aに示す方法はステップ320から開始され、ステップ322に進んで、データ処理モジュールがデータ取得要求を受信したか否か判断する。ステップ322が真であれば、ステップ324において、データ処理モジュールは、データ取得要求に対応付けられているデータを有するターゲット処理モジュールすべてに対してブロードキャストメッセージを送信する。これに代えて、データ処理モジュールは、マップを用いて各ターゲット処理モジュールに個別に個別メッセージを送信してもよい。
ステップ326において、データ処理モジュールは、エラーを有するターゲット処理モジュールからデータブロック(およびエラーを有するデータに対する対応するECCデータ)を受信したか否かを判断する。ステップ326が真であれば、データ処理モジュールはECCデータを用いてデータを復元する。ステップ326および327はステップ328に進み、データ処理モジュールは修正されたデータを要求元に送信する。エラーが修正できない場合、データ処理モジュールはエラーメッセージを送信するとしてもよいし、および/または、取得を再試行してもよい。ステップ329で終了する。
図8Bに示す方法は、ステップ330から開始され、ステップ332に進む。ステップ332において、ターゲット処理モジュールは、データ処理モジュールからデータ取得要求を受信したか否か判断する。ステップ334において、ターゲット処理モジュールは、取得要求に関するデータを取得してデータ処理モジュールに送信する。ステップ336において、ターゲット処理モジュールはサブブロックにエラーが検出されるか否かを判断する。ステップ336が真であれば、ターゲット処理モジュールは、サブブロックに関するECCデータを、データ処理モジュールに送信する。ステップ336および337はステップ338に進み、データ取得要求に関するデータがすべて送信されたか否かを判断する。送信されていない場合、ステップ334に戻る。ステップ338が真の場合は、ステップ339で終了する。
図9Aおよび図9Bは、データブロックを取得する方法の一例を示すフローチャートである。本実施形態によると、ECC処理は、データを格納しているターゲット処理モジュールそれぞれによって実行される。図9Aに示す方法は、ステップ340から開始される。ステップ342において、データ処理モジュールはデータ取得要求を受信したか否かを判断する。ステップ342が真であれば、ステップ344において、データ処理モジュールはすべてのターゲット処理モジュールに対してブロードキャストメッセージを送信する。これに代えて、データ処理モジュールは、マップに基づいて、ターゲット処理モジュールに対して個別メッセージを送信するとしてもよい。ステップ348において、データ処理モジュールはデータを受信して要求元に転送する。ステップ349で終了する。
図9Bに示す方法は、ステップ350から開始される。ステップ352において、ターゲット処理モジュールはデータ取得要求を受信したか否かを判断する。ステップ352が真であれば、ステップ354において、ターゲット処理モジュールは、データ処理モジュールに対して、サブブロックで取得要求に関するデータを送信する。ステップ356において、サブブロックにおいてエラーが検出されたか否かを判断する。ステップ356が真であれば、ステップ357に進み、ECCを処理してデータを復元して、復元されたデータを送信する。データを復元できない場合には、エラーメッセージを送信するとしてもよいし、および/または、再試行してもよい。ステップ356および357からステップ358に進み、データ取得要求に対応付けられているサブブロックすべてが送信されたか否かを判断する。送信されていない場合、ステップ354に戻る。送信されている場合には、ステップ359で終了する。
図10は、ECC処理が実施されるデータブロックを取得する方法の一例を示すフローチャートである。本実施形態によると、データ復元は、ターゲット処理モジュールのうち選択される1つのターゲット処理モジュールによって実行されるとしてもよい。ステップ360から開始され、ステップ361に進む。ステップ361において、データ処理モジュールはデータ取得要求を受信したか否かを判断する。ステップ361が真であれば、ステップ362において、データ処理モジュールは、当該データ取得をターゲット処理モジュールのうちの1つに割り当てる。選択ターゲット処理モジュールおよび/またはデータ処理モジュールは、リモートターゲット処理モジュールに対してデータを要求する。
ステップ364において、リモートターゲット処理モジュールは、選択ターゲット処理モジュールに対して、取得要求に関連するデータサブブロックを送信する。同様に、選択ターゲット処理モジュールは、ローカルドライブから、取得要求に関連するデータを取得する。これに代えて、リモートターゲット処理モジュールは、データにエラーがなければ、データを直接データ処理モジュールに送信するとしてもよい。エラーがあれば、リモートターゲット処理モジュールは、選択ターゲット処理モジュールにデータを送信してデータ復元を行うとしてもよい。
リモートターゲット処理モジュールのそれぞれについて説明すると、ステップ366において、リモートターゲット処理モジュールは、データサブブロックのうちのいずれかでエラーが検出されたか否かを判断する。ステップ366が真である場合、リモートターゲット処理モジュールは、エラーがあるサブブロックに対応付けられているECCデータを、選択ターゲット処理モジュールに送信する。エラーがないデータサブブロックは、ターゲット処理モジュールまたはデータ処理モジュールに送信されるとしてもよい。
ステップ366および367からステップ368に進み、リモートターゲット処理モジュールに関連する制御において、データサブブロックのすべてが送信されたか否かを判断する。ステップ370において、選択ターゲット処理モジュールは、データ復元にECCデータを用いる、つまり、エラーを修正する。選択ターゲット処理モジュールは、データ処理モジュールにデータを転送する。ステップ372において、データ処理モジュールは、復元されたデータを要求元のデバイスに転送する。
当業者であれば、上述の説明に基づき、本開示の広範囲な教示内容がさまざまな形態で実施され得ることに想到することができる。このため、本開示では具体的な例を紹介したが、本願の図面、明細書および特許請求の範囲を参照することによって当業者はほかの変形例を提案できることが明らかであるので、本開示の真の範囲は記載された具体例に限定されるものではない。

Claims (22)

  1. ネットワークインターフェースと、
    N個のストレージアレイと、
    データ処理モジュールと
    前記データ処理モジュールと前記N個のストレージアレイとの間、および、前記N個のストレージアレイの間でデータを切り替えるスイッチモジュールと
    を備え、
    前記N個のストレージアレイのそれぞれは、
    ターゲット処理モジュールと、
    1個からM個のハードディスクドライブと
    を有し、
    MおよびNは1よりも大きい整数であり、
    前記データ処理モジュールは、第1のデータブロックに対する第1のデータ格納要求を、前記第1のデータブロックに対するエラー検出訂正(ECC)データ処理のために、複数の前記ターゲット処理モジュールのうちの1つのターゲット処理モジュールに割り当て、
    前記複数のターゲット処理モジュールのうちの前記1つのターゲット処理モジュールは、前記第1のデータブロックの一部を格納し、前記第1のデータブロックの第1の部分および前記第1のデータブロックに対応付けられているECCデータを、前記複数のターゲット処理モジュールのうちの別の1つのターゲット処理モジュールに送信し、
    前記別の1つのターゲット処理モジュールは、前記第1のデータブロックの前記第1の部分及び前記ECCデータを受信および格納し、
    前記データ処理モジュールおよび前記スイッチモジュールは前記N個のストレージアレイと前記ネットワークインターフェースとの間に接続され、
    前記N個のストレージアレイは前記データ処理モジュールおよび前記スイッチモジュールを介して前記ネットワークインターフェースと通信するRAIDシステム。
  2. 前記複数のターゲット処理モジュールのうち前記別の1つのターゲット処理モジュールが受信する前記ECCデータは、前記第1の部分に対応する請求項1に記載のRAIDシステム。
  3. 前記ネットワークインターフェースは、前記第1のデータブロックを受信して、前記第1のデータブロックを前記データ処理モジュールに転送する請求項1または2に記載のRAIDシステム。
  4. 前記ネットワークインターフェースは、ギガビットイーサネットネットワークインターフェース、およびデータバスのうち少なくとも1つを有する請求項3に記載のRAIDシステム。
  5. 前記スイッチモジュールは、マルチポート高速スイッチを有する
    請求項1から4の何れか1項に記載のRAIDシステム。
  6. 前記データ処理モジュールは、第2のデータブロックに対する第2のデータ格納要求を、前記第2のデータブロックに対するECCデータ処理のために、第2のターゲット処理モジュールに割り当て、前記第2のターゲット処理モジュールは、前記第2のデータブロックのうち第1の部分および前記第2のデータブロックに対応付けられているECCデータを前記複数のターゲット処理モジュールのうち第3のターゲット処理モジュールに送信する請求項1から5の何れか1項に記載のRAIDシステム。
  7. 前記第1および第2のデータブロックはそれぞれ、前記複数のターゲット処理モジュールのうち前記1つのターゲット処理モジュールおよび前記第2のターゲット処理モジュールにおいて並列に処理される請求項6に記載のRAIDシステム。
  8. 前記データ処理モジュールは、前記第1のデータブロックに対してファイルシステム(FS)プロトコル機能を実行し、
    前記FSプロトコルは、ネットワークファイルサーバ(NFS)および共通インターネットファイルサーバ(CIFS)のうち少なくとも1つを含む請求項1から7の何れか1項に記載のRAIDシステム。
  9. 前記データ処理モジュールは、前記第1のデータブロックに適用されるRAIDストレージレベルを決定する請求項1から8の何れか1項に記載のRAIDシステム。
  10. 前記データ処理モジュールは、前記N個のストレージアレイのうち選択される複数のストレージアレイに前記第1のデータブロックをマッピングして、前記N個のストレージアレイに対するストレージマップを更新する請求項1から9の何れか1項に記載のRAIDシステム。
  11. 前記データ処理モジュールは、データ取得要求を受信すると、前記データ取得要求を前記複数のターゲット処理モジュールのうち第1のターゲット処理モジュールに割り当て、
    前記複数のターゲット処理モジュールのうち前記第1のターゲット処理モジュールは、前記複数のターゲット処理モジュールのうちの他の複数のターゲット処理モジュールから前記データ取得要求に対応するデータを取得すると共に、前記データのうちエラーを含む部分に関連するECCデータを取得し、
    前記複数のターゲット処理モジュールのうち前記第1のターゲット処理モジュールは、前記ECCデータを用いて前記部分に対してデータ復元を実行する請求項1から10の何れか1項に記載のRAIDシステム。
  12. 前記データ処理モジュールは、データ取得要求を受信すると、前記データ取得要求に対応するデータを含む前記複数のターゲット処理モジュールにデータ取得メッセージを送信し、
    前記複数のターゲット処理モジュールは、前記データ取得要求に対応する前記データおよび前記データのうちエラーを含む部分に関連するECCデータを取得し、
    前記複数のターゲット処理モジュールは、前記データ取得要求に対応する取得された前記データおよび前記ECCデータを、前記データ処理モジュールに送信し、前記データ処理モジュールは前記ECCデータを用いて前記部分に対してデータ復元を実行する請求項1から11の何れか1項に記載のRAIDシステム。
  13. 前記データ処理モジュールは、データ取得要求を受信すると、前記データ取得要求に対応するデータを含む前記複数のターゲット処理モジュールにデータ取得メッセージを送信し、
    前記複数のターゲット処理モジュールは、前記データ取得要求に対応する前記データおよび前記データのうちエラーを含む部分に関連するECCデータを取得し、
    前記複数のターゲット処理モジュールは、前記ECCデータを用いて前記部分に対してデータ復元を実行する請求項1から12の何れか1項に記載のRAIDシステム。
  14. 前記データ処理モジュールは、前記スイッチモジュールと前記ネットワークインターフェースとの間に接続される請求項1から13の何れか1項に記載のRAIDシステム。
  15. 前記ターゲット処理モジュールとは別物である前記データ処理モジュールは、前記RAIDシステムとは別物のホストデバイスから前記第1のデータブロックを受信する請求項1から14の何れか1項に記載のRAIDシステム。
  16. 前記データ処理モジュールは、オペレーティングシステム、ファイルシステムプロトコルファンクションのうち少なくとも1つを用いて前記第1のデータブロックを処理し、選択された前記ターゲット処理モジュールの1つにRAID冗長処理および復元処理を割り当てる請求項1から15の何れか1項に記載のRAIDシステム。
  17. 前記データ処理モジュールは、前記N個のストレージアレイに格納されたデータブロックのマップを管理し、前記ターゲット処理モジュールに前記マップを割り当てる請求項1から16の何れか1項に記載のRAIDシステム。
  18. 前記データ処理モジュールは、前記ターゲット処理モジュールのうちの1つを選択し、
    選択された前記ターゲット処理モジュールのうちの1つにRAID冗長処理および復元処理を割り当てる請求項1から17の何れか1項に記載のRAIDシステム。
  19. 前記データ処理モジュールは、エラー訂正コード処理を実行し、前記N個のストレージアレイへの格納後、前記第1のデータブロックがリカバーされる請求項1から18の何れか1項に記載のRAIDシステム。
  20. 前記RAIDストレージのレベルは、前記RAIDシステムが分散化、ディスクミラーリング、およびパリティーストレージを実行するか否かを識別する請求項9に記載のRAIDシステム。
  21. 前記データ処理モジュールは、要求されたデータに対するデータ要求信号を生成する、
    請求項1に記載のRAIDシステム。
  22. 前記1つのターゲット処理モジュールが、前記第1のデータブロックに対してECCデータを生成する間、前記データ処理モジュールは、第2のデータブロックを受信し、前記第2のデータブロックを他の前記ターゲット処理モジュールに割り当て、
    前記他のターゲット処理モジュールは、前記第2のデータブロックに対してECCデータを生成する
    請求項1から21のいずれか1項に記載のRAIDシステム。
JP2009521760A 2006-07-24 2007-07-17 RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ Active JP5124792B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US82018006P 2006-07-24 2006-07-24
US60/820,180 2006-07-24
US11/591,325 2006-11-01
US11/591,325 US7634686B2 (en) 2006-07-24 2006-11-01 File server for redundant array of independent disks (RAID) system
US11/724,549 US8046629B1 (en) 2006-07-24 2007-03-15 File server for redundant array of independent disks (RAID) system
US11/724,549 2007-03-15
PCT/US2007/016159 WO2008013695A2 (en) 2006-07-24 2007-07-17 File server for redundant array of independent disks (raid) system

Publications (3)

Publication Number Publication Date
JP2009545062A JP2009545062A (ja) 2009-12-17
JP2009545062A5 JP2009545062A5 (ja) 2010-08-26
JP5124792B2 true JP5124792B2 (ja) 2013-01-23

Family

ID=38896617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009521760A Active JP5124792B2 (ja) 2006-07-24 2007-07-17 RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ

Country Status (4)

Country Link
US (3) US8046629B1 (ja)
JP (1) JP5124792B2 (ja)
CN (2) CN102880525B (ja)
WO (1) WO2008013695A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008070800A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US8583984B2 (en) * 2010-12-22 2013-11-12 Intel Corporation Method and apparatus for increasing data reliability for raid operations
US8433979B2 (en) * 2011-02-28 2013-04-30 International Business Machines Corporation Nested multiple erasure correcting codes for storage arrays
US8495469B2 (en) 2011-05-16 2013-07-23 International Business Machines Corporation Implementing enhanced IO data conversion with protection information model including parity format of data integrity fields
CN103309624A (zh) * 2013-05-27 2013-09-18 山东卡尔电气股份有限公司 一种多通道并行的大容量存储系统
CN104424127A (zh) 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN104425018B (zh) 2013-08-23 2019-07-23 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN107193684B (zh) 2013-08-23 2020-10-16 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
CN108447516B (zh) 2013-08-23 2020-04-24 慧荣科技股份有限公司 存取快闪存储器中存储单元的方法以及使用该方法的装置
CN105721530A (zh) * 2014-12-05 2016-06-29 中国移动通信集团公司 一种raid卡、数据存储共享系统和方法
JP6536083B2 (ja) * 2015-02-26 2019-07-03 富士通株式会社 ストレージ装置、ストレージシステム、及びリカバリプログラム
US9904793B2 (en) 2015-03-23 2018-02-27 Intel Corporation Systems, methods, and apparatus to provide private information retrieval
JP2017010425A (ja) * 2015-06-25 2017-01-12 富士通株式会社 制御プログラム、情報処理装置および制御方法
KR102385138B1 (ko) 2015-10-08 2022-04-12 삼성전자주식회사 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치
CN108228396B (zh) * 2016-12-21 2021-03-23 伊姆西Ip控股有限责任公司 用于处理驱动器的错误的方法和设备
US11474920B2 (en) 2020-03-31 2022-10-18 International Business Machines Corporation Dynamic mapping of logical to physical memory for increased performance
CN111475436A (zh) * 2020-04-07 2020-07-31 成都智明达电子股份有限公司 一种基于pcie交换网络的嵌入式高速sata存储阵列系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4989206A (en) 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US5077736A (en) * 1988-06-28 1991-12-31 Storage Technology Corporation Disk drive memory
US5402428A (en) 1989-12-25 1995-03-28 Hitachi, Ltd. Array disk subsystem
US5233618A (en) 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
JPH0667814A (ja) * 1992-08-17 1994-03-11 Fujitsu Ltd ディスクアレイ装置の転送データ復元方法
JPH07200187A (ja) * 1993-12-30 1995-08-04 Hitachi Ltd ディスクアレイ装置
US5745671A (en) * 1995-02-28 1998-04-28 International Business Machines Corporation Data storage system with localized XOR function
US5960169A (en) * 1997-02-27 1999-09-28 International Business Machines Corporation Transformational raid for hierarchical storage management system
US6272591B2 (en) * 1998-10-19 2001-08-07 Intel Corporation Raid striping using multiple virtual channels
US6526477B1 (en) 1999-09-03 2003-02-25 Adaptec, Inc. Host-memory based raid system, device, and method
US7251249B2 (en) * 2000-01-26 2007-07-31 Tundra Semiconductor Corporation Integrated high speed switch router using a multiport architecture
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
JP2004192483A (ja) 2002-12-13 2004-07-08 Hitachi Ltd 分散ストレージシステムの管理方法
GB2400935B (en) * 2003-04-26 2006-02-15 Ibm Configuring memory for a raid storage system
JP4270371B2 (ja) 2003-05-09 2009-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶システム、制御装置、制御方法、及び、プログラム
US7281177B2 (en) 2003-07-14 2007-10-09 International Business Machines Corporation Autonomic parity exchange
US7302603B2 (en) * 2003-11-20 2007-11-27 International Business Machines Corporation Host-initiated data reconstruction for improved RAID read operations
US7234074B2 (en) * 2003-12-17 2007-06-19 International Business Machines Corporation Multiple disk data storage system for reducing power consumption
JP2005275829A (ja) 2004-03-25 2005-10-06 Hitachi Ltd ストレージシステム
JP4144549B2 (ja) 2004-03-31 2008-09-03 日本電気株式会社 データ保存システムおよび該システムの制御方法
US7797609B2 (en) 2004-08-19 2010-09-14 Unisys Corporation Apparatus and method for merging data blocks with error correction code protection
US7444360B2 (en) 2004-11-17 2008-10-28 International Business Machines Corporation Method, system, and program for storing and using metadata in multiple storage locations
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US7447889B2 (en) * 2005-04-20 2008-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for configuring a computer system utilizing a read only memory storing an option file containing selectable configuration options and a script file
US7480847B2 (en) * 2005-08-29 2009-01-20 Sun Microsystems, Inc. Error correction code transformation technique
US7565598B2 (en) 2006-08-10 2009-07-21 Powerfile, Inc. Error correction for disk storage media
WO2008070800A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US7730346B2 (en) 2007-04-30 2010-06-01 Globalfoundries Inc. Parallel instruction processing and operand integrity verification
US8176247B2 (en) 2008-10-28 2012-05-08 Pivot3 Method and system for protecting against multiple failures in a RAID system

Also Published As

Publication number Publication date
CN102880525B (zh) 2016-01-06
JP2009545062A (ja) 2009-12-17
CN101652752B (zh) 2012-09-19
US20120041992A1 (en) 2012-02-16
US20130305122A1 (en) 2013-11-14
US8862931B2 (en) 2014-10-14
US8495416B2 (en) 2013-07-23
WO2008013695A4 (en) 2009-07-30
WO2008013695A3 (en) 2009-06-04
CN101652752A (zh) 2010-02-17
US8046629B1 (en) 2011-10-25
CN102880525A (zh) 2013-01-16
WO2008013695A2 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
JP5124792B2 (ja) RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ
JP5254725B2 (ja) 協働するストレージデバイスを用いて、データを冗長的に格納し、検索するシステム及び方法
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
EP2207098B1 (en) Failure handling using overlay objects on a file system using object based storage devices
US7386757B2 (en) Method and apparatus for enabling high-reliability storage of distributed data on a plurality of independent storage devices
US8839028B1 (en) Managing data availability in storage systems
US7752389B1 (en) Techniques for determining physical data layout of RAID devices
US7647526B1 (en) Reducing reconstruct input/output operations in storage systems
US6918007B2 (en) Memory controller interface with XOR operations on memory read to accelerate RAID operations
US6983396B2 (en) Apparatus for reducing the overhead of cache coherency processing on each primary controller and increasing the overall throughput of the system
US8006127B2 (en) File server for redundant array of independent disks (RAID) system
US7523257B2 (en) Method of managing raid level bad blocks in a networked storage system
JP2010508604A (ja) ストレージシステムにおける書き込み処理を最適化するためのシステム、及び方法
US8959420B1 (en) Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
EP2250563A1 (en) Storage redundant array of independent drives
US20050278476A1 (en) Method, apparatus and program storage device for keeping track of writes in progress on multiple controllers during resynchronization of RAID stripes on failover
US10929229B2 (en) Decentralized RAID scheme having distributed parity computation and recovery
US5774641A (en) Computer storage drive array with command initiation at respective drives
US7240237B2 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
JP3736134B2 (ja) 分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体
JP2004164675A (ja) ディスクアレイ装置
US10353771B1 (en) Managing data storage
US20050216787A1 (en) Method of calculating parity for surviving dual drive failures in a disk array
JP2005209227A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100709

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120629

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5124792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151109

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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