(57)【要約】【課題】データを複数のデータ格納装置に格納するデータ格納システムにおいて、プライマリとするデータ格納装置を指定することを可能とする。【解決手段】データを複数のデータ格納装置に格納するデータ格納システムにおけるデータ格納制御装置において、前記複数のデータ格納装置の順序集合を格納する格納手段と、前記複数のデータ格納装置のうちの特定のデータ格納装置を指定するための指定情報を用いて、前記順序集合における要素の順序を変更する順序算出手段と、を備え、前記データ格納システムにおいて、前記順序算出手段により順序が変更された順序集合における所定番目の要素に対応するデータ格納装置が前記特定のデータ格納装置として使用される。【選択図】図５
2015170201.tif 000002
【特許請求の範囲】
【請求項１】
データを複数のデータ格納装置に格納するデータ格納システムにおけるデータ格納制御装置であって、
前記複数のデータ格納装置の順序集合を格納する格納手段と、
前記複数のデータ格納装置のうちの特定のデータ格納装置を指定するための指定情報を用いて、前記順序集合における要素の順序を変更する順序算出手段と、を備え、
前記データ格納システムにおいて、前記順序算出手段により順序が変更された順序集合における所定番目の要素に対応するデータ格納装置が前記特定のデータ格納装置として使用される
ことを特徴とするデータ格納制御装置。
【請求項２】
前記順序集合における所定番目の要素は、当該順序集合における１番目の要素であることを特徴とする請求項１に記載のデータ格納制御装置。
【請求項３】
前記指定情報は整数であり、前記順序算出手段は、前記格納手段に格納された順序集合に対して当該整数の回数分のシフトを行うことにより前記順序の変更を行う
ことを特徴とする請求項１又は２に記載のデータ格納制御装置。
【請求項４】
前記データ格納システムにおいて、前記複数のデータ格納装置のうちの前記特定のデータ格納装置に前記データが書き込まれ、当該特定のデータ格納装置以外のデータ格納装置である複製データ格納装置には前記データの複製データが格納される
ことを特徴とする請求項１ないし３のうちいずれか１項に記載のデータ格納制御装置。
【請求項５】
前記特定のデータ格納装置を基点として、各複製データ格納装置に複製データを格納するための複製経路を、各データ格納装置が設置される地点間を接続するネットワークの情報に基づいて決定する複製経路決定手段
を備えることを特徴とする請求項４に記載のデータ格納制御装置。
【請求項６】
前記複数のデータ格納装置のうち、前記データへのアクセスを行うクライアント装置に最も近い地点にあるデータ格納装置が前記特定のデータ格納装置になるように前記指定情報を決定する指定情報決定手段
を備えることを特徴とする請求項１ないし５のうちいずれか１項に記載のデータ格納制御装置。
【請求項７】
前記データ格納システムは分散ファイルシステムであり、前記データはファイルのデータ、又は、ファイルのデータを分割したデータである
ことを特徴とする請求項１ないし６のうちいずれか１項に記載のデータ格納制御装置。
【請求項８】
データを複数のデータ格納装置に格納するデータ格納システムにおけるデータ格納制御装置が実行するデータ格納制御方法であって、
前記データ格納制御装置は、前記複数のデータ格納装置の順序集合を格納する格納手段を備えており、前記データ格納制御方法は、
前記複数のデータ格納装置のうちの特定のデータ格納装置を指定するための指定情報を用いて、前記順序集合における要素の順序を変更する順序算出ステップを備え、
前記データ格納システムにおいて、前記順序算出ステップにより順序が変更された順序集合における所定番目の要素に対応するデータ格納装置が前記特定のデータ格納装置として使用される
ことを特徴とするデータ格納制御方法。
【請求項９】
コンピュータを、請求項１ないし７のうちいずれか１項に記載のデータ格納制御装置における各手段として記載させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ファイルシステムのように、複数のデータ格納装置にデータを格納するデータ格納システムに関連するものである。
【背景技術】
【０００２】
クラウドサービスの普及等により、信頼性が高く、より高速なストレージが求められている。このような要求に対し、複数のストレージノードにファイルシステムの機能を分散させた分散ファイルシステムが提案されている。
【０００３】
分散ファイルシステムにおいて、データをどのストレージノードに配置するかは、ハッシュ関数等を用いて決定される。これにより、複数ノードの分散による信頼性の向上、複数ノードからの入出力の並列化による性能の向上等が達成される。なお、分散ファイルシステムに関連する先行技術として、特許文献１に記載された技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２５９００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
分散ファイルシステムにおいて、データが配置される複数のストレージノードには、クライアントからデータの書き込みを行うことができるプライマリノードと、当該データの複製が格納され、クライアントからデータ読み出しのみができるレプリカノードが存在する。
【０００６】
しかし、従来技術では、所定のアルゴリズムにより、どのストレージノードがプライマリノードになり、どのストレージノードがレプリカノードになるかが決まってしまい、特定のストレージノードをプライマリに指定するといった制御を行うことができない。
【０００７】
従って、例えば、クライアントが、一旦決定されたプライマリノードから遠く離れた地点に移動した場合において、近くにストレージノード（レプリカノード）がある場合であっても、当該離れたプライマリノードに対してデータ書き込みを行わなければならず、処理に時間がかかるといった問題が生じ得る。
【０００８】
本発明は上記の点に鑑みてなされたものであり、データを複数のデータ格納装置に格納するデータ格納システムにおいて、プライマリとするデータ格納装置を指定することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の実施の形態によれば、データを複数のデータ格納装置に格納するデータ格納システムにおけるデータ格納制御装置であって、
前記複数のデータ格納装置の順序集合を格納する格納手段と、
前記複数のデータ格納装置のうちの特定のデータ格納装置を指定するための指定情報を用いて、前記順序集合における要素の順序を変更する順序算出手段と、を備え、
前記データ格納システムにおいて、前記順序算出手段により順序が変更された順序集合における所定番目の要素に対応するデータ格納装置が前記特定のデータ格納装置として使用されることを特徴とするデータ格納制御装置が提供される。
【００１０】
また、本発明の実施の形態によれば、データを複数のデータ格納装置に格納するデータ格納システムにおけるデータ格納制御装置が実行するデータ格納制御方法であって、
前記データ格納制御装置は、前記複数のデータ格納装置の順序集合を格納する格納手段を備えており、前記データ格納制御方法は、
前記複数のデータ格納装置のうちの特定のデータ格納装置を指定するための指定情報を用いて、前記順序集合における要素の順序を変更する順序算出ステップを備え、
前記データ格納システムにおいて、前記順序算出ステップにより順序が変更された順序集合における所定番目の要素に対応するデータ格納装置が前記特定のデータ格納装置として使用されることを特徴とするデータ格納制御方法が提供される。
【発明の効果】
【００１１】
本発明の実施の形態によれば、データを複数のデータ格納装置に格納するデータ格納システムにおいて、プライマリとするデータ格納装置を指定することを可能とする技術が提供される。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態に係るシステムの全体構成図である。
【図２】データ格納装置３０の機能構成図である。
【図３】データ格納制御装置１０の機能構成図である。
【図４】データ格納制御装置１０が保持するテーブルの例を示す図である。
【図５】プライマリデータの格納場所を決定する処理を説明するための図である。
【図６】プレイスメントグループの概念を説明するための図である。
【図７】複製経路決定処理を説明するための図である。
【図８】複製経路決定処理を説明するための図である。
【図９】本実施の形態における処理の流れの例を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、本実施の形態は、分散ファイルシステムを対象とするが、本発明は分散ファイルシステムに限らず適用可能である。
【００１４】
（システムの構成）
図１に本発明の実施の形態に係るシステムの全体構成図を示す。本実施の形態に係るシステは、複数のストレージノード（本実施の形態のデータ格納装置３０）にファイルシステムの機能を分散させた分散ファイルシステムである。分散ファイルシステムには現状、種々のものがあり、本実施の形態の分散ファイルシステムはＣｅｐｈをベースとするが、これは例に過ぎず、本実施の形態の技術は分散ファイルシステムの種類に限らず適用可能である。また、本実施の形態では、本発明に関する機能／処理を主に説明している。例えば、ハッシュ関数等によってデータを複数のストレージノードにマッピングする処理は分散ファイルシステムの一般的な処理であり、本実施の形態においては簡易な説明としている。
【００１５】
図１に示すように、本実施の形態に係るシステムは、データ格納制御装置１０、クライアント装置２０、データ格納装置３０がネットワーク４０に接続された構成を備える。図１には、データ格納制御装置１０、クライアント装置２０がそれぞれ１つずつ示されているが、これは例であり、それぞれが複数であってもよい。また、データ格納制御装置１０の機能をクライアント装置２０内又はいずれかのデータ格納装置３０内に備えることも可能であり、その場合、データ格納制御装置１０を備えないこととしてもよい。データ格納制御装置１０の機能をクライアント装置２０やデータ格納装置３０に備える場合、クライアント装置２０やデータ格納装置３０をデータ格納制御装置と称してもよい。
【００１６】
データ格納装置３０は、分散ファイルシステムにおけるストレージノードである。ファイルのデータは複数のデータ格納装置３０に格納される。本実施の形態の分散ファイルシステムでは、データ格納装置３０群に格納される１つのデータに対し、１つのプライマリのデータ格納装置３０と、それ以外のレプリカのデータ格納装置３０が存在する。以下、プライマリのデータ格納装置３０をプライマリ格納装置と呼び、レプリカのデータ格納装置３０をレプリカ格納装置と呼ぶことにし、プライマリ格納装置に格納されるデータをプライマリデータ、レプリカ格納装置に格納されるデータをレプリカデータ（あるいは、複製、コピー等）と呼ぶことにする。
【００１７】
クライアント装置２０からファイルに対する書き込みを行うことができるデータ格納装置３０は、プライマリ格納装置のみである。データの読み出しはプライマリ格納装置からでも、レプリカ格納装置からでも可能である。また、プライマリ格納装置に格納されたデータの複製が、各レプリカ格納装置に格納される。
【００１８】
図２に、データ格納装置３０の機能構成図を示す。図２に示すように、データ格納装置３０は、データ格納部３１、分散ファイルシステム処理部３２、複製制御部３３を有する。データ格納部３１は、データを格納するハードディスク、メモリ等のデバイスである。分散ファイルシステム処理部３２は、データ格納装置３０を分散ファイルシステムにおけるストレージノードとして機能させるための処理部であり、当該処理部自体は既存技術で実現できる。複製制御部３３は、格納するデータの複製を他のデータ格納装置３０に格納するために、データ格納制御装置１０から指示された経路に沿ってデータの転送等を行う機能部である。
【００１９】
クライアント装置２０は、例えばＰＣであり、分散ファイルシステムのクライアント側のソフトウェアが搭載されている。
【００２０】
図３に、本実施の形態に係るデータ格納制御装置１０の機能構成図を示す。図３に示すように、データ格納制御装置１０は、データ格納装置順序計算部１１、プライマリ指定子決定部１２、テーブル情報格納部１３、複製経路決定部１４、経路決定用情報格納部１５、及び通信処理部１６を有する。各機能部の概要は以下のとおりである。
【００２１】
データ格納装置順序計算部１１は、テーブル情報格納部１３に格納されている情報に基づいて、例えばファイル毎に、当該ファイルのデータを格納するデータ格納装置３０のうち、どれをプライマリ格納装置とし、どれをレプリカ格納装置とするか等を決定する。プライマリ指定子決定部１２は、後述するプライマリ指定子を例えばファイル単位で決定し、決定したプライマリ指定子をテーブル情報格納部１３に格納する。複製経路決定部１４は、プライマリ格納装置からレプリカ格納装置に対してデータの複製を格納する際における格納の経路を決定する機能部である。経路決定用情報格納部１５は、複製経路決定部１４が経路を決定する際に用いられる地理的な情報やネットワークの情報等を格納している。通信処理部１６は、他の装置との間の通信を行う。
【００２２】
図４に、テーブル情報格納部１３に格納されるテーブルの例を示す。図４（ａ）に示すテーブルは、ファイル（ファイル番号等の識別情報）毎にプライマリ指定子を格納するテーブルである。このテーブルをプライマリ指定子テーブルと呼ぶ。図４（ｂ）に示すテーブルは、ファイル毎に、ファイルのデータを格納するデータ格納装置３０の順序集合を格納したテーブルである。このテーブルを順序集合テーブルと呼ぶ。
【００２３】
本実施の形態に係るデータ格納制御装置１０は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、データ格納制御装置１０が有する機能は、当該コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、データ格納制御装置１０で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００２４】
以下では、プライマリデータの格納場所であるプライマリ格納装置を決定する処理、及び、複製経路を決定する処理を詳細に説明する。
【００２５】
（プライマリ格納装置を決定する処理）
既存機能として、本実施の形態における分散ファイルシステムでは、データを格納するデータ格納装置群を、ハッシュアルゴリズム等を使用して決定する（データとデータ格納装置とのマッピングを行う）機能を有する。当該マッピングの処理は、クライアント装置２０で行ってもよいし、データ格納制御装置１０で行ってもよい。ここで格納対象の「データ」は、ファイル単位のデータであってもよいし、後述するようにファイルのデータを分割した単位のデータであってもよい。
【００２６】
上記マッピングの処理によりデータ格納装置３０の順序集合が得られる。得られた順序集合において、１番目のデータ格納装置３０がプライマリ格納装置として用いられ、それ以外がレプリカ格納装置として用いられる。しかし、この方式では、プライマリ格納装置が故障しない限り、プライマリとレプリカを入れ替えることはできない。
【００２７】
前述したように、クライアント装置２０からはプライマリ格納装置に対してのみデータの書き込みを行うことができるため、例えば、クライアント装置２０がプライマリ格納装置から地理的に遠く離れた場所に移動した場合において、たとえ近くにデータ格納装置３０（レプリカ格納装置）があったとしても、当該レプリカ格納装置をプライマリ格納装置として、書き込みを行うことはできなかった。このような場合、大量のデータの書き込みを行う場合等では、長い時間がかかる可能性がある。
【００２８】
一方、本実施の形態では、プライマリ指定子を用いることで、データの転送等を伴わずに、レプリカ格納装置をプライマリ格納装置に変更することを可能としている。以下の最初の説明では、例として、ファイル単位でのマッピング例を示す。また、ファイルの識別情報としてファイル番号ｉを使用する。また、格納の対象とするファイルを対象ファイルと呼ぶ。
【００２９】
ファイル番号ｉ等に対してハッシュ関数を用いることで、対象ファイルのデータを格納するデータ格納装置３０の順序集合としてＯ＝｛ｏ１、ｏ２、ｏ３｝が得られたとする。本実施の形態において、当該順序集合は、クライアント装置２０により算出された場合、また、データ格納制御装置１０で算出された場合のいずれもデータ格納制御装置１０のテーブル情報格納部１３に格納されるものとする。
【００３０】
図５（ａ）に示すように、｛ｏ１、ｏ２、ｏ３｝における各要素はデータ格納装置３０を示す。ｏ１等の識別情報にどのデータ格納装置３０が対応し、また、データ格納装置３０へアクセスする際に必要となるＩＰアドレス等の情報はデータ格納制御装置１０に予め格納されているものとする。
【００３１】
順序集合が｛ｏ１、ｏ２、ｏ３｝である本例の場合、先頭の要素はｏ１であるから、ｏ１のデータ格納装置３０がプライマリ格納装置となる。従って、この状態において、クライアント装置２０は、アクセスの際にデータ格納制御装置１０から当該順序集合等を取得し、対象ファイルのデータ書き込みを行う際には、ｏ１のデータ格納装置３０（プライマリ格納装置）にのみ書き込みを行う。なお、クライアント装置２０が、順序集合｛ｏ１、ｏ２、ｏ３｝により、プライマリ格納装置を認識し、プライマリ格納装置に対してのみ書き込みを行うといった処理自体は、本実施の形態における分散ファイルシステムのクライアント側のソフトウェアが既存機能として備える機能である。
【００３２】
その後、対象ファイルに対して（ゼロでない）プライマリ指定子ｒが与えられ、ファイル番号ｉに対応付けてテーブル情報格納部１３のプライマリ指定子テーブルに格納されたものとする。
【００３３】
データ格納制御装置１０におけるデータ格納装置順序計算部１１は、対象ファイルのプライマリ指定子ｒ（本例では整数の１とする）をプライマリ指定子テーブルから読み出すとともに、対象ファイルの順序集合｛ｏ１、ｏ２、ｏ３｝を順序集合テーブルから読み出す。そして、データ格納装置順序計算部１１は、順序集合｛ｏ１、ｏ２、ｏ３｝をｒ（１）回分回転（シフト、ロテート）し、シフト後の順序集合Ｏ´＝｛ｏ２、ｏ３、ｏ１｝を得て、これを対象ファイルの識別情報に対応付けて順序集合テーブルに格納する。
【００３４】
シフト後の順序集合｛ｏ２、ｏ３、ｏ１｝における先頭の要素はｏ２であるから、図５（ｂ）に示すとおり、ｏ２のデータ格納装置がプライマリ格納装置になる。つまり、図５（ａ）に示すように、当初は拠点Ａにあるデータ格納装置（ｏ１）がプライマリであったが、プライマリ指定子ｒによる計算を行うことで拠点Ｂにあるデータ格納装置（ｏ２）がプライマリになったのである。
【００３５】
上記の例では、特定のプライマリ指定子ｒが与えられたときに、プライマリ格納装置が特定のデータ格納装置へ変更されることを説明した。ここで、プライマリ指定子ｒの決定の方法は特定の方法に限定されないが、例えば、以下のようにして、クライアント装置２０との距離が最も近いデータ格納装置がプライマリ格納装置になるように、プライマリ指定子ｒを決定することができる。
【００３６】
例えば図５の例において、ある時点においてクライアント装置２０（対象ファイルにアクセスするクライアント装置を意味する）は拠点Ａに近い場所にあり、拠点Ａにあるデータ格納装置（ｏ１）をプライマリ格納装置としている。
【００３７】
その後、クライアント装置２０が拠点Ｂに近い地点に移動し、対象ファイルへのアクセスを行う場合において、対象ファイルの識別情報を含むアクセス要求がデータ格納制御装置１０に送信される。また、アクセス要求には、クライアント装置２０の識別情報等の識別情報が含まれており、この識別情報により、クライアント装置２０と各データ格納装置との間の距離を判定できるものとする。
【００３８】
アクセス要求を受信したデータ格納制御装置１０において、プライマリ指定子決定部１２は、対象ファイルのデータを格納するデータ格納装置のうち、拠点Ｂのデータ格納装置（ｏ２）がクライアント装置２０に最も近いと判断し、データ格納装置（ｏ２）がプライマリ格納装置になるようにプライマリ指定子ｒを決定する。例えば、順序集合｛ｏ１、ｏ２、ｏ３｝において、データ格納装置（ｏ２）がプライマリ格納装置になるには、ｏ２が先頭になればよいから、ｒを１と決定し、これを対象ファイルの識別情報と対応付けてプライマリ指定子テーブルに格納する。その後は、前述したようにＯ´＝｛ｏ２、ｏ３、ｏ１｝が算出され、Ｏ´＝｛ｏ２、ｏ３、ｏ１｝に従って、対象ファイルのプライマリ格納装置が決められる。
【００３９】
＜プレイスメントグループについて＞
前述したように、データ格納装置にマッピングされるデータの単位はファイルに限られない。例えば、Ｃｅｐｈのプレイスメントグループ（ＰＧ）の概念を適用し、ファイルのデータを分割した単位でデータ格納装置へのマッピングを行ってもよい。
【００４０】
図６を参照してＰＧの概念を説明する。図６に示すように、ファイルのデータｄがサイズ等に応じて複数のファイルブロック（図６の例ではｄ１、ｄ２、ｄ３）に分割される。そして、分割された各ファイルブロックは、プレイスメントグループ（ＰＧ）と呼ばれる仮想的なコンテナにマッピングされる。なお、図６の例では、ｄ１、ｄ２、ｄ３がＰＧ１、ＰＧ２、ＰＧ３にマッピングされているがこれは例に過ぎず、実際にはハッシュアルゴリズム等によりコンテナへのマッピングが決められる。そして、最終的に、各ＰＧをハッシュ関数等によりデータ格納装置へマッピングする。このマッピング方法は、前述したファイル単位にデータ格納装置へマッピングする方法と同じでよい。つまり、前述したファイル単位でのマッピング方法は、プレイスメントグループの概念を取り入れた場合において、分割数が１である場合と等価である。
【００４１】
プレイスメントグループの概念を導入する場合、図４（ａ）に示すプライマリ指定子テーブルは、ファイルブロック毎にプライマリ指定子を対応付けたテーブルとなる。また、図４（ｂ）に示す順序集合テーブルは、ＰＧ毎に順序集合を対応付けたテーブルとなる。また、クライアント装置２０が、ＰＧとファイルブロックとファイルとの関係を知る必要があるから、「ファイル−ファイルブロック−ＰＧ」のマッピング情報が必要になるが、これはクライアント装置２０が保持してもよいし、データ格納制御装置が保持してもよい。
【００４２】
プライマリ指定子を用いたプライマリ格納装置の変更方法は前述したとおりである。前述したファイル単位での方法において、「ファイル」を「ファイルブロック」に置き換えればよい。
【００４３】
例えば、プライマリ格納装置とレプリカ格納装置が地理的に離れた拠点に存在する場合において、ファイルのデータの前半部分はアクセスが早いが後半部分は遅延が発生するといった問題が生じる可能性がある。これに対して、上記のように、ファイルブロック毎にプライマリ指定子ｒを設定し、同じ拠点がプライマリ格納装置になるようにすることで解決できる。
【００４４】
（複製経路を決定する処理）
次に、データ格納制御装置１０の複製経路決定部１４において行われる複製経路決定処理を説明する。
【００４５】
例えば、順序集合Ｏ＝｛ｏ１、ｏ２、ｏ３｝が計算されたとすると、プライマリ格納装置はｏ１になり、その他はレプリカ格納装置となる。前述したように、クライアント装置２０からのデータの書き込みはプライマリ格納装置に対してのみ行うことができ、プライマリ格納装置に格納されたデータ（プライマリデータ）の複製（レプリカデータ）が、プライマリ格納装置を基点として、各レプリカ格納装置に転送され、各レプリカ格納装置に格納される。データを格納する場合の経路については、例えば、「ｏ１―＞ｏ２―＞ｏ３」、「ｏ１―＞ｏ２、ｏ１―＞ｏ３」、「ｏ１―＞ｏ３―＞ｏ２」といった経路をとることができる。このような経路のことを複製経路と呼ぶことにする。
【００４６】
ここで、基本的には、クライアント装置２０からデータ書き込み要求を受けたプライマリ格納装置は、自分へのデータ格納とともに全てのレプリカ格納装置へのデータ格納完了を確認できた後に、クライアント装置２０に対してデータ書き込みが終了したことを通知し、クライアント装置２０はこの通知でもって書き込み処理が終わったと判断し、次の処理に移行できる。
【００４７】
従って、レプリカデータのレプリカ格納装置への格納は迅速である必要がある。しかし、装置間のネットワーク状況（帯域等）により、装置間でのデータ転送に長い時間がかかる場合がある。特に転送するデータ量が大きい場合には、この問題は顕著になる。
【００４８】
なお、後述するように、本実施の形態では、上記と異なる手順を採用しており、レプリカ格納装置へのデータ格納完了を確認する前に、クライアント装置２０へ格納完了を通知している。このような場合でも、データの整合性を保つ観点等から、レプリカデータのレプリカ格納装置への格納は迅速である必要がある。
【００４９】
そこで、本実施の形態では、ネットワーク状況等を考慮して複製経路を決定する。決定の一例を図７を参照して説明する。図７（ａ）に示すように、Ａ地点（地理的な位置）にプライマリ格納装置が存在し、Ｂ地点とＣ地点にレプリカ格納装置が存在する。そして、各装置（地点）間のネットワークの状況（図７の例では容量）が図に示すとおりであったとする。また、ここでは、帯域１０のネットワークで迅速に転送できると想定されるサイズ１０のレプリカデータの転送を行うものとする。
【００５０】
このとき、Ａ地点のプライマリ格納装置からＢ地点のレプリカ格納装置へのデータ転送は迅速に行うことができるが、Ａ地点のプライマリ格納装置からＣ地点のレプリカ格納装置へのデータ転送には非常に時間がかかってしまう。一方、Ｂ地点のレプリカ格納装置からＣ地点のレプリカ格納装置へのデータ転送は迅速に行うことができる。従って、複製経路決定部１４は、図７（ｂ）に示すように、複製経路としてＡ−＞Ｂ−＞Ｃという経路を決定する。
【００５１】
図８は他の例を示す。図８に示す例では、各地点間のネットワークとしての帯域は全て同じく１０であるが、Ａ−＞ＢとＡ−＞Ｃは物理的には１回線（帯域１０）しかない。このような場合、仮に、Ａ−＞Ｂ及びＡ−＞Ｃという経路でサイズ１０のレプリカデータを送信しようとすると、結果として１回線でサイズ２０のデータを送ることになり、迅速に送ることができない。そこで、この場合も、複製経路決定部１４は、図８（ｂ）に示すように、複製経路としてＡ−＞Ｂ−＞Ｃという経路を決定する。
【００５２】
また、レプリカ格納装置から迅速にデータ格納完了通知を受信することが望ましいため、例えば、プライマリ格納装置から距離の近いレプリカ格納装置に先にレプリカデータを転送する、あるいは、データを高速に格納する能力を持つレプリカ格納装置に先にレプリカデータを転送する、といった判断基準も加味して経路決定することもできる。
【００５３】
経路決定用情報格納部１５には、各装置間の空き帯域等のネットワーク情報、地点間の距離、物理的な回線情報、各データ格納装置の容量／データ格納速度／信頼性／負荷状態等が格納されており、複製経路決定部１４は、経路決定用情報格納部１５から読み出した情報に基づいて、最適な経路を算出する。
【００５４】
（システムの動作シーケンス例）
次に、図９を参照して、本実施の形態におけるシステムの動作シーケンスの例を説明する。以下の例では、ステップ１０１の前の時点において、アクセスするファイル（対象ファイル）の順序集合が既にあるものとする。
【００５５】
クライアント装置２０が対象ファイルへのアクセス（書き込み等）を行う場合に、クライアント装置２０は、対象ファイルの識別情報を含むファイルアクセス要求をデータ格納制御装置１０に送信する（ステップ１０１）。データ格納制御装置１０におけるプライマリ指定子決定部１２は、順序集合に含まれる各データ格納装置とクライアント装置２０との間の距離を決定し、最も近いデータ格納装置をプライマリにすると決定し、当該データ格納装置が順序集合の先頭に来るようにプライマリ指定子を決定する（ステップ１０２）。
【００５６】
次に、データ格納装置順序計算部１１が、対象ファイルについての既にある順序集合と、ステップ１０２で決定したプライマリ指定子とから順序集合のシフトを行うことにより、新たな順序集合を得る（ステップ１０３）。これにより、プライマリ格納装置が決定される。本例では、データ格納制御装置１０は、対象ファイルについてプライマリ格納装置になったデータ格納装置に対してその旨を通知する（ステップ１０４）。
【００５７】
また、データ格納装置１０は、クライアント装置２０に応答を返す（ステップ１０５）。応答には、例えば、プライマリ格納装置の識別情報、レプリカ格納装置の識別情報等が含まれる。
【００５８】
その後、クライアント装置２０は、データのファイルへの書き込みを行う（ステップ１０６）。ここでは、分散ファイルシステムの機能により、プライマリ格納装置へデータの書き込みが行われる。
【００５９】
ここで、本実施の形態のプライマリ格納装置は、レプリカ格納装置へのデータの複製の転送を行う前に、あるいは、レプリカ格納装置へのデータの複製の転送後、レプリカ格納装置から格納完了通知（ＡＣＫ）を受信する前に、プライマリ格納装置自身のデータの格納が終了した時点で、クライアント装置２０に格納完了通知（ＡＣＫ）を送信することとしている。図９の例では、プライマリ格納装置からレプリカ格納装置へのデータの複製の転送を行う前にクライアント装置２０に格納完了通知（ＡＣＫ）を送信している（ステップ１０７）。
【００６０】
レプリカ格納装置とプライマリ格納装置の距離が離れている場合、レプリカ格納装置からの格納完了通知（ＡＣＫ）を待ってクライアント装置２０に格納完了通知（ＡＣＫ）を送信するとなると、クライアント装置２０への格納完了通知（ＡＣＫ）送信が遅れ、クライアント装置２０側で次の処理への移行が遅れてしまう可能性があるが、本実施の形態により、この問題が解消される。
【００６１】
上記のような処理の他、プライマリ格納装置から距離が近いレプリカ格納装置のみから格納完了通知（ＡＣＫ）を受信した後に、クライアント装置２０に格納完了通知（ＡＣＫ）を送信することとしてもよい。
【００６２】
図９のステップ１０８において、プライマリ格納装置は、複製データの転送を行うための経路情報をデータ格納制御装置１０に要求する。要求を受けたデータ格納制御装置１０の複製経路決定部１４は、前述したような方法で経路を決定し（ステップ１０９）、経路の情報をプライマリ格納装置に通知する（ステップ１１０）。そして、この経路に従って複製したデータの転送、及び格納が行われる（ステップ１１１〜１１４）。
【００６３】
なお、上記の例では、データ格納制御装置１０が経路を決定したが、プライマリ格納装置自身が、データ格納制御装置１０からネットワーク情報等の経路決定に必要となる情報を取得して、経路決定処理を行うこととしてもよい。
【００６４】
（実施の形態のまとめ、効果等）
以上、説明したように、本実施の形態によれば、データを複数のデータ格納装置に格納するデータ格納システムにおけるデータ格納制御装置であって、前記複数のデータ格納装置の順序集合を格納する格納手段と、前記複数のデータ格納装置のうちの特定のデータ格納装置を指定するための指定情報を用いて、前記順序集合における要素の順序を変更する順序算出手段と、を備え、前記データ格納システムにおいて、前記順序算出手段により順序が変更された順序集合における所定番目の要素に対応するデータ格納装置が前記特定のデータ格納装置として使用されることを特徴とするデータ格納制御装置が提供される。
【００６５】
前記順序集合における所定番目の要素は、例えば、当該順序集合における１番目の要素である。また、前記指定情報は整数であり、前記順序算出手段は、前記格納手段に格納された順序集合に対して当該整数の回数分のシフトを行うことにより前記順序の変更を行う。
【００６６】
前記データ格納システムにおいては、例えば、前記複数のデータ格納装置のうちの前記特定のデータ格納装置に前記データが書き込まれ、当該特定のデータ格納装置以外のデータ格納装置である複製データ格納装置には前記データの複製データが格納される。
【００６７】
前記データ格納制御装置は、前記特定のデータ格納装置を基点として、各複製データ格納装置に複製データを格納するための複製経路を、各データ格納装置が設置される地点間を接続するネットワークの情報に基づいて決定する複製経路決定手段を備えてもよい。
【００６８】
また、前記データ格納制御装置は、前記複数のデータ格納装置のうち、前記データへのアクセスを行うクライアント装置に最も近い地点にあるデータ格納装置が前記特定のデータ格納装置になるように前記指定情報を決定する指定情報決定手段を備えてもよい。
【００６９】
前記データ格納システムは、例えば分散ファイルシステムであり、前記データはファイルのデータ、又は、ファイルのデータを分割したデータである。
【００７０】
既に説明したように、従来技術では、プライマリデータをどのデータ格納装置に置くといった詳細な指定はできなかった。また、プライマリデータとレプリカデータの関係を反転させること等もできなかった。
【００７１】
一方、本実施の形態では、特定のデータ格納装置をプライマリとして指定することが可能となる。これにより、例えば、クライアントからの近接地に既にレプリカが存在する場合において、これをプライマリデータとして利用することが可能となる。この結果、数テラバイトレベルの大規模なデータを疑似的に高速移動させることが可能となる。
【００７２】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００７３】
１０  データ格納制御装置
２０  クライアント装置
３０  データ格納装置
４０  ネットワーク
１１  データ格納装置順序計算部
１２  プライマリ指定子決定部
１３  テーブル情報格納部
１４  複製経路決定部
１５  経路決定用情報格納部
１６  通信処理部
３１  データ格納部
３２  分散ファイルシステム処理部
３３  複製制御部
【図１】
2015170201.tif 000003
【図２】
2015170201.tif 000004
【図３】
2015170201.tif 000005
【図４】
2015170201.tif 000006
【図５】
2015170201.tif 000007
【図６】
2015170201.tif 000008
【図７】
2015170201.tif 000009
【図８】
2015170201.tif 000010
【図９】
2015170201.tif 000011