JP4848272B2 - 多重化冗長ストレージへの安全な書き込みを行う装置及び方法 - Google Patents

多重化冗長ストレージへの安全な書き込みを行う装置及び方法 Download PDF

Info

Publication number
JP4848272B2
JP4848272B2 JP2006516161A JP2006516161A JP4848272B2 JP 4848272 B2 JP4848272 B2 JP 4848272B2 JP 2006516161 A JP2006516161 A JP 2006516161A JP 2006516161 A JP2006516161 A JP 2006516161A JP 4848272 B2 JP4848272 B2 JP 4848272B2
Authority
JP
Japan
Prior art keywords
write
index
parity
data
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006516161A
Other languages
English (en)
Other versions
JP2009514047A (ja
Inventor
フェアハースト、マシュー、ジョン
ジャッド、イアン、デビッド
スケールズ、ウイリアム、ジェームス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009514047A publication Critical patent/JP2009514047A/ja
Application granted granted Critical
Publication of JP4848272B2 publication Critical patent/JP4848272B2/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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/1009Cache, i.e. caches used in RAID system with parity

Description

本発明は、ストレージの分野に関し、より具体的には、多重化冗長アレイの動作に関する。
ストレージ・システムにおいては、独立したストレージ装置のアレイ(配列)は、RAID(個々のディスクの冗長性アレイ)として知られる技術を用いて、単一の仮想ストレージ装置として動作するように構成することができる。RAIDストレージ・システムにより動作するように構成されたコンピュータ・システムは、そのRAIDストレージ・システムが単一のストレージ装置であるかのように、該RAIDストレージ・システム上で入出力(I/O)動作(読み取り及び書き込み動作)を実行することができる。RAIDストレージ・システムは、独立したストレージ装置のアレイとRAIDコントローラとを含む。RAIDコントローラは、独立のストレージ装置のアレイの仮想化ビュー(view)を提供し、すなわち、これは、独立したストレージ装置のアレイが、ストレージ・エレメント(構成要素)の順次リストを備えた単一の仮想ストレージ装置のようにみえることを意味する。ストレージ・エレメントは、一般に、ストレージ・ブロックとして知られ、これらの中に格納されたデータは、データ・ブロックとして知られる。I/O動作は、仮想ストレージ装置内の1つ又はそれ以上のストレージ・ブロックに関してクオリファイされる。I/O動作が仮想ストレージ装置上で実行される場合には、RAIDコントローラは、該I/O動作を独立したストレージ装置のアレイ上にマップする。ストレージ装置のアレイを仮想化し、かつI/O動作をマップするためには、RAIDコントローラは、データ処理技術分野で周知の幾つかの標準的なRAID技術のいずれかを採用することができる。
ストレージ装置のアレイの仮想化ビューを単一の仮想ストレージ装置として提供する際、該仮想ストレージ装置内のデータ・ブロックを該アレイ全体に配布するのは、RAIDコントローラの機能である。これを達成するための1つの方法は、ストライピング(striping)として知られる技術を用いることである。ストライピングは、ラウンド・ロビン法により、データ・ブロックをストレージ装置全体に配布することを含む。データ・ブロックをRAIDストレージ・システム内に格納する場合には、ストリップ(strip)として知られる多数のデータ・ブロックが各々のストレージ装置内に格納される。ストリップのサイズは、特定のRAID実装によって決定することができ、又は構成することができる。第1ストレージ装置に格納される第1ストリップ、及び、後続のストレージ装置に格納される後続ストリップを含むストリップの列は、ストライプ(stripe)として知られる。ストライプのサイズは、ストライプを構成するすべてのストリップの合計サイズである。この方法によりデータ・ブロックを格納する多重化独立ストレージ装置を使用することは、多重化ストレージ装置が、I/O動作中に並行して作動することができるため、単一のストレージ装置と比較した場合には、高性能なI/O動作をもたらす。
ディスク・ストレージ装置といった物理的ストレージ装置は、信頼性が低いことで名高く、信頼できるストレージ・システムを提供することがRAIDコントローラのさらに別の機能である。信頼性を提供するための1つの技術は、独立したストレージ装置のアレイ内のデータと併せて、チェック情報を格納することを含む。チェック情報は、ストレージ装置のアレイ内における単一のストレージ装置の故障(failure)といった単一の故障点のために読み取り不能になったデータの再生成(regeneration)を可能にする冗長性情報である。読み取り不能データは、読み取り可能データと冗長性チェック情報の組み合わせから再生成される。チェック情報は、ストライプにおいて単一のストリップを占めるパリティ・データとして記録され、これは、排他的論理和(XOR)論理演算子を該ストライプにおけるすべてのデータ・ストリップに対して適用することにより計算される。例えば、データ・ストリップA、B、及びCを含むストライプは、さらに、A XOR B XOR Cとして計算されるパリティ・ストリップによってさらに補完される。ストレージ・システム内の単一の故障点の場合には、パリティ・ストリップは、アクセス不能データ・ストリップの再生成のために使用される。例えば、データ・ストリップA、B、C及びPARITY(パリティ)を含むストライプが、それぞれ4つの独立したストレージ装置W、X、Y、及びZにわたり格納されており、ストレージ装置Xが故障した場合には、該装置Xに格納されたストリップBはアクセス不能となる。ストリップBは、XOR演算により、残りのデータ・ストリップ及びパリティ・ストリップから算出することができる。この回復(復元)計算は、A XOR C XOR PARITY=Bである。
多重化冗長RAIDアレイは、構成要素であるハードディスク・ドライブの幾つかが故障しても該アレイに書き込まれたいずれのデータも失われることがないように、データ及びパリティ情報を格納する、独立したハードディスク・ドライブから構築されたストレージ装置である。簡単にするために、このことは、ここでは二重化冗長アレイという用語で説明されるが、本発明の好ましい実施形態の技術は、もっと冗長性の高いアレイに拡張することができる。
例えば、図1においては、4ディスク・アレイについて上述した回復(復元)XOR技術をサポートする周知の方式が示される。この技術は以下を基にする。
1.各々の列はディスクを表す。
2.図中の各々のセルは、ディスク上のデータのストリップ(上の行)又はパリティのストリップ(下の行)を表す。
3.このパターンは、アレイ全体をカバーするように反復される。
4.各々のデータ・ストリップは、ちょうど2つのパリティ・ストリップを伴う。
5.各々のデータ・ストリップ及びその2つのパリティ・ストリップは、異なるディスク上に存在する。
6.2つのデータ・ストリップが、同じ2つのパリティ・ストリップを共有することはない。
7.いずれか2つのディスク(列)が除去された場合には、なくなったデータは残りの2つのディスクから回復することができる。
例えば、最初(左側)の2つのディスクを除去する。Aは、C xor (A xor C)から回復することが可能である。
次いで、Bは、A xor (A xor B)から回復することができる。
書き込み動作が割り込まれた場合には(例えば、停電、又はアレイ・コントローラのリセットによって)、該アレイ・コントローラは、パターンを再同期するための手段を講じなくてはならない。例えば、データBをデータB\により上書きすることを考える。これは、3つのストリップ(1つのデータ及び2つのパリティ)が書き込まれなければならないことを意味する。これらの書き込み中に電力が落ちた場合には、ディスク・ドライブは書き込みを完了せず、ストリップは新旧のデータ又はパリティが組み合わされたものを含む状態で残される。電力が回復した場合には、アレイ・コントローラは、パリティ・ストリップをデータ・ストリップに再同期する何らかの処置をとらなくてはならない。このことが行われなかった場合には、パターンは正確に再構築されず、データの損傷が生じる。
単一冗長性タイプのRAIDであるRAID−5を実施する現行のRAIDアダプタは、典型的には、書き込まれている各々のストライプのインデックスを、小さい不揮発性メモリ(NVRAM)内に格納することによって、このことを管理する。アダプタが起動した場合には、そのNVRAMを調べ、そのアレイにおける、どのパターンが再同期される必要があるか見つけ出す。この再同期は、データ・ストリップのすべてを読み取ること、及び、新しいパリティを算出することにより行われる。この手法は、同時に書き込まれる必要がある各々のパターンについて、32ビットのNVRAMを必要とする。この技術は、データ・ストリップのすべてを読み取ることができる場合においてのみ機能する。1つのデータ・ストリップを読み取ることができない場合には(例えば、ディスクの損傷のために)、パリティ・ストリップを算出することができず、データは損失する。これは、単一の故障で生き残ることができるように設計されたRAID−5では許容される限界である(おそらく、ディスク損傷及び停電又はコントローラ・リセットといった2つの障害が存在した。)
この技術が、本来であればデータを損失することなく2つの障害を切り抜けなければならない二重化冗長アレイに適用された場合には、許容できるものではない。この問題に対する標準的な解決策(これはRAID−5の場合には強化し、二重化冗長の場合には解決するものである)は、アレイ・コントローラに大容量の不揮発性ストレージ(ここでは、NVRAMと区別するためにNVSと呼ぶ)を装備することである。ディスクに書き込みを開始する前に、コントローラは、新規なデータ及びパリティを準備し、これらをNVS内に格納する。書き込み中に、コントローラがリセットされるか、又はディスクが電力を失った場合には、書き込みを試みてきたデータは依然としてNVSに存在しているため、コントローラは再びその書き込みを試みることができる。書き込みが成功した場合には、そのパターンを再同期するさらに別の動作は必要ない。1つのディスク(又は、さらに、二重化冗長アレイにおいては2つのディスク)が損傷したとしても、問題はない。
この手法の欠点は、コントローラが満足に機能するのに必要なだけの同時書き込みに対処するのに十分な大容量のNVSが必要なことである。過去においては、単一のストレージ・コントローラが、典型的には、高速書き込みキャッシュ及びRAID機能の両方を与えるものであるため、このことは許容できるものであった、すなわち、2つのコンポーネントにより共有されるNVSの1つだけが要求されるものであった。
しかしながら、ストレージ・エリア・ネットワーク(SAN)環境においては、キャッシュとRAIDとは別々のボックスにあることが望ましい場合がある。RAIDの更新にNVSを用いることは、キャッシュ・ボックス及びRAIDボックスの両方に、それら自体のNVSが必要であることを意味する。
典型的には、RAIDアレイには少なくとも2つのコントローラがあり、1つのコントローラの故障は、アレイに対するアクセス損失の原因にならない。これらのコントローラは、RAIDアレイに対するアクセスを同期させるように通信しなければならない。いかなる不揮発性の情報も、両方のコントローラに見えるものでなければならない。最も単純な場合には、コントローラはデバイス・ネットワークを用いて通信するが、NVSのコンテンツをシャドウィングしなければならない場合には、ネットワーク帯域幅が不利に消費され、さもなければこの帯域幅は、ユーザI/Oに利用可能である。
NVRAM技術を用いてRAID−5アレイを管理するストレージ・アダプタ/コントローラが与えられるとすると、ハードウェアのアップグレードなしで、NVS手法を用いて、許容できる二重化冗長RAIDストレージを実装することは可能ではないということが、さらに別の欠点である。
したがって、本発明は、第1の態様において、データ及びパリティを安全に多重化冗長ストレージに書き込むための装置の構成を提供し、該装置の構成は、少なくとも1つの第1のマークをストレージ装置に格納して、少なくとも1つのデータ書き込みにより書き込まれるべきパターンを一意的に索引付けるように動作可能な第1ストレージ・コンポーネントと、前述の少なくとも1つのデータ書き込みを実行するように動作可能な書き込みコンポーネントと、少なくとも1つのさらに別のマークにより、前述のストレージ装置内のマークを上書きして、パリティ書き込みにより書き込まれるべきパターンを一意的に索引付けするように動作可能なさらに別のストレージ・コンポーネントと、前述のパリティ書き込みを実行するように動作可能なさらに別の書き込みコンポーネントと、を含む。
前述の第1ストレージ・コンポーネントは、さらに、第2のマークにより、前述のストレージ装置内の前述の少なくとも1つの第1のマークを上書きして、第1のパリティ書き込みにより書き込まれるべきパターンを索引付けするように動作可能な第2ストレージ・コンポーネントを含み、前述の書き込みコンポーネントは、さらに、前述の第1のパリティ書き込みを実行するように動作可能であることが好ましい。
第1の態様の構成は、二重化冗長性を有することが好ましいとすることができる。第1の態様の装置は、二重化冗長性より大きい冗長性を有することが好ましいとすることができる。
第1の態様の構成は、各々のデータ及びパリティ書き込み動作を直列化するように適応させることができる。
第1の態様の構成は、さらに、RAID−5ストレージであることが好ましいRAIDストレージを含むことができる。
第1の態様の構成は、遅延パリティ更新を実行するように適応させることができる。
第1の態様の構成は、高速書き込みキャッシュをさらに含むことが好ましいとすることができる。
第2の態様においては、本発明は、データ及びパリティを安全に多重化冗長ストレージに書き込むための方法を提供し、この方法は、少なくとも1つの第1のマークをストレージ装置に格納して、少なくとも1つのデータ書き込みにより書き込まれるべきパターンを一意的に索引付けするステップと、前述の少なくとも1つのデータ書き込みを実行するステップと、少なくとも1つのさらに別のマークにより前述のストレージ装置内のマークを上書きして、パリティ書き込みにより書き込まれるべきパターンを一意的に索引付けするステップと、前述のパリティ書き込みを実行するステップと、を含む。
少なくとも1つの第1のマークをストレージ装置に格納して、少なくとも1つのデータ書き込みにより書き込まれるべきパターンを一意的に索引付けするステップが、さらに、第2のマークにより前述のストレージ装置内の前述の少なくとも1つの第1のマークを上書きして、第1のパリティ書き込みにより書き込まれるべきパターンを索引付けするステップを含み、前述の少なくとも1つのデータ書き込みを実行するステップが、前述の第1のパリティ書き込みを実行するステップを含むことが好ましい。
多重化冗長ストレージは、二重化冗長性であることが好ましい。
多重化冗長ストレージは、二重化冗長性より大きい冗長性を有することが好ましい。
書き込みの実行を含むすべてのステップは、直列化されることが好ましい。
前述の多重化冗長ストレージは、RAIDストレージを含むことが好ましい。
前述のRAIDストレージは、RAID−5ストレージであることが好ましい。
第2の態様の方法は、さらに、遅延パリティ(lazy parity)更新を実行するステップを含むことが好ましい。
第2の態様の方法は、さらに、高速書き込みキャッシング動作を実行するステップを含むことが好ましい。
第3の態様においては、本発明は、有形媒体に記録されるコンピュータ・プログラム・コードを含み、該コンピュータ・プログラム・コードが、コンピュータ・システムに搭載され、そのシステムで実行された場合には、第2の態様における方法のステップのすべてを実行するコンピュータ・プログラムを提供する。
本発明は、ディスク損傷と電源のリセットとの組み合わせ、又はディスク損傷とコントローラのリセットとの組み合わせに対する保護を提供するという利点がある。
さらに、本発明は、ユーザI/Oが利用可能な帯域幅を減少させる、帯域幅消費問題を軽減するという利点がある。
本発明のさらに別の利点は、これが、二重化冗長アレイより大きい冗長性を有するアレイに拡張が容易であることである。
ここで、本発明の好ましい実施形態を、一例として、添付の図面を参照して説明する。
本発明の好ましい実施形態を理解するために、図1に示す既知のエンコード方式を再び検討する。このパターンに対する書き込みは、直列化されている。両方のストリップA及びBに対する書き込みが同時にサブミット(発行)された場合には、アレイ・コントローラは、最初に一方を、次いで他方を処理する。
更新データB´を既存データBに上書きするために、既知のディスクI/Oステップの手順が必要となる。この手順は、
1.旧データ、Bを読み取る。
2.パリティ・デルタ、B xor Bを計算する。
3.第1の旧パリティ、B xor Dを読み取る。
4.第1の新パリティを、第1の旧パリティとパリティ・デルタの排他的論理和により計算する、すなわち、(B xor D) xor (B xor B)の計算により、Bxor Dとなる。
5.第2の旧パリティ、A xor Bを読み取る。
6.第2の新パリティを、第2の旧パリティと、パリティ・デルタの排他的論理和により計算する、すなわち、(A xor B) xor (B xor B´)の計算によりA xor B´となる。
7.Bの上にBを書き込む。←書き込み#0(番号0)
8.第1の新パリティ、B´ xor Dを書き込む。←書き込み#1(番号1)
9.第2の新パリティ、A xor Bを書き込む。←書き込み#2(番号2)
(最終結果に影響を及ぼすことなく幾らかの再配列(reordering)が可能であることは、当業者には明らかであろう。)
本発明の好ましい実施形態においては、書き込み#0、#1、及び#2の各々に書き込まれているパターン内のストリップを一意的に識別するため、マークがNVRAMに格納される。
図2を参照すると、データ及びパリティを、ライタ102を備えた第1書き込みコンポーネント112を含む多重化冗長ストレージに、安全に書き込むための装置100の構成が示されており、該ライタは、第1ストレージ・コンポーネント108と連携してマークを格納して、データ書き込みにより書き込まれるべきパターンを一意的に索引付けし、次いで、ストレージ110に対する書き込み動作を実行する。さらに、書き込みコンポーネント112は、第2ライタ104を含み、該ライタもまた、第1ストレージ・コンポーネント108と連携してマークを格納して、第1のパリティ書き込みにより書き込まれるべきパターンを一意的に索引付けし、次いで、ストレージ110に対する書き込み動作を実行する。ストレージに対して非アトミックな(non−atomic)書き込みをする場合には、データ及びパリティは、並行書き込み114が示すように、並行して書き込むことができる。一貫性(アトミック性)を保持しなくてはならない書き込みの場合には、コンポーネント112は、2つの独立したライタ102、104を提供するように事実上分解され、並行(同時)書き込みコンポーネント112に示される書き込みは、第1がデータの書き込み、第2が第1パリティの書き込みという直列化された書き込みの対に分解される(第2のパリティ書き込みもまた、直列化されねばならない)。
第3のライタ106は、ストレージ・コンポーネント108と連携して、少なくとも1つのさらに別のマークにより、ストレージ内のマークを上書きして、第2パリティ書き込みによって書き込まれるべきパターンを一意的に索引付けし、次いで、パリティをストレージ110に書き込む。
NVRAMであるストレージ・コンポーネント108内に格納された情報は、
書き込まれているパターンのインデックス(0から、パターンがアレイの下まで反復される回数の数)と、
書き込まれているデータ・ストリップのインデックス(4ディスク・アレイでは、0から3)と、
現在実行されている書き込みのインデックス(二重化冗長アレイについては、上記の#0から#2までのマークが付されている)と
である。
第2及び第3の項目は、パターン内のどのストリップが書き込まれているかを一意的に識別する。この情報を表す代替的な方法があり、これらに限られるものではないが、例えば、パターン内のX−Y座標の使用を含む。多くの代替的表現が存在することは、データ処理分野の技術者(当業者)には明らかであろう。
このことは、NVRAM内に格納されたデータは、各々の書き込みの前に変更されることを意味する。上述されたNVRAMマークの使用は、上述のアルゴリズムに、以下のステップを加えることを含む。
6A.NVRAMを{パターンP、データB、書き込み0}と設定する。
7.BをBの上に書き込む。
7A.NVRAMを{パターンP、データB、書き込み1}と設定する。
8.第1の新パリティ、B´ xor Dを書き込む。
8A.NVRAMを{パターンP、データB、書き込み2}と設定する。
9.第2の新パリティ、A xor Bを書き込む。
9A.NVRAMマークを消去する。
アレイを共有するアダプタ/コントローラが1つより多くある環境においては、NVRAMマークの値は、アダプタ/コントローラのすべてに対して変更されねばならない。
図3を参照すると、本発明の好ましい実施形態による方法のステップのフロー図が示されている。
ステップ202においては、マークがNVRAMに書き込まれて、データ書き込みのためにパターン・インデックス、ストリップ・インデックス及び書き込みインデックスを格納する。データが、ステップ204において書き込まれる。ステップ206においては、マークがNVRAMに書き込まれて、第1パリティ書き込みのためにパターン・インデックス、ストリップ・インデックス、及び書き込みインデックスを格納する。第1パリティが、ステップ208において書き込まれる。非アトミック更新の場合には、これらの書き込みは並行して生じることができる。或いは別の場合には、これらは直列化されなければならず、第2パリティ書き込み(以下で説明する)もまた、直列化されなければならない。
ステップ210においては、マークがNVRAMに書き込まれて、第2パリティ書き込みのためにパターン・インデックス、ストリップ・インデックス、及び書き込みインデックスを格納する。第2パリティが、ステップ212において書き込まれる。ステップ214においては、NVRAMが無効化される。
任意の時点で、ディスク損傷なしで、サブシステムの電源が落ちたり、又は、アダプタ/コントローラがリセットされた場合には、パターンは容易に再同期することができる。ディスク損傷があり、そのディスクがリセット時に書き込まれたデータ又はパリティ・ストリップを含んでいる場合は、残っているディスク上の全ストリップは既に同期状態であるため、パターンは再同期することができる。ディスク損傷があり、そのディスクがリセット時に書き込まれたデータ又はパリティ・ストリップを含んでいるディスクと異なる場合には、そのパターンは以下のように再同期することができる。
1.NVRAMが「書き込み0」と示す場合には、その状況は2つのディスク、すなわち、本当に損傷した1つのディスクと、書き込まれているデータ・ストリップを含む1つのディスク、が損傷した状況と同様である。このパターンは多重化冗長性であるため、すべてのデータを再構築して、該パターンを、書き込み開始前の状態に戻すことができる。
2.NVRAMが「書き込み2」と示す場合には、その状況は2つのディスク、すなわち、本当に損傷した1つのディスクと、第2パリティ・ストリップを含む1つのディスク、が損傷した状況と同様である。このパターンは多重化冗長性であるため、すべてのデータを再構築して、割り込まれた書き込みを完了することができる。
3.NVRAMが「書き込み1」と示す場合には、3つの場合がある。
A)損傷したディスクが「書き込み0」中に書き込まれたデータ・ストリップを含む。
このことは、2つのディスク、すなわち、本当に損傷した1つのディスクと、「書き込み1」データを含む1つのディスク、の損傷と同じである。
パターンの冗長性は、全データを再構築して、該パターンを、書き込み開始前の状態に戻すことができることを保証する。
B)損傷したディスクが、「書き込み2」中に書き込まれるべきであった第2パリティ・ストリップを含む。
このことは、2つのディスク、本当に損傷した1つのディスクと、「書き込み1」データを含む1つのディスク、の損傷と同じである。
パターンの冗長性は、全データを再構築して、割り込まれた書き込みを完了させることができることを保証する。
C)損傷したディスクは異なるディスクである。
損傷したディスク上のデータ・ストリップは、常に再構築することができ、そのパターンを再同期して、割り込まれた書き込みを完了させることができる。
損傷したディスク上の各々のデータ・ストリップは、2つのパリティ・ストリップを有する。これらのいずれも損傷したディスク上にはない。
これらのパリティ・ストリップの多くて1つが「書き込み0」中に書き込まれたデータ・ストリップと共有されるため、データ・ストリップを再構築する少なくとも1つの方法が常に存在する。
本発明の第1の好ましい実施形態は、種々の読み取りを並行して発行できても、3つの書き込みは、逐次的に発行されねばならない、すなわち、書き込み#2は書き込み#1が完了するまでは開始されない、ことを要求する。
本実施形態の1つの欠点は、3つのディスク書き込みが直列化されることであり、これは、アレイに送られる書き込みが、3つのディスク書き込みが並行して発行されるNVS手法を用いる、等価なアレイに対する書き込みより長い時間がかかることを意味する。
このことは、RAIDアレイが高速書き込みキャッシュの後にあり、そのために、少なくとも部分的にホスト応答時間から隔離されている場合には、或る程度軽減することができる。
この欠点を軽減する、付加的な、可能性のある方法は、ステップ8Aの後で、ホスト書き込みI/Oに対して首尾よい完了を信号通知することによるものであり、これは、多くの場合、RAID−5に適用される周知の「遅延パリティ更新」技術の等価物である。
本発明の第2の実施形態においては、アプリケーションが、RAIDアレイに対する書き込みがアトミックであるべきとする付加的な特性を要求しない限りは、直列化は不要である。割り込まれた書き込みが、新データと旧データとの間の遷移部分(transition)で終了することを許容できる場合には、最初の2つの書き込みは、第1のNVRAMマークの下に生じ、次いで、1つの書き込みが第2のNVRAMマークの下に生じることができる。
例えば、図1のデータAに対する更新のステップを検討する。
1.全ての読み取りを行い、書き込まれるべき新パリティを計算する
2.A及びA xor Bが更新されていることを示すNVRAMマークを確立する
3.A及びA xor Bを並行して書き込む
4.両方の書き込みが完了した場合には、A xor Cが更新されていることを示すNVRAMマークを確立する
5.A xor Cを書き込む
6.NVRAMマークを消去する
したがって、並行書き込み(ステップ番号3)中において、コントローラのリセット、及び、ディスク損傷が生じる場合には、そのシナリオは、
1.ディスク1が損失する。「B」、「C」及び「D」は残り、「C」及び「A x or C」を用いて、「A」の古いバージョンを再構築することができる。
2.ディスク2が損失する。「C」、「D」及び「A」の半更新バージョンは残り、「D」及び「B xor D」を用いて、「B」を再構築することができる。必要であれば、「C」及び「A xor C」を用いて、「A」の古いバージョンを再構築することができる。
3.ディスク3が損失する。「B」、「D」及び「A」の半更新バージョンは残る。「D」及び「C xor D」を用いて、「C」を再構築することができる。必要であれば、「C」及び「A xor C」を用いて、「A」の古いバージョンを再構築することができる。
4.ディスク4が損失する。「B」、「C」及び「A」の半更新バージョンは残る。「B」及び「B xor D」を用いて「D」を再構築することができる。「A」の古い、又は新しいバージョンは再構築できない。
この直列化の減少は、接近する現行のRAID−5アレイに対して、アレイ書き込み動作における待ち時間(latency)を減少させるため、望ましいものである。
第2の好ましい実施形態をさらに冗長性をもったアレイに拡張するために、データ書き込みは、第1パリティの更新と並行して行うことができるが、後続するパリティの更新は直列化されねばならない。
しかしながら、3つの逐次的な書き込みを含む第1の好ましい実施形態におけるように、書き込みをアトミックにすることは、割り込まれた書き込みが可読であることを保証しないディスク・ドライブをもつ使用法(USE)にとって望ましいものとなる(例えば、不揮発性ストレージを用いることなくサブ・セクタ書き込みを可能にする4KBのセクタ・サイズをもつドライブ)。
上述の方法は、典型的には、1つ又はそれ以上のプロセッサ(図示せず)上で稼動するソフトウェアにおいて実行され、該ソフトウェアは、磁気又は光学コンピュータ・ディスクといったあらゆる好適なデータ・キャリア(これも図示せず)上で実行されるコンピュータ・プログラム要素として与えられることができることが理解されるであろう。同様に、データ伝送のためのチャネルは、すべての記述によるストレージ媒体、並びに、有線又は無線信号媒体といった信号搬送媒体を含むことができる。
本発明は、コンピュータ・システムと併せて用いるためのコンピュータ・プログラムとして好適に実施することができる。この実施は、例えば、フレキシブル・ディスク、CD−ROM、ROM、又はハードディスクのようなコンピュータ可読媒体といった有形媒体上に固定されているか、又は、モデム又は他のインターフェース・デバイスにより、以下に限られるものではないが、光学又はアナログ通信回線を含む有形媒体上で、又は、以下に限られるものではないが、マイクロ波、赤外線又は他の伝送技術を含む無線技術を用いて、コンピュータ・システムに伝送可能な、一連のコンピュータ可読命令を含むことができる。一連のコンピュータ可読命令は、上述した機能のすべて又は一部を具体化する。
当業者であれば、このようなコンピュータ可読命令は、多くのコンピュータ・アーキテクチャ又はオペレーティング・システムと併せて用いるための多数のプログラミング言語により書くことができることを理解するであろう。さらに、このような命令は、以下に限られるものではないが、半導体、磁気、又は光学を含む現在又は将来のあらゆるメモリ技術を用いて格納することができ、又は、以下に限られるものではないが、光学、赤外線、又はマイクロ波を含む現在又は将来のあらゆる通信技術を用いて伝送することができる。このようなコンピュータ・プログラムは、例えば、ソフトウェア・パッケージ、コンピュータ・システムにより予め搭載された、例えば、システムROM又は固定のディスク上の、又は、例えば、インターネット又はワールド・ワイド・ウェブのようなネットワーク上のサーバ又は電子掲示板から配布された、印刷又は電子文書を伴う取り外し可能媒体として配布することができる。
上述の実施形態に対する種々の修正は、当業者には明らかであることが理解されるであろう。
4ディスク・アレイの周知のエンコード方式を示す。 本発明の好ましい実施形態による装置の構成のブロック概略図を示す。 本発明の好ましい実施形態による方法のステップを示す。

Claims (5)

  1. データ及びパリティを安全に多重化冗長RAIDストレージに書き込むための方法であって、
    少なくとも1つの第1のマークであるパターン・インデックス、ストリップ・インデックス及び書き込みインデックスをストレージ装置に格納して、少なくとも1つのデータ書き込みにより書き込まれるべきデータ・ストリップのパターンを一意的に索引付けするステップと、
    前記少なくとも1つのデータ書き込みを実行するステップと、
    少なくとも1つのさらに別のマークであるパターン・インデックス、ストリップ・インデックス及び書き込みインデックスにより前記ストレージ装置内のマークであるパターン・インデックス、ストリップ・インデックス及び書き込みインデックスを上書きして、パリティ書き込みにより書き込まれるべきパリティ・ストリップのパターンを一意的に索引付けするステップと、
    前記パリティ書き込みを実行するステップと、
    を含む方法。
  2. 少なくとも1つの第1のマークであるパターン・インデックス、ストリップ・インデックス及び書き込みインデックスをストレージ装置に格納して、少なくとも1つのデータ書き込みにより書き込まれるべきデータ・ストリップのパターンを一意的に索引付けする前記ステップが、さらに、前記ストレージ装置内の前記少なくとも1つの第1のマークであるパターン・インデックス、ストリップ・インデックス及び書き込みインデックスを第2のマークであるパターン・インデックス、ストリップ・インデックス及び書き込みインデックスで上書きして、第1のパリティ書き込みにより書き込まれるべきパリティ・ストリップのパターンを索引付けするステップを含み、
    前記少なくとも1つのデータ書き込みを実行する前記ステップが、前記第1のパリティ書き込みを実行するステップを含む、
    請求項に記載の方法。
  3. 多重化冗長ストレージが二重化冗長性より大きい冗長性を有する、請求項又は請求項に記載の方法。
  4. 書き込みの実行を含むすべてのステップが直列化される、請求項から請求項までのいずれか1項に記載の方法。
  5. 有形媒体に記録されるコンピュータ・プログラム・コードを含み、前記コンピュータ・プログラム・コードが、コンピュータ・システムに搭載され、そのシステムで実行された場合には、請求項から請求項までのいずれか1項に記載の方法のすべてのステップを実行する、コンピュータ・プログラム。
