(57)【要約】【課題】本発明は、ファイル管理プログラムに関し、複数のファイルサーバにより動的に負荷の分散を行いつつ複数のファイルの分散管理を行うことを目的とする。【解決手段】ファイル管理プログラムは、コンピュータ１に、複数のファイルサーバ２で共用可能なストレージ装置４に設けられたファイルシステム５における１又は複数のファイル５１を管理するファイルサーバ２を用意させ、前記用意されたファイルサーバ２と他のファイルサーバ２との間で各々のファイルサーバ２の管理するファイル５１についてのアクセス状態を表すデータを所定の間隔で送受信させ、アクセス状態を表すデータに基づいて前記用意されたファイルサーバ２の管理する１又は複数のファイル５１の管理主体を、動的に変更させる。【選択図】　　　　図１
2004139200.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムを管理するファイルサーバを実現するプログラムであって、
前記プログラムは、コンピュータに、
複数のファイルサーバで共用可能なストレージ装置に設けられたファイルシステムにおける１又は複数のファイルを管理するファイルサーバを用意させ、
当該ファイルサーバと他のファイルサーバとの間で、各々のファイルサーバの管理するファイルについてのアクセス状態を表すデータを、所定の間隔で送受信させ、
前記アクセス状態を表すデータに基づいて、当該ファイルサーバの管理する前記１又は複数のファイルの管理主体を、動的に変更させる
ことを特徴とするファイル管理プログラム。
【請求項２】
前記ファイルサーバは、当該ファイルについての最初のアクセス時において、
クライアントの存在する前記コンピュータ上に前記ファイルサーバが存在し、かつ、当該ファイルサーバが現在当該ファイルを管理しているファイルサーバと比べて前記アクセス状態を表すデータに基づいて性能的に余裕があると判断した場合、当該ファイルサーバに当該ファイルの管理の移管を要求し、
前記クライアントの存在する前記コンピュータ上に前記ファイルサーバが存在しないが、前記アクセス状態を表すデータに基づいて性能的に余裕があるファイルサーバが他に存在すると判断した場合、当該余裕のあるファイルサーバに当該ファイルの管理の移管を要求する
ことを特徴とする請求項１に記載のファイル管理プログラム。
【請求項３】
前記ファイルサーバは、当該ファイルについての高アクセス頻度時において、
クライアントの存在する前記コンピュータ上に前記ファイルサーバが存在し、かつ、当該ファイルサーバが現在当該ファイルを管理しているファイルサーバと比べて前記アクセス状態を表すデータに余裕がある場合、当該ファイルサーバに管理の移管を要求する
ことを特徴とする請求項１に記載のファイル管理プログラム。
【請求項４】
前記プログラムは、コンピュータに、更に、
前記ストレージ装置におけるデータ格納領域を、前記複数のファイルサーバに予め分配して管理させ、
前記ファイルサーバは、各々、自己が管理するファイルに対してデータ格納領域を割り当てる場合、前記ストレージ装置における自己の管理する領域から、前記データ格納領域を割り当てる
ことを特徴とする請求項１に記載のファイル管理プログラム。
【請求項５】
ファイルシステムを管理するファイル管理装置であって、
複数のファイル管理装置で共用可能なストレージ装置に設けられたファイルシステムにおける１又は複数のファイルを管理する管理手段と、
他のファイル管理装置との間で、各々のファイル管理装置の管理するファイルについてのアクセス状態を表すデータを、所定の間隔で送受信する通信手段と、
前記アクセス状態を表すデータに基づいて、自己の管理する前記１又は複数のファイルを、動的に変更する変更手段とを備える
ことを特徴とするファイル管理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイル管理プログラム及びファイル管理装置に関し、特に、複数のファイルサーバが複数のファイルの分散管理を行うファイル管理プログラム及びファイル管理装置に関する。
【０００２】
【従来の技術】
多数のファイルを管理する場合、複数のファイルサーバによりファイルを分割して管理することにより、負荷の分散が図られる。多くの場合、複数のファイルはツリー構造により管理される。従って、ツリー構造の複数のファイル（ファイルツリー又はファイルシステム）は、複数のファイルサーバにより管理される。ファイルシステムの分割管理は、以下のいずれかの方法による。
【０００３】
第１に、一般的な方法であるが、各々のファイルサーバが、完全に独立してファイルツリーを管理する。即ち、各々のファイルサーバが、定義情報により予め定められたファイルツリーの部分を自己の管理領域として、独立して完全に管理する。この場合、あるファイルにアクセスするためには、クライアント（要求クライアント）は、当該ファイルを管理するファイルサーバに対してアクセス要求を行う必要がある。アクセス要求されるファイルサーバが適度にばらつけば、負荷分散の効果がある（例えば、特許文献１参照）。
【０００４】
第２に、大型の（又は高価な）コンピュータシステムで用いられる方法であるが、各々のファイルサーバが、ファイルのレプリカ（コピー）を保持して管理する。即ち、各々のファイルサーバが、ファイルツリーの全部又は一部のレプリカを保持して管理する。レプリカは有効性（レプリカ間におけるデータの整合性）を確保しつつ管理される。従って、クライアントの存在するコンピュータ内に有効なレプリカが存在する場合、高速な応答が得られ、結果的に負荷分散の効果がある（例えば、特許文献２参照）。
【０００５】
【特許文献１】
特開平５−２３３４１７号公報
【特許文献２】
特表平１０−５１０９３５号公報
【０００６】
【発明が解決しようとする課題】
しかし、前述の第１のファイルシステムの分割管理の方法によれば、局所的なアクセスに対しては、負荷の分散ができない。即ち、ある特定のファイルツリーの配下のファイルにアクセスが集中すると、当該ファイルツリーを管理するファイルサーバのみの負荷が大きくなる。このため、ファイルサーバを分割したメリットが得られない。アクセスが集中したファイルツリーを更に分割して負荷を分散することは可能である。しかし、このためには、ファイルツリーの当該部分を管理するファイルサーバの定義情報を書き換えなければならない。これはシステム管理者にとって、煩わしく負担も大きい。また、定義情報の書き換えによっては、アクセスが集中するファイルが動的に変化する場合には対応できない。
【０００７】
また、第２のファイルシステムの分割管理の方法によれば、レプリカの保持のために多くのストレージ領域（記憶容量）が必要となる。即ち、この方法においては、クライアントから至近のレプリカにアクセスすることにより、初めて負荷の分散が可能となる。従って、どのクライアントから見ても至近の（即ち、高速の応答を返信できる）レプリカが存在し得るように、ある程度の数のレプリカを配置する必要がある。しかし、近年、ファイルツリーに保持されるデータ量は膨大であり、かつ、重要で省略できないデータである場合が多い。このため、レプリカを配置するために、多くのストレージ領域を必要とする。また、膨大なデータの間における整合性を維持するために、相当のデータ転送を伴う通信を必要とする。
【０００８】
本発明の目的は、複数のファイルサーバにより、動的に負荷の分散を行いつつ、複数のファイルの分散管理を行うファイル管理プログラムを提供することにある。
【０００９】
また、本発明の目的は、複数のファイルサーバにより、動的に負荷の分散を行いつつ、複数のファイルの分散管理を行うファイル管理装置を提供することにある。
【００１０】
【課題を解決するための手段】
本発明のファイル管理プログラムは、ファイルシステムを管理するファイルサーバを実現するプログラムであって、前記プログラムは、コンピュータに、複数のファイルサーバで共用可能なストレージ装置に設けられたファイルシステムにおける１又は複数のファイルを管理するファイルサーバを用意させ、当該ファイルサーバと他のファイルサーバとの間で各々のファイルサーバの管理するファイルについてのアクセス状態を表すデータを所定の間隔で送受信させ、アクセス状態を表すデータに基づいて当該ファイルサーバの管理する１又は複数のファイルの管理主体を動的に変更させる。
【００１１】
本発明のファイル管理プログラムによれば、ファイルサーバ間での通信により相互にアクセス状態を表すデータを送受信し、これに基づいて自己の管理するファイルを動的に変更するファイルサーバ（管理主体）を実現することができる。これにより、特定のファイルツリーのファイルにアクセスが集中した場合、当該ファイルツリーを更に分割して、当該ファイルツリーを管理するファイルサーバの負荷を減らし、負荷を分散することができる。また、ファイル管理（又は管理主体）の動的変更のためにファイルサーバの定義情報を書き換える必要がないので、システム管理者の負担なしで、アクセスが集中するファイルが動的に変化する場合に対応することができる。従って、ユーザ（クライアント）からのアクセス形態にかかわらず、動的な負荷分散を実現することができる。更に、ファイルサーバ間での通信の間隔でファイル管理の動的変更が行われるので、レプリカを保持することなく、どのクライアントから見ても高速の応答が得られる。従って、膨大なストレージ領域やデータの整合性を維持する通信なしで、高速の応答性を備えるファイルシステムを得ることができる。
【００１２】
また、本発明のファイル管理装置は、ファイルシステムを管理するファイル管理装置であって、複数のファイル管理装置で共用可能なストレージ装置に設けられたファイルシステムにおける１又は複数のファイルを管理する管理手段と、他のファイル管理装置との間で、各々のファイル管理装置の管理するファイルについてのアクセス状態を表すデータを、所定の間隔で送受信する通信手段と、アクセス状態を表すデータに基づいて、自己の管理する１又は複数のファイルを、動的に変更する変更手段とを備える。
【００１３】
本発明のファイル管理装置によれば、ファイル管理装置間での通信により相互にアクセス状態を表すデータを送受信し、これに基づいて、自己の管理するファイルを動的に変更する。これにより、前述のように、局所的なアクセスの集中に対して、ファイルツリーを更に分割して、ファイル管理装置の負荷を分散することができる。また、局所的なアクセスの集中に対応して、システム管理者の負担なしで、動的な負荷分散を実現することができる。更に、ファイル管理（又は管理主体）の動的変更により、どのクライアントも高速の応答が得られるファイルシステムを得ることができる。
【００１４】
【発明の実施の形態】
図１はファイル管理システム構成図であり、特に、図１（Ａ）は本発明のファイル管理プログラムが実現するファイル管理装置を備えるファイル管理システムの構成を示す。
【００１５】
ファイル管理システムは、複数のコンピュータ１と、複数のコンピュータ１上に存在する複数のファイルサーバ２と、１又は複数のクライアント（要求クライアント）３と、１又は複数のストレージ装置４と、これらの間を接続するネットワーク６とを備える。この例では、ファイル管理システムは、４個のコンピュータ１（１Ａ〜１Ｄ）、４個のファイルサーバ２（２Ａ〜２Ｄ）、１個のストレージ装置４、１個のクライアント３を含んでいる。ネットワーク６は、例えばＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ　Ａｒｅａ　Ｎｅｔｗｏｒｋ　）等からなる。
【００１６】
ストレージ装置４は、複数のコンピュータ１の各々から即ち複数のファイルサーバ２の各々から共用可能とされる。ストレージ装置４上には、階層構造とされた複数のファイルからなるファイルシステム５が設けられる。ファイルサーバ２は、ファイル管理装置であって、ファイルシステム５を分割して管理する。即ち、ファイルサーバ２は、ファイルシステム５における１又は複数のファイル５１を管理する。クライアント３は、ファイルサーバ２に対して、ファイル５１へのアクセス要求を発行する。
【００１７】
図１（Ｂ）は、本発明を説明するための概念図であり、本発明のファイル管理プログラムが実現するファイルサーバ２により管理されるファイルシステム５の構成を示す。
【００１８】
ファイルシステム５は、複数のファイルを階層的に管理するものであり、一般ファイルとディレクトリファイルにより構成される。一般ファイルはプログラムで利用するデータを格納するファイルであり、ディレクトリファイルはファイル（一般ファイル及びディレクトリファイル）を管理するためのファイルである。ディレクトリファイルは配下のファイルを特定する情報を保持しており、図１（Ｂ）においては枝分かれしている線図として描かれている。
【００１９】
図１（Ｂ）において、太線により各々のファイルサーバ２の管理範囲を表す。例えば、領域５Ａ内のディレクトリファイル５１配下のファイルツリーはファイルサーバ２Ａにより管理される。例えば、ファイルサーバ２Ａが領域５Ｂの管理をファイルサーバ２Ｂに移管することにより、ファイルツリーの分割管理の変更が成立する。領域５Ｃ及び５Ｄについても同様である。結果として、ファイルサーバ２Ａは、領域５Ａの中のファイルサーバ２Ｂ〜２Ｄに移管した領域５Ｂ〜５Ｄ以外の部分を管理する。このように、複数のファイルサーバ２は、ファイルシステム５を構成する頂点の１個のディレクトリ配下を、階層的に分割管理し、かつ管理範囲を動的に変更する。これにより、高度な負荷分散を実現する。
【００２０】
なお、例えば個々のコンピュータ１を区別する場合には、コンピュータ１Ａ等と示す。他についても同様である。１個のコンピュータ１上には、ファイルシステム５を管理するファイルサーバ２が１個のみ存在し、複数存在することはない。クライアント３は、各々のコンピュータ上に、１又は複数存在するか、又は、存在しなくてもよい。クライアント３は、複数のコンピュータ１上のいずれかに存在すればよい。ストレージ装置４を共用することができないコンピュータ１上には、ファイルサーバ２及びクライアント３は存在しない。
【００２１】
図２はファイルサーバ構成図であり、本発明のファイル管理プログラムが実現するファイルサーバ２の構成を示す。
【００２２】
ファイルサーバ２は、管理手段２１、通信手段２２、変更手段２３、ファイル管理用制御表２４、稼働状況テーブル２６、ファイルリスト２７を備える。ファイルサーバ２、即ち、その管理手段２１、通信手段２２及び変更手段２３は、本発明のファイル管理プログラムを、コンピュータ１のＣＰＵにおいて実行することにより実現される。本発明のファイル管理プログラムは、フレキシィブルディスク、ＣＤ−ＲＯＭ、ＣＤＲ／Ｗ、ＤＶＤ等の種々のプログラム記録媒体に記録して提供されることができる。これにより、本発明のファイルサーバ２をコンピュータ１上に容易に実現することができる。ファイル管理用制御表２４、稼働状況テーブル２６、ファイルリスト２７はファイル管理プログラムにより、当該コンピュータ１の主記憶（図示せず）上に作成される。
【００２３】
管理手段２１は、複数のファイルサーバ２で共用可能なストレージ装置４に設けられたファイルシステム５において、１又は複数のファイル５１（及びディレクトリ５２）を管理する。管理対象は、当該ファイルサーバ２（即ち、当該管理手段２１）が管理すべきファイル５１（及びディレクトリ５２、以下同じ）である。即ち、管理手段２１は、自己が管理すべきファイル５１に対するアクセスが発生すると、当該アクセス対象ファイル５１に対応したファイル管理用制御表２４が自コンピュータ１の主記憶内に存在するか否かを調べ、存在しない場合、ファイル管理用制御表２４を作成する。なお、ファイル管理用制御表２４は、当該ファイル５１がアクセスされている間は主記憶内に常駐するので、存在しない場合は、当該アクセスが新規のアクセスであることを意味する。
【００２４】
ファイル管理用制御表２４の一例を図３に示す。ファイル管理用制御表２４は、ある１個のファイル５１について、その種類、アクセス権、所有者、最終更新時刻等の属性情報に加えて、当該ファイル５１がどのコンピュータ１から連続的にアクセスされているか（連続操作情報）、また、どのコンピュータ１から連続的にデータ転送要求があったか（連続転送情報）を記録する。管理手段２１は、当該ファイル５１へのアクセスに応じて、連続操作情報及び連続転送情報を逐次更新する。
【００２５】
例えば、当該ファイル５１がコンピュータ１Ｄから初めてオープンされる（オープンのアクセス要求がある）と、図３の連続操作要求計算機名に「コンピュータＤ」と記録され、連続操作要求数に「１」と記録される。続いて、当該ファイル５１についての属性情報取得のアクセス要求が発行されると、連続操作要求計算機名が等しいので、連続操作要求数が「２」に更新される。連続転送要求計算機名及び連続転送要求量も、同様に、当該ファイル５１に対して読み出し又は書き込みの要求が発行される都度に、記録され更新される。なお、連続転送要求量の単位はＭＢ（メガバイト）である。
【００２６】
例えば、コンピュータ１Ｄ（即ち、ファイルサーバ１Ｄ）からのアクセスの後に異なるコンピュータ１Ｂ（即ち、ファイルサーバ１Ｂ）からアクセス要求があった場合、連続操作要求計算機名は変更され、連続操作要求数は「０」にリセットされる。連続転送要求計算機名及び連続転送要求量も同様である。従って、連続操作情報及び連続転送情報は、同一のコンピュータ１又はファイルサーバ２からのアクセスの頻度を表す情報である。
【００２７】
管理手段２１は、ファイル５１についてファイル管理用制御表２４を作成した場合、最初のアクセス時であると判断して、その旨を変更手段２３に通知する。また、管理手段２１は、連続操作情報又は連続転送情報が所定の状態を示す場合、高アクセス頻度時であると判断して、その旨を変更手段２３に通知する。例えば、特定のコンピュータ１からの連続操作数が１６回（３２回、６４回等であってもよい）を超えた場合、当該コンピュータ１から多数の操作要求を受け付けた高アクセス頻度時であると判断する。又は、特定のコンピュータ１への連続転送量が３２ＭＢ（１６ＭＢ、６４ＭＢ等であってもよい）を超えた場合、当該コンピュータ１から多量のデータ転送要求を受け付けた高アクセス頻度時であると判断する。
【００２８】
通信手段２２は、他のファイルサーバ２との間で、各々のファイルサーバ２の管理するファイル５１についてのアクセス状態を表すデータを、所定の間隔で送受信する。この例において、通信手段２２はサーバ間通信手段である。即ち、ファイルサーバ２は、他ファイルサーバ２が正常に動作していることを確認するために、所定の間隔で、相互に定期送信情報２５を送受信する通信を行う。所定の間隔は、例えば１０秒とされる。この例では、このサーバ間通信の際に送受信される定期送信情報２５に、アクセス状態を表すデータが含まれる。
【００２９】
定期送信情報２５の一例を図４（Ａ）に示す。定期送信情報２５は、本来のサーバ間通信のメッセージである「通常のメッセージ」に加えて、アクセス状態を表すデータ、即ち、過去１０秒間に自己（当該ファイルサーバ２）がどれだけの要求を処理したかを示すデータ（付加情報）を含む。なお、「過去１０秒間」とは、先のサーバ間通信から今回のサーバ間通信までの間隔である。
【００３０】
アクセス状態を表すデータは、「過去１０秒間の平均操作要求数」及び「過去１０秒間の平均転送速度」からなる。「過去１０秒間の平均操作要求数」は、過去１０秒間で、当該ファイルサーバ２が管理する全てのファイル５１に対する操作要求を、１秒当たり平均何個処理したかを示す。即ち、所定の時間あたりの平均アクセス要求数である。「過去１０秒間の平均転送速度」は、過去１０秒間で、当該ファイルサーバ２が管理する全てのファイル５１に対する入出力要求を、１秒当たり平均何ＭＢ分処理したかを示す。即ち、所定の時間あたりの平均データ転送速度（の実績）である。
【００３１】
アクセス状態を表すデータは、例えば管理手段２１が当該１０秒毎に作成して通信手段２２に渡す。このために、管理手段２１は、当該ファイルサーバ２が管理する全てのファイル５１について、その操作要求を受け付けた（処理した）回数、及び、その入出力要求を処理した量（ＭＢ）を、当該１０秒毎に記録し、前記平均を求める。
【００３２】
ファイルサーバ２の稼動状況を評価するためにこれらの２個のパラメータを使用するのは、入出力系の処理（ほぼ「平均転送速度」で表される）とそうでない処理（ほぼ「平均操作要求数」で表される）とでは性能の評価対象値が異なるからである。入出力系の処理はほぼ「平均転送速度」で表され、そうでない処理はほぼ「平均操作要求数」で表されると考えてよい。これらの値が大きい程、当該ファイルサーバ２の処理能力（即ち、アクセス状態を表すデータ）にまだ余裕があることを意味する。
【００３３】
変更手段２３は、アクセス状態を表すデータに基づいて、自己の管理する１又は複数のファイル５１を、動的に変更する。このために、通信手段２２は、他のファイルサーバ２との間におけるサーバ間通信により受信した定期送信情報２５からアクセス状態を表すデータを取り出して、変更手段２３に渡す。変更手段２３は、通信手段２２からのアクセス状態を表すデータに基づいて、稼働状況テーブル２６を作成する。これにより、変更手段２３は、ストレージ装置４を共用しファイルシステム５にアクセスする全てのファイルサーバ２の各々について、過去１０秒間における稼動状況を把握する。
【００３４】
稼働状況テーブル２６の一例を図４（Ｂ）に示す。稼働状況テーブル２６は、ファイルサーバ２毎に、「過去１０秒間の平均操作要求数」及び「過去１０秒間の平均転送速度」を格納するものである。例えば、ファイルサーバ２Ａの備える稼働状況テーブル２６においては、ファイルサーバ２Ａについてのこれらのデータは自己のデータを入力し、ファイルサーバ２Ｂ〜２Ｄについてのこれらのデータは通信手段２２から得たデータを使用する。平均操作要求数については、ファイルサーバ２Ｃが最高スコアを示し、この観点からの処理能力に最も余裕が残っている（当該データが最も優れている、以下同じ）。平均転送速度についても、ファイルサーバ２Ｃが最高スコアを示し、この観点からの処理能力に最も余裕が残っている。
【００３５】
変更手段２３は、稼働状況テーブル２６を用いて、ファイル５１の管理を移管する（即ち、管理するファイルサーバ２を変更する）か否かの判断処理を行なう。この判断処理は、管理手段２１からの最初のアクセス時である旨の通知又は高アクセス頻度時である旨の通知を受け取った場合に行なわれる。即ち、ファイル５１に対する初めてのアクセス時（ファイル５１の作成時を含む）、及び、特定のコンピュータ１から多数の操作要求または多量のデータ転送要求を受け付けた場合に行なわれる。
【００３６】
最初のアクセス時である旨の通知を受け取った場合、変更手段２３は、最初のアクセス時の判定処理を行なう。これについては、図８を参照して後述する。これにより、変更手段２３は、クライアント３の存在するコンピュータ１上にファイルサーバ２が存在し、かつ、当該ファイルサーバ２が現在当該ファイル５１を管理しているファイルサーバ２（現ファイルサーバ２）と比べて処理能力（即ち、アクセス状態を表すデータ、以下同じ）に余裕がある場合、当該ファイルサーバ２に管理の移管を要求する。また、変更手段２３は、クライアント３の存在するコンピュータ１上にファイルサーバ２が存在しないが、処理能力に余裕があるファイルサーバ２が他に存在する場合、当該余裕のあるファイルサーバ２に管理の移管を要求する。
【００３７】
高アクセス頻度時である旨の通知を受け取った場合、変更手段２３は、高アクセス頻度時の判定処理を行なう。これについては、図９を参照して後述する。これにより、変更手段２３は、クライアント３の存在するコンピュータ１上にファイルサーバ２が存在し、かつ、当該ファイルサーバ２が現ファイルサーバ２と比べて処理能力に余裕がある場合、当該ファイルサーバ２に管理の移管を要求する。この移管要求の後、変更手段２３は、自己のファイルリスト２７を変更する。また、この例では、管理の移管を要求されたファイルサーバ２は、当該管理の移管を他のファイルサーバ２に通知する。これに応じて、他のファイルサーバ２は自己のファイルリスト２７を変更する。なお、変更前のファイルサーバ２が当該管理の移管を他のファイルサーバ２に通知するようにしてもよい。
【００３８】
ファイルリスト２７の一例を図４（Ｃ）に示す。ファイルリスト２７は、ファイルサーバ２毎に、当該ファイルサーバ２の管理するファイル５１の名前及びディレクトリ５２の名前を格納してなる。この例では、ストレージ装置４を共用してファイルシステム５を使用する全てのファイルサーバ２が、同一のファイルリスト２７を備える。従って、ファイル５１の管理の移管とは、ファイルリスト２７を変更することによる。即ち、この例では、ファイル５１の管理情報（管理するファイルサーバ２を示す情報）は、定義情報において固定的に定められることなく、ファイルリスト２７により動的に変更され管理される。
【００３９】
また、変更手段２３は、自己を管理するファイルサーバ２が変更されたファイル５１を使用しているクライアント３に対して、新しいファイルサーバ２を通知する。これにより、クライアント３は、次回のアクセス時から、新しいファイルサーバ２に対してアクセス要求を発行することができる。
【００４０】
以上により、この例のファイル管理システムでは、ファイルサーバ２の負荷が高くなった場合又は高くなることが予想される場合、当該ファイルサーバ２は、その管理するファイルツリーの一部の管理を、他の負荷の低いファイルサーバ２に移管する。これにより、ファイルサーバ２の負荷を軽減し、ファイルサーバ２の全体の負荷を分散することができる。また、あるファイルツリー内のファイル５１が特定のコンピュータ１から高い頻度でアクセスされていることを検出した場合又は多量のデータ転送の要求があった場合、当該ファイル５１の管理を、当該コンピュータ１上のファイルサーバ２に移管する。これにより、アクセス要求元のクライアント３とファイルサーバ２とが同一のコンピュータ１上に存在することになり、より高速なファイル操作、データ転送が可能となる。
【００４１】
なお、ファイル管理システムの構成は、図１の構成に限られず、例えば図５及び図６に示すような構成としてもよい。図５（Ａ）乃至図６（Ｂ）は、各々、図１（Ａ）に対応し、本発明のファイル管理プログラムが実現する他のファイル管理装置を備えるファイル管理システムの構成を示す。
【００４２】
図５（Ａ）に示すように、クライアント３はコンピュータ１Ｅ上に存在してもよい。コンピュータ１Ｅは、ファイルサーバ２Ａ乃至２Ｄの存在しないコンピュータである。従って、クライアント３とファイルサーバ２とは、必ずしも同一のコンピュータ１上に存在する必要はない。この場合のクライアント３は、他のコンピュータ１Ａ乃至１Ｄに存在するファイルサーバ２Ａ乃至２Ｄに対してアクセス要求を送ることにより、ファイルシステム５を使用する。
【００４３】
図５（Ｂ）に示すように、クライアント３はコンピュータ１Ｆ上に存在してもよい。コンピュータ１Ｆは、ネットワーク６Ａに接続された他のネットワーク６Ｂを介して接続されたコンピュータである。従って、クライアントは他のネットワーク６Ｂに存在してもよい。この場合のクライアント３も、他のコンピュータ１Ａ乃至１Ｄに存在するファイルサーバ２Ａ乃至２Ｄに対してアクセス要求を送ることにより、ファイルシステム５を使用する。
【００４４】
図６（Ａ）に示すように、複数のコンピュータ１即ちファイルサーバ２により共用される第１及び第２（複数）のストレージ装置４Ａ及び４Ｂが設けられ、かつ、これらの上に１個のファイルシステム５が設けられていてもよい。従って、ストレージ装置４Ａ及び４Ｂは物理的に複数であって、ファイルシステム５は論理的に１個であってもよい。この場合のクライアント３は、ストレージ装置４Ａ及び４Ｂを意識する必要はない。
【００４５】
図６（Ｂ）に示すように、複数のコンピュータ１即ちファイルサーバ２による複数のファイル管理システムを併存させてもよい。第１のファイル管理システムは、第１ストレージ装置４Ａ上の第１ファイルシステム５Ａを共用する。即ち、コンピュータ１Ｂ即ちその上の第１ファイルサーバ２Ｂ及びコンピュータ１Ｄ即ちその上の第１ファイルサーバ２Ｄが、第１ファイルシステム５Ａを共用する。第１のファイル管理システムの第１クライアント３Ａは、当該第１ファイルサーバ２Ｂ及び２Ｄの存在しないコンピュータ１Ａ上に存在する。しかし、前述のように、第１クライアント３Ａは、他のコンピュータ１Ｂ及び１Ｄに存在する第１ファイルサーバ２Ｂ又は２Ｄに対してアクセス要求を送ることにより、第１ファイルシステム５Ａを使用する。第２のファイル管理システムも、同様に、第２ストレージ装置４Ｂ上の第２ファイルシステム５Ｂを、コンピュータ１Ａ即ちその上の第２ファイルサーバ２Ａ及びコンピュータ１Ｃ即ちその上の第２ファイルサーバ２Ｃが共用する。
【００４６】
図７は、ファイル管理処理フローであり、本発明のファイルサーバ２が実行するファイル管理処理を示す。
【００４７】
管理手段２１が、ファイルリスト２７を参照して、クライアント（要求クライアント）３からのアクセス要求が自己の管理するファイル５１についてのものであれば、当該アクセス要求を受け付け（受信し）、その旨を変更手段２３に通知する（ステップＳ１１）。この際、管理手段２１は、必要に応じてファイル管理用制御表２４を作成又は更新し、また、当該操作要求を受け付けた回数又は当該入出力要求を処理した量（ＭＢ）を記録する。更に、アクセス要求の受け付けに先立つ所定の１０秒間について、定期送信情報２５の送受信に基づく稼働状況テーブル２６が作成されている。
【００４８】
通知を受けた変更手段２３が、当該アクセス要求をトリガとして、最初のアクセス時の判定処理を行うか否かを調べる（ステップＳ１２）。当該判定処理を行なわない場合、変更手段２３が、更に、高アクセス頻度時の判定処理を行うか否かを調べる（ステップＳ１３）。当該判定処理を行なわない場合、この旨を変更手段２３が管理手段２１に通知すると、これに応じて管理手段２１がクライアント３から受信した当該アクセス要求を実行して（ステップＳ１４）、処理を終了する。
【００４９】
ステップＳ１２において最初のアクセス時の判定処理を行なう場合、変更手段２３が当該判定処理を行う（ステップＳ１５）。最初のアクセス時の判定処理については、図８を参照して後述する。また、ステップＳ１３において高アクセス頻度時の判定処理を行う場合、変更手段２３が当該判定処理を行う（ステップＳ１６）。高アクセス頻度時の判定処理については、図９を参照して後述する。
【００５０】
ステップＳ１５及びＳ１６の後、変更手段２３が、これらにおける判定処理の結果、他のファイルサーバ２に対して管理の移管の要求を行なうか否かを調べる（ステップＳ１７）。管理の移管の要求を行なわない場合、この旨を変更手段２３が管理手段２１に通知すると、これに応じて管理手段２１がステップＳ１４を実行する。管理の移管の要求を行なう場合、変更手段２３が、当該他のファイルサーバ２に対して管理の移管の要求を行ない、かつ、自己のファイルリスト２７を変更して（ステップＳ１８）、処理を終了する。この移管の要求は、当該アクセス要求と共に、当該他のファイルサーバ２に送信される。これにより、当該アクセス要求は、当該他のファイルサーバ２により実行される。
【００５１】
図８は、ファイル管理処理フローであり、図７のステップＳ１５において変更手段２３が実行する最初のアクセス時の判定処理を示す。
【００５２】
変更手段２３が、当該ファイルサーバ２はアクセス要求を発行したクライアント３の存在するコンピュータ１上に存在する（両者が同一のコンピュータ１上に存在する）か否かを調べる（ステップＳ２１）。例えば、図１において、クライアント３がファイルシステム５の領域５Ａ（領域５Ｂ〜５Ｄを除く領域）内のファイル５１についてのアクセスする場合、ファイルサーバ２Ａにアクセス要求を発行する。従って、この場合、ファイルサーバ２Ａはクライアント３の存在するコンピュータ１Ａ上に存在する。
【００５３】
存在しない場合、変更手段２３が、更に、当該アクセス要求がファイル５１の内容の入出力を伴う処理か否かを調べる（ステップＳ２２）。入出力を伴なわない処理である場合、次のステップＳ２３を省略する。入出力を伴う処理である場合、変更手段２３が、稼働状況テーブル２６を参照し、平均転送速度が最高スコアのファイルサーバ２が存在するか否かを調べる（ステップＳ２３）。存在しない場合、変更手段２３が、更に、稼働状況テーブル２６を参照し、平均操作要求数が最高スコアのファイルサーバ２が存在するか否かを調べる（ステップＳ２４）。存在しない場合、変更手段２３は、当該アクセス要求については現ファイルサーバ２が処理すると判断して（ステップＳ２５）、判定処理を終了する。従って、当該ファイル５１の移管処理は行なわれない。
【００５４】
ステップＳ２３において平均転送速度が最高スコアのファイルサーバ２が存在する場合、及び、ステップＳ２４において平均操作要求数が最高スコアのファイルサーバ２が存在する場合、変更手段２３は、当該ファイル５１を、当該最高スコアのファイルサーバ２に移管すると判断し（ステップＳ２６）、判定処理を終了する。従って、当該アクセス要求については、当該最高スコアのファイルサーバ２が、当該ファイル５１の移管処理の後に処理することになる。
【００５５】
ステップＳ２１においてファイルサーバ２はクライアント３の存在するコンピュータ１上に存在する場合、変更手段２３が、当該アクセス要求がファイル５１の内容の入出力を伴う処理か否かを調べる（ステップＳ２７）。入出力を伴なわない処理である場合、次のステップＳ２８を省略する。入出力を伴う処理である場合、変更手段２３が、クライアント３の存在するコンピュータ１上のファイルサーバ２の平均転送速度が現ファイルサーバ２の平均転送速度に比べて２５％以上高いか否かを調べる（ステップＳ２８）。２５％以上高くない場合、変更手段２３が、更に、クライアント３の存在するコンピュータ１上のファイルサーバ２の平均操作要求数が現ファイルサーバ２の平均操作要求数に比べて２５％以上高いか否かを調べる（ステップＳ２９）。２５％以上高くない場合、前述のステップＳ２２に進む。
【００５６】
ステップＳ２８において当該サーバの平均転送速度が２５％以上高い場合、及び、ステップＳ２９において当該サーバの平均操作要求数が２５％以上高い場合、変更手段２３は、当該ファイル５１を、クライアント３のコンピュータ１上のファイルサーバ２に移管すると判断し（ステップＳ２１０）、判定処理を終了する。従って、当該アクセス要求については、クライアント３の存在するコンピュータ１上のファイルサーバ２が、当該ファイル５１の移管処理の後に処理することになる。
【００５７】
図９は、ファイル管理処理フローであり、図７のステップＳ１６において変更手段２３が実行する高アクセス頻度時の判定処理を示す。
【００５８】
変更手段２３が、ステップＳ２１と同様に、当該ファイルサーバ２はアクセス要求を発行したクライアント３の存在するコンピュータ１上に存在するか否かを調べる（ステップＳ３１）。
【００５９】
存在しない場合、次のステップＳ３２及びＳ３３を省略して、ステップＳ３４を実行する。存在する場合、変更手段２３が、更に、ファイル管理用制御表２４を参照して、特定のファイルサーバ２からの連続操作要求数が所定の回数（この例では、１６回）を超えたか否かを調べる（ステップＳ３２）。超えていない場合、変更手段２３が、更に、ファイル管理用制御表２４を参照して、特定のファイルサーバ２からの連続転送量が所定の量（この例では、３２ＭＢ）を超えたか否かを調べる（ステップＳ３３）。超えていない場合、変更手段２３は、当該アクセス要求については現ファイルサーバ２が処理すると判断して（ステップＳ３４）、判定処理を終了する。従って、当該ファイル５１の移管処理は行なわれない。
【００６０】
ステップＳ３２において連続操作要求数が所定の回数を超えている場合、変更手段２３が、更に、当該特定のファイルサーバ２からの平均操作要求数が現ファイルサーバ２の平均操作要求数に比べて２５％以上高いか否かを調べる（ステップＳ３５）。２５％以上高くない場合、前述のステップＳ３３を実行する。
【００６１】
ステップＳ３３において連続転送量が所定の量を超えている場合、変更手段２３が、更に、当該特定のファイルサーバ２の平均転送速度が現ファイルサーバ２の平均転送速度に比べて２５％以上高いか否かを調べる（ステップＳ３６）。２５％以上高くない場合、前述のステップＳ３４を実行する。
【００６２】
ステップＳ３５において当該特定のファイルサーバ２の平均操作要求数が２５％以上高い場合、及び、ステップＳ３６において当該特定のファイルサーバ２の平均転送速度が２５％以上高い場合、変更手段２３は、当該ファイル５１を、クライアント３のコンピュータ１上のファイルサーバ２に移管すると判断し（ステップＳ３７）、判定処理を終了する。従って、当該アクセス要求については、クライアント３の存在するコンピュータ１上のファイルサーバ２が、当該ファイル５１の移管処理の後に処理することになる。
【００６３】
なお、図９の処理においては、平均操作要求数が２５％以上高くない場合、及び、平均転送速度が２５％以上高くない場合でも、平均処理数や平均転送速度が最高スコアのファイルサーバ２に移管せず、現ファイルサーバ２での管理を維持する。この点で、図８の最初のアクセス時の判定処理と異なる。この理由は、高アクセス頻度時においては、クライアント３の存在するコンピュータ１上のファイルサーバ２に移管しない限り、有効な性能向上が期待できないからである。
【００６４】
図１０は、ファイル管理処理フローであり、本発明のファイルサーバ２が図７のステップＳ１８においてファイル５１の管理の移管の要求を受信した場合に実行するファイル移管処理を示す。
【００６５】
他のファイルサーバ２の変更手段２３が、図７のステップＳ１８において発行されたファイル５１の管理の移管要求を当該アクセス要求と共に受け付けると（ステップＳ４１）、この要求に基づいて、自己のファイルリスト２７を変更して、かつ、これを更に他のファイルサーバ２へ通知して（ステップＳ４２）、その上で、以上の処理により他のファイルサーバ２から移管した当該アクセス要求についての処理を行い（ステップＳ４３）、処理を終了する。
【００６６】
図１１は、他のファイル管理システム構成図であり、図１（Ａ）に対応し、本発明のファイル管理プログラムが実現する他のファイル管理装置を備えるファイル管理システムの構成を示す。
【００６７】
この例のファイル管理システムでは、各々のファイルサーバ２が独自に割り当てることができる領域（データブロック、ファイル格納領域）を各々のファイルサーバ２に予め分配する。データブロックやファイル格納領域が不足しない限りは、当該ファイルサーバ２は、他ファイルサーバ２に問い合わせることなく、自己に分配された（自己が管理する）領域を優先的に使用してファイル５１等を作成したり格納領域を確保する。これにより、ファイルサーバ２の独立性を高め、より高速なファイル５１の処理を実現することができる。特に、前述のファイル５１を移管された場合において、その移管処理において有効である。
【００６８】
なお、ファイルサーバ２を複数のコンピュータ１上に分散して配置しても、ファイル５１を配置する領域の管理を１個のファイルサーバ２で行なうのでは、それが律速（性能上のネック）となってしまう。即ち、ファイル５１を配置する領域の管理のために、当該管理を行なうファイルサーバ２に問い合わせていては、それが高速化の制約となってしまう。
【００６９】
図１１において、ストレージ装置４の全てのデータブロック（データ格納領域）を４分割し、領域４Ａ乃至４Ｄを、各々、ファイルサーバ２Ａ乃至２Ｄに予め分配し、管理させる。ファイルサーバ２Ａは、自己が管理するファイル５１に対してデータブロックを割り当てる場合、自己の領域４Ａからファイル５１を格納するデータブロックを割り当てる。これにより、例えば当該ファイル５１を他のファイルサーバ２から移管された場合でも、高速に格納領域を割り当て、移管処理を実行することができる。
【００７０】
ファイルサーバ２Ａは、自己の領域４Ａが不足した場合、例えば他のファイルサーバ２Ｂに依頼して、その管理する領域４Ｂから自己が管理するファイル５１に対してデータブロックを割り当ててもらう。なお、ファイルサーバ２Ａ乃至２Ｄの性能が等しければ、領域４Ａ乃至４Ｄの大きさは最終的には等しい大きさに収束すると予想される。従って、ストレージ装置４の全てのデータブロックをファイルサーバ２の数で均等に分割すればよい。
【００７１】
以上から判るように、本発明の実施の形態の特徴を列記すると以下の通りである。
（付記１）　ファイルシステムを管理するファイルサーバ２を実現するプログラムであって、
前記プログラムは、コンピュータに、
複数のファイルサーバで共用可能なストレージ装置に設けられたファイルシステムにおける１又は複数のファイルを管理するファイルサーバを用意させ、
当該ファイルサーバと他のファイルサーバとの間で、各々のファイルサーバの管理するファイルについてのアクセス状態を表すデータを、所定の間隔で送受信させ、
前記アクセス状態を表すデータに基づいて、当該ファイルサーバの管理する前記１又は複数のファイルの管理主体を、動的に変更させる
ことを特徴とするファイル管理プログラム。
（付記２）　前記アクセス状態を表すデータは、所定の時間あたりの平均操作要求数を含む
ことを特徴とする付記１に記載のファイル管理プログラム。
（付記３）　前記アクセス状態を表すデータは、所定の時間あたりの平均転送速度を含む
ことを特徴とする付記１に記載のファイル管理プログラム。
（付記４）　前記ファイルシステムは、複数のファイルとその階層化情報である複数のディレクトリとからなり、頂点の１個のディレクトリの配下に複数のディレクトリにより複数のファイルを階層化している
ことを特徴とする付記１に記載のファイル管理プログラム。
（付記５）　前記ファイルサーバは、当該ファイルについての最初のアクセス時において、
クライアントの存在するコンピュータ上にファイルサーバが存在し、かつ、当該ファイルサーバが現在当該ファイルを管理しているファイルサーバと比べて前記アクセス状態を表すデータに基づいて性能的に余裕があると判断した場合、当該ファイルサーバに当該ファイルの管理の移管を要求し、
前記クライアントの存在するコンピュータ上にファイルサーバが存在しないが、前記アクセス状態を表すデータに基づいて性能的に余裕があるファイルサーバが他に存在すると判断した場合、当該余裕のあるファイルサーバに当該ファイルの管理の移管を要求する
ことを特徴とする付記１に記載のファイル管理プログラム。
（付記６）　前記クライアントの存在するコンピュータ上に存在するファイルサーバの前記アクセス状態を表すデータが、前記現在当該ファイルを管理しているファイルサーバの前記アクセス状態を表すデータよりも所定の値だけ優れている場合、当該データに余裕があるとされる
ことを特徴とする付記５に記載のファイル管理プログラム。
（付記７）　前記クライアントの存在するコンピュータ上にファイルサーバが存在しない場合、前記アクセス状態を表すデータに余裕があるファイルサーバは、前記アクセス状態を表すデータが最も優れているファイルサーバとされる
ことを特徴とする付記５に記載のファイル管理プログラム。
（付記８）　前記プログラムは、コンピュータに、更に、
前記アクセス状態を表すデータの送受信に基づいて、稼働状況テーブルを作成させ、
前記稼働状況テーブルに基づいて、前記アクセス状態を表すデータに余裕があるか否かを判断する
ことを特徴とする付記５に記載のファイル管理プログラム。
（付記９）　前記ファイルサーバは、当該ファイルについての高アクセス頻度時において、
クライアントの存在するコンピュータ上にファイルサーバが存在し、かつ、当該ファイルサーバが現在当該ファイルを管理しているファイルサーバと比べて前記アクセス状態を表すデータに余裕がある場合、当該ファイルサーバに管理の移管を要求する
ことを特徴とする付記１に記載のファイル管理プログラム。
（付記１０）　前記クライアントの存在するコンピュータ上に存在するファイルサーバの前記アクセス状態を表すデータが、前記現在当該ファイルを管理しているファイルサーバの前記アクセス状態を表すデータよりも所定の値だけ優れている場合、当該データに余裕があるとされる
ことを特徴とする付記９に記載のファイル管理プログラム。
（付記１１）　前記プログラムは、コンピュータに、更に、
前記ファイルサーバの管理する前記１又は複数のファイルの各々についての連続操作要求数及び連続転送要求量を記録させ、
前記連続操作要求数及び連続転送要求量が所定の値より大きい場合に、当該ファイルについての高アクセス頻度時であると判断させる
ことを特徴とする付記９に記載のファイル管理プログラム。
（付記１２）　前記プログラムは、コンピュータに、更に、
前記ストレージ装置におけるデータ格納領域を、前記複数のファイルサーバに予め分配して管理させ、
前記ファイルサーバは、各々、自己が管理するファイルに対してデータ格納領域を割り当てる場合、前記ストレージ装置における自己の管理する領域から、前記データ格納領域を割り当てる
ことを特徴とする付記１に記載のファイル管理プログラム。
（付記１３）　前記ファイルサーバは、前記自己の管理する領域が不足した場合、他のファイルサーバに依頼して、当該他のファイルサーバの管理する領域から自己が管理するファイルに対してデータ格納領域を割り当ててもらう
ことを特徴とする付記１２に記載のファイル管理プログラム。
（付記１４）　ファイルシステムを管理するファイル管理装置であって、
複数のファイル管理装置で共用可能なストレージ装置に設けられたファイルシステムにおける１又は複数のファイルを管理する管理手段と、
他のファイル管理装置との間で、各々のファイル管理装置の管理するファイルについてのアクセス状態を表すデータを、所定の間隔で送受信する通信手段と、
前記アクセス状態を表すデータに基づいて、自己の管理する前記１又は複数のファイルを、動的に変更する変更手段とを備える
ことを特徴とするファイル管理装置。
【００７２】
【発明の効果】
以上説明したように、本発明によれば、ファイル管理プログラムにおいて、ファイルサーバ間での通信により相互にアクセス状態を表すデータを送受信し、これに基づいて自己の管理するファイルを動的に変更するファイルサーバを実現することができる。これにより、局所的なアクセスの集中に対して、ファイルツリーを更に分割して、ファイルサーバの負荷を分散することができる。また、局所的なアクセスの集中に対応して、システム管理者の負担なしで、動的な負荷分散を実現することができる。更に、ファイル管理の動的変更により、どのクライアントも高速の応答が得られるファイルシステムを得ることができる。
【００７３】
また、本発明によれば、ファイル管理装置において、ファイル管理装置間での通信により相互にアクセス状態を表すデータを送受信し、これに基づいて、自己の管理するファイルを動的に変更する。これにより、前述のように、局所的なアクセスの集中に対して、ファイルツリーを更に分割して、ファイル管理装置の負荷を分散することができる。また、局所的なアクセスの集中に対応して、システム管理者の負担なしで、動的な負荷分散を実現することができる。更に、ファイル管理の動的変更により、どのクライアントも高速の応答が得られるファイルシステムを得ることができる。
【図面の簡単な説明】
【図１】ファイル管理システム構成図であり、本発明のファイル管理装置を備えるファイル管理システムの構成を示す。
【図２】ファイルサーバ構成図であり、本発明のファイル管理プログラムが実現するファイルサーバの構成を示す。
【図３】ファイル管理用制御表の一例を示す図である。
【図４】ファイル管理の説明図である。
【図５】他のファイル管理システム構成図である。
【図６】他のファイル管理システム構成図である。
【図７】ファイル管理処理フローであり、ファイル管理処理を示す。
【図８】ファイル管理処理フローであり、最初のアクセス時の判定処理を示す。
【図９】ファイル管理処理フローであり、高アクセス頻度時の判定処理を示す。
【図１０】ファイル管理処理フローであり、ファイル移管処理を示す。
【図１１】他のファイル管理システム構成図であり、本発明の他のファイル管理装置を備えるファイル管理システムの構成を示す。
【符号の説明】
１　　コンピュータ
２　　ファイルサーバ
３　　クライアント
４　　ストレージ装置
５　　ファイルシステム
６　　ネットワーク
２１　　管理手段
２２　　通信手段
２３　　変更手段
２４　　ファイル管理用制御表
２５　　定期送信情報
２６　　稼働状況テーブル
２７　　ファイルリスト
【図１】
2004139200.tif 000003
【図２】
2004139200.tif 000004
【図３】
2004139200.tif 000005
【図４】
2004139200.tif 000006
【図５】
2004139200.tif 000007
【図６】
2004139200.tif 000008
【図７】
2004139200.tif 000009
【図８】
2004139200.tif 000010
【図９】
2004139200.tif 000011
【図１０】
2004139200.tif 000012
【図１１】
2004139200.tif 000013