JP2014116645A - Computer system, communication path management method, and program - Google Patents

Computer system, communication path management method, and program Download PDF

Info

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
Application number
JP2012266836A
Other languages
Japanese (ja)
Inventor
Akihiro Ito
昭博 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012266836A priority Critical patent/JP2014116645A/en
Publication of JP2014116645A publication Critical patent/JP2014116645A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce a communication load between network switches and also reduce costs of a control system of switches in a multi-path network system using the multiple network switches.SOLUTION: A computer system comprises: first and second network switches communicatively connected with each other; and a plurality of computers including a first network adapter for communicating with a network adapter of another computer via the first network switch and a second network adapter for communicating with a network adapter of another computer via the second network switch. Each computer holds path information on paths on which communication can be performed between the first and second network adapters of other computers and the first and second network adapters of its own computer respectively, and preferentially determines a communication path on which there is no communication between the first and second network switches as a communication path with another computer. Further, it manages the path information by broadcast transmission and its responses.

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 Document 1 also contributes to the realization of such a large-scale system.

非特許文献1は、所謂Map-Reduceに関する技術を開示する。Map-reduceは、複数の実行サーバ、分散ファイルシステムを提供する複数のデータサーバ及びそれらデータサーバに接続されるストレージ装置が通信可能に接続されてなるシステム構成等で一般に利用される。具体的には、
〔1〕分散ファイルシステム上のデータが各実行サーバに読み出され、レコード(行)単位で処理が実行され、レコード毎にkey-value形式の別のレコードを結果として出力するMapフェーズと、
〔2〕Mapフェーズが出力したレコードで同一keyを持つものを同一サーバに集めるShuffleフェーズと、
〔3〕key毎に集められたレコード群に対して処理が実行され、keyもしくはレコード毎に別のレコードを結果として出力し、分散ファイルシステムに保存するReduceフェーズと
から構成されるフレームワークである。
Non-Patent Document 1 discloses a technique related to so-called Map-Reduce. Map-reduce is generally used in a system configuration in which a plurality of execution servers, a plurality of data servers that provide a distributed file system, and storage devices connected to the data servers are connected to be communicable. In particular,
[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 Patent Document 1. A configuration example of a network to which this technology is applied is shown in FIG. The difference from the network configuration example of NPL 2 (FIG. 15) is that the NT switches SW10 and SW20 are not directly connected, and the NT switch SW30 (Layer-3) is connected above the NT switches SW10 and SW20. This is the point. A large-scale network can be constructed by preparing a plurality of configurations below the NT switch SW30 and connecting them in a torus shape.

特許文献1の技術では、サーバ及びNTスイッチ間の接続に障害が発生した場合、スイッチ間パスを使用しないような経路に変更される点が非特許文献2の技術とは異なる。具体的には、通常運用時には、サーバSV20からサーバSV10へのパケットが、E200、SW10、E100を経由して送信される(図15に示した実線矢印と同様)。E100とSW10間の接続に障害が発生した場合には、サーバSV20からサーバSV10へのパケットはE210、SW20、E110を経由して転送されるように経路が変更されるようになっている(破線矢印)。   The technique of Patent Document 1 is different from the technique of Non-Patent Document 2 in that when a failure occurs in the connection between the server and the NT switch, the route is changed so as not to use the inter-switch path. Specifically, during normal operation, a packet from the server SV20 to the server SV10 is transmitted via E200, SW10, and E100 (similar to the solid arrow shown in FIG. 15). When a failure occurs in the connection between E100 and SW10, the route is changed so that the packet from server SV20 to server SV10 is transferred via E210, SW20, and E110 (broken line) Arrow).

また、非特許文献3は、サーバが搭載する複数のNTアダプタをソフトウェア的に制御する技術を開示する。本文献には複数の制御方法が記載されているがこのうち、balance-tlbとbalance-albが複数のNTスイッチを利用して帯域を向上することができ、例えば、上述の図15に示すようなネットワーク構成で利用可能である。   Non-Patent Document 3 discloses a technique for controlling a plurality of NT adapters mounted on a server in software. In this document, a plurality of control methods are described. Among these, balance-tlb and balance-alb can use a plurality of NT switches to improve the bandwidth. For example, as shown in FIG. It can be used in various network configurations.

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.

特開2008−11082号公報JP 2008-11082 A

Jeffry Deans、Sanjay Ghemawat“MapReduce:Simplified Data Processing on Large Clusters、2004年12月5日、USENIX Association OSDI’04:6th 6th Symposium on Operating System and Implementation (http://static.usenix.org/event/osdi04/tech/full_papers/dean/dean.pdf)Jeffry Deans, Sanjay Ghemawat “MapReduce: Simplified Data Processing on Large Clusters, December 5, 2004, USENIX Association OSDI'04: 6th 6th Symmetric. /tech/full_papers/dean/dean.pdf) Roger Lapuh、“Split Multi-link Trunking(SMLT) draft−lapuh−network−smlt−08”、[online]、2009年1月7日、[平成24年9月20日検索]、インターネット(http://tools.ietf.org/html/draft-lapuh-network-smlt-08)Roger Lapuh, “Split Multi-link Trunking (SMLT) draft-lapuh-network-smlt-08”, [online], January 7, 2009, [Search September 20, 2012], Internet (http: / /tools.ietf.org/html/draft-lapuh-network-smlt-08) Tomas Davis、”Linux Ethernet Bonding Driver HOWTO“2011年4月27日更新版、[online]、[平成24年9月20日検索]、(http://www.kernel.org/doc/Documentation/networking/bonding.txt)Thomas Davis, “Luxux Ethernet Bonding Driver HOWTO” April 27, 2011 Update, [online], [September 20, 2012 search], (http://www.kernel.org/doc/Documentation/networking /bonding.txt)

非特許文献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 Patent Document 1 is that the fault tolerance is low. For example, when a failure occurs between E210 and SW20 in addition to the failure between E100 and SW10 as shown in FIG. 15, communication between server SV10 and server SV20 becomes impossible.

また、非特許文献2及び特許文献1の技術に共通する課題として、障害発生時のパケット転送経路の変更がNTスイッチによって制御されるようになっているため、専用機能を持つNTスイッチが必要となる。汎用性やコスト的な課題が生ずる。   In addition, as a problem common to the technologies of Non-Patent Document 2 and Patent Document 1, since the change of the packet transfer path when a failure occurs is controlled by the NT switch, an NT switch having a dedicated function is required. Become. Generality and cost issues arise.

上述の課題を解決するため、例えば、請求項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 claim 1 is applied. That is, at least first and second network switches that are communicably connected, and other computers via the first network adapter and the second network switch that communicate with the network adapters of other computers via the first network switch. A computer system comprising a plurality of computers having at least a second network adapter that communicates with the other network adapter, wherein the plurality of computers includes first and second network adapters of the other computers and a first computer of the own computer. And a storage unit that holds path information that can be communicated with the second network adapter, and a communication path that does not communicate between the first and second network switches based on the path information, with the other computer. A computer system having a control unit that preferentially determines the communication path of That.

本発明の一側面によれば、スイッチ間パスのトラフィックを低減ことができるとともに、システム構成する計算機間の通信において、より短い経路で通信することができる。更に、通信経路選択の制御を各計算機が実行するため、ネットワークスイッチの制御系を簡素化することができる。
本発明の他の課題及び効果は、以下の実施形態の内容から明らかになるであろう。
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.

本発明を適用した一実施形態である計算機システムの経路選択の例を示す模式図である。It is a schematic diagram which shows the example of the route selection of the computer system which is one Embodiment to which this invention is applied. 本実施形態の経路選択の他の例を示す模式図である。It is a schematic diagram which shows the other example of the route selection of this embodiment. 本実施形態における外部サブネットからの受信経路を示す模式図である。It is a schematic diagram which shows the receiving path | route from the external subnet in this embodiment. 本実施形態における計算機システムの構成を模式的に示すブロック図である。It is a block diagram which shows typically the structure of the computer system in this embodiment. 本実施形態における稼動サーバ情報の一例を示す模式図である。It is a schematic diagram which shows an example of the active server information in this embodiment. 本実施形態におけるNTアダプタ情報の一例を示す模式図である。It is a schematic diagram which shows an example of NT adapter information in this embodiment. 本実施形態におけるルータ情報の一例を示す模式図である。It is a schematic diagram which shows an example of the router information in this embodiment. 本実施形態におけるシングル経路情報の一例を示す模式図である。It is a schematic diagram which shows an example of the single path | route information in this embodiment. 本実施形態におけるARP情報の一例を示す模式図である。It is a schematic diagram which shows an example of ARP information in this embodiment. 本実施形態におけるルーティング情報の一例を示す模式図である。It is a schematic diagram which shows an example of the routing information in this embodiment. 本実施形態における設定ファイルの一例を示す模式図である。It is a schematic diagram which shows an example of the setting file in this embodiment. 本実施形態における仮想NICドライバの全体処理の一例を示すフロー図である。It is a flowchart which shows an example of the whole process of the virtual NIC driver in this embodiment. 本実施形態におけるルータとの経路検出処理の一例を示すフロー図である。It is a flowchart which shows an example of a route detection process with the router in this embodiment. 本実施形態におけるサーバ検出処理の一例を示すフロー図である。It is a flowchart which shows an example of the server detection process in this embodiment. 本実施形態におけるパケット受信処理のフロー図である。It is a flowchart of the packet reception process in this embodiment. 従来技術における経路選択の例を示す模式図である。It is a schematic diagram which shows the example of the route selection in a prior art. 従来技術における経路選択の他の例を示す模式図である。It is a schematic diagram which shows the other example of the route selection in a prior art. サブネットをトーラス状に接続するシステム例を示す模式図である。It is a schematic diagram which shows the example of a system which connects a subnet like a torus.

以下、本発明を実施するための形態について、図面を用いて詳細に説明する。
図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 computer system 1 that is an embodiment to which the present invention is applied. In the computer system 1, servers SV1 to SVn having a plurality of NT adapters E10 to En1 are connected to different L3 switches (NT switches operating in Layer-3) SW1 or SW2 for each NT adapter. One subnet having an inter-switch path enabling communication is configured.

システムの規模が小さくサブネットの数が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 calculation system 1, a shorter route than this can be selected.

なお、図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 computer system 1 controls the packet transmission / reception to / from the L3 switch in the same subnet. It has become.
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 computer system 1 will explain an example in which the processing operation as described above is realized by a general NT switch and software running on a server. Alternatively, all can be realized as hardware.
The above is the outline of route selection in the computer system 1.

以下、計算機システム1を構成するサーバSVについて詳細に説明する。
図3に、サーバSV1の構成を示す。他のサーバSVnも同様の構成を有する。サーバSV1は汎用のサーバ装置であり、CPU1、メモリ2、通信I/F3、NIC4並びに5、STG-I/F6及び入出力装置7を有する。また、サーバSV1は、外部ストレージ装置30と通信可能に接続される。
Hereinafter, the server SV constituting the computer system 1 will be described in detail.
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 CPU 1, a memory 2, a communication I / F 3, a NIC 4 and 5, an STG-I / F 6, and an input / output device 7. The server SV1 is connected to the external storage device 30 so as to be communicable.

通信I/F3は、L3スイッチSW1に接続されるNIC4と、L3スイッチSW2に接続されるNIC5とに接続される。STG-I/F6は、サーバSV1の外部ストレージ装置と通信するためのI/Fである。外部ストレージ装置には、後述する設定ファイル31が格納され、適宜サーバSV1との間で読み出しや更新がされるようになっている。   The communication I / F 3 is connected to the NIC 4 connected to the L3 switch SW1 and the NIC 5 connected to the L3 switch SW2. The STG-I / F 6 is an I / F for communicating with the external storage apparatus of the server SV1. The external storage device stores a setting file 31 to be described later, and can be read from and updated with the server SV1 as appropriate.

サーバSV1のメモリ2には、CPU1とプログラムとの協働によって、仮想NICドライバ10と、ネットワーク処理部20とが実現される。   In the memory 2 of the server SV1, a virtual NIC driver 10 and a network processing unit 20 are realized by the cooperation of the CPU 1 and the program.

仮想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 virtual NIC driver 10, a plurality of NT adapters 4 and 5 included in the server SV1 are virtually viewed as one NT adapter. In the following description, NIC4 may be written together with eth0, and NIC5 may be written together with eth1. The virtual NIC driver 10 includes operating server information 10 for managing communication status with other servers operating in the same subnet, NT adapter information 12 for managing information on NT adapters owned by the own server, and L3 operating in the same subnet. It has router information 13 for managing the communication state with the switches SW1 and SW2, and single path information 14 for managing a range of addresses that can be taken by a server that does not support packet control by the server SV1.

ネットワーク処理部20は、OSが提供するLayer−3のパケット制御機能部であり、ARP情報21及びルーティング情報22を有する。ネットワーク処理部20は、仮想NICドライバ10の上位層の機能部として動作する。   The network processing unit 20 is a Layer-3 packet control function unit provided by the OS, and includes ARP information 21 and routing information 22. The network processing unit 20 operates as a higher-level functional unit of the virtual NIC driver 10.

図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 server information 11 includes the IP address 111 of the server, the MAC address 112 of the NT adapter, the SW 113 indicating the adjacent L3 switch, and Time (the last time when the operation of the NT adapter (eth0) of the communication partner server was last confirmed. eth0) 114 and the last time Time (eth1) 115 at which the operation of the NT adapter (eth1) of the communication partner server is confirmed are included and managed in association with each other. One entry is registered for each NT adapter of a server in the same subnet, and the communication state with each server is managed.

なお、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 adapter information 12. The NT adapter information 12 includes an NIC 121 that is an identifier of the NT adapter, an MAC address 122 of the NT adapter, and SW information 123 that is an identifier of an adjacent L3 switch, and these are managed in association with each other. A virtual NT adapter is generated from the NT adapter registered in the NT adapter information 12. Therefore, NT adapters that do not want to participate in the virtual NT adapter are not registered in the NT adapter information 12.

また、NTアダプタ情報12には、自サーバが有するNTアダプタ毎に1エントリが登録される。図5は、一例としてサーバSV1が有する2つのNTアダプタが登録されている様を示す。   In the NT adapter information 12, one entry is registered for each NT adapter of the server. FIG. 5 shows an example in which two NT adapters possessed by the server SV1 are registered.

図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 router information 13. A list of L3 switches in the subnet is registered in the router information 13, and the communication state with each L3 switch is managed. The router information 13 includes the SW address 131 that is the address of the L3 switch, the SW-MAC address that is the MAC address of the L3 switch, the SW identifier 133 that identifies the L3 switch, and between the NIC 4 (eth0) of the local server and the L3 switch SW1. Status (eth0) 134 indicating the communication state, Time (eth0) 135 indicating the last communication time between the local server NIC5 (eth0) and the L3 switch, Status indicating the communication state between the local server NIC5 (eth1) and the L3 switch (eth1) 136 and the last communication time Time (eth1) 137 between the NIC 5 (eth1) of the local server and the L3 switch are included.

図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 ARP information 15. The ARP information 15 is information used by the OS to determine the MAC address of the communication partner from the NIC used for communication and the address of the communication partner. The ARP information 15 includes a NIC 151 indicating the NT adapter of its own server used for communication, the IP address 152 of the communication partner, and the MAC address 153 of the communication partner. In the example of FIG. 8, since 3 entries are registered and the virtual NT adapter is used from the OS, the NIC 531 of the ARP information 15 is registered with the identifier “veth0” of the virtual NT adapter. Indicates.

図9に、ルーティング情報16の具体例を模式的に示す。ルーティング情報16は、パケットを送信する際、OSが、送信先アドレスに基づいて、利用するNTアダプタ(NIC)を決定するために利用される。ルーティング情報16には、パケット送信先のアドレス若しくはアドレス範囲を示す宛先アドレス161と、宛先が他サブネットのときに転送パケットが経由するL3スイッチのアドレスであるゲートウェイアドレス162と、パケット送信に使用するNICの識別子を示すNIC163が含まれる。   FIG. 9 schematically shows a specific example of the routing information 16. The routing information 16 is used by the OS to determine the NT adapter (NIC) to be used based on the transmission destination address when transmitting the packet. The routing information 16 includes a destination address 161 indicating a packet transmission destination address or address range, a gateway address 162 that is an address of an L3 switch through which a transfer packet passes when the destination is another subnet, and a NIC used for packet transmission. NIC 163 indicating the identifier of the ID is included.

なお、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 routing information 16 and determines the NT adapter (NIC) to be used based on the address described in the packet. Then, based on the NT adapter (NIC) and the transmission destination address, the ARP information 15 is referred to and the transmission destination MAC address is determined. Subsequently, when the OS requests the virtual NT adapter “veth0” to transmit a packet, the virtual NIC driver 10 determines the NT adapter (NIC) that actually transfers the packet.

ストレージ装置30に保持された、設定ファイル31は、上述の種々の情報に初期値を設定するために利用されるものである。システム起動時は、NTアダプタ情報12、ルータ情報13及びシングル経路情報14にエントリが登録されておらず、設定ファイル31が読み込まれることによって初期値が登録されるようになっている。   The setting file 31 held in the storage device 30 is used to set initial values for the various information described above. When the system is activated, no entry is registered in the NT adapter information 12, the router information 13, and the single path information 14, and the initial value is registered by reading the setting file 31.

図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 file 31.
The “virtual NIC and Switch” section of the setting file 31 describes the correspondence between the identifiers of the virtual NT adapters and the identifiers of the NT adapters to be associated. In the example shown in the figure, the NICs 4 (eth0) and (eth1) indicate that they correspond to the virtual NT adapter (veth0). Further, as shown in the figure, in the configuration file 31, the identifier of the proximity L3 switch is described for each NIC identifier (the portions (0) and (1) of eth0 (0) and eth (1)). ).
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 NT adapter information 12.

