複数のホストコンピュータと、ネットワークと、それぞれ少なくとも1つ以上のファイルを格納する複数のファイルサーバとを備えるシステムにおいて、ファイルアクセスを管理する方法であって、前記ホストコンピュータの各々は、前記ネットワークを介して前記ホストコンピュータの前記各々に対応付けられたターゲットファイルサーバに接続され、かつ前記ファイルサーバのうちの1つに格納されたターゲットファイルにアクセスするために、ファイルアクセス要求を前記ターゲットファイルサーバに発行するものであり、前記ファイルサーバから負荷情報を収集することと、前記ターゲットファイル及び前記ターゲットファイルサーバの位置を特定することによって、前記負荷情報を分析することと、前記ファイルサーバ間で前記ターゲットファイルを再分散することと、前記ホストコンピュータと前記ターゲットファイルサーバとの間の接続を再割り当てすることとを含む、ファイルアクセス管理方法。前記ネットワークが、フロントエンドネットワークと、バックエンドネットワークとを備え、前記ホストコンピュータの前記各々が、前記フロントエンドネットワークを介して前記ターゲットサーバに前記ファイルアクセス要求を発行し、かつ前記ファイルサーバのうちの1つが、前記バックエンドネットワークを介して他のファイルサーバと通信する、請求項1に記載の方法。前記システムが、前記ネットワークを介して前記ホストコンピュータ及びファイルサーバと通信する管理コンピュータをさらに備える、請求項1に記載の方法。前記負荷情報の前記収集が、前記管理コンピュータで実行される、請求項3に記載の方法。前記負荷情報が、前記ホストコンピュータの前記各々の名前と、前記ターゲットファイルの名前と、転送サイズとを含む、請求項1に記載の方法。前記転送サイズが、前記ターゲットファイルへのアクセスについての前記ファイルアクセス要求の全体サイズである、請求項5に記載の方法。前記ホストコンピュータの前記各々が、ルートディレクトリと、少なくとも1つ以上のファイルを有するサブディレクトリとを含むファイルツリーを使用することによって、前記ターゲットファイルにアクセスする、請求項1に記載の方法。前記ターゲットサーバ以外のファイルサーバが前記ターゲットファイルを格納している場合、前記ターゲットサーバが、前記ファイルアクセス要求を前記ターゲットサーバ以外の前記ファイルサーバにリダイレクトする、請求項1に記載の方法。前記負荷情報が、前記ターゲットサーバの名前と、前記リダイレクトされたファイルサーバの名前とを含む、請求項5及び8に記載の方法。前記ターゲットファイルが、前記転送サイズに従って再分散される、請求項5に記載の方法。前記ターゲットファイルの前記再分散が、前記ターゲットファイルを前記ターゲットファイルサーバに移動することを含む、請求項8に記載の方法。前記再割り当てが、前記ホストコンピュータのうちの1つを前記ターゲットサーバ以外の前記ファイルサーバのうちの1つのファイルサーバに接続し、かつ前記ファイルサーバのうちの前記1つのファイルサーバを新規ターゲットファイルサーバとして指定することを含む、請求項1に記載の方法。複数のホストコンピュータと、ネットワークと、前記ネットワークを介して前記ホストコンピュータに接続される複数のファイルサーバであって、各ファイルサーバが、少なくとも1つ以上のファイルを格納する、複数のファイルサーバと、前記ネットワークを介して前記ホストコンピュータ及び前記複数のファイルサーバと通信する管理コンピュータとを含むシステムであって、前記複数のホストコンピュータの各々が、前記複数のファイルサーバのうちの1つに格納されたターゲットファイルにアクセスするために、ファイルアクセス要求をターゲットファイルサーバに発行するように構成され、前記管理コンピュータが、前記ファイルサーバから負荷情報を収集するように構成され、前記管理コンピュータが、前記ターゲットファイル及び前記ターゲットファイルサーバの位置を特定することによって、前記負荷情報を分析するように構成され、前記管理コンピュータが、前記ファイルサーバ間で前記ターゲットファイルを再分散するように構成され、かつ前記管理コンピュータが、前記ホストコンピュータと前記ターゲットファイルサーバとの間の接続を再割り当てするように構成される、システム。前記ネットワークが、フロントエンドネットワークと、バックエンドネットワークとを備え、前記ホストコンピュータの前記各々が、前記フロントエンドネットワークを介して前記ターゲットサーバにファイルアクセス要求を発行し、かつ前記ファイルサーバのうちの1つが、前記バックエンドネットワークを介して他のファイルサーバと通信する、請求項13に記載のシステム。前記負荷情報が、前記ホストコンピュータの前記各々の名前と、前記ターゲットファイルの名前と、転送サイズとを含む、請求項13に記載のシステム、前記ターゲットサーバ以外のファイルサーバが前記ターゲットファイルを格納している場合、前記ターゲットサーバが、前記ファイルアクセス要求を前記ターゲットサーバ以外の前記ファイルサーバにリダイレクトするように構成される、請求項13に記載のシステム。前記ターゲットファイルが、前記転送サイズに従って再分散される、請求項15に記載のシステム。前記ターゲットファイルの前記再分散が、前記ターゲットファイルを前記ターゲットファイルサーバに移動することを含む、請求項16に記載のシステム、前記再割り当てが、前記ホストコンピュータのうちの1つを前記ターゲットサーバ以外の前記ファイルサーバのうちの1つのファイルサーバに接続し、かつ前記ファイルサーバのうちの前記1つのファイルサーバを新規ターゲットファイルサーバとして指定することを含む、請求項13に記載のシステム、0020本発明の典型的な実施形態は、下記でより詳細に説明するように、ホストコンピュータとファイルサーバとの接続の間の負荷情報を特に考慮した、分散ファイルシステム環境におけるファイルアクセス管理方法及び方法を提供する。0021図1a、図1b、及び図1cは、本実施態様の方法が実施される情報システム概要100の一例を示す。図1aでは、複数のホストコンピュータ140A~140Cと、フロントエンドネットワーク150と、ストレージシステム110とが示される。基本的に、各ホストコンピュータ140A、B、又はCは、ストレージシステム110のユーザであり、ターゲットファイルへのアクセス要求を含むファイルI/Oを、ネットワークインタフェースI/F151A、B、又はCを使用して、そしてフロントエンドネットワーク150を介して、ターゲットファイルサーバ120A、B、又はCのそれぞれに発行する。0022ネットワークインタフェースについては、NFSネットワークファイルシステム、CIFSコモンインターネットファイルシステムCommonInternetFileSystem、及びAFPアップルファイリングプロトコルなどのファイルI/O用の共通プロトコルがいくつかある。さらに、各ホストコンピュータは、様々な目的で他のコンピュータと通信することができる。0023ストレージシステム110は、複数のファイルサーバ120A~120C、そしてオプションでバックエンドネットワーク152及び管理コンピュータ160を含む。ファイルサーバ120A~120Cは、フロントエンドネットワーク150を介してホストコンピュータ140A~140CからファイルI/Oを受信する。バックエンドネットワーク152が実装された場合、ファイルサーバ120は、ネットワークインタフェース151を使用してバックエンドネットワーク152を介して通信する。このネットワークは、データを移動するため、メタデータを交換するため、又は分散ファイルシステムを制御するために使用することもできる。そうでなければ、バックエンドネットワーク152の機能をフロントエンドネットワーク150にマージすることが可能である。0024図1bで示されるように、ファイルサーバ120Aは、例えば、CPU121と、メモリ122と、ストレージインタフェース131と、ネットワークインタフェース151とをさらに含む。また、ファイルサーバ120は、記憶媒体132を有し得る。CPU121は、メモリ122内のプログラムを実行する際に、ファイルサーバ120内のデバイスを制御する。メモリ122は、分散ファイルシステムプログラム123、ネットワークファイル処理プログラム124、及び負荷統計収集プログラム127などのいくつかのプログラムを格納する。また、メモリ122は、負荷統計125及びバッファキャッシュ126も格納する。特に、CPU121は、ファイルI/O要求を処理し、かつ分散ファイルシステムプログラム123を参照して、ストレージインタフェース131を介して接続される記憶媒体132A~132C又はストレージアレイ133からデータを読み出す/に書き込む。FCファイバチャネル、SATASerialAttachedTechnologyAttachment、SASSerialAttachedSCSI、IDEIntegratedDeviceElectronics、又は他のインタフェースは、CPU121とストレージインタフェース131との間の通信のために使用される。ファイルサーバ120は、HDDハードディスクドライブ、SSDソリッドステートドライブ、フラッシュメモリ、光ディスク、及び磁気テープ、並びにRAIDRedundantArrayofIndependentDisk技術によるそれらのアレイなどの多くの種類の記憶媒体を有することができる。ストレージアレイ133は、ファイルサーバ120並びに記憶媒体132の外部アレイとして使用することができる。CPU121は、メモリ122上に負荷統計125を作成かつ格納する。負荷統計125は、分散ファイルシステムプログラム123、ネットワークファイル処理プログラム124、及びファイルサーバ120からのその他のあらゆる状態を通して、ファイルサーバに位置するメモリ122に格納された負荷統計収集プログラム127によって収集される。各ファイルサーバ120は、ネットワークインタフェース151を有しているので、ネットワークインタフェース151を用いて他のファイルサーバ120、ホストコンピュータ140、及び管理コンピュータ160と通信することができる。0025図1cは、ストレージシステム100にオプションで含まれる、管理コンピュータ160の一例を示す。管理コンピュータ160は、CPU161と、メモリ162と、ネットワークインタフェース151とを含む。CPU161は、メモリ162内のプログラムを実行する際に、管理コンピュータ160内のデバイスを制御する。CPU161は、ファイルサーバ120から負荷統計125を、情報システム100のコンピュータからその他あらゆる情報を収集し、統計に基づいて分析を行い、負荷分析プログラム163を参照することによって、より良い負荷バランシングを達成するために計算する。分析及び計算の結果に基づいて、CPU161は、リソース再割り当てプログラム162を参照することによって、リソース再割り当てのためにファイルサーバ120間でファイルを移動するように、ファイルサーバ120に対して指示する。CPU161はさらに、接続再割り当てプログラム165を参照することによって、ホストコンピュータ140とファイルサーバとの間の接続を再割り当てするように、情報システム110のホストコンピュータ又は他の構成要素に対して指示する。これらのプログラムによって実行される機能は、異なる管理コンピュータ又はファイルサーバに位置する同じプログラムによって実行することができる。0026DFS分散ファイルシステムは、ある種のネットワークファイルシステムである。バックエンドネットワーク152を共有するファイルサーバ120が1つのファイルシステムを構築する場合、ファイルシステムは、ある種の分散ファイルシステムと見なされる。ファイルサーバ間でデータを分散させる方法について異なる種類のDFSがある。いくつかの実装では、ページ単位でデータを分散し得るが、一方、他の実装は、ディレクトリ単位で分散を行うか、各ファイルを複数のセグメントに分割してからファイルサーバ間でこのセグメントを分散し得る。本発明の実施形態はすべての種類のDFSに適用することができ、特定の種類のDFSに限定されないが、本実施形態は、ファイルサーバの間のファイル単位の分散及び移動をサポートするDFS、及びそのターゲットファイルへのアクセスのためにただ1つのファイルサーバをターゲットファイルサーバとしてこれにアクセスするDFSに焦点を当てる。0027図2は、本発明の実施形態のうちの1つのDFSの一例を示す。ファイルツリー200はファイル階層を示し、ファイルサーバ140に接続するホストコンピュータ120のいずれも、ファイルツリー200に示される任意のファイルにアクセスすることができる。ファイルツリー200は、ルート210とサブディレクトリ211、212、及び213とを有し、その各々は、ファイル1221、ファイル2222、及びファイル3223などの1つ以上のファイルを有する。本実施形態では、各ファイルは、ファイルサーバX230、Y231、又はZ233に格納される。例えば、ファイル1221パス名がrootdirAfile1は、ファイルサーバX230に格納される。DFSがファイル単位でデータを分散するので、同じディレクトリのファイル1221、ファイル2222、又はファイル3223は、異なるファイルサーバX230、Y231、又はZ232に分散されるが、ファイルサーバX230、Y231、又はZ232は、異なるディレクトリからのファイルを格納する。従って、1つのファイルサーバから他のファイルサーバにファイルを移動することができるが、ファイルツリーは、移動の有無にかかわらず同じままとなる。よって、ホストコンピュータ140には見えない状態で移動を実行することができる。0028図3は、ホストコンピュータがファイルサーバにおけるファイルへのアクセスを要求する、情報システム300の一例を示す。図3は特に、インバンドアプローチを示している。各ホストサーバ310、311、又は312は、ファイルI/O要求ファイルアクセス要求を1つのファイルサーバ例えば、図3のファイルサーバ230に発行する。どのファイルサーバが各ホストコンピュータに接続されるかは、分散ファイルシステムに依存する。例えば、ホストコンピュータA310は、そのターゲットファイルサーバがファイルサーバX230となるように選択することができる。別の例としては、DNSドメインネームシステムサーバなどの外部サーバが、ホストコンピュータがどのファイルサーバに接続すべきかを回答するということである。0029ファイルサーバX230、Y231、及びZ232は、各ファイルサーバがどのファイルを管理するかについての情報を交換するため、かつクライアントホストコンピュータにファイルツリー全体を示すために互いに通信する。従って、ホストコンピュータA310は、どのファイルがファイルサーバX230、Y231、及びZ232に格納されているかを知っている。ホストコンピュータA310がファイル331rootdirAfile1に対するファイルI/O要求340ファイルアクセス要求を発行した場合、要求を受信するファイルサーバX230は、ターゲットファイル331を有し、従って、直ちにターゲットファイル331をホストコンピュータA310に返信することができる。しかし、ホストコンピュータA310がファイル333rootdirAfile3に対するファイルI/O要求340を発行した場合、受信するファイルサーバX230がターゲットファイル331を有していないので、矢印341で示されるように、バックエンドネットワーク152を介して、ターゲットファイル333を格納するファイルサーバY231にI/O要求をリダイレクトする。その後、ファイルサーバY231は、要求を処理し、ファイルサーバX230に応答し、次にファイルサーバX230は、この応答を要求元のホストコンピュータA310にリダイレクトする。0030図4aは、負荷統計のための接続テーブル400の一例を示す。図1cの管理コンピュータ160の負荷分析プログラム163は、負荷分析のための情報を収集する。接続テーブルは、どのホストコンピュータホスト名401で示されるがどのファイルサーバターゲットファイルサーバ402で示されるに接続するかを示す。図4bは、各ホストコンピュータからのファイルアクセスのファイルアクセス統計を示すファイルアクセスログ410を示す。ファイルアクセスログは、ホスト名411ホストコンピュータを示す、ターゲットファイルサーバ412ホストコンピュータがターゲットとして通信するファイルサーバを示す、リダイレクトされたファイルサーバ413ホストコンピュータのターゲットファイルを格納し、かつホストコンピュータからのファイルアクセス要求がリダイレクトされる先のファイルサーバ、ファイル名414ホストコンピュータのターゲットファイル名、及び転送サイズ415ファイルのついてのI/Oの全体サイズを含むが、これらに限定されないエントリを有する。ターゲットファイルサーバ412エントリ及びリダイレクトされたファイルサーバ413エントリは、オプションとして含めることができる。なぜならば、接続テーブル400を参照することによってターゲットファイルサーバを知ることが容易だからであり、かつどのファイルサーバがターゲットファイルを格納しているかを知ることによって、リダイレクトされたファイルサーバを知ることが容易だからである。また、ファイルサーバ120のリソース使用CPU負荷及びメモリ使用など、又はフロントエンドネットワーク150のスループットは、負荷情報として含めることができる。0031図5は、本発明の実施形態の1つに従った負荷バランシングプロセスのフローチャート500を示す。管理コンピュータ160の負荷分析プログラム163は、管理者によって指定されたタイミングで、周期的に、又は負荷飽和などのいくつかのイベントが情報システムで生じた時に、負荷バランシング分析を実行する。0032プロセスの最初に、負荷分析プログラム163は、図5で示される情報など、ファイルサーバから負荷統計を収集するステップ510。ステップ520では、負荷分析プログラム163は、ファイルサーバから収集された負荷統計に基づいた負荷最適化を実行する。特に、負荷分析プログラム163は、ファイルサーバX230、Y231、及びZ232の間で負荷を分散し、かつストレージシステムの合計負荷を下げるために、接続テーブル400及びファイルアクセスログ410を参照して、ホストコンピュータによってターゲットされる各ファイル、及びターゲットファイルサーバの位置を特定する。0033ステップ530では、負荷分析プログラム163は、リソース再割り当てを実行する。特に、リソース再割り当てプログラム164は、ステップ520で実行された負荷最適化の結果を受信した後、リソースを再割り当てする。この実施形態では、リソース再割り当ては、ファイルサーバX230、Y231、及びZ232の間のファイル移動を意味する。0034ステップ540では、負荷分析プログラム163は、ホストコンピュータA310、B311、及びC312と、ターゲットファイルサーバX230、Y231、及びZ232との間の接続の再割り当てを実行する。特に、接続再割り当てプログラム165は、リソース再割り当ての結果を受信した後、ホストコンピュータA310、B311、及びC312と、ターゲットファイルサーバX230、Y231、及びZ232との間の接続を再割り当てする。この場合、接続再割り当てプログラム165は、ホストコンピュータ、ファイルサーバ、及び/又は接続を管理するその他あらゆるコンピュータDNSなどと通信し、これらへの接続の変更の要求を発行する。0035図6及び図7は、負荷バランシングがどのように実行されるかをより詳細に示すための一例を示す。図6aは、ホストコンピュータがファイルサーバにおけるファイルへのファイルアクセスを要求する、情報システム600の別の例を示す。例示されたシステムでは、ホストコンピュータA601a及びホストコンピュータB601bはファイルサーバX602aに、ホストコンピュータC601c及びホストコンピュータD601dはファイルサーバY602bに、それぞれアクセスする。ファイルサーバX602aは、ファイルa603a、ファイルb603b、及びファイルc603cを格納し、ファイルサーバY602bは、ファイルd603d、ファイルe603e、及びファイルf603fを格納する。実線604a及び604bは、ホストコンピュータA604a及びホストコンピュータB604bがファイルサーバX602aへのアクセス要求を発行し、ホストコンピュータC604c及びホストコンピュータD604dがファイルサーバY602bへのアクセス要求を発行することを示し、点線は、各ホストコンピュータがターゲットファイル単数又は複数へのファイルアクセス要求を発行することを示す。0036図6bは、情報システム600のために使用される接続テーブル660を示す。接続テーブル660は、どのホストコンピュータホスト名401で示されるがどのファイルサーバターゲットファイルサーバ402で示されるに接続するかを示す。図6cは、各ホストコンピュータからのファイルアクセスのためのファイルアクセス統計を示す、ファイルアクセスログ670を示す。ファイルアクセスログは、ホスト名411ホストコンピュータを示す、ターゲットファイルサーバ412ホストコンピュータがターゲットとして通信するファイルサーバを示す、リダイレクトされたファイルサーバ413ホストコンピュータのターゲットファイルを格納し、かつホストコンピュータからのファイルアクセス要求がリダイレクトされる先のファイルサーバ、ファイル名414ホストコンピュータのターゲットファイル名、及び転送サイズ415ファイルのついてのI/Oの全体サイズを含むエントリを有する。ターゲットファイルサーバ412エントリ及びリダイレクトされたファイルサーバ413エントリは、オプションとして含むことができる。なぜならば、接続テーブル660を参照することによってターゲットファイルサーバを知ることが容易だからであり、かつどのファイルサーバがターゲットファイルを格納しているかを知ることによって、リダイレクトされたファイルサーバを知ることが容易だからである。0037簡単にするために、この例では、各ファイル603a~603fのサイズが同じであることを想定している。この状況では、一見すると、負荷は良好にバランスが取れているように見える。なぜなら、各ファイルサーバX602a又はY602bが同じ数のファイル3個のファイルを有し、同じ数のホストコンピュータ2台からI/O要求を受信しているからである。しかし、図6a及びファイルアクセスログ670で示されるように、3つのノード間通信が残っている。ファイルアクセスログ670では、エントリ671c、671d、及び671eは、ターゲットファイルサーバ412とリダイレクトされたファイルサーバ413との間の違いを示し、ノード間通信を示している。これらのエントリは、ノード間通信の全体サイズが現在100MB/分であることを示す。0038図5の上述の負荷最適化ステップ520では、負荷分析プログラム163は、ノード間通信を減らすことによって負荷最適化を実行し得る。負荷最適化を実行する例の1つとして、ブルートフォース法が実施され得る。この方法では、負荷分析プログラム163は、各割り当てパターンを計算し、最良の結果を選択する。図6aでは、ホストコンピュータA601a~ホストコンピュータD601dがそれぞれファイルサーバX602a又はファイルサーバY602bに接続し、ファイルa603a~ファイルf603fがそれぞれファイルサーバX602a又はファイルサーバY602bに配置されていると想定しており、ホストコンピュータ/ファイルサーバ接続パターンは16となり、ファイル割り当てパターンは64となり、従って1024のパターンが得られる。負荷分析プログラム163は、例えば、各パターンの転送サイズを分析し、すべての中から最良のものを選択する。このアプローチは、接続/割り当てのパターンがそれほど多くない場合に効果的であるが、パターンが多く、ホストコンピュータ、ファイルサーバ、及びファイルの数が増えるにつれて複雑さが増す場合は不適当である。0039負荷最適化を実行するための別のアプローチとして、複雑さが増す場合に、近似解法が有用となり得る。近似解法に従って、負荷分析プログラム163は、相互接続の数を少なくする。図7aは、ホストコンピュータがファイルサーバにおけるファイルへのファイルアクセスを要求する、情報システム700のさらに別の例を示す。図7aでは、ホストコンピュータB701bは、今度はファイルサーバY702bに接続し、ホストコンピュータC701cは、ファイルサーバX702aに接続する。ファイルc703cは、ファイルサーバY702bに移動され、ファイルe703eは、ファイルサーバXに移動される。この実施形態では、図7aのホストコンピュータとターゲットファイルサーバとの間の接続の数は、図6aのシステムにおける接続の数と同じであり、図7aでファイルサーバ毎に割り当てられるファイルの数も、図6aにおけるファイルの数と同じである。しかし、図7aのファイルサーバ間の相互接続の数は、図6aよりも少ない。図7aは、ファイルサーバX702aとファイルサーバY702bとの間のただ1つの相互接続を示す。0040図7bは、情報システム700のために使用される接続テーブル760を示す。接続テーブル760は、どのホストコンピュータホスト名401で示されるがどのファイルサーバターゲットファイルサーバ402で示されるに接続するのかを示す。図7cは、各ホストコンピュータからのファイルアクセスのためのファイルアクセス統計を示す、ファイルアクセスログ770を示す。ファイルアクセスログは、ホスト名411ホストコンピュータを示す、ターゲットファイルサーバ412ホストコンピュータがターゲットとして通信するファイルサーバを示す、リダイレクトされたファイルサーバ413ホストコンピュータのターゲットファイルを格納し、かつホストコンピュータからのファイルアクセス要求がリダイレクトされる先のファイルサーバ、ファイル名414ホストコンピュータのターゲットファイル名、及び転送サイズ415ファイルについてのI/Oの全体サイズを含むエントリを有する。ターゲットファイルサーバ412エントリ及びリダイレクトされたファイルサーバ413エントリは、オプションとして含むことができる。なぜなら、接続テーブル760を参照することによってターゲットファイルサーバを知ることが容易だからであり、かつどのファイルサーバがターゲットファイルを格納しているかを知ることによって、リダイレクトされたファイルサーバを知ることが容易だからである。図7cは、ターゲットファイルサーバエントリ412にリストされたターゲットファイルサーバが、リダイレクトされたファイルサーバエントリ413にリストされたファイルサーバと基本的に同じであることを示す。本実施形態は、ファイルサーバ間の相互接続の数を減らすことによって、ファイルサーバX702a及びY702bの合計負荷の削減を達成する。