(57)【特許請求の範囲】
【請求項１】
キャッシュメモリからのライトバック要求またはホストからのリード要求を時系列にディスク装置のキューに格納するキュー格納手段と、
格納された要求をキューから順次読み出し、ディスク装置にアクセスするディスクアクセス手段と、
キュー格納手段に格納されているライトバック要求数が所定値より大きいときには、ライトバック要求の格納先を予備ディスク装置のキューに変更して格納するキュー変更格納手段と、
予備ディスク装置のキューに格納されたライトバック要求を予備ディスク装置にライトする予備ディスクライト手段と、
キュー格納手段に格納されているライトバック要求数が所定の閾値より小さくなったときに、予備ディスク装置に格納されているライトバック要求をディスク装置のキューに書き戻すライトバック要求書き戻し手段と、
を有することを特徴とするディスク制御装置。  
【請求項２】
予備ディスク装置がホットスペアディスク装置であることを特徴とする請求項１記載のディスク制御装置。
【請求項３】
リード要求に対応するデータが予備ディスク装置にあるときには、リード要求を予備ディスク装置のキューに格納することを特徴とする請求項１記載のディスク制御装置。
【請求項４】
キャッシュメモリからのライトバック要求またはホストからのリード要求を時系列にディスク装置のキューに格納するキュー格納ステップと、
格納された要求をキューから順次読み出し、ディスク装置にアクセスするディスクアクセスステップと、
キュー格納ステップに格納されているライトバック要求数が所定値より大きいときには、ライトバック要求の格納先を予備ディスク装置のキューに変更して格納するキュー変更格納ステップと、
予備ディスク装置のキューに格納されたライトバック要求を予備ディスク装置にライトする予備ディスクライトステップと、
キュー格納ステップに格納されているライトバック要求数が所定の閾値より小さくなったときに、予備ディスク装置に格納されているライトバック要求をディスク装置のキューに書き戻すライトバック要求書き戻しステップと、
を有することを特徴とするディスク制御方法。
【請求項５】
リード要求に対応するデータが予備ディスク装置にあるときには、リード要求を予備ディスク装置のキューに格納するステップを有することを特徴とする請求項４記載のディスク制御方法。
【請求項６】
キャッシュメモリからのライトバック要求またはホストからのリード要求を時系列にディスク装置のキューに格納するキュー格納ステップと、
格納された要求をキューから順次読み出し、ディスク装置にアクセスするディスクアクセスステップと、
キュー格納ステップに格納されているライトバック要求数が所定値より大きいときには、ライトバック要求の格納先を予備ディスク装置のキューに変更して格納するキュー変更格納ステップと、
予備ディスク装置のキューに格納されたライトバック要求を予備ディスク装置にライトする予備ディスクライトステップと、
キュー格納ステップに格納されているライトバック要求数が所定の閾値より小さくなったときに、予備ディスク装置に格納されているライトバック要求をディスク装置のキューに書き戻すライトバック要求書き戻しステップと、
をコンピュータに実行させることを特徴とするディスク制御プログラム。
【請求項７】
リード要求に対応するデータが予備ディスク装置にあるときには、リード要求を予備ディスク装置のキューに格納するステップを有することを特徴とする請求項６記載のディスク制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストからのライト要求、リード要求に対して、ディスク装置アクセスを迅速化するディスク制御装置、ディスク制御方法、ディスク制御プログラムに関する。
【背景技術】
【０００２】
ディスク制御装置は、上位側のインターフェースであるホストと下位側のインターフェースであるディスク装置と接続されて、一つのシステムを構成している。ホストから送られたライトデータが徐々に多くなり、遂には新規にホストから送られたライトデータを格納するための十分なキャッシュメモリ容量が存在しない場合、ディスク制御装置は、ライトバック方式に従い、キャッシュメモリ内の該当ブロックのライトデータを、本来のディスク装置に書き込むことによって、新規にホストから送られたライトデータを格納するための十分なキャッシュメモリ領域を確保する為の処理を行う。このディスク装置への書き込み中のときのホストからのライトコマンドに対しては、ディスク制御装置の処理キュー内の待ち行列に、ライト要求を格納することになる。
【０００３】
この状況において、リード要求を受けたディスク制御装置が、ディスク装置へのリード要求を発行して、ディスク装置の処理キュー内に、そのリード要求を格納していく時点で、既に、その処理キュー内の待ち行列には、多くのライト要求が格納されている。リード要求は、既に割り当てられているライト要求のディスク装置へのライト処理が完了するのを待って、行われることになる。その為、リード性能は、ライトデータのアクセス処理による影響を大いに受けることになる。これは、ライトバック処理を行っていない状況のリード性能に比して、ライトバック処理時のリード性能のダウンの発生である。このため、ライト要求、リード要求の順番を並べ替えることで、ヘッドの移動時間を短縮し、ディスクへのリード／ライト処理のスループットを向上させる方法が提案されている(特許文献１参照)。
【特許文献１】特開平５−２５７６１４号公報（段落０００２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この特許文献１の方法は、ヘッドの移動時間を短縮することを目的としているため、ライト要求との関連において、リード要求が待たされる場合が出てくる。本願発明は、キャッシュメモリのライトデータをディスク装置にライトバックする処理において、ライト要求が、リード要求に比して多くなることによって生じるリード性能を簡単に改善するディスク制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本願発明のディスク制御装置は、キャッシュメモリからのライトバック要求またはホストからのリード要求を時系列にディスク装置のキューに格納するキュー格納手段と、格納された要求をキューから順次読み出し、ディスク装置にアクセスするディスクアクセス手段と、キュー格納手段に格納されているライトバック要求数が所定値より大きいときには、ライトバック要求の格納先を予備ディスク装置のキューに変更して格納するキュー変更格納手段と、予備ディスク装置のキューに格納されたライトバック要求を予備ディスク装置にライトする予備ディスクライト手段と、キュー格納手段に格納されているライトバック要求数が所定の閾値より小さくなったときに、予備ディスク装置に格納されているライトバック要求をディスク装置のキューに書き戻すライトバック要求書き戻し手段と、を有する構成である。
【０００６】
この構成により、ディスク装置へのライトバック要求が所定値数より大きくなるとホットスペアディスク等の予備ディスクにライトバック要求が実行されるので、その後のディスク装置へのリード要求は、先行する予備ディスクへライトされるライトバック要求を飛び越して、処理がされることになり、リード要求を効率的に実行できる。
【０００７】
また、予備ディスク装置がホットスペアディスク装置である構成である。この構成により、予備ディスク装置として、新たな装置を準備する必要がない。
【０００８】
また、リード要求に対応するデータが予備ディスク装置にあるときには、リード要求を予備ディスク装置のキューに格納する構成である。この構成により、予備ディスク装置でリード要求を実行できるので、更にリード要求の処理が促進できる。
【発明の効果】
【０００９】
本発明により、ライトバック処理時のリード性能のダウンの軽減、ライトバック時にも安定したリード性能の実現ができる。
【発明を実施するための最良の形態】
【００１０】
（実施例１）
図１に実施例のディスク制御装置の構成図を示す。ディスクシステム１１は、ディスク制御装置１、ホスト２１、ディスク装置２２、ホットスペアディスク装置２３を有する。ホスト２１は、ディスク制御装置１に対して、リードコマンドおよびライトコマンドの命令を発行して、ディスク制御装置１からの結果の報告を待つ。ディスク装置２２は、複数のディスク媒体を搭載しており、論理ボリュームに分割されて管理されている。そして、ディスク制御装置１からリードアクセス、ライトアクセスされる。ホットスペアディスク装置２３は、ＲＡＩＤグループに属するディスク装置２２のリビルドまたはコピーバック時の故障ディスクの代替ディスクとして使用されるホットスペアのための装置である。本実施例では、故障ディスクの代替ディスクとしてだけではなく、ライトバック処理時専用のライトデータの退避の代替ディスクとしても使用される。ディスク制御装置１は、通信制御部２、キャッシュ制御部３、キャッシュメモリ４、ライトバック処理部５、ディスク装置処理キュー６、ホットスペアディスク処理キュー７、ホットスペアディスク書戻し部８、リードライト部９を有する。通信制御部２は、ホスト２１との通信の制御を行う。キャッシュ制御部３は、ホスト２１からのコマンドに対して、キャッシュメモリ４上にデータが有るか否か、すなわちキャッシュヒットかキャッシュミスかのチェックを行う。その結果をもとにリード要求の指示またはライトバックのためのライト要求の指示をライトバック処理部５に発行する。ライト要求は、ディスク上の格納位置を示すＬＢＡ(Logic Block Address)とキャッシュメモリ上のデータ位置を示すアドレスを有する。リード要求は、ディスク上の格納位置を示すＬＢＡ(Logic Block Address)を有する。ホスト２１とディスク装置２２，２３のＬＢＡ、転送長は、同一とする。キャッシュメモリ４は、ホスト２１から転送されるライトデータ、ディスク装置２２からリードされるデータを格納する為の領域である。また、ＬＢＡとＬＢＡに対応するデータのデータ位置を示すテーブルおよび管理テーブル４１を格納している。管理テーブル４１は、ホットスペアディスク処理キュー７に格納されているライト要求のＬＢＡを管理している。ライトバック処理部５は、ライトバックされるデータのためのライト要求およびリード要求の制御を行う。ディスク装置処理キュー６は、ディスク装置２２のための処理キューを示し、リード要求およびライト要求を受け付けた時系列に従って格納する。このため、FIFO(First In First Out)メモリを使用している。ホットスペアディスク処理キュー７は、ホットスペアディスク装置２３のための処理キューを示し、ディスク装置処理キュー６が閾値を越えた場合に、ライト要求を時系列順にFIFO(First In First Out)メモリに格納する。リード要求は、管理テーブル４１に該当のリード要求に対応するＬＢＡがある場合に格納される。ホットスペアディスク書戻し部８は、ホットスペアディスク装置２３からディスク装置２２へのライトデータの書き戻しの制御を行う。リードライト部９は、ディスク装置処理キュー６、ホットスペアディスク処理キュー７にリード要求またはライト要求がある場合にディスク装置２２、ホットスペアディスク装置２３へのリード／ライトアクセスを行う。
【００１１】
ディスク制御装置１の動作概要は、次のようである。ホスト２１から送られたライトデータが徐々に多くなり、遂には新規にホスト２１から送られたライトデータを格納するための十分なキャッシュメモリ容量が存在しない場合、ディスク制御装置１は、ディスク装置２２へコヒーレンシが保たれていない状態のキャッシュメモリ４内のブロックデータを、ディスク装置２２へライトバックすることで、新規にホストから送られたライトデータを格納するために必要なキャッシュメモリ４の領域を確保する為の処理を行う。そのため、キャッシュ制御部３は、ライトバック処理部５にライト要求を発行する。この結果、ライトバック処理部５は、ディスク装置処理キュー６にライト要求として順次格納していく。そして、ディスク装置処理キュー６の先頭に位置するライト要求に対応するデータは、リードライト部９によりディスク装置２２にライトされる。一方、ホスト２１から送られたライトデータは、ライトバック処理により、キャッシュメモリ４に空き領域が発生した時点でキャッシュメモリ４に格納される。また、ホスト２１から送られて来たリードコマンドの場合は、キャッシュヒットすれば、ヒットしたデータが読み出される。しかし、キャッシュミスの場合には、キャッシュ制御部３から、ライトバック処理部５にリードコマンドの実行のリード要求が発行される。ライトバック処理部５は、ディスク装置処理キュー２２に対してリード要求をセットする。そして、このライトバック処理中は、予め設定されているライト要求数の閾値を超えた時点で、ホットスペアディスク装置２３のホットスペアディスク処理キュー７にライト要求を格納する。ディスク装置処理キュー６は、閾値を超えた時点で、その後のホストからのライト要求は格納されない。但し、閾値を超えても、キャッシュミスのリード要求は格納される。この結果、従来のライトバック処理を行っている場合に比べて、先行するライト要求が多い場合でも、リード要求が先行して処理できるため、リード性能のダウンを防ぐことができる。また、ホットスペアディスク装置２３に書き込まれたライトデータは、そのライトデータを保存すべき本来のディスク装置２２に対して、予め設定されているディスク装置２２のディスク装置処理キュー６に格納されるライト要求数が所定の閾値より少なくなった時点で、書き戻す。
【００１２】
図２に、実施例のキャッシュ制御部の処理の流れ図を示す。
【００１３】
まず、ホスト２１からのコマンドを受信する(S11ステップ)。次に、コマンド種別をチェックする(S12ステップ)。ライトコマンドの場合には、残存のキャッシュメモリ容量、コマンドに対応するブロックデータがキャッシュメモリ４内にあるか否かをチェックする。そして、ライトバックの要否を判断する(S13ステップ)。ライトバックが必要の場合には、ライト要求をライトバック処理部５に発行する(S14ステップ)。一方、ライトバック不要の場合には、ライトデータをキャッシュメモリに格納する(S15ステップ)。また、リードコマンドの受信の場合には、キャッシュヒットか否かを確認する(S17ステップ)。キャッシュヒットでない場合には、リード要求をライトバック処理部５に発行する(S18ステップ)。キャッシュヒットの場合には、リードデータを通信制御部２経由でホスト２１に送信する(S19ステップ)。
【００１４】
図３に、実施例のライトバック処理部の処理の流れ図を示す。キャッシュメモリ４に十分な空き領域がなく、ライトバック処理を行っている状況の場合を想定している。このような場合、ホストから、ディスク制御装置１を介して、ディスク装置２２に対するリードアクセスおよびライトアクセスを行う処理の流れは、以下のようになる。まず、キャッシュ制御部３からのライト要求若しくはリード要求、またはホットスペアディスク装置２３からの書き戻しによるライト要求を受けたか否かを確認する（S21ステップ）。ライト要求がある場合には、管理テーブル４１にＬＢＡの有無を確認する(S22ステップ）。管理テーブル４１にＬＢＡがある場合には、S26ステップへ行く。管理テーブル４１にＬＢＡがない場合には、ディスク装置２２のディスク装置処理キュー６のライト要求数が、閾値Ａを超えているか否かをチェックする（S23ステップ）。そのディスク装置処理キュー６内のライト要求数が、閾値Ａを超えていない場合、キャッシュメモリ４から、該当ブロックデータをライトバックするため、該当ブロックデータに対応するライト要求をディスク装置処理キュー６にセットする（S24ステップ）。次に、ディスク装置処理キュー６のライト要求数をカウントアップする（S25ステップ）。また、ディスク装置処理キュー６内のライト要求数が、閾値を越えている場合には、ディスク装置２２ではなく、ホットスペアディスク装置２３に、ライト要求を発行し、ホットスペアディスク処理キュー７内に、ライト要求を格納する。また、管理テーブル４１にＬＢＡを格納する（S26ステップ）。一方、キャッシュ制御部３からのリード要求を検出した場合は、管理テーブル４１に該当ＬＢＡの有無を検出する(S27ステップ)。無い場合は、ディスク装置処理キュー６にリード要求をセットする(S28ステップ)。管理テーブル４１に該当ＬＢＡが有る場合には、ホットスペアディスク装置処理キュー７にセットする(S29ステップ)。この結果、閾値Ａに関係なくリード要求をディスク装置処理キュー６にセットできるので、リード要求の処理を促進できる。また、リード要求に対応するデータがホットスペアディスク装置２３にある場合には、リード要求をホットスペアディスク装置キューにセットできるので、リード要求の処理を早めることができる。
【００１５】
このように、ディスク制御装置１が、ライトバック処理を行っている状況において、ホストがリード要求を行った場合に、そのリード要求は、ライトデータのアクセス処理による影響を受けることが減少する。この結果、ライトバック処理を行っていない状況のリード性能に比して、ライトバック処理時のリード性能のダウンを回避できる。
【００１６】
図４に実施例のホットスペアディスク書戻し部の書戻し処理の流れ図を示す。まず、ディスク装置処理キュー６のライト要求数≦閾値Ｂか否かをチェックする（S31ステップ）。閾値Ｂを越えていれば、終了する。閾値Ｂ以下であれば、ライトバックするものがあるか否かを判断する（S32ステップ）。ライトバックするものがあれば、ライトバック処理部５にライト要求の格納要求を送る。ライト要求は、ディスク処理キュー６に格納される。ホットスペアディスク書き戻し部８は、ライトバック処理部５から格納完了通知を受けるとライト要求に対応する管理テーブル４１上のＬＢＡを削除する（S33ステップ）。ホットスペアディスク装置２３からディスク装置２２へのライト要求によりディスク処理キュー６の閾値が、閾値Ａに等しいか否かをチェックする（S34ステップ）。ここで、閾値Ｂは、閾値Ａより小さいものとする。ライト要求数が閾値Ａと等しければ、ディスク装置処理キュー６は、これ以上ライト要求を受け付けられないので、処理を終了する。ライト要求数が閾値Ａより小さければ、S32ステップへ戻る。
【００１７】
リードライト部９は、ディスク装置処理キュー６、ホットスペアディスク処理キュー７にリード要求またはライト要求がある場合にその要求に従って、ディスク装置２２、ホットスペアディスク装置２３へのリード／ライトアクセスを行う。また、ディスク装置２２、ホットスペアディスク装置２３へのライト処理が完了すれば、ライトバック処理部５経由で完了通知をキャッシュ制御部３に通知する。キャッシュ制御部３は、この完了通知を受けるとキャッシュメモリ４に、ホスト２１からのデータをライトする。またリードライト部９は、ディスク装置２２またはホットスペアディスク装置２３のリード処理が完了すれば、リードデータをライトバック処理部５経由でキャッシュ制御部３に送る。キャッシュ制御部３は、リードデータをホスト２１に送信する。そしてリードデータはキャッシュメモリにもライトされる。キャッシュ領域に空きがなければライトバックが生ずる。また、ホットスペアディスク装置２３へのライト処理が完了したときに、ライトバック処理部５経由で完了通知をキャッシュ制御部３に通知しないシステムのときは、リード要求は、ディスク装置処理キュー６にのみ格納される。
【００１８】
図５に実施例のライトバック処理の説明図を示す。ホスト２１からライトコマンドW21〜W32、リードコマンドR1,R2を受信するものとする。また、ライトコマンドW21〜W32に対応して、ライトバックするデータをW1〜W12と呼ぶ。ホスト２１からのコマンドの受信順序は、W21〜W24、R1、W25〜W29、R2、W30〜W32の順番とする。閾値Ａ＝４とする。管理テーブル４１にR1,R2のＬＢＡがない場合の例である。ディスク制御装置１は、キャッシュメモリ容量の残存がなく、かつキャッシュミスの場合を想定する。ホスト２１からのW21〜W24を受信すると、キャッシュメモリ４からライトバックするライト要求のW1〜W4の順に１つのディスク装置２２のディスク装置処理キュー６に格納される。ライトバック処理を行っている為、ホストからのリードコマンドR1は、ライト要求W1〜W4の処理の完了を待つ必要がある。以後のW25〜W29のライトコマンドを受信すると、対応するW5〜W9のライト要求がホットスペアディスク処理キュー７に格納される。次に受信したリードコマンドR2については、ディスク装置処理キュー６内にリード要求R2として格納される。
【００１９】
そして、次に、W30〜W32のライトコマンドを受信すると、対応するW10〜W12のライト要求がホットスペアディスク処理キュー７に格納される。
【００２０】
ホットスペアディスク装置２３を使用しない従来のライトバック処理の場合、ディスク装置処理キュー６に格納されるR2のリード要求は、W5〜W9のライト要求の完了を待つ必要があるが、本発明のライトバック処理の場合、ライト要求数の閾値管理により、W5〜W9のライト要求をホットスペアディスク処理キュー７内に格納する。その為、R2のリード要求は、W5〜W9のライト要求の完了を待つ必要がなく、R1のリード要求の完了に引き続き、処理を実行する。これは、R2からのリード要求は、従来のライトバック処理のライト要求の影響を受けないことを意味しており、結果として、ライトバック処理時のリード性能の改善に繋がっている。ホットスペアディスク装置２３に書き込まれたライト要求のライトデータは、ライトバック処理とは非同期に、そのライトデータを保存すべき本来のディスク装置２３に書き戻し、ホットスペアディスク装置２３は、ライトデータ退避用としての役割を終了する。
【００２１】
ホットスペアディスク装置２３からディスク装置２２に書き戻すタイミングは、ディスク装置２３へのアクセスが比較的少ない状況が望ましい。その状況を、ディスク装置処理キュー６内のライト要求数で判断し、設定した閾値Ｂよりも少なくなった時点で書き戻す。この閾値の概念を用いることにより、ディスク装置２２およびホットスペアディスク装置２３へのリードおよびライトアクセスを、適切なアクセス頻度で行うことが可能になる。この結果、ディスク制御装置１のキャッシュメモリ４に空き領域がなくなり、キャッシュメモリ４のライトデータをディスク装置２２に書き戻す処理において、多数の論理ディスクボリューム数を持つ１つの物理ディスクへのリードおよびライト要求を管理している１つの処理キュー内に、ライト要求が、リード要求に比して多くなることによって生じるリード性能を改善することが可能となる。
【産業上の利用可能性】
【００２２】
本発明は、ライトバック中のリード要求の性能を向上するディスク制御装置を提供する用途に適用できる。
【図面の簡単な説明】
【００２３】
【図１】実施例のディスク制御装置の構成図
【図２】実施例のキャッシュ制御部の処理の流れ図
【図３】実施例のライトバック処理部の処理の流れ図
【図４】実施例のホットスペアディスク書戻し部の書戻し処理の流れ図
【図５】実施例のライトバック処理の説明図
【符号の説明】
【００２４】
１  ディスク制御装置
２  通信制御部
３  キャッシュ制御部
４  キャッシュメモリ
５  ライトバック処理部
６  ディスク装置処理キュー
７  ホットスペアディスク処理キュー
８  ホットスペアディスク書戻し部
９  リードライト部
１１  ディスクシステム
２１  ホスト
２２  ディスク装置
２３  ホットスペアディスク
４１  管理テーブル 
【図１】
0004788528.tif 000002
【図２】
0004788528.tif 000003
【図３】
0004788528.tif 000004
【図４】
0004788528.tif 000005
【図５】
0004788528.tif 000006