(57)【特許請求の範囲】
【請求項１】
コンピュータに、
デバイスドライバが上位層から記憶装置へのアクセス要求を受け付けた場合に、記憶装置の記憶領域を示すアドレス情報であって、カーネルが指定する第１アドレスと該第１アドレスを変換した後の第２アドレスとの対応関係を記憶する記憶部を参照して、前記アクセス要求に含まれる第一のアドレス情報を第二のアドレス情報に変換し、当該第二のアドレス情報が示す記憶領域をアクセス先として前記記憶装置にアクセスし、
前記第一のアドレス情報ごとに、所定の期間内における各記憶領域に対する上位層からデバイスドライバへのアクセス要求の回数をそれぞれ計数し、
前記計数された前記アクセス要求の回数が多い第一のアドレス情報の順に、前記第二のアドレス情報が並ぶように、前記記憶部の前記対応関係を前記アクセス要求の回数の計数が行われるごとに更新し、
前記更新された対応関係に基づいて、前記記憶装置に記憶されたデータの記憶領域を変更する
処理を実行させるアクセス制御プログラム。
【請求項２】
所定の期間において、複数の分割単位で前記記憶装置の記憶領域を分割し、該分割単位ごとに所定時間帯におけるアクセス要求による負荷が一定以上となった領域の割合をそれぞれ算出し、前記分割単位ごとに所定期間における前記負荷が一定以上となった領域の割合の標準偏差を算出し、
算出された各標準偏差が所定の閾値以下であるか判定し、標準偏差が所定の閾値以下であると判定された分割単位のうち最も小さい分割単位を、前記記憶部に記憶された前記対応関係の前記第一のアドレス情報および前記第二のアドレス情報の領域幅として決定する、
処理を前記コンピュータに実行させる請求項１に記載のアクセス制御プログラム。
【請求項３】
前記対応関係を更新する際に、該変更前の第二のアドレス情報と変更後の第二のアドレス情報との差分が所定の閾値以上であるかを判定し、該差分が所定の閾値以上である場合には、前記対応関係を更新し、前記差分が所定の閾値以上でない場合には、前記対応関係の更新を中止する処理を前記コンピュータに実行させる請求項１または２に記載のアクセス制御プログラム。
【請求項４】
計数された前記アクセス要求の回数が多い第一のアドレス情報の順に、前記第二のアドレス情報が記憶装置の外周から内周へ並ぶように、前記対応関係を更新する処理を前記コンピュータに実行させる請求項１〜３のいずれか一つに記載のアクセス制御プログラム。
【請求項５】
情報処理装置による記憶装置へのアクセスを制御する方法であって
デバイスドライバが上位層から記憶装置へのアクセス要求を受け付けた場合に、記憶装置の記憶領域を示すアドレス情報であって、カーネルが指定する第１アドレスと該第１アドレスを変換した後の第２アドレスとの対応関係を記憶する記憶部を参照して、前記アクセス要求に含まれる第一のアドレス情報を第二のアドレス情報に変換し、当該第二のアドレス情報が示す記憶領域をアクセス先として前記記憶装置にアクセスし、
前記第一のアドレス情報ごとに、所定の期間内における各記憶領域に対する上位層からデバイスドライバへのアクセス要求の回数をそれぞれ計数し、
前記計数された前記アクセス要求の回数が多い第一のアドレス情報の順に、前記第二のアドレス情報が並ぶように、前記記憶部の前記対応関係を前記アクセス要求の回数の計数が行われるごとに更新し、
前記更新された対応関係に基づいて、前記記憶装置に記憶されたデータの記憶領域を変更する
ことを特徴とするアクセス制御方法。
【請求項６】
記憶装置に対するアクセスを制御するデバイスドライバが、
記憶装置の記憶領域を示すアドレス情報であって、カーネルが指定する第１アドレスと該第１アドレスを変換した後の第２アドレスとの対応関係を記憶する記憶部と、
前記デバイスドライバが前記上位層から前記記憶装置へのアクセス要求を受け付けた場合に、前記記憶部を参照して、前記アクセス要求に含まれる第一のアドレス情報を第二のアドレス情報に変換し、当該第二のアドレス情報が示す記憶領域をアクセス先として前記記憶装置にアクセスするアクセス部と、
前記第一のアドレス情報ごとに、所定の期間内における各記憶領域に対する前記アクセス要求の回数をそれぞれ計数する計数部と、
前記計数部によって計数された前記アクセス要求の回数が多い第一のアドレス情報の順に、前記第二のアドレス情報が並ぶように、前記記憶部の前記対応関係を前記アクセス要求の回数の計数が行われるごとに更新する更新部と、
前記更新部によって更新された対応関係に基づいて、前記記憶装置に記憶されたデータの記憶領域を変更する変更部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルのアクセス制御に関する。
【背景技術】
【０００２】
近年、複数のクライアント端末でデータを共有するファイルサーバシステムが知られている。このようなファイルサーバシステムでは、アクセス対象となるデータを格納するディスク装置などの記憶装置と、クライアント端末からアクセス要求を受け付けてディスク装置にアクセスするファイルサーバなどの情報処理装置とを有する。
【０００３】
かかるファイルサーバは、ファイルサーバシステムを利用するクライアント端末からのアクセス要求を受信すると、ディスク装置に対してアクセスを実行してディスク装置からデータを取得してクライアント端末にデータを転送する。ここで、ファイルサーバがディスク装置に対してアクセスを実行してからデータを取得するまでに、アクセス位置のトラックまでヘッドを移動させるためのシーク時間や、記録媒体上のアクセス位置がヘッドの位置まで回転するための回転待ち時間がかかる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−３４１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したファイルサーバシステムでは、アクセス性能が低下するという問題がある。例えば、アクセス頻度が高いデータの記憶領域がディスク装置上で離散している場合には、アクセス性能が低下するという問題がある。つまり、アクセス頻度が高いデータの記憶領域がディスク上で離散していると、アクセス頻度が高いデータ間の距離が長くなるので、ヘッドが移動する時間やディスクが回転する時間が多くかかる。この結果、シーク動作や回転待ち動作にかかる時間が長くなり、アクセス性能が低下するという問題がある。
【０００６】
ここで、ファイルサーバシステムにおいて、クライアント端末からのアクセス要求の傾向の一例について図１６を用いて説明する。図１６は、クライアント端末からのアクセス要求の傾向について説明する図である。図１６の例では、横軸は、ディスク装置における１ＧＢ単位の領域に一意に付与されたオフセットを示し、縦軸は、各領域におけるアクセスにより発生するＩＯ負荷の全負荷に対する割合を示している。また、図１６の例では、負荷状況を示す縦線の両端が菱形、四角、三角、Ｘのものがあり、菱形が０〜５時のアクセスによる各領域の負荷状況を示し、四角が６〜１１時のアクセスによる各領域の負荷状況を示している。また、三角が１２〜１７時のアクセスによる各領域の負荷状況を示し、Ｘが１８〜２３時のアクセスによる各領域の負荷状況を示している。
【０００７】
図１６に示すように、アクセスが発生する領域は、一部の領域であって、一日を通してほぼ同じ領域にアクセスが発生している。例えば、図１６の例では、オフセット１３８６〜１９３２の記憶領域に対して、アクセスが発生していない。また、一部の領域のみにアクセスが集中して負荷が高く、かつ、負荷の高い領域が複数に離散している。例えば、図１６の例では、オフセット３７８〜４２０の記憶領域やオフセット１３０２〜１３４４の記憶領域にアクセスが集中し、これらのアクセスが集中している記憶領域同士の距離が離れている。
【０００８】
このような傾向のもとでは、上述したように、アクセス頻度が高いデータ間の距離が長く、ヘッドが移動する時間やディスクが回転する時間が多くかかる結果、シーク動作や回転待ち動作にかかる時間が長くなり、アクセス性能が低下する。
【０００９】
なお、シーク時間や回転待ち時間を短くする方法として、ディスクコントローラが、アクセス頻度の高いデータをディスクの内周ゾーンと比較して高速なディスクの外周ゾーンに移動する方法がある。しかし、アクセス頻度が高いデータをディスクの外周に配置する方法をディスクコントローラで実現するために、ディスク装置ごとに特別なハードウェアを準備することとなってしまう。なお、上述した課題は、ファイルサーバに限らず、記憶装置のアクセスを制御する情報処理装置における共通の課題である。
【００１０】
一つの側面では、デバイスドライバによる記録媒体に対するアクセス性能を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
第一の案では、アクセス制御プログラムは、デバイスドライバが上位層から記憶装置へのアクセス要求を受け付けた場合に、記憶装置の記憶領域を示すアドレス情報であって、カーネルが指定する第１アドレスと該第１アドレスを変換した後の第２アドレスとの対応関係を記憶する記憶部を参照して、前記アクセス要求に含まれる前記第一のアドレス情報を前記第二のアドレス情報に変換し、当該第二のアドレス情報が示す記憶領域をアクセス先として前記記憶装置にアクセスし、前記第一のアドレス情報ごとに、所定の期間内における各記憶領域に対する上位層からデバイスドライバへのアクセス要求の回数をそれぞれ計数し、前記計数された前記アクセス要求の回数が多い第一のアドレス情報の順に、前記第二のアドレス情報が並ぶように、前記記憶部の前記対応関係を更新し、前記更新された対応関係に基づいて、前記記憶装置に記憶されたデータの記憶領域を変更する。
【発明の効果】
【００１２】
デバイスドライバによる記録媒体に対するアクセス性能を向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１に係るファイルサーバを含むシステムの全体構成を示すシステム構成図である。
【図２】図２は、実施例１に係るファイルサーバの構成を示すブロック図である。
【図３】図３は、カウントテーブルの一例を示す図である。
【図４】図４は、変換テーブルの一例を示す図である。
【図５】図５は、ファイルサーバにおけるディスクドライバの処理を説明する図である。
【図６】図６は、カウントテーブルの一例を示す図である。
【図７】図７は、変換テーブルの一例を示す図である。
【図８】図８は、データ格納領域の変更処理後のｉｏｐｓを説明する図である。
【図９】図９は、実施例１に係るファイルサーバの処理動作を示すフローチャートである。
【図１０】図１０は、実施例２に係るファイルサーバの構成を示すブロック図である。
【図１１】図１１は、実施例２に係るファイルサーバの分割単位変更処理の動作を示すフローチャートである。
【図１２】図１２は、実施例２に係るファイルサーバの処理動作を示すフローチャートである。
【図１３】図１３は、ホットスポット同士の間隔から並び替え処理を行うか判定する処理を説明する図である。
【図１４】図１４は、実施例３に係るファイルサーバの処理動作を示すフローチャートである。
【図１５】図１５は、アクセス制御プログラムを実行するコンピュータを示す図である。
【図１６】図１６は、クライアント端末からのアクセス要求の傾向について説明する図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、この発明に係るアクセス制御プログラム、アクセス制御方法および情報処理装置の実施例を詳細に説明する。
【実施例１】
【００１５】
以下の実施例では、実施例１に係るファイルサーバの構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。
【００１６】
［ファイルサーバの構成］
まず、図１を用いて、実施例１に係るファイルサーバを含むシステムの全体構成を示すシステム構成を説明する。図１は、実施例１に係るファイルサーバを含むシステムの全体構成を示すシステム構成図である。図１に示すように、ファイルサーバを含むシステムは、ファイルサーバ１０、複数のクライアント端末２０、ディスク装置３０を有する。また、ファイルサーバ１０は、ＬＡＮ（Local  Area  Network）４０を介して複数のクライアント端末２０と接続される。
【００１７】
ファイルサーバ１０は、クライアント端末２０からアクセス要求を受け付け、アクセス要求に応じて、ディスク装置３０に対してアクセスする。例えば、ファイルサーバ１０では、アクセス要求を受け付けるためのプログラムとしてＳａｍｂａプログラムがユーザ空間で起動されている。そして、ファイルサーバ１０は、クライアント端末２０からアクセス要求を受け付けると、アクセス要求に含まれるアクセス先を指定するアクセス先情報を取得し、カーネル空間のディスクドライバにアクセス先情報を通知する。ここで、ディスクドライバとは、ハードウェアを制御するデバイスドライバであって、ＯＳ（Operating  System）とハードウェアとの間での通信を中継するソフトウェアである。
【００１８】
そして、ファイルサーバ１０のディスクドライバは、アクセス先情報に応じて、ディスク装置３０に対してアクセスを実行する。ここで、カーネル空間とは、基本ソフトウェアが稼動する下位層であり、ハードウェアの制御、タスク管理、ファイルやシステムの管理、ネットワーク接続など、システムの基幹的な機能が実行される。一方、ユーザ空間とは、個々のアプリケーションプログラムが稼働する上位層であり、アクセス要求を受け付けるためのプログラムなどが稼動している。
【００１９】
クライアント端末２０は、ディスク装置３０へのアクセス要求をＬＡＮ４０を介して、ファイルサーバ１０に通知し、ディスク装置３０からアクセス要求の応答データを受信する。ディスク装置３０は、アクセス対象となるデータを格納しており、ファイルサーバ１０によってデータの読み出しまたは書き込みが制御される。
【００２０】
次に、図２を用いて、図１に示したファイルサーバ１０の構成を説明する。図２は、実施例１に係るファイルサーバの構成を示すブロック図である。図２に示すように、ファイルサーバ１０は、通信制御Ｉ／Ｆ（interface）１１、アクセス受付部１２、ディスクドライバ１３、ディスク制御Ｉ／Ｆ１４、通信ドライバ１６、ファイルシステム１７を有する。
【００２１】
通信制御Ｉ／Ｆ１１は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークインターフェースであって、接続されるクライアント端末２０との間でやり取りする各種情報に関する通信を制御する。例えば、通信制御Ｉ／Ｆ１１は、クライアント端末２０からアクセス要求を受信し、アクセスを実行してディスク装置３０から取得した応答データをクライアント端末２０へ送信する。通信ドライバ１６は、通信デバイスを制御するためのソフトウェアであって、クライアント端末２０との通信を制御する。例えば、通信ドライバ１６は、通信制御Ｉ／Ｆ１１を介して受信したアクセス要求をアクセス受付部１２に通知し、ディスク装置３０から取得した応答データを通信制御Ｉ／Ｆ１１を介してクライアント端末２０へ送信する。
【００２２】
アクセス受付部１２は、クライアント端末２０からのアクセス要求を受け付ける。例えば、アクセス受付部１２は、アクセス要求を受け付けるアプリケーションであるＳａｍｂａプログラムを動作させることで、クライアント端末２０からのアクセス要求を受け付ける。そして、アクセス受付部１２は、下位層のファイルシステム１７を介してディスクドライバ１３にアクセス要求を通知する。ファイルシステム１７は、ディスク装置３０に記憶されているデータの管理を行うソフトウェアである。
【００２３】
ここで、クライアント端末２０からのアクセス要求について詳細に説明する。ディスクドライバ１３に通知されるアクセス要求には、例えば、ディスク装置３０からデータを読み出す要求（いわゆるｒｅａｄ要求）や、ディスク装置３０にデータを書き込む要求（いわゆるｗｒｉｔｅ要求）などがある。読み出し要求には、例えば、ディスク装置における読み出し位置を示すアドレス情報や、アクセス位置から読み出されるデータのサイズを示すデータサイズが含まれる。アドレス情報は、ディスクドライバのディスク領域へのアドレスであって、先頭からのブロックオフセットであり、例えば、ディスク装置におけるブロックサイズ（例えば、５１２バイト）の単位で指定される。この場合、例えば、アドレス情報「１０００」を含むアクセス要求では、ディスク装置における所定の始点位置から１０００ブロック目（５１２×１０００バイト）の位置が指定されたことを意味する。なお、以下では、アクセス要求に含まれる、カーネルが指定するアドレス情報を「論理アドレス」と称する。一方、後述する変換テーブル１３ｆを使って変換されたアドレスを「物理アドレス」と称する。
【００２４】
ディスク制御Ｉ／Ｆ１４は、ＳＣＳＩ（Small  Computer  System  Interface）カード等のインターフェースであって、接続されるディスク装置３０との間でやり取りする各種情報に関する通信を制御する。例えば、ディスク制御Ｉ／Ｆ１４は、ディスク装置３０に対してアクセスを実行して読み書きされるデータの送受信を行う。
【００２５】
ディスクドライバ１３は、ディスク装置３０を制御するためのソフトウェアとして、ディスク装置３０へのアクセスを制御しており、計数部１３ａ、更新部１３ｂ、変更部１３ｃ、アクセス部１３ｄを有する。また、ディスクドライバ１３は、カウントテーブル１３ｅおよび変換テーブル１３ｆを有する。以下にこれらの各部の処理を説明する。
【００２６】
カウントテーブル１３ｅは、ディスク装置３０の記憶領域を示すアドレス情報であってカーネルが指定する論理アドレスごとに、アクセス要求が発生した回数を記憶する。例えば、カウントテーブル１３ｅは、図３に示すように、「論理アドレス」と、論理アドレスに対してアクセス要求があった回数を示す「アクセス回数カウンタ」とを対応付けて記憶する。例えば、論理アドレスは、１ＧＢ（Giga  Byte）の単位で管理される。例えば、図３の論理アドレス「０」には、カーネルが指定する、ディスク装置３０における所定の始点位置から１ＧＢまでの記憶領域の各論理アドレスが含まれることを意味する。なお、図３の例では、初期値の状態であるため、アクセス回数カウンタが全て「０」になっている。図３は、カウントテーブルの一例を示す図である。
【００２７】
変換テーブル１３ｆは、ディスク装置３０の記憶領域を示すアドレス情報であって、カーネルが指定する論理アドレスと、ディスクドライバ１３が指定する物理アドレスと、物理アドレスが示す記憶領域の始点位置である先頭オフセットとを対応付けて記憶する。例えば、変換テーブル１３ｆは、図４に示すように、「論理アドレス」と「物理アドレス」と「先頭オフセット」とが対応付けて記憶されている。例えば、論理アドレスおよび物理アドレスは、１ＧＢ（Giga  Byte）の単位で管理される。また、先頭オフセットは、５１２バイトのブロック単位で管理される。
【００２８】
例えば、図４の論理アドレス「０」には、カーネルが指定する、ディスク装置３０における所定の始点位置から１ＧＢまでの記憶領域の各論理アドレスが含まれることを意味する。また、図４の物理アドレス「０」には、デバイスドライバ１３が指定する、ディスク装置３０における所定の始点位置から１ＧＢまでの記憶領域の各物理アドレスが含まれることを意味する。なお、図４の例では、変換テーブル１３ｆが初期の状態であるため、「論理アドレス」と「物理アドレス」とが同じ記憶領域の範囲となっている。図４は、変換テーブルの一例を示す図である。
【００２９】
また、図４の先頭オフセット「０」には、物理アドレス「０」のディスク装置３０における所定の始点位置が０ブロック目であることを意味する。つまり、図４の例では、物理アドレス「０」は、ディスク装置３０における０ブロック目から２０９７１５１ブロック目までの記憶領域の各物理アドレスが含まれることを示している。また、物理アドレス「１」は、ディスク装置３０における２０９７１５２ブロック目から４１９４３０４ブロック目までの記憶領域の各物理アドレスが含まれることを示している。
【００３０】
計数部１３ａは、論理アドレスごとに、所定の期間内における各記憶領域に対するアクセス要求の回数をそれぞれ計数する。例えば、計数部１３ａは、ディスクドライバ１３よりも上位のアプリケーションからアクセス要求を受信すると、アクセス対象となるデータの格納領域を示す論理アドレスを特定する。そして、計数部１３ａは、アクセスが発生した論理アドレスについて、カウントテーブル１３ｅのアクセス回数カウントをカウントアップする。その後、計数部１３ａは、このようなアクセス回数の計数処理を所定の時刻（例えば、午前２時（Ａ．Ｍ．２：００））まで行う。
【００３１】
例えば、計数部１３ａは、上位のアプリケーションからのアクセス要求として、１．５ＧＢの論理アドレスにアクセスが発生した場合には、論理アドレス「１」に対応する記憶領域へのアクセスであるので、論理アドレス「１」のアクセス回数をカウントアップする。
【００３２】
更新部１３ｂは、計数部１３ａによって計数されたアクセス要求の回数が多い論理アドレスの順に、物理アドレス情報が並ぶように、変換テーブル１３ｆを更新する。例えば、更新部１３ｂは、午前２時になると、カウントテーブル１３ｅを参照し、各論理アドレスが多かった順にアクセス回数の順位を決定する。そして、更新部１３ｂは、計数されたアクセス要求の回数が多い論理アドレスの順に、物理アドレス情報が並ぶように、変換テーブル１３ｆを更新する。なお、後に図５を用いて詳述するが、上位層のデーモン１５が午前２時になったかを監視し、午前２時になると、ディスクドライバ１３の更新部１３ｂに対して更新処理を行う旨を指示する。
【００３３】
ここで、更新部１３ｂの処理を図６および図７の例を用いて説明する。図６は、カウントテーブルの一例を示す図である。図７は、変換テーブルの一例を示す図である。図６の例では、カウントテーブル１３ｅは、論理アドレス「０」のアクセス回数が「２００」であり、論理アドレス「１」のアクセス回数が「３０」であり、論理アドレス「２」のアクセス回数が「５０００」であることを記憶している。また、カウントテーブル１３ｅは、論理アドレス「３」のアクセス回数が「２０」であり、論理アドレス「４」のアクセス回数が「１０」であり、論理アドレス「５」のアクセス回数が「６０００」であることを記憶している。また、カウントテーブル１３ｅは、論理アドレス「６」のアクセス回数が「５０」であり、論理アドレス「７」のアクセス回数が「３００」であることを記憶している。また、カウントテーブル１３ｅは、論理アドレス「８」のアクセス回数が「４０」であり、論理アドレス「９」のアクセス回数が「５」であることを記憶している。
【００３４】
そして、更新部１３ｂは、カウントテーブル１３ｅに記憶された各論理アドレスのアクセス回数カウンタを用いて、各論理アドレスのアクセス回数が多い順に順位付けを行う。例えば、図６の例では、更新部１３ｂは、論理アドレス「５」がアクセス回数が一番多く、順位が「１」となり、次にアクセス回数が多いのが論理アドレス「２」となり、順位が「２」となる。
【００３５】
そして、更新部１３ｂは、アクセス回数が多い論理アドレスから順に、物理アドレスの値が小さい値を順位割り当てる。ここで、物理アドレスは、ディスクオフセットと対応しており、値が小さいほどディスク装置の外周に記憶されていることを示している。つまり、更新部１３ｂは、計数されたアクセス要求の回数が多い論理アドレスの順に、物理アドレスがディスク装置３０の外周から内周へ並ぶように、変換テーブル１３ｆを更新する。
【００３６】
例えば、図７の例を用いて説明すると、更新部１３ｂは、一番アクセス回数が多かった論理アドレス「５」に物理アドレス「０」を割り当て、二番目にアクセス回数が多かった論理アドレス「２」に物理アドレス「１」を割り当てる。その後、アクセス回数が多かった論理アドレスの順に、物理アドレス「２」、「３」、「４」・・と順次割り当てる。
【００３７】
変更部１３ｃは、更新部１３ｂによって更新された変換テーブル１３ｆに基づいて、ディスク装置３０に記憶されたデータの記憶領域を変更する。例えば、変更部１３ｃは、更新部１３ｂによって変換テーブル１３ｆが更新された場合に、変換テーブル１３ｆに記憶された論理アドレスと物理アドレスとの対応関係を参照する。そして、変更部１３ｃは、アクセス回数が多かった論理アドレス順に物理アドレスの値が小さい領域が割り当てられるように、ディスク装置３０に記憶されたデータを移動し、データの記憶領域を変更する。
【００３８】
例えば、図４が更新前の変換テーブル１３ｆであって、図７が更新後の変換テーブル１３ｆである場合を例にして説明する。変更部１３ｃは、論理アドレス「０」に対応付けられた物理アドレスが「０」から「３」に更新されているので、ディスク装置３０の物理アドレス「０」に対応する記憶領域のデータを物理アドレス「３」に対応する記憶領域に移動する。つまり、変更部１３ｃは、変換テーブル１３ｆを参照し、物理アドレスが「０」から「３」に更新されている場合には、ディスク装置３０における０ブロック目から２０９７１５１ブロック目までの記憶領域に記憶されているデータを、６２９１４５６ブロック目から８３８８６０７ブロック目までの記憶領域に移動する。
【００３９】
アクセス部１３ｄは、ディスクドライバ１３が上位層からディスク装置３０へのアクセス要求を受け付けた場合に、変換テーブル１３ｆを参照して、アクセス要求に含まれる論理アドレスを物理アドレスに変換する。そして、アクセス部１３ｄは、物理アドレスが示す記憶領域をアクセス先としてディスク装置３０にアクセスする。例えば、アクセス部１３ｄは、上位のアプリケーションからアクセス要求を受け付けると、アクセス要求に含まれる論理アドレスを物理アドレスに変換し、物理アドレスが示す記憶領域をアクセス先としてディスク装置３０にアクセスする。
【００４０】
ここで、アクセス部１３ｄは、上位のアプリケーションからのアクセス要求に含まれるアクセス先を指定する論理アドレスとして、先頭のオフセットおよびデータサイズを受け付ける。そして、アクセス部１３ｄは、変換テーブル１３ｆを参照して、先頭のオフセットの値を物理アドレスに変換する。
【００４１】
例えば、変換テーブル１３ｆが図７であって、アクセス部１３ｄがアプリケーションから先頭のオフセットが「５．５ＧＢ」であってデータサイズが「０．２ＧＢ」のデータを要求するアクセス要求を受け付けた場合を例に説明する。この場合に、アクセス部１３ｄは、先頭のオフセットが「５．５ＧＢ」であるため、論理アドレス「５」に対応するものと判定する。そして、アクセス部１３ｄは、変換テーブル１３ｆを参照し、論理アドレス「５」に対応する物理アドレスが「０」であることから、先頭のオフセットを「５．５ＧＢ」から「０．５ＧＢ」に変換する。そして、アクセス部１３ｄは、先頭のオフセットが「０．５ＧＢ」であってデータサイズが「０．２ＧＢ」のデータの領域に対して、ディスク装置３０にアクセスを実行する。
【００４２】
また、例えば、変換テーブル１３ｆが図７であって、アクセス部１３ｄがアプリケーションから先頭のオフセットが「０．７ＧＢ」であってデータサイズが「０．２ＧＢ」のデータを要求するアクセス要求を受け付けた場合を例に説明する。この場合に、アクセス部１３ｄは、先頭のオフセットが「０．７ＧＢ」であるため、論理アドレス「０」に対応するものと判定する。そして、アクセス部１３ｄは、変換テーブル１３ｆを参照し、論理アドレス「０」に対応する物理アドレスが「３」であることから、先頭のオフセットを「０．７ＧＢ」から「３．７ＧＢ」に変換する。そして、アクセス部１３ｄは、先頭のオフセットが「３．７ＧＢ」であってデータサイズが「０．２ＧＢ」のデータの領域に対して、ディスク装置３０にアクセスを実行する。
【００４３】
ここで、図５を用いて、ディスクドライバ１３が上位のアプリケーションからアクセス要求を受信し、ディスク装置にアクセスする処理について説明する。図５は、ファイルサーバにおけるディスクドライバの処理を説明する図である。図５に示すように、カーネル空間で動作するディスクドライバ１３は、ユーザ空間における上位層のアプリケーションからアクセス要求（図５では、「ＩＯ」と記載）を受信する。そして、ディスクドライバ１３は、アクセス要求に含まれる論理アドレスを物理アドレスに変換し、ディスク装置３０の物理アドレスに対して、アクセスを行う。
【００４４】
また、図５に示すように、ファイルサーバ１０では、ＯＳ上においてバックグラウンドで動作するプログラムであるデーモン１５が動作している。かかるデーモン１５が、一定時間ごとに、変換テーブル１３ｆの更新処理およびディスク装置３０におけるデータ格納領域の変更処理の開始指示をディスクドライバ１３に通知している。例えば、デーモン１５は、午前２時になったことを条件に、変換テーブル１３ｆの更新処理およびディスク装置３０におけるデータ格納領域の変更処理を開始する旨の指示をディスクドライバ１３に通知する。
【００４５】
上述したように、ディスクドライバ１３がデータの格納領域を変更することで、ディスク装置３０の記憶領域を再構成した結果、アクセス頻度の高いデータの記憶領域（以下、ホットスポットという）をディスク装置３０上の特定領域に集中させることができる。ここで、図８を用いて、データ格納領域の変更処理を行った後のディスク装置３０の各ディスクオフセットにおけるｉｏｐｓ（Input  Output  Per  Second）の変化を説明する。ここで、ｉｏｐｓとは、１秒間に可能なＩ/Ｏ（リード/ライトの処理）の回数をあらわすものである。また、図８の例では、横軸がディスク装置における各記憶領域を一意に示すディスクオフセットを示し、縦軸が各ディスクオフセットにおけるｉｏｐｓを示している。
【００４６】
図８の（１）に示すように、データ格納領域の変更処理を行う前には、ｉｏｐｓの値が高くなっている二つのホットスポットが離散している。その後、図８の（２）に示すように、ファイルサーバ１０のディスクドライバ１３がデータ格納領域の変更処理を行った後には、ディスクオフセットの値が小さい記憶領域にホットスポットを集中させることができる。このため、実施例１に係るファイルサーバ１０は、アクセス性能が向上するとともに、ディスク装置３０へのアクセスにかかるＣＰＵの負荷を抑えることができる。
【００４７】
［ファイルサーバによる処理］
次に、図９を用いて、実施例１に係るファイルサーバ１０による処理を説明する。図９は、実施例１に係るファイルサーバの処理動作を示すフローチャートである。
【００４８】
図９に示すように、まず、ファイルサーバ１０のディスクドライバ１３は、変換テーブル１３ｆを初期化し（ステップＳ１０１）、上位のアプリケーションからのアクセス要求を待機する。そして、ディスクドライバ１３は、アプリケーションからアクセス要求を受け付けると、変換テーブル１３ｆを参照して、アクセス要求に含まれる論理アドレスを物理アドレスに変換する。そして、ディスクドライバ１３は、物理アドレスが示す記憶領域をアクセス先としてディスク装置３０にアクセスする（ステップＳ１０２）。
【００４９】
そして、ディスクドライバ１３は、アプリケーションからアクセス要求を受け付けているので、アクセスが発生した論理アドレスについて、カウントテーブル１３ｅのアクセス回数カウントをカウントアップする（ステップＳ１０３）。
【００５０】
そして、ファイルサーバ１０は、Ａ．Ｍ．２：００に到達したか判定する（ステップＳ１０４）。例えば、ファイルサーバ１０のデーモン１５がＡ．Ｍ．２：００に到達したか判定し、Ａ．Ｍ．２：００に到達していない場合には（ステップＳ１０４否定）、ステップＳ１０２に戻る。また、ファイルサーバ１０のデーモン１５がＡ．Ｍ．２：００に到達したと判定した場合には（ステップＳ１０４肯定）、変換テーブル１３ｆの更新処理およびディスク装置３０におけるデータ格納領域の変更処理を開始する指示をディスクドライバ１３に通知する。
【００５１】
そして、ディスクドライバ１３は、カウントされたアクセス要求の回数が多い論理アドレスの順に、物理アドレス情報が並ぶように、変換テーブル１３ｆを更新する（ステップＳ１０５）。その後、ディスクドライバ１３は、更新された変換テーブル１３ｆに基づいて、ディスク装置３０に記憶されたデータの記憶領域を変更する。例えば、変更部１３ｃは、更新部１３ｂによって変換テーブル１３ｆが更新された場合に、変換テーブル１３ｆに記憶された論理アドレスと物理アドレスとの対応関係を参照し、ディスク装置３０に記憶されたデータを移動する（ステップＳ１０６）。
【００５２】
[実施例１の効果]
このため、ファイルサーバ１０は、アクセス数の多いデータをディスク上の特定領域に集めて記憶させ、アクセス性能を向上させることが可能である。
【００５３】
また、アクセスが発生する領域は、一部の領域であって、一日を通してほぼ同じ領域にアクセスが発生する傾向がある。また、一部の領域のみにアクセスが集中して負荷が高く、かつ、負荷の高い領域が複数に離散する傾向がある。また、このようなアクセス傾向は、１ヶ月程度の長期間に渡っても、ほとんど変化がないことも分かっている。このため、このような傾向のもとでは、アクセス数の多い論理アドレスの順に物理アドレスを並べ替えることで、アクセス数の多いデータをディスク上の特定領域に集めて記憶させる方法が特に有効であり、アクセス性能の向上を図ることが可能である。
【００５４】
また、ファイルサーバ１０は、計数されたアクセス要求の回数が多い論理アドレスの順に、物理アドレスがディスク装置３０の外周から内周へ並ぶように、変換テーブル１３ｆを更新する。このため、内周と比較して高速なディスクの外周側の記憶領域にアクセス頻度の高いデータを集めて記憶させ、アクセス性能を向上させることが可能である。
【実施例２】
【００５５】
ところで、上記の実施例１では、論理アドレスおよび物理アドレスの単位を１ＧＢとし、ディスク装置３０のデータを移動する単位も１ＧＢである場合を説明した。しかし、実施例はこれに限定されるものではなく、論理アドレスおよび物理アドレスの単位をアクセスの日時変動に応じて変更するようにしてもよい。つまり、ファイルサーバシステムでは、上述したように、一部の記憶領域のみにアクセスが集中する傾向があるが、そのアクセスが集中する領域が日時によって数十ＧＢ程度変動する場合がある。このため、日時によってアクセスが発生する領域の日時による変化を吸収するために、論理アドレスおよび物理アドレスの単位をアクセスの日時変動に応じて変更する。
【００５６】
そこで、以下の実施例２では、論理アドレスおよび物理アドレスの単位をアクセスの日時変動に応じて変更し、論理アドレスおよび物理アドレスの単位を変更し、ディスク装置３０のデータを移動する単位を変更する場合を説明する。以下では、図１０〜図１２を用いて、実施例２におけるファイルサーバ１０Ａの構成および処理について説明する。図１０は、実施例２に係るファイルサーバの構成を示すブロック図である。図１１は、実施例２に係るファイルサーバの分割単位変更処理の動作を示すフローチャートである。図１２は、実施例２に係るファイルサーバの処理動作を示すフローチャートである。
【００５７】
図１０に示すように、ファイルサーバ１０Ａは、図２に示したファイルサーバ１０と比較して、算出部１３ｇおよび決定部１３ｈを新たに有する点が相違する。かかるファイルサーバ１０Ａにおける算出部１３ｇは、所定の期間において、複数の分割単位でディスク装置の記憶領域を分割し、分割単位ごとに所定時間帯におけるアクセス要求による負荷が一定以上となった領域の割合をそれぞれ算出する。そして、算出部１３ｇは、分割単位ごとに所定期間における負荷が一定以上となった領域の割合の標準偏差を算出する。
【００５８】
例えば、算出部１３ｇは、１週間の期間において、１ＧＢ、２ＧＢ、４ＧＢ、８ＧＢ、１６ＧＢ、３２ＧＢ、６４ＧＢの分割単位でディスク装置の記憶領域を分割する。そして、算出部１３ｇは、分割単位ごとに１２：００〜１８：００の間におけるアクセス要求による負荷が平均１ｉｏｐｓ以上となった領域の割合をそれぞれ算出する。そして、算出部１３ｇは、分割単位ごとに１週間の期間における負荷が平均１ｉｏｐｓ以上となった領域であるホットスポットの割合の標準偏差を算出する。また、算出部１３ｇは、分割単位ごとに１週間の期間における負荷が一定以上となった領域の割合の平均値も算出する。
【００５９】
決定部１３ｈは、算出部１３ｇによって算出された標準偏差が所定の閾値以下である分割単位のうち、最も小さい分割単位で分割したディスク装置の記憶領域の領域幅を、変換テーブル１３ｆに記憶された論理アドレスおよび物理アドレスの領域幅として決定する。例えば、まず、決定部１３ｈは、全ての分割単位においてアクセス要求による負荷の平均値が０であるか判定する。この結果、決定部１３ｈは、全ての分割単位においてアクセス要求による負荷の平均値が０であると判定した場合には、平均１ｉｏｐｓ以上の負荷が掛かるホットスポット自体が存在していないので、分割単位を初期値の１ＧＢに決定する。なお、ここでホットスポットとは、上記したように、アクセス要求による負荷が平均１ｉｏｐｓ以上となったアクセス頻度の高い記憶領域のことをいう。
【００６０】
また、決定部１３ｈは、全ての分割単位においてアクセス要求による負荷の平均値が０でない場合には、全ての標準偏差が５以下になる分割単位が存在するか判定する。つまり、決定部１３ｈは、平均１ｉｏｐｓ以上のＣＰＵ負荷が掛かる領域の割合が日時によって変動してしまうかを判定する。
【００６１】
この結果、決定部１３ｈは、標準偏差が５以下になる分割単位が存在しない場合には、最も大きい分割単位である６４ＧＢを分割単位として選択する。つまり、いずれの分割単位であっても、平均１ｉｏｐｓ以上となる領域の割合が日時によって変動してしまうので、一番大きな分割単位である６４ＧＢを分割単位として選択する。標準偏差が５を超えている場合、ばらつきがその分割単位を超えているので、その分割単位を利用できないからである。
【００６２】
また、ファイルサーバ１０Ａは、標準偏差が５以下になる分割単位が存在する場合には、標準偏差が５以下になる分割単位のうち、最も小さい分割単位を選択する。例えば、８ＧＢ、１６ＧＢ、３２ＧＢ、６４ＧＢの標準偏差が全て５以下である場合には、分割単位を８ＧＢとする。標準偏差が５以下である場合、ばらつきがその分割単位内に収まっているので、その分割単位を利用できるからである。
【００６３】
次に、実施例２にかかるファイルサーバ１０Ａの処理について説明する。図１１に示すように、ファイルサーバ１０Ａは、１２：００〜１８：００の間に、ディスク装置３０のディスクボリュームを１ＧＢ単位で分割し、１分間隔で分割単位ごとに実行したアクセス数のデータを記憶する（ステップＳ２０１）。続いて、ファイルサーバ１０Ａは、ディスク装置３０のディスクボリュームに関して、その領域を１ＧＢ、２ＧＢ、４ＧＢ、８ＧＢ、１６ＧＢ、３２ＧＢ、６４ＧＢに分割する。そして、ファイルサーバ１０Ａは、１２：００〜１８：００の間に記憶したアクセス数のデータについて、各分割単位ごとに平均１ｉｏｐｓ以上となった割合を算出する（ステップＳ２０２）。
【００６４】
その後、ファイルサーバ１０Ａは、１２：００〜１８：００の間に記憶したアクセス数のデータについて、一週間分のデータを記憶したか判定する（ステップＳ２０３）。この結果、ファイルサーバ１０Ａは、一週間分のデータを記憶していないと判定した場合には（ステップＳ２０３否定）、ステップＳ２０１に戻って、一週間分のデータを記憶するまで、ステップＳ２０１〜２０３の処理を繰り返す。また、ファイルサーバ１０Ａは、一週間分のデータを記憶したと判定した場合には（ステップＳ２０３肯定）、１ＧＢ、２ＧＢ、４ＧＢ、８ＧＢ、１６ＧＢ、３２ＧＢ、６４ＧＢの各分割単位ごとに、一週間分の平均値と標準偏差を算出する（ステップＳ２０４）。
【００６５】
そして、ファイルサーバ１０Ａは、全ての分割単位の平均値が０であるか判定する（ステップＳ２０５）。この結果、ファイルサーバ１０Ａは、全ての分割単位の平均値が０であると判定した場合には（ステップＳ２０５肯定）、平均１ｉｏｐｓ以上の負荷が掛かるホットスポット自体が存在していないので、分割単位を１ＧＢにしたまま処理を終了する。また、ファイルサーバ１０Ａは、全ての分割単位の平均値が０でないと判定した場合には（ステップＳ２０５否定）、標準偏差が５以下になる分割単位が存在するか判定する（ステップＳ２０６）。つまり、ファイルサーバ１０Ａは、平均１ｉｏｐｓ以上のＣＰＵ負荷が掛かる割合が日時によって変動してしまうかを判定する。
【００６６】
この結果、ファイルサーバ１０Ａは、標準偏差が５以下になる分割単位が存在しない場合には（ステップＳ２０６否定）、６４ＧＢを分割単位として選択する（ステップＳ２０８）。つまり、いずれの分割単位であっても、平均１ｉｏｐｓ以上となる割合が日時によって変動してしまうので、一番大きな分割単位である６４ＧＢを分割単位として選択する。
【００６７】
また、ファイルサーバ１０Ａは、標準偏差が５以下になる分割単位が存在する場合には（ステップＳ２０６肯定）、標準偏差が５以下になる分割単位のうち、最も小さい分割単位を選択する（ステップＳ２０７）。
【００６８】
次に、図１２を用いて、分割単位が変更となった場合に、変換テーブル１３ｆの論理アドレスおよび物理アドレスが決定した分割単位に変更するための処理を説明する。なお、図１２の例では、変更となった分割単位をＡ（ＧＢ）であるものとして説明する。図１２に示すように、ファイルサーバ１０Ａは、ディスク装置３０のディスクボリュームをＡ（ＧＢ）の単位で分割する（ステップＳ３０１）。そして、ファイルサーバ１０Ａは、Ａ（ＧＢ）に分割した各領域に関して、一日分のアクセス回数を記憶する（ステップＳ３０２）。
【００６９】
そして、ファイルサーバ１０Ａは、アクセス回数が多かった領域順にディスク装置３０上のデータの記憶領域の並び替えを行い、並び替えを行った結果を基に、変換テーブル１３ｆを更新する（ステップＳ３０３）。なお、その後、ファイルサーバ１０Ａは、アクセス要求があった場合には、更新された変換テーブル１３ｆに従って論理アドレスから物理アドレスを求め、ディスク装置３０にアクセスを実行する。
【００７０】
このため、ファイルサーバ１０Ａは、アクセス領域が日時によって変動する場合であっても、適切な分割単位でディスク装置３０上のデータの記憶領域を変更し、アクセス性能を向上させることが可能となる。
【実施例３】
【００７１】
ところで、上記の実施例１では、所定の時間ごとに毎回、変換テーブルの更新処理およびディスク装置におけるデータ格納領域の変更処理を行う場合について説明した。しかし、実施例はこれに限定されるものではなく、一定の性能向上が見込める場合のみ変換テーブルの更新処理およびディスク装置におけるデータ格納領域の変更処理を行うようにしてもよい。
【００７２】
そこで、以下の実施例３では、変換テーブルを更新した場合に、更新前の物理アドレスと更新後の物理アドレスとの差分が所定の閾値以上であるか判定し、変換テーブルの更新処理およびディスク装置のデータ格納領域の変更処理を行うか判定する場合を説明する。つまり、ディスク装置におけるデータ格納領域を変更した場合に、一定の性能向上が見込めるか判定し、一定の性能向上が見込める場合のみ更新処理および変更処理を行う。
【００７３】
以下では、図１３、図１４を用いて、実施例３におけるファイルサーバの処理について説明する。図１３は、ホットスポット同士の間隔から並び替え処理を行うか判定する処理を説明する図である。図１４は、実施例３に係るファイルサーバの処理動作を示すフローチャートである。なお、実施例３におけるファイルサーバの構成については、図２に示したファイルサーバ１０と同様のものとなるため、説明を省略する。
【００７４】
上述したように、実施例３に係るファイルサーバでは、一定の性能向上が見込める場合のみ変換テーブルの更新処理およびディスク装置３０におけるデータ格納領域の変更処理を行う。つまり、変換テーブルの更新処理を行うとともに、ディスク装置３０に対してデータ格納領域の変更処理を行ってデータの入れ替えを行うため、処理が重くなる場合がある。このため、実施例３に係るファイルサーバでは、実施例１で説明した午前２時になるたびに毎回、変換テーブルの更新処理およびディスク装置におけるデータ格納領域の変更処理を行うのではなく、一定の性能向上が見込める場合のみ更新処理および変更処理を行う。
【００７５】
例えば、実施例３に係るファイルサーバでは、１０％以上のアクセス性能の向上が見込める場合のデータの変動幅を予め求めておき、ここでは、１０％以上のアクセス性能の向上が見込める場合のデータの変動幅がＸＧＢであったものとする。変動幅とは、ホットスポットのピークの幅を言う。図１３の左側のグラフに例示するように、ディスク装置に二つの離反したホットスポットが存在し、ホットスポットの間隔がＸＧＢ以上である場合には、変換テーブルの更新処理およびディスク装置におけるデータ格納領域の変更処理を行う。この結果、図１３の右側のグラフに例示するように、離反したホットスポットを特定の領域に集中させ、１０％以上のアクセス性能の向上が見込めることができる。なお、図１３の例では、横軸がディスク装置のディスクオフセットを示し、縦軸が各ディスクオフセットにおけるｉｏｐｓを示している。
【００７６】
実施例３に係るファイルサーバでは、ホットスポットの間隔を特定するために、更新前の物理アドレスと更新後の物理アドレスとの差分を求める。例えば、実施例３に係るファイルサーバでは、１０％以上のアクセス性能の向上が見込める場合のデータの変動幅の閾値が３ＧＢであるものとして設定されているものとする。そして、実施例３に係るファイルサーバは、変換テーブル１３ｆの更新処理によって論理アドレス「１」に対応する物理アドレスが「１」から「６」に更新する場合には、データが５ＧＢ移動することになり、閾値の３ＧＢよりも大きい。このため、実施例３に係るファイルサーバは、テーブルの更新処理を行うとともに、ディスク装置３０に対してデータ格納領域の変更処理を行う。
【００７７】
次に、図１４を用いて、実施例３に係るファイルサーバの処理の説明を行う。図１４に示すように、まず、実施例３に係るファイルサーバは、実施例１と同様に、変換テーブル１３ｆを初期化し（ステップＳ４０１）、アクセス要求があれば、ディスク装置３０にアクセスし（ステップＳ４０２）、アクセス回数をカウントする（ステップＳ４０３）。
【００７８】
その後、実施例３に係るファイルサーバでは、Ａ．Ｍ．２：００に到達した後（ステップＳ４０４肯定）、変換テーブル１３ｆの更新を行う際に、更新前の物理アドレスと更新後の物理アドレスとの差分が所定の閾値以上であるか判定する（ステップＳ４０５）。この結果、実施例３に係るファイルサーバは、更新前の物理アドレスと更新後の物理アドレスとの差分が所定の閾値以上でない場合には（ステップＳ４０５否定）、１０％以上のアクセス性能の向上が見込めないため、更新処理および変更処理を行わずに、処理を終了する。
【００７９】
また、実施例３に係るファイルサーバは、更新前の物理アドレスと更新後の物理アドレスとの差分が所定の閾値以上である場合には（ステップＳ４０５肯定）、１０％以上のアクセス性能の向上が見込める部分のみ、変換テーブル１３ｆを更新する（ステップＳ４０６）。そして、実施例３に係るファイルサーバは、更新された変換テーブル１３ｆに基づいて、ディスク装置３０に記憶されたデータの記憶領域を変更する（ステップＳ４０７）。
【００８０】
このため、データの記憶領域を変更することによるアクセス性能の向上が多く見込めない場合には、変換テーブル１３ｆの更新を中止し、データの記憶領域を変更することによる処理負担をかけないようにすることが可能である。
【実施例４】
【００８１】
さて、これまで本発明の実施例について説明したが、上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【００８２】
（１）処理タイミング
上記の実施例１では、一日に一回、午前２時になったタイミングで変換テーブルの更新処理およびディスク装置におけるデータ格納領域の変更処理を行っている場合を説明したが、これに限定されるものではない。例えば、ファイルサーバは、一日に複数回の更新処理および変更処理を行ってもよいし、数日に一回のタイミングで変換テーブルの更新処理およびディスク装置におけるデータ格納領域の変更処理を行ってもよい。
【００８３】
（２）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、計数部１３ａと更新部１３ｂを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８４】
（３）プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムを他の実施例として説明する。
【００８５】
図１５に示すように、コンピュータシステム６００は、ＨＤＤ６１０と、ＲＡＭ６２０と、ＲＯＭ６３０と、ＣＰＵ６４０とから構成され、バス６５０を介してそれぞれが接続されている。ここで、ＲＯＭ６３０には、上記の実施例と同様の機能を発揮するプログラム、つまり、図１５に示すように、アクセス制御プログラム６３１があらかじめ記憶されている。
【００８６】
そして、ＣＰＵ６４０には、アクセス制御プログラム６３１を読み出して実行することで、図１５に示すように、アクセス制御プロセス６４１となる。なお、アクセス制御プログラム６３１を読み出してアクセス制御プロセス６４１を実行することで、前述した図２に示した計数部１３ａ、更新部１３ｂ、変更部１３ｃ、アクセス部１３ｄと同様の処理を実行する。
【００８７】
また、ＨＤＤ６１０には、カウンタテーブル６１１および変換テーブル６１２が設けられる。そして、ＣＰＵ６４０は、カウンタテーブル６１１および変換テーブル６１２に対してデータを登録するとともに、カウンタテーブル６１１および変換テーブル６１２を読み出してＲＡＭ６２０に格納し、ＲＡＭ６２０に格納されたデータに基づいて処理を実行する。
【００８８】
ところで、上記したプログラム６３１は、必ずしもＲＯＭ６３０に記憶させておく必要はない。例えば、コンピュータシステム６００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に記憶させておき、コンピュータシステム６００がこれらからプログラムを読み出して実行するようにしてもよい。また、コンピュータシステム６００の内外に設けられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム６００に接続される「他のコンピュータシステム」に記憶させておき、コンピュータシステム６００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００８９】
１０、１０Ａ  ファイルサーバ
１１  通信制御Ｉ／Ｆ
１２  アクセス受付部
１３  ディスクドライバ
１３ａ  計数部
１３ｂ  更新部
１３ｃ  変更部
１３ｄ  アクセス部
１３ｅ  カウントテーブル
１３ｆ  変換テーブル
１３ｇ  算出部
１３ｈ  決定部
１４  ディスク制御Ｉ／Ｆ
２０  クライアント端末
３０  ディスク装置
【図１】
0005720204.tif 000002
【図２】
0005720204.tif 000003
【図３】
0005720204.tif 000004
【図４】
0005720204.tif 000005
【図５】
0005720204.tif 000006
【図６】
0005720204.tif 000007
【図７】
0005720204.tif 000008
【図８】
0005720204.tif 000009
【図９】
0005720204.tif 000010
【図１０】
0005720204.tif 000011
【図１１】
0005720204.tif 000012
【図１２】
0005720204.tif 000013
【図１３】
0005720204.tif 000014
【図１４】
0005720204.tif 000015
【図１５】
0005720204.tif 000016
【図１６】
0005720204.tif 000017