JP2007536658A - 追加的および自律的な保護の機能を備えた複数の記憶装置からなるアレイにデータを記憶するための方法およびシステム - Google Patents

追加的および自律的な保護の機能を備えた複数の記憶装置からなるアレイにデータを記憶するための方法およびシステム Download PDF

Info

Publication number
JP2007536658A
JP2007536658A JP2007512165A JP2007512165A JP2007536658A JP 2007536658 A JP2007536658 A JP 2007536658A JP 2007512165 A JP2007512165 A JP 2007512165A JP 2007512165 A JP2007512165 A JP 2007512165A JP 2007536658 A JP2007536658 A JP 2007536658A
Authority
JP
Japan
Prior art keywords
strip
storage device
lba
writing
array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007512165A
Other languages
English (en)
Other versions
JP4521443B2 (ja
JP2007536658A5 (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 JP2007536658A publication Critical patent/JP2007536658A/ja
Publication of JP2007536658A5 publication Critical patent/JP2007536658A5/ja
Application granted granted Critical
Publication of JP4521443B2 publication Critical patent/JP4521443B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • 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/103Hybrid, i.e. RAID systems with parity comprising a mix of RAID types
    • 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/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Landscapes

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

Abstract

【課題】
本発明は、追加的および自律的な保護の機能を備えた複数の記憶装置からなるアレイにデータを記憶するための方法およびシステムを提供するものである。
【解決手段】
本発明の一つの側面は複数の記憶装置からなるアレイ中にデータを記憶する方法に関する。本発明の方法の実施例では、第1のストリップを、第1の記憶装置及び第2の記憶装置に書き込むステップを含む。更に第2のストリップを、第2の記憶装置及び第3の記憶装置に書き込むステップを含む。更には第3のストリップを、第3の記憶装置及び第4の記憶装置に書き込むステップを含む。
【選択図】図16

Description

本発明はコンピューティング・システムにデータを記憶することに関する。特に本発明の幾つかの実施例は、データの損失からの保護を増進する態様で、複数の記憶装置からなるアレイにデータを記憶することに関する。
コンピューティング・システムの記憶装置にはしばしば重要なデータが記憶されている。記憶装置はしばしば故障するし、故障した記憶装置にあるデータも失われるから、1個または複数個の記憶装置が故障するときにデータが失われないよう保護したりデータを復元したりするような技法が開発されてきた。
データの損失を防ぐためのひとつの技法として、記憶アレイを構成するある記憶装置(例えば、ディスク・ドライブ)にパリティ情報を記憶し、そしてそのアレイを構成する1個もしくは複数個の他の記憶装置上に顧客データを記憶するという技法がある。(ここではディスク・ドライブは「ディスク」とも呼ばれ、それは通常の用法では簡便化した用法である。)この技法の場合、もしも記憶装置が故障すると、その故障した記憶装置にあったデータを再構成するのにパリティ情報が使用される。更には、もしも十分なパリティ情報が他の記憶装置にも加えられるなら、その追加の情報は1個よりも多くの故障した記憶装置からデータを再構成するのに使用できる。データ損失を防ぐ他の技法として、別個の記憶装置の複製(a duplicate copy)を作る、データのミラーリングという技法がある。もしも記憶装置が故障するなら、どのデータの複製からからデータを復元することができる。
安価な(あるいは独立の)ディスクの冗長なアレイ(RAID)はパフォーマンスと記憶容量が増加したデータ記憶システムを提供するのに使用できる。データ保護のために、ミラーリングやパリティ情報の記憶、あるいはその二つを組み合わせたものがRAIDアレイで実装される。また、ストライピングと呼ばれる技法も使用することができる。これはストリップ(strip)の数がアレイ中のディスクの数に等しくなるようにデータ・レコード及びパリティ情報を複数のストリップに分割する技法である。複数のディスクに亘る負荷をバランスさせてパフォーマンスを改良するために、各ストリップがRAIDアレイ中の異なるディスクの各々に書き込まれる即ち「ストライプされる」。 RAIDアレイ中のすべてのドライブに亘る一つのパスを含む一群のストリップがストライドと呼ばれる。異なるミラーリング、パリティ及びストライピングが用いられるような幾つかのRAIDプロトコルが工夫されてきた。一例として、6枚のディスクよりなるRAID5のアレイでは、5個のデータ・ストリップ及び 1個のパリティ・ストリップがその6枚のディスクに亘ってストライプされ、そのパリティ情報が複数のディスクに亘って循環(rotation)される。複数のディスクに亘りパリティを循環させることにより、そのアレイに対するパリティの更新が複数のディスクに亘って分散されるように確保する。RAID5は冗長度1を提供し、このことはそのアレイ中の任意のそして唯一のディスクが故障した場合に全てのデータを復元できることを意味する。
1個以上の記憶装置の故障後にデータを復元できるようにするために、記憶装置にもっと大きな冗長度を提供する種々の技法が知られているが、これらの技法は追加の記憶装置(たとえば、上位の(higher)ハミング・コードによって)上に追加のパリティ情報を記憶したり、追加の記憶装置上に追加のミラーリングを必要としたりするのが一般的である。RAID6はRAID5に似た構成であるが、冗長度2を提供するために各ストライドに2つのパリティ・ストリップを必要とする。同じデータ記憶能力を得るためのRAID6アレイの場合の記憶効率は、RAID6アレイが追加のディスクを必要とする故に、RAID5アレイの場合より低い。更に、パリティ情報から損失データを再構成するのは時間が余計にかかることがある。従って、向上したフォールト・トレランス(耐障害性)及び迅速なデータ復元の必要性に照らすと、既知の技法は記憶容量と性能のトレードオフの点で満足のいくものではない。
本発明の第1の側面(aspect)によれば、複数の記憶装置からなるアレイにデータを記憶するための方法であって、第1の記憶装置及び第2の記憶装置に第1のストリップを書き込むステップと、前記第2の記憶装置及び第3の記憶装置に第2のストリップを書き込むステップと、前記第3の記憶装置及び第4の記憶装置に第3のストリップを書き込むステップとを含む方法が提供される。
好適には、複数のストリップのうち少なくとも一つのストリップがパリティ・ストリップである。この方法の好適な実施例では記憶装置のアレイ中の各記憶装置が少なくともN個のストリップのLBAを有する。記憶すべきストライドの数jを識別し、3jがN−1よりも少ないか判断する、そしてもしそうならアレイ中の第1の記憶装置のLBAとアレイ中の第2の記憶装置のLBAと、アレイ中の第3の記憶装置のLBAにストリップs1jを書き込む。またアレイ中の第2の記憶装置のLBAとアレイ中の第3の記憶装置のLBAと、アレイ中の第4の記憶装置のLBAとにストリップs2jを書き込む。またアレイ中の第3の記憶装置のLBAとアレイ中の第4の記憶装置のLBAと、アレイ中の第5の記憶装置のLBAにストリップs3jを書き込む。好ましくは、もし3jがN−1よりも小さくないと判断されるなら、この動作は更に以下を含む。即ち第1の記憶装置のLBAにストリップs1jを、第2の記憶装置のLBAにストリップs2jを、そして第3の記憶装置のLBAにストリップs3jを書き込む。もっと好ましくは、この動作は以下を含む。即ち複数の記憶装置のアレイ中、記憶装置毎にその記憶装置のストリップLBAの合計数を判断し、そしてストリップLBAの最小の合計数を識別する。そして、パラメータNのための値を設定する動作はストリップLBAの最小の合計数に等しいNを設定することを含む。
好ましくは3jがN−1よりも小さいと判断されるなら、その動作は更に以下を含む。即ち前記アレイの第4の記憶装置のLBA及び第5の記憶装置のLBA及び第6の記憶装置のLBAにストリップs4jを書き込む。また第5の記憶装置のLBA及び第6の記憶装置のLBA及び第1の記憶装置のLBAにストリップs5jを書き込む。また第6の記憶装置のLBA及び第1の記憶装置のLBA及び第2の記憶装置のLBAにストリップs6jを書き込む。更に好ましくは、3jがN−1よりも小さくないと判断されるなら、その動作は更に以下を含む。即ちそのアレイの第4の記憶装置のLBAにストリップs4jを書き込み、第5の記憶装置のLBAにストリップs5jを書き込み、第6の記憶装置のLBAにストリップs6jを書き込む。
好ましい実施例では、この方法は、少なくともN個のストリップLBAをアレイ状の記憶装置中の各記憶装置が備えるというように、パラメータNのための値をセットするステップと、記憶されるストライドの数jを識別するステップと、3jがN−1よりも小さいか調べるステップと、もしそうであれば前記アレイの第1の記憶装置中のLBAjと前記アレイの第2の記憶装置中のLBAj+2と前記アレイの第3の記憶装置中のLBAj+1とにストリップs1jを書き込むステップと、前記第2の記憶装置中のLBAjと前記第3の記憶装置中のLBAj+2と前記アレイの第4の記憶装置中のLBAj+1とにs2jを書き込むステップと、前記第3の記憶装置中のLBAjと前記第4の記憶装置中のLBAj+2と前記アレイ中の第5の記憶装置中のLBAj+1とにストリップs3jを書き込むステップとを含む。
好ましくは、3jがN−1よりも小さくないと判断されるなら、前述の動作は更に以下の諸ステップを含む。即ち、前記第1の記憶装置中のLBA(3j−N+2)にストリップs1jを書き込むステップと、前記第2の記憶装置中のLBA(3j−N+2)にストリップs2jを書き込むステップと、前記第3の記憶装置中のLBA(3j−N+2)にストリップs3jを書き込むステップとを含む。より好ましくは以下の動作を含む。即ち、前記アレイ状の記憶装置中の記憶装置ごとにその記憶装置中の複数個のストリップLBAの合計数を判断するステップと、ストリップLBAの最小の合計数を識別するステップとを含む。特に前記パラメータNのための値をセットするステップはストリップLBAの最小数に等しいNをセットすることを含む。
好ましくは、3jがN−1よりも小さいと判断されるなら、前記の動作は更に以下のステップを含む。即ち前記第4の記憶装置中のLBAjと前記第5の記憶装置中のLBAj+2と前記アレイの第6の記憶装置中のLBAj+1とにストリップs4jを書き込むステップと、前記第5の記憶装置中のLBAjと前記第6の記憶装置中のLBAj+2と前記第1の記憶装置中のLBAj+1とにストリップs5jを書き込むステップと、前記第6の記憶装置中のLBAjと前記第1の記憶装置中のLBAj+2と前記第2の記憶装置中のLBAj+1とにストリップs6jを書き込むステップとを含む。更に好ましくは、3jがN−1よりも小さくないと判断するなら、前記の動作は更に以下のステップを含む。即ち前記第4の記憶装置中のLBA(3j−N+2)にストリップs4jを書き込むステップと、前記第5の記憶装置中のLBA(3j−N+2)にストリップs5jを書き込むステップと、前記第6の記憶装置中のLBA(3j−N+2)とにストリップs6jを書き込むステップとを含む。
第2の側面によれば、複数の記憶装置からなるアレイにデータを記憶するための記憶システムであって、第1の記憶装置及び第2の記憶装置に第1のストリップを書き込む手段と、前記第2の記憶装置及び第3の記憶装置に第2のストリップを書き込む手段と、
前記第3の記憶装置及び第4の記憶装置に第3のストリップを書き込む手段とを含む記憶装置システムが提供される。
第3の側面によれば、前記の方法のすべてのステップを実行するように適用されたプログラム・コード手段を含むコンピュータ・プログラムが提供される。
本発明の一つの側面は、複数の記憶装置からなるアレイにデータを記憶する方法である。その方法の一例は、第1のストリップを第1の記憶装置及び第2の記憶装置に書き込むステップを含む。この例はまた第2のストリップを前記第2の記憶装置及び第3の記憶装置に書き込むステップを含む。この例は更に第3のストリップを前記第3の記憶装置及び第4の記憶装置に書き込むステップを含む。
本発明を方法の側面から見た幾つかの代替例は、ディスク・アレイに跨るデータ・ストライドをストライピングし、前記アレイ中の第1のディスク上に前記ストライドの第1のストリップを書き込むか又は更新し、第2のディスク上に第2のストリップを書き込むか更新し、追加のストリップ及びディスクについてもその他のことをするのを含む。この方法は更に、第1のディスクがそのアレイ中の最後のディスクのストリップのコピーを有し、第2のディスクが第1のディスクのストリップのコピーを有するという具合に、各ストリップのコピーを、一つのディスクによる循環(ローテーション)で作ることを含む。
本発明の他の側面は、以下で説明するが、例えばアレイ状の記憶装置にデータを記憶する動作を行うようにディジタル処理装置により実行可能である、機械読み取り可能な命令のプログラムを具体化する記憶システム及び信号担持媒体を含む。
本発明の幾つかの例は、基本RAID構成の記憶装置以外の記憶装置を用いなくても、基本RAID構成によって提供されるより高い、記憶装置フォールト・トレランス(耐障害性)を提供する。従って、本発明の幾つかの例は、そのRAIDで利用できるディスク・スペースのみを用いて、所与の数のディスクのための基本RAIDコードの上に追加的な冗長度を加える。更には、故障率の高いことで特徴付けられる初期の記憶装置の使用中、高いフォールト・トレランスを効果的に提供する。更に、本発明の幾つかの例はデータを迅速に復元することができる。本発明は、以下の説明から明らかになるように他にも多くの利点がある。
本発明の性質、目的及び効果は添付の図に関連する以下の詳細な説明を考慮すると当業者にはもっと理解できるようになるであろう。
I.ハードウエア・コンポーネンツ及び相互接続
本発明の一つの側面は、複数の記憶装置からなるアレイ中にデータを記憶するための記憶システムである。一例として、その記憶システムは図1に示す記憶システム100の全部または一部によって具体化されても良い。一例として、その記憶システム100は主としてインターネショナル・ビジネス・マシーンズ・コーポレーションにより製造されたモデル800エンタープライズ記憶システム(ESS)とともに具体化されても良い。
記憶システム100は第1のクラスタ102及び第2のクラスタ104を含む。代替実施例では、記憶システム100が単一のクラスタまたは2以上のクラスタを備えていても良い。各クラスタは少なくとも一つのプロセッサを備える。一例として、各クラスタは4個もしくは6個のプロセッサを備えていても良い。図1に示す例では、第1のクラスタ102が6個のプロセッサ106a、106b、106c、106d、106e及び106fを備え、第2のクラスタ104が108a、108b、108c、108d、108e及び108fを備える。十分な計算能力を備えたプロセッサなら任意の者が使用できる。一例として、各プロセッサ106a−f、108a−fはインターナショナル・ビジネス・マシーンズ・コーポレーショが製造するパワーPC RISCプロセッサであっても良い。第1のクラスタ102もまた第1のメモリ110を備え、同様に第2のクラスタ104も第2のメモリ112を備える。一例として、メモリ110、112がRAMであっても良い。メモリ110、112は、たとえばデータ、及びプロセッサ106a−f、108a−fにより実行されるアプリケーション・プログラム及び他のプログラミング命令を記憶するのに使用することができる。この2個のクラスタ102、104は、単一の包囲体または別個の包囲体の中に位置づけられていても良い。代替実施例では、各クラスタ102、104がスーパー・コンピュータ、メインフレーム・コンピュータ、コンピュータ・ワークステーション、パーソナル・コンピュータと交換されても良い。
第1のクラスタ102は、第1グループの装置アダプタDA1、DA3、DA5、DA7(後述)に含まれるNVRAM(不揮発性ランダム・アクセス・メモリ)114に結合される。同様に、第2のクラスタ104は、第2グループの装置アダプタDA2、DA4、DA6、DA8(後述)に含まれるNVRAM116に結合される。更に、第1のクラスタ102はNVRAM116に、また第2のクラスタ104はNVRAM114に結合される。一例として、クラスタ102により操作されるデータはメモリ110に記憶され、NVRAM116にも記憶される。その結果、もしもクラスタ102が操作不能になってもデータは失われず、クラスタ104によって操作可能である。同様に、一例として、クラスタ104により操作されるデータはメモリ112に記憶され、NVRAM114にも記憶される。その結果、もしもクラスタ104が操作不能になってもデータは失われず、クラスタ102によって操作可能である。NVRAM114、116は、電力がなくても例えば約48時間までデータを保持することができる。
第1のクラスタ102内では、2個またはそれ以上のプロセッサ106a−fが同じタスクについて作業するよう協働することができる。しかし、タスクはプロセッサ106a−f相互間に分割(パーティション)してもよい。同様に、第2のクラスタ102内では、2個またはそれ以上のプロセッサ108a−fが同じタスクについて作業するよう協働することができる。代わりに、タスクはプロセッサ108a−f相互間に分割(パーティション)されることも可能である。その2個のクラスタ102、104間の相互作用については、クラスタ102、104がタスクに対し独立に作用してもよい。しかし、異なるクラスタ102、104中のプロセッサ106a−f、108a−fによって共有することもできる。
第1のクラスタ102は第1のブート装置、例えば第1のハードドライブ118に結合される。同様に、第2のクラスタ104は第2のブート装置、例えば第1のハードドライブ120に結合される。
各クラスタ102、104はその両者によって共有されるように共有アダプタ122に結合される。この共有アダプタ122はホスト・アダプタと呼ぶこともできる。この共有アダプタ122は、例えばPCIスロットであってもよく、そのPCIスロットにベイがつながれる。これはクラスタ102、104のいずれかによって操作されることが可能である。一例として、その共有アダプタ122はSCSI、ESCON、FICON或いはファイバ・チャネル・アダプタであっても良く、1個もしくはそれ以上のPCや、ホスト124などの他のホストと通信するのを促進しても良い。一例として、ホスト124はインターナショナル・ビジネス・マシーンズ・コーポレーションから入手できるZシリーズ・サーバもしくはNetNiftyサーバであってよい。
更に、第1のクラスタ102は、第1のグループの装置アダプタDA1、DA3、DA5、DA7(これらは専用アダプタとも呼ばれる)に結合され、第2のクラスタ104は、第2のグループの装置アダプタDA2、DA4、DA6、DA8に結合される。各装置アダプタDA1、DA3、DA5、DA7は、第1のクラスタ102と記憶装置グループ126a、126b、126c、126dのうちの一つとの間のインターフェースである。同様に、各装置アダプタDA2、DA4、DA6、DA8は、第2のクラスタ104と記憶装置グループ126a、126b、126c、126dのうちの一つとの間のインターフェースである。より詳細には、装置アダプタDA1及びDA2が記憶装置グループ126aに結合され、装置アダプタDA3及びDA4が記憶装置グループ126bに結合され、装置アダプタDA5及びDA6が記憶装置グループ126cに結合され、装置アダプタDA7及びDA8が記憶装置グループ126dに結合される。他の実施例では、装置アダプタDA1−8及び記憶装置グループ126a−dのうちの大きな数又は小さな数が使用され得る。その記憶装置グループ126a−dはクラスタ102、104で共有される。代替実施例では、1個もしくは複数個の記憶装置グループが第1のクラスタ102及び第2のクラスタ104とは異なるサイトニ置かれることも可能である。
一例として、各(記憶)装置アダプタDA1−8は、シリアル・ストレージ・アーキテクチャ(SSA)アダプタであってよい。代替例として、1個もしくは複数個の装置アダプタDA1−8が他の型のアダプタ、例えばSCSI又はファイバ・チャネル・アダプタとともに用いられても良い。各アダプタDA1−8は、本発明の1個もしくは複数個の実施例或いは本発明の部分を実施するための、ソフトウエア、ファームウエア、マイクロコードのうちの一つ又は複数の組み合わせであっても良い。一例として、コモン・パーツ・インターコネクト(CPI)が各アダプタ1−8をそれぞれのクラスタ102、104に結合するのに使用されても良い。
装置アダプタの各対(DA1及びDA2、DA3及びDA4、DA5及びDA6、並びにDA7及びDA8)記憶装置の2個のループに結合される。例えば、装置アダプタDA1及びDA2は記憶装置の第1のループに結合される。この第1のループは記憶装置A1、A2、A3、A4、A5、A6、A7、A8からなる第1のストリングと、記憶装置B1、B2、B3、B4、B5、B6、B7、B8からなる第2のストリングとを備える。それらのループになった記憶装置の第1及び第2のストリングは、バランスしたループを維持するために通常は同じ数の記憶装置を備える。同様に、装置アダプタDA1及びDA2は記憶装置の第2のループにも結合される。この第2のループは記憶装置C1、C2、C3、CA4、C5、C6、C7、C8からなる第1のストリングと、記憶装置D1、D2、D3、D4、D5、D6、D7、D8からなる第2のストリングとを備える。8個の記憶装置、例えば記憶装置A1、A2、A3、A4、A5、A6、A7、A8などからなる集合体は8パックとも呼ばれる。必ずしも必要ではないが、1個のループは最少でも16個の記憶装置を備える。代替実施例では、各ループにもっと多くの或いはもっと少ない数の記憶装置を含めることもできる。例えば、32個、48個又は他の数の記憶装置を書くループに含めることができる。通常は、1個のループになった記憶装置のストリングは同数の記憶装置を備える。記憶装置の各ループは、記憶装置のループが結合される各装置アダプタと連続したループ即ちシリアルなループを形成する。例えば、記憶装置A1、A2、A3、A4、A5、A6、A7、A8及びB1、B2、B3、B4、B5、B6、B7、B8を含む記憶装置のループは装置アダプタDA1とシリアルなループを形成し、また装置アダプタDA2ともシリアルなループを形成する。この構成は、各々のシリアルなループがそのループ中の各記憶装置と各装置アダプタとの間で冗長な通信経路を提供するので、信頼性を増強する。
各々の記憶装置グループ126a、126b、126c、126d中の記憶装置は、1個もしくは複数個の記憶装置アレイであって各記憶装置アレイが例えばRAID(Redundant Array of Inexpensive(Independent) Disks )となるようにグループ化されてもよい。RAIDアレイはRAIDランクとも呼ばれる。第1及び第2のクラスタ102、104から、(又はホスト124から)受け取った読み取りや書き込みの要求に応答して、その(記憶)装置アダプタDA1−8はそれらが結合しているRAIDアレイ中の各記憶装置を個別にアドレスする。ある特定のRAIDアレイ中の記憶装置は1対の装置アダプタの間で同じループにあるかもしれないし、異なるループにあるかもしれない。RAIDアレイが単一のループ中にある記憶装置同士から構成されている例として、第1のRAIDアレイが記憶装置A1、A2、A3、A4、B1、B2及びB3を含み、第2のRAIDアレイが記憶装置A6、A7、A8、B5、B6、B7及びB8を含み、記憶装置B4及びA5がいずれかのRAIDアレイによって使用され得るようスペアとして指定されても良い場合がある。この例では、各RAIDアレイがA1、A2、A3、A4、A5、A6、A7、A8という8パックから、並びにB1、B2、B3、B4、B5、B6、B7、B8という8パックからの記憶装置を含み、各RAIDアレイが装置アダプタDA1、DA2のうちの1つに閉じている。RAIDアレイが異なるループ中にある記憶装置から構成されている例として、第1のRAIDアレイが記憶装置A1、A2、B1、B2、C1、C2及びD1を含み、第2のRAIDアレイが記憶装置A3、A4、B3、B4、C3、D3及びD4を含み、第3のRAIDアレイが記憶装置A5、A6、B6、C5、C6、D5及びD6を含み、そして第4のRAIDアレイが記憶装置 A8、B7、B8、C7、C8、D7及びD8を含み、記憶装置D2、C4、B5及びA7がこれら4つのRAIDアレイのいずれかによって使用され得るようスペアとして指定されても良い場合がある。これらの例では、RAIDアレイ及びそれらのRAIDアレイのために利用できるスペアの記憶装置が、同じ対の装置アダプタに結合される。しかし、RAIDアレイ及びそのRAIDアレイのために利用できるスペアの記憶装置が、 異なる対の装置アダプタに結合されることもできよう。またRAIDアレイ及びそのRAIDアレイのために利用できるスペアの記憶装置が、単一のループまたは異なるループ中にあっても良い。
一つのRAIDアレイ中の全て若しくは幾つかの記憶装置に跨るストライピングもしくはミラーリング又はその両方を含んでも良いような、任意の所望の構成におけるRAIDアレイの記憶装置上に、データ及び必要ならパリティ情報を記憶しても良い。一例として、RAIDアレイ中の6個の記憶装置がデータを記憶するのに使用され、またそのRAIDアレイ中の第7の記憶装置がパリティ情報を記憶するのに使用されても良い。他の例では、RAIDアレイ中の7個の記憶装置がデータを記憶し、そのRAIDアレイ中の第8の記憶装置がパリティ情報を記憶するのに使用されても良い。更に他の例では、RAIDアレイ中の全ての記憶装置上にデータ及びパリティ情報が記憶されても良い。他の実施例では、RAIDアレイが7個よりも少ない、若しくは8個よりも多い記憶装置を備えていても良い。例えば、RAIDアレイがデータ及びパリティ情報の両方を記憶するのに夫々使用される5個若しくは6個の記憶装置からなっていても良い。また第1の故障後の再構築を終える前に起こる第2の記憶装置の故障からの復元も可能にするため、二重パリティ情報が記憶されても良い。例えば、データを記憶するのに6個の記憶装置を使用し、パリティ情報を記憶するのに2個の記憶装置を使用することもできよう。 他の例として、7個の記憶装置がデータのために使用され、他の7個の記憶装置が前述の7個の記憶装置上のデータをミラー(写像)するのに 使用され、そして更に2個の記憶装置がパリティ情報を記憶するのに使用されても良い。これらは全て一緒に9個の記憶装置の故障からの復元を提供することができよう(故障トレランス9)。
記憶装置グループ126a−d中の記憶装置はデータを記憶するための任意の適当な装置であってよく、磁気的、光学的、光磁気的、電気的若しくはデータを記憶するための他の任意の適当な技法を使用することができる。例えば、記憶装置はハードディスク・ドライブ、光ディスク(例えば、CD−R、CD−RW、WORM、DVD−R、DVD+R、若しくはDVD+RW)、フロッピー・ディスク、磁気データ記憶ディスク若しくはディスケット、磁気テープ、ディジタル光学テープ、EPROM,EEPROM若しくはフラッシュ・メモリであって良い。これらの記憶装置は同じタイプの装置でなくても、また同じタイプの技法を使用していなくても良い。一例として、各記憶装置はハードドライブで、例えば146ギガバイトの容量を持つものでも良い。一例では、各々の記憶装置グループ126a−dがインターナショナル・ビジネス・マシーンズ・コーポレーションで製造されたモデル2105エンタープライズ・ストレージ・サーバーという記憶システムであっても良い。
第1のクラスタ102若しくは第2のクラスタ104又はその両方に、少なくとも1個の装置アダプタDA1−8及び少なくとも1個の記憶装置グループ126a−dを備えたものが、記憶装置システム若しくは記憶装置と呼ばれることがある。1個若しくは複数の装置アダプタDA1−8は、少なくとも1個の装置グループ126a−dを備えている場合若しくは備えていない場合も、記憶システム若しくは記憶装置と呼ばれることもある。
図2に実施例のコンピューティング装置200を示す。図1のホスト124、(及び代替実施例における) クラスタ102若しくは104又はその両方が図2のコンピューティング装置200の実施例でもって実施され得る。このコンピューティング装置200は1個のプロセッサ202(プロセシング装置とも呼ばれる)を含む。これは幾つかの例では複数個のプロセッサであっても良い。一例として、このプロセッサはインターナショナル・ビジネス・マシーンズ・コーポレーションから市販されているPowerPC RISCプロセッサであっても、インテル・コーポレーションにより製造されているプロセッサであっても良い。このプロセッサ202は、Windows2000、ADC、Solaris(商標)、Linux、UNIX、HP−UX(商標)など、任意のオペレーティング・システムで稼動するものでよい。このコンピューティング装置200はパーソナル・コンピュータ、ワークステーステーション、メインフレーム・コンピュータ、若しくはスーパーコンピュータなど、任意の適当なコンピュータ上で実施されても良い。コンピューティング装置200は、全てプロセッサ202に結合されている記憶装置204、ネットワーク・インターフェース206、I/O(入出力装置)208を含む。記憶装置204は、例えばRAMであっても良い1次メモリ210と、不揮発性メモリ212とを備えていて良い。不揮発性メモリ212は、ハードディスク・ドライブ、光学的若しくは光磁気的な媒体から読み書きできるドライブ、テープ・ドライブ、不揮発性RAM(NVRAM)若しくは任意の他の適当なタイプの記憶手段とすることができる。記憶装置204はプロセッサによって実行可能なアップリケーション・プログラムや他のプログラミング命令とデータとを記憶するのに使用できる。ネットワーク・インターフェース206は任意の適当な有線若しくは無線のネットワークや通信リンクにアクセスを与えることができる。
II.動作
前述のハードウエアの実施例に加えて、本発明の他の側面は記憶装置にデータを記憶装置するための動作に関するものである。
A.単一担持媒体
図1及び図2のコンテキストでは本発明の方法の側面が、1個若しくは複数個の装置アダプタDA1−8、を備えることによって具体化されるが、クラスタ102若しくはクラスタ104又はその両方(更にはホスト124も必要に応じ加えても良い)は例えばコードとも呼ぶことができる機械読み取り可能な命令のシーケンスを実行する。これらの命令は種々のタイプの信号担持媒体に駐在する。この点で、本発明の幾つかの側面は、アレイ状の記憶装置にデータを記憶する動作を実行するためにディジタル処理装置によって実行可能な機械読み取り可能な命令のプログラムを具現する1個若しくは複数個の信号担持媒体を含むプログラム製品に関するものである。
この信号担持媒体は、例えばRAM110、RAM112、NVRAM114、NVRAM116、主メモリ210、不揮発性メモリ212、及び装置アダプタDA1−8中のファームウエアのうちの一つ又は複数を含む。代わりに、図3に示す光学的データ記憶ディスク300などの信号担持媒体に命令を含んでいても良い。光ディスクはCD−ROM、CD−R、CD−RW、WORM、DVD−R、DVD+R、若しくはDVD+RWなど、任意のタイプの信号担持媒体ディスクであってよい。更には記憶システム100に含まれるかまたは別のところで、命令は任意の多様な機械読み取り可能な1個若しくは複数個のデータ記憶媒体に記憶することができ、この媒体は例えば「ハードドライブ」、RAIDアレイ、磁気データ記憶ディスケット(フロッピー・ディスクなど)、磁気テープ、ディジタル光学テープ、RAM、ROM、EPROM、EEPROM、フラッシュ・メモリ、プログラマブル・ロジック、他の任意のタイプのファームウエア、光磁気記憶装置、紙のパンチカード或いは任意の他の適当な信号担持媒体を含む。任意の他の適当な信号担持媒体は、ディジタル若しくはアナログ又はその両方の電気的、光学的或いは無線であってもよい通信リンクなどの伝送媒体を含む。例えば、ある実施例では命令若しくはコードが、ファイル・サーバーからネットワークを介して、或いは他の伝送媒体からアクセスできる。また命令もしくはコードを含む信号担持媒体が、ネットワーク伝送ライン、無線伝送媒体、宇宙空間を通して伝播する信号、電波、赤外線信号などの伝送媒体を含んでも良い。代りに、信号担持媒体はハードウエア・ロジックで導入されても良い。例えば、集積回路チップ、プログラマブル・ゲート・アレイ(PGA)若しくはASIC(Application Specific Integrated Circuit)などである。一例として、機械読み取り可能な命令はマイクロコードを含んでも、「C++」などの言語からコンパイルされたソフトウエア・オブジェクト・コードを含んでも良い。
B.動作の全体的なシーケンス
1.動作のシーケンスの第1の例
説明を簡単にするために、しかし意図的な限定を付さずに、本発明の例示的な方法の側面を、図1に示す記憶システム100に関して説明する。本発明のこの方法的な側面の例は図4であるが、これはアレイ状の記憶装置にデータを記憶するための方法のシーケンス400を示す。
シーケンス400の動作は、1個若しくは複数個の装置アダプタDA1−8、クラスタ102及びクラスタ104の一方または両方(更に必要ならホスト124)によって実行されることができる。図4を参照すると、シーケンス400は動作402でもって開始する。動作402はそのアレイのための値「N」を決定する。これはそのアレイ中の各記憶装置に記憶され得るストリップの最大数であり、複数のストリップに対応するロジカル・ブロック・アドレス(LBA)によって識別される。一例として、アレイ状の記憶装置はその複数の記憶装置のうちの幾つか若しくは全てを1個ないし複数個の記憶装置グループ126a−dに含んでも良い。前述のとおり、その記憶装置は或る例ではハードディスクであってよい。
記憶装置のアレイの中の記憶装置に書き込まれ得るストリップの最大数Nを決定するために、記憶アダプタはそのアレイ中の各装置に問い合わせをし、そしてそのアレイ中の最少の容量の記憶装置がサポートできる最大値に等しいストリップの数Nをセットする。しかし、他の実施例ではその記憶アダプタがその最大値をもっと小さい値に制限しても良い。多くの例では、RAID中の全ての記憶装置が同じ記憶容量を有するので、利用できるストリップLBAの数も同じである。
各ストリップは多数のデータ・ブロックを含み、各データ・ブロックは対応するLBAに記憶される。ストリップの最初のブロックのLBAは、ストリップLBAと呼ばれる。例えば、各ストリップは64ブロックを含み、各ブロックが例えば512バイトのデータを含む。そのストリップ中の各データ・ブロックはその対応するストリップLBAにブロックのオフセット(ずれ乃至差分)を足した位置でアドレスされても良い。但し、ストリップLBAはそのストリップの最初のブロックのアドレスであり、そのオフセットはそのストリップLBAからターゲットのデータ・ブロックLBAまでのブロックの数である。典型的にはストリップが共通の長さを持つので、一つのストライドに於ける各ストリップの開始LBAはそのアレイ中の各記憶装置に対し同じ値を有する。従って、一つのストライドの全てのデータ・ブロックは、ターゲットの記憶装置(例えば、あるディスク)、そのストリップLBA及びオフセットを識別することによってアドレスすることができる。「ストリップLBAへの書き込み」という語句は手短に言えば、所与のストリップLBAで開始するそのストリップと関連するブロックの一部または前部への書き込みを説明するために使用することができる。
シーケンス400はまた動作404を含んでも良い。これは記憶装置のアレイ中に、新しいLBAへの書き込みの回数のカウントを維持するために、例えば1などの初期値にカウンタをセットすることを含む。
シーケンス400には、ランダムに入来する書き込みLBAと、アレイ中の記憶装置に書き込まれるようオーダーされたLBAとの間で1対1のマッピング(写像)を確立することを含む動作406がある。動作406は、或るマッピング・アルゴリズムをベースにしたもので良いマッピング・テーブルを準備することを含む。マッピング・テーブルを準備することはマッピング・テーブルを指定するという言い方もあり、キャッシュ中にスペースを確保することを含んでも良い。一例として、マッピング・テーブルはアダプタ・メモリに記憶されても良い。このアダプタ・メモリは不揮発性であっても良い。従ってもし記憶装置(ディスクなど)がリセットされてもマッピング・テーブルは失われない。
ランダムに入来する書き込みLBAと、アレイ中の記憶装置に書き込まれるようオーダーされたLBAとの間で1対1のマッピングを確立するために、循環コピーのために隣接したLBAを確保するアルゴリズムを使用してもよい。図5に示すアルゴリズムは、データとそのデータの1回循環コピーとを5個のディスク・アレイに書き込むためのアルゴリズムの例である。このようなアルゴリズムを用い、隣接するLBAが循環コピーのために確保されると、読み取り及び書き込みの効率が改良される。しかし、一般的には任意の1対1マッピング・アルゴリズムが使用される。図5について、s1j、s2j、s3j、s4j及びs5jが、Sj=s1j+s2J+s3j+s4j+s5jであるようなストライドSjの成分ストリップである。またLBAmはマッピング・アルゴリズム及びデーブル(図6参照)によって決定されるような、ストライドSjのためのマップされたLBAである。図5において、ストライドSjを書き込むということは、各ディスクの2個のストリップLBAに書き込むことを含む。但し第2のLBAに書き込まれるのは他のディスクに書き込まれたデータの循環コピーである。例えば、ディスク1上にストライドSjを書き込むときは、ストリップs1jが書き込まれ、そのロジカル・ブロック・アドレスはLBAmで始まる。ストリップs5jのコピーが書き込まれるが、そのアドレスはLBAm+1で始まる。ディスク2には、ストリップs2jが、LBAmで始まるアドレスに書き込まれ、ストリップs1jのコピーがLBAm+1で始まるアドレスに書き込まれる。ディスク2には、ストリップs2jが、LBAmで始まるアドレスに書き込まれ、ストリップs1jのコピーがLBAm+1で始まるアドレスに書き込まれる。ディスク2には、ストリップs2jが、LBAmで始まるアドレスに書き込まれ、ストリップs1jのコピーがLBAm+1で始まるアドレスに書き込まれる。ディスク2には、ストリップs2jが、LBAmで始まるアドレスに書き込まれ、ストリップs1jのコピーがLBAm+1で始まるアドレスに書き込まれる。ディスク3には、ストリップs3jが、LBAmで始まるアドレスに書き込まれ、ストリップs2jのコピーがLBAm+1で始まるアドレスに書き込まれる。ディスク4には、ストリップs4jが、LBAmで始まるアドレスに書き込まれ、ストリップs3jのコピーがLBAm+1で始まるアドレスに書き込まれる。ディスク5には、ストリップs5jが、LBAmで始まるアドレスに書き込まれ、ストリップs4jのコピーがLBAm+1で始まるアドレスに書き込まれる。スターティングLBAmは、各ストリップのブロックの数の関数である。一例として、ストライド1がLBA0で開始し、ストライド2がLBA128で開始することもできよう。図6は、図5に示すようなアルゴリズムに基づくLBAマッピング・テーブルを示す。これは各ストライドに於ける各ストリップの1回循環コピーを記憶するものであり、利用可能なストリップLBAの全てに対し先入れ先出し(FIFO)技法を用いている。
他の例として、図7はマッピング・アルゴリズムを示し、また図8は対応するマッピング・テーブルを示す。ここでは5個のディスク・アレイで2回循環のデータのコピーを記憶するのに、FIFO方式が使用されている。(他の実施例では2回より多くの循環コピーも記憶できる。)図7を参照すると、s1j、s2j、s3j、s4j及びs5jが、Sj=s1j+s2j+s3j+s4j+s5jというようなストライドSjの構成要素である。またLBAmは、マッピング・アルゴリズム及びマッピング・テーブルによって決定されるようなストライド SjのためのマップされたLBAである。図8を参照すると、ストライド Sjを書き込むことは、各ディスクに3個のLBAを書き込むことからなる。ここでその第2、第3のLBAに書き込まれるのは、他のディスクに書き込まれたストリップの循環コピーである。例えば、ディスク1では、ストライド Sjを書き込むとき、LBAmで始まるアドレスに s1jが書き込まれ、ストリップs5jのコピーがLBAm+1で始まるアドレスに書き込まれ、ストリップ s4jがLBAm+2で始まるアドレスに書き込まれる。ディスク2では、LBAmで始まるアドレスにs2jが書き込まれ、ストリップ s1jのコピーがLBAm+1で始まるアドレスに書き込まれ、ストリップ s5jがLBAm+2で始まるアドレスに書き込まれる。ディスク3では、LBAmで始まるアドレスにs3jが書き込まれ、ストリップ s2jのコピーがLBAm+1で始まるアドレスに書き込まれ、ストリップ s1jがLBAm+2で始まるアドレスに書き込まれる。ディスク4では、LBAmで始まるアドレスにs4jが書き込まれ、ストリップ s3jのコピーがLBAm+1で始まるアドレスに書き込まれ、ストリップ s2jがLBAm+2で始まるアドレスに書き込まれる。ディスク5では、LBAmで始まるアドレスにs5jが書き込まれ、ストリップ s4jのコピーがLBAm+1で始まるアドレスに書き込まれ、ストリップ s3jがLBAm+2で始まるアドレスに書き込まれる。
他の実施例では、マッピング・アルゴリズムが、1つのまたは一組の帯(band)の、入来する書き込みLBAのために、マップされたセットのLBAを確保しても良い。一例として、入来する書き込みLBA同士が互いに論理的に近いままになるような態様でLBAが確保されても良い。幾つかの例では、そのアルゴリズムは、特定のアプリケーションや特定のオペレーティング・システムとともに動作するように修正されても良い。この例では、LBAの帯域が確保され、確保された帯域にないLBAは例えばFIFO技法を用いても良い。図9は、最初の10個のLBAのために確保されたLBA帯域マッピングの例を示す。図10は、1回循環コピーのためのマッピング・テーブルを示す。そのテーブルでは図10に示す10個のLBAの帯域の確保されたマッピングとFIFOマッピングが組み合わされている。この例では、入来するLBAがすでにそのテーブルにないときだけマッピング・テーブルが更新される。このFIFOアルゴリズムは確保された帯域の外側にあるLBAのために使用される。確保された帯域を使用するという概念は1よりも多くの帯域に一般化され拡張されてもよい。
各ストライドのオリジナルと一つのコピーが記憶されるような実施例では、1次データのために利用可能なLBAの半分を確保(reserve)することと、データの循環コピーのために利用可能なLBAの半分を確保することとをその動作に含んでも良い。各ストライドのオリジナル及び2つのコピーが記憶される実施例の場合、1次データのために利用可能なLBAの三分の一を確保し、データの循環コピーのために利用可能なLBAの三分の二を確保することをその動作に含んでも良い。記憶スペースの確保は、図5乃至図10に示すアルゴリズム及びテーブルなど、1対1のマッピング・アルゴリズム及びテーブルを用いて装置アダプタDA1−8によって陰で実行されてもよい。クラスタ102、104から受け取ったデータを書き込め、というリクエストに応じ、記憶装置アダプタDA1−8はそのデータの1次コピー及び任意の2次コピーの書き込みを実行し、またそのマッピング・テーブルを利用して書き込まれたもの及び書き込まれたところを追跡することができる。
図4を再度参照すると、シーケンス400は書き込みコマンドを受け取ったか判断する動作408を含むことができる。もし書き込みコマンドを受け取っていなければ、書き込みコマンドを受け取るまで、動作408を反復する。もし書き込みコマンドを受け取れば、シーケンス400は、すでに書き込まれたことのないLBA(新しいLBA)にその書き込みがされるか判断することを含む動作410を含むことができる。すでに書き込まれたことのあるLBAに書き込みがされると判断すると、シーケンス400はマッピング・テーブルをチェックすることを含む動作412と、そのマッピング・テーブルに従ってそのストリップの書き込みをする、という書き込みの実行を含む動作413とを含むことができる。その書き込みの実行は、そのストライドに於けるストリップごとに、マッピング・テーブルに於いて指示されるLBAにストリップを書き込むことお含み、そしてもしその対応するコピー・フラグの値が「イエス(YES)」であれば、各ストリップの1個若しくは複数個の循環コピーをそのマッピング・テーブルで指示されるとおりに書き込むことも含む。
動作410に於いて、以前に書き込まれたことがないLBAに書き込みがされると判断されるなら、シーケンス400はそのカウンタを歩進することを含む動作414を含むことができる。シーケンス400は、入来するストリップLBAとマップされるストリップLBAとの間でそのマッピングを指示するようマッピング・テーブルを更新することを含む動作416を含むことができる。動作416はまたマッピング・テーブルでコピー・フラグのためのYES又はNOの値を、マッピング・テーブル中のその対応するエントリにセットすることを含んでも良い。YES又はNOの値をセットすることは、どちらの値をセットすべきか判断することを含んでも良い。一例として、コピー・フラグをNOという値にセットすべきであると判断することは、カウンタが無コピー(NO COPY)閾値に等しいかそれよりも大きい(「以上」ともいえる)値を有するか判断することを含む。一例として、無コピー閾値は、パーセント(割合)がマッピング・アルゴリズムの関数であるようなNというパーセントとなる値であっても良い。例えば、図6のマッピング・テーブルの場合、そのカウンタがN/2+1という値に達するとコピー・フラグをNOにセットすることになろう。シーケンス400は、そのコピー・フラグがそのカウンタの対応する値に対しYESかNOであるかを調べることを含む動作418を含んでも良い。もしコピー・フラグの値がYESであれば、そのシーケンス400は、そのストライドに於けるストリップごとに、そのストリップ及びそのストリップの循環コピーを、そのマッピング・テーブルで指示されるLBAに書き込むことを含む動作420を含むことができる。シーケンス400はそのカウンタがNに等しい値を有するか判断することを含むことができ、もしそうであれば、そのシーケンスは終了する。もしそうでなければ、動作408に続く。
動作418でコピー・フラグがそのカウンタの対応する値についてNOという値を有すると判断された場合、そのシーケンス400は、そのストライドの各ストリップについてそのマッピング・テーブルで指示されるストリップを書き込むが、そのストリップのコピーは書き込まないことを含む動作424を含むことができる。シーケンス400はそのカウンタがNに等しい値を有するか調べ、もしそうならそのシーケンスが終了し、もしそうでなければそのシーケンスが動作408に続くことを含む動作426を含むこともできる。
2.動作シーケンスの第2の例
図11は、記憶装置のアレイにデータを記憶する方法のシーケンス1100のフローチャートである。シーケンス1100の動作は、1個若しくは複数個の装置アダプタDA1−8、クラスタ102、クラスタ104(及びホスト124)のうちの1個又は複数個によって実行できる。図11に言及すると、シーケンス1100は動作1102を含み、ここから開始する。その動作1102は、記憶装置のアレイ中の各記憶装置について、それらの対応する論理ブロック・アドレス(LBA)により識別され、その記憶装置に記憶できるストリップLBAの合計数を調べることを含む。これはそのアレイにおける各記憶装置上のストリップLBAの合計数を調べるものと説明される。一例として、記憶装置のアレイは、1個もしくは複数個の記憶装置グループ126aーd中の幾つか又は全ての記憶装置を含むことができる。
シーケンス1100は、最小容量のアレイ中の記憶装置に記憶され得るストリップの最大数を識別する動作1104を含むことができる。これはまた最小容量のアレイ中の記憶装置上のストリップLBAの数を識別するとも説明できる。シーケンス1100そのアレイ中の最小容量の記憶装置に記憶され得るストリップの最大数に等しいパラメータNをセットすることを含む動作1106を含むことができる。これは、ストリップLBAの数に等しいNをセットする、とも説明できる。
各ストライドのオリジナル及び一つのコピーが記憶される幾つかの実施例では、1次データのために利用可能なストリップLBAの半分を確保し、データの循環コピーのために利用可能なストリップLBAの半分を確保する動作を含む。各ストライドのオリジナル及び2つのコピーが記憶される実施例の場合、1次データのために利用可能なストリップLBAの三分の一を確保し、データの循環コピーのために利用可能なストリップLBAの三分の二を確保する動作を含んでもよい。記憶装置スペースの確保は、例えば図5乃至図10に示すような、1対1のマッピング・アルゴリズム及びマッピング・テーブルを用い記憶装置アダプタDA1−8により陰で実行されることができる。一般的には、クラスタ102、104(又はホスト124)から受け取ったデータを書き込め、というリクエストに応じ、記憶装置アダプタDA1−8はそのデータの1次コピー及び任意の2次コピーの書き込みを実行し、またそのマッピング・テーブルを利用して書き込まれたもの及び書き込まれたところを追跡することができる。
このシーケンス1100は、記憶されるストライドSjの数jを識別する動作1108をも含んでよい。シーケンス1100は各ストリップのオリジナル及び一つのコピーが記憶される例の場合、2jがN−1以下か調べるなどの動作1110を含む。シーケンス1100に於いて2jがN−1以下であると決定されれば、そのシーケンス1100は1個若しくは複数の動作1112,1114,1116及び1118を含むことができる。動作1112は、ストリップs1jを、アレイ中の第1の記憶装置のLBA、例えばLBAj、及びアレイ中の第2の記憶装置のLBA、例えばLBAj+1に書き込むことを含む。一例として第1及び第2の記憶装置を記憶装置グループ126a−dに含むことができる。動作1114は、ストリップs2jを、例えばLBAj中の第2の記憶装置のLBA、例えばLBj+1、及びそのアレイの第3の記憶装置中のLBA、例えばLBAj+1に書き込むことを含むことができる。動作1116は、ストリップs3jを、そのアレイ中の第3の記憶装置のLBA、例えばLBAj、及びそのアレイ中の第4の記憶装置のLBA、例えばLBAj+1に書き込むことを含むことができる。ストリップs1j、s2j、s3jは動作1108で識別されるストライドjの構成要素であってよい。1個若しくは複数個のストリップs1j、s2j、s3jがパリティ・ストリップであっても良い。更に、もしストライドjが追加のストリップを有していれば、そのストライドj中に追加のストリップが記憶されても良い。例えば、ストリップs4jが、アレイ中の第4の記憶装置、例えばLBAj、及びそのアレイ中の第5の記憶装置のLBA、例えばLBAj+1に書き込まれ、ストリップs5jが、そのアレイ中の第5の記憶装置、例えばLBAj、及びアレイ中の第6の記憶装置のLBA、例えばLBAj+1に書き込まれ、そしてストリップs6jが、そのアレイ中の第6の記憶装置、例えばLBAj、及びそのアレイ中の第1の記憶装置のLBA、例えばLBAj+1に書き込まれても良い。ストリップs1j、s2j、s3j、s4j、s5j、s6jのうちの1個若しくは複数個がパリティ・ストリップであってよい。他の実施例で、ストライドjの3個のストリップより多かったる少なかったり、或いはストライドjの6個のストリップより多かったり少なかったりというものも、同様な態様、即ち各ストリップが2個以上の記憶装置に書き込まれるというように、記憶装置への書き込みが行なわれ得る。
動作1118は、アレイに記憶すべき追加のストライドがあるか調べる動作を含み、もしあれば動作1108乃至1118のうちの1つ又は複数の動作が再度実行され得る。もし動作1118で記憶すべき追加のストライドがないと決定されれば、そのシーケンス1100は終了することができる。
代替実施例で、動作1110は3jがN−1よりも小さいか調べてもよい。この代替実施例では、3jがN−1よりも小さいと判断されれば、シーケンス1110は動作1112、1114、1116、1118の代替実施例を含んでも良い。例えば、動作1112は、ストリップs1jを、そのアレイ中の第1の記憶装置のLBA、例えばLBAjに、そのアレイ中の第2の記憶装置のLBA、例えばLBAj+2に、そしてそのアレイ中の第3の記憶装置のLBA、例えばLBAj+1に書き込むことを含んでも良い。この代替実施例では、動作1114が、ストリップs2jを、第2の記憶装置中のLBA、例えばLBAjに、第3の記憶装置のLBA、例えば、LBAj+2、及びそのアレイ中の第4の記憶装置のLBA、例えばLBAj+1に書き込むことを含んでも良い。この代替実施例では、動作1116が、ストリップs3jを、第3の記憶装置中のLBA、例えばLBAjに、第4の記憶装置のLBA、例えば、LBAj+2に、そしてそのアレイ中の第5の記憶装置のLBA、例えばLBAj+1に書き込まれることを含んでも良い。この代替実施例では、ストライドj中の追加のストリップを同様の態様で記憶しても良い。例えば、ストリップs4jが、そのアレイ中の第4の記憶装置のLBA、例えばLBAjに、及びそのアレイ中の第5の記憶装置のLBA、例えばLBAj+2に、そしてそのアレイ中の第6の記憶装置のLBA、例えばLBAj+1に書き込まれ、ストリップs5jが、その第5の記憶装置のLBA、例えばLBAjに、及びそのアレイ中の第6の記憶装置のLBA、例えばLBAj+2に、そしてそのアレイ中の第1の記憶装置のLBA、例えばLBAj+1に書き込まれ、そしてストリップs6jが、その第6の記憶装置のLBA、例えばLBAjに、その第1の記憶装置のLBA、例えばLBAj+2に、その第1の記憶装置のLBA、例えばLBAj+1に、そしてその第2の記憶装置のLBA、例えばLBAj+1に書き込まれても良い。他の実施例では、ストライドjが有するストリップの数が3よりも大きかったり小さかったり(或いは6より大きかったり小さかったり)しても良い。そしてこれらの実施例ではストライドjのストリップが、動作1112、1114、1116で説明したような、各ストリップが3つの記憶装置に書き込まれるような態様で記憶装置に書き込まれても良い。他の代替実施例では、各ストライドの追加のコピーを同様な態様で記憶することができよう。動作1118は、そのアレイに記憶すべき追加のストライドがあるか調べることを含む。もしあれば、動作1108乃至1118のうちの1つ若しくはそれ以上の動作がこの実施例のために説明したように再度実行される。もし動作1118で記憶すべき追加のストライドがないと判断されれば、そのシーケンス11は終了しても良い。
各ストライドのオリジナルのコピー及び1個の追加のコピーが書き込まれることを説明した図11及び図12の主たる実施例に再度言及すると、もし動作1110で2jがN−1以下でないと判断するとき、そのシーケンス1100は動作1120、1122、1124、1126のうちの一つ若しくは複数を含むことができる。図12で、動作1120は、ストリップs1jを、第1の記憶装置のLBA、例えばLBA(2j−N+1)に書き込むことを含む。動作1122は、ストリップs2jを、第2の記憶装置のLBA、例えばLBA(2j−N+1)に書き込むことを含む。動作1124は、ストリップs3jを第3の記憶装置のLBA、例えばLBA(2j−N+1)に書き込むことを含む。もしストライドj中に追加のストリップがあれば、同様な態様で記憶されても良い。例えば、ストリップs4jが第4の記憶装置のLBA、例えばLBA(2j−N+1)に、ストリップs5jが第5の記憶装置のLBA、例えばLBA(2j−N+1)に、そしてs6jが第6の記憶装置のLBA、例えばLBA(2j−N+1)に書き込まれても良い。他の実施例では、ストライドjが有するストリップの数が3よりも大きかったり小さかったり(或いは6より大きかったり小さかったり)しても良い。そしてこれらの実施例ではストライドjのストリップが、動作1120、1122、1124で説明したような態様で記憶装置に書き込まれても良い。動作1126は、アレイに記憶すべき追加のストライドがあるか調べることを含む。もしあれば、動作1108−1126のうちの一つ又はそれ以上が再度実行される。もし記憶すべき追加のストライドがなければ、そのシーケンス1100は終了する。
3jがN−1よりも小さいか調べることを含む、動作1110の代替実施例に於いて、もし3jがN−1よりも小さくないなら、そのシーケンス1100は動作1120、1122、1124、1126の代替実施例を含むことができる。例えば、図12で、動作1120は、ストリップs1jを、第1の記憶装置のLBA、例えばLBA(3j−N+2)に書き込むことを含む。また代替実施例での動作1122は、ストリップs2jを、第2の記憶装置のLBA、例えばLBA(3j−N+2)に書き込むことを含んでも良い。また代替実施例での動作1124は、ストリップs3jを第3の記憶装置のLBA、例えばLBA(3j−N+2)に書き込むことを含んでも良い。もしストライドj中に追加のストリップがあれば、同様な態様で記憶されても良い。
例えば、ストリップs4jが第4の記憶装置のLBA、例えばLBA(3j−N+2)に、ストリップs5jが第5の記憶装置のLBA、例えばLBA(3j−N+2)に、そしてストリップs6jが第6の記憶装置のLBA、例えばLBA(3j−N+2)に書き込まれても良い。他の実施例では、ストライドjが有するストリップの数が3よりも大きかったり小さかったり(或いは6より大きかったり小さかったり)しても良い。そしてこれらの実施例ではストライドjのストリップが、この代替実施例のための動作1120、1122、1124で説明したような態様で記憶装置に書き込まれても良い。動作1126は、アレイに記憶すべき追加のストライドがあるか調べることを含む。もしあれば、この代替実施例のための動作1108−1126のうちの一つ又はそれ以上が再度実行される。もし記憶すべき追加のストライドがなければ、そのシーケンス1100は終了しても良い。
前述のシーケンスの一例を要約すると以下のとおりである。このプロセスは、N個の利用可能なLBAを有するm個のディスク・ドライブのアレイで実施されることができる。ここで各ストライドSは、パリティ・ストリップを含むm個のストリップ(s1、s2、...sm)からなり、Sj=(s1j+s2j+...+smj)である。新しいストライドSjはLBAjで始まるアドレスで書き込まれる。但しj=0,1,2,...N−1であり、Nはメタデータを含む、記録のために利用可能なLBAの数である。変数nが2jに等しくセットされても良い。そのデータを所望のパターンで記憶するために、もしnがN−1以下であれば、LBAnで始まって、s1j及びsmjをディスク1に書き込み、s2j及びs1jをディスク2に、...そしてsmj及びs(m−1)jをディスクmに書き込む。もしnがN−1よりも大きければ、LBA(n−N+1)で始まって、s1jをディスク1に、s2jをディスク2に、...そしてsmjをディスクmに書き込む。このプロセスは単なる一例であり、データ及びそのデータのコピーを書き込むパターンは、1対1のマッピングを有する他の記憶パターンとともに一般化されよう。
C 補足説明
本発明の異なる実施例で使用される2次のコピーは、種々の技法を用いて書き込むことができる。例えば、RAIDアレイに取り付けられた1個若しくは複数個の装置アダプタDA1−8がリアル・タイム・モードでそのアレイをコピーさせるのに使用されてもよい。リアル・タイムでは、装置アダプタ・バッファが従来のデータ・ストリップを保持し、そのアレイの構成要素(member)のためにターゲットとされるオリジナルのデータ・ストリップとともに対となるようにデステージするのに使用されても良い。新しい1次データ・ストライドは、新しいデータの二重のコピーを作る余分のスペースがないときは、そのコピーのストリップの最も古いものの上に書き込んだディスクも良い。更に各々の新しいストライドが逐次FIFO態様でそのコピーに以前に割り当てられていたスペースを侵略するのでもよい。コピーが重ね書きされた古いデータの1次ストライドには触れないままなので、基本RAIDコードにより提供されるRAID保護が尚も保証される。まだ重ね書きされていないコピーを持つ1次ストライドはもっと高い冗長度の保護を持ち続ける。最終的には、全てのコピー・ストライドが重ね書きされ、最小の基本RAID保護を残す。リアル・タイムでデータのコピーを書き込むよりは、RAIDアレイに取り付けられた1個若しくは複数個の装置アダプタDA1−8がバックグラウンド・モードでそのアレイをコピーさせるのに私用されても良い。バックグラウンド・モードでは、装置アダプタ1−8が各アレイの構成要素からストリップを読み取り、それらをオリジナルのストライドに対しシフト・シーケンスで書き込むことができる。
本発明の幾つかの例は、所与の数のディスクに跨るRAIDストライドの2個またはそれよりも高いセットのコピーをストライプピングすることを含む。各々の1次ストライドは、m個のシーケンシャルなストリップからなり、各々のストリップはそのアレイ中のm個のドライブのうちの一つに書き込まれる。そのストリップのうちの少なくとも一つは、その残りのストリップを例えばXORすることによって構成されるパリティ・ストリップであっても良い。1次ストライド中のストリップの2次コピーは、そのアレイ中のディスクの2次の準物理的なミラー(quasi-physical mirror(s))を提供するようにそのアレイ中のディスクに対し循環される。
図13は、RAID5がベース・アレイであるような6個のディスク・アレイのために各ストライドの一つのコピーが作られる本発明の実施例を示す。他のパリティRAIDスキーム(RAID51、ダブル・パリティなど)がこの冗長度を増進するよう強化されてもよい(或いは本発明の他の実施例に於ける二重または三重のミラーリングなどのようにもっと冗長度を上げても良い)。この1次の記憶ストライドはA、B、C...と指定され、そして1つのドライブによって循環されたストライドのコピーの、2次的なセットがA’、B、C...と指定される。従って、A’、B、C...は、それらの準備ができていない対応物A、B、Cのミラー・イメージである2次的なデータ・ストライドである。前述のとおり、追加のコピーを用いればもっと高い冗長度を得られる。例えば、第2(あるいは第3の)コピーはまた一つのドライブによって循環される(或いは他の幾つかの数のドライブによって循環される)。この例に於ける各ストライドは例えば、Apといったパリティ・ストリップを有する。Apはデータ・ストリップA1、A2、A3、A4及びA5に関するパリティ・ストリップを表す。従って、i=1,2,3,4,5に対するA1、B1、C1...は1次のデータ・ストリップであり、Ap、Bp、Cp...はこれに対応するパリティ・ストリップである。この例で、1次のストリップ、2次のストリップはともに、それぞれストレッチ1を有する(各々の連続するストライドは一つのディスクにより循環される)。しかし、例えばi=1,2,3,4,5に対する他のストレッチも使用できよう。
図14は、1個のディスクの故障後、喪失したデータを、パリティを用いずに再構成する例である。各喪失ストリップは、2次ストリップA’2、B’1、C’p.....から1次ストリップA2、B1、Cp、...を再構成しつつ隣接するドライブからコピーすることによってスペア・ドライブ上に再構成される。
図15は、2個の隣接しないディスクの故障後、パリティ再構成を用いずに再構成する例を示す。この図は任意の2個の隣接しない故障から復旧する能力を示すものであり、ベースRAID5よりも高いトレランス(耐故障性)を有することを示す。各ストリップは、隣接するドライブからコピーすることによってスペア・ドライブ上に再構成される。例えば、最初の1次ストリップ A2、B1、Cp...は、2次ストリップA’2、B’1、C’p.....から再構成され、その後第2のスペア上に1次ストリップA4、B3、C2、...を再構成する。この例では、故障したドライブが隣接していないので、パリティ・ストリップAp、Bp、Cpを用いてのデータ再構成は必要とされない。
図16は、2個の隣接するディスク故障後、パリティ再構成が使用される再構成の例である。この図は、故障が隣接する場合でさえ、任意の2個の故障から復旧する能力を示し、これは基本RAID5よりも高いトレランスである。この再構成は1個のスペア・ディスク・ドライブの1次ストリップに最小化されたパリティ再構成を用いる。図16に於ける説明(a)はアレイ中に2個の故障したドライブを示す。説明(b)は、隣接するドライブからコピーすることによって再構成される1次ストリップを示す。説明(c)は、パリティ再構成を用い、1次ストリップA2、B1、Cp...が再構成されることを示す。説明(d)は、隣接するスペアの2次ストリップA1、Bp、C5、...からコピーすることによって、隣接するハード・ディスク・ドライブ上に復旧される2次ストリップA’1、B’p、C’5、...を示す。説明(d)はまた2次ストリップA’2、B’1、C’p、...が,隣接するスペアの2次ストリップA2、B1、Cp、...を、隣接するハード・ディスク・ドライブ上にコピーすることによって普及されることを示す。
本発明の幾つかの例を、RAIDアレイ中の所与の数のディスクについてここで説明したが、1次のRAIDストライドの循環コピーを使用すると、基本RAIDよりも高いドライブ故障耐久性(冗長度)を提供する。本発明の幾つかの例はまた最適の冗長度を得るための自己チューニング・プロセスを提供する。これはドライブ・フォールト・トレランスを基本RAIDアレイよりも悪くないレベルに革新的に減じる。何故なら1次RAID記憶が2次コピー(他の実施例では3次または他の数のコピー)にオーバーラップするからである。本発明の幾つかの例は、基本RAIDシステムの場合よりも顧客データのもっと大きな自己保護を所与の数のディスクが提供するようなまた使用されるディスクのスペースの量が増えるにつれ自己保護をチューニングするような、そしてまた1またはそれ以上のドライブが故障したときに効果的な自己修復するようなオートノミック(自律的)RAIDシステムを提供する。
RAIDアレイに於ける所与の数のディスク・ドライブに対し、本発明の幾つかの例は、その上に基本RAIDコードにより提供される冗長度記録を通じてRAIDアレイの効果的なドライブ・フォールト・トレランスを増すように、自由ディスク・スペースを活用する。あるセット数のアレイ・ドライブに対しては、各RAIDコピーは基本RAIDよりも1つ多いドライブ・フォールト・トレランスを提供する。例えば、RAID5の基本コードを有する6個の部材のアレイに対しては、本発明が使用されないとき、1個よりも多くないドライブ部材が故障したときのみデータが復元されても良い。これに対し、循環RAIDストリップの一つのコピーがある本発明の例では、2個のドライブが故障するときでさえ、データを復元することができる。循環RAIDストリップの2個のコピーがセーブされる本発明の例では、3個のディスク故障が同時に生じる場合でさえ、データを復元することができる。
本発明の幾つかの例は、保護がもっとも必要なときであり、またもっとも利用可能な自由スペースがあるRAIDアレイの初期の利用中、一層高度なRAID保護を提供する。これは新しいディスク・アレイの初期の利用はデータ損失を受けやすい。何故なら、新しいハード・ディスク・ドライブ(HDD)の乳児死亡率は、そのドライブが多くのパワー・オン時間(POH)稼動して来た後のHDD故障率よりも高いからである。
本発明の幾つかの例は、そのアレイの所与の数のディスクに対し基本RAIDアレイの効果的な容量の100%の使用を許容する。このことは、基本RAIDコードのフォールト・トレランスに古い(顧客)データを徐々に曝すという代償をもたらす。このアレイ・ディスクのフォールト・トレランスはディスク・スペースの利用が増えるとともに単調減少するが、1次RAIDのフォールト・トレランスより下になることは決してない。従って、データの保護は、常に少なくとも基本RAIDコードの保護のレベルにはある。
本発明の幾つかの例では、最も古いデータで始まるデータの循環コピーは最終的には新しい(顧客)データによって重ね書きされる。従ってその1次データだけが残る。そのような1次データだけが残るデータのサブセットに対し、例えばRAID5はデータ復元のために一つのディスク故障のみを許容する。新しいデータによってまだ重ね書きされていない循環コピーに対するアレイ中のデータは、高いディスク・フォールト・トレランスをまだ有している。1次データのみが残っているデータのサブセットは、アレイの全てのデータ容量が使用されてしまうまで、そのアレイ中に追加の顧客データが記憶されるにつれ増えてゆく。ある例では、存在する2次コピーの位置にオペレーティング・システムが書き込みたいなら、且つまたそのディスクが一杯でないなら、記憶装置アダプタDA1−8がその存在する2次コピーを他の位置に移すか、又は記憶装置を、以前に記憶されていた2次コピーを読み出したり復元したりすることなく、あらかじめ記憶位置を割り当てし直すかもしれない。
RAID5に対する「単一ミラー」(ストリップごとの1回循環コピー)の保護を図17に示す。具体的には、図17は単一のミラーが使用される本発明の例に従う「オートノミックRAID5」に対し、任意の2個のハード・ディスク故障のために保護されるデータの割合(%)を示す。一般に、本発明の幾つかの例は「オートノミック顧客データ保護のためのRAID記憶」と呼ばれることもある。RAID5とともに使用されるとき、本発明の幾つかの例は「オートノミックRAID5」と呼ばれることもある。図17に示すように、利用可能なディスク・スペースの50%が使用されてしまうまで、すべてのデータのために2のディスク・フォールト・トレランスが存在する。これに対し、基本RAID5の故障保護は図17のゼロ%の水平線によって表されている。従って、この単一のミラーの例は最大2のディスク・フォールト・トレランスを提供する。これは基本RAID5の単一ディスク・フォールト・トレランスに対し顕著な改良である。
「二重ミラー」(各ストリップの2回循環コピー)のための保護を図18に示す。具体的には、図17は二重ミラーが使用されている本発明の実施例に従う「オートノミックRAID5」に対し任意の3のハード・ディスク・ドライブ故障からデータを保護する割合(%)を示す。図18に示すように、おおよそ33.3%の利用可能なディスク・スペースが使用されてしまうまで、3のディスク・フォールト・トレランスが全てのデータのために存在する。これに対し、基本RAID5の故障保護は図18の底部のゼロ%の水平線によって表される。従って、この二重ミラーの例は、最大3のディスク・フォールト・トレランスを提供する。これは基本RAID5の単一ディスク・フォールト・トレランスを顕著に越える改良である。
本発明の幾つかの例は、1個若しくはそれ以上の故障のイベントにおいて再構成時間を顕著に減らすことによって、再構成中の(顧客)データ損失に対して、更なるRAID堅牢性を提供する。一例として、データ損失は1個若しくはそれ以上のストリップの損失やアレイ損失の結果として生じることがある(これはキルストリップ(killstrip)とも呼ばれる)。本発明の実施例により提供される2次コピーは、パリティ復元を介して喪失した1次データを復元するのをなくすか、故障の回数に依存して、また故障が隣接するドライブで起こるかどうかに依存して、1次データを復元するのに使用されるパリティ復元の回数の必要性を顕著に減らす。本発明の幾つかの実施例は再構成時間を減らす。何故なら、ストライド中の生き残っているドライブの夫々のストリップを読み出し、そして喪失したストリップを復元するようXORすることによって、ホット・スペース上に生き残っているディスクからストリップをコピーするのに必要な時間が、パリティ再構成を介してそれぞれの喪失したストリップを再構成するのに必要な時間よりもはるかに短いからである。
本発明の幾つかの例はまた、読み出しリクエストに応答し、ドライブのうちの一つが遅い場合、データを読み出すために、プリエンプト再構成よりも早い。またデータの読み出しが早くなる。何故なら、1次ストリップとともに、ストライド中の残っているデータ・ストリップの全てを読み出し、その読み出したものと、応答の遅いストリップ中のデータを再構成するためのパリティ・ストリップとをXORするよりも早く、その喪失したストリップ中のデータのコピーを、隣接するドライブから読み出せるからである。
III.他の実施例
前述の開示で本発明の種々の実施例を示してきたが、ここで特許請求の範囲で規定した本発明の範囲から外れずに多様な変更や修正を為し得ることが当業者には明らかであろう。更に本発明の構成要素を説明や特許請求の範囲では単数形で説明しているかもしれないが、単数形に明示的に限定していない限り、複数形も意図していることを理解されたい。
本発明の実施例に従う記憶システムのハードウエア・コンポーネンツ及び相互接続を示すブロック図である。 本発明の実施例に従うコンピューティング装置のハードウエア・コンポーネンツ及び相互接続を示すブロック図である。 本発明の実施例に従う信号担持媒体の例である。 本発明の実施例に従うバックアップ・データのための動作シーケンスのフローチャートである。 本発明の実施例に従うストライド中のストリップの循環コピーを提供するためのマッピング・アルゴリズムである。 本発明の実施例に従うストライド中のストリップの循環コピーを提供するためのマッピング・テーブルである。 本発明の実施例に従うストライド中のストリップの2回循環コピーを提供するためのマッピング・アルゴリズムである。 本発明の実施例に従うストライド中のストリップの2つの循環コピーを提供するためのマッピング・テーブルである。 本発明の実施例に従う、確保されたLBA帯域マッピングのコピーである。 本発明の実施例に従うストライド中のストリップの循環コピーを提供するためのFIFOアルゴリズム及び確保された帯域を用いるマッピング・テーブルである。 本発明の実施例に従うバックアップ・データの動作シーケンスのフローチャートである。 本発明の実施例に従うバックアップ・データの動作シーケンスのフローチャートである。 本発明の実施例に従うディスク・アレイにデータ及びデータのコピーを記憶することを示す図である。 本発明の実施例に従うディスク・アレイにデータを再構築することを示す図である。 本発明の実施例に従うディスク・アレイにデータを再構築することを示す図である。 本発明の実施例に従うディスク・アレイにデータを再構築することを示す図である。 1回循環コピーを備えた本発明の実施例に従う任意の2個のハードディスク・ドライブ故障のために保護されたデータのパーセンテージを示すグラフである。 2回循環コピーを備えた本発明の実施例に従う任意の3個のハードディスク・ドライブ故障のために保護されたデータのパーセンテージを示すグラフである。

Claims (39)

  1. 複数の記憶装置からなるアレイにデータを記憶するための方法であって、
    第1のストリップを、第1の記憶装置及び第2の記憶装置に書き込むステップと、
    第2のストリップを、前記第2の記憶装置及び第3の記憶装置に書き込むステップと、
    第3のストリップを、前記第3の記憶装置及び第4の記憶装置に書き込むステップと
    を含む方法。
  2. 前記第1のストリップ、前記第2のストリップ及び前記第3のストリップが、一つのストライドの構成要素である、請求項1に記載の方法。
  3. 記憶装置の前記アレイのための最大のストリップLBAを決定するステップと、
    1次データのために利用可能なストリップLBAの半分を確保するステップと、
    データの循環コピーのために利用可能なストリップLBAの半分を確保するステップと
    を含む請求項1又は2に記載の方法。
  4. 第1のストリップを、第1の記憶装置、第2の記憶装置及び第3の記憶装置に書き込むステップと、
    第2のストリップを、前記第2の記憶装置、前記第3の記憶装置及び第4の記憶装置に書き込むステップと、
    第3のストリップを、前記第3の記憶装置、前記第4の記憶装置及び第5の記憶装置に書き込むステップと
    を含む請求項1又は2に記載の方法。
  5. 記憶装置のアレイのために最大のストリップLBAを決定するステップと、
    1次データのために利用可能なストリップLBAのうちの33パーセントを確保するステップと、
    データの循環コピーのために利用可能なストリップLBAのうちの66パーセントを確保するステップと
    を更に含む請求項4に記載の方法。
  6. 記憶装置のアレイ中の各記憶装置が少なくともN個のストリップLBAを有するとして、そのパラメータNのための値をセットするステップと、
    記憶されるストライドの数jを識別するステップと、
    2jがN−1以下であるか判断し、
    もしそうであれば、
    ストリップs1jを、前記アレイの前記第1の記憶装置中のLBA及び前記アレイの第2の記憶装置中のLBAに書き込むステップと、
    ストリップs2jを、前記第2の記憶装置中のLBA及び前記アレイの前記第3の記憶装置中のLBAに書き込むステップと、
    ストリップs3jを、前記第3の記憶装置中のLBA及び前記アレイの前記第4の記憶装置中のLBAに書き込むステップと
    を更に含む請求項1又は2に記載の方法。
  7. もし2jがN−1以下でないと判断されるなら、
    ストリップs1jを、前記第1の記憶装置のLBAに書き込むステップと、
    ストリップs2jを、前記第2の記憶装置のLBAに書き込むステップと、
    ストリップs3jを、前記第3の記憶装置のLBAに書き込むステップと
    を含む、請求項6に記載の方法。
  8. 記憶装置のアレイ中の記憶装置ごとにその記憶装置のストリップLBAの合計数を決定するステップと、
    前記ストリップLBAの最小の合計数を識別するステップとを更に含み、
    パラメータNのための値をセットする動作が、ストリップLBAの最小の合計数に等しいNをセットすることである、請求項6又は7に記載の方法。
  9. もし2jがN−1以下であると判断されるなら、
    ストリップs4jを、前記第4の記憶装置中のLBA及び前記アレイ中の第5の記憶装置中のLBAに書き込むステップと、
    ストリップs5jを、前記第5の記憶装置中のLBA及び前記アレイ中の第6の記憶装置中のLBAに書き込むステップと、
    ストリップs6jを、前記第6の記憶装置中のLBA及び前記第1の記憶装置中のLBAに書き込むステップと
    を含む、請求項6乃至8のいずれか1項に記載の方法。
  10. もし2jがN−1以下でないと判断されるなら、
    ストリップs4jを、前記第4の記憶装置のLBAに書き込むステップと、
    ストリップs5jを、前記第5の記憶装置のLBAに書き込むステップと、
    ストリップs6jを、前記第6の記憶装置のLBAに書き込むステップと
    を含む、請求項6乃至8のいずれか1項に記載の方法。
  11. ストリップs1jを、前記アレイ中の前記第1の記憶装置中のストリップLBAj及び前記アレイの第2の記憶装置中のストリップLBAj+1に書き込むステップと、
    ストリップs2jを、前記第2の記憶装置中のストリップLBAj及び前記アレイ中の前記第3の記憶装置中のLBAjに書き込むステップと、
    ストリップs3jを、前記第3の記憶装置中のストリップLBAj及び前記アレイの前記第4の記憶装置中のストリップLBAj+1に書き込むステップと
    を更に含む、請求項6乃至10のいずれか1項に記載の方法。
  12. もし2jがN−1以下ではないと判断されるなら、
    ストリップs1jを、前記第1の記憶装置中のストリップLBA(2j−N+1)に書き込むステップと、
    ストリップs2jを、前記第2の記憶装置中のストリップLBA(2j−N+1)に書き込むステップと、
    ストリップs3jを、前記第3の記憶装置中のストリップLBA(2j−N+1)に書き込むステップと
    を更に含む請求項11に記載の方法。
  13. もし2jがN−1以下であると判断されるなら、
    ストリップs4jを、前記アレイ中の前記第4の記憶装置中のストリップLBAj及び第5の記憶装置中のLBAj+1に書き込むステップと、
    ストリップs5jを、前記アレイ中の前記第5の記憶装置中のストリップLBAj及び第6の記憶装置中のストリップLBAj+1に書き込むステップと、
    ストリップs6jを、前記アレイ中の前記第6の記憶装置中のストリップLBAj及び前記第1の記憶装置中のストリップLBAj+1に書き込むステップと
    を含む、請求項11に記載の方法。
  14. もし2jがN−1以下ではないと判断されるなら、
    ストリップs4jを、前記第4の記憶装置中のストリップLBA(2j−N+1)に書き込むステップと、
    ストリップs5jを、前記第5の記憶装置中のストリップLBA(2j−N+1)に書き込むステップと、
    ストリップs6jを、前記第6の記憶装置中のストリップLBA(2j−N+1)に書き込むステップと
    を更に含む請求項11に記載の方法。
  15. マッピング・テーブルを確立するステップと、
    書き込みコマンドを受け取るステップと、
    コピー・フラグがYES値を有するか判断するステップと、
    もしそうなら、ストライドの各ストリップを、前記マッピング・テーブルに従って、記憶装置のアレイ中の少なくとも一つの対応する記憶装置に書き込むステップと、
    もしそうでないなら、前記ストライドの各ストリップを、前記マッピング・テーブルに従って、記憶装置のアレイ中の対応する記憶装置に書き込むステップと
    を含む、請求項6乃至14のいずれか1項に記載の方法。
  16. 前記マッピング・テーブルを更新するステップを更に含み、
    前期更新するステップは、コピー・フラグがNO値にセットされるべきであるか判断するステップを更に含む、請求項15に記載の方法。
  17. カウンタを初期値にセットするステップと、
    書き込みコマンドを受け取った後に前記カウンタを歩進させるステップと
    を更に含む、請求項15又は16に記載の方法。
  18. コピー・フラグがNO値にセットされるべきか判断する前記ステップは、カウンタが無コピー閾値よりも小さくない値を有するか判断するステップを含む、請求項17に記載の方法。
  19. 無コピー閾値がマッピング・アルゴリズムの関数であるNのパーセントである、請求項15乃至17のいずれか1項に記載の方法。
  20. 複数の記憶装置からなるアレイにデータを記憶するための記憶システムであって、
    第1のストリップを、第1の記憶装置及び第2の記憶装置に書き込むステップと、
    第2のストリップを、前記第2の記憶装置及び第3の記憶装置に書き込むステップと、
    第3のストリップを、前記第3の記憶装置及び第4の記憶装置に書き込むステップと
    を含む記憶システム。
  21. 前記第1のストリップ、前記第2のストリップ及び前記第3のストリップが一つのストライドの構成要素である、請求項20に記載のシステム。
  22. 記憶装置の前記アレイのための最大のストリップLBAを決定する手段と、
    1次データのために利用可能なストリップLBAの半分を確保する手段と、
    データの循環コピーのために利用可能なストリップLBAの半分を確保する手段と
    を含む請求項20又は21に記載のシステム。
  23. 第1のストリップを、第1の記憶装置、第2の記憶装置及び第3の記憶装置に書き込む手段と、
    第2のストリップを、前記第2の記憶装置、前記第3の記憶装置及び第4の記憶装置に書き込む手段と、
    第3のストリップを、前記第3の記憶装置、前記第4の記憶装置及び第5の記憶装置に書き込む手段と
    を含む請求項20又は21に記載のシステム。
  24. 記憶装置のアレイのために最大のストリップLBAを決定する手段と、
    1次データのために利用可能なストリップLBAのうちの33パーセントを確保する手段と、
    データの循環コピーのために利用可能なストリップLBAのうちの66パーセントを確保する手段と
    を更に含む請求項23に記載のシステム。
  25. 記憶装置のアレイ中の各記憶装置が少なくともN個のストリップLBAを有するとして、そのパラメータNのための値をセットする手段と、
    記憶されるストライドの数jを識別する手段と、
    2jがN−1以下であるか判断する手段と、
    もしそうであれば、
    ストリップs1jを、前記アレイの前記第1の記憶装置中のLBA及び前記アレイの第2の記憶装置中のLBAに書き込む手段と、
    ストリップs2jを、前記第2の記憶装置中のLBA及び前記アレイの前記第3の記憶装置中のLBAに書き込む手段と、
    ストリップs3jを、前記第3の記憶装置中のLBA及び前記アレイの前記第4の記憶装置中のLBAに書き込む手段と
    を更に含む請求項20又は21に記載のシステム。
  26. もし2jがN−1以下でないと判断されるなら、
    ストリップs1jを、前記第1の記憶装置のLBAに書き込む手段と、
    ストリップs2jを、前記第2の記憶装置のLBAに書き込む手段と、
    ストリップs3jを、前記第3の記憶装置のLBAに書き込む手段と
    を含む、請求項25に記載のシステム。
  27. 記憶装置のアレイ中の記憶装置ごとにその記憶装置のストリップLBAの合計数を決定する手段と、
    前記ストリップLBAの最小の合計数を識別する手段とを更に含み、
    パラメータNのための値をセットする手段が、ストリップLBAの最小の合計数に等しいNをセットする手段を含む、請求項25又は26に記載のシステム。
  28. もし2jがN−1以下であると判断されるなら、
    ストリップs4jを、前記第4の記憶装置中のLBA及び前記アレイ中の第5の記憶装置中のLBAに書き込む手段と、
    ストリップs5jを、前記第5の記憶装置中のLBA及び前記アレイ中の第6の記憶装置中のLBAに書き込む手段と、
    ストリップs6jを、前記第6の記憶装置中のLBA及び前記第1の記憶装置中のLBAに書き込む手段と
    を含む、請求項25乃至27のいずれか1項に記載のシステム。
  29. もし2jがN−1以下でないと判断されるなら、
    ストリップs4jを、前記第4の記憶装置のLBAに書き込む手段と、
    ストリップs5jを、前記第5の記憶装置のLBAに書き込む手段と、
    ストリップs6jを、前記第6の記憶装置のLBAに書き込む手段と
    を含む、請求項25乃至27のいずれか1項に記載のシステム。
  30. ストリップs1jを、前記アレイ中の前記第1の記憶装置中のストリップLBAj及び前記アレイの第2の記憶装置中のストリップLBAj+1に書き込む手段と、
    ストリップs2jを、前記第2の記憶装置中のストリップLBAj及び前記アレイ中の前記第3の記憶装置中のLBAjに書き込む手段と、
    ストリップs3jを、前記第3の記憶装置中のストリップLBAj及び前記アレイの前記第4の記憶装置中のストリップLBAj+1に書き込む手段と
    を更に含む、請求項25乃至29のいずれか1項に記載のシステム。
  31. もし2jがN−1以下ではないと判断されるなら、
    ストリップs1jを、前記第1の記憶装置中のストリップLBA(2j−N+1)に書き込む手段と、
    ストリップs2jを、前記第2の記憶装置中のストリップLBA(2j−N+1)に書き込む手段と、
    ストリップs3jを、前記第3の記憶装置中のストリップLBA(2j−N+1)に書き込む手段と
    を更に含む請求項30に記載のシステム。
  32. もし2jがN−1以下であると判断されるなら、
    ストリップs4jを、前記アレイ中の前記第4の記憶装置中のストリップLBAj及び第5の記憶装置中のLBAj+1に書き込む手段と、
    ストリップs5jを、前記アレイ中の前記第5の記憶装置中のストリップLBAj及び第6の記憶装置中のストリップLBAj+1に書き込む手段と、
    ストリップs6jを、前記アレイ中の前記第6の記憶装置中のストリップLBAj及び前記第1の記憶装置中のストリップLBAj+1に書き込む手段と
    を含む、請求項30に記載のシステム。
  33. もし2jがN−1以下ではないと判断されるなら、
    ストリップs4jを、前記第4の記憶装置中のストリップLBA(2j−N+1)に書き込む手段と、
    ストリップs5jを、前記第5の記憶装置中のストリップLBA(2j−N+1)に書き込む手段と、
    ストリップs6jを、前記第6の記憶装置中のストリップLBA(2j−N+1)に書き込む手段と
    を更に含む請求項30に記載のシステム。
  34. マッピング・テーブルを確立する手段と、
    書き込みコマンドを受け取る手段と、
    コピー・フラグがYES値を有するか判断する手段と、
    もしそうなら、ストライドの各ストリップを、前記マッピング・テーブルに従って、記憶装置のアレイ中の少なくとも一つの対応する記憶装置に書き込む手段と、
    もしそうでないなら、前記ストライドの各ストリップを、前記マッピング・テーブルに従って、記憶装置のアレイ中の対応する記憶装置に書き込む手段と
    を含む、請求項25乃至33のいずれか1項に記載のシステム。
  35. 前記マッピング・テーブルを更新する手段を更に含み、
    前期更新する手段は、コピー・フラグがNO値にセットされるべきであるか判断する手段を更に含む、請求項34に記載のシステム。
  36. カウンタを初期値にセットする手段と、
    前記書き込みコマンドを受け取った後に前記カウンタを歩進させる手段と
    を更に含む、請求項34又は35に記載のシステム。
  37. コピー・フラグがNO値にセットされるべきか判断する前記手段が、カウンタが無コピー閾値よりも小さくない値を有するか判断する手段を含む、請求項36に記載のシステム。
  38. 無コピー閾値がマッピング・アルゴリズムの関数であるNのパーセントである、請求項34乃至37のいずれか1項に記載のシステム。
  39. 前記プログラムがコンピュータで実行されるとき、請求項1乃至19のいずれか1項に記載のステップ全てを実行するよう適用されたプログラム・コードを含むコンピュータ・プログラム。
JP2007512165A 2004-05-06 2005-04-26 追加的および自律的な保護の機能を備えた複数の記憶装置からなるアレイにデータを記憶するための方法およびシステム Expired - Fee Related JP4521443B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/842,047 US7188212B2 (en) 2004-05-06 2004-05-06 Method and system for storing data in an array of storage devices with additional and autonomic protection
PCT/EP2005/051862 WO2005109167A2 (en) 2004-05-06 2005-04-26 Method and system for storing data in an array of storage devices with additional and autonomous protection

Publications (3)

Publication Number Publication Date
JP2007536658A true JP2007536658A (ja) 2007-12-13
JP2007536658A5 JP2007536658A5 (ja) 2009-07-23
JP4521443B2 JP4521443B2 (ja) 2010-08-11

Family

ID=35159873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007512165A Expired - Fee Related JP4521443B2 (ja) 2004-05-06 2005-04-26 追加的および自律的な保護の機能を備えた複数の記憶装置からなるアレイにデータを記憶するための方法およびシステム

Country Status (6)

Country Link
US (2) US7188212B2 (ja)
EP (1) EP1754151A2 (ja)
JP (1) JP4521443B2 (ja)
KR (1) KR100992024B1 (ja)
CN (1) CN100530116C (ja)
WO (1) WO2005109167A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188212B2 (en) * 2004-05-06 2007-03-06 International Business Machines Corporation Method and system for storing data in an array of storage devices with additional and autonomic protection
US7350102B2 (en) * 2004-08-26 2008-03-25 International Business Machine Corporation Cost reduction schema for advanced raid algorithms
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
JP5055125B2 (ja) * 2004-11-05 2012-10-24 ドロボ, インコーポレイテッド 種々のサイズの格納デバイスを許容する動的にアップグレード可能な故障許容格納システムおよび方法
US20060117132A1 (en) * 2004-11-30 2006-06-01 Microsoft Corporation Self-configuration and automatic disk balancing of network attached storage devices
US20070103671A1 (en) * 2005-11-08 2007-05-10 Honeywell International Inc. Passive-optical locator
JP2008097053A (ja) * 2006-10-05 2008-04-24 Hitachi Global Storage Technologies Netherlands Bv ネットワークを介して接続された複数のデータ記憶装置を含むシステム及びそれに使用されるデータ記憶装置
JP5214474B2 (ja) 2007-02-16 2013-06-19 パナソニック株式会社 分散情報配布装置、保持装置、認証局装置及びシステム
US7827434B2 (en) * 2007-09-18 2010-11-02 International Business Machines Corporation Method for managing a data storage system
US8234444B2 (en) * 2008-03-11 2012-07-31 International Business Machines Corporation Apparatus and method to select a deduplication protocol for a data storage library
US8402213B2 (en) * 2008-12-30 2013-03-19 Lsi Corporation Data redundancy using two distributed mirror sets
US8560879B1 (en) * 2009-04-22 2013-10-15 Netapp Inc. Data recovery for failed memory device of memory device array
US8635184B2 (en) * 2009-06-25 2014-01-21 Emc Corporation System and method for providing long-term storage for data
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US8234520B2 (en) 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US8230189B1 (en) * 2010-03-17 2012-07-24 Symantec Corporation Systems and methods for off-host backups of striped volumes
US8417989B2 (en) * 2010-10-15 2013-04-09 Lsi Corporation Method and system for extra redundancy in a raid system
KR101778782B1 (ko) * 2011-04-08 2017-09-27 삼성전자주식회사 데이터 저장 장치 및 그것의 동작 방법
US8806296B1 (en) 2012-06-27 2014-08-12 Amazon Technologies, Inc. Scheduled or gradual redundancy encoding schemes for data storage
US8850288B1 (en) 2012-06-27 2014-09-30 Amazon Technologies, Inc. Throughput-sensitive redundancy encoding schemes for data storage
US8869001B1 (en) 2012-06-27 2014-10-21 Amazon Technologies, Inc. Layered redundancy encoding schemes for data storage
US9110797B1 (en) * 2012-06-27 2015-08-18 Amazon Technologies, Inc. Correlated failure zones for data storage
US20140208005A1 (en) * 2013-01-22 2014-07-24 Lsi Corporation System, Method and Computer-Readable Medium for Providing Selective Protection and Endurance Improvements in Flash-Based Cache
US9477679B2 (en) * 2013-09-20 2016-10-25 Google Inc. Programmatically choosing preferred storage parameters for files in large-scale distributed storage systems
US9411817B2 (en) * 2013-09-23 2016-08-09 Google Inc. Programmatically choosing preferred storage parameters for files in large-scale distributed storage systems based on desired file reliability or availability
CN104007936B (zh) * 2014-01-07 2017-09-29 华为技术有限公司 访问数据的方法及装置
US9575853B2 (en) 2014-12-12 2017-02-21 Intel Corporation Accelerated data recovery in a storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265359A (ja) * 1996-03-28 1997-10-07 Hitachi Ltd ディスクアレイシステムおよびディスクアレイシステムの制御方法
JP2001035080A (ja) * 1999-07-19 2001-02-09 Toshiba Corp ディスク制御装置および記録媒体
US20030225794A1 (en) * 2002-05-29 2003-12-04 Paul Soulier Methods and structure for multi-drive mirroring in a resource constrained raid controller
JP2006133842A (ja) * 2004-11-02 2006-05-25 Nec Corp ディスクアレイ・サブシステム、ディスクアレイ・サブシステムにおける分散配置方法、制御方法、プログラム

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265098A (en) 1990-08-03 1993-11-23 International Business Machines Corporation Method and means for managing DASD array accesses when operating in degraded mode
US5392290A (en) 1992-07-30 1995-02-21 International Business Machines Corporation System and method for preventing direct access data storage system data loss from mechanical shock during write operation
US5537567A (en) 1994-03-14 1996-07-16 International Business Machines Corporation Parity block configuration in an array of storage devices
US5666512A (en) 1995-02-10 1997-09-09 Hewlett-Packard Company Disk array having hot spare resources and methods for using hot spare resources to store user data
US5737344A (en) 1995-05-25 1998-04-07 International Business Machines Corporation Digital data storage with increased robustness against data loss
JPH09305328A (ja) 1996-05-13 1997-11-28 Fujitsu Ltd ディスクアレイ装置
US5991411A (en) 1996-10-08 1999-11-23 International Business Machines Corporation Method and means for limiting adverse use of counterfeit credit cards, access badges, electronic accounts or the like
US5896493A (en) 1997-01-17 1999-04-20 Dell Usa, L.P. Raid algorithm using a multimedia functional unit
US5974503A (en) 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US5991804A (en) 1997-06-20 1999-11-23 Microsoft Corporation Continuous media file server for cold restriping following capacity change by repositioning data blocks in the multiple data servers
JPH1153235A (ja) 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP3548529B2 (ja) 1997-08-20 2004-07-28 パワークエスト・コーポレーション イメージ形成中のコンピュータ・パーティション操作
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
US6101615A (en) 1998-04-08 2000-08-08 International Business Machines Corporation Method and apparatus for improving sequential writes to RAID-6 devices
JP2000039970A (ja) 1998-07-24 2000-02-08 Nec Software Kobe Ltd ディスクアレイシステムの二重障害防止制御方式
US6799283B1 (en) 1998-12-04 2004-09-28 Matsushita Electric Industrial Co., Ltd. Disk array device
US6321345B1 (en) 1999-03-01 2001-11-20 Seachange Systems, Inc. Slow response in redundant arrays of inexpensive disks
US6513093B1 (en) 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
US6546499B1 (en) * 1999-10-14 2003-04-08 International Business Machines Corporation Redundant array of inexpensive platters (RAIP)
US6526478B1 (en) 2000-02-02 2003-02-25 Lsi Logic Corporation Raid LUN creation using proportional disk mapping
US7155569B2 (en) * 2001-02-28 2006-12-26 Lsi Logic Corporation Method for raid striped I/O request generation using a shared scatter gather list
US6961727B2 (en) 2001-03-15 2005-11-01 International Business Machines Corporation Method of automatically generating and disbanding data mirrors according to workload conditions
US6954824B2 (en) * 2001-10-15 2005-10-11 International Business Machines Corporation Method, system, and program for determining a configuration of a logical array including a plurality of storage devices
US6785771B2 (en) * 2001-12-04 2004-08-31 International Business Machines Corporation Method, system, and program for destaging data in cache
DE10159902C2 (de) * 2001-12-06 2003-12-18 Bt Baubedarf Magdeburg Gmbh Positionierhilfe
US20030120869A1 (en) 2001-12-26 2003-06-26 Lee Edward K. Write-back disk cache management
US6771271B2 (en) 2002-06-13 2004-08-03 Analog Devices, Inc. Apparatus and method of processing image data
US6898668B2 (en) 2002-06-24 2005-05-24 Hewlett-Packard Development Company, L.P. System and method for reorganizing data in a raid storage system
US6848022B2 (en) * 2002-10-02 2005-01-25 Adaptec, Inc. Disk array fault tolerant method and system using two-dimensional parity
US6792391B1 (en) 2002-11-15 2004-09-14 Adeptec, Inc. Method and system for three disk fault tolerance in a disk array
US7188270B1 (en) * 2002-11-21 2007-03-06 Adaptec, Inc. Method and system for a disk fault tolerance in a disk array using rotating parity
US7093159B1 (en) * 2002-12-12 2006-08-15 Adaptec, Inc. Method and system for four disk fault tolerance in a disk array
US7231493B2 (en) 2004-01-09 2007-06-12 Dell Products L.P. System and method for updating firmware of a storage drive in a storage network
US7188212B2 (en) * 2004-05-06 2007-03-06 International Business Machines Corporation Method and system for storing data in an array of storage devices with additional and autonomic protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265359A (ja) * 1996-03-28 1997-10-07 Hitachi Ltd ディスクアレイシステムおよびディスクアレイシステムの制御方法
JP2001035080A (ja) * 1999-07-19 2001-02-09 Toshiba Corp ディスク制御装置および記録媒体
US20030225794A1 (en) * 2002-05-29 2003-12-04 Paul Soulier Methods and structure for multi-drive mirroring in a resource constrained raid controller
JP2006133842A (ja) * 2004-11-02 2006-05-25 Nec Corp ディスクアレイ・サブシステム、ディスクアレイ・サブシステムにおける分散配置方法、制御方法、プログラム

Also Published As

Publication number Publication date
JP4521443B2 (ja) 2010-08-11
US20070083709A1 (en) 2007-04-12
EP1754151A2 (en) 2007-02-21
US7437508B2 (en) 2008-10-14
WO2005109167A3 (en) 2006-07-20
KR20070009660A (ko) 2007-01-18
CN1950801A (zh) 2007-04-18
CN100530116C (zh) 2009-08-19
US20050251619A1 (en) 2005-11-10
KR100992024B1 (ko) 2010-11-05
US7188212B2 (en) 2007-03-06
WO2005109167A2 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
JP4521443B2 (ja) 追加的および自律的な保護の機能を備えた複数の記憶装置からなるアレイにデータを記憶するための方法およびシステム
US7093157B2 (en) Method and system for autonomic protection against data strip loss
US8839028B1 (en) Managing data availability in storage systems
US8086937B2 (en) Method for erasure coding data across a plurality of data stores in a network
JP2959901B2 (ja) 記憶装置の冗長アレイおよびオンライン再構成方法
US8065558B2 (en) Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance
US7069382B2 (en) Method of RAID 5 write hole prevention
JP3226370B2 (ja) 高可用度ディスク配列に関する改善
US6751136B2 (en) Drive failure recovery via capacity reconfiguration
CN100390745C (zh) 在处理数据时检验数据完整性的装置及方法
US20050086429A1 (en) Method, apparatus and program for migrating between striped storage and parity striped storage
US20020035666A1 (en) Method and apparatus for increasing raid write performance by maintaining a full track write counter
US20070088990A1 (en) System and method for reduction of rebuild time in raid systems through implementation of striped hot spare drives
TWI501080B (zh) 用於價廉磁碟冗餘陣列(raid)磁卷與磁碟群組之間的鬆動連結之系統與方法
US7886184B2 (en) Multiple sourcing storage devices for ultra reliable mirrored storage subsystems
CN107515726B (zh) 用于管理存储设备的方法和系统
JP2001147785A (ja) データを管理する方法
JP2000511318A (ja) 階層記憶管理システムのための変換式raid
US7308532B1 (en) Method for dynamically implementing N+K redundancy in a storage subsystem
JP3288724B2 (ja) ディスクアレイ内の不完全な書込を追跡する方法、およびこのような方法を行なうディスク記憶システム
US7590780B2 (en) Method and computer program product to migrate legacy data to a RAID array while contemporaneously providing user access to legacy data
US20060059304A1 (en) Apparatus, system, and method for servicing a data storage device
JP2005044213A (ja) ディスク制御装置及び冗長化論理ディスクドライブの一貫性回復方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080321

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080321

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090417

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090605

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090911

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100406

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100422

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100518

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

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140528

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees