JP2017182138A - Load balancing system - Google Patents
Load balancing system Download PDFInfo
- Publication number
- JP2017182138A JP2017182138A JP2016063538A JP2016063538A JP2017182138A JP 2017182138 A JP2017182138 A JP 2017182138A JP 2016063538 A JP2016063538 A JP 2016063538A JP 2016063538 A JP2016063538 A JP 2016063538A JP 2017182138 A JP2017182138 A JP 2017182138A
- Authority
- JP
- Japan
- Prior art keywords
- frame
- server
- servers
- address
- network
- 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.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
Description
本発明は、負荷分散システムに関する。 The present invention relates to a load distribution system.
無線通信技術やネットワーク技術の発展に伴い、ネットワークを介して提供されるサービスは多様化が進んでおり、また近年ではデバイスが自律的にネットワークを介して通信を行うIoT(Internet of Things)、M2M(Machine to Machine)のようなサービスの普及も見込まれており、ネットワークに収容される端末数、通信帯域ともに継続的な大容量化が進んでいる。 With the development of wireless communication technology and network technology, services provided via networks are diversifying, and in recent years, IoT (Internet of Things), M2M, in which devices autonomously communicate via networks. Service such as (Machine to Machine) is also expected to spread, and the number of terminals accommodated in the network and the communication bandwidth are continuously increasing.
現在のネットワークでは、通信規格としてEthernet(登録商標)が主流であり、
ネットワークの大容量化、処理やサービスの複雑化の背景から、SDN(Software Defined Network)技術として、Open Networking Foundation(登録商標)により標準仕様が策定されているOpen Flow(登録商標)が注目されている。
In the current network, Ethernet (registered trademark) is the mainstream communication standard.
Open Flow (registered trademark), for which standard specifications have been established by Open Networking Foundation (registered trademark), is attracting attention as SDN (Software Defined Network) technology due to the increase in network capacity and the complexity of processing and services. Yes.
Open Flowは、ネットワークを構成する複数のルータやスイッチ機器を、一つの制御機器(Open Flowコントローラ)により集中管理し、パケットの処理方法を指定することで、柔軟にネットワーク構成や通信ルートを変更することが可能な技術である。 Open Flow centrally manages a plurality of routers and switch devices that make up a network with a single control device (Open Flow controller), and flexibly changes the network configuration and communication route by specifying the packet processing method. It is possible technology.
このように、端末数や通信帯域が増大し、それに対応してネットワーク構成の柔軟な変更が必要となる状況においては、サービスを提供するサーバ装置やネットワークとの接続中継を行うゲートウェイ装置も、柔軟に増設が可能であることが求められ、端末からの接続要求を複数台のサーバ機器に分散して処理を行う負荷分散技術が広く使用されている。 In this way, in situations where the number of terminals and communication bandwidth increase and a flexible change in the network configuration is required correspondingly, the server device that provides the service and the gateway device that performs connection relay with the network are also flexible. In addition, load distribution technology is widely used in which connection requests from terminals are distributed to a plurality of server devices for processing.
負荷分散技術として一般的に知られている技術として、DNSラウンドロビンやロードバランシングがある。DNSラウンドロビンは、対象となるURLについてDNSサーバのゾーンファイルに複数の分散処理サーバのIPアドレスを設定しておき、クライアント端末がそのURLの名前解決を行う際に、複数サーバのIPアドレスを順番に返信することで、クライアントの接続先を複数サーバ機器に分散する技術である。 As a technique generally known as a load balancing technique, there are DNS round robin and load balancing. DNS round robin sets the IP addresses of a plurality of distributed processing servers in the DNS server zone file for the target URL, and when the client terminal performs name resolution of the URLs, the IP addresses of the plurality of servers are ordered. In this technique, the connection destinations of clients are distributed to a plurality of server devices.
一方、ロードバランシングは、クライアント端末からの要求(リクエスト)をロードバランサが受信し、指定した分散アルゴリズムに従って複数のサーバに転送する形態の技術である。サーバからのレスポンスもロードバランサが中継してクライアント端末へ送信する。ロードバランサでの負荷分散アルゴリズムとしては、ラウンドロビン、最小接続、重み付け比率等が知られている。 On the other hand, load balancing is a technique in which a load balancer receives a request (request) from a client terminal and transfers the request to a plurality of servers according to a specified distributed algorithm. The response from the server is also relayed by the load balancer and sent to the client terminal. Known load balancing algorithms in a load balancer include round robin, minimum connection, weighting ratio, and the like.
DNSラウンドロビンの技術は、適用が容易かつ安価であるという利点がある一方で、ある端末から見た場合、サービス要求する毎に接続先サーバが変化するため、パーシステンス(セッション情報の維持)が確保できないことや、ラウンドロビンによる分散であるためにいわゆるヘビーユーザの接続が特定のサーバに集中し、負荷が均一に分散されない可能性があること、分散先の処理サーバが故障した場合でもそのサーバのアドレスを接続先として返信してしまうこと、等の課題が知られている。 The DNS round robin technology has the advantage of being easy and inexpensive to apply, but when viewed from a certain terminal, the connection destination server changes each time a service request is made, thus ensuring persistence (maintaining session information). Inability to do so, distribution due to round robin, so-called heavy user connections may be concentrated on a specific server, and the load may not be evenly distributed. Problems such as returning an address as a connection destination are known.
ロードバランシングは、前述のようなDNSラウンドロビンの課題を解決することが可能な技術であるが、高度な機能と処理性能が要求されるためにロードバランサの導入コストが高く、多数のクライアント端末からの大量のリクエストを処理するような大容量サービスにおいては、サービス容量の拡張はサーバの性能ではなくロードバランサの性能により制限されることとなる。 Load balancing is a technology that can solve the DNS round robin problem described above, but it requires a high level of functionality and processing performance, so the cost of introducing a load balancer is high. In a large-capacity service that processes a large number of requests, the expansion of the service capacity is limited not by the performance of the server but by the performance of the load balancer.
ロードバランサに関するこのような課題を解決する技術として、特許文献1には、ロードバランサを設置せずに、「複数のサービス処理サーバをP2Pネットワークを用いてオーバーレイネットワークで接続し、あるサービス処理サーバへのサービスリクエストをP2Pアルゴリズムに従いサービス処理サーバ間でルーティングさせ、接続先のサービス処理サーバの負荷状態に応じて、ルーティング途中のサービス処理サーバが接続先のサービス処理サーバに代わってサービスリクエストの処理を実行する」(要約)ことが記載されている。
As a technique for solving such a problem related to the load balancer,
ロードバランサを用いた負荷分散技術における課題として、導入コスト、サービス拡張(クライアント端末増加やサービスコンテンツ拡大等)におけるロードバランサ処理負荷による制限、が挙げられる。 Problems in the load balancing technique using a load balancer include introduction cost and limitation due to load balancer processing load in service expansion (client terminal increase, service content expansion, etc.).
特許文献1に記載の技術は、ロードバランサを設置せずに分散処理を行う技術であり、これらの課題に対応するものであるが、サーバの負荷状態によって他の代行サーバへリクエストを転送するという手法であるため、リクエスト転送処理によりクライアントへの応答遅延が増加する。TCP(Transmission Control Protocol)を使用するアプリケーションにおいてはRTT(Round−Trip Time)の増加は転送スループットの低下に繋がるため、高速転送が必要なサービスにおいてはデメリットとなる。
The technique described in
本発明の目的は、ロードバランサを不要とする低遅延な負荷分散システムを提供することにある。 An object of the present invention is to provide a low-latency load distribution system that does not require a load balancer.
前記の課題を解決するため、本発明に係る代表的な負荷分散システムは、複数のサーバとネットワークスイッチを有する負荷分散システムであって、前記ネットワークスイッチは、ネットワークからフレームを受信し、前記ネットワークから受信されたフレームを前記複数のサーバへフラッディングにより転送し、前記複数のサーバのそれぞれは、前記ネットワークスイッチからフレームを受信し、前記ネットワークスイッチから受信されたフレームに含まれるフレームの送信元の情報に基づき受け付けて、処理することを特徴とする。 In order to solve the above-described problem, a typical load distribution system according to the present invention is a load distribution system having a plurality of servers and a network switch, and the network switch receives a frame from a network and receives the frame from the network. The received frame is forwarded to the plurality of servers by flooding. Each of the plurality of servers receives the frame from the network switch, and transmits the frame source information included in the frame received from the network switch. It is characterized by receiving and processing based on the above.
本発明によれば、ロードバランサを不要とする低遅延な負荷分散システムを提供することができる。 According to the present invention, it is possible to provide a low-latency load distribution system that does not require a load balancer.
以下、図面を用いて本発明の好ましい実施形態の例を説明する。 Examples of preferred embodiments of the present invention will be described below with reference to the drawings.
図1は、フラッディング転送による負荷分散システムの実施形態の一例である。図1に示した例は、一般的なクライアント−サーバ型の処理システムであり、クライアント端末11、ネットワーク12、ルータ13、アドレス変換部14、レイヤ2スイッチ15、サーバ群16により構成される。サーバ群16は複数のサーバ18により構成され、負荷分散システム17は、アドレス変換部14、レイヤ2スイッチ15、サーバ群16により構成される。
FIG. 1 is an example of an embodiment of a load distribution system using flooding transfer. The example shown in FIG. 1 is a general client-server type processing system, and includes a
クライアント端末11は、ネットワークを介してサーバ群16へリクエストを送信し、サーバ群16からのレスポンスを受信することでサービスの提供を受ける。サービスの種別は、例えばホームページの閲覧であってもよいし、オンラインゲーム等であってもよい。
The
ネットワーク12は、クライアント端末11を収容するネットワークであり、構内LAN(Local Area Network)やインターネット網、LTE(Long Term Evolution)等のモバイルネットワークであってもよい。図1は、サーバ群16へ接続されるネットワーク端に、ゲートウェイルータとしてルータ13が配置される例を示している。
The
ルータ13は、通常のIP(Internet Protocol)ルーティング処理を行うルータとして動作し、ネットワーク12と、サーバ群16との間で送受するパケットをルーティングテーブルに従い転送する。サーバ群16とはレイヤ2ネットワークで接続されるため、パケットの転送に際し、MAC(Media Access Control)アドレスの変換を行う。
The
アドレス変換部14は、レイヤ2スイッチ15からルータ13へ出力されるEthernetフレームのMACアドレスを変換する。MACアドレス変換の詳細については、後述する。レイヤ2スイッチ15は、入力されるEthernetフレームの送信元MACアドレスをポートに関連付けて学習保持し、宛先MACアドレスに基づき出力ポートを切り替える汎用的なスイッチングハブである。
The
ルータ13から入力されるリクエストフレームは、レイヤ2スイッチ15のフラッディング動作によりサーバ群16の複数のサーバ18へ共通に転送され、サーバ群16から入力されるレスポンスフレームは、宛先MACアドレスの情報に基づくスイッチング転送によりルータ13へ転送される。フラッディング動作の詳細については後述する。
The request frame input from the
サーバ群16は、N台のサーバ18であるサーバ(0)〜サーバ(N−1)により構成され、クライアント端末11から送信されたリクエストフレームを、N台のサーバ18で選別受信することにより、処理を分散してレスポンスを返信することによりサービスをクライアント端末11へ提供する。
The
サーバ18は、一般的な計算機でもよく、NIC(Network Interface Card)、プロセッサ、メモリを備えてもよい。NICは、サーバ18のIPアドレスとMACアドレスが設定され、レイヤ2スイッチ15とネットワーク接続されてもよい。プロセッサは、メモリに格納されたプログラムとデータを使用して処理を実行し、NICを制御してもよい。
The
負荷分散システム17におけるIPアドレスとMACアドレスについて、さらに説明する。サーバ群16のN台のサーバ18は、共通のIPアドレスが割り当てられて、分散処理を行い、それぞれに番号として0番〜(N−1)番の番号が割り付けられる。サーバ群16の共通のIPアドレスは、以下ipSと記載する。
The IP address and MAC address in the
また、N台のサーバ18はそれぞれ異なるMACアドレスが割り当てられ、このMACアドレスは、以下「macS(0)」〜「macS(N−1)」と記載する。以下同様に、クライアント端末11のIPアドレスは「ipCLI」、MACアドレスは「macCLI」と記載し、ルータ13のサーバ群16側のポート(0)のMACアドレスは「macR0」と記載し、ネットワーク12側のポート(1)のMACアドレスは「macR1」と記載する。
Further, the
アドレス変換部14は、レイヤ2スイッチ15からルータ13へ送出されるフレームに対し、送信元MACアドレスをダミーのMACアドレスである「macD」に変換を行い、レイヤ2のFCS(Frame Check Sequence)再計算結果をフレームのトレーラに付与したうえでルータ13のポート(0)へ出力する。
The
アドレス変換部14の例を図2に示す。図2に示した例では、入力フレームの物理層信号に対して、PHY(Physical layer)部21が、光/電気信号変換、復号化、シリアル/パラレル変換等の必要な物理層処理を行う。PHY部21での処理は、レイヤ2スイッチ15との接続信号の形式(100BASE−TX、1000BASE-SR等)に応じた処理を行う。
An example of the
PHY部21で復号化されたフレームデータは、FIFO部22に格納される一方、FCS判定部23でFCS計算が行なわれ、フレーム内のデータ誤り有無の判定が行なわれる。読み出し制御部24は、FCSエラーが検出されたフレームデータは不要フレームとして読み出し制御を行わずに廃棄し、FCSエラーが検出されないフレームデータは有効フレームとしてFIFO部22へ読み出し制御を行う。
The frame data decoded by the
変換処理部25は、FIFO部22から読み出されたフレームデータに対し、送信元MACアドレスのフィールドのデータをダミーのMACアドレスであるmacDに変更したうえで、変更したフレームデータについてFCS計算を行い、フレームトレーラのFCSフィールドを計算した結果と差し替えて出力する。PHY部26は、ルータ13との信号接続形式に応じた物理層処理を行う。処理の例としては、パラレル/シリアル変換、符号化、電気/光信号変換等である。
The
図3に、アドレス変換部14での変換前、変換後のフレームの例を示す。変換前フレーム31は、アドレス変換前のフレームの例である。この変換前フレーム31は、サーバ(0)が送出したレスポンスフレームの例を示しており、送信元MACアドレスはサーバ(0)のMACアドレスの「macS(0)」である。
FIG. 3 shows an example of frames before and after conversion by the
変換後フレーム32は、アドレス変換後のフレームの例である。送信元MACアドレスのデータフィールドはダミーのMACアドレスである「macD」に変換され、トレーラにあるFCSフィールドは変換後のフレームデータで計算したデータである「FRD」に変更される。 The post-conversion frame 32 is an example of a frame after address conversion. The data field of the source MAC address is converted to “macD” which is a dummy MAC address, and the FCS field in the trailer is changed to “FRD” which is data calculated from the converted frame data.
図3に示した例は、サーバ(0)が送出したフレームであるが、他のサーバ18が送出したフレームの場合でも、同様に送信元MACアドレス、FCSのフィールドが変更される。なお、ダミーのMACアドレスである「macD」は、ルータ13、サーバ群16の各固有のMACアドレス、その他システム内で使用されるMACアドレスと重複しない(システム内で割り当てられていない)MACアドレスであれば、特定の値である必要はない。
The example shown in FIG. 3 is a frame sent by the server (0), but even in the case of a frame sent by another
図4に、サーバ群16からクライアント端末11へ送信されるフレームの転送例を示す。サーバ群16から送信されるフレームは、送信元MACアドレスを各々のサーバに固有のMACアドレスである「macS(0)」〜「macS(N−1)」、送信元IPアドレスを各サーバ18に共通のIPアドレスである「ipS」、宛先MACアドレスをルータ13のポート(0)のMACアドレスである「macR0」、宛先IPアドレスをクライアント端末のIPアドレスである「ipCLI」、として送信される。
FIG. 4 shows a transfer example of a frame transmitted from the
レイヤ2スイッチ15は、各サーバ18の固有MACアドレスである「macS(0)」〜「macS(N−1)」を、各接続ポートに対応学習したうえで、宛先MACアドレスの「macR0」に従いポート(A0)から出力することにより、ルータ13へフレームを転送する。
The layer 2
この対応学習は、例えば、ルータ13のMACアドレスである「macR0」とポート(A0)とが対応し、サーバ18のMACアドレスである「macS0」とポート(A1)とが対応するというものである。レイヤ2スイッチ15が受信したフレームの送信元MACアドレスを学習し、それ以外は学習しない。
In this correspondence learning, for example, “macR0” that is the MAC address of the
そして、レイヤ2スイッチ15とルータ13との間にあるアドレス変換部14の処理により、ルータ13のポート(0)へ入力されるフレームは、送信元MACアドレスがダミーのアドレスである「macD」、送信元IPアドレスがサーバ群16の共通のIPアドレスである「ipS」と入力される。
Then, the frame input to the port (0) of the
ルータ13は、このアドレス変換部14により変換された後のフレームの送信元MACアドレスである「macD」と送信元IPアドレスである「ipS」とを対応付けて、動的ARP(Address Resolution Protocol)エントリ41を内部にキャッシュ保持した上で、ルーティングテーブルに従いポート(1)からネットワーク12へ転送する。なお、ルータの通常の動作として、ルータ13から出力されるフレームの送信元MACアドレスはルータ13の「macR1」と入力される。
The
また、ルータ13から出力されるフレームの宛先MACアドレスは、ルーティングテーブルに従いクライアント端末11の「macCLI」と入力される例を示したが、これに限定されるものではなく、ネットワーク12においてルータ13からクライアント端末11までに至る経路上のネットワーク機器のMACアドレスが入力されてもよい。
Further, although the example in which the destination MAC address of the frame output from the
図5に、クライアント端末11からサーバ群16へ送信されるフレームの転送例を示す。クライアント端末11から送出されるフレームは、送信元MACアドレスを自身のMACアドレスである「macCLI」、送信元IPアドレスを自身のIPアドレスである「ipCLI」、宛先MACアドレスをゲートウェイルータであるルータ13のポート1のMACアドレスである「macR1」、宛先IPアドレスをサーバ群16の共通IPアドレスである「ipS」、として送信される。
FIG. 5 shows a transfer example of a frame transmitted from the
ルータ13は、ルーティングテーブルに従い、このフレームをポート(0)からレイヤ2スイッチ15へ転送する。この際、内部にキャッシュ保持している動的ARPエントリ41に従い、IPアドレスの「ipS」に対応するように宛先MACアドレスを「macD」に変換し、送信元MACアドレスを自身のMACアドレスである「macR0」に変換する。
The
レイヤ2スイッチ15は、フレームの宛先MACアドレスである「macD」が、自身の内部に学習保持したMACアドレステーブルに存在しないため、フラッディング動作によりレイヤ2スイッチ15の全ポートから転送する。この結果、サーバ群16の各サーバ18は、共通にクライアント端末11から送信されたフレームを受信する。
The layer 2
以上で説明したように、アドレス変換部14でのMACアドレス変換処理を行うことで、サーバ群16の各サーバ18はクライアント端末11からのリクエストフレームを共通に受信することとなり、各サーバ18が適切にリクエストフレームの選別処理を行い、レスポンスを返信することで、複数のサーバ18で分散処理を行うことが可能となる。フラッディング転送により、サーバ群16の各サーバ18はリクエストフレームを受信できるため、ロードバランサなどによる遅延が生じることはなく、ロードバランサなどの装置が不要であるからコストを低減できる。
As described above, by performing the MAC address conversion processing in the
サーバ群16の各サーバ18でのリクエストフレームの選別処理の一例を図6に示す。図6に示した例は、リクエストフレームの送信元IPアドレスを基に選別処理を行う例である。負荷分散を行うサーバ18の数をN台、各サーバの番号を0番〜(N−1)番とした場合、各サーバ18は、レイヤ2スイッチ15からフラッディング転送されるリクエストフレームを受信し(ステップ61)、リクエストフレームの送信元IPアドレスを被除数、サーバ18の数Nを除数として剰余算を行い、剰余が自サーバ番号と一致するか判定する(ステップ62)。
An example of a request frame selection process in each
各サーバ18は、ステップ62で剰余が自サーバ番号と一致すると判定した場合、自サーバ宛のリクエストとして受け付けて処理を行い、クライアント端末11へレスポンスを返信する(ステップ63)。ステップ62で剰余が自サーバ番号と一致しないと判定した場合は、他サーバ宛のリクエストとして、受信したリクエストフレームを廃棄する(ステップ64)。
When each
一例として、4台のサーバ18で分散処理を行う場合、各サーバ18は0番〜3番の番号が付与された上で、各サーバ18は受信したリクエストフレームの送信元アドレスに対する4の剰余算を行う。剰余算の結果が0のリクエストにはサーバ0番が、結果が1のリクエストにはサーバ1番が、結果が2のリクエストにはサーバ2番が、結果が3のリクエストにはサーバ3番がレスポンスを返信することで、負荷分散処理を行う。
As an example, when distributed processing is performed by four
ここで、クライアント端末11は4台以上であり、各クライアント端末のIPアドレスの最下位の値は異なることが好ましい。また、サーバ群16の各サーバ18は、受信したフレームの宛先IPアドレスを判定して受信したフレームの宛先MACアドレスを無視してもよいし、自身のMACアドレスである「mac(0)」〜「macS(N−1)」のいずれか、または「macD」を宛先MACアドレスとするフレームを受信するようにしてもよい。
Here, the number of
第2の実施例として、各サーバ18が、リクエストフレーム内のTCPレイヤまたはUDP(User Datagram Protocol)レイヤのヘッダに含まれる送信元ポート番号の剰余算によりサーバ18での選別処理を行う例を説明する。図1〜5を用いて説明した内容は、実施例1と同じであるので説明を省略する。図7はリクエストフレームの選別処理の一例を示し、実施例1の図6に対応する図である。
As a second embodiment, an example will be described in which each
負荷分散を行うサーバ18の数をN台、各サーバ18の番号を0番〜(N−1)番とした場合、各サーバ18は、レイヤ2スイッチ15からフラッディング転送されるリクエストフレームを受信し(ステップ71)、リクエストフレームの送信元ポート番号を被除数、サーバ18の数Nを除数として剰余算を行い、剰余が自サーバ番号と一致するか判定する(ステップ72)。
When the number of
各サーバ18は、ステップ72で剰余が自サーバ番号と一致すると判定した場合、自サーバ宛のリクエストとして受け付けて処理を行い、クライアント端末11へレスポンスを返信する(ステップ73)。ステップ72で剰余が自サーバ番号と一致しないと判定した場合は、他サーバ宛のリクエストとして、受信したリクエストフレームを廃棄する(ステップ74)。
If each
一例として、4台のサーバ18で分散処理を行う場合、各サーバ18は0番〜3番の番号が付与された上で、各サーバ18はリクエストフレームの送信元ポート番号に対する4の剰余算を行う。剰余算の結果が0のリクエストにはサーバ0番が、結果が1のリクエストにはサーバ1番が、結果が2のリクエストにはサーバ2番が、結果が3のリクエストにはサーバ3番がレスポンスを返信することで、負荷分散処理を行う。
As an example, when distributed processing is performed by four
実施例1で説明した送信元IPアドレスを対象とした剰余算の場合、NAT(Network Address Translation)等を介在して接続するクライアント端末11が多数存在すると(複数のクライアント端末11からのリクエストフレームが1つのIPアドレスから送信されると)、負荷が一部のサーバ18に集中する可能性があるが、TCP/UDPレイヤの送信元ポート番号は、一般的にアプリケーションによりランダムに決定されるため、負荷の均一化に寄与できる。
In the case of the remainder calculation for the source IP address described in the first embodiment, if there are
さらに、サーバ18によって性能に差分がある場合等では、重み付け負荷分散をしてもよい。以上での説明と同様に、サーバ0番〜サーバ3番の4台で分散処理を行う構成において、サーバ3番に他の2倍の処理負荷を配分する場合、各サーバ18はリクエストフレームの送信元ポート番号を被除数とし、除数を5として剰余算を行う。除数5は、配分したい負荷比率の合算値であり、1+1+1+2 により算出される。
Further, when there is a difference in performance depending on the
剰余算の結果が0のリクエストにはサーバ0番が、結果が1のリクエストにはサーバ1番が、結果が2のリクエストにはサーバ2番が、結果が3と4のリクエストにはサーバ3番がレスポンスを返信することで、重み付け分散処理を行うことが可能となる。
実施例3として、サーバ群16がクライアント端末11とインターネット86との接続を中継する例を説明する。図8は、フラッディング転送による中継の負荷分散システムの実施形態の一例である。この例において、サーバ群16は、クライアント端末11とインターネット86との接続を中継するプロキシサーバであり、VPN(Virtual Private Network)ゲートウェイ等であってもよい。そして、クライアント端末11は、インターネット86への接続に際してはサーバ群16をプロキシサーバとして接続を行う。
As a third embodiment, an example in which the
ルータ13は、図1に示したルータ13と同じであるので、同じ符号を付して説明を省略する。ローカルネットワーク81は、クライアント端末11をレイヤ2ネットワークで収容する構内LAN等である。アドレス変換部82は、ローカルネットワーク81とレイヤ2スイッチ15との間に配置され、レイヤ2スイッチ15からローカルネットワーク81へ出力されるEthernetフレームのMACアドレスを変換する。アドレス変換の動作そのものは、アドレス変換部14と同じである。
The
アドレス変換部85は、ルータ13とレイヤ2スイッチ15との間に配置され、レイヤ2スイッチ15からルータ13へ出力されるEthernetフレームのMACアドレスを変換する機能を持つ。アドレス変換の動作そのものは、アドレス変換部14と同じである。レイヤ2スイッチ15は、図1に示したレイヤ2スイッチ15と同じであるが、レイヤ2スイッチ15内に複数のVLAN(Virtual LAN)が設定される。
The
VLAN_A83は、ローカルネットワーク81とサーバ群16とを接続するレイヤ2ネットワークであって、仮想ネットワークである。また、VLAN_B84は、ルータ13とサーバ群16とを接続するレイヤ2ネットワークであって、仮想ネットワークである。負荷分散システム87は、アドレス変換部82、アドレス変換部85、レイヤ2スイッチ15、サーバ群16から構成され、サーバ群16は複数のサーバ18から構成される。
The
レイヤ2スイッチ15は、VLAN_A83とVLAN_B84により、クライアント端末11とサーバ群16との通信と、インターネット86とサーバ群16との通信の2つの通信に分離するため、それぞれの通信について説明する。
Since the layer 2
アドレス変換部82は、サーバ群16からVLAN_A83を介して受信するフレームについて、送信元MACアドレスをダミーのMACアドレスに変換した上でFCS再計算を行い、ローカルネットワーク81へ出力する。ここでの変換の内容は、図2及び図3を用いて説明した内容と同様である。
The
アドレス変換部82でのMACアドレス変換処理により、クライアント端末11は、サーバ群16のIPアドレスとダミーのMACアドレスを動的ARPエントリとしてキャッシュ保持するため、クライアント端末11からサーバ群16へ送出されるリクエストフレームは、宛先MACアドレスをダミーのMACアドレスとして送出される。
By the MAC address conversion processing in the
ダミーのMACアドレスはレイヤ2スイッチ15に学習保持されていないので、このリクエストフレームは、レイヤ2スイッチ15内のVLAN_A83に属する全ポートにフラッディング動作により転送されるため、サーバ群16の複数のサーバ18が共通に受信する。なお、インターネット86側のアドレス変換部85が接続されるポートは、VLAN_B84に属し、VLAN_A83に属さないため、このフラッディング動作では転送されない。
Since the dummy MAC address is not learned and held in the layer 2
アドレス変換部85は、サーバ群16からVLAN_B84を介して受信するフレームについて、送信元MACアドレスをダミーのMACアドレスに変換した上でFCS再計算を行い、ルータ13へ出力する。ここでの変換の内容は、図2及び図3を用いて説明した内容と同様である。
The
アドレス変換部85でのMACアドレス変更処理により、ルータ13は、サーバ群16のIPアドレスとダミーのMACアドレスを動的ARPエントリとしてキャッシュ保持するため、ルータ13がインターネット86から受信してサーバ群16へ転送するフレームは、宛先MACアドレスをダミーのMACアドレスとして送出される。
The
ダミーのMACアドレスはレイヤ2スイッチ15に学習保持されていないので、このフレームは、レイヤ2スイッチ15内のVLAN_B84に属するポートにフラッディング動作により転送されるため、サーバ群16の複数のサーバ18が共通に受信する。なお、クライアント端末11側のアドレス変換部82が接続されるポートは、VLAN_A83に属し、VLAN_B84に属さないため、このフラッディング動作では転送されない。
Since the dummy MAC address is not learned and held in the layer 2
このように、VLAN技術を使用して2つの仮想ネットワークに分離することで、リクエストフレームの受付元と送出先のネットワークが異なる場合でも、フラッディング動作による転送範囲を分離し、複数のサーバ18が複数のネットワークからの入力を共通に受信することが可能となる。図6または図7を用いて説明した選別処理を各サーバ18が行うことで、複数のサーバ18で負荷分散処理を行うことができる。
In this way, by separating the two virtual networks using the VLAN technology, even when the request frame accepting source and the sending destination network are different, the transfer range by the flooding operation is separated, and a plurality of
なお、サーバ群16での受信フレームを、送信元IPアドレスや送信元ポート番号に基づいて選別処理を行う場合、上り方向(クライアント端末11からインターネット86へ送信する方向)の処理をするサーバ18と、下り方向(インターネット86からクライアント端末11へ送信する方向)の処理をするサーバ18が一致しない場合もある。そこで、上り方向と下り方向とを同一のサーバ18で処理するための選別受信について、以下に説明する。
In addition, when the received frame in the
以下に説明する例は、クライアント端末11が、インターネット86上のアプリケーションサーバへの接続要求のため、プロキシサーバであるサーバ群16へリクエストを送出し、アプリケーションサーバからのレスポンスは、サーバ群16により中継されて受信する例である。
In the example described below, the
サーバ群16の各サーバ18は、上り方向のリクエスト送出用の送信元ポート番号を、他のサーバ18と重複しないように予約されている。例として、サーバ0番〜サーバ3番の4台で負荷分散を行う場合、サーバ0番は10000番〜19999番、サーバ1番は20000番〜29999番というように予約されてもよい。このリクエスト送出用の送信元ポート番号を、代表として以下「prtSB」と記載する。
Each
図9Aに示した上り方向のフレーム91は、クライアント端末11がサーバ群16へ送信する上り方向のフレームの例であり、レイヤ4のプロトコルがTCPの例である。クライアント端末11は、宛先MACアドレス、宛先IPアドレス共に、接続を代行するプロキシサーバであるサーバ群16のアドレスすなわち「ipSA」が設定される。
An
アドレス変換部82にて、予めクライアント端末11へ送出されるフレームの送信元MACアドレスはダミーのMACアドレスである「macD1」に変換されている。この処理により、クライアント端末11は、サーバ群16のIPアドレスである「ipSA」と、ダミーのMACアドレスである「macD1」とをキャッシュ保持するため、上り方向のフレーム91の宛先MACアドレスは「macD1」となる。
In the
送信元ポート番号である「prtCLI」は、クライアント端末11が動的に設定した番号であり、宛先ポート番号である「prtSA」は、プロキシサーバであるサーバ群16が、リクエスト受信用の宛先ポート番号である。プロキシサーバであるサーバ群16の各サーバ18は、VLAN_A83から受信した上り方向のフレーム91について、図6、7を用いて説明したように送信元IPアドレスや送信元ポート番号に基づき選別受信を行う。
“PrtCLI” which is a transmission source port number is a number dynamically set by the
各サーバ18は、選別受信した上り方向のフレーム91について、宛先IPアドレスと宛先ポート番号をインターネット86の接続要求先のアプリケーションサーバに対応した値である「ipAPL」と「prtAPL」にそれぞれ設定し、送信元IPアドレスは自身のIPアドレスである「ipSB」に設定し、送信元ポート番号は自身の予約番号である「prtSB」に設定して、ルータ13を介してインターネット86のアプリケーションサーバへ送出する。
Each
上述の処理により、サーバ群16がインターネット86のアプリケーションサーバへ送出する上り方向のフレームの例は、図9Bに示した上り方向のフレーム92のようになる。ここで、送信元MACアドレス「macS」は各サーバ18に固有のMACアドレスであり、宛先MACアドレス「macR0」は、ルータ13のポート(0)のMACアドレスである。
Through the above-described processing, an example of the upstream frame that the
サーバ群16が、アプリケーションサーバからルータ13を介して受信する下り方向のフレームの例は、図9Cに示した下り方向のフレーム93である。下り方向のフレーム93の宛先IPアドレスと宛先ポート番号は、上り方向のフレーム92の送出時に設定した「ipSB」と「prtSB」に設定され、送信元IPアドレスと送信元ポート番号は、接続先のアプリケーションサーバが持つ値である「ipAPL」と「prtAPL」に設定される。
An example of the downlink frame received by the
各サーバ18は、受信した下り方向のフレーム93の宛先ポート番号である「prtSB」が、自身の予約値であるか否かを判定し、自身の予約値であると判定した場合は受信処理を行い、そうでないと判定した場合は他サーバ宛のフレームとして廃棄することで選別処理を行う。
Each
以上で説明したように、TCP(あるいはUDP)の送信元ポート番号を、各サーバ18間で重複しないように予約して使用することにより、上り方向と下り方向の通信を同一サーバで処理するように選別し、負荷分散処理を行うことが可能となる。
As described above, the TCP (or UDP) source port number is reserved and used so that it does not overlap between the
実施例4として、ルータ13に、サーバ群16のIPアドレスに対応した静的な(Staticな)ARPエントリが設定されることにより、フラッディング動作を行わせて負荷分散する例を説明する。図10は、フラッディング転送による負荷分散システムの実施形態の一例であり、図1に示した例に対して、ルータ13とレイヤ2スイッチ15とがアドレス変換部14を介することなく接続されている。図1と同じ構成は同じ符号を付して説明を省略する。
As a fourth embodiment, an example will be described in which a static (Static) ARP entry corresponding to the IP address of the
負荷分散システム102は、レイヤ2スイッチ15、サーバ群16から構成される。ルータ13は、図1、4、5に示したルータ13と同じルータであるが、図4、5を用いて説明したような動的ARPエントリ41の設定ではなく、静的ARPエントリが設定される。静的ARPエントリ101として設定される内容は、動的ARPエントリ41と同じく、ルータ13のポート(0)の接続先にはIPアドレスが「ipS」であるサーバ群16があり、MACアドレスはダミーのMACアドレスの「macD」であるという内容である。
The
静的ARPエントリ101が設定されることにより、クライアント端末11からサーバ群16へ送信されるリクエストフレームは、宛先IPアドレスが「ipS」であるので、ルータ13でのルーティング処理時に、静的ARPエントリ101に従い、宛先IPアドレスの「ipS」に対して、宛先MACアドレスが「macD」と入力されて、ポート(0)からレイヤ2スイッチ15へ転送される。
By setting the
レイヤ2スイッチ15は、リクエストフレームの宛先MACアドレスである「macD」が、自身の内部に学習保持したMACアドレステーブルに存在しないため、サーバ群16の各サーバ18が接続されている全ポートへフラッディング動作により転送する。
The layer 2
以上で説明したように、サーバ群16の前段に配置されるゲートウェイルータであるルータ13に、サーバ18のIPアドレスとダミーのMACアドレスが静的ARPエントリとして設定されることにより、複数のサーバ18が共通にリクエストフレームを受信することが可能となり、各サーバ18が、図6、7を用いて説明した選別処理を行うことで、複数のサーバ18で分散処理を行うことが可能となる。
As described above, the IP address of the
実施例5として、ルータ13からレイヤ2スイッチ15へ出力されるフレームの宛先MACアドレスを変換するアドレス変換部111を備える例を説明する。図11は、フラッディング転送による負荷分散システムの実施形態の一例であり、図1に示した例に対して、アドレス変換部14の代わりにアドレス変換部111を有する。図1と同じ構成は同じ符号を付して説明を省略する。
As a fifth embodiment, an example will be described in which an
負荷分散システム112は、アドレス変換部111、レイヤ2スイッチ15、サーバ群16から構成される。アドレス変換部111は、ルータ13からレイヤ2スイッチ15へ送出する方向に配置されており、ルータ13からレイヤ2スイッチ15へ送出されるフレームの宛先MACアドレスを、ダミーのMACアドレスに変換したうえで、FCSの再計算を行う。
The
図12に、アドレス変換部111での変換前と変換後のフレームの例を示す。変換前フレーム121は、アドレス変換部111による変換の前のフレームの例であり、宛先MACアドレスの「macX」はサーバ群16のサーバ18いずれかのMACアドレスを示し、送信元MACアドレスの「macR」はルータ13のポート(0)のMACアドレスを示し、宛先IPアドレスの「ipCLI」はクライアント端末11のIPアドレスを示し、送信元IPアドレスの「ipS」はサーバ群16の共通IPアドレスを示す。
FIG. 12 shows an example of frames before and after conversion by the
変換後フレーム122は、アドレス変換部111による変換の後のフレームの例であり、宛先MACアドレスの「macD」はダミーのMACアドレスを示し、変換前フレーム121の「macX」から変換されたMACアドレスである。また、トレーラであるFCSフィールドは変換後のフレームデータで計算したデータである「FDR」に変更される。なお、変換後フレーム122におけるダミーのMACアドレスの「macD」は、ブロードキャストアドレスであってもよい。
The
アドレス変換部111がダミーのMACアドレスへの変換を実施することで、クライアント端末11からサーバ群16へ送信されるフレームであって、宛先IPアドレスが「ipS」であるフレームは、宛先MACアドレスが「macD」へ変換されて、レイヤ2スイッチ15へ入力される。レイヤ2スイッチ15は、宛先MACアドレスがダミーのアドレスである「macD」であるため、フラッディング動作によりレイヤ2スイッチ15の全ポートにフレームを転送する。
When the
以上で説明したように、アドレス変換部111をルータ13からサーバ群16へ出力される方向に配置し、レイヤ2スイッチ15へ入力されるフレームの宛先MACアドレスを、ダミーのMACアドレスまたはブロードキャストアドレスへ変換することにより、複数のサーバ18が共通にフレームを受信することが可能となり、各サーバ18が、図6、7を用いて説明した選別処理を行うことで、複数のサーバ18で分散処理を行うことが可能となる。
As described above, the
実施例6として、ルールやポリシー等と呼べる情報に基づき、受信したフレームのヘッダの情報を判定し、転送するポートを選択したり、ヘッダの情報を変更したりするスイッチを用いた例を説明する。その一つとして、SDN(Software Defined Network)技術であるOpenFlowを用いた例を説明する。図13は、OpenFlowコントローラ131とOpenFlowスイッチ132を備えた負荷分散システム134の例を示す。図1と同じ構成は同じ符号を付して説明を省略する。
As a sixth embodiment, an example using a switch that determines header information of a received frame based on information that can be called a rule, a policy, etc., selects a forwarding port, or changes header information will be described. . As one example, an example using OpenFlow, which is an SDN (Software Defined Network) technology, will be described. FIG. 13 shows an example of a
OpenFlowコントローラ131は、クライアント端末11からサーバ群16へ送信されるリクエストフレームをフラッディング配信するため、フローテーブル133の内容を作成して、OpenFlowスイッチ132へ設定する。OpenFlowスイッチ132は、設定されたフローテーブル133に従い、受信したフレームの処理を行う。
The
なお、Open Flowコントローラ131とOpen Flowスイッチ132は、それぞれOpen Networking Foundationにより策定された標準仕様に則り、Open Flowプロトコルにより通信を行うものであり、OpenFlowスイッチ132は、Open vSwtich等の、ソフトウェア技術による仮想スイッチであってもよい。
The
フローテーブル133の内容として、ヘッダフィールドの条件は、「Ingress port」が「ポート(X)」、「IP dst address」がサーバ群16の共通IPアドレスである「ipS」とし、この条件に合致する受信フレームへのアクションを、「Forward ALL」とすることで、ネットワーク12から受信する、サーバ群16宛てのフレームは、ポート(0)〜ポート(N−1)から転送される。
As the contents of the flow table 133, the header field conditions are “Port (X)” for “Ingress port” and “ipS”, which is the common IP address of the
すなわち、Open Flowスイッチ132は、設定されたフローテーブル133に従い、ポート(X)で受信した宛先IPアドレスが「ipS」であるフレームを、受信元であるポート(X)を除く、ポート(0)〜ポート(N−1)から転送する。これにより、サーバ(0)〜サーバ(N−1)が、クライアント端末11から送信されるリクエストを受信することが可能となり、各サーバ18が、図6、7を用いて説明した選別処理を行うことで、複数のサーバ18で分散処理を行うことが可能となる。
That is, the
なお、OpenFlowは一例であって、これに限定されるものではない。 Note that OpenFlow is an example, and the present invention is not limited to this.
実施例7として、ルールやポリシー等と呼べる情報に基づき、受信したフレームのヘッダの情報を判定し、転送するポートを選択したり、ヘッダの情報を変更したりするスイッチを用いた別の例を説明する。図14に示した負荷分散システム142は、図13に示した負荷分散システム134に対してレイヤ2スイッチ15を有し、フローテーブル141の内容が異なる。図1、13と同じ構成は同じ符号を付して説明を省略する。
As a seventh embodiment, another example using a switch that determines the header information of a received frame based on information that can be called a rule, a policy, etc., selects a port to be transferred, or changes the header information. explain. The
フローテーブル141の内容として、ヘッダフィールドの条件は、「Ingress port」が「ポート(X)」、「IP dst address」がサーバ群16の共通IPアドレスである「ipS」とし、この条件に合致する受信フレームへのアクションを、「Set Field」とし、「Type:dest_mac」、「Value:macD」とすることで、ネットワーク12から受信する、サーバ群16宛てのフレームの宛先MACアドレスは、ダミーのMACアドレスである「macD」に変換される。
As the contents of the flow table 141, the header field conditions are “Port (X)” for “Ingress port” and “ipS”, which is the common IP address of the
すなわち、Open Flowスイッチ132は、設定されたフローテーブル141に従い、ポート(X)で受信した宛先IPアドレスが「ipS」であるフレームの宛先MACアドレスを、ダミーのMACアドレスである「macD」に変換する。
That is, the
後段のレイヤ2スイッチ15は、OpenFlowスイッチ132から受信したフレームの宛先MACアドレスがダミーのアドレスである「macD」であるため、フラッディング動作により全ポートへフレームを転送する。
Since the destination MAC address of the frame received from the
以上で説明したように、複数のサーバ18が共通にフレームを受信することが可能となり、各サーバ18が、図6、7を用いて説明した選別処理を行うことで、複数のサーバ18で分散処理を行うことが可能となる。なお、OpenFlowは一例であって、これに限定されるものではない。
As described above, a plurality of
実施例8として、サーバ群16のサーバ18それぞれの状態に応じて分散処理する例を説明する。図15に示した負荷分散システム154は、アドレス変換部14、レイヤ2スイッチ15、サーバ群16、制御部151、ネットワークストレージ152、バックエンドスイッチ153から構成される。図1と同じ構成は同じ符号を付して説明を省略する。
As an eighth embodiment, an example in which distributed processing is performed according to the state of each
制御部151は、サーバ群16の各サーバ18の動作状態や負荷状態を監視し、故障検出時や負荷集中時には、他のサーバへ代行処理を指示する。ネットワークストレージ152は、サーバ群16の各サーバ18が処理中のクライアント端末11の情報やサービス状態等を保持するための共有記憶領域である。ネットワークストレージ152は、各サーバ18が共有可能な記憶領域であればよく、例えばサーバ群16が接続可能な共有メモリ等であってもよい。
The
バックエンドスイッチ153は、サーバ群16と制御部151とネットワークストレージ152とを接続する汎用的なスイッチングハブである。フロントエンドスイッチであるレイヤ2スイッチ15と、バックエンドスイッチ153は、同一のハードウェアをVLAN技術により分離して構築してもよい。
The
以下、サーバ群16が既に説明した負荷分散処理を実行中に、サーバ群16の中のサーバ18が故障し、他のサーバ18が代行処理を行う例を説明する。制御部151は、サーバ群16のサーバ18それぞれに対して、バックエンドスイッチ153を介して、死活監視を実施する。死活監視の内容は、例えば、ICMP(Internet Control Message Protocol)による応答監視、ポートスキャンやSNMP(Simple Network Management Protocol)による動作状態監視、CPU(プロセッサ)使用率やメモリ使用率によるリソース使用量監視等の一つまたは複数であってもよい。
Hereinafter, an example will be described in which the
各サーバ18は、自身が実行中の処理のサービス情報を、バックエンドスイッチ153経由でネットワークストレージ152に随時に書き込み保存する。ここで、サービス情報とは、接続中のクライアント端末11のアドレスや位置情報、認証アカウント、サービス履歴情報等、クライアント端末11に対してサービスを提供するにあたり必要な情報である。
Each
例として複数のサーバ18の中のサーバ1番が運用中に故障した場合、制御部151がサーバ1番の故障を検出し、他のサーバ18の中から、CPU使用率やメモリ使用率等のリソースに、より余裕のあるサーバ18を代行サーバとして選定し、サーバ1番の代行処理を指示する。代行処理を指示されたサーバ18は、ネットワークストレージ152から、故障したサーバ1番が書き込んだサービス情報を読み出し、クライアント端末11へのサービス提供の代行を行う。
As an example, when
クライアント端末11へのサービスの代行提供にあたり、代行サーバでのリクエストフレームの選別処理を変更する必要がある。代行サーバでのリクエストフレームの選別処理の一例を図16に示す。この例は、図7を用いて説明した例と同じく、リクエストフレームの送信元ポート番号を基に選別処理を行う場合の例である。
In providing the service to the
代行サーバは、レイヤ2スイッチ15のフラッディング転送によりリクエストフレームを受信し(ステップ161)、受信したリクエストフレームの送信元ポート番号についてサーバ18の数Nの剰余算を行い、その結果を変数Xに設定する(ステップ162)。代行サーバは、変数Xの値が自サーバ番号と一致すると判定した場合(ステップ163)、自サーバ宛リクエストとして受け付けて処理を行う(ステップ164)。
The surrogate server receives the request frame by flooding transfer of the layer 2 switch 15 (step 161), performs the remainder calculation of the number N of the
代行サーバは、ステップ163で変数Xの値が自サーバ番号と一致しないと判定した場合、変数Xの値が故障サーバの番号と一致するかの判定を行う(ステップ165)。代行サーバは、変数Xの値が故障サーバの番号と一致すると判定した場合、代行処理リクエストとして受け付けて処理を行い(ステップ166)、故障サーバの番号と一致しないと判定した場合は他サーバ宛のリクエストとして廃棄する(ステップ167)。なお、これらの代行サーバの処理は、代行サーバのメモリに格納されたプログラムに基づいて代行サーバのプロセッサが実行してもよい。
If it is determined in
制御部151により代行サーバに決定されるサーバ18は1台のサーバ18ではなく、複数のサーバ18が代行サーバに決定されてもよい。複数のサーバ18で代行処理を行う場合の選別処理の一例を図17に示す。具体例として、サーバ0番〜サーバ3番の4台で分散処理を実行中に、サーバ2番が故障し、その代行処理をサーバ0番、サーバ1番、サーバ3番で均一に分散する場合の選別処理を説明する。
The
サーバ0番、サーバ1番、サーバ3番のそれぞれは、同じフローの処理を行うため、サーバ1番を代表として説明する。サーバ1番は、レイヤ2スイッチ15のフラッディング転送によりリクエストフレームを受信し、受信したリクエストフレームの送信元ポート番号を変数Pに設定し、サーバ18の総数(=4)を変数Nに設定し、自サーバの番号(=1)を変数nに設定し、故障サーバの番号(=2)を変数fに設定する(ステップ171)。
Since each of
サーバ1番は、送信元ポート番号の変数Pについて、サーバ18の総数である変数N(=4)の剰余算を行い、その結果を変数Xに設定し(ステップ172)、変数Xの値が自サーバ番号の変数nの値(=1)と一致すると判定した場合(ステップ173)には自サーバ宛のリクエストとして受け付けて処理を行う(ステップ174)。
The server No. 1 performs the remainder calculation of the variable N (= 4) which is the total number of the
サーバ1番は、ステップ173で変数Xの値が自サーバ番号の変数nの値と一致しないと判定した場合、故障したサーバ2番宛てのリクエストフレームであるか否かの判定のため、変数Xの値と故障サーバ番号である変数fの値(=2)との一致判定を行い(ステップ175)、一致しないと判定した場合は、他サーバ宛のリクエストとして廃棄する(ステップ176)。
If the server No. 1 determines in
サーバ1番は、ステップ175で変数Xの値が故障サーバ番号である変数fの値と一致すると判定した場合、さらに自サーバで代行処理するか否かの判定を行うため、以下で説明する変数Yと変数Zの値を計算する。
If the server No. 1 determines in
サーバ1番は変数Yの値を計算する(ステップ177)。ステップ177の計算式中の(P−f)/Nの項は、ステップ175の判定においてPとNの剰余算がfと一致が成立しているため、必ず整数となる。この(P−f)/Nについて、サーバ18の総数である変数Nの値(=4)から故障サーバの数である1を減じたN−1(=3)の剰余算を行う。この計算の結果、変数Yは0、1、2の3値のいずれかの値となる。
サーバ1番は、自サーバ番号の変数nの値が故障サーバ番号の変数fの値より小さいか判定する(ステップ178)。サーバ1番の場合は変数nの値(=1)が故障サーバ番号の変数fの値(=2)より小さいため、ステップ179へ進み、変数nの値である1を変数Zに設定する。なお、ステップ178で、変数nの値が変数fの値より小さくないと判定した場合、変数nの値から1を減じた値を変数Zに設定する(ステップ180)。
サーバ1番は、変数Yの値と変数Zの値が一致するかを判定し(ステップ181)、一致すると判定した場合は、代行処理リクエストとして受け付けて処理を行い(ステップ182)、一致しないと判定した場合は、他サーバが代行処理を行うリクエストとして廃棄する(ステップ183)ことで、代行処理を3つのサーバ18へ分散することが可能となる。
The
以上では、サーバ1番を主に説明したが、サーバ0番とサーバ3番も同じフローであり、サーバ0番では変数nの値が0、変数Zの値が0となり、サーバ3番では変数nの値が3、変数Zの値が2となる。なお、図15には、ルータ13、アドレス変換部14、レイヤ2スイッチ15の例を示したが、フラッディング転送のための構成は、アドレス変換部111やOpenFlowスイッチ132であってもよい。
In the above,
以上で説明したように、複数のサーバ18が共通にフレームを受信することが可能となり、各サーバ18が選別処理を行うことで、複数のサーバ18で分散処理を行うことが可能になるとともに、故障サーバの代わりに代行処理を行うことも可能になる。また、分散処理で分散する負荷の比率も制御することが可能となる。
As described above, a plurality of
11 クライアント端末
12 ネットワーク
13 ルータ
14 アドレス変換部
15 レイヤ2スイッチ
16 サーバ群
17 負荷分散システム
DESCRIPTION OF
Claims (15)
前記ネットワークスイッチは、
ネットワークからフレームを受信し、前記ネットワークから受信されたフレームを前記複数のサーバへフラッディングにより転送し、
前記複数のサーバのそれぞれは、
前記ネットワークスイッチからフレームを受信し、前記ネットワークスイッチから受信されたフレームに含まれるフレームの送信元の情報に基づき受け付けて、処理すること
を特徴とする負荷分散システム。 A load balancing system having a plurality of servers and a network switch,
The network switch is
Receiving a frame from the network, forwarding the frame received from the network to the plurality of servers by flooding,
Each of the plurality of servers is
A load distribution system, comprising: receiving a frame from the network switch; and receiving and processing the frame based on information on a transmission source of a frame included in the frame received from the network switch.
前記負荷分散システムは、
アドレス変換部をさらに有し、
前記アドレス変換部は、
前記ネットワークスイッチからフレームを受信し、受信されたフレームに含まれる送信元IPアドレスを維持し、送信元MACアドレスを変換したフレームを前記ネットワークへ送信すること
を特徴とする負荷分散システム。 The load distribution system according to claim 1,
The load balancing system includes:
An address conversion unit;
The address conversion unit
A load distribution system that receives a frame from the network switch, maintains a transmission source IP address included in the received frame, and transmits a frame obtained by converting a transmission source MAC address to the network.
前記アドレス変換部は、
送信元MACアドレスを前記複数のサーバのMACアドレスとは異なるMACアドレスへ変換すること
を特徴とする負荷分散システム。 The load distribution system according to claim 2,
The address conversion unit
A load distribution system that converts a source MAC address to a MAC address different from the MAC addresses of the plurality of servers.
前記ネットワークスイッチは、
前記ネットワークから受信されたフレームに含まれる宛先MACアドレスが前記複数のサーバのMACアドレスではないと、前記複数のサーバへフラッディングにより転送すること
を特徴とする負荷分散システム。 The load distribution system according to claim 3,
The network switch is
If the destination MAC address included in the frame received from the network is not the MAC address of the plurality of servers, the load distribution system transfers to the plurality of servers by flooding.
前記負荷分散システムは、
アドレス変換部をさらに有し、
前記アドレス変換部は、
前記ネットワークからフレームを受信し、受信されたフレームに含まれる宛先IPアドレスを維持し、宛先MACアドレスを変換したフレームを前記ネットワークスイッチへ送信し、
前記ネットワークスイッチは、
前記アドレス変換部からからフレームを受信し、前記アドレス変換部から受信されたフレームを前記複数のサーバへフラッディングにより転送すること
を特徴とする負荷分散システム。 The load distribution system according to claim 1,
The load balancing system includes:
An address conversion unit;
The address conversion unit
Receiving a frame from the network, maintaining a destination IP address included in the received frame, transmitting a frame obtained by converting a destination MAC address to the network switch;
The network switch is
A load distribution system, comprising: receiving a frame from the address translation unit; and forwarding the frame received from the address translation unit to the plurality of servers by flooding.
前記アドレス変換部は、
宛先MACアドレスを前記複数のサーバのMACアドレスとは異なるMACアドレスへ変換すること
を特徴とする負荷分散システム。 The load distribution system according to claim 5,
The address conversion unit
A load distribution system that converts a destination MAC address into a MAC address different from the MAC addresses of the plurality of servers.
前記ネットワークスイッチは、
前記アドレス変換部から受信されたフレームに含まれる宛先MACアドレスが前記複数のサーバのMACアドレスではないと、前記複数のサーバへフラッディングにより転送すること
を特徴とする負荷分散システム。 The load distribution system according to claim 6,
The network switch is
If the destination MAC address included in the frame received from the address conversion unit is not the MAC address of the plurality of servers, the load distribution system transfers to the plurality of servers by flooding.
前記負荷分散システムは、
ルータをさらに有し、
前記ルータは、
前記ネットワークからフレームを受信し、受信されたフレームに含まれる宛先IPアドレスを維持し、宛先MACアドレスを前記複数のサーバのMACアドレスとは異なるMACアドレスへ変換したフレームを前記ネットワークスイッチへ送信し、
前記ネットワークスイッチは、
前記ネットワークから受信されたフレームに含まれる宛先MACアドレスが前記複数のサーバのMACアドレスではないと、前記複数のサーバへフラッディングにより転送すること
を特徴とする負荷分散システム。 The load distribution system according to claim 1,
The load balancing system includes:
A router,
The router
Receiving a frame from the network, maintaining a destination IP address included in the received frame, and transmitting a frame obtained by converting the destination MAC address to a MAC address different from the MAC addresses of the plurality of servers to the network switch;
The network switch is
If the destination MAC address included in the frame received from the network is not the MAC address of the plurality of servers, the load distribution system transfers to the plurality of servers by flooding.
前記ネットワークスイッチは、
前記ネットワークから受信されたフレームのヘッダに含まれる情報を条件とした転送の動作が設定されており、前記ネットワークから受信されたフレームのヘッダに含まれる宛先IPアドレスに基づいて、前記複数のサーバへフラッディングにより転送すること
を特徴とする負荷分散システム。 The load distribution system according to claim 1,
The network switch is
A transfer operation is set on the condition that information included in a header of a frame received from the network is set, and based on a destination IP address included in a header of the frame received from the network, to the plurality of servers. A load distribution system that transfers data by flooding.
前記負荷分散システムは、
動作が設定されたスイッチをさらに有し、
前記動作が設定されたスイッチは、
前記ネットワークから受信されたフレームのヘッダに含まれる情報を条件としたフレームに対する動作が設定されており、前記ネットワークから受信されたフレームのヘッダに含まれる宛先IPアドレスに基づいて、宛先MACアドレスを変更したフレームを前記ネットワークスイッチへ送信し、
前記ネットワークスイッチは、
前記動作が設定されたスイッチから受信されたフレームに含まれる宛先MACアドレスが前記複数のサーバのMACアドレスではないと、前記複数のサーバへフラッディングにより転送すること
を特徴とする負荷分散システム。 The load distribution system according to claim 1,
The load balancing system includes:
A switch that is set to operate;
The switch for which the operation is set is
The operation for the frame is set on condition that the information included in the header of the frame received from the network is set, and the destination MAC address is changed based on the destination IP address included in the header of the frame received from the network. Send the frame to the network switch,
The network switch is
If the destination MAC address included in the frame received from the switch for which the operation is set is not the MAC address of the plurality of servers, the load distribution system transfers the plurality of servers by flooding.
前記複数のサーバのそれぞれは、
前記ネットワークスイッチから受信されたフレームに含まれる送信元IPアドレスを被除数とした剰余算の結果に基づき受け付けて、処理すること
を特徴とする負荷分散システム。 The load distribution system according to any one of claims 1 to 10,
Each of the plurality of servers is
A load distribution system for receiving and processing based on a result of a remainder calculation with a source IP address included in a frame received from the network switch as a dividend.
前記複数のサーバのそれぞれは、独自のサーバ番号を有し、
前記複数のサーバの中の第1のサーバは、
前記ネットワークスイッチから受信されたフレームに含まれる送信元IPアドレスを被除数とした剰余算の結果が、前記第1のサーバのサーバ番号であると判定すると、前記ネットワークスイッチから受信されたフレームを受け付けて処理し、それ以外の結果であると判定すると、前記ネットワークスイッチから受信されたフレームを廃棄すること
を特徴とする負荷分散システム。 The load distribution system according to any one of claims 1 to 10,
Each of the plurality of servers has a unique server number;
A first server of the plurality of servers is
If it is determined that the result of the remainder operation with the source IP address included in the frame received from the network switch as the dividend is the server number of the first server, the frame received from the network switch is accepted. A load balancing system that processes and discards a frame received from the network switch when it is determined that the result is other than that.
前記複数のサーバのそれぞれは、
前記ネットワークスイッチから受信されたフレームに含まれる送信元ポート番号を被除数とした剰余算の結果に基づき受け付けて、処理すること
を特徴とする負荷分散システム。 The load distribution system according to any one of claims 1 to 10,
Each of the plurality of servers is
A load distribution system for receiving and processing based on a result of a remainder calculation with a source port number included in a frame received from the network switch as a dividend.
前記複数のサーバのそれぞれは、独自のサーバ番号を有し、
前記複数のサーバの中の第1のサーバは、動作しておらず、
前記複数のサーバの中の第2のサーバは、
前記ネットワークスイッチから受信されたフレームに含まれる送信元ポート番号を被除数とした剰余算の結果が、前記第2のサーバのサーバ番号あるいは前記第1のサーバのサーバ番号であると判定すると、前記ネットワークスイッチから受信されたフレームを受け付けて処理し、それ以外の結果であると判定すると、前記ネットワークスイッチから受信されたフレームを廃棄すること
を特徴とする負荷分散システム。 The load distribution system according to any one of claims 1 to 10,
Each of the plurality of servers has a unique server number;
A first server of the plurality of servers is not operating;
A second server of the plurality of servers is
When it is determined that the result of the remainder calculation with the source port number included in the frame received from the network switch as the dividend is the server number of the second server or the server number of the first server, the network A load distribution system that receives and processes a frame received from a switch and discards the frame received from the network switch when it is determined that the result is other than that.
前記複数のアドレス変換部のそれぞれは、
前記ネットワークスイッチからフレームを受信し、受信されたフレームに含まれる送信元IPアドレスを維持し、送信元MACアドレスを前記複数のサーバのMACアドレスとは異なるMACアドレスへ変換したフレームを前記ネットワークへ送信し、
前記ネットワークスイッチは、
ネットワークからフレームを受信し、前記ネットワークから受信されたフレームに含まれる宛先MACアドレスが前記複数のサーバのMACアドレスではないと、前記複数のサーバへフラッディングにより転送し、
前記複数のサーバのそれぞれは、
前記ネットワークスイッチからフレームを受信し、前記ネットワークスイッチから受信されたフレームに含まれる送信元IPアドレスを被除数とした剰余算の結果、あるいは宛先ポート番号に基づき受け付けて、処理すること
を特徴とする負荷分散システム。 A load balancing system having a plurality of servers, a network switch, and a plurality of address translation units,
Each of the plurality of address conversion units is
A frame is received from the network switch, a source IP address included in the received frame is maintained, and a frame obtained by converting the source MAC address to a MAC address different from the MAC addresses of the plurality of servers is transmitted to the network. And
The network switch is
Receiving a frame from the network, and if the destination MAC address included in the frame received from the network is not the MAC address of the plurality of servers, forwarding to the plurality of servers by flooding,
Each of the plurality of servers is
A load that receives a frame from the network switch, and receives and processes the frame based on a result of a remainder operation with a source IP address included in the frame received from the network switch as a dividend or a destination port number Distributed system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016063538A JP2017182138A (en) | 2016-03-28 | 2016-03-28 | Load balancing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016063538A JP2017182138A (en) | 2016-03-28 | 2016-03-28 | Load balancing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017182138A true JP2017182138A (en) | 2017-10-05 |
Family
ID=60006133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016063538A Pending JP2017182138A (en) | 2016-03-28 | 2016-03-28 | Load balancing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017182138A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018137643A (en) * | 2017-02-22 | 2018-08-30 | 日本電信電話株式会社 | Management device and management method |
CN113141633A (en) * | 2021-03-16 | 2021-07-20 | 深圳震有科技股份有限公司 | 5G communication data packet forwarding method and terminal |
-
2016
- 2016-03-28 JP JP2016063538A patent/JP2017182138A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018137643A (en) * | 2017-02-22 | 2018-08-30 | 日本電信電話株式会社 | Management device and management method |
CN113141633A (en) * | 2021-03-16 | 2021-07-20 | 深圳震有科技股份有限公司 | 5G communication data packet forwarding method and terminal |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9491234B2 (en) | Deterministic session load-balancing and redundancy of access servers in a computer network | |
US10079897B2 (en) | Control of a chain of services | |
JP5382451B2 (en) | Front-end system, front-end processing method | |
US10938724B2 (en) | Flow rate based network load balancing | |
WO2017209932A1 (en) | Link status monitoring based on packet loss detection | |
WO2014208538A1 (en) | Communication system, apparatus, method and program | |
Wu et al. | SOFIA: toward service-oriented information centric networking | |
US9807016B1 (en) | Reducing service disruption using multiple virtual IP addresses for a service load balancer | |
WO2017209923A1 (en) | Detecting source network address translation in a communication system | |
CN103155500A (en) | Methods, systems, and computer readable media for stateless load balancing of network traffic flows | |
US11863454B2 (en) | Systems and methods for scalable validation of multiple paths in a network using segment routing | |
US9509600B1 (en) | Methods for providing per-connection routing in a virtual environment and devices thereof | |
US10805202B1 (en) | Control plane compression of next hop information | |
CN112929264A (en) | Service flow transmission method, system and network equipment | |
EP4052442A1 (en) | In-band protocol-based in-network computation offload framework | |
JP2017182138A (en) | Load balancing system | |
Rayes et al. | The internet in IoT | |
Hussain et al. | A dynamic multipath scheduling protocol (DMSP) for full performance isolation of links in software defined networking (SDN) | |
Tripathi et al. | Ensuring reliability in cloud computing and comparison on IPv6 encouraged with protocols | |
KR101538667B1 (en) | Network system and method for controlling network | |
Motohashi et al. | Enabling P4-based Multipath Communication in Wireless Networks | |
TWI757887B (en) | Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver | |
WO2023169364A1 (en) | Routing generation method and apparatus, and data message forwarding method and apparatus | |
US20240187346A1 (en) | Systems and methods for scalable validation of multiple paths in a network using segment routing | |
US10944582B2 (en) | Method and apparatus for enhancing multicast group membership protocol(s) |