(57)【要約】【課題】広域に分散したサーバマシンで構成されるクラスタシステムにおいて、大規模災害耐性を持たせつつ、広域ネットワークコストを過度に増加させなくする。【解決手段】コンシステントハッシングによってクライアント信号を複数の処理部１に振り分ける二次振分部２を複数設置してクラスタ化し、クライアント４からクライアント信号を受信する一次振分部３は、受信したクライアント信号を自身と同じ拠点の二次振分部２に振り分ける。処理部１は、コンシステントハッシングのＩＤ空間において自身のメンバＩＤの位置を起点として所定方向に進んで最初に遭遇する他拠点のメンバＩＤに該当する処理部１に、自身に振り分けられたクライアント信号に係るデータの複製を作成させて保持させる。【選択図】図１
2015162105.tif 000002
【特許請求の範囲】
【請求項１】
広域に分散された複数の拠点が広域ネットワーク回線によって接続され、複数の処理サーバを有してなるクラスタシステムであって、
前記拠点のうちの少なくとも１つには、
クライアントから送信されるクライアント信号に係るデータを保持し、前記クライアント信号を処理することによって前記クライアントに所定のサービスを提供する処理部の機能を有する複数の処理サーバからなるクラスタと、
前記クライアント信号に含まれるキー情報を用いたコンシステントハッシングによって複数の前記処理部のうちのいずれかに前記クライアント信号を振り分ける二次振分部の機能を有する複数の処理サーバからなるクラスタと、
前記クライアントから送信されるクライアント信号を受信して、複数の前記二次振分部のうちのいずれかに前記クライアント信号を振り分ける一次振分部と、が設置され、
前記一次振分部は、
前記処理サーバのそれぞれについて、前記コンシステントハッシングのＩＤ空間に射影される当該処理サーバのメンバＩＤ情報と、当該処理サーバが前記二次振分部の機能と前記処理部の機能とを有するか否かの情報と、当該処理サーバが設置されている拠点の識別情報とを含むメンバ管理情報を、記憶部に記憶し、
前記メンバ管理情報を参照することにより、前記クライアントから受信した前記クライアント信号を、自身と同一の拠点に設置されている複数の前記二次振分部に負荷が均等になるように振り分ける拠点内一次振分制御部を備え、
前記処理部は、
前記メンバ管理情報から抽出された前記処理部の機能を有する前記処理サーバについてのメンバ管理情報を参照して、自身に振り分けられた前記クライアント信号に係るデータの複製を、前記コンシステントハッシングのＩＤ空間において自身のメンバＩＤに該当する位置から所定方向に進んだときに初めて遭遇する他拠点のメンバＩＤに対応する前記処理部に、作成させて保持させる
ことを特徴とするクラスタシステム。
【請求項２】
広域に分散された複数の拠点が広域ネットワーク回線によって接続され、複数の処理サーバを有してなるクラスタシステムであって、
前記拠点のうちの少なくとも１つには、
クライアントから送信されるクライアント信号に係るデータを保持し、前記クライアント信号を処理することによって前記クライアントに所定のサービスを提供する処理部の機能を有する複数の処理サーバからなるクラスタと、
前記クライアント信号に含まれるキー情報を用いたコンシステントハッシングによって複数の前記処理部のうちのいずれかに前記クライアント信号を振り分ける二次振分部の機能を有する複数の処理サーバからなるクラスタと、
前記クライアントから送信されるクライアント信号を受信して、複数の前記二次振分部のうちのいずれかに前記クライアント信号を振り分ける一次振分部と、が設置され、
前記一次振分部は、
前記処理サーバのそれぞれについて、前記コンシステントハッシングのＩＤ空間に射影される当該処理サーバのメンバＩＤ情報と、当該処理サーバが前記二次振分部の機能と前記処理部の機能とを有するか否かの情報と、当該処理サーバが設置されている拠点の識別情報とを含むメンバ管理情報を、記憶部に記憶し、
前記メンバ管理情報を参照することにより、同一の前記クライアントから受信した前記クライアント信号を、当該クライアントに対応して一意に決定される拠点に設置されている複数の前記二次振分部に負荷が均等になるように振り分ける拠点間一次振分制御部を備え、
前記二次振分部は、
前記メンバ管理情報から抽出された前記処理部の機能を有する自身と同一の拠点の前記処理サーバについてのメンバ管理情報を参照して、自身に振り分けられた前記クライアント信号を、自身と同一の拠点に設置されている前記処理部に振り分ける拠点内二次振分制御部を備える
ことを特徴とするクラスタシステム。
【請求項３】
請求項２に記載のクラスタシステムにおいて、
前記一次振分部は、大規模災害対策用の複製データを他拠点に作成させて保持させる複製データ振分制御部を備え、
前記処理部は、
自身に振り分けられた前記クライアント信号に係るデータの大規模災害対策用の複製を、自身と同一の拠点の前記一次振分部に依頼し、
前記複製を依頼された前記一次振分部の前記複製データ振分制御部は、自身の拠点の大規模災害対策用のデータを保持する所定の他拠点の前記一次振分部に、前記データの大規模災害対策用の複製を依頼する複製依頼信号を送信し、
前記複製依頼信号を受信した前記他拠点の一次振分部の前記複製データ振分制御部は、前記メンバ管理情報を参照して、前記複製依頼信号を自身と同一の拠点に設置されている複数の前記二次振分部のうちのいずれかに振り分け、
前記複製依頼信号を振り分けられた前記二次振分部の前記二次振分制御部は、前記メンバ管理情報から抽出された前記処理部の機能を有する自身と同一の拠点の前記処理サーバについてのメンバ管理情報を参照して、自身に振り分けられた前記複製依頼信号を、自身と同一の拠点に設置されている前記処理部に振り分け、
前記複製依頼信号を振り分けられた前記処理部は、前記データの大規模災害対策用の複製を作成して保持する
ことを特徴とするクラスタシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理サーバからなるクラスタシステムにおいて、大規模災害などによりデータセンタが全壊した場合でも、保持しているデータを失わずにサービスを継続するための技術に関する。
【背景技術】
【０００２】
大容量データ保持、高速アクセス、高可用性が求められる近年のＷｅｂシステムでは、複数のサーバを協調動作させることにより、システム全体の処理能力を向上可能なクラスタシステムが用いられている。クラスタシステムによる分散処理では、クラスタを構成するクラスタメンバ（例えば処理サーバ）と担当するデータとが対応付けられている必要がある。クラスタメンバとデータを対応付ける手法には、コンシステントハッシング（Consistent Hashing）という手法がある（例えば、非特許文献１参照）。
【０００３】
コンシステントハッシングは、データのハッシュ値と、クラスタメンバに割り当てたＩＤ（Identifier）とを同一のＩＤ空間上へ射影することで、クラスタメンバの担当データを定める手法である。クラスタメンバが増減した場合でも、クラスタメンバとデータとの対応関係の変更が、全体の１／Ｎ（Ｎ：クラスタメンバ数）だけで済むため、データ再配分に要する負荷を抑えられるという特徴がある。クラスタメンバへのＩＤの割り当て方としては、例えばクラスタメンバのＩＰ（Internet Protocol）アドレスのハッシュ値を用いる方法がある。
【０００４】
図９は、コンシステントハッシングによるクラスタメンバ（以下、適宜「メンバ」と略記）とデータとの対応付けについての説明図である。クラスタを構成する各メンバは、ハッシュ値が射影される環状のＩＤ空間上に、メンバ間の距離がほぼ均等になるように配置される。そして、各メンバは、図９に示すように、時計回りで１つ前のメンバのＩＤから自身のＩＤまでのハッシュ値のデータ範囲を担当する。それぞれのデータは、そのデータに含まれるキー情報（例えば、クライアントのＩＰアドレス）のハッシュ値に対応するＩＤ空間上の位置（図９の黒丸印）から時計回りに進んで最初に遭遇するメンバに振り分けられる（図９の実線矢印）。例えば、図９において、データＡのキー情報のハッシュ値が白ヌキ矢印で示した位置であれば、ＩＤ空間上を時計回りに進んで最初に遭遇するメンバ「１」にデータＡが振り分けられることとなる。
【０００５】
また、クラスタシステムの可用性を向上させるためには、担当メンバ以外にもデータの複製を持たせる冗長化手法がとられる。コンシステントハッシングにおいては、各メンバの複製データを、例えばＩＤ空間上で時計回りに進んだ隣のメンバに作成するようにする。図９に例示するように、メンバ「１」が担当するデータＡの複製データは、メンバ「２」に作成し、メンバ「２」が担当するデータＢの複製データは、メンバ「３」に作成する（図９の破線矢印）。こうすることにより、例えばメンバ「１」が故障等の理由でクラスタから離脱した場合でも、データＡの複製データを保持しているメンバ「２」にデータＡを振り分けることで、メンバ「２」によって処理を継続することが可能となる。
【０００６】
図１０は、各メンバが自身の複製先のメンバを特定するために保持するメンバ管理表３０１の構成例を示す図である。図１０に示すように、メンバ管理表３０１には、クラスタを構成する全メンバについて、メンバＩＤと、ＩＰアドレス等の付加情報との各フィールドを含むレコードが、ＩＤ空間上に射影されるメンバＩＤの値の昇順に登録されている。
【０００７】
コンシステントハッシングによる負荷分散を行うには、クライアント信号を処理する複数の機能部（以下、「処理部」）からなるクラスタと、クライアント信号からキー情報を抽出してハッシュ計算を行い、対応する処理部に信号を転送する機能部（以下、「振分部」）とが必要となる。このとき、処理部のクラスタを構成するサーバマシン数は処理する信号数に応じて増加させることが可能であるが、振分部の性能については言及されていない。例えば単一のサーバマシン上に振分部を実装すると性能ボトルネックとなってシステムがスケーラブルではなくなってしまうため、本問題に対して、振分部のサーバマシンを複数にしてスケールアウトを実現するモデルが提案されている（非特許文献２参照）。
【０００８】
図１１に示すように、本モデルに基づくクラスタシステム３００は、クライアント４からのクライアント信号を処理する処理部１に加えて、振分部をもクラスタ化し、その前段にラウンドロビン等の軽微な振り分けを行う機能部（以下、「一次振分部」）３を設ける。クラスタ化される複数の振分部のことを、以下、「二次振分部」２と呼ぶ。これにより、複数の二次振分部２からなるクラスタによってクライアント４からの信号を分散処理することができ、振分部の性能ボトルネックを解消している。以下、本モデルを「二段階信号振り分けモデル」と称する。なお、一次振分部３の処理は低負荷であり、コモディティなロードバランサ製品を用いることで一般的な大規模システムが扱う信号数を十分に扱えるものとする。
【０００９】
図１２は、前記の二段階信号振り分けモデルにおいて、一次振分部３が二次振分部２となるメンバを特定するために保持するメンバ管理表３０２の構成例を示す図である。図１２に示すように、メンバ管理表３０２には、クラスタシステムを構成する全メンバについて、メンバＩＤと、ＩＰアドレス等の付加情報と、メンバが有する機能との各フィールドを含むレコードが、メンバＩＤの値の昇順に登録されている。一次振分部３は、メンバ管理表３０２のなかから振分部としての機能を有するレコード（機能フィールドの値に「振分」を含むレコード）を抽出して、二次振分部２となるメンバを特定する。また、前記した図１０のメンバ管理表３０１は、このメンバ管理表３０２のなかから処理部としての機能を有するレコード（機能フィールドの値に「処理」を含むレコード）を抽出することによって生成され、処理部１となる各メンバに配布される。
【００１０】
一方、大規模災害によるデータセンタの全壊に備えて、広域に分散したサーバマシンでクラスタを構成する広域分散クラスタモデルが提案されている（非特許文献３参照）。本モデルでは、処理サーバ及び複製データを地理的に離れた複数のサーバマシンに配置することで、大規模災害によって、地域一帯のサーバマシンが同時に使用不能となった場合にも、システムの継続稼働を実現することができる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】丸山不二夫、首藤一幸編、「雲の世界の向こうをつかむクラウドの技術」、ISBN978-4-04-868064-6、アスキー・メディアワークス、2009年11月
【非特許文献２】入江道生、外４名、”スケールアウト柔軟な構成変更を実現するセッション制御サーバのクラスタモデル”、電子情報通信学会総合大会論文集 2011、B-6-11、2011年2月
【非特許文献３】岩佐絵里子、外４名、”高可用サーバクラスタにおける大規模障害を考慮したデータ複製方式の検討”、電子情報通信学会総合大会論文集 2012、B-6-26、2012年3月
【発明の概要】
【発明が解決しようとする課題】
【００１２】
図１３は、前記の二段階信号振り分けモデルと広域分散クラスタモデルとを組み合わせたクラスタシステムの実装例を示す図である。図１３に示すように、広域分散クラスタシステム４００においては、大規模災害に備えて、一次振分部３、二次振分部２、処理部１のそれぞれが、広域に分散された異なる拠点５ａ，５ｂ，５ｃに配置される。このとき、各サーバが収容される拠点（データセンタ等）の間は、ＶＰＮ（Virtual Private Network）や広域Ｌ２（Level2）サービス等の広域ネットワーク回線によって相互に接続される。
【００１３】
一般に、ネットワークコストは、通信距離と帯域（通信速度およびデータ量）とに追従して高くなる傾向があり、広域ネットワークの使用においては、そのコストに注意した設計、運用が求められる。本実装例では、全クライアント信号について、一次振分部３から処理部１に届くまでに最大２回の拠点間広域通信が発生し、さらに各拠点の地理条件によっては非常に長距離の通信となる。したがって、地理条件を無視して信号の振り分けを行うと、高額の広域ネットワークコストが生じてしまうという問題がある。
【００１４】
本発明は、前記の問題を解決するためになされたものであり、広域に分散したサーバマシンで構成されるクラスタシステムにおいて、大規模災害耐性を持たせつつ、広域ネットワークコストを過度に増加させなくすることを目的とする。
【課題を解決するための手段】
【００１５】
前記の目的を達成するために、第一の本発明は、広域に分散された複数の拠点が広域ネットワーク回線によって接続され、複数の処理サーバを有してなるクラスタシステムであって、前記拠点のうちの少なくとも１つには、クライアントから送信されるクライアント信号に係るデータを保持し、前記クライアント信号を処理することによって前記クライアントに所定のサービスを提供する処理部の機能を有する複数の処理サーバからなるクラスタと、前記クライアント信号に含まれるキー情報を用いたコンシステントハッシングによって複数の前記処理部のうちのいずれかに前記クライアント信号を振り分ける二次振分部の機能を有する複数の処理サーバからなるクラスタと、前記クライアントから送信されるクライアント信号を受信して、複数の前記二次振分部のうちのいずれかに前記クライアント信号を振り分ける一次振分部と、が設置され、前記一次振分部は、前記処理サーバのそれぞれについて、前記コンシステントハッシングのＩＤ空間に射影される当該処理サーバのメンバＩＤ情報と、当該処理サーバが前記二次振分部の機能と前記処理部の機能とを有するか否かの情報と、当該処理サーバが設置されている拠点の識別情報とを含むメンバ管理情報を、記憶部に記憶し、前記メンバ管理情報を参照することにより、前記クライアントから受信した前記クライアント信号を、自身と同一の拠点に設置されている複数の前記二次振分部に負荷が均等になるように振り分ける拠点内一次振分制御部を備え、前記処理部は、前記メンバ管理情報から抽出された前記処理部の機能を有する前記処理サーバについてのメンバ管理情報を参照して、自身に振り分けられた前記クライアント信号に係るデータの複製を、前記コンシステントハッシングのＩＤ空間において自身のメンバＩＤに該当する位置から所定方向に進んだときに初めて遭遇する他拠点のメンバＩＤに対応する前記処理部に、作成させて保持させるものとした。
【００１６】
このようにすることで、一次振分部からは自身と同一の拠点の二次振分部にクライアント信号が振り分けられるので、一次振分部から二次振分部への振り分けのための拠点間通信の発生を防ぐことができる。
【００１７】
また、第二の本発明は、広域に分散された複数の拠点が広域ネットワーク回線によって接続され、複数の処理サーバを有してなるクラスタシステムであって、前記拠点のうちの少なくとも１つには、クライアントから送信されるクライアント信号に係るデータを保持し、前記クライアント信号を処理することによって前記クライアントに所定のサービスを提供する処理部の機能を有する複数の処理サーバからなるクラスタと、前記クライアント信号に含まれるキー情報を用いたコンシステントハッシングによって複数の前記処理部のうちのいずれかに前記クライアント信号を振り分ける二次振分部の機能を有する複数の処理サーバからなるクラスタと、前記クライアントから送信されるクライアント信号を受信して、複数の前記二次振分部のうちのいずれかに前記クライアント信号を振り分ける一次振分部と、が設置され、前記一次振分部は、前記処理サーバのそれぞれについて、前記コンシステントハッシングのＩＤ空間に射影される当該処理サーバのメンバＩＤ情報と、当該処理サーバが前記二次振分部の機能と前記処理部の機能とを有するか否かの情報と、当該処理サーバが設置されている拠点の識別情報とを含むメンバ管理情報を、記憶部に記憶し、前記メンバ管理情報を参照することにより、同一の前記クライアントから受信した前記クライアント信号を、当該クライアントに対応して一意に決定される拠点に設置されている複数の前記二次振分部に負荷が均等になるように振り分ける拠点間一次振分制御部を備え、前記二次振分部は、前記メンバ管理情報から抽出された前記処理部の機能を有する自身と同一の拠点の前記処理サーバについてのメンバ管理情報を参照して、自身に振り分けられた前記クライアント信号を、自身と同一の拠点に設置されている前記処理部に振り分ける拠点内二次振分制御部を備えるものとした。
【００１８】
このようにすることで、二次振分部からは自身と同一の拠点の処理部にクライアント信号が振り分けられるので、二次振分部から処理部への振り分けのための拠点間通信の発生を防ぐことができる。
【００１９】
また、他の本発明は、前記第二の本発明のクラスタシステムにおいて、前記一次振分部は、大規模災害対策用の複製データを他拠点に作成させて保持させる複製データ振分制御部を備え、前記処理部は、自身に振り分けられた前記クライアント信号に係るデータの大規模災害対策用の複製を、自身と同一の拠点の前記一次振分部に依頼し、前記複製を依頼された前記一次振分部の前記複製データ振分制御部は、自身の拠点の大規模災害対策用のデータを保持する所定の他拠点の前記一次振分部に、前記データの大規模災害対策用の複製を依頼する複製依頼信号を送信し、前記複製依頼信号を受信した前記他拠点の一次振分部の前記複製データ振分制御部は、前記メンバ管理情報を参照して、前記複製依頼信号を自身と同一の拠点に設置されている複数の前記二次振分部のうちのいずれかに振り分け、前記複製依頼信号を振り分けられた前記二次振分部の前記二次振分制御部は、前記メンバ管理情報から抽出された前記処理部の機能を有する自身と同一の拠点の前記処理サーバについてのメンバ管理情報を参照して、自身に振り分けられた前記複製依頼信号を、自身と同一の拠点に設置されている前記処理部に振り分け、前記複製依頼信号を振り分けられた前記処理部は、前記データの大規模災害対策用の複製を作成して保持するものとした。
【００２０】
このようにすることで、クライアント信号を振り分ける場合と同じように、他拠点に保持させる大規模災害対策用の複製データを複数の処理サーバに分散して保持させることができる。
【発明の効果】
【００２１】
本発明によれば、広域に分散したサーバマシンで構成されるクラスタシステムにおいて、大規模災害耐性を持たせつつ、広域ネットワークコストを過度に増加させなくすることができる。
【図面の簡単な説明】
【００２２】
【図１】第１実施形態に係る広域分散クラスタシステムの全体構成例を示す図である。
【図２】第１実施形態に係る広域分散クラスタシステムを構成する一次振分部と二次振分部との機能構成例を示す図である。
【図３】一次振分部が備える拠点内一次振分制御部が、二次振分部となるメンバを特定するために保持するメンバ管理表の構成例を示す図である。
【図４】第２実施形態に係る広域分散クラスタシステムの全体構成例を示す図である。
【図５】第２実施形態に係る広域分散クラスタシステムを構成する一次振分部と二次振分部との機能構成例を示す図である。
【図６】一次振分部が備える拠点内一次振分制御部が、二次振分部となるメンバを特定するために保持するメンバ管理表の構成例を示す図である。
【図７】大規模災害対策用の複製データの保持方法についての説明図である。
【図８】大規模災害用複製データ信号の振り分け動作の例を示すシーケンス図である。
【図９】コンシステントハッシングによるクラスタメンバとデータとの対応付けについての説明図である。
【図１０】各メンバが自身の複製先のメンバを特定するために保持するメンバ管理表の構成例を示す図である。
【図１１】二段階信号振り分けモデルの実装例を示す図である。
【図１２】二段階信号振り分けモデルにおいて、一次振分部が二次振分部となるメンバを特定するために保持するメンバ管理表の構成例を示す図である。
【図１３】二段階信号振り分けモデルと広域分散クラスタモデルとを組み合わせたクラスタシステムの実装例を示す図である。
【発明を実施するための形態】
【００２３】
以下、本発明を実施するための形態を、適宜図面を参照しながら説明する。
【００２４】
＜第１実施形態＞
まず、本発明の第１実施形態に係る広域分散クラスタシステム１００について説明する。図１は、本発明の第１実施形態に係る広域分散クラスタシステム１００の全体構成例を示す図である。図１に示すように、広域分散クラスタシステム１００では、一次振分部３からの振り分け先となる二次振分部２を拠点内に限定する。
【００２５】
図１に示すように、広域分散クラスタシステム１００は、広域に分散される複数の拠点５ａ，５ｂ，・・・から構成される。各拠点には、クライアント４からのクライアント信号を受け付ける一次振分部３と、１または複数の二次振分部２と、複数の処理部１とが設置される。一次振分部３は、クライアント４からのクライアント信号を単純なラウンドロビン法等により自拠点内の二次振分部２に振り分ける。二次振分部２は、受信したクライアント信号を、コンシステントハッシングによって、各処理部１に振り分ける。各処理部１は、クライアント信号に係るデータを保持し、クライアント信号を処理することで、クライアント４に所定のサービスを提供する。
【００２６】
図１における二次振分部２と処理部１とは、それぞれを異なるサーバマシンによって動作させてもよいし、双方の機能を同一のサーバマシンによって動作させてもよい。また、二次振分部２が１つのみ設置される拠点については、一次振分部３を省略して、クライアント４から二次振分部２に直接クライアント信号を送信することも可能である。
【００２７】
図２は、第１実施形態に係る広域分散クラスタシステム１００を構成する一次振分部３と二次振分部２との機能構成例を示す図である。
【００２８】
図２に示すように、コンピュータによって構成される一次振分部３は、制御部３１と、記憶部３２と、通信部３３とを備える。
【００２９】
制御部３１は、不図示のＣＰＵ（Central Processing Unit）が、記憶部３２に記憶されている所定の制御プログラムを不図示の主メモリにロードして実行することにより、一次振分部３全体の制御を司るとともに、拠点内一次振分制御部３１１としての機能を具現化する。
【００３０】
不図示のハードディスク装置や不揮発性メモリなどによって構成される記憶部３２は、メンバ管理表３２１を備える。
【００３１】
通信部３３は、通信回線を介して信号の送受信を行う不図示の通信インタフェースを備え、クライアント４や二次振分部２との間でクライアント信号などの送受信を行う。
【００３２】
また、コンピュータによって構成される二次振分部２は、制御部２１と、記憶部２２と、通信部２３とを備える。
【００３３】
制御部２１は、不図示のＣＰＵが、記憶部２２に記憶されている所定の制御プログラムを不図示の主メモリにロードして実行することにより、二次振分部２全体の制御を司るとともに、拠点間二次振分制御部２１１としての機能を具現化する。
【００３４】
不図示のハードディスク装置や不揮発性メモリなどによって構成される記憶部２２は、メンバ管理表２２１を備える。
【００３５】
通信部２３は、通信回線を介して信号の送受信を行う不図示の通信インタフェースを備え、一次振分部３や処理部１との間でクライアント信号などの送受信を行う。
【００３６】
図３は、一次振分部３が備える拠点内一次振分制御部３１１が、二次振分部２となるメンバを特定するために保持するメンバ管理表３２１の構成例を示す図である。図３に示すように、メンバ管理表３２１には、広域分散クラスタシステム１００を構成するすべてのメンバについて、メンバＩＤと、ＩＰアドレス等の付加情報と、メンバが有する機能と、メンバが設置されている拠点とのフィールドを含むレコードが、メンバＩＤの値の昇順に登録されている。
【００３７】
この拠点フィールドの値は、当該メンバＩＤに該当するサーバマシンが拠点に設置されるときに、広域分散クラスタシステム１００の管理者によって設定される。つまり、当該サーバマシンが、広域分散クラスタシステム１００の管理者によってクラスタに組み込まれる際に、ＩＰアドレス等の付加情報や機能とともに、メンバ管理表３２１に登録される。なお、このメンバ管理表３２１の機能フィールドや拠点フィールドへの値の設定は、広域分散クラスタシステム１００中に唯一存在し、管理者からのデータ入力を受け付ける代表メンバによって行われるものとする。
【００３８】
一次振分部３は、メンバ管理表３２１のなかから二次振分部２としての機能を有するとともに自身と同一の拠点に該当するレコードを抽出して、振り分け先となる二次振分部２のメンバを選定する。また、二次振分部２が備える拠点間二次振分制御部２１１が、処理部１となるメンバを特定するために保持するメンバ管理表２２１は、このメンバ管理表３２１のなかから処理部としての機能を有するレコードを抽出することによって生成される。
【００３９】
生成されたメンバ管理表２２１は、処理部１となる各メンバにも配布され、処理部１となる各メンバが、自身が保持するデータの複製データの作成先となるメンバを特定するために使用される。処理部１となる各メンバは、メンバ管理表２２１の自身のレコードを起点として、自身と異なる拠点に該当するレコードを下位方向に検索することによって、複製データの作成先となるメンバを特定し、当該メンバに複製データを生成させる。これにより、図９にて前記したＩＤ空間を、処理部１となるメンバのメンバＩＤの位置から時計回りに進んだときに最初に遭遇する他拠点のメンバＩＤに該当するメンバに、複製データを保持させることができる。
【００４０】
以上にて説明したように、第１実施形態によれば、一次振分部３から二次振分部２にクライアント信号を振り分けるときの拠点間通信をなくすとともに、大規模災害耐性を持ったクラスタシステムを実現することが可能である。
【００４１】
＜第２実施形態＞
続いて、本発明の第２実施形態に係る広域分散クラスタシステム２００について説明する。図４は、本発明の第２実施形態に係る広域分散クラスタシステム２００の全体構成例を示す図である。図４に示すように、広域分散クラスタシステム２００では、二次振分部２からの振り分け先となる処理部１を拠点内に限定する。
【００４２】
図４に示すように、広域分散クラスタシステム２００は、広域に分散される複数の拠点５ａ，５ｂ，・・・から構成され、各拠点には、クライアント４からのクライアント信号を受け付ける一次振分部３と、１または複数の二次振分部２と、複数の処理部１とが設置される。
【００４３】
図４に示すように、この広域分散クラスタシステム２００では、二次振分部２からの振り分け先となる処理部１を拠点内に限定するので、同一のクライアント４からのクライアント信号は、同一の拠点に振り分けられる必要がある。さもないと、前回のクライアント信号によって処理されたデータが存在しない拠点にクライアント信号が振り分けられ、拠点間通信によって必要なデータを取得する必要が生じてしまう。
【００４４】
したがって、一次振分部３は、単純なラウンドロビン法等により各拠点の二次振分部２にクライアント信号をランダムに振り分けるのではなく、クライアント信号の振り分け先となる拠点をクライアント４毎に一意に特定する必要がある。ただし、一次振分部３の処理は、二次振分部２が行うアプリケーションレイヤの情報に基づく振り分け処理よりも処理負荷が軽微であることが前提となる。したがって、一次振分部３の振り分けロジックには、アプリケーションレイヤよりも低レイヤの情報を用いるものとする。実装例としては、クライアント信号の送信元ＩＰアドレスから求めたハッシュ値に基づいて振り分け先の拠点を一意に選択し、選択した拠点に存在する複数の二次振分部２にラウンドロビン法等によりクライアント信号を振り分ける方法が適用可能である。
【００４５】
二次振分部２は、受信したクライアント信号を、コンシステントハッシングによって、他拠点を含むすべての処理部１に振り分ける。各処理部１は、クライアント信号を処理することで、クライアント４に所定のサービスを提供する。図４における二次振分部２と処理部１とは、それぞれを異なる処理サーバによって動作させてもよいし、双方の機能を同一の処理サーバによって動作させてもよい。
【００４６】
図５は、第２実施形態に係る広域分散クラスタシステム２００を構成する一次振分部３と二次振分部２との機能構成例を示す図である。
【００４７】
図５に示すように、コンピュータによって構成される一次振分部３は、制御部３１と、記憶部３２と、通信部３３とを備える。
【００４８】
制御部３１は、不図示のＣＰＵが、記憶部３２に記憶されている所定の制御プログラムを実行することにより、一次振分部３全体の制御を司るとともに、拠点間一次振分制御部３１２と複製データ振分制御部３１３としての機能を具現化する。
【００４９】
不図示のハードディスク装置や不揮発性メモリによって構成される記憶部３２は、メンバ管理表３２１を備える。
【００５０】
通信部３３は、通信回線を介して信号の送受信を行う不図示の通信インタフェースを備え、クライアント４や二次振分部２との間でクライアント信号などの送受信を行う。
【００５１】
また、コンピュータによって構成される二次振分部２は、制御部２１と、記憶部２２と、通信部２３とを備える。
【００５２】
制御部２１は、不図示のＣＰＵが、記憶部２２に記憶されている所定の制御プログラムを実行することにより、二次振分部２全体の制御を司るとともに、拠点内二次振分制御部２１２としての機能を具現化する。
【００５３】
不図示のハードディスク装置や不揮発性メモリによって構成される記憶部２２は、拠点内メンバ管理表２２２を備える。
【００５４】
通信部２３は、通信回線を介して信号の送受信を行う不図示の通信インタフェースを備え、一次振分部３や処理部１との間でクライアント信号などの送受信を行う。
【００５５】
一次振分部３が備える拠点間一次振分制御部３１２は、まずクライアント信号の送信元ＩＰアドレスから求めたハッシュ値に基づいて振り分け先の拠点を一意に選択する。次に、図３に示した第１実施形態と同様なメンバ管理表３２１のなかから、振分部としての機能を有するレコードを抽出して、振り分け先となる拠点の二次振分部２にラウンドロビン法等によりクライアント信号を振り分ける。また、二次振分部２が備える拠点内二次振分制御部２１２が、処理部１となるメンバを特定するために保持する拠点内メンバ管理表２２２は、メンバ管理表３２１のなかから処理部としての機能を有する同一拠点のレコードを抽出することによって生成される。
【００５６】
これにより、図６に示すように、拠点ａに設置される二次振分部２の記憶部２２には、拠点ａに設置されている処理部１に対応するメンバのレコードだけが登録された拠点内メンバ管理表２２２ａが保持される。同様に、拠点ｂに設置される二次振分部２の記憶部２２には、拠点ｂに設置されている処理部１に対応するメンバのレコードだけが登録された拠点内メンバ管理表２２２ｂが保持される。これらの拠点内メンバ管理表２２２は、拠点内の処理部１となる各メンバにも配布され、処理部１となる各メンバが、自身が保持するデータの複製データの作成先となるメンバを特定するために使用される。処理部１となる各メンバは、拠点内メンバ管理表２２２から自身のレコードの下位方向にある次のレコードを検索することによって複製データの作成先となるメンバを特定し、当該メンバに複製データを生成させる。これにより、図９にて前記したＩＤ空間を、処理部１となるメンバのメンバＩＤの位置から時計回りに進んで最初に遭遇する自身と同一拠点のメンバＩＤに該当するメンバに、複製データを保持させることができる。
【００５７】
さらに、大規模災害時においてもシステムを継続して稼働させるために、大規模災害対策用のもう１つの複製データを他拠点の処理部１となるメンバに持たせる。図７に示すように、拠点ａの処理部１が有するデータＡの複製データは拠点ｂに保持させ、拠点ｂの処理部１が有するデータＢの複製データは拠点ｃに保持させるというように、例えば自身の拠点の右隣の拠点に複製データを保持させる。
【００５８】
このとき、それぞれの処理部１は、自身が処理したデータの複製を自身と同一拠点の一次振分部３に依頼する。複製を依頼された一次振分部３の複製データ振分制御部３１３は、メンバ管理表３２１を参照して複製先となる他拠点の一次振分部３を特定し、当該一次振分部３に大規模災害用複製データ信号の振り分けを依頼する。
【００５９】
振り分けを依頼された他拠点の一次振分部３の複製データ振分制御部３１３は、大規模災害用複製データ信号に関しては、自拠点の二次振分部２だけに振り分けるようにする。それによって、大規模災害用複製データ信号は自拠点の処理部１となるメンバだけに振り分けられ、当該拠点の処理部１となるメンバに分散して大規模災害用の複製データが保持されることとなる。
【００６０】
図８は、大規模災害用複製データ信号の振り分け動作の例を示すシーケンス図である。例えば、あるクライアント信号に係るデータを処理した拠点ａのｉ番目のメンバ（処理部１ａｉ）は、送信元クライアントＣ１のＩＰアドレスを送信元ＩＰアドレスとし、当該データを含む大規模災害用データ複製信号を、自身と同一の拠点ａの一次振分部３ａに送信して複製を依頼する。一次振分部３ａの複製データ振分制御部３１３（図５参照）は、自身のデータの複製先となる拠点ｂを特定し（図７参照）、受信した大規模災害用データ複製信号（複製依頼信号）を、拠点ｂの一次振分部３ｂに送信する。一次振分部３ｂの複製データ振分制御部３１３は、受信した大規模災害用データ複製信号を、例えばラウンドロビン等によって拠点ｂの二次振分部２ｂにランダムに振り分け、例えばｊ番目の二次振分部２ｂｊに振り分けたものとする。二次振分部２ｂｊは、受信した大規模災害用データ複製信号に含まれる送信元クライアントＣ１のＩＰアドレスからハッシュ値を算出し、コンシステントハッシングを用いて例えば自身と同一の拠点ｂのｋ番目のメンバ（処理部１ｂｋ）に当該信号を振り分ける。そして、処理部１ｂｋが、振り分けられた大規模災害用データ複製信号から複製データを生成して保持する。
【００６１】
これにより、仮に大規模災害が発生してある拠点ａ内のサーバマシンが全滅した場合には、当該拠点の処理部１ａに振り分けられていたクライアント信号は、別拠点の一次振分部３によって複製データの存在する拠点ｂの二次振分部２ｂに振り分けられ、最終的に複製データを持つ処理部１ｂに到達する。
【００６２】
以上にて説明したように、第２実施形態によれば、二次振分部２から処理部１にクライアント信号を振り分けるときの拠点間通信をなくすとともに、大規模災害耐性を持ったクラスタシステムを実現することが可能である。この第２実施形態においては、単一メンバ故障対策用の複製データを同一拠点内の別メンバに保持させ、大規模災害対策用の複製データを他拠点のメンバに保持させている。そのため、大規模災害対策用のデータ複製を必要としないシステムであれば、拠点を跨るデータ複製に伴う拠点間通信が不要となるので、ネットワークコストを更に削減することが可能となる。
【００６３】
以上のように、本発明によれば、広域に分散したサーバマシンで構成されるクラスタシステムにおいて、大規模災害耐性を持たせつつ、広域ネットワークコストを過度に増加させないことが可能となる。また、本発明は、特殊なネットワーク機器を必要とせず、既存のクラスタシステムのソフトウェアに大きな変更を加えることなく実現可能である。
【００６４】
以上にて、本発明を実施する形態の説明を終えるが、本発明の実施の態様はこれに限られるものではなく、本発明の趣旨を逸脱しない範囲において各種の変更が可能であることは言うまでもない。
【符号の説明】
【００６５】
１，１ａ，１ｂ  処理部
２，２ｂ  二次振分部
２１，３１  制御部
２１１  拠点間二次振分制御部
２１２  拠点内二次振分制御部
２２，３２  記憶部
２２１，３０１，３０２，３２１  メンバ管理表（メンバ管理情報）
２２２，２２２ａ，２２２ｂ  拠点内メンバ管理表（メンバ管理情報）
２３，３３  通信部
３      一次振分部
３１３  複製データ振分制御部
４      クライアント
５ａ，５ｂ，５ｃ  拠点
１００，２００，４００  広域分散クラスタシステム（クラスタシステム）
３００  クラスタシステム
【図１】
2015162105.tif 000003
【図２】
2015162105.tif 000004
【図３】
2015162105.tif 000005
【図４】
2015162105.tif 000006
【図５】
2015162105.tif 000007
【図６】
2015162105.tif 000008
【図７】
2015162105.tif 000009
【図８】
2015162105.tif 000010
【図９】
2015162105.tif 000011
【図１０】
2015162105.tif 000012
【図１１】
2015162105.tif 000013
【図１２】
2015162105.tif 000014
【図１３】
2015162105.tif 000015