(57)【要約】【課題】記憶装置に対してキャッシュメモリを適切に割り当て、データキャッシングを効率的に実行させること。【解決手段】サーバ装置２０1〜２０mのメモリ２５1〜２５mが、ＨＤ２１1〜２１mに対するデータの読み書きを管理するサーバ装置２０1〜２０mにＩＰネットワーク６０を介して接続されたＰＣ３０1〜３０nに搭載され、当該ＨＤ２１1〜２１mのキャッシュメモリとして割り当てられたメモリ３３1〜３３nに係る情報を記憶し、キャッシュアクセスドライバ２３1〜２３mが、メモリ２５1〜２５mに記憶された情報に基づいて、ＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう。【選択図】        図１
2006268486.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御プログラムであって、
前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶手順と、
前記記憶手順により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御手順と、
をコンピュータに実行させることを特徴とするキャッシング制御プログラム。
【請求項２】
前記記憶装置に記憶されたデータに対するアクセス状況を判定する判定手順をさらにコンピュータに実行させ、前記制御手順は、前記判定手順による判定結果に基づいて、前記データを前記第２のコンピュータに搭載されたメモリに記憶するか否かを判定することを特徴とする請求項１に記載のキャッシング制御プログラム。
【請求項３】
前記判定手順は、前記記憶装置の所定の時間内におけるデータの転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順によりデータの転送量が所定の閾値よりも大きいと判定された場合に、前記データを前記第２のコンピュータに搭載されたメモリに記憶するよう制御することを特徴とする請求項２に記載のキャッシング制御プログラム。
【請求項４】
前記制御手順は、前記判定手順により前記所定の時間内におけるデータの転送量が所定の閾値よりも小さいと判定された場合に、前記第２のコンピュータに搭載されたメモリに記憶された前記データを削除するよう制御することを特徴とする請求項３に記載のキャッシング制御プログラム。
【請求項５】
前記判定手順は、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順により互いに異なる時間内におけるデータの複数の転送量のうち少なくとも１つのデータの転送量が所定の閾値よりも大きいと判定された場合に、前記データを前記第２のコンピュータに搭載されたメモリに記憶するよう制御することを特徴とする請求項３に記載のキャッシング制御プログラム。
【請求項６】
前記判定手順は、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順により互いに異なる時間内におけるデータのすべての転送量が所定の閾値よりも小さいと判定された場合に、前記第２のコンピュータに搭載されたメモリに記憶されたデータを削除するよう制御することを特徴とする請求項４に記載のキャッシング制御プログラム。
【請求項７】
第１の記憶装置に対するキャッシュメモリの割り当ての第１の優先度と第２の記憶装置に対するキャッシュメモリの割り当ての第２の優先度とを比較し、比較した結果に基づいて第２の記憶装置にキャッシュメモリとして割り当てられていたメモリを第１の記憶装置のキャッシュメモリとして割り当てるか否かを判定する割当判定手順をさらにコンピュータに実行させ、前記記憶手段は、前記割当判定手順による判定の結果、前記記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶することを特徴とする請求項１に記載のキャッシング制御プログラム。
【請求項８】
前記割当判定手順は、前記第２のコンピュータに搭載され、前記第２の記憶装置のキャッシュメモリとして割り当てられたメモリを開放し、開放したメモリを前記第１の記憶装置のキャッシュメモリとして割り当てる場合に、メモリ開放後の前記第２の記憶装置のキャッシュメモリの容量が所定の下限値よりも小さくなるか否かを判定し、キャッシュメモリの容量が所定の下限値よりも小さくなる場合に当該メモリの開放を中止することを特徴とする請求項７に記載のキャッシング制御プログラム。
【請求項９】
記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御装置であって、
前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶手段と、
前記記憶手段により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御手段と、
を備えたことを特徴とするキャッシング制御装置。
【請求項１０】
記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御方法であって、
前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶工程と、
前記記憶工程により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御工程と、
を含んだことを特徴とするキャッシング制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法に関し、特に、記憶装置に対してキャッシュメモリを適切に割り当て、データキャッシングを効率的に実行させることができるキャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法に関する。
【背景技術】
【０００２】
近年、ハードディスク装置などの記憶装置とコンピュータの間で使用されるＳＣＳＩ（Small Computer Systems Interface）コマンドを、ＩＰ（Internet Protocol）ネットワークを介して送信することにより、ＩＰネットワークに接続された記憶装置に複数のコンピュータがアクセスすることを可能とするｉＳＣＳＩ（Small Computer Systems Interface over IP）の技術が利用されるようになってきている。
【０００３】
具体的には、ｉＳＣＳＩの技術では、ＳＣＳＩコマンドをＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）パケットの伝送フレームでカプセル化して送信することにより、コンピュータがＩＰネットワークを介して記憶装置にアクセスできるようにする。
【０００４】
これにより、記憶装置を利用するアプリケーションプログラムは、ｉＳＣＳＩを意識することなく、高速通信が可能なＩＰネットワークを介して、従来通りの方法で記憶装置にアクセスできるようになる（非特許文献１を参照）。
【０００５】
【非特許文献１】青木直孝、“最新ＩＰストレージ技術「ｉＳＣＳＩ」”、［online］、２００２年１０月５日、アイティメディア株式会社、［２００５年３月７日検索］、インターネット＜URL : http://www.atmarkit.co.jp/fnetwork/tokusyuu/16iscsi/iscsi01.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、記憶装置がアプリケーションプログラムにより利用される場合に、記憶装置を管理するコンピュータのメモリがキャッシュメモリとして記憶装置に割り当てられるが、そのキャッシュメモリの容量を適切に割り当てることが難しいという問題があった。
【０００７】
たとえば、アプリケーションプログラムによる記憶装置へのアクセス量が最大となる場合に合わせて記憶装置にキャッシュメモリを割り当てると、そのアプリケーションプログラムが記憶装置を利用しない時間帯には割り当てたキャッシュメモリが使用されず、無駄になってしまう。
【０００８】
特に、アプリケーションプログラムごとに記憶装置に対するアクセスが集中する時間帯が異なっている場合には、キャッシュメモリの容量を適切に割り当てることがさらに難しくなってくる。
【０００９】
そのため、記憶装置に対してキャッシュメモリをいかに適切に割り当て、記憶装置に記憶されたデータのキャッシングを効率的に実行させることができるかが重要な問題となってきている。
【００１０】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、記憶装置に対してキャッシュメモリを適切に割り当て、データキャッシングを効率的に実行させることができるキャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本発明は、記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御プログラムであって、前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶手順と、前記記憶手順により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御手順と、をコンピュータに実行させることを特徴とする。
【００１２】
また、本発明は、上記発明において、前記記憶装置に記憶されたデータに対するアクセス状況を判定する判定手順をさらにコンピュータに実行させ、前記制御手順は、前記判定手順による判定結果に基づいて、前記データを前記第２のコンピュータに搭載されたメモリに記憶するか否かを判定することを特徴とする。
【００１３】
また、本発明は、上記発明において、前記判定手順は、前記記憶装置の所定の時間内におけるデータの転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順によりデータの転送量が所定の閾値よりも大きいと判定された場合に、前記データを前記第２のコンピュータに搭載されたメモリに記憶するよう制御することを特徴とする。
【００１４】
また、本発明は、上記発明において、前記制御手順は、前記判定手順により前記所定の時間内におけるデータの転送量が所定の閾値よりも小さいと判定された場合に、前記第２のコンピュータに搭載されたメモリに記憶された前記データを削除するよう制御することを特徴とする。
【００１５】
また、本発明は、上記発明において、前記判定手順は、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順により互いに異なる時間内におけるデータの複数の転送量のうち少なくとも１つのデータの転送量が所定の閾値よりも大きいと判定された場合に、前記データを前記第２のコンピュータに搭載されたメモリに記憶するよう制御することを特徴とする。
【００１６】
また、本発明は、上記発明において、前記判定手順は、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順により互いに異なる時間内におけるデータのすべての転送量が所定の閾値よりも小さいと判定された場合に、前記第２のコンピュータに搭載されたメモリに記憶されたデータを削除するよう制御することを特徴とする。
【００１７】
また、本発明は、上記発明において、第１の記憶装置に対するキャッシュメモリの割り当ての第１の優先度と第２の記憶装置に対するキャッシュメモリの割り当ての第２の優先度とを比較し、比較した結果に基づいて第２の記憶装置にキャッシュメモリとして割り当てられていたメモリを第１の記憶装置のキャッシュメモリとして割り当てるか否かを判定する割当判定手順をさらにコンピュータに実行させ、前記記憶手段は、前記割当判定手順による判定の結果、前記記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶することを特徴とする。
【００１８】
また、本発明は、上記発明において、前記割当判定手順は、前記第２のコンピュータに搭載され、前記第２の記憶装置のキャッシュメモリとして割り当てられたメモリを開放し、開放したメモリを前記第１の記憶装置のキャッシュメモリとして割り当てる場合に、メモリ開放後の前記第２の記憶装置のキャッシュメモリの容量が所定の下限値よりも小さくなるか否かを判定し、キャッシュメモリの容量が所定の下限値よりも小さくなる場合に当該メモリの開放を中止することを特徴とする。
【００１９】
また、本発明は、上記発明において、前記優先度を前記記憶装置に記憶されたデータに対するアクセス状況に応じて変更する変更手順をさらにコンピュータに実行させ、前記割当判定手順は、前記第１の記憶装置に対するキャッシュメモリの割り当ての優先度と前記第２の記憶装置に対するキャッシュメモリの割り当ての優先度とを比較し、比較した結果に基づいて前記第２の記憶装置にキャッシュメモリとして割り当てられていたメモリを前記第１の記憶装置のキャッシュメモリとして割り当てるか否かを判定することを特徴とする。
【００２０】
また、本発明は、上記発明において、記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御装置であって、前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶手段と、前記記憶手段により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御手段と、を備えたことを特徴とする。
【００２１】
また、本発明は、上記発明において、記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御方法であって、前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶工程と、前記記憶工程により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御工程と、を含んだことを特徴とする。
【発明の効果】
【００２２】
本発明によれば、記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶し、記憶した情報に基づいて、第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなうこととしたので、第２のコンピュータに搭載されたメモリをキャッシュメモリとして用いることにより、記憶装置に対してキャッシュメモリを適切に割り当て、データのキャッシュ処理を効率的に実行させることができるという効果を奏する。
【００２３】
また、本発明によれば、記憶装置に記憶されたデータに対するアクセス状況を判定し、その判定結果に基づいて、データを第２のコンピュータに搭載されたメモリに記憶するか否かを判定することとしたので、データのアクセス状況に応じてキャッシュメモリにデータを記憶させるか否かを判定することができ、データのキャッシュ処理を効率的に実行させることができるという効果を奏する。
【００２４】
また、本発明によれば、記憶装置の所定の時間内におけるデータの転送量が所定の閾値よりも大きいか否かを判定し、データの転送量が所定の閾値よりも大きいと判定した場合に、データを第２のコンピュータに搭載されたメモリに記憶するよう制御することとしたので、記憶装置の所定の時間内におけるデータの転送量が閾値よりも大きい場合に、大量に転送されるデータをキャッシュメモリに記憶させることができ、キャッシュ処理を効率的に実行させることができるという効果を奏する。
【００２５】
また、本発明によれば、所定の時間内におけるデータの転送量が所定の閾値よりも小さいと判定された場合に、第２のコンピュータに搭載されたメモリに記憶されたデータを削除するよう制御することとしたので、記憶装置の所定の時間内におけるデータの転送量が閾値よりも小さい場合に、あまり転送されることのないデータをキャッシュメモリから削除することができ、キャッシュ処理を効率的に実行させることができるという効果を奏する。
【００２６】
また、本発明によれば、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、互いに異なる時間内におけるデータの複数の転送量のうち少なくとも１つのデータの転送量が所定の閾値よりも大きいと判定した場合に、データを第２のコンピュータに搭載されたメモリに記憶するよう制御することとしたので、長期的に見て多く転送されるデータや、短期的に見て多く転送されるデータをキャッシュメモリに記憶させることができ、キャッシュ処理を効率的に実行させることができるという効果を奏する。
【００２７】
また、本発明によれば、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、互いに異なる時間内におけるデータのすべての転送量が所定の閾値よりも小さいと判定された場合に、第２のコンピュータに搭載されたメモリに記憶されたデータを削除するよう制御することとしたので、長期的に見ても短期的に見ても転送量が少ないデータをキャッシュメモリから削除させることができ、キャッシュ処理を効率的に実行させることができるという効果を奏する。
【００２８】
また、本発明によれば、第１の記憶装置に対するキャッシュメモリの割り当ての第１の優先度と第２の記憶装置に対するキャッシュメモリの割り当ての第２の優先度とを比較し、比較した結果に基づいて第２の記憶装置にキャッシュメモリとして割り当てられていたメモリを第１の記憶装置のキャッシュメモリとして割り当てるか否かを判定し、その判定の結果、記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶することとしたので、優先度を設定することによりキャッシュメモリの記憶装置への割り当てを制御することができ、キャッシュ処理を効率的に実行させることができるという効果を奏する。
【００２９】
また、本発明によれば、第２のコンピュータに搭載され、第２の記憶装置のキャッシュメモリとして割り当てられたメモリを開放し、開放したメモリを第１の記憶装置のキャッシュメモリとして割り当てる場合に、メモリ開放後の第２の記憶装置のキャッシュメモリの容量が所定の下限値よりも小さくなるか否かを判定し、キャッシュメモリの容量が所定の下限値よりも小さくなる場合に当該メモリの開放を中止することとしたので、記憶装置に割り当てられるキャッシュメモリの下限値を制御することができ、キャッシュ処理を効率的に実行させることができるという効果を奏する。
【００３０】
また、本発明によれば、優先度を記憶装置に記憶されたデータに対するアクセス状況に応じて変更し、第１の記憶装置に対するキャッシュメモリの割り当ての優先度と第２の記憶装置に対するキャッシュメモリの割り当ての優先度とを比較し、比較した結果に基づいて第２の記憶装置にキャッシュメモリとして割り当てられていたメモリを第１の記憶装置のキャッシュメモリとして割り当てるか否かを判定することとしたので、より頻繁にアクセスされるデータを記憶している記憶装置により高い優先度を設定し、キャッシュメモリの割り当てを優先的におこなうことができ、キャッシュ処理を効率的に実行させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００３１】
以下に添付図面を参照して、本発明に係るキャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法の好適な実施例を詳細に説明する。
【実施例１】
【００３２】
まず、本発明に係るキャッシング制御システムの構成について説明する。図１は、本発明に係るキャッシング制御システムの構成を示す図である。
【００３３】
図１に示すように、このキャッシング制御システムは、クライアント装置１０1〜１０l、サーバ装置２０1〜２０m、ＰＣ（Personal Computer）３０1〜３０nおよびアクセス量監視サーバ装置４０から構成されている。
【００３４】
クライアント装置１０1〜１０lは、ｉＳＣＳＩの技術を用いて、サーバ装置２０1〜２０mに備えられたＨＤ（Hard Disk）２１1〜２１mにＳＣＳＩコマンドをＩＰネットワーク５０を介して送信し、データの読み書きをおこなう装置である。
【００３５】
サーバ装置２０1〜２０mは、クライアント装置１０1〜１０lにより送信されたＳＣＳＩコマンドを受信して、クライアント装置１０1〜１０lにより要求されたＨＤ２１1〜２１mに対するデータの読み書き処理を実行する装置である。
【００３６】
ＰＣ３０1〜３０nは、ＲＡＭ（Random Access Memory）などのメモリ３３1〜３３nを搭載したパーソナルコンピュータであり、ＩＰネットワーク６０を介してサーバ装置２０1〜２０mに接続されている。
【００３７】
このキャッシング制御システムでは、サーバ装置２０1〜２０mが、ＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nを、必要に応じてＨＤ２１1〜２１mのキャッシュメモリとして割り当てる。
【００３８】
これにより、サーバ装置２０1〜２０mが、必要な容量のキャッシュメモリを常にサーバ装置２０1〜２０mに用意しておく必要がなくなり、キャッシュメモリの容量の変更などに柔軟に対応することができるようになる。
【００３９】
アクセス量監視サーバ装置４０は、ＨＤ２１1〜２１mに対するキャッシュメモリの割り当て要求をサーバ装置２０1〜２０mから受け付け、キャッシュメモリの割り当てをおこなう装置である。
【００４０】
つぎに、各装置の機能構成について具体的に説明する。クライアント装置１０1〜１０lは、ｉＳＣＳＩイニシエータ１１1〜１１lの機能部を有する。ｉＳＣＳＩイニシエータ１１1〜１１lは、アプリケーションプログラムなどが、ＩＰネットワーク５０を介してサーバ装置２０1〜２０mのＨＤ２１1〜２１mにＳＣＳＩコマンドを送信する場合に、ＳＣＳＩコマンドをＴＣＰ／ＩＰパケットの伝送フレームでカプセル化して送信する処理をおこなう。
【００４１】
サーバ装置２０1〜２０mは、ＨＤ２１1〜２１m、ｉＳＣＳＩターゲット２２1〜２２m、キャッシュアクセスドライバ２３1〜２３m、ＳＣＳＩドライバ２４1〜２４mおよびメモリ２５1〜２５mの各機能部を有する。
【００４２】
ＨＤ２１1〜２１mは、データの記憶および読み出しをおこなうハードディスク装置である。ｉＳＣＳＩターゲット２２1〜２２mは、クライアント装置１０1〜１０lからＴＣＰ／ＩＰパケットの伝送フレームでカプセル化されたＳＣＳＩコマンドが送信された場合に、ＳＣＳＩコマンドを復元し、ＳＣＳＩドライバ２４1〜２４mに転送する処理をおこなう。
【００４３】
キャッシュアクセスドライバ２３1〜２３mは、ＰＣ３０1〜３０nのメモリ３３1〜３３nがＨＤ２１1〜２１mのキャッシュメモリとして割り当てられた場合に、メモリ３３1〜３３nをキャッシュメモリとして利用したＨＤ２１1〜２１mのデータキャッシングの実行制御をおこなう。
【００４４】
また、キャッシュアクセスドライバ２３1〜２３mは、データキャッシングにおけるキャッシュアンヒット率などのデータキャッシュの状況や、ＨＤ２１1〜２１mのデータの転送量などの状況を監視し、それらの情報をサーバ装置２０1〜２０mのメモリ２５1〜２５mに記憶する。
【００４５】
さらに、キャッシュアクセスドライバ２３1〜２３mは、キャッシュヒット率が低くなり、ＨＤ２１1〜２１mに割り当てられているキャッシュメモリの容量が不足したと判定される場合に、ＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nをＨＤ２１1〜２１mのキャッシュメモリとして割り当て、キャッシュメモリの容量を増やすようアクセス量監視サーバ装置４０に要求する処理をおこなう。
【００４６】
ＳＣＳＩドライバ２４1〜２４mは、クライアント装置１０1〜１０lにより送信されたＳＣＳＩコマンドを受信して、ＨＤ２１1〜２１mに対するデータの読み書き処理を実行するドライバである。
【００４７】
メモリ２５1〜２５mは、ｉＳＣＳＩターゲット２２1〜２２m、キャッシュアクセスドライバ２３1〜２３m、ＳＣＳＩドライバ２４1〜２４mが種々のデータを記憶する記憶デバイスであり、現在ＨＤ２１1〜２１mにキャッシュメモリとして割り当てられているＰＣ３０1〜３０nのメモリ３３1〜３３nの情報や、キャッシュヒット率などのデータキャッシュの状況などの情報を記憶する。
【００４８】
ＰＣ３０1〜３０nは、ネットワークインターフェース３１1〜３１n、Ｒ／Ｗ処理部３２1〜３２n、メモリ３３1〜３３nを有する。
【００４９】
ネットワークインターフェース３１1〜３１nは、ＩＰネットワーク６０を介してサーバ装置２０1〜２０mとの間でデータの授受をおこなうネットワークインターフェースである。
【００５０】
Ｒ／Ｗ処理部３２1〜３２nは、メモリ３３1〜３３nに対するデータの読み書き処理を実行する処理部である。メモリ３３1〜３３nは、ＲＡＭなどの記憶デバイスであり、サーバ装置２０1〜２０mに備えられたＨＤ２１1〜２１mのキャッシュメモリとして利用されるメモリである。
【００５１】
アクセス量監視サーバ装置４０は、アクセス量監視デーモン４１およびメモリ４２の各機能部を有する。アクセス量監視デーモン４１は、サーバ装置２０1〜２０mからＨＤ２１1〜２１mに対するキャッシュメモリの割り当て要求を受け付け、キャッシュメモリの割り当てをおこなう。
【００５２】
ここで、キャッシュメモリとして割り当てるメモリ容量は、あらかじめ設定しておくこととしてもよいし、ＨＤ２１1〜２１mのデータの転送量の状況を各サーバ装置２０1〜２０mに問い合わせ、データの転送量の大小に応じて各ＨＤ２１1〜２１mに割り当てるメモリ容量を決定するようにしてもよい。
【００５３】
メモリ４２は、アクセス量監視デーモン４１が種々のデータを記憶する記憶デバイスであり、各サーバ装置２０1〜２０mのキャッシュアクセスドライバ２３1〜２３mから収集した情報などを記憶する。
【００５４】
つぎに、本実施例１に係るキャッシング制御処理の処理手順について説明する。図２は、実施例１に係るキャッシング制御処理を説明する概念図であり、図３は、実施例１に係るキャッシング制御処理の処理手順を示すシーケンス図である。
【００５５】
図２には、３つのサーバ装置が有するキャッシュアクセスドライバ２３1〜２３3が、６つのＰＣ３０1〜３０6に備えられたメモリ３３1〜３３6をＩＰネットワーク６０を介してキャッシュメモリとして利用する場合が示されている。ここで、キャッシュメモリとして利用する各メモリ３３1〜３３6の容量は１０ＧＢであるものとする。
【００５６】
また、ＩＰネットワーク６０には、図１に示したアクセス量監視サーバ装置４０が有するアクセス量監視デーモン４１が接続されている。
【００５７】
そして、初期状態においては、キャッシュアクセスドライバ２３1が管理するＨＤには、メモリ３３1がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３2が管理するＨＤには、メモリ３３2，３３3がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３3が管理するＨＤには、メモリ３３4，３３5，３３6がキャッシュメモリとして割り当てられている。
【００５８】
このような状況において、キャッシュアクセスドライバ２３1は、データキャッシングにおけるキャッシュアンヒット率が所定の閾値を越えたことを検出すると、図３に示すように、アクセス量監視デーモン４１に対してキャッシュメモリの割り当て（２０ＧＢ）を要求する（ステップＳ１０１）。
【００５９】
ここでは、割り当て量を２０ＧＢとしたが、この値は、あらかじめ設定しておくこととしてもよいし、キャッシュアンヒット率と割り当て量との間の関係について統計をとることにより適切な割り当て量を設定することとしてもよい。
【００６０】
そして、アクセス量監視デーモン４１は、キャッシュアクセスドライバ２３2，２３3に対してそれぞれ１０ＧＢずつキャッシュメモリを返却するよう要求する（ステップＳ１０２）。
【００６１】
続いて、キャッシュアクセスドライバ２３2，２３3は、アクセス量監視デーモン４１の要求に応じて、自らが管理するメモリ３３2，３３4を１０ＧＢずつ返却する（ステップＳ１０３，ステップＳ１０４）。
【００６２】
その後、アクセス量監視デーモン４１は、返却された２０ＧＢのメモリ３３2，３３4をキャッシュメモリアクセスドライバ２３1が管理するＨＤに割り当て（ステップＳ１０５）、このキャッシング制御処理を終了する。
【００６３】
図２には、メモリ３３2，３３4をキャッシュメモリとして割り当てた後の状態が示されている。すなわち、キャッシュアクセスドライバ２３1が管理するＨＤには、メモリ３３1，３３2，３３4がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３2が管理するＨＤには、メモリ３３3がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３3が管理するＨＤには、メモリ３３5，３３6がキャッシュメモリとして割り当てられる。
【００６４】
上述してきたように、本実施例１では、サーバ装置２０1〜２０mのメモリ２５1〜２５mが、ＨＤ２１1〜２１mに対するデータの読み書きを管理するサーバ装置２０1〜２０mにＩＰネットワーク６０を介して接続されたＰＣ３０1〜３０nに搭載され、当該ＨＤ２１1〜２１mのキャッシュメモリとして割り当てられたメモリ３３1〜３３nに係る情報を記憶し、キャッシュアクセスドライバ２３1〜２３mが、メモリ２５1〜２５mに記憶された情報に基づいて、ＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなうこととしたので、ＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nをキャッシュメモリとして用いることにより、ＨＤ２１1〜２１mに対してキャッシュメモリを適切に割り当て、データのキャッシュ処理を効率的に実行させることができる。
【実施例２】
【００６５】
ところで、上記実施例１では、キャッシュアンヒット率に基づいてＨＤ２１1〜２１mにキャッシュメモリを割り当てることによりデータキャッシュをおこなうこととしたが、さらにＨＤ２１1〜２１mに記憶されたデータのうちキャッシュメモリに記憶させるデータを一定期間内のデータの転送量に基づいて決定することとしてもよい。
【００６６】
そこで、本実施例２では、キャッシュメモリに記憶させるデータを一定期間内のデータの転送量に基づいて決定する場合について説明する。
【００６７】
図４は、実施例２に係るキャッシング制御処理を説明する図である。このキャッシング制御処理では、図２に示したサーバ装置２０1〜２０mのキャッシュアクセスドライバ２３1〜２３mが、ＨＤ２１1〜２１mにおけるデータの転送量を監視し、データの転送量の情報を転送量データ７０として、サーバ装置２０1〜２０mのメモリ２５1〜２５mに記憶する。
【００６８】
この転送量データ７０は、図４に示すように、ストレージ領域、総転送量、単位時間当たりの転送量のデータを記憶している。ストレージ領域は、ＨＤ２１1〜２１mのストレージ領域（ここでは、ＨＤ２１1〜２１mのストレージ領域は５００ＧＢの容量があるものとする）をたとえば１ＧＢごとに区切ったものである。
【００６９】
総転送量は、たとえば１週間など、一定期間内のデータの転送量の合計である。単位時間当たりの転送量は、たとえば、一分間など、総転送量を求めるよりも短い期間におけるデータの転送量に基づいて算出された単位時間あたりのデータの転送量である。
【００７０】
このキャッシング制御処理では、上述した総転送量および単位時間当たりの転送量にそれぞれ閾値を設定する。そして、キャッシュアクセスドライバ２３1〜２３mは、各ストレージ領域において、総転送量が閾値を越えたか、あるいは、単位時間当たりの転送量が閾値を越えた場合に、閾値を越えたストレージ領域のデータをキャッシュメモリに記憶する。
【００７１】
また、キャッシュアクセスドライバ２３1〜２３mは、総転送量が閾値を下回り、かつ、単位時間当たりの転送量が閾値を下回った場合に、閾値を下回ったストレージ領域のデータをキャッシュメモリから削除する。
【００７２】
つぎに、本実施例２に係るキャッシング制御処理の処理手順について説明する。図５は、実施例２に係るキャッシング制御処理の処理手順を示すフローチャートである。
【００７３】
図５に示すように、まず、サーバ装置２０1〜２０mのキャッシュアクセスドライバ２３1〜２３mは、単位時間スリープして待機する（ステップＳ２０１）。そして、キャッシュアクセスドライバ２３1〜２３mは、転送量データ７０における各ストレージ領域の単位時間あたりの転送量および総転送量を更新する（ステップＳ２０２）。
【００７４】
続いて、キャッシュアクセスドライバ２３1〜２３mは、単位時間当たりの転送量が閾値を越えたか否かを調べ（ステップＳ２０３）、閾値を越えた場合には（ステップＳ２０３，Ｙｅｓ）、閾値を越えたストレージ領域のデータをキャッシュメモリに記憶し（ステップＳ２０４）、ステップＳ２０１に移行する。
【００７５】
単位時間当たりの転送量が閾値を越えていない場合には（ステップＳ２０３，Ｎｏ）、キャッシュアクセスドライバ２３1〜２３mは、総転送量が閾値を越えたか否かを調べ（ステップＳ２０５）、総転送量が閾値を越えた場合には（ステップＳ２０５，Ｙｅｓ）、ステップＳ２０４に移行して、閾値を越えたストレージ領域のデータをキャッシュメモリに記憶し、それ以後の処理を継続する。
【００７６】
総転送量が閾値を越えていない場合には（ステップＳ２０５，Ｎｏ）、キャッシュアクセスドライバ２３1〜２３mは、総転送量が閾値を越えず、キャッシュメモリに記憶されているストレージ領域のデータをキャッシュメモリから削除し（ステップＳ２０６）、ステップＳ２０１に移行する。
【００７７】
上述してきたように、本実施例２では、キャッシュアクセスドライバ２３1〜２３mが、ＨＤ２１1〜２１mに記憶されたデータに対するアクセス状況を判定し、その判定結果に基づいて、データをＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nに記憶するか否かを判定することとしたので、データのアクセス状況に応じてキャッシュメモリにデータを記憶させるか否かを判定することができ、データのキャッシュ処理を効率的に実行させることができる。
【００７８】
また、本実施例２では、キャッシュアクセスドライバ２３1〜２３mが、ＨＤ２１1〜２１mの所定の時間内におけるデータの転送量が所定の閾値よりも大きいか否かを判定し、データの転送量が所定の閾値よりも大きいと判定した場合に、データをＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nに記憶するよう制御することとしたので、ＨＤ２１1〜２１mの所定の時間内におけるデータの転送量が閾値よりも大きい場合に、大量に転送されるデータをキャッシュメモリに記憶させることができ、キャッシュ処理を効率的に実行させることができる。
【００７９】
また、本実施例２では、キャッシュアクセスドライバ２３1〜２３mが、所定の時間内におけるデータの転送量が所定の閾値よりも小さいと判定した場合に、ＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nに記憶されたデータを削除するよう制御することとしたので、ＨＤ２１1〜２１mの所定の時間内におけるデータの転送量が閾値よりも小さい場合に、あまり転送されることのないデータをキャッシュメモリから削除することができ、キャッシュ処理を効率的に実行させることができる。
【００８０】
また、本実施例２では、キャッシュアクセスドライバ２３1〜２３mが、互いに異なる時間内におけるデータの２つの転送量が所定の閾値よりも大きいか否かを判定し、互いに異なる時間内におけるデータの２つの転送量のうち少なくとも１つのデータの転送量が所定の閾値よりも大きいと判定した場合に、当該データをＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nに記憶するよう制御することとしたので、長期的に見て多く転送されるデータや、短期的に見て多く転送されるデータをキャッシュメモリに記憶させることができ、キャッシュ処理を効率的に実行させることができる。
【００８１】
また、本実施例２では、キャッシュアクセスドライバ２３1〜２３mが、互いに異なる時間内におけるデータの２つの転送量が所定の閾値よりも大きいか否かを判定し、互いに異なる時間内におけるデータのすべての転送量が所定の閾値よりも小さいと判定された場合に、ＰＣ３０1〜３０nに搭載されたメモリ３３1〜３３nに記憶されたデータを削除するよう制御することとしたので、長期的に見ても短期的に見ても転送量が少ないデータを判定し、そのようなデータをキャッシュメモリから削除させることができ、キャッシュ処理を効率的に実行させることができる。
【実施例３】
【００８２】
ところで、実施例１では、キャッシュアクセスドライバ２３1〜２３mがキャッシュメモリの割り当てを要求した場合にキャッシュメモリの割り当て処理が実行されることとしたが、各キャッシュアクセスドライバ２３1〜２３mが管理するＨＤ２１1〜２１mにキャッシュメモリの割り当ての優先度とキャッシュメモリの下限容量とを設定しておき、優先度と下限容量とを考慮してキャッシュメモリの割り当てをおこなうこととしてもよい。
【００８３】
そこで、本実施例３では、各キャッシュアクセスドライバ２３1〜２３mが管理するＨＤ２１1〜２１mにキャッシュメモリの割り当ての優先度（以下で説明する、重み値に対応する）とキャッシュメモリの下限容量とを設定する場合について説明する。
【００８４】
まず、本実施例３に係るキャッシング制御処理の処理手順について説明する。図６は、実施例３に係るキャッシング制御処理を説明する概念図であり、図７は、実施例３に係るキャッシング制御処理の処理手順を示すシーケンス図である。
【００８５】
図６には、３つのサーバ装置が有するキャッシュアクセスドライバ２３1〜２３3が、６つのＰＣ３０1〜３０6に備えられたメモリ３３1〜３３6をＩＰネットワーク６０を介してキャッシュメモリとして利用する場合が示されている。ここで、キャッシュメモリとして利用する各メモリ３３1〜３３6の容量は１０ＧＢであるものとする。
【００８６】
また、ＩＰネットワーク６０には、アクセス量監視サーバ装置４０が有するアクセス量監視デーモン４１が接続されている。
【００８７】
そして、初期状態においては、キャッシュアクセスドライバ２３1が管理するＨＤには、メモリ３３1がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３2が管理するＨＤには、メモリ３３2，３３3がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３3が管理するＨＤには、メモリ３３4，３３5，３３6がキャッシュメモリとして割り当てられている。
【００８８】
このような状況において、キャッシュアクセスドライバ２３1は、キャッシュメモリが２０ＧＢ不足していると判定すると、図７に示すように、アクセス量監視デーモン４１に対して２０ＧＢのキャッシュメモリの割り当てを要求する（ステップＳ３０１）。
【００８９】
ここでは、割り当てを要求するキャッシュメモリの容量を２０ＧＢとしたが、この値は、実施例２で説明したような方法で求められたキャッシュメモリに記憶するデータの容量と、すでに割り当てられているキャッシュメモリの容量との間の差などから決定される。
【００９０】
続いて、アクセス量監視デーモン４１は、キャッシュアクセスドライバ２３2，２３3に対して返却可能な容量の問い合わせをおこなう（ステップＳ３０２）。そして、キャッシュアクセスドライバ２３2，２３3は、問い合わせに対する応答をおこない、返却可能なキャッシュメモリ容量をアクセス量監視デーモン４１に通知する（ステップＳ３０３，ステップＳ３０４）。
【００９１】
ここで、キャッシュアクセスドライバ２３1が管理するＨＤに割り当てられた重み値は１０であり、キャッシュアクセスドライバ２３2，２３3が管理するＨＤに割り当てられた重み値はともに５で、キャッシュアクセスドライバ２３1が管理するＨＤに割り当てられた重み値よりも小さいため、アクセス量監視デーモン４１は、キャッシュアクセスドライバ２３2，２３3にキャッシュメモリを開放させることができる。
【００９２】
逆に、キャッシュアクセスドライバ２３2，２３3が管理するＨＤに割り当てられた重み値が、キャッシュアクセスドライバ２３1が管理するＨＤに割り当てられた重み値よりも大きい場合には、アクセス量監視デーモン４１は、キャッシュメモリの開放をおこなわず、キャッシュアクセスドライバ２３1によるキャッシュメモリの割当要求は拒否される。
【００９３】
また、キャッシュアクセスドライバ２３2，２３3が管理するＨＤのキャッシュメモリの割当容量の下限値は、それぞれ２０ＧＢおよび３０ＧＢであり、キャッシュアクセスドライバ２３2，２３3が管理するＨＤのキャッシュメモリの現在の割当容量は、それぞれ２０ＧＢおよび３０ＧＢであるため、キャッシュアクセスドライバ２３2はメモリ３３2，３３3を返却することができず、また、キャッシュアクセスドライバ２３3は１０ＧＢのみメモリ３３4を返却することができる。
【００９４】
その後、アクセス量監視デーモン４１は、返却可能なキャッシュメモリを管理しているキャッシュアクセスドライバ２３3に対して、返却可能な容量（１０ＧＢ）のメモリ３３4を返却するよう要求する（ステップＳ３０５）。
【００９５】
そして、キャッシュアクセスドライバ２３3は、アクセス量監視デーモン４１の要求に応じて、自らが管理する返却可能な容量（１０ＧＢ）のメモリ３３4を返却する（ステップＳ３０６）。
【００９６】
続いて、アクセス量監視デーモン４１は、返却された１０ＧＢのメモリ３３4をキャッシュメモリアクセスドライバ２３1が管理するＨＤに割り当て（ステップＳ３０７）、このキャッシング制御処理を終了する。
【００９７】
図６には、メモリ３３4をキャッシュメモリとして割り当てた後の状態が示されている。すなわち、キャッシュアクセスドライバ２３1が管理するＨＤには、メモリ３３1，３３4がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３2が管理するＨＤには、メモリ３３2，３３3がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３3が管理するＨＤには、メモリ３３5，３３6がキャッシュメモリとして割り当てられる。
【００９８】
また、図８は、キャッシュメモリの割当要求を拒否するキャッシング制御処理を説明する概念図であり、図９は、キャッシュメモリの割当要求を拒否するキャッシング制御処理の処理手順を示すシーケンス図である。ここで、図８に示す構成は、図６に示した構成と同様であるため、説明を省略する。
【００９９】
図８の例では、キャッシュアクセスドライバ２３3が、キャッシュアクセスドライバ２３3が管理するＨＤに、２０ＧＢのキャッシュメモリの不足が発生したと判定したものとする。
【０１００】
その場合、キャッシュアクセスドライバ２３3は、図９に示すように、アクセス量監視デーモン４１に対して２０ＧＢのキャッシュメモリの割り当てを要求する（ステップＳ４０１）。
【０１０１】
続いて、アクセス量監視デーモン４１は、キャッシュアクセスドライバ２３1，２３2に対して返却可能な容量の問い合わせをおこなう（ステップＳ４０２）。そして、キャッシュアクセスドライバ２３1，２３2は、問い合わせに対する応答をおこない、返却可能なキャッシュメモリ容量（０ＧＢ，０ＧＢ）をアクセス量監視デーモン４１に通知する（ステップＳ４０３，ステップＳ４０４）。
【０１０２】
ここで、キャッシュアクセスドライバ２３3が管理するＨＤに割り当てられた重み値は５であり、キャッシュアクセスドライバ２３1，２３2が管理するＨＤに割り当てられた重み値はそれぞれ１０および５であるので、アクセス量監視デーモン４１は、キャッシュアクセスドライバ２３2にキャッシュメモリを開放させることができるが、キャッシュアクセスドライバ２３1にキャッシュメモリを開放させることはできない。
【０１０３】
また、キャッシュアクセスドライバ２３1，２３2が管理するＨＤのキャッシュメモリの割当容量の下限値は、それぞれ１０ＧＢおよび２０ＧＢであり、キャッシュアクセスドライバ２３1，２３2が管理するＨＤのキャッシュメモリの現在の割当容量は、それぞれ１０ＧＢおよび２０ＧＢであるため、キャッシュアクセスドライバ２３1，２３2はキャッシュメモリを返却することができない。
【０１０４】
その後、アクセス量監視デーモン４１は、返却可能なキャッシュメモリがないため、キャッシュアクセスドライバ２３3に対して、０ＧＢのキャッシュメモリの割り当てをおこなう（ステップＳ４０５）。
【０１０５】
割り当てられたキャッシュメモリの情報は、サーバ装置２０1〜２０mのメモリ２５1〜２５mに記憶され、キャッシュアクセスドライバ２３1〜２３mは、その情報に基づいてＨＤ２１1〜２１mに記憶されたデータのキャッシングをおこなう。
【０１０６】
上述してきたように、本実施例３では、アクセス量監視デーモン４１が、ＨＤ２１1〜２１mに対する第１の重み値と他のＨＤ２１1〜２１mに対する第２の重み値とを比較し、比較した結果に基づいて、他のＨＤ２１1〜２１mにキャッシュメモリとして割り当てられていたメモリ３３1〜３３nをＨＤ２１1〜２１mのキャッシュメモリとして割り当てるか否かを判定し、サーバ装置２０1〜２０mのメモリ２５1〜２５mが、その判定の結果ＨＤ２１1〜２１mのキャッシュメモリとして割り当てられたメモリ３３1〜３３nに係る情報を記憶することとしたので、重み値を設定することによりキャッシュメモリのＨＤ２１1〜２１mへの割り当てを制御することができ、キャッシュ処理を効率的に実行させることができる。
【０１０７】
また、本実施例３では、アクセス量監視デーモン４１が、ＰＣ３０1〜３０nに搭載され、他のＨＤ２１1〜２１mのキャッシュメモリとして割り当てられたメモリ３３1〜３３nを開放し、開放したメモリ３３1〜３３nをＨＤ２１1〜２１mのキャッシュメモリとして割り当てる場合に、メモリ３３1〜３３n開放後の他のＨＤ２１1〜２１mのキャッシュメモリの容量が所定の下限値よりも小さくなるか否かを判定し、キャッシュメモリの容量が所定の下限値よりも小さくなる場合に当該メモリ３３1〜３３nの開放を中止することとしたので、ＨＤ２１1〜２１mに割り当てられるキャッシュメモリの下限値を制御することができ、キャッシュ処理を効率的に実行させることができる。
【実施例４】
【０１０８】
ところで、上記実施例３では、キャッシュアクセスドライバ２３1〜２３mが管理するＨＤ２１1〜２１mに重み値を固定的に割り当てることとしたが、ＨＤ２１1〜２１mにおけるデータの単位時間あたりの転送量に応じてＨＤ２１1〜２１mに割り当てられた重み値を変更し、データの転送量に合わせてキャッシュメモリの割り当てを適切におこなうようにしてもよい。
【０１０９】
そこで、本実施例４では、ＨＤ２１1〜２１mにおけるデータの単位時間あたりの転送量に応じてＨＤ２１1〜２１mに割り当てられた重み値を変更する場合について説明する。
【０１１０】
まず、本実施例４に係るキャッシング制御処理の処理手順について説明する。図１０は、実施例４に係るキャッシング制御処理を説明する概念図である。
【０１１１】
図１０には、３つのサーバ装置が有するキャッシュアクセスドライバ２３1〜２３3が、６つのＰＣ３０1〜３０6に備えられたメモリ３３1〜３３6をＩＰネットワーク６０を介してキャッシュメモリとして利用する場合が示されている。ここで、キャッシュメモリとして利用する各メモリ３３1〜３３6の容量は１０ＧＢであるものとする。
【０１１２】
また、ＩＰネットワーク６０には、アクセス量監視サーバ装置４０が有するアクセス量監視デーモン４１が接続されている。
【０１１３】
そして、キャッシュアクセスドライバ２３1が管理するＨＤには、メモリ３３1がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３2が管理するＨＤには、メモリ３３2，３３3がキャッシュメモリとして割り当てられ、キャッシュアクセスドライバ２３3が管理するＨＤには、キャッシュメモリ３３4，３３5，３３6がキャッシュメモリとして割り当てられている。
【０１１４】
また、このキャッシング制御処理においては、ＨＤ２１1〜２１mのデータの単位時間あたりの転送量に応じて３つのＨＤ２１1〜２１mの状態が定義されている。
【０１１５】
具体的には、データの単位時間あたりの転送量が３０ＭＢ／ｓｅｃ以上である状態は「Ｂｕｓｙ」状態、３０ＭＢ／ｓｅｃ未満１０ＭＢ／ｓｅｃ以上である状態は「Ｍｉｄ」状態、１０ＭＢ／ｓｅｃ未満である状態は「Ｆｒｅｅ」状態と定義される。
【０１１６】
そして、各キャッシュアクセスドライバ２３1〜２３3は、ＨＤ２１1〜２１mの全ストレージ領域におけるデータの単位時間あたりの転送量を監視し、その情報をサーバ装置２０1〜２０mのメモリ２５1〜２５mに記憶する。
【０１１７】
また一方で、サーバ装置２０1〜２０mのメモリ２５1〜２５mに、「Ｂｕｓｙ」、「Ｍｉｄ」、「Ｆｒｅｅ」のＨＤ２１1〜２１mの各状態に対応付けて設定された重み値を記憶する。
【０１１８】
そして、キャッシュアクセスドライバ２３1〜２３3は、ＨＤ２１1〜２１mの状態が、「Ｂｕｓｙ」状態、「Ｍｉｄ」状態、「Ｆｒｅｅ」状態のどれであるかを判定し、判定された状態に対応する重み値をＨＤ２１1〜２１mの重み値として設定する処理をおこなう。
【０１１９】
このようにして、重み値を設定することにより、データの転送量が多いＨＤ２１1〜２１mには大きな重み値を設定してキャッシュメモリの割り当ての優先度を高くし、データの転送量が少ないＨＤ２１1〜２１mには小さな重み値を設定してキャッシュメモリの割り当ての優先度を低くする仕組みを実現することができる。
【０１２０】
このようにして重み値が設定された後は、実施例３で説明したような方法で、キャッシュメモリの割り当てや開放がおこなわれる。
【０１２１】
つぎに、本実施例４に係るキャッシング制御処理の処理手順について説明する。図１１は、実施例４に係るキャッシング制御処理の処理手順を示すフローチャートである。
【０１２２】
図１１に示すように、まず、サーバ装置２０1〜２０mのキャッシュアクセスドライバ２３1〜２３mは、単位時間スリープして待機する（ステップＳ５０１）。そして、キャッシュアクセスドライバ２３1〜２３mは、ＨＤ２１1〜２１mの単位時間でのストレージ領域全体の転送量を計算する（ステップＳ５０２）。
【０１２３】
続いて、キャッシュアクセスドライバ２３1〜２３mは、算出した単位時間当たりの転送量に基づいて、ＨＤ２１1〜２１mが「Ｂｕｓｙ」状態にあるか否かを調べ（ステップＳ５０３）、「Ｂｕｓｙ」状態にある場合には（ステップＳ５０３，Ｙｅｓ）、重み値を「Ｂｕｓｙ」状態に対応する値に変更し（ステップＳ５０４）、ステップＳ５０１に移行する。
【０１２４】
ＨＤ２１1〜２１mが「Ｂｕｓｙ」状態にない場合には（ステップＳ５０３，Ｎｏ）、キャッシュアクセスドライバ２３1〜２３mは、ＨＤ２１1〜２１mが「Ｍｉｄ」状態にあるか否かを調べ（ステップＳ５０５）、「Ｍｉｄ」状態にある場合には（ステップＳ５０５，Ｙｅｓ）、重み値を「Ｍｉｄ」状態に対応する値に変更し（ステップＳ５０６）、ステップＳ５０１に移行する。
【０１２５】
ＨＤ２１1〜２１mが「Ｍｉｄ」状態にない場合には（ステップＳ５０５，Ｎｏ）、キャッシュアクセスドライバ２３1〜２３mは、重み値を「Ｆｒｅｅ」状態に対応する値に変更し（ステップＳ５０７）、ステップＳ５０１に移行する。
【０１２６】
上述してきたように、本実施例４では、キャッシュアクセスドライバ２３1〜２３mが、重み値をＨＤ２１1〜２１mに記憶されたデータに対するアクセス状況に応じて変更し、ＨＤ２１1〜２１mに対する重み値と他のＨＤ２１1〜２１mに対する重み値とを比較し、比較した結果に基づいて他のＨＤ２１1〜２１mにキャッシュメモリとして割り当てられていたメモリ３３1〜３３nをＨＤ２１1〜２１mのキャッシュメモリとして割り当てるか否かを判定することとしたので、より頻繁にアクセスされるデータを記憶しているＨＤ２１1〜２１mにより高い優先度を設定し、キャッシュメモリの割り当てを優先的におこなうことができ、キャッシュ処理を効率的に実行させることができる。
【０１２７】
以上本発明の実施例について説明してきたが、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１２を用いて、上記各種処理を実現するプログラムを実行するコンピュータの一例について説明する。
【０１２８】
図１２は、図１に示した各装置の機能を実現するコンピュータのハードウェア構成を示す図である。各装置とは、具体的には、クライアント装置１０1〜１０l、サーバ装置２０1〜２０m、ＰＣ３０1〜３０nあるいはアクセス量監視サーバ装置４０のことである。
【０１２９】
このコンピュータは、ユーザからのデータの入力を受け付ける入力装置１００、表示装置１０１、ＲＡＭ１０２、ＲＯＭ（Read  Only  Memory）１０３、各種プログラムを記録した記録媒体からプログラムを読み取る媒体読み取り装置１０４、ＩＰネットワーク１０６を介して他のコンピュータとの間でデータの授受をおこなうネットワークインターフェース１０５、ＣＰＵ（Central  Processing  Unit）１０７およびＨＤ装置１０８をバス１０９で接続して構成される。
【０１３０】
そして、ＨＤ装置１０８には、上記装置の機能と同様の機能を発揮するプログラムが記憶されている。そして、ＣＰＵ１０７が当該プログラムをＨＤ装置１０８から読み出して実行することにより、図１に示した装置の各機能部の機能が実現される。
【０１３１】
ところで、上記プログラムは、必ずしも最初からＨＤ装置１０８に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶しておき、コンピュータがこれらから各プログラムを読み出して実行するようにしてもよい。
【０１３２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【０１３３】
たとえば、上記実施例では、ＨＤがＳＣＳＩ規格にしたがうＨＤであることとしたが、本発明はこれに限定されるものではなく、ＩＤＥ（Integrated Drive Electronics）など他の規格にしたがうＨＤであってもよい。
【０１３４】
この場合、ｉＳＣＳＩの技術を用いることによりＩＰネットワークを介して送信されたＳＣＳＩコマンドは、ＳＣＳＩコマンドを受信したサーバ装置側でＩＤＥコマンドに変換される。
【０１３５】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【０１３６】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１３７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１３８】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１３９】
（付記１）記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御プログラムであって、
前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶手順と、
前記記憶手順により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御手順と、
をコンピュータに実行させることを特徴とするキャッシング制御プログラム。
【０１４０】
（付記２）前記記憶装置に記憶されたデータに対するアクセス状況を判定する判定手順をさらにコンピュータに実行させ、前記制御手順は、前記判定手順による判定結果に基づいて、前記データを前記第２のコンピュータに搭載されたメモリに記憶するか否かを判定することを特徴とする付記１に記載のキャッシング制御プログラム。
【０１４１】
（付記３）前記判定手順は、前記記憶装置の所定の時間内におけるデータの転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順によりデータの転送量が所定の閾値よりも大きいと判定された場合に、前記データを前記第２のコンピュータに搭載されたメモリに記憶するよう制御することを特徴とする付記２に記載のキャッシング制御プログラム。
【０１４２】
（付記４）前記制御手順は、前記判定手順により前記所定の時間内におけるデータの転送量が所定の閾値よりも小さいと判定された場合に、前記第２のコンピュータに搭載されたメモリに記憶された前記データを削除するよう制御することを特徴とする付記３に記載のキャッシング制御プログラム。
【０１４３】
（付記５）前記判定手順は、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順により互いに異なる時間内におけるデータの複数の転送量のうち少なくとも１つのデータの転送量が所定の閾値よりも大きいと判定された場合に、前記データを前記第２のコンピュータに搭載されたメモリに記憶するよう制御することを特徴とする付記３に記載のキャッシング制御プログラム。
【０１４４】
（付記６）前記判定手順は、互いに異なる時間内におけるデータの複数の転送量が所定の閾値よりも大きいか否かを判定し、前記制御手順は、前記判定手順により互いに異なる時間内におけるデータのすべての転送量が所定の閾値よりも小さいと判定された場合に、前記第２のコンピュータに搭載されたメモリに記憶されたデータを削除するよう制御することを特徴とする付記４に記載のキャッシング制御プログラム。
【０１４５】
（付記７）前記記憶装置に対するキャッシュメモリの割り当ての第１の優先度と他の記憶装置に対するキャッシュメモリの割り当ての第２の優先度とを比較し、比較した結果に基づいて前記他の記憶装置にキャッシュメモリとして割り当てられていたメモリを前記記憶装置のキャッシュメモリとして割り当てるか否かを判定する割当判定手順をさらにコンピュータに実行させ、前記記憶手段は、前記割当判定手順による判定の結果、前記記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶することを特徴とする付記１に記載のキャッシング制御プログラム。
【０１４６】
（付記８）前記割当判定手順は、前記第２のコンピュータに搭載され、前記他の記憶装置のキャッシュメモリとして割り当てられたメモリを開放し、開放したメモリを前記記憶装置のキャッシュメモリとして割り当てる場合に、メモリ開放後の前記他の記憶装置のキャッシュメモリの容量が所定の下限値よりも小さくなるか否かを判定し、キャッシュメモリの容量が所定の下限値よりも小さくなる場合に当該メモリの開放を中止することを特徴とする付記７に記載のキャッシング制御プログラム。
【０１４７】
（付記９）前記優先度を前記記憶装置に記憶されたデータに対するアクセス状況に応じて変更する変更手順をさらにコンピュータに実行させ、前記割当判定手順は、前記記憶装置に対するキャッシュメモリの割り当ての優先度と他の記憶装置に対するキャッシュメモリの割り当ての優先度とを比較し、比較した結果に基づいて前記他の記憶装置にキャッシュメモリとして割り当てられていたメモリを前記記憶装置のキャッシュメモリとして割り当てるか否かを判定することを特徴とする付記７または８に記載のキャッシング制御プログラム。
【０１４８】
（付記１０）記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御装置であって、
前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶手段と、
前記記憶手段により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御手段と、
を備えたことを特徴とするキャッシング制御装置。
【０１４９】
（付記１１）記憶装置に記憶されたデータに対するデータキャッシングの制御をおこなうキャッシング制御方法であって、
前記記憶装置に対するデータの読み書きを管理する第１のコンピュータにネットワークを介して接続された第２のコンピュータに搭載され、当該記憶装置のキャッシュメモリとして割り当てられたメモリに係る情報を記憶する記憶工程と、
前記記憶工程により記憶された情報に基づいて、前記第２のコンピュータに搭載されたメモリをキャッシュメモリとして利用したデータキャッシングの実行制御をおこなう制御工程と、
を含んだことを特徴とするキャッシング制御方法。
【産業上の利用可能性】
【０１５０】
以上のように、本発明に係るキャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法は、記憶装置に対してキャッシュメモリを適切に割り当て、データのキャッシングを効率的に実行させることができるキャッシング制御システムに有用である。
【図面の簡単な説明】
【０１５１】
【図１】本発明に係るキャッシング制御システムの構成を示す図である。
【図２】実施例１に係るキャッシング制御処理を説明する概念図である。
【図３】実施例１に係るキャッシング制御処理の処理手順を示すシーケンス図である。
【図４】実施例２に係るキャッシング制御処理を説明する図である。
【図５】実施例２に係るキャッシング制御処理の処理手順を示すフローチャートである。
【図６】実施例３に係るキャッシング制御処理を説明する概念図である。
【図７】実施例３に係るキャッシング制御処理の処理手順を示すシーケンス図である。
【図８】キャッシュメモリの割当要求を拒否するキャッシング制御処理を説明する概念図である。
【図９】キャッシュメモリの割当要求を拒否するキャッシング制御処理の処理手順を示すシーケンス図である。
【図１０】実施例４に係るキャッシング制御処理を説明する概念図である。
【図１１】実施例４に係るキャッシング制御処理の処理手順を示すフローチャートである。
【図１２】図１に示した各装置の機能を実現するコンピュータのハードウェア構成を示す図である。
【符号の説明】
【０１５２】
１０1〜１０l    クライアント装置
１１1〜１１l    ｉＳＣＳＩイニシエータ
２０1〜２０m    サーバ装置
２１1〜２１m    ＨＤ
２２1〜２２m    ｉＳＣＳＩターゲット
２３1〜２３m    キャッシュアクセスドライバ
２４1〜２４m    ＳＣＳＩドライバ
２５1〜２５m    メモリ
３０1〜３０n    ＰＣ
３１1〜３１n    ネットワークインターフェース
３２1〜３２n    Ｒ／Ｗ処理部
３３1〜３３n    メモリ
４０    アクセス量監視サーバ装置
４１    アクセス量監視デーモン
４２    メモリ
５０，６０    ＩＰネットワーク
７０    転送量データ
【図１】
2006268486.tif 000003
【図２】
2006268486.tif 000004
【図３】
2006268486.tif 000005
【図４】
2006268486.tif 000006
【図５】
2006268486.tif 000007
【図６】
2006268486.tif 000008
【図７】
2006268486.tif 000009
【図８】
2006268486.tif 000010
【図９】
2006268486.tif 000011
【図１０】
2006268486.tif 000012
【図１１】
2006268486.tif 000013
【図１２】
2006268486.tif 000014