JP2837341B2 - ディスクアレイ用キャッシュシステム - Google Patents

ディスクアレイ用キャッシュシステム

Info

Publication number
JP2837341B2
JP2837341B2 JP5310894A JP31089493A JP2837341B2 JP 2837341 B2 JP2837341 B2 JP 2837341B2 JP 5310894 A JP5310894 A JP 5310894A JP 31089493 A JP31089493 A JP 31089493A JP 2837341 B2 JP2837341 B2 JP 2837341B2
Authority
JP
Japan
Prior art keywords
data
cache
disk
scb
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP5310894A
Other languages
English (en)
Other versions
JPH06236322A (ja
Inventor
クリーブ・スコット・オールドフィールド
ニコラス・シェイラー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06236322A publication Critical patent/JPH06236322A/ja
Application granted granted Critical
Publication of JP2837341B2 publication Critical patent/JP2837341B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、多数のデータ記憶ディ
スク装置から構成するディスクアレイに使用するキャッ
シュシステムに関し、特に、ディスクアレイ内のディス
クへの冗長アクセスの数を減少することができるキャッ
シュシステムに関する。
【0002】
【従来の技術】近年、ディスクアレイへの関心が高まっ
てきている。ディスクアレイは、ホストシステムとディ
スクドライブ間のデータ転送を制御する1個以上のコン
トローラを介してホストシステムに接続した多数のディ
スクドライブから成る。ディスクアレイは高データ記憶
容量、高信頼性、使用中のシステムとの高データ転送率
が得られるようにしてある。
【0003】多数の異なったアレイ構造が提案されてき
た。「A Case for Redundant A
rrays of Inexpensive disk
s(RAID)」のタイトルの文献(ACM SIGM
OD 協議会会報、イリノイ州シカゴ、1988年6月
1−3、109−116頁)は、異なったレベルのデー
タ管理を提供する5レベルのアレイ(RAIDS1−
5)の詳細を示している。RAIDレベルの各々は、多
数の安価なディスクドライブを互いにリンクさせること
によりユーザがデータ記憶容量を増加することを可能に
する。このRAIDシステムは、2個のドライブへデー
タの2つのコピーを記憶させるか(RAID1)、又は
オリジナルデータを多数のサブセクションに分割し、各
分割データをアレイの2個以上の各ドライブ上にストラ
イプするかしてドライブの故障によるデータ喪失に対す
る保護を行なう。ストライプ化されたデータに対するパ
リティ・データが演算され、専用のパリティドライブに
記憶される(RAID4)。データ記憶ドライブの一つ
が故障した場合、故障したドライブのデータを再生する
ために、そのパリティデータ及びストライプ化データの
残りデータを利用することができる(RAID2−
5)。従って、RAID2−5の構造は、データの並行
転送の増加が期待できるものと仮定して、データ・スル
ープットを増大できるものである。この速度増加は、同
時性の程度、オリジナルデータ転送を多数回の短い副転
送に分割するオーバヘッド、及び、平均転送長さと副転
送のサイズ間の関係に関連するパラメータの選択等に依
存する。RAID4及びRAID5のより詳細な構造は
上記会報に記載されている。
【0004】安価なディスクシステムの冗長なアレイに
おけるパリティ/チェックサムの設定は、システムの構
造に関して多くの問題に直面している(RAID−
5)。すなわち、エラーの回復、データ損失の防止、シ
ステムの能力、実行上の複雑さなどである。RAIDシ
ステムを使用する不利な点は、低い信頼性のポテンシャ
ルの問題である。どれか単独でディスク装置が故障する
と、全アレイが故障してしまうので、RAIDシステム
の信頼性はディスク装置の数が増えるにつれ減少する。
システム信頼性の低下を回避するため、単一のディスク
装置が故障した場合のデータの回復を行う方法が必要と
されてきた。これは、アレイに冗長性を導入することに
よって達成される。つまり、データの第二コピーを関連
のデータ装置(例えば、RAID4構造におけるよう
に)と分離した記憶装置にパリティ又はチェックサムと
して記憶させる。パリティの生成は、単一記憶装置の故
障によるデータ損失の回復を可能とするので、データを
単一記憶位置に記憶させない。
【0005】通常の読取り動作の間、パリティの存在に
起因して性能上の悪影響はない。しかし、書込み動作の
間、パリティの生成は関係してくる。これは、データ域
に対するいかなる変化もそのデータ域に関連したパリテ
ィデータの更新を有するという事実による。さらに、新
しいデータの書込みと新しいパリティの書込み間のシス
テムの故障の可能性を最小にしなくては、他のデータ回
復が不可能となる。この最後に記載した要件は、ホスト
からのデータ記憶要求に関連してデータが利用可能にな
った時点で、パリティを生成させ、記憶させることによ
って従来、満たされてきた。
【0006】この方法は、パリティ装置が多くのデータ
装置と関連するので、潜在的に大きなオーバヘッドの問
題を提起する。然し、これは、1つのパリティ装置に関
連した全てのデータ記憶装置に同時に書き込まれる場合
(その結果、パリティ・データか各データ記憶装置に関
するパリティ・データの集合から成る)、余分なオーバ
ーヘッドの問題を提起しない可能性が高いが、これは、
比較的短いアクセスが全ての装置へのアクセスを背負い
込むわけではないので、一般的には希なケースであ
る。。この場合、パリティ・データ生成に当たっては、
アドレスしていない装置に記憶中の既存データを使用し
ての回復動作、又はアドレスした記憶装置に新しいデー
タを書込み以前に、その装置に記憶中の既存データと共
にその既存データグループに対する既存パリティの読取
り動作が必要になる。
【0007】ある状況では、短い転送長に対するパリテ
ィ更新のオーバーヘッドが受け入れられない場合があ
る。同様に、短い転送のシーケンスに分割された長い転
送の場合も受け入れられない(例えば、ホストファイル
・システムの場合)。
【0008】
【発明が解決しようとする課題】本発明の1つの目的
は、パリティデータを生成するのに必要なディスクに対
する冗長なアクセスを削減ないし排除できる能力を有す
るキャッシュシステムを提供することである。本発明の
他の目的は、ディスクアレイにおけるデータ・ストライ
ドをキャッシュメモリ内のデータユニットとして構成で
きる能力を有するキャッシュシステムを提供することで
ある。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明によるキャッシュシステムは、ホストシステ
ムとディスクアレイ間で転送したデータを保持するため
のキャッシュメモリを有し、そのディスクアレイは、デ
ータをストライドの形態で記憶している複数のディスク
記憶装置から成る。各データ・ストライドは、アレイ内
の2個以上の記憶装置の各々に記憶されている1つのマ
ルチセクタのデータ・ユニット(すなわちデータ・スト
ライプ)と、アレイ内の他の1つの記憶装置に記憶され
ている1つの関連したマルチセクタ・パリティブロック
とから成る。キャッシュシステムは、各記憶装置内の上
記各データ・ユニットと上記関連パリティブロックとを
リンクさせてキャッシュ内においてストライドをキャッ
シュ・データユニットとして構成する管理手段を有す
る。このキャッシュ・データユニットは、キャッシュシ
ステム内では単一のデータとして纏めて処理される。
【0010】ホストからのアクセスはデータ及び関連パ
リティを記憶するキャッシュメモリに向けられる。本発
明では、キャッシュ・データユニット(以下、単にキャ
ッシュユニットとも呼ぶ)は、最短データ転送のサイズ
に基づいて構成されるのではなく、データブロック(ス
トライプ・グループに相当)及び関連パリティブロック
(キャッシュ内のストライドとして)に基づいて構成さ
れる。実施例においては、一例として、キャッシュユニ
ットは3個の4Kバイト・ブロックと1個の4Kバイト
・パリティブロックから成る。
【0011】望ましいキャッシュシステムでは、ホスト
からアドレスされたデータを有するキャッシュユニット
は、キャッシュユニットの最新使用を示す最高使用頻度
順位リスト(MRUリストとも呼ぶ)上において最上位
に登録される。ホストからの書込みデータがこのキャッ
シュユニット内において先行アクセスにより記憶された
データ側近に記憶される。次に、別のキャッシュユニッ
トがアドレスされたと仮定すると、未使用のキャッシュ
ユニットがMRUリスト上において最下位へ向けてさら
に押し下げられる。この方法でキャッシュを使用するこ
との利点は、キャッシュ内でのデータへのアクセスが全
くランダムでなくて、ある程度の連続的なアクセス(時
間に直接関係する必要はない)であり、かつ、キャッシ
ュのサイズが充分に大きい場合には、MRUリストの最
下位に向かって存在する複数のキャッシュユニットが有
効なデータの全セットを記憶している可能性は高くなる
ことである。1つのキャッシュユニットの全てのデータ
がキャッシュ内に駐在しているならば、さらなるデータ
アクセスなしで更新可能なパリティと共に、このキャッ
シュデータをディスクアレイにコミッテング(すなわち
ダウン・ローデング)することが可能になる。従って、
キャッシュシステムのない場合にパリティを生成するた
めに必要な冗長アクセスが排除される。1つのキャッシ
ュユニットの全データがキャッシュ内に駐在していない
場合、更新パリティデータを生成するためにディスクの
データをアクセスする必要が生じる。しかし、必要な冗
長アクセスの数はシステム能力の改良によって大きく減
少させられる。
【0012】冗長アクセスを減少又は排除するに必要な
キャッシュのサイズはホストによって要求されたデータ
アクセスの性質に依存する。データの要求が本来大き
く、連続的なら、このディスク装置への冗長アクセスを
実質的になくすために必要なキャッシュメモリの容量
は、データ要求が大きくランダムである場合より小さい
ものとなる。
【0013】キャッシュシステムの採用では、データを
防護されていないメモリに入れさせないことが重要であ
る。望ましいキャッシュシステムは、必要な信頼性を確
保できるキャッシュメモリのデュアルタイプで不揮発性
素子を使用する。電力系統やハードウェアの故障の場合
には、データはシステムが再機能するまで保存される。
(単一の)装置の故障の場合には、損失したデータの再
生成はパリティ生成の従来方法と類似方法でおこなわれ
る。
【0014】
【実施例】以下に説明するのは、本発明のキャッシュシ
ステムをホストプロセッサで実行するソフトウェアにお
いて実施したものである。図1はホストバス15を介し
てアレイアダプタ20へ接続したホストシステム10か
ら構成するデータ処理システムを示す。このアダプタも
通信リンク25を介してディスクアレイ30に接続され
ている。アレイ30は4個の磁気ディスク型のデータ記
憶装置34、36、38、40及び関連アレイ・コント
ローラ32から成る。また、ホストバスには、不揮発性
キャッシュメモリ50が接続され、このキャッシュメモ
リは、ホストとディスクアレイのディスク記憶装置間で
転送するデータを保持するために使用される。
【0015】図2は、本発明のキャッシュシステムに関
連して使用されるアレイのディスク記憶装置にデータを
ストライドの形式で記憶させる方法を示す。図2におい
て、垂直の太い線分で区分された2つのデータ・ストラ
イドが、各ディスク記憶装置34、36、38、40に
おいて、各ディスクA,B,C,P上の各データ記憶ト
ラック35、37、39、41上に各ストライプ60の
形で記憶される。1つのストライドの各ディスク毎の部
分であるストライプ60は、図2では3セクタ(3×5
12バイト)のデータ長である。第1番目のデータ・ス
トライドは、ディスクA上の3個のA1セクタ、ディス
クB上の3個のB1セクタ、ディスクC上の3個のC1
セクタ、及びパリティディスクP上の3個の関連のパリ
ティセクタP1のデータから成る。同様に、第2番目の
データ・ストライドは、各ディスクA、B、C及びP上
の3個のA2、3個のB2、3個のC2、及び3個のP
2のセクタ・データから成る。従来のディスクアレイシ
ステムでは、例えば、ホストからセクタ70、71、7
2、73への新データの書き込み要求は、第1データ・
ストライドの残りのセクタ上のデータを各ディスクから
読み取り、新パリティデータを算出し、新データをセク
タ70、71、72、73に書き込み、そして新パリテ
ィを書き込む動作を含んでいる。
【0016】ホストから入来したデータ要求がキャッシ
ュシステムによりどのように処理されるかについて図
3、図4及び図5を参照して説明する。図3は、本発明
を実施するホストコンピュータ・プログラムにより関連
の制御情報を記憶するために使用される複数の記憶区域
(コントロールブロック)の相関関係を示したものであ
る。図5は、記述されているコントロールブロックに対
する相関関係を含む(要求側タスク及びサーバタスクに
細分化した)プログラム構造を示す。
【0017】図3を参照して説明する。先ず、ホスト1
0から入来した要求がIOパケットの待ち行列(GPi
n)100(図5参照)に登録され、ホストは、その要
求の成功/失敗を知らせるステータスの返送を待つ(G
Pout)。待ち行列から読み取られた要求のゲット/
プットパケット(GPBLK)がそれぞれのディスク記
憶装置で遂行すべきサブタスクに分割され各サブタスク
対応する各ジョブI/Oコントロールブロック(JIO
B)120、122、124にストライプされる。これ
ら全てのサブタスク、すなわち、全JIOB、の完了に
よりホストからのデータ要求が初めて完了されたことに
なる。これらのJIOBの各々は、全データ転送要求に
応答して単一ストライプ内に駐在する全データを転送さ
せるが、ストライプ境界を越えて駐在するデータを転送
させないようにストライプされる。従って、各JIOB
は、各ストライプ、転じて、ストライプコントロール・
ブロック(SCB)、と1対1で対応する(後述のフォ
マット及び機能の説明を参照されたい)。これらJIO
Bの進行状態をトラッキングするために、各JIOBを
単一の親ジョブコントロール・ブロック(JCB)11
0に関連づける。このJCB110は、各データ要求タ
スク毎に、生成される。JCB110の管理下にあるJ
IOBの各々は、待ち行列で待機し、図5でキャッシュ
マネージャと図示したキャッシュ管理手段によって処理
される。1つのJIOBの実行に必要な全データがキャ
ッシュメモリに駐在しているならば、そのJIOBは直
ちに完了することができる。必要なデータの一部しかキ
ャッシュ内に駐在していないか又はそのデータが全然駐
在していない場合には、そのデータは(読取り要求の場
合にのみ)例えばディスクAからフェッチしなくてはな
らない。キャッシュ管理手段は、各キャッシュコントロ
ール・ブロック(CCB)150の二重リンク・リスト
から成り、そのリストは、最高使用頻度順位付け体系
(MRU)で維持される。後述のフォマット及び機能の
説明から判るように、各CCBは各ストライド毎に、す
なわちキャッシュユニット毎に、生成され、アレイ・デ
ィスクドライブ数に相当する数のストライプコントロー
ル・ブロック(SCB)を選択的にリンクしてストライ
ド単位でのデータキャッシュイングを可能にする。キャ
ッシュ管理手段は、後で、さらに説明する。
【0018】1つのJIOBを完了させるためには、さ
らに細分化が行われ、各ディスクに対応するストライプ
IO要求(SIOB)160、162、164のメニュ
が生成される。1つのストライドのディスク毎の部分で
ある各ストライプは、ストライプ・コントロールブロッ
ク(SCB)と呼ぶ1つのコントロールブロック13
0、132、134又は136に関連する。このSCB
は、関連するメモリ区域(すなわちストライプデータ・
ブロック「SDB」)のステータスを記憶し、共通のス
トライプについてI/O要求する複数のJIOBを待ち
行列で処理するのを可能にする。生成された各SIOB
は、次の実行のディスクIO待ち行列に入れられる。
【0019】1つのSIOBが処理完了する時点で、こ
れらのSIOBを生成した元のSCBが更新され、ステ
ータスが集められる。このようにして、全てのSIOB
が完了すると、待ち行列状態にある次順位のJIOBが
処理可能となる。1つのJIOBが処理完了する時点
で、これらのJIOBを生成した元のJCBが更新さ
れ、ステータスが集められる。全てのJIOBが完了す
ると、ホスト要求が完了したことになる。ステータス
は、要求が入来したときのGPパケットの形でホストに
戻される。
【0020】本発明の実施例で使用した各コントロール
ブロックのフォーマット及び機能について説明する。 1.ゲット/プット パケット・ブロック − GPB
LK これはホストアプリケーションからの要求を受けるため
に使用されるパケットである。各個別のアクセスからの
併合したステータスもこのパケットに戻される。
【0021】 フォマット GPBLK_rwflag GPBLK_length GPBLK_diskaddr GPBLK_paramID GPBLK_bufferptr GPBLK_returncode
【0022】機能の説明 GPBLK_rwflag:ホストの要求が読取りか書
込みかを指定する。 GPBLK_length:セクタ数で表わしたアクセ
スの長さ。 GPBLK_diskaddr:要求の開始の(アレイ
における)仮想セクタ数。 GPBLK_paramID:完了ステータスを戻すた
めのタグID。 GPBLK_bufferptr:データ区域の開始点
のホストにおける物理アドレス。 GPBLK_returncode:ホストへ戻るため
の各個別要求の併合したステータスを含む。
【0023】 2.ジョブコントロール・ブロック − JCB ジョブコントロール・ブロックは、細分化されたJIO
Bの各々に対する親であり、ユーザの要求(入力GPB
LK)と1対1の対応関係を有する。各JIOBの完了
はJCB_counterを減少させ、ステータスを現
行ステータスと併合させる。
【0024】 フォマット JCB_counter JCB_waitALLsem JCB_waitALLhandle JCB_returncode
【0025】機能の説明 JCB_counter:ステータスがホストに戻るこ
とができる前に完了させる必要がある未完成JIOBの
数を維持する。 JCB_waitALIsem及びJCB_waitA
LLhandle:未決の副要求の全ての完了までホス
ト要求を保留するために使用される信号及びハンドル。 JCB_returncode:副要求の全ての併合し
たステータス。
【0026】 3.ジョブI/Oコントロールブロック − JIOB JIOBはホスト要求の一部分を有するが、単一のスト
ライプ内に含まれる。
【0027】 フォマット JIOB_Qptrs JIOB_rwflag JIOB_device JIOB_diskaddr JIOB_length JIOB_bufferptr JIOB_JCBptr JIOB_SCBptr
【0028】機能の説明 JIOB_Qptrs:種々の待ち行列内でJIOBの
待ち行列を可能とする。 JIOB_rwflag:D
ASDに対するこのIO要求が読取りか書込みか 示
す。 JIOB_device:これは、要求が関係づけられ
る必要な物理装置である。 JIOB_diskaddr:これは、転送開始点の装
置の物理セクタアドレスである。 JIOB_length:これはセクタにおける転送の
長さである。この長さは、ストライプ境界が越えられる
ことがないようなものである点に注意。 JIOB_bufferptr:このサブタスクに対す
るデータの開始点のホストにおいて演算した新たなアド
レスである。 JIOB_JCBptr:このサブタスクが発生した親
JCBへ戻るポインタ。 JIOB_SCBptr:このJIOBが関連するSC
Bにたいするポインタ。
【0029】 4.キャッシュコントロール・ブロック − CCB キャッシュコントロール・ブロックは、二重リンクリス
ト内に登録され、ディスクドライブ数に相当する数のス
トライプコントロール・ブロック(SCB)(装置)を
機能的に連結する。このCCBの利用により、ストライ
ド単位でのキャッシュが可能になる。
【0030】 フォマット CCB_Qptrs CCB_InUseflag CCB_hashptr CCB_strideaddr CCB_SCBptr[0] CCB_SCBptr[1] CCB_SCBptr[2] CCB_SCBptr[n]
【0031】機能の説明 CCB_Qptrs:CCBリストとフリーCCB待ち
行列を維持するためのリンクポインタ。 CCB_InUseflag:現在使用中のCCBの解
除をさけるための防護。 CCB_hashptr:ハッシュテーブル内の衝突を
可能にする。もし有効ら、このハッシュ位置に存在した
可能性のある次のCCBをこれがポイントす。 CCB_strideaddr:特定のストライドアド
レスを保持する。ハッュ「衝突」の可能性ゆえに必要と
される。 CCB_SCBptr[n]:ポインタのアレイで、初
め空白 で、関連のストライプコントロール・ブロック
(SCB)を参照する。1ディスクドライブ毎に1つの
ポインタ。
【0032】 5.ストライプコントロール・ブロック − SCB ストライプコントロール・ブロックは、ストライプデー
タ・ブロック(SDB)とも呼ばれているキャッシュメ
モリのステータスを記憶する。SCBとSDBの間には
1対1の関係があるが、SDBは対応のSCBが存在す
るなら必ずしも存在することはない。SDB/SCBメ
モリのアロケーションは動的計画に基づいている。
【0033】 フォマット SCB_Qptrs SCB_validmask SCB_modifiedmask SCB_IOstate SCB_counter SCB_SIOBQptrs SCB_RwaitQptrs SCB_WwaitQptrs SCB_dataptr SCB_returncode
【0034】機能の説明 SCB_Qptrs:フリーSCBのリストを維持する
ために使用される。 SCB_validmask:有効か不要か、ストライ
プデータ・ブロック(SDB)に保持された各セクタを
識別する。1セクタに対し1ビット。 SCB_modifiedmask:数カ所でディスク
に保存される必要のあSDB内のセクタを識別(どのD
ASDセクタが無効となったか)する。 SCB_IOstates:4つのSCB状態(アイド
ル、読取り待ち、書込み待ち、コミット待ち)の1つを
識別する。 SCB_counter:SCBがアイドル状態にもど
る前に実行する必要がある未完成なDASD要求(SI
OB)のカウントを維持する。 SCB_SIOBQptrs:これは、SIOBの一時
的にリンクしたリスト(メニュ)のヘッドである。 SCB_RwaitQptrs:これは、保留したJI
OBのリンクしたリスのヘッドであり、関連したSDB
での読取りオペレーションを要求した。SCB_cou
nterがゼロにもどる時のみ、これらの要求が満たさ
れる。 SCB_WwaitQptrs:読取り待ち行列と同様
であるが、これらのJOB全ては書込みオペレーション
を要求した。これらは全ての読取りオペレーョンが完了
した後にのみ実行可能である。 SCB_dataptr:これはストライプデータ・ブ
ロック(SDB)をポントする。SDBがこのSCBに
割り当てられていない場合、ポインタは空白なる。 SCB_returncode:この副要求を満たすた
めに発生させられたSOBからの併合したステータスを
維持する。
【0035】 6.ストライプI/Oブロック − SIOB ストライプI/OブロックはDASDへ送った待ち行列
状態の要求であり、その目的は、DASDから非キャッ
シュセクタをフェッチするか又はキャッシュセクタをD
ASDへ記憶させるかである。オリジナルのJIOBは
1ストライプに含まれるので、JIOBから生成された
SIOBの数は多くともN/2となる。ここで、Nは、
1ストライプ当たりのセクタの数である。
【0036】 フォマット SIOB_Qptrs SIOB_rwflag SIOB_device SIOB_diskaddr SIOB_length SIOB_bufferoffset SIOB_SCBptr
【0037】機能の説明 SIOB_Qptrs:多種の待ち行列の1つにおける
SIOBを維持する。 SIOB_rwflag:この要求が読取りか書込みか
示す。 SIOB_device:物理DASD装置番号を参照
する。 SIOB_diskaddr:要求を開始するための上
記DASDの物理LBA(ディスク・アドレス)。 SIOB_length:要求アクセスのセクタ 数 。
これはストライプの境界が越えられることがなく、しか
もキャッシュの有効で修正したデータもDASD読取り
要求に重ね書込みされないものである。 SIOB_bufferoffset:データ転送を開
始するSDBの開始位置(SCB_dataptr)か
らのセクタ内のオフセットである。(NB.SCB_d
ataptrは、SDBがまだ割り当てられてない場合
この時点で空白となる。) SIOB_SCBptr:このSIOBが発生した親S
CBへのポイントをおこなう。
【0038】再び、キャッシュ管理手段の機能について
説明する。この管理手段は「最新使用頻度順位」のアル
ゴリズムに基づいて動作する。ホストから入来したデー
タ要求(読取り又は書込み)は、先ず、キャッシュメモ
リが先行の要求によって既に割り当てられていたかどう
かをチェックされる。割り当てられていなかった場合に
は、キャッシュメモリ域をデータ記憶用に割り当てる試
みがなされ。この試みが失敗なら、そのコマンドはメモ
リが利用可能になるまで保留される。
【0039】要求されたデータに対応するメモリ域が既
に存在する場合、又は、上記割り当てが成功した場合、
そのホスト要求は、このキャッシュメモリについて動作
を開始する。読取り要求に対応するデータがディスクで
既に更新されてキャッシュ内で現在有効でない場合、要
求データをホストアプリケーションにコピーする前にデ
ィスクからキャッシュメモリにディスクIOを実行す
る。書込み要求は単に、そのアプリケーションからのデ
ータをキャッシュメモリ(急速書込みバッファとして作
用)にコピーする。
【0040】キャッシュコントロール・ブロック(CC
B)は、1つのストライド内の個々のストライプを一緒
に処理することを可能とする。これらCCBは、最高使
用頻度(MRU)から最低使用頻度(LRU)の順に順
序づけられた二重リンクのリストに登録される。1つの
CCBの管理下にあるストライド・データの少なくとも
一部へのアクセスは、そのCCBをCCBリスト内の最
高位位置へ移動させることになる。その結果、未使用の
CCB並びにその管理下の対応ストライプコントロール
・ブロック(SCB)及びストライプデータ・ブロック
(SDB)は、CCBリストの最低位位置へ押し下げら
れることになる。これらのCCBはDASDへコミット
(すなわちダウンロード)するための候補となり、キャ
ッシュメモリ区域を解放できるようになる。
【0041】CCBリストの急速検索はハッシュ方法に
よって行われる。図4のブロック図に示すように、現在
の要求のストライドアドレスをハッシュし、得られたフ
ァンクションリターン値をハッシュテーブルへのインデ
ックスとして使用する。ハッシュテーブルはCCBリス
ト内に登録されたCCBに対するポインタのアレイであ
る。エントリが空白なら、CCBはそのリスト内に存在
しない。そのテーブルがCCBをポイントしているな
ら、ストライドアドレスを比較しなくてはならない。こ
れは、多くのストライドアドレスを単一のハッシュテー
ブル・エントリに写像することができる。これらの「衝
突」は側鎖によって処理される。ハッシュテーブルによ
って引用された初めのCCBは、異なったストライドア
ドレスで、共通のハッシュ値を有するCCBのポテンシ
ャルリストのヘッドであるポインタを持つ。CCBの存
在/不在を確認するために、この側鎖をトラバースさ
せ、ストライドアドレスを比較しなければならない。一
般的に、この側鎖の長さは短く、供給されたハッシュテ
ーブルは大きく、かつハッシュファンクションは衝突を
最小にするように選択される。
【0042】本発明を実施するコンピュータプログラム
は2つの主タスクに分割される。それは、ホストからの
要求及びディスクIO要求に対するサービスをそれぞれ
個別に担当する。これらの2つのタスクは要求側タスク
およびサーバタスクと称される。図5は、このタスクと
コントロールブロック間のオペレーション上の関係を有
する本発明によるキャッシュシステムの構造をブロック
図で示したものである。
【0043】要求側タスクはユーザアプリケーション要
求のサービスを担当し、できるかぎりその要求を進める
ように試みる。ディスクIOあるいはキャッシュメモリ
のようなリソースが必要とされ、しかも現在有効でない
なら、部分的に完了した要求を後続する処理のために多
数の待ち行列の1つに入れる。図5では、要求側タスク
を、アレイマネージャ220とキャッシュマネージャ2
40の2つの一次ファンクションに細分化したものを示
す。要求側タスクの連続的な指示をリスト化したものは
添付の表7に示す。
【0044】サーバタスク(図5では200)は待ちデ
ィスクIO要求のサービスを行う。この要求ディスクI
Oの完了時には、サーバが関連のコントロールブロック
のステータスを更新することにより、要求側タスクは間
接的にその完了を知らせられる。サーバタスクの連続的
な指示をリスト化したものは添付の表8に示す。
【0045】背景処理260も2つの一次ファンクショ
ンを有する。つまり、(1)MRUリストの底部のCC
Bをディスクアレイにコミットさせ、それによりキャッ
シュリソースを解放する、(2)キャッシュリソースが
利用可能な時、SCB待ち行列からSCBを取り除き、
SDBをそこに割り当てる。CCBをディスクにコミッ
トさせるプロセスの一部分として、背景処理は必要に応
じてディスクからのデータ読取りを有するパリティ生成
を実行する。この背景処理の指示をリスト化したものを
添付の表9に示す。
【0046】図5に示すように、GPパケット100
は、アレイマネージャ220によって複数のJIOB1
20、122、124に細分化されてJIOB待ち行列
に登録される。キャッシュマネージャはこのJIOBを
処理し、ディスクIO待ち行列に登録される複数のSI
OB160、162、164を生成し、続いてサーバタ
スク200によって処理される。SIOBが完了する
と、このサーバタスクはSCB130、132、13
4、136を更新する。
【0047】本発明のキャッシュシステムを使用して、
読取り/書込みのシナリオの一例を以下に説明する。こ
のシナリオ例を充分に理解するために、表7〜9を参照
されたい。
【0048】1.ホスト要求がREAD要求であり、か
つ、要求された全セクタのデータがキャッシュに駐在し
ている場合: ホスト要求が直ちに実行され完了する。
【0049】2.ホスト要求がREADであり、SCB
がIDLE又はWaitWritingであり、かつ、
全セクタがキャッシュに駐在していない(すなわち、有
効ではない)場合: IO状態をWaitReadingにセットし、JIO
Bを待ち行列に入れて、−>SCBReadWaitQ
にし、全セクタをストライプ(次の3.を参照)に読み
取るために必要なSIOBのメニュを生成し、そして、
SDBの割り当てが成功したならば、ディスクIOを開
始(SIOBをディスクIOQへmove)、そうでな
いならば、−>SCBWaitQにする(つまり、SD
Bが有効になるまでアクセスを延期する)。
【0050】3.ホスト要求がREADであり、SCB
がWaitReadingであり、かつ、全セクタが有
効でない場合: IO状態をWaitReadingへセットさせる以前
のアクセスがこのホスト要求をも満たすものと仮定する
と、JIOBを待ち行列に入れて、−>SCBRead
WaitQにする。
【0051】4.ホスト要求がREADであり、SCB
がWaitCommittingであり、かつ、全セク
タが有効でない場合: 唯一のSIOBメニュ待ち行列がコミットに使用されて
いるので未だに要求へのサービスが不可能であり、従っ
て、JIOBを待ち行列に入れて、−>SCBRead
WaitQにする。
【0052】5.ホスト要求がWRITE、SCBがI
DLE、かつ、SDBが有効の場合:この要求の全体が
成就される。
【0053】6.ホスト要求がWRITE、SCBが待
ち(読取り/書込み/コミット)の状態の場合: JIOBを待ち行列に入れて、−>SCBWriteW
aitQにする。(注意:ホスト以外により開始された
キャッシュ読取りが有効なキャッシュデータに重ね書き
しないように、全Readが完了しない限りWrite
は許可されない。)
【0054】7.ホスト要求がWRITE、SCBがI
DLE、かつ、利用可能なSDBが無い場合: JIOBを待ち行列に入れてSCB−>SCBWrit
eWaitQにし、SCBを待ち行列に入れて−>SC
BWaitQにし、かつ、状態をWaitWritin
gにセットする(SDBが有効になるまで全アクセスを
延期)。
【0055】SCBから生成された複数のSIOBのう
ちの最終SIOBが完了の後(SCBカウンタ=0)、
次がおこなわれる。
【0056】8.SCBがWaitReadingなら
ば、SCBReadWaitQの全JIOBを完了する
ことが可能になる。(要求された全セクタが有効とな
る)(上記3から再開始)
【0057】9.SCBがWaitCommittin
gならば、SCBReadWaitQに待ち行列してい
た全JIOBを初めから再開始する。(SIOBメニュ
を設立するため必要)(上記4.を再開)
【0058】10.SCBがWaitReadingな
らば、SCBWriteWaitQに待ち行列していた
全JIOBを完了することが可能になる。(全 Rea
dが終了したのちにのみWriteを許可)(上記6.
を再開)
【0059】11.SCBがWaitCommitti
ng/Writingならば、SCBWriteWai
tQの全JIOBを初めから再開始する。(上記6.を
再開)
【0060】背景処理はSCBWaitQに待ち行列し
ていたSCBを再開始させる試みをする。SCBがこの
待ち行列に存在するするならば、SDBが利用可能にな
った−
【0061】12.SCBがWaitReading
(Read ONLY又はRead/Write)なら
ば、ディスクIOを再開する(SIOBをdiskIO
Qに移動)。(上記2.または7.を再開)。
【0062】13.SCBがWaitWriting
(Write ONLY)ならば、SCBWriteW
aitQの全JIOBを完了することが可能になる。
(上記7.の完了)
【0063】本発明をホストソフトウェアの実行に関し
て説明したが、これはある環境では多くのホストバス・
トラフィックという結果となるので最適な解決でないこ
とは容易に想像できる。しかし、ここで説明したソフト
ウェアデザインは、ハードウェア及びソフトウェアによ
る割り込み機構に極めて似た「イベント駆動」の環境に
基づく。このデザインは、本発明の望ましい実施となり
得る専用の第二プロセッサに極めて近いマップである。
【0064】 [表1] 要求側タスク IOが活動するまでwait 装置ドライバからIOパケット(GP)をget 親JCBをcreat n JIOBS(アレイマネージャ)にGPをstripe 各JIOBをJIOB待ち行列にqueue 実行JIOB待ち行列をcall 背景処理をcall JCBが完了(そのJCBに関連したALL JIOBが完了)するまでwa it IOパケットを装置ドライバにreturn loop 実行JIOB待ち行列:(キャッシュマネージャ) JIOB待ち行列が空でない時、 少なくとも1CCBと1SCBが有効かensure ifそれが実行できない、 return JIOB待ち行列からJIOBをunqueue ストライドアドレスのハッシュ検索をperform ifキャッシュがミス(CCBが不在)、 ハッシュテーブルに新たなCCBエントリ&リンクをinitial ise if要求されたストライプ(装置)に対してSCBが不在、 関連のCCBエントリに新たなSCBエントリ&リンクをiniti alise entry if READ、 if 必要とされるALLセクタがSDBに存在/有効、 終了したJIOBをcall return else SCBのReadWaitqueueにJIOBをqueue if SCBのIO状態がWaitReadingまたはWaitComm itting return。 if SCBのIO状態がWaitWritingまたはIdle、 IO状態をWaitReadingにset ディスク全てから読み取るのに必要なSIOBをcreate セクタをinvalid なにも存在しないならSDBを割り当てるattempt if失敗、 SCBをSCB待ちの待ち行列にput return。 if有効なSDBを有する、 全SIOBをディスクIO待ち行列にmove return。 if WRITE、 なにも存在しないならSDBの割り当てをattempt if SCBのIO状態が待ち(読取り/書込み/コミット)、 JIOBをSCBのWriteWait待ち行列にput return。 if IO状態がアイドルでSDBが存在しない、 JIOBをWriteWait待ち行列にput SCBをSCBWait待ち行列にput IO状態をWaitWritingにset return。 if IO状態がアイドルでSDBが存在、 終了したJIOBをcall return。
【0065】 [表2] サーバタスク ディスクIO待ち行列が空でない状態までwait 待ち行列空SIOBをremove DASDを新たなLBA(ディスクアドレス)にset if READ、 DASD Readをperform(そして完了をwait) if WRITE、 DASD Writeをperform(そして完了をwait) 終了したSIOBをcall loop 終了したSIOB: ディスク(キャッシュミス)からブロックに読み込むために有効なビットをs et ディスク(コミットされた)に書き込まれたブロック用に修正したビットをc lear 親SCBカウンタ(未終了のSIOBの数)をdecrement if カウントがゼロになる、 ReadWait待ち行列の全てのJIOBに対し、 if IO状態が読み取り待ちの状態、 終了したJIOBをcall else JIOBをJIOB待ち行列にput back WriteWait待ち行列の全てのJIOBに対し、 if IO状態が読み取り待ちの状態、 終了したJIOBをcall else JIOBをJIOB待ち行列にput back IO状態をアイドルにset 実行JIOB待ち行列をcall 背景処理をcall 終了したJIOB: if READ、 アプリケーションバッファにSDBデータをcopy if WRITE、 修正して、有効なマスクをupdate アプリケーションバッファをSDBにcopy カウントがゼロになるなら親JCBカウンタ(未終了JIOBの数)をdec rement、 信号JCBが完了(要求側タスクの待ち信号をclear)
【0066】 [表3] 背景処理 if SCBWait待ち行列になにかある、 SDBをtryしget、 if成功、 SCBWait待ち行列からSCBをremove if読取りを待つ、(つまり、読取り、そしてできれば書込み発生 ) SIOBをディスクIO待ち行列にmove if書込みを待つ、(つまり、ストライプにたいし読取りの発生な し) 書込み待ち行列内の全JIOBと終了したJIOBをcall queue IO状態をアイドルにset いくつかのリソースが解放されているので、実行JIOB待ち行列をcall パリティが生成可能で後続とコミット可能なポイントにCCBをProgre ss、 ディスクにCCBをtry、およびcommit、 by: CCBチェーン(LRUからMRUへ)のあるパーセンテージを scanning、 for:− 何らかの理由で待っているSCBを所有しないCCB、でそ のCCBは修正済みデータブロックを有する少なくとも1つのSCBを伴う4つ のSCB全てを有する。 このCCBで、パリティをgenerate このCCBに付属した修正データブロック(パリティストライプを含む )を伴う各SCBにより、 IO状態をコミット待ちにset ディスクに全ての修正ブロックを書き込むのに必要なSIOBを create これらSIOBをディスクIO待ち行列にqueue
【0067】
【発明の効果】本発明のキャッシュシステムによれば、
リストの底部のキャッシュユニットをディスクにコミッ
トさせるとき、ストライドを作るデータの大部分がキャ
ッシュ内に存在する可能性が増大し、それゆえパリティ
データを生成するに必要なディスクへの冗長なアクセス
の数が減少あるいは無くなるという効果を有する。
【図面の簡単な説明】
【図1】ホストシステムがキャッシュとホストアダプタ
を介してディスクアレイに接続したデータ処理システム
を示すブロック図である。
【図2】図1のディスクアレイを作るデータ記憶装置の
トラック上のデータのストライドの配列を示す概略図で
ある。
【図3】本発明のキャッシュシステムによる制御ブロッ
クの組合せを有するデータ要求機構を示すブロック図で
ある。
【図4】本発明によるキャッシュシステムで使用される
ハッシュテーブルと側鎖を示す概略図である。
【図5】制御ブロックとの関係を含んだ本発明の実行で
使用されるタスクの構造を示すブロック図である。
【符号の説明】
10 ホストシステム 15 ホストバス 20 アレイアダプタ 25 通信リンク 30 ディスクアレイ 32 アレイコントローラ 34 ディスク記憶装置 36 ディスク記憶装置 38 ディスク記憶装置 40 ディスク記憶装置 50 キャッシュメモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ニコラス・シェイラー イギリス、エスピーワン・スリーワイエ ー、ウィルトシャー州、サリスベリ、ス クール・レイン、ジ・オールド・スクー ル・ハウス(番地なし) (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 320 G06F 3/06 540 G06F 12/16 320

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】第1、第2及び第3の少なくとも3個のデ
    ィスク型記憶装置上にデータがストライド単位で記憶さ
    れるディスクアレイであって各ストライドが少なくとも
    第1及び第2のディスク型記憶装置の各々に記憶された
    マルチセクタデータの各ユニット及び第3のディスク型
    記憶装置に記憶された関連のマルチセクタ・パリティブ
    ロックから構成されているディスクアレイ並びにホスト
    システムの間で転送されるデータを保持するためのキャ
    ッシュメモリと、該キャッシュメモリ内で単一のデータ
    として操作されるキャッシュデータ・ユニットの編成を
    管理するためのキャッシュ管理手段とを有するキャッシ
    ュシステムにおいて、 上記キャッシュ管理手段は、上記マルチセクタデータの
    各ユニットと上記関連のマルチセクタ・パリティブロッ
    クとを上記キャッシュメモリ内においてリンクさせてス
    トライド単位のデータをキャッシュデータ・ユニットと
    して構成する機能を有することを特徴とするキャッシュ
    システム。
  2. 【請求項2】 上記キャッシュ管理手段は、キャッシュ
    データ・ユニット毎に生成され、上記ディスク型記憶装
    置の数に相当する数のストライプコントロール・ブロッ
    ク(SCB)を選択的にリンクしてストライド単位での
    データキャッシュイングを可能にキャッシュコントロー
    ル・ブロック(CCB)を含むことを特徴とする請求項
    1に記載のキャッシュシステム。
  3. 【請求項3】 上記キャッシュシステムは、上記キャッ
    シュデータ・ユニットを最新使用頻度リストに登録する
    ように構成されており、上記キャッシュメモリ内の1つ
    のストライド単位のデータの一部分を要求するホスト要
    求に応答して、上記キャッシュデータ・ユニットを該最
    新使用頻度リストの最高位へ移動するための手段をさら
    に有することを特徴とする請求項1に記載のキャッシュ
    システム。
  4. 【請求項4】 上記最新使用頻度リストの最低位に登録
    されたキャッシュデータ・ユニットを上記ディスク型記
    憶装置にコミットさせると共に、該キャッシュデータ・
    ユニットを該ディスク記憶装置にコミットさせる前に該
    キャッシュデータ・ユニットに関連のパリティデータを
    生成するために該ディスク型記憶装置上のデータ位置を
    判定するための手段を有することを特徴とする請求項3
    記載のキャッシュシステム。
JP5310894A 1992-12-22 1993-12-10 ディスクアレイ用キャッシュシステム Expired - Fee Related JP2837341B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9226725.1 1992-12-22
GB9226725A GB2273798A (en) 1992-12-22 1992-12-22 Cache system for disk array.

Publications (2)

Publication Number Publication Date
JPH06236322A JPH06236322A (ja) 1994-08-23
JP2837341B2 true JP2837341B2 (ja) 1998-12-16

Family

ID=10727035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5310894A Expired - Fee Related JP2837341B2 (ja) 1992-12-22 1993-12-10 ディスクアレイ用キャッシュシステム

Country Status (4)

Country Link
US (1) US5600816A (ja)
EP (1) EP0607663A1 (ja)
JP (1) JP2837341B2 (ja)
GB (1) GB2273798A (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
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
JP3687111B2 (ja) * 1994-08-18 2005-08-24 株式会社日立製作所 記憶装置システムおよび記憶装置の制御方法
US5712970A (en) * 1995-09-28 1998-01-27 Emc Corporation Method and apparatus for reliably storing data to be written to a peripheral device subsystem using plural controllers
US5671365A (en) * 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
KR0174711B1 (ko) * 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
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
US5963960A (en) * 1996-10-29 1999-10-05 Oracle Corporation Method and apparatus for queuing updates in a computer system
US6052697A (en) * 1996-12-23 2000-04-18 Microsoft Corporation Reorganization of collisions in a hash bucket of a hash table to improve system performance
US6067599A (en) * 1997-05-29 2000-05-23 International Business Machines Corporation Time delayed auto-premigeration of files in a virtual data storage system
JPH11203056A (ja) * 1998-01-19 1999-07-30 Fujitsu Ltd 入出力制御装置及びアレイディスク装置
US6704837B2 (en) 1998-06-29 2004-03-09 International Business Machines Corporation Method and apparatus for increasing RAID write performance by maintaining a full track write counter
US6343343B1 (en) * 1998-07-31 2002-01-29 International Business Machines Corporation Disk arrays using non-standard sector sizes
US6272590B1 (en) * 1999-02-19 2001-08-07 International Business Machines Corporation Method and system for prefetching sequential data in a data storage system
US6216199B1 (en) * 1999-08-04 2001-04-10 Lsi Logic Corporation Hardware mechanism for managing cache structures in a data storage system
US6795894B1 (en) * 2000-08-08 2004-09-21 Hewlett-Packard Development Company, L.P. Fast disk cache writing system
US6922801B2 (en) * 2001-06-01 2005-07-26 International Business Machines Corporation Storage media scanner apparatus and method providing media predictive failure analysis and proactive media surface defect management
US8719661B1 (en) * 2010-11-15 2014-05-06 Vmware, Inc. Transparent and lightweight recovery from hardware memory errors
JP2003263563A (ja) * 2002-03-08 2003-09-19 Fujitsu Ltd 保険管理システム、保険管理方法、およびプログラム
CN100428193C (zh) * 2004-02-07 2008-10-22 华为技术有限公司 一种在数据存储系统中预取数据的方法
JP2005309818A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ストレージ装置、そのデータ読出方法、及びそのデータ読出プログラム
JP2006107311A (ja) * 2004-10-08 2006-04-20 Hitachi Ltd ディスクアレイ装置およびその制御方法
US8255627B2 (en) 2009-10-10 2012-08-28 International Business Machines Corporation Secondary cache for write accumulation and coalescing
US8566540B2 (en) * 2010-02-02 2013-10-22 International Business Machines Corporation Data migration methodology for use with arrays of powered-down storage devices
US9785561B2 (en) 2010-02-17 2017-10-10 International Business Machines Corporation Integrating a flash cache into large storage systems
JP2013196481A (ja) * 2012-03-21 2013-09-30 Nec Corp キャッシュ装置、情報処理システム、および、キャッシュ方法
US9152500B1 (en) 2014-09-22 2015-10-06 Storagecraft Technology Corporation Hash collision recovery in a deduplication vault
US10691566B2 (en) * 2017-07-27 2020-06-23 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
CN111105724A (zh) * 2019-11-30 2020-05-05 苏州浪潮智能科技有限公司 智能存储系统
US11809274B2 (en) * 2021-04-21 2023-11-07 EMC IP Holding Company LLC Recovery from partial device error in data storage system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636946A (en) * 1982-02-24 1987-01-13 International Business Machines Corporation Method and apparatus for grouping asynchronous recording operations
EP0203601B1 (en) * 1985-05-29 1992-08-05 Kabushiki Kaisha Toshiba Cache system adopting an lru system, and magnetic disk controller incorporating it
JP2834189B2 (ja) * 1989-07-05 1998-12-09 株式会社日立製作所 入出力制御方法
JPH0731582B2 (ja) * 1990-06-21 1995-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション パリティ保護データを回復するための方法および装置
US5210866A (en) * 1990-09-12 1993-05-11 Storage Technology Corporation Incremental disk backup system for a dynamically mapped data storage subsystem
US5274799A (en) * 1991-01-04 1993-12-28 Array Technology Corporation Storage device array architecture with copyback cache
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
JP3308554B2 (ja) * 1991-02-20 2002-07-29 株式会社日立製作所 制御装置及び制御装置の制御方法
US5325509A (en) * 1991-03-05 1994-06-28 Zitel Corporation Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations
US5341381A (en) * 1992-01-21 1994-08-23 Tandem Computers, Incorporated Redundant array parity caching system
US5418921A (en) * 1992-05-05 1995-05-23 International Business Machines Corporation Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
US5408644A (en) * 1992-06-05 1995-04-18 Compaq Computer Corporation Method and apparatus for improving the performance of partial stripe operations in a disk array subsystem
US5315602A (en) * 1992-08-12 1994-05-24 Digital Equipment Corporation Optimized stripe detection for redundant arrays of disk drives

Also Published As

Publication number Publication date
GB9226725D0 (en) 1993-02-17
US5600816A (en) 1997-02-04
JPH06236322A (ja) 1994-08-23
EP0607663A1 (en) 1994-07-27
GB2273798A (en) 1994-06-29

Similar Documents

Publication Publication Date Title
JP2837341B2 (ja) ディスクアレイ用キャッシュシステム
US5917723A (en) Method and apparatus for transferring data between two devices with reduced microprocessor overhead
JP4219602B2 (ja) 記憶制御装置および記憶制御装置の制御方法
US6681339B2 (en) System and method for efficient failover/failback techniques for fault-tolerant data storage system
US6009481A (en) Mass storage system using internal system-level mirroring
EP1074916B1 (en) Hardware mechanism for managing cache structures in a data storage system
US6157962A (en) Multipath I/O storage systems with multiipath I/O request mechanisms
US6247099B1 (en) System and method for maintaining cache coherency and data synchronization in a computer system having multiple active controllers
JP3409859B2 (ja) 制御装置の制御方法
US7849254B2 (en) Create virtual track buffers in NVS using customer segments to maintain newly written data across a power loss
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
JP2002207572A (ja) ディスク制御システムおよびディスク制御方法
JP2002323959A (ja) 磁気ディスク制御装置のログ主体不揮発性書き込みキャッシュ・システム及び方法
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
JP3266470B2 (ja) 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム
JP2002023958A (ja) 計算機、計算機システムおよびデータ転送方法
US6782444B1 (en) Digital data storage subsystem including directory for efficiently providing formatting information for stored records
JP4252102B2 (ja) 計算機システムおよび二次記憶装置
JP4128206B2 (ja) 計算機システムおよび二次記憶装置
JP3747937B2 (ja) 計算機システムおよび二次記憶装置
JP3214452B2 (ja) 磁気ディスク制御装置
JP3747788B2 (ja) 計算機システムおよび二次記憶装置
US6594726B1 (en) Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation
JP2002055784A (ja) フォールトトレラントの記憶装置にデータを記憶するための方法、ならびにそのための記憶装置およびコントローラ
JPH10312246A (ja) 記憶装置サブシステム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees