JP5782641B2 - 計算機システム及びパケット転送方法 - Google Patents

計算機システム及びパケット転送方法 Download PDF

Info

Publication number
JP5782641B2
JP5782641B2 JP2012191350A JP2012191350A JP5782641B2 JP 5782641 B2 JP5782641 B2 JP 5782641B2 JP 2012191350 A JP2012191350 A JP 2012191350A JP 2012191350 A JP2012191350 A JP 2012191350A JP 5782641 B2 JP5782641 B2 JP 5782641B2
Authority
JP
Japan
Prior art keywords
virtual
information
server
packet
load balancer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012191350A
Other languages
English (en)
Other versions
JP2014048900A (ja
Inventor
浩士 西井
浩士 西井
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 JP2012191350A priority Critical patent/JP5782641B2/ja
Priority to US13/785,064 priority patent/US20140067914A1/en
Publication of JP2014048900A publication Critical patent/JP2014048900A/ja
Application granted granted Critical
Publication of JP5782641B2 publication Critical patent/JP5782641B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]

Description

本発明は、計算機システムに関し、仮想計算機の追加及び削除に伴うロードバランサのパケットの振り分け方法に関する。
クラウド型サービスが台頭しているように、クライアント・サーバ型通信が拡大に伴い、トラフィックは年々急増している。
サーバ自身の処理能力は改善されているが、処理要求されるトラフィック量に対応できていない。そこで、クライアントとサーバとの間にロードバランサを設置し、サーバの負荷に応じてトラフィックを振り分けることによって、負荷分散を行い方式が採用されている(例えば、特許文献1及び特許文献2参照)。
特許文献1には、「同一機能/構成の複数台のサーバと、サーバロードバランサとを含むネットワークを、ルータを介してWANやインターネットに接続されており、このような構成のネットワークのスループットは、サーバロードバランサなどの、ソフトウェア的な処理が必要な高位レイヤ処理装置によって定まることになる。このため、既存の高位レイヤ処理装置(サーバロードバランサ、ファイアウォール等)が用いられたネットワークのスループットを向上する場合には、通常、高位レイヤ処理装置をより高機能なものに置き換えるといったことが行われている。」ことが記載されている。
また、特許文献2には、「システム内で負荷分散のために必要とされる相互通信をできるだけ少なくすること、負荷分散装置の台数に比例した性能を得ることを実現する負荷分散処理システムを提供するため、受信パケットに含まれる高位レイヤ情報を解析して該受信パケットの属性情報を生成し、該属性情報を付加したパケットを送出する第1の負荷分散装置と、パケットのトラフィック状況情報と第1の負荷分散装置から送出された前記属性情報とに基づいて、各パケットを振り分けるべき最適な前記サーバを決定して前記パケットを送出する第2の負荷分散装置を備え、さらに好ましくは、前記受信パケットを、複数の第1の負荷分散装置のうちのいずれかに振り分ける第3の負荷分散装置を備えるネットワークを実現する」ことが記載されている。
従来の負荷分散の方式では、クライアントは、ロードバランサに対して処理要求を発行するだけでよいため、サーバの構成を意識する必要がない。このようにロードバランサがサーバ側の構成を隠ぺいすることによって、サーバの追加等によるサーバ側の構成変更の影響をクライアント側に及ぼさないようにする効果がある。
従来のロードバランサは、NATの動作を行う方式が一般的である。ロードバランサは、クライアントから送信されたイーサネットパケット等(イーサネットは、登録商標以下同じ)のパケットを受信すると、当該パケットからサーバとの関連を示す情報を抽出する。さらに、ロードバランサは、コネクションテーブルを参照して、IPヘッダ及びMACアドレスヘッダを書き換え、該当するサーバにパケットを送信する。
また、同様の手順で、ロードバランサは、サーバから送信されたパケットを受信すると、当該パケットからクライアントとの関連を示す情報を抽出する。さらに、ロードバランサは、コネクションテーブルを参照して、IPヘッダ及びMACアドレスヘッダを書き換え、該当するクライアントにパケットを送信する。
なお、ロードバランサは、パケットの転送時に、参照したコネクションテーブルに対応するエントリが存在しなかった場合、予め設定されたコンフィグ情報にしたがって、新しいコネクションエントリをコネクションテーブルに追加する。
コンフィグ情報には、クライアント側の情報として、クライアントのIPアドレス、ポート番号等のクライアント側の端末及びネットワーク情報が含まれ、サーバ側の情報として、サーバのIPアドレス、受信ポート番号及びサーバの処理能力に応じた振り分け配分率等のサーバ側のネットワーク情報及びサーバに関する情報が含まれる。
クライアント側の情報又はサーバ側の情報が変更された場合、コンフィグ情報も変更する必要がある。例えば、負荷の増大に対応するためにサーバを追加する場合、サーバのIPアドレス、受信ポート番号、サーバの処理能力に応じた振り分け配分率等が再設定される。このとき、ロードバランサを再起動させることによって変更された情報を反映させるため、サービスを中断する必要がある。
前記のとおり、サーバ増減設にはロードバランサの設定、反映に伴うサービス中断などが発生し、トラフィックに柔軟に対応するための、ダイナミックなサーバ構成変更はできない。
一方、企業又は個人に対して様々なサービスを展開すると同時に、さらなるセキュリティが求められる。そのため、サーバ側では、一つのサーバ上に複数の仮想マシンを構築する仮想化技術が用いられており、近年、サーバのハードウェアの性能の向上、及び仮想化ソフトウェアの進化によって、サーバ上に複数の仮想化マシンを構築することができるようになった。
仮想化技術を用いることによって、ユーザごとに様々なサービスをセキュアに提供する基盤を提供できる。
サーバ上に、各クライアントのサービスごとに仮想マシンを設置し、付加価値処理を実行する。各クライアントのサービスごとに仮想マシンを設置することによって、クライアントのデータがセキュアに分離される。
以上のような背景から、今後も仮想化マシンを活用するニーズは増大するものと考える。
しかし、仮想マシン数の増大に伴い、その管理コストも増大する。具体的には、仮想マシンを一つ追加するたびに、当該仮想マシンにクライアントデータを転送するネットワークを設定する必要がある。また、負荷にリアルタイムに対応するために、仮想マシンの追加又は削除に追従した、ダイナミックなネットワーク構成変更は不可能である。
すなわち、負荷に応じて仮想化マシンを柔軟に追加又は削除可能な技術は提供されているが、ロードバランサが、仮想マシンの追加又は削除によるサーバのダイナミックな構成の変更に対応する技術が提供されていない。
特開2006−311470号公報 特開2004−158977号公報
特許文献1及び特許文献2には、ロードバランサを備えたネットワークにおいて、ロードバランサのボトルネックを回避する技術は記載されているが、サーバ側の構成を動的に変更した場合における、ロードバランサのパケット振り分けの設定を動的に変更する技術については提供されていない。
また、仮想化マシンの追加によって、コネクションテーブルのデータが肥大化する。コネクションテーブルのデータ量が大きくなると、ロードバランサは、パケットの転送先を検索する時間も大きくなり、転送時間に遅延が生じる。そのため、サーバ側の処理能力は向上しているが、ロードバランサがシステム全体のボトルネックになっている。
そのため、特許文献2に記載されているような技術を用いることも考えられるが、負荷増大によるボトルネックを解消するためにロードバランサを追加すると、ロードバランサを追加するための作業が必要となり、ロードバランサに対する設定を反映させるためにサービスを中断させる必要がある。したがって、トラフィックに柔軟に対応するためのダイナミックなサーバ構成変更はできない。
本発明は、負荷に応じて仮想化マシンを柔軟に追加又は削除できる計算機システムにおいて、サーバ側に構成変更に即時かつ柔軟に対応可能なロードバランサ技術を提供するものである。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、クライアント計算機に一つ以上のサービスを提供するサーバ及び前記クライアント計算機又は前記サーバから送信されるパケットを転送するロードバランサを備える計算機システムであって、前記サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、前記ロードバランサは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、前記サーバ上では、一つ以上の仮想計算機が稼働し、前記仮想計算機は、前記仮想計算機に割り当てられる仮想MACアドレスを含むパケットを送信することによって、他の前記仮想計算機と通信し、前記クライアント計算機には、サービスを提供する前記仮想計算機が一つ以上割り当てられ、前記計算機システムは、前記クライアント計算機毎に、前記仮想計算機の負荷を監視し、前記監視の結果に基づいて、前記仮想計算機の追加又は削除を指示する管理部を備え、前記管理部は、前記サーバの識別情報、及び前記サーバに対する前記クライアント計算機から送信されたパケットの転送比率を表す重み係数が対応づけられたエントリを一つ以上含むサーバ管理情報を保持し、前記監視の結果に基づいて、第1のクライアント計算機に第1のサービスを提供する仮想計算機を追加する必要があると判定された場合、前記第1のサービスを提供する新たな仮想計算機を追加する前記サーバを決定し、前記サーバ管理情報を参照して、前記決定されたサーバの識別情報に対応するエントリを検索して、前記検索されたエントリから前記重み係数を取得し、前記第1のクライアント計算機の識別情報、前記第1のサービスの識別情報、及び前記取得された重み係数を含む前記仮想MACアドレスを生成し、前記決定されたサーバに、前記生成された仮想MACアドレスを含む前記新たな仮想計算機の生成指示を送信することを特徴とする。
本発明の一側面によれば、仮想計算機が追加された場合に、当該追加された仮想計算機にパケットを転送するために必要な情報を含む仮想MACアドレスを割り当てることができる。したがって、ロードバランサは、自動的に、パケットの受信時に当該仮想MACアドレスから必要な情報を取得することができるため、外部装置から手動で設定を行う必要がなく、また、ロードバランサを停止する必要がない。そのため、ロードバランサは、サーバの構成変更に、即時かつ柔軟に対応できる。
本発明の実施例における計算機システムの一例を示すブロック図である。 本発明の実施例における仮想MACアドレスの構成例を示す説明図である。 本発明の実施例におけるVM管理計算機のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。 本発明の実施例におけるロードバランサのハードウェア構成及びソフトウェア構成の一例を説明するブロック図である。 本発明の実施例におけるプロセッサ負荷監視テーブルの一例を示す説明図である。 本発明の実施例におけるクライアント管理テーブルの一例を示す説明図である。 本発明の実施例におけるサービス種別管理テーブルの一例を示す説明図である。 本発明の実施例における物理サーバ管理テーブルの一例を示す説明図である。 本発明の実施例におけるVM管理テーブルの一例を示す説明図である。 本発明の実施例における分散管理テーブルの一例を示す説明図である。 本発明の実施例におけるVM管理計算機が実行する処理の詳細を説明するフローチャートである。 本発明の実施例における処理の概要を示す説明図である。 本発明の実施例における新たなVMに割り当てる仮想MACアドレスの一例を示す説明図である。 本発明の実施例における仮想MACアドレスの通知方法の一例を示す説明図である。 本発明の実施例におけるMACテーブルの一例を示す説明図である。 本発明の実施例におけるサービスネットワーク内イーサネットパケットの一例を示す説明図である。 本発明の実施例におけるロードバランサが実行する処理の詳細を説明するフローチャートである。 本発明の実施例におけるロードバランサが実行する処理の詳細を説明するフローチャートである。
以下、本発明の実施例について添付図面を用いて説明する。各図における同一符号は同一物又は相当物を示す。説明の都合上、符号に添え字を追加して区別することがある。
図1は、本発明の実施例における計算機システムの一例を示すブロック図である。
本実施例の計算機システムは、VM管理計算機100、サーバ110−1、サーバ110−2、L2スイッチ140、ロードバランサ150及び複数のクライアント計算機160から構成される。
VM管理計算機100、サーバ110−1、サーバ110−2、L2スイッチ140、ロードバランサ150及び複数のクライアント計算機160は、所定のネットワークによって互いに接続される。本発明は、ネットワークの種別によって限定されず、WAN、LAN及びSANのいずれであってもよく、また、接続方式は、無線及び有線のいずれであってもよい。
VM管理計算機100は、サーバ110−1及びサーバ110−2上で稼働する仮想計算機(以下、VMと記載する)を管理する。なお、VM管理計算機100のハードウェア構成及びソフトウェア構成については、図3を用いて後述する。
サーバ110−1は、VM120が稼働する計算機であり、プロセッサ(図示省略)、メモリ(図示省略)、記憶媒体(図示省略)及びネットワークインタフェース(図示省略)を備える。
サーバ110−1は、VM120を管理する仮想化ソフトウェア130−1を実行する。これによって、一つのサーバ上に複数のVM120を稼働させることができる。図1に示す例では、サーバ110−1上では、VM120−1及びVM120−2が稼働する。
仮想化ソフトウェア130−1は、サーバ110−1が備える物理リソースを論理的に分割することによって、仮想的プロセッサ、仮想的メモリ、仮想記憶媒体及び仮想ネットワークインタフェースをVM120に割り当てる。
VM120−1では、ゲストOS122−1が稼働しており、当該ゲストOS122−1上でアプリケーション121−1が実行される。また、VM120−1には、仮想MACアドレス123−1が割り当てられる。アプリケーション121−1は、クライアント計算機160から送信されたパケットを処理することによって、所定のサービスを提供する。
VM120−2は、ゲストOS122−2が実行されており、当該ゲストOS122−2上でアプリケーション121−2が実行される。また、VM120−2には、仮想MACアドレス123−2が割り当てられる。
VM120−1及びVM120−2は、仮想MACアドレス123−1及び仮想MACアドレス123−2を用いて互いに通信を行う。なお、本発明では、VM管理計算機100によって、仮想MACアドレスが割り当てられる。
サーバ110−2も同様に、VM120が稼働する計算機であり、プロセッサ(図示省略)、メモリ(図示省略)、記憶媒体(図示省略)及びネットワークインタフェース(図示省略)を備える。
サーバ110−2は、仮想化ソフトウェア130−2を実行することによって、VM120−3及びVM120−4が稼働する。なお、サーバ110−2の構成はサーバ110−1と同一であるため説明を省略する。
以下では、サーバ110−1及びサーバ110−2を区別しない場合、サーバ110と記載する。また、VM120−1、VM120−2、VM120−3及びVM120−4を区別しない場合、VM120と記載し、仮想化ソフトウェア130−1及び仮想化ソフトウェア130−2を区別しない場合、仮想化ソフトウェア130と記載する。また、アプリケーション121−1、アプリケーション121−2、アプリケーション121−3及びアプリケーション121−4を区別しない場合、アプリケーション121と記載し、ゲストOS122−1、ゲストOS122−2、ゲストOS122−3及びゲストOS122−4を区別しない場合、ゲストOS122と記載し、仮想MACアドレス123−1、仮想MACアドレス123−2、仮想MACアドレス123−3及び仮想MACアドレス123−4を区別しない場合、仮想MACアドレス123と記載する。
クライアント計算機160は、サーバ110に対して処理パケットを送信する計算機であり、プロセッサ(図示省略)、メモリ(図示省略)、記憶媒体(図示省略)及びネットワークインタフェース(図示省略)を備える。
本実施例では、クライアント計算機160を操作するクライアント(ユーザ)に対して、一つサービスに、一つ以上のVM120を割り当てる。すなわち、クライアント毎、かつ、サービス毎に、一つの業務システムが提供される。クライアント計算機160は、業務システムに対して処理パケットを送信することによって、所定のサービスの提供を受けることができる。
ロードバランサ150は、クライアント計算機160から送信されたパケットを適切なサーバ110に振り分ける。ロードバランサ150のハードウェア構成及びソフトウェア構成については、図4を用いて後述する。
L2スイッチ140は、ロードバランサ150から送信されたパケットをサーバ110に転送し、サーバ110から送信されたパケットをサーバ110又はロードバランサ150に転送する。後述するように、L2スイッチ140は、ロードバランサ150によって付与された仮想MACヘッダにしたがって、所定のサーバ110にパケットを転送する。
なお、本実施例では、VM管理計算機100、サーバ110、L2スイッチ140及びロードバランサ150間を接続するネットワークをサービスネットワークと記載し、ロードバランサ150及びクライアント計算機160間を接続するネットワークをクライアントネットワークと記載する。
クライアントネットワーク内では、イーサネットパケット170を用いて通信が行われ、サービスネットワーク内では、サービスネットワーク内イーサネットパケット180を用いて通信が行われる。
イーサネットパケット170は、ペイロード171及びMACヘッダ172の二つのフィールドから構成され、サービスネットワーク内イーサネットパケット180は、ペイロード171、MACヘッダ172及び仮想MACヘッダ181の三つのフィールドから構成される。
ここで、VM120に割り当てられる仮想MACアドレス123について説明する。
図2は、本発明の実施例における仮想MACアドレス123の構成例を示す説明図である。
仮想MACアドレス123は、仮想ネットワーク上におけるVM120を識別するための6バイトの識別子であり、3バイトのクライアント番号フィールド201、1バイトのサービス種別フィールド202、0.5バイトの重み情報フィールド203、1バイトのVM番号フィールド204、及び、0.5バイトの制御フィールド205の五つのフィールドから構成される。
クライアント番号フィールド201は、クライアント計算機160を一意に識別するための3識別子を含む。サービス種別フィールド202は、クライアント計算機160がVM120を用いて行っているサービスの種別を識別するための情報を含む。重み情報フィールド203は、パケットを振り分けに用いられる重み係数を含む。
VM番号フィールド204は、所定のクライアントの所定のサービスに対して割り当てられるVM120の数を含む。制御フィールド205は、ロードバランサ150に対する制御種別を含む。
従来のMACアドレスは、ネットワークインタフェースカードの製造メーカを示す3バイトの情報及び当該製造メーカ内で一意な番号である3バイトの情報から構成される。したがって、従来のMACアドレスは、イーサネットワーク内の情報端末を識別子としてのみ用いられ、その他の付加的情報を持たない。
従来は、仮想MACアドレス123は、サービスネットワーク内で各VM120を一意に識別できればよいため、各VMにランダムに割り当てられていた。しかし、本発明では、クライアント番号フィールド201及びサービス種別フィールド202を含む仮想MACアドレス123を割り当てることによって、クライアント計算機160から送信される処理パケットに対するロードバランサ150の振分処理に活用する点に特徴がある。
図3は、本発明の実施例におけるVM管理計算機100のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
VM管理計算機100は、プロセッサ310、メモリ320及びネットワークインタフェース330を備える。
プロセッサ310は、メモリ320に格納されるプログラムを実行する。プロセッサ310がプログラムを実行することによって、VM管理計算機100が有する機能を実現することができる。なお、以下の説明において、プログラムを主語にする場合には、プロセッサ310によって当該プログラムが実行されていることを表すものとする。
ネットワークインタフェース330は、ネットワークを介して他の装置と通信するためのインタフェースであり、例えばNIC等が考えられる。
メモリ320は、プロセッサ310によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。
本実施例では、メモリ320は、プロセッサ負荷監視部321、仮想MACアドレス生成部322及び仮想化ソフトウェア通信部323を実現するプログラムを格納する。また、メモリ320は、情報として、プロセッサ負荷監視テーブル324、クライアント管理テーブル325、サービス種別管理テーブル326、物理サーバ管理テーブル327及びVM管理テーブル328を格納する。
プロセッサ負荷監視部321は、サーバ110が備えるプロセッサの負荷及びVM120に割り当てられた仮想プロセッサの負荷を監視する。仮想MACアドレス生成部322は、VM120に割り当てる仮想MACアドレス123を生成する。仮想化ソフトウェア通信部323は、仮想化ソフトウェア130と通信を行う。
プロセッサ負荷監視テーブル324は、サーバ110が備えるプロセッサの負荷の監視結果及びVM120に割り当てられた仮想プロセッサの負荷の監視結果を格納する。プロセッサ負荷監視テーブル324の詳細については、図5を用いて後述する。
クライアント管理テーブル325は、クライアント計算機160の管理情報を格納する。クライアント管理テーブル325の詳細については、図6を用いて後述する。サービス種別管理テーブル326は、VM120を用いて実行されるサービスの種別に関する情報を格納する。サービス種別管理テーブル326の詳細については、図7を用いて後述する。
物理サーバ管理テーブル327は、サーバ110と、当該サーバ110に対する処理パケットの転送比率を表す重み情報とを対応づけた情報を格納する。物理サーバ管理テーブル327の詳細については、図8を用いて後述する。VM管理テーブル328は、VM120の管理情報を格納する。VM管理テーブル328の詳細については、図9を用いて後述する。
図4は、本発明の実施例におけるロードバランサ150のハードウェア構成及びソフトウェア構成の一例を説明するブロック図である。
ロードバランサ150は、プロセッサ410、メモリ420及びネットワークインタフェース430を備える。
プロセッサ410は、メモリ420に格納されるプログラムを実行する。プロセッサ410がプログラムを実行することによって、ロードバランサ150が有する機能を実現することができる。なお、以下の説明において、プログラムを主語にする場合には、プロセッサ410によって当該プログラムが実行されていることを表すものとする。
ネットワークインタフェース430は、ネットワークを介して他の装置と通信するためのインタフェースであり、例えばNIC等が考えられる。
メモリ420は、プロセッサ410によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。
本実施例では、メモリ420は、ARPパケット受信部421、データパケットヘッダ検査部422及びデータパケットヘッダ生成部423を実現するプログラムを格納する。また、メモリ420は、情報として、分散管理テーブル424を格納する。
ARPパケット受信部421は、ARPパケットを受信する。データパケットヘッダ検査部422は、受信したパケットのヘッダを検査する。データパケットヘッダ生成部423は、パケットのヘッダを生成する。
分散管理テーブル424は、受信したパケットを転送する場合に用いる情報を格納する。分散管理テーブル424の詳細については、図10を用いて後述する。
なお、図示しないがメモリ420には、過去の転送履歴も格納される。
図5は、本発明の実施例におけるプロセッサ負荷監視テーブル324の一例を示す説明図である。
プロセッサ負荷監視テーブル324は、列が仮想プロセッサ負荷率501及び物理プロセッサ負荷率502である、行がVM追加503及びVM削除504である行列形式の情報である。
VM追加503は、VM120を追加する必要がある場合を示し、VM削除504は、VM120を削減する必要がある場合を示す。また、仮想プロセッサ負荷率501は、VM120に割り当てられた仮想プロセッサの負荷率を示し、物理プロセッサ負荷率502は、サーバ110が備えるプロセッサの負荷率を示す。
例えば、プロセッサの負荷の監視の結果、仮想プロセッサの負荷率が85%である場合、仮想プロセッサ負荷率501のエントリを参照すると、VM追加503に該当するため、VM120が追加される。
以下の説明では、VM120を追加する必要がある場合をVM120の追加イベントと記載し、VM120を削除する必要がある場合をVM120の削除イベントと記載する。
図6は、本発明の実施例におけるクライアント管理テーブル325の一例を示す説明図である。図7は、本発明の実施例におけるサービス種別管理テーブル326の一例を示す説明図である。図8は、本発明の実施例における物理サーバ管理テーブル327の一例を示す説明図である。
クライアント管理テーブル325は、クライアント名601及びクライアント番号602を含む。クライアント名601は、クライアント計算機160を操作するクライアント(ユーザ)を識別するための識別名を格納する。クライアント番号602は、クライアント計算機160を操作するクライアント(ユーザ)を一意に識別するための識別番号を格納する。
サービス種別管理テーブル326は、サービス種別701及びサービス番号702を含む。サービス種別701は、提供されるサービスを識別するための情報を格納する。例えば、アプリケーション121の識別番号又は名称等が格納される。サービス番号702は、アプリケーション121を用いて提供されるサービスを識別するための識別番号を格納する。
なお、クライアント管理テーブル325及びサービス種別管理テーブル326は、クライアントとの契約時に、サービスネットワークのオペレータによって設定される情報である。
物理サーバ管理テーブル327は、サーバ名801及び重み情報802を含む。サーバ名801は、サーバ110を識別するための情報を格納する。例えば、サーバ110に設定されたサーバ名又は識別番号が考えられる。重み情報802は、パケットを振り分ける場合に用いられる重み係数を格納する。
重み係数は、同一のクライアントの同一のサービス種別のサービスを提供するVM120が複数存在する場合に、当該複数のVM120に対するパケットの振り分け率を算出する場合に用いられる数値である。なお、サービスネットワークの管理者が、サーバ110の処理能力等のパラメータに基づいて重み係数数を設定する。
図9は、本発明の実施例におけるVM管理テーブル328の一例を示す説明図である。
VM管理テーブル328は、クライアント番号901、サービス番号902及びVM番号903を含む。
クライアント番号901及びサービス番号902は、クライアント番号602及びサービス番号702と同一のものである。VM番号903は、クライアント番号901に対応するクライアントに、サービス番号702に対応するサービスを提供するVM120の数を格納する。
本実施例では、クライアント番号901及びサービス番号902の組み合わせに対して、一つのエントリが生成される。
所定のクライアントにサービスを提供するVM120が新たに追加された場合、対応するエントリのVM番号903には、現在の値に「1」加算した値が格納される。また、所定のクライアントにサービスを提供するVM120が削除された場合、対応するエントリのVM番号903には、現在の値に「1」減算した値が格納される。
図9に示す例では、クライアント番号901が「a1」のクライアントに、サービス番号902が「b1」であるサービスを提供するVM120が二つ割り当てられていることを表す。
図10は、本発明の実施例における分散管理テーブル424の一例を示す説明図である。
分散管理テーブル424は、ソースIPアドレス1001、VLAN番号1002、クライアント番号1003、サービス番号1004及びVM情報1005を含む。
ソースIPアドレス1001は、クライアントネットワークから送信されたパケットのヘッダに設定されたIPアドレスを格納する。VLAN番号1002は、クライアントネットワークから送信されたパケットのヘッダに設定されたVLANの識別番号を格納する。
ソースIPアドレス1001及びVLAN番号1002に格納される情報は、クライアントとのサービス契約時に、サービスネットワークのオペレータによって設定される情報である。また、ソースIPアドレス1001及びVLAN番号1002は、クライアントネットワークの識別情報である。
クライアント番号1003は、ソースIPアドレス1001及びVLAN番号1002に対応するクライアントの識別番号であり、クライアント番号602と同一のものである。サービス番号1004は、ソースIPアドレス1001及びVLAN番号1002に対応するクライアントに提供されるサービスの識別番号であり、サービス番号702と同一のものである。
クライアント番号1003及びサービス番号1004に格納される情報は、クライアントとのサービス契約時に、サービスネットワークのオペレータによって設定される情報である。また、クライアント番号1003及びサービス番号1004は、サービスネットワークにおける管理情報である。
VM情報1005は、ソースIPアドレス1001、VLAN番号1002、クライアント番号1003及びサービス番号1004に対応するパケットが送信されたVM120に関する情報を格納する。VM情報1005には、VM120毎にVM番号1011及び重み情報1012から構成される列情報が含まれる。すなわち、VM120が追加された場合、新たな列情報がVM情報1005に追加され、VM120が削除された場合、対応する列情報がVM情報1005から削除される。
図11は、本発明の実施例におけるVM管理計算機100が実行する処理の詳細を説明するフローチャートである。図12は、本発明の実施例における処理の概要を示す説明図である。図13は、本発明の実施例における新たなVM120に割り当てる仮想MACアドレス123の一例を示す説明図である。
VM管理計算機100は、周期的に以下で説明する処理を実行する。また、VM管理計算機100は、クライアント毎に以下で説明する処理を実行する。
本実施例では、クライアント名601が「AAA社」であるクライアント計算機160から送信される処理要求パケットが増加した場合を例に説明する。なお、図12に示すように、当該クライアントにサービスを提供するVM120として、サーバ110−1のVM120−1及びVM120−2が割り当てられているものとする。
まず、VM管理計算機100は、VM120−1及びVM120−2の仮想プロセッサの負荷率を監視する(ステップS1101)。
具体的には、図12に示すように、VM管理計算機100は、サーバ110−1の仮想化ソフトウェア130−1から、VM120−1及びVM120−2の仮想プロセッサの負荷率を取得する(ステップS1201)。このとき、VM管理計算機100は、サーバ110−1自身のプロセッサの負荷率も取得する。なお、VM120−1及びVM120−2の仮想プロセッサの負荷率の監視方法は、前述したものに限定されない。
VM管理計算機100は、取得された仮想プロセッサの負荷率に基づいて、クライアントに割り当てるVM120の数を変更する必要があるか否かを判定する(ステップS1102)。
具体的には、VM管理計算機100は、プロセッサ負荷監視テーブル324を参照して、VM120−1に割り当てられた仮想プロセッサの負荷率、VM120−2に割り当てられた仮想プロセッサの負荷率及びサーバ110自身のプロセッサの負荷率の少なくともいずれかが条件に合致するか否かを判定する。
本実施例では、VM120−1の仮想プロセッサの負荷率が80%以上であるものとする。この場合、VM120の追加が必要であるため、VM管理計算機100は、クライアントに割り当てるVM120の数を変更する必要があると判定する。
クライアントに割り当てるVM120の数を変更する必要があると判定された場合、VM管理計算機100は、ステップS1102の判定結果に基づいて、VM120の追加イベントであるか否かを判定する(ステップS1103)。
VM120の追加イベントであると判定された場合、VM管理計算機100は、新たに追加するVM120に割り当てる仮想MACアドレス123を生成するための処理を実行する(ステップS1104〜ステップS1108)。このとき、VM管理計算機100は、仮想化ソフトウェア130−1に問い合わせることによって、VM120−1上で実行されるアプリケーション121−1の識別情報を取得する。
まず、VM管理計算機100は、クライアント管理テーブル325及びサービス種別管理テーブル326から、VM120の追加対象のクライアントのクライアント番号602及び当該クライアントに対応するサービス番号702を取得する(ステップS1104)。具体的には、以下のような処理が実行される。
VM管理計算機100は、クライアント管理テーブル325のクライアント名601を参照して、処理対象のクライアントのクライアント名と一致するエントリを検索する。VM管理計算機100は、検索されたエントリからクライアント番号602を取得する。
また、VM管理計算機100は、サービス種別管理テーブル326のサービス種別701を参照して、VM120上で実行されるアプリケーション121−1の識別情報と一致するエントリを検索する。VM管理計算機100は、検索されたエントリからサービス番号702を取得する。
本実施例では、クライアント番号602として「a1」、サービス番号702として「b1」が取得される。
以上がステップS1104の処理である。
次に、VM管理計算機100は、取得されたクライアント番号602及びサービス番号702に基づいて、VM管理テーブル328を参照して、対応するエントリを検索する(ステップS1105)。
本実施例では、VM管理計算機100は、クライアント番号901が「a1」かつサービス番号902が「b1」であるエントリを検索する。VM管理計算機100は、検索されたエントリのVM番号903を参照することによって、クライアントにサービスを提供するVM120の数を把握することができる。
図9に示す例では、クライアントにサービスを提供するVM120が二つ割り当てられていることが分かる。
VM管理計算機100は、検索されたエントリのVM番号903を更新する(ステップS1106)。
具体的には、VM管理計算機100は、検索されたエントリのVM番号903の値に「1」を加算した値を格納する。本実施例では、VM番号903が「2」から「3」に更新される。
VM管理計算機100は、新たなVM120を生成するサーバ110を決定する(ステップS1107)。
新たなVM120を生成するサーバ110の決定方法は、公知の技術を用いればよいため説明を省略するが、例えば、割り当て可能な物理リソースを最も多く有するサーバ110を選択する方法、又は、プロセッサの等の負荷が最も低いサーバ110を選択する方法が考えられる。なお、本発明は、新たなVM120を生成するサーバ110の決定方法に限定されない。
本実施例では、サーバ110−2に新たなVM120−3が生成されるものとする。また、VM120−3は、VM120−1又はVM120−2のコピーであるものとする。
VM管理計算機100は、物理サーバ管理テーブル327から、新たなVM120を生成するサーバ110−2の重み係数を取得する(ステップS1108)。
具体的には、VM管理計算機100は、物理サーバ管理テーブル327を参照して、サーバ名801がサーバ110−2の識別名と一致するエントリを検索する。VM管理計算機100は、検索されたエントリの重み情報802から重み係数を取得する。本実施例では、重み係数として「c2」が取得される。
VM管理計算機100は、各テーブルから取得された情報に基づいて、新たなVM120に割り当てる仮想MACアドレス123−3を生成する(ステップS1109)。
具体的には、VM管理計算機100は、図13に示すように、クライアント番号フィールド201に「a1」、サービス種別フィールド202に「b1」、重み情報フィールド203に「c2」、VM番号フィールド204に「3」を含め、さらに、制御フィールド205に制御コード「Set」を含めた仮想MACアドレス123−3を生成する。
ここで、制御コード「Set」は、仮想MACアドレス123が有効であることを示し、ロードバランサ150に当該仮想MACアドレス123を用いて転送処理を実行させるための制御コードである。
VM管理計算機100は、仮想化ソフトウェア130−2に対して、生成された仮想MACアドレス123−3を含むVM生成指示を送信し(ステップS1110、ステップS1202)、処理を終了する。
仮想化ソフトウェア130−2は、受信したVM生成指示にしたがって、VM120−3を生成する。このとき、VM120−3には、生成された仮想MACアドレス123−3が割り当てられる。なお、VM120が削除されるまでの間、制御フィールド205に「Set」が設定された仮想MACアドレス123−3が使用される。
ステップS1103において、VM120の追加イベントでない、すなわち、VM削除イベントであると判定された場合、VM管理計算機100は、クライアント管理テーブル325及びサービス種別管理テーブル326から、VM120の削除対象のクライアントのクライアント番号602及び当該クライアントに対応するサービス番号702を取得する(ステップS1111)。ステップS1111の処理は、ステップS1104と同一である。
VM管理計算機100は、取得されたクライアント番号602及びサービス番号702に基づいて、VM管理テーブル328を参照して、対応するエントリを検索する(ステップS1112)。ステップS1112の処理は、ステップS1105と同一である。
VM管理計算機100は、検索されたエントリのVM番号903を更新する(ステップS1113)。
具体的には、VM管理計算機100は、検索されたエントリのVM番号903の値に「1」を減算した値を格納する。
VM管理計算機100は、仮想化ソフトウェア130に、VM120の削除指示を送信し(ステップS1114)、処理を終了する。
例えば、VM120−2を削除する場合、VM管理計算機100は、仮想化ソフトウェア130−1に対してVM120−2の削除指示を送信する。このとき、仮想化ソフトウェア130−1は、VM120−2に対してシャットダウン指示を送信する。VM120−2は、シャットダウン指示を受信すると、自身に割り当てられた仮想MACアドレス123−2の制御フィールド205に制御コード「Del」を格納したGratuitous ARPパケットを送信する。VM120−2は、シャットダウン処理終了後、サーバ110−1から削除される。
なお、制御コード「Del」は、仮想MACアドレス123が無効であることを示し、ロードバランサ150に当該仮想MACアドレス123に関する情報の削除を指示するための制御コードである。
図14は、本発明の実施例における仮想MACアドレス123の通知方法の一例を示す説明図である。
本実施例では、Gratuitous ARPパケットを用いてVM120に割り当てられた仮想MACアドレス123が通知される。
新たに生成されたVM120−3は、起動後、割り当てられた仮想MACアドレス123−3を用いて、Gratuitous ARPパケットを生成し、生成されたGratuitous ARPパケットを送信する。
ここで、Gratuitous ARPパケットは、ブロードキャストパケットであり、L2スイッチ140及びロードバランサ150に、装置自身のMACアドレス(ここでは、VM120−3の仮想MACアドレス123−3)を通知するために用いられる。
L2スイッチ140は、VM120−3から送信されたGratuitous ARPパケットを「ポートYY」から受信し、「ポートXX」及び「ポートZZ」から当該パケットを送信する。
ロードバランサ150は、L2スイッチ140の「ポートZZ」を介して、Gratuitous ARPパケットを受信する。また、サーバ110−1は、「ポートXX」を介して、Gratuitous ARPパケットを受信する。
前述したようにロードバランサ150は、L2スイッチ140を介して受信したGratuitous ARPパケットに基づいて、新たに生成されたVM120の仮想MACアドレスを取得することができる。
また、VM120−3はクライアント名が「AAA社」であるクライアント計算機160へパケットを送信する場合、ゲストOS122−3が、サービスネットワークイーサネットワークヘッダにてカプセル化を行い、L2スイッチ140に送信する。サービスネットワークイーサネットワークヘッダの宛先MACアドレスにはロードバランサ150のMACアドレス1410が用いられ、サービスネットワークイーサネットワークヘッダの送信元MACアドレスにはVM120−3の仮想MACアドレス123−3が用いられる。
また、VM120−3はクライアント名が「AAA社」であるクライアント計算機160へパケットを送信する場合、ゲストOS122−3が、サービスネットワーク内のイーサネットパケットを生成し、L2スイッチ140に送信する。サービスネットワーク内のイーサネットパケットの宛先MACアドレスには、ロードバランサ150のMACアドレス1410が用いられ、サービスネットワーク内のイーサネットパケットの送信元MACアドレスにはVM120−3の仮想MACアドレス123−3が用いられる。
L2スイッチ140は、前述したパケットを受信すると、当該パケットをポートZZから送信する。L2スイッチ140のポートZZから送信されたパケットは、ロードバランサ150が受信する。
なお、L2スイッチ140は、図15に示すようなMACテーブル1500を用いて、受信したパケットを転送する。
図15は、本発明の実施例におけるMACテーブル1500の一例を示す説明図である。図15では、VM120−3から送信されたGratuitous ARPパケットが転送された後のMACテーブル1500を示している。
MACテーブル1500は、L2スイッチポート1501及びMACアドレス1502を含む。L2スイッチポート1501は、L2スイッチ140が備えるポートの識別情報を格納する。MACアドレス1502は、L2スイッチ140のポートを介して接続される装置のMACアドレスを格納する。
例えば、L2スイッチ140は、VM120−3に割り当てられた仮想MACアドレス123−3を宛先とするパケットを受信した場合、MACテーブル1500を参照して、「ポートYY」からサーバ110−2に当該パケットを転送する。これによって、VM120−3は、パケットを受信することができる。
なお、図15に示すように、VM120−1及びVM120−2に割り当てられた仮想MACアドレス123も、図13に示すような構造となっている。
また、VM120が削除される場合、MACテーブル1500には、削除対象のVM120の仮想MACアドレス123として、制御フィールド205が「Set」である仮想MACアドレス123と、制御フィールド205が「Del」である仮想MACアドレス123とが格納される。この場合、L2スイッチ140は、所定の期間経過後に、MACテーブル1500から当該エントリは自動的に削除する。
ここで、サービスネットワーク内イーサネットパケット180について説明する。
図16は、本発明の実施例におけるサービスネットワーク内イーサネットパケット180の一例を示す説明図である。
サービスネットワーク内イーサネットパケット180は、ペイロード171、MACヘッダ172及び仮想MACヘッダ181から構成される。
ペイロード171は、具体的なデータが格納されるフィールドである。MACヘッダ172は、クライアントネットワーク内のクライアント計算機160のMACアドレスが格納されるフィールドである。
仮想MACヘッダ181は、サービスネットワーク内で用いられるヘッダ情報であり、ロードバランサMACアドレス1701及び仮想MACアドレス1702から構成される。後述するように、仮想MACヘッダ181は、ロードバランサ150によって付与され、また、削除される。
図17A及び図17Bは、本発明の実施例におけるロードバランサ150が実行する処理の詳細を説明するフローチャートである。
ロードバランサ150は、パケットを受信すると(ステップS1701)、当該パケットがサービスネットワークから送信されたARPパケットであるか否かを判定する(ステップS1702)。具体的には、以下のような処理が実行される。
ロードバランサ150は、受信したパケットに仮想MACヘッダ181が付与されているか否かを判定する。受信したパケットに仮想MACヘッダ181が付与されている場合、ロードバランサ150は、さらに、当該パケットのMACヘッダ172を参照して、ARPプロトコルの制御コードが含まれるか否かを判定する。
受信したパケットのMACヘッダ172にARPプロトコルの制御コードが含まれる場合、ロードバランサ150は、受信したパケットがサービスネットワークから送信されたARPパケットであると判定する。
受信したイーサネットパケットがサービスネットワークから送信されたARPパケットであると判定された場合、ロードバランサ150は、当該ARPパケットからクライアント番号及びサービス番号を取得する(ステップS1703)。
具体的には、ロードバランサ150は、仮想MACヘッダ181の仮想MACアドレス1704から、クライアント番号フィールド201及びサービス種別フィールド202の値を取得する。
ロードバランサ150は、分散管理テーブル424を参照して、クライアント番号フィールド201及びサービス種別フィールド202の値に一致するエントリを検索する(ステップS1704)。
具体的には、ロードバランサ150は、クライアント番号1003及びサービス番号1004が取得されたクライアント番号フィールド201及びサービス種別フィールド202の値と一致するエントリを検索する。
ロードバランサ150は、仮想MACヘッダ181の仮想MACアドレス1704を参照し、制御フィールド205に「Set」が設定されているか否かを判定する(ステップS1705)。
制御フィールド205に「Set」が設定されていると判定された場合、ロードバランサ150は、分散管理テーブル424を更新し(ステップS1706)、処理を終了する。具体的には、以下のような処理が実行される。
ロードバランサ150は、ステップS1704において検索されたエントリのVM情報1005に新たな列情報を追加する。さらに、ロードバランサ150は、追加された列情報のVM番号1011にVM番号フィールド204に設定された値を格納し、重み情報1012に重み情報フィールド203に設定された値を格納する。
制御フィールド205に「Set」が設定されていないと判定された場合、すなわち、制御フィールド205に「Del」が設定されていると判定された場合、ロードバランサ150は、分散管理テーブル424を更新し(ステップS1707)、処理を終了する。具体的には、以下のような処理が実行される。
ロードバランサ150は、受信したパケットの仮想MACヘッダ181を参照して、クライアント番号フィールド201、サービス種別フィールド202及びVM番号フィールド204に設定された値を取得する。ロードバランサ150は、分散管理テーブル424を参照して、クライアント番号フィールド201及びサービス種別フィールド202の値に一致するエントリを検索する。
さらに、ロードバランサ150は、検索されたエントリのVM情報1005を参照して、VM番号1011が取得されたVM番号フィールド204の値と一致する列情報を検索する。ロードバランサ150は、検索された列情報を削除する。
受信したパケットがサービスネットワークから送信されたARPパケットではないと判定された場合、ロードバランサ150は、データパケットを受信したものとして、以下の処理を実行する。
まず、ロードバランサ150は、受信したパケットがクライアントネットワークから送信されたパケットであるか否かを判定する(ステップS1751)。
具体的には、ロードバランサ150は、受信したパケットに仮想MACヘッダ181が付与されているか否かを判定する。受信したパケットに仮想MACヘッダ181が付与されていない場合、当該パケットはクライアントネットワークから送信されたパケットであると判定される。
受信したパケットがクライアントネットワークから送信されたパケットであると判定された場合、ロードバランサ150は、当該パケットからソースIPアドレス及びVLAN番号を取得する(ステップS1752)。
具体的には、ロードバランサ150は、受信したパケットのMACヘッダ172を解析することによって、ソースIPアドレス及びVLAN番号を取得する。
ロードバランサ150は、分散管理テーブル424から、取得されたソースIPアドレス及びVLAN番号と一致するエントリを検索する(ステップS1753)。
具体的には、ロードバランサ150は、ソースIPアドレス1001及びVLAN番号1002が、取得されたソースIPアドレス及びVLAN番号と一致するエントリを検索する。
ロードバランサ150は、検索されたエントリのVM情報1005に複数のVM120の情報が存在するか否かを判定する(ステップS1754)。
具体的には、検索されたエントリのVM情報1005に、VM120の列情報が複数含まれるか否かを判定する。当該VM情報1005に、VM120の列情報が複数含まれる場合、検索されたエントリにVM情報1005に複数のVM120の情報が存在すると判定される。
検索されたエントリのVM情報1005に一つのVM120の列情報のみ存在すると判定された場合、ロードバランサ150は、転送先のVM番号を「1」に決定して(ステップS1758)、ステップS1756に進む。
検索されたエントリにVM情報1005に複数のVM120の情報が存在すると判定された場合、ロードバランサ150は、VM情報1005から、全てのVM120の重み情報1012を取得し、取得された重み情報1012に基づいて、受信したパケットの転送先のVM120を決定する(ステップS1755)。
例えば、ロードバランサ150は、取得された重み情報1012に基づいて、各VM120へ転送するパケットの配分を算出し、算出されたパケットの配分及び過去の転送履歴に基づいて、受信したパケットを転送するVM120を決定する。なお、本発明は、前述したVM120の決定方法に限定されず、その他の方法を用いてもよい。
ロードバランサ150は、仮想MACヘッダ181を生成する(ステップS1708)。具体的には、以下のような処理が実行される。
ロードバランサ150は、仮想MACヘッダ181のロードバランサMACアドレス1701に自身のMACアドレスを設定する。
また、ロードバランサ150は、ステップS1705において検索されたエントリからクライアント番号1003、サービス番号1004を取得する。さらに、ロードバランサ150は、当該エントリのVM情報1005からパケットの転送先に決定されたVM120に対応する列情報のVM番号1011及び重み情報1012を取得する。
ロードバランサ150は、取得されたクライアント番号1003、サービス番号1004、VM番号1011及び重み情報1012に基づいて、仮想MACアドレス123を生成し、仮想MACアドレス1702に生成された仮想MACアドレス123を設定する。なお、制御フィールド205には「Set」が格納される。
例えば、受信したパケットの転送先がVM120−3である場合、図13に示すような仮想MACアドレスが生成される。
以上のようにして、仮想MACヘッダ181が生成される。
次に、ロードバランサ150は、受信したパケットをサービスネットワーク内イーサネットパケット180にカプセル化し、当該パケットを送信する(ステップS1709)。その後、ロードバランサ150は、処理を終了する。
具体的には、ロードバランサ150は、受信したパケットに生成された仮想MACヘッダ181を付与することによって、サービスネットワーク内イーサネットパケット180にカプセル化する。
L2スイッチ140は、ロードバランサ150から送信されたパケットから宛先MACアドレスを取得し、取得した宛先MACアドレスに基づいてMACテーブル1500を参照する。L2スイッチ140は、当該参照の結果から、受信したパケットの送信先が、ポートYYを介して接続されるVM120−3であることが分かる。L2スイッチ140のポートYYから送信されたパケットは、サーバ110−2の仮想化ソフトウェア130−2によって受信され、VM120−3に転送される。
ステップS1751において、受信したパケットがクライアントネットワークから送信されたパケットでない、すなわち、受信したパケットがサービスネットワークから送信されたパケットであると判定された場合、ロードバランサ150は、当該パケットの仮想MACヘッダ181を削除した後、クライアントネットワークに送信する(ステップS1759)。
本発明の一実施例によれば、クライアント計算機160から送信される処理パケットの増減に応じて、VM120を自動的に追加又は削除する場合に、振り分けるための情報が含まれる仮想MACアドレス123をロードバランサ150に通知することができる。これによって、ロードバランサ150は、即時かつ柔軟に、クライアント計算機160から送信されたパケットを振り分けることができる。
なお、本実施例では、サービスネットワーク内のパケット転送にL2スイッチ140を用いた構成であったが、本発明はこれに限定されない。パケットを転送する装置として、L2スイッチ140の代わりに、L3スイッチを用いても同様の効果を奏することが可能である。
なお、本実施例では、VM管理計算機100を一つのハードウェアとして実現したが、本発明はこれに限定されず、ソフトウェアとして実装することも可能である。この場合、例えば、一つのサーバ110が当該ソフトウェアを実行することによって、VM管理計算機100と同様の機能を提供することが可能である。
なお、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体(例えば、非一時的な記憶媒体)に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
さらに、本実施例では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
100 VM管理計算機
110 サーバ
120 VM
121 アプリケーション
122 ゲストOS
123 仮想MACアドレス
130 仮想化ソフトウェア
140 L2スイッチ
150 ロードバランサ
160 クライアント計算機
170 イーサネットパケット
171 ペイロード
172 MACヘッダ
180 サービスネットワーク内イーサネットパケット
181 仮想MACヘッダ
201 クライアント番号フィールド
202 サービス種別フィールド
203 重み情報フィールド
204 VM番号フィールド
205 制御フィールド
310 プロセッサ
320 メモリ
321 プロセッサ負荷監視部
322 仮想MACアドレス生成部
323 仮想化ソフトウェア通信部
324 プロセッサ負荷監視テーブル
325 クライアント管理テーブル
326 サービス種別管理テーブル
327 物理サーバ管理テーブル
328 VM管理テーブル
330 ネットワークインタフェース
410 プロセッサ
420 メモリ
421 ARPパケット受信部
422 データパケットヘッダ検査部
423 データパケットヘッダ生成部
424 分散管理テーブル
430 ネットワークインタフェース

Claims (8)

  1. クライアント計算機に一つ以上のサービスを提供するサーバ及び前記クライアント計算機又は前記サーバから送信されるパケットを転送するロードバランサを備える計算機システムであって、
    前記サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、
    前記ロードバランサは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、
    前記サーバ上では、一つ以上の仮想計算機が稼働し、
    前記仮想計算機は、前記仮想計算機に割り当てられる仮想MACアドレスを含むパケットを送信することによって、他の前記仮想計算機と通信し、
    前記クライアント計算機には、サービスを提供する前記仮想計算機が一つ以上割り当てられ、
    前記計算機システムは、
    前記クライアント計算機毎に、前記仮想計算機の負荷を監視し、前記監視の結果に基づいて、前記仮想計算機の追加又は削除を指示する管理部を備え、
    前記管理部は、
    前記サーバの識別情報、及び前記サーバに対する前記クライアント計算機から送信されたパケットの転送比率を表す重み係数が対応づけられたエントリを一つ以上含むサーバ管理情報を保持し、
    前記監視の結果に基づいて、第1のクライアント計算機に第1のサービスを提供する仮想計算機を追加する必要があると判定された場合、前記第1のサービスを提供する新たな仮想計算機を追加する前記サーバを決定し、
    前記サーバ管理情報を参照して、前記決定されたサーバの識別情報に対応するエントリを検索して、前記検索されたエントリから前記重み係数を取得し、
    前記第1のクライアント計算機の識別情報、前記第1のサービスの識別情報、及び前記取得された重み係数を含む前記仮想MACアドレスを生成し、
    前記決定されたサーバに、前記生成された仮想MACアドレスを含む前記新たな仮想計算機の生成指示を送信することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記仮想MACアドレスは、さらに、前記新たな仮想計算機の追加後の前記第1のサービスを提供する前記仮想計算機の総数を示す第1の番号情報を含み、
    前記ロードバランサは、前記クライアント計算機から送信された前記パケットを前記仮想計算機に転送するために用いる分散管理情報を保持し、
    前記分散管理情報は、前記クライアント計算機におけるネットワークの識別情報、前記クライアント計算機の識別情報、前記クライアント計算機に提供されるサービスの識別情報、及び前記クライアント計算機に割り当てられた前記仮想計算機に関する仮想計算機情報が対応づけられたエントリを一つ以上含み、
    前記仮想計算機情報は、前記サービスを提供する前記仮想計算機の総数を示す第2の番号情報、及び前記重み係数が対応づけられた列情報を一つ以上含み、
    前記ロードバランサは、
    前記新たな仮想計算機から送信された前記パケットを受信した場合、前記受信したパケットに含まれる前記仮想MACアドレスから、前記第1のクライアント計算機の識別情報、及び前記第1のサービスの識別情報を取得し、
    前記分散管理情報を参照して、前記取得された第1のクライアント計算機の識別情報及び前記取得された第1のサービスの識別情報に対応するエントリを検索し、
    前記検索されたエントリの前記仮想計算機情報に、前記第2の番号情報として前記仮想MACアドレスに含まれる前記第1の番号情報が設定され、かつ、前記仮想MACアドレスに含まれる前記重み係数が設定された前記列情報を追加することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記ロードバランサは、
    前記クライアント計算機から送信された前記パケットを受信した場合、当該パケットを解析して、前記クライアント計算機におけるネットワークの識別情報を取得し、
    前記分散管理情報を参照して、前記取得されたクライアント計算機におけるネットワークの識別情報に対応するエントリを検索し、
    前記検索されたエントリに含まれる全ての前記列情報から取得された前記重み係数を用いて、前記受信したパケットを転送する前記仮想計算機を決定し、
    前記決定された仮想計算機の前記仮想MACアドレス及び前記ロードバランサのMACアドレスを含む仮想MACヘッダを生成し、
    前記受信したパケットに前記生成された仮想MACヘッダが付与し、
    前記決定された仮想計算機に、前記仮想MACヘッダが付与されたパケットを転送することを特徴とする計算機システム。
  4. 請求項2又は請求項3に記載の計算機システムであって、
    前記ロードバランサが、
    前記第1のサービスを提供する前記仮想計算機から当該仮想計算機の削除を示すパケットを受信した場合、前記受信したパケットに含まれる前記仮想MACアドレスから、前記第1のクライアント計算機の識別情報、及び前記第1のサービスの識別情報を取得し、
    前記分散管理情報を参照して、前記取得された第1のクライアント計算機の識別情報及び前記取得された第1のサービスの識別情報に対応するエントリを検索し、
    前記検索されたエントリの前記仮想計算機情報に含まれる前記列情報のうち、前記第2の番号情報が前記仮想MACアドレスに含まれる前記第1の番号情報に一致する前記列情報を削除することを特徴とする計算機システム。
  5. クライアント計算機に一つ以上のサービスを提供するサーバ及び前記クライアント計算機又は前記サーバから送信されるパケットを転送するロードバランサを備える計算機システムにおけるパケット転送方法であって、
    前記サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ及び前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、
    前記ロードバランサは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ及び前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、
    前記サーバ上では、一つ以上の仮想計算機が稼働し、
    前記仮想計算機は、前記仮想計算機に割り当てられる仮想MACアドレスを含むパケットを送信することによって、他の前記仮想計算機と通信し、
    前記クライアント計算機には、サービスを提供する前記仮想計算機が一つ以上割り当てられ、
    前記計算機システムは、
    前記クライアント計算機毎に、前記仮想計算機の負荷を監視し、前記監視の結果に基づいて、前記仮想計算機の追加又は削除を指示する管理部を備え、
    前記管理部は、
    前記サーバの識別情報、及び前記サーバに対する前記クライアント計算機から送信されたパケットの転送比率を表す重み係数が対応づけられたエントリを一つ以上含むサーバ管理情報を保持し、
    前記方法は、
    前記管理部が、前記監視の結果に基づいて、第1のクライアント計算機に第1のサービスを提供する仮想計算機を追加する必要があると判定された場合、前記第1のサービスを提供する新たな仮想計算機を追加する前記サーバを決定するステップと、
    前記管理部が、前記サーバ管理情報を参照して、前記決定されたサーバの識別情報に対応するエントリを検索して、前記検索されたエントリから前記重み係数を取得するステップと、
    前記管理部が、前記第1のクライアント計算機の識別情報、前記第1のサービスの識別情報、及び前記取得された重み係数を含む前記仮想MACアドレスを生成するステップと、
    前記管理部が、前記決定されたサーバに、前記生成された仮想MACアドレスを含む前記新たな仮想計算機の生成指示を送信するステップと、
    を含むことを特徴とするパケット転送方法。
  6. 請求項5に記載のパケット転送方法であって、
    前記仮想MACアドレスは、さらに、前記新たな仮想計算機の追加後の前記第1のサービスを提供する前記仮想計算機の総数を示す第1の番号情報を含み、
    前記ロードバランサは、前記クライアント計算機から送信された前記パケットを前記仮想計算機に転送するために用いる分散管理情報を保持し、
    前記分散管理情報は、前記クライアント計算機におけるネットワークの識別情報、前記クライアント計算機の識別情報、前記クライアント計算機に提供されるサービスの識別情報、及び前記クライアント計算機に割り当てられた前記仮想計算機に関する仮想計算機情報が対応づけられたエントリを一つ以上含み、
    前記仮想計算機情報は、前記サービスを提供する前記仮想計算機の総数を示す第2の番号情報、及び前記重み係数が対応づけられた列情報を一つ以上含み、
    前記方法は、
    前記ロードバランサが、前記新たな仮想計算機から送信された前記パケットを受信した場合、前記受信したパケットに含まれる前記仮想MACアドレスから、前記第1のクライアント計算機の識別情報、及び前記第1のサービスの識別情報を取得するステップと、
    前記ロードバランサが、前記分散管理情報を参照して、前記取得された第1のクライアント計算機の識別情報及び前記取得された第1のサービスの識別情報に対応するエントリを検索するステップと、
    前記ロードバランサが、前記検索されたエントリの前記仮想計算機情報に、前記第2の番号情報として前記仮想MACアドレスに含まれる前記第1の番号情報が設定され、かつ、前記仮想MACアドレスに含まれる前記重み係数が設定された前記列情報を追加するステップと、
    を含むことを特徴とするパケット転送方法。
  7. 請求項6に記載のパケット転送方法であって、
    前記方法は、
    前記ロードバランサが、前記クライアント計算機から送信された前記パケットを受信した場合、当該パケットを解析して、前記クライアント計算機におけるネットワークの識別情報を取得するステップと、
    前記ロードバランサが、前記分散管理情報を参照して、前記取得されたクライアント計算機におけるネットワークの識別情報に対応するエントリを検索するステップと、
    前記ロードバランサが、前記検索されたエントリに含まれる全ての前記列情報から取得された前記重み係数を用いて、前記受信したパケットを転送する前記仮想計算機を決定するステップと、
    前記ロードバランサが、前記決定された仮想計算機の前記仮想MACアドレス及び前記ロードバランサのMACアドレスを含む仮想MACヘッダを生成するステップと、
    前記ロードバランサが、前記受信したパケットに前記生成された仮想MACヘッダが付与するステップと、
    前記ロードバランサが、前記決定された仮想計算機に、前記仮想MACヘッダが付与されたパケットを転送するステップと、
    を含むことを特徴とするパケット転送方法。
  8. 請求項6又は請求項7に記載のパケット転送方法であって、
    前記方法は、
    前記ロードバランサが、前記第1のサービスを提供する前記仮想計算機から当該仮想計算機の削除を示すパケットを受信した場合、前記受信したパケットに含まれる前記仮想MACアドレスから、前記第1のクライアント計算機の識別情報、及び前記第1のサービスの識別情報を取得するステップと、
    前記ロードバランサが、前記分散管理情報を参照して、前記取得された第1のクライアント計算機の識別情報及び前記取得された第1のサービスの識別情報に対応するエントリを検索するステップと、
    前記ロードバランサが、前記検索されたエントリの前記仮想計算機情報に含まれる前記列情報のうち、前記第2の番号情報が前記仮想MACアドレスに含まれる前記第1の番号情報に一致する前記列情報を削除するステップと、
    を含むことを特徴とするパケット転送方法。
JP2012191350A 2012-08-31 2012-08-31 計算機システム及びパケット転送方法 Expired - Fee Related JP5782641B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012191350A JP5782641B2 (ja) 2012-08-31 2012-08-31 計算機システム及びパケット転送方法
US13/785,064 US20140067914A1 (en) 2012-08-31 2013-03-05 Computer system and packet transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012191350A JP5782641B2 (ja) 2012-08-31 2012-08-31 計算機システム及びパケット転送方法

Publications (2)

Publication Number Publication Date
JP2014048900A JP2014048900A (ja) 2014-03-17
JP5782641B2 true JP5782641B2 (ja) 2015-09-24

Family

ID=50188970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012191350A Expired - Fee Related JP5782641B2 (ja) 2012-08-31 2012-08-31 計算機システム及びパケット転送方法

Country Status (2)

Country Link
US (1) US20140067914A1 (ja)
JP (1) JP5782641B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102209525B1 (ko) * 2014-01-06 2021-01-29 삼성전자주식회사 마이크로 서버, mac 주소 할당 방법 및 컴퓨터 판독가능 기록매체
US9501307B2 (en) * 2014-09-26 2016-11-22 Comcast Cable Communications, Llc Systems and methods for providing availability to resources
JP6422293B2 (ja) * 2014-10-06 2018-11-14 株式会社Nttドコモ 通信システム
JP2016144144A (ja) * 2015-02-04 2016-08-08 日本電信電話株式会社 負荷分散システム及び負荷分散方法
US10412020B2 (en) * 2015-04-30 2019-09-10 Amazon Technologies, Inc. Background processes in update load balancers of an auto scaling group
US10038640B2 (en) 2015-04-30 2018-07-31 Amazon Technologies, Inc. Managing state for updates to load balancers of an auto scaling group
US10341426B2 (en) 2015-04-30 2019-07-02 Amazon Technologies, Inc. Managing load balancers associated with auto-scaling groups
JP2017194795A (ja) * 2016-04-19 2017-10-26 株式会社ワンビジョン 健康管理システム、健康状態計測装置、健康管理方法、プログラム及び記録媒体
US11061706B2 (en) * 2017-01-06 2021-07-13 Cisco Technology, Inc. Method of tracking usage of virtual machines
JP6693925B2 (ja) * 2017-10-02 2020-05-13 日本電信電話株式会社 サーバ、通信制御システム、および、通信制御方法
JP6496860B2 (ja) * 2018-03-30 2019-04-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 監視システム、監視方法および監視プログラム
US10579432B1 (en) * 2018-08-13 2020-03-03 Twitter, Inc. Load balancing deterministically-subsetted processing resources using fractional loads
US10715449B2 (en) * 2018-08-24 2020-07-14 Dell Products L.P. Layer 2 load balancing system
CN110401657B (zh) 2019-07-24 2020-09-25 网宿科技股份有限公司 一种访问日志的处理方法及装置
CN112799849B (zh) * 2021-02-18 2024-03-19 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070201490A1 (en) * 2005-07-13 2007-08-30 Mahamuni Atul B System and method for implementing ethernet MAC address translation
JP4961146B2 (ja) * 2006-02-20 2012-06-27 株式会社日立製作所 負荷分散方法およびシステム
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
JP5717164B2 (ja) * 2009-10-07 2015-05-13 日本電気株式会社 コンピュータシステム、及びコンピュータシステムのメンテナンス方法
JP2011095871A (ja) * 2009-10-28 2011-05-12 Hitachi Ltd プログラム配布方法及び運用管理装置
US8526435B2 (en) * 2010-03-19 2013-09-03 Telefonaktiebolaget L M Ericsson (Publ) Packet node for applying service path routing at the MAC layer
US8407366B2 (en) * 2010-05-14 2013-03-26 Microsoft Corporation Interconnecting members of a virtual network
US9313088B2 (en) * 2010-09-09 2016-04-12 Nec Corporation Network system and network managing method
US8676980B2 (en) * 2011-03-22 2014-03-18 Cisco Technology, Inc. Distributed load balancer in a virtual machine environment
EP2693696A4 (en) * 2011-03-31 2014-08-27 Nec Corp COMPUTER SYSTEM AND COMMUNICATION METHOD
US8792502B2 (en) * 2012-08-07 2014-07-29 Cisco Technology, Inc. Duplicate MAC address detection