設定ファイル31の”router”セクションには、L3スイッチのアドレス、L3スイッチのMACアドレス、L3スイッチの識別子が記述されている。これらの情報がルータ情報13に設定されるようになっている。また、L3スイッチとの通信状態は不明であるため、ルータ情報13のStatus(eth0)134及びStatus(eth1)136には「−」が設定される。   In the “router” section of the configuration file 31, the address of the L3 switch, the MAC address of the L3 switch, and the identifier of the L3 switch are described. These pieces of information are set in the router information 13. Further, since the communication state with the L3 switch is unknown, “-” is set in the Status (eth0) 134 and the Status (eth1) 136 of the router information 13.

設定ファイル31の“single path”セクションには、サーバSV1〜nによるパケット制御に未対応のサーバがとり得るアドレスの範囲が記述されている。各エントリはアドレスの範囲と、未対応サーバを接続するL3スイッチの識別子とから構成される。この情報に基づき、シングル経路情報14(図7)にエントリが追加されるようになっている。
稼働サーバ情報11は、後述するように、他サーバからプローブパケットを受信することでエントリが追加されるようになっているため、各情報の初期化が終了した時点でも登録エントリ数に「0」が設定されている。
In the “single path” section of the setting file 31, a range of addresses that can be taken by a server that does not support packet control by the servers SV1 to SVn is described. Each entry includes an address range and an identifier of an L3 switch that connects an unsupported server. Based on this information, an entry is added to the single path information 14 (FIG. 7).
As will be described later, since the entry is added to the active server information 11 by receiving a probe packet from another server, the number of registered entries is “0” even when the initialization of each information is completed. Is set.

また、“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 computer system 1.

次に、計算機システム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 virtual NIC driver 10 of the computer system 1 will be described.
First, FIGS. 11, 12, and 13 show the flow of “packet transmission processing” by the virtual NIC driver 10.
In S101, upon receiving a packet transmission request from the OS, the virtual NIC driver 10 extracts a transmission destination address from the packet, and determines whether or not the destination server is a multipath incompatible server.
That is, when the packet is an ARP request, the target IP address (Target IP Address) is the destination address, but the virtual NIC driver 10 refers to the single path 14 and the extracted destination address is the start address and end address. It is determined whether there is an entry included in the range.

エントリが存在すると判断する場合、読み出した宛先のサーバは、本実施形態におけるマルチパス制御に非対応のサーバであることから、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 virtual NIC driver 10 refers to the router information 13 and confirms whether the packet transmission destination is an L3 switch. Specifically, it is determined whether or not there is an entry whose destination address included in the packet matches the address of the router information 13. If such an entry exists, the L3 switch corresponding to the entry is determined as the packet transmission destination, and the process proceeds to S105. When the packet is an ARP request, the target IP address is the transmission destination address.
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 virtual NIC driver 10 determines an NT adapter to be used for packet transmission to the L3 switch ("route detection process with router"). Details of this processing will be described later with reference to FIG.

S107で、仮想NICドライバ10は、パケットの送信元MACアドレスを、S105で決定したNTアダプタのMACアドレスに書き換えて、パケットを送信し、本フローを抜ける。L3スイッチからARP要求を受信した場合には、ARP応答を返信する必要があるが、特にARP応答の返信において、上記MACアドレスの書換え処理が重要な役割を果たす。即ち経路長が長く優先順位が低い経路の情報を含むARP応答を返すと、L3スイッチは自身のARP情報にその情報を記録し、その後、その経路を使ってサーバにパケットを送信するようになるためである。   In S107, the virtual NIC driver 10 rewrites the transmission source MAC address of the packet with the MAC address of the NT adapter determined in S105, transmits the packet, and exits this flow. When an ARP request is received from the L3 switch, it is necessary to send back an ARP response. In particular, the MAC address rewriting process plays an important role in sending back an ARP response. That is, when an ARP response including information on a route having a long route length and a low priority is returned, the L3 switch records the information in its own ARP information, and then transmits a packet to the server using the route. Because.

他方、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 information 16 is not found in S103 will be described.
In S105, the virtual NIC driver 10 searches for an entry whose packet transmission destination address matches the address of the active server information 11, and determines in S111 whether such an entry exists. More specifically, the virtual NIC driver 10 further determines whether or not the corresponding Time (eth0) 114 or Time (eth1) 115 is within a predetermined time for the entry determined to exist.

条件を満たす場合には、そのエントリに対応するサーバがパケット送信先の候補として、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 active server information 11, or the corresponding Time (eth0) 114 or Time (eth1) 115 is out of a certain time even if it exists, the process of S121 Proceed to

S113で、仮想NICドライバ10は、パケットがARP要求か否か判定する。ARP要求である場合、S115に進み、ARP要求でない場合、S117に進む。   In step S113, the virtual NIC driver 10 determines whether the packet is an ARP request. If it is an ARP request, the process proceeds to S115, and if it is not an ARP request, the process proceeds to S117.

S115で、仮想NICドライバ10は、APR要求のパケットは送信せずに、擬似的となるARP応答を生成してOSに返信し、本フローを抜ける。即ち本実施形態の特徴の1つは、プローブパケットを利用したサーバ検出である。よって、ARP要求を送信する必要がない。しかしながら、OSを正常に動作させるためには、OSがARP応答を受信したように振る舞う必要があるので、仮想NICドライバ10が擬似的となるARP応答を生成してOSに返すようになっている。このARP応答には、送信元MACアドレスとして、通信相手サーバのNTアダプタのMACアドレスを含めるようにする。   In S115, the virtual NIC driver 10 does not transmit the APR request packet, but generates a pseudo ARP response and returns it to the OS, and exits this flow. That is, one of the features of this embodiment is server detection using a probe packet. Therefore, there is no need to send an ARP request. However, in order for the OS to operate normally, the OS needs to behave as if it has received an ARP response. Therefore, the virtual NIC driver 10 generates a pseudo ARP response and returns it to the OS. . The ARP response includes the MAC address of the NT adapter of the communication partner server as the source MAC address.

なお、稼働サーバ情報11の各エントリは、通信相手サーバのNTアダプタ毎にエントリが生成されることから、障害発生等がなければ通信相手サーバのMACアドレスは複数存在する。この場合、ARP応答の送信元MACアドレスは、上記複数のMACアドレスうちのいずれでもよいが、ARP情報15の書き換えを少なくするため、複数のMACアドレスのうちで最小のものを採用し、なるべくMACアドレスの変更がないようにしてもよい。   Since each entry of the active server information 11 is generated for each NT adapter of the communication partner server, a plurality of MAC addresses of the communication partner server exist if no failure occurs. In this case, the source MAC address of the ARP response may be any of the plurality of MAC addresses, but in order to reduce rewriting of the ARP information 15, the smallest one of the plurality of MAC addresses is adopted, and the MAC is preferably used. The address may not be changed.

他方、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 virtual NIC driver 10 acquires the information registered in the entry of the operating server information 11 found in step S111 and the information described in the NT adapter information 12. Based on the above, the NT adapter to be used for packet transmission is determined.
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 active server information 11 has two entries that match the address. Each entry corresponds to the NT adapter of the communication partner server. Time (eth0) and Time (eth1) in the active server information 11 are times when communication with the NT adapters eth0 and eth1 of the local server is confirmed. If this is within a certain time, it can be considered that communication is possible. In this case, the combination of the NT adapter of the communication partner server's MAC address “ab: cd: 10” and its own server eth0, eth1, and the NT adapter of the communication partner server's MAC address “ab: cd: 11” and its own server All combinations of eth0 and eth1 can communicate, and there are a total of four communication paths.

そして、これら通信経路の経路長は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 SW 113 of the entry registered in the operating server information 11, an entry on the NT adapter information 12 is searched such that this value matches the SW 123 of the NT adapter information 12. The first entry of the operating server information 11 corresponds to the first entry of the NT adapter information 12. The second entry of the NT adapter information 12 corresponds to the second entry of the operating server information 11.

このようにして見つかったNTアダプタ情報12のエントリのNIC121を識別子として持つNTアダプタが最短経路を構成する。具体的には、通信相手サーバのMACアドレス「ab:cd:10」のNTアダプタに対しては自サーバのeth0であり、通信相手サーバのMACアドレス「ab:cd:11」のNTアダプタに対しては、自サーバのeth1が最短経路を構成する。
実際に利用する経路は、最短経路を優先して使い、最短経路が存在しない場合には、迂回経路を利用するようになっている。この例の場合、最短経路が複数存在するので、最短経路のいずれかを利用する。どちらを利用するかは通信する両サーバのIPアドレスやMACアドレスに基づいて決定してもよい。
また、NTアダプタの負荷に応じて動的に変更してもよいが、頻繁に経路変更が行われないように制御することが望ましい。最短経路が存在せず、迂回経路が複数存在する場合も同様である。
The NT adapter having the NIC 121 of the entry of the NT adapter information 12 thus found as an identifier constitutes the shortest path. Specifically, for the NT adapter with the MAC address “ab: cd: 10” of the communication partner server, it is eth0 of the own server, and for the NT adapter with the MAC address “ab: cd: 11” of the communication partner server. In this case, eth1 of the local server constitutes the shortest path.
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 virtual NIC driver 10 uses the shortest route when there is a network failure or the like, and uses the route as shown in FIG. Will do.
In S110, the virtual NIC driver 10 rewrites the transmission source MAC address of the packet with the MAC address of the NT adapter, and transmits the packet.

次に、S111で稼働サーバ情報11にエントリが見つからなかった場合移行の処理を説明する。
S121で、仮想NICドライバ10は、「(通信相手)サーバの検出処理」を行う。この処理ではプローブパケットをサブネット内にブロードキャスト送信することで通信相手サーバと通信可能であることを確認する。通常、ARPはブローキャスト送信を利用するが、本実施形態では、プローブパケットのブロードキャスト送信において、通信経路を特定する点が、通常のARPと異なる特徴の1つである。処理の詳細については、図13を用いて後述する。
なお、本実施形態では、パケット送信処理時にブロードキャストする例を用いるものとするが、一部又は全てのサーバが、定期的にブロードキャストする等、送信の契機は種々の構成が考えられる。
Next, the migration process when no entry is found in the active server information 11 in S111 will be described.
In S121, the virtual NIC driver 10 performs “(communication partner) server detection process”. In this process, it is confirmed that communication with the communication partner server is possible by broadcasting the probe packet in the subnet. Normally, ARP uses broadcast transmission, but in this embodiment, one of the features different from normal ARP is that a communication path is specified in probe packet broadcast transmission. Details of the processing will be described later with reference to FIG.
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 virtual NIC driver 10 determines whether or not communication with the packet transmission destination server is possible. If communication is not possible, the virtual NIC driver 10 returns an error to the OS, and if communication is possible, the process proceeds to S113.

最後に、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 NIC driver 10 refers to the single path information 14, and determines the L3 switch corresponding to the SW column 143 of the corresponding entry as a path. Here, the virtual NIC driver 10 transmits a packet via this L3 switch, and the shortest path is a path that passes through the NT adapter of its own server directly connected to this L3 switch. The entry of the NT adapter information 12 in which the SW column 113 of the NT adapter information 12 matches the value of the SW is searched, and the value of the NIC column 111 of the entry is determined as the NT adapter of the local server constituting the shortest path. .

なお、このNTアダプタに障害が発生せずパケット送信が可能であれば、仮想NICドライバ10は、このNTアダプタからパケットを送信する。もし障害が発生していた場合、NTアダプタ情報12に登録されている、他のNTアダプタからパケットを送信することとなる。   If the NT adapter does not fail and packet transmission is possible, the virtual NIC driver 10 transmits a packet from the NT adapter. If a failure has occurred, a packet is transmitted from another NT adapter registered in the NT adapter information 12.

S127で、仮想NICドライバ10は、パケット送信元MACアドレスを、送信処理に利用すると決定したNTアダプタのMACアドレスに書き換えて、パケットを送信する。
以上が、仮想NICドライバ10のパケット送信時の全体処理である。
In S127, the virtual NIC driver 10 rewrites the packet transmission source MAC address with the MAC address of the NT adapter determined to be used for transmission processing, and transmits the packet.
The above is the overall processing when the virtual NIC driver 10 transmits a packet.

次に、上述の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 virtual NIC driver 10 refers to the router information 13 when determining the NT adapter to be used for packet transmission to the L3 switch, and reads the status and time of the NT adapter having the highest priority.

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 NT adapter information 12 and by referring to the entry having the SW identifier that matches the value of the SW column 123 obtained above. The NIC of the found entry is an NT adapter that is directly connected to the L3 switch. In the case of the router information 13 shown in FIG. 6, since the SW identifier is “0”, the NIC is eth0.

S203で、仮想NICドライバ10は、S301で読み出した最優先となるNTアダプタのTimeが、一定時間経過しているか否かを判定し、一定時間経過している場合、S209に進み、経過していない場合、S205に進む。   In step S203, the virtual NIC driver 10 determines whether the time of the NT adapter that is the highest priority read in step S301 has elapsed for a certain period of time. If the period of time has elapsed, the process proceeds to step S209. If not, the process proceeds to S205.

S205で、仮想NICドライバ10は、S201で読み出した最優先となるNTアダプタのStatusが「Online」であるか否かを判定する。「Online」である場合、そのNTアダプタが、パケット送信に利用するNTアダプタとして決定し、本フローを抜ける。逆に、TimeStatusが「Offline」の場合は、S207の処理に進む。   In step S205, the virtual NIC driver 10 determines whether the status of the NT adapter having the highest priority read in step S201 is “Online”. In the case of “Online”, the NT adapter is determined as an NT adapter to be used for packet transmission, and this flow is exited. On the contrary, if TimeStatus is “Offline”, the process proceeds to S207.

S207で、仮想NICドライバ10は、S203及びS205で判定した状態以外の状態であるか否かを判断し、S203及びS205で判定した何れかの場合でない場合(S207:No)、S201に戻り、次の優先順位のNTアダプタの利用可否を調査する。逆に、S203及びS205の何れの判定した状態でない場合(S207:Yes)、通信状態は不明という状態であり、S209の処理に進む。   In S207, the virtual NIC driver 10 determines whether the state is other than the state determined in S203 and S205, and if it is not any of the cases determined in S203 and S205 (S207: No), the process returns to S201. Investigate the availability of the next priority NT adapter. On the contrary, when it is not in any of the determined states of S203 and S205 (S207: Yes), the communication state is unknown, and the process proceeds to S209.

S209で、仮想NICドライバ10は、当該NTアダプタからそのL3スイッチにARP要求を送信する。ARP要求に含まれる送信元MACアドレスは、そのNTアダプタのMACアドレスになる。また、ARP要求のターゲットアドレスは、L3スイッチのアドレスとする。
S211で、仮想NICドライバ10は、L3スイッチからARP応答の受信可否を判定し、受信できた場合には、S213に進み、受信できなかった場合は、S215に進む。
In step S209, the virtual NIC driver 10 transmits an ARP request from the NT adapter to the L3 switch. The source MAC address included in the ARP request is the MAC address of the NT adapter. The target address of the ARP request is the address of the L3 switch.
In step S211, the virtual NIC driver 10 determines whether or not the ARP response can be received from the L3 switch. If the virtual NIC driver 10 can receive the ARP response, the process proceeds to step S213. If the virtual NIC driver 10 cannot receive the ARP response, the process proceeds to step S215.

S213で、仮想NICドライバ10は、ルータ情報13の対応するエントリのStatusを「Online」に、Timeを現在時刻に更新し、フローを抜ける。
S215で、仮想NICドライバ10は、そのL3スイッチとは通信できないため、ルータ情報13の対応するエントリのStatusを「Offline」に、Timeを現在時刻に更新し、S201の処理に戻る。
以上が、「ルータとの経路検出処理」である。
In S213, the virtual NIC driver 10 updates the status of the corresponding entry in the router information 13 to “Online” and the Time to the current time, and exits the flow.
In S215, since the virtual NIC driver 10 cannot communicate with the L3 switch, the status of the corresponding entry in the router information 13 is updated to “Offline”, the Time is updated to the current time, and the process returns to S201.
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 virtual NIC driver 10 of the server that has transmitted the probe packet, but also the processing of the receiving virtual NIC driver of the server that has received the probe packet.

S301で、送信側の仮想NICドライバ10は、NTアダプタ情報12に登録された全てのNTアダプタから、プローブパケットをブロードキャスト送信する。プローブパケットには、自サーバのアドレス、送信元NTアダプタのMACアドレス、NTアダプタが接続されているL3スイッチの識別子、通信相手サーバのIPアドレスを含む。   In S301, the transmission-side virtual NIC driver 10 broadcasts probe packets from all NT adapters registered in the NT adapter information 12. The probe packet includes the address of its own server, the MAC address of the source NT adapter, the identifier of the L3 switch to which the NT adapter is connected, and the IP address of the communication partner server.

MACアドレスと接続されているL3スイッチの識別子は、NTアダプタ情報12から取得する。各プローブパケットはブロードキャスト送信されるため、L3スイッチ間の回線を通って、サブネット内の全てのサーバの全てのNTアダプタに向けて送信される。   The identifier of the L3 switch connected to the MAC address is acquired from the NT adapter information 12. Since each probe packet is transmitted by broadcast, it is transmitted to all NT adapters of all servers in the subnet through a line between the L3 switches.

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 active server information 11. That is, the IP address, MAC address, and L3 switch identifier included in the received probe packet are registered in the IP address column 111, the MAC address column 112, and the SW identifier column 113 of the operating server information 11.
If there is an entry of the probe packet already received on the active server information 11, the time information in the corresponding Time (eth0) column 114 and Time (eth1) column 115 is updated. When received from the NT adapter ethi (i = 0, 1) of the local server, Time (ethi) (i = 0, 1) is updated to the current time.

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 virtual NIC driver 10 that originally transmitted the probe packet transmits first whether the probe packet has been transmitted first. This is because it is possible to distinguish whether the packet is returned to the probe packet. Another object of the present invention is to prevent the packet from being transmitted indefinitely by not replying to the probe packet broadcasted as a reply.

他方、S303で、仮想NICドライバ10は、他のサーバにブロードキャスト送信したプローブパケットに対する応答を検出するまで一定時間待機する(S303:No)。受信した場合(S303:Yes)、S305に進み、一定期間経過しても受信しない場合、エラーとし、処理を抜けるようになっている。   On the other hand, in S303, the virtual NIC driver 10 waits for a certain period of time until it detects a response to the probe packet broadcast to another server (S303: No). If it is received (S303: Yes), the process proceeds to S305, and if it is not received even after a certain period of time, an error occurs and the process is skipped.

S305で、仮想NICドライバ10は、他のサーバからの返信として受信したプローブパケットに含まれる、返信元サーバのIPアドレス、MACアドレス及びL3スイッチの識別子を、稼働サーバ情報11に登録する処理を行う。この処理によって、仮想NICドライバ10は、障害等の発生していない通信可能な経路を管理することができる。   In step S <b> 305, the virtual NIC driver 10 performs processing for registering the IP address, MAC address, and identifier of the L3 switch included in the probe packet received as a reply from another server in the operating server information 11. . Through this process, the virtual NIC driver 10 can manage a communicable path in which no failure has occurred.

返信されるプローブパケットもブロードキャスト送信されているため、仮想NICドライバ10は、全てのネットワーク経路の利用可否をチェックできることになる。なお、返信されるプローブパケットは、サブネット内のすべてのサーバに届けられるため、他のサーバも返信されるプローブパケットを読み取り、稼働サーバ情報11の更新を行う。
以上が、「サーバ検出処理」である。なお、本「サーバ検出処理」は、S111(図11)のタイミングで処理が発生するようになっているが、本例に限らず、定期的に処理を行うようにしてもよい。
Since the returned probe packet is also broadcast, the virtual NIC driver 10 can check the availability of all network paths. Since the returned probe packet is delivered to all the servers in the subnet, the probe packet returned by other servers is read and the operating server information 11 is updated.
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 virtual NIC driver 10 receives packet data in the computer system 1 in which a communicable path is managed by the processes shown in FIGS.
FIG. 14 shows the flow of packet data reception processing.
In step S501, the virtual NIC driver 10 determines whether the received bucket data is broadcast transmission. If it is not broadcast transmission (S501: No / for example, when the own server is designated as a specific destination, such as unicast or multicast), the process proceeds to S503, and the virtual NIC driver 10 sends the received packet to the OS. hand over.

