JP3266277B2 - 階層記憶管理システムのための変換式raid - Google Patents

階層記憶管理システムのための変換式raid

Info

Publication number
JP3266277B2
JP3266277B2 JP53760498A JP53760498A JP3266277B2 JP 3266277 B2 JP3266277 B2 JP 3266277B2 JP 53760498 A JP53760498 A JP 53760498A JP 53760498 A JP53760498 A JP 53760498A JP 3266277 B2 JP3266277 B2 JP 3266277B2
Authority
JP
Japan
Prior art keywords
block
data
blocks
parity
raid
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 - Lifetime
Application number
JP53760498A
Other languages
English (en)
Other versions
JP2000511318A (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 JP2000511318A publication Critical patent/JP2000511318A/ja
Application granted granted Critical
Publication of JP3266277B2 publication Critical patent/JP3266277B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • 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
    • 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/1014Compression, i.e. RAID systems with parity using compression techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 発明の分野 本発明は、全般的にはディジタル・データ記憶システ
ムに関し、詳細には、しばしば「RAID」と呼ばれるredu
ndant array of independent storage devicesの管理に
関する。
発明の背景 現代のコンピュータ・システムの大量のデータ記憶域
の必要は、大容量記憶装置を必要とする。一般的な記憶
装置は、回転式の磁気ハード・ディスク装置であり、多
数の部品を含む複雑な機械装置は、故障しやすい。通常
のコンピュータ・システムには、そのような装置が複数
含まれる。単一の記憶装置の故障が、そのシステムにと
って非常に破壊的な事象になる可能性がある。多数のシ
ステムが、故障した装置が修復されるか交換され、失わ
れたデータが復元されるまで動作できなくなる。
コンピュータ・システムがより大きく、高速で高信頼
性になるのにつれて、それに対応する記憶装置の記憶容
量、速度および信頼性の向上が必要になってきた。記憶
容量を増やすために単純に記憶装置を追加すると、それ
に対応してどれか1つの装置が故障する確率が高まる。
その一方で、既存の装置のサイズを増やすと、他の改良
がなければ、速度が低下し、信頼性は改良されない傾向
がある。
最近、あるレベルのデータ冗長性を実現するように構
成された、直接アクセス記憶装置のアレイにかなりの関
心が集まっている。このような装置を、一般に「RAID
(Redundant Array of Independent)または(Inexpens
ive)Disks)」と称する。異なる形の冗長性をもたらす
さまざまの種類のRAIDが、1988年6月、ACM SIGMOD Co
nferenceに提出されたパターソン(Patterson)、ギブ
ソン(Gibson)およびカッツ(Katz)による論文「A Ca
se for Redundant Arrays of Inexpensive Disks(RAI
D)」に記載されている。パターソン他は、レベル1な
いし5と呼ばれる5つの種類にRAIDを分類した。このパ
ターソンの用語は、産業界の標準になっている。
RAIDの元来の理論は、複数の比較的安価な小型ディス
ク駆動装置によって、単一のより大きい高価な駆動装置
の容量を実現できるというものである。小型の複数の駆
動装置は、すべてが同時にデータを読み書み(「アクセ
ス」)するので高速にもなる。最後に、小型の駆動装置
はコストが非常に低いので、余分の(冗長な)ディスク
駆動装置を含めることが可能であり、これとなんらかの
記憶管理技法を組み合わせることによって、ある小型駆
動装置が故障した場合に、システムがその駆動装置に記
憶されたデータを復元できるようになる。したがって、
RAIDを用いると、容量、性能および信頼性を高めること
ができる。RAIDが、市場で受け入れられるにつれて、そ
の使用が小容量駆動装置に限れられなくなり、RAIDシス
テムは、現在は、すべての容量の記憶装置を用いて構成
されている。さらに、RAIDシステムは、光ディスク駆動
装置、磁気テープ駆動装置、フロッピ・ディスク駆動装
置など、他の種類の記憶装置を用いて構成することがで
きる。本明細書で使用する用語「RAID」または「RAIDシ
ステム」を、特定の種類の記憶装置に制限されると解釈
してはならない。
パターソンの用語を使用すると、RAIDレベル1は、ミ
ラーリング構成である。RAID−1メモリ構造によれば、
データの単位のそれぞれが、アレイ内の2つの独立の記
憶装置に記憶される。したがって、1つの装置が故障し
た場合に、第2の装置からデータを復元することができ
る。第1図は、RAID−1メモリ構造に従って記憶された
データを示す図である。第1図からわかるように、装置
1に記憶される情報(A、B、C、D)は、装置2に
「ミラーリング」される(A'、B'、C'、D')。同様に、
装置3に記憶される情報(E、F、G、H)は、装置4
にミラーリングされ(E'、F'、G'、H')、装置5に記憶
される情報(I、J、K、L)は、装置6にミラーリン
グされる(I'、J'、K'、L')。
パターソンの用語によれば、RAIDレベル3以上(RAID
−3、RAID−4、RAID−5)では、データ冗長性のため
にパリティ・レコードが使用される。パリティ・レコー
ドは、アレイ内の異なる記憶装置の特定の位置に記憶さ
れるすべてのデータ・レコードの排他的論理和から形成
される。言い換えると、N台の記憶装置のアレイでは、
記憶装置の特定の位置にあるデータのブロックの各ビッ
トが、(N−1)台の記憶装置のグループのその位置の
他のすべてのビットとの排他的論理和をとられて、パリ
ティ・ビットのブロックが作られる。パリティ・ブロッ
クは、残り(N番目)の記憶装置の同一位置に記憶され
る。このアレイの記憶装置が故障した場合、故障した装
置のある位置に含まれるデータは、残りの装置の同一位
置のデータ・ブロックとそれに対応するパリティ・ブロ
ックの排他的論理和をとることによって再生成できる。
RAID−3では、異なるディスク駆動装置の読み書きア
クチュエータのすべてが、同時に動作して、各駆動装置
の同一位置にあるデータにアクセスする。RAID−4およ
びRAID−5は、さらに、ディスク駆動装置内で独立に動
作する読み書きアクチュエータという特徴を有する。言
い換えると、ディスク駆動装置の読み書きヘッドのそれ
ぞれが、アレイ内の他の装置がデータにアクセスしてい
るかどうかに無関係に、ディスク上の任意の位置のデー
タにアクセスすることができる。
RAID−4によれば、情報は、「ブロック」単位で記憶
され、各ブロックが、異なる記憶装置に記憶される。本
明細書の目的に関して、用語「ブロック」は、データの
1つまたは複数のセクタを含むデータのコヒーレントな
単位を指し、このデータは、単一の記憶装置から独立に
アクセス可能である。そのような1つのRAID−4メモリ
構造を含む情報を、「ストライプ」と称する。各ストラ
イプには、アレイの複数の装置202aないし202fに記憶さ
れた情報の一部が含まれる。本明細書の目的に関して、
用語「ストライプ」は、ブロックの組をさし、各ブロッ
クは、他の記憶装置のそれぞれに含まれる他のそれぞれ
のブロックのアドレスに関連するアドレスに記憶される
ことが好ましいが、その代わりに、ブロックの組を含
み、ブロックのそれぞれ(または一部)を、他の装置に
記憶される他のブロックのアドレスに関連しないアドレ
スに記憶することができる。第2図に、RAID−4に従っ
て記憶されたデータの4つのストライプ、204a、204b、
204c、204dを示す。第2図からわかるように、1つのス
トライプ204aには、装置1に記憶されるデータ・ブロッ
ク201、装置2に記憶されるデータ・ブロック203、装置
3に記憶されるデータ・ブロック205、装置4に記憶さ
れるデータ・ブロック207、および、装置5に記憶され
るデータ・ブロック209が含まれる。さらに、1つの装
置202fは、パリティ・ブロック211の「パリティ」情報
の記憶専用である。他の装置のそれぞれには、ユーザ情
報が記憶される。記憶装置のどれかが故障した場合、故
障した装置に記憶されていた情報は、他の装置のそれぞ
れに記憶されているストライプの残りの情報の論理的排
他的論理和をとることによって復元できる。
独立の読み書きを有するパリティ保護されたディスク
・アレイ(すなわちRAID−4またはRAID−5)で遭遇す
る問題の1つが、データ・ブロックが書き込まれる時に
必ずパリティ・ブロックが更新されることに関連するオ
ーバーヘッドである。たとえば、装置1のブロック201
の情報を変更する(すなわち、「新しいデータ」を書き
込んで「古いデータ」を更新する)時には、通常は、古
いデータ、パリティ・ブロック211からの古いパリティ
情報および新しいデータの排他的論理和をとって、更新
されたパリティ情報が作られる。新しいデータと新しい
パリティは、それぞれのブロックに書き込まれる。これ
らの動作は、さまざまな順序で実行することができる
が、通常は、データが更新されるたびに、2つのブロッ
クを読み取り(古いデータと古いパリティの両方)、2
つのブロックを書き込む(新しいデータと新しいパリテ
ィ)ことが必要になる。キャッシュおよび他の技法を使
用することでこの問題を軽減することができるが、RAID
−4システムのパリティ・ディスクは、激しく使用され
るようになる傾向を有する。
参照によって本明細書に組み込まれる米国特許第4761
785号明細書には、パリティ・ブロックがアレイ内のデ
ィスク記憶装置の間で実質的に均等に分配されるタイプ
の独立読み書きアレイが記載されている。パターソン他
は、この種類のアレイをRAID−5と呼んだ。第3図に、
RAID−5構成を示す。パリティ・ブロックを分配するこ
とによって、パリティ更新の重荷が、多少均等にアレイ
内のディスク間で共用されるようになり、したがって、
通常はRAID−5システムならびにRAID−4システムでは
データを書くための同一のread−modify−write(読取
−変更−書込)動作が使用されるにもかかわらず、単一
の専用ディスク駆動装置ですべてのパリティ・レコード
が維持される時に発生する可能性がある潜在的な性能ボ
トルネックが回避される。RAID−5は、パターソンによ
って記載された最も高度なレベルのRAIDである。
異なるメモリ構造フォーマットのそれぞれが、独自の
特性を有し、それゆえに、他のフォーマットのどれより
も特定のデータの記憶に適したものになる可能性があ
る。それと同時に、例外なく優れている単一のフォーマ
ットは存在しない。たとえば、記憶の1バイトあたりの
コストという観点からは、RAID−1は最も高価であり、
パリティ保護されたRAIDはより安価であり、冗長性のな
い記憶装置はさらに安価である。冗長性のない記憶装置
とRAID−1は、一般に、パリティ保護されたフォーマッ
トでのデータの更新の難しさから、パリティ保護された
記憶装置より高速である。パリティ保護されたフォーマ
ットとミラーリング・フォーマットの両方が、冗長であ
るが、ミラーリングは、2つの記憶装置が故障した場合
に、故障した2つの装置に同一の情報が記憶されていな
い限り、これらの2つの装置に記憶された情報のすべて
を回復することができるという点で多少ながらもより堅
牢である。たとえば、第1図を参照すると、装置1と装
置3の両方が故障した場合に、この2つの装置に記憶さ
れていた情報は、装置2と装置4に記憶されたままにな
っている。したがって、故障した記憶装置に含まれるデ
ータを復元することができる。しかし、パリティ保護さ
れた構成の場合、故障した2台の装置に含まれるデータ
のすべてが失われる。というのは、パリティ保護された
構成では、1台の故障した装置に記憶されていた情報を
再構成するために、N−1台の装置からの情報が使用可
能であることが必要になるからである。このNは、RAID
−4ストライプの装置の総数である。
情報を編成する特定の構成を決定する時に速度、堅牢
さおよび必要な空間のトレードオフを行う必要があるの
で、アレイの少なくとも一部を非冗長、一部をミラーリ
ング、一部をパリティ保護に割り振ることができると有
利である。アレイの一部をあるフォーマットまたは別の
フォーマットに動的に割り振る(すなわち、アレイの一
部をあるフォーマットから別のフォーマットに変換し、
逆変換する)能力は、さらに有利である。このような変
換は、まず再フォーマットされるアレイの一部からのす
べてのデータをバッファ(アレイ内またはアレイの外部
のいずれかとすることができる)にコピーし、その後、
アレイのその部分を再フォーマットし、新しいフォーマ
ットでデータをコピー・バックすることによって実行で
きる。しかし、データをバッファにコピーする処理は、
かなりのオーバーヘッドを必要とする。
発明の概要 本発明の目的は、コンピュータ・システムでデータを
記憶するための拡張された方法および装置を提供するこ
とである。
本発明のもう1つの目的は、コンピュータ・システム
のためのより柔軟性のある記憶サブシステムを提供する
ことである。
本発明のもう1つの目的は、コンピュータ・システム
で記憶装置の冗長アレイを管理するための拡張された方
法および装置を提供することである。
本発明のもう1つの目的は、コンピュータ・システム
のユーザの必要に合致するようにコンピュータ・システ
ムの記憶サブシステムを再構成する能力を拡張すること
である。
本発明のもう1つの目的は、RAID−1をRAID−4また
はRAID−5のいずれかに効率的に変換し、逆変換するた
めのシステムおよび方法を提供することである。
柔軟性のあるデータ記憶装置に、ユーザの必要をサポ
ートするようにフォーマットすることのできる記憶装置
のアレイが含まれる。本発明の好ましい実施形態によれ
ば、アレイ内の各記憶装置に、複数のブロックが記憶さ
れ、アレイ内の記憶空間は、ストライプと呼ばれるブロ
ックの組に分割される。アレイ・コントローラは、異な
るメモリ構造に従う独立のストライプのフォーマッティ
ングをサポートする。具体的に言うと、好ましい実施形
態でサポートされるメモリ構造は、非冗長、ミラーリン
グ、およびパリティ保護(RAID−4またはRAID−5)で
ある。ミラーリングされた(RAID−1)情報の1つまた
は複数のストライプが、RAID−4またはRAID−5のいず
れかの情報の等しい数のストライプに変換され、逆変換
され、情報の移動が最小化されることが好ましい。
好ましい実施形態によれば、記憶域の各ブロックは、
5つの状態すなわち(1)EMPTY(空)、(2)DATA
(データ)、(3)PARITY(パリティ)、(4)COPY
(コピー)または(5)FREE(空き)のうちの1つで存
在する。アレイ内の記憶ブロックの各ストライプは、7
つの状態のうちの1つで存在し、7つのストライプ状態
は、ブロックの状態に依存する。ストライプ状態のうち
の3つが非冗長、2つがパリティ保護であり、2つでミ
ラーリングが使用される。いくつかの定義済みの状態遷
移だけが可能である。記憶装置のブロックは、ユーザ情
報を危険にさらすことなくRAIDコントローラがそのブロ
ックの情報を変更できる時(すなわち、記憶された情報
がユーザ情報でもパリティ情報でもなく、パリティの生
成に使用されなかった時)に、EMPTYブロックとして指
定されることが好ましい。記憶装置のブロックは、その
ブロックがユーザ情報の記憶のために予約されている時
に、DATAブロックとして指定されることが好ましい。記
憶装置のブロックは、そこに記憶された情報が、同一ス
トライプに含まれるDATAブロックのそれぞれの論理的排
他的論理和(XOR)の結果である時に、PARITYブロック
として指定されることが好ましい。記憶装置のブロック
は、そこに記憶された情報が、同一ストライプの別の装
置のDATAブロックに記憶された情報のコピーである場合
に、COPYブロックとして指定されることが好ましい。記
憶装置のブロックは、ユーザ情報が現在そこに記憶され
ていないが、そこに記憶された情報が、ストライプ内の
関連するPARITYブロックの値の決定に使用されたので、
その情報をRAID−4(5)のread−modify−writeシー
ケンスに従って変更しなければならない場合に、FREEブ
ロックとして指定されることが好ましい。
RAID−1に従って、各ブロックの2つのコピーを記憶
する、すなわち、第1記憶装置に第1コピー、第2装置
に第2コピーを記憶する。ブロックの第1コピーは、DA
TAブロックとして指定されることが好ましく、ブロック
の第2コピーは、COPYブロックとして指定されることが
好ましい。好ましい実施形態によれば、DATAブロックの
情報とCOPYブロックの情報の両方が、異なる記憶装置に
記憶されるが、関連するDATAブロックとCOPYブロック
は、同一ストライプ内として指定される。したがって、
RAID−1情報のストライプには、同数のDATAブロックと
COPYブロックが含まれることが好ましく、アレイ内の記
憶装置の数は、偶数であることが好ましい。すなわち、
各ストライプは、アレイ内の各装置から1つのブロック
から構成することができる。アレイ内の記憶装置の数が
奇数の場合、各DATAブロックが対応するCOPYブロックを
必要とするので、ストライプに記憶装置のすべてより少
ない数のデータが含まれるか、各ストライプ内に奇数の
ブロックが存在しなければならない。
好ましい実施形態によれば、完全にミラーリングされ
た状態のストライプは、RAID−1ストライプ内の1ブロ
ックをPARITYブロックとして指定し、いくつかの状況情
報を変更することによって、パリティ保護された状態
(RAID−4またはRAID−5)に変換される。この場合、
データの移動は不要である。
非冗長状態またはパリティ保護状態から完全ミラーリ
ング状態への変換が行われる場合には、状態テーブルに
よって、変換が許容される遷移の規則が定義される。ス
トライプ内の各DATAブロックに関連するCOPYブロックを
作成するのに十分な未使用空間(EMPTY状態またはFREE
状態)が存在しなければならない。RAID−1情報のDATA
ブロックおよび関連するCOPYブロックの両方が、同一の
ストライプ内に存在することが好ましいので、変換され
るストライプ(「変換」ストライプ)に記憶された情報
が、ストライプの容量の半分以上を必要とする場合に
は、残されるDATAブロックに関連するCOPYブロックのた
めの余地を作るために、少なくとも一部の情報を別のス
トライプに移動しなければならない。情報が移動される
ストライプ(「受取り側」ストライプ)のそれぞれが、
受取り側ストライプがRAID−1に従って構成される場合
に、DATAブロックおよび関連するCOPYブロックの両方を
記憶するのに十分な余地を有する必要がある。その代わ
りに、データの一部を、パリティ保護された受取り側ス
トライプまたは保護されない受取り側ストライプに移動
することができ、この場合、受取り側ストライプにはデ
ータを記憶するのに十分な余地があれば十分である。DA
TAブロックのコピーが作成され、ストライプ状況が更新
される。
図面の簡単な説明 第1図は、従来技術のRAID−1構造に従って記憶され
たデータを示す図である。
第2図は、従来技術のRAID−4に従って記憶されたデ
ータを示す図である。
第3図は、従来技術のRAID−5に従って記憶されたデ
ータを示す図である。
第4図は、本発明の好ましい実施形態によるRAIDシス
テムを示す図である。
第5A図、第5B図および第5C図は、好ましい実施形態に
よるデータ・ブロックの状況および使用法をマッピング
するのに使用されるデータ構造を示す図である。
第6図は、好ましい実施形態によるRAIDコントローラ
に接続された記憶装置にデータを書き込むために実行さ
れるステップの流れ図である。
第7図は、好ましい実施形態によるデータ・ブロック
のストライプの可能な状況変化を示す状態図である。
第8図は、本発明の1実施形態による、現在ミラーリ
ングされた構造(RAID−1)としてフォーマットされて
いるアレイの一部をパリティ保護された構造(RAID−4
またはRAID−5)に変換するために実行されるステップ
の流れ図である。
第9図は、好ましい実施形態による、1つのストライ
プ901がRAID−1構造としてフォーマットされたアレイ9
00を示す図である。
第10図は、好ましい実施形態による、第9図のRAID−
1構造として構成されたストライプがパリティ保護され
たストライプに変換された後の、第9図のアレイを示す
図である。
第11図は、好ましい実施形態による、パリティ保護さ
れたストライプ(RAID−4またはRAID−5)をミラーリ
ングされた構造(RAID−1)に変換する方法を示す流れ
図である。
第12図は、好ましい実施形態による、非冗長ストライ
プをパリティ保護されたストライプ(RAID−4またはRA
ID−5)に変換する方法を示す流れ図である。
第13図は、本発明の代替実施形態による、奇数個の記
憶装置を有するアレイを示す図である。
好ましい実施形態の詳細な説明 まず第4図を参照すると、本発明の好ましい実施形態
による再構成可能なRAID記憶システムが示されている。
通常のRAID構成の場合と同様に、好ましい実施形態のRA
IDシステム400には、複数の記憶装置401aないし401fが
含まれる。好ましい実施形態では、記憶装置401aないし
401fは、直接アクセス記憶装置(DASD)であり、具体的
には、回転式磁気ハード・ディスク駆動装置記憶装置で
あるが、その代わりに他の種類の記憶装置を使用するこ
とができることを理解されたい。第4図では、便宜上6
台のDASDが図示されているが、本発明によるアレイに
は、3台以上の装置を含めることができることを理解さ
れたい。RAIDコントローラ403が、記憶装置401aないし4
01fに結合される。本発明の好ましい実施形態によれ
ば、RAIDコントローラ403には、ランダム・アクセス・
メモリ(RAM)410とプログラム可能なマイクロプロセッ
サ412が含まれる。データ消失の確率をさらに低下させ
るために、RAM410の一部またはすべてを不揮発性とする
ことができる。マイクロプロセッサ412は、アレイの動
作、具体的には本明細書に記載の方法によるあるフォー
マットから別のフォーマットへの記憶装置の組の変換を
制御する制御プログラム413を実行する。制御プログラ
ム413は、メモリ410に常駐した状態で図示されている
が、その代わりに、読取専用メモリ(ROM)チップなど
の別の制御記憶メモリに常駐することができることを理
解されたい。制御プログラムは、磁気フロッピ・ディス
ク、磁気テープ、光ディスクなどの任意選択の別の周辺
装置からメモリ410にロードすることができ、ホスト・
システム404からダウンロードすることができる。RAID
コントローラ403は、ホスト・システム404からコマンド
と情報を受け取ることが好ましい。ホスト・システム40
4は、プログラムされた汎用ディジタル・コンピュータ
を含む、通常のRAIDシステムに結合することができるな
んらかの装置とすることができる。コマンドによって、
RAIDコントローラ403は、そのコマンドに関連して受け
取った情報をDASDのアレイに記憶するように指示され
る。さらに、コマンドによって、情報を非冗長フォーマ
ット、RAID−1フォーマット、RAID−4フォーマットま
たはRAID−5フォーマットのうちのどれ従って記憶する
かを指示することができる。代替案では、RAIDコントロ
ーラ403が、ホスト・プロセッサからの案内なしに、受
け取った情報を非冗長形式とRAID−1、RAID−4または
RAID−5に従ううちのどれで記憶するかを決定する。
RAIDコントローラア403は、単一のバスによってDASD
のアレイに結合することができる。しかし、好ましい実
施形態では、同時に複数のDASDにデータを伝送すること
のできる接続を設ける。本発明の任意選択の実施形態に
よれば、テープ・アレイなどの任意選択の周辺記憶装置
405も、RAIDコントローラ403に結合される。テープ・ア
レイを用いると、コントローラが、アレイのDASD内の空
間を解放するために、頻繁に使用されない情報をDASDア
レイから外に移動できるようになる。任意選択として、
周辺記憶装置405は、参照によって本明細書に組み込ま
れる、本明細書と同一の譲受人に譲渡される米国特許出
願番号第07/879621号明細書に記載されているように、
書き込まれるデータの一時キャッシュとして使用される
DASDとすることができる。
本発明の好ましい実施形態では、RAID−4およびRAID
−5の両方のフォーマットではなく、いずれかが使用さ
れる。しかし、代替実施形態では、RAIDコントローラ40
3は、RAID−1、RAID−4またはRAID−5のいずれかに
従って情報を記憶することができるものとすることがで
きる。当業者であれば、RAIDコントローラ403が、アレ
イのどの部分が各構成に割り振られているかを知らなけ
ればならないことを理解するであろう。たとえば、アレ
イの一部が、RAID−1による情報の記憶に割り振られ、
アレイの一部が、RAID−5による情報の記憶に割り振ら
れている場合、コントローラ403は、どの部分がどのフ
ォーマットに割り振られているかを意識しなければなら
ない。
RAM410のデータ・ディレクトリ411には、アレイの異
なる部分がどのように使用されるかが記録される。デー
タ・ディレクトリ411には、アレイ内のブロックの現在
の状況すなわち、各ブロックがDATA、COPY、PARITY、EM
PTYまたはFREEのうちのどのブロックであるかと、各ス
トライプのデータ冗長性の形式(ミラーリング、パリテ
ィ保護または非冗長)が記憶される。データ・ディレク
トリ411には、追加情報ならびにアレイのさまざまな部
分の使用法を判定するのに必要な情報を記憶することが
できる。停電または構成要素消失の場合の回復を可能に
するために、データ・ディレクトリ411の冗長コピー
(図示せず)が別の位置(たとえば、DASDのうちの1つ
のの指定された場所または別の周辺装置405上)に存在
するか、データ・ディレクトリ411をRAM410の不揮発部
分に記憶することが好ましい。
第5A図、第5B図および第5C図は、好ましい実施形態に
よる、前述の目的に使用されるデータ・ディレクトリ41
1内のデータ構造のうちの3つを示す図である。第5A図
は、ストライプ状態テーブルを示す図であり、第5B図
は、ブロック状況テーブルを示す図であり、第5C図は、
ホスト・アドレス・マッピング・テーブルを示す図であ
る。ストライプ状態テーブル501には、複数の項目が含
まれ、各項目には、ストライプ・アドレス・フィールド
502と、ストライプ状態フィールド503が含まれる。スト
ライプ・アドレス・フィールド502には、記憶装置での
ストライプのブロックの開始アドレスが記憶される。好
ましい実施形態では、すべてのブロックが同一サイズで
あり、ストライプのすべてのブロックが、それぞれの記
憶装置内で同一のアドレスにあり、したがって、単一の
開始アドレスを識別するだけで、ストライプを識別する
のに十分である。ストライプ状態フィールド503には、
ストライプの現在の状態が含まれ、可能な状態は、第6
図に関連して下で詳細に説明する。
ブロック状況テーブル521には、ブロックごとに1つ
の複数の項目が含まれる。ブロック状況テーブル521の
各項目には、ストライプ識別子フィールド523、装置ID
フィールド524、状況フィールド525、バージョン番号フ
ィールド526および対装置フィールド527が含まれる。ス
トライプ識別子フィールド523は、そのブロックを含む
ストライプを識別するフィールドであり、たとえば、ス
トライプ状態テーブル501の対応する項目を指すポイン
タとすることができる。装置IDフィールド524には、そ
のブロックを含むDASDの識別子が含まれる。各ストライ
プには、どのDASDでも1つを超えないブロックが含まれ
るので、ストライプとDASDを指定することが、ブロック
の指定には十分である。状況フィールド525には、ブロ
ックの使用状況(DATA、COPY、PARITY、FREEまたはEMPT
Y)が記録される。バージョン番号フィールド526には、
バージョン番号が記録される。バージョン番号は、デー
タ更新のたびに増分され、冗長ブロックが同期化されて
いるかどうかの判定に使用される。対装置フィールド52
7は、記憶装置のミラーリングされたブロックの場合は
対にされたブロックを識別し、パリティ保護されたデー
タ・ブロックの場合はパリティ・ブロックを識別するフ
ィールドである。対装置フィールドは、たとえば、対に
されたブロックまたはパリティ・ブロックに対応するブ
ロック状況マップ・テーブル項目を指すポインタとする
か、装置識別子とすることができる。
ホスト・アドレス・マッピング・テーブル541は、ホ
スト・アドレスをブロックにマッピングするテーブルで
ある。好ましい実施形態によれば、ホスト・コンピュー
タ・システムは、記憶サブシステムを単一の大きいアド
レス範囲とみなす。特定のアドレスを読み書きするため
の、ホストからのコマンドは、記憶装置IDとその記憶装
置内のアドレスを参照するように変換しなければならな
いが、これは、ホスト・アドレス・マッピング・テーブ
ル541を用いて達成される。ホスト・アドレス・マッピ
ング・テーブル541には、ホスト・システムによってア
ドレッシングされるブロックごとに1つの複数の項目が
含まれる。各項目には、ホスト・システム・アドレス・
フィールド542とブロック識別子フィールド543が含ま
れ、ブロック識別子フィールドには、ブロックを識別す
るブロック状況テーブル521内の項目を指すポインタが
含まれる。
上で説明したデータ構造は、単一の実施形態だけを示
すものであり、データ構造の多数の変形が可能であるこ
とを理解されたい。たとえば、ホスト・コンピュータ・
システムが、ブロックの物理位置を追跡し、RAIDコント
ローラ403内のホスト・アドレス・マッピング・テーブ
ルを不要にすることが可能である。データ構造は、1つ
の大きいテーブル、連係リストまたはさまざまな他の形
式として構成することがでできる。さらに、実施の正確
な形態に応じて、一部のフィールドが不要になるか、追
加のフィールドが必要になる場合がある。さらに、上で
説明したデータ構造は、RAIDコントローラ403によって
使用される唯一のデータ構造であるとは限らないことを
理解されたい。たとえば、RAIDコントローラ403は、記
憶装置上で割振りに使用できる空き空間のリストを有す
ることが好ましい。これには、FREEまたはEMPTYの状況
を有するブロックだけではなく、DATAブロックのうちの
まだ割り振られていない部分を含めることができる。
通常動作では、RAIDコントローラ403は、ホスト・シ
ステム404から受け取るデータ・アクセス・コマンド
(データの読取または書込)に応答する。ホスト・シス
テム404からのデータ・アクセス・コマンドには、読み
取るブロック(または、セクタなど、ブロックの一部)
のアドレスが含まれる。ホストからのアドレスは、ホス
ト・アドレス・マッピング・テーブル541内の項目にア
クセスするのに使用される。ブロック識別子フィールド
543が、所望のブロックに対応するブロック状況テーブ
ル521内の項目を指す。コントローラは、この項目にア
クセスして、装置IDフィールド524から記憶装置識別子
を取得し、ストライプ識別子フィールド523からストラ
イプ識別子を取得する。これらによって、読み取るべき
ブロックが識別される。その後、RAIDコントローラ403
は、適当な記憶装置に読取コマンドを発行し、記憶装置
内の所望のデータのアドレスを渡す。
書込動作はより複雑である。というのは、(a)RAID
コントローラ403が、現在のブロック使用法を確認しな
ければならず、(b)書込動作によってストライプ状態
の変化が引き起こされる可能性があるからである。第6
図は、書込動作を実行する際にRAIDコントローラ403に
よって実行されるステップの流れ図である。ホスト・シ
ステム404からの書込コマンドに応答して、RAIDコント
ローラ403は、ストライプ状態テーブル501、ブロック状
況テーブル521およびホスト・アドレス・マッピング・
テーブル541を参照して、読取動作に関して上で説明し
たように、記憶装置IDと所望のブロックのアドレスを判
定する(ステップ601)。さらに、コントローラは、ス
トライプ状態テーブル501のストライプ状態フィールド5
03から、ストライプの現在の状況を判定する(ステップ
602)。
可能な状態および状態遷移については、第7図に関連
して下で完全に説明する。ストライプの現在の状態に応
じて、3つの可能な分岐のうちの1つが採用される。現
在の状態が保護されていない状況(番号5、6または
7)のいずれかである場合には、RAIDコントローラ403
は、適当な記憶装置に単純に書込コマンドを発行し、記
憶装置内でデータが書き込まれるアドレスを渡す(ステ
ップ605)。
現在の状態がミラーリング状態(番号1または2)の
いずれかである場合には、RAIDコントローラ403は、ま
ず、ミラーリングされたデータを含む適当な記憶装置に
書込コマンドを発行する(ステップ610)。その後、RAI
Dコントローラ403は、ミラーリングされたデータを含む
ブロックのバージョン番号フィールド526を増分する
(ステップ611)。その後、RAIDコントローラ403は、対
装置フィールド527からミラーリングされたデータのコ
ピーを含む装置の装置IDを見つけ、コピーを含む記憶装
置に書き込みコマンドを発行する(ステップ612)。完
了時に、コピーを含むブロックのバージョン番号フィー
ルド526を、元のデータを含むブロックのバージョン番
号と等しい値に増分する(ステップ613)。
現在の状態が、パリティ保護された状態(番号3また
は4)のいずれかである場合には、RAIDコントローラ40
3は、まずデータを含む記憶装置からデータを読み取り
(ステップ620)、このデータと新たに書き込まれるデ
ータの排他的論理和をとって、一時的変更マスクを生成
し(ステップ621)、新しいデータを記憶装置に書き込
み、バージョン番号フィールドを増分する(ステップ62
2)。その後、RAIDコントローラ403は、対装置フィール
ド527からパリティを含む装置の識別を取得し、このパ
リティ装置から古いパリティ・ブロックを読み取り(ス
テップ625)、この古いパリティ・データと変更マスク
の排他的論理和をとって新しいパリティ・データを生成
し(ステップ626)、新しいデータをパリティ・ブロッ
クに書き込み(ステップ627)、パリティ・ブロックの
バージョン番号フィールドを増分する。
その後、RAIDコントローラ403は、ブロックの状態の
変化が発生したかどうかを判定する。すなわち、データ
が、FREEまたはEMPTYの状況を有するブロックに書き込
まれた場合には、その状況をDATAに変更しなければなら
ない(ステップ630)。ブロックの状況が変化した場
合、ストライプの状況も変化している可能性がある。し
たがって、コントローラは、ストライプの状況の変化が
発生したかどうかを判定し、その変更を反映するように
ストライプ状態フィールド503を更新する(ステップ63
1)。可能な変更とそのトリガになる事象は、第7図に
関連して下で説明する。
上と第6図の読取動作および書込動作の説明は、理解
しやすくするために簡略化されており、本発明の理解に
必須ではない追加の動作を読取または書込と共に実行で
きることを理解されたい。具体的に言うと、RAIDコント
ローラ403は、性能改善のために常駐キャッシュ・メモ
リを有することができ、この場合、通常は、記憶装置か
らの読取またはこれへの書込の前に、キャッシュの内容
が検査される。その代わりに、RAIDコントローラ403
で、書込動作を一時的にキャッシュ記憶するために、外
部ログ記録装置を使用することができる。
受け取った情報をRAID−1、RAID−4またはRAID−5
フォーマットのいずれかで記憶できるほかに、好ましい
実施形態のRAIDコントローラ403は、あるRAIDフォーマ
ットに従ってすでに情報が記憶されているアレイの部分
を別のRAIDフォーマットに再割振りすることができるよ
うに、アレイを再割振りすることができる。たとえば、
RAID−1に従って情報を記憶するように割り振られてい
るアレイの部分を、RAID−5に従って情報を記憶するよ
うに再割振りすることができる。アレイのその部分に記
憶される情報は、その後、RAID−5に従って再フォーマ
ットされる。
アレイの一部のあるRAIDフォーマットから別のRAIDフ
ォーマットへの変換をサポートするために、状態(スト
ライプ状態テーブル501に記憶される)に、各ストライ
プが関連付けられ、状態変化の定義済みの組が、事前に
定義された事象に応答して許可される、一般に、状態変
化を引き起こす事象は、いくつかのデータ書込動作、い
くつかの空間解放の要求(すなわち、既存ブロック内の
データの破棄)および、ストライプのRAIDフォーマット
の変更要求である。第7図に、可能な状態と可能な状態
変化を示す状態図を示す。
以下の7つの状態が定義されている。
1.NEW MIRROR(新規ミラー):この状態は、ストライ
プに書き込まれたデータが、ストライプに書き込まれた
ミラー・コピーも有することを意味する。しかし、この
ストライプの少なくとも1つのブロックがEMPTYであ
る。
2.FULL MIRROR(満杯ミラー):この状態は、ストライ
プのすべてのデータがミラーリングされ、このストライ
プのためのEMPTYブロックが存在しないことを意味す
る。
3.PARITY X(パリティX):この状態は、データがパ
リティ保護されている(たとえばRAID−4またはRAID−
5)が、DATA空間のすべてのコピーを保持するのに十分
なFREEブロックおよびPARITYブロックが存在することを
意味する。
4.FULL PARITY(満杯パリティ):この状態は、データ
がパリティ保護されており、DATAブロックのすべてのコ
ピーを保護するのに十分なFREEブロックおよびPARITYブ
ロックが存在しないことを意味する。
5.UNPROTECTED X(非保護X):この状態は、データ
が保護されていないが、DATAブロックのすべてのコピー
のために十分なEMPTYブロックが存在することを意味す
る。
6.UNPROTECTED(非保護):この状態は、データが保護
されておらず、すべてのDATAブロックのコピーのために
十分なEMPTYブロックが存在しないが、パリティ・ブロ
ック用のEMPTYブロックが存在することを意味する。
7.FULL UNPROTECTED(満杯非保護):この状態は、デ
ータが保護されておらず、EMPTYブロックが存在しない
ことを意味する。
第7図に示された、以下の状態遷移が可能である。
1a この遷移は、データが書き込まれたが、ストライプ
内に少なくとも1つのEMPTYブロックがある時に発生す
る。
1b この遷移は、書込動作の結果として、このストライ
プ内にEMPTYブロックがなくなった(すなわち、データ
が最後のEMPTYブロックに書き込まれ、そのブロックがD
ATAブロックになった)時に発生する。この変化は、第
8図に関連して下で完全に説明する2段階遷移(状態1
から状態2を介して状態3へ)の一部として、ストライ
プ・フォーマットをパリティ保護付きに変更するコマン
ドの時にも発生する。この場合、EMPTYブロックは、コ
ピー内で対にされ、その状況はFREEに変化する。
1c この遷移は、たとえば、データ記憶用の空間を増や
すためなど、ストライプ・フォーマットを変更するコマ
ンドの時に限って発生する。この遷移では、COPY状況を
有するストライプ内のすべてのブロックが、EMPTY状況
に変更される。
2a この遷移は、データがFREEブロックの対に書き込ま
れる(DATAおよびCOPYへの状況変化を引き起こす)時に
発生する。この遷移は、ブロック内の空間を解放するコ
マンドの時にも発生する。後者の場合、ブロックの両方
のコピーがFREEと指定される(使用可能であることが示
される)が、ミラーリングは中断されない。
2b この遷移は、ストライプ・フォーマットを変更する
コマンドの時に限って発生する。この状態変化の手順
は、第8図に関連して下で完全に説明する。
2c この遷移は、ストライプ・フォーマットを変更する
コマンドの時に限って発生する。この遷移では、COPYブ
ロックのすべてが、EMPTY状況に変更される。
3a この遷移は、データがFREEブロックに書き込まれ、
DATAへの状況変化が発生する(下の3bで説明する状況を
除く)時に発生する。この遷移は、DATAブロック内の空
間を解放し、ブロックの状態をFREEに変化させるコマン
ドの時にも発生する。
3b この遷移は、データがFREEブロックに書き込まれ、
状況がDATAに変化し、その結果、残りのFREEブロックと
PARITYブロックがストライプ内のDATAブロックのすべて
をコピーするのに不十分になった時に発生する。
3c この遷移は、ストライプ・フォーマットを変更する
コマンドの時に限って発生する。この状態変化の手順
は、第11図に関連して下で完全に説明する。
3d この遷移は、ストライプ・フォーマットを変更する
コマンドの時に限って発生する。この状態変化の手順
は、第11図に関連して下で完全に説明する。
3e この遷移は、ストライプ・フォーマットを変更する
コマンドの時に限って発生する。すべてのPARITYブロッ
クおよびFREEブロックがEMPTYに変更され、これらのブ
ロックは、追加データの記憶に使用できるようになる。
4a この遷移は、データがFREEブロックに書き込まれた
時か、DATAブロック内の空間を解放するコマンドによっ
てブロックがFREEに変更されたが、ストライプ内のFREE
ブロックおよびPARITYブロックがすべてのDATAブロック
のコピーを保持するために十分(ミラーリング状態への
遷移が可能)でない時に発生する。
4b この遷移は、DATAブロックがFREEに変更された後
に、DATAブロックのすべてのコピーを保持するのに十分
なFREEブロックおよびPARITYブロックができた結果とし
て発生する。
4c この遷移は、ストライプ・フォーマットを変更する
コマンドの時に限って発生する。PARITYブロックとFREE
ブロックのすべてが、EMPTYに変更される。
5a この遷移は、データがEMPTYブロックに書き込ま
れ、そのブロックの状況がDATAに変更された時か、DATA
ブロック内の空間を解放するコマンドによってブロック
がDATAからEMPTYに変更された時で、どちらかの変更の
後に、DATAブロックのすべてのコピーを保持するのに十
分なEMPTYブロックがある(ミラーリング状態への遷移
が可能になった)時に発生する。
5b この遷移は、下でさらに説明するように、ストライ
プ・フォーマットを変更するコマンドの時に限って発生
する。
5c この遷移は、下でさらに説明するように、ストライ
プ・フォーマットを変更するコマンドの時に限って発生
する。
5d この遷移が発生するのは、データがEMPTYブロック
に書き込まれ、EMPTYブロックの状況がDATAに変更され
た時に、変更の結果としてDATA空間のすべてのコピーを
保持するのに十分なEMPTYブロックがストライプになく
なった時に発生する。
5e この遷移は、下でさらに説明するように、ストライ
プ・フォーマットを変更するコマンドの時に限って発生
する。
6a この遷移は、データがEMPTYブロックに書き込ま
れ、その状況がDATAに変更された場合か、DATAブロック
内の空間を解放するコマンドによって、ブロックがDATA
からEMPTYに変更された時で、どちらかの変更の後に、
パリティには十分なEMPTYブロックがあるが、DATAブロ
ックのすべてのコピーを保持するのに十分なEMPTYブロ
ックがない時に発生する。
6b この遷移は、DATAブロック内の空間を解放するコマ
ンドによって、ブロックがDATAからEMPTYに変更された
場合に、DATAブロックのすべてのコピーを保持するのに
十分なEMPTYブロックができた結果として発生する。
6c この遷移は、下でさらに説明するように、ストライ
プ・フォーマットを変更するコマンドの時に限って発生
する。
6d この遷移は、データが最後のEMPTYブロックに書き
込まれ、そのブロックの状況がDATAに変更され、その結
果、EMPTYブロックがなくなった時に発生する。
7a この遷移は、DATAブロック内の空間を解放するコマ
ンドによって、ブロックがDATAからEMPTYに変更された
時に発生する。
上で説明したように、いくつかの遷移は、ストライプ
・フォーマットを変更する「コマンドの時」に発生す
る。RAIDコントローラ403は、ホスト・システム404から
のコマンドに従ってストライプを構成することが好まし
い。ホストは、個々のストライプの構成を記録せず、あ
る量の記憶域がミラーリング構成で存在し、ある量の記
憶域がパリティ保護された構成で存在し、ある量の記憶
域が非保護(すなわち非冗長)構成で存在することだけ
を知っている。RAIDコントローラ403は、ホスト・シス
テム404からの最初の構成コマンドに対して、適当な数
のストライプをそれぞれの構成に割り振ることによって
応答する。その後、ホスト・システム404は、新しいデ
ータを書き込む時に必ず、データをミラーリングする
か、パリティ保護するか、保護しないかを指定する。RA
IDコントローラ403は、この指定に基づいて、適当なス
トライプとブロックを選択する。ホスト・システム404
は、たとえばより多くの空間を開放するため、または、
異なる構成のより多くの空間が必要であることが判明し
たので、構成を変更する場合がある。この場合、ホスト
・システム404は、RAIDコントローラ403に構成コマンド
を送って、ある量の記憶域(ストライプ数)を再構成す
ることを要求する。コントローラは、現在のストライプ
の状態に基づいて、再構成に適当なストライプを選択す
る。RAIDコントローラ403は、最小量のデータが存在す
るストライプを選択することが好ましい。たとえば、ホ
スト・システム404から、あるストライプを非保護状況
からパリティ保護状況に変換するコマンドを受け取った
場合、遷移5(c)は6(c)より好ましい。これは、
同一状態の複数のストライプの間では、最大数のEMPTY
ブロックを有するストライプが好ましく、同数のEMPTY
ブロックを有するストライプの間では、部分的に満たさ
れたDATAブロック内に最大の未使用空間を有するストラ
イプが好ましい(ブロックの一部を割り振ることができ
ると仮定)からである。
代替案では、ホスト・システム404が、ブロックを装
置とアドレスにマッピングし、ユーザ入力を用いるかこ
れなしで、どのストライプをどの形で構成するかを決定
することができることを理解されたい。この場合、RAID
コントローラ403は、ストライプの構成を変更するため
のホスト・コマンドに単純に応答するはずである。代替
案では、RAIDコントローラ403が、それ自体で、所定の
アルゴリズムまたは条件に従って、構成の変更を決定す
ることができる。もう1つの代替案として、ユーザが、
RAIDコントローラ403に直接に構成変更を入力すること
ができる。いくつかの遷移が構成を変更する「コマンド
の時」に行われるという説明は、構成変更をホストによ
って開始されたコマンドに制限するものと解釈してはな
らず、コントローラ自体、ユーザ、または他のなんらか
の方法によって生成された「コマンド」を含むものと解
釈しなければならない。
第8図は、好ましい実施形態による、RAID−1構造と
して現在フォーマットされているアレイの部分をRAID−
4(5)構造に変換するために実行されるステップの流
れ図である。言い換えると、ストライプの状態は、状態
2から状態3(または、状態1から状態2を介して状態
3までの2段階)に変化する。この実施形態では、アレ
イに、偶数個の記憶装置が含まれ、ストライプに、各記
憶装置の1ブロックが含まれ、ストライプの各ブロック
が、それぞれの記憶装置の同一アドレス範囲に配置され
る、第9図は、第8図の方法を実行するためのアレイ90
0を示す図である。RAID−1に従ってフォーマットされ
た情報は、一般にストライプに記憶されないことに留意
されたい。すなわち、RAID−1に従って編成された情報
は、情報のコピーがアレイ内の別の記憶装置のどこかに
常駐することを必要とするに過ぎない。対照的に、本発
明によれば、RAID−1メモリ構造内のデータのブロック
は、そのストライプを変換できるRAID−4またはRAID−
5ストライプと同一の寸法を有する「ストライプ」を形
成するものとして指定される。あるストライプ内のデー
タのブロックは、そこに記憶されたデータの第1ブロッ
クに関連する各DASD内の同一アドレスなど、異なるDASD
内の関連するアドレスに記憶されることが好ましいこと
に留意されたい。しかし、本発明のもう1つの実施形態
では、あるストライプ内のデータの各ブロックを、その
データの他のブロックのアドレスに関連しないアドレス
に記憶することができる。表記を簡潔にするために、ス
トライプをRAID−4ストライプまたはRAID−5ストライ
プのいずれかとすることができる場合に、ストライプを
「RAID−4(5)」ストライプと表記する。第10図に、
第9図でRAID−1ストライプとして構成されたストライ
プ901がRAID−4(5)のストライプ1001に変換された
後のアレイ900を示す。本発明は、以下の観察を利用す
る。それ自体とXORされるデータのブロックは、すべて
が0のブロックをもたらす。すなわち、 (A)XOR(A)=0 (式1) 第9図および第10図の例のRAID−1ストライプには、3
対のブロックが含まれ、各対にデータのブロックとその
データ・ブロックのコピーが含まれるので、任意の5つ
のブロックの間のXOR演算の結果は、第6のブロックと
等しいブロックをもたらす。すなわち、 (A)XOR(A')XOR(B)XOR(B')XOR(C)=(C')
(式2) ここで、A'はAの正確なコピー、B'はBの正確なコピ
ー、C'はCの正確なコピーである。
この関係は、5つのうちの2つが5つのうちの他の2
つのコピーであると仮定すれば、5つのブロックのどれ
のXORをとるかに無関係に成り立つ。したがって、単にR
AID−1ストライプの1つのブロック913の指定をCOPYか
らPARITYに変更し、ブロック905および909をCOPYブロッ
クからFREEに変更することによって、RAID−1ストライ
プが、第10図に示されたRAID−4(5)ストライプに変
換される。PARITYブロックと指定される特定のブロック
の選択によって、ストライプがRAID−4ストライプとRA
ID−5ストライプのどちらとして構成されるかが決定さ
れることがわかる。単一のRAID−4ストライプとRAID−
5ストライプ自体の間には区別がないことが明白であ
る。というのは、各ストライプ内のPARITYブロックの相
対位置によって、RAID−4システムとRAID−5システム
が区別されるからである。
第8図からわかるように、この変換の最初のステップ
は、変換されるブロックの組を識別することである(ス
テップ801)。好ましい実施形態では、各ストライプ
を、RAID−1構成からRAID−4(5)構成はまたはその
逆に、個別に独立に変換することができる。各ストライ
プは、各DASD上のあるアドレス範囲に配置されたすべて
のブロックを含むことが好ましいので、ストライプは、
単にアドレス範囲を指定するか、ブロックのうちの1つ
を指定することによって選択される。しかし、代替案で
は、変換するストライプを識別するステップに、他のも
のを含めることができる。たとえば、ストライプに、互
いに関係のない混合アドレスにあるブロックが含まれる
場合、ストライプの識別に、RAID−1ブロックの個々の
対を選択するステップを含めることができる。代替案で
は、記憶装置のアレイを、ストライプの事前に定義され
たグループだけが選択される(たとえば、多数のブロッ
クを含む単一の大きいアドレス範囲)ように設計する
か、変換がアレイ全体に対してのみ実行されるように設
計することができる。識別は、ユーザによって手作業で
行うことができ、なんらかのアルゴリズム(たとえば、
最近最も使用されていない(LRU)ストライプを選択す
る)に従ってソフトウェアによって実行することができ
る。変換アルゴリズムでは、保留中の書込のすべてが完
了している、すなわち、各DATAブロックとそのそれぞれ
のCOPYブロックが同一のデータを有すると仮定する。こ
れは、バージョン・レベルを検査することによって検証
できる。書込動作が完了していない(バージョン・レベ
ルが一致しない)場合には、処理の前に書込動作を完了
する。
好ましい実施形態によれば、ミラーリング状態には、
状態1(NEW MIRROR)および状態2(FULL MIRROR)
として識別される2つの状態がある。パリティ保護され
た状態(状態3、PARITY X)への状態遷移は、状態2
からのみ許可される。したがって、ストライプが状態1
の場合には、ステップ802の分岐として示されるよう
に、まずストライプを状態2にして(遷移1b)PARITY
X状態への最終的な遷移を容易にする必要がある。NEW
MIRROR状態のストライプをFULL MIRRORにするために
は、EMPTYブロックをミラーリングする、すなわち、EMP
TYブロックに記憶されたもののすべてを別のEMPTYブロ
ックにミラーリングしなければならない。EMPTYブロッ
クに0だけが含まれることが事前にわかっている場合、
これはすでにそうなっている。そうでない場合に、これ
を達成するもっとも簡単な方法は、通常は、EMPTYブロ
ックを0にすることである(その代わりに、これらを互
いに対にし、データのコピーを作ることができる)(ス
テップ803)。その後、EMPTYブロックの状況をFREEに変
更し、ストライプの状態をFULL MIRRORに変更する(ス
テップ804)。
ストライプが状態2(FULL MIRROR)の状態で、ある
DASDを選択して、新しRAID−4(5)ストライプに関連
するパリティ・ブロックを記憶する(ステップ806)。
第9図および第10図では、例としてブロック913が選択
されているが、他のブロックを選択することができるこ
とを理解されたい。好ましい実施形態では、RAIDコント
ローラ403が、パリティ・ブロックに関して事前に定義
されたマッピング・アルゴリズムに従って、パリティ・
ブロックを自動的に選択する。すなわち、好ましい実施
形態では、パリティは、RAID−5に従って構成され、パ
リティ・デバイスの台数は、((N−1)×S MOD
N)+1など(Sはストライプ数、Nはアレイ内の記憶
装置の数)、単純なラウンドロビン公式によって決定さ
れる。しかし、その代わりに、適当なパリティ・ブロッ
クの選択を、ユーザによって実行するか、ホストによっ
て実行するか、なんらかの他の判断基準を含めることが
できることを理解されたい。たとえば、RAID−4が指定
された場合、パリティを含むDASDは、すでに既知であ
り、したがって、パリティを含むブロックは、ストライ
プの識別から既知である。パリティ・ブロックを先に選
択し、その後、パリティ・ブロックの選択から適当なス
トライプを暗示することもできる。したがって、ステッ
プ801ないし806は、異なる順序で実行することができ、
いくつかのステップを同時に実行することもできる。
パリティ・データ記憶のために選択されたブロック91
3は、PARITYブロックとして指定される(ステップ80
7)。「指定」とは、システム内でこれがパリティ・ブ
ロックであることを示すなんらかの記録が作られ、その
結果、今後、システムがそれをそのようなものとして認
識することであることを理解されたい。好ましい実施形
態では、ブロック状況テーブル521のブロック状況フィ
ールド525のブロック状況を更新して、選択されたブロ
ックがパリティ・ブロックであることを反映する、すな
わち、ブロック状況テーブル521のブロックの状況をPAR
ITYに変更する。
PARITYブロックとして指定されたブロック913が、以
前にDATAブロックであった場合(ステップ808)、そのD
ATAブロックに関連するCOPYブロックを、DATAブロック
として指定する(ステップ809)。残りのCOPYブロック
のそれぞれを、FREEブロックとして指定する(ステップ
810)。最後に、ストライプの指定を、FULL MIRROR
(状態2)からPARITY X(状態3)に変更する(ステ
ップ812)。上で説明したように、好ましい実施形態の
「指定」は、ブロック状況テーブル521のブロックの状
況とストライプ状態テーブル501のストライプの状態を
変更することを意味し、この情報は、他の形式で表現で
きることを理解されたい。
式2から、PARITYブロックとしてのブロック913に記
憶される情報は、ストライプ1001内の他のブロック903
ないし911のそれぞれの理論的排他的論理和に等しいこ
とがわかり、したがって、連続する排他的論理和演算に
よってパリティを計算する必要はない。さらに、2つの
ブロック905および909は、FREEと指定されているので、
RAID−1からRAID−4(5)への変換の後に、ストライ
プ1001に追加情報を記憶することができる。
第11図は、パリティ保護されたストライプまたは非冗
長ストライプ(すなわち「変換ストライプ」)をミラー
リングされたストライプ(RAID−1)に変換する方法を
示す流れ図である。ストライプをFULL MIRROR状態に変
換するためには、変換ストライプ内に、DATAブロックの
それぞれのコピーを記憶するのに十分な使用可能空間が
存在しなければならない。第7図の状態図に関して具体
的に言うと、状態3(PARITY X)または状態5(UNPR
OTECTED X)から状態2(FULL MIRROR)への状態遷
移が可能である。これらは、第7図に示された遷移3dお
よび5bである。第10図に、PARITY X状態の変換ストラ
イプであるストライプ1001が示されているが、これは、
FULL MIRROR状態に変換することができる。ストライプ
が状態4、6または7である場合、下で説明するよう
に、FULL MIRRORに変換する前に、そのストライプをま
ず状態3または状態5にしなければならない。したがっ
て、パリティ保護されたストライプまたは保護されない
ストライプに情報を記憶する時には、第2DASD内の第2
ブロックに情報を記憶する前に、第1DASD内の第1ブロ
ックに書き込むことが好ましい。この形で、情報が統合
され、必要な空間を使用可能にしようとする試行のため
に別の処置で情報を統合する必要がなくなる。
第11図からわかるように、この変換の最初のステップ
は、変換されるブロックの組すなわち変換ストライプを
識別することである(ステップ1101)。前に述べたよう
に、好ましい実施形態では、各ストライプをある構成か
ら別の構成に個別に独立に変換することができる。スト
ライプは、第8図に関して上で説明した方法のいずれか
によって識別することができる。
その後、システムは、そのストライプ内にDATAブロッ
クのそれぞれのCOPYブロックを作成するのに十分な未使
用の空間があるかどうかを検証する、具体的に言うと、
RAIDコントローラ403は、ストライプ状態テーブル501を
参照して、ストライプ状態を判定する。状態3または状
態5のいずれかのストライプは、十分な未使用空間を有
する(ステップ1102)。必要なCOPYブロックを記憶する
のに十分な空間が変換ストライプ内に存在しない(すな
わち、ストライプが状態4、状態6または状態7であ
る)場合には、少なくともデータの一部を、変換ストラ
イプから別のストライプまたは、周辺記憶装置405(第
4図参照)に関連するものなどの別の記憶サブシステム
に再配置しなければならない。この処理は、第11図では
ステップ1103ないし1106として図示されている。システ
ムは、まず、DATAブロック内の記憶域を解放できるかど
うかを判定する(ステップ1103)。これは、たとえば、
そのブロックのデータを上書きできるが、圧縮できる
か、他の位置に記憶できるかをユーザに質問することに
よって実行でき、この場合には、ユーザが選択を行う。
その代わりに、RAIDコントローラ403をプログラムし
て、データを再配置できる使用可能ブロックについて他
のストライプを走査する、圧縮できるデータを圧縮す
る、または、テープに再配置するためのブロックを選択
するなどを行い、したがって、ブロックを自動的に再配
置することができる。RAIDコントローラ403は、LRUなど
のアルゴリズムを使用して、圧縮または再配置するブロ
ックを決定することができる。DATAブロックのうちの1
つを解放することが不可能な場合には、この処理は異常
終了し、変換ストライプは変換されない(ステップ110
6)。適当な候補ブロックが見つかった場合には、その
ブロックのデータを、適宜再配置、圧縮または無視し、
ブロック自体を、追加データの記憶のために解放する
(ステップ1104)。RAIDコントローラ403は、ブロック
状況テーブル521のブロックの状況をFREE(ストライプ
が状態4、FULL PARITYの場合)またはEMPTY(ストラ
イプが状態6、UNPROTECTEDまたは状態7、FULL UNPRO
TECEDの場合)に変更し、ストライプ状況を更新する
(ステップ1105)。このブロックの状況の変化は、スト
ライプ状況の状態3または状態5への変化のトリガにな
る可能性がある。その後、このアルゴリズムはステップ
1102を繰り返す。
ストライプがすでに状態3または状態5であるか、上
で説明したようにストライプをどちらかの状態に変換で
きる場合(ステップ1102からの「yes」の分岐)には、R
AIDコントローラ403は、まず、ストライプ内のDATAブロ
ックのすべてをRAM410に読み取る(ステップ1108)。DA
TAブロックは、RAM410に読み取られる際に、部分的に完
了した書込動作として待ち行列化される、すなわち、DA
TAは書き込まれが、COPYは書き込まれていない。RAIDコ
ントローラ403は、EMPTY、FREEおよびPARITYブロックの
状況をCOPYに変更し、対装置フィールド527に適当な項
目を置くことによって、ブロック状況テーブル521を更
新する(ステップ1109)。ブロックがRAMに読み込ま
れ、ブロックの状況がマッピングされた後に限って、ス
トライプの状況がFULL MIRRORに変更される(ステップ
1110)。その後、RAIDコントローラ403は、データをRAM
からCOPYブロックに書き込むことによって、待ち行列化
された動作を完了する(ステップ1112)。この形で、パ
リティ保護された状態からミラーリング状態に変換され
るストライプは、変換の進行中にDASDのうちの1つが故
障した場合でも冗長な状態に保たれる。
第12図は、非冗長ストライプ(すなわち「変換ストラ
イプ」)をパリティ保護されたストライプ(RAID−4ま
たはRAID−5)に変換する方法を示す流れ図である。ス
トライプをパリティ保護された状態に変換するために
は、パリティを記憶するために使用可能な未使用ブロッ
クが変換ストライプ内に1つ存在しなければならない。
第7図の状態図に関して具体的に言うと、状態5(UNPR
OTECTEDX)から状態3(PARITY X)へ、または、状態
6(UNPROTECTED)から状態4(FULL PARITY)への状
態遷移が可能である。これらは、第7図に示された遷移
5cおよび6cである。ストライプが状態7の場合には、下
で説明するように、パリティ保護にする前に、まず状態
6にしなければならない。
ステップ1201ないし1206は、上で説明したステップ11
01ないし1106に類似している。第12図からわかるよう
に、この変換の最初のステップは、変換するブロックの
組すなわち変換ストライプを識別することである(ステ
ップ1201)。前に述べたように、ストライプは、個別に
構成可能であり、第8図に関して上で説明した方法のい
ずれかによって識別することができる。
その後、システムは、ストライプ内のパリティを記憶
するための未使用ブロックが存在するかどうかを検証す
る。具体的に言うと、RAIDコントローラ403は、ストラ
イプ状態テーブル501を参照してストライプ状態を判定
する。状態5または状態6のいずれかのストライプは、
十分な未使用空間を有する(ステップ1202)。必要なPA
RITYブロックを記憶するのに十分な空間が変換ストライ
プ内に存在しない(すなわち、ストライプが状態7であ
る)場合には、第11図に関して上で説明したように、デ
ータの1ブロックを解放しなければならない。システム
は、DATAブロック内の記憶域を解放できるかどうかを判
定し(ステップ1203)、できない場合には、処理が異常
終了する(ステップ1206)。適当な候補ブロックが見つ
かった場合、そのブロック内のデータを適宜再配置、圧
縮または無視し、ブロック自体を、パリティデータの記
憶のために解放する(ステップ1204)。RAIDコントロー
ラ403は、ブロック状況テーブル521のブロックの状況を
EMPTYに変更し、ストライプ状況を更新する(ステップ1
205)。EMPTYブロックの作成によって、ストライプ状況
が状態7から状態6に変化する。このアルゴリズムは、
その後、ステップ1202を繰り返す。
ストライプがすでに状態5または状態6であるか、上
で述べたように状態6に変換できる場合(ステップ1202
の「yes」の分岐)には、RAIDコントローラ403は、ま
ず、パリティを記憶するためのブロックを選択する(ス
テップ1208)。これは、第8図に関連して上で説明した
方法のいずれかによって実行できる。しかし、DATAブロ
ックが選択された場合には、そのブロック内のデータ
を、EMPTYブロックのうちの1つに再配置しなければな
らない。したがって、使用可能なEMPTYブロックを選択
することが好ましい。複数のEMPTYブロックが存在する
場合には、適当なアルゴリズムによって、そのようなEM
PTYブロックを選択することができる。その後、コント
ローラは、パリティの記憶のために選択されたブロック
以外のストライプ内のすべてのブロックを連続して読み
取り、読み取ったブロックの累算的な排他的論理和を生
成する(ステップ1209)。累算的な排他的論理和は、一
時的にRAM410に記憶される。すべてのブロックを読み終
えた時に、結果の累算的な排他的論理和がパリティにな
る。このパリティは、選択されたPARITYブロックに書き
込まれる(ステップ1210)。その後、RAIDコントローラ
403は、パリティ・ブロックの状況をPARITYに変更し、
すべてのEMPTYブロックの状況をFREEに変更し、対装置
フィールド527を適宜変更することによって、ブロック
状況テーブル521を更新する(ステップ1211)。その
後、コントローラは、ストライプ状態テーブル501の状
況を、適宜PARITY XまたはFULL PARITYに変更する
(ステップ1212)。バージョン番号も、パリティが最新
であることを反映するようにセットされる。
好ましい実施形態では、アレイ内の記憶装置の数が偶
数であり、各ストライプに、それぞれの記憶装置の特定
のアドレス範囲のすべてのブロックが含まれる。この配
置では、ストライプのマッピングとパリティ・ブロック
の判定が単純になる。しかし、奇数の記憶装置を有する
アレイを使用することが可能である。この場合、ストラ
イプには、記憶装置の台数より少ない偶数の個数のブロ
ックが含まれることが好ましい。たとえば、ストライプ
内のブロック数は、Nが記憶装置の数であるものとして
N−1とすることができる。このような構成を、第13図
に示す。第13図のアレイでは、データ1A、コピー1A、デ
ータ1Bおよびコピー1Bと記されたブロック(1301ないし
1304)が、1つのストライプを構成し、たとえばデータ
3A、コピー3A、データ3Bおよびコピー3Bと記されたブロ
ック(1305ないし1308)が、第2のストライプを構成す
る。各ストライプには、偶数個のブロックが含まれる
が、ブロックは、すべてが同一のアドレスにはないこと
に留意されたい。このようなストライプは、上で説明し
た技法を使用して、RAID−4(5)フォーマットに変換
することができ、逆変換することができる。ストライブ
のより複雑なマッピングを扱うためには、データ・ディ
レクトリ・テーブルのなんらかの変更が必要になる場合
がある。
その代わりに、ブロックのうちの1つがEMPTYであ
り、0だけを含むことが既知である(EMPTYブロックの
内容が未知または0以外の場合には、0をブロックに書
き込んで正しい条件にすることができる)ならば、上で
説明した技法の変形を使用して、奇数個のブロックを含
むストライプをRAID−1からRAID−4(5)に変換する
ことができる。これは、たとえば、新しいDASDが既存の
アレイに追加された場合にあてはまる。この場合、RAID
−1に従って構成された1つまたは複数のブロック対と
1つの空のブロックを含むように選択されたストライプ
を、(a)パリティ・ブロック(空のブロックとするこ
とができる)を選択し、それをPARITYブロックとして指
定し、(b)選択されたブロックがCOPYブロックであっ
た場合に、他のすべてのCOPYブロックおよびEMPTYブロ
ックをFREEとして指定し、(c)選択されたブロックが
DATAブロックであった場合に、関連するCOPYブロックを
DATAブロックとして指定し、他のすべてのCOPYブロック
およびEMPTYブロックをFREEとして指定し、(d)選択
されたブロックがEMPTYブロックであった場合に、すべ
てのCOPYブロックをFREEとして指定することによって、
RAID−4(5)に変換することができる。同様に、1つ
のブロックが対にされない状態(記憶装置の故障に対し
て保護されないFREEブロックまたはDATAブロックのいず
れかとして)で、RAID−1に逆変換することが可能であ
る。
本発明の好ましい実施形態によれば、ブロックのFRE
E、COPY、DATAまなはEMPTYとしての指定は、RAIDコント
ローラによって実行される。RAIDコントローラは、いず
れもInternational Business Machines Corporation社
が製造し配布する、IBM SSA RAID Adapter for PC Serv
ers、PC ServeRAID SCSI AdapterまたはAS/400 Advance
d System Model 300内のDisk Unit Controllerなどのプ
ログラム可能装置とすることができる。その代わりに、
コントローラは、状態機械、専用ハードウェアまたはAS
IC(特定用途向けIC)とすることができる。その代わり
に、記憶サブシステムの専用RAIDコントローラによって
実行される機能を、コンピュータ・システムの汎用中央
処理装置上で実行されるソフトウェアによって実行する
ことができ、この中央処理装置は、RAIDコントローラ機
能の他に多数のタスクを実行する。
各ブロックの個々の指定は、新しいデータをそのブロ
ックに書き込むことができるかどうかを判定し、できる
場合に新しいデータをread−modify−writeアルゴリズ
ムに従って書き込まなければならないかどうかを判定す
るために、好ましい実施形態に従って実行することがで
きる。他の指定を使用して、類似の結果を達成すること
ができ、各ブロックの指定は、本発明に関係しない他の
目的のためにも使用できることを、当業者であれば理解
するであろう。
記憶装置のアレイの制御プログラムは、磁気フロッピ
・ディスク、磁気テープ、光ディスク、集積回路チッ
プ、または、プログラム式コンピュータによって読み取
ることのできる他の記憶装置またはメモリ装置など、コ
ンピュータ・プログラム製品上に記憶されるプロセッサ
実行可能命令のシーケンスとして実施できる。
好ましい実施形態によれば、RAID−1構成のブロック
の組を、RAID−4構成またはRAID−5構成に変換でき、
逆変換することができる。しかし、RAIDレベルおよび他
の指定に無関係に、同様の特性を有する他の構成を使用
することができることを理解されたい。具体的に言う
と、産業界の一部では、6以上のRAIDレベルが認識され
ている。通常、このようなシステムは、RAIDレベル4ま
たは5のすべての特性を有するが、デュアル・パリティ
・ブロックや追加のスペア・ブロックなどの追加機能も
有する。
第1図、第2図、第3図、第9図、第10図および第13
図に、各装置に比較的少数のブロックが含まれる記憶装
置のアレイを示した。この少ない数は、例示を簡単にす
る目的のみのために選択されたものであり、本発明を特
定の数に制限するものと解釈してはならない。少数のブ
ロックを使用して本発明を実施することが可能である
が、記憶装置のアレイのほとんどが、各記憶装置にはる
かに多数のブロックを有することを、当業者であれば理
解するであろう。
本明細書で図示され、詳細に説明された、あるフォー
マットに従うストライプを別のフォーマットに従うスト
ライプに変換するための特定のシステムおよび方法は、
上で説明した本発明の目的を達成することが完全に可能
であるが、これは本発明の好ましい実施形態であり、し
たがって、本発明によって広く予期される内容を表すも
のであり、本発明の範囲は、当業者に明白になるであろ
う他の実施形態を完全に包含し、本発明の範囲は、請求
項のみによって制限されることを理解されたい。
フロントページの続き (56)参考文献 特開 平8−221875(JP,A) 特開 平8−272548(JP,A) 特開 平8−115173(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 540 G06F 3/06 304 G06F 13/10 340

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のデータ記憶装置に記憶された第1メ
    モリ構造を前記複数のデータ記憶装置に記憶された第2
    メモリ構造に変換するための方法において、 (a)データのブロックの組に含まれる各ブロックが前
    記複数のデータ記憶装置の異なるそれぞれの1つに記憶
    され、前記ブロックの組が複数のブロック対を含み、前
    記各ブロック対に含まれる両方のブロックが同一のデー
    タを含む、変換される前記データのブロックの組を識別
    するステップと、 (b)前記ブロックの組から第1ブロックを選択するス
    テップと、 (c)前記第1ブロックに記憶されたデータを変更する
    ことなくパリティ・ブロックとして指定するステップ
    と、 (d)前記第1ブロックを含まない前記各ブロック対か
    らそれぞれのブロックを選択するステップと、 (e)前記第1ブロックを含まない前記各ブロック対か
    ら選択されたそれぞれのブロックを置換データの記憶に
    使用可能であるとして指定するステップとを含む方法。
  2. 【請求項2】前記ブロックの組のそれぞれのブロック
    が、それぞれのデータ記憶装置の同一アドレスに記憶さ
    れるストライプを含む、請求項1に記載の方法。
  3. 【請求項3】前記それぞれのデータ記憶装置が複数のブ
    ロックを記憶し、前記複数のデータ記憶装置がブロック
    の複数の組を含み、 前記複数の組のうちブロックの第2組が前記第1メモリ
    構造に従って構成されたまま、前記複数の組のうちブロ
    ックの第1組を、前記第1メモリ構造から前記第2メモ
    リ構造へ変換する、請求項1に記載の方法。
  4. 【請求項4】前記ブロックの複数の組の各組を、前記第
    1メモリ構造から前記第2メモリ構造へ個別に独立に変
    換することができる、請求項3に記載の方法。
  5. 【請求項5】前記第1メモリ構造がRAID−1に従って構
    成されたブロックの組であり、前記第2メモリ構造がRA
    ID−4およびRAID−5からなる組のうちの1つに従って
    構成されたブロックの組である、請求項1に記載の方
    法。
  6. 【請求項6】前記第1メモリ構造が複数のCOPYブロック
    およびDATAブロックを含み、各COPYブロックが関連する
    DATAブロックのコピーであって前記関連するDATAブロッ
    クが記憶されるDASDと異なるDASDに記憶され、前記第2
    メモリ構造がパリティ・ブロックとパリティ保護された
    ブロックの組とを含み、各パリティ保護されたブロック
    が前記パリティ・ブロックおよび他のパリティ保護され
    たブロックのそれぞれと異なるDASDに記憶され、 前記第1ブロックがCOPYブロックの場合に、前記第1ブ
    ロックを含まない前記ブロック対から選択されたそれぞ
    れのブロックを置換データの記憶に使用可能であると指
    定する前記ステップが、各他のCOPYブロックをFREEブロ
    ックと指定するステップを含み、 前記第1ブロックがDATAブロックの場合に、前記第1ブ
    ロックを含まない前記ブロック対から選択されたそれぞ
    れのブロックを置換データの記憶に使用可能であると指
    定するステップが、(1)前記第1ブロックに関連する
    COPYブロックをDATAブロックとして指定するステップ
    と、(2)各他のCOPYブロックをFREEブロックとして指
    定するステップとを含む請求項1に記載の方法。
  7. 【請求項7】前記データ記憶装置が、回転式磁気ハード
    ・ディスク駆動装置である、請求項1に記載の方法。
  8. 【請求項8】複数のデータ記憶装置と、前記複数のデー
    タ記憶装置に記憶された第1メモリ構造を前記複数のデ
    ータ記憶装置に記憶された第2メモリ構造に変換するた
    めの制御プログラムを実行し前記複数のデータ記憶装置
    の動作を制御するためのプログラム式プロセッサとを含
    むデータ記憶システムであって、 前記制御プログラムが、前記データ記憶システムのため
    の状況情報を維持し、前記制御プログラムが、変換され
    るデータのブロックの組の各ブロックが前記複数のデー
    タ記憶装置の異なるそれぞれの1つに記憶され、前記ブ
    ロックの組が複数のブロック対を含み、前記各ブロック
    対に含まれる両方のブロックが同一のデータを含む、変
    換される前記ブロックの組の識別に応答して、 (a)前記第1ブロックに含まれるデータを変更せず
    に、前記ブロックの組の第1ブロックをパリティ・ブロ
    ックとして指定するために前記状況情報を更新し、 (b)前記第1ブロックを含まない前記各ブロック対か
    らそれぞれのブロックを置換データの記憶に使用可能と
    して指定するために前記状況情報を更新するデータ記憶
    システム。
  9. 【請求項9】前記プログラム式プロセッサがホスト・コ
    ンピュータ・システムに結合するためのコントローラに
    含まれ、前記コントローラが前記状況情報を記憶するラ
    ンダム・アクセス・メモリを含む、請求項8に記載のデ
    ータ記憶システム。
  10. 【請求項10】データを記憶する複数のデータ記憶装置
    を制御するコントローラであって、 前記複数のデータ記憶装置に記憶された第1メモリ構造
    を前記複数のデータ記憶装置に記憶された第2メモリ構
    造に変換するための制御プログラムを実行し前記複数の
    データ記憶装置の動作を制御するプログラム式プロセッ
    サと、 前記制御プログラムによって維持される状況情報を記憶
    するランダム・アクセス・メモリとを含み、 前記制御プログラムが、データのブロックの組の各ブロ
    ックが前記複数のデータ記憶装置のうちの異なるそれぞ
    れの1つに記憶され、前記ブロックの組が複数のブロッ
    ク対を含み、前記各ブロック対に含まれる両方のブロッ
    クが同一のデータを含む、変換される前記ブロックの組
    の識別に応答して、 (a)前記第1ブロックに含まれるデータを変更せず
    に、前記ブロックの組の第1ブロックをパリティ・ブロ
    ックとして指定するために前記状況情報を更新し、 (b)前記第1ブロックを含まない前記各ブロック対か
    らそれぞれのブロックを置換データの記憶に使用可能で
    あるとして指定するために前記状況情報を更新するコン
    トローラ。
  11. 【請求項11】複数のデータ記憶装置に記憶された第1
    メモリ構造を前記複数のデータ記憶装置に記憶された第
    2メモリ構造に変換するための方法において、 (a)データのブロックの組に含まれる各ブロックが前
    記複数のデータ記憶装置の異なるそれぞれの1つに記憶
    され、前記データのブロックの組がデータが記憶された
    複数のブロックと該複数のブロックから導出されたパリ
    ティが記憶されたブロックとを含む、変換される前記デ
    ータのブロックの組を識別するステップと、 (b)前記複数のブロックのうちの第1ブロックに含ま
    れるデータを変更せずにコピーを作成するために前記パ
    リティを記憶しているブロックを選択するステップと、 (c)前記データのブロックの組の第2のサブセットに
    記憶されたデータを変更することなく記憶するために前
    記データのブロックの組の第1のサブセットは前記パリ
    ティを記憶するブロック以外の少なくとも1つのデータ
    のブロックを有し、前記第2のサブセットは前記第1の
    ブロック以外の少なくとも1つのデータのブロックを有
    する、前記第1のサブセットを選択するステップと、 (d)前記第1のブロックに記憶されたデータを前記パ
    リティが記憶されたブロックにコピーするステップと、 (e)前記第2のサブセットに含まれる各ブロックに記
    憶されたデータを前記第1のサブセットのそれぞれのブ
    ロックにコピーするステップと を有する方法。
  12. 【請求項12】複数のデータ記憶装置と、 データ記憶システムの動作を制御するための制御プログ
    ラムを実行し前記複数のデータ記憶装置の動作を制御す
    るプログラム式プロセッサとを含み、 前記複数のデータ記憶装置のデータがブロックの複数の
    組に編成され、組の各ブロックが前記複数のデータ記憶
    装置のうちの異なるそれぞれの1つに記憶され、 前記制御プログラムが複数の異なるメモリ構造に従う前
    記ブロックの組のフォーマッティングをサポートし、前
    記メモリ構造のうちの少なくとも1つが冗長データ・フ
    ォーマットであり、前記複数の組のうちブロックの第1
    組とブロックの第2組とが互いに独立にフォーマット可
    能であり、 前記制御プログラムによって維持される状況情報を記憶
    するためのランダム・アクセス・メモリを含み、前記状
    況情報が各ブロックのそれぞれのブロック状況と前記ブ
    ロックの第1組と前記ブロックの第2組との別々のそれ
    ぞれの組の状況とを含み、前記組の状況情報がブロック
    のそれぞれの組がそれに従って構成されるメモリ構造の
    識別を含み、 前記制御プログラムが、第1メモリ構造から第2メモリ
    構造に変換されるデータのブロックの組の識別に応答し
    て、(a)変換されるブロックの前記組のブロックのブ
    ロック状況情報を更新し、(b)前記ブロックの組の状
    況情報を、前記組を前記第2メモリ構造に従って構成さ
    れたものとして識別するために更新する データ記憶システム。
JP53760498A 1997-02-27 1997-05-28 階層記憶管理システムのための変換式raid Expired - Lifetime JP3266277B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US805,652 1985-12-06
US08/805,652 1997-02-27
US08/805,652 US5960169A (en) 1997-02-27 1997-02-27 Transformational raid for hierarchical storage management system
PCT/US1997/008985 WO1998038568A1 (en) 1997-02-27 1997-05-28 Transformational raid for hierarchical storage management system

Publications (2)

Publication Number Publication Date
JP2000511318A JP2000511318A (ja) 2000-08-29
JP3266277B2 true JP3266277B2 (ja) 2002-03-18

Family

ID=25192126

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53760498A Expired - Lifetime JP3266277B2 (ja) 1997-02-27 1997-05-28 階層記憶管理システムのための変換式raid

Country Status (6)

Country Link
US (1) US5960169A (ja)
JP (1) JP3266277B2 (ja)
KR (1) KR100321843B1 (ja)
CN (1) CN1191518C (ja)
TW (1) TW436689B (ja)
WO (1) WO1998038568A1 (ja)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998012621A1 (fr) * 1996-09-20 1998-03-26 Hitachi, Ltd. Sous-systeme a piles de disques
US6098119A (en) * 1998-01-21 2000-08-01 Mylex Corporation Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level
US6173415B1 (en) * 1998-05-22 2001-01-09 International Business Machines Corporation System for scalable distributed data structure having scalable availability
US6611897B2 (en) 1999-03-22 2003-08-26 Hitachi, Ltd. Method and apparatus for implementing redundancy on data stored in a disk array subsystem based on use frequency or importance of the data
US6378038B1 (en) * 1999-03-31 2002-04-23 International Business Machines Corporation Method and system for caching data using raid level selection
US6742137B1 (en) * 1999-08-17 2004-05-25 Adaptec, Inc. Object oriented fault tolerance
US6594724B1 (en) * 2000-03-30 2003-07-15 Hitachi Global Storage Technologies Netherlands B.V. Enhanced DASD with smaller supplementary DASD
US6571310B1 (en) 2000-04-20 2003-05-27 International Business Machines Corporation Method and apparatus for managing a heterogeneous data storage system
KR100364895B1 (ko) * 2000-06-12 2002-12-16 아라리온 (주) 데이터 액세스 제어 방법 및 시스템
US6529997B1 (en) * 2000-08-11 2003-03-04 Storage Technology Corporation Apparatus and method for writing and reading data to and from a virtual volume of redundant storage devices
US6654912B1 (en) * 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
US7143249B2 (en) * 2000-10-04 2006-11-28 Network Appliance, Inc. Resynchronization of mirrored storage devices
GB2367655A (en) * 2000-10-06 2002-04-10 Nokia Mobile Phones Ltd Method of using an integrated circuit with defects
US6549978B2 (en) 2001-01-17 2003-04-15 International Business Machines Corporation Method for storage controllers with different data formats to access common storage configuration information
US7080135B1 (en) * 2001-01-24 2006-07-18 Advanced Micro Devices, Inc. Systems and methods for accessing an address table of a network device
US7406682B2 (en) * 2001-03-26 2008-07-29 Emc Corporation Translator-compiler for converting legacy management software
US6643735B2 (en) 2001-12-03 2003-11-04 International Business Machines Corporation Integrated RAID system with the capability of selecting between software and hardware RAID
US6985995B2 (en) * 2002-03-29 2006-01-10 Panasas, Inc. Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US7111125B2 (en) * 2002-04-02 2006-09-19 Ip-First, Llc Apparatus and method for renaming a data block within a cache
JP2005535008A (ja) * 2002-05-31 2005-11-17 フジツウ アイティー ホールディングス,インコーポレイティド インテリジェント記憶装置管理方法およびシステム
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US7383379B2 (en) * 2002-08-07 2008-06-03 Hewlett-Packard Development Company, L.P. Manipulating data in a data storage device using an auxiliary memory device
CA2497306A1 (en) * 2002-09-10 2004-03-25 Exagrid Systems, Inc. Method and apparatus for integrating primary data storage with local and remote data protection
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
US7062673B2 (en) * 2003-05-19 2006-06-13 Hitachi Global Technologies System and method for sparing in RAID-1 system
US20040250028A1 (en) * 2003-06-09 2004-12-09 Daniels Rodger D. Method and apparatus for data version checking
CN101187849A (zh) * 2003-07-07 2008-05-28 日立超大规模集成电路系统株式会社 存储装置和存储系统
US7127505B2 (en) 2003-08-15 2006-10-24 Internet Associates, Llc Methods, computer systems, and computer readable media for generating displays of sets of network addresses with status indicators
US7543296B2 (en) * 2003-08-26 2009-06-02 International Business Machines Corporation Time based multi-tiered management of resource systems
JP2005107838A (ja) * 2003-09-30 2005-04-21 Toshiba Corp ディスクアレイコントローラ及びログ情報記録方法
US7330907B2 (en) * 2003-10-02 2008-02-12 Internet Associates, Llc Methods, computer systems, and computer readable media for controlling the status of network address space
US7386754B2 (en) * 2003-10-16 2008-06-10 Seagate Technology Llc Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity
US7290087B2 (en) * 2003-11-26 2007-10-30 International Business Machines Corporation Adaptive grouping in object raid
JP4486348B2 (ja) * 2003-11-26 2010-06-23 株式会社日立製作所 ドライブの稼働時間を抑止するディスクアレイ
US8140860B2 (en) * 2003-12-15 2012-03-20 International Business Machines Corporation Policy-driven file system with integrated RAID functionality
US7100073B2 (en) * 2004-01-05 2006-08-29 International Business Machines Corporation Grouped-object RAID
CN100343825C (zh) * 2004-01-05 2007-10-17 华为技术有限公司 一种处理流媒体数据的方法
CN100419700C (zh) * 2004-02-11 2008-09-17 鸿富锦精密工业(深圳)有限公司 磁盘容错系统及方法
US7194579B2 (en) * 2004-04-26 2007-03-20 Sun Microsystems, Inc. Sparse multi-component files
US7702948B1 (en) * 2004-07-13 2010-04-20 Adaptec, Inc. Auto-configuration of RAID systems
JP4387261B2 (ja) * 2004-07-15 2009-12-16 株式会社日立製作所 計算機システム、および、記憶装置システムの移行方法
US8726129B1 (en) * 2004-07-23 2014-05-13 Hewlett-Packard Development Company, L.P. Methods of writing and recovering erasure coded data
TWI251745B (en) * 2004-07-27 2006-03-21 Via Tech Inc Apparatus and related method for calculating parity of redundant array of inexpensive disks
JP2006113648A (ja) * 2004-10-12 2006-04-27 Hitachi Ltd ディスクアレイ装置
US8131969B2 (en) * 2004-10-20 2012-03-06 Seagate Technology Llc Updating system configuration information
US7594075B2 (en) 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
CN100388237C (zh) * 2004-10-20 2008-05-14 北京织女星网格技术有限公司 基于轻量计算的数据重组方法
US8131926B2 (en) * 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US7454686B2 (en) * 2004-11-23 2008-11-18 International Business Machines Corporation Apparatus and method to check data integrity when handling data
CN100409196C (zh) * 2004-12-22 2008-08-06 国际商业机器公司 使用数个存储介质来存储和恢复数据文件的方法
CN100388239C (zh) * 2005-01-18 2008-05-14 英业达股份有限公司 在线增加廉价磁盘冗余阵列磁盘数量的方法与系统
US7516285B1 (en) 2005-07-22 2009-04-07 Network Appliance, Inc. Server side API for fencing cluster hosts via export access rights
JP4394047B2 (ja) * 2005-08-05 2010-01-06 信越ポリマー株式会社 キーフレームおよび押釦スイッチ用カバー部材
US7805665B2 (en) * 2005-09-02 2010-09-28 Infortrend Technology, Inc. Parity engine for use in storage virtualization controller and method of generating data by parity engine
US8010753B2 (en) * 2005-09-28 2011-08-30 International Business Machines Corporation Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
US7769948B2 (en) * 2005-10-07 2010-08-03 Agere Systems Inc. Virtual profiles for storage-device array encoding/decoding
US7653783B2 (en) * 2005-10-07 2010-01-26 Agere Systems Inc. Ping-pong state machine for storage-device array
US7644303B2 (en) * 2005-10-07 2010-01-05 Agere Systems Inc. Back-annotation in storage-device array
US8291161B2 (en) * 2005-10-07 2012-10-16 Agere Systems Llc Parity rotation in storage-device array
US20070130232A1 (en) * 2005-11-22 2007-06-07 Therrien David G Method and apparatus for efficiently storing and managing historical versions and replicas of computer data files
US7653829B2 (en) * 2005-12-08 2010-01-26 Electronics And Telecommunications Research Institute Method of data placement and control in block-divided distributed parity disk array
EP2011009A4 (en) * 2006-04-11 2011-06-29 Invensys Sys Inc METHOD AND USER INTERFACES OF SUPPORT CONFIGURATION FOR RATIONALIZING THE INSTALLATION OF REPLACEMENT FIELD DEVICES
US20070283087A1 (en) * 2006-05-30 2007-12-06 Barry Hannigan Method and structure for adapting a storage virtualization scheme using transformations
US8046629B1 (en) * 2006-07-24 2011-10-25 Marvell World Trade Ltd. File server for redundant array of independent disks (RAID) system
US20080091916A1 (en) * 2006-10-17 2008-04-17 Agere Systems, Inc. Methods for data capacity expansion and data storage systems
US20080115071A1 (en) * 2006-10-19 2008-05-15 Fair Thomas T System And Methods For Zero-Configuration Data Backup
KR100854032B1 (ko) * 2007-02-09 2008-08-26 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US7861036B2 (en) * 2007-09-18 2010-12-28 Agere Systems Inc. Double degraded array protection in an integrated network attached storage device
JP4402711B2 (ja) * 2007-11-05 2010-01-20 富士通株式会社 ディスクアレイ装置、ディスクアレイ装置制御方法、ディスクアレイ装置制御プログラムおよびディスクアレイ制御装置
US8001417B2 (en) * 2007-12-30 2011-08-16 Agere Systems Inc. Method and apparatus for repairing uncorrectable drive errors in an integrated network attached storage device
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
JP2010049637A (ja) * 2008-08-25 2010-03-04 Hitachi Ltd 計算機システム、ストレージシステム及び構成管理方法
JP2010066848A (ja) * 2008-09-09 2010-03-25 Toshiba Storage Device Corp 記憶装置の管理方法及び記憶装置、並びに記憶システム
US7904749B2 (en) * 2008-10-24 2011-03-08 Hitachi, Ltd. Fast data recovery from HDD failure
JP5146357B2 (ja) * 2009-02-25 2013-02-20 富士通株式会社 データ診断装置、データ診断システム、データ診断方法及びデータ診断プログラム
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US8874628B1 (en) * 2009-10-15 2014-10-28 Symantec Corporation Systems and methods for projecting hierarchical storage management functions
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
JP4940322B2 (ja) * 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
US20150121003A1 (en) * 2010-09-07 2015-04-30 Daniel L. Rosenband Storage controllers
US20120059976A1 (en) * 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8694866B2 (en) * 2011-03-15 2014-04-08 California Institute Of Technology MDS array codes with optimal building
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US20130198585A1 (en) * 2012-02-01 2013-08-01 Xyratex Technology Limited Method of, and apparatus for, improved data integrity
US8977893B2 (en) * 2012-02-17 2015-03-10 Lsi Corporation Accelerated rebuild and zero time rebuild in raid systems
KR20130097350A (ko) * 2012-02-24 2013-09-03 한국전자통신연구원 비대칭 클러스터링 파일 시스템에서 복제 기반의 파일을 패리티 기반의 파일로 변환하는 장치 및 방법
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
WO2014101144A1 (zh) * 2012-12-28 2014-07-03 华为技术有限公司 储存数据的方法及装置
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9811455B2 (en) * 2013-03-15 2017-11-07 The Boeing Company Accessing different types of memory by respective distinct command with different timing requirements
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9329938B2 (en) 2013-04-16 2016-05-03 International Business Machines Corporation Essential metadata replication
US9619404B2 (en) 2013-04-16 2017-04-11 International Business Machines Corporation Backup cache with immediate availability
US9423981B2 (en) 2013-04-16 2016-08-23 International Business Machines Corporation Logical region allocation with immediate availability
US9298617B2 (en) 2013-04-16 2016-03-29 International Business Machines Corporation Parallel destaging with replicated cache pinning
US9104597B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Destaging cache data using a distributed freezer
US9104332B2 (en) 2013-04-16 2015-08-11 International Business Machines Corporation Managing metadata and data for a logical volume in a distributed and declustered system
US9298398B2 (en) * 2013-04-16 2016-03-29 International Business Machines Corporation Fine-grained control of data placement
KR20140124674A (ko) * 2013-04-17 2014-10-27 한국전자통신연구원 파일 수준의 데이터 분산 저장 방법
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9218244B1 (en) * 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9588843B2 (en) * 2014-07-14 2017-03-07 International Business Machines Corporation System and method for transferring traditional RAID to distributed array
CN104714758B (zh) * 2015-01-19 2017-07-07 华中科技大学 一种基于校验raid加入镜像结构的阵列构建方法及读写系统
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10606501B2 (en) * 2015-12-04 2020-03-31 International Business Machines Corporation Management of paging in compressed storage
KR102533389B1 (ko) 2016-02-24 2023-05-17 삼성전자주식회사 장치 수명을 향상시키는 데이터 저장 장치 및 이를 포함하는 raid 시스템
CN105843556B (zh) * 2016-03-21 2019-01-11 浙江宇视科技有限公司 一种vd选取方法及装置
CN107870730B (zh) * 2016-09-23 2020-11-20 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和系统
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
CN109725838B (zh) * 2017-10-27 2022-02-25 伊姆西Ip控股有限责任公司 用于管理多个盘的方法、装置以及计算机可读介质
CN108170117B (zh) * 2017-11-24 2020-12-15 宁波兴为汽车电子有限公司 一种车载模块参数自动识别分配的方法及系统
US11169961B2 (en) * 2018-06-29 2021-11-09 Weka.IO Ltd. Data migration in a distributive file system
CN111124746B (zh) * 2018-10-30 2023-08-11 伊姆西Ip控股有限责任公司 管理独立盘冗余阵列的方法、设备和计算机可读介质
CN111124269B (zh) 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机可读存储介质
CN111324287A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
US10977073B2 (en) * 2019-07-10 2021-04-13 Dell Products L.P. Architectural data mover for RAID XOR acceleration in a virtualized storage appliance

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5148432A (en) * 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
US5166939A (en) * 1990-03-02 1992-11-24 Micro Technology, Inc. Data storage apparatus and method
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5375128A (en) * 1990-10-18 1994-12-20 Ibm Corporation (International Business Machines Corporation) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
US5301297A (en) * 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
US5410667A (en) * 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US5581724A (en) * 1992-10-19 1996-12-03 Storage Technology Corporation Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem
US5487160A (en) * 1992-12-04 1996-01-23 At&T Global Information Solutions Company Concurrent image backup for disk storage system
JPH06187249A (ja) * 1992-12-16 1994-07-08 Nec Eng Ltd ディスクアレイ装置
US5463765A (en) * 1993-03-18 1995-10-31 Hitachi, Ltd. Disk array system, data writing method thereof, and fault recovering method
US5581690A (en) * 1993-06-29 1996-12-03 Digital Equipment Corporation Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system
US5390327A (en) * 1993-06-29 1995-02-14 Digital Equipment Corporation Method for on-line reorganization of the data on a RAID-4 or RAID-5 array in the absence of one disk and the on-line restoration of a replacement disk
US5504858A (en) * 1993-06-29 1996-04-02 Digital Equipment Corporation Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5446855A (en) * 1994-02-07 1995-08-29 Buslogic, Inc. System and method for disk array data transfer
US5479653A (en) * 1994-07-14 1995-12-26 Dellusa, L.P. Disk array apparatus and method which supports compound raid configurations and spareless hot sparing
US5463776A (en) * 1994-09-22 1995-10-31 Hewlett-Packard Company Storage management system for concurrent generation and fair allocation of disk space among competing requests
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks
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
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
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array

Also Published As

Publication number Publication date
CN1191518C (zh) 2005-03-02
JP2000511318A (ja) 2000-08-29
WO1998038568A1 (en) 1998-09-03
KR20000070207A (ko) 2000-11-25
US5960169A (en) 1999-09-28
KR100321843B1 (ko) 2002-02-02
CN1247608A (zh) 2000-03-15
TW436689B (en) 2001-05-28

Similar Documents

Publication Publication Date Title
JP3266277B2 (ja) 階層記憶管理システムのための変換式raid
US6898668B2 (en) System and method for reorganizing data in a raid storage system
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US7386758B2 (en) Method and apparatus for reconstructing data in object-based storage arrays
JP3358687B2 (ja) ディスクアレイ装置
US5546535A (en) Multiple controller sharing in a redundant storage array
JP2769443B2 (ja) 記憶サブシステム及び関連する装置/方法
US5689678A (en) Distributed storage array system having a plurality of modular control units
US6516425B1 (en) Raid rebuild using most vulnerable data redundancy scheme first
US7107320B2 (en) Data mirroring between controllers in an active-active controller pair
US20150149719A1 (en) Flexible data storage system
US20110197024A1 (en) Providing redundancy in a virtualized storage system for a computer system
US8041891B2 (en) Method and system for performing RAID level migration
JPH0675708A (ja) アレイ型記録装置
JPH05505265A (ja) 独立ディスクの冗長アレイに適用できるデータ訂正
JPH0619632A (ja) コンピユータ・システムのストレージ装置及びデータのストア方法
JP4884721B2 (ja) 記憶装置のフォーマットを不要としたストレージシステム及び記憶制御方法
US10067833B2 (en) Storage system
US20060109792A1 (en) Apparatus and method to check data integrity when handling data
US7346733B2 (en) Storage apparatus, system and method using a plurality of object-based storage devices
JPH09269871A (ja) ディスクアレイ装置におけるデータ再冗長化方式
US7240237B2 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
US7293193B2 (en) Array controller for disk array, and method for rebuilding disk array
JP4252102B2 (ja) 計算機システムおよび二次記憶装置
JP2006178926A (ja) 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080111

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090111

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090111

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100111

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100111

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20140111

Year of fee payment: 12

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

EXPY Cancellation because of completion of term