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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1052—RAID 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)を参照されたい。
語は安価なディスクの冗長アレイを意味するものと定義
されており、いくつかの異なる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は、ディスク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からなる。
P(0,1)、データチャンクD0およびデータチャンクD1
からなる。図1のアレイにおいてはまた、第1の例はパ
リティチャンクP(0,1)、データチャンクD2、データ
チャンクD4、パリティチャンクP(6,7)およびデータ
チャンクD8からなる。
各データチャンクおよび各パリティチャンクは1ディ
スク上でいくつかの物理ブロックに区分される。単一の
ブロックが、ユーザプログラムによって読出コマンドま
たは書込コマンドで別個にアドレス指定され得るチャン
クの最小部分である。ある簡単な例として、各チャンク
は2ブロックからなってもよく、各ブロックは512バイ
トと1巡回冗長検査バイト(「CRC」バイト)とからな
ってもよい。
スク上でいくつかの物理ブロックに区分される。単一の
ブロックが、ユーザプログラムによって読出コマンドま
たは書込コマンドで別個にアドレス指定され得るチャン
クの最小部分である。ある簡単な例として、各チャンク
は2ブロックからなってもよく、各ブロックは512バイ
トと1巡回冗長検査バイト(「CRC」バイト)とからな
ってもよい。
図1のアレイにおいて、チャンク0のブロック0は論
理アドレス0の読出/書込コマンドによってアドレス指
定される。この論理アドレスが順次1ずつ増分されるの
で、データブロックは、チャンクD0のブロック1、チャ
ンクD1のブロック0、チャングD1のブロック1、チャン
クD2のブロック2、チャンクD2のブロック3、チャンク
D3のブロック2…の順序でアドレス指定される。たとえ
ば、チャンクD7のブロック6は論理アドレス14を有す
る。
理アドレス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のブロッ
クが生じる。
ィブロックと全データブロックとの排他的論理和により
すべて0のブロックが生じる。たとえば、チャンクD0の
ブロック0に書込むとき、パリティチャンクP(0,1)
のブロック0もまた、それとチャンクD0およびD1のブロ
ック0との排他的論理和をとると、すべて0のブロック
と等しくなるように書込まれる。逆に、奇数パリティで
は、同じブロック番号を有するパリティブロックと全デ
ータブロックとの排他的論理和によりすべて1のブロッ
クが生じる。
読出コマンドを実行する間、読出されるデータのブロ
ックからCRCが再生成される。再生成されたCRCが記憶さ
れているCRCと異なっていれば、読出されたデータブロ
ックは誤りを含んでいる。この誤りを訂正するために、
a)誤りのあるデータブロックと同じブロック番号を有
するディスク上の他のブロック全部を読出し、b)それ
らのブロックの排他的論理和をとることによってこの誤
りを含んだデータブロックが再生成される。
ックからCRCが再生成される。再生成されたCRCが記憶さ
れているCRCと異なっていれば、読出されたデータブロ
ックは誤りを含んでいる。この誤りを訂正するために、
a)誤りのあるデータブロックと同じブロック番号を有
するディスク上の他のブロック全部を読出し、b)それ
らのブロックの排他的論理和をとることによってこの誤
りを含んだデータブロックが再生成される。
ここで、図1のアレイの記憶容量を高める必要がある
状況を考える。図1のアレイの記憶容量が先行技術に従
って高められ得る方法の一例を図2に示す。ここで、図
1のアレイの行は新たな2ディスク(ディスク3および
ディスク4)の組を追加することによって拡張されてい
る。その結果、図1のアレイの各行は合計3チャンクし
か含まないが、図2のアレイの各行は5チャンクを含
む。図2のアレイの各チャンクもまた1ディスク上では
いくつかの物理ブロックに区分されるが、図を簡単にす
るためこれらのブロックは図示されない。
状況を考える。図1のアレイの記憶容量が先行技術に従
って高められ得る方法の一例を図2に示す。ここで、図
1のアレイの行は新たな2ディスク(ディスク3および
ディスク4)の組を追加することによって拡張されてい
る。その結果、図1のアレイの各行は合計3チャンクし
か含まないが、図2のアレイの各行は5チャンクを含
む。図2のアレイの各チャンクもまた1ディスク上では
いくつかの物理ブロックに区分されるが、図を簡単にす
るためこれらのブロックは図示されない。
図1のアレイを図2のアレイに変更するため、図3に
示すようないくつかのステップS1−S6の実行が必要とな
る。ステップS1において、図1のアレイが「オフライ
ン」にされる。すなわち、アレイはユーザプログラムの
どのようなコマンドによってもアクセス不可能となる。
次にステップS2において、図1のアレイの全データブロ
ックの内容が読出され、磁気テープのようなバックアッ
プ媒体上に記憶される。
示すようないくつかのステップS1−S6の実行が必要とな
る。ステップS1において、図1のアレイが「オフライ
ン」にされる。すなわち、アレイはユーザプログラムの
どのようなコマンドによってもアクセス不可能となる。
次にステップS2において、図1のアレイの全データブロ
ックの内容が読出され、磁気テープのようなバックアッ
プ媒体上に記憶される。
ステップS3において、図2に示すようなディスク上の
データブロックとパリティブロックとの構成を規定する
アレイコンフィギュレーションマップが作られる。ステ
ップS4において、図2のアレイのための新たなパリティ
ブロックが発生され、ディスク0−4上に記憶される。
ステップS5において、データブロックがバックアップ媒
体から読出され、ディスク0−4上に書込まれる。次に
ステップS6において、図2のアレイが「オンライン」に
される。すなわち、アレイはここでユーザプログラムか
らのコマンドを受入れることができるようになる。
データブロックとパリティブロックとの構成を規定する
アレイコンフィギュレーションマップが作られる。ステ
ップS4において、図2のアレイのための新たなパリティ
ブロックが発生され、ディスク0−4上に記憶される。
ステップS5において、データブロックがバックアップ媒
体から読出され、ディスク0−4上に書込まれる。次に
ステップS6において、図2のアレイが「オンライン」に
される。すなわち、アレイはここでユーザプログラムか
らのコマンドを受入れることができるようになる。
しかしながら、図3の上述の方法に関する大きな欠点
は完了するのに時間がかかり過ぎるということである。
これはステップS2、S4およびS5の各々が大量のデータを
読出し、および/または書込むためである。たとえば、
ステップS2は最初のディスクの組上の全データブロック
の読出および書込を必要とする。典型的にはステップS2
−S5を完了するには数時間がかかり、その結果、図1の
アレイは拡張される間オフラインにされなければならな
い。
は完了するのに時間がかかり過ぎるということである。
これはステップS2、S4およびS5の各々が大量のデータを
読出し、および/または書込むためである。たとえば、
ステップS2は最初のディスクの組上の全データブロック
の読出および書込を必要とする。典型的にはステップS2
−S5を完了するには数時間がかかり、その結果、図1の
アレイは拡張される間オフラインにされなければならな
い。
文書EP−A−0 654 736は、システムを停止する必
要なしに拡張可能である動的に拡張可能な記憶装置アレ
イシステムを開示しているので、最も近い先行技術文書
(D1)を成す。それにもかかわらず、ここに請求される
ようなこの発明の特有の変更、追加および初期化工程は
文書D1からは認識できず、また、容易に想到することも
全くできない。
要なしに拡張可能である動的に拡張可能な記憶装置アレ
イシステムを開示しているので、最も近い先行技術文書
(D1)を成す。それにもかかわらず、ここに請求される
ようなこの発明の特有の変更、追加および初期化工程は
文書D1からは認識できず、また、容易に想到することも
全くできない。
したがって、この発明の主な目的は、上述の欠点が克
服される、レベル5RAIDディスクアレイに記憶容量を追
加する新規な方法を提供することである。
服される、レベル5RAIDディスクアレイに記憶容量を追
加する新規な方法を提供することである。
発明の簡単な概要: この発明の一実施例に従うと、最初の組のディスク上
のレベル5RAIDアレイの記憶容量の拡張は、A)最初の
組のディスク上の特定の行のパリティブロックをブロッ
クの内容を変えずにデータブロックに変更するステップ
と、B)その特定の行において、追加された組のN個の
ディスク上に存在する1個の新しいパリティブロックと
N−1個の新しいデータブロックとを追加するステップ
と、C)その新しいパリティブロックおよび新しいデー
タブロックを、それらの内容の排他的論理和が0となる
ように初期化するステップとによって行なわれる。これ
らのステップA−Cによって、最初の組のディスク上の
データブロックおよびパリティブロックの内容は今回も
変更されず、さらに、追加された組のディスクはパリテ
ィブロックおよびデータブロックを含む。
のレベル5RAIDアレイの記憶容量の拡張は、A)最初の
組のディスク上の特定の行のパリティブロックをブロッ
クの内容を変えずにデータブロックに変更するステップ
と、B)その特定の行において、追加された組のN個の
ディスク上に存在する1個の新しいパリティブロックと
N−1個の新しいデータブロックとを追加するステップ
と、C)その新しいパリティブロックおよび新しいデー
タブロックを、それらの内容の排他的論理和が0となる
ように初期化するステップとによって行なわれる。これ
らのステップA−Cによって、最初の組のディスク上の
データブロックおよびパリティブロックの内容は今回も
変更されず、さらに、追加された組のディスクはパリテ
ィブロックおよびデータブロックを含む。
図面の簡単な説明: 図1は、最初の組の3ディスク上に存在する先行技術
のレベル5RAIDアレイの構造を示す。
のレベル5RAIDアレイの構造を示す。
図2は、図1のアレイの記憶容量が先行技術において
追加された組の新たな2ディスク上に拡張される方法を
示す。
追加された組の新たな2ディスク上に拡張される方法を
示す。
図3は、図1のアレイが図2のアレイに拡張される先
行技術のステップを示す。
行技術のステップを示す。
図4は、図1のアレイの記憶容量がこの発明の一実施
例に従って追加された組の新たな2ディスク上に拡張さ
れる方法を示す。
例に従って追加された組の新たな2ディスク上に拡張さ
れる方法を示す。
図5は、図4の拡張されたアレイが満たさなければな
らないいくつかの制約を示す。
らないいくつかの制約を示す。
図6は、図4のアレイのデータブロックおよびパリテ
ィブロックに属性および論理アドレスを割当てるアレイ
コンフィギュレーションマップを示す。
ィブロックに属性および論理アドレスを割当てるアレイ
コンフィギュレーションマップを示す。
図7は、図1のアレイの記憶容量がこの発明の第2の
実施例に従って追加された組の新たな2ディスク上に拡
張される方法を示す。
実施例に従って追加された組の新たな2ディスク上に拡
張される方法を示す。
図8は、図7の拡張されたアレイが満たさなければな
らないいくつかの制約を示す。
らないいくつかの制約を示す。
図9は、図7のアレイのデータブロックおよびパリテ
ィブロックに属性および論理アドレスを割当てるアレイ
コンフィギュレーションマップを示す。
ィブロックに属性および論理アドレスを割当てるアレイ
コンフィギュレーションマップを示す。
図10は、図1の最初のアレイを図4または図7のアレ
イに拡張する制御プログラムを含んだデータ処理システ
ムを示す。
イに拡張する制御プログラムを含んだデータ処理システ
ムを示す。
図11は、図4のアレイのデータブロックの論理アドレ
スをそのデータブロックとその対応のパリティブロック
とのための物理アドレスに変換するいくつかの式を示
す。
スをそのデータブロックとその対応のパリティブロック
とのための物理アドレスに変換するいくつかの式を示
す。
図12は、図11の式において生じる各変数の定義を示
す。
す。
図13は、図12のある変数のための、図4のディスクア
レイに対応する特定の値を示す。
レイに対応する特定の値を示す。
図14は、図13の値が図11の式に代入されて、特定のデ
ータブロックの論理アドレスをその同じデータブロック
とその対応のパリティブロックとのための物理アドレス
に変換する方法を示す。
ータブロックの論理アドレスをその同じデータブロック
とその対応のパリティブロックとのための物理アドレス
に変換する方法を示す。
図15は、図7のアレイのデータブロックの論理アドレ
スをそのデータブロックとその対応のパリティブロック
とのための物理アドレスに変換するために図11の式に対
して行なわれる変更を示す。
スをそのデータブロックとその対応のパリティブロック
とのための物理アドレスに変換するために図11の式に対
して行なわれる変更を示す。
詳細な説明: 図4において、この発明に従って図1のアレイの記憶
容量を高めることによって得られるレベル5RAIDディス
クアレイを示す。この図4のアレイは図1からの最初の
組の3ディスク(ディスク0、ディスク1およびディス
ク2)と、追加された組の新たな2ディスク(ディスク
3およびディスク4)との上に存在する。
容量を高めることによって得られるレベル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から
なる。
ィチャンク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のアレイにおけるのと同じ機能を果
たす。
スク上でいくつかの物理ブロックに区分される。これら
のブロックは図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)それらのブロックの排他的論理和をと
ることによって再生成される。
リティチャンク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の先
行技術のアレイでは、データチャンクおよびパリティチ
ャンクがディスク3および4上に書込まれる。
図4のアレイの第2の著しい特徴は、ディスク0−2
上のデータチャンクおよびパリティチャンクが図1のア
レイにおけるのと同じ順序で構成され、同じ内容を有す
ることである。それに比べ、図2の先行技術のアレイで
は、ディスク0−2上のデータチャンクが図1における
ものとは異なる。
上のデータチャンクおよびパリティチャンクが図1のア
レイにおけるのと同じ順序で構成され、同じ内容を有す
ることである。それに比べ、図2の先行技術のアレイで
は、ディスク0−2上のデータチャンクが図1における
ものとは異なる。
図4のアレイのもう1つの著しい特徴は、ディスク3
および4上のデータチャンクが、ディスク0、1および
2上のパリティチャンクが図1のアレイのパリティチャ
ンクと同一であるように初期化されることである。これ
は、図5に示すようないくつかの制約11−15を満たすよ
うにディスク3および4上のデータチャンクを初期化す
ることによって達成される。
および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)と等しいということに
なる。
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を同じビットパタ
ーンに初期化することである。
データチャンク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)と
等しいということになる。
る行におけるパリティチャンクが図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に示す。
どのようなものにせよ、最初のレベル5RAIDディスクア
レイの記憶容量の増大が、A)最初のアレイの行に、追
加される組のディスク上に存在するパリティブロックな
しの新しいデータブロックを追加するステップと、B)
新しいデータブロックを、アレイの各行におけるそれら
の内容の排他的論理和が0になるように初期化するステ
ップによって行なわれることがわかる。ステップA)お
よびB)を実行できる1つの方法を図6に示す。
図6は、図4のディスクアレイのためのアレイコンフ
ィギュレーションマップである。このマップは行および
列からなる表の形であり、図4のアレイの各ブロックご
とに1つのエントリが設けられ、このようなエントリの
各々は属性PまたはDと属性IまたはNIと論理アドレス
とからなる。
ィギュレーションマップである。このマップは行および
列からなる表の形であり、図4のアレイの各ブロックご
とに1つのエントリが設けられ、このようなエントリの
各々は属性PまたはDと属性IまたはNIと論理アドレス
とからなる。
属性Pを有する各ブロックはパリティブロックであ
り、属性Dを有する各ブロックはデータブロックであ
る。また、属性Iを有する各ブロックは、実際のディス
クとして記憶されたブロックの内容が図5の制約11−15
を満たす予め定められた内容で予め書込された初期状態
にある。逆に、属性NIを有する各ブロックは初期状態で
なく、このようなブロックの内容は実際にディスク上に
記憶されている。
り、属性Dを有する各ブロックはデータブロックであ
る。また、属性Iを有する各ブロックは、実際のディス
クとして記憶されたブロックの内容が図5の制約11−15
を満たす予め定められた内容で予め書込された初期状態
にある。逆に、属性NIを有する各ブロックは初期状態で
なく、このようなブロックの内容は実際にディスク上に
記憶されている。
たとえば、図6のアレイコンフィギュレーションマッ
プにおける論理アドレス0のブロックは属性P、NIを有
する。これは、図4のレベル5RAIDディスクアレイにお
けるディスク0上のブロック0が初期状態にないパリテ
ィブロックであることを示す。同様に、図6の論理アド
レス29のブロックは属性D、Iを有する。これは、図4
のディスクアレイにおけるディスク3上のブロック5が
初期状態にあるデータブロックであることを示す。
プにおける論理アドレス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分未満で行なうことができ
る。
Dディスクアレイの記憶容量が図3の先行技術の方法よ
りもはるかに速く増大させられ得るということである。
特に、上述のステップAおよびBを行なうことによっ
て、最初のアレイからのデータチャンクをバックアップ
する図3のステップS2が削除され、新しいパリティブロ
ックを発生し、書込む図3のステップS4が削除され、バ
ックアップ媒体からのデータを新しいアレイに復元する
図3のステップS5が削除される。結果として、上述のス
テップA)およびB)を1分未満で行なうことができ
る。
この時間間隔は非常に短いので、読出および/または
書込コマンドでアレイをアドレス指定する何らかのユー
ザプログラムがオンラインにされている間にステップA
およびBを行なうことができる。それらのコマンドはス
テップAおよびステップBが行なわれている間は待ち行
列に蓄積され、ステップAおよびBが完了すると、その
コマンドは待ち行列から取り除かれて実行される。した
がって、この発明では図3のステップS1およびS6もまた
削除できる。
書込コマンドでアレイをアドレス指定する何らかのユー
ザプログラムがオンラインにされている間にステップA
およびBを行なうことができる。それらのコマンドはス
テップAおよびステップBが行なわれている間は待ち行
列に蓄積され、ステップAおよびBが完了すると、その
コマンドは待ち行列から取り除かれて実行される。した
がって、この発明では図3のステップS1およびS6もまた
削除できる。
ここで図7を参照して、この発明の第2の実施例を構
成する別のレベル5RAIDディスクアレイを示す。この図
7のアレイは、それが図4からのディスク3および4と
図1からの最初の組の3ディスク(ディスク0、ディス
ク1およびディスク2)との上に存在する点で図4のア
レイと同様である。
成する別のレベル5RAIDディスクアレイを示す。この図
7のアレイは、それが図4からのディスク3および4と
図1からの最初の組の3ディスク(ディスク0、ディス
ク1およびディスク2)との上に存在する点で図4のア
レイと同様である。
図7のアレイ内に、データチャンクDおよびパリティ
チャンクPが5行5列で示される。ここでも、各データ
チャンクおよび各パリティチャンクが図1に関連して上
述したのと同様に1ディスク上でいくつかの物理ブロッ
クに区分され、したがって、簡略化のためこれらのブロ
ックを図7では繰返さない。また、図7のアレイのパリ
ティチャンクおよび/またはパリティブロックは図1お
よび図4のアレイにおけるのと同じ機能を果たす。
チャンクPが5行5列で示される。ここでも、各データ
チャンクおよび各パリティチャンクが図1に関連して上
述したのと同様に1ディスク上でいくつかの物理ブロッ
クに区分され、したがって、簡略化のためこれらのブロ
ックを図7では繰返さない。また、図7のアレイのパリ
ティチャンクおよび/またはパリティブロックは図1お
よび図4のアレイにおけるのと同じ機能を果たす。
図4のアレイに対して図7のアレイが持つ著しいある
特徴は、図7ではデータチャンクおよびパリティチャン
クがディスク3およびディスク4上に書込まれる点であ
る。それに比べると、図4のアレイでは、データチャン
クはディスク3および4上に書込まれるが、パリティチ
ャンクは書込まれない。
特徴は、図7ではデータチャンクおよびパリティチャン
クがディスク3およびディスク4上に書込まれる点であ
る。それに比べると、図4のアレイでは、データチャン
クはディスク3および4上に書込まれるが、パリティチ
ャンクは書込まれない。
図7のアレイの第2の著しい特徴は、ディスク0−2
上のデータチャンクが図1のアレイにおけるのと同じ順
序で構成され、同じ内容を有する点である。それに比べ
ると、図2の先行技術のアレイでは、ディスク0−2上
のデータチャンクが図1のアレイにおけるのとは異な
る。
上のデータチャンクが図1のアレイにおけるのと同じ順
序で構成され、同じ内容を有する点である。それに比べ
ると、図2の先行技術のアレイでは、ディスク0−2上
のデータチャンクが図1のアレイにおけるのとは異な
る。
図7のアレイのもう1つの著しい特徴は、ディスク3
および4上のデータチャンクおよびパリティチャンクが
図8のいくつかの制約21−23を満たすように初期化され
る点である。図8の制約21−23は図5の上述の制約11−
13と同じであるが、図8の制約24−25は新たなものであ
る。
および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)と等しいというこ
とになる。
のアレイのパリティチャンク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)と等しいであろう。
が図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に示す。
の組のディスク上の任意のレベル5RAIDアレイの記憶容
量の増大が、A)最初のアレイの特定の行においてブロ
ックの内容を同じに保ちながらパリティブロックをデー
タブロックに変更するステップと、B)その特定の行
に、追加された組のN個のディスク上に存在する1個の
新しいパリティブロックとN−1個の新しいデータブロ
ックとを追加するステップと、C)新しいパリティブロ
ックと新しいデータブロックとを、それらの内容の排他
的論理和が0となるように初期化するステップとによっ
て行なわれることがわかる。これらのステップA)、
B)およびC)を実行する1つの方法を図9に示す。
図9は、図7のディスクアレイのためのアレイコンフ
ギュレーションマップである。このマップでは、1つの
エントリが図7のアレイの各ブロックごとに設けられ、
このようなエントリの各々は属性PまたはD、属性Iま
たはNIおよび論理アドレスからなる。
ギュレーションマップである。このマップでは、1つの
エントリが図7のアレイの各ブロックごとに設けられ、
このようなエントリの各々は属性PまたはD、属性Iま
たはNIおよび論理アドレスからなる。
図9のアレイコンフィギュレーションマップにおい
て、論理アドレス32のブロックは属性D、NIを有する。
これは、図7のレベル5RAIDディスクアレイにおけるデ
ィスク0上のブロック6が初期状態にないデータブロッ
クであることを示す。同様に、論理アドレス35のブロッ
クは属性D、Iを有する。これは、図7のディスクアレ
イにおけるディスク4上のブロック7が初期状態にある
データブロックであることを示す。
て、論理アドレス32のブロックは属性D、NIを有する。
これは、図7のレベル5RAIDディスクアレイにおけるデ
ィスク0上のブロック6が初期状態にないデータブロッ
クであることを示す。同様に、論理アドレス35のブロッ
クは属性D、Iを有する。これは、図7のディスクアレ
イにおけるディスク4上のブロック7が初期状態にある
データブロックであることを示す。
図7−9の上述の方法でもまた、レベル5RAIDディス
クアレイの記憶容量は図3の先行技術の方法よりもはる
かに速く増大される。この速度の増大が起こるのは図7
−9の方法が図3のステップS2、S4およびS5を省くから
である。
クアレイの記憶容量は図3の先行技術の方法よりもはる
かに速く増大される。この速度の増大が起こるのは図7
−9の方法が図3のステップS2、S4およびS5を省くから
である。
また、図7−9の方法のもう1つの特徴は、最初のア
レイの拡張がパリティブロックが全ディスクにかけてス
トライピングされるように行なわれることである。この
特徴は重要である。なぜなら、ある同時の書込コマンド
が実行される速度を高めることができるためである。
レイの拡張がパリティブロックが全ディスクにかけてス
トライピングされるように行なわれることである。この
特徴は重要である。なぜなら、ある同時の書込コマンド
が実行される速度を高めることができるためである。
たとえば、あるユーザプログラムが論理アドレス2の
データブロックに書込を行ない、別のユーザプログラム
が同時に論理アドレス12のデータブロックに書込を行な
うとする。図9において、それらの2データブロックの
ためのそれぞれのパリティブロックは2個の別々のディ
スク上にあり、したがってそれらのパリティブロックに
同時に書込むことができる。それに比べて、図4のアレ
イでは、それらの2データブロックのためのそれぞれの
パリティブロックは同じディスクにあり、したがってパ
リティブロックは順に書込む必要がある。
データブロックに書込を行ない、別のユーザプログラム
が同時に論理アドレス12のデータブロックに書込を行な
うとする。図9において、それらの2データブロックの
ためのそれぞれのパリティブロックは2個の別々のディ
スク上にあり、したがってそれらのパリティブロックに
同時に書込むことができる。それに比べて、図4のアレ
イでは、それらの2データブロックのためのそれぞれの
パリティブロックは同じディスクにあり、したがってパ
リティブロックは順に書込む必要がある。
次に、図10を参照して、図4−6の方法および/また
は図7−9の方法に従って最初のレベル5RAIDアレイの
記憶容量を高める完全なデータ処理システムを説明す
る。このデータ処理システムは、デジタルコンピュータ
31、最初の組のディスク32、追加された組のディスク3
3、操作卓34およびプログラムメモリ35を含む。それら
の部品31−35のすべてが図示するように相互接続され
る。
は図7−9の方法に従って最初のレベル5RAIDアレイの
記憶容量を高める完全なデータ処理システムを説明す
る。このデータ処理システムは、デジタルコンピュータ
31、最初の組のディスク32、追加された組のディスク3
3、操作卓34およびプログラムメモリ35を含む。それら
の部品31−35のすべてが図示するように相互接続され
る。
ディスク32の組の上に、データブロックおよびパリテ
ィブロックが図1のアレイのような最初のレベル5RAID
アレイを形成するように構成される。最初のアレイは、
図4−6の方法に従ってディスク33の組の上に追加のデ
ータブロックを形成するか、または図7−9の方法に従
ってディスク33の組の上に追加のデータブロックおよび
パリティブロックを形成することによって後に拡張され
る。
ィブロックが図1のアレイのような最初のレベル5RAID
アレイを形成するように構成される。最初のアレイは、
図4−6の方法に従ってディスク33の組の上に追加のデ
ータブロックを形成するか、または図7−9の方法に従
ってディスク33の組の上に追加のデータブロックおよび
パリティブロックを形成することによって後に拡張され
る。
コンピュータ31のプログラムメモリ35内には、アレイ
制御プログラム36と、1つをプログラム37iとして示す
複数のユーザプログラムとが記憶されている。各ユーザ
プログラムは、論理アドレスでディスク32および33上の
データブロックを選択する読出コマンドおよび書込コマ
ンドを含む。ユーザプログラムの実行中にこのようなコ
マンドに遭遇すると、そのコマンドはアレイ制御プログ
ラム36内の待ち行列36aに送られる。
制御プログラム36と、1つをプログラム37iとして示す
複数のユーザプログラムとが記憶されている。各ユーザ
プログラムは、論理アドレスでディスク32および33上の
データブロックを選択する読出コマンドおよび書込コマ
ンドを含む。ユーザプログラムの実行中にこのようなコ
マンドに遭遇すると、そのコマンドはアレイ制御プログ
ラム36内の待ち行列36aに送られる。
待ち行列36aに記憶される読出コマンドおよび書込コ
マンドのすべてが制御プログラム36によって実行され
る。したがって、制御プログラム36はユーザプログラム
とディスク32および33上に記憶されているアレイとの間
のインタフェースとして動作する。読出コマンドの実行
が完了すると、制御プログラム36は読出されたデータを
ユーザプログラムに渡す。
マンドのすべてが制御プログラム36によって実行され
る。したがって、制御プログラム36はユーザプログラム
とディスク32および33上に記憶されているアレイとの間
のインタフェースとして動作する。読出コマンドの実行
が完了すると、制御プログラム36は読出されたデータを
ユーザプログラムに渡す。
制御プログラム36はまた、ディスク32および33上の各
ブロックの属性D、P、Iを識別し、論理アドレスをそ
れらのブロックの各々に割当てるアレイコンフィギュレ
ーションマップ36bを含む。図4−6の方法または図7
−9の方法によってアレイを拡張するために、マップ35
bは制御プログラム36によって変更される。
ブロックの属性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に
なるように初期化する。
更されたマップは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に定
義する。
張された場合に、ディスクアレイ内のデータブロックの
論理アドレスを、ある特定のディスク上の物理データブ
ロックと別のディスク上の物理パリティブロックとに変
換するいくつかの式41−45を示す。これらの式におい
て、演算子「intdivide」および「remdivide」が用いら
れる。intdivideは通常の割算を実行し、剰余を無視す
ることを意味する。remdivideは通常の割算を実行し、
商を無視することを意味する。またこれらの式には、い
くつかの変数がある。このような変数の各々を図12に定
義する。
図12の変数のうち5個はFBi、Dcpri、PDCi、OCおよび
BPCである。これらはディスクアレイを規定するパラメ
ータである。たとえば、図4のディスクアレイでは、上
のパラメータは図13に示す値を有する。
BPCである。これらはディスクアレイを規定するパラメ
ータである。たとえば、図4のディスクアレイでは、上
のパラメータは図13に示す値を有する。
図12における別の変数は、読出/書込コマンドによっ
てアレイ内の特定のデータブロックを選択するために用
いられる論理アドレスLAである。たとえば、LA=31であ
る場合、ディスク4上のブロック5が選択されることが
図6からわかる。この同じ結果は、LA=31の値と図13の
パラメータとを図11の式41−45に代入することによって
得られ、これらの代入は図14において行なわれる。
てアレイ内の特定のデータブロックを選択するために用
いられる論理アドレス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によって与えられ
ることを示す。
たデータブロックを含む列の対応の番号が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は拡張
されたアレイ内の追加されたディスクの組ごとに一度評
価される。
張された場合に、図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に変更される。
クの論理アドレスが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状態にあるためである。
プにおいて、追加されたディスク4−5上の各ブロック
が属性Iを割当てられており、それによりディスク上に
記憶されたブロックの内容が図5または図8の制約を満
たす予め定められた内容で予め書込されていることを示
す。しかしながら、代替例として、その予め定められた
内容がディスク4−5へと、それらのディスクがディス
クアレイに追加される前に実際に書込まれてもよい。ま
た、ユーザプログラムが最初の組のディスク1−3上で
読出コマンドおよび書込コマンドを実行している間にも
ディスク4−5のこの書込が可能であり、したがってデ
ィスク1−3はオンラインであってもよい。この変更で
は、属性IおよびNIが図6および図9のアレイコンフィ
ギュレーションマップから削除される。なぜなら、全ブ
ロックがNI状態にあるためである。
レベル5RAIDディスクアレイの記憶容量を高める2つ
の好ましい方法と、それらの方法のさまざまな変更例と
をここで詳細に説明した。したがって、この発明は特定
の1つの方法の詳細に限定されず、添付の請求の範囲に
よって規定されることを理解されたい。
の好ましい方法と、それらの方法のさまざまな変更例と
をここで詳細に説明した。したがって、この発明は特定
の1つの方法の詳細に限定されず、添付の請求の範囲に
よって規定されることを理解されたい。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平8−212018(JP,A) 特開 平8−63394(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06
Claims (10)
- 【請求項1】データブロックおよびパリティブロックが
第1の組のディスク上に行および列で存在するレベル5R
AIDディスクアレイに記憶容量を追加する、コンピュー
タプログラムによって実行される方法であって、 前記第1の組のディスク上の特定の行においてブロック
の内容を同じであるように保ちながらパリティブロック
をデータブロックに変更するステップと、 前記特定の行において、追加された組のN個のディスク
上に存在する1個の新しいパリティブロックとN−1個
の新しいデータブロックとを追加するステップと、 前記新しいパリティブロックおよび新しいデータブロッ
クを、それらの内容の排他的論理和が0になるように初
期化するステップとを含む、方法。 - 【請求項2】前記初期化するステップは前記新しいパリ
ティブロックおよび新しいデータブロックのための属性
ビットを記憶するサブステップを含み、前記属性ビット
は、前記追加された組のディスク上に実際に記憶された
それらの内容が予め定められた内容で予め書込まれてい
ることを示す、請求項1に記載の方法。 - 【請求項3】前記初期化するステップは、前記追加され
た組のディスクは前記アレイから切り離されるが前記最
初の組のディスクは前記アレイにおいて読出可能かつ書
込可能であるオフラインモードで前記新しいパリティブ
ロックおよび新しいデータブロックの内容を書込むサブ
ステップを含む、請求項1に記載の方法。 - 【請求項4】前記変更するステップおよび前記追加する
ステップは、論理アドレスを前記新しいデータブロック
と変更されたパリティブロックとに割当て、アレイコン
フィギュレーションマップによって各論理アドレスを前
記ディスク上の物理ブロックに相関させるサブステップ
を含む、請求項1に記載の方法。 - 【請求項5】前記変更するステップおよび前記追加する
ステップは、論理アドレスを前記新しいデータブロック
と変更されたパリティブロックとに割当て、1組の式に
よって各論理アドレスを前記ディスク上の物理ブロック
に相関させるサブステップを含む、請求項1に記載の方
法。 - 【請求項6】前記変更するステップ、前記追加するステ
ップおよび前記初期化するステップは、前記アレイのた
めの読出コマンドおよび書込コマンドが受取られ、待ち
行列に蓄積される間に行なわれる、請求項1に記載の方
法。 - 【請求項7】前記変更するステップおよび前記追加する
ステップは、前記新しいデータブロックと変更されたパ
リティブロックとのための属性ビットを記憶するサブス
テップを含み、前記属性ビットはそれらをパリティブロ
ックから区別する、請求項1に記載の方法。 - 【請求項8】前記追加された組のN個のディスクは2つ
以上のディスクを含み、前記初期化するステップは、少
なくとも2つの前記新しいパリティブロックと新しいデ
ータブロックとの内容を非ゼロ状態に設定するサブステ
ップを含む、請求項1に記載の方法。 - 【請求項9】前記初期化するステップは、前記新しいデ
ータブロックおよび新しいパリティブロックのすべてを
ゼロ状態に設定するサブステップを含む、請求項1に記
載の方法。 - 【請求項10】データブロックおよびパリティブロック
が、第1の組のディスクと前記第1の組に結合される第
2の組のN個のディスクとの上に行および列で存在する
最初のアレイを含む、拡張されたレベル5RAIDディスク
アレイであって、 1個の新しいパリティブロックとN−1個の新しいデー
タブロックとが前記第2の組のディスク上の特定の行に
存在し、 前記新しいパリティブロックとN−1個の新しいデータ
ブロックとがそれらの内容の排他的論理和が0になるよ
うに初期化され、 前記最初のアレイにおける前記特定の行が、前記拡張さ
れたアレイにおいて同じ内容を有するデータブロックに
変更されるパリティブロックを含むことを特徴とする、
アレイ。
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)
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)
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 |
-
1997
- 1997-05-09 US US08/853,968 patent/US6000010A/en not_active Expired - Lifetime
-
1998
- 1998-05-08 AU AU74772/98A patent/AU7477298A/en not_active Abandoned
- 1998-05-08 WO PCT/US1998/009487 patent/WO1998050858A1/en active IP Right Grant
- 1998-05-08 JP JP54856398A patent/JP3242671B2/ja not_active Expired - Fee Related
- 1998-05-08 DE DE69804209T patent/DE69804209T2/de not_active Expired - Fee Related
- 1998-05-08 EP EP98922167A patent/EP0980548B1/en not_active Expired - Lifetime
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 |