JP5518201B2 - 最大n個までの記憶装置故障からの復旧を可能にするnウェイパリティ技術 - Google Patents

最大n個までの記憶装置故障からの復旧を可能にするnウェイパリティ技術 Download PDF

Info

Publication number
JP5518201B2
JP5518201B2 JP2012530863A JP2012530863A JP5518201B2 JP 5518201 B2 JP5518201 B2 JP 5518201B2 JP 2012530863 A JP2012530863 A JP 2012530863A JP 2012530863 A JP2012530863 A JP 2012530863A JP 5518201 B2 JP5518201 B2 JP 5518201B2
Authority
JP
Japan
Prior art keywords
parity
storage
data
diagonal
disk
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
JP2012530863A
Other languages
English (en)
Other versions
JP2013506191A (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
Application filed by ネットアップ,インコーポレイテッド filed Critical ネットアップ,インコーポレイテッド
Publication of JP2013506191A publication Critical patent/JP2013506191A/ja
Application granted granted Critical
Publication of JP5518201B2 publication Critical patent/JP5518201B2/ja
Active 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

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)

Description

[関連出願の相互参照]
本願は、2005年12月15日に出願され、2007年4月19日に米国出願公開第US2007−0089045号として発行された「TRIPLE PARITY TECHNIQUE FOR ENABLING EFFICIENT RECOVERY FROM TRIPLE FAILURES IN A STORAGE ARRAY」と題するピーター・エフ・コルベットらによる米国特許出願第11/304,369号の一部継続出願であり、当該米国特許出願は、2001年12月28日に出願され、2006年1月31日に米国特許第6,993,701号として発行された「ROW-DIAGONAL PARITY TECHNIQUE FOR ENABLING EFFICIENT RECOVERY FROM DOUBLE FAILURES IN A STORAGE ARRAY」と題するピーター・エフ・コルベットらによる米国特許出願第10/035,607号の一部継続出願であり、両出願の教示は、参照によって本明細書に援用される。
[発明の分野]
本発明は、ストレージシステムに関し、より具体的には、ストレージアレイの複数の故障した記憶装置からの復旧を可能にするために、パリティデータをエンコードする技術に関する。
[発明の背景]
ストレージシステムは通常、1以上の記憶装置を含み、必要に応じて、その中にデータを入れることができ、又はそこからデータを取得することができる。ストレージシステムは、種々のストレージアーキテクチャに従って実施することができ、限定はしないが、例えば、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及び、クライアントまたはホストコンピュータに直接接続されたディスクアセンブリのようなストレージアーキテクチャに従って実施される場合がある。記憶装置は通常、ディスクドライブであり、「ディスク」という用語は一般に、内蔵型の回転磁気媒体記憶装置を表す。この文脈における「ディスク」という用語は、ハードディスクドライブ(HDD)またはダイレクト・アクセス・ストレージ・デバイス(DASD)と同義である。
ストレージシステム内のディスクは通常、1以上のグループに編成され、各グループは、RAID(Redundant Array of Independent (or Inexpensive) Disks)として運用される。大半のRAID実施形態は、RAIDグループ内の所与の数の物理的ディスクにわたってデータストライプを冗長書き込みし、ストライピングされたデータに関する冗長情報を適切に記憶することによって、データ記憶の信頼性/完全性を向上させる。冗長情報によって、記憶装置が故障したときに失われたデータの復旧が可能となる。
ディスクアレイの動作において、ディスクが故障することが予想される。高パフォーマンスのストレージシステムの目標は、データ損失発生までの平均時間(MTTDL)を可能な限り長くすることであり、好ましくは、システムの期待耐用年数よりも遥かに長くすることである。1以上のディスクが故障すると、データは失われることがあり、その結果、その装置からデータを回復することは不可能になる。データの損失を避ける一般的手段としては、ミラーリング、バックアップ、およびパリティ保護が挙げられる。ミラーリングは、ディスクのようなストレージリソースの消費の面で、高価な手段である。バックアップは、バックアップが作成された後に変更されたデータを保護しない。パリティ手段が一般的である理由は、パリティ手段によれば、1個のディスクドライブをシステムに追加するだけで、単一の消去(1つのディスクの損失)を許容するデータの冗長エンコーディングが可能となるからである。
パリティー保護は、コンピュータシステムにおいて、ディスクのようなストレージデバイス上のデータを損失から保護するために使用される。パリティ値は、異なるデータを保持している複数の同様のディスクにわたって、特定ワードサイズ(通常は1ビット)のデータを(通常はモジューロ2で)合計することにより計算される場合があり、その後、その結果は、別の同様のディスクに記憶される場合がある。すなわち、パリティは、各ディスク上の対応する位置にあるビットからなる1ビット幅のベクトルに基づいて計算される場合がある。1ビット幅のベクトルに基づいて計算される場合、パリティは、計算された合計、及びその補数のいずれであってもよく、それらはそれぞれ、偶数パリティ及び奇数パリティと呼ばれる。1ビットベクトルに基づく加算と減算は、いずれも排他的論理和(XOR)演算と等価である。その後、データは、いずれか1つのディスクの損失、又はいずれか1つのディスク上のデータの任意の部分の損失から保護される。パリティを記憶しているディスクが失われた場合、そのパリティは、データから復元することができる。データディスクの1つが失われた場合、そのデータは、生き残ったデータディスクの中身を1つに加算し、その結果を記憶されたパリティから減算することによって復元することができる。
通常、ディスクは複数のパリティグループに分割され、各パリティグループは、1以上のデータディスク、及び1つのパリティディスクを含む。パリティセットは、複数のデータブロック、及び1つのパリティブロックを含む一組のブロックであり、パリティブロックは、全データブロックのXORである。パリティグループは、そこから1以上のパリティセットが選択される元になる一組のディスクである。ディスク空間は、各ストライプが各ディスクから1つのブロックを保持するように、複数のストライプに分割される。あるストライプのブロックは通常、パリティグループ内の各ディスク上の同じ位置にある。ストライプ内の1つを除く全てのブロックは、データを保持するブロック(「データブロック」)であり、1つのブロックは、全てのデータのXORにより計算されたパリティを保持するブロック(「パリティブロック」)である。もしパリティブロックを全て1つのディスクに記憶し、それによって全てのパリティ情報(かつ、パリティ情報のみ)を保持する単一のディスクを作成した場合、RAID4実施形態が得られる。もしパリティブロックが、各ストライプにおける異なるディスク内に保持される場合、通常は回転パターンを成して保持され、実施形態はRAID−5となる。用語「RAID」及びその種々の実施形態は、周知であり、ディー・エー・パターソン、ジー・エー・ギブソン、及びアール・エイチ・カツD.による「A Case for Redundant Arrays of Inexpensive Disks (RAID)」、1988年6月、データ管理に関する国際会議(SIGMOD)の議事録に開示され、その内容は、参照により本明細書に援用される。
本明細書において、用語 「エンコーディング」は、データブロックの所定のサブセットにわたる冗長値の計算を意味するのに対し、用語「デコーディング」は、データブロックのサブセット及び冗長値を使用したデータブロック又はパリティブロックの再構築を意味する。もしパリティグループ中の1個のディスクが故障した場合、そのディスクの中身は、残りのデータブロックの中身を全て加算し、その結果をパリティブロックから減算することによって、スペアディスク(1又は複数)上にデコード(再構築)することができる。1ビットフィールドにおける2の補数による加算と減算は、いずれもXOR演算と等価であるから、この再構築は、生き残ったデータブロック全てとパリティブロックをXOR演算することからなる。同様に、もしパリティディスクが失われた場合、それは、生き残ったデータから同じ方法で再計算することができる。
パリティ手段は一般に、パリティグループ内の単一のディスク故障らの保護を提供する。各故障が異なるパリティグループ内で発生する限り、これらの手段は、複数のディスク故障からの保護も提供することができる。しかし、もしパリティグループ内の2個のディスクが同時に故障した場合、復元不可能なデータの損失を被ることになる。パリティグループ内の2個のディスクの同時故障は、かなり一般的に発生し、特にディスクの「磨耗」を原因として、及びディスクの動作に関する環境要因を原因として発生する。この文脈において、パリティグループ内の2個のディスクの同時故障は、「二重故障」と呼ばれる。
二重故障は一般に、1個のディスクが故障した後、その最初の故障からの復旧を試みている間に他のディスクが続けて故障する結果として発生する。復旧または再構築の時間は、ストレージシステムのアクティビティのレベルに依存する。すなわち、故障したディスクの再構築の間も、ストレージシステムは「オンライン」の状態を維持し、データにアクセス(すなわち、読み出し及び/又は書き込み)する(クライアント又はユーザからの)要求に対するサービスの提供を継続することが可能である。もしストレージシステムが、要求に対するサービスの提供に忙しい場合、再構築に要する経過時間は増加する。また、この再構築処理の時間は、ストレージシステム内のディスクのサイズ及び数が増加することによっても増加する。失われたデータを再構築するためには、生き残ったディスクの全てを読み出さなければならないからである。さらに、二重ディスク故障率は、パリティグループ内のディスク数の二乗に比例する。しかし、パリティグループを小さくすることは、各パリティグループが、冗長データのために専用の1個のディスク全体を必要とするため、費用がかかる。
ディスクの他の故障態様は、ディスクの単一のブロック又はセクタを読み出すことができない、メディア読み取りエラーである。ストレージアレイ内にパリティが保持されていれば、かかる読み取り不能なデータを再構築することができる。ただし、1個ディスクが既に故障しているときに、アレイ中の他のディスクにメディア読み取りエラーが発生した場合、データは失われる結果となる。これが、二重故障の第2の形態である。
ストレージ環境によっては、データがテープまたは他の長期アーカイブシステムにバックアップされるまでの短期記憶装置として、例えばニアラインストレージシステムのような相当な数の低品質ディスクドライブを使用することが一般的である。しかしながら、アレイ内のディスク数が増えるほど、複数の故障が発生する確率は増大する。あまり高価でない記憶装置の故障発生までの平均時間(MTTF)は低いことから、この確率は悪化する。従って、ストレージシステムは、3重以上の故障、すなわち、ストレージアレイ内の3以上の装置の同時故障を受けることもあり得る。さらに、シリアル・アタッチド・SCSI(SAS)、ファイバチャネル(FC)のような多数のストレージプロトコルが存在する結果、ディスクシェルフのアーキテクチャは益々複雑なものとなり、それに付随して、かかるシェルフが受ける故障の数は増加する結果となり、さらに、故障したディスクシェルフに接続された各ディスクへのアクセスも失われる結果となる。
より一般的には、効率的で、かつ、1つのパリティグループ内のnウェイ故障、すなわち、アレイ内の最大n個までの記憶装置の故障に対して使用可能な汎用消去コードが必要とされている。nウェイ故障からのそのような更なる保護は、規制産業、長期アーカイブストレージ、災害復旧等との適合性を確保するために必要とされる場合がある。
[発明の概要]
本発明は、nウェイディスク故障からの保護を提供するようにエンコードされたストレージアレイのパリティグループ内の最大n個までの記憶装置(例えばディスク)の復旧を可能にするnウェイパリティ保護技術を提供することによって、従来技術の欠点を克服する。このアレイは、アレイの記憶装置が故障したときに、例えば行列数学等のような連立一次方程式を解く任意の技術を使用して、アレイの中身を再構築することができるように構成される。このストレージアレイはまず、m個のデータディスクを有するアレイを構成することによって作成される。ここで、m=p−1であり、pは素数、すなわち1又はそれ自体でしか割り切れない数である。行パリティは、例えばRAID 4に類似した形で専用の1個の行パリティディスクに記憶される場合があり、又は、例えばRAID5に類似した形で複数のデータディスクにわたって記憶され、それらのデータディスクにわたって循環される場合がある。
次に、n−1個の対角パリティディスクがアレイに追加され、全部でnビットのパリティ、すなわち、1つの行パリティビット、及びn−1個の対角パリティビットが形成される。各対角パリティセット(すなわち、対角)は、その対角に含まれるアレイのデータブロック及び行パリティブロックを定義する傾斜に関連する。すなわち、アレイ全体を通じて、同じ傾斜に沿って存在するデータブロック及び行パリティブロックは全て、1つの対角に関連する。パリティグループ内の同じ傾斜を有する対角は全て、1つの対角パリティクラスとして編成される。各対角パリティクラスについて、対角パリティを記憶するために、1つの対角パリティストレージディスクが設けられる。対角パリティクラスの最大数がp−1に制限されている場合、所望のレベルの保護を達成するために、追加される対角パリティディスクの数は、システム管理者により設定される場合がある。換言すれば、本明細書に記載する例示的実施形態によれば、結果として得られる連立方程式を確実に解けるようにするために、対角パリティクラスの数n−1は、p−1を超えることはできないので、n≦pである。各対角パリティディスクは、アレイに追加された後、複数のブロックに分割され、データディスクのブロック、及び必要に応じて対角パリティディスクのブロックは、ストライプに編成される。その後、行パリティセット(すなわち、行)のデータブロックのXORを計算することによって行パリティが計算され、計算されたパリティは、その後、行パリティディスク、又は適当なデータディスク上の行パリティブロックに記憶される。
その後、データブロック及び行パリティブロックは全て、n−1個の対角パリティクラスの対角に割り当てられる。対角パリティクラスの1つが選択され、そのクラスの各対角、すなわち、共通の(同じ)傾斜を有する対角について、対角パリティが計算される。その後、計算された対角パリティは、適当な対角パリティディスクに記憶される。他にも対角パリティクラスがある場合、このプロセスは、他のクラスのそれぞれについて繰り返される。
本発明の上記およびさらなる利点は、添付の図面と共に以下の説明を参照することによってより良好に理解することができる。図中、同じ参照符号は、同一の又は機能的に類似の要素を指している。
本発明の例示的実施形態による、ストレージシステムを含む環境を示す略ブロック図である。 本発明の例示的実施形態による、図1のストレージシステムにおいて使用される例示的ストレージオペレーティングシステムを示す略ブロック図である。 本発明の例示的実施形態による、パリティをエンコードする手順のステップの詳細を示すフロー図である。 本発明の例示的実施形態による、パリティストライプを示すディスクアレイの略ブロック図である。 本発明の例示的実施形態による、パリティストライプを示すディスクアレイの略ブロック図である; 本発明の例示的実施形態による、1以上のディスク故障からの復旧のための手順のステップの詳細を示すフロー図である。
[例示的実施形態の詳細な説明]
A.ストレージシステム環境
図1は、本発明の例示的実施形態によれば有利である場合があるストレージシステム120を含む環境100を示す略ブロック図である。本明細書に記載する本発明の技術は、如何なるタイプの特殊な目的の(例えばファイルサーバ又はファイラーのような)コンピュータにも、汎用コンピュータにも適用することができ、例えば、ストレージシステム120として実施され、又はストレージシステム120を含むスタンドアロンのコンピュータ、又はその一部に適用される場合がある。また、本発明の教示は、種々のストレージシステムアーキテクチャに適合させることができ、限定はしないが、例えば、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアントまたはホストコンピュータに直接取り付けられたディスクアセンブリに適合させることができる。従って、「ストレージシステム」という用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する任意のサブシステムに加えて、そのような構成をも含むものとして、広い意味で解釈しなければならない。
例示的実施形態において、ストレージシステム120は、システムバス132により相互接続されたプロセッサ122、メモリ124、ネットワークアダプタ125、及びストレージアダプタ128を含む。メモリ124は、本発明に関連するソフトウェアプログラムコード及びデータ構造を記憶するためにプロセッサ及びアダプタによってアドレス指定可能な種々の記憶場所を含む。さらに、プロセッサ及びアダプタは、かかるソフトウェアコードを実行しデータ構造を操作するように構成された処理要素、及び/又は論理回路を含む場合がある。ストレージオペレーティングシステム200は通常、その種々の部分がメモリに常駐し、処理要素によって実行され、とりわけストレージシステムにより実行されるストレージオペレーションを実行することにより、システム120を機能的に編成する。当業者には明らかであるように、本明細書に記載する本発明の技術に関連するプログラム命令の記憶及び実行には、他の処理手段、及び、例えば種々のコンピュータ読み取り可能媒体のような、他の記憶手段を使用してもよい。
ネットワークアダプタ125は、ポイント・ツー・ポイントリンク、ワイド・エリア・ネットワーク、公衆網(インターネット)を介して実施される仮想私設ネットワーク、又は共有ローカル・エリア・ネットワークを介して、ストレージシステム120を1以上のクライアント110に接続するように構成された複数のポートを有する。従って、ネットワークアダプタ125は、ノードをネットワークに接続するために必要とされる機械的、電気的、及び信号回路を含む場合がある。例えば、ネットワーク105は、イーサネット(登録商標)ネットワーク、又はファイバチャネル(FC)ネットワークとして実施される場合がある。各クライアント110は、TCP/IPのような所定のプロトコルに従って、データの離散的なフレーム又はパケットを交換することにより、ネットワーク105を介してストレージシステム120と通信することができる。
ストレージアダプタ128は、システム120上で実行されるストレージオペレーティングシステム200と協働し、ユーザ(またはクライアント)から要求された情報にアクセスする。情報は、例えば、ビデオテープ、光学的手段、DVD、磁気テープ、バブルメモリ、電子ランダムアクセスメモリ、微小電気機械、フラッシュまたは他の固体媒体、及び/又は、データ及びパリティ情報のような情報を記憶するように構成された任意の他の同様の媒体のような書き込み可能な記憶装置の、任意のタイプのアタッチドアレイに記憶される。ただし、本明細書に例示的に記載したように、情報は、アレイ140のHDD及び/又はDASDのようなディスク150に記憶される。ストレージアダプタは、従来の高性能FCシリアルリンクトポロジのようなI/O相互接続構成を介してディスクに接続される入出力(I/O)インタフェース回路を含む。
アレイ140への情報の記憶は、好ましくは、ディスク空間の全体的論理構成を定義する、1クラスタの物理的ストレージディスク150を含む1以上のストレージ「ボリューム」として実施される。各ボリュームは一般に、必須ではないが、それ独自のファイルシステムに関連する。ボリューム/ファイルシステム内のディスクは通常、1以上のグループに編成され、各グループは、RAID(Redundant Array of Independent or Inexpensive Disks)として運用される。大半のRAID実施形態は、RAIDグループ内の所与の数の物理ディスクにわたってデータ「ストライプ」を冗長書き込みし、ストライピングされたデータに関するパリティ情報を適切に記憶することによって、データ記憶の信頼性/完全性を向上させる。
本発明は、ディスクアレイ内の行パリティ、及び複数の対角パリティを使用して、複数の記憶装置故障の復旧を可能にするnウェイパリティ(nP)技術を含む。本発明の技術は、好ましくは、ストレージオペレーティングシステム200のディスクストレージモジュール(図2に240で示される)により実施され、ストレージシステムにおけるディスクのような複数の記憶装置にわたってパリティをストライプ状に構築する方法及びシステムを提供する。本発明は、以前から知られている方式に比べて、必要とされるパリティ計算の量を低減しながらも、さらに複数のディスク故障からの復旧のための計算量を低減する。さらに、本発明によれば、均一なストライプ深さ(各ディスクが1ストライプあたり同数のブロックを含む)、及び、任意のn個のディスク故障からの復元を可能にするために必要となる最少量であるn個のディスク分に等しい量のパリティ情報が得られる。
大まかに言えば、本発明は、m+n個の記憶装置を含む。ここで、m=p−1であり、pは素数であり、nは復元可能な故障の数である。パリティは一般に、パリティブロックを形成するための種々のデータブロックの排他的論理和(XOR)として計算される。XOR演算は一般に、各入力ブロックにおける同じ1ビットフィールドに対して実施され、単一の対応する出力のビットを生成する。前述のように、XOR演算は、2つの1ビットフィールドの2の補数加算、又は減算と等価である。冗長パリティ情報は、すべての入力における同サイズの複数ビットフィールド(例えば、8、16、32、64、128ビット)の合計として計算される場合もある。例えば、パリティの等価物は、32ビットフィールドにおいて2の補数加算を使用してデータを加算することにより計算され、それぞれ32ビットの冗長情報を生成する場合がある。これは単に、あるブロックをそれ自身とXOR演算するとゼロが生成されるため、同じ入力に対する2回のXOR演算によりブロックを生成すると、そのブロックの元の内容が生成されるという事実に依存しないことを想定したケースである。
当業者には明らかであるように、ブロックは(パリティ計算の目的で)、ファイルブロック、データベースブロック、ディスクセクタ、又は任意の他の便利なサイズのユニットに対応していてもよいし、対応しなくてもよい。パリティ計算に使用されるブロックサイズが、システムにおいて使用される何らかの他のブロックサイズと何らかの関係を有していなければならないという要件は無い。ただし、1以上の整数個のパリティブロックが、1以上の整数個のディスクセクタとして定義された1単位の中に丁度収まるであろうことは、予想される。多くの場合、多少の数のブロックは、ファイルシステムブロック又はデータベースブロックに対応することになり、それらは通常、4k(4096)バイトのサイズ、又は2バイトのさらに高次の累乗(例えば、8k、16k、32k、64k、128k、256k)のサイズを有することになる。
本明細書に記載するシステムは、例えば、フルストライプ書き込み処理を実施する場合がある。具体的には、一般に4k又は8kバイトである個々のファイルブロックは、パリティ計算のためにのみ使用される複数のより小さなブロックに分割され、その結果、例えば4kバイトサイズのブロックのフルストライプを、アレイの種々のディスクに書き込むことができる場合がある。フルストライプをディスクに書き込む場合、パリティ計算は全て、その結果をディスクに書き込む前にメモリ上で実施される場合があり、従って、ディスク上のパリティの計算及び更新の負担は軽減される場合がある。
B.ストレージオペレーティングシステム
ディスクへのアクセスを容易にするために、ストレージオペレーティングシステム200は、ディスクにより提供される記憶空間を「仮想化」する機能を提供する仮想化モジュールと協働するwrite−anywhereファイルシステムを実施する。ファイルシステムは、情報を名前付きディレクトリ及びファイルオブジェクト(以下、「ディレクトリ」及び「ファイル」)の階層構造としてディスク上に論理編成する。各「ディスク上」のファイルは、データのような情報を記憶するように構成された一組のディスクブロックとして実施されるのに対し、ディレクトリは、特殊な形式のファイルとして実施される場合があり、その中に、他のファイル及びディレクトリの名前及びそれらへのリンクが記憶される。仮想化システムによれば、ファイルシステムは、情報を名前付きvdiskの階層構造としてディスク上にさらに論理編成することが可能となり、それによって、ファイル及びディレクトリに対するファイルベースの(NAS)アクセスを可能にし、同時にファイルベースのストレージプラットフォームにおけるvdiskへのブロックベースの(SAN)アクセスをさらに可能にすることによって、ストレージのためのNASとSANの統合システムアプローチを提供することが可能となる。
例示的実施形態として、ストレージオペレーティングシステムは、好ましくは、カリフォルニア州サニーベイルにあるネットアップ,インコーポレイテッドから入手可能なNetApp Data ONTAPオペレーティングシステムであり、このオペレーティングシステムは、Write Anywhere File Layout(WAFL)ファイルシステムを実施する。ただし、当然ながら、write in placeファイルシステムを含む任意のストレージオペレーティングシステムを、本明細書に記載する本発明の原理に従って拡張して使用してもよいと考えられる。従って、「ONTAP」という用語が使用された場合であっても、この用語は、本発明の教示に通常適合する任意のストレージオペレーティングシステムを指すものとして広い意味で解釈しなければならない。
本明細書において、「ストレージオペレーティングシステム」という用語は、一般に、データアクセスを管理するコンピュータ上で動作可能なコンピュータ実行可能コードを指し、ストレージシステムの場合、マイクロカーネルとして実施されるデータONTAPストレージオペレーティングシステムのように、データアクセスセマンティックを実施する場合がある。また、ストレージオペレーティングシステムは、UNIX又はWindows XP(登録商標)のような汎用オペレーティングシステム、あるいは、本明細書に記載するようなストレージアプリケーションのために構成された設定可能な機能を有する汎用オペレーティングシステムの上で動作するアプリケーションプログラムとして実施されることもある。
さらに、当業者には理解されるように、本明細書に記載する本発明の技術は、如何なるタイプの特殊な目的の(例えばファイルサーバ又はファイラーのような)コンピュータにも、汎用コンピュータにも適用することができ、例えば、ストレージシステムとして実施され、又はストレージシステムを含むスタンドアロンのコンピュータ、又はその一部にも適用される場合がある。また、本発明の教示は、種々のストレージシステムアーキテクチャに適合させることができ、限定はしないが、例えば、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアントまたはホストコンピュータに直接取り付けられたディスクアセンブリに適合させることができる。従って、「ストレージシステム」という用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する任意のサブシステムに加えて、そのような構成をも含むものとして、広い意味で解釈しなければならない。
図2は、本発明とともに有利に使用可能なストレージオペレーティングシステム200を示す略ブロック図である。ストレージオペレーティングシステムは、統合ネットワークプロトコルスタックを形成するように構成された、すなわち、より一般的には、クライアントがブロックアクセスプロトコル及びファイルアクセスプロトコルを使用してマルチプロトコルストレージシステムに記憶された情報にアクセスするためのデータパスを提供するマルチプロトコルエンジンを形成するように構成された、一連のソフトウェアモジュール、及び/又はエンジンを含む。このプロトコルスタックは、IPモジュール212、及びその支援搬送機構であるTCPモジュール214、ユーザデータグラムプロトコル(UDP)モジュール216のようなネットワークプロトコルモジュールとのインタフェースとなる種々のネットワークドライバ(例えば、ギガビットイーサネットドライバ)のメディアアクセスモジュール210を含む。ファイルシステムプロトコルモジュールは、マルチプロトコルファイルアクセスを可能にし、その目的のために、DAFSプロトコル218、NFSプロトコル220、CIFSプロトコル222、及びHTTP(HyperText Transfer Protocol)プロトコル224をサポートする。VIモジュール226は、VIアーキテクチャを実施し、DAFSプロトコル218により必要とされる、RDMAのようなダイレクト・アクセス・トランスポート(DAT)機能を提供する。
iSCSIドライバモジュール228は、TCP/IPネットワークプロトコル層を介したブロックプロトコルアクセスを可能にする一方、FCドライバモジュール230は、ネットワークアダプタと協働し、ストレージシステムとの間で、ブロックアクセス要求及び応答を送受信する。FCドライバ及びiSCSIドライバは、LUN(vdisk)に対するFC固有の及びiSCSI固有のアクセス制御を可能にし、従って、マルチプロトコルストレージシステム上の単一のvdiskにアクセスするときに、iSCSIとFCPのいずれか一方、あるいは、iSCSIとFCPの両方へのvdiskのエキスポートを管理する。さらに、ストレージオペレーティングシステムは、RAIDプロトコルのようなディスクストレージプロトコルを実施するRAIDシステムのようなディスクストレージモジュール240と、例えばSCSIプロトコルのようなディスクアクセスプロトコルを実施するディスクドライバモジュール250とを含む。
本発明の例示的実施形態において、ディスクストレージモジュール(例えば、RAIDシステム240)は、新規なnP技術を実施する。例えば、RAIDシステム240は、書き込み処理中に後述するエンコーディング技術に従ってデータをエンコードし、さらに、記憶装置の1以上の故障の検出に応答し、後述するようにデータを再構築する。なお、代替実施形態において、新規なnP技術は、RAIDシステム240以外のストレージオペレーティングシステムのモジュールにより実施される場合がある。従って、新規なnP技術を実施するRAIDシステム240の説明は、単なる例として解釈しなければならない。
種々のディスクソフトウェアモジュールを統合ネットワークプロトコルスタック層に橋渡しするのは、例えばvdiskモジュール270及びSCSIターゲットモジュール260として実施される仮想化モジュールと交信するファイルシステム265によって実施される仮想化システム255である。なお、vdiskモジュール270、ファイルシステム265、及びSCSIターゲットモジュール260は、ソフトウェアで実施しても、ハードウェアで実施しても、ファームウェアで実施してもよく、あるいはそれらの組み合わせで実施してもよい。vdiskモジュール270は、ファイルシステム265と交信し、システム管理者がマルチプロトコルストレージシステム120に対し発行したコマンドに応答して、管理者インタフェースによるアクセスを可能にする。基本的には、vdiskモジュール270は、とりわけ、システム管理者によってユーザインタフェースを通じて発行された複雑な一組のvdisk(LUN)コマンドを実施することにより、SANデプロイメントを管理する。これらのvdiskコマンドは、ファイルシステム265及びSCSIターゲットモジュール260に作用する原始的なファイルシステムオペレーション(「プリミティブ」)に変換され、vdiskを実施する。
その後、SCSIターゲットモジュール260は、LUNを特殊なvdiskファイルタイプに変換するマッピング手順を提供することにより、ディスク又はLUNのエミュレーションを開始する。SCSIターゲットモジュールは、例えば、FC及びiSCSIドライバ230、228と、ファイルシステム265との間に配置され、それによってSANブロック(LUN)空間とファイルシステム空間との間に仮想化システム255の変換層を提供し、ここで、LUNはvdiskとして表現される。SAN仮想化をファイルシステム265の上に「配置」することによって、マルチプロトコルストレージシステムは、従来のシステムにより行われるアプローチを逆転させ、それによって、事実上全てのストレージアクセスプロトコルのための単一の統合されたストレージプラットフォームを提供する。
ファイルシステム265は、例えば、メッセージベースのシステムである。従って、SCSIターゲットモジュール260は、SCSI要求を、ファイルシステムへのオペレーションを表すメッセージに置き換える。例えば、SCSIターゲットモジュールにより生成されるメッセージは、オペレーションのタイプ(例えば、読み出し、書き込み)と共に、ファイルシステムにおいて表現されるvdiskオブジェクトのパス名(例えば、パス記述子)及びファイル名(例えば、特殊なファイル名)を含む場合がある。SCSIターゲットモジュール260は、かかるメッセージを例えばファンクションコールのようなファイルシステム265に渡し、そこで、オペレーションは実施される。
例えば、ファイルシステム265は、例えば4キロバイト(KB)ブロックを使用し、inodeを使用してファイルを表現するブロックベースのオンディスク・フォーマット表現を有するWAFLファイルシステムを実施する場合がある。WAFLファイルシステムは、自身のファイルシステムのレイアウトを表すメタデータを、ファイルを使用して記憶する。そのようなメタデータファイルとしては、とりわけ、inodeファイルが挙げられる。ファイルハンドル、すなわち、inode番号を含む識別子が、ディスクからのinodeの読み出しに使用される。
動作的には、クライアント110からの要求は、コンピュータネットワーク105を介してパケットとしてストレージシステム120へ転送され、そこでそのパケットは、ネットワークアダプタ125によって受信される。ネットワークドライバは、そのパケットを処理し、そのパケットをwrite−anywhereファイルシステム265へ転送する前に、更なる処理を施すために、必要に応じてネットワークプロトコル・ファイルアクセスモジュールに渡す場合がある。ここで、ファイルシステムは、要求されたデータが「コア内」に、すなわちメモリ124内に存在しない場合、そのデータをディスク150から(読み出す)ロードするためのオペレーションを生成する。情報がメモリ上に無い場合、ファイルシステム265は、inode番号を使用してinodeファイルの中を検索し、適当なエントリにアクセスし、論理ボリュームブロック番号(vbn)を読み出す。次に、ファイルシステムは、その論理vbnを含むメッセージ構造をRAIDシステム240に渡す。論理vbnは、ディスク識別子及びディスクブロック番号(ディスク,dbn)にマッピングされ、ディスクドライバシステム250の適当なドライバ(例えば、SCSI)へ送信される。ディスクドライバは、指定されたディスク150からそのdbnにアクセスし、要求されたデータブロック(複数可)をストレージシステムによる処理のためにメモリにロードする。要求が完了すると、ストレージシステム(及びオペレーティングシステム)は、ネットワーク105を介してクライアント110へ応答を返す。
なお、ストレージシステムにおいて受信されたクライアント要求のためのデータストレージアクセスを実施するために必要な上記のストレージオペレーティングシステム層を通るソフトウェア「パス」は、代替的に、ハードウェアで実施してもよい。すなわち、本発明の代替実施形態では、ストレージアクセス要求データパスは、フィールド・プログラマブル・ゲート・アレイ(FPGA)又は特定用途向け集積回路(ASIC)の中に実現される論理回路として実施される場合がある。この種のハードウェア実施形態によれば、クライアント110が発行した要求に応答してストレージシステム120により提供されるストレージサービスの性能が向上する。さらに、本発明の他の代替実施形態では、アダプタ125、128の処理要素は、パケット処理オペレーション、及びストレージアクセスオペレーションの負荷の全部又は一部をプロセッサ122からそれぞれ取り除くように構成される場合があり、それによってシステムにより提供されるストレージサービスの性能は向上する。当然ながら、本明細書に記載する種々のプロセス、アーキテクチャ、及び手順は、ハードウェアで実施しても、ファームウェアで実施しても、ソフトウェアで実施してもよい。
本明細書において「ストレージオペレーティングシステム」とは一般に、ストレージシステムにおいてストレージ機能を実施するために動作可能なコンピュータ実行可能コードを言い、かかるコードは、例えばデータアクセスを管理し、ファイルシステムセマンティクスを実施する場合がある。その意味で、ONTAPソフトウェアは、マイクロカーネルとして実施され、かつ、WAFLファイルシステムセマンティクスを実施し、データアクセスを管理するためのWAFL層を含む、そのようなストレージオペレーティングシステムの一例である。ストレージオペレーティングシステムは、UNIX又はWindows XPのような汎用オペレーティングシステム、あるいは、本明細書に記載するようなストレージアプリケーションのために構成された設定可能な機能を有する汎用オペレーティングシステムの上で動作するアプリケーションプログラムとして実施されることもある。
さらに、当業者には理解されるように、本明細書に記載する本発明の技術は、如何なるタイプの特殊な目的の(例えばファイルサーバ又はストレージシステムのような)コンピュータにも、汎用コンピュータにも適用することができ、例えば、ストレージシステム120として実施され、又はストレージシステム120を含むスタンドアロンのコンピュータ、又はその一部に適用される場合がある。また、本発明の教示は、種々のストレージシステムアーキテクチャに適合させることができ、限定はしないが、例えば、ネットワーク・アタッチド・ストレージ環境、ストレージ・エリア・ネットワーク、及びクライアントまたはホストコンピュータに直接取り付けられたディスクアセンブリに適合させることができる。従って、「ストレージシステム」という用語は、ストレージ機能を実施するように構成され、他の装置又はシステムに関連する任意のサブシステムに加えて、そのような構成をも含むものとして、広い意味で解釈しなければならない。
C.パリティエンコーディング
本発明は、nウェイディスク故障からの保護を提供するようにエンコードされたストレージアレイのパリティグループ内の最大n個までのディスク(又は他の記憶装置)の復旧を可能にするnウェイパリティ保護技術を提供する。このアレイは、アレイの記憶装置が故障したときに、連立一次方程式を解く任意の技術を使用して、アレイの中身を再構築することができるように構成される。このストレージアレイはまず、m個のデータディスクを有するアレイを構成することによって作成される。ここで、m=p−1であり、pは素数である。行パリティは、例えばRAID 4に類似した形で専用の1個の行パリティディスクに記憶される場合があり、又は、例えばRAID5に類似した形で複数のデータディスクにわたって記憶され、それらのデータディスクにわたって循環される場合がある。
次に、n−1個の対角パリティディスクがアレイに追加され、全部でnビットのパリティ、すなわち、1つの行パリティビット、及びn−1個の対角パリティビットが形成される。各対角パリティセット(すなわち、対角)は、その対角に含まれるアレイのデータブロック及び行パリティブロックを定義する傾斜に関連する。パリティグループ内の同じ傾斜を有する対角は全て、1つの対角パリティクラスとして編成される。各対角パリティクラスについて、対角パリティを記憶するために、1つの対角パリティストレージディスクが設けられる。対角パリティクラスの最大数がp−1に制限されている場合、所望のレベルの保護を達成するために、追加される対角パリティディスクの数は、システム管理者により設定される場合がある。換言すれば、本明細書に記載する例示的実施形態によれば、対角パリティクラスの数n−1は、p−1を超えることはできないので、n≦pである。各対角パリティディスクは、アレイに追加された後、複数のブロックに分割され、データディスクのブロック、及び必要に応じて対角パリティディスクのブロックは、ストライプに編成される。その後、行パリティセット(すなわち、行)のデータブロックのXORを計算することによって行パリティが計算され、計算されたパリティは、その後、行パリティディスク、又は適当なデータディスク上の行パリティブロックに記憶される。
その後、データブロック及び行パリティブロックは全て、n−1個の対角パリティクラスの対角に割り当てられる。対角パリティクラスの1つが選択され、そのクラスの各対角、すなわち、共通の(同じ)傾斜を有する対角について、対角パリティが計算される。その後、計算された対角パリティは、適当な対角パリティディスクに記憶される。他にも対角パリティクラスがある場合、このプロセスは、他のクラスのそれぞれについて繰り返される。
図3は、本発明の例示的実施形態による、nウェイパリティ技術を実施する手順300のステップを示すフロー図である。手順300は、ステップ305から開始され、ステップ310へ進み、そこで、アレイはまず、数mに等しいディスクのような記憶装置を有するように構成される。ここで、m=p−1であり、pは素数である。m個のディスクは、アレイ内のデータディスクを表す。アレイは、例えば管理者によって手作業で構成される場合もあれば、ストレージシステム120上で実行されるストレージオペレーティングシステムのディスクストレージモジュール240のようなソフトウェアエージェントによって自動的に構成される場合もある。ステップ315において、アレイ全体が最大m+n個までのディスクから構成されるものとなるように、さらにパリティディスクが追加される。例えば、これらのディスクは、手作業で追加される場合もあれば、例えば、ディスクストレージモジュール240のようなソフトウェアエージェントによって追加される場合もある。この時点で、アレイは、p−1個のデータディスク、すなわち、1個の行パリティディスク、及び最大n−1個までの対角パリティディスクを含む。例えば、各対角パリティクラスについて、その対角パリティクラスについての対角パリティを記憶するために、対角パリティディスクが設けられる。ただし、後で詳しく説明するように、アレイを構成するときに最大限度数の対角パリティクラスを使用することは、必要とされない。本発明の教示によれば、アレイは、n個の装置の故障の検出を可能とするように構成され、同時に、それらの故障した装置に格納されたデータの訂正(すなわち、再構築)を可能とするように構成される場合がある。本発明の例示的実施形態によれば、対角パリティクラスの数は、p−1を超えることができないため、n≦pである。
ステップ320において、ディスクは、例えばディスクストレージモジュール240によって、複数のブロックに分割され、ステップ325において、それらのブロックはストライプに編成される。その後、ステップ330において、ディスクストレージモジュール240は、ある行の各データブロックを、各データディスク上の同じ位置にある全てのデータブロックのXORを格納しているその行の行パリティブロックの中に排他的論理和演算(XOR)する。これは例えば、従来のRAID4行パリティエンコーディングと同様の形で実施される場合がある。なお、代替実施形態では、行パリティの位置は、RAID5構成のように移動される場合がある。従って、RAID4エンコーディング技術の説明は、単なる例として解釈すべきである。
その後、ステップ335において、データブロックと行パリティブロックの全てが、例えばディスクストレージモジュール240によって、対角パリティクラスの対角に割り当てられる。上記のとおり、各対角パリティクラスについて、そのクラス内の対角の対応する対角パリティを記憶するために、独立した対角パリティ記憶装置が設けられる。なお、本発明の例示的実施形態では、種々の傾斜を有する3以上の対角パリティクラスが存在する場合がある。しかしながら、代替実施形態では、任意の正の整数(最大でn−1)個の対角パリティクラスが、使用される場合がある。上で援用された米国特許出願第11/304,369号では、アレイは、例えば傾斜+1の対角のように各対角が特定の傾斜値を有し、例えば傾斜−1の反対角のように反対角が対角とは逆の傾斜を有するように構成される場合がある。例えば、本発明は、任意の整数値の傾斜を有するようなアレイの構成を可能とし、反対角が対角とは逆の傾斜を有する必要性を無くすことによって、上で援用された米国特許出願の技術を改良するものである。上記のように、上で援用された米国特許出願は、例えば傾斜+1の対角のように各対角が特定の傾斜値を有し、例えば傾斜−1の反対角のように反対角が対角とは逆の傾斜を有するようにアレイを構成する技術を記載している。従って、本発明によれば、例えば、管理者は、例えば対角パリティクラスの対角が傾斜+1及び+2を有するような三重(すなわち、n=3)パリティアレイを構成することが可能となる。
例えば、データブロック及び行パリティブロックのアレイの各要素は、A[i,j]によって、それらに割当てられた位置に索引付けされる場合がある。ここで、iは行索引を表し、jは列索引を表し、A[]はアレイを表す。例えば、これらの索引値の各々は、0からp−1の範囲とされる場合がある。
2次元アレイのこの表現を使用すると、傾斜sを有する対角の数xは、A[(x+s*j)mod p,j]のように表すことができる。ただし、j={0...p−1}である。
傾斜項は、従来の幾何学的な意味で理解することができる。すなわち、上下に移動した場所の数を左右に移動した場所の数で割った比率である。例えば、傾斜+2は、次の場所が2つの場所だけ下がり、かつ1の場所だけ右へ移動する対角を表し、傾斜−4は、次の場所が4つの場所だけ上がり、かつ1つの場所だけ右へ移動する傾斜を表す等である。例えば、nウェイパリティは、ディスクストレージモジュール240によって実施される場合がある。しかしながら、nウェイパリティは、他のモジュールにおいて実施されてもよいし、複数のモジュール間に分散されてもよい。
図4は、本発明の例示的実施形態による、例示的ストライピング構成を示す略ブロック図である。この構成は、p=7、及びs=+2の例示的なアレイに関するものである。なお、対角パリティディスクは他の対角に含まれないため、データディスク及び行パリティディスクのみが示されている。この構成に示されている番号はそれぞれ、所与の対角に割当てられた1以上のブロックを表す。従って、図4の中の0を有するブロックはそれぞれ、傾斜+2を有する対角0上に存在する1以上のブロックを表す等である。対角には、0からp−1まで番号が付され、この例では、0から6までの番号が対角に付されている。図4に示されている対角はそれぞれ、同じ傾斜(すなわち、+2)を有し、従って、単一の対角パリティ記憶装置に記憶された対角パリティを有する同じ対角パリティクラスの一部である。図4から分かるように、アレイのデータブロック及び行パリティブロックが全て、少なくとも1つの対角によってカバーされるようにするために、対角はアレイの端部において循環される。最後の行(行p−1)は、所定の値、例えば0を有するものと仮定される。これは、図4において、最後の行が破線であることによって示されている。ある行に所定値を与えることにより、対角はデータブロック及び行パリティブロックの全体にわたって広がる(すなわち、カバーする)ことができ、さらに、各対角において1つの既知の値が存在することを確保することができる。その結果、解くべき連立方程式から潜在的変数が取り除かれるため、これは再構築に役立つ。図4の例示的ストライピング構成は、A[(x+2*j)mod 7,j]によって表される場合がある。ただし、jは、0からp−1を範囲とする。
図5は、本発明の例示的実施形態による、例示的ストライピング構成を示す略ブロック図である。この構成は、p=7、及びs=−3の例示的なアレイからなる。図4と同様に、対角パリティディスクは他の対角に含まれないため、データディスク及び行パリティディスクのみが示されている。図5の例示的ストライピング構成は、A[(x−3*j)mod 7,j]によって表される場合がある。図4及び図5の例示的ストライピング構成は、n−3アレイとともに使用される場合がある。そのような例示的アレイでは、3つのパリティビットは、(a)行パリティ、(b)図4に示されるような傾斜+2を有する対角パリティクラス内の対角の対角パリティ、及び(c)図5に示されるような傾斜−3を有する対角パリティクラス内の対角の対角パリティによって与えられる場合がある。理解されるように、そのような構成は、パリティ保護を増加させるために、(対応する追加の対角パリティ/ビットを有する)追加の対角パリティクラスを有する場合がある。しかしながら、本発明の例示的実施形態は、最大限度数の対角パリティクラスが使用されることを必要としない。本発明のさらに別の顕著な利点は、全パリティを再計算する必要なしに、追加の対角パリティクラスをアレイに追加することができることである。すなわち、アレイがまだ、最大限度数の対角パリティクラスを有するように構成されていないと仮定した場合、新たな対角パリティクラスについてのパリティを記憶するための対角パリティ記憶装置を追加することによって、新たな対角パリティ記憶装置がアレイに追加される場合がある。そのような場合、計算しなければならないパリティは、新たに追加された記憶装置に記憶すべき対角パリティのみである。その結果、管理者は、アレイが既にサービス提供状態になった後、時間を要するリソース集約的なアレイ内の全パリティの再計算を必要とすることなく、アレイの保護のレベルを増加させる機能が得られる。なお、データディスクの数は、pを素数として、m=p−1の条件を満たさなければならないが、もっと少ない数のディスクを有するアレイを構築することも可能である。追加されるディスク、すなわち、ディスクの実際の番号とmとの間にあるディスクは、m=p−1の条件を満たすように、仮想的にゼロで満たされたディスクであってもよい。仮想的にゼロで満たされたディスクは、パリティ計算には影響を与えない。さらに、対角パリティクラスの傾斜は、それらをアレイの構築に使用される素数pとモジューロ演算した結果が互いに異なるものとなるような形で選択されなければならない。例えば、素数p=7の場合、傾斜1、2及び−3は、この条件を満たす。しかし、傾斜4、及び−3は、−3mod7=(7−3)mod7=4mod7であるから、この条件を満たさない。
図3を再度参照すると、データブロック及び行パリティブロックの全てが対角に割当てられた後、ステップ340において、対角パリティクラスの1つが、例えばディスクストレージモジュール240によって選択される。選択された対角パリティクラス内の対角に沿った対角パリティは、例えば、その対角パリティクラス内のそれらの対角に沿って全てのブロックの排他的論理和(XOR)演算を実施することにより計算される。その後、ステップ350において、計算された対角パリティブロックは、選択された対角パリティクラスに関連する対角パリティディスクに記憶される。この記憶は、例えば、ディスクドライバ250と協働するディスクストレージモジュール240によって実施され、計算されたパリティをディスク150に記憶させる場合がある。ステップ355において、他の対角パリティクラスについて対角パリティを計算する必要があるか否かの判断を行う。もし、他の対角パリティクラスについて対角パリティを計算する必要がある場合、手順300は、ステップ340へループバックし、他の対角パリティクラスを選択する。その後、手順300は、ステップ360で完了する。手順300の結果として、アレイは、アレイ内のn個の記憶装置(例えばディスク)の故障からの復旧が可能となるように構成される。その後アレイは、(例えば、エラー条件に応答して)連立一次方程式を解くための任意の技術を使用して再構築されることができる。
図6は、本発明の例示的実施形態による、1以上の故障した記憶装置が発生したときに再構築を実施するための例示的手順600の種々のステップを示すフロー図である。手順600は、ステップ605から開始され、ステップ610へ進み、そこで、例えばディスクストレージモジュール240によってエラー条件が検出される。エラー条件は、例えば、1以上の記憶装置の故障を含む場合がある。故障は、例えば、メディアに対する物理的損傷、接続性の喪失などに起因して発生する場合がある。エラーは、例えば、装置に対する入出力(I/O)故障、接続性の喪失の検出などの従来のエラー検出技術により検出される場合がある。その後、ステップ615において、ディスクストレージモジュール240は、故障の数がn以下であるか否かを判断する。もし故障の数がn以下である場合、故障は、本明細書に記載するnP技術を使用して訂正することができる。その場合、手順は、ステップ620へ進み、そこで、失われたデータが再構築される。上記のように、nPアレイの再構築の実施には、連立一次方程式を解くための任意の技術を使用することができる。連立一次方程式を解くための例示的技術としては、例えば、ガウス消去法、クラメールの公式、コレスキー分解、LU分解などが挙げられる。他の例示的技術は、ジェイムス・リー・ハフナー他による「Matrix Methods for Lost Data Reconstruction in Erasure Codes」、USENIX FAST(Conference on File and Storage Technologies)、第4回、2005年に記載されており、この文献の内容は、参照により本明細書に援用される。データが再構築された後、次に手順600は、ステップ625において完了する。
もしステップ615において、故障の数がnよりも大きいと判断された場合、手順600は、ステップ630へ分岐し、そこで、エラー条件は、復旧可能ではないものとみなされ、その後、手順は、ステップ625で完了する。
上記の説明は、本発明の特定の実施形態に関するものである。しかし、当然ながら、それらの利点の一部又は全部を維持しながら、記載した実施形態に対し、他の変形及び修正を施すことも可能である。例えば、説明は、ディスクを例として記載されているが、限定はしないが、例えば、フラッシュデバイス、及び他の個体媒体も、代替実施形態に従って使用される場合がある。従って、添付の特許請求の範囲の目的は、そうした変形や修正も、本発明の真の思想および範囲に含めることにある。

Claims (9)

  1. ストレージアレイにおける記憶装置の最大n個までの同時故障からの復旧を可能にする方法であって、
    データを記憶するように構成された複数の第1の装置を含む、所定数の記憶装置を有する前記アレイを設けるステップであって、mがp−1であり、pが素数であり、行パリティが、専用の行パリティ装置に記憶され、又は前記複数mの第1の装置にわたって循環される、所定数の記憶装置を有するアレイを設けるステップと、
    前記アレイに少なくとも3つの対角パリティクラスを記憶するように構成された少なくとも3つの第2の装置を設けるステップと、
    各装置を複数のブロックに分割するステップと、
    前記ブロックを、各装置におけるブロックを含むストライプに編成するステップと、
    データの各行について行パリティを計算するステップと、
    データ及び行パリティを記憶している前記装置から全てのブロックを対角に割当てるステップと、
    前記少なくとも3つの対角パリティクラスの各対角パリティクラスについて、共通の傾斜を有する全ての対角に沿って対角パリティを計算し、計算された対角パリティを前記対角パリティクラスに関連する前記第2の装置の1つに記憶するステップであって、各傾斜とpとのモジューロが異なる値であるステップ
    前記行パリティ及び前記対角パリティを使用して、n以下の1以上の記憶装置のうちの1つの故障について再構築を実施するステップであって、nがp以下であるステップと
    からなる方法。
  2. 前記第1の装置は、複数のデータ装置を含み、前記データ装置は、全て存在するのではなく、パリティを計算する際に、不在のデータ装置は全て、ゼロを格納しているものとして扱われる、請求項1に記載の方法。
  3. 異なるストライプ内において、パリティブロックの場所は、装置ごとにシフトされる、請求項1に記載の方法。
  4. 前記ストライプは、2の累乗数のビットのサイズを有する、請求項1に記載の方法。
  5. 前記複数の第2の装置は、最大n−1個までの装置からなる、請求項1に記載の方法。
  6. 追加の対角パリティクラスを記憶するための追加の第2の記憶装置を追加するステップであって、前記追加の対角パリティクラスを有する共通の傾斜を有する全ての対角に沿って対角パリティのみが計算される、追加の第2の記憶装置を追加するステップと、
    計算された対角パリティを、前記追加の対角パリティクラスに関連する前記追加の第2の装置に記憶するステップと
    さらに含む、請求項1に記載の方法。
  7. ストレージアレイにおける記憶装置の最大n個までの同時故障からの復旧を可能にするシステムであって、
    データを記憶するように構成された複数の第1の装置を含む、所定数の記憶装置を有するように構成されたストレージアレイであってmがp−1であり、pが素数であり、行パリティが、専用の行パリティ装置に記憶され、又は前記複数mの第1の装置にわたって循環され、各装置が複数のブロックに分割され、前記ブロックが、各装置における同数のブロックを含むストライプに編成される、ストレージアレイを含み、
    前記ストレージアレイは、少なくとも3つの対角パリティクラスを記憶するように構成された少なくとも3つの第2の装置を有するようにさらに構成され、前記少なくとも3つの対角パリティクラスの各対角パリティクラスは、前記データ及び行パリティに沿った傾斜により定義され、各対角パリティクラスに関連する各傾斜とpとのモジューロが異なる値であり、
    前記対角パリティクラスの全てについて、対角パリティを計算し、記憶し、前記行パリティ及び前記対角パリティを使用して、n以下の1以上の記憶装置のうちの1つの故障について再構築を実施するように構成されたデバイスストレージモジュールであって、nがp以下である、デバイスストレージモジュールを含むストレージオペレーティングシステムをさらに含む、システム。
  8. 1つのストライプ中の行パリティブロックは全て、単一の装置に記憶される、請求項7に記載のシステム。
  9. 前記第1の装置は、複数のデータ装置を含み、前記データ装置は、全て存在するのではなく、パリティを計算する際に、不在のデータ装置は全て、ゼロを格納しているものとして扱われる、請求項7に記載のシステム。
JP2012530863A 2009-09-25 2010-09-23 最大n個までの記憶装置故障からの復旧を可能にするnウェイパリティ技術 Active JP5518201B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/536,063 US8402346B2 (en) 2001-12-28 2009-09-25 N-way parity technique for enabling recovery from up to N storage device failures
US12/536,063 2009-09-25
PCT/US2010/002600 WO2011037629A1 (en) 2009-09-25 2010-09-23 N-way parity technique for enabling recovery from up to n storage device failures

Publications (2)

Publication Number Publication Date
JP2013506191A JP2013506191A (ja) 2013-02-21
JP5518201B2 true JP5518201B2 (ja) 2014-06-11

Family

ID=43530596

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012530863A Active JP5518201B2 (ja) 2009-09-25 2010-09-23 最大n個までの記憶装置故障からの復旧を可能にするnウェイパリティ技術

Country Status (5)

Country Link
US (1) US8402346B2 (ja)
EP (1) EP2470992B1 (ja)
JP (1) JP5518201B2 (ja)
CN (1) CN102667727B (ja)
WO (1) WO2011037629A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097053A (ja) * 2006-10-05 2008-04-24 Hitachi Global Storage Technologies Netherlands Bv ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置
US8959389B2 (en) 2011-11-23 2015-02-17 International Business Machines Corporation Use of a virtual drive as a hot spare for a raid group
EP2672387B1 (en) 2012-06-04 2018-08-01 Amplidata NV A distributed object storage system
US9081753B2 (en) * 2013-03-14 2015-07-14 Microsoft Technology Licensing, Llc Virtual disk recovery and redistribution
US9176818B2 (en) * 2013-03-14 2015-11-03 Microsoft Technology Licensing, Llc N-way parity for virtual disk resiliency
CN103744750B (zh) * 2014-01-13 2017-02-15 杭州华为数字技术有限公司 一种数据恢复方法及装置
JP2015210658A (ja) 2014-04-25 2015-11-24 富士通株式会社 記憶制御装置、データ復旧プログラム、およびデータ復旧方法
JP6369298B2 (ja) 2014-11-13 2018-08-08 富士通株式会社 ストレージプログラム、ストレージシステム、ストレージ方法、及びストレージ装置
US10613933B2 (en) 2014-12-09 2020-04-07 Hitachi Vantara Llc System and method for providing thin-provisioned block storage with multiple data protection classes
US9672106B2 (en) * 2014-12-30 2017-06-06 Nutanix, Inc. Architecture for implementing erasure coding
US9529676B1 (en) * 2014-12-31 2016-12-27 EMC IP Holding Company LLC Optimizing spare capacity and spare distribution
WO2016058289A1 (zh) * 2015-01-20 2016-04-21 北京大学深圳研究生院 一种能修复多个节点失效的mds纠删码
US10146618B2 (en) * 2016-01-04 2018-12-04 Western Digital Technologies, Inc. Distributed data storage with reduced storage overhead using reduced-dependency erasure codes
US10452477B2 (en) * 2016-08-26 2019-10-22 Netapp, Inc. Multiple node repair using high rate minimum storage regeneration erasure code
US10567009B2 (en) 2016-12-06 2020-02-18 Nutanix, Inc. Dynamic erasure coding
US10705911B2 (en) * 2017-04-24 2020-07-07 Hewlett Packard Enterprise Development Lp Storing data in a distributed storage system
US10601546B2 (en) * 2018-04-03 2020-03-24 SK Hynix Inc. Dynamic interleaver change for bit line failures in NAND flash storage

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3876978A (en) 1973-06-04 1975-04-08 Ibm Archival data protection
US4092732A (en) 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
US4201976A (en) 1977-12-23 1980-05-06 International Business Machines Corporation Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels
US4205324A (en) 1977-12-23 1980-05-27 International Business Machines Corporation Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers
JPS5637883A (en) 1979-09-04 1981-04-11 Fanuc Ltd Information rewrite system
US4467421A (en) 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US4375100A (en) 1979-10-24 1983-02-22 Matsushita Electric Industrial Company, Limited Method and apparatus for encoding low redundancy check words from source data
US4435807A (en) 1980-06-26 1984-03-06 Scott Edward W Orchard error correction system
US4547882A (en) 1983-03-01 1985-10-15 The Board Of Trustees Of The Leland Stanford Jr. University Error detecting and correcting memories
US4825403A (en) 1983-05-16 1989-04-25 Data General Corporation Apparatus guaranteeing that a controller in a disk drive system receives at least some data from an invalid track sector
JPS60142418A (ja) 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
FR2561428B1 (fr) 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
US4667326A (en) 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives
WO1986006077A1 (en) 1985-04-08 1986-10-23 Amgen A method and a hybrid promoter for controlling exogenous gene transcription
US5202979A (en) 1985-05-08 1993-04-13 Thinking Machines Corporation Storage system using multiple independently mechanically-driven storage units
US4722085A (en) 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
JPH0675329B2 (ja) 1986-02-18 1994-09-21 ソニー株式会社 ディスクプレーヤ
US4761785B1 (en) 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
USRE34100E (en) 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
US4775978A (en) 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
US4796260A (en) 1987-03-30 1989-01-03 Scs Telecom, Inc. Schilling-Manela forward error correction and detection code method and apparatus
US5257367A (en) 1987-06-02 1993-10-26 Cab-Tek, Inc. Data storage system with asynchronous host operating system communication link
US4849974A (en) 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
US4849976A (en) 1987-08-03 1989-07-18 Scs Telecom, Inc. PASM and TASM forward error correction and detection code method and apparatus
US4837680A (en) 1987-08-28 1989-06-06 International Business Machines Corporation Controlling asynchronously operating peripherals
US4870643A (en) 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US4847842A (en) 1987-11-19 1989-07-11 Scs Telecom, Inc. SM codec method and apparatus
US4899342A (en) 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US5077736A (en) 1988-06-28 1991-12-31 Storage Technology Corporation Disk drive memory
US4989205A (en) 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US4989206A (en) 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
US5128810A (en) 1988-08-02 1992-07-07 Cray Research, Inc. Single disk emulation interface for an array of synchronous spindle disk drives
US5218689A (en) 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
US5148432A (en) 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5101492A (en) 1989-11-03 1992-03-31 Compaq Computer Corporation Data redundancy and recovery protection
US5233618A (en) 1990-03-02 1993-08-03 Micro Technology, Inc. Data correcting applicable to redundant arrays of independent disks
US5088081A (en) 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access
US5210860A (en) 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
US5166936A (en) 1990-07-20 1992-11-24 Compaq Computer Corporation Automatic hard disk bad sector remapping
US5375128A (en) 1990-10-18 1994-12-20 Ibm Corporation (International Business Machines Corporation) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US5208813A (en) 1990-10-23 1993-05-04 Array Technology Corporation On-line reconstruction of a failed redundant array system
US5235601A (en) 1990-12-21 1993-08-10 Array Technology Corporation On-line restoration of redundancy information in a redundant array system
US5274799A (en) 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5271012A (en) 1991-02-11 1993-12-14 International Business Machines Corporation Method and means for encoding and rebuilding data contents of up to two unavailable DASDs in an array of DASDs
US5579475A (en) 1991-02-11 1996-11-26 International Business Machines Corporation Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US5179704A (en) 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
EP0519669A3 (en) 1991-06-21 1994-07-06 Ibm Encoding and rebuilding data for a dasd array
US5237658A (en) 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5305326A (en) 1992-03-06 1994-04-19 Data General Corporation High availability disk arrays
US5410667A (en) 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US5513192A (en) 1992-08-28 1996-04-30 Sun Microsystems, Inc. Fault tolerant disk drive system with error detection and correction
US5574851A (en) 1993-04-19 1996-11-12 At&T Global Information Solutions Company Method for performing on-line reconfiguration of a disk array concurrent with execution of disk I/O operations
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6138126A (en) 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
JP3751018B2 (ja) 1993-06-03 2006-03-01 ネットワーク・アプライアンス・インコーポレイテッド ライトエニウエアファイルシステムレイアウト
EP0701716B1 (en) 1993-06-03 2002-08-14 Network Appliance, Inc. Method and file system for allocating blocks of files to storage space in a RAID disk system
EP0701715A4 (en) * 1993-06-04 1999-11-17 Network Appliance Corp METHOD FOR PROVIDING PARITY IN A RAID SUBSYSTEM USING REMANENT MEMORY
US5644695A (en) * 1994-01-03 1997-07-01 International Business Machines Corporation Array combinatorial decoding with multiple error and erasure detection and location using cyclic equivalence testing
US5537567A (en) * 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5623595A (en) 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US5771643A (en) * 1995-05-10 1998-06-30 Parker; Alton F. Concrete slab-wall spacer with water and radon removal features
US5657468A (en) 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
US5774643A (en) 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
US5812753A (en) 1995-10-13 1998-09-22 Eccs, Inc. Method for initializing or reconstructing data consistency within an array of storage elements
US5862158A (en) 1995-11-08 1999-01-19 International Business Machines Corporation Efficient method for providing fault tolerance against double device failures in multiple device systems
US5884098A (en) 1996-04-18 1999-03-16 Emc Corporation RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems
US5805788A (en) 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
KR100208801B1 (ko) * 1996-09-16 1999-07-15 윤종용 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법
US6041423A (en) 1996-11-08 2000-03-21 Oracle Corporation Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
US5950225A (en) 1997-02-28 1999-09-07 Network Appliance, Inc. Fly-by XOR for generating parity for data gleaned from a bus
KR100267366B1 (en) * 1997-07-15 2000-10-16 Samsung Electronics Co Ltd Method for recoding parity and restoring data of failed disks in an external storage subsystem and apparatus therefor
US6092215A (en) 1997-09-29 2000-07-18 International Business Machines Corporation System and method for reconstructing data in a storage array system
JPH11134235A (ja) 1997-10-31 1999-05-21 Hitachi Ltd 外部記憶装置故障時の回復支援方法
JP3616487B2 (ja) 1997-11-21 2005-02-02 アルプス電気株式会社 ディスクアレイ装置
US6353895B1 (en) * 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6138125A (en) 1998-03-31 2000-10-24 Lsi Logic Corporation Block coding method and system for failure recovery in disk arrays
US6233323B1 (en) * 1998-04-10 2001-05-15 Lucent Technologies, Inc. DTMF download technique for digital telephone devices
US6138201A (en) 1998-04-15 2000-10-24 Sony Corporation Redundant array of inexpensive tape drives using data compression and data allocation ratios
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
US6223323B1 (en) 1998-07-17 2001-04-24 Ncr Corporation Method for storing parity information in a disk array storage system
US6453428B1 (en) * 1998-07-17 2002-09-17 Adaptec, Inc. Dual-drive fault tolerant method and system for assigning data chunks to column parity sets
US6725392B1 (en) * 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US6198413B1 (en) 1999-07-01 2001-03-06 International Business Machines Corporation Partitioned DC balanced (0,6) 16B/18B transmission code with error correction
US6557123B1 (en) 1999-08-02 2003-04-29 Inostor Corporation Data redundancy methods and apparatus
US6742137B1 (en) 1999-08-17 2004-05-25 Adaptec, Inc. Object oriented fault tolerance
US6532548B1 (en) 1999-09-21 2003-03-11 Storage Technology Corporation System and method for handling temporary errors on a redundant array of independent tapes (RAIT)
US6826580B2 (en) 2000-01-20 2004-11-30 Emc Corporation Distributed storage resource management in a storage area network
US6581185B1 (en) 2000-01-24 2003-06-17 Storage Technology Corporation Apparatus and method for reconstructing data using cross-parity stripes on storage media
US7072256B2 (en) 2000-03-08 2006-07-04 Matsushita Electric Industrial Co., Ltd. Information recording medium, information recording method and information reproduction method
US6694479B1 (en) * 2000-05-23 2004-02-17 Hewlett-Packard Development Company, L.P. Multiple drive failure recovery for a computer system having an array of storage drives
US6779095B2 (en) 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data using pointers to new and original data in a data location
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6671772B1 (en) 2000-09-20 2003-12-30 Robert E. Cousins Hierarchical file system structure for enhancing disk transfer efficiency
US6275410B1 (en) 2000-11-09 2001-08-14 Hewlett-Packard Co. Data recording systems and methods for facilitating data recovery with emitter failure
US20020124137A1 (en) 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US6571326B2 (en) 2001-03-08 2003-05-27 Intel Corporation Space allocation for data in a nonvolatile memory
US6851082B1 (en) 2001-11-13 2005-02-01 Network Appliance, Inc. Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
US6871317B1 (en) * 2001-11-13 2005-03-22 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US7073115B2 (en) 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7613984B2 (en) 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US6993701B2 (en) 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7640484B2 (en) 2001-12-28 2009-12-29 Netapp, Inc. Triple parity technique for enabling efficient recovery from triple failures in a storage array
US7873700B2 (en) 2002-08-09 2011-01-18 Netapp, Inc. Multi-protocol storage appliance that provides integrated support for file and block access protocols
US6826661B2 (en) 2002-08-30 2004-11-30 Veritas Operating Corporation Methods and systems for storage architectures
US7328305B2 (en) 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7945729B2 (en) 2004-11-24 2011-05-17 International Business Machines Corporation System and method for tolerating multiple storage device failures in a storage system using horizontal and vertical parity layouts

Also Published As

Publication number Publication date
US8402346B2 (en) 2013-03-19
WO2011037629A1 (en) 2011-03-31
EP2470992A1 (en) 2012-07-04
CN102667727A (zh) 2012-09-12
EP2470992B1 (en) 2016-04-13
CN102667727B (zh) 2015-07-29
JP2013506191A (ja) 2013-02-21
US20110010599A1 (en) 2011-01-13

Similar Documents

Publication Publication Date Title
JP5518201B2 (ja) 最大n個までの記憶装置故障からの復旧を可能にするnウェイパリティ技術
JP5102776B2 (ja) ストレージアレイにおける三重故障からの効率的な復旧を可能にする三重パリティ技術
US7979779B1 (en) System and method for symmetric triple parity for failing storage devices
JP4823468B2 (ja) ストレージアレイにおける2重故障からの効率的な復旧を可能にする行−対角パリティ技術
US7627715B1 (en) Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
JP4703945B2 (ja) ストレージアレイにおける複数の記憶装置故障を訂正する方法
US7752389B1 (en) Techniques for determining physical data layout of RAID devices
US8725986B1 (en) System and method for volume block number to disk block number mapping
US7356731B2 (en) Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array
JP2003233469A (ja) 1つの対角パリティグループと複数の行パリティグループとの組み合わせを用いたストレージアレイにおける複数ブロックデータ損失の訂正
US6871317B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
EP2921960A2 (en) Method of, and apparatus for, accelerated data recovery in a storage system
US7398460B1 (en) Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131015

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140401

R150 Certificate of patent or registration of utility model

Ref document number: 5518201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03

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

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