[go: up one dir, main page]

JP3129732B2 - コピーバックキャッシュを有する記憶装置アレイ - Google Patents

コピーバックキャッシュを有する記憶装置アレイ

Info

Publication number
JP3129732B2
JP3129732B2 JP04504448A JP50444892A JP3129732B2 JP 3129732 B2 JP3129732 B2 JP 3129732B2 JP 04504448 A JP04504448 A JP 04504448A JP 50444892 A JP50444892 A JP 50444892A JP 3129732 B2 JP3129732 B2 JP 3129732B2
Authority
JP
Japan
Prior art keywords
storage unit
block
data block
error correction
data
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
JP04504448A
Other languages
English (en)
Other versions
JPH06504863A (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 JPH06504863A publication Critical patent/JPH06504863A/ja
Application granted granted Critical
Publication of JP3129732B2 publication Critical patent/JP3129732B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/1019Fast writes, i.e. signaling the host that a write is done before data is written to disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 背景技術 1.発明の分野 本発明は、コンピュータシステムのデータ記憶に関
し、詳しくは、一時記憶用のコピーバックキャッシュ記
憶ユニットを用いたフォールトトレラント(faulttoler
ant)記憶装置アレイに関する。
2.関連技術の記載 通常の一般的なデータ処理システムは、単一又は複数
の記憶ユニットを備えている。この記憶ユニットは、直
接に、又は制御ユニット及びチャネルを介して、中央処
理ユニット(CPU)に接続される。記憶ユニットの機能
は、CPUが特定のデータ処理タスクを実行する際に用い
るデータ及びプログラムを記憶することである。
最近のデータ処理システムには種々の記憶ユニットが
使用されている。典型的なシステムは、大容量のテープ
ユニットや、大容量の磁気、光、半導体ディスクドライ
ブ等を、1又はそれ以上の個数、備えている。これら
は、それぞれ、制御ユニットを介してシステムに接続さ
れる。
しかしながら、ある大規模容量記憶ユニットにおいて
フェイルが発生すると、システムがこのユニット上の情
報にはもはやアクセスできなくなるという問題が生じ
る。一般的に、このようなフェイルは、コンピュータシ
ステム全体をダウンさせてしまう。
そこで、従来から、信頼性の高いデータ記憶を提供す
るという課題に関する技術が提案されてきた。記録規模
が比較的小さいシステムでは、ECCシンドロームビット
を発生させる誤り訂正符号を使用し、記憶ユニット内の
各データ記録に付加することも可能である。このような
符号を用いると、誤って読み取られたデータを少量なら
ば補正することができる。しかしながら、この種の符号
は、長い記録にエラーが生じた場合のその補正や再生に
は適さず、また、その記憶ユニットの全体がフェイルし
た場合にはもはや救済できない。それゆえ、個々の記憶
ユニット上のデータに外部から信頼性を与える必要が生
じていた。
この種の“外部”信頼性へのアプローチも従来から検
討されてきた。カリフォルニア大学バークレー校の研究
グループは、“A Case for Redundant Arrays of Inexp
ensive Disks(RAID)",Patterson et al.,Proc.ACM SI
GMOID,June 1988と題する論文において、ディスクドラ
イブを記憶ユニットとして使用した場合にこのような信
頼性を与えるための異なったいくつかのアプローチを示
している。ここでは、ディスクドライブアレイによって
特徴づけられた5種類のアーキテクチャが開示されてい
る。これらのアーキテクチャRAID(Redundant Array of
Inexpensive Disks:廉価ディスク冗長アレイ)システ
ムと呼ばれ、それぞれ以下に述べる構成を有している。
RAID1アーキテクチャは、“ミラー”記憶ユニットと
呼ばれる対をなす記憶ユニット群を有している。各記憶
ユニットには、対をなす記憶ユニット状の全てのデータ
がコピーされ保存されている。このような方法は、信頼
性の問題を解決する一方で、記憶のためのコストを二倍
にする。RAID1アーキテクチャは、特にタンデム社によ
って多く装置化されている。
RAID2アーキテクチャでは、各ワードデータがビット
毎に異なるディスクドライブに記憶される。これは、
“ビットストライピング”として知られている。また、
各ワードには誤り検出訂正(EDC)ビットが付加されて
おり、これもビットストライピングの対象となる。例え
ばFlora et al.の米国特許第4,722,085号は、比較的小
容量で個別に操作可能な複数のディスクサブシステムを
使用したディスクドライブメモリを開示している。この
ディスクドライブメモリは、非常に高いフォールトトレ
ラントとデータ転送帯域幅を有する大規模な高容量ディ
スクドライブとして機能する。データオーガナイザは、
各32ビットのワードデータにEDC7ビット(周知のハミン
グ符号を使用する)を付加することにより、誤り検出訂
正機能を与える。こうして得られる39ビットのワード
は、1個のディスクドライブ当たり1ビット、合計39個
のディスクドライブに書き込まれる。39個のディスクド
ライブのうち1個がフェイルした場合には、個別に記憶
された残りの38ビットを使用することにより、各ワード
データをディスクドライブから読み取りながら、32ビッ
トのデータワードをワードバイワードベースで再構成す
ることができる。これによってフォールトトレランスが
達成される。
この種のシステムの明らかな失点は、ほとんどの大型
コンピュータは32ビットワードを使用するため最小限シ
ステムにも多数のディスクドライブが必要とされるこ
と、EDCビットを記憶するために39個中7個というかな
り多数のドライブが必要とされることである。さらに、
RAID2型のディスクドライブメモリシステムには、各デ
ータブロックのビットを各ディスクドライブに分配すべ
く、個別のディスクアクチュエータを一斉に動作させる
ことにより各データブロックを書き込まねばならないと
いう制限がある。このような構成は、各ディスクがそれ
ぞれデータブロックの一部分を転送するため広いデータ
転送帯域幅を有しており、単一のドライブによりブロッ
クをアクセスする場合よりずっと速く、コンピュータシ
ステムがブロック全体を利用できるようにになるという
効果を奏する。しかしながら、この構成は、記憶ユニッ
ト全体に単一のリード/ライトヘッドアクチュエータを
設けることによってのみ効果的になる。反面、“単一
の”アクチュエータによって1回でアクセスできるのは
データファイル1個だけであるので、データファイルが
小さい場合におけるドライブアレイに対するランダムア
クセス性が影響を受ける。このように、RAID2システム
は、バンキング、金融、予約システム等、複数の小デー
タファイルへの多数のランダムアクセスによって大量の
データ記憶転送操作が行われるような、オンライン業務
処理(OLTP)用に設計されたコンピュータシステムには
一般に適さないと考えられる。
RAID3アーキテクチャは、各ディスクドライブ記憶ユ
ニットにフェイルやデータ誤りを検出する内部手段を設
けるという思想に基づくものである。それゆえ、誤り位
置を検出するための余分な情報を記憶する必要はなく、
より単純な形態のパリティベースの誤り訂正でよくな
る。このアプローチでは、フェイルが起きたすべての記
憶ユニットの内容を“XOR"(排他的論理和演算)するこ
とによりパリティ情報が生成される。得られるパリティ
情報は単一の冗長記憶ユニットに記憶される。従って、
あるひとつの記憶ユニットがフェイルした場合には、こ
のフェイルしたユニット上のデータは、残りの記憶ユニ
ットからのデータとパリティ情報をXORすることによっ
て、置き換え記憶ユニット上に再構成できる。このよう
な構成は、ミラーディスクRAID1アーキテクチャに比
べ、N個の記憶ユニット当たり1個の記憶ユニットを追
加するだけで足りるという利点がある。RAID3アーキテ
クチャは、さらに、ディスクドライブをRAID2システム
同様に結合して動作させ、1個のディスクドライブをパ
リティユニットとして使用するという設計も可能であ
る。
RAID3アーキテクチャを装置化した例としては、マイ
クロポリス社のパラレルドライブアレイモデル1804SCSI
がある。このモデルは、4個の同期化されたディスクド
ライブを並列的に使用しており、さらに冗長パリティド
ライブを1個使用している。4個のデータディスクドラ
イブのうち1個がフェイルしたとしても、パリティディ
スクドライブに記憶されたパリティビットの使用によっ
て、これを回復できる。RAID3システムの別の例は、Ouc
hiの米国特許第4,092,732号に述べられている。
RAID3ディスクドライブメモリシステムは、RAID2シス
テムよりはるかに低い冗長度ユニット/データユニット
比を有する。しかし、やはりRAID2システムと同様の限
界を有する。すなわち、個々のディスクアクチュエータ
を結合して一斉に動作させねばならない。“単一の”ア
クチュエータによって1回でアクセスできるのはデータ
ファイル1個だけであるので、データファイルが小さい
場合におけるドライブアレイに対するランダムアクセス
性が影響を受ける。このように、この点で、RAID3シス
テムは、OLTP用に設計されたコンピュータシステムには
一般に適さないと考えられる。
RAID4アーキテクチャは、RAID3システムと同様のパリ
ティ誤り訂正を用いている。RAID4アーキテクチャで
は、RAID3システムに比べ、小規模ファイルに対するラ
ンダムアクセス性が改善されている。この改善は、個々
のディスクアクチュエータを結合せずに、より大きな最
小量データ(例えばディスクセクタ)を読み出しこれを
各ディスクに書き込むことによって実現されている。こ
の処理もブロックストライピングと呼ばれている。RAID
4アーキテクチャは、1個の記憶ユニットをパリティユ
ニットに割り当てた構成としても実現できる。
RAID4システムの限界は、個別に動作するデータ記憶
ユニットのうちあるユニットにデータブロックの書き込
みを行う場合に、パリティユニットにも新たなパリティ
ブロックを書き込まねばならない点にある。まず、デー
タ記憶ユニット上の古いデータから情報内容を除去する
ためには、パリティユニットに記憶されたパリティ情報
を読み出し、当該古いデータとXORしなければならな
い。さらに、データ記憶ユニット上に新たなデータブロ
ックを書き込む際、このXORの結果得られる総和を、当
該新たなデータとXORし、新たなパリティ情報を生成す
る必要がある。そして、得られた新たなデータ及び新た
なパリティ記録を、それぞれ、ディスクドライブに書き
込む。このプロセスは一般にリードモディファイライト
シーケンスと呼ばれる。
このように、パリティユニットのパリティ記録によっ
てカバーされる任意のデータ記憶ユニット上で記録が変
更されるたびに、パリティユニットに対するリード/ラ
イトが生じる。単位時間当たり記録変更回数はパリティ
ユニットへのアクセス速度の関数であるので、パリティ
ユニットがデータ書き込み操作のボトルネックとなり、
複数のデータ記憶ユニットの並列動作によるより速いア
クセス速度に対立する。この限界のため、RAID4システ
ムはOLTP用のコンピュータシステムに適切であるとは考
えられない。実際、RAID4システムの商業的な使用は行
われていないようである。
RAID5アーキテクチャは、RAID4アーキテクチャと同様
のパリティ誤り訂正並びに個別アクチュエータを用いて
いる。RAID5アーキテクチャでは、しかし、データ及び
パリティ情報を全てのアクセス可能なディスクドライブ
に分散させることによって、RAID4システムの書込み性
能が改良されている。一般に、“N+1"個の記憶ユニッ
トが組で、すなわちいわゆる冗長グループとして使用さ
れ、これらの記憶ユニットによる記憶空間が、ブロック
と称される複数の同サイズのアドレス領域に分割され
る。各記憶ユニットは通常同数のブロックを含んでい
る。ある冗長グループを構成する各記憶ユニットからの
ブロックのうち同じユニットアドレスを有するブロック
は、“ストライプ”と呼ばれる。各ストライプは、N個
のデータブロックと、そのストライプの残りのブロック
についてのパリティを含むプラス1個のパリティブロッ
クとを、1個の記憶ユニット上に有している。その他の
ストライプもそれぞれパリティブロックを有しているか
ら、パリティブロックは異なる記憶ユニット上に分散さ
れる。冗長グループ中の各データ変更と関連するパリテ
ィ更新アクティビティは、従って、異なる記憶ユニット
上に分散される。1個のユニットに全てのパリティ更新
アクティビティがかけられるということは、全くない。
例えば5個のディスクドライブを有するRAID5システ
ムでは、第1ブロックストライプのパリティ情報は第5
ドライブに、第2ブロックストライプのパリティ情報は
第4ドライブに、第3ブロックストライプのパリティ情
報は第3ドライブに、というように、連続するストライ
プのパリティブロックは一般にヘリカルパターンでディ
スクドライブ回りに書き込まれる。もちろん別のパター
ンが使用されてもよい。
このように、パリティ情報を記憶するために1個のデ
ィスクドライブだけが使用されることは全くなく、RAID
4アーキテクチャのボトルネックが解消される。RAID5シ
ステムの例は、Clark et al.による米国特許第4,761,78
5号に述べられている。
RAID4システムと同様、RAID5システムの限界は、デー
タブロックを変更する際、2度のリード操作と2度のラ
イト操作からなるリードモディファイライトシーケンス
を必要とすることである。すなわち、古いパリティブロ
ックと古いデータブロックのリード及びXORを実行する
必要があり、さらに、XORにより得られた総和を新たな
データとXORする必要がある。新たなデータ及びパリテ
ィブロックは、ディスクドライブに再び書き込まねばな
らない。2度のリード操作は、2度のライト操作と同
様、平行して行われるものの、RAID4又はRAID5システム
でのデータブロックの変更は、従来のディスクの同じ操
作よりさらに時間がかかる。従来のディスクでは最初の
リード操作が不要であるから、従って、ライト操作を行
うべくディスクドライブが元の位置まで回転して戻るの
を待たねばならない。回転待ち時間だけでも、通常のデ
ータ変更処理に要する時間の約50%に達する。また、各
データ変更操作の遅れに2個のディスク記憶ユニットが
巻き込まれ、全体としてシステムのスループットが制限
される。
このようなライト性能ペナルティにもかかわらず、高
いデータ信頼性、冗長性のための低いオーバヘッドコス
ト、優れたリード性能、相当の書き込み性能によって、
RAID5型システムは顕著にポピュラー化している。しか
しながら、パリティ更新操作に要する回転遅れ時間に起
因した書込み性能ペナルティなしに、RAID5システムを
有効に利用することが望まれる。
本発明はそのようなシステムを提供する。
発明の概要 本発明は、記憶ユニットに対するアクセスが間欠的で
あることの認識により、RAID5アーキテクチャにおける
誤り訂正ブロックのボトルネックを解決するものであ
る。すなわち、CPUからのアクセス要求によってRAID5シ
ステム中の1又は複数の記憶ユニットがアイドル状態と
なる特性を利用すると共に、標準的なRAIDシステムにさ
らにコピーバックキャッシュ記憶ユニットを付加する。
本発明は、このようなシステムを動作させるための2種
類の方法を提供する。
いずれの方法においても、RAIDシステム中でライトが
生じると、データは即座にコピーバックキャッシュ記憶
ユニット内の第1の記憶可能領域に書き込まれる。コピ
ーバックキャッシュ記憶ユニットへの書き込みが完了す
ると、この書き込みの成功が即座にホストCPUに報知さ
れる。その後、書き込まれたデータの誤り訂正ブロック
の更新を待たずに、CPUによる次の記憶ユニットアクセ
スが継続して行われる。
本発明の第1の方法では、記憶システム中の関連する
記憶ユニットのアイドル期間中に、コピーバックキャッ
シュ記憶ユニット内の各ペンディングデータブロックに
ついて誤り訂正ブロック(例えばXORパリティ)が計算
され、データブロックとこれに対応する誤り訂正ブロッ
クは、RAIDシステム内のそれぞれの適正な記憶領域にコ
ピーされる。また、多くのデータブロックが同一のスト
ライプに書き込まれるような場合は、そのストライプ中
のすべてのデータブロックから誤り訂正ブロックが一度
に算出され、時間の節約ができる。この方法では、実際
には、コピーバックキャッシュ記憶ユニットはピークロ
ードライトデータを記憶し、その後CPUによるI/Oアクセ
スの比較的な静的な期間にRAIDシステムへの実際の書き
込み操作が完了される。
本発明の第2の方法では、ライトデータがコピーバッ
クキャッシュ記憶ユニットにログされた後に、CPUのそ
の他のI/Oアクセスと重複しながら、コントローラのバ
ッファメモリ内のライトデータを使用して、RAIDシステ
ムコントローラによる通常のリードモディファイライト
操作が継続される。ここに、コピーバックキャッシュ記
憶ユニットへの単純なライトが完了すると即座にCPUが
演算を継続できるので、その性能が強化され、従って通
常のリードモディファイライトRAIDシステムで生じる遅
延が解消される。この方法では、コピーバックキャッシ
ュ記憶ユニットはさらにライトデータのランニングログ
としての機能も果たす。ライトデータはコピーバックキ
ャッシュ記憶ユニットにセーブされるので、データの一
体性が保たれ、従ってRAIDシステムに対するリードモデ
ィファイライト操作が完了されない場合でさえ、アクセ
ス可能となる。
コピーバックキャッシュ記憶ユニットは、電源が落ち
てもデータが失われないように、不揮発性であるのが好
ましい。コピーバックキャッシュ記憶ユニットがディス
クドライブである場合は、フォールトトレランス(故障
許容)のためにミラー記憶ユニットと対にされているの
が望ましい。また、コピーバックキャッシュ記憶ユニッ
トは、ディスクドライブよりも速い書込み時間及び誤り
訂正ブロック更新時間を達成できる固体記憶ユニットで
あってもよい。
本発明の好適な実施例の詳細は以下の説明と図面によ
って示される。発明の詳細の開示に従って、当業者にと
って多様な改良例および変化が明白なものとなるはずで
ある。
図面の簡単な説明 図1は、本発明によるコピーバックキャッシュ記憶RA
IDシステムのブロック図である。
図2は、本発明の第1実施例によるリード/ライト操
作のフローチャートである。
図3は、本発明の第2実施例によるリード/ライト操
作のフローチャートである。
図面中、同一の符号は同じ構成要素を示す。
発明の詳細な説明 本記述を通して示される良好な実施例は一つの例とし
て考えられ、本発明を限定するものではない。
図1は、本発明によるコピーバックキャッシュRAIDシ
ステムのブロック図である。図示されるように、CPU1は
バス2を介してアレイコントローラ3に接続される。こ
のアレイコントローラ3は、実施例では、フォールトト
レラントコントローラである。アレイコントローラ3
は、I/Oバス(例えばSCSIバス)によって、複数の記憶
ユニットS1−S5(5個という数字は単なる例示である)
それぞれに接続される。記憶ユニットS1−S5はフェイル
(障害)の点で独立であり、すなわち、あるユニットで
フェイルが起きてもその他のユニットの物理的な動作に
影響を及ぼさない。アレイコントローラ3は、好ましく
は、個別プログラム可能のプロセッサ(例えば、カリフ
ォルニア州サニーヴァルのMIPS社のMIPS R3000 RISC
プロセッサ)を含む。この種のプロセッサは、CPU1と独
立して記憶ユニットを制御できる。
コントローラ3には、また、コピーバックキャッシュ
記憶ユニットCCも接続されている。この実施例では、コ
ピーバック記憶ユニットCCは、コモンI/Oバス(例えばS
CSIバス)に接続されており、コピーバック記憶ユニッ
トCCと記憶ユニットS1−S5との間でデータが転送され
る。コピーバックキャッシュ記憶ユニットCCは不揮発性
であり、電源が落ちてもデータは失われない。コピーバ
ックキャッシュ記憶ユニットCCがディスクドライブであ
る場合は、フォールトトレランスのためミラー記憶ユニ
ットCC′と対にするのが好ましい。ミラー記憶ユニット
CC′は、コントローラ3に接続され、コピーバックキャ
ッシュ記憶ユニットCCに書き込まれたすべてのデータが
基本的に同時にミラー記憶ユニットCC′に周知の方法で
書き込まれる。コピーバックキャッシュ記憶ユニットCC
は固体の記憶ユニットであってもよく、固体の場合は書
込み時間及び誤り訂正ブロック更新時間がディスクドラ
イブよりも速くなる。そのような場合は、固体記憶ユニ
ットは誤り検出及び訂正回路を有し、不揮発性である
か、あるいは電源供給にバッテリのバックアップを有す
る。
記憶ユニットS1−S5は、1又は複数の冗長グループに
グループ分けされる。以下で述べられる図例では、説明
の簡略化のために、すべての記憶ユニットS1−S5が1個
の冗長グループに含まれるとしている。
本発明は、コントローラ3によって実行されるコンピ
ュータプログラムとして実現される。図2は、本発明の
第1実施例におけるリード/ライトステップを示すハイ
レベルフローチャートである。図3は、本発明の第2実
施例におけるリード/ライトステップを示すハイレベル
フローチャートである。以下、図2及び3に示されるス
テップを説明する。
ピークロード実施例 コントローラ3は、基本的に、CPU1からの入力/出力
要求を連続ベースでモニタする(ステップ20)。書込み
要求がペンディング中であれば(ステップ21)、そのデ
ータブロックは即座にコピーバックキャッシュ記憶ユニ
ットCC内の第1記憶可能領域に書き込まれる(ステップ
22)。このデータブロックは、ミラー記憶ユニットCC′
があればそこにも記憶される。書込みはまず、コピーバ
ックキャッシュ記憶ユニットCC上の第1論理ブロックで
行われ、連続して最終論理ブロックまで継続される。そ
の後(アレイ中に記憶されていないブロックに重ね書き
がない限り)、再び第1ブロックでの書き込みが開始さ
れる。この好ましい実施例によると、コピーバックキャ
ッシュ記憶ユニットCCにおいて時間のかかるSEEK動作
(すなわち、記憶ユニット内のリード/ライトヘッドの
物理的な移動)を最小限とすることができる。
コピーバックキャッシュ記憶ユニットCCに記憶される
各データブロックは、そのデータブロックが最終的に記
憶されることになるアレイのロケーション(位置)にフ
ラッグされ、ポインタはそのデータブロックがコピーバ
ックキャッシュ記憶ユニットCCにあることを示すように
セットされる(ステップ23)。このロケーション情報及
びポインタ情報は、メモリ内の個別のテーブルあるいは
コピーバックキャッシュ記憶ユニットCCに保持される。
前記テーブルは、各データブロックのサイズ、属性、状
態に関する標準情報を含むエントリーを有するディレク
トリテーブルからなる。さらに、各エントリーは、その
データブロックがコピーバックキャッシュ記憶ユニット
CCに記憶されているかアレイ(S1−S5)に記憶されてい
るかを示す1又は複数のフィールドと、そのデータブロ
ックにとってのアレイ中の“正常”ロケーションとを有
する。このようなディレクトリテーブルの生成は当業者
にとっては周知である。
アレイ中の同じロケーションに記憶されるはずのデー
タブロックがまだ“ペンディングブロック(コピーバッ
クキャッシュ記憶ユニットCCに書き込まれたもののS1−
S5のアレイへまだ転送されていないデータブロック)”
である時に、別のデータブロックがコピーバックキャッ
シュ記憶ユニットCCに書き込まれた場合は、そのデータ
ブロックのディレクトリロケーションポインタは“旧”
バージョンではなく“新”バージョンを指すように変更
される。旧バージョンはそれ以後無視されるが、引き続
いての操作中に書き直されてもよい。
この方式で書き込み要求が処理されたなら、コントロ
ーラ3は即座にCPU1に通報を送り、書込み処理の成功を
示す(ステップ24)。そして、モニタリングプロセスが
繰り返される(ステップ25)。CPU1による記憶ユニット
のアクセスは、書き込まれたばかりのデータの誤り訂正
ブロックの更新を待たずに継続する。このように、コピ
ーバックキャッシュ記憶ユニットCCへのライトデータの
記憶は、CPU1の操作面に関しては、標準RAIDシステムの
リードモディファイライトシーケンスを必要としないの
で、アレイの書き込みのスループット時間は非冗長シス
テムと同じであるように見える。
ライト要求がペンディング中でない場合は(ステップ
21)、コントローラ3は読出し要求がペンディングであ
るかどうかをテストする(ステップ26)。読出し要求が
ペンディング中であれば、コントローラ3はディレクト
リを読み取って、要求された各データブロックのロケー
ションを検出する(ステップ27)。要求されたデータブ
ロックがアレイ中にない場合は(ステップ28)、コント
ローラ3はコピーバックキャッシュ記憶ユニットCCから
ブロックを読み出し、それをCPU1へ転送する(ステップ
29)。その後モニタリングプロセスが繰り返される(ス
テップ30)。要求されたデータブロックがアレイ中にあ
れば(ステップ28)、コントローラ3はアレイ(S1−S
5)から通常の方式でブロックを読み出し、それをCPU1
へ送る(ステップ31)。その後モニタリングプロセスが
繰り返される(ステップ32)。
本発明のいくつかの実施例では、コントローラ3内に
ディスクキャッシュメモリを含む。もちろんそのような
キャッシュでも明らかに読み出し要求は満たされる。
アレイ中の特定の記憶ユニットについてペンディング
中のライト/リードが全くない場合は、これらの記憶ユ
ニットがCPU1のI/Oアクセスに関して“アイドル”状態
であることを示し、コントローラ3は、そのアイドル記
憶ユニット上のロケーションにフラッグされた“ペンデ
ィングブロック”があるかどうかをチェックする。ペン
ディングブロックが全くなければ(ステップ33)、コン
トローラ3はモニタリングのサイクルを再開する(ステ
ップ34)。
ペンディングブロックが存在すれば(ステップ33)、
コントローラ3はコピーバックキャッシュ記憶ユニット
CCからペンディングブロックを読み取る(ステップ3
5)。コントローラ3はそのペンディングブロックをア
レイの適正なロケーションに書き込み、このペンディン
グブロックに基づいて計算される新たな誤り訂正ブロッ
クを求め記憶する。
本発明の良好な実施形態では、誤り訂正ブロックはパ
リティ情報を含む。このように、ディレクトリに記憶さ
れたペンディングブロックの位置情報で示されるアレイ
位置に対応する古いデータブロックと古い誤り訂正ブロ
ックとを読み取ることによって、そのペンディングブロ
ックにおける誤り訂正ブロックの更新が達成される(ス
テップ36)。コントローラ3はその後、旧データブロッ
クと、ペンディングデータブロックと、旧誤り訂正ブロ
ックとをXORして、新規の誤り訂正ブロックを生成する
(ステップ37)。この新誤り訂正ブロックとペンディン
グブロックはアレイS1−S5の適正なロケーションに書き
込まれる(ステップ38)。
多数のペンディングブロックが同一のストライプに書
き込まれるような場合は、そのストライプ中の更新され
ていない全てのデータブロックを読み出し、これらのデ
ータブロックをペンディングブロックとXORして新たな
誤り訂正ブロックを生成し、ペンディングブロックと新
誤り訂正ブロックとをアレイに書き込むことによって、
そのストライプ中のすべてのデータブロックに関する誤
り訂正が一度に算出される。これによって時間の節約が
実現される。
ペンディングブロックがコピーバックキャッシュ記憶
ユニットCCからアレイに送られたなら、そのブロックの
ためのディレクトリエントリーは修正され、そのデータ
ブロックがコピーバックキャッシュ記憶ユニットCCにで
はなく、アレイ中にあることを示す(ステップ39)。そ
の後、コントローラ3はモニタリングの周期を再開する
(ステップ40)。
本発明は、逐次分岐処理の面から述べられているが、
個別のタスクが同時に行われるようなマルチタスクシス
テムにおいて実施されることも可能である。そのような
場合、上述のリード/ライトプロセス、及びペンディン
グブロックの転送は、同時に行われる個別のタスクとし
て実行される。従って、図2のステップ21、26、33で示
されるテストは、データブロックを読み取り、書き込
み、ペンディングブロックを転送するために、関連タス
クの要求中に暗黙のうちに行われる。例えば、コピーバ
ックキャッシュ記憶ユニットCCからアレイ中の記憶ユニ
ットへのペンディングブロックの転送は、アレイ中の別
の記憶ユニットへの読取り操作と同時に行われてもよ
い。また、コントローラ3がアレイ中の各記憶ユニット
における多数のI/O要求を“スタック”できるタイプの
アレイであれば(多くのSCSIベースのRAIDシステムがそ
うであるように)、上述の処理操作は同じ記憶ユニット
へのアクセスに関しては“同時に”行うことができる。
データログ実施例 上述の実施例におけるように、コントローラ3は基本
的に連続ベースでCPU1からの入出力要求をモニタする
(ステップ50)。この実施例では、コントローラ3には
比較的大きな(例えば1メガバイト)とデータバッファ
が設けられ、アレイに書き込まれるはずのデータを一時
的に格納する。書込み要求がペンディング中であれば
(ステップ51)、そのデータブロックはコントローラ3
によって、即座にコピーバックキャッシュ記憶ユニット
CCの第1記憶可能位置に書き込まれる(ステップ52)。
このデータブロックはミラー記憶ユニットCCがある場合
はそこにも記憶される。書込みは、コピーバックキャッ
シュ記憶ユニットCC上の第1論理ブロックから始めら
れ、それに続いて最終論理ブロックまで継続して行われ
る。その後、(アレイ中に記憶されなかったブロックが
重ね書きされない限り)書き込みは再び第1ブロックか
ら開始される。この良好な方法ではコピーバックキャッ
シュ記憶ユニットCCでのSEEK操作を最小限にする。
第1実施例では、SEEK操作はアイドルタイムにペンデ
ィングブロックを引き出してアレイへ転送することが必
要とされたが、この実施例では、コピーバックキャッシ
ュ貯蔵記憶ユニットCCは書き込みデータのランニングロ
グとしての役割を果たす。第1実施例とは対称的に、SE
EK操作は、現行の領域がふさがっている場合に次のデー
タ書込み領域(例えばディスクドライブ中の次のシリン
ダ)への変更のために、あるいは記憶ユニットの最終論
理位置に達した後に開始論理位置にライト/リードヘッ
ドをリセットするために、もしくは機能不全の後にデー
タブロックをSEEKするためだけに必要とされる。
コピーバックキャッシュ記憶ユニットCC上に記憶され
た各データブロックは、そのデータブロックが最終的に
記憶されることになるアレイ中のロケーションと、コピ
ーバックキャッシュ記憶ユニットCC内でのロケーション
とを用いてフラッグされ、ポインタは、そのデータブロ
ックがコントローラバッファの中にあることを示すよう
にセットされる(ステップ53)。先と同様に、このよう
なロケーションとポインタ情報やディレクトリテーブル
に保持される。
コントローラ3のバッファによって、第2の実施例の
「ペンディングブロック」の定義は第1実施例での定義
といくぶん異なってくる。「ペンディングブロック」と
は、コピーバックキャッシュ記憶ユニットCCに書き込ま
れはしたものの、コントローラバッファからアレイS1−
S5に転送されていないデータブロックのことである。
アレイ中の同じロケーションに記憶されるはずのデー
タブロックがまだコントローラバッファ内の“ペンディ
ングブロック”である間に別のデータブロックがコピー
バックキャッシュ記憶ユニットCCに書き込まれた場合
は、そのデータブロックのためのディレクトリロケーシ
ョンポインタは、コピーバックキャッシュ記憶ユニット
CCとバッファの双方で旧バージョンから新バージョンを
示すように変更される。この旧バージョンはそれ以後無
視されるが、その後の操作で書き直されることも可能で
ある。
書込み要求がこの方式で処理されたならば、コントロ
ーラ3は書込み操作が成功した旨をCPU1に報知する(ス
テップ54)。そしてモニタリングプロセスが繰り返され
る(ステップ55)。書き込まれたばかりのデータブロッ
クの誤り訂正ブロックの更新を待たずに、CPU1による次
の記憶ユニットアクセスが継続される。このように、コ
ピーバックキャッシュ記憶ユニットCCへの書込みデータ
の記憶は、CPU1の操作に関して標準RAIDシステムのリー
ドモディファイライトシーケンスを必要としないので、
アレイの書込み応答時間は、非冗長システムと同じよう
に見える。
書込み要求がペンディングでない場合は(ステップ5
1)、コントローラ3は読取り要求がペンディングであ
るかどうかをテストする(ステップ56)。読出し要求が
ペンディングであれば、コントローラ3はディレクトリ
テーブルを読み取って要求された各データブロックのロ
ケーションを検出する(ステップ57)。要求されたデー
タブロックがアレイ中にあれば(ステップ58)、コント
ローラ3は通常の方法でアレイ(S1−S5)からそのブロ
ックを読み出して、それをCPU1に送る(ステップ59)。
そしてモニタリングプロセスが繰り返される(ステップ
60)。
要求されたデータブロックがアレイ中にないとしたら
(ステップ58)、そのブロックはコントローラ3のバッ
ファ内にあるはずである。コントローラ3はバッファか
らCPU1へとそのデータブロックを転送する(ステップ6
1)。バッファは機械的に課せられる待ち時間なしに電
子的速さで動作するので、この動作は第1の実施例と比
べて非常に速い。そして、モニタリングプロセスが繰り
返される(ステップ62)。
アレイ中の特定の記憶ユニットにおいてペンディング
中の書込みあるいは読出し操作がない場合は、これらの
記憶ユニットはCPU1のI/Oアクセスに関して“アイド
ル”であることを示し、コントローラ3は、バッファ中
にアイドル記憶ユニットのロケーションにフラッグされ
た“ペンディングブロック”があるかどうかをチェック
する。ペンディングブロックがまったくなければ(ステ
ップ63)、コントローラ3はモニタリングのサイクルを
再開する(ステップ64)。
ペンディングブロックが存在すれば(ステップ63)、
コントローラ3はそのペンディングブロックにアクセス
し(ステップ65)、このペンディングブロックに基づい
て新規の誤り訂正ブロックを算出して記憶する。前述と
同様に、本発明の実施例では、誤り訂正ブロックはパリ
ティ情報を含む。このように、このペンディングブロッ
クにおける誤り訂正ブロックの更新は、ディレクトリに
記憶されたペンディングブロックの位置情報によって示
されるアレイ位置に対応する旧データブロックと旧誤り
訂正ブロックとを読み出すことによって達成される(ス
テップ66)。コントローラ3はこの旧データブロックと
ペンディングデータブロックと旧誤り訂正ブロックとを
XORして、新規の誤り訂正ブロックを生成する(ステッ
プ67)。この新規の誤り訂正ブロックとペンディングブ
ロックはアレイS1−S5に書き込まれる(ステップ68)。
また、多くのペンディングブロックが同じストライプ
に書き込まれる場合は、そのストライプ中の更新されな
い全てのデータブロックを読み取り、これらのデータブ
ロックをペンディングブロックとXORして新規の誤り訂
正ブロックを生成し、ペンディングブロックと新規の誤
り訂正ブロックとをアレイに書き込むことによって、そ
のストライプ中のすべてのデータブロックに関して誤り
訂正が一度に計算され得る。こうして時間の節約が実現
される。
ペンディングブロックがコントローラ3のバッファか
らアレイに転送されたならば、ディレクトリが変更さ
れ、そのペンディングブロックはもはやコピーバックキ
ャッシュ記憶ユニットCCもしくはバッファ内で有効でな
いことを示す(ステップ69)。古いペンディングブロッ
クはそれ以後無視されるが、その後の操作で書き直され
てもよい。そしてコントローラ3はモニタリングサイク
ルを再開する(ステップ70)。
すべてのデータブロックがバッファからアレイに書き
込まれる前にシステムの不全が起きた場合は、コントロ
ーラ3はコピーバックキャッシュ記憶ユニットCCからア
レイに書き込まれなかったペンディングブロックを読み
取り、選択されたペンディングブロックをアレイに書き
込む。
本発明は、逐次分岐処理の面から述べられてきたが、
別個のタスクを同時に行うマルチタスクシステムで本発
明が実践実行されてもよい。図3のステップ51、56、63
で示されるテストは、データブロックの書き込み、読み
取り、ペンディングブロックの転送のために、関連タス
クの要求中に暗黙のうちに実行される。
このように、本発明は、CPU1によるI/Oアクセスに関
して非ロード状態がある限り、標準的なエラー更新動作
により生じる回転待ち時間に起因する書き込み実行のペ
ナルティなしに、RAIDシステムの利点を提供するもので
ある。どのアレイ記憶ユニットにおけるアイドルタイム
も生産的に活用され、CPU1による比較的非活動的な瞬間
に、コピーバックキャッシュ記憶ユニットCCに記憶され
るデータが(キャッシュ自体から、あるいはコントロー
ラーのバッファから)アレイに書き込まれることとな
る。
本発明の実施例の数々が述べられてきたが、本発明の
神髄と範囲から離脱することなく多様な変形が可能であ
ることを理解されたい。例えば、本発明はRAID3、RAID4
あるいはRAID5のシステムと共に用いられてもよい。ま
た、必要な冗長情報のために、XOR生成されたパリティ
とともに、あるいはこのパリティの代わりに他の誤り訂
正方法が用いられてもよい。リード−ソロモンコードを
使用したこのような方法のひとつは、「アレイディスク
ドライブシステムおよび方法」と題された同一出願人に
よる1988年11月14日出願の米国特許出願題270,713号に
開示されている。
多くのRAIDシステムに見られる別の例としては、即座
に支障が起きたアクティブ記憶ユニットの代用となる
“ホットスペア”記憶ユニットが挙げられる。本発明は
そのような“ホットスペア”をコピーバックキャッシュ
記憶ユニットCCとして用いることによってことによって
実践されてもよく、コピーバックキャッシュ機能専用の
記憶ニットの必要性を解消する。“ホットスペア”が本
来の目的のために必要とされる場合は、RAIDシステムは
代用ディスクが与えられるまでノンコピーバックキャッ
シュモードになる。
また別の例では、コピーバックキャッシュ記憶ユニッ
トCCは、実施例での共通のI/Oバス(例えばSCSIバス)
ではなく専用バスを介してコントローラ3に取り付けら
れてもよい。
このように、本発明は図示される特定の実施例に限定
されるものではなく、添付クレームの範囲によってのみ
限定されるものである。
フロントページの続き (72)発明者 ウォーカ マーク アメリカ合衆国 カリフォルニア州 ロ スガトス ギスト ロード 20000 (72)発明者 ルイ アルバート アメリカ合衆国 カリフォルニア州 サ ンホセ ヘリテージ バレー ドライブ 3164 (56)参考文献 特開 昭62−110902(JP,A) 特開 昭59−153251(JP,A) 米国特許4914656(US,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 305 G06F 3/06 302 G06F 3/06 540 G06F 12/08 320 G06F 12/16 320

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】以下を備えるフォールトトレラント記憶装
    置アレイ。 a.少なくともデータブロック及びこれに対応する誤り訂
    正ブロックを含む複数ブロックにより構成されたストラ
    イプの形式で、情報を記憶する障害の点で独立した複数
    個の記憶ユニット b.データブロックを一時記憶する少なくとも1個のコピ
    ーバックキャッシュ記憶ユニット c.上記複数個の記憶ユニット及び上記少なくとも1個の
    コピーバックキャッシュ記憶ユニットに接続され、機能
    (1)〜(3)を有する制御手段を含む記憶ユニットコ
    ントローラ (1)上記複数個の記憶ユニットに新たに書き込むべき
    書込み要求対象のデータブロックを、まず上記少なくと
    も1個のコピーバックキャッシュ記憶ユニット上に、ペ
    ンディングデータブロックとして書き込む機能 (2)書込み要求対象の各データブロックの書き込みが
    終了したことを確認する機能 (3)上記複数個の記憶ユニットのうち少なくともいず
    れかの記憶ユニットのアイドルタイムにおいて処理
    (a)〜(d)を実行する機能 (a)上記少なくとも1個のコピーバックキャッシュ記
    憶ユニットに書き込まれた少なくとも1個のペンディン
    グデータブロックを、上記少なくとも1個のコピーバッ
    クキャッシュ記憶ユニットから読み出す処理 (b)上記記憶ユニットにアクセスし、各ペンディング
    データブロックに対応するそこに前から記憶されている
    データブロックを読み出す処理 (c)上記の前から記憶されているデータブロック及び
    各ペンディングデータブロックから対応する誤り訂正ブ
    ロックを生成する処理 (d)上記の対応する誤り訂正ブロックが生成される
    と、それら各ぺンディングデータブロック及びこれに対
    応する誤り訂正ブロックを、アイドル状態にある記憶ユ
    ニット上の対応するストライプに書き込む処理 (4)読出し要求対象のデータブロックが上記複数の記
    憶ユニット上に書き込まれていない場合は、当該読出し
    要求対象のデータブロックを、少なくとも1個のコピー
    バックキャッシュ記憶ユニットから読み出し、それ以外
    の場合には上記複数の記憶ユニットから読み出す機能
  2. 【請求項2】請求項1記載の記憶装置アレイにおいて、 各読み出されたペンディングデータブロックに対応する
    情報が、上記アイドル状態にある記憶ユニットの対応す
    るストライプから読み出された対応する古い誤り訂正ブ
    ロック及び対応する古いデータブロックを含む記憶装置
    アレイ。
  3. 【請求項3】請求項1記載の記憶装置アレイにおいて、 新たな誤り訂正ブロックを生成する処理が、さらに以下
    の処理を含む記憶装置アレイ。 a.上記アイドル状態にある記憶ユニットの対応するスト
    ライプから対応する古いデータブロックを読み出す処理 b.上記アイドル状態にある記憶ユニットの対応するスト
    ライプから対応する古い誤り訂正ブロックを読み出す処
    理 c.上記古いデータブロック、上記古い誤り訂正ブロック
    及び上記読み出されたペンディングデータブロックの排
    他的論理和を演算することにより、新たな誤り訂正ブロ
    ックを生成する処理
  4. 【請求項4】請求項1記載のフォールトトレラント記憶
    装置アレイにおいて、 少なくとも1個のコピーバックキャッシュ記憶ユニット
    が不揮発性である記憶装置アレイ。
  5. 【請求項5】少なくともデータブロック及びこれに対応
    する誤り訂正ブロックを含む複数ブロックにより構成さ
    れたストライプの形式で情報を記憶する障害の点で独立
    した複数個の記憶ユニットを備えるフォールトトレラン
    ト記憶装置アレイに、以下のステップによりデータを記
    憶する方法。 a.受信したデータブロックを一時的に書き込む少なくと
    も1個のコピーバックキャッシュ記憶ユニットを設ける
    ステップ b.上記複数個の記憶ユニットに新たに書き込むべき書込
    み要求対象のデータブロックを、まず上記少なくとも1
    個のコピーバックキャッシュ記憶ユニット上に、ペンデ
    ィングデータブロックとして書き込むステップ c.書込み要求対象の各データブロックの書き込みが終了
    したことを確認する機能 d.上記複数個の記憶ユニットのうち少なくともいずれか
    の記憶ユニットのアイドルタイムにおいて処理(1)〜
    (4)を実行するステップ (1)上記少なくとも1個のコピーバックキャッシュ記
    憶ユニットに書き込むステップにおいて書き込まれた少
    なくとも1個のペンディングデータブロックを、上記少
    なくとも1個のコピーバックキャッシュ記憶ユニットか
    ら読み出す処理 (2)上記記憶ユニットにアクセスし、各ペンディング
    データブロックに対応するそこに前から記憶されている
    データブロックを読み出す処理 (3)上記の前から記憶されているデータブロック及び
    各ペンディングデータブロックから対応する誤り訂正ブ
    ロックを生成する処理 (4)それら各ペンディングデータブロック及びこれに
    対応する誤り訂正ブロックを、アイドル状態にある記憶
    ユニット上の対応するストライプに書き込む処理 e.要求されたデータブロックが上記複数の記憶ユニット
    上に書き込まれていない場合は、当該要求されたデータ
    ブロックを、少なくとも1個のコピーバックキャッシュ
    記憶ユニットから読み出し、それ以外の場合には上記複
    数の記憶ユニットから読み出すステップ
  6. 【請求項6】請求項5記載の方法において、 上記の読み出された情報及び各読み出されたペンディン
    グデータブロックから対応する誤り訂正ブロックを生成
    する処理が、さらに、以下の処理を含む方法。 a.新たな誤り訂正ブロックを、上記少なくとも1個のペ
    ンディングブロック並びに上記アイドル状態にある記憶
    ユニットの対応するストライプから読み出された対応す
    る古い誤り訂正ブロック及び対応する古いデータブロッ
    クの関数として生成する処理
  7. 【請求項7】請求項6記載の方法において、 上記新たな誤り訂正ブロックを生成する処理が、さらに
    以下の処理を含む方法。 a.上記アイドル状態にある記憶ユニットの対応するスト
    ライプから対応する古いデータブロックを読み出す処理 b.上記アイドル状態にある記憶ユニットの対応するスト
    ライプから対応する古い誤り訂正ブロックを読み出す処
    理 c.上記古いデータブロック、上記古い誤り訂正ブロック
    及び上記読み出されたペンディングデータブロックの排
    他的論理和を演算することにより、新たな誤り訂正ブロ
    ックを生成する処理
  8. 【請求項8】請求項5記載の方法において、 少なくとも1個のコピーバックキャッシュ記憶ユニット
    が不揮発性である方法。
JP04504448A 1991-01-04 1992-01-03 コピーバックキャッシュを有する記憶装置アレイ Expired - Lifetime JP3129732B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US638,167 1984-08-06
US07/638,167 US5274799A (en) 1991-01-04 1991-01-04 Storage device array architecture with copyback cache
PCT/US1992/000059 WO1992012482A1 (en) 1991-01-04 1992-01-03 Fluid transfer device and method of use

Publications (2)

Publication Number Publication Date
JPH06504863A JPH06504863A (ja) 1994-06-02
JP3129732B2 true JP3129732B2 (ja) 2001-01-31

Family

ID=24558917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04504448A Expired - Lifetime JP3129732B2 (ja) 1991-01-04 1992-01-03 コピーバックキャッシュを有する記憶装置アレイ

Country Status (7)

Country Link
US (4) US5274799A (ja)
EP (1) EP0493984B1 (ja)
JP (1) JP3129732B2 (ja)
AU (1) AU1001492A (ja)
CA (1) CA2058734C (ja)
DE (1) DE69126416T2 (ja)
WO (1) WO1992012482A1 (ja)

Families Citing this family (335)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0679293B2 (ja) * 1990-10-15 1994-10-05 富士通株式会社 計算機システム
JP2641819B2 (ja) * 1990-11-05 1997-08-20 三菱電機株式会社 キャッシュ・コントローラ並びにフォールト・トレラント・コンピュータ及びそのデータ転送方式
US5829030A (en) * 1990-11-05 1998-10-27 Mitsubishi Denki Kabushiki Kaisha System for performing cache flush transactions from interconnected processor modules to paired memory modules
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
JP3192664B2 (ja) * 1991-01-22 2001-07-30 株式会社日立製作所 キャッシュメモリシステムおよびキャッシュメモリコントローラ
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US6874101B2 (en) * 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
US5592660A (en) * 1991-03-04 1997-01-07 Fujitsu Limited Database management system to alternately perform retrieval process and updating process
JP2923702B2 (ja) * 1991-04-01 1999-07-26 株式会社日立製作所 記憶装置及びそのデータ修復方法
JP2743606B2 (ja) * 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
JP2913917B2 (ja) * 1991-08-20 1999-06-28 株式会社日立製作所 記憶装置および記憶装置システム
US5499337A (en) * 1991-09-27 1996-03-12 Emc Corporation Storage device array architecture with solid-state redundancy unit
JP3451099B2 (ja) * 1991-12-06 2003-09-29 株式会社日立製作所 外部記憶サブシステム
US5537566A (en) * 1991-12-17 1996-07-16 Fujitsu Limited Apparatus and method for controlling background processing in disk array device
GB2264798A (en) * 1992-03-04 1993-09-08 Hitachi Ltd High speed access control
AU653670B2 (en) * 1992-03-10 1994-10-06 Data General Corporation Improvements for high availability disk arrays
US5469566A (en) * 1992-03-12 1995-11-21 Emc Corporation Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
JPH05341918A (ja) * 1992-05-12 1993-12-24 Internatl Business Mach Corp <Ibm> 二重化デイスク記憶装置システムを構成するための接続装置
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
JP2857288B2 (ja) 1992-10-08 1999-02-17 富士通株式会社 ディスクアレイ装置
DE4392143C1 (de) * 1992-05-21 1996-11-21 Fujitsu Ltd Platten-Array-Vorrichtung
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
GB2270791B (en) * 1992-09-21 1996-07-17 Grass Valley Group Disk-based digital video recorder
US5418925A (en) * 1992-10-23 1995-05-23 At&T Global Information Solutions Company Fast write I/O handling in a disk array using spare drive for buffering
US5416915A (en) * 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
GB2273798A (en) * 1992-12-22 1994-06-29 Ibm Cache system for disk array.
US5579474A (en) * 1992-12-28 1996-11-26 Hitachi, Ltd. Disk array system and its control method
JP3256329B2 (ja) 1993-05-27 2002-02-12 株式会社日立製作所 ディスクアレイ装置及びその制御方法
US5761402A (en) * 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
US5557770A (en) * 1993-03-24 1996-09-17 International Business Machines Corporation Disk storage apparatus and method for converting random writes to sequential writes while retaining physical clustering on disk
JPH06332623A (ja) * 1993-05-24 1994-12-02 Mitsubishi Electric Corp アレイ型記録装置及び記録装置
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
EP0702815B1 (en) * 1993-06-03 2000-08-23 Network Appliance, Inc. Write anywhere file-system layout
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
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
EP0701715A4 (en) * 1993-06-04 1999-11-17 Network Appliance Corp METHOD FOR PROVIDING PARITY IN A RAID SUBSYSTEM USING REMANENT MEMORY
US5550998A (en) * 1993-06-14 1996-08-27 Storage Technology Corporation Pre-seeking process for enhancing reading and writing performance in a mass storage system having multiple individual disk drives
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5548711A (en) * 1993-08-26 1996-08-20 Emc Corporation Method and apparatus for fault tolerant fast writes through buffer dumping
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
DE4423559A1 (de) * 1993-11-09 1995-05-11 Hewlett Packard Co Datenverbindungsverfahren und Vorrichtung für Multiprozessor-Computersysteme mit gemeinsamem Speicher
JPH07175728A (ja) * 1993-12-20 1995-07-14 Hokkaido Nippon Denki Software Kk ディスクキャッシュデータ保全方式
US5396620A (en) * 1993-12-21 1995-03-07 Storage Technology Corporation Method for writing specific values last into data storage groups containing redundancy
US5911150A (en) * 1994-01-25 1999-06-08 Data General Corporation Data storage tape back-up for data processing systems using a single driver interface unit
US5522032A (en) * 1994-05-05 1996-05-28 International Business Machines Corporation Raid level 5 with free blocks parity cache
US5537588A (en) * 1994-05-11 1996-07-16 International Business Machines Corporation Partitioned log-structured file system and methods for operating the same
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
US5412668A (en) * 1994-09-22 1995-05-02 International Business Machines Corporation Parity striping feature for optical disks
GB2293912A (en) * 1994-10-05 1996-04-10 Ibm Disk storage device for disk array
EP0707267A3 (en) * 1994-10-12 1996-07-03 Ibm Redundant arrangement of disk drives with asymmetrical mirroring and data processing methods for asymmetrical mirroring
US5826046A (en) * 1994-12-30 1998-10-20 International Business Machines Corporation Method and apparatus for polling and selecting any paired device in any drawer
US5794242A (en) * 1995-02-07 1998-08-11 Digital Equipment Corporation Temporally and spatially organized database
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
JP3732869B2 (ja) * 1995-06-07 2006-01-11 株式会社日立製作所 外部記憶装置
WO1997001139A1 (en) * 1995-06-23 1997-01-09 Elonex Plc Disk array controller with enhanced synchronous write
US5657468A (en) * 1995-08-17 1997-08-12 Ambex Technologies, Inc. Method and apparatus for improving performance in a reduntant array of independent disks
US5875456A (en) * 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
US5799200A (en) * 1995-09-28 1998-08-25 Emc Corporation Power failure responsive apparatus and method having a shadow dram, a flash ROM, an auxiliary battery, and a controller
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
US6334195B1 (en) * 1995-12-29 2001-12-25 Lsi Logic Corporation Use of hot spare drives to boost performance during nominal raid operation
US5787242A (en) * 1995-12-29 1998-07-28 Symbios Logic Inc. Method and apparatus for treatment of deferred write data for a dead raid device
US5838892A (en) * 1995-12-29 1998-11-17 Emc Corporation Method and apparatus for calculating an error detecting code block in a disk drive controller
US5805787A (en) * 1995-12-29 1998-09-08 Emc Corporation Disk based disk cache interfacing system and method
US5790773A (en) * 1995-12-29 1998-08-04 Symbios, Inc. Method and apparatus for generating snapshot copies for data backup in a raid subsystem
US5720025A (en) 1996-01-18 1998-02-17 Hewlett-Packard Company Frequently-redundant array of independent disks
DE19607101A1 (de) * 1996-02-24 1997-08-28 Hella Kg Hueck & Co Elektronisches Gerät und Einrichtung zur Datenübertragung zwischen zwei gleichartig aufgebauten elektronischen Geräten
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US6233704B1 (en) 1996-03-13 2001-05-15 Silicon Graphics, Inc. System and method for fault-tolerant transmission of data within a dual ring network
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US5724501A (en) * 1996-03-29 1998-03-03 Emc Corporation Quick recovery of write cache in a fault tolerant I/O system
US5734814A (en) * 1996-04-15 1998-03-31 Sun Microsystems, Inc. Host-based RAID-5 and NV-RAM integration
US5805788A (en) * 1996-05-20 1998-09-08 Cray Research, Inc. Raid-5 parity generation and data reconstruction
US5761534A (en) * 1996-05-20 1998-06-02 Cray Research, Inc. System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network
US5862313A (en) * 1996-05-20 1999-01-19 Cray Research, Inc. Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
US5819310A (en) * 1996-05-24 1998-10-06 Emc Corporation Method and apparatus for reading data from mirrored logical volumes on physical disk drives
US6108812A (en) * 1996-06-20 2000-08-22 Lsi Logic Corporation Target device XOR engine
US5974506A (en) * 1996-06-28 1999-10-26 Digital Equipment Corporation Enabling mirror, nonmirror and partial mirror cache modes in a dual cache system
US5860091A (en) * 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
US5802561A (en) * 1996-06-28 1998-09-01 Digital Equipment Corporation Simultaneous, mirror write cache
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
US5812754A (en) * 1996-09-18 1998-09-22 Silicon Graphics, Inc. Raid system with fibre channel arbitrated loop
US5991852A (en) * 1996-10-28 1999-11-23 Mti Technology Corporation Cache ram using a secondary controller and switching circuit and improved chassis arrangement
US6038680A (en) * 1996-12-11 2000-03-14 Compaq Computer Corporation Failover memory for a computer system
US5990879A (en) * 1996-12-20 1999-11-23 Qorvis Media Group, Inc. Method and apparatus for dynamically arranging information in a presentation sequence to minimize information loss
US6108684A (en) * 1996-12-23 2000-08-22 Lsi Logic Corporation Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US5933824A (en) * 1996-12-23 1999-08-03 Lsi Logic Corporation Methods and apparatus for locking files within a clustered storage environment
US6023584A (en) * 1997-01-03 2000-02-08 Ncr Corporation Installation of computer programs using disk mirroring
JP3204143B2 (ja) * 1997-01-06 2001-09-04 日本電気株式会社 ディスクキャッシュの制御方法
US6678462B1 (en) * 1997-03-25 2004-01-13 Sony Corporation Electronic device, method and apparatus for controlling an electronic device, and electronic device control system
US6154853A (en) * 1997-03-26 2000-11-28 Emc Corporation Method and apparatus for dynamic sparing in a RAID storage system
US5944838A (en) * 1997-03-31 1999-08-31 Lsi Logic Corporation Method for fast queue restart after redundant I/O path failover
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6249885B1 (en) 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6134668A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6243838B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6272648B1 (en) 1997-05-13 2001-08-07 Micron Electronics, Inc. System for communicating a software-generated pulse waveform between two servers in a network
US5892928A (en) 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
US6249828B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6418492B1 (en) 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US5987554A (en) 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6253334B1 (en) * 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6282673B1 (en) 1997-05-13 2001-08-28 Micron Technology, Inc. Method of recording information system events
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6247079B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc Apparatus for computer implemented hot-swap and hot-add
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6189109B1 (en) 1997-05-13 2001-02-13 Micron Electronics, Inc. Method of remote access and control of environmental conditions
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6014759A (en) * 1997-06-13 2000-01-11 Micron Technology, Inc. Method and apparatus for transferring test data from a memory array
US6044429A (en) 1997-07-10 2000-03-28 Micron Technology, Inc. Method and apparatus for collision-free data transfers in a memory device with selectable data or address paths
US6553404B2 (en) 1997-08-08 2003-04-22 Prn Corporation Digital system
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
WO1999008216A1 (en) * 1997-08-08 1999-02-18 Pics Previews, Inc. Method and apparatus for distributing audiovisual content
US6381674B2 (en) * 1997-09-30 2002-04-30 Lsi Logic Corporation Method and apparatus for providing centralized intelligent cache between multiple data controlling elements
US6065096A (en) * 1997-09-30 2000-05-16 Lsi Logic Corporation Integrated single chip dual mode raid controller
US5975738A (en) * 1997-09-30 1999-11-02 Lsi Logic Corporation Method for detecting failure in redundant controllers using a private LUN
US6199173B1 (en) 1997-10-01 2001-03-06 Micron Electronics, Inc. Method for mapping environmental resources to memory for program access
US6154835A (en) 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
US6085303A (en) * 1997-11-17 2000-07-04 Cray Research, Inc. Seralized race-free virtual barrier network
US6035347A (en) * 1997-12-19 2000-03-07 International Business Machines Corporation Secure store implementation on common platform storage subsystem (CPSS) by storing write data in non-volatile buffer
JPH11203056A (ja) 1998-01-19 1999-07-30 Fujitsu Ltd 入出力制御装置及びアレイディスク装置
US6112311A (en) * 1998-02-20 2000-08-29 International Business Machines Corporation Bridge failover system
US6061750A (en) * 1998-02-20 2000-05-09 International Business Machines Corporation Failover system for a DASD storage controller reconfiguring a first processor, a bridge, a second host adaptor, and a second device adaptor upon a second processor failure
US6457130B2 (en) 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6317844B1 (en) 1998-03-10 2001-11-13 Network Appliance, Inc. File server storage arrangement
US6421746B1 (en) 1998-03-26 2002-07-16 Micron Electronics, Inc. Method of data and interrupt posting for computer devices
DE19819531C1 (de) * 1998-04-30 1999-12-02 Siemens Ag RISC-Prozessor mit einer Debug-Schnittstelleneinheit
US6865642B2 (en) * 1998-06-24 2005-03-08 International Business Machines Corporation Method and apparatus for disk caching for an intermediary controller
US6243827B1 (en) 1998-06-30 2001-06-05 Digi-Data Corporation Multiple-channel failure detection in raid systems
US6505305B1 (en) * 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US6343343B1 (en) 1998-07-31 2002-01-29 International Business Machines Corporation Disk arrays using non-standard sector sizes
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US6272662B1 (en) 1998-08-04 2001-08-07 International Business Machines Corporation Distributed storage system using front-end and back-end locking
US6128762A (en) * 1998-08-04 2000-10-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system with request forwarding
US6332197B1 (en) 1998-08-04 2001-12-18 International Business Machines Corp. System for updating data in a multi-adaptor environment
US6243795B1 (en) 1998-08-04 2001-06-05 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Redundant, asymmetrically parallel disk cache for a data storage system
US6446220B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating data and parity data with and without read caches
US6446237B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6119244A (en) 1998-08-25 2000-09-12 Network Appliance, Inc. Coordinating persistent status information with multiple file servers
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
JP3511576B2 (ja) * 1998-10-02 2004-03-29 松下電器産業株式会社 ディスク記録再生方法および装置
US6330687B1 (en) 1998-11-13 2001-12-11 Digi-Data Corporation System and method to maintain performance among N single raid systems during non-fault conditions while sharing multiple storage devices during conditions of a faulty host computer or faulty storage array controller
US6343984B1 (en) 1998-11-30 2002-02-05 Network Appliance, Inc. Laminar flow duct cooling system
US6769088B1 (en) * 1999-06-30 2004-07-27 Maxtor Corporation Sector-coding technique for reduced read-after-write operations
US6629199B1 (en) * 1999-08-20 2003-09-30 Emc Corporation Digital data storage system including directory for efficiently providing formatting information for stored records and utilization of a check value for verifying that a record is from a particular storage location
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6467048B1 (en) * 1999-10-07 2002-10-15 Compaq Information Technologies Group, L.P. Apparatus, method and system for using cache memory as fail-over memory
US6553458B1 (en) * 1999-12-14 2003-04-22 Ncr Corporation Integrated redundant storage device
US6542960B1 (en) * 1999-12-16 2003-04-01 Adaptec, Inc. System and method for parity caching based on stripe locking in raid data storage
EP1128267A1 (en) * 2000-02-25 2001-08-29 Hewlett-Packard Company, A Delaware Corporation Disk storage system having redundant solid state data storage devices
WO2001082078A2 (en) * 2000-04-20 2001-11-01 Ciprico, Inc. Method and apparatus for maintaining the integrity of configuration data in redundant, fault tolerant network appliances
US6701449B1 (en) 2000-04-20 2004-03-02 Ciprico, Inc. Method and apparatus for monitoring and analyzing network appliance status information
US6330642B1 (en) * 2000-06-29 2001-12-11 Bull Hn Informatin Systems Inc. Three interconnected raid disk controller data processing system architecture
US6802039B1 (en) * 2000-06-30 2004-10-05 Intel Corporation Using hardware or firmware for cache tag and data ECC soft error correction
US6636879B1 (en) * 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
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
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6725342B1 (en) * 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
US6604160B1 (en) 2000-09-28 2003-08-05 International Business Machines Corporation Computing system arbitrating and selectively providing resource-seeking tasks with takeaway of non-shareable resources
US6446160B1 (en) 2000-09-28 2002-09-03 International Business Machines Corporation Multi-drive data storage system with analysis and selected demounting of idle data storage media
US6434682B1 (en) 2000-09-28 2002-08-13 International Business Machines Corporation Data management system with shortcut migration via efficient automatic reconnection to previously migrated copy
DE60114879T2 (de) * 2000-12-20 2006-07-20 Koninklijke Philips Electronics N.V. Stromausfallrueckstelleinrichtung fuer aufzeichnungs-/ wiedergabegeraet
US6785767B2 (en) * 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6799284B1 (en) 2001-02-28 2004-09-28 Network Appliance, Inc. Reparity bitmap RAID failure recovery
US6865717B2 (en) * 2001-05-30 2005-03-08 International Business Machines Corporation Method, system, and program for generating a progress indicator
US6996668B2 (en) 2001-08-06 2006-02-07 Seagate Technology Llc Synchronized mirrored data in a data storage device
US7275135B2 (en) * 2001-08-31 2007-09-25 Intel Corporation Hardware updated metadata for non-volatile mass storage cache
TW595012B (en) * 2001-09-03 2004-06-21 Matsushita Electric Ind Co Ltd Semiconductor light-emitting device, light-emitting apparatus and manufacturing method of semiconductor light-emitting device
US20030074524A1 (en) * 2001-10-16 2003-04-17 Intel Corporation Mass storage caching processes for power reduction
US7502886B1 (en) 2001-10-23 2009-03-10 Emc Corporation Data storage device with two-tier raid control circuitry
US6973537B1 (en) * 2001-10-23 2005-12-06 Emc Corporation Disk cache interfacing system and method
US7174422B1 (en) * 2001-10-23 2007-02-06 Emc Corporation Data storage device with two-tier raid control circuitry
US7346831B1 (en) 2001-11-13 2008-03-18 Network Appliance, Inc. Parity assignment technique for parity declustering in a parity array of a storage system
US6851082B1 (en) 2001-11-13 2005-02-01 Network Appliance, Inc. Concentrated parity technique for handling double failures and enabling storage of more than one parity block per stripe on a storage device of a storage array
US7640484B2 (en) * 2001-12-28 2009-12-29 Netapp, Inc. Triple parity technique for enabling efficient recovery from triple failures in a storage array
US6993701B2 (en) * 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US7073115B2 (en) * 2001-12-28 2006-07-04 Network Appliance, Inc. Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US7613984B2 (en) * 2001-12-28 2009-11-03 Netapp, Inc. System and method for symmetric triple parity for failing storage devices
US8402346B2 (en) 2001-12-28 2013-03-19 Netapp, Inc. N-way parity technique for enabling recovery from up to N storage device failures
US7080278B1 (en) 2002-03-08 2006-07-18 Network Appliance, Inc. Technique for correcting multiple storage device failures in a storage array
US7437727B2 (en) * 2002-03-21 2008-10-14 Network Appliance, Inc. Method and apparatus for runtime resource deadlock avoidance in a raid system
US7254813B2 (en) * 2002-03-21 2007-08-07 Network Appliance, Inc. Method and apparatus for resource allocation in a raid system
US7200715B2 (en) * 2002-03-21 2007-04-03 Network Appliance, Inc. Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes
US7539991B2 (en) 2002-03-21 2009-05-26 Netapp, Inc. Method and apparatus for decomposing I/O tasks in a raid system
US6976146B1 (en) 2002-05-21 2005-12-13 Network Appliance, Inc. System and method for emulating block appended checksums on storage devices by sector stealing
US7028154B2 (en) 2002-06-18 2006-04-11 Hewlett-Packard Development Company, L.P. Procedure to reduce copy time for data backup from short-term to long-term memory
US6952758B2 (en) * 2002-07-31 2005-10-04 International Business Machines Corporation Method and system for providing consistent data modification information to clients in a storage system
US7454529B2 (en) * 2002-08-02 2008-11-18 Netapp, Inc. Protectable data storage system and a method of protecting and/or managing a data storage system
US7069466B2 (en) * 2002-08-14 2006-06-27 Alacritus, Inc. Method and system for copying backup data
US6922752B2 (en) * 2002-08-23 2005-07-26 Hewlett-Packard Development Company, L.P. Storage system using fast storage devices for storing redundant data
US7882081B2 (en) * 2002-08-30 2011-02-01 Netapp, Inc. Optimized disk repository for the storage and retrieval of mostly sequential data
US7437387B2 (en) * 2002-08-30 2008-10-14 Netapp, Inc. Method and system for providing a file system overlay
US6928515B2 (en) * 2002-11-09 2005-08-09 International Business Machines Corporation Integrated sector format-error correction code system and method for efficient writing in a disk array system
US7567993B2 (en) * 2002-12-09 2009-07-28 Netapp, Inc. Method and system for creating and using removable disk based copies of backup data
US8024172B2 (en) * 2002-12-09 2011-09-20 Netapp, Inc. Method and system for emulating tape libraries
US7437053B2 (en) * 2003-01-15 2008-10-14 Matsushita Electric Industrial Co., Ltd. Digital video recorder, method of driving the video recorder and program
JP3811127B2 (ja) * 2003-01-30 2006-08-16 株式会社東芝 情報記録装置及び情報記録方法
US6973369B2 (en) * 2003-03-12 2005-12-06 Alacritus, Inc. System and method for virtual vaulting
US7185144B2 (en) * 2003-11-24 2007-02-27 Network Appliance, Inc. Semi-static distribution technique
US7328364B1 (en) 2003-03-21 2008-02-05 Network Appliance, Inc. Technique for coherent suspension of I/O operations in a RAID subsystem
US7664913B2 (en) * 2003-03-21 2010-02-16 Netapp, Inc. Query-based spares management technique
US7424637B1 (en) 2003-03-21 2008-09-09 Networks Appliance, Inc. Technique for managing addition of disks to a volume of a storage system
US7143235B1 (en) 2003-03-21 2006-11-28 Network Appliance, Inc. Proposed configuration management behaviors in a raid subsystem
US7111147B1 (en) * 2003-03-21 2006-09-19 Network Appliance, Inc. Location-independent RAID group virtual block management
US7210061B2 (en) * 2003-04-17 2007-04-24 Hewlett-Packard Development, L.P. Data redundancy for writes using remote storage system cache memory
US7275179B1 (en) 2003-04-24 2007-09-25 Network Appliance, Inc. System and method for reducing unrecoverable media errors in a disk subsystem
US7392347B2 (en) * 2003-05-10 2008-06-24 Hewlett-Packard Development Company, L.P. Systems and methods for buffering data between a coherency cache controller and memory
US7437492B2 (en) * 2003-05-14 2008-10-14 Netapp, Inc Method and system for data compression and compression estimation in a virtual tape library environment
US7380059B2 (en) * 2003-05-16 2008-05-27 Pillar Data Systems, Inc. Methods and systems of cache memory management and snapshot operations
US7047379B2 (en) 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
US7546418B2 (en) * 2003-08-20 2009-06-09 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
JP2005122453A (ja) * 2003-10-16 2005-05-12 Hitachi Ltd ストレージ装置のディスクコントローラ制御方式およびストレージ装置
US7475186B2 (en) * 2003-10-31 2009-01-06 Superspeed Software System and method for persistent RAM disk
US7328305B2 (en) 2003-11-03 2008-02-05 Network Appliance, Inc. Dynamic parity distribution technique
US7263629B2 (en) * 2003-11-24 2007-08-28 Network Appliance, Inc. Uniform and symmetric double failure correcting technique for protecting against two disk failures in a disk array
US7647451B1 (en) 2003-11-24 2010-01-12 Netapp, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
US7366837B2 (en) * 2003-11-24 2008-04-29 Network Appliance, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
US7197599B2 (en) * 2003-12-29 2007-03-27 Intel Corporation Method, system, and program for managing data updates
US7426617B2 (en) 2004-02-04 2008-09-16 Network Appliance, Inc. Method and system for synchronizing volumes in a continuous data protection system
US7325159B2 (en) * 2004-02-04 2008-01-29 Network Appliance, Inc. Method and system for data recovery in a continuous data protection system
US7406488B2 (en) * 2004-02-04 2008-07-29 Netapp Method and system for maintaining data in a continuous data protection system
US7783606B2 (en) * 2004-02-04 2010-08-24 Netapp, Inc. Method and system for remote data recovery
US7559088B2 (en) * 2004-02-04 2009-07-07 Netapp, Inc. Method and apparatus for deleting data upon expiration
US7720817B2 (en) * 2004-02-04 2010-05-18 Netapp, Inc. Method and system for browsing objects on a protected volume in a continuous data protection system
US7490103B2 (en) * 2004-02-04 2009-02-10 Netapp, Inc. Method and system for backing up data
US7315965B2 (en) * 2004-02-04 2008-01-01 Network Appliance, Inc. Method and system for storing data using a continuous data protection system
US7904679B2 (en) * 2004-02-04 2011-03-08 Netapp, Inc. Method and apparatus for managing backup data
US20050182910A1 (en) * 2004-02-04 2005-08-18 Alacritus, Inc. Method and system for adding redundancy to a continuous data protection system
US7165141B2 (en) * 2004-02-27 2007-01-16 Hewlett-Packard Development Company, L.P. Daisy-chained device-mirroring architecture
US8028135B1 (en) 2004-09-01 2011-09-27 Netapp, Inc. Method and apparatus for maintaining compliant storage
US7321905B2 (en) * 2004-09-30 2008-01-22 International Business Machines Corporation System and method for efficient data recovery in a storage array utilizing multiple parity slopes
US7318119B2 (en) * 2004-10-29 2008-01-08 International Business Machines Corporation System and method for fault tolerant controller for network RAID
US7392428B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
US7392458B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for enhanced error identification with disk array parity checking
US20060123312A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation Method and system for increasing parallelism of disk accesses when restoring data in a disk array system
US7290199B2 (en) * 2004-11-19 2007-10-30 International Business Machines Corporation Method and system for improved buffer utilization for disk array parity updates
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US8205058B2 (en) * 2004-12-10 2012-06-19 International Business Machines Corporation Resource management for data storage services
US7774610B2 (en) * 2004-12-14 2010-08-10 Netapp, Inc. Method and apparatus for verifiably migrating WORM data
US7526620B1 (en) 2004-12-14 2009-04-28 Netapp, Inc. Disk sanitization in an active file system
US7581118B2 (en) * 2004-12-14 2009-08-25 Netapp, Inc. Disk sanitization using encryption
US7558839B1 (en) 2004-12-14 2009-07-07 Netapp, Inc. Read-after-write verification for improved write-once-read-many data storage
US7730257B2 (en) * 2004-12-16 2010-06-01 Broadcom Corporation Method and computer program product to increase I/O write performance in a redundant array
US20060143412A1 (en) * 2004-12-28 2006-06-29 Philippe Armangau Snapshot copy facility maintaining read performance and write performance
US7441081B2 (en) * 2004-12-29 2008-10-21 Lsi Corporation Write-back caching for disk drives
US7143308B2 (en) * 2005-01-14 2006-11-28 Charlie Tseng Apparatus, system, and method for differential rebuilding of a reactivated offline RAID member disk
US7398460B1 (en) 2005-01-31 2008-07-08 Network Appliance, Inc. Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
US8296162B1 (en) 2005-02-01 2012-10-23 Webmd Llc. Systems, devices, and methods for providing healthcare information
US7360112B2 (en) 2005-02-07 2008-04-15 International Business Machines Corporation Detection and recovery of dropped writes in storage devices
US7779294B2 (en) * 2005-04-15 2010-08-17 Intel Corporation Power-safe disk storage apparatus, systems, and methods
GB0507912D0 (en) 2005-04-20 2005-05-25 Ibm Disk drive and method for protecting data writes in a disk drive
WO2006119100A2 (en) 2005-04-29 2006-11-09 Network Appliance, Inc. System and method for generating consistent images of a set of data objects
US7437490B2 (en) * 2005-05-27 2008-10-14 International Business Machines Corporation Channel communication array queues in hardware system area
US7441146B2 (en) * 2005-06-10 2008-10-21 Intel Corporation RAID write completion apparatus, systems, and methods
US7562188B2 (en) * 2005-06-17 2009-07-14 Intel Corporation RAID power safe apparatus, systems, and methods
JP4817783B2 (ja) * 2005-09-30 2011-11-16 富士通株式会社 Raidシステム及びそのリビルド/コピーバック処理方法
US7401198B2 (en) * 2005-10-06 2008-07-15 Netapp Maximizing storage system throughput by measuring system performance metrics
KR20080071988A (ko) * 2005-11-23 2008-08-05 에프 에스 아이 인터내셔날,인코포레이티드 기판으로부터의 물질 제거 공정
US7752401B2 (en) 2006-01-25 2010-07-06 Netapp, Inc. Method and apparatus to automatically commit files to WORM status
US8560503B1 (en) 2006-01-26 2013-10-15 Netapp, Inc. Content addressable storage system
US7650533B1 (en) 2006-04-20 2010-01-19 Netapp, Inc. Method and system for performing a restoration in a continuous data protection system
US20080070688A1 (en) * 2006-09-20 2008-03-20 John Loehrer Real-time gaming system having scalable database
US7822921B2 (en) 2006-10-31 2010-10-26 Netapp, Inc. System and method for optimizing write operations in storage systems
EP2081170A1 (en) * 2006-11-06 2009-07-22 Panasonic Corporation Information security apparatus
US7613947B1 (en) 2006-11-30 2009-11-03 Netapp, Inc. System and method for storage takeover
US7647526B1 (en) 2006-12-06 2010-01-12 Netapp, Inc. Reducing reconstruct input/output operations in storage systems
KR20090087119A (ko) 2006-12-06 2009-08-14 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 빈 데이터 토큰 지시어를 사용한 저장 장치 내의 데이터 관리 장치, 시스템 및 방법
US8239706B1 (en) 2007-01-03 2012-08-07 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Data retrieval system and method that provides retrieval of data to any point in time
US7730347B1 (en) 2007-01-03 2010-06-01 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Data recovery system and method including a disk array architecture that provides recovery of data to any point of time
US7870356B1 (en) 2007-02-22 2011-01-11 Emc Corporation Creation of snapshot copies using a sparse file for keeping a record of changed blocks
US7653612B1 (en) 2007-03-28 2010-01-26 Emc Corporation Data protection services offload using shallow files
US8312214B1 (en) 2007-03-28 2012-11-13 Netapp, Inc. System and method for pausing disk drives in an aggregate
US8209587B1 (en) 2007-04-12 2012-06-26 Netapp, Inc. System and method for eliminating zeroing of disk drives in RAID arrays
US7840837B2 (en) 2007-04-27 2010-11-23 Netapp, Inc. System and method for protecting memory during system initialization
US8898536B2 (en) 2007-04-27 2014-11-25 Netapp, Inc. Multi-core engine for detecting bit errors
US7836331B1 (en) 2007-05-15 2010-11-16 Netapp, Inc. System and method for protecting the contents of memory during error conditions
JP4963088B2 (ja) * 2007-07-13 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション データをキャッシュする技術
US7975102B1 (en) 2007-08-06 2011-07-05 Netapp, Inc. Technique to avoid cascaded hot spotting
US20090049050A1 (en) * 2007-08-15 2009-02-19 Jeff Whitehead File-based horizontal storage system
TWI362044B (en) * 2007-11-09 2012-04-11 Transcend Information Inc Storage apparatus and method for accessing data and for managing memory block
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US7984259B1 (en) 2007-12-17 2011-07-19 Netapp, Inc. Reducing load imbalance in a storage system
US8127182B2 (en) * 2008-09-16 2012-02-28 Lsi Corporation Storage utilization to improve reliability using impending failure triggers
US9158579B1 (en) 2008-11-10 2015-10-13 Netapp, Inc. System having operation queues corresponding to operation execution time
US8495417B2 (en) * 2009-01-09 2013-07-23 Netapp, Inc. System and method for redundancy-protected aggregates
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8413132B2 (en) * 2010-09-13 2013-04-02 Samsung Electronics Co., Ltd. Techniques for resolving read-after-write (RAW) conflicts using backup area
US8775731B2 (en) 2011-03-25 2014-07-08 Dell Products, L.P. Write spike performance enhancement in hybrid storage systems
EP3467671B1 (en) * 2011-04-12 2020-07-15 Amadeus S.A.S. Cache memory structure and method
US8688635B2 (en) 2011-07-01 2014-04-01 International Business Machines Corporation Data set connection manager having a plurality of data sets to represent one data set
WO2013123097A1 (en) * 2012-02-13 2013-08-22 SkyKick, Inc. Migration project automation, e.g., automated selling, planning, migration and configuration of email systems
WO2014041638A1 (ja) * 2012-09-12 2014-03-20 株式会社 東芝 アレイにおける誤り訂正符号ブロック配置位置を管理するストレージ装置、ストレージコントローラ及び方法
US10643668B1 (en) 2013-08-27 2020-05-05 Seagate Technology Llc Power loss data block marking
US9323630B2 (en) 2013-09-16 2016-04-26 HGST Netherlands B.V. Enhanced data recovery from data storage devices
US9798620B2 (en) 2014-02-06 2017-10-24 Sandisk Technologies Llc Systems and methods for non-blocking solid-state memory
US10176039B2 (en) 2014-09-19 2019-01-08 Micron Technology, Inc. Self-accumulating exclusive OR program
JP2017532666A (ja) * 2014-10-03 2017-11-02 エイジェンシー・フォー・サイエンス,テクノロジー・アンド・リサーチ ハイブリッドオブジェクトストレージデバイスのためのデータの再構成を最適化する方法
US9766977B2 (en) 2014-11-10 2017-09-19 Dell Products, Lp System and method for improving read performance of a distributed parity RAID solution
US9672106B2 (en) 2014-12-30 2017-06-06 Nutanix, Inc. Architecture for implementing erasure coding
JP5982025B1 (ja) * 2015-02-27 2016-08-31 京セラドキュメントソリューションズ株式会社 情報処理装置およびメモリー管理プログラム
US9779023B1 (en) * 2015-06-30 2017-10-03 EMC IP Holding Company LLC Storing inline-compressed data in segments of contiguous physical blocks
CN105205017A (zh) * 2015-08-31 2015-12-30 浪潮(北京)电子信息产业有限公司 一种基于pcie ssd的存储控制器
WO2017140262A1 (zh) 2016-02-18 2017-08-24 华为技术有限公司 数据更新技术
US10567009B2 (en) 2016-12-06 2020-02-18 Nutanix, Inc. Dynamic erasure coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914656A (en) 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory

Family Cites Families (33)

* Cited by examiner, † Cited by third party
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
US4430701A (en) * 1981-08-03 1984-02-07 International Business Machines Corporation Method and apparatus for a hierarchical paging storage system
US4562576A (en) * 1982-08-14 1985-12-31 International Computers Limited Data storage apparatus
JPS59153251A (ja) * 1983-02-18 1984-09-01 Toshiba Corp デイスクキヤツシユシステム
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
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 半導体記憶装置
JPS62110902A (ja) * 1985-11-09 1987-05-22 マルチ技研株式会社 カツプ部を有する女性肌着の製造方法
JPS62132270A (ja) * 1985-12-05 1987-06-15 Toshiba Corp 磁気デイスク装置
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US4958351A (en) * 1986-02-03 1990-09-18 Unisys Corp. High capacity multiple-disk storage method and apparatus having unusually high fault tolerance level and high bandpass
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
US4791642A (en) * 1986-10-17 1988-12-13 Amdahl Corporation Buffer error retry
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction 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
US4920539A (en) * 1988-06-20 1990-04-24 Prime Computer, Inc. Memory error correction system
US4995041A (en) * 1989-02-03 1991-02-19 Digital Equipment Corporation Write back buffer with error correcting capabilities
JP3057498B2 (ja) * 1989-08-02 2000-06-26 富士通株式会社 アレイディスク装置およびそのデータ読み出し方法
US5058116A (en) * 1989-09-19 1991-10-15 International Business Machines Corporation Pipelined error checking and correction for cache memories
US5402428A (en) * 1989-12-25 1995-03-28 Hitachi, Ltd. Array disk subsystem
US5185876A (en) * 1990-03-14 1993-02-09 Micro Technology, Inc. Buffering system for dynamically providing data to multiple storage elements
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
US5499337A (en) * 1991-09-27 1996-03-12 Emc Corporation Storage device array architecture with solid-state redundancy unit
US5341381A (en) * 1992-01-21 1994-08-23 Tandem Computers, Incorporated Redundant array parity caching system
US5398253A (en) * 1992-03-11 1995-03-14 Emc Corporation Storage unit generation of redundancy information in a redundant storage array system
US5463765A (en) * 1993-03-18 1995-10-31 Hitachi, Ltd. Disk array system, data writing method thereof, and fault recovering method
US5548711A (en) * 1993-08-26 1996-08-20 Emc Corporation Method and apparatus for fault tolerant fast writes through buffer dumping

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914656A (en) 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory

Also Published As

Publication number Publication date
AU1001492A (en) 1992-07-09
US5911779A (en) 1999-06-15
US5274799A (en) 1993-12-28
CA2058734A1 (en) 1992-07-05
WO1992012482A1 (en) 1992-07-23
US5617530A (en) 1997-04-01
DE69126416T2 (de) 1998-02-05
DE69126416D1 (de) 1997-07-10
EP0493984A3 (en) 1993-05-12
EP0493984B1 (en) 1997-06-04
EP0493984A2 (en) 1992-07-08
CA2058734C (en) 2002-06-25
US5526482A (en) 1996-06-11
JPH06504863A (ja) 1994-06-02

Similar Documents

Publication Publication Date Title
JP3129732B2 (ja) コピーバックキャッシュを有する記憶装置アレイ
US5208813A (en) On-line reconstruction of a failed redundant array system
JP3071017B2 (ja) 冗長アレイ・システムにおける冗長情報の復元方法および制御システム
US6021463A (en) Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem
US5572660A (en) System and method for selective write-back caching within a disk array subsystem
US5469453A (en) Data corrections applicable to redundant arrays of independent disks
US6289471B1 (en) Storage device array architecture with solid-state redundancy unit
JP3177242B2 (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US7464322B2 (en) System and method for detecting write errors in a storage device
JP3164499B2 (ja) ディスクアレイにおけるパリティデータの無矛盾性保持方法
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
US5951691A (en) Method and system for detection and reconstruction of corrupted data in a data storage subsystem
US6243827B1 (en) Multiple-channel failure detection in raid systems
US7240237B2 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
JP2857288B2 (ja) ディスクアレイ装置
JP3256329B2 (ja) ディスクアレイ装置及びその制御方法
JP3122252B2 (ja) ディスクアレイ制御方式
GB2402803A (en) Arrangement and method for detection of write errors in a storage system
JP2857289B2 (ja) ディスクアレイ装置
JP3542577B2 (ja) ディスクアレイ装置及びその制御方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081117

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 12