(57)【要約】【課題】サービス提供の可用性を高める。【解決手段】データ分散配置装置１０は、拠点装置２０ごと、対象のユーザデータ２３ａごとに、ユーザデータ２３ａに基づくハッシュ値を算出する。そして、ハッシュ値が当該リージョンまたは隣接リージョンに含まれるか否かを判定する。算出したハッシュ値が当該リージョンまたは隣接リージョンに含まれる場合には、リージョンコードを置換したハッシュ値が含まれるハッシュ空間上の区間に対応する、当該リージョン以外かつ隣接リージョン以外の拠点へ、対象のユーザデータ２３ａのバックアップを配置すると決定する。算出したハッシュ値が当該リージョンおよび隣接リージョンに含まれない場合には、算出したハッシュ値が含まれるハッシュ空間上の区間に対応する拠点へ、対象のユーザデータ２３ａのバックアップを配置すると決定する。【選択図】図２
2014154087.tif 000002
【特許請求の範囲】
【請求項１】
所定エリアに位置する拠点それぞれのデータのバックアップを前記所定エリアに位置する他の拠点へ配置するデータ分散配置装置が実行するデータ均等分散配置方法であって、
前記所定エリアを分割エリアへ順序を付けて分割するエリア分割工程と、
前記エリア分割工程により分割された分割エリアそれぞれに位置する前記拠点の数に応じて、ｎビット（ｎは自然数）のハッシュ空間を、前記順序にしたがって連続する、前記分割エリアそれぞれに対応する部分ハッシュ空間へ分割する空間分割工程と、
前記空間分割工程により分割された部分ハッシュ空間のうちの前記分割エリアそれぞれに対応する部分ハッシュ空間へ、前記分割エリアそれぞれに位置する前記拠点をマッピングするマッピング工程と、
前記拠点に配置されるデータそれぞれに基づく前記ｎビットのハッシュ値を算出するハッシュ値算出工程と、
前記ハッシュ値算出工程により生成された前記拠点それぞれに配置されるデータの前記ハッシュ値に基づいて、前記部分ハッシュ空間のうち、前記マッピング工程によりマッピングされた当該拠点が含まれる当該部分ハッシュ空間以外かつ当該部分ハッシュ空間に隣接する隣接部分ハッシュ空間以外の部分ハッシュ空間に対応する前記分割エリアに位置する拠点を、当該データのバックアップ配置先の拠点と決定する決定工程と、
を含んだことを特徴とするデータ均等分散配置方法。
【請求項２】
前記決定工程により選択された部分ハッシュ空間に対応する前記分割エリアに位置する前記他の拠点へ前記拠点それぞれのデータのバックアップを配置する配置工程
をさらに含んだことを特徴とする請求項１に記載のデータ均等分散配置方法。
【請求項３】
前記エリア分割工程は、前記所定エリア内において災害をともなう事象が発生した場合に当該事象による災害が波及しうる範囲に基づいて、前記所定エリアを前記分割エリアへ分割する
ことを特徴とする請求項１または２に記載のデータ均等分散配置方法。
【請求項４】
前記ｎビットのハッシュ空間を時計回り方向の円環座標で表した場合の座標表現である前記ｎビットのバイナリ値は、上位ビットのリージョンコードおよび下位ビットのランダムビットを含み、
前記リージョンコードのビット数Ｘは、前記部分ハッシュ空間にそれぞれに対応する前記分割エリアに位置する前記拠点の数をバイナリ表現する際のビット数に相当し、前記Ｘの最大値Ｙについて、１≦Ｘ≦Ｙ＜ｎ（Ｘ、Ｙは自然数）であり、
前記マッピング工程は、前記拠点の識別情報に基づき算出した前記ｎビットのハッシュ値である拠点ＩＤについて、前記部分ハッシュ空間にそれぞれに対応する前記分割エリアに位置する前記拠点の数をバイナリ表現する際のビット数に応じた上位Ｘビット（Ｘは前記Ｘに等しい）を、当該分割エリアに対応する前記リージョンコードで置換した当該拠点ＩＤに該当する当該部分ハッシュ空間の座標へマッピングことにより、当該分割エリアに対応する部分ハッシュ空間へ当該分割エリアに位置する当該拠点をマッピングする
ことを特徴とする請求項１、２または３に記載のデータ均等分散配置方法。
【請求項５】
前記ｎビットのハッシュ空間を時計方向回り方向の円環座標で表した場合の座標表現である前記ｎビットのバイナリ値は、上位ビットのリージョンコードおよび下位ビットのランダムビットを含み、
前記リージョンコードのビット数Ｘは、前記部分ハッシュ空間にそれぞれに対応する前記分割エリアに位置する前記拠点の数をバイナリ表現する際のビット数に相当し、前記Ｘの最大値Ｙについて、１≦Ｘ≦Ｙ＜ｎ（Ｘ、Ｙは自然数）であり、
前記部分ハッシュ空間のそれぞれについて、当該部分ハッシュ空間以外かつ当該部分ハッシュ空間の次に位置する隣接部分ハッシュ空間以外の部分ハッシュ空間に対応する前記分割エリアの拠点数の合計値をＺ（Ｚは１≦Ｚ＜ｎなる自然数）とする場合に、
前記決定工程は、
前記ハッシュ値が、前記部分ハッシュ空間のうち、当該ハッシュ値に対応する当該拠点が位置する当該分割エリアに対応する当該部分ハッシュ空間に含まれる、もしくは、前記隣接部分ハッシュ空間に含まれるか否かを判定し、
前記ハッシュ値が、当該ハッシュ値に対応する当該拠点が位置する当該分割エリアに対応する当該部分ハッシュ空間に含まれず、かつ、前記隣接部分ハッシュ空間に含まれないと判定された場合に、当該ハッシュ値が含まれる前記部分ハッシュ空間を選択し、
前記ハッシュ値が、当該ハッシュ値に対応する当該拠点が位置する当該分割エリアに対応する当該部分ハッシュ空間に含まれる、もしくは、前記隣接部分ハッシュ空間に含まれると判定された場合に、当該部分ハッシュ空間以外かつ前記隣接部分ハッシュ空間以外の前記ハッシュ空間のうちの当該隣接部分ハッシュ空間の次に位置する部分ハッシュ空間に対応するリージョンコードに、当該ハッシュ値を前記Ｚで除算した剰余のバイナリ表現を加算した変換リージョンコードで当該ハッシュ値のリージョンコードを置換し、リージョンコードを置換後の当該ハッシュ値が含まれる部分ハッシュ空間において、当該ハッシュ値に最も近い座標が対応付けられた拠点を決定する
ことを特徴とする請求項１〜４のいずれか１つに記載のデータ均等分散配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広域災害に対応したデータ均等分散配置方法に関する。
【背景技術】
【０００２】
近年、データセンタなどの拠点との通信により加入者に提供されるサービスが普及してきている。このようなサービスは、サービスを提供する拠点が災害を被った場合でも、サービスを継続して提供する可用性が求められる。そのため、サービス提供のために拠点が用いるデータのバックアップが、他の地点に位置する他の拠点に予め配置される。そして、サービスを提供する拠点が災害を被ってサービス提供不可となった場合に、予めデータのバックアップが配置された他の拠点が、代替してサービスを継続して提供する。
【０００３】
例えば、複数の拠点から各拠点のデータのバックアップを配置する他の拠点を等確率で決定するために利用可能な方法としてコンシステントハッシュ法がある。コンシステントハッシュ法は、円環座標軸上に、拠点のＩＰ（Internet  Protocol）アドレスなどに基づく各拠点のハッシュ値をそれぞれ対応付ける。そして、コンシステントハッシュ法は、当該拠点に配置されるデータに基づくハッシュ値が円環座標軸上の時計回り方向で最も近いハッシュ値に対応付けられた拠点に、当該拠点のデータのバックアップを配置する。
【０００４】
また、例えば、複数の拠点から各拠点のデータのバックアップを配置する他の拠点を等確率で決定するために利用可能な方法として、分散ハッシュテーブル法がある。分散ハッシュテーブル法は、前述のコンシステントハッシュ法をベースとし、拠点に対応付けられたハッシュ値の上位の所定ビットを、地理的位置情報を示すリージョンコードとする。そして、分散ハッシュテーブル法は、地理的な密集度が高い拠点群にはより小さい桁数のリージョンコードを割り当て、地理的な密集度が低い拠点群にはより大きいリージョンコードを割り当てる。よって、分散ハッシュテーブル法は、円環座標軸上に、各拠点のハッシュ値それぞれをおおむね等間隔に対応付けることになる。これにより、分散ハッシュテーブル法は、各拠点に配置されるデータに基づくハッシュ値が円環座標軸上の時計回り方向で最も近いハッシュ値に対応付けられた拠点を選択する際に、より均等に拠点を選択できる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】D.Karger、E.Lehman、T.Leighton、M.Levine、D.Lewin、R.Panigrahy、“Consistent  Hashing  and  Random  Trees：Distributed  Caching  Protocols  for  Relieving  Hot  Spots  on  the  World  Wide  Web”、STOC’97  Proceedings  of  the  Twenty-Ninth  annual  ACM  Symposium  on  Theory  of  Computing  pp.654-663、Elpaso、Texas、1997
【非特許文献２】S.Zhou、G.R.Ganger、P.Steekiste、“Balancing  Locality  Randomness  in  DHTs”、Carnegie  Mellon  University  Technical  Report  CMU-CS-03-203、Novenber  2003
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の従来技術では、災害の影響が広域にわたり、サービスを提供する拠点および当該拠点のデータのバックアップが配置された他の拠点が同時に運用不可となった場合に、サービスを継続して提供することができない。すなわち、サービス提供の可用性が十分でない。
【０００７】
本願が開示する技術は、上記に鑑みてなされたものであって、災害の影響により、サービスを提供する拠点および当該拠点のデータのバックアップが配置された他の拠点が同時に運用不可となることを回避し、サービス提供の可用性を高めることを目的とする。
【課題を解決するための手段】
【０００８】
本願が開示するデータ均等分散配置方法は、一つの実施形態として、所定エリアを分割エリアへ順序を付けて分割する。そして、データ均等分散配置方法は、分割された分割エリアそれぞれに位置する拠点の数に応じて、ｎビット（ｎは自然数）のハッシュ空間を、順序にしたがって連続する、分割エリアそれぞれに対応する部分ハッシュ空間へ分割する。そして、データ均等分散配置方法は、分割された部分ハッシュ空間のうちの分割エリアそれぞれに対応する部分ハッシュ空間へ、分割エリアそれぞれに位置する前記拠点をマッピングする。そして、データ均等分散配置方法は、拠点に配置されるデータそれぞれに基づくｎビットのハッシュ値を算出する。そして、データ均等分散配置方法は、生成された記拠点それぞれに配置されるデータのハッシュ値に基づいて、当該データのバックアップ配置先の拠点を決定する。すなわち、データ均等分散配置方法は、部分ハッシュ空間のうち、マッピングされた当該拠点が含まれる当該部分ハッシュ空間以外かつ当該部分ハッシュ空間に隣接する隣接部分ハッシュ空間以外の部分ハッシュ空間に対応する分割エリアに位置する拠点を決定する。
【発明の効果】
【０００９】
本願が開示する技術によれば、災害の影響により、サービスを提供する拠点および当該拠点のデータのバックアップが配置された他の拠点が同時に運用不可となることを回避し、サービス提供の可用性を高めることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、エリアと、リージョンの概要を示す図である。
【図２】図２は、データ分散配置システムを示すブロック図である。
【図３Ａ】図３Ａは、拠点情報を示す図である。
【図３Ｂ】図３Ｂは、コンシステントハッシュデータのフォーマットを示す図である。
【図４Ａ】図４Ａは、ハッシュ空間情報を示す図である。
【図４Ｂ】図４Ｂは、ハッシュ空間を示す図である。
【図４Ｃ】図４Ｃは、ハッシュ空間における各区間を示す図である。
【図５Ａ】図５Ａは、ユーザデータを示す図である。
【図５Ｂ】図５Ｂは、バックアップデータを示す図である。
【図６Ａ】図６Ａは、エリア分割処理を示すフローチャートである。
【図６Ｂ】図６Ｂは、ハッシュ空間生成処理を示すフローチャートである。
【図６Ｃ】図６Ｃは、バックアップデータの配置拠点決定処理を示すフローチャートである。
【図７】図７は、バックアップデータの配置拠点を決定する処理の一例を示す図である。
【図８Ａ】図８Ａは、バックアップデータの配置拠点の決定の均一性を示す図である。
【図８Ｂ】図８Ｂは、バックアップデータの配置拠点の決定の均一性を示す図である。
【図９】図９は、バックアップデータの配置拠点の決定の均一性を示す図である。
【図１０】図１０は、バックアップデータの配置拠点決定処理プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願が開示する技術にかかるデータ均等分散配置方法の実施形態を図面に基づいて説明する。なお、以下の実施形態は、本願が開示する技術を限定するものではなく、また、各実施形態は、矛盾しない範囲内で適宜組み合わせることができる。
【００１２】
［実施形態］
（「エリア」と「リージョン」について）
図１を参照して、実施形態が前提とする「エリア」と「リージョン」について説明する。図１に示すとおり、「エリア」は日本の東日本エリアである。そして、東日本エリアは、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの各「リージョン」へ分割される。そして、東日本エリアに位置する後述の拠点は、８拠点であるとする。また、エリアをリージョンに分割した結果、北海道リージョン、東北リージョンの各リージョンに位置する拠点は、それぞれ２拠点（拠点Ａ、拠点Ｂ）、１拠点（拠点Ｃ）である。また、エリアをリージョンに分割した結果、北関東リージョン、南関東リージョンの各リージョンに位置する拠点は、それぞれ１拠点（拠点Ｄ）、４拠点（拠点Ｅ、拠点Ｆ、拠点Ｇ、拠点Ｈ）となるとする。
【００１３】
図１に示すように、「エリア」は、後述のバックアップデータの配置拠点決定処理の対象である拠点を全て含む地図情報である。また、「リージョン」は、エリアを分割したものである。各リージョンは、当該リージョン内で災害が発生した場合に、災害の影響が波及しうる範囲をカバーするように設定される。すなわち、あるリージョン内で災害が発生した場合に、災害の影響の波及範囲は、当該リージョン内および後述の「隣接リージョン」内に収まると想定される。例えば、リージョンの形状は、矩形である。そして、図１に示すように、各リージョンの矩形の相対する２辺の最小距離が２００ｋｍ以上となるように、日本の東日本エリアが、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの４つのリージョンに分割される。
【００１４】
そして、各リージョンは、例えば北海道リージョンなどの所定のリージョンを出発点とする、例えばヒルベルト曲線が通過する順序で順序付けられるとする。図１に示す例によれば、東日本エリアを分割した各リージョンは、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの順序で順序付けられる。実施形態では、各リージョンをヒルベルト曲線が通過する順序を「所定の通過順序」と呼ぶこととする。
【００１５】
また、「所定の通過順序」における当該リージョンの前後のリージョンを「隣接リージョン」と呼ぶこととする。例えば、当該リージョンが北海道リージョンである場合、隣接リージョンは東北リージョンである。また、例えば、当該リージョンが東北リージョンである場合、隣接リージョンは北海道リージョンおよび北関東リージョンである。また、例えば、当該リージョンが北関東リージョンである場合、隣接リージョンは東北リージョンおよび南関東リージョンである。また、例えば、当該リージョンが南関東リージョンである場合、隣接リージョンは北関東リージョンである。
【００１６】
なお、実施形態における、エリアおよびリージョンは、一例を示すに過ぎない。本願が開示する技術は、任意のエリアおよび任意のリージョンであっても適用できる。
【００１７】
（データ分散配置システムの概要）
図２は、データ分散配置システムを示すブロック図である。図２に示すように、データ分散配置システム１は、ネットワーク２を介して接続されたデータ分散配置装置１０、拠点装置２０（２０Ａ〜２０Ｈ）を有する。データ分散配置装置１０、拠点装置２０は、分散した地点に位置する収容施設にそれぞれ収容される。拠点装置２０を収容する収容施設を拠点と呼ぶ。拠点は、例えばデータセンタなどである。
【００１８】
なお、データ分散配置装置１０は、拠点装置２０を収容するいずれかの拠点に拠点装置とともに併置されてもよい。また、図２に示すように、データ分散配置システム１は、前述の拠点Ａ〜Ｈの８拠点に対応する８つの拠点装置２０Ａ〜２０Ｈを有するとするが、これに限らず、任意の複数の拠点装置を有するとしてもよい。
【００１９】
（データ分散配置装置の構成）
データ分散配置装置１０は、通信部１１、制御部１２、記憶部１３を有する。通信部１１は、データ分散配置装置１０がネットワーク２を介して拠点装置２０と通信するためのインターフェースである。制御部１２は、データ分散配置装置１０の装置全体の制御を実行するとともに、データ分散配置装置１０における各種処理、例えば後述のエリア分割処理、バックアップデータの配置拠点決定処理などを実行する。記憶部１３は、後述の拠点情報１３ａ、ハッシュ空間情報１３ｂを記憶する。
【００２０】
制御部１２は、エリア分割部１２ａ、ハッシュ空間生成部１２ｂ、バックアップ拠点決定部１２ｃ、バックアップ制御部１２ｄを有する。エリア分割部１２ａは、データ分散配置装置１０に接続された入力部（不図示）から入力されたエリアを、予め人為的に決められた分割条件に従って複数のリージョンに分割する。
【００２１】
そして、エリア分割部１２ａは、エリアをリージョンへ分割した場合のエリア、各リージョン、各リージョンに位置する各拠点の対応関係を、図３Ａに示す拠点情報１３ａの一部として、記憶部１３に記憶させる。
【００２２】
ハッシュ空間生成部１２ｂは、１０ビットのハッシュ空間を生成する。図３Ｂに示すように、１０ビットのハッシュ空間の各バイナリ値は、上位Ｘビットの「リージョンコード」と、下位（１０−Ｘ）ビットの「ランダムビット」を含む１０ビットのバイナリ値“0000000000”〜“1111111111”である。ここで、Ｘは１≦Ｘ≦Ｙなる自然数である。また、Ｙについては後述する。そして、バイナリ値“0000000000”〜“1111111111”を円環座標軸に座標として均等に配置することにより、１０ビットのハッシュ空間が生成される。以下では、バイナリ値“0000000000”〜“1111111111”を円環座標軸に座標として均等に配置したものを、ハッシュ空間と呼ぶ。なお、ハッシュ空間のビット数は１０ビットであるとするが、これに限らず、ハッシュ空間のビット数は、エリアをリージョンに分割する分割数、各リージョンに位置する拠点数などに応じて、適宜変更可能である。
【００２３】
ここで、「リージョンコード」は、各リージョンを識別するバイナリ値である。また、「ランダムビット」は、同一のリージョンコードが付与された各リージョン内で、各拠点を識別するバイナリ値である。また、ハッシュ空間において、円環座標軸は、円周上の所定点を原点“0000000000”とし、時計回り方向に座標値が増加する座標軸である。そして、円環座標軸は、座標“1111111111”の次の座標が原点となるサイクリックな座標系である。１０ビットのハッシュ空間は、円環座標軸上に、２１０個の座標を含むことになる。
【００２４】
なお、各リージョンのリージョンコードのビット数Ｘの決定方法は、次のとおり、Zhouらの方法（非特許文献２参照）を用いる。すなわち、ビット数Ｘの最大値Ｙは、エリアに属する拠点数をビット表現しうる最小のビット数である。実施形態では、東日本エリアに位置する拠点は８拠点であり、８を表現するために要するビット数の最小値は３である。よって、ハッシュ空間生成部１２ｂは、求めたビット数の最小値３を、リージョンコードのビット数Ｘの最大値Ｙとする。
【００２５】
また、各リージョンのリージョンコードのビット数の決定方法は、次のとおりである。すなわち、北海道リージョンに属する拠点数は２であるので、２を表現するために要するビット数の最小値は１である。よって、ハッシュ空間生成部１２ｂは、ビット数Ｘの最大値３から１を差し引いた２を、北海道リージョンのリージョンコードのビット数とする。ハッシュ空間生成部１２ｂは、他のリージョンについても、同様にリージョンコードのビット数を求める。すると、東北リージョンのリージョンコードのビット数は３、北関東リージョンのリージョンコードのビット数は３、南関東リージョンのリージョンコードのビット数は１となる。
【００２６】
また、ハッシュ空間生成部１２ｂは、エリアにおける各リージョンの「所定の通過順序」で、各リージョンにリージョンコードを付与する。東日本エリアにおいて、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの「所定の通過順序」で各リージョンが位置する場合を考える。この場合、ハッシュ空間生成部１２ｂは、各リージョンのリージョンコードのビット数を考慮して、北海道リージョン、東北リージョン、北関東リージョン、南関東リージョンの「所定の通過順序」で昇順となるように各リージョンにリージョンコードを付与する。すなわち、ハッシュ空間生成部１２ｂは、北海道リージョンには“00”、東北リージョンには“010”、北関東リージョンには“011”、南関東リージョンには“1”のリージョンコードを付与する。
【００２７】
また、ハッシュ空間生成部１２ｂは、生成したハッシュ空間を、各リージョンに対応する部分ハッシュ空間へ分割する。ハッシュ空間生成部１２ｂは、ハッシュ空間を部分ハッシュ空間へ分割する際に、各リージョンのリージョンコードを用いる。ハッシュ空間生成部１２ｂは、北海道リージョンのリージョンコードが“00”であるので、ハッシュ空間において、円環座標軸のうち上位２ビットが“00”の座標群である円環座標軸上の区間を北海道リージョンに対応する部分ハッシュ空間とする。ハッシュ空間生成部１２ｂは、他のリージョンについても、同様にして円環座標軸上の区間に部分ハッシュ空間を対応付ける。
【００２８】
そして、ハッシュ空間生成部１２ｂは、部分ハッシュ空間のそれぞれに、対応するリージョンに属する拠点を対応付ける。ハッシュ空間生成部１２ｂは、例えばＩＰアドレスなどの各拠点を識別する識別情報、所定のハッシュ関数、ハッシュキーを用いて、拠点ごとに１０ビットのコンシステントハッシュ値（以下、ハッシュ値とよぶ）を算出する。そして、ハッシュ空間生成部１２ｂは、算出した各拠点のハッシュ値の上位Ｘビットを、各拠点が位置するリージョンのリージョンコードで置換する。
【００２９】
例えば、ハッシュ空間生成部１２ｂは、北海道リージョンに位置する拠点ＡのＩＰアドレスなどに基づくハッシュ値が“aaaaaaaaaa”であった場合に、“aaaaaaaaaa”の上位２ビットを北海道リージョンのリージョンコード“00”で置換する。このようにして、拠点Ａのハッシュ値は、”00aaaaaaaa”となる。ハッシュ空間生成部１２ｂは、この”00aaaaaaaa”を拠点Ａの拠点ＩＤとする。そして、ハッシュ空間生成部１２ｂは、ハッシュ空間の円環座標軸上の座標“00aaaaaaaa”に、拠点Ａを対応付ける。ハッシュ空間生成部１２ｂは、他の拠点についても、同様にして拠点ＩＤを算出し、各拠点ＩＤをハッシュ空間の円環座標軸上の座標に対応付ける。なお、例えばハッシュ値のバイナリ表現を“aaaaaaaaaa”とする場合、各ビットはそれぞれ“0”または“1”のいずれかであり、全てのビットが同一値であることを示すものではない。他のハッシュ値の表現についても同様である。
【００３０】
そして、ハッシュ空間生成部１２ｂは、各リージョン、各リージョンに付与したリージョンコード、各拠点に付与した拠点ＩＤの対応関係を、図３Ａに示す拠点情報１３ａの一部として、記憶部１３に記憶させる。なお、図３Ａに示すように、例えば北海道リージョンにおいて、拠点Ａの拠点ＩＤ“00aaaaaaaa”と、拠点Ｂの拠点ＩＤ“00bbbbbbbb”の大小関係は、ハッシュ値のランダム性により一意ではない。しかし、図３Ａに示す例では“00aaaaaaaa”＜“00bbbbbbbb”であるとする。同様に、複数の拠点が位置する他のリージョンにおいても、各拠点ＩＤは、図３Ａ示す順序で昇順であるとする。例えば、拠点ＩＤの昇順で拠点をソートすることにより、図３Ａに示すように拠点名が上から下へ並ぶことになる。
【００３１】
また、ハッシュ空間生成部１２ｂは、各拠点の拠点ＩＤに基づいて、ハッシュ空間における円環座標軸上の各拠点間の区間を生成する。例えば、拠点Ａの拠点ＩＤ“00aaaaaaaa”は、時計回り方向の円環座標軸上において原点“0000000000”から最初に拠点が対応付けられる座標である。また、拠点Ｂの拠点ＩＤ“00bbbbbbbb”は、時計回り方向の円環座標軸上において拠点Ａの次の拠点Ｂが対応付けられる座標である。ここで、“00aaaaaaaa”および“00bbbbbbbb”の中点は、“（00aaaaaaaa＋00bbbbbbbb）÷10”（ただし、“10”はバイナリ値である）の商であるとする。“00aaaaaaaa”および“00bbbbbbbb”の中点を“AAAAAAAAAA”とする。よって、ハッシュ空間生成部１２ｂは、“0000000000≦Ｈａ＜AAAAAAAAAA”であるハッシュ値Ｈａの区間を区間Ａとする。区間Ａに対応する拠点は、拠点Ａである。
【００３２】
また、拠点Ｃの拠点ＩＤ“010ccccccc”は、時計回り方向の円環座標軸上において“00bbbbbbbb”の次に拠点が対応付けられる座標である。ここで、“00bbbbbbbb”および“010ccccccc”の中点は、“（00bbbbbbbb＋010ccccccc）÷10”（ただし、“10”はバイナリ値である）の商であるとする。“00bbbbbbbb”および“010ccccccc”の中点を“BBBBBBBBBB”とする。よって、ハッシュ空間生成部１２ｂは、“AAAAAAAAAA≦Ｈａ＜BBBBBBBBBB”であるハッシュ値Ｈａの区間を区間Ｂとする。区間Ｂに対応する拠点は、拠点Ｂである。同様にして、ハッシュ空間生成部１２ｂは、区間Ｃ〜区間Ｇを生成する。そして、ハッシュ空間生成部１２ｂは、時計回り方向の円環座標軸上において、拠点Ｇの拠点ＩＤ“1ggggggggg”および拠点Ｈの拠点ＩＤ“1hhhhhhhhh”の中点を、“（1ggggggggg＋1hhhhhhhhh）÷10”（ただし、“10”はバイナリ値である）の商である“GGGGGGGGGG”とする場合、“GGGGGGGGGG≦Ｈａ≦1111111111”の区間を区間Ｈとする。区間Ｈに対応する拠点は、拠点Ｈである。
【００３３】
そして、ハッシュ空間生成部１２ｂは、生成した各区間、ハッシュ値Ｈａ、各拠点の対応関係を、図４Ａに示すハッシュ空間情報１３ｂとして、記憶部１３に記憶させる。図４Ａに示すように、ハッシュ空間情報１３ｂによれば、例えば区間Ａに属するハッシュ値Ｈａは“0000000000≦Ｈａ＜AAAAAAAAAA”である。また、図４Ａに示すように、区間Ａは、拠点Ａに対応付けられることが分かる。他の区間についても同様である。
【００３４】
なお、拠点情報１３ａおよびハッシュ空間情報１３ｂに基づき、ハッシュ空間の円環座標軸上に各リージョン、各拠点および各リージョンを図示すると、図４Ｂのようになる。図４Ｂによれば、ハッシュ空間生成部１２ｂは、１０ビットのハッシュ空間を４つの部分ハッシュ空間へ分割することが分かる。すなわち、４つの部分ハッシュ空間とは、北海道リージョンに対応する“0000000000≦Ｈａ＜0100000000”、東北リージョンに対応する“0100000000≦Ｈａ＜0110000000”、北関東リージョンに対応する“0110000000≦Ｈａ＜100000000”、南関東リージョンに対応する“1000000000≦Ｈａ＜000000000”である。
【００３５】
また、図４Ｂによれば、ハッシュ空間生成部１２ｂは、１０ビットのハッシュ空間の円環座標軸上において、拠点Ａを座標“00aaaaaaaa”へ、拠点Ｂを座標“00bbbbbbbb”へ、拠点Ｃを座標“010ccccccc”へ、拠点Ｄを座標“011ddddddd”へ対応付けることが分かる。同様に、ハッシュ空間生成部１２ｂは、１０ビットのハッシュ空間の円環座標軸上において、拠点Ｅを座標“1eeeeeeeee”へ、拠点Ｆを座標“1fffffffff”へ、拠点Ｇを座標“1ggggggggg”へ、拠点Ｈを座標“1hhhhhhhhh”へ対応付けることが分かる。
【００３６】
なお、図４Ｂに示すように、当該リージョンが北海道リージョンである場合、東北リージョンが隣接リージョンとなることが分かる。同様に、当該リージョンが東北リージョンである場合、北海道リージョンおよび北関東リージョンが隣接リージョンとなることが分かる。同様に、当該リージョンが北関東リージョンである場合、東北リージョンおよび南関東リージョンが隣接リージョンとなることが分かる。同様に、当該リージョンが南関東リージョンである場合、北関東リージョンが隣接リージョンとなることが分かる。
【００３７】
また、図４Ｃによれば、ハッシュ空間生成部１２ｂは、ハッシュ値Ｈａに対して、“0000000000≦Ｈａ＜AAAAAAAAAA”の区間Ａを拠点Ａに対応する区間、“AAAAAAAAAA≦Ｈａ＜BBBBBBBBBB”の区間Ｂを拠点Ｂに対応する区間とすることが分かる。同様に、ハッシュ空間生成部１２ｂは、“BBBBBBBBBB≦Ｈａ＜CCCCCCCCCC”の区間Ｃを拠点Ｃに対応する区間、“CCCCCCCCCC≦Ｈａ＜DDDDDDDDDD”の区間Ｄを拠点Ｄに対応する区間とすることが分かる。同様に、ハッシュ空間生成部１２ｂは、“DDDDDDDDDD≦Ｈａ＜EEEEEEEEEE”の区間Ｅを拠点Ｅに対応する区間、“EEEEEEEEEE≦Ｈａ＜FFFFFFFFFF”の区間Ｆを拠点Ｆに対応する区間とすることが分かる。同様に、ハッシュ空間生成部１２ｂは、“FFFFFFFFFF≦Ｈａ＜GGGGGGGGGG”の区間Ｇを拠点Ｇに対応する区間、“GGGGGGGGGG≦Ｈａ≦1111111111”の区間Ｈを拠点Ｈに対応する区間とすることが分かる。
【００３８】
バックアップ拠点決定部１２ｃは、拠点装置２０それぞれが記憶するユーザデータのバックアップデータを配置する他の拠点装置２０を決定する。バックアップ拠点決定部１２ｃは、同一拠点に配置されるユーザデータであっても、ユーザデータごとに、ユーザデータのバイナリデータに基づくハッシュ値に応じて、異なる他の拠点装置２０へバックアップデータを配置する。
【００３９】
バックアップ拠点決定部１２ｃは、拠点装置２０ごと、対象のユーザデータごとに、ユーザデータのバイナリデータ、所定のハッシュ関数、所定のハッシュキーを用いて、ユーザデータごとのハッシュ値を算出する。そして、バックアップ拠点決定部１２ｃは、算出したハッシュ値の上位Ｘビット（１≦Ｘ≦３）と、拠点情報１３ａを参照し、ハッシュ値が当該リージョンまたは隣接リージョンに含まれるか否かを判定する。
【００４０】
そして、バックアップ拠点決定部１２ｃは、算出したハッシュ値が当該リージョンまたは隣接リージョンに含まれると判定した場合には、リージョンコードの置換をおこなう。すなわち、バックアップ拠点決定部１２ｃは、対象のユーザデータのバイナリデータに基づくハッシュ値を、当該リージョン以外かつ隣接リージョン以外のリージョンに含まれる拠点数で除算した剰余（以下、モジュロ値と呼ぶ）を算出する。
【００４１】
そして、バックアップ拠点決定部１２ｃは、算出したモジュロ値の、リージョンコードのビット数の最大値に相当するビット数Ｙのバイナリ値を算出する。そして、バックアップ拠点決定部１２ｃは、算出したＹビットのモジュロ値のバイナリ値を、当該リージョン以外かつ隣接リージョン以外でハッシュ空間上の円環座標軸上で時計回り方向で最初に位置するリージョンのリージョンコードへ加算する。そして、バックアップ拠点決定部１２ｃは、対象のユーザデータのバイナリデータに基づくハッシュ値の上位Ｙビットへ加算した変換リージョンコードを算出する。そして、バックアップ拠点決定部１２ｃは、変換リージョンコードでハッシュ値の上位Ｙビットを置換する。
【００４２】
そして、バックアップ拠点決定部１２ｃは、変換リージョンコードでリージョンコードと置換したハッシュ値と、ハッシュ空間情報１３ｂに基づき、ハッシュ値が含まれる区間を算出する。そして、バックアップ拠点決定部１２ｃは、ハッシュ空間情報１３ｂに基づき、算出した区間に対応付けられる拠点に対象のユーザデータを配置すると決定する。
【００４３】
一方、バックアップ拠点決定部１２ｃは、対象のユーザデータに基つくハッシュ値が当該リージョンおよび隣接リージョンのいずれにも含まれないと判定した場合には、リージョンコードの置換をおこなわない。すなわち、バックアップ拠点決定部１２ｃは、ハッシュ空間情報１３ｂに基づき、ハッシュ値が含まれる区間を算出する。そして、バックアップ拠点決定部１２ｃは、ハッシュ空間情報１３ｂに基づき、算出した区間に対応付けられる拠点に対象のユーザデータを配置すると決定する。
【００４４】
バックアップ制御部１２ｄは、対象のユーザデータが配置される拠点から、バックアップ拠点決定部１２ｃにより決定された対象のユーザデータのバックアップを配置する拠点へ、当該ユーザデータを複写などによりバックアップする。なお、バックアップ制御部１２ｄは、データ分散配置装置１０から独立した装置であってもよい。すなわち、バックアップ制御部１２ｄは、バックアップ拠点決定部１２ｃの指示により、対象のユーザデータをある拠点から他の拠点へバックアップする別装置であってもよい。
【００４５】
または、対象のユーザデータのバックアップは、バックアップ拠点決定部１２ｃの指示により、該当する２つの拠点が自律的にバックアップデータの送信、ならびに、受信および記憶をおこなうとしてもよい。
【００４６】
（拠点装置の構成）
拠点装置２０（２０Ａ〜２０Ｈ）は、いずれも同様の構成である。拠点装置２０は、通信部２１、制御部２２、記憶部２３を有する。通信部２１は、拠点装置２０がネットワーク２を介してデータ分散配置装置１０ならびに他の拠点装置２０と通信するためのインターフェースである。制御部２２は、拠点装置２０の装置全体の制御を実行する。記憶部２３は、ユーザデータ２３ａ、バックアップデータ２３ｂを記憶する。
【００４７】
ユーザデータ２３ａは、拠点装置２０が提供するサービスを提供するために用いるユーザデータである。例えば、図５Ａに示すように、ユーザデータ２３ａは、ユーザデータ名に各バイナリデータが対応付けられて管理される。また、バックアップデータ２３ｂは、拠点装置２０が配置される当該リージョン以外かつ隣接リージョン以外のリージョンに配置される他の拠点装置２０に配置されるユーザデータのバックアップである。バックアップデータ２３ｂは、当該拠点装置２０が位置する当該リージョン以外かつ隣接リージョン以外のリージョンに位置する他の拠点装置２０に配置されるユーザデータのバックアップデータが、データ分散配置装置１０の決定にしたがい配置されたものである。例えば、図５Ｂに示すように、バックアップデータ２３ｂは、バックアップデータ名に、バックアップ元を示す拠点、各バイナリデータが対応付けられて管理される。
【００４８】
（データ分散配置装置の処理：エリア分割処理）
図６Ａは、エリア分割処理を示すフローチャートである。データ分散配置装置１０の制御部１２のエリア分割部１２ａは、データ分散配置装置１０に接続された入力部（不図示）から入力された、例えば災害波及範囲を考慮したエリア分割指示を受け付ける（ステップＳ１１）。続いて、エリア分割部１２ａは、エリア分割指示にしたがって、分割対象のエリアを分割して複数のリージョンを生成する（ステップＳ１２）。続いて、エリア分割部１２ａは、エリアをリージョンへ分割した場合のエリア、各リージョン、各リージョンに含まれる拠点の対応関係を、拠点情報１３ａの一部として、記憶部１３に記憶させる（ステップＳ１３）。
【００４９】
（データ分散配置装置の処理：ハッシュ空間生成処理）
図６Ｂは、ハッシュ空間生成処理を示すフローチャートである。データ分散配置装置１０の制御部１２のハッシュ空間生成部１２ｂは、拠点情報１３ａを参照し、各リージョンのリージョンコードを決定する（ステップＳ２１）。続いて、ハッシュ空間生成部１２ｂは、決定したリージョンコードに基づき、１０ビットのハッシュ空間を、各リージョンコードに対応する部分ハッシュ空間へ分割する（ステップＳ２２）。
【００５０】
続いて、ハッシュ空間生成部１２ｂは、各リージョンに位置する各拠点の識別情報に基づき算出したハッシュ値のリージョンコードに該当する桁のビットを当該リージョンのリージョンコードで置換して、各拠点の拠点ＩＤを算出する（ステップＳ２３）。各拠点の拠点ＩＤは、各拠点装置２０をハッシュ空間の円環座標上の座標へ対応付けるものである。言い換えると、各拠点装置２０は、各拠点ＩＤにより、ハッシュ空間および部分ハッシュ空間へマッピングされることになる。続いて、ハッシュ空間生成部１２ｂは、各リージョン、各リージョンコード、各拠点ＩＤの関係を拠点情報１３ａの一部として記憶部１３に記憶させる（ステップＳ２４）。
【００５１】
続いて、ハッシュ空間生成部１２ｂは、ハッシュ空間の円環座標軸上の座標へ各拠点ＩＤを対応付けた場合に、円環座標軸上における各拠点間に各拠点を対応関係付けることにより、各拠点に対応する円環座標軸上の区間を算出する（ステップＳ２５）。続いて、ハッシュ空間生成部１２ｂは、各区間、各ハッシュ値の範囲、各拠点の対応関係をハッシュ空間情報１３ｂとして記憶部１３に記憶させる（ステップＳ２６）。
【００５２】
（データ分散配置装置の処理：バックアップデータの配置拠点決定処理）
図６Ｃは、バックアップデータの配置拠点決定処理を示すフローチャートである。データ分散配置装置１０の制御部１２のバックアップ拠点決定部１２ｃは、１つの拠点装置２０を選択し、選択した拠点装置２０に配置されるバックアップ対象のユーザデータのバイナリデータを１つ選択する（ステップＳ３１）。続いて、バックアップ拠点決定部１２ｃは、選択したバイナリデータに基づきハッシュ値を算出する（ステップＳ３２）。
【００５３】
続いて、バックアップ拠点決定部１２ｃは、算出したハッシュ値のリージョンコードが、当該拠点装置２０が位置する当該リージョンまたは隣接リージョンのリージョンコードのいずれかと一致するか否かを判定する（ステップＳ３３）。バックアップ拠点決定部１２ｃは、ハッシュ値のリージョンコードが、当該拠点装置２０が位置する当該リージョンまたは隣接リージョンのリージョンコードのいずれかと一致すると判定する場合（ステップＳ３３Ｙｅｓ）、ステップＳ３４へ処理を移す。一方、バックアップ拠点決定部１２ｃは、ハッシュ値のリージョンコードが、当該拠点装置２０が位置する当該リージョンおよび隣接リージョンのリージョンコードのいずれかとも一致しないと判定する場合（ステップＳ３３Ｎｏ）、ステップＳ３７へ処理を移す。
【００５４】
ステップＳ３４では、バックアップ拠点決定部１２ｃは、当該リージョン以外かつ隣接リージョン以外に位置する拠点数の値による、当該バックアップ対象のバイナリデータのモジュロ値を算出する。続いて、バックアップ拠点決定部１２ｃは、円環座標軸上で、当該リージョン以外かつ隣接リージョン以外で時計回り方向で最初に位置するリージョンのリージョンコードに、算出したモジュロ値のバイナリ表現を加算する。そして、バックアップ拠点決定部１２ｃは、加算結果である変換リージョンコードを算出する（ステップＳ３５）。続いて、バックアップ拠点決定部１２ｃは、ハッシュ値リージョンコードを変換リージョンコードで置換する（ステップＳ３６）。
【００５５】
続いて、バックアップ拠点決定部１２ｃは、リージョンコードを変換リージョンコードで置換したハッシュ値が含まれる区間に対応する拠点に当該ユーザデータのバックアップを配置すると決定する（ステップＳ３７）。続いて、バックアップ拠点決定部１２ｃは、未選択のユーザデータがあるか否かを判定する（ステップＳ３８）。すなわち、ステップＳ３８では、バックアップ拠点決定部１２ｃは、同一の拠点装置２０にバックアップ先を決定していないユーザデータがあるか否かを判定する。さらに、ステップＳ３８では、バックアップ拠点決定部１２ｃは、同一の拠点装置２０の全てのユーザデータのバックアップ先拠点を決定したならば、他の拠点装置２０にバックアップ先を決定すべきユーザデータがあるか否かを判定する。
【００５６】
バックアップ拠点決定部１２ｃは、未選択のユーザデータがあると判定した場合（ステップＳ３８Ｙｅｓ）、ステップＳ３１へ処理を移し、未選択のユーザデータがないと判定した場合（ステップＳ３８Ｎｏ）、処理を終了する。
【００５７】
（バックアップデータの配置拠点を決定する処理の一例）
図７は、バックアップデータの配置拠点を決定する処理の一例を示す図である。例えば、北海動リージョンの拠点Ａに配置されるユーザデータ３およびユーザデータ４を考える。バックアップ拠点決定部１２ｃは、ユーザデータ３に基づくハッシュ値３ａ“0110000011”を算出したとする。ハッシュ値３ａの上位２ビット“01”および上位３ビット“011”は、北海道リージョンおよび隣接リージョンである東北リージョンのいずれでもないため、バックアップ拠点決定部１２ｃは、リージョンコードの置換はおこなわない。そして、バックアップ拠点決定部１２ｃは、ハッシュ空間情報１３ｂに基づき、ハッシュ値３ａが含まれる区間Ｄを算出する。そして、図７に示すように、バックアップ拠点決定部１２ｃは、ハッシュ空間情報１３ｂに基づき、区間Ｄに対応付けられる北関東の拠点Ｄへ、ユーザデータ３のバックアップデータを配置すると決定する。
【００５８】
また、バックアップ拠点決定部１２ｃは、ユーザデータ４に基づくハッシュ値４ａ“0100000010”を算出したとする。ハッシュ値４ａの上位３ビット“010”は、北海道リージョンの隣接リージョンである東北リージョンに該当する。東北リージョンに北海道リージョンのユーザデータのバックアップデータを配置することはできない。そこで、バックアップ拠点決定部１２ｃは、リージョンコードの置換をおこなう。すなわち、バックアップ拠点決定部１２ｃは、北海道リージョンおよび東北リージョンを除く東日本エリアの拠点数５でハッシュ値４ａを除算し、モジュロ値３を算出したとする。そして、バックアップ拠点決定部１２ｃは、モジュロ値３のＹビットのバイナリ値“011”を、北海道リージョン以外かつ東北リージョン以外でハッシュ空間上の円環座標軸上で時計回り方向で最初に位置する北関東リージョンのリージョンコード“011”へ加算する。加算の結果、バックアップ拠点決定部１２ｃは、“110”を得る。そして、バックアップ拠点決定部１２ｃは、“110”で、ハッシュ値４ａの上位Ｙビットすなわちリージョンコードを置換して、ハッシュ値４ｂ“1100000010”を得る。
【００５９】
そして、バックアップ拠点決定部１２ｃは、上位Ｙビットを置換したハッシュ値４ｂと、ハッシュ空間情報１３ｂに基づき、ハッシュ値４ｂが含まれる区間Ｇを算出する。そして、図７に示すように、バックアップ拠点決定部１２ｃは、ハッシュ空間情報１３ｂに基づき、算出した区間Ｇに対応付けられる南関東の拠点Ｇにユーザユーザデータ４のバックアップデータを配置すると決定する。
【００６０】
（バックアップデータの配置拠点の決定の均一性）
図８Ａおよび図８Ｂは、バックアップデータの配置拠点の決定の均一性を示す図である。例えば、北海動リージョンの拠点Ａに配置されるユーザデータ５を考える。バックアップ拠点決定部１２ｃは、ユーザデータ５のバイナリデータ５ａに基づくハッシュ値６“010XXXXXXX”を算出したとする。ただし、“010XXXXXXX”の表記において、“010”は、東北リージョンのリージョンコードである。また、“010XXXXXXX”の表記において、“X”は“0”または“1”のいずれかのビットであり、全てのビットが同一であることを示すものではない。
【００６１】
図８Ａに示すように、ハッシュ値６は、北海道リージョンの隣接リージョンである東北リージョンの拠点Ｃに対応する区間Ｃに含まれるため、リージョンコードの置換を要する。そこで、バックアップ拠点決定部１２ｃは、上述した方法の変換リージョンコード算出およびリージョンコードの置換をおこなう。先ず、バックアップ拠点決定部１２ｃは、ハッシュ値６のリージョンコードを、円環座標軸上の時計回り方向で北海道リージョンおよび東北リージョンの次に位置する北関東リージョンのリージョンコード“011”で置き換え、図８Ｂに示すハッシュ値７を得る。
【００６２】
そして、バックアップ拠点決定部１２ｃは、東日本エリアの北海道リージョンおよび東北リージョン以外のリージョンに位置する拠点数を示す値の５でバイナリデータ５ａを除算した場合のモジュロ値を算出する。ここで、拠点数を示す値の５のモジュロ値として、０、１、２、３、４が均等に出現する。モジュロ値が０の場合は、バックアップ拠点決定部１２ｃは、ハッシュ値７のリージョンコード“011”に“000”を加算した変換リージョンコード“011”でハッシュ値７のリージョンコードを置換してハッシュ値７ａを得る。なお、ここでは、ハッシュ値７と、ハッシュ値７ａは、同一値であり、リージョンコードの変換は実質的にはおこなわれない。そして、バックアップ拠点決定部１２ｃは、ハッシュ値７ａが含まれる区間Ｄに対応する拠点へ、ユーザデータ５のバックアップを配置すると決定する。
【００６３】
また、モジュロ値が１の場合は、バックアップ拠点決定部１２ｃは、ハッシュ値７のリージョンコード“011”に“001”を加算した変換リージョンコード“100”でハッシュ値７のリージョンコードを置換してハッシュ値７ｂを得る。そして、バックアップ拠点決定部１２ｃは、ハッシュ値７ｂが含まれる区間Ｅに対応する拠点へ、ユーザデータ５のバックアップを配置すると決定する。モジュロ値が２〜４の場合も、モジュロ値が１の場合と同様である。
【００６４】
（実施形態による効果）
各モジュロ値は、発生頻度が等確率であるため、モジュロ値に基づいて変換リージョンコードによりリージョンコードを変換したハッシュ値は、当該リージョン以外かつ隣接リージョン以外の各区間に均等に属することになる。よって、図９に示すように、当該拠点のバックアップ先拠点を決定する際に、均等に配置先を決定するため、ユーザデータのバックアップを、当該拠点が位置するリージョン以外かつ隣接リージョン以外のリージョンに位置する他の拠点へ均等に配置することができる。すなわち、当該拠点の拠点装置２０に配置される各ユーザデータのバックアップを、当該リージョン以外かつ隣接リージョン以外の、当該リージョンで発生した災害による影響が波及しない位置的位置に位置する他の拠点の他の拠点装置へ分散配置する。よって、当該拠点装置２０が災害を被りサービス提供を継続できなくなっても、他の拠点装置２０が、当該他の拠点装置２０へ分散配置された各ユーザデータのバックアップデータを用いてサービス提供を継続し、サービス提供の可用性を高めることができる。また、広域災害の影響が波及しない複数の拠点に均等にバックアップデータを配置するので、広域災害発生時に、災害発生拠点で提供していたサービス提供を代行することによるバックアップ拠点への負荷増大が、特定の拠点に集中することを回避できる。
【００６５】
以上の実施形態によれば、データ分散配置装置１０は、拠点装置２０ごと、対象のユーザデータごとに、ユーザデータに基づくハッシュ値を算出する。そして、データ分散配置装置１０は、ハッシュ値が当該リージョンまたは隣接リージョンに含まれるか否かを判定する。算出したハッシュ値が当該リージョンまたは隣接リージョンに含まれる場合には、データ分散配置装置１０は、リージョンコードを置換したハッシュ値が含まれるハッシュ空間上の区間に対応する、当該リージョン以外かつ隣接リージョン以外の拠点へ、対象のユーザデータのバックアップを配置すると決定する。算出したハッシュ値が当該リージョン以外かつ隣接リージョン以外に含まれる場合には、データ分散配置装置１０は、算出したハッシュ値が含まれるハッシュ空間上の区間に対応する拠点へ、対象のユーザデータのバックアップを配置すると決定する。
【００６６】
［他の実施形態］
さて、これまで本願が開示する技術の実施形態について説明したが、本願が開示する技術は上述した実施形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では本願が開示する技術に含まれる他の実施形態を説明する。
【００６７】
（１）リージョンについて
実施形態では、リージョンは、矩形領域で範囲が決められるとした。しかし、これに限らず、例えば、リージョンは、面積に基づいて各範囲が決められてもよい。この場合、各リージョンの面積は、当該リージョン内で災害が発生した場合に、災害の影響が波及しうる範囲をカバーするように設定される。また、リージョンは、過去の災害情報、災害予測情報などの分割条件に基づいて、データ分散配置装置１０が自動的に各範囲を決定することとしてもよい。
【００６８】
（２）ハッシュ空間への拠点のマッピングについて
実施形態では、ハッシュ空間へ拠点をマッピングする方法として、データ分散配置装置１０が、各拠点の識別情報に基づく拠点ＩＤをハッシュ空間の円環座標軸上の対応する座標へ対応付けるとした。しかし、これに限らず、データ分散配置装置１０は、各リージョンに対応するハッシュ空間の円環座標軸上に、各部分ハッシュ空間に対応する円環座標軸上の端点を除き、それぞれのリージョンに位置する拠点を均等間隔で割り当てるようにしてもよい。
【００６９】
（３）変換リージョンコードの算出方法について
実施形態では、変換リージョンコードの算出方法として、データ分散配置装置１０が、当該リージョン以外かつ隣接リージョン以外に位置する拠点数の値による、当該バックアップ対象のバイナリデータのハッシュ値のモジュロ値を算出する。そして、データ分散配置装置１０が、円環座標軸上で、当該リージョン以外かつ隣接リージョン以外で時計回り方向で最初に位置するリージョンのリージョンコードに、算出したモジュロ値のバイナリ表現を加算する。そして、データ分散配置装置１０が、加算結果である変換リージョンコードを算出するとした。
【００７０】
しかし、これに限らず、データ分散配置装置１０が、円環座標軸上で、当該リージョン以外かつ隣接リージョン以外で時計回り方向で最後に位置するリージョンのリージョンコードから、算出したモジュロ値のバイナリ表現を減算する。そして、データ分散配置装置１０が、減算結果である変換リージョンコードを算出するとしてもよい。このようにしても、各モジュロ値の出現確率の均等性により、当該拠点のユーザデータのバックアップデータを、当該リージョン以外かつ隣接リージョン以外のリージョンの各拠点へ均等に配置することができる。
【００７１】
（４）システム構成など
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。例えば、エリア分割部１２ａ、ハッシュ空間生成部１２ｂ、バックアップ拠点決定部１２ｃ、バックアップ制御部１２ｄを適宜任意の単位に統合してもよい。例えば、ハッシュ空間生成部１２ｂ、バックアップ拠点決定部１２ｃ、バックアップ制御部１２ｄを統合してもよい。また、例えば、ハッシュ空間生成部１２ｂおよびバックアップ拠点決定部１２ｃを統合してもよい。また、例えば、バックアップ拠点決定部１２ｃおよびバックアップ制御部１２ｄを統合してもよい。
【００７２】
また、データ分散配置装置１０および拠点装置２０においておこなわれる各処理は、全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）およびＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、データ分散配置装置１０および拠点装置２０においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００７３】
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【００７４】
（５）データ構成など
図３Ａに示す拠点情報１３ａおよび図４Ａに示すハッシュ空間情報１３ｂは、各情報の保持形態の一例を示すに過ぎない。例えば、拠点情報１３ａおよびハッシュ空間情報１３ｂは、各情報の各項目をいずれの情報に含めるかを適宜変更してもよい。例えば、拠点情報１３ａの拠点ＩＤをハッシュ空間情報１３ｂに含めてもよい。また、拠点情報１３ａおよびハッシュ空間情報１３ｂを格納する各テーブルは、適宜分散または統合してもよい。また、データ分散配置装置１０は、ハッシュ空間情報１３ｂに代えて、図４Ｂおよび図４Ｃに示す情報をテーブルに格納して用いてもよい。
【００７５】
（６）プログラム
また、実施形態において説明した制御部１２が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、制御部１２が実行する処理をコンピュータが実行可能な言語で記述したデータ分散配置決定プログラムを作成することもできる。この場合、コンピュータがデータ分散配置決定プログラムを実行することにより、実施形態と同様の効果を得ることができる。さらに、データ分散配置決定プログラムをコンピュータ読み取り可能な記録媒体に記録して、記録媒体に記録されたデータ分散配置決定プログラムをコンピュータに読み込ませて実行することにより実施形態と同様の処理を実現できる。以下に、図２に示したデータ分散配置装置１０と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
【００７６】
図１０は、監視プログラムを実行するコンピュータ１０００を示す図である。コンピュータ１０００は、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらは、バス１０８０によって接続される。
【００７７】
図１０に示すように、メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。また、ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。また、ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、磁気ディスクや光ディスクなどの着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０は、例えばマウス１０５１、キーボード１０５２に接続される。また、ビデオアダプタ１０６０は、例えばディスプレイ１０６１に接続される。
【００７８】
ここで、図１０に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、データ分散配置決定プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【００７９】
また、実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出す。そして、ＣＰＵ１０２０が、エリア分割手順、データ分散配置決定手順、バックアップ拠点決定手順、バックアップ制御手順を実行する。
【００８０】
なお、データ分散配置決定プログラムにかかるプログラムモジュール１０９３およびプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られない。すなわち、プログラムモジュール１０９３およびプログラムデータ１０９４は、着脱可能な記憶媒体に記憶され、ディスクドライブなどを介してＣＰＵ１０２０によって読み出されてもよい。データ分散配置決定プログラムにかかるプログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）など）を介して接続された他のコンピュータに記憶されていてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出され、実行されてもよい。
【符号の説明】
【００８１】
１  データ分散配置システム
１０  データ分散配置装置
１１  通信部
１２  制御部
１２ａ  エリア分割部
１２ｂ  ハッシュ空間生成部
１２ｃ  バックアップ拠点決定部
１２ｄ  バックアップ制御部
１３  記憶部
１３ａ  拠点情報
１３ｂ  ハッシュ空間情報
２０、２０Ａ〜２０Ｈ  拠点装置
【図１】
2014154087.tif 000003
【図２】
2014154087.tif 000004
【図３Ａ】
2014154087.tif 000005
【図３Ｂ】
2014154087.tif 000006
【図４Ａ】
2014154087.tif 000007
【図４Ｂ】
2014154087.tif 000008
【図４Ｃ】
2014154087.tif 000009
【図５Ａ】
2014154087.tif 000010
【図５Ｂ】
2014154087.tif 000011
【図６Ａ】
2014154087.tif 000012
【図６Ｂ】
2014154087.tif 000013
【図６Ｃ】
2014154087.tif 000014
【図７】
2014154087.tif 000015
【図８Ａ】
2014154087.tif 000016
【図８Ｂ】
2014154087.tif 000017
【図９】
2014154087.tif 000018
【図１０】
2014154087.tif 000019