"ファイルを複数のブロックに分割し、該複数のブロック毎にR個のレプリカを、複数のエッジスイッチ配下のマシンに配置する分散ファイル管理システムであって、前記R個のレプリカのうちi個0≦i≦Rのレプリカを配置する第1のマシンと、R-i個のレプリカのうちj個0≦j≦R-iのレプリカを配置する第2のマシンとを、前記第1のマシンが、ブロック毎にファイルの書き込みを行うクライアントマシンを配下とするエッジスイッチ配下のマシンとなり、かつ、前記第2のマシンがファイル毎に特定のエッジスイッチの配下のマシンとなるように選択するブロックレプリカ生成処理部と、前記ブロックレプリカ生成処理部にて選択された第1及び第2のマシンにレプリカを配置することによりファイルを書き込む処理を行うファイル書き込み処理部と、前記ブロックレプリカ生成処理部にて選択された第2のマシンを配下とする前記特定のエッジスイッチの配下のマシンをファイルの読み出しを行うクライアントマシンとしてファイルの読み出し処理を行うファイル読み出し処理部とを有する分散ファイル管理システム。ファイルを複数のブロックに分割し、該複数のブロック毎にR個のレプリカを、複数のエッジスイッチ配下のマシンに配置する分散ファイル配置方法であって、前記R個のレプリカのうちi個0≦i≦Rのレプリカを配置する第1のマシンと、R-i個のレプリカのうちj個0≦j≦R-iのレプリカを配置する第2のマシンとを、前記第1のマシンが、ブロック毎にファイルの書き込みを行うクライアントマシンを配下とするエッジスイッチ配下のマシンとなり、かつ、前記第2のマシンがファイル毎に特定のエッジスイッチの配下のマシンとなるように選択するブロックレプリカ生成処理と、前記ブロックレプリカ生成処理にて選択された第1及び第2のマシンにレプリカを配置することによりファイルを書き込む処理を行うファイル書き込み処理と、前記ブロックレプリカ生成処理にて選択された第2のマシンを配下とする前記特定のエッジスイッチの配下のマシンをファイルの読み出しを行うクライアントマシンとしてファイルの読み出し処理を行うファイル読み出し処理とを有する分散ファイル配置方法。ファイルを複数のブロックに分割し、該複数のブロック毎にR個のレプリカを、複数のエッジスイッチ配下のマシンに配置するためのコンピュータに、前記R個のレプリカのうちi個0≦i≦Rのレプリカを配置する第1のマシンと、R-i個のレプリカのうちj個0≦j≦R-iのレプリカを配置する第2のマシンとを、前記第1のマシンが、ブロック毎にファイルの書き込みを行うクライアントマシンを配下とするエッジスイッチ配下のマシンとなり、かつ、前記第2のマシンがファイル毎に特定のエッジスイッチの配下のマシンとなるように選択するブロックレプリカ生成手順と、前記ブロックレプリカ生成手順にて選択された第1及び第2のマシンにレプリカを配置することによりファイルを書き込む処理を行うファイル書き込み手順と、前記ブロックレプリカ生成手順にて選択された第2のマシンを配下とする前記特定のエッジスイッチの配下のマシンをファイルの読み出しを行うクライアントマシンとしてファイルの読み出し処理を行うファイル読み出し手順とを実行させるためのプログラム。しかしながら、上述したようなGFSによるレプリカ配置方法においては、以下に記載するような問題点がある。ファイルの耐障害性は高いが、ファイルの書き込み効率や読み出し効率が悪い。図14は、GFSによるレプリカ配置方法におけるファイル書き込み時の問題点を説明するための図である。図14に示すように、GFSによるレプリカ配置方法においては、ファイルを分割したブロック毎の複数のレプリカを互いに異なるエッジスイッチ1-1~1-9配下のマシン4に配置するため、ファイルを構成する各ブロックの書き込み時には、エッジスイッチ1-1~1-9間を跨る回数が多く、それにより、ファイルの書き込み効率が悪くなってしまう。図15は、GFSによるレプリカ配置方法におけるファイル読み出し時の問題点を説明するための図である。図15に示すように、GFSによるレプリカ配置方法においては、ファイルを構成するブロック毎にレプリカの配置先のエッジスイッチ1-1~1-9を独立に決定するため、ファイルを構成する全てのブロックの読み出し時には、エッジスイッチ1-1~1-9間を跨る確率が高く、それにより、ファイルの読み出し効率が悪くなってしまう。そして、上述したようなGFSのレプリカ配置方法は、システムで固定であるため、ファイルの耐障害性をそれほど必要としない場合であっても、ファイルの書き込み効率や読み出し効率を犠牲にしなければならない。本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、ファイルの耐障害性とファイルの書き込み効率や読み出し効率とのトレードオフを、アプリケーション開発者が選択でき、各ファイルの用途に応じてファイル単位に最適化することができる、分散ファイル管理システム、分散ファイル配置方法及びプログラムを提供することを目的とする。上記目的を達成するために本発明は、ファイルを複数のブロックに分割し、該複数のブロック毎にR個のレプリカを、複数のエッジスイッチ配下のマシンに配置する分散ファイル管理システムであって、前記R個のレプリカのうちi個0≦i≦Rのレプリカを配置する第1のマシンと、R-i個のレプリカのうちj個0≦j≦R-iのレプリカを配置する第2のマシンとを、前記第1のマシンが、ブロック毎にファイルの書き込みを行うクライアントマシンを配下とするエッジスイッチ配下のマシンとなり、かつ、前記第2のマシンがファイル毎に特定のエッジスイッチの配下のマシンとなるように選択するブロックレプリカ生成処理部と、前記ブロックレプリカ生成処理部にて選択された第1及び第2のマシンにレプリカを配置することによりファイルを書き込む処理を行うファイル書き込み処理部と、前記ブロックレプリカ生成処理部にて選択された第2のマシンを配下とする前記特定のエッジスイッチの配下のマシンをファイルの読み出しを行うクライアントマシンとしてファイルの読み出し処理を行うファイル読み出し処理部とを有する。また、ファイルを複数のブロックに分割し、該複数のブロック毎にR個のレプリカを、複数のエッジスイッチ配下のマシンに配置する分散ファイル配置方法であって、前記R個のレプリカのうちi個0≦i≦Rのレプリカを配置する第1のマシンと、R-i個のレプリカのうちj個0≦j≦R-iのレプリカを配置する第2のマシンとを、前記第1のマシンが、ブロック毎にファイルの書き込みを行うクライアントマシンを配下とするエッジスイッチ配下のマシンとなり、かつ、前記第2のマシンがファイル毎に特定のエッジスイッチの配下のマシンとなるように選択するブロックレプリカ生成処理と、前記ブロックレプリカ生成処理にて選択された第1及び第2のマシンにレプリカを配置することによりファイルを書き込む処理を行うファイル書き込み処理と、前記ブロックレプリカ生成処理にて選択された第2のマシンを配下とする前記特定のエッジスイッチの配下のマシンをファイルの読み出しを行うクライアントマシンとしてファイルの読み出し処理を行うファイル読み出し処理とを有する。また、ファイルを複数のブロックに分割し、該複数のブロック毎にR個のレプリカを、複数のエッジスイッチ配下のマシンに配置するためのコンピュータに、前記R個のレプリカのうちi個0≦i≦Rのレプリカを配置する第1のマシンと、R-i個のレプリカのうちj個0≦j≦R-iのレプリカを配置する第2のマシンとを、前記第1のマシンが、ブロック毎にファイルの書き込みを行うクライアントマシンを配下とするエッジスイッチ配下のマシンとなり、かつ、前記第2のマシンがファイル毎に特定のエッジスイッチの配下のマシンとなるように選択するブロックレプリカ生成手順と、前記ブロックレプリカ生成手順にて選択された第1及び第2のマシンにレプリカを配置することによりファイルを書き込む処理を行うファイル書き込み手順と、前記ブロックレプリカ生成手順にて選択された第2のマシンを配下とする前記特定のエッジスイッチの配下のマシンをファイルの読み出しを行うクライアントマシンとしてファイルの読み出し処理を行うファイル読み出し手順とを実行させるためのプログラム。本発明は、R個のレプリカのうちi個0≦i≦Rのレプリカを配置する第1のマシンと、R-i個のレプリカのうちj個0≦j≦R-iのレプリカを配置する第2のマシンとを、第1のマシンが、ブロック毎にファイルの書き込みを行うクライアントマシンを配下とするエッジスイッチ配下のマシンとなり、かつ、第2のマシンがファイル毎に特定のエッジスイッチの配下のマシンとなるように選択し、この選択された第1及び第2のマシンにレプリカを配置することによりファイルを書き込み、また、選択された第2のマシンを配下とする特定のエッジスイッチの配下のマシンをファイルの読み出しを行うクライアントマシンとしてファイルを読み出す構成としたため、ファイルの耐障害性とファイルの書き込み効率や読み出し効率とのトレードオフを、アプリケーション開発者が選択でき、各ファイルの用途に応じてファイル単位に最適化することができる。以下に、本発明の実施の形態について図面を参照して説明する。まず、本発明の概要について説明する。本発明では、ファイルを構成するブロックについて、下記{i,j}の組をレプリカ配置方法として定義する。R個のレプリカのうちi個0≦i≦Rは、ファイルの書き手となるマシンを収容したローカルの1つのエッジスイッチ配下のマシン第1のマシンに配置する。また、R-i個のレプリカのうちj個0≦j≦R-iは、各ファイルの生成時にシステムがファイル毎にランダムに決定する特定のエッジスイッチ配下のマシン第2のマシンにそれぞれ配置する。なお、R-i-j個のレプリカは、上記とは異なるエッジスイッチ配下のマシンにそれぞれ配置する。また、ファイル生成時にファイル毎に決定された特定のエッジスイッチ情報を取得する手段を提供するとともに、その特定のエッジスイッチ配下のマシンを当該ファイルの読み手とする。そして、上記のレプリカ配置方法{i,j}をファイル毎に保持し、当該のレプリカ配置方法{i,j}をファイル毎に適用する。以下に、上述した構成による効果について説明する。図1は、本発明の分散ファイル配置方法によるファイル書き込み時の効果を説明するための図であり、R=3,{i,j}={2,1}の場合を示す。図1に示したものにおいては、ファイルを構成する3つのブロックのそれぞれについて、3個のレプリカのうち2個のレプリカをファイルの書き手となるマシン4を収容したローカルのエッジスイッチ1-1,1-4,1-7配下のマシン4に配置し、1個のレプリカを特定のエッジスイッチ1-5配下のマシン4に配置している。このように、R個のレプリカのうちi個0≦i≦Rを、ファイルの書き手となるマシン4を収容したローカルのエッジスイッチ1-1,1-4,1-7配下のマシン4に配置するとともに、R-i個のレプリカのうちj個0≦j≦R-iを、各ファイルの生成時にシステムがファイル毎にランダムに決定する特定のエッジスイッチ1-5配下のマシン4にそれぞれ配置することにより、iを増やせば増やすほど、1つのエッジスイッチに障害が発生した場合に、あるブロックのレプリカが失われる最大個数は増えるが、ファイルを構成する各ブロックの書き込み時には、エッジスイッチ1-1~1-9間を跨る回数が少なくなる分だけファイルの書き込み効率が良くなる。なお、iを0個から1個に増やすときには、失われるレプリカの最大個数は増えない。図2は、本発明の分散ファイル配置方法によるファイル読み出し時の効果を説明するための図であり、R=3,{i,j}={2,1}の場合を示す。図2に示したものにおいては、ファイルを構成する3つのブロックのそれぞれについて、3個のレプリカのうち2個のレプリカをエッジスイッチ1-1,1-4,1-7配下のマシン4に配置し、1個のレプリカを、後にファイルの読み手とされるエッジスイッチ1-5配下のマシン4に配置している。このように、R個のレプリカのうちi個0≦i≦Rを、エッジスイッチ1-1,1-4,1-7配下のマシン4に配置するとともに、R-i個のレプリカのうちj個0≦j≦R-iを、各ファイルの生成時にシステムがファイル毎にランダムに決定する特定のエッジスイッチ1-5配下のマシン4にそれぞれ配置し、その後、このマシン4を当該ファイルの読み手とすることで、jを増やせば増やすほど、1つのエッジスイッチに障害が発生したときに、あるファイルを構成する全ブロックのレプリカ1個が一気に失われる確率は高くなるが、ファイルの読み出しがエッジスイッチ内に閉じる分だけファイルの読み出し効率が良くなる。なお、jを2個以上に増やすときには、エッジスイッチ内に閉じたファイルの読み出しを2個以上に分散できる分だけファイルの読み出し効率が良くなる。図3は、本発明の分散ファイル管理システムにて想定されるハードウェア構成の実施の一形態を示す図である。本形態は図3に示すように、複数のマシン4群をエッジスイッチ1-1~1-9が収容し、複数のエッジスイッチ1-1~1-9群をコアスイッチ2が収容する。各マシン4のIPアドレスは、ある一定のマスクマシングループマスクと呼ぶを適用することで、同一のエッジスイッチ配下に収容されているか否かがわかるように付与する。本形態では、例えば、マシン19216811とマシン192168110にマシングループマスク2552552550を適用すると同一のマシングループ1921681になるので、マシン19216811とマシン192168110は同一のエッジスイッチ配下に収容されていることがわかる。図4は、本発明の分散ファイル管理システムにて想定されるソフトウェア構成の実施の一形態を示す図である。本形態は図4に示すように、クライアント機能10と、マスタ機能20と、ワーカ機能30とから構成されており、さらにクライアント機能10は、共通機能10aと、個別機能10bとから構成されている。マスタ機能20は、ある1台のマシン上だけで動作し、クライアント機能10とワーカ機能30は、複数台のマシン上で動作する。なお、これらクライアント機能10とマスタ機能20とワーカ機能30とは、同一のマシン上に共存させても構わない。クライアント機能10の個別機能10aは、クライアント処理部11と、クライアントマシン情報記憶部12とから構成されている。また、クライアント機能10の共通機能10bは、ファイル生成処理部13と、特定エッジスイッチ情報取得処理部14と、ファイル書き込み処理部15と、ファイル読み出し処理部16とから構成されている。マスタ機能20は、ファイル情報更新処理部21と、ファイル情報参照処理部22と、ファイルブロック情報記憶部23と、書き込み用ブロック情報取得処理部24と、読み出し用ブロック情報取得処理部25と、ブロックレプリカ生成処理部26と、ワーカマシン情報記憶部20とから構成されている。ワーカ機能30は、ブロック生成処理部31と、ブロック書き込み処理部32と、ブロック読み出し処理部33と、ブロック情報記憶部34とから構成されている。以下に、上記のように構成された分散ファイル管理システムにおける分散ファイル配置方法について説明する。図5は、図3及び図4に示した分散ファイル管理システムにおける分散ファイル配置方法を説明するための想定シナリオを示す図である。図5に示す想定シナリオに基づいて、1ファイル生成処理、2ファイル書き込み処理、3特定エッジスイッチ情報取得処理、4ファイル読み出し処理に分けて説明する。特に、本発明のポイントであるブロックレプリカ生成処理に関わるアルゴリズムやデータ構造について詳細に説明する。1ファイル生成処理まず、この分散ファイル管理システムが提供するAPIを利用して、アプリケーション開発者が入力する値をプログラミングすることにより、クライアント処理部11が、生成するファイル名とレプリカ数とレプリカ配置方法とをファイル生成処理部13に入力する。すると、ファイル生成処理部13は、入力されたファイル名とレプリカ数とレプリカ配置方法とをファイル情報更新処理部21に送信する。ファイル情報更新処理部21は、ファイル生成処理部13から送信されてきたファイル名とレプリカ数とレプリカ配置方法とを受信し、これらファイル名とレプリカ数とレプリカ配置方法とをファイルブロック情報記憶部23に登録する。図6は、図4に示したファイルブロック情報記憶部23に登録されるファイルブロック情報ファイル生成後を示す図である。図6に示すように、ファイル生成後のファイルブロック情報記憶部23には、ファイル名とレプリカ数とレプリカ配置方法とが対応づけて登録されており、本形態においては、生成されたファイル名がファイル1であり、当該ファイルを構成するブロックのレプリカ数は3、レプリカ配置方法は{2,1}となっている。2ファイル書き込み処理まず、上記同様にして、クライアント処理部11が、書き込むファイル名と書き込みオフセットと書き込みサイズと書き込みデータとをファイル書き込み処理部15に入力する。すると、ファイル書き込み処理部15は、入力された書き込みオフセットと書き込みサイズとから書き込み対象となるブロックのインデックスファイルの先頭から何番目のブロックに書き込むかを算出して、入力されたファイル名とともに、書き込み用ブロック情報取得処理部24に送信する。書き込み用ブロック情報取得処理部24は、ファイルブロック情報記憶部23を参照して、受信したファイル名とインデックスが示すブロックが未生成であれば、ブロックレプリカ生成処理部26に、当該ブロックの生成を依頼し、ブロックレプリカ生成処理部26にて生成されたブロックIDと当該ブロックのレプリカが配置されたワーカマシン情報ワーカ機能が動作するマシン情報:IPアドレスをファイル書き込み処理部15に返信する。また、受信したファイル名とインデックスが示すブロックが生成済みであれば、生成済みのブロックIDと当該ブロックのレプリカが配置されたワーカマシン情報をファイル書き込み処理部15に返信する。ここで、ブロックレプリカ生成処理部26にて実行されるブロックレプリカ生成処理について詳細に説明する。図7は、図4に示したブロックレプリカ生成処理部26にて実行されるブロックレプリカ生成処理を説明するためのフローチャートである。まず、ブロックレプリカ生成処理部26は、ファイルブロック情報記憶部23を参照して、当該ファイル名のレプリカ数をR、レプリカ配置方法を{i,j}として取得するステップ1。次に、ブロックレプリカ生成処理部26は、当該クライアントマシンのIPアドレスにマシングループマスクを適用して、クライアントマシンが属するクライアントマシングループを取得するステップ2。次に、ブロックレプリカ生成処理部26は、ワーカマシン情報記憶部27に登録されているワーカマシン情報に記載された、全てのワーカマシンのIPアドレスにマシングループマスクを適用して、全てのワーカマシンが属するワーカマシングループの集合を取得するステップ3。図8は、図4に示したワーカマシン情報記憶部27に登録されたワーカマシン情報の一例を示す図である。図8に示すように、ワーカマシン情報記憶部27には、ワーカ機能30が動作するマシン情報が登録されており、ブロックレプリカ生成処理部26は、このマシン情報を用いて、全てのワーカマシンが属するワーカマシングループの集合を取得する。次に、ブロックレプリカ生成処理部26は、ステップ3で取得したワーカマシングループの集合の中からステップ2で取得したクライアントマシングループと同一のワーカマシングループを選択し、そのワーカマシングループに属するワーカマシンの中からi台を選択するステップ4。なお、ワーカマシンの選択にあたっては、クライアントマシンと同一のワーカマシンが存在すればそれを最優先で選択し、クライアントマシンと同一のワーカマシンが存在しなければランダムに選択する。次に、ブロックレプリカ生成処理部26は、ファイルブロック情報記憶部23を参照して、当該ファイル名の特定エッジスイッチ情報が登録されているか否かを調査するステップ5。そして、ステップ5の結果、当該ファイル名の特定エッジスイッチ情報が登録されていない場合は、ブロックレプリカ生成処理部26は、ステップ3で取得したワーカマシングループの集合の中からステップ2で取得したクライアントマシングループと異なるワーカマシングループをランダムにR-i個選択し、R-i個のワーカマシングループに属する複数のワーカマシンの中から、ワーカマシングループそれぞれ1台のワーカマシンをランダムに選択するステップ6。次に、ブロックレプリカ生成処理部26は、ステップ6で選択したR-i個のワーカマシングループの中からj個をランダムに選択し、j個のワーカマシングループを当該ファイル名の特定エッジスイッチ情報としてファイルブロック情報記憶部23に登録するステップ7。また、ステップ5の結果、当該ファイル名の特定エッジスイッチ情報が登録されている場合は、ブロックレプリカ生成処理部26は、ファイルブロック情報記憶部23を参照して、当該ファイル名に対応する特定エッジスイッチ情報として登録されたj個のワーカマシングループを取得し、j個のワーカマシングループに属する複数のワーカマシンステップ4で選択したi台のワーカマシンを除くの中から、ワーカマシングループそれぞれ1台のワーカマシンをランダムに選択するステップ8。次に、ブロックレプリカ生成処理部26は、ステップ3で取得したワーカマシングループの集合の中から、ステップ2で取得したクライアントマシングループともステップ8で取得したj個のワーカマシングループとも異なるワーカマシングループをランダムにR-i-j個選択し、R-i-j個のワーカマシングループに属する複数のワーカマシンの中から、ワーカマシングループそれぞれ1台のワーカマシンをランダムに選択するステップ9。その後、ブロックレプリカ生成処理部26は、ステップ4,6、またはステップ4,8,9で選択した合計R個のワーカマシン上のブロック生成処理部31に対し、当該ファイル名と当該インデックスに対応するブロックの生成をブロックID指定で依頼し、当該ブロックIDと選択されたR個のワーカマシン情報をファイルブロック情報記憶部23に登録するステップ10。図9は、図4に示したファイルブロック情報記憶部23に登録されるファイルブロック情報ブロック生成後を示す図である。図9に示すように、ブロック生成後のファイルブロック情報記憶部23には、ファイル名とレプリカ数とレプリカ配置方法と特定エッジスイッチ情報とブロックIDとワーカマシン情報とが対応づけて登録されており、本形態においては、ファイル名ファイル1を構成するブロックIDブロック1の書き手クライアントマシンが192168110、同様にブロック2の書き手クライアントマシンが192168410、ブロック3の書き手クライアントマシンが192168710となっている。各ブロックのレプリカ3個のうち2個は、各書き手クライアントマシンと同一のローカルのマシングループに属するワーカマシン書き手クライアントマシンと同一のワーカマシンを含むに配置されていることがわかる。また、各ブロックのレプリカ3個のうち1個は、特定のマシングループ1921685に属するワーカマシンに配置されていることがわかる。なお、各ワーカマシン上のブロック情報記憶部34には、ブロックIDとブロック実体の対応関係がブロック情報としてブロック生成処理部31により登録される。図10は、図4に示したブロック情報記憶部34に登録されるブロック情報を示す図である。図10に示すように、ワーカマシン上のブロック情報記憶部34には、ブロックIDとブロック実体の対応関係がブロック情報として登録されている。なお、ブロック実体とは、ブロックIDに対応するワーカマシン上の仮想的な記憶領域へのポインタであり、仮想的な記憶領域は、物理的にはディスクまたはメモリにマッピングされる。その後、ファイル書き込み処理部15は、受信したワーカマシン情報に記載された全てのワーカマシン上のブロック書き込み処理部32に対して、受信したブロックIDと当該ブロック内での書き込みオフセットと書き込みサイズと書き込みデータとを送信する。そして、ブロック書き込み処理部32は、ブロック情報記憶部34を参照して、受信したブロックIDのブロック実体について、受信した書き込みオフセットから、受信した書き込みサイズ分だけ受信した書き込みデータを書き込む。なお、複数のブロックに跨るファイル書き込みの場合は、書き込み対象となるブロックの数分だけ上記の処理を繰り返す。3特定エッジスイッチ情報取得処理まず、上記同様にして、クライアント処理部11が、取得する特定エッジスイッチ情報に対応するファイル名を特定エッジスイッチ情報取得処理部14に入力する。すると、特定エッジスイッチ情報取得処理部14は、入力されたファイル名をファイル情報参照処理部22に送信する。ファイル情報参照処理部22は、ファイルブロック情報記憶部23を参照して、受信したファイル名に対応する特定エッジスイッチ情報を取得し、特定エッジスイッチ情報取得処理部14に返信する。なお、図9に示した例では、特定エッジスイッチ情報を取得するファイル名がファイル1の場合は、特定エッジスイッチ情報としてマシングループ1921685が返信されることになる。特定エッジスイッチ情報処理部14は、受信した特定エッジスイッチ情報をクライアント処理部11に出力する。4ファイル読み出し処理クライアント処理部11は、読み出すファイル名に対応する特定エッジスイッチ情報として出力されたマシングループのいずれにもクライアントマシンが属さない場合、後述するように、読み出すファイル名に対応する特定エッジスイッチ情報として出力されたマシングループのいずれかに属するクライアントマシンを1台選択し、当該選択されたクライアントマシン上のクライアント処理部11にファイル読み出しを指示する。ここで、マシングループのいずれかに属するクライアントマシンの選択方法について説明する。図11は、図4に示したクライアントマシン情報記憶部12に登録されているクライアントマシン情報を示す図である。クライアント処理部11は、図11に示すようなクライアントマシン情報に記載された、全てのクライアントマシン情報であるIPアドレスにマシングループマスクを適用して、全てのクライアントマシンに対するクライアントマシングループの集合を取得する。そして、そのクライアントマシングループの集合の中から、読み出すファイル名に対応する特定エッジスイッチ情報として出力されたマシングループのいずれかと同一のクライアントマシングループをランダムに1個選択し、さらに選択した当該クライアントマシングループに属するクライアントマシンの中から1台をランダムに選択する。読み出すファイル名ファイル1に対応する特定エッジスイッチ情報が1921685である場合、当該マシングループ1921685に属するクライアントマシンをランダムに1台選択することになる。図5に示したシナリオでは、192168510がクライアントマシンとして選択されている。ファイル読み出しを指示されたクライアント処理部11は、読み出すファイル名と読み出しオフセットと読み出しサイズをファイル読み出し処理部16に入力する。すると、ファイル読み出し処理部16は、入力された読み出しオフセットと読み出しサイズから読み出し対象となるブロックのインデックスファイルの先頭から何番目のブロックを読み出すかを算出して、入力されたファイル名とともに、読み出し用ブロック情報取得処理部25に送信する。読み出し用ブロック情報取得処理部25は、受信したファイル名とインデックスに基づいて、ファイルブロック情報記憶部23を参照して、受信したファイル名とインデックスが示すブロックが生成済みの場合に限り、生成済みのブロックIDと当該ブロックのレプリカが配置されたワーカマシン情報を全て取得し、ファイル読み出し処理部16に返信する。ファイル読み出し処理部16は、受信した全てのワーカマシン情報が示す全てのワーカマシンの中から、後述する方法で1台選択し、選択したワーカマシン上のブロック読み出し処理部33に対して、受信したブロックIDと当該ブロック内での読み出しオフセットと読み出しサイズを送信する。なお、ワーカマシンの選択にあたっては、ファイルの読み出しを行うクライアントマシンとネットワーク的に最も近いIPアドレスの排他的論理和が最も小さいワーカマシンを選択する。その結果、クライアントマシンと同一のワーカマシン、クライアントマシンと同一のマシングループに属するワーカマシン、クライアントマシンと異なるマシングループに属するワーカマシンの順に、優先的に選択されることになる。図5に示したシナリオでは、クライアントマシンが192168510であるため、ファイル1を構成するブロック1の読み出し先ワーカマシンとして19216851、ブロック2の読み出し先ワーカマシンとして192168510、ブロック3の読み出し先ワーカマシンとして192168520が選択されている。ブロック読み出し処理部33は、ブロック情報記憶部34を参照して、受信したブロックIDのブロック実体を受信した読み出しオフセットから受信した読み出しサイズ分だけ読み出して、読み出したデータをファイル読み出し処理部16に返信する。なお、複数のブロックに跨るファイル読み出しの場合は、読み出し対象となるブロックの数分だけ上述した処理を繰り返す。ファイル読み出し処理部16は、受信した読み出しデータをクライアント処理部11に出力する。なお、上述した実施の形態においては、図3に示すようなコアスイッチ2配下に複数台のエッジスイッチ1-1~1-9が存在し、各エッジスイッチ1-1~1-9に複数のマシン4が接続されたシステムでのレプリカの配置の方法について説明したが、本発明を仮想マシン環境に適用することも考えられる。図12は、本発明の分散ファイル管理システムにて想定されるハードウェア構成の他の実施の形態を示す図である。図12に示すように、図3に示したコアスイッチ2をスイッチ102に置き換え、エッジスイッチ1-1~1-9を物理マシン3-1~3-9に置き換え、各物理マシン3-1~3-9に接続するマシン4を仮想マシン5に置き換えることで、仮想マシンシステムでの使用形態とすることができる。このように、特定エッジスイッチの代わりに特定物理マシンとして管理を行うことで、1つの物理マシンに障害が発生したときに、あるブロックのレプリカが失われる最大個数は増えるものの、ファイルを構成する各ブロックの書き込み時には、物理マシン間を跨る回数が少なくなる分だけファイルの書き込み効率が良くなり、また、1つの物理マシンに障害が発生したときに、あるファイルを構成する全ブロックのレプリカ1個が一気に失われる確率は高くなるものの、ファイルを構成する全ブロックの読み出し時には、ファイルごとに決定された特定の物理マシン配下の仮想マシンを当該ファイルの読み手とすることで、ファイルの読み出しが物理マシン内に閉じる分だけファイルの読み出し効率が良くなる。つまり、図12に示した仮想マシンを用いたシステムでは、仮想マシンと物理マシンとの関係を管理することで、図3に示したシステム構成と同様のレプリカ配置に伴う効果が得られる。なお、上述した処理は、図4に示したソフトウェア構成によってプログラムで実現される以外にも、専用のハードウェアで実現することも考えられ、また、その機能を実現するためのプログラムをコンピュータにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであっても良い。コンピュータにて読取可能な記録媒体とは、ICカードやメモリカード、あるいは、フロッピーディスク登録商標、光磁気ディスク、DVD、CD等の移設可能な記録媒体の他、コンピュータに内蔵されたHDD等を指す。この記録媒体に記録されたプログラムは、例えば、制御ブロックにて読み込まれ、制御ブロックの制御によって、上述したものと同様の処理が行われる。"