JP2004264911A - Computer node, cluster system, cluster control method, and cluster control program - Google Patents

Computer node, cluster system, cluster control method, and cluster control program Download PDF

Info

Publication number
JP2004264911A
JP2004264911A JP2003042104A JP2003042104A JP2004264911A JP 2004264911 A JP2004264911 A JP 2004264911A JP 2003042104 A JP2003042104 A JP 2003042104A JP 2003042104 A JP2003042104 A JP 2003042104A JP 2004264911 A JP2004264911 A JP 2004264911A
Authority
JP
Japan
Prior art keywords
node
address
real
virtual
packet
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.)
Granted
Application number
JP2003042104A
Other languages
Japanese (ja)
Other versions
JP4021780B2 (en
Inventor
Kazuhiro Suzuki
和宏 鈴木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003042104A priority Critical patent/JP4021780B2/en
Priority to PCT/JP2004/001882 priority patent/WO2004075070A1/en
Publication of JP2004264911A publication Critical patent/JP2004264911A/en
Priority to US11/134,822 priority patent/US7499451B2/en
Application granted granted Critical
Publication of JP4021780B2 publication Critical patent/JP4021780B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2521Translation architectures other than single NAT servers
    • H04L61/2525Translation at a client
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • 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
    • 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
    • H04L67/1034Reaction to server failures by a load balancer

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide computer nodes, a cluster system, a cluster control method, and a cluster control program capable of flexibly dealing with changes in arrangement such as computer node failure or the like by concealing the computer nodes within the cluster system for virtualization. <P>SOLUTION: The cluster system 1 which provides a plurality of virtual computer nodes to a client 5 comprises actual nodes 3a, 3b, 3c for running applications, and a coordinator node 2 for allocating a virtual IP address which is the IP address of a virtual computer node to an actual IP address which is the IP address of any of the actual nodes. The actual nodes 3a, 3b, 3c and the coordinator node 2 each store an IP control table as a lookup table for the virtual and actual IP addresses and carry out communications using virtual IP addresses on the basis of the IP control table. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワーク上の計算機をノードとし、複数のノードを1つのシステムとして動作させるクラスタシステムにおいて、ノード故障などの構成の変化に柔軟に対応できる計算機ノード、クラスタシステム、クラスタ管理方法、クラスタ管理プログラムに関するものである。
【0002】
【従来の技術】
クラスタシステムは、複数のノードを動作させて同一作業目的の処理を実行させることにより、単体のノードでは限界であった処理能力や信頼性を向上させるシステムである。一般的にクラスタシステムには、フェイルオーバー型とロードバランシング型とHPC(High Performance Computing)型の3通りが存在する。
【0003】
まず、フェイルオーバー型について説明する。フェイルオーバー型では、2台またはそれ以上のノードを動作させ、何らかの原因で動作不能になった場合に、バックアップとして待機させていた他のノードがその処理を引き継ぐことによってHA(High Availability)を向上させる。
【0004】
次に、ロードバランシング型について説明する。ロードバランシング型では、WWW(World Wide Web)やFTP(File Transfer Protocol)サーバなどのサーバを多重化して、スケーラビリティを実現する。具体的には、1つのロードバランサに対するIPレベルのセッションを、背後に控える複数のサービスノードに割り振ることにより、1つのノードの負荷分散を行う。割り振る方法にはいくつかあるが、順番に処理を割り振るラウンドロビン型やサービスノードやネットワークトラフィックの負荷を監視しながら負荷の少ないサービスノードに処理を割り振るダイナミックなロードバランサなどの構成を取ることが多い。
【0005】
次に、HPC型について説明する。HPC型では、複数のノードが強調動作することによって並列処理アプリケーションを高速に実行する。ノード間のインターコネクトのデータ転送帯域が狭いとそこがボトルネックとなって全体の処理能力が低下するために、ギガビットEthernetやMyrinetなどの高速なインターフェースで接続されることがある。並列処理アプリケーション作成にはMPI(Message Passing Interface)やPVM(Parallel Virtual Machine)等のライブラリがあり、これらは数値演算ライブラリと合わせて学術研究分野で利用されている。
【0006】
【発明が解決しようとする課題】
しかしながら、上述のクラスタシステムにおいて、ユーザアプリケーションはノード上で直接実行される。そのため、ノードの故障や構成の変化に柔軟に対応することができないという問題があり、例えば、ユーザアプリケーション毎にノード故障などの対応を行う必要があった。
【0007】
本発明は上述した課題に鑑みてなされたものであり、ユーザアプリケーションにクラスタシステム内のノードを直接操作させないように、ノードを隠蔽し仮想化することで、ユーザアプリケーションを変更すること無く、ノード故障などの構成の変化に柔軟に対応できる計算機ノード、クラスタシステム、クラスタ管理方法、クラスタ管理プログラムを提供することを目的とする。
【0008】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、クライアントに対して少なくとも1つの仮想的な計算機ノードを提供するクラスタシステムにおける物理的な計算機ノードであって、前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスと前記物理的な計算機ノードのIPアドレスである実IPアドレスとの対応表であるIP管理テーブルを記憶し、該IP管理テーブルに基づいて仮想IPアドレスを用いた通信を行うIP層と、他の計算機ノードと前記クライアントにネットワークを介して接続するネットワークデバイスとを備えてなるものである。
【0009】
このような構成によれば、クラスタシステムの計算機ノードが共通のIP管理テーブルを備えることにより、クラスタシステムにおいて仮想IPアドレスを用いた通信を行うことができる。
【0010】
また、本発明に係る計算機ノードにおいて、さらに、前記クライアントから指示されたアプリケーションを実行するアプリケーション実行部を備えたことを特徴とするものである。
【0011】
このような構成によれば、アプリケーションを実行する計算機ノードをクライアントから隠蔽し、仮想的な計算機ノードとして動的に割り当てることにより、高可用性のクラスタシステムを提供することができる。
【0012】
また、本発明に係る計算機ノードにおいて、前記IP層は、前記アプリケーション実行部から仮想IPアドレスを宛先とする第1のIPヘッダを付けた第1のパケットが入力された場合、宛先の仮想IPアドレスに対応する実IPアドレスを前記IP管理テーブルを用いて検索し、検索した実IPアドレスを宛先とする第2のIPヘッダを前記第1のパケットにさらに付けるカプセル化を施し、得られた第2のパケットを前記ネットワークデバイスへ出力するカプセル化部と、前記ネットワークデバイスから実IPアドレスを宛先とする第3のIPヘッダを付けた第3のパケットが入力された場合、前記第3のパケットから前記第3のIPヘッダを外して第4のパケットを生成し、さらに仮想IPアドレスを宛先とする第4のIPヘッダの仮想IPアドレスが自らの計算機ノードの仮想IPアドレスであれば、得られた前記第4のパケットを前記アプリケーション実行部へ出力するカプセル解除部とを備えたことを特徴とするものである。
【0013】
このような構成によれば、計算機ノードは、共通のIP管理テーブルに従って仮想IPアドレスと実IPアドレスを変換することにより、仮想的な計算機ノード間の通信を実現することができる。
【0014】
また、本発明に係る計算機ノードにおいて、さらに、前記ネットワークデバイスと同様に扱われ、自らの計算機ノードの仮想IPアドレスを宛先とするパケットを前記IP層へ出力するトンネルデバイスを備えたことを特徴とするものである。
【0015】
このような構成によれば、IP層は実IPアドレスを宛先とするパケットと同様に、仮想IPアドレスを宛先とするパケットの処理を行うことができる。
【0016】
また、本発明に係る計算機ノードにおいて、さらに、他の計算機ノードの負荷状態を検出する負荷状態検出部と、前記負荷状態に基づいて前記仮想IPアドレスに前記実IPアドレスを割り当て、前記IP管理テーブルを作成するノード割り当て部と、前記IP管理テーブルを他の計算機ノードへブロードキャストするブロードキャスト部とを備え、前記IP層は、前記クライアントに対して前記仮想IPアドレスを提供する仮想ノード提供部と、前記ネットワークデバイスから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを前記ネットワークデバイスへ出力するパケット割り振り部とを備えたことを特徴とするものである。
【0017】
このような構成によれば、クラスタシステムにおいて、他の計算機ノードの負荷状態や故障等に応じて仮想IPアドレスを実IPアドレスへ割り振ることにより、クライアントが計算機ノードのIPアドレスを変更することなく、計算機ノードの負荷の変化や計算機ノードの故障に柔軟に対応でき、高可用性を実現することができる。
【0018】
また、本発明に係る計算機ノードにおいて、前記パケット割り振り部は、前記ネットワークデバイスから前記仮想IPアドレスを宛先とする第1のIPヘッダを付けた第1のパケットが入力された場合、検索した実IPアドレスを宛先とする第2のIPヘッダを前記第1のパケットにさらに付けるカプセル化を施し、得られた第2のパケットを前記ネットワークデバイスへ出力することを特徴とするものである。
【0019】
このような構成によれば、計算機ノードは、共通のIP管理テーブルに従って仮想IPアドレスと実IPアドレスを変換することにより、仮想的な計算機ノードに対する通信を実現することができる。
【0020】
また、本発明に係る計算機ノードにおいて、前記仮想ノード提供部は、前記ネットワークデバイスに対して実IPアドレスと異なる少なくとも1つのIPアドレスを割り当てることを特徴とするものである。
【0021】
このような構成によれば、複数の仮想的なノードに対する要求を受け付け、物理的な計算機ノードに割り振ることができる。
【0022】
また、本発明に係る計算機ノードにおいて、前記ノード割り当て部は、1つの仮想IPアドレスに対して複数の実IPアドレスを割り当てることを特徴とするものである。
【0023】
このような構成によれば、仮想的な計算機ノードを用いてロードバランシング型のクラスタシステムを構成することが可能となる。
【0024】
また、本発明に係る計算機ノードにおいて、前記ノード割り振り部は、クライアントから前記1つの仮想IPアドレスに対して要求がある度に、要求を転送する実IPアドレスを変化させることを特徴とするものである。
【0025】
このような構成によれば、仮想的な計算機ノードに対してクライアントから大量のリクエストを受けた場合でも、物理的な計算機ノードの負荷を分散させることができる。
【0026】
また、本発明に係る計算機ノードにおいて、前記ブロードキャスト部は、前記IP管理テーブルのうち更新されたエントリだけを他の計算機ノードへブロードキャストすることを特徴とするものである。
【0027】
このような構成によれば、IP管理テーブルに関するデータの転送量を低減することができる。
【0028】
また、本発明に係る計算機ノードにおいて、前記ブロードキャスト部は、前記IP管理テーブルのうち他の計算機ノードから要求されたエントリだけを要求した計算機ノードだけへ送信することを特徴とするものである。
【0029】
このような構成によれば、IP管理テーブルに関するデータの転送量を低減することができる。
【0030】
また、本発明は、クライアントに対して複数の仮想的な計算機ノードのサービスを提供するクラスタシステムであって、アプリケーションを実行する計算機ノードである少なくとも1つの実ノードと、前記仮想IPアドレスを前記実ノードの実IPアドレスに割り当てる計算機ノードである少なくとも1つのコーディネータノードとを備えたことを特徴とするものである。
【0031】
このような構成によれば、コーディネータノードが実ノードの負荷状態や故障等に応じて仮想IPアドレスを実IPアドレスへ割り振ることにより、クライアントが実ノードのIPアドレスを変更することなく、ノードの負荷の変化やノードの故障に柔軟に対応でき、高可用性を実現することができる。
【0032】
また、本発明に係るクラスタシステムにおいて、前記コーディネータノードは、前記IP管理テーブルを前記実ノードへ送信し、該実ノードは、前記IP管理テーブルを受信したことを前記コーディネータノードへ送信することを特徴とするものである。
【0033】
このような構成によれば、コーディネータノードは、実ノードへ確実にIP管理テーブルを配信することができる。
【0034】
また、本発明は、クライアントに対して少なくとも1つの仮想的な計算機ノードを提供し、前記クライアントから指示されたアプリケーションを実際に実行する計算機ノードである少なくとも1つの実ノードの管理を行うクラスタ管理方法であって、前記実ノードと前記クライアントにネットワークを介して接続するステップと、前記クライアントに対して前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスを提供するステップと、前記実ノードの負荷状態を検出するステップと、前記負荷状態に基づいて前記仮想IPアドレスに対して前記実ノードのIPアドレスである実IPアドレスを割り当て、前記IP管理テーブルを作成するステップと、前記IP管理テーブルを前記実ノードへブロードキャストするステップと、ネットワークを介して前記クライアントから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを、ネットワークを介して宛先の実ノードへ出力するステップとを備えてなるものである。
【0035】
このような構成によれば、コーディネータノードが実ノードの負荷状態や故障等に応じて仮想IPアドレスを実IPアドレスへ割り振ることにより、クライアントが実ノードのIPアドレスを変更することなく、ノードの負荷の変化やノードの故障に柔軟に対応でき、高可用性を実現することができる。
【0036】
また、本発明は、クライアントに対して少なくとも1つの仮想的な計算機ノードを提供し、前記クライアントから指示されたアプリケーションを実際に実行する計算機ノードである少なくとも1つの実ノードの管理を行うために、コンピュータにより読取可能な媒体に記憶されたクラスタ管理プログラムであって、前記実ノードと前記クライアントにネットワークを介して接続するステップと、前記クライアントに対して前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスを提供するステップと、前記実ノードの負荷状態を検出するステップと、前記負荷状態に基づいて前記仮想IPアドレスに対して前記実ノードのIPアドレスである実IPアドレスを割り当て、前記IP管理テーブルを作成するステップと、前記IP管理テーブルを前記実ノードへブロードキャストするステップと、ネットワークを介して前記クライアントから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを、ネットワークを介して宛先の実ノードへ出力するステップとをコンピュータに実行させることを特徴とするものである。
【0037】
このような構成によれば、コーディネータノードが実ノードの負荷状態や故障等に応じて仮想IPアドレスを実IPアドレスへ割り振ることにより、クライアントが実ノードのIPアドレスを変更することなく、ノードの負荷の変化やノードの故障に柔軟に対応でき、高可用性を実現することができる。
なお、本発明において、上記コンピュータにより読取り可能な媒体は、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【0038】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
実施の形態1.
本実施の形態では、本発明のクラスタシステムをrsh(remote shell)モードで使う場合について説明する。rshモードでは、1つのアプリケーションの実行を1つの実ノードで行う。
【0039】
まず、本実施の形態に係るクラスタシステムの構成について、図1を用いて説明する。図1は、本実施の形態に係るクラスタシステムの構成の一例を示すブロック図である。図1に示すように、本実施の形態に係るクラスタシステム1は、コーディネータノード2と実ノード3a,3b,3cから構成される。各ノードは、ネットワーク4を介して互いに接続されると共に、ネットワーク4を介してクライアント5と接続される。
【0040】
本実施の形態に係るクラスタシステムでは、ユーザアプリケーションにクラスタ内のノードを直接操作することを禁止する。これは仮想的な計算機ノードである仮想ノードだけをクライアント5に提供し、実際にアプリケーションを実行する物理的な計算機ノードである実ノードを隠蔽することにより実現される。コーディネータノードとは、クライアントからの要求や実ノードの負荷状態等に応じて、実ノードに対して仮想ノードやアプリケーション実行の割り当てを行う計算機ノードである。実ノードは、コーディネータノードの割り当てに従って、実際にアプリケーションを実行する。アプリケーションが終了すると、実ノードは解放されて、仮想ノードとアプリケーション実行の割り当てが解除される。
【0041】
次に、本実施の形態に係るコーディネータノードの機能について、図2を用いて説明する。図2は、本実施の形態に係るコーディネータノードの機能の一例を示すブロック図である。図2に示すように、本実施の形態に係るコーディネータノード2は、階層モデルにおけるIP(Internet Protocol)層に注目して見た場合に大きく分けて、下位層に属するNIC21(Network Interface Card)と、IP層22と、上位層に属するコーディネータ23から構成される。NIC21は、ネットワークデバイス211から構成される。IP層22は、IP処理部221と仮想ノード提供部222とパケット割り振り部223から構成される。コーディネータ23は、負荷状態検出部231とノード割り当て部232とブロードキャスト部233から構成される。
【0042】
次に、本実施の形態に係るコーディネータノードの動作について説明する。負荷状態検出部231は、各実ノード3a,3b,3cの負荷状態を検出する。負荷状態とは、今現在、どんなプロセスがどれだけのCPUの使用率で動いているかを示すものである。
【0043】
ノード割り当て部232は、IP管理テーブルにおいて仮想的なIPアドレスである仮想IPアドレス(VIP:Virtual IP Address)を設定し、外部からノード割り当て要求を受けた場合に、各実ノード3a,3b,3cの負荷状態に基づいて、VIPを実ノードの実際のIPアドレスである実IPアドレス(RIP:Real IP Address)に割り当て、IP管理テーブルを生成する。また、必要に応じてIP管理テーブルを更新する。IP管理テーブルとは、VIPからRIPを検索するための対応表のことである。
【0044】
ブロードキャスト部233は、IP管理テーブルが更新された場合に、IP管理テーブルを全ての実ノード3a,3b,3cへブロードキャストする。ここでは、一例としてIP管理テーブルの更新時にのみIP管理テーブルをブロードキャストするとしたが、IP管理テーブルにおいて変更されたエントリのみをブロードキャストするようにしても良い。また、IP管理テーブルのうち、実ノードから要求されたエントリを送信するようにしても良い。さらに、コーディネータノード2が、IP管理テーブルが確実に届いているかを確認するために、実ノードはIP管理テーブルを受け取ったことを示す情報をコーディネータノード2へ返すようにしても良い。
【0045】
仮想ノード提供部222は、IP管理テーブルに設定されたVIPを仮想ノードとしてクライアント5へ提供する。クライアント5に対してVIPを見せるために、1つのネットワークデバイス211に複数のVIPを割り当てる。
【0046】
IP処理部221は、従来のIP層と同様、上位層または下位層から入力されたIPパケットのフィルタリングやルーティングを行う。ネットワークデバイス211からIPパケットが入力された場合、IPパケットが自ノード宛ならば上位層に渡し、そうでなければ適切なネットワークへ転送するために再びネットワークデバイス211へ出力する。反対に、上位層からIPパケットが入力された場合、同じく適切なネットワークへ送信するためにネットワークデバイス211へ出力する。また、本発明のIP処理部221は、さらにVIPヘッダを持つIPパケットがネットワークデバイス211から入力された場合、パケット割り振り部223へ出力する。ここで、RIPを宛先とするIPヘッダをRIPヘッダ、VIPを宛先とするIPヘッダをVIPヘッダと呼ぶ。
【0047】
パケット割り振り部223は、仮想ノード提供部222により提供されたVIP宛に到達したIPパケットの処理を行う。まず、パケット割り振り部223は、IP処理部221からVIPヘッダを持つIPパケットが入力された場合、IP管理テーブルを用いてVIPからRIPを検索し、実際にパケットを送信する宛先の実ノードのRIPを得る。次に、パケット割り振り部223は、図3(a)に示すように、VIPヘッダを持つIPパケットにさらにRIPヘッダを付けることによりカプセル化する。カプセル化したIPパケットは、IP処理部221へ出力され、ネットワークデバイス211を介して外部のRIP宛に送信される。
【0048】
ネットワークデバイス211は、外部のクライアント5と各ノードへネットワーク4を介して接続されている。外部から受信したパケットをIP処理部221へ出力するとともに、IP処理部221から入力されたパケットを外部へ送信する。
【0049】
次に、IP層であるIP処理部221とパケット割り振り部223の実装例について説明する。まず、仮想ノード提供部222の実装例について説明する。ここではIPエイリアスと呼ばれる機構を使う。IPエイリアスはLinuxカーネルで標準サポートされており、コマンド「# ifconfig eth0:0 192.168.1.100」によって他のIPアドレスを割り当てることができる。“:”以降の数字を変更すれば複数のIPアドレスを割り当てることも可能である。この機能を用いてVIPを割り当てる。
【0050】
次に、IP処理部221とパケット割り振り部223の実装例について説明する。図4は、IP層の実装の一例を示すブロック図である。Linuxカーネル2.4にはパケットフィルタリングの機構が組み込まれている。これはnetfilterと呼ばれ、カーネル内でのIPパケット処理を行うコードの拡張性を提供するためのフレームワークである。ここではLinuxのIP層におけるnetfilterの機能を用いてIP処理部221を実現する。netfilter7は、下位層8と上位層9に接続されている。
【0051】
ここで、従来のnetfilterの具体的な動作について説明する。下位層8が受信したパケットは、NF_IP_PRE_ROUTING71を介してrouting72に送られ、他のノードへ転送するパケットであれば、NF_IP_FORWARD74へ送られ、そうでなければ、NF_IP_LOCAL_IN73へ送られる。NF_IP_FORWARD74へ送られたIPパケットは、NF_IP_POST_ROUTING77を介して下位層8へ送られ、他のノードへ送信される。一方、NF_IP_LOCAL_IN73へ送られたパケットは上位層9へ送られる。
【0052】
上位層9からのIPパケットは、NF_IP_LOCAL_OUT75を介してrouting76に送られ、さらにNF_IP_POST_ROUTING77を介して下位層8へ送られ、他のノードへ送信される。以上のnetfilter7により、IP処理部221は実現される。
【0053】
また、パケット割り振り部223は、図4で説明したnetfilterの機能を拡張することにより実現することができる。netfilter7は、NF_IP_PRE_ROUTING71,NF_IP_LOCAL_IN73,NF_IP_FORWARD74,NF_IP_LOCAL_OUT75,NF_IP_POST_ROUTING77の部分でそれぞれフック関数を呼び出す仕組みを提供する。これらには関数を登録するためのリストが用意され、「intnf_register_hook(struct nf_hook_ops*reg)」のインターフェースによって登録することができ、「int nf_unregister_hook(struct nf_hook_ops*reg)」のインターフェースによって削除することができる。ここで、struct nf_hook_ops型の構造体はフック関数を登録するためのものである。本実施の形態では、NF_IP_LOCAL_IN73にパケット割り振り部223の動作をフック関数として登録することにより、パケット割り振り部223を実現することができる。
【0054】
また、パケット割り振り部223におけるカプセル化はIPトンネリング機能を応用して実装することができる。RIP宛のIPパケットのプロトコルはIPPROTO IPIPに設定する。これはIPトンネリングプロトコルと呼ばれ、パケットがカプセル化されていることを示すためのものである。
【0055】
次に、本実施の形態に係る実ノードの機能について、図5を用いて説明する。図5は、本実施の形態に係る実ノードの機能の一例を示すブロック図である。図3に示すように、本実施の形態に係る実ノード3a,3b,3cは、階層モデルにおけるIP層に注目して見た場合に大きく分けて、下位層に属するNIC31と、IP層32と、上位層に属するアプリケーション実行部33から構成される。NIC31は、ネットワークデバイス311とトンネルデバイス312から構成される。IP層32は、IP処理部321とカプセル解除部322とカプセル化部323から構成される。
【0056】
次に、本実施の形態に係る実ノードの動作について説明する。アプリケーション実行部31はアプリケーションの実行ファイルを備えており、コーディネータノード2を介してクライアント5から受信したパケットの内容に従ってアプリケーションの実行を行い、実行結果をパケットとしてIP層へ渡す。この時、クライアント5に対して実行結果を送信する場合は通常通りパケットにクライアント宛のヘッダを付加し、他の実ノードと通信を行う場合はパケットにVIPヘッダを付加する。
【0057】
IP処理部321は、従来のIP層やIP処理部221と同様、上位層または下位層から入力されたIPパケットのフィルタリングやルーティングを行う。本発明のIP処理部321は、さらに、下位層からRIPヘッダを持つIPパケットが入力された場合、カプセル解除部322へ出力する。また、上位層からVIPヘッダを持つIPパケットが入力された場合、カプセル化部323へ出力する。
【0058】
カプセル解除部322は、IP処理部321からRIPヘッダを持つIPパケットが入力されると、図3(b)に示すように、IPパケットからRIPヘッダを外す。この時、カプセル化されたIPパケットがIPトンネリングプロトコルであるために、VIPヘッダを持つIPパケットを、IP処理部321を介してトンネルデバイス312へ出力する。
【0059】
カプセル化部323は、IP処理部321からVIPヘッダを持つIPパケットが入力されると、コーディネータノード2からブロードキャストされたIP管理テーブルを用いてVIPからRIPを検索し、実際にパケットを送信する宛先の実ノードのRIPを得る。次に、カプセル化部323は、図3(a)に示すように、VIPヘッダを持つIPパケットにさらにRIPヘッダを付けることによりカプセル化する。カプセル化したIPパケットは、IP処理部321とネットワークデバイス311を介してRIP宛に送信される。
【0060】
ネットワークデバイス311は、ネットワークデバイス211と同様であり、外部のクライアント5と各ノードへネットワーク4を介して接続されている。外部から受信したパケットをIP処理部321へ出力するとともに、IP処理部321から入力されたパケットを外部へ送信する。
【0061】
トンネルデバイス312は、IP処理部321からVIPヘッダを持つIPパケットが入力されると、そのままIP処理部321へ出力する。カプセル解除されたIPパケットの宛先はVIPであるため、自ノードのトンネルデバイス312が受け取って、再びIP処理部321へ入力される。IP処理部321は、トンネルデバイス312からのVIPヘッダを持つIPパケットをアプリケーション実行部33へ出力する。
【0062】
ここで、IP層であるIP処理部321とカプセル解除部322とカプセル化部323の実装例について説明する。IP処理部221と同様、LinuxのIP層におけるnetfilterの機能を用いてIP処理部321を実現し、さらに、NF_IP_LOCAL_IN73にカプセル解除部322の動作をフック関数として登録し、NF_IP_LOCAL_OUT75にカプセル化部323の動作をフック関数として登録することにより、カプセル解除部322とカプセル化部323を実現することができる。
【0063】
また、カプセル解除部322とカプセル化部323はIPトンネリング機能を応用して実装することができる。IPトンネリングによってIPパケットをIPヘッダでカプセル化することによって、カプセル化されたパケットに関わらず正しい転送先に送出することができる。ここでRIP宛のIPパケットのプロトコルはIPPROTO_IPIPに設定する。
【0064】
IPトンネリングではNAT(Network Address Translation)等のアドレス変換と異なり、クライアント5からのリクエストに対して直接応答を返すことができる。以上のように、トンネルデバイス312を全ての実ノード3a,3b,3cに実装し、コーディネータノード2と全ての実ノード3a,3b,3cが同じIP管理テーブルを備えることで、VIPレベルでの通信を実現することができ、実ノード間通信が可能となる。
【0065】
次に、rshモードの動作について、図6を用いて説明する。図6は、本実施の形態に係るクラスタシステムのrshモードにおける動作の一例を示すシーケンス図である。rshモードでは一般的なUNIXコマンドであるrshと同様に、コマンド「% rsh vnode application [args...]」によってクラスタシステム1上でアプリケーションを実行することができる。ここでvnodeは仮想ノードを示している。ここでは、説明のため、実ノード3aが持つRIPをRIP#a、実ノード3bが持つRIPをRIP#b、実ノード3cが持つRIPをRIP#cとする。
【0066】
まず、ユーザは、クライアント5を用いてrshコマンドを入力し、宛先を指定する。ここでは例えばVIP#1を宛先として指定する。これにより、ノード割り当て要求が行われる(S101)。ノード割り当て要求を受けたコーディネータノード2は、各実ノード3a,3b,3cの負荷状態に応じて、VIP#1に例えばRIP#aを割り当てる(S102)。実ノード3aは、アプリケーションの実行が可能な状態であれば、そのことを示す情報をコーディネータノード2へ返す(S103)。次に、コーディネータノード2は、図7に示すIP管理テーブルを生成し、各実ノード3a,3b,3cへブロードキャストすると共に、ノード割り当てが成功したことを示すノード割り当て完了通知をクライアント5へ返す(S104)。
【0067】
ノード割り当て完了通知を受信したクライアント5は、ジョブをVIP#1宛に投入する(S105)。ジョブはコーディネータノード2を介して実ノード3aへ渡される(S106)。実ノード3aは、ジョブであるアプリケーションの実行を行い、その実行結果をクライアント5へ返す(S107)。また、実ノード3aは、ジョブが終了したことを示す情報をコーディネータノード2へ返す(S108)。ジョブの終了を検出したコーディネータノード2は、IP管理テーブルのVIP#1とRIP#aのエントリを削除し、その結果をブロードキャストすることによりノードの解放を行う(S109)。実ノード3aは、ノードの解放を確認したことを示す情報をコーディネータノード2へ返す(S110)。
【0068】
以上のように、コーディネータノード2が実ノードの負荷状態や故障等に応じてVIPをRIPへ割り振ることにより、ノードの負荷の変化やノードの故障に柔軟に対応でき、高可用性を実現することができる。例えば、ノード故障が発生した場合でも、VIPとRIPの割り当てを自動的に変更するだけで復帰することができる。
【0069】
実施の形態2.
本実施の形態では、図1で説明した本発明のクラスタシステムをHPCモードで使う場合について説明する。HPCモードでは、複数のアプリケーションの実行を複数の実ノードで分担して行う。一般にHPC型のアプリケーションではノード間通信が行われる。本実施の形態では、コーディネータノード2がクライアント5に対して複数の仮想ノードを提供し、実ノード間で通信を行うことにより、HPC型のアプリケーションが動作可能となる。
【0070】
以下、HPCモードの動作について、図8を用いて説明する。図8は、本実施の形態に係るクラスタシステムのHPCモードにおける動作の一例を示すシーケンス図である。ここでは、説明のため、実ノード3aが持つRIPをRIP#a、実ノード3bが持つRIPをRIP#b、実ノード3cが持つRIPをRIP#cとする。
【0071】
まず、ユーザは、クライアント5を用いて宛先を指定する。ここでは例えばVIP#1とVIP#2を宛先として指定する。これにより、ノード割り当て要求が行われる(S201)。ノード割り当て要求を受けたコーディネータノード2は、各実ノード3a,3b,3cの負荷状態に応じて、VIP#1に例えばRIP#aを割り当てる(S202)。実ノード3aは、アプリケーションの実行が可能な状態であれば、そのことを示す情報をコーディネータノード2へ返す(S203)。同様に、コーディネータノード2は、VIP#2に例えばRIP#cを割り当てる(S202)。実ノード3cは、アプリケーションの実行が可能な状態であれば、そのことを示す情報をコーディネータノード2へ返す(S203)。処理S202と処理S203は、要求されたノード数分繰り返される。次に、コーディネータノード2は、図9に示すIP管理テーブルを生成し、各実ノード3a,3b,3cへブロードキャストすると共に、ノード割り当てが成功したことを示すノード割り当て完了通知をクライアント5へ返す(S204)。
【0072】
ノード割り当て完了通知を受信したクライアント5は、ジョブをVIP#1宛とVIP#2宛に投入する(S205)。ここで、例えばVIP#1で得られた実行結果をVIP#2で用いて実行するというジョブをVIP#1宛とVIP#2宛に与えたとする。VIP#1宛のジョブはコーディネータノード2を介して実ノード3aへ渡され、VIP#2宛のジョブはコーディネータノード2を介して実ノード3cへ渡される(S206)。実ノード3aは、ジョブであるアプリケーションの実行を行い、その実行結果を実ノード3cへ渡す。実ノード3cは、実ノード3aの実行結果を用いてアプリケーションの実行を行い、その実行結果をクライアント5へ返す(S207)。また、実ノード3aと実ノード3cは、ジョブが終了したことを示す情報をコーディネータノード2へ返す(S208)。ジョブの終了を検出したコーディネータノード2は、IP管理テーブルのVIP#1とRIP#aのエントリ、VIP#2とRIP#cのエントリを削除し、その結果をブロードキャストすることによりノードの解放を行う(S209)。実ノード3aと実ノード3cは、ノードの解放を確認したことを示す情報をコーディネータノード2へ返す(S210)。
【0073】
以上のように、HPC型のアプリケーションを動作させる場合において、実ノードが故障した場合でも、故障した実ノードが行っていた処理をコーディネータノード2が自動的に適切な実ノードへ割り振ることにより、処理を継続させることができるため、ユーザ側で対応する必要がない。
【0074】
実施の形態3.
本実施の形態では、本発明のクラスタシステムをWWWモードで使う場合について説明する。例えばWWWサーバのような複数のサーバに対してクライアントから大量のリクエストが来るような場合に、1つのVIPに複数のRIPを割り当てることでIPレベルの負荷分散を行うことができる。このような動作モードをWWWモードと呼び、このWWWモードでは1つのサービスの実行を複数の実ノードで分担して行う。本実施の形態では、コーディネータノード2が1つの仮想ノードを複数の実ノードに割り当て、クライアント5からの仮想ノードに対するリクエストを複数の実ノードへ分散することにより、ロードバランシング型のクラスタシステムを構成することが可能となる。
【0075】
以下、WWWモードの動作について、図10〜図14を用いて説明する。まず、本実施の形態に係るクラスタシステムの構成について、図10を用いて説明する。図10は、本実施の形態に係るクラスタシステムの構成の他の一例を示すブロック図である。図10において、図1と同一符号は図1に示された対象と同様のものであり、ここでの説明を省略する。WWWモードでは、オペレータがWWWサーバの起動と停止を行う必要があるため、図10では図1の構成にオペレータ6を加える。オペレータ6はコーディネータノード2を操作する。
【0076】
次に、WWWモードにおけるサーバ起動の動作について、図11を用いて説明する。図11は、本実施の形態に係るクラスタシステムのWWWモードにおけるサーバ起動の動作の一例を示すシーケンス図である。ここでは、説明のため、実ノード3aが持つRIPをRIP#a、実ノード3bが持つRIPをRIP#b、実ノード3cが持つRIPをRIP#cとする。
【0077】
まず事前に、オペレータ6は、立ち上げるべきWWWサーバの数を指定する。ここでは例えば3台と指定する。これにより、ノード割り当て要求が行われる(S301)。ノード割り当て要求を受けたコーディネータノード2は、各実ノード3a,3b,3cの負荷状態に応じて、VIP#1に例えばRIP#aとRIP#bとRIP#cを割り当てる(S302)。実ノード3a,3b,3cは、それぞれサービスの実行が可能な状態であれば、そのことを示す情報をコーディネータノード2へ返す(S303)。次に、コーディネータノード2は、図12に示すIP管理テーブルを生成し、各実ノード3a,3b,3cへブロードキャストすると共に、ノード割り当てが成功したことを示すノード割り当て完了通知をオペレータ6へ返す(S304)。
【0078】
ノード割り当て完了通知を受信したオペレータ6は、サーバ起動要求を行う(S305)。サーバ起動要求を受けたコーディネータノード2は、各実ノード3a,3b,3cに対してサーバ起動を指示する(S306)。各実ノード3a,3b,3cは、自ノードを起動させると共に、起動したことを示す情報をコーディネータノード2へ返す(S307)。コーディネータノード2は、サーバ起動が完了したことを示すサーバ起動完了通知をオペレータ6へ返す(S308)。以上のように、WWWモードにおけるサーバ起動の動作を行うことで、事前にVIP#1にはRIP#aとRIP#bとRIP#cが割り当てられる。
【0079】
次に、WWWモードにおけるサービス提供時の動作について、図13を用いて説明する。図13は、本実施の形態に係るクラスタシステムのWWWモードにおけるサービス提供時の動作の一例を示すシーケンス図である。まず、クライアント5は、HTTP(Hypertext Transfer Protocol)リクエストをVIP#1宛に投入する(S401)。VIP#1宛のリクエストはコーディネータノード2を介して実ノード3aへ割り振られる(S402)。実ノード3aは、リクエストに対するHTTPレスポンスをクライアント5へ返す(S403)。以上がWWWモードにおけるサービス提供時の動作である。ここではVIP#1宛のリクエストを実ノード3aへ割り振った例について説明したが、コーディネータノード2のパケット割り振り部223は、クライアント5からのリクエストを受ける度に、リクエストを転送する実ノードを変化させる。
【0080】
次に、WWWモードにおけるサーバ停止の動作について、図14を用いて説明する。図14は、本実施の形態に係るクラスタシステムのWWWモードにおけるサーバ停止の動作の一例を示すシーケンス図である。
【0081】
まず、オペレータ6は、サーバ停止要求を行う(S501)。サーバ停止要求を受けたコーディネータノード2は、各実ノード3a,3b,3cに対してサーバ停止を指示する(S502)。各実ノード3a,3b,3cは、自ノードを停止させると共に、停止したことを示す情報をコーディネータノード2へ返す(S503)。コーディネータノード2は、サーバ停止が完了したことを示すサーバ停止完了通知をオペレータ6へ返す(S504)。
【0082】
サーバ停止完了通知を受信したオペレータ6は、ノード解放要求を行う(S505)。ノード解放要求を受けたコーディネータノード2は、IP管理テーブルのVIP#1とRIP#aのエントリ、VIP#1とRIP#bのエントリ、VIP#1とRIP#cのエントリを削除し、その結果をブロードキャストすることによりノードの解放を行う(S506)。各実ノード3a,3b,3cは、ノードの解放を確認したことを示す情報をコーディネータノード2へ返す(S507)。コーディネータノード2は、ノード解放が終了したことを示すノード解放終了通知をオペレータ6へ返す(S508)。以上により、WWWモードにおけるサーバ停止の動作は終了する。
【0083】
以上のように、WWWモードのサービス提供時において、クライアント5から大量のリクエストを受けた場合でも、コーディネータノード2が実ノードの負荷状態や故障等に応じて、リクエストを適切な実ノードへ割り振ることができる。
【0084】
以上、実施の形態1から実施の形態3において本発明のクラスタシステムについて説明したが、図3で説明した本発明のクラスタシステムの構成において、コーディネータノード2が状況に応じたIP管理テーブルを作成することにより、実施の形態1で説明したrshモード、実施の形態2で説明したHPCモード、実施の形態3で説明したWWWモードからなる3つのモードをいずれかに切り替えて動作させたり、3つのモードを組み合わせて動作させるようにすることも可能である。また、実ノードのいずれかに仮想ノード提供部222とパケット割り振り部223とコーディネータ23の機能を備えることにより、コーディネータノード2として機能することが可能となるため、コーディネータノード2が故障した場合にも対応することができる。これによりさらに高信頼性を実現することができる。
【0085】
(付記1)クライアントに対して少なくとも1つの仮想的な計算機ノードを提供するクラスタシステムにおける物理的な計算機ノードであって、
前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスと前記物理的な計算機ノードのIPアドレスである実IPアドレスとの対応表であるIP管理テーブルを記憶し、該IP管理テーブルに基づいて仮想IPアドレスを用いた通信を行うIP層と、
他の計算機ノードと前記クライアントにネットワークを介して接続するネットワークデバイスと、
を備えてなる計算機ノード。
(付記2)付記1に記載の計算機ノードにおいて、
さらに、
前記クライアントから指示されたアプリケーションを実行するアプリケーション実行部を備えたことを特徴とする計算機ノード。
(付記3)付記2に記載の計算機ノードにおいて、
前記IP層は、
前記アプリケーション実行部から仮想IPアドレスを宛先とする第1のIPヘッダを付けた第1のパケットが入力された場合、宛先の仮想IPアドレスに対応する実IPアドレスを前記IP管理テーブルを用いて検索し、検索した実IPアドレスを宛先とする第2のIPヘッダを前記第1のパケットにさらに付けるカプセル化を施し、得られた第2のパケットを前記ネットワークデバイスへ出力するカプセル化部と、
前記ネットワークデバイスから実IPアドレスを宛先とする第3のIPヘッダを付けた第3のパケットが入力された場合、前記第3のパケットから前記第3のIPヘッダを外して第4のパケットを生成し、さらに仮想IPアドレスを宛先とする第4のIPヘッダの仮想IPアドレスが自らの計算機ノードの仮想IPアドレスであれば、得られた前記第4のパケットを前記アプリケーション実行部へ出力するカプセル解除部と、
を備えたことを特徴とする計算機ノード。
(付記4)付記3に記載の計算機ノードにおいて、
さらに、
前記ネットワークデバイスと同様に扱われ、自らの計算機ノードの仮想IPアドレスを宛先とするパケットを前記IP層へ出力するトンネルデバイスを備えたことを特徴とする計算機ノード。
(付記5)付記1に記載の計算機ノードにおいて、
さらに、
他の計算機ノードの負荷状態を検出する負荷状態検出部と、
前記負荷状態に基づいて前記仮想IPアドレスに前記実IPアドレスを割り当て、前記IP管理テーブルを作成するノード割り当て部と、
前記IP管理テーブルを他の計算機ノードへブロードキャストするブロードキャスト部とを備え、
前記IP層は、
前記クライアントに対して前記仮想IPアドレスを提供する仮想ノード提供部と、
前記ネットワークデバイスから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを前記ネットワークデバイスへ出力するパケット割り振り部と、
を備えたことを特徴とする計算機ノード。
(付記6)付記5に記載の計算機ノードにおいて、
前記パケット割り振り部は、前記ネットワークデバイスから前記仮想IPアドレスを宛先とする第1のIPヘッダを付けた第1のパケットが入力された場合、検索した実IPアドレスを宛先とする第2のIPヘッダを前記第1のパケットにさらに付けるカプセル化を施し、得られた第2のパケットを前記ネットワークデバイスへ出力することを特徴とする計算機ノード。
(付記7)付記5または付記6に記載の計算機ノードにおいて、
前記仮想ノード提供部は、前記ネットワークデバイスに対して実IPアドレスと異なる少なくとも1つのIPアドレスを割り当てることを特徴とする計算機ノード。
(付記8)付記5乃至付記7のいずれかに記載の計算機ノードにおいて、
前記ノード割り当て部は、1つの仮想IPアドレスに対して複数の実IPアドレスを割り当てることを特徴とする計算機ノード。
(付記9)付記8に記載の計算機ノードにおいて、
前記ノード割り振り部は、クライアントから前記1つの仮想IPアドレスに対して要求がある度に、要求を転送する実IPアドレスを変化させることを特徴とする計算機ノード。
(付記10)付記5乃至付記9のいずれかに記載の計算機ノードにおいて、
前記ブロードキャスト部は、前記IP管理テーブルのうち更新されたエントリだけを他の計算機ノードへブロードキャストすることを特徴とする計算機ノード。
(付記11)付記5乃至付記10のいずれかに記載の計算機ノードにおいて、
前記ブロードキャスト部は、前記IP管理テーブルのうち他の計算機ノードから要求されたエントリだけを要求した計算機ノードだけへ送信することを特徴とする計算機ノード。
(付記12)クライアントに対して複数の仮想的な計算機ノードを提供するクラスタシステムであって、
付記2乃至付記4のいずれかに記載の計算機ノードであり、アプリケーションを実行する計算機ノードである少なくとも1つの実ノードと、
付記5乃至付記11のいずれかに記載の計算機ノードであり、前記仮想IPアドレスを前記実ノードの実IPアドレスに割り当てる計算機ノードである少なくとも1つのコーディネータノードと、
を備えたことを特徴とするクラスタシステム。
(付記13)付記12に記載のクラスタシステムにおいて、
前記コーディネータノードは、前記IP管理テーブルを前記実ノードへ送信し、
該実ノードは、前記IP管理テーブルを受信したことを前記コーディネータノードへ送信することを特徴とするクラスタシステム。
(付記14)クライアントに対して少なくとも1つの仮想的な計算機ノードを提供し、前記クライアントから指示されたアプリケーションを実際に実行する計算機ノードである少なくとも1つの実ノードの管理を行うクラスタ管理方法であって、
前記実ノードと前記クライアントにネットワークを介して接続するステップと、
前記クライアントに対して前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスを提供するステップと、
前記実ノードの負荷状態を検出するステップと、
前記負荷状態に基づいて前記仮想IPアドレスに対して前記実ノードのIPアドレスである実IPアドレスを割り当て、前記IP管理テーブルを作成するステップと、
前記IP管理テーブルを前記実ノードへブロードキャストするステップと、
ネットワークを介して前記クライアントから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを、ネットワークを介して宛先の実ノードへ出力するステップと、
を備えてなるクラスタ管理方法。
(付記15)クライアントに対して少なくとも1つの仮想的な計算機ノードを提供し、前記クライアントから指示されたアプリケーションを実際に実行する計算機ノードである少なくとも1つの実ノードの管理を行うために、コンピュータにより読取可能な媒体に記憶されたクラスタ管理プログラムであって、
前記実ノードと前記クライアントにネットワークを介して接続するステップと、
前記クライアントに対して前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスを提供するステップと、
前記実ノードの負荷状態を検出するステップと、
前記負荷状態に基づいて前記仮想IPアドレスに対して前記実ノードのIPアドレスである実IPアドレスを割り当て、前記IP管理テーブルを作成するステップと、
前記IP管理テーブルを前記実ノードへブロードキャストするステップと、
ネットワークを介して前記クライアントから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを、ネットワークを介して宛先の実ノードへ出力するステップと、
をコンピュータに実行させることを特徴とするクラスタ管理プログラム。
【0086】
【発明の効果】
以上に詳述したように本発明によれば、コーディネータノードが実ノードの負荷状態や故障等に応じてVIPをRIPへ割り振ることにより、クライアント側でノードの変更の処理を行うことなく、ノードの負荷の変化やノードの故障に柔軟に対応でき、高可用性を実現することができる。
【図面の簡単な説明】
【図1】本実施の形態に係るクラスタシステムの構成の一例を示すブロック図である。
【図2】本実施の形態に係るコーディネータノードの機能の一例を示すブロック図である。
【図3】カプセル化とカプセル化解除の動作の一例を示す図である。
【図4】IP層の実装の一例を示すブロック図である。
【図5】本実施の形態に係る実ノードの機能の一例を示すブロック図である。
【図6】本実施の形態に係るクラスタシステムのrshモードにおける動作の一例を示すシーケンス図である。
【図7】rshモードにおけるIP管理テーブルの一例を示す図である。
【図8】本実施の形態に係るクラスタシステムのHPCモードにおける動作の一例を示すシーケンス図である。
【図9】HPCモードにおけるIP管理テーブルの一例を示す図である。
【図10】本実施の形態に係るクラスタシステムの構成の他の一例を示すブロック図である。
【図11】本実施の形態に係るクラスタシステムのWWWモードにおけるサーバ起動の動作の一例を示すシーケンス図である。
【図12】WWWモードにおけるIP管理テーブルの一例を示す図である。
【図13】本実施の形態に係るクラスタシステムのWWWモードにおけるサービス提供時の動作の一例を示すシーケンス図である。
【図14】本実施の形態に係るクラスタシステムのWWWモードにおけるサーバ停止の動作の一例を示すシーケンス図である。
【符号の説明】
1 クラスタシステム、2 コーディネータノード、21 NIC、211 ネットワークデバイス、22 IP層、221 IP処理部、222 仮想ノード提供部、223 パケット割り振り部、23 コーディネータ、231 負荷状態検出部、232 ノード割り当て部、233 ブロードキャスト部、3a,3b,3c 実ノード、31 NIC、311 ネットワークデバイス、312トンネルデバイス、32 IP層、321 IP処理部、322 カプセル解除部、323 カプセル化部、33 アプリケーション実行部、4 ネットワーク、5 クライアント、6 オペレータ、7 netfilter、71 NF_IP_PRE_ROUTING、72 routing、73 NF_IP_LOCAL_IN、74 NF_IP_FORWARD、75 NF_IP_LOCAL_OUT、76 routing、77 NF_IP_POST_ROUTING、8 下位層、9 上位層。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention provides a computer node, a cluster system, a cluster management method, and a cluster management that can flexibly cope with a change in configuration such as a node failure in a cluster system in which computers on a network are used as nodes and a plurality of nodes operate as one system. It is about the program.
[0002]
[Prior art]
A cluster system is a system in which a plurality of nodes are operated to execute processing for the same work purpose, thereby improving processing capacity and reliability, which were limits in a single node. In general, there are three types of cluster systems: a failover type, a load balancing type, and an HPC (High Performance Computing) type.
[0003]
First, the failover type will be described. In the failover type, two or more nodes are operated, and in the event that operation becomes inoperable for some reason, another node that has been waiting as a backup takes over the processing, thereby improving HA (High Availability). Let it.
[0004]
Next, the load balancing type will be described. In the load balancing type, scalability is realized by multiplexing servers such as WWW (World Wide Web) and FTP (File Transfer Protocol) servers. More specifically, load distribution of one node is performed by allocating an IP-level session for one load balancer to a plurality of service nodes located behind. There are several allocation methods, such as a round robin type that allocates processing in order or a dynamic load balancer that allocates processing to service nodes with low load while monitoring the load of service nodes and network traffic. .
[0005]
Next, the HPC type will be described. In the HPC type, a parallel processing application is executed at high speed by emphasizing a plurality of nodes. If the data transfer band of the interconnect between nodes is narrow, it becomes a bottleneck and the overall processing performance is reduced. Therefore, the nodes may be connected by a high-speed interface such as Gigabit Ethernet or Myrinet. For creating a parallel processing application, there are libraries such as an MPI (Message Passing Interface) and a PVM (Parallel Virtual Machine), and these are used in the academic research field together with a numerical operation library.
[0006]
[Problems to be solved by the invention]
However, in the above-described cluster system, the user application is executed directly on the node. For this reason, there is a problem that it is not possible to flexibly respond to a node failure or a change in configuration. For example, it is necessary to deal with a node failure or the like for each user application.
[0007]
The present invention has been made in view of the above-described problem, and conceals and virtualizes a node so that a user application does not directly operate a node in a cluster system. It is an object of the present invention to provide a computer node, a cluster system, a cluster management method, and a cluster management program that can flexibly respond to a change in the configuration such as.
[0008]
[Means for Solving the Problems]
In order to solve the above-described problem, the present invention provides a physical computer node in a cluster system that provides at least one virtual computer node to a client, wherein the physical computer node uses an IP address of the virtual computer node. An IP layer that stores an IP management table that is a correspondence table between a certain virtual IP address and a real IP address that is an IP address of the physical computer node, and performs communication using a virtual IP address based on the IP management table And a network device for connecting to another computer node and the client via a network.
[0009]
According to such a configuration, since the computer nodes of the cluster system have a common IP management table, communication using a virtual IP address can be performed in the cluster system.
[0010]
Further, in the computer node according to the present invention, the computer node further comprises an application execution unit that executes an application specified by the client.
[0011]
According to such a configuration, a high-availability cluster system can be provided by hiding a computer node that executes an application from a client and dynamically allocating it as a virtual computer node.
[0012]
Also, in the computer node according to the present invention, when the first packet with the first IP header addressed to the virtual IP address is input from the application execution unit, the IP layer may determine the destination virtual IP address. Is searched using the IP management table, and a second IP header destined to the searched real IP address is further added to the first packet to perform encapsulation. An encapsulation unit that outputs a packet of the third type to the network device, and when a third packet with a third IP header addressed to a real IP address is input from the network device, the encapsulating unit outputs the packet from the third packet. A fourth packet is generated by removing the third IP header, and the temporary packet of the fourth IP header addressed to the virtual IP address is generated. If IP address is a virtual IP address of the own computer node, it is characterized in that the obtained fourth packet and a decapsulation unit for output to the application execution unit.
[0013]
According to such a configuration, the computer node can realize communication between virtual computer nodes by converting the virtual IP address and the real IP address according to the common IP management table.
[0014]
Further, the computer node according to the present invention further comprises a tunnel device which is treated in the same manner as the network device and outputs a packet addressed to the virtual IP address of the own computer node to the IP layer. Is what you do.
[0015]
According to such a configuration, the IP layer can process a packet addressed to a virtual IP address as well as a packet addressed to a real IP address.
[0016]
Further, in the computer node according to the present invention, further, a load state detection unit that detects a load state of another computer node, the real IP address is assigned to the virtual IP address based on the load state, and the IP management table And a broadcast unit that broadcasts the IP management table to other computer nodes, wherein the IP layer provides the virtual IP address to the client, When a packet addressed to the virtual IP address is input from a network device, the virtual IP address is searched for the real IP address using the IP management table, and a packet addressed to the searched real IP address is retrieved. Allocation of packets to be output to the network device It is characterized in that it comprises and.
[0017]
According to such a configuration, in the cluster system, by assigning a virtual IP address to a real IP address according to a load state or a failure of another computer node, the client does not change the IP address of the computer node, It is possible to flexibly cope with a change in the load of a computer node and a failure of the computer node, and realize high availability.
[0018]
Further, in the computer node according to the present invention, when a first packet with a first IP header addressed to the virtual IP address is input from the network device, the packet allocating unit searches for the real IP address. The present invention is characterized by encapsulating the first packet with a second IP header having an address as a destination, and outputting the obtained second packet to the network device.
[0019]
According to such a configuration, the computer node can realize communication with the virtual computer node by converting the virtual IP address and the real IP address according to the common IP management table.
[0020]
Further, in the computer node according to the present invention, the virtual node providing unit allocates at least one IP address different from a real IP address to the network device.
[0021]
According to such a configuration, requests for a plurality of virtual nodes can be received and allocated to physical computer nodes.
[0022]
Further, in the computer node according to the present invention, the node assignment unit assigns a plurality of real IP addresses to one virtual IP address.
[0023]
According to such a configuration, it is possible to configure a load-balancing type cluster system using virtual computer nodes.
[0024]
Further, in the computer node according to the present invention, each time the client requests the one virtual IP address, the node allocating unit changes the real IP address to which the request is transferred. is there.
[0025]
According to such a configuration, even when a large number of requests are received from a client to a virtual computer node, the load on the physical computer node can be distributed.
[0026]
Further, in the computer node according to the present invention, the broadcast unit broadcasts only an updated entry in the IP management table to another computer node.
[0027]
According to such a configuration, it is possible to reduce a transfer amount of data relating to the IP management table.
[0028]
Further, in the computer node according to the present invention, the broadcast unit transmits only the entry requested from another computer node in the IP management table to only the requesting computer node.
[0029]
According to such a configuration, it is possible to reduce a transfer amount of data relating to the IP management table.
[0030]
Further, the present invention is a cluster system that provides a service of a plurality of virtual computer nodes to a client, wherein at least one real node that is a computer node that executes an application and the virtual IP address are assigned to the virtual IP address. At least one coordinator node, which is a computer node assigned to a real IP address of the node, is provided.
[0031]
According to such a configuration, the coordinator node allocates the virtual IP address to the real IP address according to the load state or the failure of the real node, so that the client does not change the IP address of the real node, thereby changing the load on the node. Changes and node failures can be flexibly handled, and high availability can be realized.
[0032]
In the cluster system according to the present invention, the coordinator node transmits the IP management table to the real node, and the real node transmits to the coordinator node that the IP management table has been received. It is assumed that.
[0033]
According to such a configuration, the coordinator node can reliably distribute the IP management table to the real nodes.
[0034]
The present invention also provides a cluster management method for providing at least one virtual computer node to a client and managing at least one real node that is a computer node that actually executes an application specified by the client. Connecting the real node and the client via a network, providing the client with a virtual IP address that is the IP address of the virtual computer node, and loading the real node Detecting a status, assigning a real IP address that is an IP address of the real node to the virtual IP address based on the load status, and creating the IP management table; Broadcasting to the real nodes; When a packet addressed to the virtual IP address is input from the client via the network, the real IP address is searched from the virtual IP address using the IP management table, and the searched real IP address is sent to the destination. And outputting the packet to the destination real node via the network.
[0035]
According to such a configuration, the coordinator node allocates the virtual IP address to the real IP address according to the load state or the failure of the real node, so that the client does not change the IP address of the real node, thereby changing the load on the node. Changes and node failures can be flexibly handled, and high availability can be realized.
[0036]
Further, the present invention provides at least one virtual computer node to a client, and manages at least one real node which is a computer node that actually executes an application designated by the client. A cluster management program stored on a computer-readable medium, the method comprising: connecting the real node and the client via a network; Providing an IP address; detecting a load state of the real node; assigning a real IP address that is an IP address of the real node to the virtual IP address based on the load state; Creating a table and the IP management And when a packet addressed to the virtual IP address is input from the client via a network, the real IP address is converted from the virtual IP address using the IP management table. Searching and outputting a packet addressed to the searched real IP address to a destination real node via a network.
[0037]
According to such a configuration, the coordinator node allocates the virtual IP address to the real IP address according to the load state or the failure of the real node, so that the client does not change the IP address of the real node, thereby changing the load on the node. Changes and node failures can be flexibly handled, and high availability can be realized.
In the present invention, the computer-readable medium is a portable storage medium such as a CD-ROM, a flexible disk, a DVD disk, a magneto-optical disk, an IC card, a database holding a computer program, or another database. It also includes computers, their databases, and transmission media on lines.
[0038]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
Embodiment 1 FIG.
In this embodiment, a case where the cluster system of the present invention is used in a remote shell (rsh) mode will be described. In the rsh mode, one application is executed by one real node.
[0039]
First, the configuration of the cluster system according to the present embodiment will be described with reference to FIG. FIG. 1 is a block diagram illustrating an example of a configuration of a cluster system according to the present embodiment. As shown in FIG. 1, a cluster system 1 according to the present embodiment includes a coordinator node 2 and real nodes 3a, 3b, 3c. Each node is connected to each other via a network 4 and to a client 5 via the network 4.
[0040]
The cluster system according to the present embodiment prohibits a user application from directly operating a node in the cluster. This is realized by providing only the virtual node that is a virtual computer node to the client 5 and hiding the real node that is a physical computer node that actually executes the application. The coordinator node is a computer node that allocates a virtual node or application execution to a real node according to a request from a client, a load state of the real node, or the like. The real node actually executes the application according to the assignment of the coordinator node. When the application terminates, the real node is released, and the virtual node and application execution are deallocated.
[0041]
Next, the function of the coordinator node according to the present embodiment will be described using FIG. FIG. 2 is a block diagram illustrating an example of a function of the coordinator node according to the present embodiment. As shown in FIG. 2, the coordinator node 2 according to the present embodiment is roughly divided into an IP (Internet Protocol) layer in the hierarchical model, and is roughly divided into an NIC 21 (Network Interface Card) belonging to a lower layer and a NIC 21 (Network Interface Card) belonging to a lower layer. , An IP layer 22 and a coordinator 23 belonging to an upper layer. The NIC 21 includes a network device 211. The IP layer 22 includes an IP processing unit 221, a virtual node providing unit 222, and a packet allocating unit 223. The coordinator 23 includes a load state detection unit 231, a node assignment unit 232, and a broadcast unit 233.
[0042]
Next, the operation of the coordinator node according to the present embodiment will be described. The load state detector 231 detects the load state of each of the real nodes 3a, 3b, 3c. The load state indicates what process is currently running at what CPU usage rate.
[0043]
The node allocating unit 232 sets a virtual IP address (VIP: Virtual IP Address), which is a virtual IP address, in the IP management table, and receives each of the real nodes 3a, 3b, and 3c when receiving a node allocation request from outside. Is assigned to a real IP address (RIP: Real IP Address), which is the actual IP address of the real node, based on the load state of the real node, and an IP management table is generated. Also, the IP management table is updated as needed. The IP management table is a correspondence table for searching for a RIP from a VIP.
[0044]
The broadcast unit 233 broadcasts the IP management table to all the real nodes 3a, 3b, 3c when the IP management table is updated. Here, as an example, the IP management table is broadcast only when the IP management table is updated. However, only the changed entry in the IP management table may be broadcast. Further, the entry requested by the real node in the IP management table may be transmitted. Further, in order for the coordinator node 2 to confirm whether the IP management table has arrived, the real node may return information indicating that the IP management table has been received to the coordinator node 2.
[0045]
The virtual node providing unit 222 provides the client 5 with the VIP set in the IP management table as a virtual node. In order to show the VIP to the client 5, a plurality of VIPs are assigned to one network device 211.
[0046]
The IP processing unit 221 performs filtering and routing of an IP packet input from an upper layer or a lower layer, similarly to the conventional IP layer. When an IP packet is input from the network device 211, if the IP packet is addressed to the own node, the IP packet is passed to an upper layer, and if not, the IP packet is output to the network device 211 again for transfer to an appropriate network. Conversely, when an IP packet is input from an upper layer, the IP packet is output to the network device 211 for transmission to an appropriate network. Further, when an IP packet having a VIP header is further input from the network device 211, the IP processing unit 221 of the present invention outputs the IP packet to the packet allocation unit 223. Here, an IP header destined for RIP is called a RIP header, and an IP header destined for VIP is called a VIP header.
[0047]
The packet allocating unit 223 processes an IP packet that has arrived at the VIP provided by the virtual node providing unit 222. First, when an IP packet having a VIP header is input from the IP processing unit 221, the packet allocating unit 223 searches for a RIP from the VIP using the IP management table, and checks the RIP of the real node to which the packet is actually transmitted. Get. Next, as shown in FIG. 3A, the packet allocating unit 223 encapsulates the IP packet having the VIP header by further adding a RIP header. The encapsulated IP packet is output to the IP processing unit 221 and transmitted to an external RIP via the network device 211.
[0048]
The network device 211 is connected to an external client 5 and each node via the network 4. It outputs the packet received from the outside to the IP processing unit 221 and transmits the packet input from the IP processing unit 221 to the outside.
[0049]
Next, an implementation example of the IP processing unit 221 and the packet allocation unit 223, which are the IP layers, will be described. First, an implementation example of the virtual node providing unit 222 will be described. Here, a mechanism called an IP alias is used. IP aliases are standardly supported in the Linux kernel, and other IP addresses can be assigned by the command “# ifconfig eth0: 0192.168.1.10”. If the number after “:” is changed, a plurality of IP addresses can be assigned. A VIP is assigned using this function.
[0050]
Next, an implementation example of the IP processing unit 221 and the packet allocation unit 223 will be described. FIG. 4 is a block diagram illustrating an example of the implementation of the IP layer. The Linux kernel 2.4 incorporates a packet filtering mechanism. This is called a netfilter and is a framework for providing extensibility of a code for performing IP packet processing in a kernel. Here, the IP processing unit 221 is realized by using the function of the netfilter in the Linux IP layer. The netfilter 7 is connected to the lower layer 8 and the upper layer 9.
[0051]
Here, a specific operation of the conventional netfilter will be described. The packet received by the lower layer 8 is sent to the routing 72 via the NF_IP_PRE_ROUTING 71. If the packet is to be transferred to another node, the packet is sent to the NF_IP_FORWARD 74. Otherwise, the packet is sent to the NF_IP_LOCAL_IN 73. The IP packet sent to NF_IP_FORWARD 74 is sent to the lower layer 8 via NF_IP_POST_ROUTING 77 and sent to another node. On the other hand, the packet sent to NF_IP_LOCAL_IN 73 is sent to upper layer 9.
[0052]
The IP packet from the upper layer 9 is transmitted to the routing 76 via the NF_IP_LOCAL_OUT 75, further transmitted to the lower layer 8 via the NF_IP_POST_ROUTING 77, and transmitted to another node. The IP processing unit 221 is realized by the netfilter 7 described above.
[0053]
Further, the packet allocating unit 223 can be realized by extending the function of the netfilter described in FIG. The netfilter 7 provides a mechanism for calling a hook function at each of NF_IP_PRE_ROUTING71, NF_IP_LOCAL_IN73, NF_IP_FORWARD74, NF_IP_LOCAL_OUT75, and NF_IP_POST_ROUTING77. In these, a list for registering functions is prepared, which can be registered by an interface of “intnf_register_hook (struct nf_hook_ops * reg)”, and “intnf_unregister_hook (an interface that can be deleted by a structure nf_hook_ops * reg)”. . Here, the structure of the structure nf_hook_ops type is for registering a hook function. In the present embodiment, the packet allocating unit 223 can be realized by registering the operation of the packet allocating unit 223 in the NF_IP_LOCAL_IN 73 as a hook function.
[0054]
Further, the encapsulation in the packet allocation unit 223 can be implemented by applying the IP tunneling function. The protocol of the IP packet addressed to the RIP is set to IPPROTO IPIP. This is called an IP tunneling protocol and is used to indicate that a packet is encapsulated.
[0055]
Next, the function of the real node according to the present embodiment will be described using FIG. FIG. 5 is a block diagram illustrating an example of a function of the real node according to the present embodiment. As shown in FIG. 3, the real nodes 3a, 3b, and 3c according to the present embodiment are roughly divided into a NIC 31 belonging to a lower layer and an IP layer 32 when viewed focusing on the IP layer in the hierarchical model. , An application execution unit 33 belonging to an upper layer. The NIC 31 includes a network device 311 and a tunnel device 312. The IP layer 32 includes an IP processing unit 321, a decapsulation unit 322, and an encapsulation unit 323.
[0056]
Next, the operation of the real node according to the present embodiment will be described. The application execution unit 31 includes an application execution file, executes the application according to the contents of the packet received from the client 5 via the coordinator node 2, and passes the execution result as a packet to the IP layer. At this time, when transmitting the execution result to the client 5, a header addressed to the client is added to the packet as usual, and when performing communication with another real node, a VIP header is added to the packet.
[0057]
The IP processing unit 321 performs filtering and routing of an IP packet input from an upper layer or a lower layer, similarly to the conventional IP layer or the IP processing unit 221. Further, when an IP packet having a RIP header is input from a lower layer, the IP processing unit 321 of the present invention outputs the packet to the decapsulation unit 322. When an IP packet having a VIP header is input from an upper layer, the IP packet is output to the encapsulation unit 323.
[0058]
When an IP packet having a RIP header is input from the IP processing unit 321, the decapsulation unit 322 removes the RIP header from the IP packet as shown in FIG. At this time, since the encapsulated IP packet is the IP tunneling protocol, the IP packet having the VIP header is output to the tunnel device 312 via the IP processing unit 321.
[0059]
When an IP packet having a VIP header is input from the IP processing unit 321, the encapsulation unit 323 searches for a RIP from the VIP using the IP management table broadcast from the coordinator node 2, and sends a destination to which the packet is actually transmitted. Of the real node is obtained. Next, as shown in FIG. 3A, the encapsulation unit 323 encapsulates the IP packet having the VIP header by further adding a RIP header. The encapsulated IP packet is transmitted to the RIP via the IP processing unit 321 and the network device 311.
[0060]
The network device 311 is similar to the network device 211, and is connected to an external client 5 and each node via the network 4. It outputs the packet received from the outside to the IP processing unit 321 and transmits the packet input from the IP processing unit 321 to the outside.
[0061]
When the IP packet having the VIP header is input from the IP processing unit 321, the tunnel device 312 outputs the IP packet to the IP processing unit 321 as it is. Since the destination of the decapsulated IP packet is VIP, it is received by the tunnel device 312 of the own node and input to the IP processing unit 321 again. The IP processing unit 321 outputs an IP packet having a VIP header from the tunnel device 312 to the application execution unit 33.
[0062]
Here, an implementation example of the IP processing unit 321, the decapsulation unit 322, and the encapsulation unit 323, which are IP layers, will be described. Similarly to the IP processing unit 221, the IP processing unit 321 is realized using the function of the netfilter in the Linux IP layer, and the operation of the decapsulation unit 322 is registered as a hook function in NF_IP_LOCAL_IN73, and the encapsulation unit 323 is registered in NF_IP_LOCAL_OUT75. By registering the operation as a hook function, the decapsulation unit 322 and the encapsulation unit 323 can be realized.
[0063]
In addition, the decapsulation unit 322 and the encapsulation unit 323 can be implemented by applying an IP tunneling function. By encapsulating an IP packet with an IP header by IP tunneling, the packet can be transmitted to a correct destination regardless of the encapsulated packet. Here, the protocol of the IP packet addressed to the RIP is set to IPPROTO_IPIP.
[0064]
In IP tunneling, unlike address translation such as NAT (Network Address Translation), a direct response can be returned to a request from the client 5. As described above, since the tunnel device 312 is mounted on all the real nodes 3a, 3b, and 3c, and the coordinator node 2 and all the real nodes 3a, 3b, and 3c have the same IP management table, communication at the VIP level is performed. Can be realized, and communication between real nodes can be realized.
[0065]
Next, the operation in the rsh mode will be described with reference to FIG. FIG. 6 is a sequence diagram illustrating an example of an operation in the rsh mode of the cluster system according to the present embodiment. In the rsh mode, an application can be executed on the cluster system 1 by the command “% rsh vnode application [args...]”, similar to rsh, which is a general UNIX command. Here, vnode indicates a virtual node. Here, for the sake of explanation, the RIP of the real node 3a is RIP # a, the RIP of the real node 3b is RIP # b, and the RIP of the real node 3c is RIP # c.
[0066]
First, the user inputs an rsh command using the client 5 and specifies a destination. Here, for example, VIP # 1 is specified as the destination. Thereby, a node assignment request is made (S101). The coordinator node 2 that has received the node allocation request allocates, for example, RIP # a to VIP # 1 according to the load state of each of the real nodes 3a, 3b, 3c (S102). If the application can be executed, the real node 3a returns information indicating that to the coordinator node 2 (S103). Next, the coordinator node 2 generates the IP management table shown in FIG. 7, broadcasts it to each of the real nodes 3a, 3b, and 3c, and returns a node allocation completion notification indicating that the node allocation has been successful to the client 5 ( S104).
[0067]
Upon receiving the node assignment completion notification, the client 5 submits the job to VIP # 1 (S105). The job is passed to the real node 3a via the coordinator node 2 (S106). The real node 3a executes the application, which is a job, and returns the execution result to the client 5 (S107). The real node 3a returns information indicating that the job has been completed to the coordinator node 2 (S108). The coordinator node 2 that has detected the end of the job deletes the entries of VIP # 1 and RIP # a in the IP management table, and releases the node by broadcasting the result (S109). The real node 3a returns information indicating that the release of the node has been confirmed to the coordinator node 2 (S110).
[0068]
As described above, the coordinator node 2 allocates VIPs to RIPs according to the load state and the failure of the real node, so that the coordinator node 2 can flexibly cope with a change in the load of the node and the failure of the node, thereby realizing high availability. it can. For example, even if a node failure occurs, it is possible to recover simply by automatically changing the assignment of VIP and RIP.
[0069]
Embodiment 2 FIG.
In the present embodiment, a case where the cluster system of the present invention described in FIG. 1 is used in the HPC mode will be described. In the HPC mode, execution of a plurality of applications is shared between a plurality of real nodes. Generally, in an HPC type application, communication between nodes is performed. In the present embodiment, the coordinator node 2 provides a plurality of virtual nodes to the client 5 and performs communication between real nodes, so that an HPC-type application can operate.
[0070]
Hereinafter, the operation in the HPC mode will be described with reference to FIG. FIG. 8 is a sequence diagram showing an example of an operation in the HPC mode of the cluster system according to the present embodiment. Here, for the sake of explanation, the RIP of the real node 3a is RIP # a, the RIP of the real node 3b is RIP # b, and the RIP of the real node 3c is RIP # c.
[0071]
First, the user specifies a destination using the client 5. Here, for example, VIP # 1 and VIP # 2 are designated as destinations. As a result, a node assignment request is made (S201). The coordinator node 2 that has received the node allocation request allocates, for example, RIP # a to VIP # 1 according to the load state of each of the real nodes 3a, 3b, 3c (S202). If the application can be executed, the real node 3a returns information indicating that to the coordinator node 2 (S203). Similarly, the coordinator node 2 assigns, for example, RIP # c to VIP # 2 (S202). If the application can be executed, the real node 3c returns information indicating this to the coordinator node 2 (S203). Steps S202 and S203 are repeated for the requested number of nodes. Next, the coordinator node 2 generates the IP management table shown in FIG. 9 and broadcasts it to each of the real nodes 3a, 3b, 3c, and returns a node allocation completion notification indicating that the node allocation has been successful to the client 5 ( S204).
[0072]
Upon receiving the node assignment completion notification, the client 5 submits the job to VIP # 1 and VIP # 2 (S205). Here, for example, it is assumed that a job to be executed using the execution result obtained in VIP # 1 in VIP # 2 is given to VIP # 1 and VIP # 2. The job addressed to VIP # 1 is passed to the real node 3a via the coordinator node 2, and the job addressed to VIP # 2 is passed to the real node 3c via the coordinator node 2 (S206). The real node 3a executes an application, which is a job, and passes the execution result to the real node 3c. The real node 3c executes the application using the execution result of the real node 3a, and returns the execution result to the client 5 (S207). Further, the real nodes 3a and 3c return information indicating that the job has been completed to the coordinator node 2 (S208). The coordinator node 2 that has detected the end of the job deletes the entries of VIP # 1 and RIP # a and the entries of VIP # 2 and RIP # c in the IP management table, and releases the node by broadcasting the result. (S209). The real nodes 3a and 3c return information indicating that the release of the nodes has been confirmed to the coordinator node 2 (S210).
[0073]
As described above, in the case of operating the HPC type application, even when the real node fails, the coordinator node 2 automatically allocates the processing performed by the failed real node to an appropriate real node. Can be continued, and there is no need for the user to respond.
[0074]
Embodiment 3 FIG.
In the present embodiment, a case where the cluster system of the present invention is used in the WWW mode will be described. For example, when a large number of requests are sent from a client to a plurality of servers such as a WWW server, IP-level load distribution can be performed by assigning a plurality of RIPs to one VIP. Such an operation mode is called a WWW mode, and in the WWW mode, execution of one service is shared by a plurality of real nodes. In the present embodiment, a coordinator node 2 allocates one virtual node to a plurality of real nodes, and distributes a request for a virtual node from a client 5 to the plurality of real nodes, thereby configuring a load-balancing cluster system. It becomes possible.
[0075]
Hereinafter, the operation in the WWW mode will be described with reference to FIGS. First, the configuration of the cluster system according to the present embodiment will be described with reference to FIG. FIG. 10 is a block diagram showing another example of the configuration of the cluster system according to the present embodiment. 10, the same reference numerals as those in FIG. 1 denote the same components as those shown in FIG. 1, and a description thereof will be omitted. In the WWW mode, since the operator needs to start and stop the WWW server, an operator 6 is added to the configuration of FIG. 1 in FIG. The operator 6 operates the coordinator node 2.
[0076]
Next, the operation of starting the server in the WWW mode will be described with reference to FIG. FIG. 11 is a sequence diagram showing an example of a server startup operation in the WWW mode of the cluster system according to the present embodiment. Here, for the sake of explanation, the RIP of the real node 3a is RIP # a, the RIP of the real node 3b is RIP # b, and the RIP of the real node 3c is RIP # c.
[0077]
First, the operator 6 specifies the number of WWW servers to be started up beforehand. Here, for example, three are specified. As a result, a node assignment request is made (S301). The coordinator node 2 that has received the node assignment request assigns, for example, RIP # a, RIP # b, and RIP # c to VIP # 1 according to the load status of each of the real nodes 3a, 3b, and 3c (S302). If each of the real nodes 3a, 3b, and 3c can execute the service, the real nodes 3a, 3b, and 3c return information indicating the execution to the coordinator node 2 (S303). Next, the coordinator node 2 generates the IP management table shown in FIG. 12 and broadcasts it to each of the real nodes 3a, 3b, 3c, and returns a node assignment completion notification indicating that the node assignment has been successful to the operator 6 ( S304).
[0078]
The operator 6 having received the node assignment completion notification issues a server start request (S305). The coordinator node 2 receiving the server start request instructs each of the real nodes 3a, 3b, 3c to start the server (S306). Each of the real nodes 3a, 3b, and 3c activates its own node and returns information indicating the activation to the coordinator node 2 (S307). The coordinator node 2 returns a server startup completion notification indicating that the server startup has been completed to the operator 6 (S308). As described above, by performing the operation of starting the server in the WWW mode, VIP # 1 is assigned RIP # a, RIP # b, and RIP # c in advance.
[0079]
Next, an operation at the time of providing a service in the WWW mode will be described with reference to FIG. FIG. 13 is a sequence diagram showing an example of an operation at the time of providing a service in the WWW mode of the cluster system according to the present embodiment. First, the client 5 inputs an HTTP (Hypertext Transfer Protocol) request to VIP # 1 (S401). The request addressed to VIP # 1 is allocated to the real node 3a via the coordinator node 2 (S402). The real node 3a returns an HTTP response to the request to the client 5 (S403). The above is the operation when the service is provided in the WWW mode. Here, an example has been described in which a request addressed to VIP # 1 is allocated to the real node 3a, but the packet allocating unit 223 of the coordinator node 2 changes the real node to which the request is transferred every time a request from the client 5 is received. .
[0080]
Next, the operation of stopping the server in the WWW mode will be described with reference to FIG. FIG. 14 is a sequence diagram illustrating an example of an operation of stopping the server in the WWW mode of the cluster system according to the present embodiment.
[0081]
First, the operator 6 issues a server stop request (S501). The coordinator node 2 receiving the server stop request instructs each of the real nodes 3a, 3b, 3c to stop the server (S502). Each of the real nodes 3a, 3b, 3c stops its own node and returns information indicating the stop to the coordinator node 2 (S503). The coordinator node 2 returns a server stop completion notification to the operator 6 indicating that the server stop has been completed (S504).
[0082]
The operator 6 having received the server stop completion notification issues a node release request (S505). Upon receiving the node release request, the coordinator node 2 deletes the entries of VIP # 1 and RIP # a, the entries of VIP # 1 and RIP # b, and the entries of VIP # 1 and RIP # c in the IP management table. The node is released by broadcasting (S506). Each of the real nodes 3a, 3b, 3c returns information indicating that the release of the node has been confirmed to the coordinator node 2 (S507). The coordinator node 2 returns a node release end notification indicating that the node release has ended to the operator 6 (S508). Thus, the operation of stopping the server in the WWW mode ends.
[0083]
As described above, even when a large number of requests are received from the client 5 when providing the service in the WWW mode, the coordinator node 2 allocates the request to an appropriate real node according to the load state or the failure of the real node. Can be.
[0084]
The cluster system according to the present invention has been described in the first to third embodiments. In the configuration of the cluster system according to the present invention described with reference to FIG. 3, the coordinator node 2 creates an IP management table according to a situation. Accordingly, the three modes including the rsh mode described in the first embodiment, the HPC mode described in the second embodiment, and the WWW mode described in the third embodiment are switched to one of the three modes, and the three modes are operated. Can be operated in combination. In addition, by providing the function of the virtual node providing unit 222, the packet allocating unit 223, and the coordinator 23 in one of the real nodes, it is possible to function as the coordinator node 2, so that even if the coordinator node 2 fails, Can respond. Thereby, higher reliability can be realized.
[0085]
(Supplementary Note 1) A physical computer node in a cluster system that provides at least one virtual computer node to a client,
An IP management table, which is a correspondence table between a virtual IP address, which is the IP address of the virtual computer node, and a real IP address, which is the IP address of the physical computer node, is stored based on the IP management table. An IP layer that performs communication using an IP address;
A network device connecting to another computer node and the client via a network,
Computer node comprising:
(Supplementary note 2) In the computer node according to supplementary note 1,
further,
A computer node comprising an application execution unit that executes an application specified by the client.
(Supplementary note 3) In the computer node according to supplementary note 2,
The IP layer comprises:
When a first packet with a first IP header addressed to a virtual IP address is input from the application execution unit, a real IP address corresponding to the destination virtual IP address is searched using the IP management table. An encapsulation unit that performs encapsulation that further attaches a second IP header destined to the searched real IP address to the first packet, and outputs the obtained second packet to the network device;
When a third packet with a third IP header addressed to a real IP address is input from the network device, a fourth packet is generated by removing the third IP header from the third packet If the virtual IP address of the fourth IP header destined for the virtual IP address is the virtual IP address of its own computer node, decapsulation for outputting the obtained fourth packet to the application execution unit Department and
A computer node comprising:
(Supplementary note 4) In the computer node according to supplementary note 3,
further,
A computer node comprising a tunnel device that is handled in the same manner as the network device and outputs a packet addressed to a virtual IP address of the own computer node to the IP layer.
(Supplementary note 5) In the computer node according to supplementary note 1,
further,
A load state detection unit that detects a load state of another computer node,
A node assignment unit that assigns the real IP address to the virtual IP address based on the load state and creates the IP management table;
A broadcast unit that broadcasts the IP management table to another computer node,
The IP layer comprises:
A virtual node providing unit that provides the client with the virtual IP address;
When a packet addressed to the virtual IP address is input from the network device, the real IP address is searched from the virtual IP address using the IP management table, and the packet addressed to the searched real IP address is used. A packet allocating unit that outputs to the network device
A computer node comprising:
(Supplementary note 6) In the computer node according to supplementary note 5,
The packet allocating unit, when a first packet with a first IP header addressed to the virtual IP address is input from the network device, a second IP header addressed to the searched real IP address The computer node performs an encapsulation that further attaches the first packet to the first packet, and outputs the obtained second packet to the network device.
(Supplementary note 7) In the computer node according to supplementary note 5 or 6,
The computer node, wherein the virtual node providing unit assigns at least one IP address different from a real IP address to the network device.
(Supplementary note 8) In the computer node according to any one of supplementary notes 5 to 7,
The computer node, wherein the node allocating unit allocates a plurality of real IP addresses to one virtual IP address.
(Supplementary note 9) In the computer node according to supplementary note 8,
The computer node according to claim 1, wherein the node allocating unit changes a real IP address to which the request is transferred every time there is a request from the client for the one virtual IP address.
(Supplementary note 10) In the computer node according to any one of supplementary notes 5 to 9,
The computer node, wherein the broadcast unit broadcasts only updated entries in the IP management table to other computer nodes.
(Supplementary note 11) In the computer node according to any one of supplementary notes 5 to 10,
The computer node, wherein the broadcast unit transmits only the entry requested by another computer node in the IP management table to only the requesting computer node.
(Supplementary Note 12) A cluster system that provides a plurality of virtual computer nodes to a client,
At least one real node, which is the computer node according to any one of Supplementary Notes 2 to 4, which is a computer node that executes an application,
At least one coordinator node, which is a computer node according to any of Supplementary Notes 5 to 11, wherein the computer node assigns the virtual IP address to a real IP address of the real node;
A cluster system comprising:
(Supplementary note 13) In the cluster system according to supplementary note 12,
The coordinator node sends the IP management table to the real node,
The cluster system according to claim 1, wherein the real node transmits the reception of the IP management table to the coordinator node.
(Supplementary Note 14) A cluster management method that provides at least one virtual computer node to a client and manages at least one real node that is a computer node that actually executes an application specified by the client. hand,
Connecting the real node and the client via a network;
Providing the client with a virtual IP address that is the IP address of the virtual computer node;
Detecting the load state of the real node;
Assigning a real IP address that is an IP address of the real node to the virtual IP address based on the load state, and creating the IP management table;
Broadcasting the IP management table to the real node;
When a packet addressed to the virtual IP address is input from the client via the network, the real IP address is searched from the virtual IP address using the IP management table, and the searched real IP address is sent to the destination. Outputting a packet to the destination real node via the network;
A cluster management method comprising:
(Supplementary Note 15) In order to provide at least one virtual computer node to a client and manage at least one real node that is a computer node that actually executes an application designated by the client, A cluster management program stored on a readable medium,
Connecting the real node and the client via a network;
Providing the client with a virtual IP address that is the IP address of the virtual computer node;
Detecting the load state of the real node;
Assigning a real IP address that is an IP address of the real node to the virtual IP address based on the load state, and creating the IP management table;
Broadcasting the IP management table to the real node;
When a packet addressed to the virtual IP address is input from the client via the network, the real IP address is searched from the virtual IP address using the IP management table, and the searched real IP address is sent to the destination. Outputting a packet to the destination real node via the network;
A cluster management program for causing a computer to execute the following.
[0086]
【The invention's effect】
As described in detail above, according to the present invention, the coordinator node allocates a VIP to a RIP according to the load state or the failure of the real node, so that the client does not perform a node change process, and It is possible to flexibly respond to a change in load or a node failure, and to realize high availability.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an example of a configuration of a cluster system according to an embodiment.
FIG. 2 is a block diagram illustrating an example of a function of a coordinator node according to the present embodiment.
FIG. 3 is a diagram illustrating an example of an operation of encapsulation and decapsulation.
FIG. 4 is a block diagram illustrating an example of implementation of an IP layer.
FIG. 5 is a block diagram illustrating an example of a function of a real node according to the present embodiment;
FIG. 6 is a sequence diagram showing an example of an operation in an rsh mode of the cluster system according to the present embodiment.
FIG. 7 is a diagram illustrating an example of an IP management table in rsh mode.
FIG. 8 is a sequence diagram showing an example of an operation in the HPC mode of the cluster system according to the present embodiment.
FIG. 9 is a diagram illustrating an example of an IP management table in the HPC mode.
FIG. 10 is a block diagram showing another example of the configuration of the cluster system according to the present embodiment.
FIG. 11 is a sequence diagram showing an example of a server startup operation in the WWW mode of the cluster system according to the present embodiment.
FIG. 12 is a diagram illustrating an example of an IP management table in a WWW mode.
FIG. 13 is a sequence diagram showing an example of an operation at the time of providing a service in the WWW mode of the cluster system according to the present embodiment.
FIG. 14 is a sequence diagram showing an example of an operation of stopping a server in the WWW mode of the cluster system according to the present embodiment.
[Explanation of symbols]
1 cluster system, 2 coordinator node, 21 NIC, 211 network device, 22 IP layer, 221 IP processing section, 222 virtual node providing section, 223 packet allocating section, 23 coordinator, 231 load state detecting section, 232 node allocating section, 233 Broadcast unit, 3a, 3b, 3c real node, 31 NIC, 311 network device, 312 tunnel device, 32 IP layer, 321 IP processing unit, 322 decapsulation unit, 323 encapsulation unit, 33 application execution unit, 4 networks, 5 networks Client, 6 Operator, 7 netfilter, 71 NF_IP_PRE_ROUTING, 72 routing, 73 NF_IP_LOCAL_IN, 74 NF_IP_FORWARD, 75 N _IP_LOCAL_OUT, 76 routing, 77 NF_IP_POST_ROUTING, 8 lower layer, the upper layer 9.

Claims (10)

クライアントに対して少なくとも1つの仮想的な計算機ノードを提供するクラスタシステムにおける物理的な計算機ノードであって、
前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスと前記物理的な計算機ノードのIPアドレスである実IPアドレスとの対応表であるIP管理テーブルを記憶し、該IP管理テーブルに基づいて仮想IPアドレスを用いた通信を行うIP層と、
他の計算機ノードと前記クライアントにネットワークを介して接続するネットワークデバイスと、
を備えてなる計算機ノード。
A physical computer node in a cluster system that provides at least one virtual computer node to a client,
An IP management table, which is a correspondence table between a virtual IP address, which is the IP address of the virtual computer node, and a real IP address, which is the IP address of the physical computer node, is stored based on the IP management table. An IP layer that performs communication using an IP address;
A network device connecting to another computer node and the client via a network,
Computer node comprising:
請求項1に記載の計算機ノードにおいて、
さらに、前記クライアントから指示されたアプリケーションを実行するアプリケーション実行部を備えたことを特徴とする計算機ノード。
The computer node according to claim 1,
The computer node further includes an application execution unit that executes an application specified by the client.
請求項2に記載の計算機ノードにおいて、
前記IP層は、
前記アプリケーション実行部から仮想IPアドレスを宛先とする第1のIPヘッダを付けた第1のパケットが入力された場合、宛先の仮想IPアドレスに対応する実IPアドレスを前記IP管理テーブルを用いて検索し、検索した実IPアドレスを宛先とする第2のIPヘッダを前記第1のパケットにさらに付けるカプセル化を施し、得られた第2のパケットを前記ネットワークデバイスへ出力するカプセル化部と、
前記ネットワークデバイスから実IPアドレスを宛先とする第3のIPヘッダを付けた第3のパケットが入力された場合、前記第3のパケットから前記第3のIPヘッダを外して第4のパケットを生成し、さらに仮想IPアドレスを宛先とする第4のIPヘッダの仮想IPアドレスが自らの計算機ノードの仮想IPアドレスであれば、得られた前記第4のパケットを前記アプリケーション実行部へ出力するカプセル解除部と、
を備えたことを特徴とする計算機ノード。
The computer node according to claim 2,
The IP layer comprises:
When a first packet with a first IP header addressed to a virtual IP address is input from the application execution unit, a real IP address corresponding to the destination virtual IP address is searched using the IP management table. An encapsulation unit that performs encapsulation that further attaches a second IP header destined to the searched real IP address to the first packet, and outputs the obtained second packet to the network device;
When a third packet with a third IP header addressed to a real IP address is input from the network device, a fourth packet is generated by removing the third IP header from the third packet If the virtual IP address of the fourth IP header destined for the virtual IP address is the virtual IP address of its own computer node, decapsulation for outputting the obtained fourth packet to the application execution unit Department and
A computer node comprising:
請求項3に記載の計算機ノードにおいて、
さらに、
前記ネットワークデバイスと同様に扱われ、自らの計算機ノードの仮想IPアドレスを宛先とするパケットを前記IP層へ出力するトンネルデバイスを備えたことを特徴とする計算機ノード。
The computer node according to claim 3,
further,
A computer node comprising a tunnel device that is handled in the same manner as the network device and outputs a packet addressed to a virtual IP address of the own computer node to the IP layer.
請求項1に記載の計算機ノードにおいて、
さらに、
他の計算機ノードの負荷状態を検出する負荷状態検出部と、
前記負荷状態に基づいて前記仮想IPアドレスに前記実IPアドレスを割り当て、前記IP管理テーブルを作成するノード割り当て部と、
前記IP管理テーブルを他の計算機ノードへブロードキャストするブロードキャスト部とを備え、
前記IP層は、
前記クライアントに対して前記仮想IPアドレスを提供する仮想ノード提供部と、
前記ネットワークデバイスから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを前記ネットワークデバイスへ出力するパケット割り振り部と、
を備えたことを特徴とする計算機ノード。
The computer node according to claim 1,
further,
A load state detection unit that detects a load state of another computer node,
A node assignment unit that assigns the real IP address to the virtual IP address based on the load state and creates the IP management table;
A broadcast unit that broadcasts the IP management table to another computer node,
The IP layer comprises:
A virtual node providing unit that provides the client with the virtual IP address;
When a packet addressed to the virtual IP address is input from the network device, the real IP address is searched from the virtual IP address using the IP management table, and the packet addressed to the searched real IP address is used. A packet allocating unit that outputs to the network device
A computer node comprising:
請求項5に記載の計算機ノードにおいて、
前記パケット割り振り部は、前記ネットワークデバイスから前記仮想IPアドレスを宛先とする第1のIPヘッダを付けた第1のパケットが入力された場合、検索した実IPアドレスを宛先とする第2のIPヘッダを前記第1のパケットにさらに付けるカプセル化を施し、得られた第2のパケットを前記ネットワークデバイスへ出力する
ことを特徴とする計算機ノード。
The computer node according to claim 5,
The packet allocating unit, when a first packet with a first IP header addressed to the virtual IP address is input from the network device, a second IP header addressed to the searched real IP address The computer node performs an encapsulation that further attaches the first packet to the first packet, and outputs the obtained second packet to the network device.
請求項5または請求項6に記載の計算機ノードにおいて、
前記仮想ノード提供部は、前記ネットワークデバイスに対して実IPアドレスと異なる少なくとも1つのIPアドレスを割り当てることを特徴とする計算機ノード。
In the computer node according to claim 5 or 6,
The computer node, wherein the virtual node providing unit assigns at least one IP address different from a real IP address to the network device.
クライアントに対して複数の仮想的な計算機ノードを提供するクラスタシステムであって、
請求項2乃至請求項4のいずれかに記載の計算機ノードであり、アプリケーションを実行する計算機ノードである少なくとも1つの実ノードと、
請求項5乃至請求項7のいずれかに記載の計算機ノードであり、前記仮想IPアドレスを前記実ノードの実IPアドレスに割り当てる計算機ノードである少なくとも1つのコーディネータノードと、
を備えたことを特徴とするクラスタシステム。
A cluster system that provides a plurality of virtual computer nodes to a client,
At least one real node, which is a computer node according to any one of claims 2 to 4, wherein the real node is a computer node that executes an application.
At least one coordinator node, which is the computer node according to any one of claims 5 to 7, wherein the at least one coordinator node is a computer node that assigns the virtual IP address to a real IP address of the real node.
A cluster system comprising:
クライアントに対して少なくとも1つの仮想的な計算機ノードを提供し、前記クライアントから指示されたアプリケーションを実際に実行する計算機ノードである少なくとも1つの実ノードの管理を行うクラスタ管理方法であって、
前記実ノードと前記クライアントにネットワークを介して接続するステップと、
前記クライアントに対して前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスを提供するステップと、
前記実ノードの負荷状態を検出するステップと、
前記負荷状態に基づいて前記仮想IPアドレスに対して前記実ノードのIPアドレスである実IPアドレスを割り当て、前記IP管理テーブルを作成するステップと、
前記IP管理テーブルを前記実ノードへブロードキャストするステップと、
ネットワークを介して前記クライアントから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを、ネットワークを介して宛先の実ノードへ出力するステップと、
を備えてなるクラスタ管理方法。
A cluster management method that provides at least one virtual computer node to a client and manages at least one real node that is a computer node that actually executes an application specified by the client,
Connecting the real node and the client via a network;
Providing the client with a virtual IP address that is the IP address of the virtual computer node;
Detecting the load state of the real node;
Assigning a real IP address that is an IP address of the real node to the virtual IP address based on the load state, and creating the IP management table;
Broadcasting the IP management table to the real node;
When a packet addressed to the virtual IP address is input from the client via the network, the real IP address is searched from the virtual IP address using the IP management table, and the searched real IP address is sent to the destination. Outputting a packet to the destination real node via the network;
A cluster management method comprising:
クライアントに対して少なくとも1つの仮想的な計算機ノードを提供し、前記クライアントから指示されたアプリケーションを実際に実行する計算機ノードである少なくとも1つの実ノードの管理を行うために、コンピュータにより読取可能な媒体に記憶されたクラスタ管理プログラムであって、
前記実ノードと前記クライアントにネットワークを介して接続するステップと、
前記クライアントに対して前記仮想的な計算機ノードのIPアドレスである仮想IPアドレスを提供するステップと、
前記実ノードの負荷状態を検出するステップと、
前記負荷状態に基づいて前記仮想IPアドレスに対して前記実ノードのIPアドレスである実IPアドレスを割り当て、前記IP管理テーブルを作成するステップと、
前記IP管理テーブルを前記実ノードへブロードキャストするステップと、
ネットワークを介して前記クライアントから前記仮想IPアドレスを宛先とするパケットが入力された場合、前記IP管理テーブルを用いて前記仮想IPアドレスから前記実IPアドレスを検索し、検索した前記実IPアドレスを宛先とするパケットを、ネットワークを介して宛先の実ノードへ出力するステップと、
をコンピュータに実行させることを特徴とするクラスタ管理プログラム。
A computer-readable medium for providing at least one virtual computer node to a client and managing at least one real node that is a computer node that actually executes an application specified by the client A cluster management program stored in
Connecting the real node and the client via a network;
Providing the client with a virtual IP address that is the IP address of the virtual computer node;
Detecting the load state of the real node;
Assigning a real IP address that is an IP address of the real node to the virtual IP address based on the load state, and creating the IP management table;
Broadcasting the IP management table to the real node;
When a packet addressed to the virtual IP address is input from the client via the network, the real IP address is searched from the virtual IP address using the IP management table, and the searched real IP address is sent to the destination. Outputting a packet to the destination real node via the network;
A cluster management program for causing a computer to execute the following.
JP2003042104A 2003-02-20 2003-02-20 Computer node, cluster system, cluster management method, cluster management program Expired - Lifetime JP4021780B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003042104A JP4021780B2 (en) 2003-02-20 2003-02-20 Computer node, cluster system, cluster management method, cluster management program
PCT/JP2004/001882 WO2004075070A1 (en) 2003-02-20 2004-02-19 Computer node, cluster system, cluster management method, and cluster management program
US11/134,822 US7499451B2 (en) 2003-02-20 2005-05-20 Computer node, cluster system, cluster managing method, and cluster managing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003042104A JP4021780B2 (en) 2003-02-20 2003-02-20 Computer node, cluster system, cluster management method, cluster management program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007099562A Division JP2007249984A (en) 2007-04-05 2007-04-05 Computer node, cluster system, method and program for managing clusters

Publications (2)

Publication Number Publication Date
JP2004264911A true JP2004264911A (en) 2004-09-24
JP4021780B2 JP4021780B2 (en) 2007-12-12

Family

ID=32905340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003042104A Expired - Lifetime JP4021780B2 (en) 2003-02-20 2003-02-20 Computer node, cluster system, cluster management method, cluster management program

Country Status (2)

Country Link
JP (1) JP4021780B2 (en)
WO (1) WO2004075070A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323526A (en) * 2005-05-17 2006-11-30 Fujitsu Ltd Cluster management program, recording medium with its program recorded, cluster management method, node and cluster
JP2007180963A (en) * 2005-12-28 2007-07-12 Fujitsu Ltd Cluster node control program, cluster node, and cluster system control method
CN100394388C (en) * 2005-06-16 2008-06-11 武汉理工大学 Construction of grid experimental system under single machine system environment
WO2009004734A1 (en) * 2007-07-05 2009-01-08 Fujitsu Limited Virtual server system, virtual server system control method, virtual server system control program, and service load balancer
JP2010271840A (en) * 2009-05-20 2010-12-02 Yamatake Corp Communication system
JP2013533689A (en) * 2010-06-22 2013-08-22 マイクロソフト コーポレーション Distributed virtual network gateway
JP2019041395A (en) * 2011-11-18 2019-03-14 アマゾン・テクノロジーズ・インコーポレーテッド Virtual network interface objects
US11295246B2 (en) 2012-02-29 2022-04-05 Amazon Technologies, Inc. Portable network interfaces for authentication and license enforcement

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3999353B2 (en) * 1998-05-29 2007-10-31 株式会社東芝 Method and system for determining communication path in computer network, and recording medium on which program is recorded
JP4015770B2 (en) * 1998-12-22 2007-11-28 株式会社東芝 Cluster system, server computer, and load balancing method
JP2002259354A (en) * 2001-03-01 2002-09-13 Hitachi Ltd Network system and load distributing method

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323526A (en) * 2005-05-17 2006-11-30 Fujitsu Ltd Cluster management program, recording medium with its program recorded, cluster management method, node and cluster
CN100394388C (en) * 2005-06-16 2008-06-11 武汉理工大学 Construction of grid experimental system under single machine system environment
JP2007180963A (en) * 2005-12-28 2007-07-12 Fujitsu Ltd Cluster node control program, cluster node, and cluster system control method
JP4619943B2 (en) * 2005-12-28 2011-01-26 富士通株式会社 Packet communication method and packet communication system
WO2009004734A1 (en) * 2007-07-05 2009-01-08 Fujitsu Limited Virtual server system, virtual server system control method, virtual server system control program, and service load balancer
JP2010271840A (en) * 2009-05-20 2010-12-02 Yamatake Corp Communication system
JP2013533689A (en) * 2010-06-22 2013-08-22 マイクロソフト コーポレーション Distributed virtual network gateway
US9876717B2 (en) 2010-06-22 2018-01-23 Microsoft Technology Licensing, Llc Distributed virtual network gateways
JP2019041395A (en) * 2011-11-18 2019-03-14 アマゾン・テクノロジーズ・インコーポレーテッド Virtual network interface objects
US10848431B2 (en) 2011-11-18 2020-11-24 Amazon Technologies, Inc. Virtual network interface objects
US11218420B2 (en) 2011-11-18 2022-01-04 Amazon Technologies, Inc. Virtual network interface objects
US11295246B2 (en) 2012-02-29 2022-04-05 Amazon Technologies, Inc. Portable network interfaces for authentication and license enforcement

Also Published As

Publication number Publication date
JP4021780B2 (en) 2007-12-12
WO2004075070A1 (en) 2004-09-02

Similar Documents

Publication Publication Date Title
US7499451B2 (en) Computer node, cluster system, cluster managing method, and cluster managing program
CN111464592B (en) Load balancing method, device, equipment and storage medium based on micro-service
CN110313163B (en) Load balancing in distributed computing systems
JP7085565B2 (en) Intelligent thread management across isolated network stacks
US7644159B2 (en) Load balancing for a server farm
JP6087922B2 (en) Communication control method and gateway
US6928478B1 (en) Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
EP2414960B1 (en) Providing logical networking functionality for managed computer networks
JP5085831B2 (en) System and method for request concentration and load balancing
US10318550B2 (en) Systems and methods for autonomous resource discovery, management, and stitching
US20090063706A1 (en) Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing
Kaashoek et al. FLIP: An internetwork protocol for supporting distributed systems
AU2001276932A1 (en) System and method for concentration and load-balancing of requests
CN114070822B (en) Kubernetes Overlay IP address management method
US20220166715A1 (en) Communication system and communication method
Zhang et al. Creating Linux virtual servers
JP4021780B2 (en) Computer node, cluster system, cluster management method, cluster management program
WO2023207189A1 (en) Load balancing method and system, computer storage medium, and electronic device
US8135772B2 (en) Single servlets for B2B message routing
CN110062057A (en) The proxy gateway and communication means of message are handled for hot-backup system
TW201509158A (en) Integration network device and service integration method thereof
JP2007249984A (en) Computer node, cluster system, method and program for managing clusters
CN116132542A (en) Container network management method, container network plug-in and related equipment
WO2023035660A1 (en) Resource request method, system and apparatus, and device and storage medium
JP2004064379A (en) Router and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050614

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070405

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070801

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070906

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: 20070925

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4021780

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111005

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111005

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131005

Year of fee payment: 6

EXPY Cancellation because of completion of term