JP2006516161A 2003-06-28 2004-06-17 多重化冗長ストレージへの安全な書き込みを行う装置及び方法 Expired - Fee Related JP4848272B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0315157A GB0315157D0 (en) 2003-06-28 2003-06-28 Safe write to multiply-redundant storage
GB0315157.8 2003-06-28
PCT/EP2004/051150 WO2005001841A2 (en) 2003-06-28 2004-06-17 Safe write to multiply-redundant storage

Publications (2)

Publication Number Publication Date
JP2009514047A JP2009514047A (ja) 2009-04-02
JP4848272B2 true JP4848272B2 (ja) 2011-12-28

Family

ID=27676272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006516161A Expired - Fee Related JP4848272B2 (ja) 2003-06-28 2004-06-17 多重化冗長ストレージへの安全な書き込みを行う装置及び方法

Country Status (6)

Country Link
EP (1) EP1639467A2 (ja)
JP (1) JP4848272B2 (ja)
CN (1) CN100359478C (ja)
GB (1) GB0315157D0 (ja)
TW (1) TWI315873B (ja)
WO (1) WO2005001841A2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3713094A1 (en) * 2019-03-22 2020-09-23 Zebware AB Application of the mojette transform to erasure correction for distributed storage

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0569212A1 (en) * 1992-05-05 1993-11-10 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
JPH05341921A (ja) * 1992-06-05 1993-12-24 Hitachi Ltd ディスクアレイ装置
JPH06119126A (ja) * 1992-10-08 1994-04-28 Fujitsu Ltd ディスクアレイ装置
WO1994029795A1 (en) * 1993-06-04 1994-12-22 Network Appliance Corporation A method for providing parity in a raid sub-system using a non-volatile memory
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5774643A (en) * 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
JPH11143649A (ja) * 1997-11-04 1999-05-28 Fujitsu Ltd ディスクアレイ装置
US20020161970A1 (en) * 2001-03-06 2002-10-31 Busser Richard W. Utilizing parity caching and parity logging while closing the RAID 5 write hole
JP2003167688A (ja) * 2001-11-30 2003-06-13 Toshiba Corp ディスクアレイ装置および冗長データをもつ論理ドライブの一貫性回復方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0569212A1 (en) * 1992-05-05 1993-11-10 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
JPH05341921A (ja) * 1992-06-05 1993-12-24 Hitachi Ltd ディスクアレイ装置
JPH06119126A (ja) * 1992-10-08 1994-04-28 Fujitsu Ltd ディスクアレイ装置
WO1994029795A1 (en) * 1993-06-04 1994-12-22 Network Appliance Corporation A method for providing parity in a raid sub-system using a non-volatile memory
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5774643A (en) * 1995-10-13 1998-06-30 Digital Equipment Corporation Enhanced raid write hole protection and recovery
JPH11143649A (ja) * 1997-11-04 1999-05-28 Fujitsu Ltd ディスクアレイ装置
US20020161970A1 (en) * 2001-03-06 2002-10-31 Busser Richard W. Utilizing parity caching and parity logging while closing the RAID 5 write hole
JP2003167688A (ja) * 2001-11-30 2003-06-13 Toshiba Corp ディスクアレイ装置および冗長データをもつ論理ドライブの一貫性回復方法

Also Published As

Publication number Publication date
GB0315157D0 (en) 2003-08-06
CN1791863A (zh) 2006-06-21
EP1639467A2 (en) 2006-03-29
TW200518089A (en) 2005-06-01
WO2005001841A3 (en) 2005-09-09
CN100359478C (zh) 2008-01-02
TWI315873B (en) 2009-10-11
WO2005001841A2 (en) 2005-01-06
JP2009514047A (ja) 2009-04-02

Similar Documents

Publication Publication Date Title
US11941255B2 (en) Storage system and data management method
JP6294518B2 (ja) 不揮発性メモリシステムにおける同期ミラーリング
JP4870678B2 (ja) 格納システム状態インジケータおよび方法
US9684591B2 (en) Storage system and storage apparatus
JP4953677B2 (ja) 拡張可能なraid方法及び装置
US9465561B2 (en) Storage system and storage control method
CN102799533B (zh) 一种磁盘损坏扇区屏蔽方法及装置
JP2006244122A (ja) 記憶装置、その制御方法及びプログラム
CN101609420A (zh) 实现磁盘冗余阵列重建的方法和磁盘冗余阵列及其控制器
US9842024B1 (en) Flash electronic disk with RAID controller
JPH1049308A (ja) ホスト・ベースraid−5及びnv−ram統合システム
US10409682B1 (en) Distributed RAID system
CN111124262A (zh) 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质
US9323617B2 (en) Remap raid to maintain raid level
JP2007524932A (ja) パリティデータを生成するための方法、システム、及びプログラム
JP2010026812A (ja) 磁気ディスク装置
JP4848272B2 (ja) 多重化冗長ストレージへの安全な書き込みを行う装置及び方法
US20180307427A1 (en) Storage control apparatus and storage control method
US20220342758A1 (en) Recovery from partial device error in data storage system
JP7056874B2 (ja) 制御装置、ディスクアレイ装置、制御方法、及びプログラム
US11544005B2 (en) Storage system and processing method
JP2004185256A (ja) Raidシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110301

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

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

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

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees