JP2012528551A - レイヤー2ドメインにわたる負荷分散 - Google Patents

レイヤー2ドメインにわたる負荷分散 Download PDF

Info

Publication number
JP2012528551A
JP2012528551A JP2012513343A JP2012513343A JP2012528551A JP 2012528551 A JP2012528551 A JP 2012528551A JP 2012513343 A JP2012513343 A JP 2012513343A JP 2012513343 A JP2012513343 A JP 2012513343A JP 2012528551 A JP2012528551 A JP 2012528551A
Authority
JP
Japan
Prior art keywords
packet
mux
load balancing
individual
packets
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.)
Granted
Application number
JP2012513343A
Other languages
English (en)
Other versions
JP2012528551A5 (ja
JP5960050B2 (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012528551A publication Critical patent/JP2012528551A/ja
Publication of JP2012528551A5 publication Critical patent/JP2012528551A5/ja
Application granted granted Critical
Publication of JP5960050B2 publication Critical patent/JP5960050B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • 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/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • 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/1027Persistence of sessions during load balancing
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本出願は、ネットワーク構成に関し、具体的にはスケーラブル負荷分散ネットワーク構成に関する。一実施形態は、スケーラブル負荷分散システムに結合された外部クライアントを含む。スケーラブル負荷分散システムは、外部クライアントからのパケットフローの個々の着信パケットをカプセル化するように構成された負荷分散レイヤーを含む。負荷分散レイヤーを構成して、さらに、着信パケットをシステム上のターゲットデバイスへとルーティングする。ターゲットデバイスは、複数のIPサブネットにまたがることができる。着信パケットは、個々のターゲットデバイスに達するまでに、負荷分散レイヤーの1つ又は複数の負荷分散装置を通過することができる。個々のターゲットデバイスを構成して、1つ又は複数の負荷分散装置のいずれも通過することなく、パケットフローの少なくとも一部の発信パケットを外部クライアントへとルーティングすることができる。

Description

(背景技術)
負荷分散装置は、要求を処理することができる一連のサーバーにわたって一連の要求を
分配することができる、ネットワークインフラストラクチャの重要な一要素であり得る。従来の負荷分散装置は、それぞれが専門ハードウェアである一対のデバイスを含むことができる。この専門ハードウェアを使用しているため、従来の負荷分散装置は多大なコストがかかる傾向にある。別の欠点は、スケールアップ戦略を使用していることである。単一の対の負荷分散装置が同時に扱うことができる要求の数は、ハードウェアの容量によって制限される。より大きい容量のハードウェアを含むより高性能の負荷分散装置を取得して
、追加の要求を扱う。DSR(Direct Server Return)の最適化は、ネットワーク中でのトラフィックのボトルネックを緩和するのに有用であり得る。しかし、従来の負荷分散装置の欠点は、この技術が一般的に、ネットワークの単一の仮想VLAN(Virtual Local Area Network)に限定されることである。
本出願は、ネットワーク構成に関し、具体的にはスケーラブル負荷分散ネットワーク構成に関する。一実施形態は、スケーラブル負荷分散システムに結合された外部クライアントを含む。スケーラブル負荷分散システムは、外部クライアントからのパケットフローの個々の着信パケットをカプセル化するように構成された負荷分散レイヤーを含む。負荷分散レイヤーを構成して、さらに、着信パケットをシステム上のターゲットデバイスへとルーティングする。ターゲットデバイスは、複数のIPサブネットにまたがることができる。着信パケットは、個々のターゲットデバイスに達するまでに、負荷分散レイヤーの1つ又は複数の負荷分散装置を通過することができる。個々のターゲットデバイスを構成して、1つ又は複数の負荷分散装置のいずれも通過することなく、パケットフローの少なくとも一部の発信パケットを外部クライアントへとルーティングすることができる。
添付図面は、本出願において説明される概念の実施形態を示す。図示される実施形態の特徴は、以下の記載を添付図面と併せて参照することにより、より容易に理解することができる。複数の図面における類似の参照番号は、可能な限り、類似の要素を示すのに使用される。さらに、各参照番号の左端の数字は、その参照番号が最初に言及される図面及びそれに関連する考察を表す。
ある実施形態による本発明のある概念を採用することができるネットワーク環境を示す図である。 他の実施形態による本発明のある概念を採用することができるネットワーク環境を示す図である。 他の実施形態による本発明のある概念を採用することができるネットワーク環境を示す図である。 他の実施形態による本発明のある概念を採用することができるネットワーク環境を示す図である。 他の実施形態による本発明のある概念を採用することができるネットワーク環境を示す図である。 他の実施形態による本発明のある概念を採用することができるスケーラブル負荷分散アーキテクチャを示す図である。 本発明の概念のある実施形態による、図1〜6に示されるある構成要素を示す図である。 本発明の概念の他の実施形態による、図1〜6に示されるある構成要素を示す図である。 ある実施形態による本発明のある概念に適応したハッシュマッピング技術を示す図である。 ある実施形態によるスケーラブル負荷分散概念のいくつかを実現することができるフローチャートである。 他の実施形態によるスケーラブル負荷分散概念のいくつかを実現することができるフローチャートである。
(序論/概要)
ネットワーク負荷分散装置は、着信パケットをセッションごとに分類し、個々のセッションに関するパケットトラフィックを選択された資源(例えば、サーバー)に分配することによって、ネットワーク中の資源の利用の強化を支援することができる。負荷分散装置におけるパケットトラフィックのボトルネック化の緩和を支援するため、DSR(Direct Server Return)などの最適化技術を利用することができる。DSRにより、ネットワークからの発信パケットトラフィックは、着信パケットトラフィックと同様に負荷分散装置を通過するのではなく、それを迂回することができる。しかし、この技術は、一般的に、ネットワークの単一の仮想VLAN(Virtual Local Area Network)に限定される。対照的に、図1は、本発明の概念のある高次図を示す。
(ネットワークの実施例)
図1は、外部クライアント102がインターネット106を介してスケーラブル負荷分散システム104と通信することができるネットワーク環境100を示す。負荷分散又は拡散は、ネットワークデバイスが一連の有効な次ホップにわたってトラフィックを拡散することができる任意の適切な手段と見なすことができる。
スケーラブル負荷分散システム104は、110で示される本質的に無制限の数のターゲットデバイスを支援することができるという点でスケーラブルである、負荷分散機能レイヤー108を含むことができる。この場合、「本質的に無制限の」という用語は、概して、スケーラブル負荷分散システム104を制御する実体が望ましいと考える数のターゲットデバイスを意味することができる。例えば、ターゲットデバイスの数は、数十、数百、数千、又はそれ以上とすることができる。負荷分散機能レイヤー108を、外部クライアント102からの通信が通過し、矢印112によって示されるように、負荷分散機能によって個々のターゲットデバイスに分配することができるように構成する。しかし、矢印114によって表される戻り通信は、外部クライアント102へと戻る過程で負荷分散機能レイヤー108を通過する必要がない。
簡潔には、ある実施形態は、レイヤー2ドメイン間パケット配信技術を利用して、負荷分散機能108を達成することができる。場合によっては、これらのレイヤー2ドメイン間パケット配信技術により、DSRなどの負荷分散最適化技術を複数のIPサブネット間で使用し、それによって本質的に無制限のターゲットデバイス110を使用できるようにすることができる。スケーラビリティ及び他の理由から、インターネットプロトコルを使用するネットワークは、IPアドレス中の共通のビットプレフィックスを共有するホストをIPサブネットへと分割することができる。一般的に、単一のサブネットの範囲は単一のVLANの範囲に制限される。異なるサブネットからのIP(Internet Protocol)アドレスを有するターゲットデバイス110を使用できるようにすることで、負荷分散装置の従来の設計における制限を大幅に排除することができる。個々のIPサブネットは、スケーラブル負荷分散システム104のいくつかのレイヤー2ドメインのうちの1つと関連付けることができる。1つ又は複数の実施形態では、パケットフローの個々の着信パケットは、例えばIP−in−IPカプセル化を使用してカプセル化することができる。これは、例えば、負荷分散機能108のマルチプレクサ(MUX又はMux)によって得ることができる。
カプセル化された着信パケットは、個々のターゲットデバイスに達する前に負荷分散機能108を通過させることによって、スケーラブル負荷分散システム104上の資源又はターゲットデバイス110へとルーティングすることができる。少なくともある実施形態では、負荷分散機能は、DSRなどの最適化技術を使用して、負荷分散機能におけるパケットフローのトラフィックを低減/最小化することができる。ターゲットデバイス(例えば、サーバー)は、複数のIPサブネット又はVLANと関連付けることができ、したがって、それらの間にまたがることができる。個々のターゲットデバイスと関連付けられた構成要素(例えば、ソフトウェア構成要素)は、受信した着信パケットのカプセル化を解除(de−capsulate)してIP情報を取得することができる。次に、その結果(発信パケット)を、負荷分散機能108を通過させる(すなわち、そこを通す)ことなく、スケーラブル負荷分散システム104から外部クライアント102(例えば、着信パケットの1つ又は複数を受信するクライアント)へとルーティングすることができる。簡潔には、スケーラブル負荷分散システム104は、負荷拡散及び余計なアドレス解決プロトコル(G−ARP)と関連付けられた機能性を含む新たな機能性を可能にすることができる。これらの概念については以下でさらに展開する。
図2は、1つ又は複数の実施形態による別の実施例のネットワーク環境200を示す。ネットワーク環境200は、図1に関連して上述した概念を達成することができる実施例の構造又は構成要素を提供する。ネットワーク環境200は、インターネット106又は他のネットワークを介してスケーラブル負荷分散システム204と通信する外部クライアント202を含むことができる。スケーラブル負荷分散システム204は、一連のルーター206、一連の動的負荷分散装置(DLB)208、及び一連のターゲットデバイス210を含むことができる。この実施例では、一連のルーター206はルーター206(1)及び206(n)として明示する。一連のDLB 208は、マルチプレクサ(つまり、MUX)212(1)及び212(n)をそれぞれ含むDLB208(1)及び208(n)として明示する。一連のターゲットデバイス210は、アプリケーションサーバー214(1)及び214(n)、ならびにローカル負荷分散装置216(1)及び216(n)として明示する。
218で全体が示される点線の矢印は、スケーラブル負荷分散システム204の構成要素間の潜在的な通信パスを示す。太い実線の矢印220(1)及び220(2)は、ネットワーク環境200を通って外部クライアント202からアプリケーションサーバー214(1)に至る2つの潜在的なパケットフロー経路を示す。太い実線の矢印222は、アプリケーションサーバー214(1)から外部クライアント202への戻りパケットフローパスを表す。例えば、太線の矢印220(1)及び220(2)は、アプリケーションサーバー214(1)によって扱われる外部クライアント202からの検索クエリを表すことができる。そのため、アプリケーションサーバー214(1)は「ターゲットデバイス」と呼ぶことができる。ここでは、ターゲットデバイスはアプリケーションレベルのアプリケーションサーバーであるが、サンプルのターゲットデバイスは、それに加えて又はその代わりに、例えばアプリケーションレベルの負荷分散装置であるローカル負荷分散装置など、別のタイプのターゲットデバイスであり得ることを認識し、理解されたい。注目すべきは、着信パケットフロー(すなわち、太線の矢印220(1)及び220(2))は一連のDLB208の1つを通過するが、発信される戻りパケットフロー(すなわち、太線の矢印222)は必ずしも負荷分散装置を通過せず、その代わりにDLBを迂回するという点である。その結果、DLBにおけるパケットフロートラフィックのボトルネック化を低減又は最小化することができる。少なくともある実施形態では、これはDSR最適化技術を利用することによって得ることができる。実施例のDSR最適化技術については後述する。
少なくともある実施形態では、DLB208(1)及び208(n)の1つ又は複数に対するMUX212(1)及び/又は212(n)は、IP−in−IPカプセル化を使用して、パケットフローをターゲットデバイス210に送ることができる。特定のカプセル化の実施例が提供されるが、カプセル化は、パス又はパスの一部に沿ってパケットの配信をアドレスする任意の手段であることができる。それに加えて、ターゲットデバイスに対するカプセル化解除構成要素222(1)〜222(n)は、着信パケットフローの1つ又は複数のパケットのカプセル化を解除し、その結果(すなわち、発信パケットフロー)を外部クライアント202に返すことができる。一実施例では、カプセル化解除構成要素222(1)〜222(n)は、ターゲットデバイス210上において、ターゲットデバイスのプロセッサによって実行可能なソフトウェア構成要素として明示することができる。
この実施形態では、ルーター206は、等コストマルチパス(ECMP)を使用して、DLB208のMUX212(1)及び212(n)にまたがってパケット負荷を拡散させることができる。さらに、MUXは、ターゲットデバイス210に送られるパケットに対してコンシステントハッシングを提供することができる。本発明の実施形態のいくつかでは、DLB208及びターゲットデバイス210は、サーバー(1つ又は複数)などの単一のデバイス上に実装することができる。例えば、サーバーなどの単一の計算デバイスは、MUX212(1)を備えたDLB208(1)及びアプリケーションサーバー214(1)を含むことができる。他の実施形態では、DLBはターゲットデバイスとは別個のデバイス上にあることができる。
動作の際、この実施例におけるDLB208はそれぞれ、API(Application Program Interface)を提供して、VIP(Virtual IP)をVIP−DIPマップのDIP(Direct IP)マッピング(例えば、VIP→{Slot1,Slot2,Slot3,…,SlotN})に統合するように構成することができる。個々のスロットはDIPに割り当てられる。単一のDIPがこのVIP to DIPマップに複数回現れる場合がある。このVIP to DIPマップはVipMapと呼ぶことができる。
単一のVIPアドレスとDIPアドレスのリストとの間のマッピングとして上述してきたが、各アドレスはまた、ポート番号(例えば、ポート80などのTCP(伝送制御プロトコル)ポート)と関連付けられてもよいことが理解されるべきである。この一般化では、VIPアドレス、又はVIPアドレス及びポート番号を、DIPアドレス単独又はDIPアドレスとポート番号のどちらかであるエントリからなるリストにマッピングすることができる。単一のDIPアドレスが複数回、単独で、又は異なるポート番号とともに、若しくは同じポート番号とともに、任意の組み合わせで現れることがある。また、DIP及びDIPとポート番号の組み合わせの同一のリストをマッピングする、複数のVIP、又はVIPとポート番号の組み合わせが存在することがある。DLB208の個々のMUX212(1)〜212(n)はそれぞれ、個々の受信パケットフローのパケットからのヘッダー部をハッシュし、その個々のパケットをターゲットデバイス210と関連付けられた適切なIPアドレスに送るように構成することができる。例えば、実施例の受信パケットについて考察する。DLBの一方又は両方は、実施例の受信パケットをハッシュし、計算によってスロット(例えば、{Slot1,Slot2,Slot3,…,SlotN})を選択することができる。
Sloti=Nを法とするハッシュ(パケットヘッダフィールド)
ここで、NはVIP−DIPマップにおけるスロットの数である。次に、DLB(1つ又は複数)のMUX(1つ又は複数)は、実施例の着信パケットをSlot1に示されるアドレスに送ることができる。この設計の潜在的な利点は、どのDLB 208がパケットを処理するかに関わらず、同じフロー(例えば、すべてのパケットがIPソースアドレス、IP宛先アドレス、TCPソースポート、TCP宛先ポート、及びIPプロトコル番号の同じ5タプルを共有するTCPフロー)の一部であるパケットを同じターゲットデバイス210に転送できることである。
図3は、上述のネットワーク環境200の代替の実施例を提供する別の実施例のネットワーク環境300を示す。簡潔には、ネットワーク環境300はネットワーク環境200に類似している。しかし、ネットワーク環境300では、ローカル負荷分散装置(LLB)はDLBとターゲットデバイスとの間の介在レイヤーと見なすことができる。具体的には、ネットワーク環境300は、インターネット又は他のネットワーク306を介してスケーラブルネットワーク分散システム304と通信する外部クライアント302を含む。ネットワーク分散システム304は、ルーターレイヤー308、DLBレイヤー310、LLBレイヤー312、及びターゲットデバイスレイヤー314を含む。この場合、ターゲットデバイスレイヤー314はアプリケーションサーバー314(1)〜314(n)を含む。LLBレイヤー312はLLB312(1)〜312(n)を含む。
カプセル化解除構成要素316(1)〜316(n)はそれぞれ、LLB 312(1)〜312(n)上に駐在する。この構成では、外部クライアントの通信はDLBレイヤー310でカプセル化し、LLBレイヤー312で受信されるとカプセル化を解除することができる。次に、通信を適切なアプリケーションサーバー314(1)〜314(n)に転送することができる。外部クライアント302へのあらゆる戻り通信は、DLBレイヤー310及びLLBレイヤー312を迂回させることができる。DLBレイヤー及びLLBレイヤーを迂回させることで、潜在的なボトルネックを回避し、かつ/又は着信する通信のためにシステム資源を保存することができる。
図4は、スケーラブル負荷分散システムのネットワーク環境400における構成要素の別の高次の実施例を示す。この実施例では、これらの構成要素は、クエリジェネレーター402(1)〜402(n)、アクセスルーター(AR)404(1)〜404(n)、レイヤー2集合スイッチ406(1)〜406(n)、及びToR(Top of Rack)スイッチ408(1)〜408(n)を含む。ToRは、MUX(M)、ヘルスモニタ(H)、サーバー(S)、負荷分散装置(B)などの様々なサーバーラック構成要素と通信することができる。
特定のサービスに役立つVIP1に対しては、AR 404(1)〜404(n)を、同じコストを有するIIP(Intermediate IP)アドレス(IIP1〜IIPN)への次ホップをそれぞれ指すN個のルートで構成することができる。ARでは、ルートはすべてVIPに対する次ホップであってもよい。したがって、ARはN個のIIPアドレス内でトラフィックを均等に分配してもよい。これらのルートは、等しい距離空間を有するAR上の静的ルート(すなわち、等コスト静的ルート(図5に関連して後述する))として構成することができる。あるいは、これらのルートは、ARと適切なセッションをもつルーティングプロトコル(例えば、BGP (Border Gateway Protocol) 又はOSPF (Open Shortest Path First)スピーカーによって動的に確立することができる。それに加えて、ARはVIPをアナウンスするように構成することができる。IIPはMUX(M)をまたいで分割されてもよい。MUXは、構成されたIIPに対するARPリクエストに応答できるように、それ自体のIPアドレス(MIP)に加えて、1つ又は複数のIIPアドレスも有して構成されてもよい。したがって、個々のMUXは転送されたトラフィックの一部分を受信してもよい。パケットを受信する際、個々のMUXは、1つの活動中のDLBを選択してトラフィックを転送する、コンシステントハッシングアルゴリズムを実行することができる。
MUXは、同じ一連の活動中のDLBに基づいて同じコンシステントハッシングアルゴリズムを使用してもよい。したがって、どのMUXがAR 404(1)〜404(n)からパケットを受信しても、それを同じDLBに転送することができる。新しいDLBが追加されるか、又はプールから除去されると、それによって一部の局所的構成が変化する場合があるが、既存の接続は保存できることに留意されたい。
図5は、N個の等コスト静的ルートを構成するためのネットワーク環境500及びそれに関連する技術を示す。この例では、ネットワーク環境500は、アクセスルーター404(1)(図4にて言及)、IIP(1)〜IIP(n)、MUX212(1)〜212(n)、及びDLB208(1)〜208(n)(図2にて言及)を含む。ネットワーク環境500は、各VIPに対してN個の等コスト静的ルートを構成することができる。これらの等コスト静的ルートの次ホップは中間IP(IIP)アドレスIIP(1)〜IIP(n)を指す。これらのIIPアドレスは、VIP及びDIPプールとは無関係に別個のアドレスプールから取り出されてもよい。この実施形態はまた、トラフィックがN個のIIPアドレスに等しく分配されるように、負荷拡散を始めることができる。
別の実施形態では、ルーターに対するBGP接続などのルーティングプロトコルを使用して、起動していて各VIPに対するパケットを受け取っているMUXの情報をルーターに与えることができる。
様々な実施形態は、MUXモジュールが移り変わる間、長期にわたる接続をどのように保存するかという課題に対処することができる。ある実施形態で利用される方策は、各MUXで扱われる個々のフローの状態を保持し、この状態のコピーを、個々のMUXがスケーラブル負荷分散システムに追加されたときにそのMUXに与えるというものであり得る。既存の接続を壊さずにMUXの追加又は削除を扱うため、1つの代替の実施例は、新しい接続が任意のMUXによって最初に扱われるたびに状態情報を作成するというものである。この状態は、ピアツーピア機構によって直接、あるいは、接続のためにパケットを扱う必要がある任意のMUXが、他のMUXがその接続のパケットを送ったDIPを決定することができる、論理的に集約されたストアに状態を送ることによって間接的に、MUXの間で共有することができる。
状態の共有の必要性がはるかに少なく、したがってより一層スケーラブルであり得る代替の実施形態は、MUXがVIPとDIPの間の現在のマッピング(すなわち、VipMap)を使用して、あるいは、1つのVipMap(V)を使用するパケット転送から別のVipMap(V’)を使用するパケット転送へと変化する遷移期間に、パケットを転送するというものである。この実施形態では、MUXを、V、V’、及びそれらの現在の遷移状態(すなわち、VとV’との間で遷移する状態にあるか、又はそれらすべてが全パケットに対してV’のみを使用して転送を始めているか)に同意するようにすることができる。遷移中でない場合、すべてのMUXは現在のVipMapを使用してすべてのパケットを転送する。遷移中である場合、MUXは、新しい接続のパケット(例えば、TCP SYNパケット)を発見するたびにローカル状態を作成する。新しい接続以外のものを示すパケットを転送するときは、MUXは、その接続に対する状態を有しているかを確かめる。状態を有している場合、MUXは新しいVipMap V’を使用してパケットを転送し、そうでなければ、古いVipMap Vを使用してパケットを転送する。
簡潔には、少なくともある構成では、MUX212(1)〜212(n)は次の主要構成要素を有してもよい。(1)IIPの所有権をルーターに対して主張し、そのIIPに対するトラフィックを受信するIIPモジュール、(2)どのDLB208(1)〜208(n)がトラフィックを転送するかを決定するコンシステントハッシングモジュール、(3)パケットを修正するパケットリライター、(4)ローカルDLBモニタ。これらの構成要素のいずれか又はすべてを、簡単に入手できる(すなわち、商品の)サーバーに、及び/又は様々なシステム設計のルーターに実装することができる。MUX構成要素については、図6〜8に関連してより詳細に後述する。
IIPモジュール(IIP(1)〜IIP(n))は、ARPプロトコルによってMUX212(1)〜212(n)をルーターに登録する役割を担ってもよい。基本的に、IIPモジュールは、ルーター上で、IIPアドレス及びMUX MACアドレスのIP−MACマッピングを確立してもよい。
実施例の機能(function)「bool AddIP(IP Address iip)」について考察する。この実施例の機能では、IIPアドレスは、MUXインターフェース上の二次的なIPアドレスと考えることができる。MUXが複数の二次的なIPアドレスを有することが可能であることに留意されたい。「AddIP()」によって、MUXネットワークスタックが3つの余計なARP(G−ARP)リクエストを送ってもよく、それによってルーターのARPテーブルを更新する(又はIPアドレス自体に対する競合検出を開始する)ことができる。
説明のため、実施例の機能「RemoveIP(IP Address ipp)」について考察する。この実施例の機能は、MUXインターフェースからIIPアドレスを除去してもよい。実施例の機能「SendARP()」についても考察する。この実施例の機能はG−ARPリクエストの送信を強制してもよい。このG−ARPリクエストは、IIP−MACマッピングの正確性に対する予備的基準として送られてもよい。
(G−ARP及びアドレス競合検出)
IPアドレスをインターフェースに追加する際、オペレーティングシステム(OS)はG−ARPを(同じL2ドメイン内で)ブロードキャストすることができる。このG−ARPリクエストは、それが要求するIPアドレスを求めてもよい。他のマシンがこのIPアドレスに返答しない場合、IPアドレスは成功裏に追加されてもよい。そうでなければ、IPアドレスの競合を検出することができ、MUXスタックが、マシンがこのIPアドレスを要求するのを防いでもよい。これは、別のMUXがIIPを要求していて(例えば、フェイルオーバー)、それを除去できなかった場合に起こり得る。このシナリオは、外部基準によって(例えば、防御するマシンの切換えによって)扱うことができる。
新しいMUX、例えばMUX「B」が、MUX「A」との置換えを必要とする際(例えば、MUX Aの計画ダウンタイム及び/又はMUX Aのシステム障害によって)、新しいMUX BはMUX AのIIPを自身のインターフェースに追加してもよい。
少なくとも1つの実施形態では、上述したようなモジュールは、パケットフローをサーバーのプール内の1つ又は複数のステートフルモジュールに導いてもよく、ステートフルモジュールはフロー状態ごとにそれを保持してもよい。この場合、受信パケットは、ルートをクライアントからモジュールへ、ステートフルモジュールへ、さらに関連したリクエストを扱うターゲットサーバーへと進めてもよい。送信フローは、ターゲットサーバーからステートフルモジュールへ、さらにクライアントへとルーティングしてもよい。ステートフルモジュールでのフロー状態ごとに、個々のステートフルモジュールがフローレベルでポリシーを適用して、追加の負荷分散機能を支援してもよい。特に、ステートフルモジュールは、例えば、クッキー若しくはURLを検査して、ターゲットサーバーに対する負荷分散が、アプリケーション、クライアントリクエスト、及び/又はサーバーとネットワーク要素に対する役割及び/又は負荷及び/又は条件に依存するようにカスタマイズすることができる。この実施形態は、CPU及び状態集約的ワークロードを必要なだけの数のサーバーに展開させることができるので、有利であり得る。
少なくとも1つの実施形態では、モジュールは、ステートフルモジュールへのルーティングを、TCP/IP及びアプリケーションヘッダーが所持するヘッダー情報よりも深い情報に依存させるように適合することができる。特に、Windows 7(登録商標)などにおける直接アクセス機能を支援するため、モジュールは、パケットの一部の解読を可能にする暗号プロトコルを学習するか、又はそれに参加することができる。その結果、ステートフルモジュールによるターゲットサーバーの選択は、解読された部分に依存することができる。ターゲットサーバーが、送信フローを扱うことができる(かつ潜在的に最も適切な)ステートフルモジュールにそれを戻すように、メカニズムを構築することができる。これは、プログラマブルCPUを使用してモジュールを実現することによって利益を得てもよい。
少なくとも1つの実施形態では、モジュールは、IP(Internet Protocol)オプションなどのパケットヘッダーのどこかの部分に元の宛先アドレスを含め、パケットをターゲットデバイスに送ってもよい。パケットの一部がモジュールを通過しない場合、ターゲットデバイスは、この情報をパケットヘッダーから抽出し、それを使用してソース(例えば、外部クライアント)に直接発信パケットを送ることができる。
図6は、上述した概念及び後述する概念を達成することができる実施例のスケーラブル負荷分散システムアーキテクチャ600を示す。この実施例では、スケーラブル負荷分散システムアーキテクチャ600は、スケーラブル負荷分散マネージャ602を含むことができ、MUXロールは604で表され、DIPロールは606で表される。負荷分散システムアーキテクチャ600はさらに、ヘルスモニタ608、ヘルスプローブ610、及びルートマネージャ612を含むことができる。MUXロール604は、ユーザーモード616で動作するMUXコントローラ614と、カーネルモード620で動作するMUXドライバ618とを伴うことができる。DIPロール606は、ユーザーモード624で動作するDIPコントローラ622と、カーネルモード628で動作するカプセル化解除ドライバ626とを伴うことができる。
スケーラブル負荷分散マネージャ602は、スケーラブル負荷分散システムアーキテクチャ600との相互作用のためのエントリポイントと見なすことができる。スケーラブル負荷分散マネージャ602は、スケーラブル負荷分散概念の一実施例を管理するのに使用することができるAPIを提供することができる。スケーラブル負荷分散の実施例は、XML構成又はAPIを使用して指定することができる。
スケーラブル負荷分散マネージャ602は、MUXマシンに対するVIP:DIPマッピングを構成し、MUXマシンが同期し続けることを確保する役割を担うことができる。さらに、スケーラブル負荷分散マネージャ602は、DIPが追加されるか、又はプールから適切に除去されたとき、長期にわたる接続の保存を促進することもできる。この機能については、図9に関連してより詳細に後述する。
利用可能性を向上するため、スケーラブル負荷分散マネージャ602を複写することができ、マスター選択アルゴリズムを使用して状態の一貫性を確保することができる。
MUXロール604は、1つ又は複数のIIP(Intermediate IP)アドレスで構成されてもよい。図4に関連して上述したように、ルーター404(1)などのルーターは、VIPに宛てられたパケットを一連のIIPに向けて転送するように構成されてもよい。所与のIIPを有して構成されたMUXは、そのIIPに向けて転送されたパケットに対するMUX処理を行う。
MUXコントローラ614はMUXドライバ618を制御することができる。MUXコントローラは、スケーラブル負荷分散マネージャ602によって使用されるウェブサービスAPIをエクスポートして、MUXを制御することができる。ある実施形態では、MUXコントローラは次の機能を行うことができる。
1.VIP:DIPマップをドライバにダウンロードする。
2.長期にわたる接続をドライバに通知する。
3.ドライバから統計を収集する。
4.ネットワークインターフェース上でIIPを構成する。
5.指定されたIIPに対してネットワーク上でG−ARPパケットを送出して、ネットワーク上のルーター又は他のホストによってIIPに向けて転送されたあらゆるパケットをMUXに集める。
MUXドライバ618は、基本のパケット修正機能を実装することができる。MUXドライバは、着信パケットのヘッダー部をハッシュし、それに対してハッシュ値及び現在のVIPマップに基づいてDIPを選び、配信のためにパケットをカプセル化することができる。マップに加えて、MUXドライバ618は、すべてのVIPに対してすべての長期にわたる接続のハッシュ:DIPマッピングのキャッシュを維持することもできる。
DIPコントローラ622は、DIPマシン上のカプセル化解除ドライバ626を制御することができる。MUXコントローラ614と同様に、DIPコントローラ622は、スケーラブル負荷分散マネージャ602によって使用されるウェブサービスAPIをエクスポートして、DIPマシンを制御し問い合わせることができる。ある実施形態では、DIPコントローラ622は次の機能を行うことができる。
1.ループバックインターフェース上でVIPを構成する。
2.指定されたVIPに対してカプセル化解除を構成する。
3.現在活動中の接続についてDIPマシンに問い合わせる。
4.DIPマシンの健全性を問い合わせる(これは、ヘルスモニタの実装に応じて任意である)。
カプセル化解除ドライバ626は、指定されたVIPに宛てられたIP−in−IPパケットのカプセル化を解除することができる。この特徴は、特定のアプリケーションとの間で進行中の通信の切断を回避する助けとなる。例えば、生のソケットを使用してIP−in−IPを送っているアプリケーションがある場合(例えば、仮想プライベートネットワークVPNアプリケーション)、カプセル化解除ドライバ626はそれらのカプセル化を解除しない。
ルートマネージャ612は、MUXマシンが追加されるか、又はプールから除去されるとき、ルーターを構成する役割を担うことができる。ルートマネージャは、OSPF若しくはBGPなどのルーティングプロトコル、又はインターフェースを使用して、ルーター上に静的ルートを構成することができる。
ヘルスモニタ608は、MUXマシン及びDIPマシン、ならびに場合によってはリクエスト処理に関与するルートの健全状態を維持する役割を担うことができる。この目的のため、ヘルスモニタは、ネットワーク及び/又はネットワーク構成要素の健全性を判断するのに有用であり得る、1つ又は複数のネットワークパラメーターを監視することができる。スケーラブル負荷分散マネージャ602は、MUX及びDIPに関する健全性情報の信頼できるソースとしてヘルスモニタ608を使用することができる。ヘルスモニタ608が、健全性が変化したイベントをスケーラブル負荷分散マネージャ602に通知した場合、スケーラブル負荷分散マネージャは、対応するプールにノードを追加したり、又はそこからノードを除去したりする適切な処置を講ずることができる。
1つの観点から見ると、ヘルスモニタ608は、MUX、DLB、及び/又はそれらのマシンへのルートの健全性を監視するのに用いられてもよい。
少なくともある実施形態では、ヘルスモニタ608は、VPNダイヤラー、MUXモニタ、及びDLBモニタという3つのモジュールから成ることができる。DLBはHTTPインターフェースを提供してもよい。ヘルスモニタ608は、ターゲット構成要素の健全性を確立するため、様々な種類のヘルスプローブ610を用いてもよい。例えば、ヘルスモニタは、「http get」を送って、DLBから小さいテキスト/xmlファイルを取り出してもよい。ファイルが「マジックワード」を含んでいて、ヘルスモニタ及びDLBがそれに同意した場合、ヘルスモニタは、DLBが立ち上がって稼働していると見なし、DLB又はMUXが予想どおりに稼働しているかを判断してもよい。さらに、少なくともある実施形態では、ヘルスモニタ構成要素はMUXデバイス以外の別個のデバイス上にあってもよい。
ヘルスプローブ610はヘルスモニタ608によって使用することができる。例えば、ヘルスモニタは、そのジョブを達成するのに様々なヘルスプローブを使用することができる。ヘルスプローブ610は、ターゲットマシンの健全性の面を能動的に監視することができ、例えば、ピングプローブはマシンの接続性及び活動性を監視する。他のヘルスプローブは、単にマシン/ロールにその健全性を問い合わせてもよく、マシン/ロールが自身の健全性の記録を維持する役割を担って、プローブは単にそれを周期的に問い合わせることができる。
HTTPプローブが成功している場合、これはすべてが立ち上がって稼働していることを示し得る。しかし、これはTCPを通じて稼働するので、DLBがソケット又は他の資源を一時的に使い果たしている可能性がある。また、サービスの妨害(DoS)攻撃中、DLBが長期間の間、資源(例えば、ソケット)を使い果たしている可能性がある。これに対する1つの解決策は、継続的なHTTP接続を維持することであり得る。しかし、ほとんどのサーバー/ブラウザの実施形態では継続的なTCP接続が時間切れになってしまう。例えば、一部のブラウザでは60秒後に継続的な接続が時間切れになることがある。したがって、ヘルスモニタは、継続的な接続が切れた場合にそれを再開するように整備され、継続的な接続の切断がDIP障害を示すものとして必ずしも見なさないようにすべきである。
障害を起こしたMUXに別のMUXが取って代わることができる場合、すべてのMUXは同じコンシステントハッシング機能を作動させているので、パケットが同じDLBに転送される。したがって、フロー(例えば、TCP接続)は妨害されないはずである。
MUXの個別のプールは、アクティブなMUXのホットスタンバイとして利用可能にされてもよい。ヘルスモニタ608は、MUXの障害を検出すると、1つ又は複数のMUXを始動させて、障害を起こしたMUXのIIPを引き継いでもよい。同時に、ヘルスモニタは障害を起こしたMUXのスイッチを切ってもよい。MUXの計画ダウンタイムに対処するため、ホットスタンバイに使用されるのと同様の技術を使用することができる。MUXはステートレスモードで動作するので、ある実施形態は、すべてのパケットが送り出された後で安全にMUXのスイッチを切ることができる。
少なくとも1つの実施形態では、DLBの計画ダウンタイムは、ステートフルMUXマップ遷移によって対処することができる。
1.MUXは、DLB(D)を使用するVipMap(V)を使用している。
2.MUXは、DLB(D)がT時間に停止するという通知を受ける。
3.MUXは、DLB(D)を使用しない新しいVipMap(V’)を計算する。
4.MUXは、ドライバを設置する(V→V’遷移モード)。
5.遷移中、状態テーブルが維持され、すべてのTCP SYNがテーブルに新しいエントリをもたらす。
a.パケットが状態テーブルのエントリと一致する場合、それは新しいフローであり、したがってV’を使用する。
b.それ以外の場合、古いVが使用される。
注:この遷移期間中、すべての新しいフローは新しいVipMap(V’)に切り替わり、DLB(D)が回避される。
6.DLB(D)は、アクティブなTCP接続(VIPに対する)の数を数え続ける。カウンターがゼロに達すると、遷移が完了したことをMUXに通知する。
7.あるいは、MUXは、状態テーブルのいずれのエントリにも一致しない接続として、長期にわたる接続を識別することができる。
8.時間Tに達すると、遷移V→V’が強制される。MUXはV’に基づいてすべてのトラフィックを転送する。
一実施形態では、MUXの計画ダウンタイムには次のステップによって対処する。
1.VipMapを新しいMUX(M’)に設定する。
2.古いMUX(M)がすべてのVIPトラフィックをM’に転送するように設定し、M’は通常通りトラフィックをDLBに転送する。
3.IIPを古いMUX(M)から除去する。
4.IIPに新しいMUX(M’)を追加する。次いで、
5.ルーターが新しいMUXへの転送を始める。
少なくとも1つの実施形態では、ヘルスモニタ608は、不測の障害を監視するため、周期的なプローブをMUX及びDLBに送ることができる。DLB障害が観察されると、ヘルスモニタはMUXに対して、そのVipMapを更新して障害を起こしたDLBの使用を回避するように指示することができる。MUX障害が観察されると、ヘルスモニタは、同じVLAN内の別のMUXに対して、IIPをインストールする(かつG−ARPを使用してルーターに知らせる)ように指示することができる。少なくとも1つの実施形態では、ヘルスモニタは2秒ごとにKeepAliveプローブを送り、障害が3回連続した後にMUX/DLBの停止を知らせることができる。
ミッションクリティカルなVIPに対する高速のMUXフェイルオーバー(<<1秒)を達成するため、各IIPに対して仮想のMUX群を利用してもよい。この高速フェイルオーバーのコストは、通常動作中のネットワーク使用を上回ることがある。以下のステップを使用して、VIPに対するMUX及びIIPを管理することができる。
A.各IIPはマルチキャストアドレスであることができる。各VIPには一群のMUXが割り当てられる。
B.その群のマスターMUXが実際にIIPを保持する。
C.マスターMUXは、このVIPに対するアクティブなMUXであることをその群の全てのメンバーに同報する。このアナウンスは高速(<<1秒)で送られる。このアナウンスはまた、他のMUXが新しいマスター選択プロセスを開始するのを防ぐ。
D.IIPはマルチキャストアドレスであり得るので、上流のルーターは受信したすべてのパケットをVIP群のMUXメンバー(マスター及びすべてのバックアップ)に複写する。
E.指定されたバックアップMUXは、指定された時間Tの間パケットを格納する。
F.マスターMUXは、パケットに対して負荷分散機能を行い、それらをDLBに転送する。
G.所与の時間Tの間にマスターMUXが生きているというアナウンスが受信されなかった場合。指定されたバックアップMUXが負荷分散を開始し、そのバッファ内のすべてのパケットを転送する。
H.この群の中のバックアップが新しいマスター選択プロセスを開始する。ある構成では、指定されたバックアップMUXが新しいマスターになることができる。
I.ステップGにより、DLBがいくつかのパケットを二度受信することがあるが、TCPは複写されたパケット及び一時的なパケット損失を十分に許容する。上流のルーターが生きていて、良好に動作している限り、パケット損失は起こらないことがあることに留意されたい。
図7は、1つ又は複数の実施形態によるMUX212(1)(図2にて言及)の一実施例の構成を示す。集合的にみると、図7及び8は、パスに沿ってパケットをどのようにカプセル化し、カプセル化を解除できるかを示す。
図7は、ユーザーモード702及びカーネルモード704を含むが、カーネルモードにおけるMUXのMUXドライバ618によって提供される機能に焦点を当てている。この場合、MUXドライバは、ネットワークスタックのIPレイヤーの拡張として実現される。
この実施例では、パケット706は、アプリケーションサーバーなどから、MUXドライバ618によって受信される。パケットは、708にあるソースクライアントアドレスと、710にある宛先VIPアドレスとを含む。パケットは、物理的なNIC(Network Interface Card)レイヤー712及びNDIS(Network Driver Interface Specification)レイヤー714を通って移動する。パケットは、IPレイヤー718にあるMUXドライバのフォワーダー716によって扱われる。フォワーダーは、パケット706をカプセル化してパケット720を生成する。このパケットは、ソースMUXアドレス722及び宛先DIPアドレス724によってカプセル化された、708にあるソースクライアントアドレスと710にある宛先VIPアドレスとを含む。したがって、元のパケット706は、クライアント708からではなくMUX212(1)から来たような印象を与える形で、パケット720にカプセル化される。
MUX212(1)は、VIP:DIPマッピングとして知られるレイヤー4負荷分散を実現することができる。クライアントからのトラフィックは、層1によってMUXノードの1つに送ることができる(一般的に、ECMP(Equal Cost Multi Path)ルーティングによる)。MUX212(1)がパケット706を受信すると、パケットヘッダー部(どのヘッダー部がハッシュされるかに関して柔軟性がある)をハッシュすることができ、このハッシュに基づいてDIPを選択することができる(このプロセスの一実施例は図9に関連して後述される)。次に、MUXは、元のパケット706を、選ばれたDIPを宛先(すなわち、宛先DIPアドレス724)として、またMUXをソースIPアドレスとして示す、新しいIPヘッダーにカプセル化することができる(あるいは、MUXは元の送信者をソースIPとして使用することができる)。
負荷分散クラスター中のMUXノードは同じハッシュ関数を使用することができる。さらに、MUXノードはDIPの追加及び適切な削除の間、状態を維持することができる。これにより、どのMUXがパケットを受信するかに関わらず、所与のフローにおけるパケットを次の層の同じサーバーに転送することが可能になる。
図8は、図6に関連して上述したDIPロール606の一実施例を示す。簡潔には、この場合、DIPカプセル化解除ドライバ626は、図7で言及したカプセル化されたパケット720に対してカプセル化解除を行うことができる。この構成では、DIPカプセル化解除ドライバは、ネットワーキングスタックのIPレイヤーの拡張として実現される。上述したように、図7は、配信パスのフロントエンドにおいてカプセル化を達成するための一実施例を提供し、図8は、バックエンドにおいて、上述した元のパケット706のカプセル化を解除する一実施例を提供する。
この実施例では、カプセル化解除ドライバ626はカプセル化されたパケット720を受信することができる。カプセル化解除ドライバは、カプセル化(すなわち、ソースMUXアドレス722及び宛先DIPアドレス724)を除去することができ、カプセル化されたパケットがパスを移動するとパケット706が生成され、宛先VIPアドレス710へ配信できるようになる。
上述のMUX 212(1)及びDIPロール606は、本発明の概念を用いて、ロケーションアドレス(すなわち、宛先DIP724)を有するアプリケーションアドレス(すなわち、宛先VIPアドレス710)と関連付けられたパケット706など、パケットのカプセル化を容易にすることができるので、パケット706をレイヤー3インフラストラクチャにわたって搬送し、最終的にレイヤー2宛先VIPアドレス710に配信することができる。さらに、カプセル化されたパケットは、カプセル化によって定義された、選択されたパスを移動することができ、選択されたパスは、混雑を回避するために後続のパケットに対して簡単に再選択することができる。
さらに、この構成は、ネットワークノードプール(すなわち、スケーラブル負荷分散システム104、204、及び/又は304の構成要素)の中断がない(又は中断が低減された)増加及び縮小を容易にすることができる。簡潔には、スケーラブル負荷分散システム状態は静的ではない傾向がある。例えば、より多くのアプリケーションサーバーがオンラインになることができたり、かつ/又はアプリケーションサーバーがオフラインになることができたり、スイッチをオンオフすることができたり、通信が開始及び終了されたりなどである。本発明の概念により、既存のスケーラブル負荷分散システムマッピングから新しいスケーラブル負荷分散システムマッピングへの適切な遷移を可能にすることができる。例えば、本発明の概念は、既存のマッピングの既存の又は進行中の通信を追跡することができる。ある実施形態は、既存のマッピングを利用するような進行中の通信の連続性を維持しながら、新しい通信のためにスケーラブル負荷分散システムの変化を反映する新しいマッピングを利用しようとすることができる。その結果、これらの実施形態は、比較的シームレスな形で古いマッピングから新しいマッピングへと「適切に」遷移することができる。
図9は、ハッシュ空間をDIPプールにマッピングする実施例の方法900を示す。例えば、マッピングにより、影響を受けるDIPに進まないトラフィックに対する中断なしに、DIPをVIPプールから除去できるようになる。例えば、ハッシュ空間(すなわち、潜在的なハッシュ値)と利用可能なDIPのプールとの間の第1のマッピングが902で示される。ハッシュ空間と利用可能なDIPの別のプールとの間の第2のマッピングが904で示される。この場合、第2のマッピング904は、906で示されるように、DIP 1が終わる(すなわち、利用不能になる)結果として生じる。まず第1のマッピング902を見ると、ハッシュ値が、908(1)、908(2)、及び908(3)ではDIP 1に、910(1)、910(2)、及び910(3)ではDIP 2に、912(1)、912(2)、及び912(3)ではDIP 3に、また914(1)、914(2)、及び914(3)ではDIP 4にマッピングされる。したがって、ハッシュ値はボトルネックを低減又は回避することができる形で、利用可能なDIP間で分配される。
906でDIP 1が失われると、この実施形態は、すべての個々の利用可能なDIPに対する突然の過負荷を回避するような形で、残りの利用可能なDIPの間でDIP 1の負荷を再分配する。例えば、第2のマッピング904では、第1のマッピング902では908(1)でDIP 1にマッピングされていたハッシュの第1の部分は、916で示されるDIP 2に再割り当てされる。DIP 1の第2の部分908(2)は918で示されるDIP 3に再割り当てされる。DIP 1の第3の部分908(3)は920で示されるDIP 4に再割り当てされる。したがって、この実施形態は、残りのDIPのいずれに対する過負荷も回避することができ、それによって過負荷を受けたDIPと関連付けられるボトルネックが潜在的に作られるのを回避するような公正な形で、第1のマッピング902に見られるような四方向の分配から、第2のマッピング904に見られるような三方向の分配へとパケットフローをシームレスに再分配する。
より詳細な説明のため、1つ又は複数のアプリケーションサーバー(DLB)に対するVIPのマッピングを決定する、VIP−DIPマップMを有するMUX(MUX 212(1)など)について考察する。MがM’に変更されるシナリオについて考察する。上述の技術を利用して、Mを適切にM’に変更することができる。長期の接続が存在することがあるので、任意に、期限Tを定義することができる。その結果、Tに達するとMUXがMをM’に変更することができ、又は適切な変更が完了する。
以下に記載するのは、MをM’に適切に変更する手法の単なる一実施例である。
パケットPに対して、MUXは、マップMを使用して計算することができるH(P)と、マップM’を使用して計算することができるH’(P)の両方を計算することができる。
H(P)=H’(P)の場合、H(P)に転送されるものはH’(P)に転送されるものに等しい。
H(P)!=H’(P)であり、PがSYN(TCP接続を開始してもよいTCP SYNパケット)である場合、Pを使用して、H’(P)に進むべき新しい接続を設定することができ、又はハッシュ(P)→H’(P)を状態テーブルSに挿入して、このフローがM’へと移動したものとして認識できるようにすることができる。
H(P)!=H’(P)であり、PがSYNではなく、ハッシュ(P)がSにない場合、これはH(P)への進行中の接続の一部であり得るので、H(P)に進む。
H(P)!=H’(P)であり、PがSYNではなく、ハッシュ(P)がSにある場合、これは既にM’へと移動した進行中の接続の一部であり得るので、H’(P)に進む。
Tに達するか、又は遷移が終わったとすべてのDLBが通知すると、マッピングをMからM’に変更することができ、状態テーブルSをフラッシュすることができる。
これに付随して、DLBには同じM→M’の遷移を通知することができ、この遷移によってそれ(すなわち、DLB)が影響を受けたかを計算することができる。
DLBが遷移していると判断すると、有している接続を適切に終わらせることができる。
継続的なHTTP接続の場合、DLB HTTPサーバーは「HTTP Keepalive」を不能にすることができる。そのため、DLB HTTPサーバーは、FINとの基本的なTCP接続(TCP接続を完成させるTCP FINパケット)を終了することができる。FINは、このパケットの送信者が接続を終了しようとしていることを示すTCPヘッダー中のフラグと見なすことができる。外部クライアントは接続を再開してもよい。しかし、これは新しいハンドシェイクを開始する傾向があるので、MUXは新しいDLBに対する新しいTCP接続をルーティングすることができる。
あるいは、継続的なHTTP接続は、後述するような確立しているTCP接続と同じように扱うことができる。
確立しているTCP接続は、遷移期間の間、不活発又は使用中であることがあり、HTTPがそれを切断することが予期されることがある。ある潜在的な動作は次のとおりである。
1.クライアント側でTCP接続をタイムアウトさせる。基本的に、この技術はこれらのTCP接続を単に無視する。
2.時間Tに達するとクライアントが通知を受けるように、TCP RSTをクライアントに強制的に送る。RSTの送信は正しいシーケンス番号を有することを必要としない。そのため、この技術は、「確立している」接続を単に列挙し、確立している接続をすべて打ち切ることができる。
3.MUXは、遷移の影響を受けた接続が終了したとDLBが判断するまで、継続的な接続の状態を維持することができる。
オープンTCPソケットの数が0のとき、MUXは、ノードをプールから安全に除去できるという通知を受けることができる。
要約すると、本発明の実施形態は、IP−in−IPカプセル化を使用することができるので、サブネットだけではなく潜在的なすべてのターゲットデバイスにわたってDSRを使用することができる。さらに、負荷分散装置を所望に応じてスケーラブル論理層として実現することができる。これらの概念はまた、システム遷移の間、接続を保存することができる。例えば、DIPを追加又は除去することができ、負荷を再分散することができ、かつ/又は適切に接続を遷移させながらシステム容量を調整することができる。MUXレイヤーにおいてコンシステントハッシングを達成して、スケーラビリティを可能にするとともに、状態を保つことなく障害を起こしたDIPを除去するのを可能にすることができる。さらに、システムのモニタリング、制御、及び/又は管理機能を、負荷分散機能とともに配置することができる。これにより、他の潜在的利点の中でも特に、マスターがMUX間のアドレスの連続性を確保できるようになる。
(第1の方法の実施例)
図10は、1つ又は複数の実施形態による、VIPに対するDIPプールの拡張に関して長期の接続を保存することと関連付けられた、一実施例のステップ又は動作について説明する方法1000のフローチャートを示す。
方法は、任意の適切なハードウェア、ソフトウェア(例えば、ファームウェアを含む)、又はそれらの任意の組み合わせと関連して実現することができる。場合によっては、方法は、方法を行うプロセッサ又は計算装置によって実行することができるコンピューター可読記憶媒体に格納することができる。さらに、方法のステップの1つ又は複数は、任意の回数繰り返すことができる。それに加えて又はその代わりに、少なくともある実施形態ではステップの1つ又は複数が省略されてもよい。
ステップ1002で、ネットワーク又はスケーラブル負荷分散システムに対して新しい接続が識別される。少なくともある実施形態では、これはTCP SYNを探すことによって遂行することができる。
ステップ1004で、新しい接続に対する状態を保つ。
ステップ1006で、既存の又は古い接続に対して既存の又は古いハッシュを使用し、新しい接続に対しては新しいハッシュを使用することができる。
ステップ1008で、DIPを問い合わせる。少なくともある実施形態では、これは、保存すべき長期にわたる接続に対するDIPを問い合わせることを含むことができる。あるいは、負荷分散システムは、パケットヘッダーを解釈することによってアクティブな接続を判断することができる。
ステップ1010で、新しい接続に対する状態を終了する。
ステップ1012で、保存されていた接続に対する状態を終了する。少なくともある実施形態では、これは、保存されていた接続がDIPで終了するとそれらの状態を無効にすることを含むことができる。
方法1000は説明のために提供されるものであり、限定的な意味で解釈すべきでない。例えば、遷移中に用いることができる代替の方法は、次のアルゴリズムを利用することができる。
1.パケットヘッダーを解釈することによって、新しい接続の開始パケットを識別する(例えば、TCP SYNを探す)。
2.新しい接続の開始パケットである場合、それを新しいマップのみにしたがって送る。
3.他の場合は、古いマップ及び新しいマップの両方にしたがってパケットを送る。
4.DIPを要求するか、又は特定の期間にわたって負荷分散装置における状態を追跡することによって、古い接続を識別する。
5.古いマップにしたがって古い接続を送り、新しいマップにしたがって新しい接続を送る。
6.タイムアウト後、又はDIPで終了すると、古い接続に関する状態を無効にする。
(第2の方法の実施例)
図11は、一実施例の方法1100のステップ又は動作について説明するフローチャートを示す。方法は、任意の適切なハードウェア、ソフトウェア(例えば、ファームウェアを含む)、又はそれらの任意の組み合わせと関連して実現することができる。場合によっては、方法は、方法を行うプロセッサ又は計算装置によって実行することができるコンピューター可読記憶媒体に格納することができる。さらに、方法のステップの1つ又は複数は、任意の回数繰り返すことができる。それに加えて又はその代わりに、少なくともある実施形態ではステップの1つ又は複数が省略されてもよい。
ステップ1102で、ネットワークパケットを一連のモジュール間で拡散させることができる。少なくとも1つの実施形態では、モジュールは、サーバー上及び/又はルーター内で実装されるように構成されたMUXモジュールである。拡散は、パケットの個々の特性に対して無意識的であり得るが、宛先へのパケットが、その宛先向けのパケットを扱うのに必要な状態を含むMUXモジュールに配信されてもよい。少なくともある実施形態では、個々のネットワークパケットはECMPルーターを使用してモジュール間で拡散される。
ステップ1104で、ネットワークパケットを個々のモジュールにおいてカプセル化することができる。少なくともある実施形態では、パケットのカプセル化は、IP−in−IPカプセル化を含み、かつ/又はパケットが送られた1つ若しくは複数のVIPアドレスを保存する。この点に関して、本明細書に記載される技術の潜在的に重要な特徴は、パケットの特性(例えば、5タプル、IPソースアドレス、IP宛先アドレス、IPプロトコル番号、TCPソースポート、及び/又はTCP宛先ポート)に基づくネットワークパケットのカプセル化と関連付けられるので、同じリクエストの一部であるパケットは、ある実施形態では、どのMUXモジュールがパケットをカプセル化するかに関わらず、同じターゲットデバイスによってすべて扱われ得ることに留意されたい。
ステップ1106で、モジュール間で共有される状態を使用して、ネットワークパケットをカプセル化するターゲットデバイスを選択することができる。少なくともある実施形態では、モジュール間で共有される状態はコンシステントハッシュ関数のキー空間である。それに加えて又はその代わりに、少なくともある実施形態では、モジュール間で共有される状態は、ターゲットデバイスの障害に応答して変更することができる。
ステップ1108で、ネットワークパケットをモジュールから転送することができる。
ステップ1110で、ターゲットデバイス、MUXモジュール、ルーター、及び様々な構成要素間のルートの健全性を監視することができる。
(結論)
負荷分散シナリオに関係する技術、方法、デバイス、システムなどを、構造的特徴及び/又は方法論的作用に特有の用語を用いて記載しているが、添付の特許請求の範囲にて定義される主題は記載した特定の特徴又は動作に必ずしも限定されないことを理解されたい。むしろ、特定の特徴及び動作は、特許請求の範囲の方法、デバイス、システムなどを実現する例示的な形態として開示される。

Claims (15)

  1. 処理デバイスによって実行されると動作を行う命令が格納されたコンピューター可読記憶媒体であって、前記動作が、
    一連のモジュール間でネットワークパケットを拡散するステップ(1102)と、
    個々のモジュールにおいて前記ネットワークパケットをカプセル化するステップ(1104)と、
    前記一連のモジュール間で共有される状態を使用して、前記ネットワークパケットをカプセル化するターゲットデバイスを選択するステップ(1106)と、
    前記ネットワークパケットを前記一連のモジュールから転送するステップ(1108)とを含むことを特徴とするコンピューター可読記憶媒体。
  2. 前記一連のモジュール間で共有される前記状態は、コンシステントハッシュ関数のキー空間であることを特徴とする請求項1に記載のコンピューター可読記憶媒体。
  3. 個々のネットワークパケットを、等しいコストマルチパスルーティングを使用して、前記一連のモジュール間で拡散することを特徴とする請求項1に記載のコンピューター可読記憶媒体。
  4. 前記ターゲットデバイスの健全性を監視するステップをさらに含むことを特徴とする請求項1に記載のコンピューター可読記憶媒体。
  5. 前記一連のモジュール間で共有される前記状態を、前記ターゲットデバイスの障害に応答して変更することを特徴とする請求項1に記載のコンピューター可読記憶媒体。
  6. 前記一連のモジュールの数を、負荷パラメーターの1つ若しくは複数又は他のパラメーターの1つ若しくは複数に基づいて、提供されるサービスのダウンタイムを引き起こすことなく、動的に変更できることを特徴とする請求項1に記載のコンピューター可読記憶媒体。
  7. 前記ターゲットデバイスはターゲットデバイスの一連のメンバーであり、前記一連のうちの1つ若しくは複数の既存のターゲットデバイスが利用不能になるという通知、又は1つ若しくは複数の新しいターゲットデバイスが利用可能であるという通知を受信する場合、新しい一連のターゲットデバイスに対する今後の通信と関連付けられたネットワークパケットを拡散する構成に遷移すると同時に、前記一連のターゲットデバイスに対する進行中の通信と関連付けられたネットワークパケットを送り続けることを特徴とする請求項1に記載のコンピューター可読記憶媒体。
  8. 前記パケットのカプセル化は、IP(Internet Protocol)−in−IPカプセル化を含むことを特徴とする請求項1に記載のコンピューター可読記憶媒体。
  9. 前記パケットのカプセル化は、前記パケットが送られる1つ又は複数の仮想IPアドレスを保存することを特徴とする請求項6に記載のコンピューター可読記憶媒体。
  10. 外部クライアントデバイス(102)からのパケットフローの個々の着信パケットをカプセル化するように構成された負荷分散レイヤー(108)と、個々のターゲットデバイス(210)とを備えるシステム(104)であって、
    前記負荷分散レイヤー(108)は、前記着信パケットを前記システム(104)のターゲットデバイス(110)にルーティングするようにさらに構成され、前記ターゲットデバイス(110)は、1つ又は複数のIP(Internet Protocol)サブネットにまたがり、前記着信パケットは、前記個々のターゲットデバイス(210)に達する前に前記負荷分散レイヤー(108)の1つ又は複数の負荷分散装置(208)を通過し、
    前記個々のターゲットデバイス(210)は、前記1つ又は複数の負荷分散装置(208)のいずれも通過することなく、前記パケットフローの少なくともいくつかの発信パケットを前記外部クライアントデバイス(102)にルーティング(222)するように構成されたことを特徴とするシステム。
  11. 前記負荷分散レイヤーを、IP(Internet Protocol)−in−IPカプセル化又はパケット修正及びIPオプションの一方又は両方を利用して、前記個々の着信パケットをカプセル化するように構成することを特徴とする請求項10に記載のシステム。
  12. 前記負荷分散レイヤーは、少なくとも1つの動的負荷分散装置及び少なくとも1つのマルチプレクサを備え、前記少なくとも1つのマルチプレクサを、前記個々の着信パケットをカプセル化するように構成することを特徴とする請求項10に記載のシステム。
  13. 前記負荷分散レイヤーは、少なくとも1つのマルチプレクサを備え、前記少なくとも1つのマルチプレクサを、IP−in−IPカプセル化を利用して前記個々の着信パケットをカプセル化するように構成することを特徴とする請求項10に記載のシステム。
  14. 前記個々のターゲットデバイスは、前記負荷分散レイヤーからのパケットのカプセル化を解除するように構成されたカプセル化解除構成要素を含み、個々のターゲットデバイスは複数の仮想ローカルエリアネットワークにまたがることを特徴とする請求項10に記載のシステム。
  15. 前記1つ又は複数の負荷分散装置は、VIP(Virtual IP)を前記負荷分散レイヤーのDIP(Direct IP)マッピングに統合する、アプリケーションプログラムインターフェースを提供するように構成された動的負荷分散装置を備えることを特徴とする請求項10に記載のシステム。
JP2012513343A 2009-05-28 2010-05-28 レイヤー2ドメインにわたる負荷分散 Active JP5960050B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US18205709P 2009-05-28 2009-05-28
US61/182,057 2009-05-28
US12/605,388 US8416692B2 (en) 2009-05-28 2009-10-26 Load balancing across layer-2 domains
US12/605,388 2009-10-26
PCT/US2010/036757 WO2010138936A2 (en) 2009-05-28 2010-05-28 Load balancing across layer-2 domains

Publications (3)

Publication Number Publication Date
JP2012528551A true JP2012528551A (ja) 2012-11-12
JP2012528551A5 JP2012528551A5 (ja) 2013-07-04
JP5960050B2 JP5960050B2 (ja) 2016-08-02

Family

ID=43220098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012513343A Active JP5960050B2 (ja) 2009-05-28 2010-05-28 レイヤー2ドメインにわたる負荷分散

Country Status (9)

Country Link
US (1) US8416692B2 (ja)
EP (2) EP2436157B1 (ja)
JP (1) JP5960050B2 (ja)
KR (1) KR101678711B1 (ja)
CN (2) CN102449963B (ja)
CA (2) CA2763032A1 (ja)
ES (1) ES2614614T3 (ja)
HK (1) HK1175321A1 (ja)
WO (2) WO2010138936A2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014186601A (ja) * 2013-03-25 2014-10-02 Nec Corp 負荷分散システム
JP2014225157A (ja) * 2013-05-16 2014-12-04 富士通株式会社 通信システム、負荷分散装置、および、負荷分散プログラム
JP2015533458A (ja) * 2012-10-17 2015-11-24 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 負荷分散下のデータ相互作用の、システム、方法、および装置
JP2016071860A (ja) * 2014-09-25 2016-05-09 インテル・コーポレーション 粗粒度の負荷分散と細粒度の負荷分散との間をブリッジする技術
JP2017516399A (ja) * 2014-05-13 2017-06-15 グーグル インコーポレイテッド エニーキャストデータトラフィックをロードバランシングするための方法、システム、および、コンピュータプログラム
JP2018033136A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
JP2018033135A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9497039B2 (en) * 2009-05-28 2016-11-15 Microsoft Technology Licensing, Llc Agile data center network architecture
US9391716B2 (en) 2010-04-05 2016-07-12 Microsoft Technology Licensing, Llc Data center using wireless communication
US8499093B2 (en) * 2010-05-14 2013-07-30 Extreme Networks, Inc. Methods, systems, and computer readable media for stateless load balancing of network traffic flows
US8225131B2 (en) * 2010-06-17 2012-07-17 Microsoft Corporation Monitoring service endpoints
CN102143041B (zh) * 2010-07-02 2014-03-26 华为技术有限公司 一种网络流量分担的方法、装置及系统
US8391174B2 (en) * 2010-07-13 2013-03-05 Hewlett-Packard Development Company, L.P. Data packet routing
US8755283B2 (en) * 2010-12-17 2014-06-17 Microsoft Corporation Synchronizing state among load balancer components
US8934483B2 (en) 2011-01-20 2015-01-13 Broadcom Corporation Data center switch
US8612550B2 (en) 2011-02-07 2013-12-17 Microsoft Corporation Proxy-based cache content distribution and affinity
US8776207B2 (en) 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
EP2692095B1 (en) 2011-03-28 2019-06-05 Telefonaktiebolaget LM Ericsson (publ) Method, apparatus and computer program product for updating load balancer configuration data
US9210048B1 (en) 2011-03-31 2015-12-08 Amazon Technologies, Inc. Clustered dispersion of resource use in shared computing environments
WO2012155351A1 (zh) 2011-05-19 2012-11-22 华为技术有限公司 一种生成隧道转发表项的方法和网络设备
WO2012177769A1 (en) 2011-06-20 2012-12-27 Plexxi Inc. Optical architecture and channel plan employing multi-fiber configurations for data center network switching
US8812727B1 (en) * 2011-06-23 2014-08-19 Amazon Technologies, Inc. System and method for distributed load balancing with distributed direct server return
US9274825B2 (en) 2011-08-16 2016-03-01 Microsoft Technology Licensing, Llc Virtualization gateway between virtualized and non-virtualized networks
US9288555B2 (en) 2011-11-01 2016-03-15 Plexxi Inc. Data center network architecture
US9301026B2 (en) 2011-11-01 2016-03-29 Plexxi Inc. Affinity modeling in a data center network
WO2013066603A1 (en) * 2011-11-01 2013-05-10 Plexxi Inc. Affinity modeling in a data center network
US9204207B2 (en) 2011-11-01 2015-12-01 Plexxi Inc. Hierarchy of control in a data center network
US9337931B2 (en) 2011-11-01 2016-05-10 Plexxi Inc. Control and provisioning in a data center network with at least one central controller
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US8954575B2 (en) * 2012-05-23 2015-02-10 Vmware, Inc. Fabric distributed resource scheduling
US9229800B2 (en) 2012-06-28 2016-01-05 Microsoft Technology Licensing, Llc Problem inference from support tickets
US9262253B2 (en) 2012-06-28 2016-02-16 Microsoft Technology Licensing, Llc Middlebox reliability
US8805990B2 (en) 2012-07-12 2014-08-12 Microsoft Corporation Load balancing for single-address tenants
US8831000B2 (en) * 2012-10-10 2014-09-09 Telefonaktiebolaget L M Ericsson (Publ) IP multicast service join process for MPLS-based virtual private cloud networking
US9246998B2 (en) 2012-10-16 2016-01-26 Microsoft Technology Licensing, Llc Load balancer bypass
US9325748B2 (en) 2012-11-15 2016-04-26 Microsoft Technology Licensing, Llc Characterizing service levels on an electronic network
US9565080B2 (en) 2012-11-15 2017-02-07 Microsoft Technology Licensing, Llc Evaluating electronic network devices in view of cost and service level considerations
CN102983995B (zh) * 2012-11-19 2017-05-03 浪潮电子信息产业股份有限公司 一种基于数据中心的组网设计方法
US10938917B2 (en) * 2012-12-19 2021-03-02 Micro Focus Llc Triggering a high availability feature in response to detecting impairment of client experience
CN103905473B (zh) * 2012-12-25 2017-12-15 华为技术有限公司 云计算系统、负载均衡系统、负载均衡方法及装置
US9450874B2 (en) 2013-01-04 2016-09-20 Futurewei Technologies, Inc. Method for internet traffic management using a central traffic controller
US9832136B1 (en) 2013-01-23 2017-11-28 Liberty Mutual Insurance Company Streaming software to multiple virtual machines in different subnets
CN103971687B (zh) * 2013-02-01 2016-06-29 腾讯科技(深圳)有限公司 一种语音识别系统中的负载均衡实现方法和装置
US9917780B2 (en) 2013-03-15 2018-03-13 Hewlett Packard Enterprise Development Lp Traffic control across a layer 2 layer 3 boundary in a software defined network
US9112801B2 (en) 2013-03-15 2015-08-18 International Business Machines Corporation Quantized congestion notification in a virtual networking system
US9553809B2 (en) 2013-04-16 2017-01-24 Amazon Technologies, Inc. Asymmetric packet flow in a distributed load balancer
US10038626B2 (en) 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US10135914B2 (en) 2013-04-16 2018-11-20 Amazon Technologies, Inc. Connection publishing in a distributed load balancer
US10069903B2 (en) 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US9871712B1 (en) 2013-04-16 2018-01-16 Amazon Technologies, Inc. Health checking in a distributed load balancer
US9559961B1 (en) 2013-04-16 2017-01-31 Amazon Technologies, Inc. Message bus for testing distributed load balancers
US9354928B1 (en) * 2013-04-24 2016-05-31 Brian K. Buchheit User facing load balancing via virtual machine synchronization
US9350601B2 (en) 2013-06-21 2016-05-24 Microsoft Technology Licensing, Llc Network event processing and prioritization
WO2015006568A1 (en) 2013-07-11 2015-01-15 Plexxi Inc. Network node connection configuration
US9742636B2 (en) * 2013-09-11 2017-08-22 Microsoft Technology Licensing, Llc Reliable address discovery cache
US9888405B2 (en) 2013-11-05 2018-02-06 Cisco Technology, Inc. Networking apparatuses and packet statistic determination methods employing atomic counters
US9876715B2 (en) 2013-11-05 2018-01-23 Cisco Technology, Inc. Network fabric overlay
US10412159B1 (en) 2014-02-07 2019-09-10 Amazon Technologies, Inc. Direct load balancing using a multipath protocol
US20150271075A1 (en) * 2014-03-20 2015-09-24 Microsoft Corporation Switch-based Load Balancer
US9660914B1 (en) 2014-05-08 2017-05-23 Google Inc. System and method for providing congestion notification in layer 3 networks
US10440123B2 (en) * 2014-06-13 2019-10-08 Abb Schweiz Ag Method and system for secure bidirection communication for industrial devices
US9866473B2 (en) 2014-11-14 2018-01-09 Nicira, Inc. Stateful services on stateless clustered edge
US9876714B2 (en) 2014-11-14 2018-01-23 Nicira, Inc. Stateful services on stateless clustered edge
US10044617B2 (en) 2014-11-14 2018-08-07 Nicira, Inc. Stateful services on stateless clustered edge
US11533255B2 (en) * 2014-11-14 2022-12-20 Nicira, Inc. Stateful services on stateless clustered edge
CN105704180B (zh) * 2014-11-27 2019-02-26 英业达科技有限公司 数据中心网络的配置方法及其系统
US9979640B2 (en) * 2014-12-23 2018-05-22 Intel Corporation Reorder resilient transport
US9800653B2 (en) * 2015-03-06 2017-10-24 Microsoft Technology Licensing, Llc Measuring responsiveness of a load balancing system
US9954751B2 (en) 2015-05-29 2018-04-24 Microsoft Technology Licensing, Llc Measuring performance of a network using mirrored probe packets
US10191757B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing Llc Seamless address reassignment via multi-tenant linkage
CN105024860A (zh) * 2015-07-23 2015-11-04 上海斐讯数据通信技术有限公司 一种远程通信控制方法及系统
US10320895B2 (en) 2016-11-15 2019-06-11 Microsoft Technology Licensing, Llc Live migration of load balanced virtual machines via traffic bypass
US10305973B2 (en) 2017-01-09 2019-05-28 International Business Machines Corporation Distributed load-balancing for software defined networks
US11570092B2 (en) * 2017-07-31 2023-01-31 Nicira, Inc. Methods for active-active stateful network service cluster
US10951584B2 (en) 2017-07-31 2021-03-16 Nicira, Inc. Methods for active-active stateful network service cluster
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
US11153122B2 (en) 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network
US10880206B2 (en) * 2018-06-13 2020-12-29 Futurewei Technologies, Inc. Multipath selection system and method for datacenter-centric metro networks
US11102114B2 (en) 2018-12-28 2021-08-24 Alibaba Group Holding Limited Method, apparatus, and computer-readable storage medium for network optimization for accessing cloud service from on-premises network
CN111343093B (zh) * 2020-02-28 2021-07-09 腾讯科技(深圳)有限公司 业务数据的传输方法及装置
US11636059B2 (en) 2020-03-31 2023-04-25 Samsung Electronics Co., Ltd. Scaling performance in a storage server with storage devices
US11689455B2 (en) 2020-05-28 2023-06-27 Oracle International Corporation Loop prevention in virtual layer 2 networks
EP4183119A1 (en) * 2020-07-14 2023-05-24 Oracle International Corporation Virtual layer-2 network
US12015552B2 (en) 2020-12-30 2024-06-18 Oracle International Corporation Layer-2 networking information in a virtualized cloud environment
US11671355B2 (en) 2021-02-05 2023-06-06 Oracle International Corporation Packet flow control in a header of a packet
US11777897B2 (en) 2021-02-13 2023-10-03 Oracle International Corporation Cloud infrastructure resources for connecting a service provider private network to a customer private network
CN113254205B (zh) * 2021-05-24 2023-08-15 北京百度网讯科技有限公司 负载均衡系统、方法、装置、电子设备及存储介质
CN113422735B (zh) * 2021-06-22 2022-08-05 恒安嘉新(北京)科技股份公司 负载均衡配置方法、汇聚分流器及介质
CN115941455A (zh) * 2021-08-13 2023-04-07 华为技术有限公司 数据中心的云网络和运营商网络互通的方法和通信装置
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption
US11962564B2 (en) 2022-02-15 2024-04-16 VMware LLC Anycast address for network address translation at edge

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801949B1 (en) * 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
JP2005027304A (ja) * 2003-06-30 2005-01-27 Microsoft Corp 接続操作を用いるネットワーク負荷分散
JP2005025756A (ja) * 2003-06-30 2005-01-27 Microsoft Corp ホスト状態情報を用いるネットワーク負荷分散
JP2005130512A (ja) * 2003-10-27 2005-05-19 Samsung Electronics Co Ltd モバイル端末機の移動性支援方法及びそのシステム
JP2005260594A (ja) * 2004-03-11 2005-09-22 Oki Techno Creation:Kk ネットワークシステム及び通信装置
JP2007180963A (ja) * 2005-12-28 2007-07-12 Fujitsu Ltd クラスタノード制御プログラム、クラスタノード、クラスタシステム制御方法
WO2007089352A2 (en) * 2005-12-30 2007-08-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
JP2007312434A (ja) * 2001-07-10 2007-11-29 Fujitsu Ltd 移動機通信システムおよび通信方法
JP2008199348A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 中継装置、中継プログラム及び通信システム
JP2009080642A (ja) * 2007-09-26 2009-04-16 Nippon Telegr & Teleph Corp <Ntt> 負荷制御方法及び装置及びプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718387B1 (en) 1997-12-10 2004-04-06 Sun Microsystems, Inc. Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel
WO2002035359A2 (en) * 2000-10-26 2002-05-02 Prismedia Networks, Inc. Method and system for managing distributed content and related metadata
US7296268B2 (en) * 2000-12-18 2007-11-13 Microsoft Corporation Dynamic monitor and controller of availability of a load-balancing cluster
US7333482B2 (en) * 2000-12-22 2008-02-19 Interactive People Unplugged Ab Route optimization technique for mobile IP
US20020184368A1 (en) * 2001-04-06 2002-12-05 Yunsen Wang Network system, method and protocols for hierarchical service and content distribution via directory enabled network
US6999462B1 (en) * 2001-06-18 2006-02-14 Advanced Micro Devices, Inc. Mapping layer 2 LAN priorities to a virtual lane in an Infiniband™ network
US20030009559A1 (en) * 2001-07-09 2003-01-09 Naoya Ikeda Network system and method of distributing accesses to a plurality of server apparatus in the network system
US7213065B2 (en) * 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US20030154236A1 (en) * 2002-01-22 2003-08-14 Shaul Dar Database Switch enabling a database area network
US7512702B1 (en) * 2002-03-19 2009-03-31 Cisco Technology, Inc. Method and apparatus providing highly scalable server load balancing
JP2003281109A (ja) * 2002-03-26 2003-10-03 Hitachi Ltd 負荷分散方法
US7007103B2 (en) 2002-04-30 2006-02-28 Microsoft Corporation Method to offload a network stack
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7289334B2 (en) 2003-08-27 2007-10-30 Epicenter, Inc. Rack architecture and management system
US7860095B2 (en) * 2003-10-30 2010-12-28 Hewlett-Packard Development Company, L.P. Method and apparatus for load-balancing
EP1528744A1 (en) * 2003-10-30 2005-05-04 Hewlett-Packard Development Company, L.P. Method and apparatus for load-balancing
US8255422B2 (en) * 2004-05-28 2012-08-28 Microsoft Corporation Highly reliable and scalable architecture for data centers
US8422500B2 (en) * 2004-07-02 2013-04-16 Rockstar Consortium Us Lp VLAN support of differentiated services
GB2418326B (en) 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US20070002770A1 (en) * 2005-06-30 2007-01-04 Lucent Technologies Inc. Mechanism to load balance traffic in an ethernet network
US8875135B2 (en) * 2006-04-17 2014-10-28 Cisco Systems, Inc. Assigning component operations of a task to multiple servers using orchestrated web service proxy
US8014308B2 (en) * 2006-09-28 2011-09-06 Microsoft Corporation Hardware architecture for cloud services
US8054840B2 (en) * 2007-06-12 2011-11-08 International Business Machines Corporation Data center virtual local area network system and method
US20090063706A1 (en) * 2007-08-30 2009-03-05 International Business Machines Corporation Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing
US8285789B2 (en) 2007-10-05 2012-10-09 Intel Corporation Flattened butterfly processor interconnect network
US9497039B2 (en) 2009-05-28 2016-11-15 Microsoft Technology Licensing, Llc Agile data center network architecture

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801949B1 (en) * 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
JP2007312434A (ja) * 2001-07-10 2007-11-29 Fujitsu Ltd 移動機通信システムおよび通信方法
JP2005027304A (ja) * 2003-06-30 2005-01-27 Microsoft Corp 接続操作を用いるネットワーク負荷分散
JP2005025756A (ja) * 2003-06-30 2005-01-27 Microsoft Corp ホスト状態情報を用いるネットワーク負荷分散
JP2005130512A (ja) * 2003-10-27 2005-05-19 Samsung Electronics Co Ltd モバイル端末機の移動性支援方法及びそのシステム
JP2005260594A (ja) * 2004-03-11 2005-09-22 Oki Techno Creation:Kk ネットワークシステム及び通信装置
JP2007180963A (ja) * 2005-12-28 2007-07-12 Fujitsu Ltd クラスタノード制御プログラム、クラスタノード、クラスタシステム制御方法
WO2007089352A2 (en) * 2005-12-30 2007-08-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
JP2009522877A (ja) * 2005-12-30 2009-06-11 アカマイ テクノロジーズ,インク. 任意のデータフロー用の高信頼性、高スループット、高パフォーマンス転送及びルーティングメカニズム
JP2008199348A (ja) * 2007-02-14 2008-08-28 Fujitsu Ltd 中継装置、中継プログラム及び通信システム
JP2009080642A (ja) * 2007-09-26 2009-04-16 Nippon Telegr & Teleph Corp <Ntt> 負荷制御方法及び装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6014008299; 'Towards a Next Generation Data Center Achitecture: Scalability and Commoditization' SIGCOMM '08 , 20080817, p.57-62 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015533458A (ja) * 2012-10-17 2015-11-24 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 負荷分散下のデータ相互作用の、システム、方法、および装置
US10135915B2 (en) 2012-10-17 2018-11-20 Alibaba Group Holding Limited System, method and apparatus of data interaction under load balancing
JP2014186601A (ja) * 2013-03-25 2014-10-02 Nec Corp 負荷分散システム
JP2014225157A (ja) * 2013-05-16 2014-12-04 富士通株式会社 通信システム、負荷分散装置、および、負荷分散プログラム
JP2017516399A (ja) * 2014-05-13 2017-06-15 グーグル インコーポレイテッド エニーキャストデータトラフィックをロードバランシングするための方法、システム、および、コンピュータプログラム
US9998529B2 (en) 2014-05-13 2018-06-12 Google Llc Method and system for load balancing anycast data traffic
JP2018164285A (ja) * 2014-05-13 2018-10-18 グーグル エルエルシー エニーキャストデータトラフィックをロードバランシングするための方法およびシステム
JP2016071860A (ja) * 2014-09-25 2016-05-09 インテル・コーポレーション 粗粒度の負荷分散と細粒度の負荷分散との間をブリッジする技術
JP2018033136A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
JP2018033135A (ja) * 2016-08-25 2018-03-01 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム
US11075981B2 (en) 2016-08-25 2021-07-27 Nhn Entertainment Corporation Method and system for processing direct server return load balancing using loopback interface in virtual network environment
US11330044B2 (en) 2016-08-25 2022-05-10 Nhn Entertainment Corporation Method and system for processing load balancing using virtual switch in virtual network environment

Also Published As

Publication number Publication date
CA2759957C (en) 2017-02-28
KR101678711B1 (ko) 2016-11-22
US20100302940A1 (en) 2010-12-02
EP2436157A4 (en) 2012-04-04
CA2759957A1 (en) 2010-12-02
CA2763032A1 (en) 2010-12-02
WO2010138936A2 (en) 2010-12-02
CN102449963A (zh) 2012-05-09
EP2436156A4 (en) 2013-09-11
EP2436157B1 (en) 2016-03-30
CN102726021B (zh) 2016-07-06
HK1175321A1 (zh) 2013-06-28
EP2436156B1 (en) 2016-11-09
EP2436157A2 (en) 2012-04-04
CN102449963B (zh) 2014-11-05
WO2010138936A3 (en) 2011-03-03
WO2010138937A3 (en) 2011-03-03
CN102726021A (zh) 2012-10-10
JP5960050B2 (ja) 2016-08-02
US8416692B2 (en) 2013-04-09
KR20120019462A (ko) 2012-03-06
EP2436156A2 (en) 2012-04-04
WO2010138937A2 (en) 2010-12-02
ES2614614T3 (es) 2017-06-01

Similar Documents

Publication Publication Date Title
JP5960050B2 (ja) レイヤー2ドメインにわたる負荷分散
JP7281531B2 (ja) SRv6とBGPを使用するマルチクラウド接続
JP6129928B2 (ja) アジャイルデータセンタネットワークアーキテクチャ
EP2845372B1 (en) Two level packet distribution with stateless first level packet distribution to a group of servers and stateful second level packet distribution to a server within the group
Nordström et al. Serval: An {End-Host} stack for {Service-Centric} networking
US9762494B1 (en) Flow distribution table for packet flow load balancing
EP2705645B1 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
EP2817926B1 (en) Delegate forwarding and address resolution in fragmented network
US8676980B2 (en) Distributed load balancer in a virtual machine environment
Kim et al. Floodless in seattle: a scalable ethernet architecture for large enterprises
EP2652924B1 (en) Synchronizing state among load balancer components
CN113196725B (zh) 对使用全局网络地址的分布式端点进行负载平衡式访问的系统和方法
US8218561B2 (en) Flow redirection employing state information
US20060193252A1 (en) Active-active data center using RHI, BGP, and IGP anycast for disaster recovery and load distribution
CN111600806A (zh) 负载均衡方法、装置、前端调度服务器、存储介质及设备
EP3186933A1 (en) Methods, systems, and computer readable media for virtual fabric routing
EP3026851B1 (en) Apparatus, network gateway, method and computer program for providing information related to a specific route to a service in a network
Jaseemuddin et al. TE-friendly content delivery request routing in a CDN
Saleem et al. Router redundancy with enhanced vrrp for intelligent message routing
Pelsser et al. Scalable support of interdomain routes in a single as
JP2012253681A (ja) 通信ネットワークシステム
Zhang et al. Scalability and Bandwidth Optimization for Data Center Networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130517

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130517

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150421

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150821

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150831

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20150918

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160622

R150 Certificate of patent or registration of utility model

Ref document number: 5960050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250