JP3242671B2 - レベル5raidディスクアレイの記憶容量を高める方法、およびこのような方法によって作られる拡張アレイ - Google Patents

レベル5raidディスクアレイの記憶容量を高める方法、およびこのような方法によって作られる拡張アレイ

Info

Publication number
JP3242671B2
JP3242671B2 JP54856398A JP54856398A JP3242671B2 JP 3242671 B2 JP3242671 B2 JP 3242671B2 JP 54856398 A JP54856398 A JP 54856398A JP 54856398 A JP54856398 A JP 54856398A JP 3242671 B2 JP3242671 B2 JP 3242671B2
Authority
JP
Japan
Prior art keywords
block
array
disks
parity
blocks
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
JP54856398A
Other languages
English (en)
Other versions
JP2000511322A (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 JP2000511322A publication Critical patent/JP2000511322A/ja
Application granted granted Critical
Publication of JP3242671B2 publication Critical patent/JP3242671B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1052RAID padding, i.e. completing a redundancy group with dummy data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

【発明の詳細な説明】 発明の背景: この発明は、レベル5RAIDディスクアレイの記憶容量
を高める方法と、このような方法によって作られる拡張
アレイとに関する。
先行技術において、「RAID」ディスクアレイという用
語は安価なディスクの冗長アレイを意味するものと定義
されており、いくつかの異なるRAIDディスクアレイが定
義されている。これらはレベル1RAIDディスクアレイ、
レベル3RAIDディスクアレイおよびレベル5RAIDディスク
アレイを含む。パターソン他(Patterson,et al.)によ
る「安価なディスクによる冗長アレイ(RAID)につい
て」(“A Case for Redundant Arrays of Inexpensive
Disks(RAID)”)、報告書番号第UCB/CSD 87/391
号、1987年12月、カリフォルニア大学バークレー校コン
ピュータサイエンス学部(Computer Science Divisio
n of the University of California at Berkel
ey)を参照されたい。
レベル5RAIDディスクアレイでは、パリティおよびデ
ータの両方が1組のいくつかのディスクにまたがってス
トライピングされる。図1は、ディスク0、ディスク1
およびディスク2とラベル付けされる3ディスクからな
る組によりアレイが形成されるレベル5RAIDディスクア
レイの一例を示す。各ディスクはアレイのある列にデー
タチャンク「D」およびパリティチャンク「P」を記憶
する。アレイの各行は、3ディスク全部にまたがってス
トライピングされる1つのパリティブロックと2つのデ
ータブロックとを含む。
図1において、アレイの第1の行はパリティブロック
P(0,1)、データチャンクD0およびデータチャンクD1
からなる。図1のアレイにおいてはまた、第1の例はパ
リティチャンクP(0,1)、データチャンクD2、データ
チャンクD4、パリティチャンクP(6,7)およびデータ
チャンクD8からなる。
各データチャンクおよび各パリティチャンクは1ディ
スク上でいくつかの物理ブロックに区分される。単一の
ブロックが、ユーザプログラムによって読出コマンドま
たは書込コマンドで別個にアドレス指定され得るチャン
クの最小部分である。ある簡単な例として、各チャンク
は2ブロックからなってもよく、各ブロックは512バイ
トと1巡回冗長検査バイト(「CRC」バイト)とからな
ってもよい。
図1のアレイにおいて、チャンク0のブロック0は論
理アドレス0の読出/書込コマンドによってアドレス指
定される。この論理アドレスが順次1ずつ増分されるの
で、データブロックは、チャンクD0のブロック1、チャ
ンクD1のブロック0、チャングD1のブロック1、チャン
クD2のブロック2、チャンクD2のブロック3、チャンク
D3のブロック2…の順序でアドレス指定される。たとえ
ば、チャンクD7のブロック6は論理アドレス14を有す
る。
データブロックに書込むとき、そのブロック内のCRC
バイトも発生され、書込まれる。さらに、そのデータブ
ロックと同じブロック番号を有するパリティブロックも
また発生され、書込まれる。このパリティブロックは奇
数パリティまたは偶数パリティを用いて書込まれる。
偶数パリティでは、同じブロック番号を有するパリテ
ィブロックと全データブロックとの排他的論理和により
すべて0のブロックが生じる。たとえば、チャンクD0の
ブロック0に書込むとき、パリティチャンクP(0,1)
のブロック0もまた、それとチャンクD0およびD1のブロ
ック0との排他的論理和をとると、すべて0のブロック
と等しくなるように書込まれる。逆に、奇数パリティで
は、同じブロック番号を有するパリティブロックと全デ
ータブロックとの排他的論理和によりすべて1のブロッ
クが生じる。
読出コマンドを実行する間、読出されるデータのブロ
ックからCRCが再生成される。再生成されたCRCが記憶さ
れているCRCと異なっていれば、読出されたデータブロ
ックは誤りを含んでいる。この誤りを訂正するために、
a)誤りのあるデータブロックと同じブロック番号を有
するディスク上の他のブロック全部を読出し、b)それ
らのブロックの排他的論理和をとることによってこの誤
りを含んだデータブロックが再生成される。
ここで、図1のアレイの記憶容量を高める必要がある
状況を考える。図1のアレイの記憶容量が先行技術に従
って高められ得る方法の一例を図2に示す。ここで、図
1のアレイの行は新たな2ディスク(ディスク3および
ディスク4)の組を追加することによって拡張されてい
る。その結果、図1のアレイの各行は合計3チャンクし
か含まないが、図2のアレイの各行は5チャンクを含
む。図2のアレイの各チャンクもまた1ディスク上では
いくつかの物理ブロックに区分されるが、図を簡単にす
るためこれらのブロックは図示されない。
図1のアレイを図2のアレイに変更するため、図3に
示すようないくつかのステップS1−S6の実行が必要とな
る。ステップS1において、図1のアレイが「オフライ
ン」にされる。すなわち、アレイはユーザプログラムの
どのようなコマンドによってもアクセス不可能となる。
次にステップS2において、図1のアレイの全データブロ
ックの内容が読出され、磁気テープのようなバックアッ
プ媒体上に記憶される。
ステップS3において、図2に示すようなディスク上の
データブロックとパリティブロックとの構成を規定する
アレイコンフィギュレーションマップが作られる。ステ
ップS4において、図2のアレイのための新たなパリティ
ブロックが発生され、ディスク0−4上に記憶される。
ステップS5において、データブロックがバックアップ媒
体から読出され、ディスク0−4上に書込まれる。次に
ステップS6において、図2のアレイが「オンライン」に
される。すなわち、アレイはここでユーザプログラムか
らのコマンドを受入れることができるようになる。
しかしながら、図3の上述の方法に関する大きな欠点
は完了するのに時間がかかり過ぎるということである。
これはステップS2、S4およびS5の各々が大量のデータを
読出し、および/または書込むためである。たとえば、
ステップS2は最初のディスクの組上の全データブロック
の読出および書込を必要とする。典型的にはステップS2
−S5を完了するには数時間がかかり、その結果、図1の
アレイは拡張される間オフラインにされなければならな
い。
文書EP−A−0 654 736は、システムを停止する必
要なしに拡張可能である動的に拡張可能な記憶装置アレ
イシステムを開示しているので、最も近い先行技術文書
(D1)を成す。それにもかかわらず、ここに請求される
ようなこの発明の特有の変更、追加および初期化工程は
文書D1からは認識できず、また、容易に想到することも
全くできない。
したがって、この発明の主な目的は、上述の欠点が克
服される、レベル5RAIDディスクアレイに記憶容量を追
加する新規な方法を提供することである。
発明の簡単な概要: この発明の一実施例に従うと、最初の組のディスク上
のレベル5RAIDアレイの記憶容量の拡張は、A)最初の
組のディスク上の特定の行のパリティブロックをブロッ
クの内容を変えずにデータブロックに変更するステップ
と、B)その特定の行において、追加された組のN個の
ディスク上に存在する1個の新しいパリティブロックと
N−1個の新しいデータブロックとを追加するステップ
と、C)その新しいパリティブロックおよび新しいデー
タブロックを、それらの内容の排他的論理和が0となる
ように初期化するステップとによって行なわれる。これ
らのステップA−Cによって、最初の組のディスク上の
データブロックおよびパリティブロックの内容は今回も
変更されず、さらに、追加された組のディスクはパリテ
ィブロックおよびデータブロックを含む。
図面の簡単な説明: 図1は、最初の組の3ディスク上に存在する先行技術
のレベル5RAIDアレイの構造を示す。
図2は、図1のアレイの記憶容量が先行技術において
追加された組の新たな2ディスク上に拡張される方法を
示す。
図3は、図1のアレイが図2のアレイに拡張される先
行技術のステップを示す。
図4は、図1のアレイの記憶容量がこの発明の一実施
例に従って追加された組の新たな2ディスク上に拡張さ
れる方法を示す。
図5は、図4の拡張されたアレイが満たさなければな
らないいくつかの制約を示す。
図6は、図4のアレイのデータブロックおよびパリテ
ィブロックに属性および論理アドレスを割当てるアレイ
コンフィギュレーションマップを示す。
図7は、図1のアレイの記憶容量がこの発明の第2の
実施例に従って追加された組の新たな2ディスク上に拡
張される方法を示す。
図8は、図7の拡張されたアレイが満たさなければな
らないいくつかの制約を示す。
図9は、図7のアレイのデータブロックおよびパリテ
ィブロックに属性および論理アドレスを割当てるアレイ
コンフィギュレーションマップを示す。
図10は、図1の最初のアレイを図4または図7のアレ
イに拡張する制御プログラムを含んだデータ処理システ
ムを示す。
図11は、図4のアレイのデータブロックの論理アドレ
スをそのデータブロックとその対応のパリティブロック
とのための物理アドレスに変換するいくつかの式を示
す。
図12は、図11の式において生じる各変数の定義を示
す。
図13は、図12のある変数のための、図4のディスクア
レイに対応する特定の値を示す。
図14は、図13の値が図11の式に代入されて、特定のデ
ータブロックの論理アドレスをその同じデータブロック
とその対応のパリティブロックとのための物理アドレス
に変換する方法を示す。
図15は、図7のアレイのデータブロックの論理アドレ
スをそのデータブロックとその対応のパリティブロック
とのための物理アドレスに変換するために図11の式に対
して行なわれる変更を示す。
詳細な説明: 図4において、この発明に従って図1のアレイの記憶
容量を高めることによって得られるレベル5RAIDディス
クアレイを示す。この図4のアレイは図1からの最初の
組の3ディスク(ディスク0、ディスク1およびディス
ク2)と、追加された組の新たな2ディスク(ディスク
3およびディスク4)との上に存在する。
図4のアレイ内には、データチャンクDおよびパリテ
ィチャンクPが5行5列の態様で示すように構成され
る。たとえば、行0はパリティチャンクP(0,1,10,1
1)およびデータチャンクD0、D1、D10、D11からなる。
列0はパリティチャンクP(0,1,10,11)およびP(6,
7,16,17)ならびにデータチャンクD2、D4およびD8から
なる。
各データチャンクおよび各パリティチャンクは1ディ
スク上でいくつかの物理ブロックに区分される。これら
のブロックは図1に関して上述したものと同様であり、
したがってそれらを図4には再び示さない。また図4の
アレイにおいて、パリティチャンクおよび/またはパリ
ティブロックは図1のアレイにおけるのと同じ機能を果
たす。
たとえば、チャンクD0のブロック0に書込むとき、パ
リティチャンクP(0,1,10,11)のブロック0にも書込
まれる。偶数パリティが用いられれば、P(0,1,10,1
1)のブロック0とチャンクD0、D1、D10およびD11のブ
ロック0との排他的論理和は、すべて0のブロックと等
しい。その後、読出コマンドを実行する間に、誤りのあ
るデータブロックは、a)誤りのあるデータブロックと
同じブロック番号を有するディスク上の他のブロック全
部を読出し、b)それらのブロックの排他的論理和をと
ることによって再生成される。
図4のアレイのある著しい特徴は、ディスク3および
4上にはデータチャンクだけが書込まれ、パリティチャ
ンクが書込まれないことである。それに比べ、図2の先
行技術のアレイでは、データチャンクおよびパリティチ
ャンクがディスク3および4上に書込まれる。
図4のアレイの第2の著しい特徴は、ディスク0−2
上のデータチャンクおよびパリティチャンクが図1のア
レイにおけるのと同じ順序で構成され、同じ内容を有す
ることである。それに比べ、図2の先行技術のアレイで
は、ディスク0−2上のデータチャンクが図1における
ものとは異なる。
図4のアレイのもう1つの著しい特徴は、ディスク3
および4上のデータチャンクが、ディスク0、1および
2上のパリティチャンクが図1のアレイのパリティチャ
ンクと同一であるように初期化されることである。これ
は、図5に示すようないくつかの制約11−15を満たすよ
うにディスク3および4上のデータチャンクを初期化す
ることによって達成される。
制約11は、図4のアレイのパリティチャンクP(0,1,
10,11)が図1のアレイのパリティチャンクP(0,1)と
同一にされることを確実とする。制約11に従うと、デー
タチャンクD10およびD11はそれらの排他的論理和がすべ
て0のチャンクと等しくなるように初期化されなければ
ならない。このすべて0のチャンクとD0およびD1との排
他的論理和はP(0,1)と等しいであろう。したがっ
て、P(0,1,10,11)はP(0,1)と等しいということに
なる。
制約11を満たすことができる方法のある特定の例は、
データチャンクD10をすべて1またはすべて0のブロッ
クに初期化し、データチャンクD11を同じビットパター
ンに初期化することである。制約11を満たすことができ
る方法の第2の例は、データチャンクD10を任意のラン
ダムなビットパターンまたは予め定められたビットパタ
ーンに初期化し、データチャンクD11を同じビットパタ
ーンに初期化することである。
同様に、他の制約12−15の各々は、図4のアレイのあ
る行におけるパリティチャンクが図1のアレイの同じ行
におけるパリティチャンクと同一にされる。たとえば、
制約12によると、データチャンクD12およびD13はそれら
の排他的論理和がすべて0のチャンクと等しくなるよう
に初期化されなければならない。このすべて0のチャン
クとD2およびD3との排他的論理和はP(2,3)と等しい
であろう。したがって、P(2,3,12,13)はP(2,3)と
等しいということになる。
図4および図5の上の説明から、この発明に従うと、
どのようなものにせよ、最初のレベル5RAIDディスクア
レイの記憶容量の増大が、A)最初のアレイの行に、追
加される組のディスク上に存在するパリティブロックな
しの新しいデータブロックを追加するステップと、B)
新しいデータブロックを、アレイの各行におけるそれら
の内容の排他的論理和が0になるように初期化するステ
ップによって行なわれることがわかる。ステップA)お
よびB)を実行できる1つの方法を図6に示す。
図6は、図4のディスクアレイのためのアレイコンフ
ィギュレーションマップである。このマップは行および
列からなる表の形であり、図4のアレイの各ブロックご
とに1つのエントリが設けられ、このようなエントリの
各々は属性PまたはDと属性IまたはNIと論理アドレス
とからなる。
属性Pを有する各ブロックはパリティブロックであ
り、属性Dを有する各ブロックはデータブロックであ
る。また、属性Iを有する各ブロックは、実際のディス
クとして記憶されたブロックの内容が図5の制約11−15
を満たす予め定められた内容で予め書込された初期状態
にある。逆に、属性NIを有する各ブロックは初期状態で
なく、このようなブロックの内容は実際にディスク上に
記憶されている。
たとえば、図6のアレイコンフィギュレーションマッ
プにおける論理アドレス0のブロックは属性P、NIを有
する。これは、図4のレベル5RAIDディスクアレイにお
けるディスク0上のブロック0が初期状態にないパリテ
ィブロックであることを示す。同様に、図6の論理アド
レス29のブロックは属性D、Iを有する。これは、図4
のディスクアレイにおけるディスク3上のブロック5が
初期状態にあるデータブロックであることを示す。
図4−6の上述された発明の主な特徴は、レベル5RAI
Dディスクアレイの記憶容量が図3の先行技術の方法よ
りもはるかに速く増大させられ得るということである。
特に、上述のステップAおよびBを行なうことによっ
て、最初のアレイからのデータチャンクをバックアップ
する図3のステップS2が削除され、新しいパリティブロ
ックを発生し、書込む図3のステップS4が削除され、バ
ックアップ媒体からのデータを新しいアレイに復元する
図3のステップS5が削除される。結果として、上述のス
テップA)およびB)を1分未満で行なうことができ
る。
この時間間隔は非常に短いので、読出および/または
書込コマンドでアレイをアドレス指定する何らかのユー
ザプログラムがオンラインにされている間にステップA
およびBを行なうことができる。それらのコマンドはス
テップAおよびステップBが行なわれている間は待ち行
列に蓄積され、ステップAおよびBが完了すると、その
コマンドは待ち行列から取り除かれて実行される。した
がって、この発明では図3のステップS1およびS6もまた
削除できる。
ここで図7を参照して、この発明の第2の実施例を構
成する別のレベル5RAIDディスクアレイを示す。この図
7のアレイは、それが図4からのディスク3および4と
図1からの最初の組の3ディスク(ディスク0、ディス
ク1およびディスク2)との上に存在する点で図4のア
レイと同様である。
図7のアレイ内に、データチャンクDおよびパリティ
チャンクPが5行5列で示される。ここでも、各データ
チャンクおよび各パリティチャンクが図1に関連して上
述したのと同様に1ディスク上でいくつかの物理ブロッ
クに区分され、したがって、簡略化のためこれらのブロ
ックを図7では繰返さない。また、図7のアレイのパリ
ティチャンクおよび/またはパリティブロックは図1お
よび図4のアレイにおけるのと同じ機能を果たす。
図4のアレイに対して図7のアレイが持つ著しいある
特徴は、図7ではデータチャンクおよびパリティチャン
クがディスク3およびディスク4上に書込まれる点であ
る。それに比べると、図4のアレイでは、データチャン
クはディスク3および4上に書込まれるが、パリティチ
ャンクは書込まれない。
図7のアレイの第2の著しい特徴は、ディスク0−2
上のデータチャンクが図1のアレイにおけるのと同じ順
序で構成され、同じ内容を有する点である。それに比べ
ると、図2の先行技術のアレイでは、ディスク0−2上
のデータチャンクが図1のアレイにおけるのとは異な
る。
図7のアレイのもう1つの著しい特徴は、ディスク3
および4上のデータチャンクおよびパリティチャンクが
図8のいくつかの制約21−23を満たすように初期化され
る点である。図8の制約21−23は図5の上述の制約11−
13と同じであるが、図8の制約24−25は新たなものであ
る。
制約24は、図7のアレイのデータチャンクD16が図1
のアレイのパリティチャンクP(6,7)と同一にされる
ことを確実とする。制約24に従うと、パリティチャンク
P(16,6,7,17)およびデータチャンクD17は、それらの
排他的論理和がすべて0のチャンクと等しくなるように
初期化されなければならない。このすべて0のチャンク
とD6およびD7との排他的論理和はP(0,1)と等しいで
あろう。したがって、D16はP(0,1)と等しいというこ
とになる。
同様に、制約25は図7のアレイのデータチャンクD19
が図1のアレイのパリティチャンクP(8,9)と同一に
されることを確実とする。制約25に従うと、データチャ
ンクD18およびパリティチャンクP(8,19,9,18)は、そ
れらの排他的論理和がすべて0のチャンクと等しくなる
ように初期化される。このすべて0のチャンクとD8およ
びD9との排他的論理和はP(0,1)と等しくなり、した
がってD19はP(0,1)と等しいであろう。
図8の制約24および25から、この発明に従うと、最初
の組のディスク上の任意のレベル5RAIDアレイの記憶容
量の増大が、A)最初のアレイの特定の行においてブロ
ックの内容を同じに保ちながらパリティブロックをデー
タブロックに変更するステップと、B)その特定の行
に、追加された組のN個のディスク上に存在する1個の
新しいパリティブロックとN−1個の新しいデータブロ
ックとを追加するステップと、C)新しいパリティブロ
ックと新しいデータブロックとを、それらの内容の排他
的論理和が0となるように初期化するステップとによっ
て行なわれることがわかる。これらのステップA)、
B)およびC)を実行する1つの方法を図9に示す。
図9は、図7のディスクアレイのためのアレイコンフ
ギュレーションマップである。このマップでは、1つの
エントリが図7のアレイの各ブロックごとに設けられ、
このようなエントリの各々は属性PまたはD、属性Iま
たはNIおよび論理アドレスからなる。
図9のアレイコンフィギュレーションマップにおい
て、論理アドレス32のブロックは属性D、NIを有する。
これは、図7のレベル5RAIDディスクアレイにおけるデ
ィスク0上のブロック6が初期状態にないデータブロッ
クであることを示す。同様に、論理アドレス35のブロッ
クは属性D、Iを有する。これは、図7のディスクアレ
イにおけるディスク4上のブロック7が初期状態にある
データブロックであることを示す。
図7−9の上述の方法でもまた、レベル5RAIDディス
クアレイの記憶容量は図3の先行技術の方法よりもはる
かに速く増大される。この速度の増大が起こるのは図7
−9の方法が図3のステップS2、S4およびS5を省くから
である。
また、図7−9の方法のもう1つの特徴は、最初のア
レイの拡張がパリティブロックが全ディスクにかけてス
トライピングされるように行なわれることである。この
特徴は重要である。なぜなら、ある同時の書込コマンド
が実行される速度を高めることができるためである。
たとえば、あるユーザプログラムが論理アドレス2の
データブロックに書込を行ない、別のユーザプログラム
が同時に論理アドレス12のデータブロックに書込を行な
うとする。図9において、それらの2データブロックの
ためのそれぞれのパリティブロックは2個の別々のディ
スク上にあり、したがってそれらのパリティブロックに
同時に書込むことができる。それに比べて、図4のアレ
イでは、それらの2データブロックのためのそれぞれの
パリティブロックは同じディスクにあり、したがってパ
リティブロックは順に書込む必要がある。
次に、図10を参照して、図4−6の方法および/また
は図7−9の方法に従って最初のレベル5RAIDアレイの
記憶容量を高める完全なデータ処理システムを説明す
る。このデータ処理システムは、デジタルコンピュータ
31、最初の組のディスク32、追加された組のディスク3
3、操作卓34およびプログラムメモリ35を含む。それら
の部品31−35のすべてが図示するように相互接続され
る。
ディスク32の組の上に、データブロックおよびパリテ
ィブロックが図1のアレイのような最初のレベル5RAID
アレイを形成するように構成される。最初のアレイは、
図4−6の方法に従ってディスク33の組の上に追加のデ
ータブロックを形成するか、または図7−9の方法に従
ってディスク33の組の上に追加のデータブロックおよび
パリティブロックを形成することによって後に拡張され
る。
コンピュータ31のプログラムメモリ35内には、アレイ
制御プログラム36と、1つをプログラム37iとして示す
複数のユーザプログラムとが記憶されている。各ユーザ
プログラムは、論理アドレスでディスク32および33上の
データブロックを選択する読出コマンドおよび書込コマ
ンドを含む。ユーザプログラムの実行中にこのようなコ
マンドに遭遇すると、そのコマンドはアレイ制御プログ
ラム36内の待ち行列36aに送られる。
待ち行列36aに記憶される読出コマンドおよび書込コ
マンドのすべてが制御プログラム36によって実行され
る。したがって、制御プログラム36はユーザプログラム
とディスク32および33上に記憶されているアレイとの間
のインタフェースとして動作する。読出コマンドの実行
が完了すると、制御プログラム36は読出されたデータを
ユーザプログラムに渡す。
制御プログラム36はまた、ディスク32および33上の各
ブロックの属性D、P、Iを識別し、論理アドレスをそ
れらのブロックの各々に割当てるアレイコンフィギュレ
ーションマップ36bを含む。図4−6の方法または図7
−9の方法によってアレイを拡張するために、マップ35
bは制御プログラム36によって変更される。
アレイが図4−6の方法によって拡張される場合、変
更されたマップはA)新しいデータブロックをアレイの
行に追加し、B)新しいデータブロックを、アレイの各
行におけるそれらの内容の排他的論理和が0になるよう
に初期化する。アレイが図7−9の方法によって拡張さ
れる場合、変更されたマップは、A)最初のアレイ上の
特定の行においてパリティブロックを内容を保ちながら
データブロックに変更し、B)その特定の行において、
追加された組のN個のディスク上に存在する1個の新し
いパリティブロックとN−1個の新しいデータブロック
とを追加し、C)新しいパリティブロックおよび新しい
データブロックを、それらの内容の排他的論理和が0に
なるように初期化する。
図6および図9のアレイコンフィギュレーションマッ
プにおいては、論理アドレスがディスクアレイの各ブロ
ックごとに含まれ、各論理アドレスがマップの行および
列によって特定のディスク上の特定のブロックに相関さ
せられる。しかしながら、代替例として、各論理アドレ
スを特定のディスク上の特定のブロックに相関させるた
めに式が用いられてもよく、その場合、論理アドレスは
アレイコンフィギュレーションマップから削除され得
る。
図11は、ディスクアレイが図4−6の方法に従って拡
張された場合に、ディスクアレイ内のデータブロックの
論理アドレスを、ある特定のディスク上の物理データブ
ロックと別のディスク上の物理パリティブロックとに変
換するいくつかの式41−45を示す。これらの式におい
て、演算子「intdivide」および「remdivide」が用いら
れる。intdivideは通常の割算を実行し、剰余を無視す
ることを意味する。remdivideは通常の割算を実行し、
商を無視することを意味する。またこれらの式には、い
くつかの変数がある。このような変数の各々を図12に定
義する。
図12の変数のうち5個はFBi、Dcpri、PDCi、OCおよび
BPCである。これらはディスクアレイを規定するパラメ
ータである。たとえば、図4のディスクアレイでは、上
のパラメータは図13に示す値を有する。
図12における別の変数は、読出/書込コマンドによっ
てアレイ内の特定のデータブロックを選択するために用
いられる論理アドレスLAである。たとえば、LA=31であ
る場合、ディスク4上のブロック5が選択されることが
図6からわかる。この同じ結果は、LA=31の値と図13の
パラメータとを図11の式41−45に代入することによって
得られ、これらの代入は図14において行なわれる。
図14の式44は、LA=31である場合、アドレス指定され
たデータブロックを含む列の対応の番号がDCN=4によ
って与えられることを示す。また、図14の式45は、対応
の物理ブロック番号がPBN=5によって与えられること
を示す。さらに、図14の式43は、LA=31に対して対応の
パリティブロックを含む列がPCN=3によって与えられ
ることを示す。
同様に、図15は、アレイが図7−9の方法に従って拡
張された場合に、図11の式41−45とともに用いられて、
ディスクアレイ内のデータブロックの論理アドレスをあ
るディスク上のデータブロックと別のディスク上の対応
のパリティブロックとの物理アドレスに変換する2つの
式51および52を示す。式51および52において、変数DC
N、RNおよびPCNは図11の式におけるのと同じ意味を有
し、別の変数CCiが導入される。変数CCiはi番目のディ
スクの組と先行する全ディスクの組とにおける列の数で
あり、i=1から始まる。したがって、式51−52は拡張
されたアレイ内の追加されたディスクの組ごとに一度評
価される。
たとえば、読出/書込コマンドにおけるデータブロッ
クの論理アドレスがLA=33である図7−9のアレイのた
めの場合を考える。論理アドレスは式41−45によってPC
N=0、DCN=3、PBN=7、RN=3の物理アドレスに変
換される。しかしながら、式51から、(RN)remdivide
(CCI)の量が(3)remdivide(5)または3と等し
く、それは式44によって与えられるようなDCNと等し
い。したがって、DCNはPCNまたは「0」と等しくなるよ
うに変更される。次に、式52によってPCNが(3)remdi
vide(5)または3に変更される。
図6および図9のアレイコンフィギュレーションマッ
プにおいて、追加されたディスク4−5上の各ブロック
が属性Iを割当てられており、それによりディスク上に
記憶されたブロックの内容が図5または図8の制約を満
たす予め定められた内容で予め書込されていることを示
す。しかしながら、代替例として、その予め定められた
内容がディスク4−5へと、それらのディスクがディス
クアレイに追加される前に実際に書込まれてもよい。ま
た、ユーザプログラムが最初の組のディスク1−3上で
読出コマンドおよび書込コマンドを実行している間にも
ディスク4−5のこの書込が可能であり、したがってデ
ィスク1−3はオンラインであってもよい。この変更で
は、属性IおよびNIが図6および図9のアレイコンフィ
ギュレーションマップから削除される。なぜなら、全ブ
ロックがNI状態にあるためである。
レベル5RAIDディスクアレイの記憶容量を高める2つ
の好ましい方法と、それらの方法のさまざまな変更例と
をここで詳細に説明した。したがって、この発明は特定
の1つの方法の詳細に限定されず、添付の請求の範囲に
よって規定されることを理解されたい。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平8−212018(JP,A) 特開 平8−63394(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】データブロックおよびパリティブロックが
    第1の組のディスク上に行および列で存在するレベル5R
    AIDディスクアレイに記憶容量を追加する、コンピュー
    タプログラムによって実行される方法であって、 前記第1の組のディスク上の特定の行においてブロック
    の内容を同じであるように保ちながらパリティブロック
    をデータブロックに変更するステップと、 前記特定の行において、追加された組のN個のディスク
    上に存在する1個の新しいパリティブロックとN−1個
    の新しいデータブロックとを追加するステップと、 前記新しいパリティブロックおよび新しいデータブロッ
    クを、それらの内容の排他的論理和が0になるように初
    期化するステップとを含む、方法。
  2. 【請求項2】前記初期化するステップは前記新しいパリ
    ティブロックおよび新しいデータブロックのための属性
    ビットを記憶するサブステップを含み、前記属性ビット
    は、前記追加された組のディスク上に実際に記憶された
    それらの内容が予め定められた内容で予め書込まれてい
    ることを示す、請求項1に記載の方法。
  3. 【請求項3】前記初期化するステップは、前記追加され
    た組のディスクは前記アレイから切り離されるが前記最
    初の組のディスクは前記アレイにおいて読出可能かつ書
    込可能であるオフラインモードで前記新しいパリティブ
    ロックおよび新しいデータブロックの内容を書込むサブ
    ステップを含む、請求項1に記載の方法。
  4. 【請求項4】前記変更するステップおよび前記追加する
    ステップは、論理アドレスを前記新しいデータブロック
    と変更されたパリティブロックとに割当て、アレイコン
    フィギュレーションマップによって各論理アドレスを前
    記ディスク上の物理ブロックに相関させるサブステップ
    を含む、請求項1に記載の方法。
  5. 【請求項5】前記変更するステップおよび前記追加する
    ステップは、論理アドレスを前記新しいデータブロック
    と変更されたパリティブロックとに割当て、1組の式に
    よって各論理アドレスを前記ディスク上の物理ブロック
    に相関させるサブステップを含む、請求項1に記載の方
    法。
  6. 【請求項6】前記変更するステップ、前記追加するステ
    ップおよび前記初期化するステップは、前記アレイのた
    めの読出コマンドおよび書込コマンドが受取られ、待ち
    行列に蓄積される間に行なわれる、請求項1に記載の方
    法。
  7. 【請求項7】前記変更するステップおよび前記追加する
    ステップは、前記新しいデータブロックと変更されたパ
    リティブロックとのための属性ビットを記憶するサブス
    テップを含み、前記属性ビットはそれらをパリティブロ
    ックから区別する、請求項1に記載の方法。
  8. 【請求項8】前記追加された組のN個のディスクは2つ
    以上のディスクを含み、前記初期化するステップは、少
    なくとも2つの前記新しいパリティブロックと新しいデ
    ータブロックとの内容を非ゼロ状態に設定するサブステ
    ップを含む、請求項1に記載の方法。
  9. 【請求項9】前記初期化するステップは、前記新しいデ
    ータブロックおよび新しいパリティブロックのすべてを
    ゼロ状態に設定するサブステップを含む、請求項1に記
    載の方法。
  10. 【請求項10】データブロックおよびパリティブロック
    が、第1の組のディスクと前記第1の組に結合される第
    2の組のN個のディスクとの上に行および列で存在する
    最初のアレイを含む、拡張されたレベル5RAIDディスク
    アレイであって、 1個の新しいパリティブロックとN−1個の新しいデー
    タブロックとが前記第2の組のディスク上の特定の行に
    存在し、 前記新しいパリティブロックとN−1個の新しいデータ
    ブロックとがそれらの内容の排他的論理和が0になるよ
    うに初期化され、 前記最初のアレイにおける前記特定の行が、前記拡張さ
    れたアレイにおいて同じ内容を有するデータブロックに
    変更されるパリティブロックを含むことを特徴とする、
    アレイ。
JP54856398A 1997-05-09 1998-05-08 レベル5raidディスクアレイの記憶容量を高める方法、およびこのような方法によって作られる拡張アレイ Expired - Fee Related JP3242671B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/853,968 US6000010A (en) 1997-05-09 1997-05-09 Method of increasing the storage capacity of a level five RAID disk array by adding, in a single step, a new parity block and N--1 new data blocks which respectively reside in a new columns, where N is at least two
US08/853,968 1997-05-09
US853,968 1997-05-09
PCT/US1998/009487 WO1998050858A1 (en) 1997-05-09 1998-05-08 Method of increasing the storage capacity of a level five raid disk array, and expanded array produced by such method

Publications (2)

Publication Number Publication Date
JP2000511322A JP2000511322A (ja) 2000-08-29
JP3242671B2 true JP3242671B2 (ja) 2001-12-25

Family

ID=25317384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54856398A Expired - Fee Related JP3242671B2 (ja) 1997-05-09 1998-05-08 レベル5raidディスクアレイの記憶容量を高める方法、およびこのような方法によって作られる拡張アレイ

Country Status (6)

Country Link
US (1) US6000010A (ja)
EP (1) EP0980548B1 (ja)
JP (1) JP3242671B2 (ja)
AU (1) AU7477298A (ja)
DE (1) DE69804209T2 (ja)
WO (1) WO1998050858A1 (ja)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173415B1 (en) * 1998-05-22 2001-01-09 International Business Machines Corporation System for scalable distributed data structure having scalable availability
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
US6530035B1 (en) 1998-10-23 2003-03-04 Oracle Corporation Method and system for managing storage systems containing redundancy data
US6405284B1 (en) * 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
US6427212B1 (en) 1998-11-13 2002-07-30 Tricord Systems, Inc. Data fault tolerance software apparatus and method
US6330625B1 (en) * 1999-01-15 2001-12-11 Oracle Corporation System for initiating multiple read operation requests to multiple copies of a data item and identifying a first one of the requests as having the fastest response time
US6530036B1 (en) 1999-08-17 2003-03-04 Tricord Systems, Inc. Self-healing computer system storage
US6449731B1 (en) 1999-03-03 2002-09-10 Tricord Systems, Inc. Self-healing computer system storage
US6725392B1 (en) 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US6442649B1 (en) * 1999-08-18 2002-08-27 Intel Corporation Dynamic expansion of storage device array
US6651154B1 (en) * 2000-07-11 2003-11-18 International Business Machines Corporation Method, system, and program for expanding the storage space in an array of storage units
US6546457B1 (en) * 2000-09-29 2003-04-08 Emc Corporation Method and apparatus for reconfiguring striped logical devices in a disk array storage
US7111117B2 (en) * 2001-12-19 2006-09-19 Broadcom Corporation Expansion of RAID subsystems using spare space with immediate access to new space
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
US7032086B2 (en) * 2003-02-28 2006-04-18 Hewlett-Packard Development Company, L.P. System and method for adjusting storage device layout with at least one status for the adjusting
US7185144B2 (en) * 2003-11-24 2007-02-27 Network Appliance, Inc. Semi-static distribution technique
US7149847B2 (en) * 2003-06-26 2006-12-12 Adaptec, Inc. RAID 6 disk array architectures
US7103716B1 (en) 2003-06-26 2006-09-05 Adaptec, Inc. RAID 6 disk array with prime number minus one disks
US20050015546A1 (en) * 2003-07-15 2005-01-20 Ofir Zohar Data storage system
US7698625B2 (en) * 2003-08-26 2010-04-13 Adaptec, Inc. System for improving parity generation and rebuild performance
JP4215606B2 (ja) * 2003-09-24 2009-01-28 日本電気株式会社 ディスクアレイ装置および記憶容量拡張方法ならびにプログラム
US7328305B2 (en) * 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
US20060259683A1 (en) * 2005-05-16 2006-11-16 Oracle International Corporation Method and system for disk stippling
US8799571B1 (en) * 2008-09-26 2014-08-05 Emc Corporation System and method for configuring a device array upon detecting addition of a storage device
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN103927122B (zh) * 2013-01-11 2017-02-08 中兴通讯股份有限公司 一种扩展磁盘阵列的方法及装置
CN104182176B (zh) * 2013-05-24 2017-06-27 华中科技大学 一种独立磁盘冗余阵列raid5的快速扩容方法
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN104572842B (zh) * 2014-12-04 2018-12-28 长沙数析信息科技有限公司 一种分布式文件系统中的条带化卷扩展数据迁移方法
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502836A (en) * 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
JP3249868B2 (ja) * 1993-11-19 2002-01-21 株式会社日立製作所 アレイ形式の記憶装置システム
US5615352A (en) * 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
US5524204A (en) * 1994-11-03 1996-06-04 International Business Machines Corporation Method and apparatus for dynamically expanding a redundant array of disk drives
US5748885A (en) * 1994-12-23 1998-05-05 Emc Corporation Method and apparatus for reduction of I/O operations in persistent storage system
US5809224A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation On-line disk array reconfiguration
US5758118A (en) * 1995-12-08 1998-05-26 International Business Machines Corporation Methods and data storage devices for RAID expansion by on-line addition of new DASDs

Also Published As

Publication number Publication date
EP0980548A1 (en) 2000-02-23
DE69804209D1 (de) 2002-04-18
WO1998050858A1 (en) 1998-11-12
JP2000511322A (ja) 2000-08-29
DE69804209T2 (de) 2002-10-17
EP0980548B1 (en) 2002-03-13
AU7477298A (en) 1998-11-27
US6000010A (en) 1999-12-07

Similar Documents

Publication Publication Date Title
JP3242671B2 (ja) レベル5raidディスクアレイの記憶容量を高める方法、およびこのような方法によって作られる拡張アレイ
US5799140A (en) Disk array system and method for storing data
US7386758B2 (en) Method and apparatus for reconstructing data in object-based storage arrays
US5524204A (en) Method and apparatus for dynamically expanding a redundant array of disk drives
US6154854A (en) Logical partitioning of a redundant array storage system
US6070249A (en) Split parity spare disk achieving method in raid subsystem
US5650969A (en) Disk array system and method for storing data
KR100270751B1 (ko) 기억장치서브시스템의자동구성방법및장치
US20050086429A1 (en) Method, apparatus and program for migrating between striped storage and parity striped storage
US7818524B2 (en) Data migration systems and methods for independent storage device expansion and adaptation
KR20030090735A (ko) 데이터 저장 방법과 장치 및 컴퓨터 프로그램 제품
JPH04310137A (ja) データの修復方法およびシステム
JPH09288547A (ja) アレイ型記憶装置
US7409512B1 (en) Method and apparatus for maintaining information that indicates valid regions of a working volume and using that information to delay volume initialization
JP3288724B2 (ja) ディスクアレイ内の不完全な書込を追跡する方法、およびこのような方法を行なうディスク記憶システム
JP3119978B2 (ja) ファイル記憶装置及びそのファイル管理方法
JP2002328814A (ja) パリティ演算を実行する方法
US8510643B2 (en) Optimizing raid migration performance
JPH09330180A (ja) コンピュータシステムのディスクアレイ装置
JP3220581B2 (ja) アレイ形式の記憶装置システム
JP3067558B2 (ja) ディスクアレイ装置の拡張構成方法およびディスクアレイ装置
JP2856054B2 (ja) ディスクアレイ装置
JP3422004B2 (ja) 拡張形ディスクアレイ装置
JP2004185256A (ja) Raidシステム
JP3044059B2 (ja) 回転形記憶装置

Legal Events

Date Code Title Description
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

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

Free format text: PAYMENT UNTIL: 20081019

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees