對(duì)進(jìn)入流量執(zhí)行流量負(fù)載平衡的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)一般而言涉及改進(jìn)的數(shù)據(jù)處理裝置和方法,并且更具體而言涉及用于在鏈 路聚合組中進(jìn)行自主流量負(fù)載平衡的機(jī)制。
【背景技術(shù)】
[0002] 為了可用性和可擴(kuò)展性,物理網(wǎng)絡(luò)通常在端點(diǎn)被抽象??捎眯院涂蓴U(kuò)展性都是通 過提供鏈路聚合組(LinkAggregationGroup,LAG)來解決的。鏈路聚合是用來描述并行 地組合或聚合多個(gè)網(wǎng)絡(luò)連接以便增加超出單個(gè)連接可以維持的吞吐量并且在一條鏈路故 障的情況下提供冗余性的各種方法的計(jì)算機(jī)聯(lián)網(wǎng)術(shù)語。這種鏈路聚合可以在開放系統(tǒng)互連 (0SI)模型的最下面三層中任意一層實(shí)現(xiàn)。在層1 (物理層)的聚合的例子是組合多個(gè)頻帶 的電源線和無線網(wǎng)絡(luò)設(shè)備。0SI層2(數(shù)據(jù)鏈路層)聚合通??缃粨Q機(jī)端口發(fā)生,其中交換 機(jī)端口可以是由操作系統(tǒng)管理的物理端口或者是虛擬端口。利用輪轉(zhuǎn)調(diào)度、基于散列值的 調(diào)度、其組合,等等,0SI層3(網(wǎng)絡(luò)層)聚合是有可能的。
[0003] 鏈路的組合或者可以發(fā)生成使得多個(gè)接口共享一個(gè)邏輯地址(例如,IP地址)或 一個(gè)物理地址(例如,MAC地址),或者它可以使得每個(gè)接口具有其自己的地址。前者需要 鏈路的兩端都使用相同的聚合方法,但是具有優(yōu)于后者的性能優(yōu)點(diǎn)。用于執(zhí)行鏈路聚合的 一種標(biāo)準(zhǔn)在鏈路聚合控制協(xié)議(LACP)中規(guī)定。
[0004] 鏈路聚合組(LAG)是聚合到一起從而形成鏈路組的一組鏈路。LAG通常耦合到網(wǎng) 絡(luò)中的交換機(jī)架構(gòu)的一個(gè)或多個(gè)交換機(jī)。關(guān)于可用性,LAG允許網(wǎng)絡(luò)適配器/鏈路錯(cuò)誤局限 于網(wǎng)絡(luò)適配器/接口域,其中"接口"是鏈路組作為單個(gè)鏈路的抽象。關(guān)于可擴(kuò)展性,把多個(gè) 物理鏈路分組到一個(gè)抽象接口,例如代表多條物理鏈路的單個(gè)以太通道(Etherchannel), 允許聚合延遲和吞吐量性能的改進(jìn)。在這兩種情況下,用戶空間應(yīng)用都不參與確定接口或 交換機(jī)架構(gòu)行為。
【發(fā)明內(nèi)容】
[0005] 在一種說明性實(shí)施例中,在包括處理器的設(shè)備中提供了用于對(duì)指向鏈路聚合組 (LAG)的進(jìn)入流量執(zhí)行流量負(fù)載平衡的方法。該方法包括由設(shè)備監(jiān)視跨鏈路聚合組(LAG) 的多條鏈路的進(jìn)入流量負(fù)載。該方法還包括由設(shè)備確定跨多條鏈路的進(jìn)入流量負(fù)載是否 不平衡。而且,該方法還包括,響應(yīng)于確定跨多條鏈路的進(jìn)入流量負(fù)載不平衡,由設(shè)備向與 LAG關(guān)聯(lián)的交換機(jī)發(fā)送請(qǐng)求該交換機(jī)修改進(jìn)入流量到LAG的路由以執(zhí)行進(jìn)入流量負(fù)載平衡 的消息。
[0006] 在其它說明性實(shí)施例中,提供了包括具有計(jì)算機(jī)可讀程序的計(jì)算機(jī)可用或可讀介 質(zhì)的計(jì)算機(jī)程序產(chǎn)品。在計(jì)算設(shè)備上執(zhí)行時(shí),計(jì)算機(jī)可讀程序使計(jì)算設(shè)備執(zhí)行以上關(guān)于方 法說明性實(shí)施例概述的各種操作或者其組合。
[0007] 在還有另一種說明性實(shí)施例中,提供了一種系統(tǒng)/裝置。該系統(tǒng)/裝置可以包括鏈 路聚合邏輯、監(jiān)視邏輯以及流量負(fù)載平衡邏輯,每個(gè)邏輯都配置為執(zhí)行上述方法的相應(yīng)操 作或者其組合。在有些說明性實(shí)施例中,該系統(tǒng)/裝置可以包括一個(gè)或多個(gè)處理器以及耦 合到一個(gè)或多個(gè)處理器的存儲(chǔ)器。存儲(chǔ)器可以包括指令,當(dāng)被一個(gè)或多個(gè)處理器執(zhí)行時(shí),該 指令使這一個(gè)或多個(gè)處理器執(zhí)行以上關(guān)于方法說明性實(shí)施例概述的各種操作或者其組合。
[0008] 本發(fā)明的這些及其它特征和優(yōu)點(diǎn)將在以下本發(fā)明的示例實(shí)施例的具體描述中進(jìn) 行描述,或者將依據(jù)這種具體描述而對(duì)本領(lǐng)域普通技術(shù)人員變得顯然。
【附圖說明】
[0009] 當(dāng)結(jié)合附圖閱讀時(shí),通過參考以下說明性實(shí)施例的具體描述,本發(fā)明及其優(yōu)選使 用模式和進(jìn)一步的目標(biāo)和優(yōu)點(diǎn)將得到最好的理解,其中:
[0010] 圖1是其中可以實(shí)現(xiàn)說明性實(shí)施例的各方面的分布式數(shù)據(jù)處理系統(tǒng)的示例圖;
[0011] 圖2是其中可以實(shí)現(xiàn)說明性實(shí)施例的各方面的計(jì)算設(shè)備的示例框圖;
[0012] 圖3是當(dāng)跨鏈路進(jìn)行流量平衡時(shí)的正常操作期間鏈路聚合組的示例圖;
[0013] 圖4說明了其中從交換機(jī)流到鏈路聚合組(LAG)的流量變得不平衡的情況;
[0014] 圖5是根據(jù)一種說明性實(shí)施例的鏈路聚合控制協(xié)議(LACP)消息的LACP首部的示 例圖;及
[0015] 圖6是概述根據(jù)一種說明性實(shí)施例的用于執(zhí)行進(jìn)入流量平衡的示例操作的流程 圖。
【具體實(shí)施方式】
[0016] 如以上所提到的,用于增加網(wǎng)絡(luò)連接的可靠性和吞吐量的一種機(jī)制是使用鏈路聚 合并且把多條鏈路聚合到鏈路聚合組(LAG)中。但是,在當(dāng)前的聚合模型下出現(xiàn)了一個(gè)問 題,因?yàn)榱髁苛鳎〝?shù)據(jù)、數(shù)據(jù)包、幀等從一個(gè)元件到另一個(gè)元件的流)和使用中的適配器當(dāng) 中的負(fù)載分配是通過元組,例如源地址、源端口、目的地地址和目的地端口的元組,確定的。 在活動(dòng)的元組空間中缺乏足夠的熵是關(guān)于入口流,即,從交換機(jī)到LAG,流量的不平衡分布 的關(guān)鍵因素。在這種語境下,熵指隨機(jī)性的測(cè)量,其中高端口熵允許連接跨LAG中所有可用 端口均勻地分配,沒有任何偏斜。因?yàn)殒溌肥前凑赵M來規(guī)定的,所以,即使在使用鏈路聚 合時(shí),特定鏈路的流量也傾向于經(jīng)過單個(gè)端口而不是多個(gè)端口,使得可以避免亂序包,從而 導(dǎo)致缺乏足夠的熵。流量被指向的特定端口是在流量到達(dá)主機(jī)系統(tǒng)的網(wǎng)絡(luò)適配器之前確定 的,因此不能由主機(jī)系統(tǒng)控制。例如,散列算法可以被網(wǎng)絡(luò)的交換機(jī)用來取得包的字段并且 生成指向特定散列桶的散列索引,該散列桶識(shí)別該連接與其關(guān)聯(lián)的對(duì)應(yīng)端口。
[0017] 外出分配,S卩,從LAG到交換機(jī),是由軟件控制的,其中在主機(jī)系統(tǒng)上執(zhí)行的軟件 可以通過執(zhí)行負(fù)載平衡操作來確保LAG的鏈路當(dāng)中適當(dāng)?shù)牧髁糠峙?。因而,即使外出流?控制在主機(jī)的LAG機(jī)制的控制之內(nèi),但進(jìn)入流量平衡在這種LAG機(jī)制控制之外。LAG耦合到 的交換機(jī)綁定到元組約束,以確保在LAG-側(cè)不發(fā)生亂序處理。具有一種允許LAG向交換 機(jī)指示如何以及何時(shí)執(zhí)行入口流的再平衡以使得在不考慮特定的流量流的情況下獲得最 優(yōu)性能的機(jī)制將是有益的。
[0018] 說明性實(shí)施例提供了用于在鏈路聚合組(LAG)中進(jìn)行自主流量負(fù)載平衡的機(jī)制。 利用說明性實(shí)施例的機(jī)制,LAG與關(guān)聯(lián)的交換機(jī)協(xié)調(diào),以協(xié)商進(jìn)入流量流在LAG的成員當(dāng)中 的合理過渡。在有些說明性實(shí)施例中,鏈路聚合控制協(xié)議(LACP)被擴(kuò)展成包括擴(kuò)展字段, 以允許向交換機(jī)傳遞指示用于進(jìn)入流量再平衡的選項(xiàng)的信息。利用說明性實(shí)施例的機(jī)制, 通過在交換機(jī)和LAG之間不斷流動(dòng)的心跳消息中提供擴(kuò)展字段,進(jìn)入流量的平衡在LAG的 控制之下。這些擴(kuò)展字段包含關(guān)于LAG中哪些鏈路被過度使用的信息。擴(kuò)展字段還可以包 含關(guān)于LAG中哪些鏈路是在以別的方式映射到過度使用鏈路的流量應(yīng)當(dāng)重定向到的鏈路 的信息。當(dāng)把流量從LAG中過度使用的鏈路重新路由到LAG中期望的鏈路時(shí),交換機(jī)使用 這種信息。以這種方式,進(jìn)入流量在主機(jī)系統(tǒng)的LAG控制之下被再平衡。
[0019] 在網(wǎng)絡(luò)性能瓶頸在端點(diǎn),即,源或目的地計(jì)算設(shè)備處被看到的情形下,說明性實(shí)施 例提供了緩解(relief)。說明性實(shí)施例允許系統(tǒng)管理員通過向LAG,例如以太通道,添加更 多適配器來減小網(wǎng)絡(luò)壓力。說明性實(shí)施例的負(fù)載平衡在不需要對(duì)通信設(shè)備上的各種度量進(jìn) 行測(cè)量以確保端口熵的情況下就可以實(shí)現(xiàn)。此外,說明性實(shí)施例不受亂序包問題影響,而這 種亂序包問題困擾著輪轉(zhuǎn)負(fù)載平衡方法。
[0020] 本發(fā)明說明性實(shí)施例的以上各方面和優(yōu)點(diǎn)將在下文中參考附圖更具體地描述。應(yīng) 當(dāng)認(rèn)識(shí)到,附圖僅僅是要說明本發(fā)明的示例性實(shí)施例。本發(fā)明可以涵蓋未在附圖中明確示 出但是鑒于說明性實(shí)施例的本描述對(duì)本領(lǐng)域普通技術(shù)人員來說很顯然的方面、實(shí)施例,以 及對(duì)所繪出的示例性實(shí)施例的修改。
[0021] 所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算 機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、 完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方 式,這里可以統(tǒng)稱為"電路"、"模塊"或"系統(tǒng)"。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面 還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介 質(zhì)中包含計(jì)算機(jī)可用的程序代碼。
[0022]