(57)【要約】【課題】  上位装置から論理ボリュームの任意の領域に対してアクセスが行なわれる場合であっても、上位装置からのアクセスを高速に行なうことが可能なディスクキャッシュ制御装置を提供する。【解決手段】  ディスクキャッシュ制御装置１０に、下位装置から読出したデータを一時的又は所定時間だけ記憶するデータ記憶手段１１と、論理ボリュームの領域とデータ記憶手段の領域とを関連付ける管理情報を記憶する管理情報記憶手段１２と、管理情報を生成する管理情報生成手段１３と、上位装置からの要求に応じてデータ記憶手段又は下位装置のデータにアクセスするアクセス処理手段１４と、を少なくとも備える。【選択図】図１
2007102314.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から下位装置に対して論理ボリューム毎にアクセス可能に制御するディスクアレイ制御装置において、
前記上位装置から要求されたデータを、前記下位装置から読出して記憶するデータ記憶手段と、
前記論理ボリュームの領域と前記データ記憶手段の領域とを関連付ける管理情報を記憶する管理情報記憶手段と、
上位装置から要求のあった任意のデータについて、前記論理ボリュームの領域を前記データ記憶手段の所定の範囲内にある領域であって前記データを常駐させる領域に割当てる前記管理情報を、該割当てた前記論理ボリュームの全領域が所定の大きさとなるまで生成する管理情報生成手段と、
上位装置から要求のあったデータの格納場所を前記管理情報から取得し、該取得した格納場所のデータに対して読み書き処理を行なうアクセス処理手段と、
を備えることを特徴とするディスクキャッシュ制御装置。
【請求項２】
前記管理情報は、
前記論理ボリュームの領域と前記データ記憶手段の所定の範囲内にある領域であって前記データを常駐させる領域とを関連付ける常駐記憶領域管理情報と、
前記論理ボリュームの領域と前記データ記憶手段の前記所定の範囲外にある領域であって一時的又は所定期間だけ前記データを記憶する領域とを関連付ける一時記憶領域管理情報と、
を備え、
上位装置から要求のあったデータに応じて、前記常駐記憶領域管理情報と前記一時記憶領域管理情報とのいずれかの管理情報を生成するとともに、前記データを下位装置から読出して、前記管理情報によって割当てられた前記データ記憶手段の領域に記憶する請求項１に記載のディスクキャッシュ制御装置。
【請求項３】
前記データ記憶手段は、
前記上位装置から要求されたデータを、前記下位装置から読出して常駐させる常駐記憶手段と、
前記上位装置から要求されたデータを、前記下位装置から読出して一時的又は所定期間だけ記憶する一時記憶手段と、
を備える請求項１に記載のディスクキャッシュ制御装置。
【請求項４】
上位装置から下位装置に対して論理ボリューム毎にアクセス可能に制御するディスクアレイ制御方法であって、
前記上位装置から要求のあった任意のデータについて、該データを前記下位装置から読出して記憶するデータ記憶手段の所定の範囲内にある領域であって前記データを常駐させる領域に前記論理ボリュームの領域を割当てるための管理情報を、該割当てた前記論理ボリュームの全領域が所定の大きさとなるまで生成し、
前記上位装置から要求のあったデータの格納場所を前記管理情報から取得し、該取得した格納場所のデータに対して読み書き処理を行なう、
ことをディスクアレイ制御装置に行なわせることを特徴とするディスクキャッシュ制御方法。
【請求項５】
上位装置から下位装置に対して論理ボリューム毎にアクセス可能に制御するディスクアレイ制御を実現するためのプログラムであって、
前記上位装置から要求のあった任意のデータについて、該データを前記下位装置から読出して記憶するデータ記憶手段の所定の範囲内にある領域であって前記データを常駐させる領域に前記論理ボリュームの領域を割当てるための管理情報を、該割当てた前記論理ボリュームの全領域が所定の大きさとなるまで生成し、
前記上位装置から要求のあったデータの格納場所を前記管理情報から取得し、該取得した格納場所のデータに対して読み書き処理を行なう、
ことをディスクアレイ制御装置に実行させることを特徴とするディスクキャッシュ制御のためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置から下位装置に対して論理ボリューム毎にアクセス可能に制御するディスクアレイ制御装置におけるディスクキャッシュ制御装置に関する。
【背景技術】
【０００２】
ディスクアレイ装置（ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ／Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）装置）等の記憶装置では、処理を高速にするためにキャッシュメモリを搭載し、ディスクに対して読み書きすることなくＲＥＡＤ／ＷＲＩＴＥ Ｉ／Ｏ処理（以下、単に「アクセス」という）を行っている。
【０００３】
また、ディスクアレイ装置等の記憶装置は、ホストコンピュータ（上位装置のＣＰＵ）がディスクアレイに対して論理ボリューム（以下、単に「ＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）」という）毎にアクセス可能に制御することが一般的である。
【０００４】
キャッシュメモリは、ディスクアレイ装置が保持するＬＵＮより容量が小さいので、使用頻度が低いデータ等はディスクに書き戻してキャッシュメモリから追い出すようにして有効利用している。
【０００５】
したがって、キャッシュメモリ上にないデータやキャッシュメモリから追い出されたデータに対してＲＥＡＤ Ｉ／Ｏが発行された場合には、その都度ディスクから読み込むことになるので、Ｉ／Ｏレスポンスが低下することになる。
【０００６】
また、場合によって、使用頻度は少ないが高速に処理したいＬＵＮや、他のＬＵＮの負荷に影響を受けることなく高速に処理したいＬＵＮを必要とする場合もある。
上述のような問題に対応するために、バインド・イン・キャッシュ（Ｂｉｎｄ  Ｉｎ  Ｃａｃｈｅ）機能が広く使用されている。
【０００７】
バインド・イン・キャッシュ機能とは、あるＬＵＮの領域をキャッシュメモリの特定の領域にあらかじめ割り当てて、当該領域に対して処理されるデータを常にキャッシュメモリ上に常駐させることにより、高速に処理する機能である。
【０００８】
図７は、バインド・イン・キャッシュ機能の概念を示す図である。
図７では、ＬＵＮ７０の領域Ａがキャッシュメモリ７１の特定領域Ａ’に割当てられていることを示している。そして、ステージング処理等によって、下位装置（例えば、ディスクアレイ装置を構成するディスク装置）から読出された領域Ａのデータは、特定領域Ａ’に格納されて常駐する。
【０００９】
したがって、ホストコンピュータ等の上位装置からＬＵＮ７０の領域Ａに対してＲＥＡＤ／ＷＲＩＴＥ  Ｉ／Ｏ要求が行なわれると、常にキャッシュメモリ７１の特定領域Ａ’に対して処理が行なわれることとなる。
【００１０】
すなわち、ＬＵＮ７０の領域Ａのデータが格納されている下位装置にアクセスする必要がなくなるので、高速な処理が可能となる。
上述したバインド・イン・キャッシュ機能ではアクセスされる範囲が明確に決まっていて、その範囲全体を高速に処理させる必要がある場合には非常に有効である。
【００１１】
しかし、ＬＵＮ７０に対するアクセス範囲が分散している場合や、アクセス範囲が動的に変化する場合などには必ずしも有効とは言えない（例えば Ｏｐｅｎ  ｓｙｓｔｅｍでのファイルアクセスではどの範囲にアクセスされるかはファイルシステムに依存する）。
【００１２】
図８は、アクセス範囲が動的に変化する場合のＬＵＮ８０とキャッシュメモリ８１について説明する図である。
図８に示すように、Ｏｐｅｎ  ｓｙｓｔｅｍでのファイルアクセス処理では、上位装置からＬＵＮ８１の領域Ｂ、Ｃ、Ｄといった任意の（不特定な）領域に対してアクセスが行なわれる。一般に、キャッシュメモリ８１の容量は、ＬＵＮ８１の容量より小さいため、例えば、領域Ｄをキャッシュメモリ８１に割当てることができないこととなる（図８の場合には、領域Ｂ、Ｃのデータは特定領域Ｂ’、Ｃ’に常駐されるが、領域Ｄのデータはキャッシュメモリ８１に常駐することができない）。
【００１３】
このような場合、あらかじめキャッシュメモリ８１に常駐させる範囲を特定することは困難であるために、ある一定の範囲（例えば、ＬＵＮやスライス単位等）でキャッシュメモリ８１を割り当てる必要がある。
【００１４】
このため、本来必要でない多くのキャッシュメモリ８１をバインド・イン・キャッシュ機能に使用しなくてはならないという問題や、ＬＵＮやスライスの容量が搭載キャッシュメモリ８１より大きい場合などにはバインド・イン・キャッシュ用のキャッシュメモリ８１を確保すること自体が困難になる場合があるという問題があった。
【００１５】
上述の理由から、バインド・イン・キャッシュ機能を有効に利用することができず、上位装置からのアクセスを高速に行なうことが難しかった。
特許文献１は、ディスクキャッシュのブロックの割り当てをファイル単位に制御することにより、アクセス性能を飛躍的に向上させるディスクキャッシュ管理装置について開示されている。
【００１６】
特許文献２は、ファイルのアクセスモードに見合った適切なディスクキャッシュモードを設定することにより、ディスクキャッシュを効率的に使用するディスクキャッシュ制御システムについて開示されている。
【特許文献１】特開平０９−２０４３５８号公報
【特許文献２】特開２００２−１０８７０４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、上位装置から論理ボリュームの任意の領域に対してアクセスが行なわれる場合であっても、上位装置からのアクセスを高速に行なうことが可能なディスクキャッシュ制御装置を提供することである。
【課題を解決するための手段】
【００１８】
上記課題を解決するために、本発明に係るディスクキャッシュ制御装置は、上位装置から下位装置に対して論理ボリューム毎にアクセス可能に制御するディスクアレイ制御装置において、前記上位装置から要求されたデータを、前記下位装置から読出して記憶するデータ記憶手段と、前記論理ボリュームの領域と前記データ記憶手段の領域とを関連付ける管理情報を記憶する管理情報記憶手段と、上位装置から要求のあった任意のデータについて、前記論理ボリュームの領域を前記データ記憶手段の所定の範囲内にある領域であって前記データを常駐させる領域に割当てる前記管理情報を、該割当てた前記論理ボリュームの全領域が所定の大きさとなるまで生成する管理情報生成手段と、上位装置から要求のあったデータの格納場所を前記管理情報から取得し、該取得した格納場所のデータに対して読み書き処理を行なうアクセス処理手段と、を備える。
【００１９】
本発明によると、データ記憶手段の所定の範囲内にある領域であってデータを常駐させる領域に論理ボリュームの領域を割当てることによって、当該領域にデータが常駐するので、アクセス処理手段による当該領域に対するデータの読み書き処理を高速に実行することが可能となる。
【００２０】
また、管理情報生成手段は、上位装置から要求のあった任意のデータを常駐させる領域に割当てた論理ボリュームの全領域が所定の大きさとなるまで管理情報を生成するので、上位装置がアクセスする論理ボリュームの領域に依存することなく、上位装置がアクセスする論理ボリュームの領域の合計サイズが所定の大きさとなるまでのアクセスについて速度を向上させることが可能となる。
【００２１】
すなわち、上位装置から論理ボリュームの任意の領域に対するアクセスが行なわれる場合であっても、当該アクセスを高速に実行することが可能となる。
また、本発明は、上位装置から下位装置に対して論理ボリューム毎にアクセス可能に制御するディスクアレイ制御方法であって、前記上位装置から要求のあった任意のデータについて、該データを前記下位装置から読出して記憶するデータ記憶手段の所定の範囲内にある領域であって前記データを常駐させる領域に前記論理ボリュームの領域を割当てるための管理情報を、該割当てた前記論理ボリュームの全領域が所定の大きさとなるまで生成し、前記上位装置から要求のあったデータの格納場所を前記管理情報から取得し、該取得した格納場所のデータに対して読み書き処理を行なう、ことをディスクアレイ制御装置に行なわせても同様の効果を得ることができる。
【発明の効果】
【００２２】
以上のように、本発明によると、上位装置から論理ボリュームの任意の領域に対してアクセスが行なわれる場合であっても、上位装置からのアクセスを高速に行なうことが可能なディスクキャッシュ制御装置を提供することが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態について図１から図６に基づいて説明する。
図１は、本発明の原理を示す図である。
図１に示すディスクキャッシュ制御装置１０は、下位装置から読出したデータを記憶するデータ記憶手段１１と、論理ボリュームの領域とデータ記憶手段１１の領域とを関連付ける管理情報を記憶する管理情報記憶手段１２と、管理情報を生成する管理情報生成手段１３と、上位装置からの要求に応じてデータ記憶手段１１又は下位装置のデータにアクセスするアクセス処理手段１４と、を少なくとも備える。
【００２４】
データ記憶手段１１は、アクセス頻度の高いデータなど必要に応じて下位装置から読出したデータを記憶する記憶手段である。このデータ記憶手段１１は、データを常駐させる常駐記憶手段１１ａと一時的又は所定時間記憶する一時記憶手段１１ｂとで構成される。
【００２５】
管理情報記憶手段１２に記憶する管理情報は、論理ボリュームの領域と常駐記憶手段１１ａの領域とを関連付ける常駐記憶領域管理情報１２ａと、論地ボリュームの領域と一時記憶手段１１ｂの領域とを関連付ける一時記憶領域管理情報１２ｂと、で構成される。
【００２６】
管理情報生成手段１３は、アクセス処理手段１４からの指示に応じて常駐記憶領域管理情報１２ａ又は一時記憶領域管理情報１２ｂを生成し、管理情報記憶手段１２に格納する。また、管理情報生成手段１３は、常駐記憶領域管理情報１２ａをあらかじめ決められた一定量だけ生成する。そして、常駐記憶領域管理情報１２ａが一定量を超えた後は、一時記憶領域管理情報１２ｂのみを生成する。
【００２７】
アクセス処理手段１４は、上位装置から論理ボリュームの領域に対するＲＥＡＤ／ＷＲＩＴＥ  Ｉ／Ｏ要求を受けると、管理情報記憶手段１２を参照して該当する管理情報をチェックする。
【００２８】
そして、該当する管理情報からＲＥＡＤ／ＷＲＩＴＥ  Ｉ／Ｏ要求されたデータが格納されているデータ記憶手段１１の領域を取得し、当該領域に対してアクセスする。
また、該当する管理情報が存在しない場合には、下位装置から該当するデータを読出してデータ記憶手段１１に格納するとともに、当該データを常駐記憶手段１１ａに記憶するか一時記憶手段１１ｂに記憶するかを判断し、新たな管理情報を管理情報生成手段１３に生成させる。
【００２９】
以上に説明した本発明に係る実施例の概要を図２に示す。図２は、図８と同様に、Ｏｐｅｎ  ｓｙｓｔｅｍでのファイルアクセス処理時の例を示している。
図２に示すように、Ｏｐｅｎ  ｓｙｓｔｅｍでのファイルアクセス処理では、上位装置からＬＵＮ２０の領域Ｂ、Ｃ、Ｄといった任意の領域に対してアクセスが行なわれる。
【００３０】
一方、本実施例に係るキャッシュメモリ２１は、バインド・イン・キャッシュ機能を実現するための常駐記憶領域Ｅとそれ以外の一時記憶領域Ｆとで構成されている。常駐記憶領域Ｅは、所定の容量をもつ連続領域であり、当該容量は、ＬＵＮにアクセスされる領域のうちバインド・イン・キャッシュ機能として使用したい領域の容量で決まる。
【００３１】
例えば、領域Ｂ、Ｃ、Ｄを合計した容量分だけバインド・イン・キャッシュ機能を使用したい場合には、常駐記憶領域Ｅを当該合計した容量に設定する。
上位装置から領域Ｂ、Ｃ、Ｄにアクセスが行なわれると、管理情報生成手段１３は、領域Ｂ、Ｃ、Ｄと常駐記憶領域Ｅ内にある所定の領域とを関連付ける常駐記憶領域管理情報をそれぞれ生成して管理情報記憶手段１２に格納する。
【００３２】
したがって、Ｏｐｅｎ  ｓｙｓｔｅｍでのファイルアクセス処理のようにＬＵＮの任意の領域にアクセスする処理であっても、効率よくキャッシュメモリを使用してバインド・イン・キャッシュ機能を実現することが可能となる。その結果、上位装置からのアクセスを高速に行なうことが可能となる。
【００３３】
図３は、本発明の実施例に係るＲＡＩＤ装置の構成例を示す図である。
図３に示すＲＡＩＤ装置３０は、ＣＡ（Ｃｈａｎｎｅｌ  Ａｄａｐｔｅｒ）３１ａを介してホストコンピュータ３７と接続されるＲＡＩＤ制御装置のＣＭ３２ａと、図示しないルータ等を介してＣＭ３２ａと接続されるディスクアレイ３３と、を少なくとも備えている。
【００３４】
また、本実施例では、ＣＡ３１ｂを介してホストコンピュータ３７と接続され、図示しないルータ等を介してディスクアレイ３３と接続されるＲＡＩＤ制御装置のＣＭ３２ｂを更に備え、ＣＭ３２ａとＣＭ３２ｂとは図示しないルータ等を介して接続されている。
【００３５】
ここで、本実施例では、ＲＡＩＤ制御装置（ＣＭ３２ａ、ＣＭ３２ｂ）を二重化した場合の構成例を示しているが、これに限定する趣旨ではない。二重化以上の冗長構成であってもよいし、ＣＭ３２ａのみを使用したシングル構成であってもよい。
【００３６】
ＣＡ３１ａは、ホストコンピュータ３７に備わる図示しないＩ／Ｏ装置とＣＭ３２ａとのインターフェースであり、ホストコンピュータ３７−ＣＭ３２ａ間のコマンドやデータの制御を行なう。
【００３７】
ＣＭ３２ａは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３４ａとＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３５ａキャッシュメモリ３６ａとを少なくとも備える。本実施例に係るディスクキャッシュ制御装置は、ＣＭ３２ａによって実現される。
【００３８】
そして、所定のプログラムに従ってＣＰＵ３４ａを動作させることによって、ホストコンピュータ３７のＩ／Ｏ処理（キャッシュ制御等）やＲＡＩＤ装置３０全体の制御を行ない、管理情報生成手段１３やアクセス処理手段１４も実現する。
【００３９】
また、データ記憶手段１１はキャッシュメモリ３６ａによって実現され、管理情報記憶手段１２はＲＡＭ３５ａによって実現される。
ディスクアレイ３３は、２つの論理ボリュームＬＵＮ＃０及び＃１で構成されている。ＬＵＮ＃０は、磁気ディスク装置ＤＩＳＫ＃０及び＃１から成るディスクアレイ３３ａによって実現され、ＬＵＮ＃１は、磁気ディスク装置ＤＩＳＫ＃２及び＃３から成るディスクアレイ３３ｂによって実現される。
【００４０】
ここで、本実施例に係るディスクアレイ３３は、ＲＡＩＤ１の構成をとっているのが、これに限定する趣旨ではない。すなわち、必要に応じたレベル（ＲＡＩＤ０〜５など）でＲＡＩＤを構成すればよい。
【００４１】
以上に説明したＣＡ３１ａ、ＣＭ３２ａの構成は、ＣＡ３１ｂ、ＣＭ３２ｂも同様なので説明は省略する。
ＣＭ３２ａとＣＭ３２ｂとは図示しないルータを介して接続され、例えば、更新データがホストコンピュータ３７からＣＡ３１ａを介してＣＭ３２ａに送られると、ＣＰＵ３４ａは、更新データをキャッシュメモリ３６ａに格納すると共に、ルータを介してＣＭ３２ｂに送信する。そして、ＣＭ３２ｂでは、ＣＰＵ３４ａが受信した更新データをキャッシュメモリ３６ｂに格納することによって、ＣＭ３２ａ内のキャッシュメモリ３６ａとＣＭ３２ｂ内のキャッシュメモリ３６ｂとは常に同一のデータが格納される。
【００４２】
以上の処理によって、ＣＭ３２ａとＣＭ３２ｂとが二重化（冗長化）されることとなる。したがって、以下、説明を簡単にするためにＣＡ３１ａ、ＣＭ３２ａ及びディスクアレイ３３ａの動作について説明をする。
【００４３】
図４は、本発明の実施例に係るディスクキャッシュ制御を説明する図である。なお、図４に示すＬＢＡ番号、ＣＢＥ番号、Ｃａｃｈｅ  Ｐａｇｅ番号は１６進数で示してある。例えば、ＬＢＡ＃１０は十進数ではＬＢＡ＃１６を示す。
【００４４】
ＬＵＮ４０は、図３に示したＬＵＮ＃０の例を示している。ホストコンピュータ３７からＬＵＮ４０へのアクセスは、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）毎に行なわれる。例えば、ホストコンピュータ３７は、ＬＢＡ＃００から６ブロックのデータを指定して、ＲＡＩＤ装置３０にＲＥＡＤ／ＷＲＩＴＥ  Ｉ／Ｏ要求を行なう。
【００４５】
また、ＬＵＮ４０における太線で囲まれた領域（例えば、ＬＢＡ＃００〜＃０５）は、キャッシュメモリ４３の常駐記憶領域に割当てる領域（以下、「ＬＵＮ  ＢＩＮＤ対象」という）であることを示している。なお、ＬＵＮ４０がＬＵＮ  ＢＩＮＤ対象であるか否かは、あらかじめ設定されたＬＵＮ  ＢＩＮＤ対象管理テーブル５０で決定される。ＬＵＮ  ＢＩＮＤ対象管理テーブル５０については、後述する図５に示す。
【００４６】
常駐記憶領域管理テーブル４１と一時記憶領域管理テーブル４２は、それぞれ複数のＣＢＥ（Ｃａｃｈｅ  Ｂａｎｄｌｅ  Ｅｌｅｍｅｎｔ）で構成されている。以下、常駐記憶領域管理テーブル４１を構成するＣＢＥを「常駐記憶領域用ＣＢＥ」といい、一時記憶領域管理テーブル４２を構成するＣＢＥを「一時記憶領域用ＣＢＥ」という。
【００４７】
常駐記憶領域用ＣＢＥの数は、あらかじめ決められた有限な数であり、ＬＵＮ  ＢＩＮＤ対象とするＬＵＮ４０の領域の大きさにより決定する。
ここで、ＣＢＥは、キャッシュメモリ４３を構成するＣａｃｈｅ  Ｐａｇｅを管理するための管理テーブルであり、１Ｃａｃｈｅ  Ｐａｇｅ毎に対応するＣＢＥが存在する。各ＣＢＥは、例えば、論理ボリュームにおけるデータ格納場所を示すＬＵＮ番号及びＬＢＡ番号と、当該格納場所として割当てられるＣａｃｈｅ  Ｐａｇｅのアドレス及び当該Ｃａｃｈｅ  Ｐａｇｅ内のＤｉｒｔｙ  Ｄａｔａの有無（１ブロック単位）を保持する情報で構成される。
【００４８】
また、各ＣＢＥ間は、相互に関連付けられるており、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）を実現できる構成となっている。
そして、ＣＰＵ３４ａは、アクセスのあったＬＵＮ４０の領域がＬＵＮ  ＢＩＮＤ対象である場合には、常駐記憶領域用ＣＢＥを生成し、アクセスのあった領域が一時記憶領域（ＬＵＮ  ＢＩＮＤ対象の領域以外の領域）である場合には、一時記憶領域用ＣＢＥを生成する。
【００４９】
例えば、ホストコンピュータ３７から領域（１）（ＬＢＡ＃００から＃０５）、領域（２）（ＬＢＡ＃０８）、領域（３）（ＬＢＡ＃０７）、領域（４）（ＬＢＡ＃１１から＃１Ｆ）、領域（５）（ＬＢＡ＃２１）の順にアクセスがあった場合、ＣＰＵ３４ａは、ＬＵＮ  ＢＩＮＤ対象の領域（１）、領域（３）、領域（４）について、それぞれ常駐記憶領域用ＣＢＥ＃００、ＣＢＥ＃０１、ＣＢＥ＃０２を生成し、ＬＵＮ  ＢＩＮＤ対象でない領域（２）領域、（５）領域について、それぞれ一時記憶領域用ＣＢＥ＃０８、ＣＢＥ＃２１を生成する。
【００５０】
キャッシュメモリ４３は一般にディスクアレイ３３に比べて記憶容量が少ないため全データをキャッシュメモリ４３上に展開することは不可能である。そのため、使用頻度の小さいＣＢＥに対しては、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔ  Ｕｓｅｄ）アルゴリズムを使用して追い出しが行なわれる。すなわち、該当するＣＢＥが解放される。なお、ＬＲＵアルゴリズムは、キャッシュメモリを管理するために一般的に利用される公知技術なので説明は省略する。
【００５１】
ここで、追い出しが行なわれるのは一時記憶領域管理テーブル４２のＣＢＥのみであり、常駐記憶領域管理テーブル４１のＣＢＥに対しては行なわれない。
これにより、Ｉ／Ｏの負荷が高い場合にあっても常駐記憶領域用ＣＢＥはその影響を受けることなく、キャッシュヒットを期待することができる。
【００５２】
なお、本実施例の場合、キャッシュヒットの有無はＣＢＥの有無によって判断することができる。すなわち、該当するＣＢＥが存在すればキャッシュメモリ４３上にも該当するデータが展開されていると判断できる。
【００５３】
キャッシュメモリ４３は、複数のＣａｃｈｅ  Ｐａｇｅで構成され、常駐記憶領域と一時記憶領域（常駐記憶領域以外の領域）とに分かれている。
各Ｃａｃｈｅ  Ｐａｇｅは、１ブロック（５１２Ｂｙｔｅ）毎に８ＢｙｔｅのＢＣＣ（Ｂｌｏｃｋ  Ｃｈｅｃｋ  Ｃｏｄｅ）が付加されて、１２８ブロック単位で管理される。したがって、本実施例では、１Ｃａｃｈｅ  Ｐａｇｅが６６，５６０Ｂｙｔｅとなっている。
【００５４】
ここで、図４に示したキャッシュメモリ４３の常駐記憶領域及び一時記憶領域は、それぞれ連続領域の場合を示しているが、これに限定する趣旨ではなく、非連続な領域を使用してもよい。
【００５５】
図５は、本発明の実施例に係るＬＵＮ  ＢＩＮＤ対象管理テーブル５０の例を示す図である。
図５に示すＬＵＮ  ＢＩＮＤ対象管理テーブル５０は、ＬＵＮ番号とＬＵＮ  ＢＩＮＤの有無とで構成されている。ＢＩＮＤの有無の欄の”ＢＩＮＤ”は、該当するＬＵＮがＬＵＮ  ＢＩＮＤ対象であることを示している。また、ＢＩＮＤの有無の欄の”−−−”は、該当するＬＵＮがＬＵＮ  ＢＩＮＤ対象でないことを示している。
【００５６】
このＬＵＮ  ＢＩＮＤ対象管理テーブル５０は、例えば、ＲＡＭ３５ａに格納される。そして、ホストコンピュータ３７からＬＵＮに対してアクセス要求がありキャッシュミスであった場合、ＣＰＵ３４ａは、ＬＵＮ  ＢＩＮＤ対象管理テーブル５０を参照して、アクセス要求のあったＬＵＮがＬＵＮ  ＢＩＮＤ対象であるか否かをチェックする。
【００５７】
ＬＵＮ  ＢＩＮＤ対象である場合には、優先的に、常駐記憶領域用ＣＢＥを生成して該当するＬＢＡをキャッシュメモリ４３の常駐記憶領域に割当てる。そして、ＬＢＡを割当てる常駐記憶領域がなくなると、一時記憶領域用ＣＢＥを生成して該当するＬＢＡをキャッシュメモリ４３の一時記憶領域に割当てる。
【００５８】
図６は、本発明の実施例に係るディスクキャッシュ制御の処理を示すフローチャートである。
ステップＳ６００において、ホストコンピュータ３７から所定のＬＵＮ、ＬＢＡを指定してＲＥＡＤ／ＷＲＩＴＥ  Ｉ／Ｏ要求を受けると、ＣＰＵ３４ａは、処理をステップＳ６０１に移行する。
【００５９】
ステップＳ６０１において、ＣＰＵ３４ａは、ステップＳ６００で要求されたデータがキャッシュメモリ４３に上に展開されているか否かをチェックする。すなわち、ＣＰＵ３４ａは、常駐記憶領域管理テーブル４１と一時記憶領域管理テーブル４２とを参照してステップＳ６００で指定されたＬＢＡについてのＣＢＥが存在するか否かをチェックする。
【００６０】
そして、当該ＬＢＡについてのＣＢＥが存在する場合には、キャッシュヒット（Ｈｉｔ）したと判断して処理をステップＳ６０２に移行し、ヒットしたキャッシュメモリ４３に対してＲｅａｄ／Ｗｒｉｔｅを行う。
【００６１】
一方、当該ＬＢＡについてのＣＢＥが存在しない場合には、キャッシュミス（Ｍｉｓｓ）したと判断して処理をステップＳ６０３に移行する。
ステップＳ６０３において、ＣＰＵ３４ａは、ＲＡＭ３５ａの所定のアドレスに格納されているＬＵＮ  ＢＩＮＤ対象管理テーブル５０を参照する。そして、ステップＳ６００で指定されたＬＵＮがＬＵＮ  ＢＩＮＤ対象か否かを確認する。
【００６２】
当該ＬＵＮがＬＵＮ  ＢＩＮＤ対象でない場合には、処理をステップＳ６０４に移行し、当該ＬＵＮのＬＢＡにキャッシュメモリ４３の一時記憶領域を割り当てる（一時記憶領域用ＣＢＥを生成する）。
【００６３】
また、当該ＬＵＮがＬＵＮ  ＢＩＮＤ対象である場合には、処理をステップＳ６０５に移行してキャッシュメモリ４３の常駐記憶領域に割り当てたＬＵＮの全容量（以下、「ＬＵＮ  ＢＩＮＤ割り当て容量」という）を確認する。
【００６４】
なお、このＬＵＮ  ＢＩＮＤ割り当て容量は、ＣＰＵ３４ａが、ステップＳ６００で指定されるＬＢＡをキャッシュメモリ４３の常駐記憶領域に割り当てる時（ステップＳ６０６）に、当該割り当てた容量を積算し、ＲＡＭ３５ａの所定のアドレスに格納する（ＥＰＲＯＭ等の不揮発性メモリに保持してもよい）。
【００６５】
そして、ＬＵＮ  ＢＩＮＤ割り当て容量と所定の容量（以下、「ＬＵＮ  ＢＩＮＤ基準容量」という）とを比較して、ＬＵＮ  ＢＩＮＤ割り当て容量がＬＵＮ  ＢＩＮＤ基準容量を超える場合には、処理をステップＳ６０４に移行して、キャッシュメモリ４３の一時記憶領域に当該ＬＢＡを割り当てる。
【００６６】
また、ＬＵＮ  ＢＩＮＤ割り当て容量がＬＵＮ  ＢＩＮＤ基準容量を超えない場合には、ＣＰＵ３４ａは、処理をステップＳ６０６に移行して、当該ＬＢＡにキャッシュメモリ４３の常駐記憶領域を割当てる（常駐記憶領域用ＣＢＥを生成する）。
【００６７】
ステップＳ６０４またはＳ６０６の処理によって当該ＬＢＡをキャッシュメモリ４３に割り当てると、ＣＰＵ３４ａは、処理をステップＳ６０７に移行する。
ステップＳ６０７において、ＣＰＵ３４ａは、ステップＳ６００においてホストコンピュータ３７から発行されてＲＥＡＤ／ＷＲＩＴＥ  Ｉ／Ｏ要求がＷＲＩＴＥ要求の場合には処理をステップＳ６０８に移行し、ステップＳ６０４またはＳ６０６で割り当てたキャッシュメモリ４３に対してＷＲＩＴＥ処理を実行して処理を終了する。
【００６８】
また、ステップＳ６００においてホストコンピュータ３７から発行されてＲＥＡＤ／ＷＲＩＴＥ  Ｉ／Ｏ要求がＲＥＡＤ要求の場合には処理をステップＳ６０９に移行し、ステップＳ６０４またはＳ６０６で割り当てたキャッシュメモリ４３に対してステージング処理を行うとともに、ＲＥＡＤ処理を実行して処理を終了する。
【００６９】
以上に説明したように、本実施例に係るディスクキャッシュ制御装置１０は、上位装置からＬＵＮ  ＢＩＮＤ対象のＬＵＮの領域に対してアクセスがあった場合（キャッシュミス時）には、上位装置がアクセスしたＬＵＮの領域に依存することなく当該ＬＵＮの領域をキャッシュメモリ４３の常駐記憶領域に割当てるので、上位装置からＬＵＮの任意の領域に対してアクセスが行なわれる場合であっても、上位装置からのアクセスを高速に処理することが可能となる。
【００７０】
また、上位装置からアクセスがあったＬＵＮ  ＢＩＮＤ対象のＬＵＮの領域を、あらかじめ決められたサイズまで、キャッシュメモリ４３の常駐記憶領域に割当てるので、キャッシュメモリを効率よく使用することが可能となり、キャッシュメモリ４３のサイズがＬＵＮのサイズより小さい場合であっても、バインド・イン・キャッシュ機能を有効に利用することが可能となる。また、その結果、上位装置からのアクセスを高速に処理することが可能となる。
【図面の簡単な説明】
【００７１】
【図１】本発明の原理を示す図である。
【図２】本発明の実施例に係るＯｐｅｎ  ｓｙｓｔｅｍでのファイルアクセス処理を説明する図である。
【図３】本発明の実施例に係るＲＡＩＤ装置の構成例を示す図である。
【図４】本発明の実施例に係るディスクキャッシュ制御を説明する図である。
【図５】本発明の実施例に係るＬＵＮ  ＢＩＮＤ対象管理テーブルの例を示す図である。
【図６】本発明の実施例に係るディスクキャッシュ制御の処理を示すフローチャートである。
【図７】バインド・イン・キャッシュ機能の概念を示す図である。
【図８】アクセス範囲が動的に変化する場合のＬＵＮとキャッシュメモリについて説明する図である。
【符号の説明】
【００７２】
１０      ディスクキャッシュ制御装置
１１      データ記憶手段
１２      管理情報記憶手段
１３      管理情報生成手段
１４      アクセス処理手段
３０      ＲＡＩＤ装置
３１ａ、３１ｂ      ＣＡ
３２ａ、３２ｂ      ＣＭ
３３      ディスクアレイ
３３ａ、３３ｂ      ディスクアレイ
３４ａ、３４ｂ      ＣＰＵ
３５ａ、３５ｂ      ＲＡＭ
３６ａ、３６ｂ      キャッシュメモリ
４１      常駐記憶領域管理テーブル
４２      一時記憶領域管理テーブル
【図１】
2007102314.tif 000003
【図３】
2007102314.tif 000004
【図４】
2007102314.tif 000005
【図５】
2007102314.tif 000006
【図６】
2007102314.tif 000007
【図２】
2007102314.tif 000008
【図７】
2007102314.tif 000009
【図８】
2007102314.tif 000010