JP5381998B2 - クラスタ制御システム、クラスタ制御方法、及びプログラム - Google Patents

クラスタ制御システム、クラスタ制御方法、及びプログラム Download PDF

Info

Publication number
JP5381998B2
JP5381998B2 JP2010541330A JP2010541330A JP5381998B2 JP 5381998 B2 JP5381998 B2 JP 5381998B2 JP 2010541330 A JP2010541330 A JP 2010541330A JP 2010541330 A JP2010541330 A JP 2010541330A JP 5381998 B2 JP5381998 B2 JP 5381998B2
Authority
JP
Japan
Prior art keywords
client
address
slave
arp
responsible
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010541330A
Other languages
English (en)
Other versions
JPWO2010064644A1 (ja
Inventor
隆史 鳥居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010541330A priority Critical patent/JP5381998B2/ja
Publication of JPWO2010064644A1 publication Critical patent/JPWO2010064644A1/ja
Application granted granted Critical
Publication of JP5381998B2 publication Critical patent/JP5381998B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

(関連出願についての記載)
本発明は、日本国特許出願:特願2008−308368号(2008年12月 3日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、クラスタ制御システム、クラスタ制御方法、及びプログラムに関し、特に分散型ロードバランスクラスタの制御を行うクラスタ制御システム、クラスタ制御方法、及びプログラムに関する。
システムの耐障害性や拡張性のために、サーバをクラスタ化することが多くなっている。従来は、現用系と待機系の2系統を用意して、現用系に問題が発生したときには待機系に切り替えて運用を継続するフェイルオーバクラスタが多く用いられていた。しかし、フェイルオーバクラスタでは、通常時の待機系がリソースとして有効活用されないという欠点がある。地球温暖化問題をきっかけに消費電力がクローズアップされる中、両系で処理を受け持つロードバランスクラスタが求められる。
ロードバランスクラスタは、大きく分類すると、シングルIP(Internet Protocol)アドレス型と、マルチIPアドレス型に分けられる。
シングルIPアドレス型は、全てのクライアントに対して、サーバ側のIPアドレスが1つに見え、複数のサーバがあたかも1つのサーバであるかのように見える方式である。
それに対して、マルチIPアドレス型は、クライアントによって異なるIPアドレスを見せ、対応するサーバに対してアクセスさせる方式である。マルチIPアドレス方式では、異なるIPアドレスを1つに見せるために、IPアドレス自体を解決する名前解決(サーバ名からIPアドレスを解決すること)のレイヤで1つのサーバ名が異なるIPアドレスになるようにする。マルチIPアドレス方式の代表的な方式として、DNS(Domain Name Server)ロードバランス等が知られている。
すなわち、マルチIPアドレス方式では、DNSのような名前解決手段が必要であり、異なるIPアドレスがクライアントに見えるためにアプリケーションのレベルで問題が発生する可能性がある。
従って、ロードバランスクラスタにおいては、アプリケーションへの影響を考慮しなくて良いシングルIPアドレス型が望ましい。
シングルIPアドレス型は、以下の2つの方式に大別できる。
1つ目の方式は、代表ノード型である。この方式は、クライアントに見せるシングルIPアドレスを持つ1つの代表ノードと、それぞれのIPアドレスを持つ複数のバックエンドノードを有する。この方式では、クライアントからのパケットは全て代表ノードを通り、セッション毎に割り当てられたバックエンドノードに転送される。このとき、応答パケットが代表ノードを経由する方式と、応答パケットが代表ノードを経由せずに直接クライアントに返る方式がある。通常、代表ノードがクライアントからのパケットを全て受けてロードバランスをするので、いろいろな情報を持ちつつ、様々なロードバランスアルゴリズムを適用することができるというメリットがある。デメリットとしては、代表ノードが性能ボトルネックになりがちなこと、SPOF(Single Point Of Failure:単一障害点)になることが挙げられる。そのため、代表ノードは、ハードウエアベースでASIC(Application Specific Integrated Circuit:カスタムIC)を用いて実装されたりもする。
2つ目の方式は、分散型である。この方式は、全てのノードが同じIPアドレスを持ち、クライアントからのパケットが全てのノードに届くようにする。届いたパケットに対し、1つのノードが処理をして返す。処理するノードを決めるために、クライアントのIPアドレスをキーとする方式が一般的である。この方式では、自ノードが処理するかをパケット毎に即座に決定しなければならないため、複雑なロードバランスアルゴリズムは適用できない。分散型は、代表ノード型と違ってSPOFはなく、ノードがボトルネックとなることは少ない。デメリットとして、前述のように即座にパケット受け入れを決定しなければならないため、柔軟なロードバランスアルゴリズムの適用は難しく、特定のノードに負荷が集中する可能性があること、全てのノードにパケットを届けるためにHUBやスイッチのポートミラーリングを用いるため、ネットワーク自体がボトルネックとなることが挙げられる。非特許文献1では、分散型でありつつマスタノードを設け、柔軟なロードバランスアルゴリズムの適用を可能にしている。
このように、シングルIPアドレス型では、代表ノード型と分散型があるが、総合的に判断すると、SPOFやボトルネックになるノードがない分散型が望ましい。
しかし、分散型は、ネットワークがボトルネックとなることや、HUBやポートミラーリングが必要なこと、単純なロードバランスアルゴリズムしか適用できないことが欠点として残っている。
非特許文献1では、分散型で柔軟なロードバランスアルゴリズムを適用可能にしているが、他の欠点は、解決できていない。つまり、シングルIPアドレス型で、柔軟なロードバランスが可能であり、拡張性もあり、特別なネットワークを必要としない方式は、実現できていない。
なお、関連する技術として、特開2004−046442号公報(特許文献1)に負荷分散方法が開示されている。この関連技術では、負荷分散システムは、ネットワークで接続されたコンピュータであるクラアント端末と、コンピュータであるアプリケーションサーバ群からなり、クラアントにサーバでの処理やコンテンツ等、様々なサービスを提供する。
また、特開2005−167425号公報(特許文献2)にネットワーク電話システム、このネットワーク電話システムの主装置及びネットワーク電話システムを利用した接続情報更新方法が開示されている。この関連技術では、主装置は、他の主装置から追加、変更または削除されたIPアドレスを受信した場合に、記憶部に記憶されたテーブル中の該当するIPアドレスの追加、変更または削除を行う。
また、特開2006−259845号公報(特許文献3)にサーバ装置、サーバシステムおよびサーバシステムの負荷分散方法が開示されている。この関連技術では、ネットワークは、単一のIPアドレスを共有する全てのノードが接続される。ノードの種別には、マスタとスレーブがある。ネットワークに接続されているノードのうち、ただひとつのノードがマスタとなり、それ以外のノードは全てスレーブとなる。ネットワークは、単一のIPアドレスのみの使用で、複数ノードを論理的に単一のノードに見せる。また、未知/既知のクライアントからARP(Address Resolution Protocol)要求を受信する。なお、ARPは、IPアドレスからMAC(Media Access Control)アドレスを解決するためのプロトコルである。
特開2004−046442号公報 特開2005−167425号公報 特開2006−259845号公報
「柔軟な負荷分散を可能にする分散型シングルIPクラスタ」情報処理学会 研究報告2007−OS−106(1)、2007/8/3
上記特許文献1〜3及び非特許文献1の全開示内容はその引用をもって本書に繰込み記載する。
以下に本発明による関連技術の分析を与える。
本発明の目的は、シングルIPアドレス型でクライアント単位のロードバランスを行うクラスタ制御システムを提供することである。
本発明の第1の視点に係るクラスタ制御システムは、複数のクライアントと、複数のクライアントの各々とフロントネットワークを介して接続するサーバ群と、サーバ群とバックエンドネットワークを介して接続し、サーバ群を管理するマスタコンピュータとを含む。サーバ群は、フロントネットワークに対して、同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータを含む。複数のスレーブコンピュータの各々は、夫々が受け持つクライアントを示す担当クライアントテーブルと、複数のクライアントの各々からシングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、担当クライアントテーブルを参照し、担当クライアントテーブルにARP要求を出したクライアントが存在すればARP応答を返し、担当クライアントテーブルにARP要求を出したクライアントが存在しなければARP応答をしない処理を行うARP処理手段(ARP処理部)とを具備する。マスタコンピュータは、バックエンドネットワークを介して、担当クライアントテーブルに対し、複数のスレーブコンピュータの各々が受け持つクライアントの追加・変更・削除に関する情報の維持管理を行う担当ノード決定処理手段(担当ノード決定処理部)を具備する。
本発明の第2の視点に係るクラスタ制御方法では、複数のクライアントの各々とサーバ群とをフロントネットワークを介して接続する。また、サーバ群を管理するマスタコンピュータとサーバ群とをバックエンドネットワークを介して接続する。また、サーバ群からフロントネットワークに対してシングルIPアドレスを提示し、サーバ群に含まれる複数のスレーブコンピュータが同一のIPアドレスであるように見せる。また、サーバ群に対して、複数のクライアントの各々からシングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、複数のスレーブコンピュータの各々が夫々受け持つクライアントを示す担当クライアントテーブルを参照し、担当クライアントテーブルにARP要求を出したクライアントが存在すればARP応答を返し、担当クライアントテーブルにARP要求を出したクライアントが存在しなければARP応答をしない処理を行う。また、バックエンドネットワークを介して、マスタコンピュータから担当クライアントテーブルに対し、複数のスレーブコンピュータの各々が受け持つクライアントの追加・変更・削除に関する情報の維持管理を行う。さらに、複数のスレーブコンピュータの各々は、クライアントが追加された場合には前記クライアントに対してARP応答を送信する。
本発明の第3の視点に係るスレーブコンピュータは、複数のクライアントとフロントネットワークを介して接続するとともに、該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータのうちの一のスレーブコンピュータであって、
自身が受け持つクライアントを示す担当クライアントテーブルと、
前記複数のクライアントのいずれか1つから前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、前記担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在する場合にはARP応答を返し、それ以外の場合にはARP応答をしないARP処理部とを備え、
前記担当クライアントテーブルにおけるクライアントの追加、変更又は削除を、バックエンドネットワークを介して接続されたマスタコンピュータによって行われる。
本発明の第4の視点に係るマスタコンピュータは、複数のクライアントとフロントネットワークを介して接続するとともに該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータとバックエンドネットワークを介して接続し、該複数のスレーブコンピュータを管理するマスタコンピュータであって、
前記複数のスレーブコンピュータのそれぞれが受け持つクライアントを示す担当クライアントテーブルに対し、前記バックエンドネットワークを介して、クライアントの追加、変更又は削除を行う担当ノード決定処理部を備えている。
本発明の第5の視点に係るクラスタ制御方法は、
複数のクライアントとフロントネットワークを介して接続するとともに、該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータの各スレーブコンピュータが、
前記複数のクライアントのいずれか1つから前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、自身が受け持つクライアントを示す担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在する場合にはARP応答を返し、それ以外の場合にはARP応答をしない工程と、
前記担当クライアントテーブルにおけるクライアントの追加、変更又は削除を、バックエンドネットワークを介して接続されたマスタコンピュータによって行われる工程とを含む。
本発明の第6の視点に係るプログラムは、
複数のクライアントとフロントネットワークを介して接続するとともに、該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータの各スレーブコンピュータに、
前記複数のクライアントのいずれか1つから前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、自身が受け持つクライアントを示す担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在する場合にはARP応答を返し、それ以外の場合にはARP応答をしない処理と、
前記担当クライアントテーブルにおけるクライアントの追加、変更又は削除を、バックエンドネットワークを介して接続されたマスタコンピュータによって行われる処理とを実行させる。
このように、本発明では、ARPプロトコルのレイヤでロードバランスを行い、クライアントからのARPリクエストに対して、異なるMAC(Media Access Control)アドレスを返してやることで、クライアント単位のロードバランスを行う。なお、ARPは、IPアドレスからMACアドレスを解決するためのプロトコルである。
シングルIPアドレス型で、柔軟なロードバランスと拡張性を実現できる。
図1は、本発明の第1実施形態のシステム構成を示す(ブロック)図である。 図2は、本発明の第1実施形態のマスタノードとスレーブノードの内部構成を示す(ブロック)図である。 図3は、本発明の第1実施形態のテーブル構成を示す図である。 図4は、本発明の第1実施形態の担当ノード決定処理部の(動作)フローを示すフローチャートである。 図5は、本発明の第1実施形態のARP処理部の(動作)フローを示すフローチャートである。 図6は、本発明の第1実施形態のARP通知部の(動作)フローを示すフローチャートである。 図7は、本発明の第1実施形態のノード間通信を示す図である。 図8は、本発明の第1実施形態のシステムの(動作)フローを示す(シーケンス)図である。 図9は、本発明の第2実施形態のシステム構成を示す(ブロック)図である。 図10は、本発明の第2実施形態のマスタノードとスレーブノードの内部構成を示す(ブロック)図である。
第1の展開形態のクラスタ制御システムは、上記第1の視点に係るクラスタ制御システムであることが好ましい。
第2の展開形態のクラスタ制御システムは、前記複数のスレーブコンピュータの各々が、前記担当クライアントテーブルに存在しないクライアントからARP要求を受け取ると、前記マスタコンピュータに対して、新規クライアントとして、前記クライアントのIPアドレス及びMAC(Media Access Control)アドレスを通知するARP通知部を更に具備することが好ましい。
第3の展開形態のクラスタ制御システムは、
前記複数のスレーブコンピュータの各々が、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するための通知フラグを更に具備し、
前記ARP通知部は、前記通知フラグを確認して、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断することが好ましい。
第4の展開形態のクラスタ制御システムは、
前記マスタコンピュータが、前記複数のスレーブコンピュータの各々に対するクライアントの割当を記憶するためのクライアント割当テーブルと、
前記複数のスレーブコンピュータの各々の状態を管理するためのスレーブノードテーブルと
を更に具備し、
前記担当ノード決定処理部が、前記複数のスレーブコンピュータの各々が前記新規クライアントからのARP要求を受け取ったことを検出すると、前記クライアント割当テーブル及び前記スレーブノードテーブルを参照し、前記新規クライアントに対してスレーブコンピュータが既に割当済みであれば、前記割り当てられたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行い、前記新規クライアントに対してスレーブコンピュータの割当がなければ、前記スレーブノードテーブルを参照して、前記複数のスレーブコンピュータのうちいずれか1つのスレーブコンピュータを選択し、前記選択されたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行うことが好ましい。
第5の展開形態のクラスタ制御システムは、
前記担当ノード決定処理部が、前記スレーブノードテーブルにおける前記スレーブコンピュータの増減や、前記スレーブコンピュータ間の負荷が不均等になっていることを検出したことに伴い、前記複数のスレーブコンピュータの各々の担当クライアントテーブルにおけるクライアントのIPアドレス及びMACアドレスの追加・削除を行い、前記複数のスレーブコンピュータの負荷が均等になるように再配置を行うことが好ましい。
第6の展開形態のクラスタ制御システムは、
前記担当ノード決定処理部が、前記複数のスレーブコンピュータの各々に対して、コマンドとIPアドレスとMACアドレスとを含むデータを送信し、
前記コマンドの種類は、追加・削除・全削除があり、
前記複数のスレーブコンピュータの各々が、前記コマンドと前記IPアドレスと前記MACアドレスとを含むデータを受け取ると、前記コマンドに従い、前記担当クライアントテーブルに対して、前記IPアドレスと前記MACアドレスとの追加・削除・全削除を行い、追加コマンドの場合には前記IPアドレスと前記MACアドレスで指定されるクライアントに対してARP応答を送信し、前記コマンドに応じた処理が正常に終了したか否かを示す情報を前記マスタコンピュータに返すことが好ましい。
第7の展開形態のコンピュータは、上記のクラスタ制御システムで、前記複数のスレーブコンピュータの1つとして使用されるコンピュータであることが好ましい。
第8の展開形態のコンピュータは、上記のクラスタ制御システムで、前記マスタコンピュータとして使用されるコンピュータであることが好ましい。
第9の展開形態のクラスタ制御方法は、上記第2の視点に係るクラスタ制御方法であることが好ましい。
第10の展開形態のクラスタ制御方法は、前記複数のスレーブコンピュータの各々が前記担当クライアントテーブルに存在しないクライアントからARP要求を受け取ると、前記複数のスレーブコンピュータの各々から前記マスタコンピュータに対して、新規クライアントとして、前記クライアントのIPアドレス及びMAC(Media Access Control)アドレスを通知するステップを更に含むことが好ましい。
第11の展開形態のクラスタ制御方法は、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するための通知フラグを確認して、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するステップを更に含むことが好ましい。
第12の展開形態のクラスタ制御方法は、
前記マスタコンピュータに、前記複数のスレーブコンピュータの各々に対するクライアントの割当を記憶するためのクライアント割当テーブルを設けるステップと、
前記マスタコンピュータに、前記複数のスレーブコンピュータの各々の状態を管理するためのスレーブノードテーブルを設けるステップと、
前記複数のスレーブコンピュータの各々が前記新規クライアントからのARP要求を受け取ったことを検出すると、前記クライアント割当テーブル及び前記スレーブノードテーブルを参照するステップと、
前記新規クライアントに対してスレーブコンピュータが既に割当済みであれば、前記マスタコンピュータから前記割り当てられたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行うステップと、
前記新規クライアントに対してスレーブコンピュータの割当がなければ、前記スレーブノードテーブルを参照して、前記複数のスレーブコンピュータのうちいずれか1つのスレーブコンピュータを選択し、前記マスタコンピュータから前記選択されたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行うステップとを更に含むことが好ましい。
第13の展開形態のクラスタ制御方法は、前記スレーブノードテーブルにおける前記スレーブコンピュータの増減や、前記スレーブコンピュータ間の負荷が不均等になっていることを検出したことに伴い、前記複数のスレーブコンピュータの各々の担当クライアントテーブルにおけるクライアントのIPアドレス及びMACアドレスの追加・削除を行い、前記複数のスレーブコンピュータの負荷が均等になるように再配置を行うステップを更に含むことが好ましい。
第14の展開形態のクラスタ制御方法は、
前記マスタコンピュータから前記複数のスレーブコンピュータの各々に対して、コマンドとIPアドレスとMACアドレスとを含むデータを送信するステップと、
前記コマンドの種類は、追加・削除・全削除があり、前記複数のスレーブコンピュータの各々が前記コマンドと前記IPアドレスと前記MACアドレスとを含むデータを受け取ると、前記コマンドに従い、前記担当クライアントテーブルに対して、前記IPアドレスと前記MACアドレスとの追加・削除・全削除を行い、前記コマンドに応じた処理が正常に終了したか否かを示す情報を前記マスタコンピュータに返すステップとを更に含むことが好ましい。
第15の展開形態のプログラムは、上記のクラスタ制御方法における前記複数のスレーブコンピュータの各々の動作を、コンピュータに実行させることが好ましい。
第16の展開形態のプログラムは、上記のクラスタ制御方法における前記マスタコンピュータの動作を、コンピュータに実行させることが好ましい。
第17の展開形態のスレーブコンピュータは、上記第3の視点に係るスレーブコンピュータであることが好ましい。
第18の展開形態のスレーブコンピュータは、前記担当クライアントテーブルに存在しないクライアントからARP要求を受け取ると、前記マスタコンピュータに対して、新規クライアントとして、前記クライアントのIPアドレス及びMAC(Media Access Control)アドレスを通知するARP通知部をさらに備えていることが好ましい。
第19の展開形態のスレーブコンピュータは、
前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するための通知フラグをさらに備え、
前記ARP通知部は、前記通知フラグを確認して、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断することが好ましい。
第20の展開形態のマスタコンピュータは、上記第4の視点に係るマスタコンピュータであることが好ましい。
第21の展開形態のクラスタ制御システムは、上記のスレーブコンピュータと、上記のマスタコンピュータとを備えていることが好ましい。
第22の展開形態のクラスタ制御システムは、
前記マスタコンピュータが、
前記複数のスレーブコンピュータに対するクライアントの割当を記憶するためのクライアント割当テーブルと、
前記複数のスレーブコンピュータの状態を管理するためのスレーブノードテーブルとをさらに備え、
前記担当ノード決定処理部は、前記複数のスレーブコンピュータの各々が前記新規クライアントからのARP要求を受け取ったことを検出すると、前記クライアント割当テーブル及び前記スレーブノードテーブルを参照し、前記新規クライアントに対してスレーブコンピュータが既に割当済みであれば、前記割り当てられたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行い、前記新規クライアントに対してスレーブコンピュータの割当がなければ、前記スレーブノードテーブルを参照して、前記複数のスレーブコンピュータのうちいずれか1つのスレーブコンピュータを選択し、前記選択されたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加することが好ましい。
第23の展開形態のクラスタ制御システムは、前記担当ノード決定処理部が、前記スレーブノードテーブルにおける前記複数のスレーブコンピュータの増減、又は、前記複数のスレーブコンピュータ間の負荷が不均等になっていることを検出したことに伴い、前記複数のスレーブコンピュータの各々の担当クライアントテーブルにおけるクライアントのIPアドレス及びMACアドレスの追加・削除を行い、前記複数のスレーブコンピュータの負荷が均等になるように再配置を行うことが好ましい。
第24の展開形態のクラスタ制御システムは、
前記担当ノード決定処理部が、前記複数のスレーブコンピュータの各々に対して、コマンドとIPアドレスとMACアドレスとを含むデータを送信し、
前記コマンドの種類は、追加・削除・全削除があり、
前記複数のスレーブコンピュータの各々は、前記コマンドと前記IPアドレスと前記MACアドレスとを含むデータを受け取ると、前記コマンドに従い、前記担当クライアントテーブルに対して、前記IPアドレスと前記MACアドレスとの追加・削除・全削除を行い、追加コマンドの場合には前記IPアドレスと前記MACアドレスで指定されるクライアントに対してARP応答を送信し、前記コマンドに応じた処理が正常に終了したか否かを示す情報を前記マスタコンピュータに返すことが好ましい。
第25の展開形態のクラスタ制御方法は、上記第5の視点に係るクラスタ制御方法であることが好ましい。
第26の展開形態のプログラムは、上記第6の視点に係るプログラムであることが好ましい。
<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
図1は、本発明のクラスタ制御システムのシステム構成を示したものである。
本発明のクラスタ制御システムは、複数のクライアント1(1−i、i=1〜n:nはクライアント数)と、フロントネットワーク10と、サーバ群2と、バックエンドネットワーク20と、マスタノード3を含む。
クライアント1(1−i、i=1〜n)の各々は、フロントネットワーク10を介してサーバ群2と通信する。
サーバ群2は、フロントネットワーク10に対して、シングルIP(Internet Protocol)アドレスを提示し、サーバ群2自体が1つのサーバであるかのように見せる。つまり、サーバ群2は、クライアント1(1−i、i=1〜n)から見ると、シングルIPアドレスの1つのサーバに見える。サーバ群2は、バックエンドネットワーク20を介してマスタノード3と通信する。ここでは、サーバ群2は、複数のスレーブノード4(4−j、j=1〜m:mはスレーブノード数)を含む。
マスタノード3は、サーバ群2とバックエンドネットワーク20を介して接続し、サーバ群2を管理する。
複数のスレーブノード4(4−j、j=1〜m)の各々は、フロントネットワーク10及びバックエンドネットワーク20に接続しており、クライアント1(1−i、i=1〜n)及びマスタノード3と通信する。各スレーブノード4(4−j、j=1〜m)は、バックエンドネットワーク20に対しては、スレーブノード4(4−j、j=1〜m)毎に異なるIPアドレスを持ち、特定のスレーブノード4(4−j、j=1〜m)を指定した通信が可能となっている。
クライアント1(1−i、i=1〜n)、マスタノード3、及びスレーブノード4(4−j、j=1〜m)の例として、PC(パソコン)、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等のコンピュータが考えられる。但し、実際には、これらの例に限定されない。
フロントネットワーク10及びバックエンドネットワーク20の例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、専用線等が考えられる。但し、実際には、これらの例に限定されない。
なお、制限事項として、フロントネットワーク10は、IPネットワークであり、サーバ群2に属するスレーブノード4(4−j、j=1〜m)は、全て同一セグメントに属することとする。同一セグメントに属するということは、間にルータを介さないということであり、ARP(Address Resolution Protocol)要求が全スレーブノード4(4−j、j=1〜m)に同報(ブロードキャスト)されることを意味する。なお、ARPは、IPアドレスからMAC(Media Access Control)アドレスを解決するためのプロトコルである。
バックエンドネットワーク20は、必ずしもIPネットワークに限定されるわけではなく、何らかのアドレスが振られて通信が可能なネットワークであれば何でも良い。
<マスタノード及びスレーブノードの内部構成>
図2を参照して、本発明のマスタノード3、スレーブノード4(4−j、j=1〜m)の内部構成について説明する。
マスタノード3は、担当ノード決定処理部31と、クライアント割当テーブル32と、スレーブノードテーブル33と、ノード死活管理部34を備える。
担当ノード決定処理部31は、新たなクライアント1(1−i、i=1〜n)をどのスレーブノード4(4−j、j=1〜m)に割り当てるかを決定し、スレーブノード4(4−j、j=1〜m)に対して追加・削除・全削除コマンドを発行する処理を行う。担当ノード決定処理部31は、新規のクライアント1(1−i、i=1〜n)が割り当てられるスレーブノード4(4−j、j=1〜m)を決定をするために、クライアント割当テーブル32とスレーブノードテーブル33の情報を用いる。
クライアント割当テーブル32は、マスタノード3が持つテーブルである。クライアント割当テーブル32は、現在どのクライアント1(1−i、i=1〜n)がどのスレーブノード4(4−j、j=1〜m)に割り当てられているかを記憶している。また、クライアント割当テーブル32は、そのクライアント1(1−i、i=1〜n)から最後にARP要求が来た時刻を記憶している。
スレーブノードテーブル33は、マスタノード3が持つテーブルである。スレーブノードテーブル33は、各スレーブノード4(4−j、j=1〜m)の現在の状態を記憶している。
ノード死活管理部34は、各スレーブノード4(4−j、j=1〜m)の状態を管理する。例えば、ノード死活管理部34は、「Ping」のような方法でスレーブノード4(4−j、j=1〜m)が正常に起動しているかをチェックする機能を持つ。
スレーブノード4(4−j、j=1〜m)の各々は、ARP処理部41と、担当クライアントテーブル42と、テーブル管理部43と、ARP通知部44と、通知フラグ45を備える。
ARP処理部41は、フロントネットワーク10側からのARP要求に対して、担当クライアントテーブル42を参照し、ARP応答を選択的に破棄する機能を持つ。ARP処理部41は、担当クライアントテーブル42を参照して、ARP要求を出してきたクライアント1(1−i、i=1〜n)のIPアドレスを検索し、ARP要求を出してきたクライアント1(1−i、i=1〜n)のIPアドレスが担当クライアントテーブル42内にあれば、ARP応答を返し、ARP要求を出してきたクライアント1(1−i、i=1〜n)のIPアドレスが担当クライアントテーブル42内になければ、ARP応答をしない。
担当クライアントテーブル42は、スレーブノード4(4−j、j=1〜m)の各々が持つテーブルである。担当クライアントテーブル42は、いずれかのクライアント1(1−i、i=1〜n)から最後にアクセス要求が来た時刻を記憶している。
テーブル管理部43は、マスタノード3からのクライアント追加・削除・全削除コマンドを受け取り、それに応じて担当クライアントテーブル42を操作する。
ARP通知部44は、ARP処理部41からの指示に応じて、担当クライアントテーブル42にないクライアントからARP要求を受信したことをマスタノード3へ通知する機能を持つ。ここでは、ARP通知部44は、マスタノード3への通知として、クライアント割当要求をマスタノード3へ送信する。クライアント割当要求は、担当クライアントテーブル42にないクライアント1(1−i、i=1〜n)のIPアドレス及びMACアドレスを含む。このとき、ARP通知部44は、マスタノード3へ通知するか否かについては、通知フラグ45によって判断する。
通知フラグ45を設けている理由は、全てのスレーブノード4(4−j、j=1〜m)からARP要求受信を受けているとマスタノード3の負荷が上がるため、ARP要求受信を通知するスレーブノード4(4−j、j=1〜m)を限定する目的である。もちろん、通知するスレーブノード4(4−j、j=1〜m)は、1つに限定される必要はなく、信頼性確保のために複数のスレーブノード4(4−j、j=1〜m)に通知フラグ45を設定しても構わない。
<テーブル類の詳細>
図3を参照して、上記説明したテーブル類(クライアント割当テーブル32、スレーブノードテーブル33、担当クライアントテーブル42)の詳細について説明する。
クライアント割当テーブル32は、「クライアントIPアドレス」と、「クライアントMACアドレス」と、「割当スレーブノードIPアドレス」と、「最終ARP時刻(Last ARP Time)」のフィールドを含む。
スレーブノードテーブル33は、「スレーブノードIPアドレス」と、「状態」と、「最終アクセス時刻(Last Access Time)」のフィールドを含む。
担当クライアントテーブル42は、「クライアントIPアドレス」と、「クライアントMACアドレス」と、「最終アクセス時刻(Last Access Time)」のフィールドを含む。
次に、各テーブルに含まれるフィールドについて説明する。
「クライアントIPアドレス」は、クライアント1(1−i、i=1〜n)のIPアドレスを格納する。「クライアントMACアドレス」は、クライアント1(1−i、i=1〜n)のMACアドレスを格納する。スレーブノード4(4−j、j=1〜m)は、クライアントのIPアドレスとMACアドレスがあれば、そのクライアントだけにARP応答するパケットを作成することができる。
「割当スレーブノードIPアドレス」及び「スレーブノードIPアドレス」は、スレーブノード4(4−j、j=1〜m)のIPアドレスを格納する。なお、「割当スレーブノードIPアドレス」は、「クライアントIPアドレス」に対応するクライアント1(1−i、i=1〜n)に割り当てられたスレーブノード4(4−j、j=1〜m)のIPアドレスを格納する。「スレーブノードIPアドレス」は、バックエンドネットワーク20に属するスレーブノード4(4−j、j=1〜m)のIPアドレスを格納する。
スレーブノード4(4−j、j=1〜m)のIPアドレスは、バックエンドネットワーク20に割り当てられているIPアドレスである。但し、前述したように、バックエンドネットワーク20は、IPネットワークには、限定されない。何らかのネットワークで、各スレーブノード4(4−j、j=1〜m)が個別にアクセスできれば良い。
「最終ARP時刻(Last ARP Time)」は、クライアント1(1−i、i=1〜n)から最後にARP要求が来た時刻を示している。ここでは、「最終ARP時刻(Last ARP Time)」は、一定期間が過ぎたらクライアント1(1−i、i=1〜n)のエントリを削除するために記憶している。
「状態」は、スレーブノード4(4−j、j=1〜m)が正常に起動しネットワークに接続できているかを示している。すなわち、「状態」は、スレーブノード4(4−j、j=1〜m)のネットワーク接続状態を示している。
「最終アクセス時刻(Last Access Time)」は、最後にネットワークを経由したアクセスが行われた時刻を示している。なお、スレーブノードテーブル33の「最終アクセス時刻(Last Access Time)」は、マスタノード3において、スレーブノード4(4−j、j=1〜m)から最後にアクセスがあった時刻を示している。また、担当クライアントテーブル42の「最終アクセス時刻(Last Access Time)」は、スレーブノード4(4−j、j=1〜m)の各々において、クライアント1(1−i、i=1〜n)から最後にアクセスがあった時刻を示している。ここでは、「最終アクセス時刻(Last Access Time)」は、定期的に状態を確認するため、或いは、エラー状態であった場合に、復帰しているかを確認するために記憶しておく。
<担当ノード決定処理部の動作フロー>
図4を参照して、マスタノード3の担当ノード決定処理部31の動作フローについて説明する。
(1)ステップS101
まず、担当ノード決定処理部31は、スレーブノード4(4−j、j=1〜m)のARP通知部44を通じて新たなクライアント割当要求を受信する。
(2)ステップS102
担当ノード決定処理部31は、クライアント割当要求に含まれるクライアント1(1−i、i=1〜n)のIPアドレスを基に、クライアント割当テーブル32を検索する。
(3)ステップS103
担当ノード決定処理部31は、クライアント1(1−i、i=1〜n)のIPアドレス、及び、クライアント1(1−i、i=1〜n)のIPアドレスに対応するスレーブノード4(4−j、j=1〜m)のIPアドレスがクライアント割当テーブル32に登録されているか確認する。
(4)ステップS104
担当ノード決定処理部31は、クライアント1(1−i、i=1〜n)のIPアドレス、及び、クライアント1(1−i、i=1〜n)のIPアドレスに対応するスレーブノード4(4−j、j=1〜m)のIPアドレスのうち少なくとも一方がクライアント割当テーブル32に登録されていない場合、当該クライアント1(1−i、i=1〜n)に対して、新たにクライアント1(1−i、i=1〜n)を担当するスレーブノード4(4−j、j=1〜m)を決定する。この決定の仕方は、単純なラウンドロビン、クライアントIPアドレスを用いたハッシュ、各スレーブノード4(4−j、j=1〜m)の負荷状況に応じて割り当てる等の複雑な計算に基づいても良く、柔軟なロードバランスアルゴリズムの選択が可能である。
(5)ステップS105
担当ノード決定処理部31は、クライアント1(1−i、i=1〜n)のIPアドレス、及び、クライアント1(1−i、i=1〜n)のIPアドレスに対応するスレーブノード4(4−j、j=1〜m)のIPアドレスが既にクライアント割当テーブル32に登録されている場合、クライアント1(1−i、i=1〜n)のIPアドレスに対応するスレーブノード4(4−j、j=1〜m)のテーブル管理部43へ、クライアント1(1−i、i=1〜n)のIPアドレスとMACアドレスの追加要求を送信する。或いは、担当ノード決定処理部31は、新たにクライアント1(1−i、i=1〜n)を担当するスレーブノード4(4−j、j=1〜m)を決定したら、そのスレーブノード4(4−j、j=1〜m)に対して、新たにクライアント1(1−i、i=1〜n)を担当するよう命令(コマンド)を送信する。すなわち、担当ノード決定処理部31は、そのスレーブノード4(4−j、j=1〜m)のテーブル管理部43へ、クライアント1(1−i、i=1〜n)のIPアドレスとMACアドレスの追加要求を送信する。
(6)ステップS106
スレーブノード4(4−j、j=1〜m)は、クライアント1(1−i、i=1〜n)のIPアドレスとMACアドレスの追加要求を受信すると、後述する担当クライアントテーブル42にクライアント1(1−i、i=1〜n)のIPアドレスを追加し、追加が完了した旨の通知(追加完了通知)をマスタノード3に送信する。このとき、マスタノード3は、スレーブノード4(4−j、j=1〜m)から追加完了通知を受信したか確認する。
(7)ステップS107
担当ノード決定処理部31は、スレーブノード4(4−j、j=1〜m)から追加完了通知を受信できなければ、スレーブノードテーブル33の当該スレーブノード4(4−j、j=1〜m)の状態フィールドをエラー状態にし、当該スレーブノード4(4−j、j=1〜m)以外に新たな担当するスレーブノード4(4−j、j=1〜m)を決定する。例えば、担当ノード決定処理部31は、スレーブノード4(4−j、j=1〜m)から追加がエラーしたり(担当クライアントテーブル42に空きがないケース、フロントネットワーク側でリンクダウンを検出しているケース等があり得る)、タイムアウトしたりした場合には、スレーブノードテーブル33の当該スレーブノード4(4−j、j=1〜m)の状態フィールドをエラー状態にし、当該スレーブノード4(4−j、j=1〜m)以外に新たな担当するスレーブノード4(4−j、j=1〜m)を決定する。
(8)ステップS108
担当ノード決定処理部31は、スレーブノード4(4−j、j=1〜m)から追加完了通知を受信すると、スレーブノードテーブル33の更新を行う。
(9)ステップS109
また、担当ノード決定処理部31は、クライアント割当テーブル32の更新を行う。その後、担当ノード決定処理部31は、処理を終了する。
<ARP処理部の動作フロー>
図5を参照して、スレーブノード4(4−j、j=1〜m)のARP処理部41の動作フローについて説明する。
(1)ステップS201
ARP処理部41は、クライアント1(1−i、i=1〜n)から、フロントネットワーク10側のIPアドレスに対するARP要求を受け取る。
(2)ステップS202
ARP処理部41は、クライアント1(1−i、i=1〜n)のIPアドレスを基に、担当クライアントテーブル42を検索する。
(3)ステップS203
ARP処理部41は、クライアント1(1−i、i=1〜n)のIPアドレスが担当クライアントテーブル42に登録されているか確認する。
(4)ステップS204
ARP処理部41は、クライアント1(1−i、i=1〜n)のIPアドレスが担当クライアントテーブル42に登録されていれば、ARP応答をクライアント1(1−i、i=1〜n)に送信し、処理を終了する。
(5)ステップS205
ARP処理部41は、クライアント1(1−i、i=1〜n)のIPアドレスが担当クライアントテーブル42に登録されていなければ、ARP応答を送信せずに破棄する。
(6)ステップS206
ARP処理部41は、ARP通知部44にクライアント情報を通知して、処理を終了する。なお、クライアント情報は、担当クライアントテーブル42に登録されていないクライアントであって、ARP要求を送信してきたクライアントのIPアドレスとMACアドレスを含むものとする。ここでは、ARP処理部41は、ARP通知部44に当該クライアント1(1−i、i=1〜n)のIPアドレスとMACアドレスを通知して、処理を終了する。
<ARP通知部の動作フロー>
図6を参照して、スレーブノード4(4−j、j=1〜m)のARP通知部44の動作フローについて説明する。
(1)ステップS301
ARP通知部44は、ARP処理部41からクライアント情報を受信すると、通知フラグ45を確認する。ここでは、ARP通知部44は、ARP処理部41からクライアント1(1−i、i=1〜n)のIPアドレスとMACアドレスを受信すると、通知フラグ45を確認する。
(2)ステップS302
ARP通知部44は、通知フラグ45が通知するように設定されているか否かを確認する。なお、ARP通知部44は、通知フラグ45が「True(真)」であれば、通知するように設定されていると判断する。例えば、ARP通知部44は、通知フラグ45の値が「0」であれば「False(偽)」であると判断し、通知フラグ45の値が「1」であれば「True(真)」であると判断する。このとき、ARP通知部44は、通知フラグ45が通知しないように設定されていた場合には、ARP通知をせずに、処理を終了する。ここでは、ARP通知部44は、通知フラグ45が通知しないように設定されていた場合、マスタノード3へクライアント情報を送信せずに、処理を終了する。すなわち、ARP通知部44は、通知フラグ45が通知しないように設定されていた場合、マスタノード3に対して、クライアント1(1−i、i=1〜n)のIPアドレスとMACアドレスを通知せずに、処理を終了する。
(3)ステップS303
ARP通知部44は、通知フラグ45が通知するように設定されていた場合、マスタノード3へクライアント情報を送信し、処理を終了する。ここでは、ARP通知部44は、通知フラグ45が通知するように設定されていた場合、マスタノード3に対して、クライアント1(1−i、i=1〜n)のIPアドレスとMACアドレスを送信し、処理を終了する。
<マスタノードとスレーブノードの間の通信内容>
図7を参照して、本実施形態においてマスタノード3とスレーブノード4(4−j、j=1〜m)の間で通信される内容について説明する。
マスタノード3からスレーブノード4(4−j、j=1〜m)への通信内容は、「コマンド」と「クライアントIPアドレスとMACアドレスのリスト」を含む。すなわち、マスタノード3は、スレーブノード4(4−j、j=1〜m)に対して、「コマンド」と「クライアントIPアドレスとMACアドレスのリスト」を含むデータを送信する。
スレーブノード4(4−j、j=1〜m)は、マスタノード3から、「コマンド」と「クライアントIPアドレスとMACアドレスのリスト」を含むデータを受信すると、「コマンド」に基づき、担当クライアントテーブル42の操作を行う。
ここでは、「コマンド」は、「追加(ADD)」、「削除(DELETE)」、及び「全削除(CLEAR)」のうちの少なくとも1つである。
スレーブノード4(4−j、j=1〜m)は、「追加(ADD)」を受信すると、後続のクライアントIPアドレスとMACアドレスのリストを担当クライアントテーブル42に追加する。更に、スレーブノード4(4−j、j=1〜m)は、それらのクライアントに対してARP応答を送信する。スレーブノード4(4−j、j=1〜m)は、IPアドレスとMACアドレスがあれば、そのIPアドレスとMACアドレスを持つクライアントのみにARP応答をすることができる。このとき、スレーブノード4(4−j、j=1〜m)は、「追加(ADD)」を受信した際に、担当クライアントテーブル42が存在しない場合、担当クライアントテーブル42を新規に作成するようにしても良い。
スレーブノード4(4−j、j=1〜m)は、「削除(DELETE)」を受信すると、後続のクライアントIPアドレスとMACアドレスのリストを担当クライアントテーブル42から削除する。
スレーブノード4(4−j、j=1〜m)は、「全削除(CLEAR)」を受信すると、担当クライアントテーブル42内のクライアントIPアドレスとMACアドレスのリストを全て削除(全削除)する。このとき、スレーブノード4(4−j、j=1〜m)は、「全削除(CLEAR)」を受信すると、担当クライアントテーブル42自体を削除するようにしても良い。
スレーブノード4(4−j、j=1〜m)は、これらのコマンドを実行した後、実行結果の「コード」をマスタノード3に返す。
「コード」は、「正常終了/エラー」、及び「エラーコード」である。
「正常終了/エラー」は、スレーブノード4(4−j、j=1〜m)でのコマンドの実行が正常終了したか、或いはエラーしたかを示すデータである。例えば、このデータの値が「0」であれば「正常終了」を示し、このデータの値が「1」であれば「エラー」を示す。但し、実際には、これらの例に限定されない。
「エラーコード」は、エラーの種類(タイプ)を示すデータである。なお、エラーコード上では、「正常終了」もエラーの一種として区分するようにしても良い。
スレーブノード4(4−j、j=1〜m)からマスタノード3への通信内容も「コマンド」と「クライアントIPアドレス及びクライアントMACアドレスのリスト」を含む。すなわち、スレーブノード4(4−j、j=1〜m)も、マスタノード3に対して、「コマンド」と「クライアントIPアドレス及びクライアントMACアドレスのリスト」を含むデータを送信する。
ここでは、「コマンド」は、「新規(NEW)」だけである。すなわち、スレーブノード4(4−j、j=1〜m)からマスタノード3へ、「新規(NEW)」のコマンドが送信される。
マスタノード3は、「コマンド」と「クライアントIPアドレス及びクライアントMACアドレスのリスト」を含むデータを受信すると、クライアントIPアドレス及びクライアントMACアドレスのリストを基に、担当ノード決定処理を行い、実行結果をスレーブノード4(4−j、j=1〜m)に返す。
以上のように、本発明の実施形態における各処理を説明したが、これにより柔軟かつ拡張性のあるロードバランスが可能であることを以下に説明する。
<実施例>
図8を参照して、クライアント1(1−i、i=1〜n)がサーバ群2に接続する際の処理について詳細に説明する。
ここでは、サーバ群2は、4台のスレーブノード4(4−j、j=1〜m)を含むものとする。この4台のスレーブノード4(4−j、j=1〜m)の各々を、それぞれ、「スレーブノード#1」、「スレーブノード#2」、「スレーブノード#3」、「スレーブノード#4」とする。
まず、クライアント1(1−i、i=1〜n)は、サーバ群2に初めて接続する際、IPアドレスからMACアドレスを解決するために、ARP要求を送信する。
ARP要求は、フロントネットワーク10内のスイッチングハブ又はHUBによって、サーバ群2の全てのスレーブノード4(4−j、j=1〜m)に同報(ブロードキャスト)される。すなわち、フロントネットワーク10内のスイッチングハブ又はHUBは、ARP要求を、サーバ群2の全てのスレーブノード4(4−j、j=1〜m)に同報する。
図8の例では、ARP要求は、4台のスレーブノード4(4−j、j=1〜m)があるため、4つに複製されて同報される。この同報は、IPネットワークを構成する機器全てが持つ機能であり、特別なネットワーク構成や装置を一切必要としない。また、現在使われている多くのスイッチングハブにおいては、この同報は、内部でハードウエア的に複製されて行われており、性能上のボトルネックにはなりにくい。また、IPネットワークにおいては、SPOFを避けるために数々の既存技術(例えば、スパニングツリー)が存在し、これを用いれば、耐障害性を高めることは容易である。
このようにして同報されたARP要求を、全てのスレーブノード4(4−j、j=1〜m)が受信する。すなわち、スレーブノード4(4−j、j=1〜m)の各々は、フロントネットワーク10内のスイッチングハブ又はHUBによって同報されたARP要求を受信する。
もし、既に担当ノードが決定していれば、そのスレーブノード4(4−j、j=1〜m)の担当クライアントテーブル42に登録されているので、担当スレーブノード4(4−j、j=1〜m)のMACアドレスを含むARP応答が返り、以降は、担当スレーブノード4(4−j、j=1〜m)との通信となる。ここでは、スレーブノード4(4−j、j=1〜m)の各々は、担当クライアントテーブル42を参照して、ARP要求を出してきたクライアント1(1−i、i=1〜n)のIPアドレスを検索し、ARP要求を出してきたクライアント1(1−i、i=1〜n)のIPアドレスが担当クライアントテーブル42内にあれば、ARP応答を返し、ARP要求を出してきたクライアント1(1−i、i=1〜n)との通信を行う。
この通信は、担当スレーブノード4(4−j、j=1〜m)のMACアドレスを指定して行われるので、同報されることはなく、ネットワークを有効利用することができる。
もし、担当ノードが決定していない場合、或いは、担当ノードが故障していたりする場合には、ARP通知部44からマスタノード3へクライアント割当要求(NEWコマンド)が送信される。ここでは、スレーブノード4(4−j、j=1〜m)の各々は、担当クライアントテーブル42を参照して、ARP要求を出してきたクライアント1(1−i、i=1〜n)のIPアドレスを検索し、ARP要求を出してきたクライアント1(1−i、i=1〜n)のIPアドレスが担当クライアントテーブル42内に無ければ、ARP応答をせず、マスタノード3へクライアント割当要求(NEWコマンド)を送信する。なお、スレーブノード4(4−j、j=1〜m)の各々は、自身が担当ノードでも、故障している場合、当然、ARP応答をせず、マスタノード3へクライアント割当要求(NEWコマンド)を送信しない。
マスタノード3は、クライアント割当要求(NEWコマンド)を受信すると、担当ノード決定処理部31が担当ノード決定処理を行い、担当スレーブノード4(4−j、j=1〜m)にクライアント追加命令(ADDコマンド)を送信する。
図8の例では、マスタノード3は、担当スレーブノードを、スレーブノード#1に決定したので、スレーブノード#1に対してクライアント追加を行っている。他のスレーブノード4(4−j、j=1〜m)に対しては、何も行わない。すなわち、マスタノード3は、スレーブノード#1に該当するスレーブノード4(4−j、j=1〜m)にのみ、クライアント追加命令(ADDコマンド)を送信する。
スレーブノード#1に該当するスレーブノード4(4−j、j=1〜m)は、クライアント追加命令(ADDコマンド)を受信すると、ARP要求を出してきたクライアント1(1−i、i=1〜n)を、担当クライアントテーブル42に登録する。
更に、スレーブノード#1は、クライアント1に対してARP応答を送信する。これにより、クライアント1(1−i、i=1〜n)は、ARP解決ができ、以降は、スレーブノード#1とのポイント−ポイント通信(Point to Point通信)となる。すなわち、スレーブノード#1に該当するスレーブノード4(4−j、j=1〜m)は、自身が担当するクライアント1(1−i、i=1〜n)に対して、ARP応答を返し、通信接続を確立する。
なお、クライアント1(1−i、i=1〜n)は、ARP要求に対する応答がない場合には、一定期間をおいて再送する機能を持っている。これ(再送機能)は、ネットワーク上でパケットが廃棄される場合や何らかの障害に備えての機能であり、ほぼ全てのクライアント実装で再送することが確認できている。従って、もしスレーブノード#1からのARP応答が何らかの障害によりクライアント1に届かなかった場合には、クライアント1はARP要求を再送し、スレーブノード#1は再度ARP応答を送信する。このとき、スレーブノード#1は、ネットワーク上でのパケットロスに備えて、クライアント追加命令(ADDコマンド)を受けると、一定期間を置いて複数のARP応答を送信するようにしても良い。
この方式のポイントとして、以下の2つの利点が挙げられる。
1つ目は、ロードバランスアルゴリズムをマスタノード3で集中的に行うために、柔軟なアルゴリズムが実現できることである。既存の分散型ロードバランスでは、各ノードが独立して自分の担当かを判断しなければならないため、単純なアルゴリズムしか実装できないが、本発明では、アルゴリズム実装をマスタノード3に集中させており、課題を解決している。
2つ目は、ARP解決を用いているため、ARP解決後は、クライアントと担当ノードのポイントーポイント通信になり、拡張性が高いことである。つまり、全てのパケットが集中する部分がなく、ノードを追加してスイッチングハブでネットワークを組めば性能が拡張できる。ARPの同報をする部分とマスタノード3が担当ノード決定をする部分に負荷が集中する可能性もあるが、ARP要求は、一度ARP解決してしまえば、しばらくは出ないため、マスタノード3にとって大きな負荷とはならない。
<第2実施形態>
以下に、本発明の第2実施形態について説明する。
図9は、本実施形態におけるクラスタ制御システムのシステム構成を示したものである。
本実施形態におけるクラスタ制御システムは、複数のクライアント1(1−i、i=1〜n:nはクライアント数)と、フロントネットワーク10と、サーバ群2と、バックエンドネットワーク20を含む。
ここでは、フロントネットワーク10側は、図1と同じ構成であるが、バックエンドネットワーク20のマスタノード3がサーバ群2の中に入った構成となっている。
クライアント1(1−i、i=1〜n)、フロントネットワーク10、バックエンドネットワーク20については、第1実施形態と同様である。
ここでは、サーバ群2は、マスタノード3と、複数のスレーブノード4(4−j、j=1〜m:mはスレーブノード数)を含む。
この場合、マスタノード3は、スレーブノード4(4−j、j=1〜m)の機能も併せ持つ。
<マスタノード及びスレーブノードの内部構成>
図10を参照して、本実施形態におけるマスタノード3、スレーブノード4(4−j、j=1〜m)の内部構成について説明する。
本実施形態におけるマスタノード3は、第1実施形態におけるマスタノード3とスレーブノード4(4−j、j=1〜m)の機能を両方持った形となっている。
ここでは、マスタノード3は、担当ノード決定処理部31と、クライアント割当テーブル32と、スレーブノードテーブル33と、ノード死活管理部34と、ARP処理部35と、担当クライアントテーブル36と、テーブル管理部37と、ARP通知部38と、通知フラグ39を備える。
また、スレーブノード4(4−j、j=1〜m)の各々は、ARP処理部41と、担当クライアントテーブル42と、テーブル管理部43と、ARP通知部44と、通知フラグ45を備える。
担当ノード決定処理部31、クライアント割当テーブル32、スレーブノードテーブル33、ノード死活管理部34、ARP処理部41、担当クライアントテーブル42、テーブル管理部43、ARP通知部44、及び通知フラグ45については、第1実施形態と同様である。
ARP処理部35は、ARP処理部41と同様である。すなわち、ARP処理部35は、スレーブノード4(4−j、j=1〜m)におけるARP処理部41に相当する。
担当クライアントテーブル36は、担当クライアントテーブル42と同様である。すなわち、担当クライアントテーブル36は、スレーブノード4(4−j、j=1〜m)における担当クライアントテーブル42に相当する。
テーブル管理部37は、テーブル管理部43と同様である。すなわち、テーブル管理部37は、スレーブノード4(4−j、j=1〜m)におけるテーブル管理部43に相当する。
ARP通知部38は、ARP通知部44と同様である。すなわち、ARP通知部38は、スレーブノード4(4−j、j=1〜m)におけるARP通知部44に相当する。
通知フラグ39は、通知フラグ45と同様である。すなわち、通知フラグ39は、スレーブノード4(4−j、j=1〜m)における通知フラグ45に相当する。
<第3実施形態>
以下に、本発明の第3実施形態について説明する。
前述の各実施形態によりクライアント1をスレーブノード4に分散して割り当てることができる。各スレーブノード4の負荷を均等にすれば、全体としてはスレーブノード4の数に比例した処理性能を得ることができる。
しかし、クライアント1の割り当て方によっては、特定のスレーブノード4に負荷が集中し、他のスレーブノード4は負荷が少ないような状態が発生する。また、新たにスレーブノード4を追加した場合、追加されたスレーブノード4にクライアントを割り当てないと、追加した意味がなくなる。
更に、スレーブノード4が故障した等の事情により、スレーブノード4を削除した場合、それまでその削除されたスレーブノード4が担当していたクライアント1を他のスレーブノード4に再配置しなければならない。
このような再配置を行う方法について説明する。
マスタノード3は、管理者からのコマンドや、負荷の不均等を検出する別のモジュールからの通知により、再配置を行うためのトリガーを取得する。マスタノード3の担当ノード決定処理部32は、このトリガーに応じて、再配置を行う。マスタノード3は、再配置により新たに決定した割当に従い、スレーブノード4に対して、クライアント追加・削除・全削除命令を送信する。具体的には、まず、マスタノード3は、全削除命令を送信してスレーブノード4の担当クライアントテーブル42を全て削除する。その後、マスタノード3は、クライアント追加命令として、新たに割り当てるクライアント1の追加命令を送信する。クライアント1の追加命令には、クライアント1のIPアドレスとMACアドレスが含まれる。
スレーブノード4は、クライアント追加命令を受けると、クライアント追加命令に含まれるIPアドレスとMACアドレスを担当クライアントテーブル42に追加し、このIPアドレスとMACアドレスを持つクライアント1に対して、ARP応答を送信する。クライアント1は、ARP応答を受信すると、自身のARPテーブルを変更する。これにより、クライアント1は、新たなスレーブノード4と通信するようになり、再配置が実現できる。
なお、クライアント1の通信中にARPテーブルが変更されて、宛先のスレーブノード4が変わると、アプリケーションによってはセッションが破棄されてエラーが起きる可能性がある。例えば、スレーブノード4を追加した場合等、エラーを発生させてまで再配置をする必要がない場合があり得る。このような場合には、マスタノード3は、クライアント1の通信状況を監視し、通信のないタイミングまで待ってから再配置をする。このとき、個々のスレーブノード4が、クライアント1の通信状況を監視し、通信のないタイミングになると、その旨をマスタノード3に通知するようにしても良い。
<他の実施形態>
最後に、他の実施形態について詳細に説明する。
本実施形態のクラスタ制御システムは、複数のクライアントと、複数のクライアントにより接続される複数のコンピュータと、複数のコンピュータを管理するマスタコンピュータを含む。複数のコンピュータは、複数のクライアントと複数のコンピュータが接続するネットワーク(フロントネットワーク)と、複数のコンピュータとマスタコンピュータが接続するネットワーク(バックエンドネットワーク)に接続している。複数のコンピュータは、フロントネットワークに対しては、同一のIPアドレス(シングルIPアドレス)を持っている。また、複数のコンピュータは、それぞれが受け持つクライアントのテーブル(担当クライアントテーブル)を持っている。担当クライアントテーブルは、バックエンドネットワークを介して、マスタコンピュータから追加・変更・削除等の維持管理をされており、クライアントからシングルIPアドレスに対してARP要求が来たときに、担当クライアントテーブルを参照し、ARP要求を出したクライアントが存在すればARP応答を返し、存在しなければARP応答をしない処理を行う。
また、複数のコンピュータは、担当クライアントテーブルに存在しないクライアントからARP要求が来たときに、マスタコンピュータに対して、新規クライアントとして通知する。
また、複数のコンピュータは、新規クライアント通知をするか否かを判断するフラグを有する。
また、複数のコンピュータは、新規クライアント通知に、クライアントから受信したARP要求パケットも合わせて通知する。
また、マスタコンピュータは、複数のコンピュータへのクライアントの割当を記憶したテーブル(クライアント割当テーブル)と複数のコンピュータの状態を管理するテーブル(ノード管理テーブル(ないしスレーブノードテーブル))を持つ。マスタコンピュータは、新規クライアントからのARP要求が複数のコンピュータに来たことを検出すると、クライアント割当テーブルとノード管理テーブルを参照し、既に割当済みであれば、そのコンピュータの担当クライアントテーブルに新規クライアントのIPアドレス及びMACアドレスを追加する処理を行い、割当がなければ、ノード管理テーブルを参照して複数のコンピュータから1つを選択し、そのコンピュータの担当クライアントテーブルに新規クライアントのIPアドレス及びMACアドレスを追加する処理を行う。
また、マスタコンピュータは、ノード管理テーブルの増減やスレーブコンピュータ間の負荷の不均等を検出したことに伴い、複数のコンピュータの担当クライアントテーブルにクライアントのIPアドレスとMACアドレスの追加・削除・全削除を行う。
本発明のクラスタ制御システムにおいて、ネットワーク上を流れる通信内容は、コマンドと、IPアドレス及びMACアドレスのリストを含む。コマンドの種類として、追加・削除・全削除がある。複数のコンピュータは、コマンドと、クライアントのIPアドレス及びMACアドレスのリストを受け取ると、コマンドに従い、担当クライアントテーブルにIPアドレスとMACアドレスの追加・削除・全削除を行い、追加コマンドの場合には、追加されたクライアントに対してARP応答を送信し、正常に終了したか否かを返すことにより、ARP応答を制御可能とする。
以上のように、本発明では、ARPプロトコルのレイヤでロードバランスを行う。ARPは、IPアドレスからMACアドレスを解決するためのプロトコルである。本発明では、クライアントからのARPリクエストに対して、異なるMACアドレスを返してやることでクライアント単位のロードバランスを行う。
本発明によれば、シングルIPアドレスで柔軟なロードバランスと拡張性を実現できるため、コンピュータ資源を有効活用しつつ信頼性を高めることができる。また、特別なネットワークを必要としないため、新規投資を最小限にすることができる。
以上、本発明の実施形態を詳述してきたが、実際には上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲(クレーム)の枠内において、種々の開示要素の多様な組み合せないし選択が可能である。
1(−i、i=1〜n)… 複数のクライアント
10… フロントネットワーク
2… サーバ群
20… バックエンドネットワーク
3… マスタノード
31… 担当ノード決定処理部
32… クライアント割当テーブル
33… スレーブノードテーブル
34… ノード死活管理部
35… ARP処理部
36… 担当クライアントテーブル
37… テーブル管理部
38… ARP通知部
39… 通知フラグ
4(−j、j=1〜m)… スレーブノード
41… ARP処理部
42… 担当クライアントテーブル
43… テーブル管理部
44… ARP通知部
45… 通知フラグ

Claims (26)

  1. 複数のクライアントと、
    前記複数のクライアントの各々とフロントネットワークを介して接続するサーバ群と、
    前記サーバ群とバックエンドネットワークを介して接続し、前記サーバ群を管理するマスタコンピュータと
    を含み、
    前記サーバ群は、
    前記フロントネットワークに対して、同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータ
    を含み、
    前記複数のスレーブコンピュータの各々は、
    夫々が受け持つクライアントを示す担当クライアントテーブルと、
    前記複数のクライアントの各々から前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、前記担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在すればARP応答を返し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在しなければARP応答をしない処理を行うARP処理部と
    を具備し、
    前記マスタコンピュータは、
    前記バックエンドネットワークを介して、前記担当クライアントテーブルに対し、前記複数のスレーブコンピュータの各々が受け持つクライアントの追加・変更・削除に関する情報の維持管理を行う担当ノード決定処理部
    を具備する
    クラスタ制御システム。
  2. 請求項1に記載のクラスタ制御システムであって、
    前記複数のスレーブコンピュータの各々は、
    前記担当クライアントテーブルに存在しないクライアントからARP要求を受け取ると、前記マスタコンピュータに対して、新規クライアントとして、前記クライアントのIPアドレス及びMAC(Media Access Control)アドレスを通知するARP通知部
    を更に具備する
    クラスタ制御システム。
  3. 請求項2に記載のクラスタ制御システムであって、
    前記複数のスレーブコンピュータの各々は、
    前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するための通知フラグ
    を更に具備し、
    前記ARP通知部は、前記通知フラグを確認して、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断する
    クラスタ制御システム。
  4. 請求項2又は3に記載のクラスタ制御システムであって、
    前記マスタコンピュータは、
    前記複数のスレーブコンピュータの各々に対するクライアントの割当を記憶するためのクライアント割当テーブルと、
    前記複数のスレーブコンピュータの各々の状態を管理するためのスレーブノードテーブルと
    を更に具備し、
    前記担当ノード決定処理部は、前記複数のスレーブコンピュータの各々が前記新規クライアントからのARP要求を受け取ったことを検出すると、前記クライアント割当テーブル及び前記スレーブノードテーブルを参照し、前記新規クライアントに対してスレーブコンピュータが既に割当済みであれば、前記割り当てられたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行い、前記新規クライアントに対してスレーブコンピュータの割当がなければ、前記スレーブノードテーブルを参照して、前記複数のスレーブコンピュータのうちいずれか1つのスレーブコンピュータを選択し、前記選択されたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行う
    クラスタ制御システム。
  5. 請求項4に記載のクラスタ制御システムであって、
    前記担当ノード決定処理部は、前記スレーブノードテーブルにおける前記スレーブコンピュータの増減や、前記複数のスレーブコンピュータ間の負荷が不均等になっていることを検出したことに伴い、前記複数のスレーブコンピュータの各々の担当クライアントテーブルにおけるクライアントのIPアドレス及びMACアドレスの追加・削除を行い、前記複数のスレーブコンピュータの負荷が均等になるように再配置を行う
    クラスタ制御システム。
  6. 請求項1乃至5のいずれか一項に記載のクラスタ制御システムであって、
    前記担当ノード決定処理部は、前記複数のスレーブコンピュータの各々に対して、コマンドとIPアドレスとMACアドレスとを含むデータを送信し、
    前記コマンドの種類は、追加・削除・全削除があり、
    前記複数のスレーブコンピュータの各々は、前記コマンドと前記IPアドレスと前記MACアドレスとを含むデータを受け取ると、前記コマンドに従い、前記担当クライアントテーブルに対して、前記IPアドレスと前記MACアドレスとの追加・削除・全削除を行い、追加コマンドの場合には前記IPアドレスと前記MACアドレスで指定されるクライアントに対してARP応答を送信し、前記コマンドに応じた処理が正常に終了したか否かを示す情報を前記マスタコンピュータに返す
    クラスタ制御システム。
  7. 請求項1乃至6のいずれか一項に記載のクラスタ制御システムで、前記複数のスレーブコンピュータの1つとして使用されるコンピュータ。
  8. 請求項1乃至6のいずれか一項に記載のクラスタ制御システムで、前記マスタコンピュータとして使用されるコンピュータ。
  9. 複数のクライアントの各々とサーバ群とをフロントネットワークを介して接続するステップと、
    前記サーバ群を管理するマスタコンピュータと前記サーバ群とをバックエンドネットワークを介して接続するステップと、
    前記サーバ群から前記フロントネットワークに対してシングルIP(Internet Protocol)アドレスを提示し、前記サーバ群に含まれる複数のスレーブコンピュータが同一のIPアドレスであるように見せるステップと、
    前記サーバ群に対して、前記複数のクライアントの各々から前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、前記複数のスレーブコンピュータの各々が夫々受け持つクライアントを示す担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在すればARP応答を返し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在しなければARP応答をしない処理を行うステップと、
    前記バックエンドネットワークを介して、前記マスタコンピュータから前記担当クライアントテーブルに対し、前記複数のスレーブコンピュータの各々が受け持つクライアントの追加・変更・削除に関する情報の維持管理を行うステップと
    前記複数のスレーブコンピュータの各々は、クライアントが追加された場合には前記クライアントに対してARP応答を送信するステップと
    を含む
    クラスタ制御方法。
  10. 請求項9に記載のクラスタ制御方法であって、
    前記複数のスレーブコンピュータの各々が前記担当クライアントテーブルに存在しないクライアントからARP要求を受け取ると、前記複数のスレーブコンピュータの各々から前記マスタコンピュータに対して、新規クライアントとして、前記クライアントのIPアドレス及びMAC(Media Access Control)アドレスを通知するステップ
    を更に含む
    クラスタ制御方法。
  11. 請求項10に記載のクラスタ制御方法であって、
    前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するための通知フラグを確認して、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するステップ
    を更に含む
    クラスタ制御方法。
  12. 請求項10又は11に記載のクラスタ制御方法であって、
    前記マスタコンピュータに、前記複数のスレーブコンピュータの各々に対するクライアントの割当を記憶するためのクライアント割当テーブルを設けるステップと、
    前記マスタコンピュータに、前記複数のスレーブコンピュータの各々の状態を管理するためのスレーブノードテーブルを設けるステップと、
    前記複数のスレーブコンピュータの各々が前記新規クライアントからのARP要求を受け取ったことを検出すると、前記クライアント割当テーブル及び前記スレーブノードテーブルを参照するステップと、
    前記新規クライアントに対してスレーブコンピュータが既に割当済みであれば、前記マスタコンピュータから前記割り当てられたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行うステップと、
    前記新規クライアントに対してスレーブコンピュータの割当がなければ、前記スレーブノードテーブルを参照して、前記複数のスレーブコンピュータのうちいずれか1つのスレーブコンピュータを選択し、前記マスタコンピュータから前記選択されたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行うステップと
    を更に含む
    クラスタ制御方法。
  13. 請求項12に記載のクラスタ制御方法であって、
    前記スレーブノードテーブルにおける前記スレーブコンピュータの増減や、前記複数のスレーブコンピュータ間の負荷が不均等になっていることを検出したことに伴い、前記複数のスレーブコンピュータの各々の担当クライアントテーブルにおけるクライアントのIPアドレス及びMACアドレスの追加・削除を行い、前記複数のスレーブコンピュータの負荷が均等になるように再配置を行うステップ
    を更に含む
    クラスタ制御方法。
  14. 請求項9乃至13のいずれか一項に記載のクラスタ制御方法であって、
    前記マスタコンピュータから前記複数のスレーブコンピュータの各々に対して、コマンドとIPアドレスとMACアドレスとを含むデータを送信するステップと、
    前記コマンドの種類は、追加・削除・全削除があり、前記複数のスレーブコンピュータの各々が前記コマンドと前記IPアドレスと前記MACアドレスとを含むデータを受け取ると、前記コマンドに従い、前記担当クライアントテーブルに対して、前記IPアドレスと前記MACアドレスとの追加・削除・全削除を行い、前記コマンドに応じた処理が正常に終了したか否かを示す情報を前記マスタコンピュータに返すステップと
    を更に含む
    クラスタ制御方法。
  15. 請求項9乃至14のいずれか一項に記載のクラスタ制御方法における前記複数のスレーブコンピュータの各々の動作を、コンピュータに実行させるためのプログラム。
  16. 請求項9乃至14のいずれか一項に記載のクラスタ制御方法における前記マスタコンピュータの動作を、コンピュータに実行させるためのプログラム。
  17. 複数のクライアントとフロントネットワークを介して接続するとともに、該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータのうちの一のスレーブコンピュータであって、
    自身が受け持つクライアントを示す担当クライアントテーブルと、
    前記複数のクライアントのいずれか1つから前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、前記担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在する場合にはARP応答を返し、それ以外の場合にはARP応答をしないARP処理部とを備え、
    前記担当クライアントテーブルにおけるクライアントの追加、変更又は削除を、バックエンドネットワークを介して接続されたマスタコンピュータによって行われることを特徴とするスレーブコンピュータ。
  18. 前記担当クライアントテーブルに存在しないクライアントからARP要求を受け取ると、前記マスタコンピュータに対して、新規クライアントとして、前記クライアントのIPアドレス及びMAC(Media Access Control)アドレスを通知するARP通知部をさらに備えていることを特徴とする、請求項17に記載のスレーブコンピュータ。
  19. 前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断するための通知フラグをさらに備え、
    前記ARP通知部は、前記通知フラグを確認して、前記クライアントのIPアドレス及びMACアドレスを通知するか否かを判断することを特徴とする、請求項18に記載のスレーブコンピュータ。
  20. 複数のクライアントとフロントネットワークを介して接続するとともに該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータとバックエンドネットワークを介して接続し、該複数のスレーブコンピュータを管理するマスタコンピュータであって、
    前記複数のスレーブコンピュータのそれぞれが受け持つクライアントを示す担当クライアントテーブルに対し、前記バックエンドネットワークを介して、クライアントの追加、変更又は削除を行う担当ノード決定処理部を備えていることを特徴とするマスタコンピュータ。
  21. 請求項17乃至19のいずれか1項に記載のスレーブコンピュータと、
    請求項20に記載のマスタコンピュータとを備えていることを特徴とするクラスタ制御システム。
  22. 前記マスタコンピュータは、
    前記複数のスレーブコンピュータに対するクライアントの割当を記憶するためのクライアント割当テーブルと、
    前記複数のスレーブコンピュータの状態を管理するためのスレーブノードテーブルとをさらに備え、
    前記担当ノード決定処理部は、前記複数のスレーブコンピュータの各々が前記新規クライアントからのARP要求を受け取ったことを検出すると、前記クライアント割当テーブル及び前記スレーブノードテーブルを参照し、前記新規クライアントに対してスレーブコンピュータが既に割当済みであれば、前記割り当てられたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加する処理を行い、前記新規クライアントに対してスレーブコンピュータの割当がなければ、前記スレーブノードテーブルを参照して、前記複数のスレーブコンピュータのうちいずれか1つのスレーブコンピュータを選択し、前記選択されたスレーブコンピュータの担当クライアントテーブルに対して、前記新規クライアントのIPアドレス及びMACアドレスを追加することを特徴とする、請求項21に記載のクラスタ制御システム。
  23. 前記担当ノード決定処理部は、前記スレーブノードテーブルにおける前記複数のスレーブコンピュータの増減、又は、前記複数のスレーブコンピュータ間の負荷が不均等になっていることを検出したことに伴い、前記複数のスレーブコンピュータの各々の担当クライアントテーブルにおけるクライアントのIPアドレス及びMACアドレスの追加・削除を行い、前記複数のスレーブコンピュータの負荷が均等になるように再配置を行うことを特徴とする、請求項22に記載のクラスタ制御システム。
  24. 前記担当ノード決定処理部は、前記複数のスレーブコンピュータの各々に対して、コマンドとIPアドレスとMACアドレスとを含むデータを送信し、
    前記コマンドの種類は、追加・削除・全削除があり、
    前記複数のスレーブコンピュータの各々は、前記コマンドと前記IPアドレスと前記MACアドレスとを含むデータを受け取ると、前記コマンドに従い、前記担当クライアントテーブルに対して、前記IPアドレスと前記MACアドレスとの追加・削除・全削除を行い、追加コマンドの場合には前記IPアドレスと前記MACアドレスで指定されるクライアントに対してARP応答を送信し、前記コマンドに応じた処理が正常に終了したか否かを示す情報を前記マスタコンピュータに返すことを特徴とする、請求項21乃至23のいずれか1項に記載のクラスタ制御システム。
  25. 複数のクライアントとフロントネットワークを介して接続するとともに、該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータの各スレーブコンピュータが、
    前記複数のクライアントのいずれか1つから前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、自身が受け持つクライアントを示す担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在する場合にはARP応答を返し、それ以外の場合にはARP応答をしない工程と、
    前記担当クライアントテーブルにおけるクライアントの追加、変更又は削除を、バックエンドネットワークを介して接続されたマスタコンピュータによって行われる工程とを含むことを特徴とするクラスタ制御方法。
  26. 複数のクライアントとフロントネットワークを介して接続するとともに、該フロントネットワークに対して同一のIP(Internet Protocol)アドレスであるシングルIPアドレスを提示する複数のスレーブコンピュータの各スレーブコンピュータに、
    前記複数のクライアントのいずれか1つから前記シングルIPアドレスに対するARP(Address Resolution Protocol)要求が来たときに、自身が受け持つクライアントを示す担当クライアントテーブルを参照し、前記担当クライアントテーブルに前記ARP要求を出したクライアントが存在する場合にはARP応答を返し、それ以外の場合にはARP応答をしない処理と、
    前記担当クライアントテーブルにおけるクライアントの追加、変更又は削除を、バックエンドネットワークを介して接続されたマスタコンピュータによって行われる処理とを実行させることを特徴とするプログラム。
JP2010541330A 2008-12-03 2009-12-02 クラスタ制御システム、クラスタ制御方法、及びプログラム Active JP5381998B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010541330A JP5381998B2 (ja) 2008-12-03 2009-12-02 クラスタ制御システム、クラスタ制御方法、及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008308368 2008-12-03
JP2008308368 2008-12-03
JP2010541330A JP5381998B2 (ja) 2008-12-03 2009-12-02 クラスタ制御システム、クラスタ制御方法、及びプログラム
PCT/JP2009/070217 WO2010064644A1 (ja) 2008-12-03 2009-12-02 クラスタ制御システム、クラスタ制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2010064644A1 JPWO2010064644A1 (ja) 2012-05-10
JP5381998B2 true JP5381998B2 (ja) 2014-01-08

Family

ID=42233291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010541330A Active JP5381998B2 (ja) 2008-12-03 2009-12-02 クラスタ制御システム、クラスタ制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US8782160B2 (ja)
JP (1) JP5381998B2 (ja)
WO (1) WO2010064644A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101698397B1 (ko) * 2010-06-30 2017-02-01 삼성전자주식회사 무선통신시스템에서 주변 노드를 제어하기 위한 장치 및 방법
CA2753747C (en) * 2010-12-14 2019-08-13 International Business Machines Corporation Method for operating a node cluster system in a network and node cluster system
JP5772407B2 (ja) * 2011-09-02 2015-09-02 株式会社リコー 仲介装置、機器管理システムおよびプログラム
US8799641B1 (en) * 2011-12-16 2014-08-05 Amazon Technologies, Inc. Secure proxying using network intermediaries
KR101968512B1 (ko) * 2012-02-21 2019-04-12 삼성전자주식회사 Nfc를 이용한 멀티미디어 데이터 송수신 장치 및 방법
JP6157167B2 (ja) * 2013-03-25 2017-07-05 株式会社日立システムズ 負荷分散システムおよび負荷分散システムデータ共有方法ならびに負荷分散システムデータ共有プログラム
JP2014229088A (ja) * 2013-05-23 2014-12-08 ソニー株式会社 データ処理システム、データ処理装置および記憶媒体
CN103458013A (zh) * 2013-08-21 2013-12-18 成都云鹰科技有限公司 一种流媒体服务器集群负载均衡系统及均衡方法
JP2016158011A (ja) * 2015-02-23 2016-09-01 ルネサスエレクトロニクス株式会社 配信制御装置、データ配信システム、配信制御方法及びプログラム
CN105162873A (zh) * 2015-09-22 2015-12-16 浪潮(北京)电子信息产业有限公司 一种k1服务器的高可用方法及系统
CN108293001B (zh) * 2015-12-31 2020-10-23 华为技术有限公司 一种软件定义数据中心及其中的服务集群的部署方法
US11226841B2 (en) * 2016-03-22 2022-01-18 Mitsubishi Electric Corporation Information processing system, information processing device, and information processing method
JP6884600B2 (ja) 2017-03-02 2021-06-09 任天堂株式会社 無線通信システム、通信方法、情報処理装置、および、情報処理プログラム
JP6895273B2 (ja) 2017-03-02 2021-06-30 任天堂株式会社 情報処理装置、情報処理プログラム、無線通信システム、および、通信方法
JP6979740B2 (ja) 2017-03-02 2021-12-15 任天堂株式会社 無線通信システム、通信方法、情報処理装置、および、情報処理プログラム
US10496396B2 (en) * 2017-09-29 2019-12-03 Oracle International Corporation Scalable artificial intelligence driven configuration management
US10789065B2 (en) 2018-05-07 2020-09-29 Oracle lnternational Corporation Method for automatically selecting configuration clustering parameters
CN112100004A (zh) * 2020-08-12 2020-12-18 福建天泉教育科技有限公司 Redis集群节点的管理方法、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1127320A (ja) * 1997-07-03 1999-01-29 Fujitsu Ltd パケット中継制御方法,パケット中継装置およびプログラム記憶媒体
JP2002232446A (ja) * 2000-11-21 2002-08-16 Avaya Communication Israel Ltd ダイナミック・ロード・バランサ
JP2004080567A (ja) * 2002-08-21 2004-03-11 Matsushita Electric Ind Co Ltd ネットワーク端末装置とアドレス管理サーバ、及びそのネットワーク通信方法
JP2006106933A (ja) * 2004-10-01 2006-04-20 Fujitsu Ltd 負荷分散ネットワークシステム及び負荷分散用プログラム
JP2006259845A (ja) * 2005-03-15 2006-09-28 Toshiba Corp サーバ装置、サーバシステムおよびサーバシステムの負荷分散方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5894479A (en) * 1996-12-10 1999-04-13 Intel Corporation Providing address resolution information for self registration of clients on power-up or dial-in
AU2002222489A1 (en) * 2000-12-14 2002-06-24 Flash Networks Ltd. A system and a method for load balancing
US6971044B2 (en) * 2001-04-20 2005-11-29 Egenera, Inc. Service clusters and method in a processing system with failover capability
JP4046562B2 (ja) 2002-07-10 2008-02-13 富士通株式会社 負荷分散方法
US20040193716A1 (en) * 2003-03-31 2004-09-30 Mcconnell Daniel Raymond Client distribution through selective address resolution protocol reply
JP2005167425A (ja) 2003-11-28 2005-06-23 Toshiba Corp ネットワーク電話システム、このネットワーク電話システムの主装置及びネットワーク電話システムを利用した接続情報更新方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1127320A (ja) * 1997-07-03 1999-01-29 Fujitsu Ltd パケット中継制御方法,パケット中継装置およびプログラム記憶媒体
JP2002232446A (ja) * 2000-11-21 2002-08-16 Avaya Communication Israel Ltd ダイナミック・ロード・バランサ
JP2004080567A (ja) * 2002-08-21 2004-03-11 Matsushita Electric Ind Co Ltd ネットワーク端末装置とアドレス管理サーバ、及びそのネットワーク通信方法
JP2006106933A (ja) * 2004-10-01 2006-04-20 Fujitsu Ltd 負荷分散ネットワークシステム及び負荷分散用プログラム
JP2006259845A (ja) * 2005-03-15 2006-09-28 Toshiba Corp サーバ装置、サーバシステムおよびサーバシステムの負荷分散方法

Also Published As

Publication number Publication date
US8782160B2 (en) 2014-07-15
US20110231508A1 (en) 2011-09-22
WO2010064644A1 (ja) 2010-06-10
JPWO2010064644A1 (ja) 2012-05-10

Similar Documents

Publication Publication Date Title
JP5381998B2 (ja) クラスタ制御システム、クラスタ制御方法、及びプログラム
US8825867B2 (en) Two level packet distribution with stateless first level packet distribution to a group of servers and stateful second level packet distribution to a server within the group
CN107078969B (zh) 实现负载均衡的计算机设备、系统和方法
KR100984384B1 (ko) 클러스터 노드들을 권위적 도메인 네임 서버들로서사용하여 액티브 부하 조절을 하는 시스템, 네트워크 장치,방법, 및 컴퓨터 프로그램 생성물
US7353276B2 (en) Bi-directional affinity
CN102726021B (zh) 灵活的数据中心网络体系结构
CN102447624B (zh) 在服务器集群上实现负载均衡的方法、节点服务器及集群
CN102025630A (zh) 负载均衡方法及负载均衡系统
CN104394224A (zh) 一种负载均衡系统
US10530669B2 (en) Network service aware routers, and applications thereof
JP2011507426A (ja) 複数のアダプタにわたり複数の仮想ipアドレスを同時にサポートしているホストにおけるフェイルオーバのための方法、システム、およびプログラム
JP2013090072A (ja) サービス提供システム
WO2023207189A1 (zh) 负载均衡方法及系统、计算机存储介质、电子设备
CN109120556B (zh) 一种云主机访问对象存储服务器的方法及系统
JP5483029B2 (ja) クラスタシステムの結線作業の煩雑さを軽減するシステム及び方法
US8964596B1 (en) Network service aware routers, and applications thereof
JP2003234752A (ja) タグ変換を用いた負荷分散方法及びタグ変換装置、負荷分散制御装置
WO2014171413A1 (ja) 処理性能低下を回避するメッセージシステム
KR101382177B1 (ko) 동적 메시지 라우팅 시스템 및 방법
JP5872669B2 (ja) サーバ装置群およびネットワークシステム
CN116938693A (zh) 用户迁移的方法、装置、系统及存储介质
JP2008219644A (ja) パケット転送方法および制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130916

R150 Certificate of patent or registration of utility model

Ref document number: 5381998

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150