逆に、S501においてブロードキャスト送信によるパケットである場合(S501:Yes)、仮想NICドライバ10は、S505に進み、そのパケットが、受信用NTアダプタが受信したパケットであるか否かの判定を行う。   On the other hand, if the packet is a broadcast transmission packet in S501 (S501: Yes), the virtual NIC driver 10 proceeds to S505, and determines whether the packet is a packet received by the reception NT adapter.

ブロードキャストパケットは、自サーバの全ての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 NT adapter information 12, only packets received by the NT adapter having the smallest SW identifier 113 among the NT adapters in which no failure has occurred are passed to the OS. .

仮想NICドライバ10は、受信用NTアダプタが受信したパケットであると判定する場合(S505:Yes)、S504に進み、パケットをOSに渡し、受信用NTアダプタ以外のアダプタが受信したパケットであると判定する場合(S505:No)、S507に進み、パケットを破棄する。
以上が、パケット受信時の処理の流れである。
When the virtual NIC driver 10 determines that the packet is received by the receiving NT adapter (S505: Yes), the process proceeds to S504, where the packet is passed to the OS and is received by an adapter other than the receiving NT adapter. When judging (S505: No), it progresses to S507 and a packet is discarded.
The above is the flow of processing when receiving a packet.

このように計算機システム1によれば、スイッチ間パスの通信負荷を軽減すると共にネットワークスイッチの制御系コストを削減することができる。
また、各サーバが動的に、利用可能な経路を検出することで、経路障害等及び代替経路の管理を各サーバが実行するため、障害耐性が向上する。特に、Map-Reduceを利用した大規模システムの場合、これを構成する複数のサーバ間の通信も多く、通信経路の管理は処理時間に大きく影響する。計算機システム1では、各サーバが経路を管理するため他のサーバへのデータ送信時に、利用可能な最短経路を選択することから、データ送信後に不通経路によって障害を検知する方法よりもより処理時間の高速化に寄与することが期待できる。
As described above, according to the computer system 1, it is possible to reduce the communication load of the inter-switch path and reduce the control cost of the network switch.
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 computer system 1, since each server manages the route, the shortest available route is selected at the time of data transmission to other servers. Therefore, the processing time is longer than the method of detecting the failure by the non-connection route after data transmission. It can be expected to contribute to speeding up.

なお、本発明は上述の種々の例に限定されるものではなく、その趣旨を逸脱しない範囲で種々の構成を適用することができる。   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 computer system 1, each server has network adapters for the number of L3 switches, and each server is connected to each L3 switch. However, all servers have network adapters for the number of L3 switches. There is no need to prepare. That is, a server with a small number of network adapters is always considered to have failed, but there is no problem in system operation.

また、計算機システム1では、サブネット内のL3スイッチを2台とするが、L3スイッチの台数はこれ以上でもよい。なお、このときは、サブネット内のL3スイッチはL2的に相互に接続するとよい。   In the computer system 1, the number of L3 switches in the subnet is two, but the number of L3 switches may be more than this. At this time, the L3 switches in the subnet are preferably connected to each other in L2.

また、計算機システム1では、各サーバがL3スイッチに直接接続していたが、L3スイッチとサーバが別のL2スイッチを介して接続される構成でもよい。即ちこのような構成であっても、Layer3のネットワークトポロジは同一であるため、サーバは、最近接のL3スイッチとそれ以外のL3スイッチを一意に区別できるからである。   In the computer system 1, each server is directly connected to the L3 switch. However, the L3 switch and the server may be connected via another L2 switch. That is, even in such a configuration, because the network topology of Layer 3 is the same, the server can uniquely distinguish the closest L3 switch from the other L3 switches.

なお、計算機システム1の各機能部を構成するソフトウェアは、種々の電気、磁気的方式を利用した非一時的記録媒体に記録可能であることはいうまでもない。また、ネットワークを介してこれらソフトウェアをサーバ等にダウンロードし、インストールすることも当然可能である。   Needless to say, the software constituting each functional unit of the computer system 1 can be recorded on a non-temporary recording medium using various electric and magnetic methods. Of course, it is also possible to download and install these software on a server or the like via a network.

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及び第2ネットワークスイッチと、
前記第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.
請求項1に記載の計算機システムであって、
前記複数の計算機は、前記他の計算機に対するブロードキャスト送信の応答の内容から前記経路情報を生成する計算機システム。
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.
請求項2に記載の計算機システムであって、
前記他の計算機に対するブロードキャスト送信は、前記第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.
請求項3に記載の計算機システムであって、
前記他の計算機は、前記ブロードキャスト送信に含まれる前記自計算機のアドレス、自ネットワークアダプタの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.
請求項3に記載の計算機システムであって、
前記他の計算機に対するブロードキャスト送信は、更に、送信先の計算機アドレスを含み、
前記ブロードキャスト送信を受信した前記他の計算機は、
前記送信先の計算機アドレスが、自計算機のアドレスである場合に、前記応答を送信する計算機システム。
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.
請求項5に記載の計算機システムであって、
前記他の計算機は、前記応答をブロードキャスト送信する計算機システム。
The computer system according to claim 5,
The other computer is a computer system that broadcasts the response.
請求項1に記載の計算機システムであって、
前記第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及び第2ネットワークスイッチと、
前記第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及び第2ネットワークスイッチと、
前記第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.
JP2012266836A 2012-12-06 2012-12-06 Computer system, communication path management method, and program Pending JP2014116645A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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