JP2014116645A - Computer system, communication path management method, and program - Google Patents
Computer system, communication path management method, and program Download PDFInfo
- Publication number
- JP2014116645A JP2014116645A JP2012266836A JP2012266836A JP2014116645A JP 2014116645 A JP2014116645 A JP 2014116645A JP 2012266836 A JP2012266836 A JP 2012266836A JP 2012266836 A JP2012266836 A JP 2012266836A JP 2014116645 A JP2014116645 A JP 2014116645A
- Authority
- JP
- Japan
- Prior art keywords
- network
- computer
- adapter
- switch
- server
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、計算機システム、通信経路管理方法及びプログラムに関し、特に、通信負荷の低減等する計算機システム、通信経路管理方法及びプログラムに関する。 The present invention relates to a computer system, a communication path management method, and a program, and more particularly, to a computer system, a communication path management method, and a program for reducing communication load.
近年、多数のサーバをネットワーク接続して大規模システムを構築し、大量のデータ処理を行うことが一般化している。特に、非特許文献1が開示するような大量データ処理向けの並列分散フレームワークの開発も、このような大規模システムの実現に貢献している。
In recent years, it has become common to connect a large number of servers to a network to construct a large-scale system and perform a large amount of data processing. In particular, development of a parallel distributed framework for mass data processing as disclosed in Non-Patent
非特許文献1は、所謂Map-Reduceに関する技術を開示する。Map-reduceは、複数の実行サーバ、分散ファイルシステムを提供する複数のデータサーバ及びそれらデータサーバに接続されるストレージ装置が通信可能に接続されてなるシステム構成等で一般に利用される。具体的には、
〔1〕分散ファイルシステム上のデータが各実行サーバに読み出され、レコード(行)単位で処理が実行され、レコード毎にkey-value形式の別のレコードを結果として出力するMapフェーズと、
〔2〕Mapフェーズが出力したレコードで同一keyを持つものを同一サーバに集めるShuffleフェーズと、
〔3〕key毎に集められたレコード群に対して処理が実行され、keyもしくはレコード毎に別のレコードを結果として出力し、分散ファイルシステムに保存するReduceフェーズと
から構成されるフレームワークである。
Non-Patent
[1] A Map phase in which data on the distributed file system is read to each execution server, processing is performed in units of records (rows), and another record in the key-value format is output as a result for each record;
[2] A Shuffle phase that collects records output by the Map phase that have the same key in the same server;
[3] A framework composed of a Reduce phase in which processing is performed on a record group collected for each key, another record is output as a result for each key or record, and the result is stored in a distributed file system. .
このように、Map-Reduceは、MapフェーズとReduceフェーズにおいて、ユーザはレコード単位で実行される処理のみを記述するだけでよいという利点がある。MapフェーズとReduceフェーズでの処理は、レコード単位で独立しているためにレコード毎に処理が並列実行されるようになっているが、並列実行の制御はフレームワークによって動的に行われるため、ユーザは、並列処理を意識しなくてもよいようになっている。
なお、分散ファイルシステムに格納されたデータは、分散ファイルシステムを構成する異なるサーバにその複製が作られ、障害耐性も確保されるようになっている。
As described above, Map-Reduce has an advantage that the user only needs to describe the process executed in units of records in the Map phase and the Reduce phase. Since the processing in the Map phase and the Reduce phase is independent for each record, the processing is executed in parallel for each record. However, since the parallel execution is controlled dynamically by the framework, The user does not need to be aware of parallel processing.
The data stored in the distributed file system is duplicated on different servers constituting the distributed file system so that fault tolerance is ensured.
このようなMap-Reduce処理を実行するシステムでは、上述の〔1〕〜〔3〕の各フェーズにおいて、各サーバや装置間で大規模な通信が発生する。この通信の総スループットはサーバ等の台数に比例するものである。そこで、各実行サーバと各データサーバが行う処理を同一サーバ上で行うことで、〔1〕のMapフェーズにおける、ネットワーク上のデータ転送量を削減することができる。しかしながら、〔2〕のSuffleフェーズは、本質的に通信が発生するものであるし、〔3〕のReduceフェーズは、データの複製を作成するために通信が発生することから、システム全体の通信量制御は困難である。 In a system that executes such a Map-Reduce process, large-scale communication occurs between the servers and devices in each of the phases [1] to [3] described above. The total throughput of this communication is proportional to the number of servers and the like. Therefore, by performing the processing performed by each execution server and each data server on the same server, the data transfer amount on the network in the [1] Map phase can be reduced. However, the [2] Suffle phase essentially generates communication, and the [3] Reduce phase generates communication to create a copy of the data. Control is difficult.
したがって、大量データ処理を行う際にサーバ台数に比例した量の通信を適切に制御するには、システムの規模を拡大すると共にネットワーク帯域の向上も不可欠となる。よって、多くのサーバをネットワークで接続する方法として、ネットワークスイッチ(以下、「NTスイッチ」という。)を多段に接続したツリー型のネットワーク構成が利用されることも多い。しかしながら、この方法では上位ネットワークスイッチに通信負荷が集中し、ボトルネックとなってしまうという問題が生ずる。 Therefore, in order to appropriately control the amount of communication proportional to the number of servers when processing a large amount of data, it is indispensable to expand the system scale and improve the network bandwidth. Therefore, as a method of connecting many servers via a network, a tree-type network configuration in which network switches (hereinafter referred to as “NT switches”) are connected in many stages is often used. However, this method has a problem that the communication load is concentrated on the upper network switch and becomes a bottleneck.
更に、ネットワーク帯域を向上させる他の技術として、例えば、非特許文献2が開示するものもある。所謂SMLT(Split Multi-link Trunking)に関する技術である。説明のために、図15に、そのネットワーク構成を例示する。図15のネットワーク構成は、複数のサーバSV10〜SVnの夫々が、複数のネットワークアダプタ(以下、「NTアダプタ」という。)E100〜En110を備え、NTアダプタ毎に、異なるNTスイッチSW10又はSW20に接続され、更に、NTスイッチ同士が通信可能に接続(以下、NTスイッチ間を接続する経路を「スイッチ間パス」という。)された構成を有する。なお、NTスイッチSW10及びSW20は、“Layer-2”のスイッチである。 Further, for example, Non-Patent Document 2 discloses another technique for improving the network bandwidth. This is a technique related to so-called SMLT (Split Multi-link Trunking). For the sake of explanation, FIG. 15 illustrates the network configuration. In the network configuration of FIG. 15, each of the plurality of servers SV10 to SVn includes a plurality of network adapters (hereinafter referred to as “NT adapters”) E100 to En110, and each NT adapter is connected to a different NT switch SW10 or SW20. Furthermore, the NT switches have a configuration in which the NT switches are communicably connected (hereinafter, a path connecting the NT switches is referred to as an “inter-switch path”). The NT switches SW10 and SW20 are “Layer-2” switches.
各サーバSV10〜SVnがパケットを送信する際、Link-Aggregationのアルゴリズムによってパケット送信に利用するNTアダプタが決定される。例えば、通常運用時、サーバSV20から、NTアダプタE200を介して、サーバSV10にパケットが送信されるとする(実線矢印)。送信されるパケットは、図15に示すように、NTスイッチSW10及びNTアダプタE100を経由してサーバSV1に送信される(実線矢印)。 When each server SV10 to SVn transmits a packet, an NT adapter to be used for packet transmission is determined by the Link-Aggregation algorithm. For example, assume that a packet is transmitted from the server SV20 to the server SV10 via the NT adapter E200 during normal operation (solid arrow). As shown in FIG. 15, the transmitted packet is transmitted to the server SV1 via the NT switch SW10 and the NT adapter E100 (solid arrow).
NTアダプタE100とNTアダプタSW10の間に障害が発生した場合、通信経路は、示すようにE200、SW10、SW20、E110を経由してサーバSV20からサーバSV10にデータを転送するように変更される(破線矢印)。即ちサーバSV20は、サーバSV10とNTスイッチSW10間で発生した障害を検知できないため、障害発生前と同様にNTアダプタE200からパケットを送信するので、スイッチ間パスを通ってパケットが転送されるようになる。 When a failure occurs between the NT adapter E100 and the NT adapter SW10, the communication path is changed to transfer data from the server SV20 to the server SV10 via the E200, SW10, SW20, and E110 as shown ( Dashed arrows). That is, since the server SV20 cannot detect a failure occurring between the server SV10 and the NT switch SW10, the packet is transmitted from the NT adapter E200 in the same manner as before the failure, so that the packet is transferred through the inter-switch path. Become.
ネットワーク帯域を向上するための、他の更なる技術として、特許文献1が開示するものもある。この技術を適用するネットワークの構成例を図16に示す。非特許文献2のネットワーク構成例(図15)との違いはNTスイッチSW10とSW20の間が直接接続されていない点と、NTスイッチSW10及びSW20の上位にNTスイッチSW30(Layer-3)を接続している点である。NTスイッチSW30以下の構成を複数用意し、これらをトーラス状に接続することで大規模なネットワークを構築できる。
As another further technique for improving the network bandwidth, there is a technique disclosed in
特許文献1の技術では、サーバ及びNTスイッチ間の接続に障害が発生した場合、スイッチ間パスを使用しないような経路に変更される点が非特許文献2の技術とは異なる。具体的には、通常運用時には、サーバSV20からサーバSV10へのパケットが、E200、SW10、E100を経由して送信される(図15に示した実線矢印と同様)。E100とSW10間の接続に障害が発生した場合には、サーバSV20からサーバSV10へのパケットはE210、SW20、E110を経由して転送されるように経路が変更されるようになっている(破線矢印)。
The technique of
また、非特許文献3は、サーバが搭載する複数のNTアダプタをソフトウェア的に制御する技術を開示する。本文献には複数の制御方法が記載されているがこのうち、balance-tlbとbalance-albが複数のNTスイッチを利用して帯域を向上することができ、例えば、上述の図15に示すようなネットワーク構成で利用可能である。
Non-Patent
balance-tlbによって、サーバがパケットを送信するときにNTアダプタの負荷が平準化されるように送信用NTアダプタが選択される。balance-albによって、パケット送信時だけではなく、パケット受信時にも、NTアダプタの負荷平準化が行われる。具体的には、各NTアダプタの受信データ量をモニタリングし、各NTアダプタの受信負荷が均等化されるように受信NTアダプタが制御される。パケット受信に利用するNTアダプタの選択は、サーバが他サーバからARP要求を受信したときに、そのサーバからの受信処理で使用するNTアダプタのMACアドレスがARP応答内の送信元MACアドレスとして返信されることで実現されるようになっている。 The balance-tlb selects the transmission NT adapter so that the load of the NT adapter is leveled when the server transmits a packet. By balance-alb, load leveling of the NT adapter is performed not only at the time of packet transmission but also at the time of packet reception. Specifically, the reception data amount of each NT adapter is monitored, and the reception NT adapter is controlled so that the reception load of each NT adapter is equalized. When the server receives an ARP request from another server, the NT adapter MAC address used in the reception process from that server is returned as the source MAC address in the ARP response. It has come to be realized.
非特許文献2の課題として、ネットワーク経路上で障害が発生すると、必ずスイッチ間パスを通る経路に変更されるため、複数経路上で障害が発生するとスイッチ間パスが通信のボトルネックになる可能性がある。また、このシステムを大規模化する方法として、図17に示すように、図15のように構成されるサブネットをトーラス状に相互接続することが考えられるが、このときサブネット間の通信ではスイッチ間パスを利用することになる。従って、ネットワーク経路上で障害が発生した場合、スイッチ間パスにネットワーク負荷がかかると、サブネット間通信で利用可能な帯域が減ってしまうという課題がある。 As a problem of Non-Patent Document 2, when a failure occurs on a network route, the route is always changed to a route that passes through an inter-switch path. If a failure occurs on multiple routes, the inter-switch path may become a communication bottleneck. There is. As a method for increasing the scale of this system, as shown in FIG. 17, it is conceivable to interconnect subnets configured as shown in FIG. 15 in a torus shape. You will use the path. Therefore, when a failure occurs on the network path, there is a problem that the bandwidth that can be used for inter-subnet communication is reduced when a network load is applied to the inter-switch path.
非特許文献2の技術の課題として、ネットワークトポロジを考慮しないため、スイッチ間パスを経由する通信が発生する頻度が高くなることが挙げられる。具体的には、通信経路をランダムに選ぶことになるため、通信の概ね半分がスイッチ間パスを経由することになる。 A problem of the technique of Non-Patent Document 2 is that since the network topology is not considered, the frequency of occurrence of communication via the inter-switch path is increased. Specifically, since a communication route is selected at random, almost half of the communication goes through the inter-switch path.
特許文献1の技術の課題として、耐障害性が低い点が挙げられる。例えば、図15のようにE100とSW10間で障害が発生するのに加えて、更にE210とSW20間に障害が発生した場合を考慮すると、サーバSV10とサーバSV20間の通信が不可能になる。
The problem of the technique of
また、非特許文献2及び特許文献1の技術に共通する課題として、障害発生時のパケット転送経路の変更がNTスイッチによって制御されるようになっているため、専用機能を持つNTスイッチが必要となる。汎用性やコスト的な課題が生ずる。
In addition, as a problem common to the technologies of Non-Patent Document 2 and
上述の課題を解決するため、例えば、請求項1に記載の構成を適用する。即ち通信可能に接続された少なくとも第1及び第2ネットワークスイッチと、前記第1ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第1ネットワークアダプタ及び前記第2ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第2ネットワークアダプタを少なくとも有する複数の計算機とからなる計算機システムであって、前記複数の計算機は、前記他の計算機の第1及び第2ネットワークアダプタと、自計算機の第1及び第2ネットワークアダプタとの間での通信可能な経路情報を保持する記憶部と、前記経路情報から、前記第1及び第2ネットワークスイッチ間での通信が無い通信経路を、前記他の計算機との通信経路として優先的に決定する制御部とを有する計算機システムである。
In order to solve the above-described problem, for example, the configuration described in
本発明の一側面によれば、スイッチ間パスのトラフィックを低減ことができるとともに、システム構成する計算機間の通信において、より短い経路で通信することができる。更に、通信経路選択の制御を各計算機が実行するため、ネットワークスイッチの制御系を簡素化することができる。
本発明の他の課題及び効果は、以下の実施形態の内容から明らかになるであろう。
According to one aspect of the present invention, it is possible to reduce the traffic on the inter-switch path and to communicate with a shorter path in communication between computers constituting the system. Furthermore, since each computer executes control of communication path selection, the network switch control system can be simplified.
Other problems and effects of the present invention will become apparent from the contents of the following embodiments.
以下、本発明を実施するための形態について、図面を用いて詳細に説明する。
図1A、図1B及び図2に、本発明を適用した一実施形態である計算機システム1の経路選択の概要を示す。計算機システム1は、複数のNTアプタE10〜En1を有するサーバSV1〜SVnが、NTアダプタ毎に異なるL3スイッチ(Layer-3で動作するNTスイッチ)SW1又はSW2に接続され、更に、L3スイッチ同士の通信を可能とするスイッチ間パスを有する1つのサブネットを構成する。
Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
FIG. 1A, FIG. 1B, and FIG. 2 show an outline of route selection of the
システムの規模が小さくサブネットの数が1つでよい場合には、L3スイッチをL2スイッチ(Layer-2で動作するNTスイッチ)に変更した構成を適用すればよい。システムの規模を拡大したい場合には、NTスイッチをL3スイッチとし、サブネット間をこのL3スイッチ同士で接続するネットワーク構成に対して本発明を適用することが可能である。例えば、図17に示すように、サブネットのNTスイッチをトーラス状に接続した構成である。
例えば、前述したようなMap-Reduce等を実施するために、並列分散システムを構成する場合、実行サーバやデータサーバをサブネット内のサーバとして必要なだけ配置すればよい。
When the system scale is small and only one subnet is required, a configuration in which the L3 switch is changed to the L2 switch (NT switch operating in Layer-2) may be applied. In order to expand the scale of the system, the present invention can be applied to a network configuration in which NT switches are L3 switches and subnets are connected by the L3 switches. For example, as shown in FIG. 17, the subnet NT switches are connected in a torus shape.
For example, when configuring a parallel distributed system to implement Map-Reduce as described above, it is only necessary to arrange as many execution servers and data servers as necessary in the subnet.
サブネット間通信は従来のLayer−3の機能を利用して通信するため、サブネット間を接続するネットワークトポロジはトーラスに限らず、FatTree、メッシュ等種々のものを適用可能である。また、サブネット間のルーティング制御方法としてOSPF(Open Shortest Path First)といったルーティング制御プロトコルが適用可能である。 Since inter-subnet communication uses the conventional Layer-3 function, the network topology connecting the subnets is not limited to a torus, and various types such as FatTree and mesh can be applied. A routing control protocol such as OSPF (Open Shortest Path First) is applicable as a routing control method between subnets.
図1Aにおいて、通常運用時には、各サーバがパケットを相手サーバに転送する場合、Link-Aggregationのアルゴリズムによってパケット送信に利用するNTアダプタが選択される。つまり、自身のIPアドレスと宛先サーバのIPアドレスの組合せから、パケット送信に利用するNTアダプタを決定する。具体的には、サーバSV2からサーバSV1にパケットが送信されるとき、NTアダプタE20からパケットが送信され、E20、SW1、E10という経路でサーバSV1に送られるようになっている。 In FIG. 1A, during normal operation, when each server transfers a packet to a partner server, an NT adapter to be used for packet transmission is selected by a Link-Aggregation algorithm. That is, the NT adapter to be used for packet transmission is determined from the combination of its own IP address and the IP address of the destination server. Specifically, when a packet is transmitted from the server SV2 to the server SV1, the packet is transmitted from the NT adapter E20 and is transmitted to the server SV1 through a route of E20, SW1, and E10.
これに対し、E10とSW1の間で障害が発生した場合には、サーバSV2によってこの障害の発生が検知される。そして、通信経路がE21、SW2、E11のように変更され、サーバSV1にパケットが送信されようになっている。上述の非特許文献2では、サーバSV20は、この障害発生を検知できないため、E200からパケットを送信し、E200、SW10、SW20、E110という経路を使用してパケットを送信するが(図15参照)、計算システム1では、これよりも短い経路を選択することができる。
On the other hand, when a failure occurs between E10 and SW1, the occurrence of this failure is detected by the server SV2. The communication path is changed to E21, SW2, and E11, and the packet is transmitted to the server SV1. In the above-mentioned Non-Patent Document 2, the server SV20 cannot detect the occurrence of the failure, and therefore transmits a packet from the E200 and transmits a packet using the routes E200, SW10, SW20, and E110 (see FIG. 15). In the
なお、図1Bに示すように、さらにE21とSW2の間で障害が発生した場合、サーバSV2からサーバSV1に至る経路はE20、SW1、SW2、E11という経路のみであるため、この経路を使用してパケットを送信するようになっている。 As shown in FIG. 1B, when a failure further occurs between E21 and SW2, the route from server SV2 to server SV1 is only the route E20, SW1, SW2, E11, so this route is used. To send packets.
図2に、他のサブネットからサーバSV1に対してパケットが送信された際の通常運用時及び経路障害時の様を示す。
他のサブネットからパケットを受信する場合、L3スイッチSW1若しくはSW2がパケットのルーティングを行うことになる。このときL3スイッチはなるべく最短経路を選択する。例えば、図2に示すように、L3スイッチSW1が、他のサブネットからサーバSV1宛てに送信されたパケットを受信した場合、SW1、E10という経路を使用してパケットを転送するようになっている。
FIG. 2 shows a normal operation and a route failure when a packet is transmitted from another subnet to the server SV1.
When a packet is received from another subnet, the L3 switch SW1 or SW2 performs packet routing. At this time, the L3 switch selects the shortest path possible. For example, as shown in FIG. 2, when the L3 switch SW1 receives a packet transmitted from another subnet to the server SV1, the packet is transferred using the routes SW1 and E10.
L3スイッチSW1とE10の間で障害が発生した場合、他のサブネットから送信されたパケットはSW1、SW2、E11を経由してサーバSV1に転送されるようになっている。このとき、L3スイッチSW1がLayer-3のルーティングを行い、パケットのMACアドレスを書き換え、NTスイッチSW2はLayer-2スイッチとして動作する。 When a failure occurs between the L3 switches SW1 and E10, packets transmitted from other subnets are transferred to the server SV1 via SW1, SW2, and E11. At this time, the L3 switch SW1 performs Layer-3 routing, rewrites the MAC address of the packet, and the NT switch SW2 operates as a Layer-2 switch.
他方、他のサブネットに対してパケット送信する場合、L3スイッチを介してパケットを送信するようになっており、計算機システム1は、同一サブネット内のL3スイッチへのパケット送受信についても制御を行うようになっている。
そして、L3スイッチSW1とE10の間で障害が発生した場合、E10、SW2、SW1という経路を使用するようになっている。
On the other hand, when transmitting a packet to another subnet, the packet is transmitted via the L3 switch, and the
When a failure occurs between the L3 switches SW1 and E10, routes E10, SW2, and SW1 are used.
同一サブネット内のL3スイッチSW1、SW2はサブネット内において、それぞれ異なるアドレスを有しており、どちらのアドレスを持つL3スイッチにパケットを転送するかは、各サーバSV1又はSV2のルーティング機能によって決定する。この処理はサーバSV1やSV2に実装された既存のOSの機能を利用して実現するようになっている。 The L3 switches SW1 and SW2 in the same subnet have different addresses in the subnet, and it is determined by the routing function of each server SV1 or SV2 which address the packet is transferred to. This process is realized by using the function of the existing OS installed in the servers SV1 and SV2.
また、例えば、サーバSV1からL3スイッチSW1に到達できない場合は、L3スイッチSW2を経由してパケットを送信することも考えられる。この場合には、サーバSV1のルーティング設定変更と、L3スイッチ間のルーティング設定変更を行うことで実現することとなる。 Further, for example, when the server SV1 cannot reach the L3 switch SW1, a packet may be transmitted via the L3 switch SW2. In this case, it is realized by changing the routing setting of the server SV1 and changing the routing setting between the L3 switches.
上述したような種々の効率的な経路選択は、各サーバSV1〜SVnが有する経路検出処理によって行うようになっている。より具体的には、各サーバが通信に関する宛先情報等が含まれたプローブパケットを送信し、これに対して他のサーバから返信されたプローブパケットを受信することで、通信可能な経路を管理することによって実現するようになっている。 Various efficient route selections as described above are performed by route detection processing possessed by each of the servers SV1 to SVn. More specifically, each server transmits a probe packet including destination information related to communication, and receives a probe packet returned from another server, thereby managing a communicable route. It has come to be realized.
なお、本実施形態において、計算機システム1では、上述のような処理動作を一般的なNTスイッチとサーバ上で稼働するソフトウェアによって実現する例を説明するものとするが、本発明は、その一部或いは全部をハードウェアとして実現することも可能である。
以上が、計算機システム1における経路選択の概要である。
In the present embodiment, the
The above is the outline of route selection in the
以下、計算機システム1を構成するサーバSVについて詳細に説明する。
図3に、サーバSV1の構成を示す。他のサーバSVnも同様の構成を有する。サーバSV1は汎用のサーバ装置であり、CPU1、メモリ2、通信I/F3、NIC4並びに5、STG-I/F6及び入出力装置7を有する。また、サーバSV1は、外部ストレージ装置30と通信可能に接続される。
Hereinafter, the server SV constituting the
FIG. 3 shows the configuration of the server SV1. Other servers SVn have the same configuration. The server SV1 is a general-purpose server device, and includes a
通信I/F3は、L3スイッチSW1に接続されるNIC4と、L3スイッチSW2に接続されるNIC5とに接続される。STG-I/F6は、サーバSV1の外部ストレージ装置と通信するためのI/Fである。外部ストレージ装置には、後述する設定ファイル31が格納され、適宜サーバSV1との間で読み出しや更新がされるようになっている。
The communication I /
サーバSV1のメモリ2には、CPU1とプログラムとの協働によって、仮想NICドライバ10と、ネットワーク処理部20とが実現される。
In the memory 2 of the server SV1, a
仮想NICドライバ10では、サーバSV1が有する複数のNTアダプタ4及び5を仮想的に1つのNTアダプタに見せるようになっている。なお、以下では、NIC4にeth0と併記し、NIC5にeth1と併記する場合がある。仮想NICドライバ10は、同一サブネット内で稼働する他のサーバとの通信状態を管理する稼働サーバ情報10、自サーバが有するNTアダプタの情報を管理するNTアダプタ情報12、同一サブネット内で稼働するL3スイッチSW1及びSW2との通信状態を管理するルータ情報13、サーバSV1等によるパケット制御に対応しないサーバがとり得るアドレスの範囲を管理するシングル経路情報14を有する。
In the
ネットワーク処理部20は、OSが提供するLayer−3のパケット制御機能部であり、ARP情報21及びルーティング情報22を有する。ネットワーク処理部20は、仮想NICドライバ10の上位層の機能部として動作する。
The
図4に、稼働サーバ情報102の具体例を模式的に示す。稼動サーバ情報11には、サーバのIPアドレス111、NTアダプタのMACアドレス112、近接するL3スイッチを示すSW113、通信相手サーバのNTアダプタ(eth0)の稼働を最後に確認した最終時刻であるTime(eth0)114及び通信相手サーバのNTアダプタ(eth1)の稼働を確認した最終時刻Time(eth1)115の各情報が含まれ、これらが対応付けて管理されるようになっている。同一サブネット内に存在するサーバが有するNTアダプタ毎に1エントリが登録され、各サーバとの通信状態が管理されるようになっている。
FIG. 4 schematically shows a specific example of the operating server information 102. The operating
なお、L3スイッチの識別子は、システム全体で統一されたものである。本実施形態では、L3スイッチSW1の識別子を「0」、SW2の識別子を「1」とするものとする。また、一般に利用されるEthernet(登録商標)のMACアドレスは6バイトであるが、本実施形態では、簡単の為に3バイトとして記載するものとする。 Note that the identifier of the L3 switch is unified throughout the system. In this embodiment, it is assumed that the identifier of the L3 switch SW1 is “0” and the identifier of SW2 is “1”. In addition, although the MAC address of Ethernet (registered trademark) that is generally used is 6 bytes, in this embodiment, it is described as 3 bytes for simplicity.
図5に、NTアダプタ情報12の具体例を模式的に示す。NTアダプタ情報12は、NTアダプタの識別子であるNIC121、NTアダプタのMACアドレス122及び近接するL3スイッチの識別子であるSW情報123が含まれ、これらが対応付けて管理されるようになっている。NTアダプタ情報12に登録されたNTアダプタから、仮想NTアダプタが生成される。従って、仮想NTアダプタに参加させたくないNTアダプタは、NTアダプタ情報12に登録しないようにする。
FIG. 5 schematically shows a specific example of the
また、NTアダプタ情報12には、自サーバが有するNTアダプタ毎に1エントリが登録される。図5は、一例としてサーバSV1が有する2つのNTアダプタが登録されている様を示す。
In the
図6に、ルータ情報13の具体例を模式的に示す。ルータ情報13で、サブネット内のL3スイッチ一覧が登録され、各L3スイッチとの通信状態が管理されるようになっている。ルータ情報13には、L3スイッチのアドレスであるSWアドレス131、L3スイッチのMACアドレスであるSW-MACアドレス、L3スイッチを識別するSW識別子133、自サーバのNIC4(eth0)とL3スイッチSW1間の通信状態を示すStatus(eth0)134、自サーバのNIC5(eth0)とL3スイッチ間の最終通信時刻を示すTime(eth0)135、自サーバのNIC5(eth1)とL3スイッチ間の通信状態を示すStatus(eth1)136、自サーバのNIC5(eth1)とL3スイッチ間の最終通信時刻Time(eth1)137が含まれる。
FIG. 6 schematically shows a specific example of the
図7に、シングル経路情報105の具体例を模式的に示す。NICを1つしか備えず、サーバSV1〜nによるパケット制御に対応しないサーバ(以下、「未対応サーバ」という。)は、L3スイッチSW1若しくはSW2と接続され、それを経由して、サーバSV1〜nと通信することになる。そこで、本実施形態では、未対応サーバをL3スイッチに接続する際、その未対応サーバに予め決めておいた範囲のアドレスを設定することで、サーバSV1〜nのパケット制御に対応したサーバと区別できるようになる。例えば、図7の最初のエントリは、L3スイッチSW1(識別子=「0」)に接続する未対応サーバは、「192.168.1.200〜192.168.1.219」の範囲のアドレスを設定することを示す。 FIG. 7 schematically shows a specific example of the single path information 105. A server that has only one NIC and does not support packet control by the servers SV1 to SVn (hereinafter referred to as “unsupported server”) is connected to the L3 switch SW1 or SW2 and passes through the servers SV1 to SV1. will communicate with n. Therefore, in this embodiment, when an unsupported server is connected to the L3 switch, an address in a predetermined range is set for the unsupported server, thereby distinguishing it from the server corresponding to the packet control of the servers SV1 to SVn. become able to. For example, the first entry in FIG. 7 indicates that an unsupported server connected to the L3 switch SW1 (identifier = “0”) sets an address in the range of “192.168.1.200 to 192.168.1.219”.
図8に、ARP情報15の具体例を示す。ARP情報15は、OSが、通信に利用するNICと、通信相手のアドレスとから通信相手のMACアドレスを決定するために利用される情報である。ARP情報15には、通信に利用する自サーバのNTアダプタを示すNIC151、通信相手のIPアドレス152、通信相手のMACアドレス153が含まれる。図8の例は、3エントリが登録されており、OSからは仮想NTアダプタが利用されることからARP情報15のNIC531には、仮想NTアダプタの識別子である「veth0」が登録されている様を示す。
FIG. 8 shows a specific example of the
図9に、ルーティング情報16の具体例を模式的に示す。ルーティング情報16は、パケットを送信する際、OSが、送信先アドレスに基づいて、利用するNTアダプタ(NIC)を決定するために利用される。ルーティング情報16には、パケット送信先のアドレス若しくはアドレス範囲を示す宛先アドレス161と、宛先が他サブネットのときに転送パケットが経由するL3スイッチのアドレスであるゲートウェイアドレス162と、パケット送信に使用するNICの識別子を示すNIC163が含まれる。
FIG. 9 schematically shows a specific example of the routing
なお、OS層からのパケット送信は以下のように行われる。まず、OSによって、ルーティング情報16が参照され、パケットに記載されたアドレスに基づいて、利用するNTアダプタ(NIC)が決定される。そして、NTアダプタ(NIC)と送信先アドレスに基づき、ARP情報15が参照され、送信先のMACアドレスが決定される。続いて、OSによって、仮想NTアダプタ「veth0」にパケット送信が要求されると、仮想NICドライバ10によって、実際にパケットを転送するNTアダプタ(NIC)が決定されるようになっている。
Note that packet transmission from the OS layer is performed as follows. First, the OS refers to the
ストレージ装置30に保持された、設定ファイル31は、上述の種々の情報に初期値を設定するために利用されるものである。システム起動時は、NTアダプタ情報12、ルータ情報13及びシングル経路情報14にエントリが登録されておらず、設定ファイル31が読み込まれることによって初期値が登録されるようになっている。
The setting
図10に、設定ファイル31の具体例を模式的に示す。
設定ファイル31の”virtual NIC and Switch“セクションには、仮想NTアダプタの識別子と対応付けるNTアダプタの識別子の対応関係が記述されている。図の例では、NIC4(eth0)と(eth1)とが、仮想NTアダプタ(veth0)に対応する旨を示す。更に、図に示すように、設定ファイル31では、NICの識別子毎に、近接L3スイッチの識別子が記述されている(eth0(0)及びeth(1)の(0)及び(1)の部分。)。
なお、NICの識別子から対応するNICのMACアドレスを求めることは、通常、OSの機能として実装されている。これらの情報に基づき、NTアダプタ情報12に、エントリを追加するようになっている。
FIG. 10 schematically shows a specific example of the setting
The “virtual NIC and Switch” section of the setting
Note that obtaining the MAC address of the corresponding NIC from the NIC identifier is usually implemented as an OS function. Based on these pieces of information, an entry is added to the
設定ファイル31の”router”セクションには、L3スイッチのアドレス、L3スイッチのMACアドレス、L3スイッチの識別子が記述されている。これらの情報がルータ情報13に設定されるようになっている。また、L3スイッチとの通信状態は不明であるため、ルータ情報13のStatus(eth0)134及びStatus(eth1)136には「−」が設定される。
In the “router” section of the
設定ファイル31の“single path”セクションには、サーバSV1〜nによるパケット制御に未対応のサーバがとり得るアドレスの範囲が記述されている。各エントリはアドレスの範囲と、未対応サーバを接続するL3スイッチの識別子とから構成される。この情報に基づき、シングル経路情報14(図7)にエントリが追加されるようになっている。
稼働サーバ情報11は、後述するように、他サーバからプローブパケットを受信することでエントリが追加されるようになっているため、各情報の初期化が終了した時点でも登録エントリ数に「0」が設定されている。
In the “single path” section of the setting
As will be described later, since the entry is added to the
また、“virtual NIC and Switch”セクションと、“router”セクションとに記述されている情報に基づいて、ARP情報15(図8)に予めルータの情報が設定されるようになっている
“virtual NIC and Switch”セクションに記述されている情報は、仮想NTアダプタの識別子を取得するために利用される。これによって、OSからL3スイッチにARP要求が送信されることがなくなることとなる。
以上が計算機システム1の構成である。
Further, based on the information described in the “virtual NIC and Switch” section and the “router” section, router information is set in advance in the ARP information 15 (FIG. 8). The information described in the “and Switch” section is used to acquire the identifier of the virtual NT adapter. As a result, the ARP request is not transmitted from the OS to the L3 switch.
The above is the configuration of the
次に、計算機システム1の仮想NICドライバ10の動作を説明する。
先ず、図11、12及び13に、仮想NICドライバ10が、「パケット送信処理」の流れを示す。
S101で、仮想NICドライバ10は、OSからのパケット送信要求を受けると、当該パケットから送信先アドレスを取り出し、宛先のサーバがマルチパス非対応サーバであるか否かを判定する。
即ちパケットがARP要求の場合、ターゲットIPアドレス(Target IP Address)が送信先アドレスとなるが、仮想NICドライバ10は、シングル経路14を参照して、取り出した送信先アドレスが、開始アドレスと終了アドレスの範囲に含まれるエントリがあるか否かを判定する。
Next, the operation of the
First, FIGS. 11, 12, and 13 show the flow of “packet transmission processing” by the
In S101, upon receiving a packet transmission request from the OS, the
That is, when the packet is an ARP request, the target IP address (Target IP Address) is the destination address, but the
エントリが存在すると判断する場合、読み出した宛先のサーバは、本実施形態におけるマルチパス制御に非対応のサーバであることから、S125に進む。逆に、エントリが存在しないと判断する場合、読み出した宛先のサーバは、マルチパス制御に対応するサーバであることから、S103に進む。 If it is determined that there is an entry, the read destination server is a server that does not support multipath control in the present embodiment, and thus the process proceeds to S125. On the other hand, if it is determined that there is no entry, the read destination server is a server that supports multipath control, and thus the process proceeds to S103.
S103で、仮想NICドライバ10は、ルータ情報13を参照し、パケット送信先がL3スイッチであるかどうかを確認する。具体的には、パケットに含まれる送信先アドレスが、ルータ情報13のアドレスに一致するエントリが存在するか否かを判定する。このようなエントリが存在したら、そのエントリに対応するL3スイッチがパケット送信先と決定し、S105の処理に進む。なお、パケットがARP要求の場合、ターゲットIPアドレス(Target IP Address)が送信先アドレスとなる。
逆に、対応するL3スイッチが存在しないと判断する場合、S109の処理に進む。
In S103, the
Conversely, if it is determined that there is no corresponding L3 switch, the process proceeds to S109.
S105で、仮想NICドライバ10は、L3スイッチへのパケット送信に利用するNTアダプタを決定する(「ルータとの経路検出処理」)。本処理の詳細は、図12を用いて後述する。
In S105, the
S107で、仮想NICドライバ10は、パケットの送信元MACアドレスを、S105で決定したNTアダプタのMACアドレスに書き換えて、パケットを送信し、本フローを抜ける。L3スイッチからARP要求を受信した場合には、ARP応答を返信する必要があるが、特にARP応答の返信において、上記MACアドレスの書換え処理が重要な役割を果たす。即ち経路長が長く優先順位が低い経路の情報を含むARP応答を返すと、L3スイッチは自身のARP情報にその情報を記録し、その後、その経路を使ってサーバにパケットを送信するようになるためである。
In S107, the
他方、S103において、パケット送信先アドレスがルーティング情報16のアドレスに一致するエントリが見つからない場合の処理について説明する。
S105で、仮想NICドライバ10は、パケット送信先アドレスが稼働サーバ情報11のアドレスに一致するエントリを検索し、S111で、そのようなエントリが存在するか否かを判定する。より具体的には、仮想NICドライバ10は、存在すると判定したエントリについて、更に対応するTime(eth0)114若しくはTime(eth1)115が一定時間内であるかを判定する。
On the other hand, a process when the entry whose packet transmission destination address matches the address of the routing
In S105, the
条件を満たす場合には、そのエントリに対応するサーバがパケット送信先の候補として、S113に進む。逆に、パケット送信先アドレスが稼働サーバ情報11のアドレスに一致するエントリが存在しない若しくは存在しても対応するTime(eth0)114若しくはTime(eth1)115が一定時間外である場合、S121の処理に進む。
If the condition is satisfied, the server corresponding to the entry is determined as a packet transmission destination candidate, and the process proceeds to S113. On the other hand, if there is no entry whose packet destination address matches the address of the
S113で、仮想NICドライバ10は、パケットがARP要求か否か判定する。ARP要求である場合、S115に進み、ARP要求でない場合、S117に進む。
In step S113, the
S115で、仮想NICドライバ10は、APR要求のパケットは送信せずに、擬似的となるARP応答を生成してOSに返信し、本フローを抜ける。即ち本実施形態の特徴の1つは、プローブパケットを利用したサーバ検出である。よって、ARP要求を送信する必要がない。しかしながら、OSを正常に動作させるためには、OSがARP応答を受信したように振る舞う必要があるので、仮想NICドライバ10が擬似的となるARP応答を生成してOSに返すようになっている。このARP応答には、送信元MACアドレスとして、通信相手サーバのNTアダプタのMACアドレスを含めるようにする。
In S115, the
なお、稼働サーバ情報11の各エントリは、通信相手サーバのNTアダプタ毎にエントリが生成されることから、障害発生等がなければ通信相手サーバのMACアドレスは複数存在する。この場合、ARP応答の送信元MACアドレスは、上記複数のMACアドレスうちのいずれでもよいが、ARP情報15の書き換えを少なくするため、複数のMACアドレスのうちで最小のものを採用し、なるべくMACアドレスの変更がないようにしてもよい。
Since each entry of the
他方、S117において、S113の判定でパケットがARP要求でなかった場合、仮想NICドライバ10は、S111で見つけた稼働サーバ情報11のエントリに登録された情報と、NTアダプタ情報12に記載された情報とに基づき、パケット送信に利用するNTアダプタを決定する。
ことのき、優先利用する経路の条件として、(1)経路長が短いこと、(2)経路長が同じ経路が複数存在する場に、なるべく同一経路を使い続けることを加味して最適経路を選択する。
On the other hand, in step S117, if the packet is not an ARP request in the determination in step S113, the
In this case, the conditions of the route to be preferentially used include (1) a short route length, and (2) an optimal route in consideration of continuing to use the same route as much as possible when there are multiple routes with the same route length. select.
(1)において、経路長が短いことを基準の一つとするのは、L3スイッチ間の回線を利用しないことを意味し、この経路を利用することでネットワーク負荷が低減するからである。また、(2)において、なるべく同一経路を使い続けるのは、パケットを送信する度に送信経路を変更するとパケットの到着順序が逆転し、通信効率が低下することを防止するためである。 In (1), the short path length is one of the criteria because it means that the line between the L3 switches is not used, and the network load is reduced by using this path. In (2), the reason why the same route is used as much as possible is to prevent the packet arrival order from being reversed and the communication efficiency from being lowered if the transmission route is changed each time a packet is transmitted.
例えば、パケット送信先のアドレスが192.168.1.11の場合、稼動サーバ情報11には、上記アドレスに合致するエントリが2つある。各エントリは、通信相手サーバのNTアダプタに対応する。稼働サーバ情報11のTime(eth0)、Time(eth1)は、自サーバのNTアダプタeth0、eth1と通信確認を行った時刻である。これが一定時間内であれば、通信可能とみなすことができる。この場合、通信相手サーバのMACアドレス「ab:cd:10」のNTアダプタ及び自サーバのeth0、eth1という組合せと、通信相手サーバのMACアドレス「ab:cd:11」のNTアダプタ及び自サーバのeth0、eth1の組合せとは全て通信可能であり、合計4通りの通信経路が存在する。
For example, when the address of the packet transmission destination is 192.168.1.11, the
そして、これら通信経路の経路長は2種類存在する。1つはL3スイッチを1回だけ通過する最短経路であり、もう1つはL3経路を2回通過する迂回経路である。稼働サーバ情報11に登録された上記エントリのSW113を参照し、この値がNTアダプタ情報12のSW123に一致するような、NTアダプタ情報12上のエントリを検索する。稼動サーバ情報11の1番目のエントリに対しては、NTアダプタ情報12の1番目のエントリが対応する。稼動サーバ情報11の2番目のエントリに対しては、NTアダプタ情報12の2番目のエントリが対応する。
There are two types of communication path lengths. One is the shortest route that passes through the L3 switch only once, and the other is a bypass route that passes through the L3 route twice. With reference to the
このようにして見つかったNTアダプタ情報12のエントリのNIC121を識別子として持つNTアダプタが最短経路を構成する。具体的には、通信相手サーバのMACアドレス「ab:cd:10」のNTアダプタに対しては自サーバのeth0であり、通信相手サーバのMACアドレス「ab:cd:11」のNTアダプタに対しては、自サーバのeth1が最短経路を構成する。
実際に利用する経路は、最短経路を優先して使い、最短経路が存在しない場合には、迂回経路を利用するようになっている。この例の場合、最短経路が複数存在するので、最短経路のいずれかを利用する。どちらを利用するかは通信する両サーバのIPアドレスやMACアドレスに基づいて決定してもよい。
また、NTアダプタの負荷に応じて動的に変更してもよいが、頻繁に経路変更が行われないように制御することが望ましい。最短経路が存在せず、迂回経路が複数存在する場合も同様である。
The NT adapter having the
The route that is actually used uses the shortest route with priority, and when there is no shortest route, the detour route is used. In this example, since there are a plurality of shortest paths, any one of the shortest paths is used. Which one to use may be determined based on the IP address or MAC address of both servers that communicate.
Moreover, although it may change dynamically according to the load of NT adapter, it is desirable to control so that a route change is not performed frequently. The same applies when there is no shortest path and there are a plurality of detour paths.
S117の処理では、仮想NICドライバ10は、ネットワーク障害等が発生した場合、最短経路が1つでも存在したら最短経路を利用し、迂回経路のみ利用可能な場合、図1Aに示すような経路を利用することになる。
S110で、仮想NICドライバ10は、パケットの送信元MACアドレスをそのNTアダプタのMACアドレスに書き換えて、パケットを送信する。
In the process of S117, the
In S110, the
次に、S111で稼働サーバ情報11にエントリが見つからなかった場合移行の処理を説明する。
S121で、仮想NICドライバ10は、「(通信相手)サーバの検出処理」を行う。この処理ではプローブパケットをサブネット内にブロードキャスト送信することで通信相手サーバと通信可能であることを確認する。通常、ARPはブローキャスト送信を利用するが、本実施形態では、プローブパケットのブロードキャスト送信において、通信経路を特定する点が、通常のARPと異なる特徴の1つである。処理の詳細については、図13を用いて後述する。
なお、本実施形態では、パケット送信処理時にブロードキャストする例を用いるものとするが、一部又は全てのサーバが、定期的にブロードキャストする等、送信の契機は種々の構成が考えられる。
Next, the migration process when no entry is found in the
In S121, the
In this embodiment, an example of broadcasting at the time of packet transmission processing is used. However, various configurations may be considered for triggers of transmission such that some or all servers broadcast periodically.
S123で、仮想NICドライバ10は、パケット送信先サーバと通信可能か否かを判定する。通信できない場合、仮想NICドライバ10は、OSにエラーを返し、通信可能である場合、S113の処理に進む。
In S123, the
最後に、S101の判定において、送信先サーバがマルチパス非対応サーバである場合の処理を説明する。
S125で、NICドライバ10は、シングル経路情報14を参照し、該当するエントリのSW欄143に対応するL3スイッチを経路として決定する。ここで、仮想NICドライバ10は、このL3スイッチを経由してパケットを送信するが、最短経路は、このL3スイッチに直接接続されている自サーバのNTアダプタを経由する経路である。NTアダプタ情報12のSW欄113が上記SWの値に一致する、NTアダプタ情報12のエントリを検索し、そのエントリのNIC欄111の値を、最短経路を構成する自サーバのNTアダプタとして決定する。
Finally, a process when the destination server is a non-multipath compatible server in the determination of S101 will be described.
In S125, the
なお、このNTアダプタに障害が発生せずパケット送信が可能であれば、仮想NICドライバ10は、このNTアダプタからパケットを送信する。もし障害が発生していた場合、NTアダプタ情報12に登録されている、他のNTアダプタからパケットを送信することとなる。
If the NT adapter does not fail and packet transmission is possible, the
S127で、仮想NICドライバ10は、パケット送信元MACアドレスを、送信処理に利用すると決定したNTアダプタのMACアドレスに書き換えて、パケットを送信する。
以上が、仮想NICドライバ10のパケット送信時の全体処理である。
In S127, the
The above is the overall processing when the
次に、上述のS103における「ルータとの経路検出処理」の詳細を説明する。
図12に、ルータとの経路検出処理の流れを示す。
S201において、仮想NICドライバ10は、L3スイッチへのパケット送信に利用するNTアダプタを決定するに際し、ルータ情報13を参照し、最優先となるNTアダプタのStatusとTimeを読み出す。
Next, the details of the “route detection process with the router” in S103 described above will be described.
FIG. 12 shows a flow of route detection processing with the router.
In S201, the
L3スイッチとの通信はL3スイッチと直接接続されているNTアダプタが最優先される。優先度が2番目以降は、最優先NTアダプタを基準として、NTアダプタの識別子に含まれる番号順になる。例えばNTアダプタがeth0〜eth2の3個存在し、最優先NTアダプタがeth1の場合、eth1、eth2、eth0の順になる。このような優先順位にすることでNTアダプタの利用頻度を平均化することができる。
L3スイッチと直接接続されているNTアダプタは、NTアダプタ情報12を参照し、上で求めたSW欄123の値と一致するSW識別子を持つエントリを参照することで見つける。見つけたエントリのNICが、L3スイッチと直接接続されているNTアダプタである。図6に示すルータ情報13の場合、SW識別子は「0」であるため、NICはeth0である。
For the communication with the L3 switch, the NT adapter directly connected to the L3 switch has the highest priority. The second and subsequent priorities are in the order of numbers included in the NT adapter identifiers with the highest priority NT adapter as a reference. For example, when there are three NT adapters eth0 to eth2, and the highest priority NT adapter is eth1, the order is eth1, eth2, and eth0. By using such priorities, the usage frequency of the NT adapter can be averaged.
The NT adapter directly connected to the L3 switch is found by referring to the
S203で、仮想NICドライバ10は、S301で読み出した最優先となるNTアダプタのTimeが、一定時間経過しているか否かを判定し、一定時間経過している場合、S209に進み、経過していない場合、S205に進む。
In step S203, the
S205で、仮想NICドライバ10は、S201で読み出した最優先となるNTアダプタのStatusが「Online」であるか否かを判定する。「Online」である場合、そのNTアダプタが、パケット送信に利用するNTアダプタとして決定し、本フローを抜ける。逆に、TimeStatusが「Offline」の場合は、S207の処理に進む。
In step S205, the
S207で、仮想NICドライバ10は、S203及びS205で判定した状態以外の状態であるか否かを判断し、S203及びS205で判定した何れかの場合でない場合(S207:No)、S201に戻り、次の優先順位のNTアダプタの利用可否を調査する。逆に、S203及びS205の何れの判定した状態でない場合(S207:Yes)、通信状態は不明という状態であり、S209の処理に進む。
In S207, the
S209で、仮想NICドライバ10は、当該NTアダプタからそのL3スイッチにARP要求を送信する。ARP要求に含まれる送信元MACアドレスは、そのNTアダプタのMACアドレスになる。また、ARP要求のターゲットアドレスは、L3スイッチのアドレスとする。
S211で、仮想NICドライバ10は、L3スイッチからARP応答の受信可否を判定し、受信できた場合には、S213に進み、受信できなかった場合は、S215に進む。
In step S209, the
In step S211, the
S213で、仮想NICドライバ10は、ルータ情報13の対応するエントリのStatusを「Online」に、Timeを現在時刻に更新し、フローを抜ける。
S215で、仮想NICドライバ10は、そのL3スイッチとは通信できないため、ルータ情報13の対応するエントリのStatusを「Offline」に、Timeを現在時刻に更新し、S201の処理に戻る。
以上が、「ルータとの経路検出処理」である。
In S213, the
In S215, since the
The above is the “route detection process with the router”.
次に、図11のS111で述べた、「サーバの検出処理」について詳細に説明する。
図13に、「通信相手サーバの検出処理」の処理の流れを示す。なお、本図では便宜上、プローブパケットを送信したサーバの仮想NICドライバ10のみではなく、そのプローブパケットを受信したサーバの受信側仮想NICドライバの処理も表している。
Next, the “server detection process” described in S111 of FIG. 11 will be described in detail.
FIG. 13 shows the flow of the “communication partner server detection process”. For the sake of convenience, this figure shows not only the
S301で、送信側の仮想NICドライバ10は、NTアダプタ情報12に登録された全てのNTアダプタから、プローブパケットをブロードキャスト送信する。プローブパケットには、自サーバのアドレス、送信元NTアダプタのMACアドレス、NTアダプタが接続されているL3スイッチの識別子、通信相手サーバのIPアドレスを含む。
In S301, the transmission-side
MACアドレスと接続されているL3スイッチの識別子は、NTアダプタ情報12から取得する。各プローブパケットはブロードキャスト送信されるため、L3スイッチ間の回線を通って、サブネット内の全てのサーバの全てのNTアダプタに向けて送信される。
The identifier of the L3 switch connected to the MAC address is acquired from the
S401で、受信側の仮想NICドライバは、ブロードキャスト送信されたプローブパケットを受信する。
そして、S403で、プローブパケットを受信した受信側仮想NICドライバは、プローブパケットのエントリ内容を稼動サーバ情報11に登録する。即ち稼働サーバ情報11のIPアドレス欄111、MACアドレス欄112及びSW識別子欄113に、受信したプローブパケットに含まれるサーバのIPアドレス、MACアドレス、L3スイッチの識別子が登録される。
なお、稼動サーバ情報11上に、既に受信したプローブパケットのエントリが有る場合、対応するTime(eth0)欄114、Time(eth1)欄115の時刻情報が更新される。自サーバのNTアダプタethi(i=0,1)から受信した場合には、Time(ethi)(i=0,1)を現在時刻に更新する。
In S401, the virtual NIC driver on the receiving side receives the probe packet transmitted by broadcast.
In step S <b> 403, the receiving virtual NIC driver that has received the probe packet registers the entry content of the probe packet in the
If there is an entry of the probe packet already received on the
S405で、受信側仮想NICドライバは、プローブパケットに含まれる送信元のIPアドレスが、自サーバのIPアドレスと同一か否かを判定する。同一の場合(S405:Yes)、S407に進み、異なる場合(S405:No)は、フローを抜ける。 In step S405, the reception-side virtual NIC driver determines whether the IP address of the transmission source included in the probe packet is the same as the IP address of its own server. If they are the same (S405: Yes), the process proceeds to S407, and if they are different (S405: No), the flow exits.
S407で、受信側仮想NICドライバは、返信用のプローブパケットをブロードキャスト送信する。この時、返信用のプローブパケットには、通信相手先サーバのアドレスを含めないようになっている。このようにプローブパケットに通信相手サーバのアドレスが含まれているかどうかで、そもそものプローブパケットの送信元である仮想NICドライバ10が、そのプローブパケットが最初に送信されたものなのか、先に送信したプローブパケットに対して返信されたものなのかを区別できるようにするためである。また、返信としてブロードキャスト送信されたプローブパケットに対する返信は行わないことで、無制限にパケットが送信され続けることを抑止する目的もある。
In S407, the receiving virtual NIC driver broadcasts a return probe packet. At this time, the reply probe packet does not include the address of the communication partner server. In this way, depending on whether or not the address of the communication partner server is included in the probe packet, the
他方、S303で、仮想NICドライバ10は、他のサーバにブロードキャスト送信したプローブパケットに対する応答を検出するまで一定時間待機する(S303:No)。受信した場合(S303:Yes)、S305に進み、一定期間経過しても受信しない場合、エラーとし、処理を抜けるようになっている。
On the other hand, in S303, the
S305で、仮想NICドライバ10は、他のサーバからの返信として受信したプローブパケットに含まれる、返信元サーバのIPアドレス、MACアドレス及びL3スイッチの識別子を、稼働サーバ情報11に登録する処理を行う。この処理によって、仮想NICドライバ10は、障害等の発生していない通信可能な経路を管理することができる。
In step S <b> 305, the
返信されるプローブパケットもブロードキャスト送信されているため、仮想NICドライバ10は、全てのネットワーク経路の利用可否をチェックできることになる。なお、返信されるプローブパケットは、サブネット内のすべてのサーバに届けられるため、他のサーバも返信されるプローブパケットを読み取り、稼働サーバ情報11の更新を行う。
以上が、「サーバ検出処理」である。なお、本「サーバ検出処理」は、S111(図11)のタイミングで処理が発生するようになっているが、本例に限らず、定期的に処理を行うようにしてもよい。
Since the returned probe packet is also broadcast, the
The above is the “server detection process”. The “server detection process” is generated at the timing of S111 (FIG. 11). However, the present invention is not limited to this example, and the process may be performed periodically.
最後に、図11〜13に示す処理によって通信可能な経路が管理された計算機システム1において、仮想NICドライバ10がパケットデータを受信する際の処理を説明する。
図14に、パケットデータ受信処理の流れを示す。
S501において、仮想NICドライバ10は、受信したバケットデータが、プロードキャスト送信であるか否かを判定する。ブロードキャスト送信でない場合(S501:No/例えば、ユニキャストやマルチキャストのように、自サーバが特定の送信先として指定されている場合)、S503に進み、仮想NICドライバ10は、受信したパケットをOSに渡す。
Finally, a process when the
FIG. 14 shows the flow of packet data reception processing.
In step S501, the
逆に、S501においてブロードキャスト送信によるパケットである場合(S501:Yes)、仮想NICドライバ10は、S505に進み、そのパケットが、受信用NTアダプタが受信したパケットであるか否かの判定を行う。
On the other hand, if the packet is a broadcast transmission packet in S501 (S501: Yes), the
ブロードキャストパケットは、自サーバの全てのNTアダプタが受信することから、受信したブロードキャストパケットを、全てのNTアダプタがOSに渡すと、OSは同一のブロードキャストパケットを複数回受信したものとみなしてしまう。 Since all NT adapters of the own server receive the broadcast packet, if all NT adapters pass the received broadcast packet to the OS, the OS assumes that the same broadcast packet has been received a plurality of times.
そこで、本実施例では、サーバ毎に、ブロードキャストパケットの受信に利用するNTアダプタを予め設定しておき、それ以外のNTアダプタが受信したブロードキャストパケットは廃棄するようになっている。例えば、NTアダプタ情報12に登録されたNTアダプタのうち、障害が発生していないものの中で、SW識別子113の値が最小であるNTアダプタが受信したパケットのみをOSに渡すようになっている。
Therefore, in this embodiment, NT adapters used for receiving broadcast packets are set in advance for each server, and broadcast packets received by other NT adapters are discarded. For example, among the NT adapters registered in the
仮想NICドライバ10は、受信用NTアダプタが受信したパケットであると判定する場合(S505:Yes)、S504に進み、パケットをOSに渡し、受信用NTアダプタ以外のアダプタが受信したパケットであると判定する場合(S505:No)、S507に進み、パケットを破棄する。
以上が、パケット受信時の処理の流れである。
When the
The above is the flow of processing when receiving a packet.
このように計算機システム1によれば、スイッチ間パスの通信負荷を軽減すると共にネットワークスイッチの制御系コストを削減することができる。
また、各サーバが動的に、利用可能な経路を検出することで、経路障害等及び代替経路の管理を各サーバが実行するため、障害耐性が向上する。特に、Map-Reduceを利用した大規模システムの場合、これを構成する複数のサーバ間の通信も多く、通信経路の管理は処理時間に大きく影響する。計算機システム1では、各サーバが経路を管理するため他のサーバへのデータ送信時に、利用可能な最短経路を選択することから、データ送信後に不通経路によって障害を検知する方法よりもより処理時間の高速化に寄与することが期待できる。
As described above, according to the
In addition, each server dynamically detects an available route, so that each server performs management of a route failure and an alternative route, thereby improving fault tolerance. In particular, in the case of a large-scale system using Map-Reduce, there are many communications between a plurality of servers constituting this, and management of the communication path greatly affects the processing time. In the
なお、本発明は上述の種々の例に限定されるものではなく、その趣旨を逸脱しない範囲で種々の構成を適用することができる。 The present invention is not limited to the various examples described above, and various configurations can be applied without departing from the spirit of the present invention.
例えば、計算機システム1では、各サーバがL3スイッチの台数分のネットワークアダプタを有し、夫々が各L3スイッチに接続されている構成としているが、全てのサーバがL3スイッチの台数分のネットワークアダプタを備える必要はない。即ちネットワークアダプタの数が少ないサーバは、常に障害が発生しているとみなされるが、システムの動作に支障はない。
For example, in the
また、計算機システム1では、サブネット内のL3スイッチを2台とするが、L3スイッチの台数はこれ以上でもよい。なお、このときは、サブネット内のL3スイッチはL2的に相互に接続するとよい。
In the
また、計算機システム1では、各サーバがL3スイッチに直接接続していたが、L3スイッチとサーバが別のL2スイッチを介して接続される構成でもよい。即ちこのような構成であっても、Layer3のネットワークトポロジは同一であるため、サーバは、最近接のL3スイッチとそれ以外のL3スイッチを一意に区別できるからである。
In the
なお、計算機システム1の各機能部を構成するソフトウェアは、種々の電気、磁気的方式を利用した非一時的記録媒体に記録可能であることはいうまでもない。また、ネットワークを介してこれらソフトウェアをサーバ等にダウンロードし、インストールすることも当然可能である。
Needless to say, the software constituting each functional unit of the
SV1〜SVn・・・サーバ、SW1・SW2・・・NTスイッチ、4・5・・・NIC、10・・・ 仮想NICドライバ、11・・・ 稼働サーバ情報、12・・・NTアダプタ情報、13・・・ルータ情報、14・・・シングル経路情報、20・・・ネットワーク処理部、21・・・ARP情報、22・・・ルーティング情報、31・・・設定ファイル SV1 to SVn ... server, SW1, SW2 ... NT switch, 4/5 ... NIC, 10 ... virtual NIC driver, 11 ... operating server information, 12 ... NT adapter information, 13 ... Router information, 14 ... Single route information, 20 ... Network processing unit, 21 ... ARP information, 22 ... Routing information, 31 ... Configuration file
Claims (9)
前記第1ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第1ネットワークアダプタ及び前記第2ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第2ネットワークアダプタを少なくとも有する複数の計算機とからなる計算機システムであって、
前記複数の計算機は、
前記他の計算機の第1及び第2ネットワークアダプタと、自計算機の第1及び第2ネットワークアダプタとの間での通信可能な経路情報を保持する記憶部と、
前記経路情報から、前記第1及び第2ネットワークスイッチ間での通信が無い通信経路を、前記他の計算機との通信経路として優先的に決定する制御部と
を有する計算機システム。 At least first and second network switches communicatively connected;
A plurality of computers having at least a first network adapter that communicates with a network adapter of another computer via the first network switch and a second network adapter that communicates with a network adapter of another computer via the second network switch; A computer system comprising:
The plurality of computers are:
A storage unit for holding communication path information between the first and second network adapters of the other computer and the first and second network adapters of the own computer;
A computer system comprising: a control unit that preferentially determines a communication path without communication between the first and second network switches as a communication path with the other computer from the path information.
前記複数の計算機は、前記他の計算機に対するブロードキャスト送信の応答の内容から前記経路情報を生成する計算機システム。 The computer system according to claim 1,
The plurality of computers is a computer system that generates the route information from the content of a response of broadcast transmission to the other computers.
前記他の計算機に対するブロードキャスト送信は、前記第1及び第2ネットワークアダプタの夫々から送信され、自計算機のアドレス、ネットワークアダプタのMACアドレス、ネットワークアダプタの接続先ネットワークスイッチの識別情報を含み、
該ブロードキャスト送信に対する応答は、前記他の計算機の第1及び第2ネットワークアダプタの夫々から応答送信され、該他の計算機の第1及び第2ネットワークアダプタのMACアドレス及び接続先ネットワークスイッチの識別情報を含む計算機システム。 The computer system according to claim 2,
Broadcast transmission to the other computer is transmitted from each of the first and second network adapters, and includes an address of the own computer, a MAC address of the network adapter, and identification information of a network switch to which the network adapter is connected,
The response to the broadcast transmission is transmitted from each of the first and second network adapters of the other computer, and the MAC address of the first and second network adapters of the other computer and the identification information of the connected network switch are obtained. Including computer system.
前記他の計算機は、前記ブロードキャスト送信に含まれる前記自計算機のアドレス、自ネットワークアダプタのMACアドレス、自ネットワークアダプタの接続先ネットワークスイッチの識別情報を、前記他の計算機における経路情報として記憶部に記録する計算機システム。 The computer system according to claim 3,
The other computer records the address of the own computer, the MAC address of the own network adapter, and the identification information of the connection destination network switch of the own network adapter included in the broadcast transmission in the storage unit as route information in the other computer. Computer system to do.
前記他の計算機に対するブロードキャスト送信は、更に、送信先の計算機アドレスを含み、
前記ブロードキャスト送信を受信した前記他の計算機は、
前記送信先の計算機アドレスが、自計算機のアドレスである場合に、前記応答を送信する計算機システム。 The computer system according to claim 3,
The broadcast transmission to the other computer further includes a destination computer address,
The other computer that has received the broadcast transmission is:
A computer system that transmits the response when the computer address of the transmission destination is the address of its own computer.
前記他の計算機は、前記応答をブロードキャスト送信する計算機システム。 The computer system according to claim 5,
The other computer is a computer system that broadcasts the response.
前記第1及び第2ネットワークスイッチは、L3(Layer3)スイッチであり、
前記制御部は、更に、前記第1ネットワークアダプタから、前記第1ネットワークスイッチにARP要求を送信し、
そのARPに対する応答の受信によって、第1ネットワークアダプタの通信経路の利用可否を判定し、
利用不可の場合に、前記第2ネットワークアダプタから、前記第2ネットワーックスイッチにARP要求を送信し、そのARPに対する応答の受信によって、第2ネットワークアダプタが前記第2ネットワークスイッチを介した通信で利用する経路を決定し、
前記第2ネットワークアダプタが、前記第2ネットワークスイッチからARP要求を受信した際、
前記決定した経路に含まれる自サーバのネットワークアダプタのMACアドレスを送信元MACアドレスに記載したARP応答を、前記第2ネットワークスイッチに応答する計算機システム。 The computer system according to claim 1,
The first and second network switches are L3 (Layer 3) switches,
The control unit further transmits an ARP request from the first network adapter to the first network switch,
By receiving a response to the ARP, it is determined whether or not the communication path of the first network adapter can be used,
When the ARP request is not available, an ARP request is transmitted from the second network adapter to the second network switch, and the second network adapter communicates via the second network switch by receiving a response to the ARP. Decide the route to use,
When the second network adapter receives an ARP request from the second network switch,
A computer system that responds to the second network switch with an ARP response in which the MAC address of the network adapter of the local server included in the determined route is described in a transmission source MAC address.
前記第1ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第1ネットワークアダプタ及び前記第2ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第2ネットワークアダプタを少なくとも有する複数の計算機とからなる計算機システムの通信経路管理方法であって、
前記複数の計算機が、
前記他の計算機の第1及び第2ネットワークアダプタと、自計算機の第1及び第2ネットワークアダプタとの間での通信可能な経路情報を記憶するステップと、
前記経路情報から、前記第1及び第2ネットワークスイッチ間での通信が無い通信経路を、前記他の計算機との通信経路として優先的に決定するステップと
を含む通信経路管理方法。 At least first and second network switches communicatively connected;
A plurality of computers having at least a first network adapter that communicates with a network adapter of another computer via the first network switch and a second network adapter that communicates with a network adapter of another computer via the second network switch; A communication path management method for a computer system comprising:
The plurality of computers are
Storing communicable path information between the first and second network adapters of the other computer and the first and second network adapters of the own computer;
A communication path management method including preferentially determining, from the path information, a communication path without communication between the first and second network switches as a communication path with the other computer.
前記第1ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第1ネットワークアダプタ及び前記第2ネットワークスイッチを介して他の計算機のネットワークアダプタと通信する第2ネットワークアダプタを少なくとも有する複数の計算機とからなる計算機システムの前記計算機に、
前記他の計算機の第1及び第2ネットワークアダプタと、自計算機の第1及び第2ネットワークアダプタとの間での通信可能な経路情報を記憶させる手順と、
前記経路情報から、前記第1及び第2ネットワークスイッチ間での通信が無い通信経路を、前記他の計算機との通信経路として優先的に決定させる手順と
を実行させるプログラム。 At least first and second network switches communicatively connected;
A plurality of computers having at least a first network adapter that communicates with a network adapter of another computer via the first network switch and a second network adapter that communicates with a network adapter of another computer via the second network switch; In the computer system comprising:
A procedure for storing path information communicable between the first and second network adapters of the other computer and the first and second network adapters of the own computer;
A program for executing, from the path information, a procedure for preferentially determining a communication path without communication between the first and second network switches as a communication path with the other computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012266836A JP2014116645A (en) | 2012-12-06 | 2012-12-06 | Computer system, communication path management method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012266836A JP2014116645A (en) | 2012-12-06 | 2012-12-06 | Computer system, communication path management method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014116645A true JP2014116645A (en) | 2014-06-26 |
Family
ID=51172270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012266836A Pending JP2014116645A (en) | 2012-12-06 | 2012-12-06 | Computer system, communication path management method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014116645A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844781A (en) * | 2022-05-20 | 2022-08-02 | 南京大学 | Encoding MapReduce-oriented Shuffle performance optimization method and system under Rack architecture |
-
2012
- 2012-12-06 JP JP2012266836A patent/JP2014116645A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114844781A (en) * | 2022-05-20 | 2022-08-02 | 南京大学 | Encoding MapReduce-oriented Shuffle performance optimization method and system under Rack architecture |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5935873B2 (en) | Network system, switch, and network construction method | |
JP6556875B2 (en) | Software-defined data center and service cluster placement method there | |
Liu et al. | Data center networks: Topologies, architectures and fault-tolerance characteristics | |
US8976652B2 (en) | Relay device, method of controlling relay device, and relay system | |
JP4520802B2 (en) | Storage network management server, storage network management method, storage network management program, and storage network management system | |
US7792148B2 (en) | Virtual fibre channel over Ethernet switch | |
US8370588B2 (en) | Computer system control method and computer system | |
JP7091923B2 (en) | Transfer device, transfer method and program | |
EP2731313B1 (en) | Distributed cluster processing system and message processing method thereof | |
WO2014087850A1 (en) | Automatic-fault-handling cache system, fault-handling processing method for cache server, and cache manager | |
JP2012244621A (en) | Method and device for finding connection between network switch and server using vlan ids | |
TW200534637A (en) | Redundant routing capabilities for a network node cluster | |
US11671345B2 (en) | Self-expansion of a layer 3 network fabric | |
JP2012533129A (en) | High performance automated management method and system for virtual networks | |
JP6928076B2 (en) | Packet monitoring | |
JP6020273B2 (en) | Monitoring device, information processing system, monitoring method, and monitoring program | |
WO2016082078A1 (en) | Path management system, device and method | |
WO2013186825A1 (en) | Computer system, communication control server, communication control method, and program | |
JP2015211374A (en) | Information processing system, control method for information processing system, and control program for management device | |
WO2013104279A1 (en) | Method and device for setting cvlan in trill network | |
US20140310377A1 (en) | Information processing method and information processing apparatus | |
JP6604336B2 (en) | Information processing apparatus, information processing method, and program | |
JP2014116645A (en) | Computer system, communication path management method, and program | |
JP2024505147A (en) | Fabric availability and synchronization | |
JP5821641B2 (en) | Network system, switch, and inter-switch setting notification method |