JPH04233025A - パリティ保護データを回復するための方法および装置 - Google Patents
パリティ保護データを回復するための方法および装置Info
- Publication number
- JPH04233025A JPH04233025A JP3077305A JP7730591A JPH04233025A JP H04233025 A JPH04233025 A JP H04233025A JP 3077305 A JP3077305 A JP 3077305A JP 7730591 A JP7730591 A JP 7730591A JP H04233025 A JPH04233025 A JP H04233025A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- parity
- storage device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 12
- 238000013500 data storage Methods 0.000 claims abstract description 35
- 238000012545 processing Methods 0.000 claims abstract description 4
- 241001522296 Erithacus rubecula Species 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
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
-
- 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/1084—Degraded mode, e.g. caused by single or multiple storage removals or disk failures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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/1028—Distributed, i.e. distributed RAID systems with parity
-
- 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/104—Metadata, i.e. metadata associated with RAID systems with parity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、コンピュータのデータ
記憶装置に関するパリティ情報の維持に関し、より具体
的には、故障した記憶装置からのデータを再構築する際
に、コンピュータ・システムの使用可能性を維持するこ
とに関する。
記憶装置に関するパリティ情報の維持に関し、より具体
的には、故障した記憶装置からのデータを再構築する際
に、コンピュータ・システムの使用可能性を維持するこ
とに関する。
【0002】
【従来の技術】現代のコンピュータ・システムのデータ
記憶ニーズは、大容量のデータ記憶装置を必要としてい
る。普通に使われている記憶装置は磁気ディスク装置で
あり、故障しやすい多数の部品を含む複雑な機械である
。通常のコンピュータ・システムは、この磁気ディスク
装置を複数台含んでいる。ユーザがそのデータ記憶ニー
ズを増大させるにつれて、より多くの記憶装置を含むよ
うにシステムが構成されていく。このシステムにとって
、一台の記憶装置の故障が、非常に破壊的な事象となる
可能性がある。多くのシステムは、欠陥装置が修理また
は交換され、失われたデータが復元されるまで、動作で
きない。記憶装置の台数が増えるにつれて、いずれか1
台の装置が故障して、システム障害をもたらす確率も増
大する。同時に、コンピュータ・ユーザは、ますますそ
のシステムの一貫した使用可能性に対する依存を深めて
いる。したがって、故障した記憶装置に含まれていたデ
ータを再構築し、記憶装置の故障が存在する状態でシス
テムの動作を持続させる、改良された方法を見つけるこ
とが必須になってきた。
記憶ニーズは、大容量のデータ記憶装置を必要としてい
る。普通に使われている記憶装置は磁気ディスク装置で
あり、故障しやすい多数の部品を含む複雑な機械である
。通常のコンピュータ・システムは、この磁気ディスク
装置を複数台含んでいる。ユーザがそのデータ記憶ニー
ズを増大させるにつれて、より多くの記憶装置を含むよ
うにシステムが構成されていく。このシステムにとって
、一台の記憶装置の故障が、非常に破壊的な事象となる
可能性がある。多くのシステムは、欠陥装置が修理また
は交換され、失われたデータが復元されるまで、動作で
きない。記憶装置の台数が増えるにつれて、いずれか1
台の装置が故障して、システム障害をもたらす確率も増
大する。同時に、コンピュータ・ユーザは、ますますそ
のシステムの一貫した使用可能性に対する依存を深めて
いる。したがって、故障した記憶装置に含まれていたデ
ータを再構築し、記憶装置の故障が存在する状態でシス
テムの動作を持続させる、改良された方法を見つけるこ
とが必須になってきた。
【0003】これらの問題に対処する一つの方法は、「
ミラー(対称)構成」と呼ばれるものである。この方法
は、元のデータと同じデータを含む、重複した1セット
の記憶装置を維持するものである。元のセット中のいず
れかの装置が故障した場合、この重複セットを使って、
システムにデータを供給するタスクを引き受けることが
できる。これは、この問題を解決するための非常に有効
な方法であるが、顧客が2倍の記憶装置の代金を支払わ
なければならないので、非常に高くつく。
ミラー(対称)構成」と呼ばれるものである。この方法
は、元のデータと同じデータを含む、重複した1セット
の記憶装置を維持するものである。元のセット中のいず
れかの装置が故障した場合、この重複セットを使って、
システムにデータを供給するタスクを引き受けることが
できる。これは、この問題を解決するための非常に有効
な方法であるが、顧客が2倍の記憶装置の代金を支払わ
なければならないので、非常に高くつく。
【0004】より安価な別の方法は、パリティ・ブロッ
クを使用するものである。パリティ・ブロックとは、異
なる記憶装置上の特定の位置に記憶されたすべてのデー
タ・レコードの排他的ORによって形成されるレコード
である。言い換えれば、記憶装置の特定の位置にあるデ
ータ・ブロック中の各ビットが、装置グループ中の各記
憶装置の同じ位置にある他のあらゆるビットと排他的O
Rされて、パリティ・ビットのブロックを生成し、この
パリティ・ブロックが別の記憶装置の同じ位置に記憶さ
れる。そのグループ中のいずれかの記憶装置が故障した
場合、残りの装置の同じ位置にあるデータ・ブロックと
それに対応するパリティ・ブロックの排他的ORをとる
ことにより、故障した装置のいずれかの位置に含まれる
データを再生させることができる。
クを使用するものである。パリティ・ブロックとは、異
なる記憶装置上の特定の位置に記憶されたすべてのデー
タ・レコードの排他的ORによって形成されるレコード
である。言い換えれば、記憶装置の特定の位置にあるデ
ータ・ブロック中の各ビットが、装置グループ中の各記
憶装置の同じ位置にある他のあらゆるビットと排他的O
Rされて、パリティ・ビットのブロックを生成し、この
パリティ・ブロックが別の記憶装置の同じ位置に記憶さ
れる。そのグループ中のいずれかの記憶装置が故障した
場合、残りの装置の同じ位置にあるデータ・ブロックと
それに対応するパリティ・ブロックの排他的ORをとる
ことにより、故障した装置のいずれかの位置に含まれる
データを再生させることができる。
【0005】米国特許第4092732号は、パリティ
・ブロック法を記載している。この特許の装置では、1
台の記憶装置を使って、1群の記憶装置のパリティ情報
を記憶する。そのパリティ・レコードでカバーされるグ
ループ中のいずれかの記憶装置上でレコードが変更され
るごとに、パリティ・ブロックを含む記憶装置での読取
りと書込みが行なわれる。したがって、パリティ・レコ
ードを含む記憶装置が、記憶動作のネックとなる。米国
特許第4761785号明細書は、パリティ・ブロック
を1セットの記憶装置の間にほぼ均等に分配することに
より、パリティ情報の記憶を改善するものである。この
特許を、引用により本明細書に合体する。1セット中の
N個の記憶装置が、それぞれが複数のレコードを含む、
サイズの等しい多数のアドレス・ブロックに分割される
。同じアドレス範囲をもつ各記憶装置からのブロックが
集まって、ブロック・ストライプを形成する。各ストラ
イプは、1台の記憶装置上にそのストライプの残りのブ
ロックのパリティを含むブロックを有する。異なるスト
ライプのパリティ・ブロックが、異なる記憶装置の間に
ラウンド・ロビン方式で分配される。
・ブロック法を記載している。この特許の装置では、1
台の記憶装置を使って、1群の記憶装置のパリティ情報
を記憶する。そのパリティ・レコードでカバーされるグ
ループ中のいずれかの記憶装置上でレコードが変更され
るごとに、パリティ・ブロックを含む記憶装置での読取
りと書込みが行なわれる。したがって、パリティ・レコ
ードを含む記憶装置が、記憶動作のネックとなる。米国
特許第4761785号明細書は、パリティ・ブロック
を1セットの記憶装置の間にほぼ均等に分配することに
より、パリティ情報の記憶を改善するものである。この
特許を、引用により本明細書に合体する。1セット中の
N個の記憶装置が、それぞれが複数のレコードを含む、
サイズの等しい多数のアドレス・ブロックに分割される
。同じアドレス範囲をもつ各記憶装置からのブロックが
集まって、ブロック・ストライプを形成する。各ストラ
イプは、1台の記憶装置上にそのストライプの残りのブ
ロックのパリティを含むブロックを有する。異なるスト
ライプのパリティ・ブロックが、異なる記憶装置の間に
ラウンド・ロビン方式で分配される。
【0006】前記の米国特許第4092732号および
第4761785号明細書に記載されているようにパリ
ティ・レコードを使用すると、ミラー構成に比べてデー
タ保護のコストが大幅に低下する。しかし、上記の両特
許はデータの回復または保護手段は教示しているが、デ
ータの再構築中にシステムを動作状態に保つ手段は提供
していない。故障した記憶装置を修理または交換し、続
いてデータを再構築するためにメモリ制御装置を停止す
る間、正常な動作は中断される。この従来技術は専らデ
ータの再構築に依拠しているので、システムがかなりの
時間動作不能になることがある。
第4761785号明細書に記載されているようにパリ
ティ・レコードを使用すると、ミラー構成に比べてデー
タ保護のコストが大幅に低下する。しかし、上記の両特
許はデータの回復または保護手段は教示しているが、デ
ータの再構築中にシステムを動作状態に保つ手段は提供
していない。故障した記憶装置を修理または交換し、続
いてデータを再構築するためにメモリ制御装置を停止す
る間、正常な動作は中断される。この従来技術は専らデ
ータの再構築に依拠しているので、システムがかなりの
時間動作不能になることがある。
【0007】従来技術は、重複したまたは待機の記憶装
置を使用しない動的システム回復および継続動作を教示
していない。ミラー構成では、記憶装置の数を倍にする
必要がある。それほど極端でない手法は、1台以上の待
機装置、すなわち元来のセット中のいずれかの装置が故
障した場合にオンラインにすることのできる、追加の予
備ディスク・ドライブを使用するものである。この手法
は、完全にミラー構成のシステムほどコストはかからな
いが、それでも通常は有用な機能を果さない、追加の記
憶装置が必要である。
置を使用しない動的システム回復および継続動作を教示
していない。ミラー構成では、記憶装置の数を倍にする
必要がある。それほど極端でない手法は、1台以上の待
機装置、すなわち元来のセット中のいずれかの装置が故
障した場合にオンラインにすることのできる、追加の予
備ディスク・ドライブを使用するものである。この手法
は、完全にミラー構成のシステムほどコストはかからな
いが、それでも通常は有用な機能を果さない、追加の記
憶装置が必要である。
【0008】
【発明が解決しようとする課題】本発明の一目的は、多
数のデータ記憶装置をもつコンピュータ・システムでデ
ータ喪失から回復するための改良された方法および装置
を提供することにある。
数のデータ記憶装置をもつコンピュータ・システムでデ
ータ喪失から回復するための改良された方法および装置
を提供することにある。
【0009】本発明の他の目的は、複数のデータ記憶装
置をもつコンピュータ・システムが、データ記憶装置が
1台故障しても引き続き動作できる、改良された方法お
よび装置を提供することにある。
置をもつコンピュータ・システムが、データ記憶装置が
1台故障しても引き続き動作できる、改良された方法お
よび装置を提供することにある。
【0010】本発明の他の目的は、複数の保護された記
憶装置をもつデータ処理システムにおけるデータ保護の
コストを節減することにある。
憶装置をもつデータ処理システムにおけるデータ保護の
コストを節減することにある。
【0011】本発明の他の目的は、データ記憶装置の1
台が故障して、システムが故障した装置に含まれるデー
タを再構築しなければならないときに、複数のデータ記
憶装置をもつコンピュータ・システムの性能を向上させ
ることにある。
台が故障して、システムが故障した装置に含まれるデー
タを再構築しなければならないときに、複数のデータ記
憶装置をもつコンピュータ・システムの性能を向上させ
ることにある。
【0012】
【課題を解決するための手段】記憶制御装置は、複数の
データ記憶装置にサービスする。制御装置上にある記憶
管理機構が、そのサービスする記憶装置上のパリティ・
レコードを維持する。データとパリティ・ブロックは、
上記の米国特許第4761785号に記載されているよ
うに編成する。記憶装置が故障した場合でも、システム
は動作し続ける。記憶管理機構は、故障装置へのアクセ
スが試みられたとき、その装置上にあったデータを再構
築し、それを残りの記憶装置のパリティ・ブロック域に
記憶する。
データ記憶装置にサービスする。制御装置上にある記憶
管理機構が、そのサービスする記憶装置上のパリティ・
レコードを維持する。データとパリティ・ブロックは、
上記の米国特許第4761785号に記載されているよ
うに編成する。記憶装置が故障した場合でも、システム
は動作し続ける。記憶管理機構は、故障装置へのアクセ
スが試みられたとき、その装置上にあったデータを再構
築し、それを残りの記憶装置のパリティ・ブロック域に
記憶する。
【0013】記憶管理機構は、各データ・ブロックごと
に、対応するパリティ・ブロックの位置とデータ・ブロ
ックの状況とを示す状況マップを含む。ある記憶装置が
故障した場合、記憶管理機構は故障動作モードになる。 故障動作モードの間、記憶管理機構は、故障した記憶装
置にアクセスする前に、状況マップを検査する。データ
がまだ再構築されていない場合、記憶管理機構はまず、
そのパリティ・ブロックを含むパリティ・グループ内の
、すべての記憶装置上の同じブロックの排他的OR(X
OR)を次々に読み取って累計することにより、その記
憶ブロック内のデータを再構築しなければならない。こ
の排他的ORの結果得られるデータ・ブロックが再構築
されたデータであり、次にそれがそのパリティ・ブロッ
クの位置に記憶される。次いで状況マップが、そのブロ
ックが再構築されたことを示すように更新される。デー
タが再構築された後は、以前のパリティ・ブロックから
直接読み取る、または以前のパリティ・ブロックに直接
書き込むだけでよい。同様にして、記憶管理機構は、(
故障していない装置上の)同じストライプ上の他のどの
ブロックに書き込む前にも、故障した装置上の記憶ブロ
ックからデータを再構築する。このことが必要なのは、
そのストライプ上のいずれかのブロックへの書込み動作
でパリティが変化し、後で故障した装置上のデータ・ブ
ロックを再構築することが不可能になるからである。す
なわち、ある記憶装置が故障すると、読取り動作および
書込み動作の際に記憶管理機構がデータを再構築するの
で、最初はシステム性能が低下する。データが再構築さ
れた後は、機能は速やかに向上する。
に、対応するパリティ・ブロックの位置とデータ・ブロ
ックの状況とを示す状況マップを含む。ある記憶装置が
故障した場合、記憶管理機構は故障動作モードになる。 故障動作モードの間、記憶管理機構は、故障した記憶装
置にアクセスする前に、状況マップを検査する。データ
がまだ再構築されていない場合、記憶管理機構はまず、
そのパリティ・ブロックを含むパリティ・グループ内の
、すべての記憶装置上の同じブロックの排他的OR(X
OR)を次々に読み取って累計することにより、その記
憶ブロック内のデータを再構築しなければならない。こ
の排他的ORの結果得られるデータ・ブロックが再構築
されたデータであり、次にそれがそのパリティ・ブロッ
クの位置に記憶される。次いで状況マップが、そのブロ
ックが再構築されたことを示すように更新される。デー
タが再構築された後は、以前のパリティ・ブロックから
直接読み取る、または以前のパリティ・ブロックに直接
書き込むだけでよい。同様にして、記憶管理機構は、(
故障していない装置上の)同じストライプ上の他のどの
ブロックに書き込む前にも、故障した装置上の記憶ブロ
ックからデータを再構築する。このことが必要なのは、
そのストライプ上のいずれかのブロックへの書込み動作
でパリティが変化し、後で故障した装置上のデータ・ブ
ロックを再構築することが不可能になるからである。す
なわち、ある記憶装置が故障すると、読取り動作および
書込み動作の際に記憶管理機構がデータを再構築するの
で、最初はシステム性能が低下する。データが再構築さ
れた後は、機能は速やかに向上する。
【0014】好ましい実施例では、記憶装置の編成なら
びにパリティ情報の生成と記憶は、前記の米国特許第4
761785号明細書に記載の通りである。再構築され
たデータは、失われたデータが存在したストライプに対
するパリティ・データが通常なら記憶されるはずの場所
に記憶される。記憶制御装置またはシステムの他のいず
れかの部分を停止し、故障した記憶装置を修理し、失わ
れたデータを再構築する必要がある。この好ましい実施
例では、この記憶管理機構がユーザに完全に利用可能な
ままで、データが回復され記憶される。記憶装置は、故
障した装置が修理または変換されるまで、パリティ保護
なしで動作する。この実施例は、非常にわずかな追加コ
ストで、連続運転と単一レベルの障害保護を実現する。
びにパリティ情報の生成と記憶は、前記の米国特許第4
761785号明細書に記載の通りである。再構築され
たデータは、失われたデータが存在したストライプに対
するパリティ・データが通常なら記憶されるはずの場所
に記憶される。記憶制御装置またはシステムの他のいず
れかの部分を停止し、故障した記憶装置を修理し、失わ
れたデータを再構築する必要がある。この好ましい実施
例では、この記憶管理機構がユーザに完全に利用可能な
ままで、データが回復され記憶される。記憶装置は、故
障した装置が修理または変換されるまで、パリティ保護
なしで動作する。この実施例は、非常にわずかな追加コ
ストで、連続運転と単一レベルの障害保護を実現する。
【0015】第1の代替実施例では、再構築されたデー
タに、故障していない各記憶装置の予備記憶域が割り当
てられる。これらの予備記憶域の全体が、仮想予備記憶
装置を構成する。データが再構築されたとき、それは仮
想予備記憶装置に置かれ、通常の方式でパリティが維持
される。この代替実施例は、単一の記憶装置の故障後も
パリティ・データが維持され続けるので、追加の障害保
護レベルを実現する。しかし、予備記憶域のための追加
の記憶空間が必要となることがあり、そうした予備記憶
域が一時データ記憶など他の目的に通常使用される場合
には、性能の低下を招くこともある。
タに、故障していない各記憶装置の予備記憶域が割り当
てられる。これらの予備記憶域の全体が、仮想予備記憶
装置を構成する。データが再構築されたとき、それは仮
想予備記憶装置に置かれ、通常の方式でパリティが維持
される。この代替実施例は、単一の記憶装置の故障後も
パリティ・データが維持され続けるので、追加の障害保
護レベルを実現する。しかし、予備記憶域のための追加
の記憶空間が必要となることがあり、そうした予備記憶
域が一時データ記憶など他の目的に通常使用される場合
には、性能の低下を招くこともある。
【0016】第2の代替実施例では、記憶管理機構がホ
スト・システムのオペレーティング・ソフトウェアに常
駐するが、その他の点では記憶制御装置に常駐する記憶
管理機構と同じ機能を果たす。この実施例は、一般に好
ましい実施例よりも速度が遅いが、記憶制御装置のコス
トを減少させることができる。
スト・システムのオペレーティング・ソフトウェアに常
駐するが、その他の点では記憶制御装置に常駐する記憶
管理機構と同じ機能を果たす。この実施例は、一般に好
ましい実施例よりも速度が遅いが、記憶制御装置のコス
トを減少させることができる。
【0017】
【実施例】図1に、本発明の好ましい実施例のコンピュ
ータ・システム100の主要構成要素の構成図を示す。 ホスト・システム101が、バス102を介して記憶制
御装置103と連絡する。記憶制御装置103は、プロ
グラム式プロセッサ104、持久RAM(NVRAM)
105、排他的ORハードウェア(XOR)108、キ
ャッシュ・メモリ(RAM)109を含む。持久RAM
105は、状況マップ106と目録(TOC)107を
含む。制御装置103は、記憶装置121〜124の動
作を制御する。好ましい実施例では、記憶装置121〜
124は回転式磁気ディスク記憶装置である。図1には
4台の記憶装置が示してあるが、記憶制御装置103に
接続される実際の装置の数は変わり得ることを了解され
たい。また、複数の記憶制御装置103をホスト・シス
テム101に接続できることも了解されたい。好ましい
実施例では、コンピュータ・システム100はIBMA
S/400コンピュータ・システムであるが、どんなコ
ンピュータ・システムも使用できる。
ータ・システム100の主要構成要素の構成図を示す。 ホスト・システム101が、バス102を介して記憶制
御装置103と連絡する。記憶制御装置103は、プロ
グラム式プロセッサ104、持久RAM(NVRAM)
105、排他的ORハードウェア(XOR)108、キ
ャッシュ・メモリ(RAM)109を含む。持久RAM
105は、状況マップ106と目録(TOC)107を
含む。制御装置103は、記憶装置121〜124の動
作を制御する。好ましい実施例では、記憶装置121〜
124は回転式磁気ディスク記憶装置である。図1には
4台の記憶装置が示してあるが、記憶制御装置103に
接続される実際の装置の数は変わり得ることを了解され
たい。また、複数の記憶制御装置103をホスト・シス
テム101に接続できることも了解されたい。好ましい
実施例では、コンピュータ・システム100はIBMA
S/400コンピュータ・システムであるが、どんなコ
ンピュータ・システムも使用できる。
【0018】各記憶装置の記憶域は、ブロック131〜
138に分割されている。好ましい実施例では、すべて
の記憶装置の記憶容量が同じであり、すべてのパリティ
保護されたブロックのサイズが同じである。本発明は様
々なサイズの記憶装置または様々なサイズのブロックの
構成で使用することも可能であるが、この好ましい実施
例では制御機構が簡単である。
138に分割されている。好ましい実施例では、すべて
の記憶装置の記憶容量が同じであり、すべてのパリティ
保護されたブロックのサイズが同じである。本発明は様
々なサイズの記憶装置または様々なサイズのブロックの
構成で使用することも可能であるが、この好ましい実施
例では制御機構が簡単である。
【0019】複数の記憶装置上の同じ位置にあるすべて
のブロックのセットがストライプを構成する。図1で、
記憶ブロック131〜134が第1のストライプを構成
し、ブロック135〜138が第2のストライプを構成
する。各ストライプ中のブロックのうちの1つがパリテ
ィ・ブロックに指定される。図1では、パリティ・ブロ
ック131、136を斜線をつけて示してある。斜線を
つけてない残りのブロック132〜135、137〜1
38は、データを記憶するためのデータ記憶ブロックで
ある。ブロック131〜134からなる第1のストライ
プのパリティ・ブロックが、ブロック131である。こ
のパリティ・ブロックは、同じストライプ上の残りのブ
ロック内のデータの排他的ORを含む。
のブロックのセットがストライプを構成する。図1で、
記憶ブロック131〜134が第1のストライプを構成
し、ブロック135〜138が第2のストライプを構成
する。各ストライプ中のブロックのうちの1つがパリテ
ィ・ブロックに指定される。図1では、パリティ・ブロ
ック131、136を斜線をつけて示してある。斜線を
つけてない残りのブロック132〜135、137〜1
38は、データを記憶するためのデータ記憶ブロックで
ある。ブロック131〜134からなる第1のストライ
プのパリティ・ブロックが、ブロック131である。こ
のパリティ・ブロックは、同じストライプ上の残りのブ
ロック内のデータの排他的ORを含む。
【0020】好ましい実施例では、図1に示すようにパ
リティ・ブロックを異なる記憶装置間にラウンド・ロビ
ン方式で分配する。書込み動作ごとに、システムが同じ
ストライプに書き込まれるデータを含むブロックだけで
なくその同じストライプ用のパリティ・ブロックをも更
新しなければならないので、通常はパリティ・ブロック
の方がデータ・ブロックよりも頻繁に修正される。パリ
ティ・ブロックを異なる記憶装置の間に分配すると、大
部分の場合、アクセス作業負荷の分配により性能が向上
する。ただし、本発明を実施する際にこのような分配は
必ずしも必要ではなく、代替実施例では単一の記憶装置
上にすべてのパリティ・ブロックを置くことが可能であ
る。
リティ・ブロックを異なる記憶装置間にラウンド・ロビ
ン方式で分配する。書込み動作ごとに、システムが同じ
ストライプに書き込まれるデータを含むブロックだけで
なくその同じストライプ用のパリティ・ブロックをも更
新しなければならないので、通常はパリティ・ブロック
の方がデータ・ブロックよりも頻繁に修正される。パリ
ティ・ブロックを異なる記憶装置の間に分配すると、大
部分の場合、アクセス作業負荷の分配により性能が向上
する。ただし、本発明を実施する際にこのような分配は
必ずしも必要ではなく、代替実施例では単一の記憶装置
上にすべてのパリティ・ブロックを置くことが可能であ
る。
【0021】好ましい実施例では、各ストライプの1ブ
ロックをパリティ情報専用に充てる。ある代替実施例で
は、ストライプのうちの1つはパリティ保護を含まない
。このストライプは、保護を必要としない一時データ用
に留保される。図8に、ブロック811〜814からな
るストライプにおけるこの代替実施例を示す。このブロ
ックは、このパリティ・データ保護方式の一部分ではな
い余分の記憶空間なので、任意のサイズでよい。
ロックをパリティ情報専用に充てる。ある代替実施例で
は、ストライプのうちの1つはパリティ保護を含まない
。このストライプは、保護を必要としない一時データ用
に留保される。図8に、ブロック811〜814からな
るストライプにおけるこの代替実施例を示す。このブロ
ックは、このパリティ・データ保護方式の一部分ではな
い余分の記憶空間なので、任意のサイズでよい。
【0022】記憶域をそれぞれがデータ・ブロックとパ
リティ・ブロックを含むストライプに割り振る上記の方
式は、上記の米国特許第4761785号明細書に記載
されている割振りと同じである。
リティ・ブロックを含むストライプに割り振る上記の方
式は、上記の米国特許第4761785号明細書に記載
されている割振りと同じである。
【0023】記憶制御装置103は、記憶管理プログラ
ムを実行するプログラム式プロセッサ104を含む。記
憶管理プログラムの動作については後で説明する。記憶
制御装置103はまた、持久RAM105またはキャッ
シュRAM109内のデータの排他的ORを計算する排
他的ORハードウェア108を含む。ある代替実施例で
は、プロセッサ104で排他的OR演算を行うことがで
きるが、この目的用の特別のハードウェアを使うと性能
が向上する。
ムを実行するプログラム式プロセッサ104を含む。記
憶管理プログラムの動作については後で説明する。記憶
制御装置103はまた、持久RAM105またはキャッ
シュRAM109内のデータの排他的ORを計算する排
他的ORハードウェア108を含む。ある代替実施例で
は、プロセッサ104で排他的OR演算を行うことがで
きるが、この目的用の特別のハードウェアを使うと性能
が向上する。
【0024】持久RAM105は、記憶装置に物理的に
書き込まれるのを待つデータ用の一時待機域として記憶
制御装置103が使用する。持久RAM105には、こ
の一時データに加えて、状況マップ106と目録(TO
C)107が記憶される。目録107は、書き込まれる
のを待っているデータの、記憶装置内のそれが記憶され
る位置へのマッピングを含んでいる。
書き込まれるのを待つデータ用の一時待機域として記憶
制御装置103が使用する。持久RAM105には、こ
の一時データに加えて、状況マップ106と目録(TO
C)107が記憶される。目録107は、書き込まれる
のを待っているデータの、記憶装置内のそれが記憶され
る位置へのマッピングを含んでいる。
【0025】状況マップ106は、各データ・ブロック
用の対応するパリティ・ブロックの位置、および障害回
復モード中の各データ・ブロックの状況を識別するため
に使用される。状況マップ106は、図2に詳しく示し
てある。状況マップ106は、各記憶装置ごとの状況マ
ップ記入項目のテーブルを含んでいる。各状況マップ記
入項目201は、記憶装置上のデータ・ブロックの位置
202、障害モードで動作しているときそのデータを回
復する必要があるか否かを示す状況ビット203、およ
び対応するパリティ・ブロックの位置204を含む。
用の対応するパリティ・ブロックの位置、および障害回
復モード中の各データ・ブロックの状況を識別するため
に使用される。状況マップ106は、図2に詳しく示し
てある。状況マップ106は、各記憶装置ごとの状況マ
ップ記入項目のテーブルを含んでいる。各状況マップ記
入項目201は、記憶装置上のデータ・ブロックの位置
202、障害モードで動作しているときそのデータを回
復する必要があるか否かを示す状況ビット203、およ
び対応するパリティ・ブロックの位置204を含む。
【0026】再度図1を参照すると、キャッシュ・メモ
リ109は、非持久RAMであり、記憶装置から読み取
ったデータを記憶するのに使用される。キャッシュ・メ
モリ109は、読取り動作時に記憶装置からホスト・シ
ステム101にデータを転送する際に、バッファとして
働く。その上、そのデータの修正および書直しの確率が
高いとホスト・システム101から指示があったときも
、それに応答して、データがキャッシュ109にセーブ
される。未修正のデータは、対応するパリティ・データ
の更新のために、修正済みデータと排他的ORしなけれ
ばならないので、読み取ったデータをキャッシュ109
にセーブすると、書込み動作の直前にそれを再度読み取
る必要をなくすことができる。キャッシュ109が存在
するのは、性能を向上させるためにすぎない。ある代替
実施例では、それなしに本発明を実施することも可能で
ある。記憶装置から読み取られたデータを持久メモリに
保存することはシステムの保全性にとって必要でないの
で、キャッシュ109は非持久RAMとして特定してあ
る。しかし、キャッシュは持久RAM105の一部とし
て実施することもできる。メモリ・モジュールの相対的
コストとサイズに応じて、そのような手法が望ましいこ
とがあり得る。
リ109は、非持久RAMであり、記憶装置から読み取
ったデータを記憶するのに使用される。キャッシュ・メ
モリ109は、読取り動作時に記憶装置からホスト・シ
ステム101にデータを転送する際に、バッファとして
働く。その上、そのデータの修正および書直しの確率が
高いとホスト・システム101から指示があったときも
、それに応答して、データがキャッシュ109にセーブ
される。未修正のデータは、対応するパリティ・データ
の更新のために、修正済みデータと排他的ORしなけれ
ばならないので、読み取ったデータをキャッシュ109
にセーブすると、書込み動作の直前にそれを再度読み取
る必要をなくすことができる。キャッシュ109が存在
するのは、性能を向上させるためにすぎない。ある代替
実施例では、それなしに本発明を実施することも可能で
ある。記憶装置から読み取られたデータを持久メモリに
保存することはシステムの保全性にとって必要でないの
で、キャッシュ109は非持久RAMとして特定してあ
る。しかし、キャッシュは持久RAM105の一部とし
て実施することもできる。メモリ・モジュールの相対的
コストとサイズに応じて、そのような手法が望ましいこ
とがあり得る。
【0027】本発明に必要なハードウェアおよびソフト
ウェアの諸特徴に関するシステムの機能について以下で
述べる。システムは、正常モードと障害モードの2つの
動作モードを有する。すべてのディスク記憶装置が適正
に機能しているとき、システムは正常モードで動作する
。1台の記憶装置が故障したとき、動作モードは障害モ
ードに変わるが、システムは動作し続ける。
ウェアの諸特徴に関するシステムの機能について以下で
述べる。システムは、正常モードと障害モードの2つの
動作モードを有する。すべてのディスク記憶装置が適正
に機能しているとき、システムは正常モードで動作する
。1台の記憶装置が故障したとき、動作モードは障害モ
ードに変わるが、システムは動作し続ける。
【0028】正常モードでの読取り動作を図3に示す。
読取り動作を実行するには、ステップ301で、ホスト
からのREAD(読取り)コマンドを受け入れ、ステッ
プ302で、要求されたデータが持久RAM105また
はキャッシュ109内に存在するかどうか判定する。存
在する場合は、ステップ304で、持久RAMまたはキ
ャッシュ内のデータがホストに直接送られる。そうでな
い場合は、ステップ303で、まず適当な記憶装置から
キャッシュ109にデータが読み込まれ、次にステップ
304で、そこからホスト・システムに転送される。キ
ャッシュ109は、書込み動作中にも性能の改善をもた
らす。書込み動作が処理されるときに、更新すべきデー
タの元のバージョンが既にキャッシュ109内にある場
合、パリティを更新するために再度データを読み取る必
要はなく、したがってシステム性能が改善される。キャ
ッシュ109の内容は、当技術分野で既知の様々なキャ
ッシュ管理技術のいずれかを用いて管理する。
からのREAD(読取り)コマンドを受け入れ、ステッ
プ302で、要求されたデータが持久RAM105また
はキャッシュ109内に存在するかどうか判定する。存
在する場合は、ステップ304で、持久RAMまたはキ
ャッシュ内のデータがホストに直接送られる。そうでな
い場合は、ステップ303で、まず適当な記憶装置から
キャッシュ109にデータが読み込まれ、次にステップ
304で、そこからホスト・システムに転送される。キ
ャッシュ109は、書込み動作中にも性能の改善をもた
らす。書込み動作が処理されるときに、更新すべきデー
タの元のバージョンが既にキャッシュ109内にある場
合、パリティを更新するために再度データを読み取る必
要はなく、したがってシステム性能が改善される。キャ
ッシュ109の内容は、当技術分野で既知の様々なキャ
ッシュ管理技術のいずれかを用いて管理する。
【0029】書込み動作は、記憶制御装置のプロセッサ
104内で走行する2つの非同期タスクによって実行さ
れる。1つのタスクは、バス102を介してホストと通
信するものである。図4にこれを示す。ステップ401
でホストからWRITE(書込み)コマンドを受け入れ
たとき、書込み動作が開始する。次にステップ402で
、目録107を検査して、記憶装置に書き込むべきデー
タを記憶するのに十分な空間が持久RAM105内で利
用可能かどうか判定する(利用可能な空間には、書き込
むべきデータのバック・レベル・バージョンが使用する
空間と、未使用の空間が含まれる)。空間が利用可能で
ない場合、制御装置103はホストからデータを受け取
ることができず、ステップ403で空間が利用可能とな
るのを待たなければならない(すなわち、持久RAM1
05内に既にあるデータが記憶域121〜124に書き
込まれるのを待たなければならない)。持久RAM10
5内で空間が利用可能になったとき、ステップ404で
ホスト101から持久RAM105にデータがコピーさ
れ、目録107が更新される。次いでステップ405で
、プロセッサ104がホストに動作完了メッセージを発
行する。動作完了メッセージを受け取った後、ホストは
、あたかも記憶域121〜124に実際にデータが書き
込まれたかのように、自由に処理を続けることができる
が、実際にはデータが持久RAM105中で暫らく待つ
こともある。ホストから見ると、この動作は完了してい
るように見える。
104内で走行する2つの非同期タスクによって実行さ
れる。1つのタスクは、バス102を介してホストと通
信するものである。図4にこれを示す。ステップ401
でホストからWRITE(書込み)コマンドを受け入れ
たとき、書込み動作が開始する。次にステップ402で
、目録107を検査して、記憶装置に書き込むべきデー
タを記憶するのに十分な空間が持久RAM105内で利
用可能かどうか判定する(利用可能な空間には、書き込
むべきデータのバック・レベル・バージョンが使用する
空間と、未使用の空間が含まれる)。空間が利用可能で
ない場合、制御装置103はホストからデータを受け取
ることができず、ステップ403で空間が利用可能とな
るのを待たなければならない(すなわち、持久RAM1
05内に既にあるデータが記憶域121〜124に書き
込まれるのを待たなければならない)。持久RAM10
5内で空間が利用可能になったとき、ステップ404で
ホスト101から持久RAM105にデータがコピーさ
れ、目録107が更新される。次いでステップ405で
、プロセッサ104がホストに動作完了メッセージを発
行する。動作完了メッセージを受け取った後、ホストは
、あたかも記憶域121〜124に実際にデータが書き
込まれたかのように、自由に処理を続けることができる
が、実際にはデータが持久RAM105中で暫らく待つ
こともある。ホストから見ると、この動作は完了してい
るように見える。
【0030】第2の非同期タスクは、持久RAM105
から記憶装置にデータを書き込むものである。正常モー
ドでのこのタスクの流れ図を図5に示す。このタスクは
、ステップ501で、持久RAM105内で待機してい
る書込み動作のうちからある書込み動作を選択する。 この選択基準は本発明の一部ではなく、たとえば先入れ
先出し、後入れ先出し、あるいはシステム性能その他の
考慮点に基づく他の何らかの基準でよい。書込み動作が
実行されるとき、パリティを更新しなければならない。 新しい書込みデータと古いデータの排他的ORを取るこ
とにより、その書込み動作によって変更されるビットの
ビット・マップを得ることが可能である。このビット・
マップを既存のパリティ・データと排他的ORすると、
更新されたパリティ・データが得られる。したがって、
記憶装置に書き込む前に、まずステップ502で、古い
データが未修正の形でキャッシュ109内に存在するか
どうか検査する。存在しない場合は、ステップ503で
、そのデータをキャッシュ109に読み込む。キャッシ
ュ109内の古いデータが、ステップ504で、持久R
AM105内の新しいデータと排他的ORされ、変更済
みデータのビット・マップを生成する。このビット・マ
ップは持久RAM105に一時的にセーブされ、新しい
データは記憶装置121〜124の1つに書き込まれる
。次にステップ506、507で古いパリティ・データ
がキャッシュ109に読み込まれ(まだそこにない場合
)、ステップ508で、それがビット・マップと排他的
ORされて新しいパリティ・データを生成する。ステッ
プ509で、この新しいパリティ・データが、記憶装置
121〜124の1つに書き込まれ、目録107が更新
されて、書込み動作は完了する。
から記憶装置にデータを書き込むものである。正常モー
ドでのこのタスクの流れ図を図5に示す。このタスクは
、ステップ501で、持久RAM105内で待機してい
る書込み動作のうちからある書込み動作を選択する。 この選択基準は本発明の一部ではなく、たとえば先入れ
先出し、後入れ先出し、あるいはシステム性能その他の
考慮点に基づく他の何らかの基準でよい。書込み動作が
実行されるとき、パリティを更新しなければならない。 新しい書込みデータと古いデータの排他的ORを取るこ
とにより、その書込み動作によって変更されるビットの
ビット・マップを得ることが可能である。このビット・
マップを既存のパリティ・データと排他的ORすると、
更新されたパリティ・データが得られる。したがって、
記憶装置に書き込む前に、まずステップ502で、古い
データが未修正の形でキャッシュ109内に存在するか
どうか検査する。存在しない場合は、ステップ503で
、そのデータをキャッシュ109に読み込む。キャッシ
ュ109内の古いデータが、ステップ504で、持久R
AM105内の新しいデータと排他的ORされ、変更済
みデータのビット・マップを生成する。このビット・マ
ップは持久RAM105に一時的にセーブされ、新しい
データは記憶装置121〜124の1つに書き込まれる
。次にステップ506、507で古いパリティ・データ
がキャッシュ109に読み込まれ(まだそこにない場合
)、ステップ508で、それがビット・マップと排他的
ORされて新しいパリティ・データを生成する。ステッ
プ509で、この新しいパリティ・データが、記憶装置
121〜124の1つに書き込まれ、目録107が更新
されて、書込み動作は完了する。
【0031】記憶装置の故障が検出されると、システム
は障害モードで動作し始める。記憶装置の故障とは、そ
れが機能できない、すなわちデータにアクセスできない
という意味である。このような故障は、必ずしも装置自
体の破壊によって起こるとは限らない。たとえば、装置
の電源が切れることもあり、データ・ケーブルが切断さ
れることもあり得る。システムから見ると、原因が何で
あろうと、そのようなどんな故障も記憶装置の故障であ
る。そのような故障を検出する検出機構は、当技術分野
で知られている。一般的な機構としては、応答を受け取
る前にタイムアウトになることや、受け取ったデータで
高いエラー率が続くことがある。
は障害モードで動作し始める。記憶装置の故障とは、そ
れが機能できない、すなわちデータにアクセスできない
という意味である。このような故障は、必ずしも装置自
体の破壊によって起こるとは限らない。たとえば、装置
の電源が切れることもあり、データ・ケーブルが切断さ
れることもあり得る。システムから見ると、原因が何で
あろうと、そのようなどんな故障も記憶装置の故障であ
る。そのような故障を検出する検出機構は、当技術分野
で知られている。一般的な機構としては、応答を受け取
る前にタイムアウトになることや、受け取ったデータで
高いエラー率が続くことがある。
【0032】図6に、システムが障害モードで動作して
いる際の読取り動作を示す。正常モードの読取り動作の
場合と同様に、ステップ601でホストからの読取り動
作が受け入れられたとき、ステップ602で、制御装置
はまず、所望のデータがあるかどうかその持久RAM1
05およびその非持久キャッシュ109を検査する。持
久RAMまたはキャッシュ内にデータが存在する場合、
データがシステム・バス102を介してホストに転送さ
れる。持久RAMまたはキャッシュ内にデータがなく、
故障していない記憶装置上にある(ステップ603)場
合は、ステップ604で、記憶装置からキャッシュ10
9に通常の方式でそのデータが読み込まれる。データが
故障した記憶装置上にある場合、ステップ605で、制
御装置は、状況106内の状況マップ記入項目201を
検査して記憶装置内での所期のデータの位置を調べる。 状況マップ記入項目は、データが回復されたかどうか、
すなわち排他的ORによってデータが再構築されて、あ
る代替位置に記憶されたかどうかを示す。状況マップが
、データが回復されていないことを示す(ステップ60
5)場合、ステップ608で、制御装置は、故障した装
置以外のすべての記憶装置上の対応する位置を次々に読
み取る。読み取られた各データ・ブロックは、XORハ
ードウェア108によって、以前に読み取られたブロッ
クのXOR結果の累計とXORされる。最終的なXOR
結果が、故障した装置の再構築されたデータとなる。 ステップ609で、この再構築データが、このデータ・
ブロックに対応するパリティ・ブロックに書き込まれる
。このブロックの位置が、状況マップ108のパリティ
・ブロック・アドレス・フィールド204に記憶される
。回復されたデータがパリティ・ブロック位置に書き込
まれた後、ステップ610で、同じストライプ中の各ブ
ロックの状況ビット203を、データが回復されたこと
を示す“1”に変更することにより、状況マップ108
が更新される。ステップ611で、再構築データがホス
トに送られる。状況ビット203が、最初から、データ
が回復されたことを示す“1”を含む場合、ステップ6
06で、制御装置は、状況マップから以前のパリティ・
ブロック域の(回復されたデータが記憶される)位置を
得て、ステップ607で、この位置からのデータをキャ
ッシュ109に直接読み込むことになる。この装置によ
り、特定のデータ・ブロックを読み取るのに、すべての
ディスク記憶装置を1回読み取るだけでよくなる。デー
タが回復されると、そのデータの物理的記憶位置が、パ
リティ記憶域用に以前に使用されていた位置に有効に再
配置され、その後はそのブロックを読み取るのに、その
1台の記憶装置を読み取るだけでよくなる。
いる際の読取り動作を示す。正常モードの読取り動作の
場合と同様に、ステップ601でホストからの読取り動
作が受け入れられたとき、ステップ602で、制御装置
はまず、所望のデータがあるかどうかその持久RAM1
05およびその非持久キャッシュ109を検査する。持
久RAMまたはキャッシュ内にデータが存在する場合、
データがシステム・バス102を介してホストに転送さ
れる。持久RAMまたはキャッシュ内にデータがなく、
故障していない記憶装置上にある(ステップ603)場
合は、ステップ604で、記憶装置からキャッシュ10
9に通常の方式でそのデータが読み込まれる。データが
故障した記憶装置上にある場合、ステップ605で、制
御装置は、状況106内の状況マップ記入項目201を
検査して記憶装置内での所期のデータの位置を調べる。 状況マップ記入項目は、データが回復されたかどうか、
すなわち排他的ORによってデータが再構築されて、あ
る代替位置に記憶されたかどうかを示す。状況マップが
、データが回復されていないことを示す(ステップ60
5)場合、ステップ608で、制御装置は、故障した装
置以外のすべての記憶装置上の対応する位置を次々に読
み取る。読み取られた各データ・ブロックは、XORハ
ードウェア108によって、以前に読み取られたブロッ
クのXOR結果の累計とXORされる。最終的なXOR
結果が、故障した装置の再構築されたデータとなる。 ステップ609で、この再構築データが、このデータ・
ブロックに対応するパリティ・ブロックに書き込まれる
。このブロックの位置が、状況マップ108のパリティ
・ブロック・アドレス・フィールド204に記憶される
。回復されたデータがパリティ・ブロック位置に書き込
まれた後、ステップ610で、同じストライプ中の各ブ
ロックの状況ビット203を、データが回復されたこと
を示す“1”に変更することにより、状況マップ108
が更新される。ステップ611で、再構築データがホス
トに送られる。状況ビット203が、最初から、データ
が回復されたことを示す“1”を含む場合、ステップ6
06で、制御装置は、状況マップから以前のパリティ・
ブロック域の(回復されたデータが記憶される)位置を
得て、ステップ607で、この位置からのデータをキャ
ッシュ109に直接読み込むことになる。この装置によ
り、特定のデータ・ブロックを読み取るのに、すべての
ディスク記憶装置を1回読み取るだけでよくなる。デー
タが回復されると、そのデータの物理的記憶位置が、パ
リティ記憶域用に以前に使用されていた位置に有効に再
配置され、その後はそのブロックを読み取るのに、その
1台の記憶装置を読み取るだけでよくなる。
【0033】図7に、システムが障害モードで動作して
いるときの記憶装置への書込み動作を示す。正常モード
の書込みの場合と同様に、図4に示したホスト通信タス
クが、書き込むべきデータをホストからバス102を介
して受け取る。記憶装置書込みタスクは、ステップ70
1で、持久RAM105内の待ち行列からある書込み動
作を選択する。制御装置が、故障した装置にデータを書
き込むかどうか判定し(ステップ702)、状況マップ
を検査する(ステップ703、709)。故障した装置
にデータを書き込むのだが、そのブロック内のデータが
まだ回復されていない場合は、そのブロックを回復して
からでないと書込み動作は可能にならない。回復は、読
取り動作について上述したのと同じステップに従う。ス
テップ704で、同じブロック・ストライプ中の(パリ
ティ・ブロックを含む)各ブロックが読み取られ、その
内容が、以前に読み取ったブロックの排他的ORの累計
と排他的ORされる。その結果が再構築されたデータで
あり、ステップ705で、それがそのパリティ・ブロッ
クに使用される位置に書き込まれる。そのブロック全体
の回復が完了すると、ステップ706で、新しいデータ
(通常はそのブロックの一部分だけに及ぶ)が、以前の
パリティ位置で回復されたデータの上に書き込まれ、ス
テップ707で、そのブロックが回復されたことを示す
ように状況マップが更新される。故障した装置にデータ
を書き込むのだが、データがすでに回復されている場合
には、ステップ708で、それが、今は回復されたデー
タを記憶するのに使用されている、以前のパリティ位置
に直接書き込まれる。
いるときの記憶装置への書込み動作を示す。正常モード
の書込みの場合と同様に、図4に示したホスト通信タス
クが、書き込むべきデータをホストからバス102を介
して受け取る。記憶装置書込みタスクは、ステップ70
1で、持久RAM105内の待ち行列からある書込み動
作を選択する。制御装置が、故障した装置にデータを書
き込むかどうか判定し(ステップ702)、状況マップ
を検査する(ステップ703、709)。故障した装置
にデータを書き込むのだが、そのブロック内のデータが
まだ回復されていない場合は、そのブロックを回復して
からでないと書込み動作は可能にならない。回復は、読
取り動作について上述したのと同じステップに従う。ス
テップ704で、同じブロック・ストライプ中の(パリ
ティ・ブロックを含む)各ブロックが読み取られ、その
内容が、以前に読み取ったブロックの排他的ORの累計
と排他的ORされる。その結果が再構築されたデータで
あり、ステップ705で、それがそのパリティ・ブロッ
クに使用される位置に書き込まれる。そのブロック全体
の回復が完了すると、ステップ706で、新しいデータ
(通常はそのブロックの一部分だけに及ぶ)が、以前の
パリティ位置で回復されたデータの上に書き込まれ、ス
テップ707で、そのブロックが回復されたことを示す
ように状況マップが更新される。故障した装置にデータ
を書き込むのだが、データがすでに回復されている場合
には、ステップ708で、それが、今は回復されたデー
タを記憶するのに使用されている、以前のパリティ位置
に直接書き込まれる。
【0034】障害モードで動作しているときに、故障し
ていない装置にデータが書き込まれつつある場合、ステ
ップ709で、制御装置は状況マップを検査する。状況
が“1”で、故障した装置上の同じストライプ中のデー
タ・ブロックがすでに回復されていることを示す場合、
ステップ710で、書込みデータがその故障していない
記憶装置に直接書き込まれる。状況が“0”の場合は、
故障していない装置に直接データを書き込むことはでき
ない。というのは、そのような動作はパリティを変更し
、後で故障した記憶装置内の対応するデータを再構築す
るのが不可能になるからである。したがって、この好ま
しい実施例では、制御装置がまず、故障した装置上の同
じストライプ中のデータ・ブロックを回復する。図7に
示すように、ステップ711で、故障した記憶装置内の
データ・ブロックがまず排他的ORによって再構築され
、ステップ712で、上記のステップに従ってパリティ
・ブロック位置にセーブされる。次いでステップ713
で、書込みデータがその記憶装置に書き込まれ、ステッ
プ714で状況マップが更新される。書き込むべきデー
タを含むストライプのパリティ・ブロックが故障した装
置上にある場合は、パリティが何らかの形で失われるの
で、再構築は不要である。したがって、記憶装置の故障
が検出されたとき、このストライプ上のすべてのブロッ
クの状況が“1”にセットされる。その効果は、このス
トライプ上のデータを、故障した装置上の対応するブロ
ックが既に回復されている場合と同様に、記憶装置に直
接書き込ませることである。たとえば図1を参照すると
、記憶装置121が故障した場合、制御装置は直ちにブ
ロック132〜134の状況を“1”にセットして、こ
れらのブロックへの書込み動作が直接進行できるように
する。ある代替実施例では、書込み動作が、故障してい
ない装置に対するものであり、故障している装置上の対
応するブロックが回復されていない場合、正常モードの
書込み動作に使用するのと同じステップに従ってパリテ
ィ・ブロックを更新し、故障した装置上のデータの読取
りまたは書込みが要求される場合に、後で故障した装置
のデータを再構築する能力を保存することが可能となる
。
ていない装置にデータが書き込まれつつある場合、ステ
ップ709で、制御装置は状況マップを検査する。状況
が“1”で、故障した装置上の同じストライプ中のデー
タ・ブロックがすでに回復されていることを示す場合、
ステップ710で、書込みデータがその故障していない
記憶装置に直接書き込まれる。状況が“0”の場合は、
故障していない装置に直接データを書き込むことはでき
ない。というのは、そのような動作はパリティを変更し
、後で故障した記憶装置内の対応するデータを再構築す
るのが不可能になるからである。したがって、この好ま
しい実施例では、制御装置がまず、故障した装置上の同
じストライプ中のデータ・ブロックを回復する。図7に
示すように、ステップ711で、故障した記憶装置内の
データ・ブロックがまず排他的ORによって再構築され
、ステップ712で、上記のステップに従ってパリティ
・ブロック位置にセーブされる。次いでステップ713
で、書込みデータがその記憶装置に書き込まれ、ステッ
プ714で状況マップが更新される。書き込むべきデー
タを含むストライプのパリティ・ブロックが故障した装
置上にある場合は、パリティが何らかの形で失われるの
で、再構築は不要である。したがって、記憶装置の故障
が検出されたとき、このストライプ上のすべてのブロッ
クの状況が“1”にセットされる。その効果は、このス
トライプ上のデータを、故障した装置上の対応するブロ
ックが既に回復されている場合と同様に、記憶装置に直
接書き込ませることである。たとえば図1を参照すると
、記憶装置121が故障した場合、制御装置は直ちにブ
ロック132〜134の状況を“1”にセットして、こ
れらのブロックへの書込み動作が直接進行できるように
する。ある代替実施例では、書込み動作が、故障してい
ない装置に対するものであり、故障している装置上の対
応するブロックが回復されていない場合、正常モードの
書込み動作に使用するのと同じステップに従ってパリテ
ィ・ブロックを更新し、故障した装置上のデータの読取
りまたは書込みが要求される場合に、後で故障した装置
のデータを再構築する能力を保存することが可能となる
。
【0035】好ましい実施例では、パリティ・ブロック
を使って再構築されたデータを記憶し、その結果、1台
の記憶装置が故障した後にシステムはパリティ保護なし
で走行することになる。図8に示すように、記憶装置上
に十分に大きな予備記憶ストライプを留保しておく、代
替実施例も可能である。この予備記憶ストライプは、パ
リティ保護を必要とせず、必要が生じた場合に重ね書き
できる一時データを含むことができ、また全くデータを
含まないこともできる。この代替実施例では、再構築さ
れたデータが、パリティ・ブロックの代りに予備記憶ス
トライプ811〜814のブロックに再配置される。こ
の代替実施例が可能なのは、故障した装置の非予備内容
を収容するのに十分な予備記憶域が存在する場合だけで
ある。これもまた、システムが利用できる一時記憶域の
量を減少させる結果を招き、性能が低下したり、システ
ムがサービスできるユーザの数が減少したりする可能性
がある。この代替実施例では、正常モードの読取り動作
と書込み動作は、好ましい実施例と全く同様に行われる
。障害モードで動作しているとき、状況マップが検査さ
れ、必要に応じて上記のようにしてデータが再構築され
る。しかし、再構築されたデータは、パリティ・ブロッ
クには書き込まれず、予備記憶域中のブロックに書き込
まれる。状況マップ106中に、故障した装置に含まれ
ていたデータの新しい位置を記憶する別のフィールドが
必要である。さらに、書込み動作の際に、正常モードの
書込み動作の場合と同様にしてパリティが更新される。 これは、故障した装置上のデータが再構築された後に行
われる。
を使って再構築されたデータを記憶し、その結果、1台
の記憶装置が故障した後にシステムはパリティ保護なし
で走行することになる。図8に示すように、記憶装置上
に十分に大きな予備記憶ストライプを留保しておく、代
替実施例も可能である。この予備記憶ストライプは、パ
リティ保護を必要とせず、必要が生じた場合に重ね書き
できる一時データを含むことができ、また全くデータを
含まないこともできる。この代替実施例では、再構築さ
れたデータが、パリティ・ブロックの代りに予備記憶ス
トライプ811〜814のブロックに再配置される。こ
の代替実施例が可能なのは、故障した装置の非予備内容
を収容するのに十分な予備記憶域が存在する場合だけで
ある。これもまた、システムが利用できる一時記憶域の
量を減少させる結果を招き、性能が低下したり、システ
ムがサービスできるユーザの数が減少したりする可能性
がある。この代替実施例では、正常モードの読取り動作
と書込み動作は、好ましい実施例と全く同様に行われる
。障害モードで動作しているとき、状況マップが検査さ
れ、必要に応じて上記のようにしてデータが再構築され
る。しかし、再構築されたデータは、パリティ・ブロッ
クには書き込まれず、予備記憶域中のブロックに書き込
まれる。状況マップ106中に、故障した装置に含まれ
ていたデータの新しい位置を記憶する別のフィールドが
必要である。さらに、書込み動作の際に、正常モードの
書込み動作の場合と同様にしてパリティが更新される。 これは、故障した装置上のデータが再構築された後に行
われる。
【0036】もう1つの代替実施例では、パリティ保護
とミラー構成が同じシステム上で組み合わされる。記憶
装置上に含まれるデータのあるものは本明細書に記述し
たパリティ保護機構によって保護され、別のデータはミ
ラー構成される。記憶装置が故障した場合、パリティ保
護されたデータは上述のように再構築されて記憶され、
ミラー構成のデータは、ミラー・コピーを含む記憶装置
からアクセスされる。
とミラー構成が同じシステム上で組み合わされる。記憶
装置上に含まれるデータのあるものは本明細書に記述し
たパリティ保護機構によって保護され、別のデータはミ
ラー構成される。記憶装置が故障した場合、パリティ保
護されたデータは上述のように再構築されて記憶され、
ミラー構成のデータは、ミラー・コピーを含む記憶装置
からアクセスされる。
【0037】
【発明の効果】本発明により、多数のデータ記憶装置を
もつコンピュータ・システムが、データ喪失から回復で
き、データ記憶装置が1台故障しても引き続き動作でき
る、改良された方法および装置が提供される。
もつコンピュータ・システムが、データ喪失から回復で
き、データ記憶装置が1台故障しても引き続き動作でき
る、改良された方法および装置が提供される。
【図1】本発明の好ましい実施例の構成要素を組み込ん
だシステムの構成図である。
だシステムの構成図である。
【図2】状況マップを示す図である。
【図3】正常動作モード中の読取り動作に関係する諸ス
テップの流れ図である。
テップの流れ図である。
【図4】書き込むべきデータをホストから記憶制御装置
に転送する際に関係する諸ステップの流れ図である。
に転送する際に関係する諸ステップの流れ図である。
【図5】正常動作モードで記憶装置にデータを書き込む
際に関係する諸ステップの流れ図である。
際に関係する諸ステップの流れ図である。
【図6】記憶装置故障後の読取り動作に関係する諸ステ
ップの流れ図である。
ップの流れ図である。
【図7】ある記憶装置が故障したとき、記憶装置にデー
タを書き込む際に関係する諸ステップの流れ図である。
タを書き込む際に関係する諸ステップの流れ図である。
【図8】本発明の代替実施例による構成要素を組み込ん
だシステムの構成図である。
だシステムの構成図である。
100 コンピュータ・システム
101 ホスト・システム
103 記憶制御装置
104 プログラム式プロセッサ
105 持久RAM
106 状況マップ
107 目録(TOC)
108 排他的ORハードウェア
109 キャッシュ・メモリ
Claims (13)
- 【請求項1】データを収容するための複数のデータ記憶
ブロックと、上記データ記憶ブロックに記憶されたデー
タのパリティを収容するための1つのパリティ記憶ブロ
ックとを含む、記憶ブロックのストライプを有し、上記
の各記憶ブロックがそれぞれ当該のデータ記憶装置上に
含まれる、コンピュータ・システムを動作させる方法で
あって、ある記憶ブロックを含むデータ記憶装置が故障
しているとき、ストライプ中の残りの記憶ブロックから
、上記の記憶ブロックに含まれるデータを再構築するス
テップと、上記再構築ステップによって再構築されたデ
ータを、上記データ記憶装置の1台に記憶するステップ
とを含む方法。 - 【請求項2】上記のデータ再構築ステップが、あるデー
タにアクセスが試みられたとき、そのデータを再構築す
ることを特徴とする、請求項1に記載のコンピュータ・
システムを動作させる方法。 - 【請求項3】上記のデータ記憶ステップが、再構築され
たデータを上記のパリティ記憶ブロックに記憶すること
を特徴とする、請求項1に記載のコンピュータ・システ
ムを動作させる方法。 - 【請求項4】上記のデータ再構築ステップが、あるデー
タにアクセスが試みられたとき、そのデータを再構築す
ることを特徴とする、請求項3に記載のコンピュータ・
システムを動作させる方法。 - 【請求項5】上記データ記憶装置が予備記憶ブロックを
含み、上記のデータ記憶ステップが、再構築されたデー
タを上記の予備記憶ブロックに記憶することを特徴とす
る、請求項1に記載のコンピュータ・システムを動作さ
せる方法。 - 【請求項6】上記のデータ再構築ステップが、あるデー
タにアクセスが試みられたとき、そのデータを再構築す
ることを特徴とする、請求項5に記載のコンピュータ・
システムを動作させる方法。 - 【請求項7】少くとも3台のデータ記憶装置と、各スト
ライプが、データを収容するための複数のデータ記憶ブ
ロックと、上記データ記憶ブロックに記憶されたデータ
のパリティを収容するための1つのパリティ記憶ブロッ
クとを含み、上記の各記憶ブロックがそれぞれ当該のデ
ータ記憶装置上に含まれる、記憶ブロックの少くとも1
つのストライプと、ある記憶ブロックを含むデータ記憶
装置が故障しているとき、ストライプ中の残りの記憶ブ
ロックから、上記の記憶ブロックに含まれるデータを再
構築する手段と、上記の再構築されたデータを上記のデ
ータ記憶装置の1つに記憶する手段とを含む、コンピュ
ータ・システム用の記憶装置。 - 【請求項8】上記の再構築データ記憶手段が、上記のデ
ータを上記のパリティ記憶ブロックに記憶することを特
徴とする、請求項7に記載のコンピュータ・システム用
の記憶装置。 - 【請求項9】上記のデータ再構築手段が記憶制御装置を
含み、上記記憶制御装置が、記憶管理プログラムを実行
するプログラム式プロセッサと、持久ランダム・アクセ
ス記憶装置とを含むことを特徴とする、請求項7に記載
のコンピュータ・システム用の記憶装置。 - 【請求項10】上記のデータ処理システムが、上記の記
憶ブロックのストライプを少くとも2本含み、かつ上記
のパリティ記憶ブロックが、上記のデータ記憶装置の間
にラウンド・ロビン方式で分配されることを特徴とする
、請求項8に記載のコンピュータ・システム用の記憶装
置。 - 【請求項11】上記の各データ記憶装置が、回転式磁気
ディスク・ドライブ記憶装置であることを特徴とする、
請求項8に記載のコンピュータ・システム用の記憶装置
。 - 【請求項12】上記の各データ記憶装置が予備記憶ブロ
ックを含み、かつ上記の再構築データ記憶手段が、上記
のデータを上記の予備記憶ブロックの1つに記憶するこ
とを特徴とする、請求項7に記載のコンピュータ・シス
テム用の記憶装置。 - 【請求項13】上記の各データ記憶装置が、回転式磁気
ディスク・ドライブ記憶装置であることを特徴とする、
請求項12に記載のコンピュータ・システム用の記憶装
置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54221690A | 1990-06-21 | 1990-06-21 | |
US542216 | 1990-06-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04233025A true JPH04233025A (ja) | 1992-08-21 |
JPH0731582B2 JPH0731582B2 (ja) | 1995-04-10 |
Family
ID=24162823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3077305A Expired - Lifetime JPH0731582B2 (ja) | 1990-06-21 | 1991-03-18 | パリティ保護データを回復するための方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5596709A (ja) |
EP (1) | EP0462917B1 (ja) |
JP (1) | JPH0731582B2 (ja) |
KR (1) | KR960001748B1 (ja) |
CN (2) | CN1038710C (ja) |
CA (1) | CA2044521C (ja) |
DE (1) | DE69131562T2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04312146A (ja) * | 1991-04-11 | 1992-11-04 | Mitsubishi Electric Corp | アレイ型記録装置 |
JPH05143471A (ja) * | 1990-10-23 | 1993-06-11 | Array Technol Corp | 記憶装置の冗長アレイ内の故障記憶装置のオンライン再構成方法 |
JPH06324815A (ja) * | 1993-05-13 | 1994-11-25 | Nec Corp | ディスクアレイ装置 |
JPH0736633A (ja) * | 1993-07-21 | 1995-02-07 | Nec Corp | 磁気ディスクアレイ |
JP2007052805A (ja) * | 2001-08-09 | 2007-03-01 | Emc Corp | メモリシステムおよびその使用方法 |
US7305605B2 (en) | 2002-11-19 | 2007-12-04 | Hitachi, Ltd. | Storage system |
Families Citing this family (125)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3409859B2 (ja) | 1991-01-31 | 2003-05-26 | 株式会社日立製作所 | 制御装置の制御方法 |
US6874101B2 (en) | 1991-01-31 | 2005-03-29 | Hitachi, Ltd. | Storage unit subsystem |
US5341381A (en) * | 1992-01-21 | 1994-08-23 | Tandem Computers, Incorporated | Redundant array parity caching system |
US5305326A (en) * | 1992-03-06 | 1994-04-19 | Data General Corporation | High availability disk arrays |
AU653670B2 (en) * | 1992-03-10 | 1994-10-06 | Data General Corporation | Improvements for high availability disk arrays |
US5708668A (en) * | 1992-05-06 | 1998-01-13 | International Business Machines Corporation | Method and apparatus for operating an array of storage devices |
JP3183719B2 (ja) * | 1992-08-26 | 2001-07-09 | 三菱電機株式会社 | アレイ型記録装置 |
GB2273798A (en) * | 1992-12-22 | 1994-06-29 | Ibm | Cache system for disk array. |
EP1197836A3 (en) * | 1993-06-03 | 2009-06-17 | Network Appliance, Inc. | A method for allocating files in a file system integrated with a raid disk sub-system |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US6604118B2 (en) | 1998-07-31 | 2003-08-05 | Network Appliance, Inc. | File system image transfer |
EP1031928B1 (en) * | 1993-06-04 | 2005-05-18 | Network Appliance, Inc. | A method for providing parity in a raid sub-system using non-volatile memory |
US5634109A (en) * | 1994-06-20 | 1997-05-27 | International Business Machines Corporation | Method and system for enhanced data management efficiency in memory subsystems utilizing redundant arrays of disk memory devices and a nonvolatile cache |
JP3687111B2 (ja) * | 1994-08-18 | 2005-08-24 | 株式会社日立製作所 | 記憶装置システムおよび記憶装置の制御方法 |
US5659704A (en) * | 1994-12-02 | 1997-08-19 | Hewlett-Packard Company | Methods and system for reserving storage space for data migration in a redundant hierarchic data storage system by dynamically computing maximum storage space for mirror redundancy |
US5651133A (en) * | 1995-02-01 | 1997-07-22 | Hewlett-Packard Company | Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system |
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 |
JP3856855B2 (ja) * | 1995-10-06 | 2006-12-13 | 三菱電機株式会社 | 差分バックアップ方式 |
US5790773A (en) * | 1995-12-29 | 1998-08-04 | Symbios, Inc. | Method and apparatus for generating snapshot copies for data backup in a raid subsystem |
US5734814A (en) * | 1996-04-15 | 1998-03-31 | Sun Microsystems, Inc. | Host-based RAID-5 and NV-RAM integration |
US5917998A (en) * | 1996-07-26 | 1999-06-29 | International Business Machines Corporation | Method and apparatus for establishing and maintaining the status of membership sets used in mirrored read and write input/output without logging |
US5764880A (en) * | 1996-09-10 | 1998-06-09 | International Business Machines Corporation | Method and system for rebuilding log-structured arrays |
US5960169A (en) * | 1997-02-27 | 1999-09-28 | International Business Machines Corporation | Transformational raid for hierarchical storage management system |
JP3702923B2 (ja) * | 1997-02-28 | 2005-10-05 | ソニー株式会社 | 情報処理方法および情報処理装置 |
JP2790134B1 (ja) | 1997-03-11 | 1998-08-27 | 日本電気株式会社 | ディスクアレイシステム |
CN1228190A (zh) | 1997-04-07 | 1999-09-08 | 索尼株式会社 | 编辑系统及编辑方法 |
US6021463A (en) * | 1997-09-02 | 2000-02-01 | International Business Machines Corporation | Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6161191A (en) * | 1998-05-12 | 2000-12-12 | Sun Microsystems, Inc. | Mechanism for reliable update of virtual disk device mappings without corrupting data |
JP2000003255A (ja) * | 1998-06-12 | 2000-01-07 | Nec Corp | ディスクアレイ装置 |
GB2343265A (en) * | 1998-10-28 | 2000-05-03 | Ibm | Data storage array rebuild |
US6343984B1 (en) | 1998-11-30 | 2002-02-05 | Network Appliance, Inc. | Laminar flow duct cooling system |
US6327672B1 (en) * | 1998-12-31 | 2001-12-04 | Lsi Logic Corporation | Multiple drive failure tolerant raid system |
US6532548B1 (en) * | 1999-09-21 | 2003-03-11 | Storage Technology Corporation | System and method for handling temporary errors on a redundant array of independent tapes (RAIT) |
US6728922B1 (en) | 2000-08-18 | 2004-04-27 | Network Appliance, Inc. | Dynamic data space |
US7072916B1 (en) | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6636879B1 (en) | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US6654912B1 (en) | 2000-10-04 | 2003-11-25 | Network Appliance, Inc. | Recovery of file system data in file servers mirrored file system volumes |
US6952797B1 (en) | 2000-10-25 | 2005-10-04 | Andy Kahn | Block-appended checksums |
US6775791B2 (en) | 2001-01-26 | 2004-08-10 | Dell Products L.P. | Replaceable memory modules with parity-based data recovery |
US6799284B1 (en) | 2001-02-28 | 2004-09-28 | Network Appliance, Inc. | Reparity bitmap RAID failure recovery |
US7146524B2 (en) * | 2001-08-03 | 2006-12-05 | Isilon Systems, Inc. | Systems and methods for providing a distributed file system incorporating a virtual hot spare |
US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US7640484B2 (en) * | 2001-12-28 | 2009-12-29 | Netapp, Inc. | Triple parity technique for enabling efficient recovery from triple failures in a storage array |
US7024585B2 (en) * | 2002-06-10 | 2006-04-04 | Lsi Logic Corporation | Method, apparatus, and program for data mirroring with striped hotspare |
US7024586B2 (en) | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
US6904498B2 (en) * | 2002-10-08 | 2005-06-07 | Netcell Corp. | Raid controller disk write mask |
US7130229B2 (en) | 2002-11-08 | 2006-10-31 | Intel Corporation | Interleaved mirrored memory systems |
US7017017B2 (en) * | 2002-11-08 | 2006-03-21 | Intel Corporation | Memory controllers with interleaved mirrored memory modes |
EP2299375A3 (en) | 2002-11-14 | 2012-02-01 | EMC Corporation | Systems and methods for restriping files in a distributed file system |
US7308599B2 (en) * | 2003-06-09 | 2007-12-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for data reconstruction after failure of a storage device in a storage array |
US7058762B2 (en) * | 2003-06-09 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Method and apparatus for selecting among multiple data reconstruction techniques |
JP4812431B2 (ja) * | 2003-08-14 | 2011-11-09 | 富士通株式会社 | コンピュータ装置 |
US7428691B2 (en) * | 2003-11-12 | 2008-09-23 | Norman Ken Ouchi | Data recovery from multiple failed data blocks and storage units |
US7188303B2 (en) * | 2003-12-29 | 2007-03-06 | Intel Corporation | Method, system, and program for generating parity data |
CN100433195C (zh) * | 2003-12-31 | 2008-11-12 | 深圳市朗科科技股份有限公司 | 闪存介质数据写入方法 |
US20050193273A1 (en) * | 2004-02-18 | 2005-09-01 | Xiotech Corporation | Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system |
US8726129B1 (en) * | 2004-07-23 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Methods of writing and recovering erasure coded data |
US8238350B2 (en) * | 2004-10-29 | 2012-08-07 | Emc Corporation | Message batching with checkpoints systems and methods |
US8051425B2 (en) * | 2004-10-29 | 2011-11-01 | Emc Corporation | Distributed system with asynchronous execution systems and methods |
US8055711B2 (en) | 2004-10-29 | 2011-11-08 | Emc Corporation | Non-blocking commit protocol systems and methods |
US7370261B2 (en) | 2005-05-09 | 2008-05-06 | International Business Machines Corporation | Convolution-encoded raid with trellis-decode-rebuild |
US7401253B2 (en) * | 2005-05-09 | 2008-07-15 | International Business Machines Corporation | Convolution-encoded data storage on a redundant array of independent devices |
US7788303B2 (en) * | 2005-10-21 | 2010-08-31 | Isilon Systems, Inc. | Systems and methods for distributed system scanning |
US7551572B2 (en) * | 2005-10-21 | 2009-06-23 | Isilon Systems, Inc. | Systems and methods for providing variable protection |
US7346720B2 (en) * | 2005-10-21 | 2008-03-18 | Isilon Systems, Inc. | Systems and methods for managing concurrent access requests to a shared resource |
US7386675B2 (en) * | 2005-10-21 | 2008-06-10 | Isilon Systems, Inc. | Systems and methods for using excitement values to predict future access to resources |
US7917474B2 (en) * | 2005-10-21 | 2011-03-29 | Isilon Systems, Inc. | Systems and methods for accessing and updating distributed data |
US7797283B2 (en) | 2005-10-21 | 2010-09-14 | Isilon Systems, Inc. | Systems and methods for maintaining distributed data |
KR100893342B1 (ko) * | 2005-12-20 | 2009-04-15 | 후지쯔 가부시끼가이샤 | 컴퓨터 장치 및 집합 서버 장치 |
US7848261B2 (en) | 2006-02-17 | 2010-12-07 | Isilon Systems, Inc. | Systems and methods for providing a quiescing protocol |
US7756898B2 (en) * | 2006-03-31 | 2010-07-13 | Isilon Systems, Inc. | Systems and methods for notifying listeners of events |
JP2008009767A (ja) | 2006-06-29 | 2008-01-17 | Hitachi Ltd | データ処理システム及びその方法並びにストレージ装置 |
US8539056B2 (en) | 2006-08-02 | 2013-09-17 | Emc Corporation | Systems and methods for configuring multiple network interfaces |
US7882071B2 (en) | 2006-08-18 | 2011-02-01 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7752402B2 (en) | 2006-08-18 | 2010-07-06 | Isilon Systems, Inc. | Systems and methods for allowing incremental journaling |
US7899800B2 (en) * | 2006-08-18 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7680836B2 (en) * | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7953704B2 (en) | 2006-08-18 | 2011-05-31 | Emc Corporation | Systems and methods for a snapshot of data |
US7590652B2 (en) | 2006-08-18 | 2009-09-15 | Isilon Systems, Inc. | Systems and methods of reverse lookup |
US7680842B2 (en) | 2006-08-18 | 2010-03-16 | Isilon Systems, Inc. | Systems and methods for a snapshot of data |
US7676691B2 (en) | 2006-08-18 | 2010-03-09 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7822932B2 (en) | 2006-08-18 | 2010-10-26 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
JP4953753B2 (ja) * | 2006-10-17 | 2012-06-13 | キヤノン株式会社 | 情報処理装置及びその制御方法、プログラム |
JP5028074B2 (ja) * | 2006-12-04 | 2012-09-19 | キヤノン株式会社 | 画像形成装置 |
US8286029B2 (en) * | 2006-12-21 | 2012-10-09 | Emc Corporation | Systems and methods for managing unavailable storage devices |
US7593938B2 (en) * | 2006-12-22 | 2009-09-22 | Isilon Systems, Inc. | Systems and methods of directory entry encodings |
US7509448B2 (en) | 2007-01-05 | 2009-03-24 | Isilon Systems, Inc. | Systems and methods for managing semantic locks |
US7779048B2 (en) | 2007-04-13 | 2010-08-17 | Isilon Systems, Inc. | Systems and methods of providing possible value ranges |
US8966080B2 (en) * | 2007-04-13 | 2015-02-24 | Emc Corporation | Systems and methods of managing resource utilization on a threaded computer system |
US7900015B2 (en) | 2007-04-13 | 2011-03-01 | Isilon Systems, Inc. | Systems and methods of quota accounting |
CN100454265C (zh) * | 2007-06-07 | 2009-01-21 | 华为技术有限公司 | 镜像恢复方法、存储设备及网络系统 |
US7966289B2 (en) * | 2007-08-21 | 2011-06-21 | Emc Corporation | Systems and methods for reading objects in a file system |
US7882068B2 (en) | 2007-08-21 | 2011-02-01 | Isilon Systems, Inc. | Systems and methods for adaptive copy on write |
US7949692B2 (en) | 2007-08-21 | 2011-05-24 | Emc Corporation | Systems and methods for portals into snapshot data |
US7949636B2 (en) * | 2008-03-27 | 2011-05-24 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7984324B2 (en) | 2008-03-27 | 2011-07-19 | Emc Corporation | Systems and methods for managing stalled storage devices |
US7953709B2 (en) * | 2008-03-27 | 2011-05-31 | Emc Corporation | Systems and methods for a read only mode for a portion of a storage system |
US7870345B2 (en) | 2008-03-27 | 2011-01-11 | Isilon Systems, Inc. | Systems and methods for managing stalled storage devices |
US20090300282A1 (en) * | 2008-05-30 | 2009-12-03 | Promise Technology, Inc. | Redundant array of independent disks write recovery system |
JP5637552B2 (ja) * | 2009-02-17 | 2014-12-10 | 日本電気株式会社 | ストレージシステム |
US20100211736A1 (en) * | 2009-02-18 | 2010-08-19 | Gang Chen | Method and system for performing i/o operations on disk arrays |
US8560879B1 (en) * | 2009-04-22 | 2013-10-15 | Netapp Inc. | Data recovery for failed memory device of memory device array |
US8417987B1 (en) | 2009-12-01 | 2013-04-09 | Netapp, Inc. | Mechanism for correcting errors beyond the fault tolerant level of a raid array in a storage system |
US8386834B1 (en) * | 2010-04-30 | 2013-02-26 | Network Appliance, Inc. | Raid storage configuration for cached data storage |
US8386841B1 (en) * | 2010-07-21 | 2013-02-26 | Symantec Corporation | Systems and methods for improving redundant storage fault tolerance |
US8694866B2 (en) * | 2011-03-15 | 2014-04-08 | California Institute Of Technology | MDS array codes with optimal building |
CN102541466A (zh) * | 2011-10-27 | 2012-07-04 | 忆正存储技术(武汉)有限公司 | 一种混合存储控制系统和方法 |
CN103389920B (zh) * | 2012-05-09 | 2016-06-15 | 深圳市腾讯计算机系统有限公司 | 一种磁盘坏块的自检测方法和装置 |
CN103971750B (zh) * | 2013-01-29 | 2017-02-08 | 中国航空工业集团公司西安飞机设计研究所 | 一种ram的9相邻单元敏感故障检测方法 |
US9563509B2 (en) | 2014-07-15 | 2017-02-07 | Nimble Storage, Inc. | Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system |
SG11201701454TA (en) * | 2014-10-03 | 2017-04-27 | Agency Science Tech & Res | Method for optimizing reconstruction of data for a hybrid object storage device |
US20170337103A1 (en) * | 2016-05-19 | 2017-11-23 | Intel Corporation | Method and apparatus to provide data redundancy in a solid-state drive |
KR102573301B1 (ko) * | 2016-07-15 | 2023-08-31 | 삼성전자 주식회사 | Raid 리커버리를 수행하는 메모리 시스템 및 그 동작방법 |
KR20180012009A (ko) * | 2016-07-26 | 2018-02-05 | 에스케이하이닉스 주식회사 | 데이터 맵핑을 수행하는 반도체 장치 및 시스템 |
US10133630B2 (en) * | 2016-09-06 | 2018-11-20 | International Business Machines Corporation | Disposable subset parities for use in a distributed RAID |
US10152378B2 (en) * | 2016-10-04 | 2018-12-11 | Futurewei Technologies, Inc. | Data protection for a cold storage system |
CN108073364A (zh) * | 2018-01-12 | 2018-05-25 | 江苏华存电子科技有限公司 | 一种数据数组保护和修复闪存内数据方法 |
US10579285B2 (en) * | 2018-02-07 | 2020-03-03 | International Business Machines Corporation | Automatic data healing by I/O |
US10585767B2 (en) | 2018-02-07 | 2020-03-10 | International Business Machines Corporation | Automatic data healing using a storage controller |
KR102490191B1 (ko) * | 2018-03-05 | 2023-01-18 | 삼성전자주식회사 | 데이터 스토리지 장치 및 이를 포함하는 raid 시스템 |
CN109412600A (zh) * | 2018-09-03 | 2019-03-01 | 何祥果 | 一种基于磁性特征的标识号编码方法 |
CN111124264B (zh) * | 2018-10-31 | 2023-10-27 | 伊姆西Ip控股有限责任公司 | 用于重建数据的方法、设备和计算机程序产品 |
JP2022143899A (ja) | 2021-03-18 | 2022-10-03 | 株式会社東芝 | 磁気ディスク装置 |
US11966608B2 (en) * | 2021-11-15 | 2024-04-23 | Samsung Electronics Co., Ltd. | Memory controller with improved data reliability and memory system including the same |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS583113A (ja) * | 1981-06-30 | 1983-01-08 | Fujitsu Ltd | デイスク制御方式 |
JPH0290254A (ja) * | 1988-09-27 | 1990-03-29 | Nec Corp | データ入出力システム |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3893178A (en) * | 1973-12-19 | 1975-07-01 | Information Storage Systems | Synchronization of multiple disc drives |
US4092732A (en) * | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
US4562576A (en) * | 1982-08-14 | 1985-12-31 | International Computers Limited | Data storage apparatus |
FR2561428B1 (fr) * | 1984-03-16 | 1986-09-12 | Bull Sa | Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques |
US4667326A (en) * | 1984-12-20 | 1987-05-19 | Advanced Micro Devices, Inc. | Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives |
US4754397A (en) * | 1985-02-15 | 1988-06-28 | Tandem Computers Incorporated | Fault tolerant modular subsystems for computers |
JPS61264599A (ja) * | 1985-05-16 | 1986-11-22 | Fujitsu Ltd | 半導体記憶装置 |
US4722085A (en) * | 1986-02-03 | 1988-01-26 | Unisys Corp. | High capacity disk storage system having unusually high fault tolerance level and bandpass |
US4761785B1 (en) * | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4775978A (en) * | 1987-01-12 | 1988-10-04 | Magnetic Peripherals Inc. | Data error correction system |
US4942579A (en) * | 1987-06-02 | 1990-07-17 | Cab-Tek, Inc. | High-speed, high-capacity, fault-tolerant error-correcting storage system |
US4870643A (en) * | 1987-11-06 | 1989-09-26 | Micropolis Corporation | Parallel drive array storage system |
US4899342A (en) * | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
US4993030A (en) * | 1988-04-22 | 1991-02-12 | Amdahl Corporation | File system for a plurality of storage classes |
US4914656A (en) * | 1988-06-28 | 1990-04-03 | Storage Technology Corporation | Disk drive memory |
US4989206A (en) * | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
US5101492A (en) * | 1989-11-03 | 1992-03-31 | Compaq Computer Corporation | Data redundancy and recovery protection |
US5072378A (en) * | 1989-12-18 | 1991-12-10 | Storage Technology Corporation | Direct access storage device with independently stored parity |
US5134619A (en) * | 1990-04-06 | 1992-07-28 | Sf2 Corporation | Failure-tolerant mass storage system |
US5088081A (en) * | 1990-03-28 | 1992-02-11 | Prime Computer, Inc. | Method and apparatus for improved disk access |
US5130992A (en) * | 1990-04-16 | 1992-07-14 | International Business Machines Corporaiton | File-based redundant parity protection in a parallel computing system |
-
1991
- 1991-03-18 JP JP3077305A patent/JPH0731582B2/ja not_active Expired - Lifetime
- 1991-05-22 EP EP91480082A patent/EP0462917B1/en not_active Expired - Lifetime
- 1991-05-22 DE DE69131562T patent/DE69131562T2/de not_active Expired - Lifetime
- 1991-06-13 CA CA002044521A patent/CA2044521C/en not_active Expired - Lifetime
- 1991-06-14 KR KR1019910009793A patent/KR960001748B1/ko not_active IP Right Cessation
- 1991-06-15 CN CN91103973A patent/CN1038710C/zh not_active Expired - Lifetime
-
1992
- 1992-11-12 US US08/122,739 patent/US5596709A/en not_active Expired - Lifetime
-
1997
- 1997-08-21 CN CN97116199A patent/CN1109973C/zh not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS583113A (ja) * | 1981-06-30 | 1983-01-08 | Fujitsu Ltd | デイスク制御方式 |
JPH0290254A (ja) * | 1988-09-27 | 1990-03-29 | Nec Corp | データ入出力システム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05143471A (ja) * | 1990-10-23 | 1993-06-11 | Array Technol Corp | 記憶装置の冗長アレイ内の故障記憶装置のオンライン再構成方法 |
JPH04312146A (ja) * | 1991-04-11 | 1992-11-04 | Mitsubishi Electric Corp | アレイ型記録装置 |
JPH06324815A (ja) * | 1993-05-13 | 1994-11-25 | Nec Corp | ディスクアレイ装置 |
JPH0736633A (ja) * | 1993-07-21 | 1995-02-07 | Nec Corp | 磁気ディスクアレイ |
JP2007052805A (ja) * | 2001-08-09 | 2007-03-01 | Emc Corp | メモリシステムおよびその使用方法 |
US7305605B2 (en) | 2002-11-19 | 2007-12-04 | Hitachi, Ltd. | Storage system |
Also Published As
Publication number | Publication date |
---|---|
CN1109973C (zh) | 2003-05-28 |
CN1057533A (zh) | 1992-01-01 |
DE69131562T2 (de) | 2000-04-27 |
EP0462917B1 (en) | 1999-09-01 |
CN1182913A (zh) | 1998-05-27 |
CA2044521C (en) | 1998-03-31 |
CN1038710C (zh) | 1998-06-10 |
KR920005782A (ko) | 1992-04-03 |
CA2044521A1 (en) | 1991-12-22 |
EP0462917A2 (en) | 1991-12-27 |
JPH0731582B2 (ja) | 1995-04-10 |
DE69131562D1 (de) | 1999-10-07 |
US5596709A (en) | 1997-01-21 |
KR960001748B1 (ko) | 1996-02-05 |
EP0462917A3 (en) | 1992-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04233025A (ja) | パリティ保護データを回復するための方法および装置 | |
US5790773A (en) | Method and apparatus for generating snapshot copies for data backup in a raid subsystem | |
US7185222B2 (en) | Apparatus, system, and method for maintaining data in a storage array | |
JP2501752B2 (ja) | コンピユ―タ・システムのストレ―ジ装置及びデ―タのストア方法 | |
US5657439A (en) | Distributed subsystem sparing | |
US6408400B2 (en) | Disk array device | |
US6529995B1 (en) | Method and apparatus for maintaining and restoring mapping table entries and data in a raid system | |
JP2769443B2 (ja) | 記憶サブシステム及び関連する装置/方法 | |
US7308599B2 (en) | Method and apparatus for data reconstruction after failure of a storage device in a storage array | |
US5819109A (en) | System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete | |
EP0802485B1 (en) | Host-based RAID-5 and NV-RAM integration and method therefor | |
US5933592A (en) | Promoting device level error to raidset level error to restore redundacy in a raid array data storage system | |
JP2000207136A (ja) | 複数ドライブ故障トレラントraidアルゴリズム | |
JPWO2006123416A1 (ja) | ディスク故障復旧方法及びディスクアレイ装置 | |
JP3681766B2 (ja) | ディスクアレイ装置 | |
US6301711B1 (en) | System and method for the network support of full motion video using a redundant array of inexpensive disks | |
JPH09269871A (ja) | ディスクアレイ装置におけるデータ再冗長化方式 | |
US7024585B2 (en) | Method, apparatus, and program for data mirroring with striped hotspare | |
JPH07261945A (ja) | ディスクアレイ装置およびディスクアレイの区分け方法 | |
JP3213799B2 (ja) | 記憶制御装置 | |
JP3155836B2 (ja) | ディスクアレイ装置 | |
KR19980047273A (ko) | 레이드 레벨 5 시스템에서 캐쉬 관리 방법 | |
KR20030073982A (ko) | 레이드 서브 시스템에서 중복 데이터의 일관성 유지 방법 | |
JP3009987B2 (ja) | ディスクアレイ装置 | |
JPH06266508A (ja) | ディスクアレイ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090410 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100410 Year of fee payment: 15 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110410 Year of fee payment: 16 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110410 Year of fee payment: 16 |
|
EXPY | Cancellation because of completion of term |