(57)【要約】【課題】複数の記憶装置を含む計算機システムにおいて、記憶領域の属性に応じた記憶装置の帯域を管理する計算機システムを提供する。【解決手段】制御部は、メタデータに、クライアント計算機による第１のファイルへのアクセスに関連してライトアクセスされる第２のファイルを特定可能な情報と、ライトアクセスのアクセス種別とを含む関連ファイル情報を含め、クライアント計算機によって第１のファイルがアクセスされた場合は、関連ファイル情報を参照して、第２のファイル及びアクセス種別を取得し、取得された第２のファイルのうち、取得されたアクセス種別に対応するデータをディスク装置から読み出し、読み出されたデータを前記キャッシュメモリに格納することを特徴とする。【選択図】図１
2008041020.tif 000002
【特許請求の範囲】
【請求項１】
制御部と、クライアント計算機がアクセスするデータを一時的に格納するキャッシュメモリと、前記クライアント計算機とディスク装置とに接続するインタフェースと、を備え、前記ディスク装置に格納されたファイル及び前記ファイルを特定可能な情報であるメタデータを管理するファイルサーバであって、
前記制御部は、
前記メタデータに、前記クライアント計算機による第１のファイルへのアクセスに関連してライトアクセスされる第２のファイルを特定可能な情報と、前記ライトアクセスのアクセス種別と、を含む関連ファイル情報を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル及び前記アクセス種別を取得し、
前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応するデータを前記ディスク装置から読み出し、
前記読み出されたデータを前記キャッシュメモリに格納することを特徴とするファイルサーバ。
【請求項２】
前記制御部は、
前記関連ファイル情報に、さらに、前記第２のファイルのうち、前記ライトアクセス対象のデータが格納されているブロックの前記ディスク装置での位置を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル、前記アクセス種別及び前記ブロックの位置を取得し、
前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応する前記取得されたブロックの位置のデータを前記ディスク装置から読み出し、
前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする請求項１に記載のファイルサーバ。
【請求項３】
前記制御部は、
前記アクセス種別に、追記書き込みであるか部分書き込みであるかを示す情報を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル及び前記アクセス種別を取得し、
前記取得されたアクセス種別が追記書き込みを示す場合は、前記第２のファイルの終端を含むデータを前記ディスク装置から読み出し、前記読み出されたデータを前記キャッシュメモリに格納し、
前記取得されたアクセス種別が部分書き込みを示す場合は、前記第２のファイルの前記部分書き込み位置を含むデータを前記ディスク装置から読み出し、前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする請求項１に記載のファイルサーバ。
【請求項４】
前記制御部は、
前記関連ファイル情報に、さらに、前記第１のファイルがアクセスされた後前記第２のファイルがライトアクセスされる頻度を示す情報を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル、前記アクセス種別及び前記頻度情報を取得し、
前記取得された頻度が所定の値以上である場合は、前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応するデータを前記ディスク装置から読み出し、
前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする請求項１に記載のファイルサーバ。
【請求項５】
前記制御部は、
前記ディスク装置に第１のファイルが書き込まれたときに、前記第１のファイルに含まれる第２のファイルを参照する情報を取得し、
前記取得された情報から第２のファイル及びその参照の種別を取得し、
前記第１のファイルに含まれた第２のファイルの数及び前記取得した参照の種別に基づいて前記頻度を示す情報を生成し、
前記取得された第２のファイル及び前記生成された頻度を示す情報を、前記メタデータの関連ファイル情報に含めることを特徴とする請求項４に記載のファイルサーバ。
【請求項６】
前記制御部は、
前記ディスク装置に格納されている前記第１のファイルに関するアクセスログを参照して、前記アクセスログに含まれる、前記第１のファイルのアクセスに関連してアクセスされた第２のファイルを取得し、
前記アクセスログに含まれる第２のファイルのアクセス回数に基づいて、前記頻度を示す情報を生成し、
前記取得された第２のファイル、前記生成された頻度を示す情報及び前記アクセスログに含まれる前記第２のファイルのアクセス種別を、前記メタデータの関連ファイル情報に含めることを特徴とする請求項４に記載のファイルサーバ。
【請求項７】
ファイルをアクセスするクライアント計算機と、
ファイルを格納するディスク装置と、
制御部と、前記クライアント計算機がアクセスするデータを一時的に格納するキャッシュメモリと、前記クライアント計算機と前記ディスク装置とに接続するインタフェースと、を備え、前記ディスク装置に格納されたファイル及び前記ファイルを特定可能な情報であるメタデータを管理するファイルサーバと、
を備える計算機システムであって、
前記制御部は、
前記メタデータに、前記クライアント計算機による第１のファイルへのアクセスに関連してライトアクセスされる第２のファイルを特定可能な情報と、前記ライトアクセスのアクセス種別と、を含む関連ファイル情報を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル及び前記アクセス種別を取得し、
前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応するデータを前記ディスク装置から読み出し、
前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする計算機システム。
【請求項８】
前記制御部は、
前記関連ファイル情報に、さらに、前記第２のファイルのうち、前記ライトアクセス対象のデータが格納されているブロックの前記ディスク装置での位置を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル、前記アクセス種別及び前記ブロックの位置を取得し、
前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応する前記取得されたブロックの位置のデータを前記ディスク装置から読み出し、
前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする請求項７に記載の計算機システム。
【請求項９】
前記制御部は、
前記アクセス種別に、追記書き込みであるか部分書き込みであるかを示す情報を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル及び前記アクセス種別を取得し、
前記取得されたアクセス種別が追記書き込みを示す場合は、前記第２のファイルの終端を含むデータを前記ディスク装置から読み出し、前記読み出されたデータを前記キャッシュメモリに格納し、
前記取得されたアクセス種別が部分書き込みを示す場合は、前記第２のファイルの前記部分書き込み位置を含むデータを前記ディスク装置から読み出し、前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする請求項７に記載の計算機システム。
【請求項１０】
前記制御部は、
前記関連ファイル情報に、さらに、前記第１のファイルがアクセスされた後前記第２のファイルがライトアクセスされる頻度を示す情報を含め、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル、前記アクセス種別及び前記頻度情報を取得し、
前記取得された頻度が所定の値以上である場合は、前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応するデータを前記ディスク装置から読み出して、前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする請求項７に記載の計算機システム。
【請求項１１】
前記制御部は、
前記ディスク装置に第１のファイルが書き込まれたときに、前記第１のファイルに含まれる第２のファイルを参照する情報を取得し、
前記取得された情報から第２のファイル及びその参照の種別を取得し、
前記第１のファイルに含まれた第２のファイルの数及び前記取得した参照の種別に基づいて前記頻度を示す情報を生成し、
前記取得された第２のファイル及び前記生成された頻度を示す情報を、前記メタデータの関連ファイル情報に含めることを特徴とする請求項１０に記載の計算機システム。
【請求項１２】
前記制御部は、
前記ディスク装置に格納されている前記第１のファイルに関するアクセスログを参照して、前記アクセスログに含まれる、前記第１のファイルのアクセスに関連してアクセスされた第２のファイルを取得し、
前記アクセスログに含まれる第２のファイルのアクセス回数に基づいて、前記頻度を示す情報を生成し、
前記取得された第２のファイル、前記生成された頻度を示す情報及び前記アクセスログに含まれる前記第２のファイルのアクセス種別を、前記メタデータの関連ファイル情報に含めることを特徴とする請求項１０に記載の計算機システム。
【請求項１３】
制御部と、クライアント計算機がアクセスするデータを一時的に格納するキャッシュメモリと、前記クライアント計算機及びディスク装置と接続するインタフェースと、を備え、前記ディスク装置に格納されたファイル及び前記ファイルを特定可能な情報であるメタデータを管理するファイルサーバで実行されるファイル先読み方法あって、
前記メタデータに、前記クライアント計算機による第１のファイルへのアクセスに関連してライトアクセスされる第２のファイルを特定可能な情報と、前記ライトアクセスのアクセス種別と、を含む関連ファイル情報を含める第１の手順と、
前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル及び前記アクセス種別を取得する第２の手順と、
前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応するデータを前記ディスク装置から読み出す第３の手順と、
前記読み出されたデータを前記キャッシュメモリに格納する第４の手順と、を含むことを特徴とするファイルの先読み方法。
【請求項１４】
前記第１の手順は、前記関連ファイル情報に、さらに、前記第１のファイルがアクセスされた後前記第２のファイルがライトアクセスされる頻度を示す情報を含め、
前記第２の手順は、前記クライアント計算機によって前記第１のファイルがアクセスされた場合は、前記関連ファイル情報を参照して、前記第２のファイル、前記アクセス種別及び前記頻度情報を取得し、
前記第３の手順は、前記取得された頻度が所定の値以上である場合は、前記取得された第２のファイルのうち、前記取得されたアクセス種別に対応するデータを前記ディスク装置から読み出して、前記読み出されたデータを前記キャッシュメモリに格納することを特徴とする請求項１３に記載のファイルの先読み方法。
【請求項１５】
前記第１の手順は、
前記ディスク装置に第１のファイルが書き込まれたときに、前記第１のファイルに含まれる第２のファイルを参照する情報を取得する手順と、
前記取得された情報から第２のファイル及びその参照の種別を取得する手順と、
前記第１のファイルに含まれた第２のファイルの数及び前記取得した参照の種別に基づいて前記頻度を示す情報を生成する手順と、
前記取得された第２のファイル及び前記生成された頻度を示す情報を、前記メタデータの関連ファイル情報に含める手順と、を含むことを特徴とする請求項１４に記載のファイルの先読み方法。
【請求項１６】
前記第１の手順は、
前記ディスク装置に格納されている前記第１のファイルに関するアクセスログを参照して、前記アクセスログに含まれる、前記第１のファイルのアクセスに関連してアクセスされた第２のファイルを取得する手順と、
前記アクセスログに含まれる第２のファイルのアクセス回数に基づいて、前記頻度を示す情報を生成する手順と、
前記取得された第２のファイル、前記生成された頻度を示す情報及び前記アクセスログに含まれる前記第２のファイルのアクセス種別を、前記メタデータの関連ファイル情報に含める手順と、を含むことを特徴とする請求項１４に記載のファイルの先読み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機がアクセスするファイルを格納するファイルサーバ及びファイルサーバがディスク装置から情報を先読みする方法に関する。
【背景技術】
【０００２】
ファイルシステムのデータ転送速度を向上する技術として、ファイルの先読み技術が知られている。ファイルの先読み技術とは、ユーザからファイル参照要求が来る前に、対象データを低速なディスク装置からキャッシュメモリに読み込んでおき、ファイル参照要求を受けた時点でのディスク装置へのアクセスを不要とすることによって、ユーザのファイル参照要求に対する応答を高速化できる（特許文献１参照）。
【０００３】
また、ファイル参照要求を受けた際に、要求ファイルとは別のファイルを先読みする技術も知られている。例えば、ファイルサーバ１００は、データ送信要求の受信に先立って、マルチメディアファイルＤの先頭部分ＤＨをＲＡＭ３４に読み込んでおき、データ送信要求を受信しこれに応じてマルチメディアファイルＤを送信する場合に、データ送信要求に係るマルチメディアファイルＤの先頭部分ＤＨがＲＡＭ３４に読み込まれているときは、ＲＡＭ３４のその先頭部分ＤＨを送信すると共に、その送信動作と並行してそのデータ送信要求に係るマルチメディアファイルＤの残部を記憶装置４２から読み出すアクセス制御装置が知られている（特許文献２参照）。
【０００４】
このような技術によって、複数のファイルを順番にシーケンシャルリードする場合において、ファイルシステムはキャッシュメモリに先読み済みのデータを処理することで、ディスク装置の応答を待つ必要がなくなり、応答時間を短縮することができる。
【０００５】
さらに、アクセス履歴を元に先読みを行う手法が知られている。例えば、ネットワークインタフェースにより他の計算機からデータ読み込みが要求される環境を想定している。記憶装置はデータの参照元計算機ＩＤとアクセス履歴の統計情報をテーブルに格納する。データ読み込み要求が発生した場合、記憶装置が要求元の計算機ＩＤに対応する統計情報テーブルの項目を探し、前記項目に記録された位置の先読みを行う（特許文献３参照）。
【特許文献１】特開平０１−０８２２３９号公報
【特許文献２】特開２００１−２５６０９９号公報
【特許文献３】特開２００５−１５７７１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した特許文献１のような従来の先読み技術は、個々のファイルのデータについては先読みを行うが、アクセス要求のあるファイル以外のファイルの先読みは行わない。この場合、複数のファイルを連続して参照するようなユーザに対しては、あまり先読みの効果が得られない。
【０００７】
特許文献２では、この問題点を解消するため、ファイルサーバがディスク装置内にアクセス履歴テーブルを格納し、上記テーブルの情報を元にして先読みの対象となるファイルを決定し、ファイル間の先読みを行う。しかし、多量のファイルを格納するファイルシステムの場合は、前記アクセス履歴テーブルの大きさがファイル数に応じて大きくなる。従って、ファイルサーバによるアクセス履歴テーブル参照自体にディスクアクセスが発生してしまい、特に高負荷の環境においてはかえってディスクアクセス数が増加し、性能低下を引き起こす可能性がある。
【０００８】
また、前述のファイル先読み技術は、いずれも記憶装置への読み込み要求に対する応答性能を向上させるものである。一般的に記憶装置はブロック単位でデータを読み書きするため、先読み対象のファイルの先頭ブロックから順次キャッシュメモリに格納する。しかしながら、書き込み要求では、書き込み対象ブロックが必ずしもファイルの先頭とは限らないので、ファイルの全てのブロックを予めキャッシュに読み込む必要がある。そのため、ファイルサイズが大きく、多くのブロックを有するファイルでは、ファイルの先読みが有効に機能しない場合がある。
【０００９】
本発明の目的は、このような問題点を解決するために、ファイル数に応じてディスクアクセスが増加することなく先読み対象となるファイルを決定し、記憶装置に対する書き込みに対しても効率的な先読みが可能なファイルシステムを提供する。
【課題を解決するための手段】
【００１０】
本発明による一実施態様によると、制御部は、メタデータに、クライアント計算機による第１のファイルへのアクセスに関連してライトアクセスされる第２のファイルを特定可能な情報と、ライトアクセスのアクセス種別とを含む関連ファイル情報を含め、クライアント計算機によって第１のファイルがアクセスされた場合は、関連ファイル情報を参照して、第２のファイル及びアクセス種別を取得し、取得された第２のファイルのうち、取得されたアクセス種別に対応するデータをディスク装置から読み出し、読み出されたデータを前記キャッシュメモリに格納することを特徴とする。
【発明の効果】
【００１１】
本発明によると、複数のファイルに対して類似したパターンで繰り返してファイルアクセスを行う状態において、ディスク装置中の別ブロックに含まれる情報を参照することなしに、ファイルの読み書き性能を向上させる効果が得られる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１３】
図１は、本発明の実施の形態の計算機システムの概要を示す機能ブロック図である。
【００１４】
図１に示す計算機システムは、ファイルシステム１１０、ディスク装置１４０、キャッシュメモリ２００、及び、ファイルシステム上のファイルを参照するアプリケーション１００によって構成される。
【００１５】
アプリケーション１００は、ファイルシステム１１０にファイルの入出力等のファイル操作を要求する。ファイルシステム１１０は、アプリケーション１００の要求に基づいて、ディスク装置１４０に格納されているファイルを操作する。ディスク装置１４０は、ファイルを格納する。ファイルシステム１１０は、ディスク装置１４０及びキャッシュメモリ２００と相互に通信可能に接続されている。
【００１６】
ファイルシステム１１０は、先読み処理部１２０と先読み判定処理部１３０とテーブル作成処理部１３５とを有する。ファイルシステム１１０は、アプリケーション１００の要求に基づいてディスク装置１４０に格納されたデータを参照する。ファイルシステム１０１０は、ディスク装置１４０から読み込むデータ及びディスク装置１４０に書き込むデータを、一時的にキャッシュメモリ２００に格納する。このとき、先読み処理部１２０と先読み判定処理部１３０とは、要求されたデータに関連するデータを先読みしてキャッシュメモリ２００に格納する。
【００１７】
テーブル作成処理部１３５は、ファイル１５０に対する関連ファイル情報１７０を作成して、ディスク装置１４０に格納する。なお、関連ファイル情報１７０は、アプリケーション１００等、ファイルシステム１１０以外の構成が作成して、テーブル作成処理部１３５がこれを受け取ってディスク装置１４０に格納してもよい。
【００１８】
ディスク装置１４０は、ファイルシステム１１０が管理するファイル１５０を格納する。ディスク装置１４０は、例えば磁気ディスク装置で構成される。なお、ディスク装置１４０は、一つの磁気ディスク装置で構成されていてもよいし、複数の磁気ディスク装置からなるディスクアレイで構成されていてもよい。また、磁気ディスク装置ではなく、フラッシュメモリであってもよい。
【００１９】
ファイル１５０は、ファイル構成情報を示すメタデータ１６０と、ファイルの情報を示すデータ１７０とを含む。メタデータ１６０は、ディスク装置１４０におけるデータ１８０が格納されているブロックを示す情報を含む。また、メタデータ１６０は、ファイル１５０がアクセスされた直後にアクセスされ得るファイル１９０に関する情報である関連ファイル情報１７０を含む。なお、関連ファイル情報１７０は、関連ファイル情報テーブル３００（図３）を含む。
【００２０】
図２は、本発明の実施の形態の計算機システムの構成ブロック図である。
【００２１】
図２に示す計算機システムは、クライアント計算機２９０、ファイルサーバ２０５及び記憶装置２６０によって構成される。
【００２２】
クライアント計算機２９０は、アプリケーション１００にファイル操作等を指示する計算機である。
【００２３】
ファイルサーバ２０５は、アプリケーション１００及びファイルシステム１１０を稼働する計算機である。ファイルサーバ２０５は、制御装置２１０、メモリ２１５、インタフェース２２０及びインタフェース２２５を有する。
【００２４】
制御装置２１０は、メモリ２１５に格納されているプログラムを実行して、そのプログラムに規定された処理を実行する。具体的には、アプリケーションプログラム２３０を実行することによって、アプリケーション１００を実行する。このアプリケーション１００が、ファイル処理要求を実行する。また、ファイルシステム処理プログラム２３５を実行することによって、ファイルシステム１１０を実行する。
【００２５】
ファイルシステム処理プログラム２３５は、先読み判定処理プログラム２４０、先読み処理プログラム２４５及びデーブル作成処理プログラム２５０を含む。これらのプログラムは制御装置２１０が実行することによって、それぞれ、先読み判定処理部１３０、先読み処理部１２０及びテーブル作成処理部１３５を実行する。
【００２６】
また、制御装置２１０は、メモリ２１５の一部の領域をキャッシュメモリ２００として利用し、記憶装置２６０から読み込んだデータ及び記憶装置２６０に書き込むデータを一時的に格納する。また、制御装置２１０は、インタフェース２２０を介してクライアント計算機２９０とデータを送受信し、インタフェース２２５を介して記憶装置２６０とデータを送受信する。
【００２７】
なお、ファイル処理要求を実行するのはファイルサーバ２０５以外の他の計算機であってもよい。例えば、インタフェース２２５を介して接続されるクライアント計算機２９０においてアプリケーション１００が稼働しており、このアプリケーション１００が記憶装置２６０に対してファイル処理要求を送信すると、ファイルサーバ２０５が、そのファイル要求を記憶装置２６０に転送し、その応答をインタフェース２２５を介してクライアント計算機２９０に返すように構成してもよい。
【００２８】
記憶装置２６０は、制御装置２６５、キャッシュメモリ２７０、インタフェース２７５及びディスク装置１４０を有する。制御装置２６５は、インタフェース２７５を介して受信した要求に基づいて、ディスク装置１４０に格納されているデータを送受信する。なお、図２の例では、ディスク装置１４０は、複数の磁気ディスク装置からなるディスクアレイで構成されている。
【００２９】
図３は、本発明の実施の形態の関連ファイル情報１７０に含まれる関連ファイル情報テーブル３００の一例の説明図である。
【００３０】
関連ファイル情報テーブル３００は、ファイル１５０の直後に参照され得るファイルに関する情報を格納する。
【００３１】
関連ファイル情報テーブル３００は、参照され得るファイルの識別子であるファイルＩＤ３１０、参照の際のアクセスパターン３２０、参照の際のアクセス頻度３３０、参照されるファイルの先読み位置３４０及び参照されるファイルのアクセス回数３５０を含むエントリによって構成される。
【００３２】
ファイルＩＤ３１０は、ファイルシステム内のファイルを一意に特定できる情報である。ファイルＩＤ３１０は、ファイルシステムにおけるファイル名を用いる。なお、ファイルＩＤ３１０として利用する情報はこれに限られず、例えば、ファイル固有の番号やディスク内のブロック番号を用いてもよい。
【００３３】
アクセスパターン３２０は、ファイル参照要求がどのような内容であるかを示す情報である。具体的には、ファイルの参照方法と、読み込みであるか書き込みであるかを示す情報とを組とした情報である。
【００３４】
参照方法は、特定の位置から連続した領域を処理する「ｓｅｑｕｅｎｔｉａｌ」、特定の一部分だけを処理する「ｐａｒｔｉａｌ」、複数の場所からランダムに読み込む「ｒａｎｄｏｍ」、ファイルの終端にデータを追加して書き込む「ａｐｐｅｎｄ」等を含む。
【００３５】
読み込みであるか書き込みであるかを示す情報は、読み込みを実行する「ｒｅａｄ」、書き込みを実行する「ｗｒｉｔｅ」、読み込みと書き込みを共に実行する「Ｒ／Ｗ」を含む。
【００３６】
例えば、アクセスパターン３２０が「ａｐｐｅｎｄ  ｗｒｉｔｅ」である場合は、ファイルの終端にデータを追記して書き込むことを示す。また、「ｐａｒｔｉａｌ  Ｒ／Ｗ」である場合は、ファイルの特定の一部分に対して読み込み及び書き込みを実行することを示す。
【００３７】
アクセス頻度３３０は、アプリケーション１００が要求するファイル１５０の直後に、ファイルＩＤ３１０で示されるファイルが参照される頻度を示す情報である。アクセス頻度３３０の値が高ければ、そのファイルは、アプリケーション１００が要求するファイル１５０の直後に参照される可能性が高いことを示す。
【００３８】
先読み位置３４０は、ファイルＩＤ３１０で示されるファイルが参照されるときの参照位置を示す情報である。例えば追記書き込みを示す「ａｐｐｅｎｄ  ｗｒｉｔｅ」では、ファイルの終端にデータを追記するので、先読み位置は「終端」と示される。
【００３９】
アクセス回数３５０は、アプリケーション１００が要求するファイル１５０の直後に、ファイルＩＤ３１０で示されるファイルが参照される回数を示す情報である。ファイル１５０の直後に参照され得る回数が複数であり、その回数が多い場合は「多」を、参照され得る回数が一度である場合は「１」を、それぞれ格納する。
【００４０】
ファイルシステム１１０は、ファイルＩＤ３１０に対応するファイルのデータを先読みするかを判断するためにアクセス頻度３３０及びアクセス回数３５０を利用する。また、ファイルシステム１１０は、先読みをするときに、ディスク装置１４０の中の先読みを実行するブロック位置及びブロック数を決定するために、アクセスパターン３２０及び先読み位置３４０を利用する。
【００４１】
次に、先読みの処理について説明する。
【００４２】
図４は、ファイルシステム１１０の処理のフローチャートである。
【００４３】
ファイルシステム１１０は、アプリケーション１００からのファイル処理要求を待機しており、ファイル処理要求５００を受信すると、本フローチャートの処理を実行する（ステップＳ５００）。
【００４４】
まず、ファイルシステム１１０は、ファイル処理要求５００を受信すると、処理対象のファイルのメタデータを取得する（ステップＳ５１０）。ファイルシステム１１０は、ディスク装置１４０に格納されているメタデータを読み出して取得する。なお、キャッシュメモリ２００に該当するメタデータが格納されていれば、キャッシュメモリ２００からメタデータを取得する。
【００４５】
次に、ファイルシステム１１０は、ファイル処理要求を実行するための処理フローＳ５６０と、先読みのための処理フローＳ５７０とに分岐する。処理フロー５６０と処理フロー５７０とは独立した処理であるため、ファイルシステム１１０は、これらの処理を並列して実行してもよいし、順次実行してもよい。
【００４６】
処理フローＳ５６０は、ファイル処理要求５００に対応した処理を実行するフローである。
【００４７】
まず、ファイルシステム１１０は、処理対象のデータの所在を確認する。すなわち、処理対象のデータがキャッシュメモリ２００に格納されているか否かを判定する（ステップＳ５２０）。処理対象のデータがキャッシュメモリ２００に格納されていない場合は、ファイルシステム１１０は、処理対象のデータをディスク装置１４０からキャッシュメモリ２００に読み込んで（ステップＳ５３０）、ステップＳ５４０に移る。処理対象のデータがキャッシュメモリに格納されている場合は、ファイルシステム１１０は、ステップＳ５３０の処理を実行することなく、ステップＳ５４０に移る。
【００４８】
ステップＳ５４０では、ファイルシステム１１０は、ファイル処理要求に対応したデータの処理を実行する。具体的には、ファイルの読み込みや書き込み、又は、ファイル構成情報の取得等を実行する。この処理が終了すると、ファイルシステム１１０は、ステップＳ５４０の実行結果をアプリケーション１００に返送して（ステップＳ５５０）、処理を終了する。
【００４９】
処理フローＳ５７０では、ファイルシステム１１０は、先読み判定処理部１３０によって、関連ファイルの先読みの実行の是非を判定する先読み判定処理を実行する（ステップＳ６００）。先読みを実行すると判定した場合は、処理フロー５８０に分岐し、先読み処理部１２０によって、先読み処理を実行する（ステップＳ７００）。
【００５０】
図５は、先読み判定処理のフローチャートである。
【００５１】
先読み判定処理部１３０は、処理フローＳ５７０を受けて、先読み判定処理（ステップＳ６００）を開始する。
【００５２】
まず、先読み判定処理部１３０は、資源情報を取得する（ステップＳ６１０）。具体的には、ファイルシステム１１０が利用する資源の情報を取得する。資源の情報は、キャッシュメモリ２００の空き容量や、インタフェース２２５及び２２０の使用率、制御装置２１０の使用率等を含む。
【００５３】
次に、先読み判定処理部１３０は、関連ファイル情報テーブル３００に格納されている各ファイルごとの情報について、ループ先頭Ｓ６２０からループ終端Ｓ６５０までの処理を繰り返す（ステップＳ６２０）。
【００５４】
まず、ステップＳ６３０では、先読み判定処理部１３０は、ステップＳ６１０で取得した資源情報と、関連ファイル情報３００から取得した該当ファイルの情報とから、該当ファイルの先読みを実行するか否かの是非を判断する。
【００５５】
例えば、先読み判定処理部１３０は、アクセス頻度３３０が第１の所定範囲（例えば８０％以上）のファイルについては、常に先読みを実行する。また、アクセス頻度３３０が第２の所定範囲（例えば、３０％以上８０％未満）のファイルについては、アクセス回数３５０が「多」のとき、又は、資源情報を参照してキャッシュメモリ２００に空き領域が充分あるときに、先読みを実行する。また、アクセス頻度３３０が第３の所定範囲（例えば、０％以上３０％未満）のファイルについては先読みを実行しない。
【００５６】
なお、キャッシュメモリ２００の空き容量に加えて、制御装置２１０の使用率や、各インタフェースの使用率を考慮して、先読み実行の是非を決定してもよい。例えば、制御装置２１０の使用率又はインタフェース２２０、２２５の使用率が所定の値以上である場合は計算機システムの処理負荷を考慮して先読みを実行しない。
【００５７】
先読み判定処理部１３０は、該当ファイルの先読みを実行すると判断した場合は、分岐Ｓ６４０により、先読み処理部１２０に処理を渡し、先読み処理を実行する（ステップＳ７００）。
【００５８】
先読み判定処理部１３０は、関連ファイル情報テーブル３００に格納されている全てのファイルについての処理を終えると（ステップＳ６５０）、先読み判定処理を終了する。
【００５９】
図６は、先読み処理のフローチャートである。
【００６０】
先読み判定処理部１３０によって先読みを実行すると判断された場合は、先読み処理部１２０は、先読み処理（ステップＳ７００）を実行する。
【００６１】
まず、先読み処理部１２０は、関連ファイル情報３００の、先読み対象ファイルのアクセスパターン３２０を取得する。そして、取得したアクセスパターン３２０が「ｒｅａｄ」、すなわち、読み込みであるか否かを判定する（ステップＳ７１０）。
【００６２】
アクセスパターン３２０が読み込みである場合は、先読み処理部１２０は、関連ファイル情報３００の、先読み対象ファイルの先読み位置３４０を取得する。そして、ディスク装置１４０の先読み位置３４０のブロックのデータから、順次キャッシュメモリ２００に読み込む（ステップＳ７２０）。
【００６３】
一方、先読み対象ファイルのアクセスパターン３２０が「ａｐｐｅｎｄ  ｗｒｉｔｅ」又は「ｐｅｒｔｉａｌ  ｗｒｉｔｅ」、すなわち、追記書き込み又は部分書き込みである場合、先読み処理部１２０は、先読み処理部１２０は、関連ファイル情報３００の、先読み対象ファイルの先読み位置３４０を取得する。そして、ディスク装置１４０の先読み位置３４０を含むブロックのデータをキャッシュメモリ２００に読み込む（ステップＳ７４０）。
【００６４】
ステップＳ７２０又はステップＳ７４０の処理が完了すると、先読み判定処理のフローチャートに戻る。なお、アクセスパターン３２０が前記のいずれでもない場合は、そのまま処理を終了し、先読み判定処理のフローチャートに戻る。
【００６５】
以上のような処理によって、ファイルシステム１１０は、ファイル処理要求に含まれるファイルを処理すると共に、処理要求対象のファイルがアクセスされた直後にアクセスされ得るファイルを取得し、取得したファイルを事前にキャッシュメモリ２００に格納することができる。特に、直後にアクセスされるファイルが書き込み要求の場合は、その書き込み要求に対応するブロックのデータをキャッシュメモリ２００に格納する。これによって、いくつかのファイルに対してアクセスが連続するような場合にも、ディスク装置１４０へのアクセスが集中することなく、ファイルの読み込み及び書き込みの性能が向上する。
【００６６】
次に、関連ファイル情報テーブル３００の作成方法を説明する。関連ファイル情報テーブル３００の作成方法には、ファイルの内容から推定して作成する方法と、ファイルのアクセスログから作成する方法とがある。
【００６７】
図７は、関連ファイル情報テーブル３００を作成するファイル（ＨＴＭＬファイル８００）の内容の一例の説明図であり、図８は、このＨＴＭＬファイル８００のメタデータに含まれる関連ファイル情報テーブル３００の一例の説明図である。
【００６８】
ＨＴＭＬファイル８００は、アプリケーション１００によって読み込まれ、アプリケーションの処理によって実行されるＷｅｂブラウザにより解釈されて表示される。関連ファイル情報テーブル３００は、ＨＴＭＬファイル８００のメタデータ中に格納される。
【００６９】
ＨＴＭＬファイル８００は、タグを用いることによって他のファイル名を参照することができる。図７の例では、ファイル名８１０は、ＨＴＭＬファイル８００の表示特性を記述するファイル「ｍｙｓｔｙｌｅ．ｃｓｓ」を示す。ファイル名８２０は、ＨＴＭＬファイル８００で行う処理を記述するファイル「ｔｅｓｔ．ｊｓ」を示す。ファイル名８３０は、ＨＴＭＬファイル８００が表示されるときに背景画像となるファイル「ｗａｌｌｐａｐｅｒ．ｐｎｇ」を示す。アプリケーション１００の処理によって実行されるＷｅｂブラウザは、ＨＴＭＬファイル８００を読み込んでファイルの内容を解釈すると、直後にファイル名８１０、８２０、８３０に示されるファイルを読み込む。
【００７０】
すなわち、これらのファイル（ファイル名８１０、８２０、８３０）は、ＨＴＭＬファイル８００の直後に読み込まれる可能性が高い。これらのファイルに関してはかなり高めのアクセス頻度であることが推測できる。そこで、ファイルシステム１１０のテーブル作成処理部１３５は、関連ファイル情報テーブル３００の該当するファイル名に対応するアクセス頻度３３０に、かなり高めのアクセス頻度である「９０％」を、それぞれ格納する（図８参照）。
【００７１】
また、ＨＴＭＬファイル８００は、ファイル名８４０、８５０、８６０を含む。これらは画像ファイルである。Ｗｅｂブラウザは、画像を表示する設定がされている場合は、Ｗｅｂブラウザによって解釈されたＨＴＭＬファイル８００を表示するときに、直後にファイル名８４０、８５０、８６０に示されるファイルを読み込む。
【００７２】
すなわち、これらのファイル（ファイル名８４０、８５０、８６０）は、ＨＴＭＬファイル８００の直後に読み込まれる可能性がある。これらのファイルに関しては高めのアクセス頻度であることが推測できる。そこで、ファイルシステム１１０のテーブル作成処理部１３５は、関連ファイル情報テーブル３００の該当するファイル名に対応するアクセス頻度３３０に、高めのアクセス頻度である「７０％」を、それぞれ格納する（図８参照）。
【００７３】
また、ＨＴＭＬファイル８００は、ファイル名８７０、８８０を含む。これらは、リンクである。Ｗｅｂブラウザは、Ｗｅｂブラウザによって解釈されたＨＴＭＬファイル８００を表示した後に、Ｗｅｂブラウザの利用者によって指示された場合は、これらのファイルを読み込む。
【００７４】
すなわち、これらのファイル（ファイル名８７０、８８０）は、ＨＴＭＬファイル８００の直後に読み込まれる可能性があるが、その可能性は利用者の利用形態やＷｅｂサイトの形式に依存する。これらのファイルに関しては低めのアクセス頻度であることが推測できる。そこで、ファイルシステム１１０のテーブル作成処理部１３５は、関連ファイル情報テーブル３００該当するファイル名に対応するアクセス頻度３３０に、低めのアクセス頻度である「３０％」及び「１０％」を、それぞれ格納する（図８参照）。
【００７５】
図９は、ファイルの内容から推定して関連ファイル情報を作成する処理のフローチャートである。
【００７６】
まず、テーブル作成処理部１３５は、関連ファイル情報を作成する対象のファイル（ここではＨＴＭＬファイルとする）を参照し、ファイルに含まれるタグの一覧を取得する（ステップＳ１２００）。そして、テーブル作成処理部１３５は、取得した個々のタグについて、ステップＳ１２１０からステップＳ１２４０までのループを繰り返す。
【００７７】
まず、ステップＳ１２３０では、テーブル作成処理部１３５は、対象のタグにファイル名が含まれているか否かを判断する。
【００７８】
対象のタグにファイル名が含まれている場合は、テーブル作成処理部１３５は、タグの種類から、アクセスパターン３２０及び先読み位置３４０を決定する。例えば、タグの種別がファイルの参照である場合は、アクセスパターンは「ｓｅｑｕｅｎｔｉａｌ  ｒｅａｄ」で、先読み位置は「先頭」と推定する。また、タグの種類がＣＧＩ等によってデータベースファイルへの追記を示すものであれば、そのアクセスパターンは「ａｐｐｅｎｄ  ｗｒｉｔｅ」であり、先読み位置は「終端」と推定する。また、タグの種別とタグに含まれるファイル名が他ファイルから参照されている回数とによって、アクセス頻度３３０を決定する（ステップＳ１２３０）。例えば、画像の表示を行うＩＭＧタグは、アクセス頻度を高く設定する。また、「Ａ  ＨＲＥＦタグ」のように、ユーザがＷｅｂブラウザ上でリンクを指定することによって初めて読み込まれるようなファイルはアクセス頻度を低く設定する。
【００７９】
そして、テーブル作成処理部１３５は、ファイル名３１０、アクセスパターン３２０、アクセス頻度３３０、先読み位置３４０及びアクセス回数３５０を、関連ファイル情報テーブル３００に格納する。
【００８０】
以上ように、ファイルに含まれる内容、特に、ＨＴＭＬファイルのような所定のファイルを続けて読み出す操作を要求するファイルのような場合に、その操作の内容を取得して、取得した内容に基づいて、関連ファイル情報のファイル名及びアクセス頻度を設定することができる。
【００８１】
次に、ファイルのアクセスログから関連ファイル情報を作成する方法を説明する。
【００８２】
図１０は、ファイルシステムにおけるファイルのアクセスログ１１００の一例の説明図である。
【００８３】
アクセスログ１１００は、アクセス時刻１１１０及びファイル名１１２０を含む。また、アクセスログ１１００は、アクセス時刻１１１０及びファイル名１１２０の他に、アクセスパターン１１７０、アクセス位置１１８０のいずれか又は両方を格納することもできる。アクセス時刻１１１０は、ファイル名１１２０に示されるファイルをアクセスした時刻を格納する。なお、このアクセスログ１１００は、ファイルが参照されるたびにファイルシステム１１０によって作成され、ディスク装置１４０の所定の領域に順次格納する。
【００８４】
図１０に示すアクセスログ１１００を詳細に観察する。ファイル名１１３０に示されるファイル「ｐａｇｅ．ｈｔｍｌ」と、ファイル名１１４０に示されるファイル群（「ｍｙｓｔｙｌｅ．ｃｓｓ」、「ｔｅｓｔ．ｊｓ」、「ｗａｌｌｐａｐｅｒ．ｐｎｇ」）とは、ほぼ同じアクセス時刻である。この場合は、ファイル名１１４０に示されるファイル群は、ファイル名１１３０の関連ファイルと判断することができる。そこで、テーブル作成処理部１３５は、ファイル名１１３０の関連ファイル情報にファイル名１１４０に示すファイル群を追加する。このとき、アクセスログ１１００がアクセスパターン１１７０、アクセス位置１１８０のいずれか又は両方を格納している場合は、アクセスパターン１１７０及びアクセス位置１１８０を、それぞれ関連ファイル情報１６０のアクセスパターン３２０及び先読み位置３４０に格納する。
【００８５】
なお、アクセスログ１１００において、あるファイル群が同じ順序となるアクセスログが複数回現れた場合は、そのアクセス頻度３３０の値をさらに高くしてもよい。
【００８６】
図１０の例では、ファイル名１１５０に示すファイルとファイル群１１６０に示すファイル群とは、ほぼ同じアクセス時刻である。また、ファイル群１１４０に含まれるファイル名とファイル群１１６０に含まれるファイル名とは一致しているが、ファイル名１１３０とファイル名１１５０とは異なっている。このアクセスログから推定されることは、ファイル群１１４０とファイル群１１６０とは異なる複数のファイルがアクセスされた直後にアクセスされているため、このファイル群に含まれるファイルのアクセス頻度は、より高いと判断できる。なお、図１０では、アクセスパターン１１７０は全て「Ｓｅｑｕｅｎｔｉａｌ  ｒｅａｄ」であり、アクセス種別１１８０は全て「先頭」である例が示されている。しかし、アクセスパターン及びアクセス種別はこれに限らない。ファイルシステム１１０は、ファイルが参照されたときに、その参照のアクセスパターン（例えば「ｗｉｒｉｔｅ」、「ｒｅａｄ」、「ｓｅｑｕｅｎｔｉａｌ」、「ｐｅｒｔｉａ」又は「ａｐｐｅｎｄ」等）及びその参照のアクセス種別（例えば「先頭」、「終端」又はファイル先頭からのデータ位置等）を格納することができる。
【００８７】
図１１は、ファイルのアクセスログから関連ファイル情報を作成する処理のフローチャートである。
【００８８】
まず、テーブル作成処理部１３５は、アクセスログ１１００を参照して、前述した図９の例のように同じパターンで処理されているファイル名又はファイル群を抽出する（ステップＳ１３００）。
【００８９】
次に、テーブル作成処理部１３５は、抽出したパターンの最初のファイル、すなわち、あるファイルのアクセス時刻の直後にアクセスされたファイルは、そのファイルの関連ファイルと判断する。そして、関連ファイル情報にそのファイルの情報を格納する（ステップＳ１３１０）。
【００９０】
次に、テーブル作成処理部１３５は、同一パターンの出現回数、又は、ファイルのアクセス回数を抽出する。そして、抽出された結果に基づいてアクセス頻度を調整する（ステップＳ１３２０）。例えば、同じターンが何度も出現する場合は、そのアクセス頻度を高く設定する。逆に、同一のファイル名に対して異なるパターンが出現する場合は、そのパターンに含まれるファイルのアクセス頻度を小さくする。
【００９１】
このように、ファイルのアクセスログに表れるパターンを抽出し、抽出されたパターンに基づいて関連タイル情報のアクセス頻度を決定することができる。
【００９２】
なお、前述の図９のフローチャートは、ファイルを新規に作成したときやファイルの変更が発生したときに実行する。なお、ファイルのアクセスが発生したとき、制御装置２００の処理負荷が低いとき、又は、一定期間ごとに定期的に実行してもよい。また、前九つの図１１のフローチャートも同様に、ファイルの変更が発生したときや、ファイルのアクセスが発生したとき、制御装置２００の処理負荷が低いとき、又は、一定期間ごとに定期的に実行する。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施の形態の計算機システムの概要を示す機能ブロック図である。
【図２】本発明の実施の形態の計算機システムの構成ブロック図である。
【図３】本発明の実施の形態の関連ファイル情報テーブルの一例の説明図である。
【図４】本発明の実施の形態のファイルシステムの処理のフローチャートである。
【図５】本発明の実施の形態の先読み判定処理のフローチャートである。
【図６】本発明の実施の形態の先読み処理のフローチャートである。
【図７】本発明の実施の形態のファイルの内容の一例の説明図である。
【図８】本発明の実施の形態によって作成された関連ファイル情報テーブルの一例の説明図である。
【図９】本発明の実施の形態の関連ファイル情報の作成処理のフローチャートである。
【図１０】本発明の実施の形態のファイルのアクセスログの一例の説明図である。
【図１１】本発明の実施の形態の関連ファイル情報の作成処理のフローチャートである。
【符号の説明】
【００９４】
１００  アプリケーション
１１０  ファイルシステム
１２０  先読み処理部
１３０  先読み処理判定部
１３５  テーブル作成処理部
１４０  ディスク装置
１５０  ファイル
１６０  メタデータ
１７０  関連ファイル情報
１８０  ファイルのデータ
１９０  関連ファイル
２００  キャッシュメモリ
【図１】
2008041020.tif 000003
【図２】
2008041020.tif 000004
【図３】
2008041020.tif 000005
【図４】
2008041020.tif 000006
【図５】
2008041020.tif 000007
【図６】
2008041020.tif 000008
【図７】
2008041020.tif 000009
【図８】
2008041020.tif 000010
【図９】
2008041020.tif 000011
【図１０】
2008041020.tif 000012
【図１１】
2008041020.tif 000013