Also Published As

Publication number Publication date
JP2014048900A (ja) 2014-03-17
US20140067914A1 (en) 2014-03-06

Similar Documents

Publication Publication Date Title
JP5782641B2 (ja) 計算機システム及びパケット転送方法
US10630710B2 (en) Systems and methods of stateless processing in a fault-tolerant microservice environment
US10142226B1 (en) Direct network connectivity with scalable forwarding and routing fleets
US10659496B2 (en) Insertion and configuration of interface microservices based on security policy changes
US8386825B2 (en) Method and system for power management in a virtual machine environment without disrupting network connectivity
US7941539B2 (en) Method and system for creating a virtual router in a blade chassis to maintain connectivity
US20190273718A1 (en) Intercepting network traffic routed by virtual switches for selective security processing
US10666617B2 (en) Intercepting network traffic routed by virtual switches for selective security processing
US20180103064A1 (en) Systems and methods for dynamically deploying security profiles
US9264337B2 (en) Service monitoring system, service monitoring method, and non-transitory computer-readable recording medium
WO2015092847A1 (ja) コンピュータシステムおよびその処理方法
Xie et al. Supporting seamless virtual machine migration via named data networking in cloud data center
JP2015156168A (ja) データセンタのリソース配分システム及びデータセンタのリソース配分方法
US20090190590A1 (en) Server Machine and Network Processing Method
JP5364070B2 (ja) 仮想サーバ管理装置
JP6540063B2 (ja) 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム
JP2016184370A (ja) 監視システム、監視装置および監視方法
US10447716B2 (en) Systems and methods for processing hypervisor-generated event data
US10931565B2 (en) Multi-VRF and multi-service insertion on edge gateway virtual machines
JP6462500B2 (ja) ネットワークシステム
KR20150095015A (ko) 가상 서버를 관리하는 장치 및 이를 이용하는 부하 분산 방법
US10135695B1 (en) System and method for managing a remote device
JP2018088650A (ja) 情報処理装置、通信制御方法及び通信制御プログラム
JP2017103703A (ja) ネットワークシステム、制御装置、及びプログラム
WO2018098767A1 (en) Device and method for performing network interface bonding

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150623

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150626

R150 Certificate of patent or registration of utility model

Ref document number: 5782641

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees