JPH11288387A - ディスクキャッシュ装置 - Google Patents
ディスクキャッシュ装置Info
- Publication number
- JPH11288387A JPH11288387A JP10352414A JP35241498A JPH11288387A JP H11288387 A JPH11288387 A JP H11288387A JP 10352414 A JP10352414 A JP 10352414A JP 35241498 A JP35241498 A JP 35241498A JP H11288387 A JPH11288387 A JP H11288387A
- Authority
- JP
- Japan
- Prior art keywords
- disk
- cache
- data
- write
- block
- 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.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】RAID型のディスクアレイ装置を対象とした
ディスクキャッシュ機能の最適化を図る装置を提供す
る。 【構成】キャッシュメモリ48の管理に使用する空きス
ペース管理テーブル64を備えること及びリード要求に
対しキャッシュメモリ48がミスヒットしたときのディ
スク装置30からのステージングを、キャッシュメモリ
48を使用したことによる効果が最大に発揮できるよう
にして、RAID0,1,3,5て動作するディスクア
レイを対象としたキャッシュ処理を効率的に行なう。R
AID5の動作でもディスクリードを必要とせずにパリ
ティを計算できるRAID3的なアクセスを可能とする
ようにキャッシャブロック上に有効データを準備する。
ディスクキャッシュ機能の最適化を図る装置を提供す
る。 【構成】キャッシュメモリ48の管理に使用する空きス
ペース管理テーブル64を備えること及びリード要求に
対しキャッシュメモリ48がミスヒットしたときのディ
スク装置30からのステージングを、キャッシュメモリ
48を使用したことによる効果が最大に発揮できるよう
にして、RAID0,1,3,5て動作するディスクア
レイを対象としたキャッシュ処理を効率的に行なう。R
AID5の動作でもディスクリードを必要とせずにパリ
ティを計算できるRAID3的なアクセスを可能とする
ようにキャッシャブロック上に有効データを準備する。
Description
【産業上の利用分野】本発明は、ディスクアレイを用い
た磁気ディスクサブシステムに対してホストコンピュー
タからの指示によりリードとライトを行うキャッシュメ
モリを備えたディスクキャッシュ装置に関に関する。近
年、コンピュータ本体の性能の向上に伴い、コンピュー
タ本体のデータ格納媒体である磁気ディスク装置を用い
た入出力サブシステムの性能向上も望まれている。この
ため磁気ディスク装置よりもビットコストは高いが、高
速アクセスが可能な半導体メモリをキャッシュメモリと
して用いたディスクキャッシュ装置が登場した。すなわ
ち、磁気ディスクサブシステムの一部のデータをキャッ
シュメモリ上に置き、キャッシュメモリをリードまたは
ライトすることでアクセスを高速化するという手法であ
る。更に近年、ディスクアレイ装置を構成する複数の磁
気ディスクを組合せ、RAIDとして知られた動作形態
をとるものが普及しだしている。これらRAID型ディ
スクアレイ装置に対してもディスクキャッシュ装置を適
用し、最適化を図ることが望まれている。
た磁気ディスクサブシステムに対してホストコンピュー
タからの指示によりリードとライトを行うキャッシュメ
モリを備えたディスクキャッシュ装置に関に関する。近
年、コンピュータ本体の性能の向上に伴い、コンピュー
タ本体のデータ格納媒体である磁気ディスク装置を用い
た入出力サブシステムの性能向上も望まれている。この
ため磁気ディスク装置よりもビットコストは高いが、高
速アクセスが可能な半導体メモリをキャッシュメモリと
して用いたディスクキャッシュ装置が登場した。すなわ
ち、磁気ディスクサブシステムの一部のデータをキャッ
シュメモリ上に置き、キャッシュメモリをリードまたは
ライトすることでアクセスを高速化するという手法であ
る。更に近年、ディスクアレイ装置を構成する複数の磁
気ディスクを組合せ、RAIDとして知られた動作形態
をとるものが普及しだしている。これらRAID型ディ
スクアレイ装置に対してもディスクキャッシュ装置を適
用し、最適化を図ることが望まれている。
【従来技術】近年にあっては、計算機システムの外部記
憶装置として、記録の不揮発性、大容量性、データ転送
の高速性等の特長を持つ磁気ディスク装置、光ディスク
装置等のディスク装置が広く用いられている。ディスク
装置に対する要求は、高速データ転送、信頼性重視、大
容量性、低価格である。これらの要求を満たすものとし
て、ディスクアレイ装置が注目されてきている。ディス
クアレイ装置とは、小型ディスク装置を数台から数十台
並べ、複数のディスク装置に分散してデータを記録し
て、並列的にアクセスする装置である。ディスクアレイ
装置で並列的に複数のディスク装置にデータ転送を行え
ば、一台のディスク装置の場合と比べて、ディスクの台
数倍の高速データ転送が可能になる。また、データに加
えて、パリティデータなどの冗長な情報を付け加えて記
録しておくことで、ディスク装置の故障等を原因とする
データエラーの検出と訂正が可能となり、ディスク装置
の内容を二重化して記録する方法と同程度の信頼性重視
を、二重化より低価格で実現することができる。従来、
カルフォルニア大学バークレイ校のデビット・A・パタ
ーソン(DavidA. Patterson) らは、高速に大量のデー
タを多くのディスクにアクセスし、ディスク故障時にお
けるデータの冗長性を実現するディスクアレイ装置につ
いて、レベル1からレベル5までに分類付けを行って評
価した論文を発表している(ACMSIGMOD Conferance, Ch
icago, Illinois, June 1-3, 1988 P109-P116)。この
デビット・A・パターソンらが提案したディスクアレイ
装置を分類するレベル1〜5は、RAID(Redundant
Arrays of Inexpensive Disks )1〜5と略称される。
RAID1〜5を簡単に説明すると次のようになる。R
AID0は、データの冗長性をもたないディスクアレイ
装置であり、デビット・A・パターソンらの分類には含
まれていないが、これを仮にRAID0と呼ぶ。RAI
D1は、2台のディスク装置を1組として同一データを
書込むミラーディスク装置であり、ディスク装置の利用
効率が低いが冗長性をもっており、簡単な制御で実現で
きるため、広く普及している。RAID2は、データを
ビットやバイト単位でストライピング(分割)し、それ
ぞれのディスク装置に並列に読み書きを行う。ストライ
ピングしたデータは全てのディスク装置で物理的に同じ
セクタに記録する。データ用ディスク装置の他にハミン
グコードを記録するためのディスク装置を持ち、ハミン
グコードから故障したディスク装置を特定して、データ
を復元する。しかし、実用化されていてない。RAID
3は、データをビット又はバイト単位にストライピング
してパリティを計算し、ディスク装置に対しデータおよ
びパリティを並列的に書込む。RAID3は、大量のデ
ータを連続して扱う場合には有効であるが、少量のデー
タをランダムにアクセスするトランザクション処理のよ
うな場合には、データ転送の高速性が生かせず、効率が
低下する。RAID4は、1つのデータをセクタ単位に
ストライピングして同じディスク装置に書込む。パリテ
ィは固定的に決めたディスク装置に格納している。デー
タ書込みは、書込み前のデータとパリティを読み出して
から新パリティを計算して書き込むため、1度の書込み
について、合計4回のアクセスが必要になる。また書込
みの際に必ずパリティ用のディスク装置へのアクセスが
起きるため、複数のディスク装置の書込みを同時に実行
できない。このようにRAID4の定義は行われている
が、メリットが少ないため現在のところ実用化の動きは
少ない。RAID5は、パリティ用のディスク装置を固
定しないことで、並列的なリード、ライトを可能にして
いる。即ち、セクタごとにパリティの置かれるディスク
装置が異なっている。パリティディスクが重複しなけれ
ば異なるディスク装置にセクタデータを並列的に書込む
ことができる。このようにRAID5は非同期に複数の
ディスク装置にアクセスしてリード又はライトを実行で
きるため、少量データをランダムにアクセスするトラン
ザクション処理に向いている。
憶装置として、記録の不揮発性、大容量性、データ転送
の高速性等の特長を持つ磁気ディスク装置、光ディスク
装置等のディスク装置が広く用いられている。ディスク
装置に対する要求は、高速データ転送、信頼性重視、大
容量性、低価格である。これらの要求を満たすものとし
て、ディスクアレイ装置が注目されてきている。ディス
クアレイ装置とは、小型ディスク装置を数台から数十台
並べ、複数のディスク装置に分散してデータを記録し
て、並列的にアクセスする装置である。ディスクアレイ
装置で並列的に複数のディスク装置にデータ転送を行え
ば、一台のディスク装置の場合と比べて、ディスクの台
数倍の高速データ転送が可能になる。また、データに加
えて、パリティデータなどの冗長な情報を付け加えて記
録しておくことで、ディスク装置の故障等を原因とする
データエラーの検出と訂正が可能となり、ディスク装置
の内容を二重化して記録する方法と同程度の信頼性重視
を、二重化より低価格で実現することができる。従来、
カルフォルニア大学バークレイ校のデビット・A・パタ
ーソン(DavidA. Patterson) らは、高速に大量のデー
タを多くのディスクにアクセスし、ディスク故障時にお
けるデータの冗長性を実現するディスクアレイ装置につ
いて、レベル1からレベル5までに分類付けを行って評
価した論文を発表している(ACMSIGMOD Conferance, Ch
icago, Illinois, June 1-3, 1988 P109-P116)。この
デビット・A・パターソンらが提案したディスクアレイ
装置を分類するレベル1〜5は、RAID(Redundant
Arrays of Inexpensive Disks )1〜5と略称される。
RAID1〜5を簡単に説明すると次のようになる。R
AID0は、データの冗長性をもたないディスクアレイ
装置であり、デビット・A・パターソンらの分類には含
まれていないが、これを仮にRAID0と呼ぶ。RAI
D1は、2台のディスク装置を1組として同一データを
書込むミラーディスク装置であり、ディスク装置の利用
効率が低いが冗長性をもっており、簡単な制御で実現で
きるため、広く普及している。RAID2は、データを
ビットやバイト単位でストライピング(分割)し、それ
ぞれのディスク装置に並列に読み書きを行う。ストライ
ピングしたデータは全てのディスク装置で物理的に同じ
セクタに記録する。データ用ディスク装置の他にハミン
グコードを記録するためのディスク装置を持ち、ハミン
グコードから故障したディスク装置を特定して、データ
を復元する。しかし、実用化されていてない。RAID
3は、データをビット又はバイト単位にストライピング
してパリティを計算し、ディスク装置に対しデータおよ
びパリティを並列的に書込む。RAID3は、大量のデ
ータを連続して扱う場合には有効であるが、少量のデー
タをランダムにアクセスするトランザクション処理のよ
うな場合には、データ転送の高速性が生かせず、効率が
低下する。RAID4は、1つのデータをセクタ単位に
ストライピングして同じディスク装置に書込む。パリテ
ィは固定的に決めたディスク装置に格納している。デー
タ書込みは、書込み前のデータとパリティを読み出して
から新パリティを計算して書き込むため、1度の書込み
について、合計4回のアクセスが必要になる。また書込
みの際に必ずパリティ用のディスク装置へのアクセスが
起きるため、複数のディスク装置の書込みを同時に実行
できない。このようにRAID4の定義は行われている
が、メリットが少ないため現在のところ実用化の動きは
少ない。RAID5は、パリティ用のディスク装置を固
定しないことで、並列的なリード、ライトを可能にして
いる。即ち、セクタごとにパリティの置かれるディスク
装置が異なっている。パリティディスクが重複しなけれ
ば異なるディスク装置にセクタデータを並列的に書込む
ことができる。このようにRAID5は非同期に複数の
ディスク装置にアクセスしてリード又はライトを実行で
きるため、少量データをランダムにアクセスするトラン
ザクション処理に向いている。
【発明が解決しようとする課題】このようなRAID型
で分類されるディスクアレイ装置は、システムの運用形
態に応じてRAIDの動作形態が選択されているが、最
近は、1つのディスクアレイ装置で、RAID0,1,
3および5に動作モードを異なるディスク装置に割当て
てホストコンピュータが論理デバイスとして選択指定で
きるようにしたものが出されている。しかしながら、こ
のようなRAID型のディスクアレイ装置においても、
ディスクキャッシュ装置を使用することで処理性能をよ
り一層向上させることができるが、RAIDの動作形態
に適合したディスクキャッシュの機能を最適化する必要
がある。従って、本発明の目的は、RAID型で動作形
態が分類されたディスクアレイ装置を対象にディスクキ
ッシュ機能の最適化を図ったディスクキャッシュ装置を
提供することを目的とする。
で分類されるディスクアレイ装置は、システムの運用形
態に応じてRAIDの動作形態が選択されているが、最
近は、1つのディスクアレイ装置で、RAID0,1,
3および5に動作モードを異なるディスク装置に割当て
てホストコンピュータが論理デバイスとして選択指定で
きるようにしたものが出されている。しかしながら、こ
のようなRAID型のディスクアレイ装置においても、
ディスクキャッシュ装置を使用することで処理性能をよ
り一層向上させることができるが、RAIDの動作形態
に適合したディスクキャッシュの機能を最適化する必要
がある。従って、本発明の目的は、RAID型で動作形
態が分類されたディスクアレイ装置を対象にディスクキ
ッシュ機能の最適化を図ったディスクキャッシュ装置を
提供することを目的とする。
【課題を解決するための手段】図1は本発明の原理説明
図である。図1はディスクアレイ装置のRAID形態に
適合した本発明のディスクキャッシュ装置の原理説明図
である。このディスクキャッシュ装置は、複数のディス
ク装置30を設けたディスクアレイ手段28を備える。
ディスクキャッシュ機構としては、ディスクアレイ手段
28に格納されたデータの一部を記憶して上位装置10
からのアクセス要求に対しデータを読み書きするキャッ
シュ記憶手段48を持ち、キャッシュ管理手段50のハ
ッシュテーブル手段60およびLRUテーブル手段62
に基づいてキャッシュ記憶手段48の記憶状態を管理す
る。またリードキャッシュ制御手段46−1とライトキ
ャッシュ制御手段46−2が設けられる。リードキャッ
シュ制御手段46−1は、上位装置10からリード要求
を受けた際に、キャッシュ管理手段50のハッシュテー
ブル手段60を参照し、要求データが存在する場合は、
キャッシュ記憶手段48から読出して上位装置10に転
送する。要求データが存在しない場合は、ディスクアレ
イ手段28からステージングした後に上位装置10に転
送する。ライトキャッシュ制御手段46−2は、上位装
置10からライト要求を受けた際に、キャッシュ管理手
段50のハッシュテーブル手段60に書込を示す情報を
登録すると共に、キャッシュ記憶手段48にデータを書
込み、書込み済みのキャッシュブロックをLRUテーブ
ル手段62の先頭にリンクする。またライトバック制御
手段45が設けられ、予め定めたライトバック条件が成
立した際に、キャッシュ記憶手段48からディスクアレ
イ手段28への記憶が済んでいないデータを抽出して書
戻す。更にディスクアレイ制御手段52が設けられ、リ
ードキャッシュ制御手段46−1およびライトキャッシ
ュ制御手段46−2によるディスクアレイ手段28のア
クセス時に、予め設定されたディスクアレイのRAID
動作モードに従って1又は複数のディスク装置30のア
クセスを制御する。 I) RAID動作モード ディスクアレイ手段28は、並列的に配置された入出力
ポートの各々にディスク装置30を接続して1ランクを
構成し、この1ランク構成のディスク装置群を複数ラン
ク設けている。ディスクアレイ制御手段52は、RAI
D0,RAID1、RAID3又はRAID5に対応し
た第1〜第4動作モードを設定する。RAID0に対応
した第1動作モードの設定時は、特定のランクの中のデ
ィスク装置30を上位装置10で扱う論理デバイスに1
対1に割当て、個々のディスク装置30に読み書きを行
う。RAID1に対応した第2動作モードの設定時は、
特定のランクの中の2台のディスク装置30を1組とし
て上位装置10で扱う論理デバイスに1対1に割当て、
2つのディスク装置30に同一データを書込むと共にい
ずれか一方のディスク装置30からデータを読出すミラ
ーディスクとする。RAID3に対応した第3動作モー
ドの設定時は、特定のランクを構成するn台のディスク
装置30をデータ用とパリティ用とに固定的に割当て、
上位装置10からの書込要求時に、書込データをビット
単位又はバイト単位に(n−1)分割すると共に分割単
位ごとにパリティデータを計算し、(n−1)分割した
データおよびパリティデータをn台のディスク装置30
に並列的に書込む。RAID5に対応した第4動作モー
ドの設定時は、特定のランクを構成するn台のディスク
装置30を1組としてアクセスごとにパリティ位置が変
化するように割当て、上位装置10からの書込要求時
に、書込データを少なくともセクタ単位に分割すると共
に、書込データの書込先ディスク装置30およびパリテ
ィ用ディクス装置から旧データおよび旧パリティデータ
を読出して新パリティを計算し、前記書込データ及び新
パリティデータを前記書込先ディスク装置30およびパ
リティ用ディクス装置に並列的に書込む。 II) キャッシュメモリの空スペースの確保 キャッシュ管理手段50は、キャッシュ記憶手段48の
空き状態を管理する空スペース管理テーブル手段64を
備える。ライトキャッシュ制御手段46−1は上位装置
10に基づくキャッシュ書込処理の完了報告時に空スペ
ース管理テーブル手段64を参照し、空スペースが予め
定めた閾値以下の場合、ディスク書込済みのデータは無
効化してキャッシュ記憶手段48から削除し、且つディ
スク書込みが済んでいないダーティデータはライトバッ
ク手段45による処理動作を準備する。これにより常に
一定量の空スペースがキャッシュ記憶手段48に確保さ
れ、ライト動作が迅速にできる。空スペース管理テーブ
ル手段64には、キャッシュ記憶手段48上の連続する
キャッシュブロックの空ブロック数をエントリ(インデ
ックス)として先頭ブロックの位置情報を格納する。 III) ステージング動作 リードキャッシュ制御手段46−1は、上位装置10か
らのリード要求データがキャッシュ記憶手段48の格納
単位であるキャッシュブロック上に存在しない時、キャ
ッシュブロック上に存在する有効データの状態に応じて
ディスクアレイ手段28から新たなデータのステージン
グを行って連続する一つのデータ領域を生成する。ステ
ージング終了後に、リード要求データに続く有効データ
をディスクアレイ手段28からキャッシュブロック上に
プリフェッチする。このプリフェッチするデータ量は、
RAID1に対応する第3動作モードの設定時は、予め
設定した量の有効データとする。RAID3に対応する
第3動作モードの設定時又はRAID5に対応する第4
動作モードの設定時には、キャッシュブロックの最後ま
での有効データとする。RAID5に対応する第4動作
モードの設定時には、リード要求データを含むパリティ
グループの最後までの有効データとしてもよい。これは
キャッシュブロックサイズとパリティグループのブロッ
クサイズが一致する場合である。RAID5に対応する
第4動作モードの設定時に、リードキャッシュ制御手段
46−1は、オプション指定によりキャッシュ記憶手段
48にパリティデータもステージングし、この場合、ラ
イトバック手段45は、キャッシュ記憶手段48のパリ
ティデータを用いて新たなパリティを計算する。これに
よりライトバックの際の旧データおよび旧パリティのデ
ィスク読出を不要にできる。IV) シーケンシャルデー
タのLRU管理 リードキャッシュ制御手段46−1は、上位装置10か
ら大量シーケンシャルデータのリード要求に対しステー
ジングを行った場合、キャッシュ記憶手段48のLRU
テーブル手段62を参照して末尾から所定量のキャッシ
ュブロックとなる記憶データの一部を無効化すると共
に、大量シーケンシャルデータをLRUテーブル手段6
2の先頭に登録せずに終端側に登録する。これによって
比較的短期間で大量シーケンシャルデータをキャッシュ
記憶手段から追い出すことができる。 V) ライトバック処理 RAID5に相当する第4動作モードの設定時に、ライ
トバック手段45は、キャッシュブロックの中のライト
バックの対象となった有効データをパリティグループ単
位に抽出してパリティデータを算出した後に、抽出した
有効データおよびパリティデータをディスクアレイ手段
28の複数のディスク装置30に並列的に書込む。即
ち、RAID5であってもRAID3と同様に動作させ
てライトバックを効率良く行う。またライトバック手段
45は、キャッシュブロックの中のライトバックの対象
となった有効データのパリティグループに対する不足数
が所定数以下の場合、例えば1ブロック以下の場合、不
足データを対応するディスク装置30から読出した後に
パリティグループ分の有効データおよび計算したパリテ
ィデータをディスクアレイ手段28の複数のディスク装
置30に並列的に書込むことでRAID3的な動作を可
能とする。ライトバック手段45は、所定のライトバッ
ク条件が成立した際に、LRUテーブル手段62内の終
端から所定数のキャッシュブロックをライトバック対象
に指定すると共に、この範囲に含まれるキャッシュブロ
ックをデータが連続するように並び替え、RAID3的
なライトバックを可能とする。 VI) キャッシュブロックサイズの自動設定 更に本発明は、装置の使用中に上位装置10からのアク
セス要求で使用されるデータブロックサイズを統計情報
として収集し、この統計情報の平均値を次の装置立ち上
げ時のキャッシュ記憶手段48のキャッシュブロックサ
イズとして自動設定する統計処理手段を設ける。このよ
うに構成した装置は以下のように作用する。図1のディ
スクアレイを対象としたディスクキャッシュ装置にあっ
ては、キャッシュメモリの管理に使用する空スペース管
理テーブルを備える。すなわちキャッシュメモリ上にな
いデータに対してのステージング又はライトが指示され
た場合、コントローラはキャッシュメモリ上の未使用の
空間から新たなキャッシュブロックを割当て、ディスク
装置からのステージングによるデータ、あるいはホスト
コンピュータからのライトデータを受領する。この場
合、キャッシュメモリ上に一定量の空き空間が残るよう
に空スペース管理テーブルを用いて管理される。すなわ
ち残り容量が規定値以下になるような状況が発生する
と、キャッシュメモリ上の有効データの追い出しがスケ
ジュールされる。即ち、ディスク書込が済んだデータは
ハッシュエントリで指定されるLRUテーブルの登録を
抹消する無効化を行う。またディスク書込みが済んでい
ないダーティデータは、ディスクへの書き戻しがスケジ
ュールされる。これにより新たな上位装置からのリード
又はライト要求に対し常にキャッシュメモリ上に空き空
間が用意され、直ちに処理が開始できる。次に、リード
要求に対しキャッシュメモリがミスヒットとなった時の
ディスク装置からのステージングを、キャッシュメモリ
を使用したことによる効果が最大に発揮できるように行
う。これは要求されたホストブロック分のデータをディ
スク装置からキャッシュブロック上にステージングした
後に、後続するホストブロックに対応するデータをディ
スク装置からプリフェッチすることで実現される。この
ようにステージングが済んだホストブロックに引き続く
ブロックに対して先読み動作を行うことで、ホストコン
ピュータからの逐次リード要求に対してキャッシュ効果
を最大限にする処理ができる。この場合のプリフェッチ
量は、RAID0,1,3,5で異なる。まずRAID
3は1つのホストブロックが所定バイト数単位に各ディ
スク装置に分散して格納されており、ステージングが高
速に行われること及び大容量データが要求される場合が
多いことを考慮し、ステージングされた有効ブロックを
含むキャッシュブロックの最後までのホストブロックに
対応するデータをプリフェッチする。RAID5は、基
本的にはリード転送速度はディスク装置の速度以上は出
ず、、ステージング速度がRAID3より遅いこと、ま
た小容量データのリード処理が中心になることから、ス
テージングが済んだブロックに続く次のパリティグルー
プ(パリティ用ディスク装置を同一とするグループ)ま
でとする。ここで、キャッシュブロックサイズとパリテ
ィグループのブロックサイズが同一となるようにストラ
イピングを行えば、キャッシュブロックの最後迄がプリ
フェッチ量となり、RAID3的な高速ステージングが
可能となる。更にプリフェッチ後のキャッシュブロック
上で、連続する有効ブロックに空きがあって分散してい
る場合には、この空ブロックに内部的なステージングを
実行し、キャッシュブロック上の有効データを連続ブロ
ック領域とし、データ管理を容易にする。また本発明の
ディスクキャッシュ装置は、大量シーケンシャルデータ
のステージングに対し、その追い出しを可能ながぎり早
めるようにキャッシュメモリを管理する。一般にディス
クキャッシュ装置は同一データを頻繁にリードすると効
果が出る。ホストコンピュータがキャッシュメモリ上に
存在しない大量データのリード要求を行ったとき、ディ
スク装置からデータをステージングしホストに転送す
る。このデータは一度しか参照されないにも関わらずそ
のままキャッシュメモリ上に残しておくと、キャッシュ
スペースが有効に利用されないことになる。しかし直ち
に無効化することも出来ない。そこで、ホストコンピュ
ータが一定量以上のデータ、例えばキャッシュブロック
100分相当等を要求した時、ステージング後、本来は
LRUテーブルの先頭位置に登録すべきところを、本発
明は、LRUテーブルの終端の近傍に登録する。これに
より比較的短い時間で、大量シーケンシャルデータは擬
似的に最も使用されていない古いデータとなり、キャッ
シュ無効化により追い出すことができる。また本発明
は、オプション指定によりRAID5でディスクアレイ
からパリティデータを含めてキャッシュメモリにステー
ジングすることができる。このようなパリティデータを
含めたステージングにより、ライトバック処理でディス
クアレイからの旧データおよび旧パリティデータのリー
ドが不要となり、RAID5のもつライトペナルティを
軽減させることができる。具体的には、パリティのステ
ージングを行わない場合、ディスク装置の2.5回転分
の時間を必要とするが、パリティをステージングしてい
た場合には、1.5回転分の時間で済む。但し、キャッ
シュメモリの容量はパリティをステージングした分だけ
減少する。さらに本発明のディスクキャッシュ装置は、
RAID5の動作状態で、ライト処理後に行なうディス
クアレイに対するライトバック処理を最適化する。RA
ID5では、パリティグループを構成する全てのディス
ク装置に跨がって連続するデータがキャッシュブロック
上に存在する場合は、RAID3的に連続データからパ
リティを計算し、データおよびパリティの同時転送で並
列的に書込むことができる。一方、パリティグループを
構成する一部のディスク装置のデータしかキャッシュブ
ロック上に存在しない場合は、旧パリティと旧データを
リードしてパリティを計算した後にデータとパリティを
並列的に書込む通常のリードモディファイライトを行
う。この場合、キャッシュブロック上で連続するデータ
の空きが所定値以下、例えば1ディスク装置分であった
場合には、空部分に有効データをステージングして連続
データとした後に、RAID3的な同時更新のライトバ
ックを行う。更に、キャッシュメモリの空きスペースが
規定値以下となってライトバック処理がスケジュールさ
れた場合、LRUテーブルの末尾から一定範囲のキャッ
シュブロックをライトバック対象に指定する。このライ
トバック対象として指定されたキャッシュブロックに対
し、ホストブロックが連続するように並び替えを行い、
RAID3的な高速のライトバック処理を可能とする。
更に本発明のディスクキャッシュ装置は、ユーザの運用
形態に応じて自動的にキャッシュブロック・サイズを設
定することができる。一般にユーザシステムにおいてユ
ーザが必ず設定を必要とるパラメータは、ホストブロッ
クサイズ(ロジカルブロックサイズ)である。キャッシ
ュブロックサイズは、ホストブロックサイズが複数集ま
ったサイズとして設定される。本発明は、最初のシステ
ム立ち上げ時は、ディフォルトのキャッシュブロックサ
イズで初期動作するが、次の立ち上げ時には、ユーザの
使用環境に応じて自動的にキャッシュブロックサイズを
変更する。即ち、ユーザ使用中にキャッシュシステムを
アクセスしたホストブロックサイズの統計を取り、平均
的なホストブロックサイズを求めている。そして次回の
電源投入に伴う立ち上げ時に、前回の運用で求めた新規
なキャッシュブロックサイズでキャッシュシステムを動
作させ、キャッシュブロック・サイズをユーザの判断を
必要とすることなく最適化する。
図である。図1はディスクアレイ装置のRAID形態に
適合した本発明のディスクキャッシュ装置の原理説明図
である。このディスクキャッシュ装置は、複数のディス
ク装置30を設けたディスクアレイ手段28を備える。
ディスクキャッシュ機構としては、ディスクアレイ手段
28に格納されたデータの一部を記憶して上位装置10
からのアクセス要求に対しデータを読み書きするキャッ
シュ記憶手段48を持ち、キャッシュ管理手段50のハ
ッシュテーブル手段60およびLRUテーブル手段62
に基づいてキャッシュ記憶手段48の記憶状態を管理す
る。またリードキャッシュ制御手段46−1とライトキ
ャッシュ制御手段46−2が設けられる。リードキャッ
シュ制御手段46−1は、上位装置10からリード要求
を受けた際に、キャッシュ管理手段50のハッシュテー
ブル手段60を参照し、要求データが存在する場合は、
キャッシュ記憶手段48から読出して上位装置10に転
送する。要求データが存在しない場合は、ディスクアレ
イ手段28からステージングした後に上位装置10に転
送する。ライトキャッシュ制御手段46−2は、上位装
置10からライト要求を受けた際に、キャッシュ管理手
段50のハッシュテーブル手段60に書込を示す情報を
登録すると共に、キャッシュ記憶手段48にデータを書
込み、書込み済みのキャッシュブロックをLRUテーブ
ル手段62の先頭にリンクする。またライトバック制御
手段45が設けられ、予め定めたライトバック条件が成
立した際に、キャッシュ記憶手段48からディスクアレ
イ手段28への記憶が済んでいないデータを抽出して書
戻す。更にディスクアレイ制御手段52が設けられ、リ
ードキャッシュ制御手段46−1およびライトキャッシ
ュ制御手段46−2によるディスクアレイ手段28のア
クセス時に、予め設定されたディスクアレイのRAID
動作モードに従って1又は複数のディスク装置30のア
クセスを制御する。 I) RAID動作モード ディスクアレイ手段28は、並列的に配置された入出力
ポートの各々にディスク装置30を接続して1ランクを
構成し、この1ランク構成のディスク装置群を複数ラン
ク設けている。ディスクアレイ制御手段52は、RAI
D0,RAID1、RAID3又はRAID5に対応し
た第1〜第4動作モードを設定する。RAID0に対応
した第1動作モードの設定時は、特定のランクの中のデ
ィスク装置30を上位装置10で扱う論理デバイスに1
対1に割当て、個々のディスク装置30に読み書きを行
う。RAID1に対応した第2動作モードの設定時は、
特定のランクの中の2台のディスク装置30を1組とし
て上位装置10で扱う論理デバイスに1対1に割当て、
2つのディスク装置30に同一データを書込むと共にい
ずれか一方のディスク装置30からデータを読出すミラ
ーディスクとする。RAID3に対応した第3動作モー
ドの設定時は、特定のランクを構成するn台のディスク
装置30をデータ用とパリティ用とに固定的に割当て、
上位装置10からの書込要求時に、書込データをビット
単位又はバイト単位に(n−1)分割すると共に分割単
位ごとにパリティデータを計算し、(n−1)分割した
データおよびパリティデータをn台のディスク装置30
に並列的に書込む。RAID5に対応した第4動作モー
ドの設定時は、特定のランクを構成するn台のディスク
装置30を1組としてアクセスごとにパリティ位置が変
化するように割当て、上位装置10からの書込要求時
に、書込データを少なくともセクタ単位に分割すると共
に、書込データの書込先ディスク装置30およびパリテ
ィ用ディクス装置から旧データおよび旧パリティデータ
を読出して新パリティを計算し、前記書込データ及び新
パリティデータを前記書込先ディスク装置30およびパ
リティ用ディクス装置に並列的に書込む。 II) キャッシュメモリの空スペースの確保 キャッシュ管理手段50は、キャッシュ記憶手段48の
空き状態を管理する空スペース管理テーブル手段64を
備える。ライトキャッシュ制御手段46−1は上位装置
10に基づくキャッシュ書込処理の完了報告時に空スペ
ース管理テーブル手段64を参照し、空スペースが予め
定めた閾値以下の場合、ディスク書込済みのデータは無
効化してキャッシュ記憶手段48から削除し、且つディ
スク書込みが済んでいないダーティデータはライトバッ
ク手段45による処理動作を準備する。これにより常に
一定量の空スペースがキャッシュ記憶手段48に確保さ
れ、ライト動作が迅速にできる。空スペース管理テーブ
ル手段64には、キャッシュ記憶手段48上の連続する
キャッシュブロックの空ブロック数をエントリ(インデ
ックス)として先頭ブロックの位置情報を格納する。 III) ステージング動作 リードキャッシュ制御手段46−1は、上位装置10か
らのリード要求データがキャッシュ記憶手段48の格納
単位であるキャッシュブロック上に存在しない時、キャ
ッシュブロック上に存在する有効データの状態に応じて
ディスクアレイ手段28から新たなデータのステージン
グを行って連続する一つのデータ領域を生成する。ステ
ージング終了後に、リード要求データに続く有効データ
をディスクアレイ手段28からキャッシュブロック上に
プリフェッチする。このプリフェッチするデータ量は、
RAID1に対応する第3動作モードの設定時は、予め
設定した量の有効データとする。RAID3に対応する
第3動作モードの設定時又はRAID5に対応する第4
動作モードの設定時には、キャッシュブロックの最後ま
での有効データとする。RAID5に対応する第4動作
モードの設定時には、リード要求データを含むパリティ
グループの最後までの有効データとしてもよい。これは
キャッシュブロックサイズとパリティグループのブロッ
クサイズが一致する場合である。RAID5に対応する
第4動作モードの設定時に、リードキャッシュ制御手段
46−1は、オプション指定によりキャッシュ記憶手段
48にパリティデータもステージングし、この場合、ラ
イトバック手段45は、キャッシュ記憶手段48のパリ
ティデータを用いて新たなパリティを計算する。これに
よりライトバックの際の旧データおよび旧パリティのデ
ィスク読出を不要にできる。IV) シーケンシャルデー
タのLRU管理 リードキャッシュ制御手段46−1は、上位装置10か
ら大量シーケンシャルデータのリード要求に対しステー
ジングを行った場合、キャッシュ記憶手段48のLRU
テーブル手段62を参照して末尾から所定量のキャッシ
ュブロックとなる記憶データの一部を無効化すると共
に、大量シーケンシャルデータをLRUテーブル手段6
2の先頭に登録せずに終端側に登録する。これによって
比較的短期間で大量シーケンシャルデータをキャッシュ
記憶手段から追い出すことができる。 V) ライトバック処理 RAID5に相当する第4動作モードの設定時に、ライ
トバック手段45は、キャッシュブロックの中のライト
バックの対象となった有効データをパリティグループ単
位に抽出してパリティデータを算出した後に、抽出した
有効データおよびパリティデータをディスクアレイ手段
28の複数のディスク装置30に並列的に書込む。即
ち、RAID5であってもRAID3と同様に動作させ
てライトバックを効率良く行う。またライトバック手段
45は、キャッシュブロックの中のライトバックの対象
となった有効データのパリティグループに対する不足数
が所定数以下の場合、例えば1ブロック以下の場合、不
足データを対応するディスク装置30から読出した後に
パリティグループ分の有効データおよび計算したパリテ
ィデータをディスクアレイ手段28の複数のディスク装
置30に並列的に書込むことでRAID3的な動作を可
能とする。ライトバック手段45は、所定のライトバッ
ク条件が成立した際に、LRUテーブル手段62内の終
端から所定数のキャッシュブロックをライトバック対象
に指定すると共に、この範囲に含まれるキャッシュブロ
ックをデータが連続するように並び替え、RAID3的
なライトバックを可能とする。 VI) キャッシュブロックサイズの自動設定 更に本発明は、装置の使用中に上位装置10からのアク
セス要求で使用されるデータブロックサイズを統計情報
として収集し、この統計情報の平均値を次の装置立ち上
げ時のキャッシュ記憶手段48のキャッシュブロックサ
イズとして自動設定する統計処理手段を設ける。このよ
うに構成した装置は以下のように作用する。図1のディ
スクアレイを対象としたディスクキャッシュ装置にあっ
ては、キャッシュメモリの管理に使用する空スペース管
理テーブルを備える。すなわちキャッシュメモリ上にな
いデータに対してのステージング又はライトが指示され
た場合、コントローラはキャッシュメモリ上の未使用の
空間から新たなキャッシュブロックを割当て、ディスク
装置からのステージングによるデータ、あるいはホスト
コンピュータからのライトデータを受領する。この場
合、キャッシュメモリ上に一定量の空き空間が残るよう
に空スペース管理テーブルを用いて管理される。すなわ
ち残り容量が規定値以下になるような状況が発生する
と、キャッシュメモリ上の有効データの追い出しがスケ
ジュールされる。即ち、ディスク書込が済んだデータは
ハッシュエントリで指定されるLRUテーブルの登録を
抹消する無効化を行う。またディスク書込みが済んでい
ないダーティデータは、ディスクへの書き戻しがスケジ
ュールされる。これにより新たな上位装置からのリード
又はライト要求に対し常にキャッシュメモリ上に空き空
間が用意され、直ちに処理が開始できる。次に、リード
要求に対しキャッシュメモリがミスヒットとなった時の
ディスク装置からのステージングを、キャッシュメモリ
を使用したことによる効果が最大に発揮できるように行
う。これは要求されたホストブロック分のデータをディ
スク装置からキャッシュブロック上にステージングした
後に、後続するホストブロックに対応するデータをディ
スク装置からプリフェッチすることで実現される。この
ようにステージングが済んだホストブロックに引き続く
ブロックに対して先読み動作を行うことで、ホストコン
ピュータからの逐次リード要求に対してキャッシュ効果
を最大限にする処理ができる。この場合のプリフェッチ
量は、RAID0,1,3,5で異なる。まずRAID
3は1つのホストブロックが所定バイト数単位に各ディ
スク装置に分散して格納されており、ステージングが高
速に行われること及び大容量データが要求される場合が
多いことを考慮し、ステージングされた有効ブロックを
含むキャッシュブロックの最後までのホストブロックに
対応するデータをプリフェッチする。RAID5は、基
本的にはリード転送速度はディスク装置の速度以上は出
ず、、ステージング速度がRAID3より遅いこと、ま
た小容量データのリード処理が中心になることから、ス
テージングが済んだブロックに続く次のパリティグルー
プ(パリティ用ディスク装置を同一とするグループ)ま
でとする。ここで、キャッシュブロックサイズとパリテ
ィグループのブロックサイズが同一となるようにストラ
イピングを行えば、キャッシュブロックの最後迄がプリ
フェッチ量となり、RAID3的な高速ステージングが
可能となる。更にプリフェッチ後のキャッシュブロック
上で、連続する有効ブロックに空きがあって分散してい
る場合には、この空ブロックに内部的なステージングを
実行し、キャッシュブロック上の有効データを連続ブロ
ック領域とし、データ管理を容易にする。また本発明の
ディスクキャッシュ装置は、大量シーケンシャルデータ
のステージングに対し、その追い出しを可能ながぎり早
めるようにキャッシュメモリを管理する。一般にディス
クキャッシュ装置は同一データを頻繁にリードすると効
果が出る。ホストコンピュータがキャッシュメモリ上に
存在しない大量データのリード要求を行ったとき、ディ
スク装置からデータをステージングしホストに転送す
る。このデータは一度しか参照されないにも関わらずそ
のままキャッシュメモリ上に残しておくと、キャッシュ
スペースが有効に利用されないことになる。しかし直ち
に無効化することも出来ない。そこで、ホストコンピュ
ータが一定量以上のデータ、例えばキャッシュブロック
100分相当等を要求した時、ステージング後、本来は
LRUテーブルの先頭位置に登録すべきところを、本発
明は、LRUテーブルの終端の近傍に登録する。これに
より比較的短い時間で、大量シーケンシャルデータは擬
似的に最も使用されていない古いデータとなり、キャッ
シュ無効化により追い出すことができる。また本発明
は、オプション指定によりRAID5でディスクアレイ
からパリティデータを含めてキャッシュメモリにステー
ジングすることができる。このようなパリティデータを
含めたステージングにより、ライトバック処理でディス
クアレイからの旧データおよび旧パリティデータのリー
ドが不要となり、RAID5のもつライトペナルティを
軽減させることができる。具体的には、パリティのステ
ージングを行わない場合、ディスク装置の2.5回転分
の時間を必要とするが、パリティをステージングしてい
た場合には、1.5回転分の時間で済む。但し、キャッ
シュメモリの容量はパリティをステージングした分だけ
減少する。さらに本発明のディスクキャッシュ装置は、
RAID5の動作状態で、ライト処理後に行なうディス
クアレイに対するライトバック処理を最適化する。RA
ID5では、パリティグループを構成する全てのディス
ク装置に跨がって連続するデータがキャッシュブロック
上に存在する場合は、RAID3的に連続データからパ
リティを計算し、データおよびパリティの同時転送で並
列的に書込むことができる。一方、パリティグループを
構成する一部のディスク装置のデータしかキャッシュブ
ロック上に存在しない場合は、旧パリティと旧データを
リードしてパリティを計算した後にデータとパリティを
並列的に書込む通常のリードモディファイライトを行
う。この場合、キャッシュブロック上で連続するデータ
の空きが所定値以下、例えば1ディスク装置分であった
場合には、空部分に有効データをステージングして連続
データとした後に、RAID3的な同時更新のライトバ
ックを行う。更に、キャッシュメモリの空きスペースが
規定値以下となってライトバック処理がスケジュールさ
れた場合、LRUテーブルの末尾から一定範囲のキャッ
シュブロックをライトバック対象に指定する。このライ
トバック対象として指定されたキャッシュブロックに対
し、ホストブロックが連続するように並び替えを行い、
RAID3的な高速のライトバック処理を可能とする。
更に本発明のディスクキャッシュ装置は、ユーザの運用
形態に応じて自動的にキャッシュブロック・サイズを設
定することができる。一般にユーザシステムにおいてユ
ーザが必ず設定を必要とるパラメータは、ホストブロッ
クサイズ(ロジカルブロックサイズ)である。キャッシ
ュブロックサイズは、ホストブロックサイズが複数集ま
ったサイズとして設定される。本発明は、最初のシステ
ム立ち上げ時は、ディフォルトのキャッシュブロックサ
イズで初期動作するが、次の立ち上げ時には、ユーザの
使用環境に応じて自動的にキャッシュブロックサイズを
変更する。即ち、ユーザ使用中にキャッシュシステムを
アクセスしたホストブロックサイズの統計を取り、平均
的なホストブロックサイズを求めている。そして次回の
電源投入に伴う立ち上げ時に、前回の運用で求めた新規
なキャッシュブロックサイズでキャッシュシステムを動
作させ、キャッシュブロック・サイズをユーザの判断を
必要とすることなく最適化する。
【発明の実施の形態】<目次> 1.システムのハードウェア構成 2.本発明の全体機能 3.キャッシュ空スペースの確保 4.RAID動作形態の制御 5.ステージング処理の高速化 6.大量シーケンシャルデータの追出し促進 7.パリティデータのステージング 8.ライトバックデータの並び替えによる最適化 9.ライトバック処理の最適化 10.統計的処理によるキャッシュブロックサイズの自
動設定 1.システムのハードウェア構成 図2は本発明のディスクキャッシュ装置が適用される磁
気ディスク装置を用いた入出力サブシステムのハードウ
ェア構成を示す。上位装置としてのホストコンピュータ
10には少なくとも2つのチャネル装置14−1,14
−2が設けられ、チャネル14−1,14−2に対し、
チャネルインタフェース16を介して2台のコントロー
ラ12−1,12−2を接続している。この実施例で、
チャネルインタフェース16としてはSCSIを使用し
ている。勿論、MBCインタフェース(ブロック・マル
チプレクサ・チャネルインタフェース)を使用してもよ
い。コントローラ12−1,12−2はディスク制御手
段としての機能を有し、キャッシュ機構を内蔵してい
る。コントローラ12−1,12−2のデバイス側は共
用バス18−1,18−2に接続される。共用バス18
−1,18−2はブリッジ回路部20で結合され、コン
トローラ12−1,12−2間でメッセージ、コマンド
等の情報およびデータのやり取りを行うことができる。
更に共用バス18−1,18−2はサブコントローラ2
2−1,22−2が接続され、コントローラ12−1,
12−2の処理機能を分散させて負荷の低減を図ってい
る。共用バス18−1,18−2にはアダプタ24−1
〜24−6,26−1〜26−6のそれぞれを介して、
ディスクアレイ28に設けている複数のディスク装置3
0−00〜30−35が接続される。この実施例でディ
スクアレイ28はコントローラ12−1,12−2より
並列アクセスを受ける6つのポートP0〜P5で並列デ
ィスク群を構成し、この並列ディスク群をランクR0〜
R3で示す4ランク分設けている。具体的には、ランク
R0はポートP0〜P5に対応した6台のディスク装置
30−00〜30−05で構成され、ランクR1はポー
トP0〜P5に対応したディスク装置30−10〜30
−15で構成され、ランクR2はポートP0〜P5に対
応したディスク装置30−20〜30−25で構成さ
れ、更にランクR3はポートP0〜P5に対応したディ
スク装置30−30〜30−35で構成される。このよ
うなディスクアレイを構成するディスク装置の位置はラ
ンク番号Rとポート番号Pアドレスで定義する。例えば
磁気ディスク装置30−00は(R0,P0)で表わす
ことができる。 2.本発明の全体機能 図3は図2に示したディスクアレイを対象としたキャッ
シュ制御の機能を示し、図2のコントローラ12−1側
を代表して示している。コントローラ12−1にはキャ
ッシュ制御部46、不揮発性キャッシュメモリを用いた
キャッシュメモリ48、キャッシュ管理テーブル50お
よびディスクアレイ制御部52が設けられている。キャ
ッシュ制御部46にはリードキャッシュ制御部46−
1,ライトキャッシュ制御部46−2およびライトバッ
ク制御部45の各機能が設けられる。キャッシュ管理テ
ーブル50はハッシュテーブル60,LRUテーブル6
2および空スペース管理テーブル64で構成される。デ
ィスクアレイ制御部52には、この実施例にあってはR
AID0,RAID1,RAID3およびRAIDの形
態をもつ動作機能が予め設けられている。RAIDの動
作形態の指定はホストコンピュータ10からの指示で論
理的に行うことができる。ディスクアレイ28は図2に
示したハードウェア構成に対応するものであり、縦方向
の並びをランクと読んでランク番号R0〜R3で示し、
横方向の並びをポートと読んでポート番号P0〜P5で
示している。図4は図3のキャッシュメモリ48の構造
を示す。キャッシュメモリ48はデータアクセスの最小
単位であるキャッシュブロック54から構成されてい
る。キャッシュブロック54のサイズは、右側に取り出
して示すようにホストコンピュータ10がアクセスする
最小単位であるホストブロック(論理ブロック)の整数
倍となる。図4にあっては、ホストブロック54の4倍
にキャッシュブロック54を設定した場合を示してい
る。このキャッシュブロック54のサイズ設定は通常、
システム側で行われ、ユーザは介在しない。図5はディ
スク装置30のデータブロックに対するホストブロック
との関係を示している。ディスクアレイシステムにおけ
るディスク装置30のフォーマットは固定長ブロック形
式(FBA)を採用しており、デコード長が可変のカウ
ントキーデータ形式(CKD)はデータのストライピン
グやパリティの生成が複雑になることから採用しない。
磁気ディスク30の中に示す両側のインデックスで挟ま
れた各セクタを構成する固定長データブロック58は、
通常、512バイトとなる。ホストブロック56はディ
スク装置30の固定長データブロック58の整数倍とな
り、この例ではホストブロック56はデータブロック5
8の4倍であることから2,048バイトとなる。図6
は図3のキャッシュ管理テーブル50に設けたハッシュ
テーブル60の構造を示す。ハッシュテーブル60はハ
ッシュエントリ66とハッシュエントリで指定される登
録データ68で構成される。ハッシュエントリ66はホ
ストコンピュータ10からのアクセス要求で得られたデ
バイス情報をハッシュパラメータとして計算したエント
リ値(ハッシュアドレス)で指定され、指定されたハッ
シュエントリにキャッシュメモリ上に存在するキャッシ
ュブロックCBの登録状態が登録データ68として図示
のように登録されている。このハッシュテーブル60は
ホストコンピュータから要求のあったホストブロックが
キャッシュメモリ上に存在しているかどうかの判定、即
ちヒット/ミスヒット判定に主に使用される。図7は図
3のキャッシュ管理テーブル50に設けたLRUテーブ
ル62を示している。LRUテーブル62はキャッシュ
メモリ48上に格納されたキャッシュブロックをアクセ
ス順にリンクしている。例えば新たなキャッシュブロッ
クの書込みが行われると、LRUテーブル62の先頭に
最新に使用されたキャッシュブロックとしてリンクす
る。またキャッシュブロック上に存在する任意のキャッ
シュブロックがリード要求に対し読み出された場合に
も、最新に使用されたキャッシュブロックとしてLRU
テーブル62の先頭にリンクされる。このようなLRU
テーブル62はキャッシュメモリ48上に存在するデー
タの追出しと、ディスク装置にキャッシュメモリ上のデ
ータを書き込むライトバック制御に使用される。即ち、
LRUテーブル62の最後にキャッシュメモリ48上に
存在している時間が最も長い、長時間アクセスされてい
ないキャッシュブロックがリンクされていることから、
この最後にリンクされたキャッシュブロックが次に追い
出されるキャッシュブロックの候補となる。また追出し
候補となったキャッシュブロックがディスク装置への書
込みが済んでいないデータ所謂ダーティデータであった
場合には、ディスク装置に書き戻すライトバック処理が
スケジュールされ、ライトバック後に追出しを行うこと
になる。 3.キャッシュ空スペースの確保 図8はキャッシュメモリ48におけるキャッシュブロッ
クの使用状態の一例を示している。キャッシュメモリ4
8において、キャッシュブロックRはライトバックによ
りディスク装置に同一データが格納されているブロック
を示す。キャッシュブロックWはキャッシュメモリ48
上で書込処理は行われたがライトバックが済んでおら
ず、ディスク装置に同一データが存在しないダーティデ
ータが存在するブロックを示す。また「空」は未使用の
キャッシュブロックである。ディスクキャッシュ制御に
あっては、ホストコンピュータ10からキャッシュメモ
リ48上に存在しないデータに対してのリード要求また
はライト要求が指示された場合、未使用の空間から新た
なキャッシュブロックを割り当てて、リード要求に伴っ
てディスク装置30からステージングされたデータある
いはホストコンピュータから受領したライトデータを書
き込む。図8のキャッシュメモリ48における未使用の
空キャッシュブロックの空間は、図9に示す空スペース
管理テーブル64により管理される。空スペース管理テ
ーブル64は空キャッシュブロックの数をエントリ番号
1,2,3,・・・Nとし、各エントリ番号ごとに連続
する空ブロックの先頭のブロック情報を登録している。
なお、テーブル内容は説明の都合上示したもので、実際
には設けられない。ここで図8のキャッシュブロック4
8におけるX方向のアドレスをX=00〜07、Y方向
のアドレスをY=00〜nで表すと、空スペース管理テ
ーブル64における先頭ブロックのアドレスは「CBX
Y」で示される。例えば空スペース管理テーブル64の
空ブロック数1個を示すエントリ1には、図8のキャッ
シュメモリ48におけるブロックアドレスCB0103,C
B0004の2つの空ブロックが登録されている。空ブロッ
ク2個分を示すエントリ番号2については、2個空ブロ
ックが連続した先頭ブロックのアドレスCB0102が登録
されている。このような空スペース管理テーブル64を
設けることで、新たなキャッシュブロックの割当要求に
対してはなるべく物理的に連続したキャッシュブロック
を割り当てている。更に空スペース管理テーブル64で
管理されるキャッシュメモリ48の空スペースは、常に
一定量が残るように管理される。即ち、キャッシュメモ
リ48の空スペースの残り容量が規定値以下になるよう
な状況が発生すると、図7に示したLRUテーブル62
を参照してキャッシュメモリ上の有効データを追い出す
ためのスケジュールが行われる。この追出し対象となっ
たキャッシュブロックにつき、ディスク装置にも同一デ
ータが存在するキャッシュブロックRの部分について
は、図6に示したハッシュテーブル60からの登録を抹
消するキャッシュ無効化を行う。一方、ディスク装置に
データが存在しないダーティデータのキャッシュブロッ
クWの部分については、ディスク装置へのライトバック
がスケジュールされる。このようなキャッシュメモリ4
8の残り容量を規定値以上に保つ処理により、常にキャ
ッシュメモリ上に規定の空き空間が準備されており、従
って新たなデータ書込みを伴うリード要求およびライト
要求に対し、直ちに処理を開始することができる。 4.RAID動作形態の制御 図3に示したディスクアレイ制御部52はホストコンピ
ュータ10からの論理デバイスの指定に基づき、RAI
D0,1,3または5のいずれかの形態のアクセス動作
をディスクアレイ28に対し実行する。図10はランク
数4,ポート数6のディスクアレイ28に対するホスト
コンピュータが指定する論理デバイス番号と、RAID
動作のためのディスク装置の形態を示している。まずラ
ンクR0に設けられた6台のディスク装置の内、ポート
P0〜P4の5台がホストコンピュータ10における論
理デバイス番号0で指定され、RAID3の動作形態を
とる。この内、ポートP0〜P3のディスク装置はデー
タ用であり、ポートP4のディスク装置がパリティ用に
固定的に決められる。尚、ランクR0のポートP5のデ
ィスク装置は予備機として設けられたホットスペアHS
に割り当てられる。次のランクR1のポートP0〜P5
の5台のディスク装置はホストコンピュータ10におけ
る論理デバイス番号1で指定され、RAID5の動作形
態をとる。RAID5の動作形態にあっては、ポートP
0〜P4の中の4台のディスク装置がデータ用、1台が
パリティ用となる。パリティ用のディスク装置はセクタ
位置が替わるごとに循環する。ランクR2のポートP
0,P1およびポートP2,P3に設けられた2台を1
組としたディスク装置は、ホストコンピュータ10にお
ける論理デバイス番号2,3で各々指定され、RAID
1の動作形態、即ち2台のディスク装置に同一データを
格納したミラーディスクとしての動作形態をもつ。更に
ランクR3のポートP0〜P3に設けた4台のディスク
装置はホストコンピュータ10における論理デバイス番
号4で指定され、RAID0の動作形態をとる。即ち、
データをストライピングして並列的に書き込む動作は論
理デバイス番号0のRAID3の動作形態と同じである
が、冗長性を確保するためのパリティディスクを備えて
いない。図11はRAID3の動作形態におけるキャッ
シュブロック,ストライピングおよびディスク格納状態
を示している。まずキャッシュブロック54は、この例
では4つのホストブロックL0〜L3で構成されてい
る。RAID3の動作モードでディスク装置30−00
〜30−04に書き込むために、例えばホストブロック
L0について取り出して示すように、所定数の固定長デ
ータブロックのサイズで16分割したバイトデータL0
−1〜L0−16にストライピングする。このようなス
トライピングデータについて、データ用のディスク装置
30−00〜30−03の台数4台に対応したストライ
ピングデータ単位にパリティを計算する。そして4つの
ストライピングデータに計算したパリティを加えた5つ
のバイトデータを、5台の磁気ディスク装置30−00
〜30−04に並列的に書き込む。図12はRAID5
の動作形態におけるキャッシュブロック,データストラ
イピングおよびディスクアレイ格納状態を示している。
この例では説明を簡単にするため、ディスクアレイ28
に並列書込みされるホストブロック数にキャッシュブロ
ックのサイズを一致させている。キャッシュメモリ48
上には並列書込み可能なデバイス、即ちディスク装置3
0−00〜30−03の4台に対応したホストブロック
数4のサイズをもつキャッシュブロック54−1〜54
−4が設けられ、図示のように連続するキャッシュブロ
ック54−1〜54−4に、同じく連続するホストブロ
ックL0〜L15が格納されていたとする。このような
場合には、例えばキャッシュブロック54−1を取り出
し、キャッシュブロック54−1を構成する4つのホス
トブロックL0〜L3からパリティを計算し、ホストブ
ロックL0〜L3にパリティP1を加えた5つのデータ
を並列的にディスク装置30−00〜30−04に書き
込む。通常、RAID5の動作形態にあっては、データ
長の短いホストブロック1個単位のアクセスが行われ
る。この通常のRAID5の動作形態における書込み
は、例えば図示のようにディスクアレイ28側にホスト
ブロックL0〜L3およびパリティP1が格納されてい
る状態で、新たに論理ブロックL0のみを書き込む場合
には、次のようなリードモディファイライトを実行す
る。まずディスク装置30−00および30−04によ
り旧ブロックL0と旧パリティP1を読み出す。これを
(L0)old ,(P1)old とする。続いて中間パリテ
ィ(P1)int を (P1)int =(P1)old +(L0)old として、排他論理和を求める。続いて中間パリティ(P
1)int と新ブロック(L0)new から新パリティ(P
1)new を (P1)new =(P1)int +(L1)new として求める。新ブロック(L0)new と計算で求めた
新パリティ(P1)newをディスク装置30−00,3
0−04に対し並列的に書き込む。このようなRAID
5の動作形態における並列書込み可能なディスク台数以
下のホストブロックの書込みについては、旧パリティと
旧データの読出しを伴うことからディスク2.5回転分
の処理時間がかかり、これがライトペナルティとなる。
本発明にあっては、RAID5の動作形態にあっても可
能な限りRAID3の動作形態によるディスクアレイに
対するライトアクセスを行って、ライトペナルティの低
減を図る。図13はRAID1の動作形態におけるキャ
ッシュブロックとディスク格納状態を示している。RA
ID1は2台のディスク装置30−20,30−21に
同一データを書き込むミラーディスクとしての使い方で
あり、キャッシュブロック54からホストブロックL0
〜L3ごとに順次取り出してディスク装置30−20,
30−21のそれぞれに並列的に書き込む。図14はパ
リティディスクをもたないRAID0の動作形態のキャ
ッシュブロック,ストライピングおよびディスク格納状
態を示す。尚、図12のRAID5の場合と同様、説明
を簡単にするため、4台の磁気ディスク装置30−30
〜30−34に並列書込みする論理ブロック数4に一致
するキャッシュブロックのサイズとした場合を例にとっ
ている。このRAID0の動作形態では、キャッシュブ
ロック54を構成する4つのホストブロックL0〜L3
を、4台のディスク装置30−30〜30−34のそれ
ぞれに割り当てて並列的に書き込み、この場合にパリテ
ィディスクはもたないことから、パリティの計算は行わ
ない。 5.ステージング処理の高速化 ディスクキャッシュ制御にあっては、ホストコンピュー
タ10からのリード要求に対しキャッシュメモリ48上
に要求データが存在せずにミスヒットとなった場合に
は、ディスク装置から要求データを読み出してキャッシ
ュメモリ上に書き込むステージングを行う。本発明にあ
っては、RAID0,1,3および5のいずれの動作形
態にあっても、ディスクアレイ28の同時アクセス可能
な全ディスク装置からの並列リードによるステージング
で要求データのキャッシュブロックに対するステージン
グを高速で行う。図15はRAID5の動作形態を例に
とった本発明のステージングを示している。いま16ホ
ストブロックのサイズをもつキャッシュブロック54−
1がキャッシュメモリ48上に展開されており、このキ
ャッシュブロック54−1のうちの最後の2つのホスト
ブロックL14,L15のみが有効データであり、また
ホストブロックL14,L15はディスク装置への書込
みが済んでいないダーティデータであったとする。ここ
で、ホストコンピュータ10より論理ブロックL4〜L
7を指定したリード要求がホストコンピュータから行
われたとする。このリード要求に対し、キャッシュメモ
リ上に要求データが存在しないことからミスヒットとな
り、ステージングを行う。ステージングはキャッシュブ
ロック54−2に示すように、ディスクアレイ28のデ
ィスク装置30−10〜30−12,30−14の4台
をアクセスしてホストブロックL4〜L7をリードして
キャッシュブロック54−2上に書き込み、ステージン
グが完了するとヒット状態となることから、要求データ
をホストコンピュータ10に転送する。このようなステ
ージングが終了した後に本発明にあっては、それ以降の
アクセス要求に対するキャッシュメモリのヒット効率を
向上してキャッシュ効果を最大限に発揮するため、プリ
フェッチ動作を行う。即ち、キャッシュブロック54−
3に示すように、ステージングが済んだホストブロック
L4〜L7に後続する並列アクセス可能なディスク数4
に一致する4つのホストブロックL8〜L11をディス
ク装置30−10,30−11,30−13,30−1
4から読み出してプリフェッチする。RAID5にあっ
ては、基本的にはリード転送速度はデバイス速度以上は
出ることがなく、またステージング速度がRAID3よ
り遅く、少量データのリード処理が中心になることか
ら、プリフェッチ量は次のパリティグループまでとす
る。ここで、パリティグループとはパリティディスクを
同一とする各ディスク装置のデータブロックを意味す
る。例えば、図15(E)におけるデータブロックL0
〜L3,L4〜L7などのことを意味する。このように
RAID5にあっては、プリフェッチ量は次のパリティ
グループまでとなるが、キャッシュブロックサイズをパ
リティグループのデータブロックサイズと同一になるよ
うにストライピングを行えば、即ち図12に示したスト
ライピングを行えばキャッシュブロックの中にステージ
ングしたデータブロックに続くキャッシュブロックの最
後までのデータブロックがプリフェッチ量となり、この
プリフェッチをステージングに含めてRAID3的なス
テージングが可能となる。一方、RAID3では図11
に示したように、1つのホストブロックが各ディスク装
置に分散して格納されており、ステージングが高速にで
きること、および大容量のデータが要求される場合が多
いことを考慮し、アクセス要求が行われたステージング
データを含むキャッシュブロックの最後までのデータブ
ロックをプリフェッチする。再び図15を参照するに、
キャッシュブロック54−3に召すステージングしたホ
ストブロックL4〜L7に続くブロックL8〜L11を
プリフェッチした状態にあっても、キャッシュブロック
上の有効データは2箇所に分散している。このようなス
テージングに伴うプリフェッチ後の状態でキャッシュブ
ロック上の有効データが分散している場合には、キャッ
シュブロック54−4に示すようにホストブロックL1
2,L13に対応するデータブロックをディスクアレイ
28のディスク装置30−12,30−13から読み出
して内部的にステージングし、キャッシュブロック上で
有効データを連続データとする。このようにキャッシュ
ブロック上の有効データを連続データとすることで、キ
ャッシュブロック上での以後のデータ管理を容易にす
る。例えば、キャッシュブロック上で有効データが複数
箇所に分散して存在していたとすると、最終的には分散
した各ホストブロックに対応したマップ管理が要求され
る。これに対し、キャッシュブロック上に連続した領域
を有効データとすることで、有効データの一部が書き替
えられた際のライトバック処理において、RAID3的
な並列書込みによる高速化を図ることができる。 6.大量シーケンシャルデータの追出し促進 一般にキャッシュ制御にあっては、キャッシュメモリ4
8上の同一データを頻繁にリードするとキャッシュ効果
を発揮することができる。これに対し、ホストコンピュ
ータ10がキャッシュメモリ48上に存在しない大量デ
ータのリード要求を行ったとき、ミスヒットに伴ってデ
ィスクアレイ28から要求された大量データをキャッシ
ュメモリ48上にステージングしてホストコンピュータ
10に転送するようになる。このようにステージングさ
れた大量のデータがその後、参照されないにも関わら
ず、そのままキャッシュメモリ48上に残されている
と、キャッシュスペースが有効に利用されず、ヒット効
率が低下することになる。しかしながらLRUテーブル
62を用いたキャッシュメモリ48の管理では、一度し
か参照されなかった大量データであっても直ちに無効化
することはできない。そこで本発明のディスクキャッシ
ュ装置にあっては、ホストコンピュータ10からの一定
量を越えるデータのリード要求に伴って大量データのス
テージングが行われた場合には、本来、LRUテーブル
62の先頭にステージングされたキャッシュブロックを
登録すべきところ、LRUテーブル62の終端側に近い
位置にステージングされた大量データのキャッシュブロ
ックを登録する。図17のフローチャートは大量データ
のステージング処理を示す。まずステップS1でホスト
コンピュータ10からのリード要求に伴うミスヒットで
ディスクアレイ28側からのステージングが行われたな
らば、ステップS2で、ステージングされたデータ量が
所定値例えば100キャッシュブロック以上か否かチェ
ックする。100キャッシュブロック未満であれば通常
通り、ステップS3でLRUテーブル62の先頭に登録
する。一方、100キャッシュブロック以上であった場
合には、ステップS4でLRUテーブル62の終端側の
近くに登録する。このようなステージングされた大量デ
ータについて、LRUテーブル62の終端側に強制的に
登録することで、一度しか参照されないステージングさ
れた大量データは比較的短い時間の経過後にハッシュテ
ーブル60から削除されて追い出されることになり、キ
ャッシュスペースが不要に占有されてしまうことを防止
できる。 7.パリティデータのステージング 本発明のディスクキャッシュ装置におけるRAID5の
動作状態において、原則的にはキャッシュメモリ48上
にパリティデータのステージングは行っていない。しか
しながらRAID5の動作状態にあっては、ディスクア
レイに対する書込時に新パリティを計算するためにディ
スクアレイ28から旧データおよび旧パリティを読み出
す処理を必要とするため、処理時間が長くなるライトペ
ナルティをもつ。そこで本発明のステージング処理の他
の実施例にあっては、オプション指定によりパリティデ
ータのステージングを可能とする。図18のフローチャ
ートはパリティデータのステージングを可能とする本発
明のステージング処理の他の実施例を示す。このステー
ジング処理にあっては、ホストコンピュータ10からの
リード要求に対するキャッシュメモリ48のミスヒット
でステージング処理が起動されると、まずステップS1
で動作形態がRAID5であり且つパリティデータのス
テージングがオプション指定されているか否かチェック
する。パリティデータのステージングを行わせるオプシ
ョン指定は、ホストコンピュータ10からのコマンドあ
るいはメンテナンス端末からの指示によりセットされ
る。ステップS1でパリティデータのステージングを示
すオプション指定が有効であるとステップS2に進み、
パリティデータを含むデータをディスクアレイ28から
キャッシュメモリ48上にステージングする。ステップ
S1でオプション指定がなければステップS3に進み、
通常のパリティを含まないデータのディスクアレイ28
からのステージングを行う。図19はパリティデータを
ステージングしない場合とステージングした場合のライ
トバック処理を対比して示す。図19(A)はパリティ
データをステージングしていない場合であり、キャッシ
ュブロック54−10のホストブロックL1のみが有効
データであったとする。このキャッシュブロック54−
10の有効データであるホストブロックL1をディスク
アレイ28にライトバックする場合には、図12のRA
ID5におけるディスク書込みに示したようにディスク
装置30−11から対応する旧データを読み出し、また
ディスク装置30−14から旧パリティを読み出し、中
間パリティを生成した後に新データから新パリティを作
成し、最終的にディスク装置30−11,30−14に
新データと新パリティを書き込む処理を必要とする。こ
のため、キャッシュブロック54−10上の有効ブロッ
クL1をディスクアレイ28に書き込むためにはディス
ク装置の2.5回転分の時間が必要となる。これに対し
図19(B)に示すキャッシュブロック54−10上に
パリティデータP1をステージングしていた場合には、
有効ブロックL1の更新に際しキャッシュブロック54
−20上で新たなパリティデータP1を計算でき、ディ
スクアレイ28側をリードアクセスすることなく直接、
更新ブロックL1と新パリティデータP1をディスク装
置30−11,30−14に書き込むことができる。こ
のため、ライトバック処理はディスク装置1.5回転分
の時間で済み、通常のRAID5の動作状態のディスク
書込み処理におけるライトペナルティは発生しない。勿
論、パリティデータをキャッシュメモリ48にステージ
ングした場合には、その分だけキャッシュメモリ48の
有効利用領域が低減することになる。 8.ライトバックデータの並び替えによる最適化 図9の空スペース管理テーブル64で説明したように、
キャッシュメモリ48上の空スペースが一定値以下にな
った場合は、図7に示すLRUテーブル62を参照し、
使用されずに最も長い期間格納されているキャッシュブ
ロックを追い出すためのライトバック処理がスケジュー
ルされる。図20はライトバック処理がスケジュールさ
れる際のキャッシュブロック62の一例を示している。
通常のキャッシュ制御にあっては、LRUテーブル62
の最後にリンクされているキャッシュブロックCB−f
をライトバック対象とするスケジュールを行う。これに
対し本発明のキャッシュ制御にあっては、ライトバック
条件が成立したとき、即ちキャッシュメモリ48の空ブ
ロック数が規定の閾値以下となったときには、LRUテ
ーブル62の最後のキャッシュブロックから所定ブロッ
ク数αだけ遡った範囲をライトバック対象範囲68とし
て指定するスケジュールを行う。この場合にはキャッシ
ュブロックCB−a〜CB−fの6つがライトバック対
象範囲68に含まれるように指定される。ここでライト
バック対象範囲68に含まれる斜線で示すキャッシュブ
ロックCB−b,CB−e,CB−fの3つが、図21
に示すホストブロックを含んでいたとする。即ち、キャ
ッシュブロックCB−bはホストブロックL4〜L7の
対応データを含み、キャッシュブロックCB−eはホス
トブロックL8〜L11の対応データを含み、キャッシ
ュブロックCB−fはホストブロックL0〜L3の対応
データを含んでいたとする。このようなホストブロック
対応データを見ると、キャッシュブロックCB−f,C
B−b,CB−eの順番に並び替えることで、ホストブ
ロックL0〜L11の対応データを連続データとするこ
とができる。ホストブロック対応データを連続データと
するライトバック対象範囲68に含まれるキャッシュブ
ロックの並び替えを行った場合には、ディスクアレイ2
8に各キャッシュブロックをライトバックする際にRA
ID3的な並列書込みを高速で実行できる。即ち、キャ
ッシュブロックCB−f,CB−b,CB−eに含まれ
る4つの論理ブロック対応データのそれぞれからパリテ
ィP1,P2,P3を計算し、順番に4つのデータとパ
リティを並列的にディスクアレイ28のディスク装置3
0−11〜30−14に連続的に書き込む高速ライトバ
ック処理が達成できる。このようなライトバック対象範
囲68に含まれるキャッシュブロックの論理ブロック対
応データを連続するような並び替えによるライトバック
が完了すると、図20に示したLRUテーブル62は図
22の状態となる。図23のフローチャートはキャッシ
ュブロックの並び替えを伴うライトバックのスケジュー
ルが行われるライト処理を示し、図16のステップS1
3に示したライト処理の詳細を示すことになる。まずス
テップS1でホストコンピュータ10からのライト要求
に伴って、ライトキャッシュ制御部46−2でキャッシ
ュメモリ48上に確保された8ブロックに対しライトデ
ータを書き込む。ライトデータの書込みが済むと、ステ
ップS2で図9に示した空スペース管理テーブル64を
参照してキャッシュメモリ48の空ブロック数を求め、
空ブロック数が予め定めた閾値以下か否かチェックす
る。閾値以下であればステップS3に進み、図20に示
したようにLRUテーブル62の末尾から遡った所定数
αのブロックを含む範囲をライトバック対象範囲68と
して指定する。ライトバック対象範囲68に含まれるキ
ャッシュブロックがディスクアレイ28への書込みが済
んでいないライトバック対象となるダーティデータか、
既にディスクアレイ28への書込みが済んでいるライト
バック対象から除外される非ダーティデータか否かチェ
ックする。もしライトバック対象範囲68に非ダーティ
データのキャッシュブロックが含まれていれば、ステッ
プS5で非ダーティデータのキャッシュブロックをハッ
シュテーブル60から削除してキャッシュ無効化を行
う。続いてステップS6でライトバック対象となるダー
ティデータのキャッシュブロックの有無をチェックし、
ダーティデータのキャッシュブロックが存在すると、ス
テップS7でライトバックをスケジュールする。このラ
イトバックのスケジュールにあっては、図20,図21
に示したようにライトバック対象範囲68に含まれるキ
ャッシュブロックについて、もし可能であればホストブ
ロックに対応するデータが連続データとなるようにキャ
ッシュブロックの並び替えを行った後にライトバック対
象としてスケジュールする。尚、ライトバック処理のス
ケジュールは図23に示すライト処理の完了時のみなら
ず、図16に示したリード要求でキャッシュメモリがミ
スヒットとなったときのディスクアレイからのステージ
ング終了時についても同様にスケジュールされることに
なる。 9.ライトバック処理の最適化 図24はRAID5の動作形態におけるライトバック処
理の一例を示している。ここでキャッシュブロック54
のサイズは16ホストブロックであり、ホストブロック
L0〜L15に対応するデータを格納することができ、
この内、ホストブロックL2〜L9に対応するデータが
有効データとして書き込まれ、ライトバック対象データ
75となっている。一方、ディスクアレイ28側はディ
スク装置30−10〜30−14のそれぞれは1ホスト
ブロックのサイズに相当するセクタ単位にデータを読み
書きしており、同時並列的には4つのホストブロックを
アクセスすることができる。キャッシュブロック54の
ライトバック対象データ75に含まれるホストブロック
L2〜L9対応データについて、ディスクアレイ28の
ストライピング状態に対応し、先頭のホストブロックL
2,L3と末尾のホストブロックL8,L9の各対応デ
ータについてRAID5モードによる書込みを行う。即
ち、対応する旧データおよびパリティデータをディスク
アレイ28から読み出して、書込みを行う新データを用
いて新パリティを計算した後に並列的に書き込むリード
モディファイライトを行う。これに対し、ディスクアレ
イ28の並列書込み可能な4台のディスク装置に対応す
る連続する4つのホストブロックL4〜L7の対応デー
タについては、RAID3モードによる書込みを行う。
即ち、ホストブロックL4〜L7の対応データからパリ
ティP2を計算し、直接ディスクアレイ28に書き込
む。このようなRAID5モードにおけるライトバック
処理について、通常のRAID5モードに書込みに加え
てRAID3モードによる高速書込みを組み合わせるこ
とで、最適化されたライトバック処理を行うことができ
る。図25はRAID5の動作状態におけるライトバッ
ク処理において、ライトバック対象データ75の中の連
続するホストブロック対応データが、ディスクアレイ2
8側の並列書込みディスク台数より僅かに少なかった場
合の最適化処理を示している。いまキャッシュブロック
54の中にライトバック対象データ75としてホストブ
ロックL1〜L10の対応データが格納されていたとす
る。中央のホストブロックL4〜L7の4つのデータに
ついてはRAID3的な並列アクセスができる。これに
対し、左側のホストブロックL1〜L3対応データおよ
び右側のホストブロックL8〜L11対応データは並列
アクセスディスク台数4台に対し1つホストブロック対
応データが少ない。このような場合のライトバックにあ
っては、キャッシュブロック54−2に示すようにホス
トブロックL0対応データをディスクアレイ28のディ
スク装置30−10からに示すようにリードしてステ
ージングし、またホストブロックL11の対応データに
ついてもディスクアレイ28のディスク装置30−14
によりに示すようにリードしてステージングし、並列
アクセス可能なディスク台数の整数倍となるホストブロ
ック数の連続データとする。このようなホストブロック
L0〜L11の連続対応データがキャッシュブロック5
4−2に上に得られれば、ホストブロックL0〜L3,
ホストブロックL4〜L7,ホストブロックL8〜L1
1の4つずつにストライピングして、それぞれパリティ
P1,P2,P3を求めた後、に示すように並列
的にディスクアレイ28に書き込むことで、RAID3
的な高速ライトバック処理を行うことができる。図26
のフローチャートは図24,図25に示したRAID5
のライトバック処理を含む本発明のキャッシュ制御にお
ける全体的なライトバック処理を示す。まずステップS
1でコントローラ12がアイドル状態か否かチェック
し、アイドル状態にないときにはステップS14で要求
事項の処理、即ち通常の処理を行っている。アイドル状
態が得られるとステップS2に進み、ライトバック処理
がスケジュール済み、即ちライトバック条件が成立して
いればステップS3に進み、RAIDモードをチェック
する。RAID5モードであればステップS4に進み、
図20,図21に示したようなライトバック対象範囲に
おけるキャッシュブロックの連続ブロックへの並び替え
を行う。なお、この連続ブロックへの並び替えは図23
に示したライト処理の段階におけるスケジューリングと
して行っておいてもよい。続いてライトバック対象とな
った最初のキャッシュブロックを参照し、ディスクアレ
イ28側の並列書込み可能なディスク台数に対応した全
台数分のホストブロック対応データが有効か否かチェッ
クする。もし全デバイス分のホストブロック対応データ
が有効であればステップS6に進み、RAID3モード
による書込処理を実行する。即ち、全デバイス分の対応
データからパリティを計算した後、データおよびパリテ
ィを並列的に同時書込みする。一方、全デバイス分のキ
ャッシュブロック対応データが有効でなかった場合に
は、ステップS7で不足データは1ディスク分か否かチ
ェックする。不足データが1ディスク分であった場合に
は、ステップS8で、図25に示したように不足ブロッ
クに対応するデータをディスクアレイからステージング
し、ステージング後にステップS6に進んでRAIDモ
ードでの書込処理を行う。ステップS7で不足分が2デ
ィスク分以上であった場合にはステップS9に進み、R
AID5モードでの書込処理を行う。即ち、旧データお
よび旧パリティをリードして中間パリティを計算し、更
に新データから新パリティを計算し、新データおよび新
パリティを並列的にディスクアレイに対し同時書込みす
る。ステップS6またはステップS9の書込処理が済む
と、ステップS10でライトバック対象となっているキ
ャッシュブロックの全ブロックの処理が終了したか否か
チェックし、終了していなければステップS4に戻り、
同様な処理を繰り返し、終了していればステップS1で
再び待機状態となる。一方、ステップS3でRAID3
の動作モードが判別された場合にはステップS11に進
み、図11に示したストライピングおよび書込みとなる
RAID3モードの書込処理を行う。またステップS3
でRAID0モードが判別された場合には、ステップS
13で、図13に示すRAID0モードの書込みを行
う。更にステップS3でRAID1モードが判別された
場合にはステップS13に進み、図14に示したパリテ
ィディスクをもたないRAID1モードの書込みを行
う。 10.統計的処理によるキャッシュブロックサイズの自
動設定 本発明を含めたディスクキャッシュ装置を備えた計算機
システムにおいて、ユーザが必ず設定を必要とするパラ
メータはホストブロックサイズ即ち論理ブロックサイズ
である。これに対し、キャッシュブロックサイズの設定
は通常、システム側で行っている。図4に示したよう
に、キャッシュブロック54のサイズはホストブロック
56が複数個集まったブロックとして構成される。この
ような従来の固定的なキャッシュブロックサイズのシス
テム側での設定に対し、本発明のディスクキャッシュ装
置にあっては、最初のシステム立上げ時はシステム側が
固定的にキャッシュブロックサイズを設定するが、次回
以降の立上げ時にあってはユーザの使用環境に応じて自
動的に最適なキャッシュブロックサイズに変更される。
図27のフローチャートは最適化されたキャッシュブロ
ックサイズを自動設定するための統計処理を示してい
る。最初のシステム立上げ時にあっては、システム側に
固定的に設定したキャッシュブロックサイズによるキャ
ッシュ制御が行われており、この状態でホストアクセス
をステップS1で判別すると、ステップS2でリード要
求またはライト要求が行われたホストブロックサイズを
記録する。ホストブロックサイズの記録処理はステップ
S5で規定周期に達するまで繰り返し行われている。ス
テップS3で規定周期例えば1カ月程度の時間に達する
とステップS4に進み、ステップS2で記録されたホス
トブロックサイズから平均ブロックサイズを計算する。
続いてステップS5で最適ブロックサイズの設定値を、
ステップS4で求めた平均ブロックサイズに更新する。
この最適キャッシュブロックサイズの更新が済むと、ス
テップS2で記録されたホストブロックサイズはメモリ
からクリアされ、次の周期の記録に入る。この結果、シ
ステムの運用中に統計的処理で得られたキャッシュブロ
ックサイズが最適ブロックサイズとして保持されること
になる。そして一旦、システムの運用を止め、次に電源
投入によるシステム立上げを行うと、図27の統計処理
で求められている最適キャッシュブロックサイズに自動
的にキャッシュブロックサイズを変更してキャッシュ制
御を動作する。図28はホストブロックサイズに対し最
適なキャッシュブロックサイズの一例を示している。い
ま並列アクセスされるディスクアレイ28はディスク装
置30−10〜30−13の4台であり、それぞれのレ
コードにおける1セクタを構成するデータブロック58
は512バイトであったとする。この512バイトのデ
ータブロック58に対し、ホストブロックサイズが2倍
の1,024バイトであったとすると、例えばホストブ
ロックL0は対応するディスク装置30−10の2セク
タ分に跨がる。キャッシュブロック54は4台の並列ア
クセス可能なディスク装置30−10〜30−13のブ
ロックデータサイズに一致するサイズをもつことがRA
ID3的なアクセスを可能とするために最適である。従
って、キャッシュブロック54は4つのホストブロック
L0〜L3に対応し、1つのホストブロックは1,02
4バイトとなることから、キャッシュブロックサイズは
4,096バイトとすればよい。尚、上記の実施例は6
ポート,4ランクのディスクアレイを例にとるものであ
ったが、ディスクアレイのポート数およびランク数は必
要に応じて適宜に定めることができる。更に本発明にあ
っては、ホストコンピュータに対し2系統のキャッシュ
メモリを有するコントローラを設けた場合を例にとって
いるが、1系統のコントローラにキャッシュメモリを設
けたものであったもよいことは勿論である。更に本発明
は実施例に示された数値による限定は受けない。
動設定 1.システムのハードウェア構成 図2は本発明のディスクキャッシュ装置が適用される磁
気ディスク装置を用いた入出力サブシステムのハードウ
ェア構成を示す。上位装置としてのホストコンピュータ
10には少なくとも2つのチャネル装置14−1,14
−2が設けられ、チャネル14−1,14−2に対し、
チャネルインタフェース16を介して2台のコントロー
ラ12−1,12−2を接続している。この実施例で、
チャネルインタフェース16としてはSCSIを使用し
ている。勿論、MBCインタフェース(ブロック・マル
チプレクサ・チャネルインタフェース)を使用してもよ
い。コントローラ12−1,12−2はディスク制御手
段としての機能を有し、キャッシュ機構を内蔵してい
る。コントローラ12−1,12−2のデバイス側は共
用バス18−1,18−2に接続される。共用バス18
−1,18−2はブリッジ回路部20で結合され、コン
トローラ12−1,12−2間でメッセージ、コマンド
等の情報およびデータのやり取りを行うことができる。
更に共用バス18−1,18−2はサブコントローラ2
2−1,22−2が接続され、コントローラ12−1,
12−2の処理機能を分散させて負荷の低減を図ってい
る。共用バス18−1,18−2にはアダプタ24−1
〜24−6,26−1〜26−6のそれぞれを介して、
ディスクアレイ28に設けている複数のディスク装置3
0−00〜30−35が接続される。この実施例でディ
スクアレイ28はコントローラ12−1,12−2より
並列アクセスを受ける6つのポートP0〜P5で並列デ
ィスク群を構成し、この並列ディスク群をランクR0〜
R3で示す4ランク分設けている。具体的には、ランク
R0はポートP0〜P5に対応した6台のディスク装置
30−00〜30−05で構成され、ランクR1はポー
トP0〜P5に対応したディスク装置30−10〜30
−15で構成され、ランクR2はポートP0〜P5に対
応したディスク装置30−20〜30−25で構成さ
れ、更にランクR3はポートP0〜P5に対応したディ
スク装置30−30〜30−35で構成される。このよ
うなディスクアレイを構成するディスク装置の位置はラ
ンク番号Rとポート番号Pアドレスで定義する。例えば
磁気ディスク装置30−00は(R0,P0)で表わす
ことができる。 2.本発明の全体機能 図3は図2に示したディスクアレイを対象としたキャッ
シュ制御の機能を示し、図2のコントローラ12−1側
を代表して示している。コントローラ12−1にはキャ
ッシュ制御部46、不揮発性キャッシュメモリを用いた
キャッシュメモリ48、キャッシュ管理テーブル50お
よびディスクアレイ制御部52が設けられている。キャ
ッシュ制御部46にはリードキャッシュ制御部46−
1,ライトキャッシュ制御部46−2およびライトバッ
ク制御部45の各機能が設けられる。キャッシュ管理テ
ーブル50はハッシュテーブル60,LRUテーブル6
2および空スペース管理テーブル64で構成される。デ
ィスクアレイ制御部52には、この実施例にあってはR
AID0,RAID1,RAID3およびRAIDの形
態をもつ動作機能が予め設けられている。RAIDの動
作形態の指定はホストコンピュータ10からの指示で論
理的に行うことができる。ディスクアレイ28は図2に
示したハードウェア構成に対応するものであり、縦方向
の並びをランクと読んでランク番号R0〜R3で示し、
横方向の並びをポートと読んでポート番号P0〜P5で
示している。図4は図3のキャッシュメモリ48の構造
を示す。キャッシュメモリ48はデータアクセスの最小
単位であるキャッシュブロック54から構成されてい
る。キャッシュブロック54のサイズは、右側に取り出
して示すようにホストコンピュータ10がアクセスする
最小単位であるホストブロック(論理ブロック)の整数
倍となる。図4にあっては、ホストブロック54の4倍
にキャッシュブロック54を設定した場合を示してい
る。このキャッシュブロック54のサイズ設定は通常、
システム側で行われ、ユーザは介在しない。図5はディ
スク装置30のデータブロックに対するホストブロック
との関係を示している。ディスクアレイシステムにおけ
るディスク装置30のフォーマットは固定長ブロック形
式(FBA)を採用しており、デコード長が可変のカウ
ントキーデータ形式(CKD)はデータのストライピン
グやパリティの生成が複雑になることから採用しない。
磁気ディスク30の中に示す両側のインデックスで挟ま
れた各セクタを構成する固定長データブロック58は、
通常、512バイトとなる。ホストブロック56はディ
スク装置30の固定長データブロック58の整数倍とな
り、この例ではホストブロック56はデータブロック5
8の4倍であることから2,048バイトとなる。図6
は図3のキャッシュ管理テーブル50に設けたハッシュ
テーブル60の構造を示す。ハッシュテーブル60はハ
ッシュエントリ66とハッシュエントリで指定される登
録データ68で構成される。ハッシュエントリ66はホ
ストコンピュータ10からのアクセス要求で得られたデ
バイス情報をハッシュパラメータとして計算したエント
リ値(ハッシュアドレス)で指定され、指定されたハッ
シュエントリにキャッシュメモリ上に存在するキャッシ
ュブロックCBの登録状態が登録データ68として図示
のように登録されている。このハッシュテーブル60は
ホストコンピュータから要求のあったホストブロックが
キャッシュメモリ上に存在しているかどうかの判定、即
ちヒット/ミスヒット判定に主に使用される。図7は図
3のキャッシュ管理テーブル50に設けたLRUテーブ
ル62を示している。LRUテーブル62はキャッシュ
メモリ48上に格納されたキャッシュブロックをアクセ
ス順にリンクしている。例えば新たなキャッシュブロッ
クの書込みが行われると、LRUテーブル62の先頭に
最新に使用されたキャッシュブロックとしてリンクす
る。またキャッシュブロック上に存在する任意のキャッ
シュブロックがリード要求に対し読み出された場合に
も、最新に使用されたキャッシュブロックとしてLRU
テーブル62の先頭にリンクされる。このようなLRU
テーブル62はキャッシュメモリ48上に存在するデー
タの追出しと、ディスク装置にキャッシュメモリ上のデ
ータを書き込むライトバック制御に使用される。即ち、
LRUテーブル62の最後にキャッシュメモリ48上に
存在している時間が最も長い、長時間アクセスされてい
ないキャッシュブロックがリンクされていることから、
この最後にリンクされたキャッシュブロックが次に追い
出されるキャッシュブロックの候補となる。また追出し
候補となったキャッシュブロックがディスク装置への書
込みが済んでいないデータ所謂ダーティデータであった
場合には、ディスク装置に書き戻すライトバック処理が
スケジュールされ、ライトバック後に追出しを行うこと
になる。 3.キャッシュ空スペースの確保 図8はキャッシュメモリ48におけるキャッシュブロッ
クの使用状態の一例を示している。キャッシュメモリ4
8において、キャッシュブロックRはライトバックによ
りディスク装置に同一データが格納されているブロック
を示す。キャッシュブロックWはキャッシュメモリ48
上で書込処理は行われたがライトバックが済んでおら
ず、ディスク装置に同一データが存在しないダーティデ
ータが存在するブロックを示す。また「空」は未使用の
キャッシュブロックである。ディスクキャッシュ制御に
あっては、ホストコンピュータ10からキャッシュメモ
リ48上に存在しないデータに対してのリード要求また
はライト要求が指示された場合、未使用の空間から新た
なキャッシュブロックを割り当てて、リード要求に伴っ
てディスク装置30からステージングされたデータある
いはホストコンピュータから受領したライトデータを書
き込む。図8のキャッシュメモリ48における未使用の
空キャッシュブロックの空間は、図9に示す空スペース
管理テーブル64により管理される。空スペース管理テ
ーブル64は空キャッシュブロックの数をエントリ番号
1,2,3,・・・Nとし、各エントリ番号ごとに連続
する空ブロックの先頭のブロック情報を登録している。
なお、テーブル内容は説明の都合上示したもので、実際
には設けられない。ここで図8のキャッシュブロック4
8におけるX方向のアドレスをX=00〜07、Y方向
のアドレスをY=00〜nで表すと、空スペース管理テ
ーブル64における先頭ブロックのアドレスは「CBX
Y」で示される。例えば空スペース管理テーブル64の
空ブロック数1個を示すエントリ1には、図8のキャッ
シュメモリ48におけるブロックアドレスCB0103,C
B0004の2つの空ブロックが登録されている。空ブロッ
ク2個分を示すエントリ番号2については、2個空ブロ
ックが連続した先頭ブロックのアドレスCB0102が登録
されている。このような空スペース管理テーブル64を
設けることで、新たなキャッシュブロックの割当要求に
対してはなるべく物理的に連続したキャッシュブロック
を割り当てている。更に空スペース管理テーブル64で
管理されるキャッシュメモリ48の空スペースは、常に
一定量が残るように管理される。即ち、キャッシュメモ
リ48の空スペースの残り容量が規定値以下になるよう
な状況が発生すると、図7に示したLRUテーブル62
を参照してキャッシュメモリ上の有効データを追い出す
ためのスケジュールが行われる。この追出し対象となっ
たキャッシュブロックにつき、ディスク装置にも同一デ
ータが存在するキャッシュブロックRの部分について
は、図6に示したハッシュテーブル60からの登録を抹
消するキャッシュ無効化を行う。一方、ディスク装置に
データが存在しないダーティデータのキャッシュブロッ
クWの部分については、ディスク装置へのライトバック
がスケジュールされる。このようなキャッシュメモリ4
8の残り容量を規定値以上に保つ処理により、常にキャ
ッシュメモリ上に規定の空き空間が準備されており、従
って新たなデータ書込みを伴うリード要求およびライト
要求に対し、直ちに処理を開始することができる。 4.RAID動作形態の制御 図3に示したディスクアレイ制御部52はホストコンピ
ュータ10からの論理デバイスの指定に基づき、RAI
D0,1,3または5のいずれかの形態のアクセス動作
をディスクアレイ28に対し実行する。図10はランク
数4,ポート数6のディスクアレイ28に対するホスト
コンピュータが指定する論理デバイス番号と、RAID
動作のためのディスク装置の形態を示している。まずラ
ンクR0に設けられた6台のディスク装置の内、ポート
P0〜P4の5台がホストコンピュータ10における論
理デバイス番号0で指定され、RAID3の動作形態を
とる。この内、ポートP0〜P3のディスク装置はデー
タ用であり、ポートP4のディスク装置がパリティ用に
固定的に決められる。尚、ランクR0のポートP5のデ
ィスク装置は予備機として設けられたホットスペアHS
に割り当てられる。次のランクR1のポートP0〜P5
の5台のディスク装置はホストコンピュータ10におけ
る論理デバイス番号1で指定され、RAID5の動作形
態をとる。RAID5の動作形態にあっては、ポートP
0〜P4の中の4台のディスク装置がデータ用、1台が
パリティ用となる。パリティ用のディスク装置はセクタ
位置が替わるごとに循環する。ランクR2のポートP
0,P1およびポートP2,P3に設けられた2台を1
組としたディスク装置は、ホストコンピュータ10にお
ける論理デバイス番号2,3で各々指定され、RAID
1の動作形態、即ち2台のディスク装置に同一データを
格納したミラーディスクとしての動作形態をもつ。更に
ランクR3のポートP0〜P3に設けた4台のディスク
装置はホストコンピュータ10における論理デバイス番
号4で指定され、RAID0の動作形態をとる。即ち、
データをストライピングして並列的に書き込む動作は論
理デバイス番号0のRAID3の動作形態と同じである
が、冗長性を確保するためのパリティディスクを備えて
いない。図11はRAID3の動作形態におけるキャッ
シュブロック,ストライピングおよびディスク格納状態
を示している。まずキャッシュブロック54は、この例
では4つのホストブロックL0〜L3で構成されてい
る。RAID3の動作モードでディスク装置30−00
〜30−04に書き込むために、例えばホストブロック
L0について取り出して示すように、所定数の固定長デ
ータブロックのサイズで16分割したバイトデータL0
−1〜L0−16にストライピングする。このようなス
トライピングデータについて、データ用のディスク装置
30−00〜30−03の台数4台に対応したストライ
ピングデータ単位にパリティを計算する。そして4つの
ストライピングデータに計算したパリティを加えた5つ
のバイトデータを、5台の磁気ディスク装置30−00
〜30−04に並列的に書き込む。図12はRAID5
の動作形態におけるキャッシュブロック,データストラ
イピングおよびディスクアレイ格納状態を示している。
この例では説明を簡単にするため、ディスクアレイ28
に並列書込みされるホストブロック数にキャッシュブロ
ックのサイズを一致させている。キャッシュメモリ48
上には並列書込み可能なデバイス、即ちディスク装置3
0−00〜30−03の4台に対応したホストブロック
数4のサイズをもつキャッシュブロック54−1〜54
−4が設けられ、図示のように連続するキャッシュブロ
ック54−1〜54−4に、同じく連続するホストブロ
ックL0〜L15が格納されていたとする。このような
場合には、例えばキャッシュブロック54−1を取り出
し、キャッシュブロック54−1を構成する4つのホス
トブロックL0〜L3からパリティを計算し、ホストブ
ロックL0〜L3にパリティP1を加えた5つのデータ
を並列的にディスク装置30−00〜30−04に書き
込む。通常、RAID5の動作形態にあっては、データ
長の短いホストブロック1個単位のアクセスが行われ
る。この通常のRAID5の動作形態における書込み
は、例えば図示のようにディスクアレイ28側にホスト
ブロックL0〜L3およびパリティP1が格納されてい
る状態で、新たに論理ブロックL0のみを書き込む場合
には、次のようなリードモディファイライトを実行す
る。まずディスク装置30−00および30−04によ
り旧ブロックL0と旧パリティP1を読み出す。これを
(L0)old ,(P1)old とする。続いて中間パリテ
ィ(P1)int を (P1)int =(P1)old +(L0)old として、排他論理和を求める。続いて中間パリティ(P
1)int と新ブロック(L0)new から新パリティ(P
1)new を (P1)new =(P1)int +(L1)new として求める。新ブロック(L0)new と計算で求めた
新パリティ(P1)newをディスク装置30−00,3
0−04に対し並列的に書き込む。このようなRAID
5の動作形態における並列書込み可能なディスク台数以
下のホストブロックの書込みについては、旧パリティと
旧データの読出しを伴うことからディスク2.5回転分
の処理時間がかかり、これがライトペナルティとなる。
本発明にあっては、RAID5の動作形態にあっても可
能な限りRAID3の動作形態によるディスクアレイに
対するライトアクセスを行って、ライトペナルティの低
減を図る。図13はRAID1の動作形態におけるキャ
ッシュブロックとディスク格納状態を示している。RA
ID1は2台のディスク装置30−20,30−21に
同一データを書き込むミラーディスクとしての使い方で
あり、キャッシュブロック54からホストブロックL0
〜L3ごとに順次取り出してディスク装置30−20,
30−21のそれぞれに並列的に書き込む。図14はパ
リティディスクをもたないRAID0の動作形態のキャ
ッシュブロック,ストライピングおよびディスク格納状
態を示す。尚、図12のRAID5の場合と同様、説明
を簡単にするため、4台の磁気ディスク装置30−30
〜30−34に並列書込みする論理ブロック数4に一致
するキャッシュブロックのサイズとした場合を例にとっ
ている。このRAID0の動作形態では、キャッシュブ
ロック54を構成する4つのホストブロックL0〜L3
を、4台のディスク装置30−30〜30−34のそれ
ぞれに割り当てて並列的に書き込み、この場合にパリテ
ィディスクはもたないことから、パリティの計算は行わ
ない。 5.ステージング処理の高速化 ディスクキャッシュ制御にあっては、ホストコンピュー
タ10からのリード要求に対しキャッシュメモリ48上
に要求データが存在せずにミスヒットとなった場合に
は、ディスク装置から要求データを読み出してキャッシ
ュメモリ上に書き込むステージングを行う。本発明にあ
っては、RAID0,1,3および5のいずれの動作形
態にあっても、ディスクアレイ28の同時アクセス可能
な全ディスク装置からの並列リードによるステージング
で要求データのキャッシュブロックに対するステージン
グを高速で行う。図15はRAID5の動作形態を例に
とった本発明のステージングを示している。いま16ホ
ストブロックのサイズをもつキャッシュブロック54−
1がキャッシュメモリ48上に展開されており、このキ
ャッシュブロック54−1のうちの最後の2つのホスト
ブロックL14,L15のみが有効データであり、また
ホストブロックL14,L15はディスク装置への書込
みが済んでいないダーティデータであったとする。ここ
で、ホストコンピュータ10より論理ブロックL4〜L
7を指定したリード要求がホストコンピュータから行
われたとする。このリード要求に対し、キャッシュメモ
リ上に要求データが存在しないことからミスヒットとな
り、ステージングを行う。ステージングはキャッシュブ
ロック54−2に示すように、ディスクアレイ28のデ
ィスク装置30−10〜30−12,30−14の4台
をアクセスしてホストブロックL4〜L7をリードして
キャッシュブロック54−2上に書き込み、ステージン
グが完了するとヒット状態となることから、要求データ
をホストコンピュータ10に転送する。このようなステ
ージングが終了した後に本発明にあっては、それ以降の
アクセス要求に対するキャッシュメモリのヒット効率を
向上してキャッシュ効果を最大限に発揮するため、プリ
フェッチ動作を行う。即ち、キャッシュブロック54−
3に示すように、ステージングが済んだホストブロック
L4〜L7に後続する並列アクセス可能なディスク数4
に一致する4つのホストブロックL8〜L11をディス
ク装置30−10,30−11,30−13,30−1
4から読み出してプリフェッチする。RAID5にあっ
ては、基本的にはリード転送速度はデバイス速度以上は
出ることがなく、またステージング速度がRAID3よ
り遅く、少量データのリード処理が中心になることか
ら、プリフェッチ量は次のパリティグループまでとす
る。ここで、パリティグループとはパリティディスクを
同一とする各ディスク装置のデータブロックを意味す
る。例えば、図15(E)におけるデータブロックL0
〜L3,L4〜L7などのことを意味する。このように
RAID5にあっては、プリフェッチ量は次のパリティ
グループまでとなるが、キャッシュブロックサイズをパ
リティグループのデータブロックサイズと同一になるよ
うにストライピングを行えば、即ち図12に示したスト
ライピングを行えばキャッシュブロックの中にステージ
ングしたデータブロックに続くキャッシュブロックの最
後までのデータブロックがプリフェッチ量となり、この
プリフェッチをステージングに含めてRAID3的なス
テージングが可能となる。一方、RAID3では図11
に示したように、1つのホストブロックが各ディスク装
置に分散して格納されており、ステージングが高速にで
きること、および大容量のデータが要求される場合が多
いことを考慮し、アクセス要求が行われたステージング
データを含むキャッシュブロックの最後までのデータブ
ロックをプリフェッチする。再び図15を参照するに、
キャッシュブロック54−3に召すステージングしたホ
ストブロックL4〜L7に続くブロックL8〜L11を
プリフェッチした状態にあっても、キャッシュブロック
上の有効データは2箇所に分散している。このようなス
テージングに伴うプリフェッチ後の状態でキャッシュブ
ロック上の有効データが分散している場合には、キャッ
シュブロック54−4に示すようにホストブロックL1
2,L13に対応するデータブロックをディスクアレイ
28のディスク装置30−12,30−13から読み出
して内部的にステージングし、キャッシュブロック上で
有効データを連続データとする。このようにキャッシュ
ブロック上の有効データを連続データとすることで、キ
ャッシュブロック上での以後のデータ管理を容易にす
る。例えば、キャッシュブロック上で有効データが複数
箇所に分散して存在していたとすると、最終的には分散
した各ホストブロックに対応したマップ管理が要求され
る。これに対し、キャッシュブロック上に連続した領域
を有効データとすることで、有効データの一部が書き替
えられた際のライトバック処理において、RAID3的
な並列書込みによる高速化を図ることができる。 6.大量シーケンシャルデータの追出し促進 一般にキャッシュ制御にあっては、キャッシュメモリ4
8上の同一データを頻繁にリードするとキャッシュ効果
を発揮することができる。これに対し、ホストコンピュ
ータ10がキャッシュメモリ48上に存在しない大量デ
ータのリード要求を行ったとき、ミスヒットに伴ってデ
ィスクアレイ28から要求された大量データをキャッシ
ュメモリ48上にステージングしてホストコンピュータ
10に転送するようになる。このようにステージングさ
れた大量のデータがその後、参照されないにも関わら
ず、そのままキャッシュメモリ48上に残されている
と、キャッシュスペースが有効に利用されず、ヒット効
率が低下することになる。しかしながらLRUテーブル
62を用いたキャッシュメモリ48の管理では、一度し
か参照されなかった大量データであっても直ちに無効化
することはできない。そこで本発明のディスクキャッシ
ュ装置にあっては、ホストコンピュータ10からの一定
量を越えるデータのリード要求に伴って大量データのス
テージングが行われた場合には、本来、LRUテーブル
62の先頭にステージングされたキャッシュブロックを
登録すべきところ、LRUテーブル62の終端側に近い
位置にステージングされた大量データのキャッシュブロ
ックを登録する。図17のフローチャートは大量データ
のステージング処理を示す。まずステップS1でホスト
コンピュータ10からのリード要求に伴うミスヒットで
ディスクアレイ28側からのステージングが行われたな
らば、ステップS2で、ステージングされたデータ量が
所定値例えば100キャッシュブロック以上か否かチェ
ックする。100キャッシュブロック未満であれば通常
通り、ステップS3でLRUテーブル62の先頭に登録
する。一方、100キャッシュブロック以上であった場
合には、ステップS4でLRUテーブル62の終端側の
近くに登録する。このようなステージングされた大量デ
ータについて、LRUテーブル62の終端側に強制的に
登録することで、一度しか参照されないステージングさ
れた大量データは比較的短い時間の経過後にハッシュテ
ーブル60から削除されて追い出されることになり、キ
ャッシュスペースが不要に占有されてしまうことを防止
できる。 7.パリティデータのステージング 本発明のディスクキャッシュ装置におけるRAID5の
動作状態において、原則的にはキャッシュメモリ48上
にパリティデータのステージングは行っていない。しか
しながらRAID5の動作状態にあっては、ディスクア
レイに対する書込時に新パリティを計算するためにディ
スクアレイ28から旧データおよび旧パリティを読み出
す処理を必要とするため、処理時間が長くなるライトペ
ナルティをもつ。そこで本発明のステージング処理の他
の実施例にあっては、オプション指定によりパリティデ
ータのステージングを可能とする。図18のフローチャ
ートはパリティデータのステージングを可能とする本発
明のステージング処理の他の実施例を示す。このステー
ジング処理にあっては、ホストコンピュータ10からの
リード要求に対するキャッシュメモリ48のミスヒット
でステージング処理が起動されると、まずステップS1
で動作形態がRAID5であり且つパリティデータのス
テージングがオプション指定されているか否かチェック
する。パリティデータのステージングを行わせるオプシ
ョン指定は、ホストコンピュータ10からのコマンドあ
るいはメンテナンス端末からの指示によりセットされ
る。ステップS1でパリティデータのステージングを示
すオプション指定が有効であるとステップS2に進み、
パリティデータを含むデータをディスクアレイ28から
キャッシュメモリ48上にステージングする。ステップ
S1でオプション指定がなければステップS3に進み、
通常のパリティを含まないデータのディスクアレイ28
からのステージングを行う。図19はパリティデータを
ステージングしない場合とステージングした場合のライ
トバック処理を対比して示す。図19(A)はパリティ
データをステージングしていない場合であり、キャッシ
ュブロック54−10のホストブロックL1のみが有効
データであったとする。このキャッシュブロック54−
10の有効データであるホストブロックL1をディスク
アレイ28にライトバックする場合には、図12のRA
ID5におけるディスク書込みに示したようにディスク
装置30−11から対応する旧データを読み出し、また
ディスク装置30−14から旧パリティを読み出し、中
間パリティを生成した後に新データから新パリティを作
成し、最終的にディスク装置30−11,30−14に
新データと新パリティを書き込む処理を必要とする。こ
のため、キャッシュブロック54−10上の有効ブロッ
クL1をディスクアレイ28に書き込むためにはディス
ク装置の2.5回転分の時間が必要となる。これに対し
図19(B)に示すキャッシュブロック54−10上に
パリティデータP1をステージングしていた場合には、
有効ブロックL1の更新に際しキャッシュブロック54
−20上で新たなパリティデータP1を計算でき、ディ
スクアレイ28側をリードアクセスすることなく直接、
更新ブロックL1と新パリティデータP1をディスク装
置30−11,30−14に書き込むことができる。こ
のため、ライトバック処理はディスク装置1.5回転分
の時間で済み、通常のRAID5の動作状態のディスク
書込み処理におけるライトペナルティは発生しない。勿
論、パリティデータをキャッシュメモリ48にステージ
ングした場合には、その分だけキャッシュメモリ48の
有効利用領域が低減することになる。 8.ライトバックデータの並び替えによる最適化 図9の空スペース管理テーブル64で説明したように、
キャッシュメモリ48上の空スペースが一定値以下にな
った場合は、図7に示すLRUテーブル62を参照し、
使用されずに最も長い期間格納されているキャッシュブ
ロックを追い出すためのライトバック処理がスケジュー
ルされる。図20はライトバック処理がスケジュールさ
れる際のキャッシュブロック62の一例を示している。
通常のキャッシュ制御にあっては、LRUテーブル62
の最後にリンクされているキャッシュブロックCB−f
をライトバック対象とするスケジュールを行う。これに
対し本発明のキャッシュ制御にあっては、ライトバック
条件が成立したとき、即ちキャッシュメモリ48の空ブ
ロック数が規定の閾値以下となったときには、LRUテ
ーブル62の最後のキャッシュブロックから所定ブロッ
ク数αだけ遡った範囲をライトバック対象範囲68とし
て指定するスケジュールを行う。この場合にはキャッシ
ュブロックCB−a〜CB−fの6つがライトバック対
象範囲68に含まれるように指定される。ここでライト
バック対象範囲68に含まれる斜線で示すキャッシュブ
ロックCB−b,CB−e,CB−fの3つが、図21
に示すホストブロックを含んでいたとする。即ち、キャ
ッシュブロックCB−bはホストブロックL4〜L7の
対応データを含み、キャッシュブロックCB−eはホス
トブロックL8〜L11の対応データを含み、キャッシ
ュブロックCB−fはホストブロックL0〜L3の対応
データを含んでいたとする。このようなホストブロック
対応データを見ると、キャッシュブロックCB−f,C
B−b,CB−eの順番に並び替えることで、ホストブ
ロックL0〜L11の対応データを連続データとするこ
とができる。ホストブロック対応データを連続データと
するライトバック対象範囲68に含まれるキャッシュブ
ロックの並び替えを行った場合には、ディスクアレイ2
8に各キャッシュブロックをライトバックする際にRA
ID3的な並列書込みを高速で実行できる。即ち、キャ
ッシュブロックCB−f,CB−b,CB−eに含まれ
る4つの論理ブロック対応データのそれぞれからパリテ
ィP1,P2,P3を計算し、順番に4つのデータとパ
リティを並列的にディスクアレイ28のディスク装置3
0−11〜30−14に連続的に書き込む高速ライトバ
ック処理が達成できる。このようなライトバック対象範
囲68に含まれるキャッシュブロックの論理ブロック対
応データを連続するような並び替えによるライトバック
が完了すると、図20に示したLRUテーブル62は図
22の状態となる。図23のフローチャートはキャッシ
ュブロックの並び替えを伴うライトバックのスケジュー
ルが行われるライト処理を示し、図16のステップS1
3に示したライト処理の詳細を示すことになる。まずス
テップS1でホストコンピュータ10からのライト要求
に伴って、ライトキャッシュ制御部46−2でキャッシ
ュメモリ48上に確保された8ブロックに対しライトデ
ータを書き込む。ライトデータの書込みが済むと、ステ
ップS2で図9に示した空スペース管理テーブル64を
参照してキャッシュメモリ48の空ブロック数を求め、
空ブロック数が予め定めた閾値以下か否かチェックす
る。閾値以下であればステップS3に進み、図20に示
したようにLRUテーブル62の末尾から遡った所定数
αのブロックを含む範囲をライトバック対象範囲68と
して指定する。ライトバック対象範囲68に含まれるキ
ャッシュブロックがディスクアレイ28への書込みが済
んでいないライトバック対象となるダーティデータか、
既にディスクアレイ28への書込みが済んでいるライト
バック対象から除外される非ダーティデータか否かチェ
ックする。もしライトバック対象範囲68に非ダーティ
データのキャッシュブロックが含まれていれば、ステッ
プS5で非ダーティデータのキャッシュブロックをハッ
シュテーブル60から削除してキャッシュ無効化を行
う。続いてステップS6でライトバック対象となるダー
ティデータのキャッシュブロックの有無をチェックし、
ダーティデータのキャッシュブロックが存在すると、ス
テップS7でライトバックをスケジュールする。このラ
イトバックのスケジュールにあっては、図20,図21
に示したようにライトバック対象範囲68に含まれるキ
ャッシュブロックについて、もし可能であればホストブ
ロックに対応するデータが連続データとなるようにキャ
ッシュブロックの並び替えを行った後にライトバック対
象としてスケジュールする。尚、ライトバック処理のス
ケジュールは図23に示すライト処理の完了時のみなら
ず、図16に示したリード要求でキャッシュメモリがミ
スヒットとなったときのディスクアレイからのステージ
ング終了時についても同様にスケジュールされることに
なる。 9.ライトバック処理の最適化 図24はRAID5の動作形態におけるライトバック処
理の一例を示している。ここでキャッシュブロック54
のサイズは16ホストブロックであり、ホストブロック
L0〜L15に対応するデータを格納することができ、
この内、ホストブロックL2〜L9に対応するデータが
有効データとして書き込まれ、ライトバック対象データ
75となっている。一方、ディスクアレイ28側はディ
スク装置30−10〜30−14のそれぞれは1ホスト
ブロックのサイズに相当するセクタ単位にデータを読み
書きしており、同時並列的には4つのホストブロックを
アクセスすることができる。キャッシュブロック54の
ライトバック対象データ75に含まれるホストブロック
L2〜L9対応データについて、ディスクアレイ28の
ストライピング状態に対応し、先頭のホストブロックL
2,L3と末尾のホストブロックL8,L9の各対応デ
ータについてRAID5モードによる書込みを行う。即
ち、対応する旧データおよびパリティデータをディスク
アレイ28から読み出して、書込みを行う新データを用
いて新パリティを計算した後に並列的に書き込むリード
モディファイライトを行う。これに対し、ディスクアレ
イ28の並列書込み可能な4台のディスク装置に対応す
る連続する4つのホストブロックL4〜L7の対応デー
タについては、RAID3モードによる書込みを行う。
即ち、ホストブロックL4〜L7の対応データからパリ
ティP2を計算し、直接ディスクアレイ28に書き込
む。このようなRAID5モードにおけるライトバック
処理について、通常のRAID5モードに書込みに加え
てRAID3モードによる高速書込みを組み合わせるこ
とで、最適化されたライトバック処理を行うことができ
る。図25はRAID5の動作状態におけるライトバッ
ク処理において、ライトバック対象データ75の中の連
続するホストブロック対応データが、ディスクアレイ2
8側の並列書込みディスク台数より僅かに少なかった場
合の最適化処理を示している。いまキャッシュブロック
54の中にライトバック対象データ75としてホストブ
ロックL1〜L10の対応データが格納されていたとす
る。中央のホストブロックL4〜L7の4つのデータに
ついてはRAID3的な並列アクセスができる。これに
対し、左側のホストブロックL1〜L3対応データおよ
び右側のホストブロックL8〜L11対応データは並列
アクセスディスク台数4台に対し1つホストブロック対
応データが少ない。このような場合のライトバックにあ
っては、キャッシュブロック54−2に示すようにホス
トブロックL0対応データをディスクアレイ28のディ
スク装置30−10からに示すようにリードしてステ
ージングし、またホストブロックL11の対応データに
ついてもディスクアレイ28のディスク装置30−14
によりに示すようにリードしてステージングし、並列
アクセス可能なディスク台数の整数倍となるホストブロ
ック数の連続データとする。このようなホストブロック
L0〜L11の連続対応データがキャッシュブロック5
4−2に上に得られれば、ホストブロックL0〜L3,
ホストブロックL4〜L7,ホストブロックL8〜L1
1の4つずつにストライピングして、それぞれパリティ
P1,P2,P3を求めた後、に示すように並列
的にディスクアレイ28に書き込むことで、RAID3
的な高速ライトバック処理を行うことができる。図26
のフローチャートは図24,図25に示したRAID5
のライトバック処理を含む本発明のキャッシュ制御にお
ける全体的なライトバック処理を示す。まずステップS
1でコントローラ12がアイドル状態か否かチェック
し、アイドル状態にないときにはステップS14で要求
事項の処理、即ち通常の処理を行っている。アイドル状
態が得られるとステップS2に進み、ライトバック処理
がスケジュール済み、即ちライトバック条件が成立して
いればステップS3に進み、RAIDモードをチェック
する。RAID5モードであればステップS4に進み、
図20,図21に示したようなライトバック対象範囲に
おけるキャッシュブロックの連続ブロックへの並び替え
を行う。なお、この連続ブロックへの並び替えは図23
に示したライト処理の段階におけるスケジューリングと
して行っておいてもよい。続いてライトバック対象とな
った最初のキャッシュブロックを参照し、ディスクアレ
イ28側の並列書込み可能なディスク台数に対応した全
台数分のホストブロック対応データが有効か否かチェッ
クする。もし全デバイス分のホストブロック対応データ
が有効であればステップS6に進み、RAID3モード
による書込処理を実行する。即ち、全デバイス分の対応
データからパリティを計算した後、データおよびパリテ
ィを並列的に同時書込みする。一方、全デバイス分のキ
ャッシュブロック対応データが有効でなかった場合に
は、ステップS7で不足データは1ディスク分か否かチ
ェックする。不足データが1ディスク分であった場合に
は、ステップS8で、図25に示したように不足ブロッ
クに対応するデータをディスクアレイからステージング
し、ステージング後にステップS6に進んでRAIDモ
ードでの書込処理を行う。ステップS7で不足分が2デ
ィスク分以上であった場合にはステップS9に進み、R
AID5モードでの書込処理を行う。即ち、旧データお
よび旧パリティをリードして中間パリティを計算し、更
に新データから新パリティを計算し、新データおよび新
パリティを並列的にディスクアレイに対し同時書込みす
る。ステップS6またはステップS9の書込処理が済む
と、ステップS10でライトバック対象となっているキ
ャッシュブロックの全ブロックの処理が終了したか否か
チェックし、終了していなければステップS4に戻り、
同様な処理を繰り返し、終了していればステップS1で
再び待機状態となる。一方、ステップS3でRAID3
の動作モードが判別された場合にはステップS11に進
み、図11に示したストライピングおよび書込みとなる
RAID3モードの書込処理を行う。またステップS3
でRAID0モードが判別された場合には、ステップS
13で、図13に示すRAID0モードの書込みを行
う。更にステップS3でRAID1モードが判別された
場合にはステップS13に進み、図14に示したパリテ
ィディスクをもたないRAID1モードの書込みを行
う。 10.統計的処理によるキャッシュブロックサイズの自
動設定 本発明を含めたディスクキャッシュ装置を備えた計算機
システムにおいて、ユーザが必ず設定を必要とするパラ
メータはホストブロックサイズ即ち論理ブロックサイズ
である。これに対し、キャッシュブロックサイズの設定
は通常、システム側で行っている。図4に示したよう
に、キャッシュブロック54のサイズはホストブロック
56が複数個集まったブロックとして構成される。この
ような従来の固定的なキャッシュブロックサイズのシス
テム側での設定に対し、本発明のディスクキャッシュ装
置にあっては、最初のシステム立上げ時はシステム側が
固定的にキャッシュブロックサイズを設定するが、次回
以降の立上げ時にあってはユーザの使用環境に応じて自
動的に最適なキャッシュブロックサイズに変更される。
図27のフローチャートは最適化されたキャッシュブロ
ックサイズを自動設定するための統計処理を示してい
る。最初のシステム立上げ時にあっては、システム側に
固定的に設定したキャッシュブロックサイズによるキャ
ッシュ制御が行われており、この状態でホストアクセス
をステップS1で判別すると、ステップS2でリード要
求またはライト要求が行われたホストブロックサイズを
記録する。ホストブロックサイズの記録処理はステップ
S5で規定周期に達するまで繰り返し行われている。ス
テップS3で規定周期例えば1カ月程度の時間に達する
とステップS4に進み、ステップS2で記録されたホス
トブロックサイズから平均ブロックサイズを計算する。
続いてステップS5で最適ブロックサイズの設定値を、
ステップS4で求めた平均ブロックサイズに更新する。
この最適キャッシュブロックサイズの更新が済むと、ス
テップS2で記録されたホストブロックサイズはメモリ
からクリアされ、次の周期の記録に入る。この結果、シ
ステムの運用中に統計的処理で得られたキャッシュブロ
ックサイズが最適ブロックサイズとして保持されること
になる。そして一旦、システムの運用を止め、次に電源
投入によるシステム立上げを行うと、図27の統計処理
で求められている最適キャッシュブロックサイズに自動
的にキャッシュブロックサイズを変更してキャッシュ制
御を動作する。図28はホストブロックサイズに対し最
適なキャッシュブロックサイズの一例を示している。い
ま並列アクセスされるディスクアレイ28はディスク装
置30−10〜30−13の4台であり、それぞれのレ
コードにおける1セクタを構成するデータブロック58
は512バイトであったとする。この512バイトのデ
ータブロック58に対し、ホストブロックサイズが2倍
の1,024バイトであったとすると、例えばホストブ
ロックL0は対応するディスク装置30−10の2セク
タ分に跨がる。キャッシュブロック54は4台の並列ア
クセス可能なディスク装置30−10〜30−13のブ
ロックデータサイズに一致するサイズをもつことがRA
ID3的なアクセスを可能とするために最適である。従
って、キャッシュブロック54は4つのホストブロック
L0〜L3に対応し、1つのホストブロックは1,02
4バイトとなることから、キャッシュブロックサイズは
4,096バイトとすればよい。尚、上記の実施例は6
ポート,4ランクのディスクアレイを例にとるものであ
ったが、ディスクアレイのポート数およびランク数は必
要に応じて適宜に定めることができる。更に本発明にあ
っては、ホストコンピュータに対し2系統のキャッシュ
メモリを有するコントローラを設けた場合を例にとって
いるが、1系統のコントローラにキャッシュメモリを設
けたものであったもよいことは勿論である。更に本発明
は実施例に示された数値による限定は受けない。
【発明の効果】以上説明してきたように発明にあって
は、ディスクアレイを対象とした所謂RAID型の動作
特性を活かしながらキャッシュ性能を最大限に発揮する
ことができる。
は、ディスクアレイを対象とした所謂RAID型の動作
特性を活かしながらキャッシュ性能を最大限に発揮する
ことができる。
【図1】本発明の原理説明図
【図2】本発明のハードウェア構成を示した実施例構成
図
図
【図3】ディスクアレイを対象とした本発明の処理機能
を示した説明図
を示した説明図
【図4】キャッシュメモリのブロック分けとホストブロ
ックの関係を示した説明図
ックの関係を示した説明図
【図5】ホストブロックとデータブロックとの関係を示
した説明図
した説明図
【図6】図3のハッシュテーブルの説明図
【図7】図3のLRUテーブルの説明図
【図8】図3のキャッシュメモリの使用状態の一例を示
した説明図
した説明図
【図9】図3の空スペース管理テーブルの説明図
【図10】図3のディスクアレイに対するRAID0,
1,3,5のディスク割当てを示す論理デバイスの説明
図
1,3,5のディスク割当てを示す論理デバイスの説明
図
【図11】RAID3におけるキャッシュブロック、ス
トライピング及びディスク格納状態を示した説明図
トライピング及びディスク格納状態を示した説明図
【図12】RAID5におけるキャッシュブロック、ス
トライピング、ディスク格納状態を示した説明図
トライピング、ディスク格納状態を示した説明図
【図13】RAID1におけるキャッシュブロックとデ
ィスク格納状態を示した説明図
ィスク格納状態を示した説明図
【図14】RAID0におけるキャッシュブロックとデ
ィスク格納状態を示した説明図
ィスク格納状態を示した説明図
【図15】ステージング処理に伴なうプリフェッチ動作
を示した説明図
を示した説明図
【図16】プリフェッチのステージングを含む図3のリ
ード処理を示したフローチャート
ード処理を示したフローチャート
【図17】大量シーケンシャルデータのステージング処
理を示したフローチャート
理を示したフローチャート
【図18】パリティを含むステージング処理を示したフ
ローチャート
ローチャート
【図19】パリティを含まない場合と含む場合のステー
ジングに対応するライトバック処理の相違を示した説明
図
ジングに対応するライトバック処理の相違を示した説明
図
【図20】LRUテーブルにおけるライトバック対象範
囲の説明図
囲の説明図
【図21】ライトバック対象範囲におけるキャッシュブ
ロック並び替えとライトバック動作を示した説明図
ロック並び替えとライトバック動作を示した説明図
【図22】ライトバック完了後のLRUテーブルの説明
図
図
【図23】図15のライト処理の詳細を示したフローチ
ャート
ャート
【図24】RAID5におけるライトバック動作の説明
図
図
【図25】RAID5において不足ブロックをキャッシ
ュブロックにステージングするライトバック動作の説明
図
ュブロックにステージングするライトバック動作の説明
図
【図26】ライト完了後に行うライトバック処理を示し
たフローチャート
たフローチャート
【図27】キャッシュブロックサイズの求める統計処理
のフローチャート
のフローチャート
【図28】最適なキャッシュブロックサイズの決め方の
一例を示した説明図
一例を示した説明図
10 ホストコンピュータ(上位装置) 14−1,14−2 チャネル装置 16 チャネルインタフェース(SCSI) 18−1,18−2 共用バス(共用バス手段) 20 ブリッジ回路部 22−1,22−2 サブコントローラ 24−1〜24−6,26−1〜26−6 アダプタ 28 ディスクアレイ 30−00〜30−35 ディスク装置 45 ライトバック制御部 46 キャッシュ制御部 48 キャッシュメモリ 50 キャッシュ管理テーブル 52 ディスクアレイ制御部 54 ホストブロック 60 ハッシュテーブル 62 LRUテーブル 64 空スペース管理テーブル
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G06F 3/06 540 G06F 3/06 540
Claims (19)
- 【請求項1】ディスクキャッシュ装置に於いて、 内蔵した記憶媒体に対しデータを読み書きする複数のデ
ィスク装置(30)を設けたディスクアレイ手段(2
8)と、 前記ディスクアレイ手段(28)に格納されたデータの
一部を記憶するキャッシュ記憶手段(48)と、 キャッシュ登録内容を示すハッシュテーブル手段(6
0)および最新に使用されたキャッシュブロックを先頭
位置とするように有効データを含むキャッシュブロック
を登録純にリンクするLRUテーブル手段(62)に基
づいて前記キャッシュ記憶手段(48)の記憶状態を管
理するキャッシュ管理手段(50)と、 前記上位装置(10)からリード要求を受けた際に前記
キャッシュ管理手段(50)を参照して該当データが存
在する場合は前記キャッシュ記憶手段(48)から読出
して前記上位装置(10)に転送し、該当データが存在
しない場合は、前記ディスクアレイ手段(28)からス
テージングした後に前記上位装置(10)に転送するリ
ードキャッシュ制御手段(46−1)と、 前記上位装置(10)からライト要求を受けた際に、前
記キャッシュ管理手段(50)に管理情報を登録すると
共に該管理情報に従って前記キャッシュ記憶手段(4
8)にデータを書込むライトキャッシュ制御手段(46
−2)と、 予め定めたライトバック条件が成立した際に、前記キャ
ッシュ記憶手段(48)から前記ディスクアレイ手段
(28)への記憶が済んでいないデータを抽出して書戻
すライトバック制御手段(45)と、 前記リードキャッシュ制御手段(46−1)および前記
ライトキャッシュ制御手段(46−2)による前記ディ
スクアレイ手段(28)のアクセス時に、予め設定され
たディスクアレイの動作モードに従って1又は複数のデ
ィスク装置(30)のアクセスを制御するディスクアレ
イ制御手段(52)と、を備えたことを特徴とするディ
スクキャッシュ装置。 - 【請求項2】請求項1記載のディスクキャッシュ装置に
於いて、前記ディスクアレイ手段(28)は、並列的に
配置された入出力ポートの各々にディスク装置(30)
を接続して1ランクを構成し、該ランク構成のディスク
装置(30)群を複数ランク設けたことを特徴とするデ
ィスクキャッシュ装置。 - 【請求項3】請求項2記載のディスクキャッシュ装置に
於いて、前記ディスクアレイ制御手段(52)は、RA
ID0に対応した第1動作モードの設定時は、特定のラ
ンクの中のディスク装置(30)を前記上位装置(1
0)で扱う論理デバイスに1対1に割当て、個々のディ
スク装置(30)に読み書きを行うことを特徴とするデ
ィスクキャッシュ装置。 - 【請求項4】請求項2記載のディスクキャッシュ装置に
於いて、前記ディスクアレイ制御手段(52)は、RA
ID1に対応した第2動作モードの設定時は、特定のラ
ンクの中の2台のディスク装置(30)を1組として前
記上位装置(10)で扱う論理デバイスに1対1に割当
て、2つのディスク装置(30)に同一データを書込む
と共にいずれか一方のディスク装置(30)からデータ
を読出すことを特徴とするディスクキャッシュ装置。 - 【請求項5】請求項2記載のディスクキャッシュ装置に
於いて、前記ディスクアレイ制御手段(52)は、RA
ID3に対応した第3動作モードの設定時は、特定のラ
ンクを構成するn台のディスク装置(30)をデータ用
とパリティ用とに固定的に割当て、書込要求時に、書込
データをビット単位又はバイト単位に(n−1)分割す
ると共に分割単位ごとにパリティデータを計算し、前記
(n−1)分割したデータおよび前記パリティデータを
前記n台のディスク装置(30)に並列的に書込むこと
を特徴とするディスクキャッシュ装置。 - 【請求項6】請求項2記載のディスクキャッシュ装置に
於いて、前記ディスクアレイ制御手段(52)は、RA
ID5に対応した第4動作モードの設定時は、特定のラ
ンクを構成するn台のディスク装置(30)を1組とし
てアクセスごとにパリティ位置が変化するように割当
て、書込要求時に、書込データを少なくともディスク装
置(30)のセクタ単位に分割すると共に該書込データ
の書込先ディスク装置(30)およびパリティ用ディク
ス装置から旧データおよび旧パリティデータを読出して
新パリティを計算し、前記書込データ及び新パリティデ
ータを前記書込先ディスク装置(30)およびパリティ
用ディクス装置に並列的に書込むことを特徴とするディ
スクキャッシュ装置。 - 【請求項7】請求項1記載のディスクキャッシュ装置に
於いて、前記キャッシュ管理手段(50)は、前記キャ
ッシュ記憶手段(48)の空き状態を管理する空スペー
ス管理テーブル手段(64)を備え、前記ライトキャッ
シュ制御手段(46−1)は前記上位装置(10)に基
づくキャッシュ書込処理の完了報告時に前記空スペース
管理テーブル手段(60)を参照して空スペースが予め
定めた閾値以下の場合、ディスク書込済みのデータは無
効化して前記キャッシュ記憶手段(48)から削除し、
且つディスク書込みが済んでいないデータは前記ライト
バック制御手段(45)による処理対象に組込むことを
特徴とするディスクキャッシュ装置。 - 【請求項8】請求項7記載のディスクキャッシュ装置に
於いて、前記空スペース管理テーブル手段(64)は、
前記キャッシュ記憶手段(48)上の連続するキャッシ
ュブロックの空数をエントリとして先頭ブロックの位置
情報を格納したことを特徴とするディスクキャッシュ装
置。 - 【請求項9】請求項1記載のディスクキャッシュ装置に
於いて、前記リードキャッシュ制御手段(46−1)
は、前記上位装置(10)からの要求データが前記キャ
ッシュ記憶手段(48)の格納単位であるキャッシュブ
ロック上に存在しない時、該キャッシュブロック上に存
在する有効データの状態に応じて前記ディスクアレイ手
段(28)から新たなデータのステージングを行って連
続する一つのデータ領域を生成することを特徴とするデ
ィスクキャッシュ装置。 - 【請求項10】請求項9記載のディスクキャッシュ装置
に於いて、前記リードキャッシュ制御手段(46−1)
は、ステージング終了後に、前記要求データに続く有効
データを前記ディスクアレイ手段(28)から前記キャ
ッシュブロック上にプリフェッチすることを特徴とする
ディスクキャッシュ装置。 - 【請求項11】請求項10記載のディスクキャッシュ装
置に於いて、RAID0に対応する第1動作モードの設
定時又はRAID1に対応する第3動作モードの設定時
に、前記リードキャッシュ制御手段(46−1)は、ス
テージング終了後に前記要求データに続く予め設定した
量の有効データを前記ディスクアレイ手段(28)から
プリフェッチすることを特徴とするディスクキャッシュ
装置。 - 【請求項12】請求項10記載のディスクキャッシュ装
置に於いて、RAID3に対応する第3動作モードの設
定時又はRAID5に対応する第4動作モードの設定時
に、前記リードキャッシュ制御手段(46−1)は、ス
テージング終了後に前記要求データに続く前記キャッシ
ュブロックの最後までの有効データを前記ディスクアレ
イ手段(28)からプリフェッチすることを特徴とする
ディスクキャッシュ装置。 - 【請求項13】請求項10記載のディスクキャッシュ装
置に於いて、RAID5に対応する第4動作モードの設
定時に、前記リードキャッシュ制御手段(46−1)
は、ステージング終了後に前記要求データを含むパリテ
ィグループの最後までの有効データを前記ディスクアレ
イ手段(28)からプリフェッチすることを特徴とする
ディスクキャッシュ装置。 - 【請求項14】請求項1記載のディスクキャッシュ装置
に於いて、RAID5に対応する第4動作モードの設定
時に、前記リードキャッシュ制御手段(46−1)は、
オプション指定により前記キャッシュ記憶手段(48)
にパリティデータを含めてステージングし、前記ライト
バック手段(45)は、前記オプション指定を判別した
際に前記キャッシュ記憶手段(48)のパリティデータ
を用いて新たなパリティを計算することを特徴とするデ
ィスクキャッシュ装置。 - 【請求項15】請求項1記載のディスクキャッシュ装置
に於いて、前記リードキャッシュ制御手段(46−1)
は、前記上位装置(10)から大量シーケンシャルデー
タのリードが要求された場合、前記LRUテーブル手段
(62)の終端からの一定量となる既存のキャッシュブ
ロックの一部を無効化すると共に、前記大量シーケンシ
ャルデータを前記LRUテーブル手段(62)の先頭に
登録せずに終端側に登録することを特徴とするディスク
キャッシュ装置。 - 【請求項16】請求項1記載のディスクキャッシュ装置
に於いて、RAID5に相当する第4動作モードの設定
時に、前記ライトバック制御手段(45)は、前記キャ
ッシュブロックの中のライトバックの対象となった有効
データをパリティグループ単位に抽出してパリティデー
タを算出した後に、抽出した有効データおよびパリティ
データを前記ディスクアレイ手段(28)の複数のディ
スク装置(30)に並列的に書込むことを特徴とするデ
ィスクキャッシュ装置。 - 【請求項17】請求項1記載のディスクキャッシュ装置
に於いて、RAID5に相当する第4動作モードの設定
時に、前記ライトバック制御手段(45)は、前記キャ
ッシュブロックの中のライトバックの対象となった有効
データのパリティグループに対する不足数が所定数以下
の場合、該不足データを対応するディスク装置(30)
から読出した後にパリティグループ分の有効データおよ
び計算したパリティデータを前記ディスクアレイ手段
(28)の複数のディスク装置(30)に並列的に書込
むことを特徴とするディスクキャッシュ装置。 - 【請求項18】請求項16又は17記載のディスクキャ
ッシュ装置に於いて、前記ライトバック手段(45)
は、所定のライトバック条件が成立した際に、前記LR
Uテーブル手段(62)内の終端から所定数のキャッシ
ュブロックをライトバック対象に組込むと共に、該対象
範囲に含まれるキャッシュブロックをデータが連続する
ように並び替えることを特徴とするディスクキャッシュ
装置。 - 【請求項19】請求項1記載のディスクキャッシュ装置
に於いて、更に、装置の使用中に前記上位装置(10)
からのアクセス要求で使用されるデータブロックサイズ
を統計情報として収集し、該統計情報の平均値を次の装
置立ち上げ時の前記キャッシュ記憶手段(48)のキャ
ッシュブロックサイズとして自動設定する統計処理手段
を設けたことを特徴とするディスクキャッシュ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10352414A JPH11288387A (ja) | 1998-12-11 | 1998-12-11 | ディスクキャッシュ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10352414A JPH11288387A (ja) | 1998-12-11 | 1998-12-11 | ディスクキャッシュ装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25621693A Division JP3188071B2 (ja) | 1993-10-14 | 1993-10-14 | ディスクキャッシュ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11288387A true JPH11288387A (ja) | 1999-10-19 |
Family
ID=18423921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10352414A Pending JPH11288387A (ja) | 1998-12-11 | 1998-12-11 | ディスクキャッシュ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11288387A (ja) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001166993A (ja) * | 1999-12-13 | 2001-06-22 | Hitachi Ltd | 記憶制御装置およびキャッシュメモリの制御方法 |
JP2005149436A (ja) * | 2003-11-20 | 2005-06-09 | Hitachi Ltd | ストレージ装置、ストレージ装置における制御方法、ジョブスケジューリング処理方法及び障害処理方法並びにそれらのプログラム |
JP2007188277A (ja) * | 2006-01-13 | 2007-07-26 | Hitachi Ltd | 記憶制御装置及びそのデータ管理方法 |
KR100786153B1 (ko) | 2005-03-14 | 2007-12-18 | 후지쯔 가부시끼가이샤 | 기억 장치, 그 제어 방법 및 프로그램 |
US7321955B2 (en) | 2004-03-31 | 2008-01-22 | Fujitsu Limited | Control device, control method and storage medium recording a control program for controlling write-back schedule of data from cache memory to a plurality of storage devices |
JP2008526109A (ja) * | 2004-12-23 | 2008-07-17 | ソレラ ネットワークス インコーポレイテッド | ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器 |
US7558937B2 (en) | 2004-10-04 | 2009-07-07 | Fujitsu Limited | Disk array device memory having areas dynamically adjustable in size |
KR100953081B1 (ko) | 2008-06-10 | 2010-04-19 | 팅크웨어(주) | 데이터 캐쉬 방법 및 장치 |
JP2010157142A (ja) * | 2008-12-27 | 2010-07-15 | Toshiba Corp | メモリシステム |
JP2011508347A (ja) * | 2007-12-31 | 2011-03-10 | サンディスク アイエル リミテッド | ホスト書き込み動作とキャッシュフラッシングとのバランスをとるための方法およびシステム |
JP2012203583A (ja) * | 2011-03-24 | 2012-10-22 | Toshiba Corp | 情報処理装置およびプログラム |
JP2013196481A (ja) * | 2012-03-21 | 2013-09-30 | Nec Corp | キャッシュ装置、情報処理システム、および、キャッシュ方法 |
JP2015528973A (ja) * | 2013-08-09 | 2015-10-01 | ▲ホア▼▲ウェイ▼技術有限公司 | ファイル処理方法およびファイル処理装置、ならびに記憶デバイス |
US9846654B2 (en) | 2014-03-18 | 2017-12-19 | Fujitsu Limited | Storage apparatus, cache control method, and computer-readable recording medium having cache control program recorded thereon |
CN111723266A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 海量数据处理方法和装置 |
CN113838487A (zh) * | 2021-09-28 | 2021-12-24 | 北京信息科技大学 | 一种多读写头的盘状存储器、读写方法及数据保护方法 |
-
1998
- 1998-12-11 JP JP10352414A patent/JPH11288387A/ja active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001166993A (ja) * | 1999-12-13 | 2001-06-22 | Hitachi Ltd | 記憶制御装置およびキャッシュメモリの制御方法 |
US7111134B2 (en) | 1999-12-13 | 2006-09-19 | Hitachi, Ltd. | Subsystem and subsystem processing method |
JP2005149436A (ja) * | 2003-11-20 | 2005-06-09 | Hitachi Ltd | ストレージ装置、ストレージ装置における制御方法、ジョブスケジューリング処理方法及び障害処理方法並びにそれらのプログラム |
US7321955B2 (en) | 2004-03-31 | 2008-01-22 | Fujitsu Limited | Control device, control method and storage medium recording a control program for controlling write-back schedule of data from cache memory to a plurality of storage devices |
US7558937B2 (en) | 2004-10-04 | 2009-07-07 | Fujitsu Limited | Disk array device memory having areas dynamically adjustable in size |
JP2008526109A (ja) * | 2004-12-23 | 2008-07-17 | ソレラ ネットワークス インコーポレイテッド | ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器 |
JP2011222006A (ja) * | 2004-12-23 | 2011-11-04 | Solera Networks Inc | ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器 |
JP4759574B2 (ja) * | 2004-12-23 | 2011-08-31 | ソレラ ネットワークス インコーポレイテッド | ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器 |
KR100786153B1 (ko) | 2005-03-14 | 2007-12-18 | 후지쯔 가부시끼가이샤 | 기억 장치, 그 제어 방법 및 프로그램 |
JP2007188277A (ja) * | 2006-01-13 | 2007-07-26 | Hitachi Ltd | 記憶制御装置及びそのデータ管理方法 |
JP2011508347A (ja) * | 2007-12-31 | 2011-03-10 | サンディスク アイエル リミテッド | ホスト書き込み動作とキャッシュフラッシングとのバランスをとるための方法およびシステム |
KR100953081B1 (ko) | 2008-06-10 | 2010-04-19 | 팅크웨어(주) | 데이터 캐쉬 방법 및 장치 |
JP2010157142A (ja) * | 2008-12-27 | 2010-07-15 | Toshiba Corp | メモリシステム |
US8868842B2 (en) | 2008-12-27 | 2014-10-21 | Kabushiki Kaisha Toshiba | Memory system, method of controlling memory system, and information processing apparatus |
JP2012203583A (ja) * | 2011-03-24 | 2012-10-22 | Toshiba Corp | 情報処理装置およびプログラム |
JP2013232216A (ja) * | 2011-03-24 | 2013-11-14 | Toshiba Corp | 情報処理装置およびプログラム |
JP2013196481A (ja) * | 2012-03-21 | 2013-09-30 | Nec Corp | キャッシュ装置、情報処理システム、および、キャッシュ方法 |
JP2015528973A (ja) * | 2013-08-09 | 2015-10-01 | ▲ホア▼▲ウェイ▼技術有限公司 | ファイル処理方法およびファイル処理装置、ならびに記憶デバイス |
US9417806B2 (en) | 2013-08-09 | 2016-08-16 | Huawei Technologies Co., Ltd. | File processing method and apparatus, and storage device |
US9483194B2 (en) | 2013-08-09 | 2016-11-01 | Huawei Technologies Co., Ltd. | File processing method and apparatus, and storage device |
US9846654B2 (en) | 2014-03-18 | 2017-12-19 | Fujitsu Limited | Storage apparatus, cache control method, and computer-readable recording medium having cache control program recorded thereon |
CN111723266A (zh) * | 2019-03-19 | 2020-09-29 | 北京沃东天骏信息技术有限公司 | 海量数据处理方法和装置 |
CN113838487A (zh) * | 2021-09-28 | 2021-12-24 | 北京信息科技大学 | 一种多读写头的盘状存储器、读写方法及数据保护方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5835940A (en) | disk apparatus with multiple raid operating modes | |
US7213110B2 (en) | Destaging method for storage apparatus system, and disk control apparatus, storage apparatus system and program | |
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US6941420B2 (en) | Log-structure array | |
Chen et al. | Understanding intrinsic characteristics and system implications of flash memory based solid state drives | |
US9251063B2 (en) | Storage system including a plurality of flash memory devices | |
JP4813843B2 (ja) | ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法 | |
US6058489A (en) | On-line disk array reconfiguration | |
US6341331B1 (en) | Method and system for managing a raid storage system with cache | |
EP2685384B1 (en) | Elastic cache of redundant cache data | |
US20090210620A1 (en) | Method to handle demand based dynamic cache allocation between SSD and RAID cache | |
CN103907096B (zh) | 闪存高速缓存中的部分数据片段的提升 | |
US20100100664A1 (en) | Storage system | |
WO2015015550A1 (ja) | 計算機システム及び制御方法 | |
JP2002323959A (ja) | 磁気ディスク制御装置のログ主体不揮発性書き込みキャッシュ・システム及び方法 | |
US6378038B1 (en) | Method and system for caching data using raid level selection | |
JPH11288387A (ja) | ディスクキャッシュ装置 | |
JP2007323224A (ja) | フラッシュメモリストレージシステム | |
CN111857540B (zh) | 数据存取方法、装置和计算机程序产品 | |
US20170277450A1 (en) | Lockless parity management in a distributed data storage system | |
JPH1063576A (ja) | 階層ディスク装置およびその制御方法 | |
CN117312188A (zh) | 混合ssd数据缓存预取系统及方法 | |
JP4734432B2 (ja) | データ記憶システム | |
JP3785127B2 (ja) | ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法 | |
US11157419B2 (en) | Defragmentation techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010710 |