説明

ストレージ装置

【課題】ファイルの特定領域のキャッシュメモリへの固定化が容易に行えるストレージ装置を提供することである。
【解決手段】ホスト計算機12からキャッシュ固定化のファイル領域を指定した領域通知命令19を入力すると、領域通知命令19を物理ディスク14に通知し、その後にキャッシュメモリ17に固定化したいファイル領域を実際にReadし、すべてのファイル領域をReadした後に再度領域通知命令19を発行し、2つの領域通知命令19の間に処理したRead要求の物理ディスク14でのブロックをキャッシュメモリ17に固定化する。

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

【特許請求の範囲】
【請求項1】
ホスト計算機からキャッシュ固定化のファイル領域を指定した領域通知命令を入力すると、領域通知命令を物理ディスクに通知し、その後にキャッシュメモリに固定化したいファイル領域を実際にReadし、すべてのファイル領域をReadした後に再度領域通知命令を発行し、2つの領域通知命令の間に処理したRead要求の物理ディスクでのブロックをキャッシュメモリに固定化することを特徴とするストレージ装置。
【請求項2】
キャッシュ固定化するファイル領域のRead要求については、ある特定のパターンを与えることによって、他のRead要求と識別できるようにしたことを特徴とする請求項1記載のストレージ装置。

【図1】
image rotate