(57)【要約】【課題】ファイルの特定領域のキャッシュメモリへの固定化が容易に行えるストレージ装置を提供することである。【解決手段】ホスト計算機１２からキャッシュ固定化のファイル領域を指定した領域通知命令１９を入力すると、領域通知命令１９を物理ディスク１４に通知し、その後にキャッシュメモリ１７に固定化したいファイル領域を実際にReadし、すべてのファイル領域をReadした後に再度領域通知命令１９を発行し、２つの領域通知命令１９の間に処理したRead要求の物理ディスク１４でのブロックをキャッシュメモリ１７に固定化する。【選択図】図１
2008026970.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機からキャッシュ固定化のファイル領域を指定した領域通知命令を入力すると、領域通知命令を物理ディスクに通知し、その後にキャッシュメモリに固定化したいファイル領域を実際にReadし、すべてのファイル領域をReadした後に再度領域通知命令を発行し、２つの領域通知命令の間に処理したRead要求の物理ディスクでのブロックをキャッシュメモリに固定化することを特徴とするストレージ装置。
【請求項２】
キャッシュ固定化するファイル領域のRead要求については、ある特定のパターンを与えることによって、他のRead要求と識別できるようにしたことを特徴とする請求項１記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機コンピュータとデータ送受信処理を行いデータを記憶するストレージ装置に関する。
【背景技術】
【０００２】
ストレージ装置はキャッシュメモリを持ちデータをキャッシュして、ストレージ装置上のデータのRead/Writeアクセスを高速化するようにしている。キャッシュメモリのサイズに比べて、ディスクメモリのサイズは遥かに大きいので、すべてのデータがキャッシュメモリ上で高速にアクセスできるわけではない。一般的には、アクセス頻度の高いデータがキャッシュされるように制御されている。
【０００３】
このようなキャッシュ制御に頼らずに、常にデータをキャッシュメモリ上に確保するような仕組み（固定化）も実現されている。これは、論理ユニット全体を保管できるだけのメモリを用意して、そこに論理ユニット全体のデータを常に存在させるものである。
【０００４】
一般的にキャッシュの固定化とは、キャッシュメモリに保存したデータをキャッシュに常駐化させることである。そして常駐とは、常駐させるデータを追い出しするデータの対象としないことである。すなわち、キャッシュメモリをアクセスしてキャッシュミスヒットが発生したときに、ミスヒットしたデータをキャッシュメモリに保存する際に、キャッシュメモリにそのデータを保存するだけの空き容量が不足して、既に保存しているデータをキャッシュメモリから追い出して、その容量を確保する場合に、常駐させるデータを追い出しするデータの対象としないことである。
【０００５】
このキャッシュの固定化は、ストレージ装置のキャッシュメモリを制御するファームウェアが実現している。ファームウェアにとってストレージ装置上のデータは単なるブロックであって、ホスト計算機のファイルとの関連は全くわからない。従って、ある特定のファイルのデータをキャッシュメモリに固定化しようとしても、それがどのブロックに相当するのかストレージ装置のファームウェアにはわからない。従って、これまでは論理ユニット全体のデータをキャッシュメモリに固定化させていた。
【０００６】
メモリサイズには限度があるので、あまり大きな論理ユニットは固定化できない。また、論理ユニット単位でのキャッシュ固定化では、アプリケーション側の自由度が低くなる。ファイルシステムを介してデータにアクセスする場合、通常、ファイルシステムは論理ユニット単位で構築するため、ファイルシステム全体をキャッシュ固定化せざるを得ない。従って、キャッシュ化するファイルを特定のファイルシステムに集める必要がある。ファイルの利用者としては、ファイルシステム単位（論理ユニット単位）ではなく、ファイル単位にストレージ装置上のキャッシュメモリに固定化できた方が便利である。
【０００７】
ここで、ストレージ装置のキャッシュ制御方法として、複数の計算機に接続されたストレージ装置の制御装置におけるディスクキャッシュメモリ内にそれぞれの計算機に対応した最低保証値の大きさの格納領域を設定し、それぞれの計算機に対応した優先度に応じてそれぞれの計算機に格納領域を割り当てるようにしたものがある（例えば、特許文献１参照）。
【特許文献１】特開２００５−３３９２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが、ファイルシステム上のファイルはブロック単位に分割され、それらのブロックは物理ディスク上にばらばらに配置される。物理ディスク上のデータは、このブロック単位で管理され、ファイルという概念は存在しない。従って、ファイルシステム上のファイル領域を物理ディスク上のキャッシュに固定化しようとしても、物理ディスクでは、どのブロックをキャッシュに固定化すべきかわかり得ないという問題がある。
【０００９】
本発明の目的は、ファイルの特定領域のキャッシュメモリへの固定化が容易に行えるストレージ装置を提供することである。
【課題を解決するための手段】
【００１０】
請求項１の発明に係わるストレージ装置は、ホスト計算機からキャッシュ固定化のファイル領域を指定した領域通知命令を入力すると、領域通知命令を物理ディスクに通知し、その後にキャッシュメモリに固定化したいファイル領域を実際にReadし、すべてのファイル領域をReadした後に再度領域通知命令を発行し、２つの領域通知命令の間に処理したRead要求の物理ディスクでのブロックをキャッシュメモリに固定化することを特徴とする
請求項２の発明に係わるストレージ装置は、請求項１の発明において、キャッシュ固定化するファイル領域のRead要求については、ある特定のパターンを与えることによって、他のRead要求と識別できるようにしたことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ファイルシステムの特定ファイルの特定領域が格納される物理ディスク上のデータをキャッシュメモリに固定化させるので、その特定領域の物理ディスクへのRead/Writeアクセスを高速に行うことができる。
【発明を実施するための最良の形態】
【００１２】
図１は本発明の実施の形態に係わるストレージ装置の構成図である。ストレージ装置１１はホスト計算機１２に接続されている。ホスト計算機１２上にはファイルシステム１３があって、ストレージ装置１１上のデータをファイルとして管理している。ファイルのデータは、ストレージ装置１１内の物理ディスク１４に格納されるが、それはデータブロック１５単位で格納される。
【００１３】
ファイルのデータブロック１５が物理ディスク１４上のどの位置に格納されるか管理しているのは、ホスト計算機１２のファイルシステム１３であり、ストレージ装置１１は関知しない。ホスト計算機１２のファイルシステム１３がストレージ装置１１に対してデータブロック１５のI/Oを行うとき、ストレージ装置１１側ではファームウェア１６がそのI/O要求を処理している。その際、ファームウェア１６は、何らかのアルゴリズムをもって、キャッシュメモリ１７上に一部のデータブロック１５を残し、ホスト計算機１２からのI/O要求が高速に処理されるようにしている。
【００１４】
ファームウェア１６は通常のI/O要求とは別に、データブロック１５のキャッシュ固定化のための領域通知命令１９をホスト計算機１２から受け取れるようになっている。ホスト計算機１１上には制御コマンド１８があり、この制御コマンド１８が領域通知命令１９とストレージ装置１１へのファイル領域のReadとを組み合わせて実行することで、ストレージ装置１１のファームウェア１６が、指定されたファイル領域をストレージ装置１１内のキャッシュメモリ１７に固定化できるようになる。
【００１５】
制御コマンド１８を実行し、キャッシュメモリ１７に固定化したいファイル領域をストレージ装置１１のファームウェア１６に通知し、ファームウェア１６は通知されたファイル領域（＝データブロック）をキャッシュメモリ１７に固定化する。これは次のような手順で行われる。
【００１６】
（１）制御コマンド１８は領域通知命令１９をストレージ装置１１に発行する。
【００１７】
領域通知命令１９を受け取ったファームウェア１６は、次に領域通知命令１９を受け取るまでに処理する次の（２）のRead要求のデータブロック１５をキャッシュメモリ１７に固定化する。
【００１８】
（２）制御コマンド１８はファイル領域をReadする。
【００１９】
（３）ファイル領域のReadがホスト計算機１２のキャッシュではなく、ストレージ装置１１に対して発行されるように、制御コマンド１８はホスト計算機１２のキャッシュフラッシュなどの操作を行う。これはホスト計算機１１のOSやファイルシステム１３に依存した操作である。
【００２０】
（４）制御コマンド１８は領域通知命令１９をストレージ装置１１に発行する。領域通知命令１９を受け取ったファームウェア１６は、データブロック１５のキャッシュ固定化処理を終了する。
【００２１】
ここで、上記（２）の処理に関して、制御コマンド１８によるファイル領域のReadと並行して、別のプロセスによって全く無関係のデータブロック１５のReadが行われることが考えられる。上記の手順では、そのような無関係のデータブロックもキャッシュメモリ１７に固定化されてしまう。
【００２２】
そこで、これを避けるため、領域通知命令１９のオプションとして、（２）のReadのパターンを指定できるようにする。パターンの一つの例としては、Readの２回実行が考えられる。（２）の期間中に２回のReadが行われたデータブロック１５についてのみキャッシュメモリ１７に固定化することで、無関係のデータブロック１５のキャッシュ固定化を極力排除することができる。
【００２３】
また、領域通知命令１９の別のオプションとして、キャッシュ固定化の解除指定も用意する。上記手順の（１）と（４）とにおいて、領域通知命令１９を解除指定で発行することによって、キャッシュ固定化と同様の手順で、それまでにキャッシュ固定化していたデータブロック１５のキャッシュ固定化解除を行えるようにする。（２）でReadされるデータブロック１５について、それがキャッシュメモリ１５に固定化されていれば、ファームウェア１６は固定化の解除を行う。この際、前述のようなReadパターンの指定を考慮することは有効である。
【００２４】
このように本発明の実施の形態では、キャッシュ固定化するファイル領域を物理ディスク１４に通知するための領域通知命令１９を用意する。ホスト計算機１１からこの領域通知命令１９を物理ディスク１４に発行した後、キャッシュメモリ１７に固定化したいファイル領域を実際にホスト計算機１１からReadする。すべてのファイル領域をReadしたら、再度、領域通知命令１９を発行する。物理ディスク１４では、２つの領域通知命令１９の間に処理したRead要求のブロック１５をキャッシュメモリ１７に固定化する。
【００２５】
この際、キャッシュメモリ１７に固定化するつもりのないファイル領域のReadがホスト計算機１１から発行されることも考えられるので、キャッシュ固定化するファイル領域のRead要求については、ある特定のパターン（例えば２回Readする）を与えることによって、他のRead要求と識別できるようにする。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係わるストレージ装置の構成図。
【符号の説明】
【００２７】
１１…ストレージ装置、１２…ホスト計算機、１３…ファイルシステム、１４…物理ディスク、１５…データブロック、１６…ファームウェア、１７…キャッシュメモリ、１８…制御コマンド、１９…領域通知命令
【図１】
2008026970.tif 000003