(57)【特許請求の範囲】
【請求項１】
第１のデータサーバ、第２のデータサーバ及び第３のデータサーバを含む複数のデータサーバを含む分散ファイルシステムにおいて、
前記複数のデータサーバの各々は、
ファイル処理システムから受信したファイルが分割されたチャンクに対する格納リクエストに対応して前記チャンクを含む複数のチャンクの複製がグループ化されたディレクトリの複製を格納するチャンク格納部と、
前記ファイル処理システムから受信したチャンクに対する演算リクエストに対応して前記ディレクトリの複製に含まれる前記チャンクの複製の演算を行うチャンク演算実行部と、
前記チャンクの複製をコピーするチャンクコピー部と、
前記チャンクの複製に対する書き込みロックを行うロック実行部と、
を備え、
前記分散ファイルシステムが前記第１のデータサーバに発生した障害を検知すると、
前記第１のデータサーバに格納されたチャンクの複製と同一のチャンクの複製を格納していない前記第３のデータサーバの書き込みロック実行部は、前記同一のチャンクの複製を格納している前記第２のデータサーバの前記同一のチャンクの複製及び前記同一のチャンクの複製を格納している他のデータサーバが格納するディレクトリの複製に含まれる前記同一のチャンクの複製に対する書き込みロックを行い、
前記第３のデータサーバのチャンクコピー部は、前記第２のデータサーバの前記同一のチャンクの複製をコピーして前記第１のデータサーバに格納されたチャンクの複製を再生成し、
前記第３のデータサーバのチャンク格納部は、再生成された前記チャンクの複製を格納し、
前記第３のデータサーバの書き込みロック実行部は、前記チャンクの複製のコピーが完了すると、前記第２のデータサーバ及び前記他のデータサーバに書き込みロック解除メッセージを送信して前記書き込みロックを解除し、
前記第３のデータサーバのチャンクコピー部によって前記チャンクの複製のコピーが完了する前に前記チャンクの複製に対して書き込み演算が要求された場合、前記第３のデータサーバは、前記チャンクの複製に対する書き込み演算が成功したものと応答し、前記書き込みロックの解除後、前記第３のデータサーバ、前記第２のデータサーバ及び前記他のデータサーバは、前記同一のチャンクの複製に対する書き込み演算を行い、
前記第１のデータサーバは前記第３のデータサーバとはお互い異なるディレクトリを持つチャンクの複製を格納する、ことを特徴とする分散ファイルシステム。
【請求項２】
第１のデータサーバ、第２のデータサーバ及び第３のデータサーバを含む複数のデータサーバを含む分散ファイルシステムが行う分散ファイル処理方法において、
前記複数のデータサーバの各々は、
ファイル処理システムから受信したファイルが分割されたチャンクに対する格納リクエストに対応して前記チャンクを含む複数のチャンクの複製がグループ化されたディレクトリの複製を格納し、
前記ファイル処理システムから受信した前記ディレクトリの複製に含まれるチャンクに対する演算リクエストに対応して前記チャンクの複製の演算を行い、
前記分散ファイルシステムが前記第１のデータサーバに発生した障害を検知すると、
前記第１のデータサーバに格納されたチャンクの複製と同一のチャンクの複製を格納していない前記第３のデータサーバが、前記同一のチャンク複製を格納している前記第２のデータサーバの前記同一のチャンクの複製及び前記同一のチャンク複製を格納している他のデータサーバが格納するディレクトリの複製に含まれる前記同一のチャンクの複製に対する書き込みロックを行い、
前記第３のデータサーバが前記第２のデータサーバの前記同一のチャンクの複製をコピーして前記第１のデータサーバに格納されたチャンクの複製を再生成し、
前記第３のデータサーバが再生成された前記チャンクの複製を格納し、
前記チャンクの複製のコピーが完了すると、前記第３のデータサーバが、前記第２のデータサーバ及び前記他のデータサーバに書き込みロック解除メッセージを送信して前記書き込みロックを解除し、
前記第３のデータサーバのチャンクコピー部によって前記チャンクの複製のコピーが完了する前に前記チャンクの複製に対して書き込み演算が要求された場合、前記第３のデータサーバは、前記チャンクの複製に対する書き込み演算が成功したものと応答し、前記書き込みロックの解除後、前記第３のデータサーバ、前記第２のデータサーバ及び前記他のデータサーバは、前記同一のチャンクの複製に対する書き込み演算を行い、
前記第１のデータサーバは前記第３のデータサーバとはお互い異なるディレクトリを持つチャンクの複製を格納することを特徴とする分散ファイル処理方法。
【請求項３】
請求項２の方法を実行するためのプログラムが記録されたコンピュータで読み出し可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルデータをチャンク単位で分散処理するシステムおよび方法に関し、より詳しくは、大容量のファイルデータを分割してチャンクを生成し、生成されたチャンクを分散して格納および演算するシステムおよび方法に関する。
【背景技術】
【０００２】
近年、大量のファイルデータを格納するために、複数の低価格のサーバを用いて分散ファイルシステムを構築する方法が提示されている。このような分散ファイルシステムでは、複数の低価格のサーバがファイルデータを分散して処理するため、費用および性能の面で優れた効果を発揮する。分散ファイルシステムを構成するサーバは、仮想の大規模な格納装置を構成することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】韓国公開特許第１０−２０１１−００７０６５９号公報
【０００４】
ただし、低価格のサーバを用いる場合、ファイルデータに障害が頻繁に発生する。すなわち、低価格のサーバを用いると、分散ファイルシステムを構成するためのハードウェア費用を減らすことができるという長所はあるものの、同時に低価格のサーバを利用することにより障害が高い頻度で発生するため、システムの動作が中断されてしまうという短所も同時に存在する。
【０００５】
したがって、大容量のファイルデータを低価格のサーバを用いて効率的に格納するための方法が要求される。また、低価格のサーバを用いることによって発生する障害を効率よく克服することができる方法も要求される。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、大容量のファイルデータを一定のサイズのチャンクに分割して、分散ファイルシステムにオーナー単位に応じて分散格納することによって、大容量のファイルデータを効率よく低価格のサーバに格納することができるシステムおよび方法を提供する。
【０００７】
本発明の目的は、同じ内容のチャンクの複製を予め設定された数だけデータサーバに分散格納することによって、１つのチャンクの複製が故障しても該チャンクの複製を演算することができるため、ファイル処理の利用性を向上させることができるシステムおよび方法を提供する。
【０００８】
本発明の目的は、チャンクの複製が故障して損傷しても、チャンクファイルに対する変更演算をロギングすることなく最新状態の複製をコピーすることによってチャンクの複製を復旧することができるシステムおよび方法を提供する。
【課題を解決するための手段】
【０００９】
本発明の一実施形態に係るファイル処理システムは、少なくとも１つの分散ファイルシステムのうちいずれか１つの分散ファイルシステムをターゲットに指定するシステムターゲット部と、ターゲットに指定された分散ファイルシステムに格納するためのファイルを分割してファイルブロックとして構成されたチャンクを生成するチャンク生成部と、ターゲットに指定された分散ファイルシステムに生成されたチャンクについて格納リクエストし、チャンクの格納結果を受信するチャンク演算リクエスト部とを備えてもよい。
【００１０】
本発明の一実施形態に係る分散ファイルシステムは、少なくとも１つのデータサーバを含み、データサーバは、ファイル処理システムから受信したファイルが分割されたチャンクに対する格納リクエストに対応してチャンクの複製を格納するチャンク格納部と、ファイル処理システムから受信したチャンクに対する演算リクエストに対応してチャンクの複製の演算を行うチャンク演算実行部とを備えてもよい。
【００１１】
本発明の一実施形態によると、データサーバは、第１データサーバに格納されたチャンクの複製が第１データサーバの障害によって損傷した場合、チャンクの複製と同一の複製本を格納する第２データサーバからチャンクの複製をコピーするチャンクコピー部をさらに備えてもよい。
【００１２】
本発明の一実施形態によると、データサーバは、チャンクの複製に対するコピー進行の過程を考慮して、第２データサーバが格納するチャンクの複製に書き込みロックを行う書き込みロック実行部をさらに備えてもよい。
【００１３】
本発明の一実施形態に係るファイル格納方法は、少なくとも１つの分散ファイルシステムのうちいずれか１つの分散ファイルシステムをターゲットに指定し、ターゲットに指定された分散ファイルシステムに格納するためのファイルが分割されてファイルブロックとして構成されたチャンクを生成し、ターゲットに指定された分散ファイルシステムに生成されたチャンクについて格納リクエストしてチャンクの格納結果を受信することを含んでもよい。
【００１４】
本発明の一実施形態に係る少なくとも１つのデータサーバを含む分散ファイルシステムが行う分散ファイル処理方法において、データサーバは、ファイル処理システムから受信したファイルが分割されたチャンクに対する格納リクエストに対応してチャンクの複製を格納し、ファイル処理システムから受信したチャンクに対する演算リクエストに対応してチャンクの複製の演算を行ってもよい。
【発明の効果】
【００１５】
本発明の一実施形態によると、大容量のファイルデータを一定のサイズのチャンクに分割して、分散ファイルシステムにオーナー単位に応じて分散格納することによって、大容量のファイルデータを効率よく低価格のサーバに格納することができる。
【００１６】
本発明の一実施形態によると、同じ内容のチャンクの複製を予め設定された数だけデータサーバに分散格納することによって、１つのチャンクの複製が故障しても該チャンクの複製を演算することができるため、ファイル処理の利用性を向上させることができる。
【００１７】
本発明の一実施形態によると、チャンクの複製が故障して損傷しても、チャンクファイルに対する変更演算をロギングすることなく最新状態の複製をコピーすることによってチャンクの複製を復旧することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係るファイル処理過程を説明するための全体システム構成を示す図である。
【図２】本発明の一実施形態に係るファイル処理システムの細部構成を示す図である。
【図３】本発明の一実施形態に係るファイルが格納された一例を示す図である。
【図４】本発明の一実施形態に係る分散ファイルシステムの細部構成を示す図である。
【図５】本発明の一実施形態に係るチャンクの複製を再生成するシステムを示す図である。
【図６】本発明の一実施形態に係るファイルを格納する過程を示すフローチャートである。
【図７】本発明の一実施形態に係るチャンクの複製を再生成する過程を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、添付の図面に記載された内容を参照して本発明に係る実施形態を説明する。ただし、本発明が実施形態によって制限又は限定されることはない。各図面に提示された同一の参照符号は同一の構成を示す。
【００２０】
図１は、本発明の一実施形態に係るファイル処理過程を説明するための全体システム構成を示す図である。
【００２１】
クライアントシステム１０１は、ファイル処理システム１００にファイルデータ（以下、ファイルともいう）に対する格納リクエストを送信してもよい。例えば、クライアントシステム１０１は、１００ＧＢのファイルを格納することをファイル処理システム１００にリクエストしてもよい。このとき、ファイル処理システム１００は、クライアントシステム１０１に１００ＧＢに対応するネットワーク上のディスクを提示してもよい。
【００２２】
これによって、ファイル処理システム１００は、ファイルを少なくとも１つのチャンク（ｃｈｕｎｋ）に分割し、分割されたチャンクについて分散ファイルシステム１０２に格納リクエストしてもよい。これによって、分散ファイルシステム１０２は、チャンクを分散格納してもよい。このとき、分散ファイルシステム１０２は、予め設定された数に対応するチャンクの複製を分散格納してもよい。分散ファイルシステム１０２は、ファイル処理システム１００とネットワークを介して接続されてもよく、分散ファイルシステム１０２の数は少なくとも１つであってもよい。
【００２３】
以下は、ファイル処理システム１００および分散ファイルシステム１０２を中心に説明する。
【００２４】
図２は、本発明の一実施形態に係るファイル処理システムの細部構成を示す図である。
【００２５】
図２を参照すると、ファイル処理システム１００は、システムターゲット部２０１、チャンク生成部２０２、およびチャンク演算リクエスト部２０３を備えてもよい。
【００２６】
システムターゲット部２０１は、少なくとも１つの分散ファイルシステムのうちいずれか１つの分散ファイルシステム１０２をターゲットに指定してもよい。一例として、クライアントシステム１０１は、ＯＳカーネル（ｋｅｒｎｅｌ）に搭載されたｉＳＣＳＩ初期化モジュールによって、システムターゲット部２０１のｉＳＣＳＩターゲットエミュレーション（ｔａｒｇｅｔ  ｅｍｕｌａｔｉｏｎ）を動作させてもよい。これによって、システムターゲット部２０１のｉＳＣＳＩターゲットエミュレーションは、ネットワーク上に存在する少なくとも１つの分散ファイルシステム１０２のうちいずれか１つの分散ファイルシステムをターゲットに指定してもよい。このとき、システムターゲット部２０１は、ＩＰアドレスによってｉＳＣＳＩターゲットとなる分散ファイルシステム１０２をターゲットにしてもよい。
【００２７】
チャンク生成部２０２は、ターゲットに指定された分散ファイルシステム１０２に格納するためのファイルを分割してファイルブロックとして構成されたチャンクを生成してもよい。チャンク生成部２０２は、ファイルを一定のサイズのチャンクに分割してもよい。すなわち、チャンクは、クライアントシステム１０１が格納リクエストしたファイルが分割されたものであり、複数のファイルブロックとして構成されてもよい。
【００２８】
チャンク演算リクエスト部２０３は、ターゲットにされた分散ファイルシステム１０２に生成されたチャンクを格納リクエストし、チャンクの格納結果を受信してもよい。また、チャンク演算リクエスト部２０３は、チャンクを生成する（ｃｒｅａｔｅ）演算、チャンクを読み出す（ｒｅａｄ）演算、チャンクを書き込む（ｗｒｉｔｅ）演算を分散ファイルシステム１０２にリクエストしてもよい。
【００２９】
一例として、分散ファイルシステム１０２は、チャンク演算リクエスト部２０３からのチャンクの格納リクエストに対応してチャンクの複製を分散格納する複数のデータサーバを含んでもよい。データサーバは、ファイルを格納するディスク空間として、仮想の大規模の格納空間を構成してもよい。このとき、分散ファイルシステム１０２は、オーナー（ｏｗｎｅｒ）単位に応じてチャンクをグループ化して複数のデータサーバそれぞれに分散格納してもよい。オーナーは、データサーバにおけるチャンクの複製が格納されたディレクトリに基づいて決定されてもよい。すなわち、オーナーは、チャンクの複製が格納されたデータサーバにおけるディレクトリに対応してもよい。言い換えれば、チャンクの複製は、チャンクグループに対応するオーナーによって格納されてもよい。すなわち、分散ファイルシステム１０２は、ファイルを分割したチャンクをオーナー単位に応じて予め設定された数に複製し、それを分散格納することによってファイルをより効率よく格納することができる。
【００３０】
また、チャンクの複製を格納する複数のデータサーバのうちいずれか１つに障害が発生して格納されたチャンクの複製が損傷した場合、例えば、チャンクの複製が削除されたり一部消失したり、変更されるなどの場合、分散ファイルシステム１０２は、当該チャンクの複製と同一の複製を格納している他のデータサーバを用いて、当該チャンクの複製を再生成してもよい。チャンクの複製は、特定の表示に応じてその状態が表示されてもよい。
【００３１】
図３は、本発明の一実施形態に係るファイルが格納された一例を示す図である。
【００３２】
ファイル処理システム１００は、クライアントシステム１０１からファイル３０１の格納リクエストを受信してもよい。これによって、ファイル処理システム１００は、ファイル３０１を一定のサイズのチャンクに分割してもよい。図３から分かるように、ファイル３０１が１００ＧＢである場合、ファイル処理システム１００は、ファイル３０１を１００個のチャンク３０６〜３１３に分割してもよい。すなわち、１つのチャンクは１ＧＢであってもよい。
【００３３】
これによって、ファイル処理システム１００は、生成されたチャンク３０６〜３１３をファイル３０２に設定してもよい。そして、分散ファイルシステム１０２は、生成されたチャンクをオーナー単位に応じてグループ化してデータサーバ３１４〜３１９に分散格納してもよい。図３を参照すると、４個のチャンク３０６〜３０９が１つのオーナー（ｏｗｎｅｒ１）３０４として構成されることが分かる。そして、４個のチャンク３１０〜３１３が１つのオーナー（ｏｗｎｅｒ２）３０５として構成されることが分かる。
【００３４】
このとき、データサーバ３１４〜３１９は、チャンクの複製をオーナー単位に応じて分散格納してもよい。図３を参照すると、チャンクの複製は、３つ生成されてオーナー単位に応じてデータサーバ３１４〜３１９に格納されてもよい。すなわち、４つのチャンク３０６〜３０９について、３つの複製がオーナー（ｏｗｎｅｒ１）３０４として構成されてデータサーバ（１）３１４、データサーバ（２）３１５、およびデータサーバ（３）３１６に分散格納されてもよい。そして、４つのチャンク３１０〜３１３について、３つの複製がオーナー（ｏｗｎｅｒ２）３０５として構成されてデータサーバ（４）３１７、データサーバ（５）３１８、およびデータサーバ（６）３１９に分散格納されてもよい。
【００３５】
ファイル処理システム１００がチャンク３０６に対する読み出し演算を分散ファイルシステム１０２にリクエストする場合、データサーバ（１）３１４、データサーバ（２）３１５、またはデータサーバ（３）３１６のうちいずれか１つのデータサーバがチャンク３０６に対する読み出し演算を行なってもよい。ただし、ファイル処理システム１００が所定のチャンクに対する生成演算または書き込み演算をリクエストする場合、チャンクの複製に関連する３つのデータサーバ全てで演算を行う必要がある。すなわち、チャンクの複製は同じ内容で分散格納されなければならないため、内容が変更される生成演算または書き込み演算を行う場合、関連のデータサーバ全てで演算に参加する必要がある。
【００３６】
図３には示していないが、分散ファイルシステム１０２は、メタデータサーバを含んでもよい。メタデータサーバは、オーナー単位のチャンクの複製が格納されたデータサーバの位置情報を格納してもよい。ファイル処理システム１００は、メタデータサーバによってチャンクの複製が格納された位置情報を確認した後、処理しようとするチャンクの複製が格納されたデータサーバに対して演算リクエストを行なってもよい。
【００３７】
図３では、チャンクの複製が３つ生成されることについて説明したが、システムの構成に応じてその複製の数は変わってもよい。そして、システムの構成に応じて、オーナーはファイル３０２の部分集合形態に設定されてもよい。
【００３８】
図４は、本発明の一実施形態に係る分散ファイルシステムの細部構成を示す図である。
【００３９】
図４を参照すると、分散ファイルシステム１０２は、データサーバ４００を備えてもよい。このとき、分散ファイルシステム１０２は少なくとも１つのデータサーバ４００を含んでもよい。データサーバ４００は、チャンク格納部４０１、チャンク演算実行部４０２、書き込みロック実行部４０３、およびチャンクコピー部４０４を備えてもよい。
【００４０】
チャンク格納部４０１は、ファイル処理システム１００から受信したファイルが分割されたチャンクに対する格納リクエストに対応して、チャンクの複製を格納してもよい。
【００４１】
このとき、チャンクは、ファイルが一定のサイズに分割されたものであり、複数のファイルブロックを構成してもよい。データサーバ４００は、少なくとも１つのチャンクの複製のいずれか１つをチャンク格納部４０１に格納してもよい。一例として、チャンク格納部４０１は、チャンクの複製をオーナー単位に応じて格納してもよい。１つのオーナーは少なくとも１つのチャンクの複製を含んでもよい。
【００４２】
チャンク演算実行部４０２は、ファイル処理システム１０１から受信したチャンクに対する演算リクエストに対応して、チャンクの複製に対する演算を行なってもよい。ファイル処理システム１０１は、チャンクに対する生成演算、書き込み演算、または読み出し演算を分散ファイルシステム１０２にリクエストしてもよい。
【００４３】
分散ファイルシステム１０２を構成しているデータサーバのうちいずれか１つのデータサーバで障害が発生した場合、障害が発生したデータサーバが格納しているチャンクの複製は損傷する。チャンクの複製は、予め設定した数だけデータサーバに格納される必要があるため、損傷したチャンクの複製を復旧する必要がある。このとき、分散ファイルシステム１０２は、データサーバの障害によって損傷したチャンクの複製を他のデータサーバによって再生成（ｒｅｐｌｉｃａ  ｍｉｇｒａｔｉｏｎ）してチャンクの複製を復旧してもよい。
【００４４】
チャンクコピー部４０４は、第１データサーバに格納されたチャンクの複製が第１データサーバの障害によって損傷した場合、例えば、チャンクの複製が削除されたり一部消失したり、変更されるなどの場合、当該チャンクの複製と同一の複製を格納する第２データサーバからチャンクの複製をコピーしてもよい。チャンクの複製の状態は、Ｎ（Ｎｏｒｍａｌ）、Ｆ（Ｆａｉｌ）、およびＭ（Ｍｉｇｒａｔｉｏｎ）に分類されてもよい。具体的に、Ｎはチャンクの複製が正常状態であり、読み出し／書き込みの演算が行われることができる状態を意味する。そして、Ｆはチャンクの複製が損傷した状態であり、読み出し／書き込み演算が行われることができない状態を意味する。また、Ｍはチャンクの複製が再生成されることができる状態であり、読み出し演算が行われることができず、書き込み演算のみが行われることができる状態を意味する。
【００４５】
チャンクの複製を再生成する過程について図５を参照して具体的に説明する。
【００４６】
書き込みロック実行部４０３は、損傷したチャンクの複製に対するコピー進行の過程を考慮して、第２データサーバが格納するチャンクの複製に書き込みロック（ｗｒｉｔｅ  ｌｏｃｋ）を行なってもよい。もし、チャンクコピー部４０４がチャンクの複製をコピーする過程でチャンクの複製の内容が変更される場合、再びコピーしなければならない問題があるためである。
【００４７】
したがって、書き込みロック実行部４０３は、損傷したチャンクの複製に対するコピー進行の過程を考慮して、第２データサーバが格納するチャンクの複製に書き込みロックを行なってもよい。このとき、書き込みロック実行部４０３は、チャンクコピー部４０４がコピーを行う前にコピーしようとするチャンクの複製と同一の複製に対して書き込みロックを行って演算を待機する。そして、チャンクコピー部４０４がチャンクの複製のコピーを完了すると、書き込みロック実行部４０３はチャンクの複製に対する書き込みロックを解除してもよい。
【００４８】
図５は、本発明の一実施形態に係るチャンクの複製を再生成するシステムを示す図である。
【００４９】
ステージ１は、分散ファイルシステム１０２のデータサーバ５０１〜５０６それぞれにオーナー単位に応じて格納されたチャンクの複製５０７〜５１２が正常状態（Ｎ）であることを意味する。
【００５０】
ステージ２は、データサーバのＤＳ（２）５０２に障害が発生した場合、ＤＳ（２）５０２が格納しているチャンクの複製５０８が損傷した場合を意味する。この場合、ＤＳ（２）５０２が格納したオーナーに属する全てのチャンクの複製５０８の状態は故障状態（Ｆ）に変更される。
【００５１】
これによって、分散ファイルシステム１０２は、損傷したチャンクの複製５０８を再生成して復旧作業を行なってもよい。このとき、分散ファイルシステム１０２は、損傷したチャンクの複製５０８を再生成して格納する新しいデータサーバを選定してもよい。図５を参照すると、分散ファイルシステム１０２は、チャンクの複製５０８を再生成して格納する新しいサーバをＤＳＬ（５）５０５に設定した。または、分散ファイルシステム１０２は、チャンクの複製５０８を再生成して格納する新しいサーバをチャンクの複製を格納しないデータサーバに設定してもよい。
【００５２】
新しいデータサーバが設定されると、チャンクの複製５１４の状態は移動状態（Ｍ）に変更される。まだチャンクの複製５１４のコピー過程が行われていないため、図５で示すように、ＤＳＬ（５）５０５にチャンクの複製５１４は存在しない。
【００５３】
これによって、ＤＳＬ（５）５０５は、損傷したチャンクの複製５０８と同一の複製を格納しているデータサーバのＤＳ（１）５０１またはＤＳ（３）５０３のうちいずれか１つからチャンクの複製５０７または５０９をコピーしてもよい。
【００５４】
このとき、ＤＳＬ（５）５０５は、チャンクの複製をコピーするとき、コピー中にチャンクの複製が変更されることを防ぐために次のような動作を行なってもよい。一例として、ＤＳＬ（５）５０５は、チャンクの複製５０７または５０９をコピーする前にＤＳ（１）５０１が格納しているチャンクの複製５０７およびＤＳ（３）５０３が格納しているチャンクの複製５０９に対して書き込みロックを行なってもよい。このとき、ＤＳＬ（５）５０５は、ＤＳ（１）５０１およびＤＳ（３）５０３それぞれにメッセージを送信し、チャンクの複製５０７および５０９に対する書き込み演算のリクエストを受信した場合は待機するようにリクエストする。
【００５５】
その後、ＤＳＬ（５）５０５がチャンクの複製５０７または５０９をコピー完了すると、ＤＳＬ（５）５０５は、ＤＳ（１）５０１が格納しているチャンクの複製５０７およびＤＳ（３）５０３が格納しているチャンクの複製５０９に対する書き込みロックを解除してもよい。このとき、ＤＳＬ（５）５０５は、ＤＳ（１）５０１およびＤＳ（３）５０３それぞれに書き込みロック解除メッセージを送信し、ＤＳ（１）５０１、ＤＳ（３）５０３、およびＤＳＬ（５）５０５は、チャンクの複製５０７，５０９，５１４それぞれに対して書き込み演算を行なってもよい。
【００５６】
もし、ＤＳＬ（５）５０５で再生成されているチャンクの複製５１４に対してチャンクに対する書き込み演算がリクエストされる場合、ＤＳＬ（５）５０５は、次のように処理してもよい。具体的に、ＤＳＬ（５）５０５に書き込み演算を要求されるチャンクが存在する場合、当該チャンクがコピー完了した状態である。これによって、ＤＳＬ（５）５０５は、正常状態の複製と同一の書き込み演算を行った後に演算結果を応答してもよい。反対に、ＤＳＬ（５）５０５に書き込み演算を要求されるチャンクが存在しない場合、当該チャンクがコピー完了しない状態である。これによって、ＤＳＬ（５）５０５は、当該チャンクに対する書き込み演算は成功したものと応答してもよい。なぜならば、当該チャンクがコピー完了すると、同一のチャンクの複製を格納するデータサーバ間に同期化が行われて、書き込み演算が行われたチャンクがコピー完了するためである。
【００５７】
もし、チャンクの複製をコピーして再生成する過程でＤＳＬ（５）５０５に障害が発生すると、再生成中であるチャンクの複製５１４は故障状態に変更されてもよい。これによって、コピー中であるチャンクの複製５１４の状態は移動状態（Ｍ）から故障状態（Ｆ）に転換される。そして、ＤＳＬ（５）５０５は、ＤＳ（１）５０１またはＤＳ（３）５０３のうちいずれか１つからチャンクの複製５０７または５０９を初めからコピーすることでチャンクの複製５１４を再生成してもよい。
【００５８】
ステージ３は、チャンクの複製５０８の再生成の過程が完了した後を意味する。これによって、ＤＳＬ（５）５０５が格納しているチャンクの複製５１４の状態は正常状態（Ｎ）となる。
【００５９】
図６は、本発明の一実施形態に係るファイルを格納する過程を示すフローチャートである。
【００６０】
クライアントシステム１０１は、ファイル処理システム１００にファイルを格納することをリクエストしてもよい（Ｓ６０１）。これによって、ファイル処理システム１００は、複数の分散ファイルシステムのうちファイルを格納するための分散ファイルシステム１０２をターゲットに指定してもよい（Ｓ６０２）。その後、ファイル処理システム１００は、クライアントシステム１０１が格納リクエストしたファイルを一定のサイズの複数のチャンクに分割してもよい（Ｓ６０３）。そして、ファイル処理システム１００は、ターゲットに指定された分散ファイルシステム１０２にオーナー単位に応じて複数のチャンクの格納をリクエストしてもよい（Ｓ６０４）。これによって分散ファイルシステム１０２は、複数のデータサーバに格納リクエストされたチャンクの複製を分散格納してもよい（Ｓ６０５）。分散ファイルシステム１０２は、複数のチャンクの格納結果をファイル処理システム１００に応答してもよい（Ｓ６０６）。
【００６１】
その後、ファイル処理システム１００は、チャンクに対する演算をリクエストしてもよい（Ｓ６０７）。これによって、分散ファイルシステム１０２は、複数のデータサーバに分散格納されたチャンクに対する演算を行なってもよい（Ｓ６０８）。このとき、分散ファイルシステム１０２は、演算リクエストされたチャンクの複製に対して演算を行なってもよい。チャンクに対する演算が行われると、分散ファイルシステム１０２はチャンクの演算結果をファイル処理システム１００に応答してもよい（Ｓ６０９）。
【００６２】
図７は、本発明の一実施形態に係るチャンクの複製を再生成する過程を示すフローチャートである。
【００６３】
具体的に、図７は、図５に示されたデータサーバ（２）５０２が格納しているチャンクの複製が故障した場合、データサーバ（１）５０１、データサーバ（３）５０３、およびデータサーバ（５）５０５を用いてチャンクの複製を再生成する過程を示す。
【００６４】
データサーバ（１）５０１、データサーバ（２）５０２、およびデータサーバ（３）５０３は、それぞれ同じ内容のチャンクの複製を格納してもよい（Ｓ７０１、Ｓ７０２、Ｓ７０３）。このとき、チャンクの複製状態はそれぞれ正常状態（Ｎ）である。
【００６５】
このとき、データサーバ（２）５０２に障害が発生してチャンクの複製本が損傷した場合（Ｓ７０４）、チャンクの複製の状態は正常状態（Ｎ）から故障状態（Ｆ）に変更される（Ｓ７０５）。これによって、分散ファイルシステム１０２は、チャンクの複製を再生成して格納するデータサーバ（５）５０５を選定してもよい（Ｓ７０６）。このとき、故障したチャンクの複製の状態は故障状態（Ｆ）から移動状態（Ｍ）に変更される。また、損傷した当該チャンクの複製は削除されてもよい（Ｓ７０７）。
【００６６】
その後、データサーバ（５）５０５は、削除されたチャンクの複製と同一の複製を格納しているデータサーバ（１）５０１およびデータサーバ（３）５０３にそれぞれチャンクの複製に対して書き込みロックをリクエストしてもよい（Ｓ７０８、Ｓ７０９）。書き込みロックされた後、データサーバ（５）５０５は、データサーバ（３）５０３から正常状態（Ｎ）のチャンクの複製をコピーしてもよい（Ｓ７１０）。このとき、データサーバ（５）５０５は、データサーバ（１）５０１からも同一にチャンクの複製をコピーしてもよい。
【００６７】
チャンクの複製のコピーが完了すると（Ｓ７１１）、データサーバ（５）５０５に再生成されたチャンクの複製の状態が移動状態（Ｍ）から正常状態（Ｎ）に変更される（Ｓ７１２）。そして、データサーバ（５）５０５は、データサーバ（１）５０１およびデータサーバ（３）５０３にそれぞれチャンクの複製に対して書き込みロック解除をリクエストしてもよい（Ｓ７１３、Ｓ７１４）。その後、データサーバ（５）５０５は再生成されたチャンクの複製を格納する（Ｓ７１５）。
【００６８】
図６ないし図７に説明していない事項は図１〜図５の説明を参考してもよい。
【００６９】
また、本発明の一実施形態に係るファイル格納方法および分散ファイル処理方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうちの１つまたはその組み合わせを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例としては、コンパイラによって生成されるような機械語コード（ｍａｃｈｉｎｅ  ｃｏｄｅ）だけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コード（ｈｉｇｈｅｒ  ｌｅｖｅｌ  ｃｏｄｅ）を含む。上述したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアのレイヤで動作するように構成されてもよい。
【００７０】
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【００７１】
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【００７２】
１０１      クライアントシステム
１００      ファイル処理システム
１０２      分散ファイルシステム
【図１】
0006525491.tif 000002
【図２】
0006525491.tif 000003
【図３】
0006525491.tif 000004
【図４】
0006525491.tif 000005
【図５】
0006525491.tif 000006
【図６】
0006525491.tif 000007
【図７】
0006525491.tif 000008