(57)【要約】【課題】特定の装置へ負荷を集中させることなく、効率よく短時間にファイルを複製または移動させる。【解決手段】最終解を導くステップを複数に分解し、それぞれの解を同様の手順で求めることにより、簡単なプログラムで解を得ることができ、特定の装置へ負荷を集中させることなく、効率よく短時間にファイルを複製または移動させることができる。【選択図】図１
2010218335.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルサーバと、インデックスサーバと、クライアントサーバとがネットワークを介して接続され、前記インデックスサーバが、複数のファイルサーバにあるファイルを一元的に管理するファイル保存システムであって、
前記インデックスサーバは、ファイルサーバ間でのファイルの複製開始に先立ち複数ファイルの複製先を決め、前記複数ファイルの複製元を決め、前記複数ファイルの複製順を決め、前記複製元、前記複製先、及び前記複製順を示すスケジュールリストを複製対象ファイルサーバへ送信し、複製の実行を指示することを特徴とするファイル保存システム。
【請求項２】
ネットワークで接続された複数のファイルサーバに分散してファイルを保存するシステムにおける、複数のファイルサーバにあるファイルを一元的に管理するインデックスサーバのファイル保存方法であって、
ファイルサーバ間でのファイルの複製開始に先立ち複数ファイルの複製先を決めるステップと、
前記複数ファイルの複製元を決めるステップと、
前記複数ファイルの複製順を決めるステップと、
前記複製元、前記複製先、及び前記複製順を示すスケジュールリストを複製対象ファイルサーバへ送信し、複製の実行を指示するステップと、を有することを特徴とするファイル保存方法。
【請求項３】
ファイルの場所や複製の順番を示すパターンデータを所定の操作で複数生成するステップと、
前記パターンデータを相対的に評価するステップと評価の良いパターンデータを選出するステップと、
前記各ステップを所定の回数繰り返すことで前記複製先、前記複製元、及び前記複製順を決めるステップと、を有することを特徴とする請求項２に記載のファイル保存方法。
【請求項４】
全複製ファイルの合計ファイルサイズをファイルサーバの数で割った平均複製データ量を計算するステップと、
各ファイルサーバでの複製先ファイルの合計ファイルサイズと前記平均複製データ量との差分サイズを計算するステップと、
各ファイルサーバの前記差分サイズの合計値を小さくすることで複製されるファイルの合計ファイルサイズが各ファイルサーバ間で均等になるように複製先を決めるステップと、を有することを特徴とする請求項３に記載のファイル保存方法。
【請求項５】
全複製ファイルの合計ファイルサイズをファイルサーバの数で割った平均複製データ量を計算するステップと、
各ファイルサーバでの複製元ファイルの合計ファイルサイズと前記平均複製データ量との差分サイズを計算するステップと、
各ファイルサーバの前記差分サイズの合計値を小さくすることで複製するファイルの合計ファイルサイズが各ファイルサーバ間で均等になるように複製元を決めるステップと、を有することを特徴とする請求項３に記載のファイル保存方法。
【請求項６】
順番に複製するファイルのサイズを複製元及び複製先に加算するステップと、
前記加算の前に複製元と複製先とで既に加算したファイルサイズの合計が異なる場合はその差分のファイルサイズを小さい方へ加算するステップと、
全複製ファイルについて計算を行った結果、各ファイルサーバで比較した最大値を小さくするように複製順を決めるステップと、を有することを特徴とする請求項２に記載のファイル保存方法。
【請求項７】
１つのファイルを複数のファイルサーバへ保存するステップと、
ファイルサーバに障害が発生したことを検出するステップと、
障害の発生したファイルサーバが保有していたファイルと同じファイルを複製することで冗長度を自動的に回復するステップと、を有することを特徴とする請求項２に記載のファイル保存方法。
【請求項８】
単位時間のファイル読み出し回数を記録するステップと、
前記読み出し回数とファイルサイズでそのファイルの負荷を計算するステップと、
保有するファイルの負荷からファイルサーバの負荷を計算するステップと、
ファイル複製後に複製元のファイルを削除するステップと、
ファイルサーバの負荷が均衡するようにファイルを移動させるステップと、を有することを特徴とする請求項２に記載のファイル保存方法。
【請求項９】
ネットワークで接続された複数のファイルサーバに分散してファイルを保存するシステムにおける、複数のファイルサーバにあるファイルを一元的に管理するプログラムであって、
インデックスサーバに、
ファイルサーバ間でのファイルの複製開始に先立ち複数ファイルの複製先を決める手順、
前記複数ファイルの複製元を決める手順、
前記複数ファイルの複製順を決める手順、
前記複製元、前記複製先、及び前記複製順を示すスケジュールリストを複製対象ファイルサーバへ送信し、複製の実行を指示する手順、を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで接続された複数のファイルサーバに分散してファイルを保存するシステムであって、特定の装置へ負荷を集中させることなく、効率よく短時間にファイルを複製または移動する技術に関する。
【背景技術】
【０００２】
従来、ネットワークで接続された複数のファイルサーバに分散してファイルを保存するシステムにおいてファイルの保全性や冗長性を確保する手段として１つのファイルを複製して複数のファイルサーバに保存する方法が知られている。
【０００３】
特許文献１にはファイルサーバの故障により冗長度が低下した場合には故障したファイルサーバが保有していたファイルと同じファイルを保有するファイルサーバから保有しないファイルサーバへ複製することで冗長度を回復する技術が記載されている。
１台のファイルサーバが主体となってファイルの複製を行う場合はネットワーク上を流れるトラフィックを抑制することができ、ファイルを保有する複数のファイルサーバが主体となって同時並行的に複製を行う場合はて主体がシステム内に分散することとなり、負荷の集中を抑制することが可能となるとしている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ファイルサーバの故障により低下した冗長度を回復する場合、通常、ファイルサーバ間で大量のファイル複製処理が発生すると同時にシステムの信頼性を維持するために短時間のファイル複製処理が必要となる。
【０００５】
しかし一般的にはシステム全体を管理するサーバが複製可能なファイルを順番に実行するといった単純な処理を行っており、複製実行サーバを経由するデータ転送や処理の一極集中により、効率的な複製処理が行われていないといった問題があった。
【０００６】
これに対し特許文献１は、保有しているファイルに応じて冗長度を回復させるファイルサーバを複数設定することで負荷の集中を抑制した複製処理技術を開示している。
【０００７】
ところが、複数のファイルサーバが個別に複製先を決定し、個別に複製処理を行うため、他のファイルサーバと処理がバッティングし効率的な複製処理ができないといった問題があった。
【０００８】
そこで、本発明は、特定の装置へ負荷を集中させることなく、効率よく短時間にファイルを複製または移動させることを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、請求項１に記載の発明は、複数のファイルサーバと、インデックスサーバと、クライアントサーバとがネットワークを介して接続され、前記インデックスサーバが、複数のファイルサーバにあるファイルを一元的に管理するファイル保存システムであって、前記インデックスサーバは、ファイルサーバ間でのファイルの複製開始に先立ち複数ファイルの複製先を決め、前記複数ファイルの複製元を決め、前記複数ファイルの複製順を決め、前記複製元、前記複製先、及び前記複製順を示すスケジュールリストを複製対象ファイルサーバへ送信し、複製の実行を指示することを特徴とする。
【００１０】
請求項２に記載の発明は、ネットワークで接続された複数のファイルサーバに分散してファイルを保存するシステムにおける、複数のファイルサーバにあるファイルを一元的に管理するインデックスサーバのファイル保存方法であって、ファイルサーバ間でのファイルの複製開始に先立ち複数ファイルの複製先を決めるステップと、前記複数ファイルの複製元を決めるステップと、前記複数ファイルの複製順を決めるステップと、前記複製元、前記複製先、及び前記複製順を示すスケジュールリストを複製対象ファイルサーバへ送信し、複製の実行を指示するステップと、を有することを特徴とする。
【００１１】
請求項３に記載の発明は、請求項２に記載の発明において、ファイルの場所や複製の順番を示すパターンデータを所定の操作で複数生成するステップと、前記パターンデータを相対的に評価するステップと評価の良いパターンデータを選出するステップと、前記各ステップを所定の回数繰り返すことで前記複製先、前記複製元、及び前記複製順を決めるステップと、を有することを特徴とする。
【００１２】
請求項４に記載の発明は、請求項３に記載の発明において、全複製ファイルの合計ファイルサイズをファイルサーバの数で割った平均複製データ量を計算するステップと、各ファイルサーバでの複製先ファイルの合計ファイルサイズと前記平均複製データ量との差分サイズを計算するステップと、各ファイルサーバの前記差分サイズの合計値を小さくすることで複製されるファイルの合計ファイルサイズが各ファイルサーバ間で均等になるように複製先を決めるステップと、を有することを特徴とする。
【００１３】
請求項５に記載の発明は、請求項３に記載の発明において、全複製ファイルの合計ファイルサイズをファイルサーバの数で割った平均複製データ量を計算するステップと、各ファイルサーバでの複製元ファイルの合計ファイルサイズと前記平均複製データ量との差分サイズを計算するステップと、各ファイルサーバの前記差分サイズの合計値を小さくすることで複製するファイルの合計ファイルサイズが各ファイルサーバ間で均等になるように複製元を決めるステップと、を有することを特徴とする。
【００１４】
請求項６に記載の発明は、請求項２に記載の発明において、順番に複製するファイルのサイズを複製元及び複製先に加算するステップと、前記加算の前に複製元と複製先とで既に加算したファイルサイズの合計が異なる場合はその差分のファイルサイズを小さい方へ加算するステップと、全複製ファイルについて計算を行った結果、各ファイルサーバで比較した最大値を小さくするように複製順を決めるステップと、を有することを特徴とする。
【００１５】
請求項７に記載の発明は、請求項２に記載の発明において、１つのファイルを複数のファイルサーバへ保存するステップと、ファイルサーバに障害が発生したことを検出するステップと、障害の発生したファイルサーバが保有していたファイルと同じファイルを複製することで冗長度を自動的に回復するステップと、を有することを特徴とする。
【００１６】
請求項８に記載の発明は、請求項２に記載の発明において、単位時間のファイル読み出し回数を記録するステップと、前記読み出し回数とファイルサイズでそのファイルの負荷を計算するステップと、保有するファイルの負荷からファイルサーバの負荷を計算するステップと、ファイル複製後に複製元のファイルを削除するステップと、ファイルサーバの負荷が均衡するようにファイルを移動させるステップと、を有することを特徴とする。
【００１７】
請求項９に記載の発明は、ネットワークで接続された複数のファイルサーバに分散してファイルを保存するシステムにおける、複数のファイルサーバにあるファイルを一元的に管理するプログラムであって、インデックスサーバに、ファイルサーバ間でのファイルの複製開始に先立ち複数ファイルの複製先を決める手順、前記複数ファイルの複製元を決める手順、前記複数ファイルの複製順を決める手順、前記複製元、前記複製先、及び前記複製順を示すスケジュールリストを複製対象ファイルサーバへ送信し、複製の実行を指示する手順、を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、最終解を導くステップを複数に分解し、それぞれの解を同様の手順で求めることによって簡単なプログラムで解を得ることができ、得られた解に基づいて作成したスケジュールリストに従って複数のファイルサーバが同期的に動作するので、特定の装置へ負荷を集中させることなく、効率よく短時間にファイルを複製または移動させることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明に係るファイル保存方法を適用したファイル保存システムの全体構成の一例を示す図である。
【図２】図１に示したインデックスサーバの構成の一例を示す図である。
【図３】本発明に係るファイル保存システムにおけるシステム全体の動作の一例を示す図である。
【図４】図３に示したインデックスサーバのフローチャートの一例を示す図である。
【図５】本発明に係るファイル保存方法の他の実施形態を示すフローチャートの一例である。
【図６】（ａ）は複製ファイルとファイルサーバとの対応関係を示し、（ｂ）に示すパターンデータ２は複製順を決めるときのパターンデータであり、複製実行順を示す順列に複製ファイルを並べた順列番号を与えたものである。
【図７】本発明に係るファイル保存方法の他の実施形態を示すフローチャートの一例である。
【図８】本発明に係るファイル保存方法の他の実施形態を示すフローチャートの一例である。
【図９】本発明に係るファイル保存方法を適用したシステムの他の実施の形態を示す概念図の一例である。
【図１０】図９に示したインデックスサーバのフローチャートの一例である。
【図１１】本発明に係るファイル保存方法の他の実施の形態を説明するフローチャートの一例である。
【発明を実施するための形態】
【００２０】
＜第１の実施形態＞
図１に本発明に係るファイル保存方法を適用したファイル保存システムの全体構成の一例を示す。
ファイル保存システムの基本的な構成は、複数のファイルサーバ１〜６と、１台のインデックスサーバ７と、クライアントサーバ８とを有し、これら各サーバ１〜８は互いにネットワーク９で接続された構成である。
ネットワーク９は、代表的なイーサネット（登録商標）を主に想定するが、特定の通信システムに限定されるものではない。
【００２１】
クライアントサーバ８は、インデックスサーバ７やファイルサーバ１〜６と通信を行い、ファイル保存システムを形成するためのソフトウェアを搭載したアプリケーションサーバを主に想定するが、ネットワークストレージとしてアクセスするソフトウェアを搭載したユーザコンピュータであってもよい。図１中のクライアントサーバ８の数は１台であるが複数のクライアントサーバ８を接続することでファイルを共有することができる。
【００２２】
クライアントサーバ８がファイルを保存するときの動作を簡単に説明する。
（１）クライアントサーバ８は、保存したいファイルのディレクトリパスやファイル名やファイルサイズなどの情報をインデックスサーバ７へ通知する。
（２）インデックスサーバ７は、保存するファイルサーバ（例えば、ファイルサーバ１）を決定し、クライアントサーバ８へ通知する。
（３）クライアントサーバ８は、指定されたファイルサーバ１へファイル保存要求と共にファイルを送信する。
（４）ファイルサーバ１は、ファイルの保存が完了したらインデックスサーバ７へファイルの保存完了を通知する。
【００２３】
続いてファイルの冗長化処理を行うには次の動作を行う。
（５）インデックスサーバ７―１はファイルの複製を保存するファイルサーバ１〜６を決定し複製実行要求と共にファイルサーバ１へ通知する。
（６）ファイルサーバ１は指定されたファイルサーバ３へファイル保存要求と共にファイルデータを送信する。
（７）ファイルサーバ３はファイルの保存が完了したらインデックスサーバ７へファイルの保存完了を通知する。
【００２４】
以上のようにインデックスサーバ７は、複数のファイルサーバ１〜６に保存するファイルを一元的に管理し、どのファイルがどのファイルサーバにあるかを常に把握している。
【００２５】
図１に示したインデックスサーバ７の構成の一例を図２に示す。
インデックスサーバ７のハードウェアは、一般的なコンピュータ装置と同じであり、プログラムを実行するＣＰＵ１０、実行時のプログラムやデータを保持するメモリ１１、メモリ１１に入り切らないデータを保持したり、非実行時のプログラムやデータを保存したりするＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）１３、ネットワーク通信を行うＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）を備える。そしてメモリ１１またはＨＤＤ１３にファイル管理テーブル１４及びファイルサーバテーブル１５が作成される。
【００２６】
ファイル管理テーブル１４の例を表１に示す。
【００２７】
【表１】
2010218335.tif 000003
【００２８】
表１は、ファイルＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）、ファイル名、ファイルサイズ、及びファイルサーバＩＤを列記したものである。
ファイルＩＤは全てのファイルに対するユニークな番号としてインデックスサーバ７（図１）が付与したもので、システム内でファイルはこの番号で識別される。
ファイル名はディレクトリパスを含む形で表現されファイルＩＤと対応付けられる。ファイルサーバＩＤは、そのファイルを実際に保存しているファイルサーバがどれかを示すもので、システムで同じファイルを複数保存している場合は複数のＩＤが並ぶ。このファイルサーバＩＤとＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの対応表が表２に示したファイルサーバテーブルである。
【００２９】
【表２】
2010218335.tif 000004
【００３０】
ファイルサーバの状態はファイルサーバが正常に動作しているか否かを示す。ファイルサーバをＩＰアドレスではなくＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）に登録されたホスト名で管理する方法もある。
【００３１】
本発明に係るファイル保存システムにおけるシステム全体の動作の一例を図３に示し、図３に示したインデックスサーバのフローチャートの一例を図４に示す。例えばこれはファイルの冗長度を確保するために所定の数だけファイルを複製して保存するにあたり、夜間の通信トラフィックが低い時間帯など定期的にまとめて作業を行うのに好適である。
最初にインデックスサーバ７は、冗長度が不足しているファイルを選出し、複製を行うファイルの決定を行う（ステップＳ１）。冗長度が不足しているか否かの判断はファイル管理テーブル１４を参照し同じファイルが何台のファイルサーバにあるかを判断することによって行われる。
インデックスサーバ７は、複製ファイルの決定を行った後、「所定の条件」に従い、複製先ファイルサーバの決定を全ての複製ファイルについて行う（ステップＳ２）。ここでの「所定の条件」とは、例えば、複製先ファイルサーバが複製ファイルを保有していないこと、各複製先ファイルサーバに送信する複製ファイルの合計サイズが複製先ファイルサーバ間でなるべく均等にすること、である。「複製先ファイルサーバが複製ファイルを保有していない」ことを条件とすることで、複製ファイルを１のファイルサーバに重複してしまうことを防ぐことができる。また、「各複製先ファイルサーバに送信する複製ファイルの合計サイズが複製先ファイル間でなるべく均等にする」ことを条件とすることで、複数のファイルについて複製ファイルを作成する際に、特定の複製先ファイルサーバに送信する複製ファイルの合計サイズが集中することを防ぐことができる。これらの例示した条件はシステム要件や運用ポリシーによって簡単に変えることができるので、柔軟なシステム構築が可能である。
【００３２】
続いてインデックスサーバ７は、「所定の条件」に従い、複製先ファイルサーバの決定を全ての複製ファイルについて行う。ここでの「所定の条件」とは複製ファイルの合計サイズを複製元ファイルサーバ間でなるべく均等にすることである。
【００３３】
インデックスサーバ７は、複製先と複製元とを決定し（ステップＳ３，Ｓ４）、複製完了時間が最短になるように、複製ファイルの複製実行順序を決定し、最後に複製スケジュールリストを作成する（ステップＳ５）。
【００３４】
表３に、ステップＳ５で作成される複製スケジュールリストの例を示す。
【００３５】
【表３】
2010218335.tif 000005
【００３６】
これは各ファイルサーバがこの複製スケジュールリストを参照して複製を実行することで、互いにタイミング的な同期をとり、効率的な複製を行うためのものである。実行番号は複製を実行する優先順位を示す。例えば実行番号１と３は複製元が同じなのでＦＩＤ００００００１０のファイルの複製が終了しないとＦＩＤ００００００１２のファイルの複製が開始されない。
【００３７】
表３の複製元と複製先とにはファイルサーバＩＤが入る。このまま複製スケジュールリストを送るとファイルサーバ側にも表２に示すようなファイルサーバＩＤとＩＰアドレスの変換テーブルが必要になるので、ファイルサーバ側にそれを持たせたくない場合はファイルサーバＩＤ でなくＩＰアドレスにする。
【００３８】
表４は、表３の複製スケジュールリストを実行した時の各ファイルサーバのタイムチャートを示している。
【００３９】
【表４】
2010218335.tif 000006
【００４０】
複製１，２，３は複製スケジュールリストの実行番号１，２，３に該当し、右矢印は複製ファイルの読み出しで、左矢印は複製ファイルの書き込みを示す。例をあげるとファイルサーバＳＩＤ００００１は実行番号１の複製１が終了するまで待機していて、その後実行番号３の複製３を実行する。
【００４１】
インデックスサーバ７は、複製スケジュールリストを作成すると、これを複製先、複製元として対象となるファイルサーバへ送信し（ステップＳ６）、複製実行の開始指示を行う（ステップＳ７）。
複製スケジュールリストを送信する際はファイルサーバ毎にそのファイルサーバが複製に関係する実行番号のレコードを抜き出して送信しても良い。
【００４２】
＜第２の実施形態＞
複製先の決定、複製元の決定、複製順の決定などを示す複製スケジュールリストの作成は、ファイルサーバの数や複製ファイルの数が多いと、解となる組み合わせが非常に多くなるため、単純計算で解を求めることが難しくなる。そこで、有効な解を短時間に求めることができる方法について説明を行う。
図５、６及び表５を用いて、第２の実施形態について説明する。
図５は、第２の実施形態に係るファイル保存方法を示すフローチャートの一例である。
【００４３】
インデックスサーバ７は、パターンデータを所定の数だけ生成する（ステップＳ１１）。この数は必要な解の精度と計算時間とにより調整される値であるが１０００個程度用意すると良い結果が得られる。図６（ａ）にパターンデータの例を示す。
【００４４】
図６（ａ）、６（ｂ）に、パターンデータの例を示す。
図６（ａ）に示すパターンデータ１は、複製先や複製元を決めるときのパターンデータであり、複製ファイルを並べた順列にファイルサーバを並べた順列番号を与えたものである。図６（ａ）は複製ファイルとファイルサーバとの対応関係を示す。
また図６（ｂ）に示すパターンデータ２は複製順を決めるときのパターンデータであり、複製実行順を示す順列に複製ファイルを並べた順列番号を与えたものである。これは複製実行順と複製ファイルとの対応関係を示す。
【００４５】
続いてインデックスサーバ７は、パターンデータを生成したら全てのパターンデータに対し評価値を計算する（ステップＳ１２）。この評価値は、複製先、複製元、及び複製順の決定条件にどれだけ近いかを示す指標である。
インデックスサーバ７は、評価値を計算したら評価値の良いパターンデータを所定の数だけ選出する（ステップＳ１３）。
この数は必要な解の精度と計算時間とにより調整される値であり、表５に示すように評価値の良い順にパターンデータを並べたテーブルを作成して、上位１００個程度を選出すると良い結果が得られる。
【００４６】
【表５】
2010218335.tif 000007
【００４７】
インデックスサーバ７は、パターンデータを選出したら評価値の良いパターンデータをベースに新たなパターンデータを所定の数だけ生成する（ステップＳ１４）。
この数は選出されずに残ったパターンデータの数とする。新たなパターンデータは評価値の良いパターンデータをランダムに２個選び、その前半と後半のパターンをランダムな位置で結合することにより、新たなパターンデータを生成すると良い結果が得られる。そしてこれらのステップをパターンデータの評価値を計算するところまで戻り所定回数繰り返す（ステップＳ１５）。この数は必要な解の精度と計算時間により調整される値で１００回程度繰り返すと良い結果が得られる。
【００４８】
＜第３の実施形態＞
第３の実施形態に係るファイル保存方法について説明を行う。
ファイルの複製を効率よく短時間に行うためには複製ファイルのデータ量がファイルサーバ間で均等であることが望ましい。これは、ファイルの複製をファイルサーバ間に均等に分散させることで、複製に掛かる時間を分散させることができるからである。
図７は、第３の実施形態に係る、複製先、複製元を決めるための評価値計算を示すフローチャートであり、図５のフローチャートにおけるステップＳ１２で実行可能な処理である。
【００４９】
インデックスサーバ７は、まず全複製ファイルの合計ファイルサイズを計算し（ステップＳ２１）、それをファイルサーバの台数で割る（除算する）ことでファイルサーバ１台あたりの複製データ量を計算する（ステップＳ２２）。この値は一回計算し保存しておけば何回も計算する必要は無い。
【００５０】
次にインデックスサーバ７は、ファイルサーバ毎に複製ファイルの合計ファイルサイズを計算し（ステップＳ２３）、平均複製データ量との差分サイズを計算する（ステップＳ２４）。
インデックスサーバ７は、最後に、ファイルサーバ毎に算出した差分サイズの合計を計算する（ステップＳ２５）。
インデックスサーバ７は、この差分サイズの合計をパターンデータの評価値として加算する（ステップＳ２６）。
他の評価値とのバランスをとるために係数を掛ける場合もある。
【００５１】
＜第４の実施形態＞
第４の実施形態に係るファイル保存方法について説明を行う。
ファイルの複製を行う際に、ファイルサーバが協調して計画されたファイルの複製処理を順序良く行うと、ファイルの複製を効率よく短時間に行うことができる。そのために、ファイルの複製順を決めるための評価値計算を図８を用いて説明する。
図８は、第４の実施形態に係るファイル保存方法を示すフローチャートであり、図５のフローチャートにおけるステップＳ１２で実行可能な処理である。
【００５２】
インデックスサーバ７は、ファイルサーバ毎のスケジュールカウンタをリセットする（ステップＳ３１）。
そしてインデックスサーバ７は、パターンデータから順に複製ファイルを取り出す（ステップＳ３２）。
インデックスサーバ７は、取り出した複製ファイルの複製元ファイルサーバと複製先ファイルサーバのスケジュールカウンタを比較し（ステップＳ３３）、複製元のスケジュールカウンタの方が大きければ（ステップＳ３４／ＹＥＳ）、その差分を複製先スケジュールカウンタへ加算する（ステップＳ３５）。
複製先のスケジュールカウンタの方が大きければ（ステップＳ３４／ＮＯ）、その差分を複製元スケジュールカウンタへ加算する（ステップＳ３６）。
複製元と複製先でスケジュールカウンタを同じにしたら、複製ファイルサイズを複製元と複製先のスケジュールカウンタに加算する（ステップＳ３７）。
そしてこれらのステップをパターンデータから順に複製ファイルを取り出すところまで戻り、全複製ファイルを取り出し終えるまで繰り返す（ステップＳ３８）。
最後に各ファイルサーバのスケジュールカウンタを比較し最大の値をパターンデータの評価値として加算する（ステップＳ３９）。
他の評価値とのバランスをとるために係数を掛ける場合もある。以上を図５におけるパターンデータの評価値を計算するステップ（ステップＳ１２）で実行する。
【００５３】
＜第５の実施の形態＞
次に、第５の実施形態に係るファイル保存方法について、図９、図１０を用いて説明を行う。
第５の実施形態のインデックスサーバ７によれば、ファイルサーバに障害が発生した場合であっても、障害が発生したファイルサーバに記憶されている複製ファイルの冗長度の回復を自動的に行うことができる。
図９は、第５の実施形態に係るファイル保存方法を適用したシステムを示す概念図の一例であり、図１０は、図９に示したインデックスサーバ７のフローチャートの一例である。
【００５４】
まずインデックスサーバ７は、基本的なファイルの書き込み、読み出し処理を行う（ステップＳ４１）。
またファイルの冗長化処理を適宜行うことで、同じファイルを複数個、異なるファイルサーバに保存する（ステップＳ４２）。
さらにファイルサーバが正常に動作しているか否かを定期的にチェックする（ステップＳ４３）。ファイルサーバのチェックはＰＩＮＧ（Ｐａｃｋｅｔ  ＩｎｔｅｒＮｅｔ  Ｇｒｏｐｅｒ）による反応を確認するだけでも良いが、システム専用のメッセージで確認した方が確実である。
インデックスサーバは、ファイルサーバの障害を検出すると（ステップＳ４４／ＹＥＳ）、ステップＳ４５の処理に進み、検出しないと（ステップＳ４４／ＮＯ）、ステップＳ４１の処理に戻る。
ファイルサーバの障害を検出した場合（ステップＳ４４／ＹＥＳ）には、障害の発生したファイルサーバが保有していたファイルを特定する。これは、障害の発生したファイルサーバＩＤをキーにして、表１を検索することで特定することができる。そして、それと同じファイルを複製するにあたり、複製先、複製元、複製順を決め複製スケジュールリストを作成する（ステップＳ４５）。複製スケジュールリストの作成は、実施形態１〜４のいずれを用いても可能である。
作成した複製スケジュールリストを複製先、複製元として対象となるファイルサーバへ送信し（ステップＳ４６）、複製実行の開始指示を行う（ステップＳ４７）。
【００５５】
＜第６の実施形態＞
次に、第６の実施形態に係るファイル保存方法について、図１１を用いて説明を行う。
ファイルコンテンツの人気の偏りによって、ファイルサーバ間の負荷に大きな差が発生するという問題があり、この問題を解消するため、ファイルサーバ間でファイルの移動や交換が一般的に行われる。この際のファイルの移動は、複製を実行した後に複製元のファイルを削除することで可能になる。６の実施形態のインデックスサーバ７によれば、効率的な複製処理を応用することで効率的なファイル移動を実現することができる。
図１１は、第６の実施形態に係るファイル保存方法を説明するフローチャートの一例である。
インデックスサーバ７は、基本的なファイルの書き込み、読み出し処理を行う（ステップＳ５１）。
また、ファイルの読み出し回数をファイルサーバ別に記録する（ステップＳ５２）。
ファイルの読み出し回数とファイルサイズとから各ファイルサーバの負荷を定期的に計算する（ステップＳ５３）。ファイルサーバの負荷は次のようにして求めることができる。ファイルを読み出す際にクライアントサーバはインデックスサーバ７に目的のファイルがどのファイルサーバに有るかを問い合わせるので、インデックスサーバ７がその問い合わせ回数や問い合わせがなされたファイルサイズをファイルサーバ毎に集計して負荷を計算することができる。
各ファイルサーバ間の負荷の差が所定値を超えると（ステップＳ５４／ＹＥＳ）、ステップＳ５５の処理に進み、所定値を超えないと（ステップＳ５４／ＮＯ）、ステップＳ５１の処理に戻る。
大きな負荷を与えるファイルをファイルサーバの負荷が均衡するように再配置計算し複製スケジュールリストを作成する（ステップＳ５５）。大きな負荷を与えるファイルは、インデックスサーバ７が読み出し要求のあったファイルの回数とファイルサイズをファイル毎に乗じたファイル負荷値を計算し、計算された負荷値が所定の値より大きなファイルを「大きな負荷を与えるファイル」とすることができる。また、再配置計算は、各ファイルサーバにおけるファイル負荷値の平均値（各ファイルサーバに記憶されるファイルのファイル負荷値の合計をファイル数で除算した値）が平均化するように行う。
これを複製先、複製元として対象となるファイルサーバへ送信し（ステップＳ５６）、ファイルの移動実行の開始指示を行う（ステップＳ５７）。
【００５６】
＜プログラム及び記憶媒体＞
以上で説明した本発明にかかるファイル保存システムは、コンピュータでファイル保存処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばパーソナルコンピュータやワークステーションなどの汎用的なものが挙げられるが、本発明はこれに限定されるものではない。よって、一例として、プログラムにより本発明を実現する場合の説明を以下で行う。
【００５７】
ネットワークで接続された複数のファイルサーバに分散してファイルを保存するシステムにおける、複数のファイルサーバにあるファイルを一元的に管理するプログラムであって、
（１）インデックスサーバに、
（２）ファイルサーバ間でのファイルの複製開始に先立ち複数ファイルの複製先を決める手順、
（３）複数ファイルの複製元を決める手順、
（４）複数ファイルの複製順を決める手順、
（５）複製元、複製先、及び複製順を示すスケジュールリストを複製対象ファイルサーバへ送信し、複製の実行を指示する手順、
を実行させるプログラムが挙げられる。
【００５８】
これにより、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明にかかるファイル保存システムを実現することができる。
このようなプログラムは、コンピュータに読み取り可能な記憶媒体に記憶されていてもよい。
ここで、記憶媒体としては、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｉｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（ＣＤ−Ｒｅｃｏｒｄａｂｌｅ）などのコンピュータで読み取り可能な記憶媒体、フラッシュメモリ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｒａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（強誘電体メモリ）等の半導体メモリやＨＤＤが挙げられる。
【００５９】
なお、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【符号の説明】
【００６０】
１〜６    ファイルサーバ
７―１〜７−３    インデックスサーバ
８    クライアントサーバ
９    ネットワーク
【先行技術文献】
【特許文献】
【００６１】
【特許文献１】特開２００５−１４１５２８号公報
【図１】
2010218335.tif 000008
【図２】
2010218335.tif 000009
【図３】
2010218335.tif 000010
【図４】
2010218335.tif 000011
【図５】
2010218335.tif 000012
【図６】
2010218335.tif 000013
【図７】
2010218335.tif 000014
【図８】
2010218335.tif 000015
【図９】
2010218335.tif 000016
【図１０】
2010218335.tif 000017
【図１１】
2010218335.tif 000018