(57)【要約】      （修正有）【課題】分散ファイルシステムにおいて、ファイルサーバを管理する管理サーバの障害によるシステム全体のサービス停止を回避する。【解決手段】プロキシサーバ２及びこれに対応するメタデータサーバを複数対設ける一方、プロキシサーバ２は、ユーザからのＩ／Ｏ要求を受信するアクセス制御部２１と、メタデータサーバにアクセスし前記Ｉ／Ｏ要求の書込み要求に関するメタ情報を保存するためのクライアント機能を果たすファイルシステムアクセス部２５と、他のプロキシサーバ２に対し前記メタ情報の複製及び書込み履歴管理を行う複製処理部２２と、複製処理部２２が保持する書込みエラー履歴からプロキシサーバ間での定期的なデータ補完処理を実行するデータ更新部２３と、前記データ補完処理を実行する更新時期を環境設定ファイルから読み込む環境設定取込部２４を備える。【選択図】図６
2012008934.tif 000002
【特許請求の範囲】
【請求項１】
記憶部を有する複数のファイルサーバと、ユーザからのＩ／Ｏ要求を処理するプロキシサーバと、前記Ｉ／Ｏ要求に関するメタ情報を管理するメタデータサーバを備え、前記プロキシサーバに対して複数ユーザによるファイル書込み要求を行い前記ファイルサーバの記憶部に記録するネットワークを構成し、前記複数のファイルサーバを広域な範囲に分散配置させた分散ファイルシステムにおいて、
前記プロキシサーバ及びこれに対応するメタデータサーバを複数対設ける一方、
前記プロキシサーバは、
ユーザからのＩ／Ｏ要求を受信するアクセス制御部と、
前記メタデータサーバにアクセスし前記Ｉ／Ｏ要求の書込み要求に関するメタ情報を保存するためのクライアント機能を果たすファイルシステムアクセス部と、
他のプロキシサーバに対し前記メタ情報の複製及び書込み履歴管理を行う複製処理部と、
前記複製処理部が保持する書込みエラー履歴からプロキシサーバ間での定期的なデータ補完処理を実行するデータ更新部と、
前記データ補完処理を実行する更新時期を環境設定ファイルから読み込む環境設定取込部と、
を備えたことを特徴とする分散ファイルシステム。
【請求項２】
記憶部を有する複数のファイルサーバと、ユーザからのＩ／Ｏ要求を処理するプロキシサーバと、前記Ｉ／Ｏ要求に関するメタ情報を管理するメタデータサーバを備え、前記プロキシサーバに対して複数ユーザによるファイル書込み要求を行い前記ファイルサーバの記憶部に記録するネットワークを構成し、前記複数のファイルサーバを広域な範囲に分散配置させた分散ファイルシステムにおいて、
前記プロキシサーバ及びこれに対応するメタデータサーバを複数対設ける一方、
一のユーザによる一つのプロキシサーバへのファイルサーバの書込み要求に対して、前記Ｉ／Ｏ要求を処理するプロキシサーバは、対応するメタデータサーバに前記ファイルサーバへのメタ情報を書き込むとともに、他のプロキシサーバに対して前記Ｉ／Ｏ要求の書込み要求の複製処理を行うことでユーザからのアクセスに同期して前記他のプロキシサーバに対応するメタデータサーバに対して並列にメタ情報を更新保存することでメタ情報の一貫性を保証する分散ファイルシステムにおける冗長化方法。
【請求項３】
前記プロキシサーバ及びメタデータサーバの生存監視を行う生存監視サーバを設け、プロキシサーバ又はメタデータサーバの障害を検知し、ユーザからのＩ／Ｏ要求に対してプロキシサーバの選択を行うＤＮＳサーバの設定情報について、前記障害状況を考慮して更新する請求項２に記載の分散ファイルシステムにおける冗長化方法。
【請求項４】
プロキシサーバ又はメタデータサーバが障害から復旧した場合に、正常にメタ情報を更新保存したメタデータサーバからメタ情報を自動的に再構築する請求項３に記載の分散ファイルシステムにおける冗長化方法。
【請求項５】
前記メタ情報の保存に際して、
前記ユーザの書込み要求と並行して他のプロキシサーバに対して前記Ｉ／Ｏ要求の書込み要求の複製処理を行って各メタデータサーバで書込みを行い、
書込み要求を処理するプロキシサーバに対して、各プロキシサーバの中から一つのプロキシサーバからの書込み要求に対する成功応答があった場合に、
メタ情報を保存してファイルサーバ書込み終了の応答を前記ユーザに対し行う
請求項２に記載の分散ファイルシステムにおける冗長化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のユーザによるファイル書込み要求及びファイル読込み要求が行われるネットワークにおいて、記憶部（ストレージ）を有する複数のファイルサーバを広域な範囲に分散配置させて形成される分散ファイルシステムでファイル（ユーザデータ）を保存する際に、分散ファイルシステムを運用する複数の管理サーバ間で行われるメタ情報の管理に関し、特に、システム全体のサービス停止の回避を目的とした分散ファイルシステム及び分散ファイルシステムにおける冗長化方法に関する。
【背景技術】
【０００２】
この種の技術としては、非特許文献１や非特許文献２で示されるように、複数のマシンのディスクを組み合わせて１つのファイルシステムとして機能する分散プラットフォームが提案されている。
非特許文献１に示されたGfarmは、広域ネットワーク上で、大容量、大規模データ処理の要求に応えるスケーラブルな分散ファイルシステムプラットフォームであり、広域なネットワーク上での効率的なファイル共有に適した分散プラットフォームである。
一方、非特許文献２に示されたHadoopは、１つのディスクで保存できない大量のデータを並列化することで高速かつ効率良く処理できるものであり、比較的大きなサイズかつ基本的に更新されることのないファイルのI/Oに適した分散プラットフォームである。
また、非特許文献３のdrbdには、一方のデータを他方にコピーする技術が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】URL：http://datafarm.apgrid.org/index.ja.html
【非特許文献２】URL：http://hadoop.apache.org/
【非特許文献３】URL：http://www.drbd.org/
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１に示されたGfarmは、広域なネットワーク上での効率的なファイル共有に適した分散プラットフォームであり、この分散プラットフォームでは、広域な範囲に配置した複数のファイルサーバに、ユーザから書込み要求のあったファイルを、データの可用性を高めるために分散配置する。しかしながら、ファイル自体の可用性は高めることができるが、ファイルのメタ情報は、管理サーバが一か所で管理しており、管理サーバが障害となった場合、ユーザからの分散ファイルシステムに対するアクセスが不可能となる（サービスのダウンタイムが発生する）現象が生じる。
【０００５】
この現象を回避するため、メタ情報を管理するサーバを複数台設けて冗長化する技術が提案されている。例えば、図１３に示すように、ユーザ端末１と、ユーザ端末１からの要求を処理する複数のプロキシサーバ２と、データを格納する複数のファイルサーバ４と、ユーザ端末１からのアクセスに対してプロキシサーバ２の選択を行うＤＮＳサーバ５から分散ファイルシステムを構成する場合に、メタ情報を管理する複数のメタデータサーバ３を設け、メタデータサーバ３が管理するメタ情報を、ユーザからの操作とは非同期に各メタデータサーバ３間で相互に定期的に送受信を行い、全てのメタデータサーバ３を現用機として並列に動作させることで、いずれかのメタデータサーバ３に障害が発生しても残りの現用機でサービスを継続する構成が提案されている。
【０００６】
しかしながら、この構成によれば、ユーザからのアクセスとは別のタイミングでメタ情報の同期処理が行われているので、常時メタ情報の一貫性が保たれてはいない。したがって、ユーザからファイルが書き込まれ、あるメタデータサーバがそのファイルのメタ情報を保持し、次の同期のタイミングで別のメタデータサーバにそのメタ情報を受け渡す前にそのメタデータサーバに障害が発生した場合には、そのファイルにはアクセス不可能となるという問題があった。
【０００７】
また、ユーザからのファイル書込みに対しては、各メタデータサーバ間でメタ情報が受け渡しされる前に、書込みが終了したことをユーザに示すため、書込みを行ったデータは可用性が保たれているとユーザ側では認識してしまうという課題も生じる。
【０００８】
更に、各管理サーバ間において、短い周期で複製を行う設定も考えられるが、クラウドサービスとして巨大ストレージを提供する場合など、増加するユーザの膨大なメタ情報を高い頻度で同期をとることになり、相互管理サーバ間での処理負荷が増加するため現実的でない。
【０００９】
本発明は上記事情に鑑みて提案されたもので、記憶部（ストレージ）を提供するファイルサーバと分散ファイルシステムを利用するユーザとの間を仲介する管理サーバの障害からのシステム全体のサービス停止を回避することを可能とした分散ファイルシステム及び分散ファイルシステムにおける冗長化方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため請求項１の発明は、記憶部を有する複数のファイルサーバと、ユーザからの書込み要求を処理するプロキシサーバと、前記書込み要求に関するメタ情報を管理するメタデータサーバを備え、前記プロキシサーバに対して複数ユーザによるファイル書込み要求を行い前記ファイルサーバの記憶部に記録するネットワークを構成し、前記複数のファイルサーバを広域な範囲に分散配置させた分散ファイルシステムにおいて、次の構成を含むことを特徴としている。
前記プロキシサーバ及びこれに対応するメタデータサーバを複数対設ける。
そして、前記プロキシサーバは、ユーザからのＩ／Ｏ要求を受信するアクセス制御部と、前記メタデータサーバにアクセスし前記Ｉ／Ｏ要求の書込み要求に関するメタ情報を保存するためのクライアント機能を果たすファイルシステムアクセス部と、他のプロキシサーバに対し前記メタ情報の複製及び書込み履歴管理を行う複製処理部と、前記複製処理部が保持する書込みエラー履歴からプロキシサーバ間での定期的なデータ補完処理を実行するデータ更新部と、前記データ補完処理を実行する更新時期を環境設定ファイルから読み込む環境設定取込部を備えている。
【００１１】
請求項２は、記憶部を有する複数のファイルサーバと、ユーザからのＩ／Ｏ要求を処理するプロキシサーバと、前記Ｉ／Ｏ要求に関するメタ情報を管理するメタデータサーバを備え、前記プロキシサーバに対して複数ユーザによるファイル書込み要求を行い前記ファイルサーバの記憶部に記録するネットワークを構成し、前記複数のファイルサーバを広域な範囲に分散配置させた分散ファイルシステムにおいて、
前記プロキシサーバ及びこれに対応するメタデータサーバを複数対設ける一方、
一のユーザによる一つのプロキシサーバへのファイルサーバのＩ／Ｏ要求に対して、前記Ｉ／Ｏ要求を処理するプロキシサーバは、対応するメタデータサーバに前記ファイルサーバへのメタ情報を書き込むとともに、他のプロキシサーバに対して前記Ｉ／Ｏ要求の書込み要求の複製処理を行うことでユーザからのアクセスに同期して前記他のプロキシサーバに対応するメタデータサーバに対して並列にメタ情報を更新保存することでメタ情報の一貫性を保証することを特徴としている。
【００１２】
請求項３は、請求項２の分散ファイルシステムにおける冗長化方法において、前記プロキシサーバ及びメタデータサーバの生存監視を行う生存監視サーバを設け、プロキシサーバ又はメタデータサーバの障害を検知し、ユーザからのＩ／Ｏ要求に対してプロキシサーバの選択を行うＤＮＳサーバの設定情報について、前記障害状況を考慮して更新することを特徴としている。
【００１３】
請求項４は、請求項３に記載の分散ファイルシステムにおける冗長化方法において、プロキシサーバ又はメタデータサーバが障害から復旧した場合に、正常にメタ情報を更新保存したメタデータサーバからメタ情報を自動的に再構築することを特徴としている。
【００１４】
請求項５は、請求項２の分散ファイルシステムにおける冗長化方法において、前記メタ情報の保存に際して、前記ユーザのＩ／Ｏ要求の書込み要求と並行して他のプロキシサーバに対して前記書込み要求の複製処理を行って各メタデータサーバで書込みを行い、書込み要求を処理するプロキシサーバに対して、各プロキシサーバの中から一つのプロキシサーバからの書込み要求に対する成功応答があった場合に、メタ情報を保存してファイルサーバ書込み終了の応答を前記ユーザに対し行うことを特徴としている。
【発明の効果】
【００１５】
本発明の分散ファイルシステムによれば、Ｉ／Ｏ要求の書込み要求を処理するプロキシサーバは、対応するメタデータサーバにファイルサーバへのメタ情報を書き込むとともに、他のプロキシサーバに対して前記書込み要求の複製処理を行うことでユーザからのアクセスに同期して他のプロキシサーバに対応するメタデータサーバに対して並列にメタ情報を保持してメタ情報の一貫性を保証することができるとともに、ファイルサーバに書込みデータの複製を保存することができる。
したがって、その後におけるいかなるタイミングでメタデータサーバに障害が発生した場合でも、他のメタデータサーバが常時メタ情報の複製を保持しているため、ユーザが他のメタデータサーバの複製メタ情報を介して、書込みを行ったファイルサーバからデータを読み込むことができる。
【００１６】
また、データ更新部により、複製処理部が保持する書込みエラー履歴からプロキシサーバ間での定期的なデータ補完処理が実行されるので、プロキシサーバへの書込み要求の複製失敗が生じた場合でも、正しいデータへの更新を行うことができる。
【００１７】
また、プロキシサーバ及びメタデータサーバの生存監視を行う生存監視サーバを設け、ＤＮＳサーバにおけるプロキシサーバ選択時の設定情報を更新することで、常時適切なプロキシサーバの選択を可能としている。
【００１８】
また、各プロキシサーバの中から一つのプロキシサーバからの書込み要求に対する成功応答があった場合に、メタ情報を保存してファイルサーバ書込み終了の応答を前記ユーザに対し行うようにすることで、ユーザに対する応答処理を速くすることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の分散ファイルシステムの実施形態の一例を示す全体構成モデル図である。
【図２】本発明の分散ファイルシステムにおける冗長化方法を説明するためのモデル図である。
【図３】本発明の分散ファイルシステムにおける書込み処理の手順を説明するためのシーケンス図である。
【図４】本発明の分散ファイルシステムにおける読込み処理（成功例）の手順を説明するためのシーケンス図である。
【図５】本発明の分散ファイルシステムにおける読込み処理（失敗例）の手順を説明するためのシーケンス図である。
【図６】分散ファイルシステムに使用するプロキシサーバの構成を説明するためのブロック図である。
【図７】分散ファイルシステムにおける要求複製発行（書込み）処理を説明するためのフローチャート図である。
【図８】分散ファイルシステムにおける要求複製受信（読込み）処理を説明するためのフローチャート図である。
【図９】分散ファイルシステムにおけるデータ送信処理を説明するためのフローチャート図である。
【図１０】分散ファイルシステムにおけるプロキシサーバの生存監視を説明するためのモデル図である。
【図１１】分散ファイルシステムにおけるメタデータサーバの生存監視を説明するためのモデル図である。
【図１２】分散ファイルシステムにおける異常応答履歴によるデータの補完を説明するためのモデル図である。
【図１３】従来の分散ファイルシステムの構成による冗長化方法を説明するためのモデル図である。
【発明を実施するための形態】
【００２０】
本発明の分散ファイルシステムについて、図面を参照しながら説明する。
本発明の冗長化方法が適用される分散ファイルシステムは、図１に示すように、複数のファイルサーバ４と、複数のファイルサーバ４をそれぞれ管理する複数のプロキシサーバ２と、各プロキシサーバ２に対して一対一に対応して設置されるメタデータサーバ３でネットワークが構成されている。ユーザ端末１との間でＩ／Ｏ要求（書込みや読込み）及び通知（書込み終了通知やデータ閲覧）を行うプロキシサーバ２により、ユーザ端末１によるファイル書込み要求やファイル読込み要求に対して、ファイルサーバ４への書込みやファイルサーバ４からの読込みが行われる。
プロキシサーバ群、メタデータサーバ群は、各サーバが正常に動作しているかを検知する生存監視サーバ６に接続されることで、動作状況が監視されている。生存監視サーバ６が得た各サーバ生存データにより、ＤＮＳサーバ５の設定内容が更新される。
この例では、各５台のプロキシサーバ２及びメタデータサーバ３を並列に動作させ、３台のユーザ端末１それぞれからファイルアクセス要求を受けたプロキシサーバ２が、他のプロキシサーバ２に書込み要求を複製し、５台分のメタデータサーバのメタ情報を更新するように動作する。
【００２１】
すなわち、図２に示すように、ユーザ端末１はＤＮＳサーバ５に対してアクセス先の問い合わせを行い、ユーザ端末１からのデータアクセス要求を受けた一のプロキシサーバ２は、他の全て（４つ）のプロキシサーバ２に書込み要求を複製する。書込み要求を複製した先の分散ファイルシステム内部では、複数のファイルサーバにデータを書き込むことにより可用性が保たれている。
【００２２】
次に、プロキシサーバ２及びメタデータサーバ３における書込み動作のシーケンスについて、図３及び図１を参照しながら説明する。
ユーザ端末１がファイルサーバ４に書込みを行う場合、先ず、ＤＮＳサーバ５に対してアクセス先の問い合わせを行う（ステップ３１）。
ＤＮＳサーバ５では、正常に動作しているプロキシサーバ２を選択し、アクセス先としてユーザ端末１に応答する（ステップ３２）。
ユーザ端末１では、ＤＮＳサーバ５からの応答を受け、複製元として選択されたプロキシサーバ２に対して書込み命令を出す（ステップ３３）。
書込み命令を受けた（複製元）プロキシサーバ２は、各プロキシサーバ２（この例では、複製元以外の残りの４つのプロキシサーバ）に対して書込み命令複製（ＩＯ命令の複製）を指示する（ステップ３４）。
複製元プロキシサーバ２は、ファイルサーバ群の中のファイルサーバ４にデータを書き込む処理を行う（ステップ３５）。
また、複製元プロキシサーバ２は、各複製先プロキシサーバ２から複製成功の応答を受信する（ステップ３６）。
また、複製元プロキシサーバ２は、複製先から成功応答があった場合に、ユーザ端末１に対して成功応答を送信する（ステップ３７）。
【００２３】
複製元プロキシサーバ２におけるファイルシステムの内部における処理について説明する。
複製元プロキシサーバ２では、対応するメタデータサーバ３に対して書込み先のファイルサーバ４を問い合わせる（ステップ４１）。
プロキシサーバ２には、メタデータサーバ３から書込み先となるファイルサーバ４に関する応答がなされ（ステップ４２）、それぞれのファイルサーバ４に対する書込み処理が行われる（ステップ４３）。そして、プロキシサーバ２は、ファイルサーバ４における書込み終了を受信する（ステップ４４）。
この処理は、他のプロキシサーバ（複製先プロキシサーバ）においても並列に行われるため、書込みは複数のファイルサーバにおいても行われるので、データが複数のファイルサーバで併存して記録される。
【００２４】
複製元プロキシサーバからの応答成功（ステップ３７）を返すタイミングは、複製元プロキシサーバにおける書込み終了の受信（ステップ４４）の後でも良く、また、他のプロキシサーバ（複製先プロキシサーバ）からの成功応答（ステップ３６）のいずれかの後でもよい。
そして、いずれかの成功応答があった場合に、ステップ３７のファイルサーバ書込み終了の応答（書込み要求に対する成功応答）を複製元プロキシサーバからユーザ端末に対し行うようにすれば、ユーザへの応答を速く行うことができる。
【００２５】
次に、プロキシサーバに対する読み込み動作のシーケンスについて、図４を参照しながら説明する。
ユーザ端末がファイルサーバに読込みを行う場合、ＤＮＳサーバに対してアクセス先の問い合わせを行うと（ステップ５１）、読込み先のプロキシサーバがユーザ端末に対して応答される（ステップ５２）。ユーザ端末は指定されたプロキシサーバから読込を行う（ステップ５３）。この時、プロキシサーバは、メタデータサーバを参照してデータが記録されたファイルサーバを特定して読込が行われ、ユーザ端末に成功応答の信号を送信する（ステップ５４）。
【００２６】
プロキシサーバからの読込み動作が１回で成功しない場合は、図５のシーケンスによって処理される。
ユーザ端末がファイルサーバに読込みを行う場合、ＤＮＳサーバに対してアクセス先の問い合わせを行うと（ステップ５１）、読込み先のプロキシサーバがユーザ端末に対して応答される（ステップ５２）。
ユーザ端末１は指定されたプロキシサーバ２から読込み（ステップ５３）に失敗した場合、他（複製先）のプロキシサーバ２に対して読込み命令を転送することで複製する（ステップ５５）。
複製先プロキシサーバ２は、メタデータサーバ３を参照してデータが記録されたファイルサーバ４を特定して読込が行われ、複製元プロキシサーバに２対して成功応答がなされ（ステップ５６）、ユーザ端末１に成功応答の信号を送信する（ステップ５４）。
【００２７】
次に、プロキシサーバ２を構成する各モジュールの概要について、図６を参照しながら説明する。
前記プロキシサーバ２は、ユーザからのＩ／Ｏ要求を受信するアクセス制御部２１と、前記メタデータサーバ２にアクセスし前記Ｉ／Ｏ要求の書込み要求に関するメタ情報を保存するためのクライアント機能を果たすファイルシステムアクセス部２５と、他のプロキシサーバ２に対し前記メタ情報の複製及び書込み履歴管理を行う複製処理部２２と、前記複製処理部２２が保持する書込みエラー履歴からプロキシサーバ間での定期的なデータ補完処理を実行する保管データ更新部２３と、書込みエラーの発生に対するデータの更新時期を予め設定した設定ファイルから読み込む環境設定取込部２４を備えて構成されている。
【００２８】
アクセス制御部（WebDAV等）２１は、外部アプリケーションと本ファイルシステムを利用可能とするための仲介を行うものである。
環境設定取込部２４は、データの更新（同期）時期について、環境設定ファイルから読込むものである。一定周期毎にデータの更新を行うことで、書込みエラーが発生した場合についても、データの補完を行うことで最新データの保持が可能となる。
複製処理部２２は、ファイルアクセス命令の他プロキシサーバ２への複製、応答受信解析、書込み履歴管理を行う。書込みエラーの履歴は、書込みエラーが生じた場合に後述するエラー履歴管理テーブルを作成することで管理されている。
データ更新部２３は、複製処理部２２が保持する書込みエラー履歴から、プロキシサーバ間での定期的なデータ補完処理を実行する。
ファイルシステムアクセス部２５は、ファイルシステムにアクセスするためのクライアント機能を果たす。従来技術として説明したGfarmを例にすると、Gfarmクライアントプログラムがこれに相当する。
【００２９】
続いて、要求複製発行（書込み）処理を行う場合の手順について、図７を参照しながら説明する。
アクセス制御部２１が外部アプリケーションから書込み要求を受けた場合、アクセス制御部２１は複製制御部２２に対してファイルアクセス要求を行う（ステップ１０１）。
複製制御部２２では、要求パラメタを抽出し（ステップ１０２）、要求複製先のプロキシサーバ２を選出し（ステップ１０３）、複製先状態チェックを行う（ステップ１０４）。
複製先となるプロキシサーバ２が存在する場合（ステップ１０５）には、当該プロキシサーバ２に対して複製要求を送信する（ステップ１０６）。複製先となるプロキシサーバ２が存在する限り、ステップ１０３〜１０６を繰り返す。
複製先となるプロキシサーバ２がなくなった場合（ステップ１０５）には、複製制御部２２が複製先からの応答を受信し（ステップ１０７）、応答内容の一時登録（エラー履歴の登録）を行う（ステップ１０８）。
指定件数受信済であるか（複製先の数と同数の応答があったか）を判断し（ステップ１０９）、まだの場合はステップ１０７〜１０９を繰り返し、受信済の場合は、アクセス制御部２１への応答を行う（ステップ１１０）。
【００３０】
次に、要求複製受信（読込み）処理を行う場合の手順について、図８を参照しながら説明する。
アクセス制御部２１が外部アプリケーションから読込み要求を受けた場合、アクセス制御部２１は複製制御部２２に対してファイルアクセス要求を行う（ステップ２０１）。
複製制御部２２では、自身のローカルファイルシステムからの読込み処理を行う（ステップ２０２）。ローカルファイルシステムからの読込み処理が成功した場合は（ステップ２０３）、そのまま処理が終了する。
ローカルファイルシステムからの読込み処理が失敗した場合は（ステップ２０３）、複製制御部２２では、要求パラメタを抽出し（ステップ２０４）、要求複製先のプロキシサーバ２を選出する（ステップ２０５）。
複製先となるプロキシサーバ２が存在する場合（ステップ２０６）には、当該プロキシサーバ２に対して複製要求を送信し（ステップ２０７）、複製先からの応答を受信する（ステップ２０８）。アクセス制御部２１への応答を行う（ステップ２１０）。複製先となるプロキシサーバがない場合（ステップ２０６）には、アクセス制御部２１への応答（エラー応答）が行われる（ステップ２１０）。
複製先からの応答による受信が失敗した場合は（ステップ２０９）、複製先となるプロキシサーバ２がなくなるまで（ステップ２０６）、ステップ２０５〜２０９を繰り返す。
【００３１】
次に、複製処理部２２、環境設定取込部２４及びデータ更新部２３で行われるデータ同期処理の手順について、図９を参照しながら説明する。
環境設定取込部２４の環境設定ファイルで指定された時間が経過（同期タイママイムアウト）した場合（ステップ３０１）、複製処理部２２に一時的に登録されたエラー履歴を参照し（ステップ３０２）、履歴がある場合には（ステップ３０３）、成功複製先から失敗複製先へデータ転送指示を行う（ステップ３０４）。複製処理部２２が転送結果を受信し（ステップ３０５）、転送が成功した場合は（ステップ３０６）、複製処理部２２に一時的に登録されたエラー履歴を削除し（ステップ３０７）、失敗した場合は履歴を削除することなしに、ステップ３０２〜３０７の処理について、履歴無になる（ステップ３０３）まで繰り返す。
【００３２】
次に、プロキシサーバ２またはメタデータサーバ３自体がダウンした場合の対処について、図１０及び図１１を参照しながら説明する。
プロキシサーバ２及びメタデータサーバ３に対しては、生存監視サーバ６により動作状況が監視されているので、プロキシサーバ２がダウンした場合、生存監視サーバ６がプロキシサーバ２のダウンを検知し、ダウンしたプロキシサーバ２にユーザ端末１からのアクセスが行かないように、生存監視サーバ６がＤＮＳサーバ５の設定を更新する（図１０）。
そして、ダウンしたプロキシサーバ２が復活した場合は、ＤＮＳサーバ５の設定を生存監視サーバ６が更新する。
【００３３】
メタデータサーバ３がダウンした場合、生存監視サーバ６がメタデータサーバ３のダウンを検知し、ダウンしたメタデータサーバ３と対のプロキシサーバ２に、ユーザ端末１からのアクセスが行かないように、生存監視サーバ６がＤＮＳサーバ５の設定を更新する（図１１）。
メタデータサーバ３がダウンしてからＤＮＳサーバ５の設定が更新されるまでの間に、ダウンしたメタデータサーバ３と対のクライアントサー２バにアクセスしたユーザに対しては、書込みの場合、要求複製先の成功をもって、ユーザには成功を返す。読込みの場合は、要求複製先からの読込みデータを返す。
【００３４】
プロキシサーバ２やメタデータサーバ３がダウンしたことの検出は、上述した生存監視サーバ６による監視以外に、複製要求の応答タイムアウトによっても検出し、上記同様のＤＮＳ更新によるプロキシサーバ２またはメタデータサーバ３の切り離し処理を行ってもよい。
尚、基本的には複数台のプロキシサーバ２やメタデータサーバ３が、同時にダウンすることは想定していない。
ダウンしたメタデータサーバ３が復活した場合、ＤＮＳサーバ５の設定を生存監視サーバ６が自動更新する。
【００３５】
次に、プロキシサーバ２への複製に際して書込みエラーが生じた場合のデータ補完処理について、図１２を参照しながら説明する。
プロキシサーバＡが複製元となる場合、プロキシサーバＢ，Ｃ，Ｄ，Ｅにおいて書込み要求（file１）の複製が行われる。この時、プロキシサーバＥでの複製が書込みエラーにより失敗した場合、プロキシサーバＡの複製処理部２２では、エラー履歴管理テーブルが作成される。エラー履歴管理テーブルには、成功複製先プロキシサーバ、失敗複製先プロキシサーバ、失敗したファイル名、原因の情報が記録される。
そして、環境設定取込部２４において入力された環境設定ファイルで定義される周期毎（データ更新時）に、データ更新部２３におけるデータ更新が行われる。この場合、データ更新時において、プロキシサーバＡは、プロキシサーバＢ，Ｃ，Ｄに書込み要求（file１）が正常に複製されたことを認識しているので、その中から例えばプロキシサーバＣを選択して補完指示命令を出し、プロキシサーバＣからプロキシサーバＥに書込み要求（file１）の補完を行うことでデータが再構築される。
【００３６】
同様に、プロキシサーバＢが複製元となる場合は、プロキシサーバＡ，Ｃ，Ｄ，Ｅにおいて書込み要求（file２）の複製が行われる。この時、プロキシサーバＣでの複製がタイムアウトにより失敗した場合、プロキシサーバＢの複製処理部２２では、エラー履歴管理テーブルが作成される。エラー履歴管理テーブルには、成功複製先プロキシサーバ、失敗複製先プロキシサーバ、失敗したファイル名、原因の情報が記録される。
そして、環境設定取込部２４において入力された環境設定ファイルで定義される周期毎（データ更新時）に、データ更新部２３におけるデータ更新が行われる。この場合、データ更新時において、プロキシサーバＢは、プロキシサーバＡ，Ｄ，Ｅに書込み要求（file２）が正常に複製されたことを認識しているので、その中から例えばプロキシサーバＤを選択して補完指示命令を出し、プロキシサーバＤからプロキシサーバＣに書込み要求（file２）の補完を行うことでデータが再構築される。
【００３７】
すなわち、プロキシサーバ２やメタデータサーバ３のダウンにともなうデータの欠落を補うため、ユーザの要求処理とは独立なタイミング（設定ファイルに定義する周期）に、各プロキシサーバが保持する過去の書込みエラー履歴をもとに、他のファイルシステムにデータを補うようになっている。エラー履歴のみに基づいた仕組みにより、各プロキシサーバ２が少量の処理能力を割くことでデータの一貫性を維持できる。
【００３８】
上述した分散ファイルシステムによれば、書込み終了後にいかなるタイミングでメタデータサーバ３に障害が発生した場合でも、他のプロキシサーバ２に対して書込み要求の複製が行われているので、プロキシサーバ２に対して対となるメタデータサーバ３が常時メタ情報の複製を保持しているため、ユーザが書込みを行ったデータの一部を取り出せなくなるというリスクを回避しつつサービスを継続することが可能となる。
【００３９】
また、データ更新部２３により、複製処理部２２が保持する書込みエラー履歴からプロキシサーバ間での定期的なデータ補完処理が実行されるので、プロキシサーバ２への書込み要求の複製失敗が生じた場合でも、正しいデータへの更新を行うことができる。
【００４０】
また、プロキシサーバ２及びメタデータサーバ３の生存監視を行う生存監視サーバ６を設け、ＤＮＳサーバ５におけるプロキシサーバ選択時の設定情報を更新することで、常時適切なプロキシサーバ２の選択を可能としている。
【００４１】
また、各プロキシサーバ２の中から一つのプロキシサーバ２からの書込み要求に対する成功応答があった場合に、メタ情報を保存してファイルサーバ書込み終了の応答をユーザに対し行うようにすることで、全てのプロキシサーバ２からの応答を待たずにデータの対障害性が確保されたことをユーザに対して応答することができる。
【符号の説明】
【００４２】
１…ユーザ端末、  ２…プロキシサーバ、  ３…メタデータサーバ、  ４…ファイルサーバ、  ５…ＤＮＳサーバ、  ６…生存監視サーバ、  ２１…アクセス制御部、  ２２…複製制御部、  ２３…データ更新部、  ２４…環境設定取込部、  ２５…ファイルシステムアクセス部。
【図１】
2012008934.tif 000003
【図２】
2012008934.tif 000004
【図３】
2012008934.tif 000005
【図４】
2012008934.tif 000006
【図５】
2012008934.tif 000007
【図６】
2012008934.tif 000008
【図７】
2012008934.tif 000009
【図８】
2012008934.tif 000010
【図９】
2012008934.tif 000011
【図１０】
2012008934.tif 000012
【図１１】
2012008934.tif 000013
【図１２】
2012008934.tif 000014
【図１３】
2012008934.tif 000015