JP3930516B2 - Server apparatus, server system, and server system load balancing method - Google Patents
Server apparatus, server system, and server system load balancing method Download PDFInfo
- Publication number
- JP3930516B2 JP3930516B2 JP2005072990A JP2005072990A JP3930516B2 JP 3930516 B2 JP3930516 B2 JP 3930516B2 JP 2005072990 A JP2005072990 A JP 2005072990A JP 2005072990 A JP2005072990 A JP 2005072990A JP 3930516 B2 JP3930516 B2 JP 3930516B2
- Authority
- JP
- Japan
- Prior art keywords
- server
- node
- service
- client
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Description
この発明は、クライアント装置に対するサービスの提供を複数のサーバ装置で行うクライアント−サーバモデルの計算機システムにおける負荷分散技術に関する。 The present invention relates to a load distribution technique in a computer system of a client-server model in which a service to a client device is provided by a plurality of server devices.
クライアント−サーバモデルにてクライアントにサービスを提供する計算機システムでは、複数のサーバ上で同一のサービスを動作させ、クライアントからの当該サービスへのアクセスをこれら複数のサーバの何れかに振り分ける手法が用いられることが多い。負荷分散、スケーラビリティの確保、信頼性の確保が可能だからである。 In a computer system that provides a service to a client in a client-server model, a method is used in which the same service is operated on a plurality of servers and access to the service from the client is distributed to any of the plurality of servers. There are many cases. This is because load distribution, scalability, and reliability can be ensured.
このようなメリットがある一方、複数のサーバのうち、どのサーバにアクセスすべきかをクライアントが決定するような仕組みでは、クライアントが行うべきアクセス方法が煩雑になってしまう。よって、クライアントからのアクセスの利便性を考慮すると、物理的に複数のサーバを論理的に単一のサーバであるかのようにクライアントに見せることは必須であり、現在広く使用されているTCP/IPベースのネットワークにおいては、DNSによるサーバの名前解決時に、クライアントに対して異なるIPアドレス(何れかのサーバのIPアドレス)を返す方法や、サーバ群の前段(フロントエンド)に負荷分散装置を設置する方法などが用いられることが多い。 On the other hand, in a mechanism in which the client determines which server to access from among a plurality of servers, the access method to be performed by the client becomes complicated. Therefore, in consideration of the convenience of access from the client, it is essential to make the plurality of servers physically appear to the client as if they were a single server, and currently widely used TCP / In an IP-based network, when a server name is resolved by DNS, a method of returning a different IP address (IP address of any server) to the client, or a load balancer is installed in the front stage (front end) of the server group In many cases, a method is used.
(1)DNSによる名前解決時に異なるIPアドレスをクライアントへ返す方法
複数のサーバはそれぞれ異なるIPアドレスを持っており、一方、これらサーバ群に対する名前(URL)はただ1つとし、それをクライアントに対して公開する。
(1) A method of returning different IP addresses to the client at the time of name resolution by DNS A plurality of servers have different IP addresses. On the other hand, there is only one name (URL) for these server groups, and this is sent to the client. And make it public.
クライアントは、サーバにアクセスするときに、公開されたサーバの名前(URL)を使用してアクセスすることになるが、DNSによる名前解決を行う時点で、DNSサーバが、サーバの名前解決を問い合わせてきたクライアントに対して、複数存在するサーバのうちの何れかのサーバのIPアドレスを返す。 When a client accesses a server, it accesses using the name (URL) of the published server. At the time of performing name resolution by DNS, the DNS server inquires about name resolution of the server. The IP address of any one of a plurality of existing servers is returned to the client.
即ち、異なるクライアントに対して異なるIPアドレスを返すことで、実際には複数サーバ構成でサービスを実現しているが、クライアントに対しては単一のサーバ(名前)であるかのように見せることが出来る。 In other words, by returning different IP addresses to different clients, the service is actually realized in a multi-server configuration, but it appears to the clients as if it were a single server (name). I can do it.
(2)負荷分散装置を用いる方法
クライアントは負荷分散装置のIPアドレスに対してアクセスを行う。つまり、クライアントからは負荷分散装置がサーバに見えるが、負荷分散装置が、クライアントからのアクセスを各サーバに振り分けることにより、複数サーバによるクライアントへのサービス提供を実現する。
(2) Method using load balancer The client accesses the IP address of the load balancer. In other words, the load balancer appears as a server to the client, but the load balancer distributes access from the client to each server, thereby realizing service provision to the client by a plurality of servers.
しかしながら、これらの方法には、それぞれに以下のような問題がある。 However, these methods have the following problems.
まず、前者の方法では、複数の(実際に存在するサーバの数だけ)IPアドレスが必要になるため、十分なIPアドレスを用意することが出来ない状況では、クライアントからのアクセス増大に対応すべくサーバを増やすことが容易ではなく、スケーラビリティの確保が難しい。また、DNSサーバに処理が集中するため、DNSサービスの信頼性の確保のための投資も必要となる。 First, since the former method requires a plurality of IP addresses (the number of servers that actually exist), in a situation where sufficient IP addresses cannot be prepared, it is necessary to cope with an increase in access from clients. It is not easy to increase the number of servers, and it is difficult to ensure scalability. Further, since the processing is concentrated on the DNS server, an investment for ensuring the reliability of the DNS service is also required.
一方、後者の方法では、負荷分散装置に処理が集中するため、負荷分散装置の性能がボトルネックとなり得る。また、負荷分散処理の高信頼化のためには複数の負荷分散装置を用意するための投資も必要である。更に、複数の負荷分散装置を用いる場合は、それぞれの負荷分散装置にIPアドレスが必要になるため、前述のDNSによる方法と同様の問題も生じる。 On the other hand, in the latter method, the processing is concentrated on the load balancer, so the performance of the load balancer can become a bottleneck. Further, in order to make the load distribution process highly reliable, it is necessary to make an investment for preparing a plurality of load distribution apparatuses. Further, when a plurality of load balancers are used, since an IP address is required for each load balancer, the same problem as the above-described DNS method occurs.
この発明は、このような事情を考慮してなされたものであり、サーバ群の前段に負荷分散装置を設置すること無く、かつ、単一のIPアドレスのみの使用で、複数サーバを論理的に単一のサーバに見せることを可能としたサーバ装置、サーバシステムおよびサーバシステムの負荷分散方法を提供することを目的とする。 The present invention has been made in consideration of such circumstances, and a plurality of servers can be logically configured by using only a single IP address without installing a load distribution device in the preceding stage of the server group. It is an object of the present invention to provide a server device, a server system, and a load distribution method for the server system that can be shown as a single server.
本目的を達成するために、この発明は、単一のIPアドレスを共有する他のサーバ装置と協働してクライアント装置に対するサービスの提供を行うサーバ装置であって、前記クライアント装置からのパケットを前記他のサーバ装置に転送するパケット転送手段と、前記パケット転送手段によるパケットの転送が行われた場合に、そのパケットの送信元である前記クライアント装置のMACアドレスを送信先アドレスとし、かつ、そのパケットの転送先である前記他のサーバ装置のMACアドレスを送信元MACアドレスとするGratuitousARP(Address Resolution Protocol)を、そのパケットの送信元である前記クライアント装置に送信するARP処理手段とを具備することを特徴とする。 In order to achieve this object, the present invention provides a server device that provides a service to a client device in cooperation with another server device that shares a single IP address, and that receives packets from the client device. A packet transfer means for transferring to the other server device, and when a packet is transferred by the packet transfer means, the MAC address of the client device that is the transmission source of the packet is set as a transmission destination address, and ARP processing means for transmitting Gratuitous ARP (Address Resolution Protocol) having the MAC address of the other server device as a packet transfer destination as a source MAC address to the client device as the packet source. It is characterized by.
また、この発明のサーバシステムは、単一のIPアドレスを共有する複数の前記サーバ装置と、前記複数のサーバ装置間を接続するための第1のネットワークと、サービスの提供を受けるクライアント装置と前記複数のサーバ装置との間を接続するための第2のネットワークとを具備することを特徴とする。 The server system of the present invention includes a plurality of the server devices sharing a single IP address, a first network for connecting the plurality of server devices, a client device receiving a service, And a second network for connecting a plurality of server devices.
また、この発明は、単一のIPアドレスを共有する複数のサーバ装置でクライアント装置に対するサービスの提供を行うサーバシステムの負荷分散方法であって、前記複数のサーバ装置それぞれが、前記クライアント装置からのパケットを他のサーバ装置に転送するステップと、前記パケットの転送を行った場合に、そのパケットの送信元である前記クライアント装置のMACアドレスを送信先アドレスとし、かつ、そのパケットの転送先である前記他のサーバ装置のMACアドレスを送信元MACアドレスとするGratuitousARPを、そのパケットの送信元である前記クライアント装置に送信するステップとを具備することを特徴とする。 According to another aspect of the present invention, there is provided a server system load distribution method for providing a service to a client device by a plurality of server devices sharing a single IP address, wherein each of the plurality of server devices is provided by the client device. A step of transferring a packet to another server device, and when the packet is transferred, the MAC address of the client device that is the transmission source of the packet is set as a transmission destination address, and the transfer destination of the packet Transmitting Gratuitous ARP using the MAC address of the other server device as a transmission source MAC address to the client device that is the transmission source of the packet .
この発明によれば、サーバ群の前段に負荷分散装置を設置すること無く、かつ、単一のIPアドレスのみの使用で、複数サーバを論理的に単一のサーバに見せることを可能としたサーバ装置、サーバシステムおよびサーバシステムの負荷分散方法を提供することができる。 According to the present invention, a server capable of logically showing a plurality of servers as a single server by using only a single IP address without installing a load distribution device in the preceding stage of the server group. An apparatus, a server system, and a server system load distribution method can be provided.
以下、図面を参照してこの発明の一実施形態を説明する。 An embodiment of the present invention will be described below with reference to the drawings.
図1は、本実施形態に係るサーバシステムの全体構成を示す図である。なお、以下の説明では、現在広く普及している、レイヤ2(リンクレベル)にはイーサネット(登録商標)を、レイヤ3にはIP(InternetProtocol)を使用したネットワークを想定している。
FIG. 1 is a diagram illustrating an overall configuration of a server system according to the present embodiment. In the following description, it is assumed that a network using Ethernet (registered trademark) for layer 2 (link level) and IP (Internet Protocol) for
図1において、ノード1は、クライアント2に対して各種サービスを提供する計算機、いわゆるクライアント−サーバモデルにおいてサーバと呼ばれるものである。なお、本発明では、ノード数に制限は無い。また、各ノードは一意なノード識別子(0,1,…)を持つ。
In FIG. 1, a
サービス用ネットワーク3は、ノード1とクライアント2の双方が接続しているネットワークであり、サーバ1とクライアント2との間の通信に使用される単一イーサネット(登録商標)セグメントである。一方、制御用ネットワーク4は、単一のIPアドレスを共有する全てのノード1が接続され、ノード1間の制御情報等のやり取りや、クライアント2のアクセスをノード1間で転送する場合に使用されるものである。
The
この制御用ネットワーク4のネットワークの種類は特に制限は無いが、一般的にコスト面で有利なイーサネット(登録商標)が用いられることが想定される。また、制御用ネットワーク4での通信に用いる上位プロトコルは特に制限は無い。つまり、IPを使わない場合は、制御用ネットワーク4に接続しているネットワークインタフェースにはIPアドレスを付与する必要もない。本発明では、この制御用ネットワーク4での具体的な通信手段(プロトコル)には言及しない。
The type of network of the
ノード1の種別には、マスタとスレーブがある。制御用ネットワーク4に接続されているノードのうち、ただひとつのノードがマスタとなり、それ以外のノードは全てスレーブとなる。マスタであるノードは特別な役割を持つ(後述)。なお、マスタの選出方法には各種方法が考えられるが、マスタ選出方法は本発明の主旨では無いため、ここでは何らかの方法でただ1つのノードがマスタに選出されることとする。
各ノード1内のサービスとは、ノード1がクライアント2に対して提供するサービスであり、例えば、NFS(Network File System)やCIFS(Common Internet File System)のようなネットワーク越しのファイルシステムサービスを提供するプログラムであったり、あるいは、データベース、Webサービス等を提供するプログラムである。なお、本発明では、サービスの内容に制約は無い。また、各ノード1上では異なるサービスを動作させることも同一のサービスを動作させることもでき、これについても制約は無い。なお、各サービスは、サービスの種別を識別するためのサービス識別子を持つ(同一サービスは同一サービス識別子を持つ)。
The service in each
また、各ノード1のサービス用ネットワーク3に接続しているネットワークインタフェースは、それぞれ別個のMACアドレスを持つ(MAC-A〜MAC-Z)が、一方で、全て同一のIPアドレスを持つ(IP-A)。
The network interface connected to the
図2は、ノード1の構成を表す図である。このノード1上では、サービス(0)からサービス(N−1)の合計N個のサービス20が動作している。
FIG. 2 is a diagram illustrating the configuration of the
SSマップ21は、サーバ−サービスマップ(Server-Serviceマップ)の略で、どのノード(サーバ)1でどのサービス20が動作しているかの一覧を保持するテーブルである。各ノード1は、それぞれのノード1上で動作しているサービス20の情報を他ノード1と交換し、各々のSSマップ21を最新の状態に保つ。詳細を図3に示す。
The SS
CSマップ22は、クライアント−サービスマップ(Client-Serviceマップ)の略で、どのクライアント2がどのノード1上のどのサービス20にアクセスしているかの一覧を保持するテーブルである。このCSマップ22に関しても、SSマップ21と同様、ノード1間で情報を交換し、各々のCSマップ22の状態を最新の状態に保つ。詳細を図4に示す。
The
MACアドレステーブル23は、制御用ネットワーク4に接続されている全ノード1について、サービス用ネットワーク3に接続しているNICに付与されているMACアドレスの一覧を保持するテーブルである。このMACアドレステーブル23に関しても、SSマップ21、CSマップ22と同様、ノード1間で情報を交換し、各々のMACアドレステーブル23の状態を最新の状態に保つ。詳細を図5に示す。
The MAC address table 23 is a table that holds a list of MAC addresses assigned to NICs connected to the
次に、ノード1内のネットワーク関連プロトコルを説明する。本来は、下位層から上位層へ、ネットワークインタフェース11,18、イーサネット(登録商標)ドライバ12,17、イーサネット(登録商標)層14、TCP/IP層15というプロトコルスタックとなるのが一般的であるが、本発明では、クライアント2から各ノード1上のサービス20へのアクセスの送信先等を制御する仮想イーサネット(登録商標)層13が、イーサネット(登録商標)ドライバ12とイーサネット(登録商標)層14との間に位置する。以下、個々のプロトコル層について説明する。
Next, a network related protocol in the
イーサネット(登録商標)ドライバ12、および17は、サービス用ネットワーク3、制御用ネットワーク4に接続するネットワークインタフェースそれぞれに対して存在し、ネットワークインタフェースを制御して、実際のイーサネット(登録商標)フレームの送受信処理を行うソフトウェアである。本発明ではイーサネット(登録商標)ドライバには特別な機能は不要であり、一般的な機能を持つものとする。
The Ethernet (registered trademark)
イーサネット(登録商標)層14は、下位層からイーサネット(登録商標)フレームを受信、あるいは、下位層へイーサネット(登録商標)フレームを送信する等、イーサネット(登録商標)プロトコルの各種処理を行うプロトコル層である。本発明では、仮想イーサネット(登録商標)層13の上位層に位置する(本来であればイーサネット(登録商標)ドライバ12の上位に位置する)ことを除けば、イーサネット(登録商標)層14に特別な機能は不要であり、一般的な機能を持つものとする。
The Ethernet (registered trademark)
TCP/IP層15は、IP、TCP、UDP等のプロトコル処理を行うプロトコル層であって、本発明では、特別な機能は不要であり、一般的な機能を持つものとする。
The TCP /
そして、仮想イーサネット(登録商標)層13は、本発明において特徴的な処理部であり、イーサネット(登録商標)ドライバ12の上位、イーサネット(登録商標)層14の下位に位置する仮想的なイーサネット(登録商標)プロトコル層である。クライアント2または制御用ネットワーク4経由で他ノード1からサービス20へのアクセスを受信し、その後の動作を決定するための処理を行う。その際、SSマップ21、CSマップ22の情報を利用する。
The virtual Ethernet (registered trademark)
まず、図6および図7のフローチャートを参照しながら、この仮想イーサネット(登録商標)層13の基本的な動作手順を説明する。なお、以後の説明において、”パケット”とは、ノード1上のサービス20を利用するためのクライアント2からのIPパケット(及びUDPまたはTCPのデータ)を格納したイーサネット(登録商標)フレームを指す。
First, a basic operation procedure of the virtual Ethernet (registered trademark)
図6は、仮想イーサネット(登録商標)層13で実行される制御情報の処理フローである。
FIG. 6 is a processing flow of control information executed in the virtual Ethernet (registered trademark)
自ノード1上で新たなサービス20が動作開始したら(ステップA1のYes)、その動作開始したサービス20のサービス識別子と自身のノード識別子との組をSSマップ21に登録する(ステップA2)。また、同サービス識別子およびノード識別子からSSマップ登録メッセージを作成し、制御用ネットワーク4にブロードキャスト(全ての他ノードへの送信)する(ステップA3)。
When the operation of the
一方、自ノード1上で動作していたサービス20が終了した場合には(ステップA4のYes)、その動作終了したサービス20のサービス識別子と自身のノード識別子との組に一致するエントリをSSマップ21から削除する(ステップA5)。また、同サービス識別子およびノード識別子からSSマップ削除メッセージを作成し、制御用ネットワーク4にブロードキャストする(ステップA6)。
On the other hand, when the
また、制御用ネットワーク4からイーサネット(登録商標)ドライバ17経由でSSマップ登録メッセージを受信すると(ステップA7のYes)、受け取ったSSマップ登録メッセージに含まれるノード識別子とサービス識別子との組に一致するエントリが自身のSSマップ21に存在するか調べ(ステップA8)、存在しなければ(ステップA8のNo)、それらの情報をSSマップ21に登録する(ステップA9)。既に存在すれば(ステップA8のYes)、ここでは特に何もしない。
When an SS map registration message is received from the
一方、制御用ネットワーク4からイーサネット(登録商標)ドライバ12経由でSSマップ削除メッセージを受信すると(ステップA10のYes)、受け取ったSSマップ削除メッセージに含まれるノード識別子とサービス識別子との組に一致するエントリが自身のSSマップ21に存在するか調べ(ステップA11)、存在すれば(ステップA11のYes)、それらの情報をSSマップ21から削除する(ステップA12)。存在しなければ(ステップA11のNo)、ここでは特に何もしない。
On the other hand, when the SS map deletion message is received from the
さらに、制御用ネットワーク4からイーサネット(登録商標)ドライバ17経由でCSマップ登録メッセージを受け取ると(ステップA13のYes)、受け取ったCSマップ登録メッセージに含まれるクライアント情報、ノード識別子およびサービス識別子の組に一致するエントリが自身のCSマップ22に存在するか調べ(ステップA14)、存在しなければ(ステップA14のNo)、それらの情報をCSマップ22に登録する(ステップA15)。既に存在すれば(ステップA14のYes)、ここでは特に何もしない。
Further, when a CS map registration message is received from the
また、図7は、仮想イーサネット(登録商標)層13で実行されるクライアント2からのアクセス(パケット)の処理フローである。
FIG. 7 is a processing flow of access (packet) from the
パケットを受信すると、まず、パケットを送信したクライアント2が既知、即ち、CSマップ22に登録されたクライアント2かどうかを調べる(ステップB1)。もし、未知のクライアント2であれば(ステップB1のNo)、SSマップ21を参照し、以下の処理(ステップB2〜ステップB13)を行う。
When a packet is received, first, it is checked whether or not the
クライアント2がアクセスしようとしているサービス20が自ノード1上のみで動作している場合(ステップB2のYes)、クライアント2からのパケットを上位層(イーサネット(登録商標)層14)に渡す(ステップB3)。即ち、自ノード1上で動作している該当サービス20へクライアント2からのアクセスを引き渡すことになる。そして、当該クライアント2、当該クライアント2がアクセスしようとしたノード識別子、サービス識別子の組からなる情報をCSマップ22に登録する(ステップB4)。この時、これらの情報からCSマップ登録メッセージを作成し、制御用ネットワーク4にブロードキャストする。
When the
クライアント2がアクセスしようとしているサービス20が他ノード1上のみで動作している場合であって、かつ、ただ1つのノード1上で動作している場合(ステップB5のYes)、このクライアント2からのパケットをサービス20が動作しているノード1へ転送する(ステップB6)。即ち、クライアント2からのパケットの宛先MACアドレスを当該ノード1の制御用ネットワーク4に接続しているネットワークインタフェースのものに置き換え、制御用ネットワーク4側のイーサネット(登録商標)ドライバ17に渡す。また、当該クライアント2のMACアドレス、転送先ノード1のサービス用ネットワーク3側のネットワークインタフェース18のMACアドレスを格納し、“根拠の無いARP(GratuitousARP)”の送信要求をARP処理部19に対して発行する(ステップB7)。以後、当該クライアント2から他ノード1上のサービス20へのアクセスが、自ノード1を経由しないようにするための措置である。そして、その後、ステップB4の手順で、CSマップ22への登録を行う。
If the
クライアント2がアクセスしようとしているサービス20が他ノード1上のみで動作している場合であって、かつ、複数のノード1上で動作している場合(ステップB8のYes)、CSマップ22を参照し、当該サービス20が動作しているノード1の内、クライアント2からのアクセスが最も少ないサービス20が動作しているノード1を選択し(ステップB9)、前述のステップB6〜ステップB7の手順で、当該クライアント2からのパケットを転送し、ステップB4の手順で、CSマップ22への登録を行う。なお、アクセス頻度が同じであれば、転送先ノード1はランダムに選択する。
If the
クライアント2がアクセスしようとしているサービス20が自ノード1および他ノード1の両方で動作している場合(ステップB10のYes)、CSマップ22を参照し、当該サービス20が動作しているノードの内、クライアント2からのアクセスが最も少ないサービス20が動作しているノードを選択する(ステップB11)。そして、そのノード1が自ノード1でなければ(ステップB12のNo)、前述のステップB6〜ステップB7の手順で、当該クライアントからのパケットを転送する。一方、クライアント2からのアクセスが最も少ないサービス20が動作しているノード1が自ノード1であれば(ステップB12のYes)、前述のステップB3〜ステップB4の手順で、自ノード1上の上位層(イーサネット(登録商標)層14)に当該クライアント2からのパケットを渡すと共に、CSマップ22への登録を行う。なお、アクセス頻度が同じであれば自ノード1を選択する。
When the
なお、ステップB2,B5,B8,B10のいずれの条件にも該当しない場合(ステップB10のNo)、そのサービス20はいずれにも存在しないので、クライアント2からのパケットを上位層(イーサネット(登録商標)層14)に渡し、TCP/IP15にエラー処理を実行させる(ステップB13)。
If none of the conditions in steps B2, B5, B8, and B10 is satisfied (No in step B10), the
また、クライアント2が既知であった場合(ステップB1のYes)、CSマップを参照し、以下の処理(ステップB14〜ステップB18)を行う。
If the
クライアント2が自ノード1上のサービス20にアクセスしようとしている場合(ステップB14のYes)、このクライアント2からのパケットを上位層(イーサネット(登録商標)層14)に渡す(ステップB15)。即ち、前述のステップB3と同様、自ノード1上で動作している該当サービスへクライアント2からのアクセスを引き渡すことになる。
When the
一方、クライアント2が他ノード1上のサービスにアクセスしようとしている場合(ステップB14のNo)、CSマップ22からアクセス先のノード1を同定し(ステップB16)、当該アクセスをそのノード1へ転送する(ステップB17)。即ち、前述のステップB6と同様、クライアント2からのパケットの宛先MACアドレスを上記選択したノード1の制御用ネットワーク4に接続しているネットワークインタフェースのものに置き換え、制御用ネットワーク4側のイーサネット(登録商標)ドライバ17に渡す。また、前述のステップB7と同様、当該クライアント2のMACアドレス、転送先ノード1のサービス用ネットワーク3側のネットワークインタフェースのMACアドレスを格納し、“根拠の無いARP(GratuitousARP)”の送信要求をARP処理部19に対して発行する(ステップB18)。
On the other hand, when the
以上のように動作する、イーサネット(登録商標)ドライバ12とイーサネット(登録商標)層14との間に介在して設けられる仮想イーサネット(登録商標)層13の働きにより、ノード1群の前段に負荷分散装置を設置すること無く、かつ、単一のIPアドレスのみの使用で、複数ノード1を論理的に単一のノード1に見せることが可能となる。
The operation of the virtual Ethernet (registered trademark)
なお、ARP処理部19は、ARP要求の受信、ARP応答の送信および仮想イーサネット(登録商標)層13からの指示に基づき“根拠の無いARP(GratuitousARP)”の送信を行う部分であり、MACアドレステーブルを利用する。具体的には、以下の処理を行う。
The
未知のクライアント2、即ち、CSマップ22に登録されていないクライアント2からARP要求を受信すると、自身がマスタならば自身のMACアドレスを送信元MACアドレスフィールドに設定したARP応答をそのクライアント2へ送信する。一方、自身がスレーブならば何もしない。
When an ARP request is received from an
一方、既知のクライアント2、即ち、CSマップ22に登録されているクライアント2からARP要求を受信すると、当該クライアント2が自ノード1上で動作しているサービス20にアクセスしているのであれば、自身のMACアドレスを送信元MACアドレスフィールドに設定したARP応答をそのクライアント2へ送信する。一方、そうでない場合は何もしない。
On the other hand, when an ARP request is received from a known
また、仮想イーサネット(登録商標)層13から“根拠の無いARP(GratuitousARP)”の送信要求を受け取ると、サービス用ネットワーク3に“根拠の無いARP(GratuitousARP)”を送信する。この時の宛先MACアドレスフィールドおよび送信元MACアドレスフィールドは、仮想イーサネット(登録商標)層13からの指示によるが、送信元MACアドレスフィールドは、クライアント2がアクセスしようとしたサービス20が動作しているノード1のMACアドレスであり、仮想イーサネット(登録商標)層13から受け取ったノード情報からMACアドレステーブル23を参照して取得する。一方、宛先MACアドレスフィールドは、当該ノード1上のサービス20にアクセスしようとしたクライアント2のMACアドレスである。
Further, upon receiving a transmission request for “unfounded ARP (Gratuitous ARP)” from the virtual Ethernet (registered trademark)
なお、以上のARP応答、“根拠の無いARP(GratuitousARP)”の送信元IPアドレスフィールドは、すべてノード1群が共有するIPアドレスである。
Note that the source IP address field of the above ARP response, “Unconditional ARP (Gratuitous ARP)” is an IP address shared by the
また、生存確認処理部16は、他ノード1との間の定期的な生存確認メッセージのやり取りを行う。あるノード1との生存確認が途切れた場合、SSマップ21、CSマップ22、MACアドレステーブル23の当該ノード1に関するエントリを全て破棄する。具体的には以下の処理を行う。
In addition, the survival
ノード1が起動した後、定期的な生存確認メッセージの送信を開始する。つまり、制御用ネットワーク4に生存確認メッセージをブロードキャストする。生存確認メッセージに自身のノード識別子と、サービス用ネットワーク3に接続しているネットワークインタフェースに付与されているMACアドレスとを含める。このようにすることで、他のノード1へ自身のMACアドレスを通知する。
After
一方、制御用ネットワーク4から生存確認メッセージを受信したら、この生存確認メッセージからノード識別子とMACアドレスを取り出し、これらのエントリがMACアドレステーブル23になければ登録し、既に登録されていれば何もしない。
On the other hand, when the existence confirmation message is received from the
そして、一定時間以上、あるノード1から生存確認メッセージを受信しなかったら、SSマップ21、CSマップ22、MACアドレステーブル23のそのノード1に関するエントリを全て削除する。
If a survival confirmation message is not received from a
ここで、より具体的な例を挙げて、各クライアント2およびノード1間の相互作用、各種情報の流れを説明する。以下の説明で使用する構成の全体を図8に、その時点での各ノード1のSSマップ21、CSマップ22、MACアドレステーブル23の状態をそれぞれ図9(ノード(0)1の状態)および図10(ノード(1)1の状態)に示す。
Here, the interaction between each
図8に示す通り、ここでは、ノード1は2つで、MACアドレスとして、それぞれMAC-A、MAC-Bを持つ。一方、IPアドレスは、192.168.1.1で、2つのノード1はこれを共有している。また、ノード(0)1がマスタである。
As shown in FIG. 8, here, there are two
また、図9、図10に示す通り、双方のノード1上でNFSサービス20、CIFSサービス20が、ノード(0)1上でHTTPサービス20が、ノード(1)1上でDNSサービス20が動作しており、更に、クライアント(0)2はノード(0)1上のサービス(0)20、即ち、NFSサービス20に、クライアント(1)2はノード(1)1上のサービス(1)20、即ち、CIFSサービス20にアクセスしている状態である。一方、クライアント(2)2、クライアント(3)2は何れのノード1上のサービス20にもアクセスしていない状態である。なお、各サービスの概要は以下の通りである。
Further, as shown in FIGS. 9 and 10, the
(a)NFSサービス(サービス識別子=0)
NFS(Network File System)を提供するサーバプログラム。
(A) NFS service (service identifier = 0)
A server program that provides NFS (Network File System).
(b)CIFSサービス(サービス識別子=1)
CIFS(Common Internet File System)を提供するサーバプログラム。
(B) CIFS service (service identifier = 1)
A server program that provides CIFS (Common Internet File System).
(c)HTTPサービス(サービス識別子=2)
HTTP(Hyper Text Transfer Protocol)サービスを提供するプログラム。
(C) HTTP service (service identifier = 2)
A program that provides HTTP (Hyper Text Transfer Protocol) services.
(d)DNSサービス(サービス識別子=3)
DNS(Domain Name service)サービスを提供するプログラム。
(D) DNS service (service identifier = 3)
A program that provides DNS (Domain Name service) services.
次に、クライアント2からのアクセスに応じたノード(0)1およびノード(1)1の動作手順と生存確認処理部16関連の動作手順とをケース別に説明する。なお、ノード1内の各機能の処理については既述の通りであるので、ここでは詳述しない。
Next, the operation procedure of the node (0) 1 and the node (1) 1 according to the access from the
(1)既知のクライアント2からARP要求を受信した場合
クライアント(0)2が192.168.1.1に対するARP要求をサービス用ネットワーク3へブロードキャストした場合、ノード(0)1、ノード(1)1はそれぞれ以下の処理を行う。
(1) When ARP request is received from known
(a)ノード(0)1
CSマップ22を参照し、クライアント(0)2が自ノード1上のサービス(0)20にアクセスしていることから、送信元MACアドレスフィールドを自ノードのMACアドレスMAC-Aに、宛先MACアドレスフィールドをクライアント(0)2のMACアドレスに設定し、ARP応答を送信する。
(A) Node (0) 1
Since the client (0) 2 is accessing the service (0) 20 on the
(b)ノード(1)1
CSマップ22を参照し、クライアント(0)が自ノード1上のサービス20にはアクセスしていないことから、何もしない。
(B) Node (1) 1
With reference to the
(2)未知のクライアント2からARP要求を受信した場合
クライアント(2)2が192.168.1.1に対するARP要求をサービス用ネットワーク3へブロードキャストした場合、ノード(0)1、ノード(1)1はそれぞれ以下の処理を行う。
(2) When an ARP request is received from an
(a)ノード(0)1
ノード(0)1はマスタなので、送信元MACアドレスフィールドを自ノード1のMACアドレスMAC-Aに、宛先MACアドレスフィールドをクライアント(2)2のMACアドレスに設定し、ARP応答を送信する。
(A) Node (0) 1
Since the node (0) 1 is a master, the source MAC address field is set to the MAC address MAC-A of the
(b)ノード(1)1
ノード(1)はスレーブなので、未知の(CSマップ22に登録されていない)クライアント(2)2からのARP要求を受信しても何もしない。
(B) Node (1) 1
Since the node (1) is a slave, it does nothing even if it receives an ARP request from an unknown client (2) 2 (not registered in the CS map 22).
(3)既知のクライアント2から自ノード1上のサービス20へのパケットを受信した場合
クライアント(0)2のARPテーブル(各クライアント2がARP処理を行うために備えるテーブル)にて、192.168.1.1に対するMACアドレスとしてMAC-Aのエントリがある状態で、クライアント(0)2がサービス(0:NFSサービス)20にアクセスした場合、ノード(0)1がクライアント(0)2からのパケットを受信する。
(3) When a packet from the known
ノード(0)1はCSマップ22を参照し、クライアント(0)2が自ノード1上のサービス(0)20にアクセス中であることを確認し、当該パケットを自ノード1上のサービス(0)20に送信する。つまり、ノード(0)1がクライアント(0)2に対してサービス(0)20のサービスを提供することとなる。
The node (0) 1 refers to the
(4)既知のクライアント2から他ノード1上のサービス20へのパケットを受信した場合
クライアント1のARPテーブルにて、192.168.1.1に対するMACアドレスとしてMAC-Aのエントリがある状態で、クライアント(1)2がサービス(1:CIFSサービス)20にアクセスした場合、ノード(0)1がクライアント(1)2からのパケットを受信する。
(4) When a packet from the known
ノード(0)1はCSマップ22を参照し、クライアント(1)2がノード(1)1上のサービス(1)20にアクセス中であることを確認し、制御用ネットワーク4経由で当該パケットをノード1に転送する。
The node (0) 1 refers to the
また、MACアドレステーブル23からノード(1)1のMACアドレスを読み出し、送信元MACアドレスフィールドをノード(1)1のMACアドレスに、宛先MACアドレスフィールドをクライアント(1)2のMACアドレスに設定し、“根拠の無いARP(GratuitousARP)”を送信する。 Also, the MAC address of the node (1) 1 is read from the MAC address table 23, the source MAC address field is set to the MAC address of the node (1) 1, and the destination MAC address field is set to the MAC address of the client (1) 2. , “Unfounded ARP (Gratuitous ARP)” is transmitted.
このように“根拠の無いARP(GratuitousARP)”を送信することで、次回のクライアント(1)2からの192.168.1.1のサービス(1)20へのパケットはノード(1)1で受信されるはずである。一方、ノード(0)1から、クライアント(1)2からのパケットを転送されたノード(1)1は、そのパケットを自ノード1上のサービス(1)20に送信する。つまり、ノード(1)1がクライアント(1)2に対してサービス(1)20のサービスを提供することとなる。
In this way, by transmitting “Unconditional ARP (Gratuitous ARP)”, the next packet from the client (1) 2 to the service (1) 20 of 192.168.1.1 should be received by the node (1) 1 It is. On the other hand, the node (1) 1 to which the packet from the client (1) 2 is transferred from the node (0) 1 transmits the packet to the service (1) 20 on the
なお、サービス(1)20からのクライアント(1)2への折り返しのパケットは、ノード(1)1から直接クライアント(1)2に送信し、ノード(0)1への転送は行わない。 The return packet from the service (1) 20 to the client (1) 2 is directly transmitted from the node (1) 1 to the client (1) 2, and is not transferred to the node (0) 1.
(5)未知のクライアント2から自ノード1上のみにあるサービス20へのパケットを受信した場合
クライアント(2)2のARPテーブルにて、192.168.1.1に対するMACアドレスとしてMAC-Aのエントリがある状態で、クライアント(2)2がサービス(2:HTTPサービス)20にアクセスした場合、ノード(0)1がクライアント(2)2からのパケットを受信する。
(5) When a packet is received from an
ノード(0)1は、CSマップ22を参照し、クライアント(2)2は何れのノード1上のサービス20にもアクセス中ではないことを確認する。次に、ノード(0)1は、SSマップ21を参照し、自ノード1上でサービス(2)20が動作していることを確認すると、クライアント(2)2からのパケットをサービス(2)20へ送信する。つまり、ノード(0)1がクライアント(2)2に対してサービス(2)20のサービスを提供することとなる。また、クライアント(2)2、自ノード1のノード識別子、サービス識別子(2)のエントリを自ノード1のCSマップ22に登録すると共に、これらの情報をCSマップ登録メッセージに格納し、制御用ネットワーク4経由で他ノード1に送信する。
The node (0) 1 refers to the
制御用ネットワーク4経由でCSマップ登録メッセージを受け取った他ノード1(ここではノード(1)1)は、CSマップ登録メッセージからクライアント、ノード識別子、サービス識別子の情報を取り出し、これらのエントリが自ノード1上のCSマップ22に登録されていなければ登録し、既に登録されていれば登録を行わない。
The other node 1 (here, node (1) 1) that has received the CS map registration message via the
以上の処理が完了した後のノード(0)1、ノード(1)1双方のCSマップ22は、図11のようになる。 The CS maps 22 of both the node (0) 1 and the node (1) 1 after the above processing is completed are as shown in FIG.
(6)未知のクライアント2から他ノード1上のみにあるサービス20へのパケットを受信した場合
クライアント(3)2のARPテーブルにて、192.168.1.1に対するMACアドレスとしてMAC-Aのエントリがある状態で、クライアント(3)2がサービス(3:DNSサービス)20にアクセスした場合、ノード(0)1がクライアント(3)2からのパケットを受信する。
(6) When a packet is received from an
ノード(0)1は、CSマップ22を参照し、クライアント(3)2は何れのノード1上のサービス20にもアクセス中ではないことを確認する。次に、ノード(0)1は、SSマップ21を参照し、ノード(1)1上でサービス(3)20が動作していることを確認すると、クライアント(3)2からのパケットを制御用ネットワーク4経由でノード(1)1へ転送する。
The node (0) 1 refers to the
また、MACアドレステーブルからノード(1)1のMACアドレスを読み出し、送信元MACアドレスフィールドをノード(1)1のMACアドレスに、宛先MACアドレスフィールドをクライアント(3)2のMACアドレスに設定し、“根拠の無いARP(GratuitousARP)”を送信する。 Further, the MAC address of the node (1) 1 is read from the MAC address table, the source MAC address field is set to the MAC address of the node (1) 1, and the destination MAC address field is set to the MAC address of the client (3) 2. “Unfounded ARP (Gratuitous ARP)” is transmitted.
このように“根拠の無いARP(GratuitousARP)”を送信することで、次回のクライアント(3)2からの192.168.1.1のサービス(3)20へのパケットはノード(1)1で受信されるはずである。一方、ノード(0)1から、クライアント(3)2からのパケットを転送されたノード(1)1は、そのパケットを自ノード1上のサービス(3)20に送信する。つまり、ノード(1)1がクライアント(3)2に対してサービス(3)20のサービスを提供することとなる。
In this way, by transmitting “Gratuitous ARP”, the packet from the next client (3) 2 to the service (3) 20 of 192.168.1.1 should be received by the node (1) 1 It is. On the other hand, the node (1) 1 to which the packet from the client (3) 2 has been transferred from the node (0) 1 transmits the packet to the service (3) 20 on its
なお、サービス(3)20からのクライアント(3)2への折り返しのパケットは、ノード(1)1から直接クライアント(3)2に送信し、ノード(0)1への転送は行わない。更に、ノード(1)1は、クライアント(3)2、自ノード1のノード識別子、サービス識別子(3)のエントリを自ノード1のCSマップ22に登録すると共に、これらの情報をCSマップ登録メッセージに格納し、制御用ネットワーク4経由で他ノード1に送信する。
Note that the return packet from the service (3) 20 to the client (3) 2 is transmitted directly from the node (1) 1 to the client (3) 2, and is not transferred to the node (0) 1. Further, the node (1) 1 registers the entry of the client (3) 2, the node identifier of the
制御用ネットワーク4経由でCSマップ登録メッセージを受け取った他ノード1(ここではノード(0)1)は、CSマップ登録メッセージからクライアント、ノード識別子、サービス識別子の情報を取り出し、これらのエントリが自ノード1上のCSマップ22に登録されていなければ登録し、既に登録されていれば登録を行わない。
The other node 1 (here, node (0) 1) that has received the CS map registration message via the
以上の処理が完了した後のノード(0)1、ノード(1)1双方のCSマップ22は、図12のようになる。
The
(7)未知のクライアント2から自ノード1および他ノード1上にあるサービス20へのパケットを受信した場合であって、かつ、自ノード1上のサービス20へは他のクライアント2がアクセス中である場合
クライアント(4)2のARPテーブルにて、192.168.1.1に対するMACアドレスとしてMAC-Aのエントリがある状態で、クライアント(4)2がサービス(0:NFSサービス)20にアクセスした場合、ノード(0)1がクライアント(4)2からのパケットを受信する。
(7) When a packet from the
ノード(0)1は、CSマップ22を参照し、クライアント(4)2は何れのノード1上のサービス20にもアクセス中ではないことを確認する。次に、ノード(0)1は、SSマップ21を参照し、ノード(0)1、ノード(1)1双方でサービス(0)20が動作していることを確認する。更に、ノード(0)1は、CSマップ22を参照し、ノード(0:自ノード)1上のサービス(0)20には既に他のクライアント2(クライアント(0)2)がアクセスしており、一方、ノード(1)1上のサービス(0)20にはクライアント2からのアクセスが無いことを確認する。その結果、ノード(1)1上のサービス(0)20の方がクライアント2からのアクセスが少ないので、クライアント(4)20からのパケットを制御用ネットワーク4経由でノード(1)1へ転送する。
The node (0) 1 refers to the
また、MACアドレステーブルからノード(1)1のMACアドレスを読み出し、送信元MACアドレスフィールドをノード(1)のMACアドレスに、宛先MACアドレスフィールドをクライアント(4)2のMACアドレスに設定し、“根拠の無いARP(GratuitousARP)”を送信する。 Also, the MAC address of the node (1) 1 is read from the MAC address table, the source MAC address field is set to the MAC address of the node (1), the destination MAC address field is set to the MAC address of the client (4) 2, and “ Send ARP (Gratuitous ARP) ".
このように“根拠の無いARP(GratuitousARP)”を送信することで、次回のクライアント(4)2からの192.168.1.1のサービス(0)20へのパケットはノード(1)1で受信されるはずである。一方、ノード(0)1から、クライアント(4)2からのパケットを転送されたノード(1)1は、そのパケットを自ノード1上のサービス(0)20に送信する。つまり、ノード(1)1がクライアント(4)2に対してサービス(0)20のサービスを提供することとなる。
In this way, by transmitting “Unconditional ARP (Gratuitous ARP)”, the next packet from the client (4) 2 to the service (0) 20 of 192.168.1.1 should be received by the node (1) 1 It is. On the other hand, the node (1) 1 to which the packet from the client (4) 2 is transferred from the node (0) 1 transmits the packet to the service (0) 20 on its
なお、サービス(0)20からのクライアント(4)2への折り返しのパケットは、ノード(1)1から直接クライアント(4)2に送信し、ノード(0)1への転送は行わない。更に、ノード(1)1は、クライアント(4)2、自ノード1のノード識別子、サービス識別子(0)のエントリを自ノード1のCSマップ22に登録すると共に、これらの情報をCSマップ登録メッセージに格納し、制御用ネットワーク4経由で他ノード1に送信する。
Note that the return packet from the service (0) 20 to the client (4) 2 is transmitted directly from the node (1) 1 to the client (4) 2, and is not transferred to the node (0) 1. Further, the node (1) 1 registers the entry of the client (4) 2, the node identifier of the
制御用ネットワーク4経由でCSマップ登録メッセージを受け取った他ノード1(ここではノード(0)1)は、CSマップ登録メッセージからクライアント、ノード識別子、サービス識別子の情報を取り出し、これらのエントリが自ノード1上のCSマップ22に登録されていなければ登録し、既に登録されていれば登録を行わない。
The other node 1 (here, node (0) 1) that has received the CS map registration message via the
以上の処理が完了した後のノード(0)1、ノード(1)1双方のCSマップ22は、図13のようになる。 The CS maps 22 of both the node (0) 1 and the node (1) 1 after the above processing is completed are as shown in FIG.
なお、クライアント2からのアクセスを自ノード1のサービス20に送信するか、制御用ネットワーク4経由で他ノード1に転送するかを決定するアルゴリズムとして、上記では、アクセスを受けたサービス20へ既にアクセスしているクライアント2の数を判断基準にしたものを用いているが、他のアルゴリズムも使用可能であり、例えば、単純にラウンドロビンで転送先ノードを決めたり、上記のようなサービス単位のクライアント2からのアクセス数ではなく、ノード1単位のクライアント2からのアクセス数を元に判断することも可能である。
Note that, as an algorithm for determining whether the access from the
(8)未知のクライアント2から自ノード1および他ノード1上にあるサービス20へのパケットを受信した場合であって、かつ、他ノード1上のサービス20へは他のクライアント2がアクセス中である場合
クライアント(5)2のARPテーブルにて、192.168.1.1に対するMACアドレスとしてMAC-Aのエントリがある状態で、クライアント(5)2がサービス(1:CIFSサービス)20にアクセスした場合、ノード(0)1がクライアント(5)2からのパケットを受信する。
(8) When a packet from the
ノード(0)1は、CSマップ22を参照し、クライアント(5)2は何れのノード1上のサービス20にもアクセス中ではないことを確認する。次に、ノード(0)1は、SSマップ21を参照し、ノード(0)1、ノード(1)1双方でサービス(1)20が動作していることを確認する。更に、ノード(0)1は、CSマップ22を参照し、ノード(1:他ノード)1上のサービス(1)20には既に他のクライアント2(クライアント(1)2)がアクセスしており、一方、自ノード1上のサービス(1)20にはクライアント2からのアクセスが無いことを確認する。その結果、自ノード1上のサービス(1)20の方がクライアント2からのアクセスが少ないので、クライアント(5)2からのパケットを自ノード1のサービス(1)20へ送信する。つまり、ノード(0)1がクライアント(5)2に対してサービス(1)20のサービスを提供することとなる。
The node (0) 1 refers to the
また、クライアント(5)2、自ノード1のノード識別子、サービス識別子1のエントリを自ノード1のCSマップ22に登録すると共に、これらの情報をCSマップ登録メッセージに格納し、制御用ネットワーク4経由で他ノード1に送信する。
In addition, the client (5) 2, the node identifier of the
制御用ネットワーク4経由でCSマップ登録メッセージを受け取った他ノード1(ここではノード(1)1)は、CSマップ登録メッセージからクライアント、ノード識別子、サービス識別子の情報を取り出し、これらのエントリが自ノード1上のCSマップ22に登録されていなければ登録し、既に登録されていれば登録を行わない。
The other node 1 (here, node (1) 1) that has received the CS map registration message via the
以上の処理が完了した後のノード(0)1、ノード(1)1双方のCSマップ22は、図14のようになる。 The CS maps 22 of both the node (0) 1 and the node (1) 1 after the above processing is completed are as shown in FIG.
(9)ノード1がダウンした場合
ノード(0)1は、ノード(1)1からの生存確認メッセージを一定時間以上受信しないため、自身のSSマップ21、CSマップ22、MACアドレステーブル23からノード(1)に関するエントリを全て削除する。
(9) When
以上の処理が完了した後のノード(0)1のSSマップ21、CSマップ22、MACアドレステーブル23は、図15のようになる。
The
なお、ノード(1)1ダウン後も、このノード(1)1上のみで動作していたサービス(3)20以外のサービス20については、ノード(0)1にて引き継いでクライアント2に提供することが可能である。
Note that the
このように、本サーバシステムでは、各ノード(サーバ)1が協働して、クライアント2に対するサービス20の提供を負荷分散し、ノード1群の前段に負荷分散装置を設置すること無く、かつ、単一のIPアドレスのみの使用で、複数ノード1を論理的に単一のノード1に見せることを可能とする。
In this way, in this server system, each node (server) 1 cooperates to load distribute the provision of the
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the components without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.
1…ノード、2…クライアント、3…サービス用ネットワーク、4…制御用ネットワーク、11…ネットワークインタフェース、12…イーサネット(登録商標)ドライバ、13…仮想イーサネット(登録商標)層、14…イーサネット(登録商標)層、15…TCP/IP、16…生存確認処理部、17…イーサネット(登録商標)ドライバ、18…ネットワークインタフェース、19…ARP処理部、20…サービス、21…SSマップ、22…CSマップ、23…MACアドレステーブル。
DESCRIPTION OF
Claims (16)
前記クライアント装置からのパケットを前記他のサーバ装置に転送するパケット転送手段と、
前記パケット転送手段によるパケットの転送が行われた場合に、そのパケットの送信元である前記クライアント装置のMACアドレスを送信先アドレスとし、かつ、そのパケットの転送先である前記他のサーバ装置のMACアドレスを送信元MACアドレスとするGratuitousARP(Address Resolution Protocol)を、そのパケットの送信元である前記クライアント装置に送信するARP処理手段と
を具備することを特徴とするサーバ装置。 A server device that provides a service to a client device in cooperation with another server device sharing a single IP address,
Packet transfer means for transferring a packet from the client device to the other server device;
When a packet is transferred by the packet transfer means, the MAC address of the client device that is the transmission source of the packet is used as a transmission destination address, and the MAC of the other server device that is the transfer destination of the packet A server apparatus comprising: ARP processing means for transmitting Gratuitous ARP (Address Resolution Protocol) having an address as a transmission source MAC address to the client apparatus that is a transmission source of the packet .
前記パケット転送手段は、前記クライアント装置が要求するサービスを提供するサーバ装置を前記SSマップ管理手段で管理されるマッピング情報から取得し、そのサーバ装置にパケットを転送することを特徴とする請求項1記載のサーバ装置。 Comprising SS map management means for managing mapping information indicating the correspondence between all server devices sharing the IP address and the service provided by the server device;
2. The packet transfer unit acquires a server device that provides a service requested by the client device from mapping information managed by the SS map management unit, and transfers the packet to the server device. The server apparatus of description.
前記パケット転送手段は、サービスを提供するクライアント装置の総数が最も少ないサーバ装置を前記CSマップ管理手段で管理されるマッピング情報から取得し、そのサーバ装置にパケットを転送することを特徴とする請求項1記載のサーバ装置。 CS map management means for managing mapping information indicating a correspondence between a client device receiving a service and a server device providing the service to the client device;
The packet transfer means acquires a server apparatus having the smallest total number of client apparatuses providing a service from mapping information managed by the CS map management means, and transfers the packet to the server apparatus. 1. The server device according to 1.
サービスの提供を受けているクライアント装置とそのクライアント装置にサービスを提供するサーバ装置との対応づけを示すマッピング情報を管理するCSマップ管理手段と
を具備し、
前記パケット転送手段は、前記クライアント装置が要求するサービスを提供するサーバ装置のうち、サービスを提供するクライアント装置の総数が最も少ないサーバ装置を前記SSマップ管理手段で管理されるマッピング情報と前記CSマップ管理手段で管理されるマッピング情報とから取得し、そのサーバ装置にパケットを転送することを特徴とする請求項1記載のサーバ装置。 SS map management means for managing mapping information indicating associations between all server devices sharing the IP address and services provided by the server devices;
CS map management means for managing mapping information indicating a correspondence between a client device receiving a service and a server device providing the service to the client device;
The packet transfer means includes mapping information managed by the SS map management means and the CS map for a server apparatus having the smallest total number of client apparatuses that provide services among server apparatuses that provide services requested by the client apparatuses. 2. The server apparatus according to claim 1, wherein the server apparatus acquires the mapping information managed by the management means and transfers the packet to the server apparatus.
前記SSマップ管理手段は、前記生存確認手段による前記生存確認メッセージの受信が一定期間以上無い他のサーバ装置に関するマッピング情報を削除することを特徴とする請求項2または4記載のサーバ装置。 A survival confirmation means for transmitting / receiving a survival confirmation message to / from another server device is provided,
5. The server device according to claim 2, wherein the SS map management unit deletes mapping information related to another server device that has not received the survival confirmation message by the survival confirmation unit for a certain period of time.
前記CSマップ管理手段は、前記生存確認手段による前記生存確認メッセージの受信が一定期間以上無い他のサーバ装置に関するマッピング情報を削除することを特徴とする請求項3または4記載のサーバ装置。 A survival confirmation means for transmitting / receiving a survival confirmation message to / from another server device is provided,
5. The server apparatus according to claim 3, wherein the CS map management unit deletes mapping information related to another server apparatus that has not received the survival confirmation message by the survival confirmation unit for a predetermined period or longer.
前記パケット転送手段は、前記パラメータにより示される各サーバ装置の状態により前記パケットを転送する他のサーバ装置を選択することを特徴とする請求項1記載のサーバ装置。 Comprising parameter transmission / reception means for transmitting / receiving parameters indicating the state of each server device to / from other server devices;
2. The server apparatus according to claim 1, wherein the packet transfer unit selects another server apparatus that transfers the packet according to a state of each server apparatus indicated by the parameter.
前記パケット転送手段は、前記パラメータにより示されるCPU負荷が最も小さいサーバ装置にパケットを転送することを特徴とする請求項10記載のサーバ装置。 The parameter includes the CPU load of each server device,
11. The server apparatus according to claim 10, wherein the packet transfer means transfers a packet to a server apparatus having the smallest CPU load indicated by the parameter.
前記パケット転送手段は、前記パラメータにより示される入出力負荷が最も小さいサーバ装置にパケットを転送することを特徴とする請求項10記載のサーバ装置。 The parameter includes an input / output load on the storage medium of each server device,
11. The server apparatus according to claim 10, wherein the packet transfer means transfers a packet to a server apparatus having the smallest input / output load indicated by the parameter.
前記複数のサーバ装置間を接続するための第1のネットワークと、
サービスの提供を受けるクライアント装置と前記複数のサーバ装置との間を接続するための第2のネットワークと
を具備することを特徴とするサーバシステム。 A plurality of server devices according to any one of claims 1 to 13, which share a single IP address;
A first network for connecting the plurality of server devices;
A server system comprising: a client device receiving service provision; and a second network for connecting the plurality of server devices.
前記複数のサーバ装置間を接続すると共に、サービスの提供を受けるクライアント装置と前記複数のサーバ装置との間を接続するためのネットワークと
を具備することを特徴とするサーバシステム。 A plurality of server devices according to any one of claims 1 to 13, which share a single IP address;
A server system comprising: a connection between the plurality of server devices, and a network for connecting a client device receiving a service and the plurality of server devices.
前記複数のサーバ装置それぞれが、
前記クライアント装置からのパケットを他のサーバ装置に転送するステップと、
前記パケットの転送を行った場合に、そのパケットの送信元である前記クライアント装置のMACアドレスを送信先アドレスとし、かつ、そのパケットの転送先である前記他のサーバ装置のMACアドレスを送信元MACアドレスとするGratuitousARPを、そのパケットの送信元である前記クライアント装置に送信するステップと
を具備することを特徴とする負荷分散方法。 A load distribution method for a server system for providing a service to a client device with a plurality of server devices sharing a single IP address,
Each of the plurality of server devices
Transferring a packet from the client device to another server device;
When the packet is transferred, the MAC address of the client device that is the transmission source of the packet is used as the transmission destination address, and the MAC address of the other server device that is the transfer destination of the packet is the transmission source MAC Transmitting a gratuitous ARP as an address to the client device that is the transmission source of the packet .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005072990A JP3930516B2 (en) | 2005-03-15 | 2005-03-15 | Server apparatus, server system, and server system load balancing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005072990A JP3930516B2 (en) | 2005-03-15 | 2005-03-15 | Server apparatus, server system, and server system load balancing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006259845A JP2006259845A (en) | 2006-09-28 |
JP3930516B2 true JP3930516B2 (en) | 2007-06-13 |
Family
ID=37099073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005072990A Expired - Fee Related JP3930516B2 (en) | 2005-03-15 | 2005-03-15 | Server apparatus, server system, and server system load balancing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3930516B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013183287A (en) * | 2012-03-01 | 2013-09-12 | Nec Corp | Information processing system, server system, controller, information processing method and program |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008219530A (en) * | 2007-03-06 | 2008-09-18 | Kddi Corp | System and program transferring user route advertisement to virtual closed-area network |
JP4498406B2 (en) * | 2007-11-21 | 2010-07-07 | 株式会社東芝 | Network virtualization system, relay device, and program |
JP5381998B2 (en) * | 2008-12-03 | 2014-01-08 | 日本電気株式会社 | Cluster control system, cluster control method, and program |
-
2005
- 2005-03-15 JP JP2005072990A patent/JP3930516B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013183287A (en) * | 2012-03-01 | 2013-09-12 | Nec Corp | Information processing system, server system, controller, information processing method and program |
Also Published As
Publication number | Publication date |
---|---|
JP2006259845A (en) | 2006-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6345294B1 (en) | Methods and apparatus for remote configuration of an appliance on a network | |
US7363347B2 (en) | Method and system for reestablishing connection information on a switch connected to plural servers in a computer network | |
US7697427B2 (en) | Method and system for scaling network traffic managers | |
US8527635B2 (en) | Contents delivery system and method, web server and contents provider DNS server thereof | |
US7707289B1 (en) | Method and system for enabling persistent access to virtual servers by an LDNS server | |
US7111300B1 (en) | Dynamic allocation of computing tasks by second distributed server set | |
US8606874B2 (en) | System and method of binding a client to a server | |
US20100169442A1 (en) | Apparatus and method for providing peer-to-peer proxy service with temporary storage management and traffic load balancing in peer-to-peer communications | |
JP2004533687A (en) | Dynamic deployment of services in computer networks | |
US7836142B2 (en) | System and method for updating a dynamic domain name server | |
WO2001040954A1 (en) | System and method for directing a client to a content source | |
JP6106334B2 (en) | Method, system and computer readable medium for performing advanced service routing | |
JP2007207231A (en) | Method for accessing distributed service in network | |
US20120191769A1 (en) | Site-aware distributed file system access from outside enterprise network | |
US20110173344A1 (en) | System and method of reducing intranet traffic on bottleneck links in a telecommunications network | |
US8396062B2 (en) | System for switching between communication devices, switching method, and switching program | |
US9760370B2 (en) | Load balancing using predictable state partitioning | |
US7965630B1 (en) | Load balancing port proxy for dynamically controlling routing of query requests | |
JP5620881B2 (en) | Transaction processing system, transaction processing method, and transaction processing program | |
CN113364741A (en) | Application access method and proxy server | |
US8099506B2 (en) | Communication system, node device, node process program and a message transmitting and receiving method | |
EP2656591B1 (en) | DNS proxy service for multi-core platforms | |
JP3930516B2 (en) | Server apparatus, server system, and server system load balancing method | |
WO2022206667A1 (en) | Routing method, and device | |
CN115242882B (en) | Method and device for accessing k8s container environment based on transport layer route |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070202 |
|
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: 20070306 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070308 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100316 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110316 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120316 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130316 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140316 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |