• 正文
    • Part 01●??ECMP?●
    • Part 02●?LVS負載?●
    • Part 03●??NGINX負載?●
    • Part 04●??思考和探究?●
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

五分鐘技術(shù)趣談 | 負載均衡技術(shù)在算力網(wǎng)絡(luò)中的應(yīng)用

2023/09/25
2504
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

作者:蔡伸,單位:中國移動智慧家庭運營中心

在大力建設(shè)算力網(wǎng)絡(luò)的大背景下,隨著SDN思潮的深入推進、網(wǎng)絡(luò)集群的部署,負載均衡成為了一種不可或缺的技術(shù),它在云,網(wǎng),邊都起了至關(guān)重要的作用。本文會對常見的幾種負載均衡技術(shù)進行介紹,同時對各種技術(shù)的不足之處進行思考。

Part 01●??ECMP?

ECMP是一個逐跳的、基于流的負載均衡策略,當(dāng)路由器發(fā)現(xiàn)同一目的地址出現(xiàn)多個最優(yōu)路徑時,會更新路由表,為此目的地址添加多條規(guī)則,對應(yīng)于多個下一跳,且可同時利用這些路徑轉(zhuǎn)發(fā)數(shù)據(jù),增加帶寬。ECMP算法被多種路由協(xié)議支持,例如:OSPF、ISIS、EIGRP、BGP等。在數(shù)據(jù)中心架構(gòu)VL2中也提到使用ECMP作為負載均衡算法[1]。

簡單來說,ECMP是基于路由層面實現(xiàn)的負載均衡,基于IP層進行負載有許多優(yōu)點,具體如下:

(1)部署配置簡單,可以基于很多協(xié)議自身特性實現(xiàn)負載,無需額外配置。

(2)提供多種流量調(diào)度算法方式,可以基于哈希也可以基于權(quán)重和輪詢方式。

簡單的方式同時意味著存在許多缺陷,具體如下:

(1)可能加劇鏈路堵塞。因為ECMP不會判斷原先鏈路是否已經(jīng)堵塞,都會將流量進行負載,這樣子會導(dǎo)致原先堵塞的鏈路更加堵塞。

(2)很多情況下負載效果不好。ECMP無法區(qū)分多條網(wǎng)絡(luò)后的流量空閑情況以及ECMP在流量差距大的情況下負載性能差。

這種基于網(wǎng)絡(luò)三層的負載方式雖然易于使用和部署,但是無法滿足業(yè)務(wù)層面的使用,無法保持會話,故下面筆者會介紹幾種網(wǎng)絡(luò)四層以上的負載方式。

Part 02●?LVS負載?

LVS(Linux Virtual Server)即Linux虛擬服務(wù)器,是由章文嵩博士主導(dǎo)的開源負載均衡項目,目前LVS已經(jīng)被集成到Linux內(nèi)核模塊中。該項目在Linux內(nèi)核中實現(xiàn)了基于IP的數(shù)據(jù)請求負載均衡調(diào)度方案,終端互聯(lián)網(wǎng)用戶從外部訪問公司的外部負載均衡服務(wù)器,終端用戶的Web請求會發(fā)送給LVS調(diào)度器,調(diào)度器根據(jù)自己預(yù)設(shè)的算法決定將該請求發(fā)送給后端的某臺Web服務(wù)器,比如,輪詢算法可以將外部的請求平均分發(fā)給后端的所有服務(wù)器,終端用戶訪問LVS調(diào)度器雖然會被轉(zhuǎn)發(fā)到后端真實的服務(wù)器,但如果真實服務(wù)器連接的是相同的存儲,提供的服務(wù)也是相同的服務(wù),最終用戶不管是訪問哪臺真實服務(wù)器,得到的服務(wù)內(nèi)容都是一樣的,整個集群對用戶而言都是透明的。最后根據(jù)LVS工作模式的不同,真實服務(wù)器會選擇不同的方式將用戶需要的數(shù)據(jù)發(fā)送到終端用戶,LVS工作模式分為NAT模式、TUN模式、以及DR模式【2】。

圖1 LVS結(jié)構(gòu)圖

與ECMP不同的是LVS是基于會話的四層負載均衡,LVS會基于上下行五元組對不同的流進行會話保持,再結(jié)合LVS的長期發(fā)展,LVS具有非常多的優(yōu)勢:

(1)抗負載能力強。LVS只在網(wǎng)絡(luò)四層做分發(fā),不會過多的消耗CPU和內(nèi)存資源。

(2)配置要求低。簡單配置就能夠正常使用。

(3)健壯性強。發(fā)展時間長,業(yè)內(nèi)的部署方案非常多,穩(wěn)定性高。

于此同時,LVS也存在許多不足:

(1)功能不夠豐富。配置簡單的同時導(dǎo)致LVS缺少更多的功能,缺少故障遷移,添加恢復(fù)等功能。

(2)NAT模式性能受限,當(dāng)然這也是很多四層負載所面臨的問題,筆者會在后續(xù)提出思考。

Part 03●??NGINX負載?

NIGINX除了作為一個高性能的HTTP服務(wù)器,同時能夠提供反向代理WBE服務(wù)器的功能,也就意味著部署NGINX作為一臺負載均衡服務(wù)器是可行的。當(dāng)然,業(yè)內(nèi)已經(jīng)非常廣泛的在使用NGINX作為負載均衡服務(wù)器,服務(wù)集群,主備鏈路等。

NGINX和LVS類似,都是基于四層以上的負載均衡,能夠保持會話。同時因為NGINX工作在網(wǎng)絡(luò)七層,相比LVS負載,NGINX對網(wǎng)絡(luò)的依賴會更小。

相比LVS負載均衡,NGINX具有如下優(yōu)勢:

(1)對網(wǎng)絡(luò)依賴小。只要網(wǎng)絡(luò)能通就能做負載,不像LVS部分模式需要特定的網(wǎng)絡(luò)環(huán)境。

(2)安裝簡單,配置部署快。

(3)NIGINX負載可以檢測到服務(wù)器內(nèi)部故障。簡單來說,上傳文件時發(fā)生故障,NIGINX會自動將上傳切到另一臺負載設(shè)備處理,LVS無法如此使用。

同樣的,NGINX也存在一些缺點:

(1)缺少雙機熱備方案,多數(shù)情況下單機部署存在一定風(fēng)險。(2)功能調(diào)整度高,變相導(dǎo)致它的維護成本和難度高于LVS。

Part 04●??思考和探究?

綜合以上幾種常見的負載技術(shù)的優(yōu)缺點,其實不難發(fā)現(xiàn)各有各的好處,然而在實際使用過程中,筆者發(fā)現(xiàn)這幾種方式都很難滿足高性能跨網(wǎng)負載,即在做FULL-NAT的前提下實現(xiàn)跨城域網(wǎng)的負載,簡單來說,就是在實驗多節(jié)點云化部署時,這些方案都存在一定的性能貧瘠。

基于此,經(jīng)過查閱相關(guān)資料,筆者發(fā)現(xiàn)Cisco開源的VPP項目提供了一種高性能負載均衡器的方式,基于DPDK收發(fā)包,VPP的高性能處理,經(jīng)過二次開發(fā)可以實現(xiàn)跨網(wǎng)高性能負載,目前已經(jīng)取得一定成效。下一期將針對這種高性能四層跨網(wǎng)負載均衡技術(shù)展開介紹和討論。

未來,智慧家庭運營中心會在實現(xiàn)高性能跨網(wǎng)負載均衡器上進行更多的研究,歡迎更多的開發(fā)架構(gòu)人員投入到高性能跨網(wǎng)負載均衡器的功能開發(fā)和場景探究之中來。

參考文獻

[1] 深入看ECMP(詳解其實現(xiàn)機制)https://blog.csdn.net/aiaiai010101/article/details/84673687,CSDN, 2018.

[2]??LVS負載均衡(LVS簡介、三種工作模式、十種調(diào)度算法)https://cloud.tencent.com/developer/article/2054205,騰訊云, 2022.

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
ISO1042BQDWVRQ1 1 Texas Instruments Automotive, isolated CAN transceiver with 70-V bus fault protection & flexible data rate 8-SOIC -40 to 125

ECAD模型

下載ECAD模型
$39.02 查看
TJA1021T/20/C,118 1 NXP Semiconductors TJA1021 - LIN 2.1/SAE J2602 transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.51 查看
TCAN1042VDRBRQ1 1 Texas Instruments Automotive fault-protected CAN transceiver with I/O level shifting and flexible data-rate 8-SON -55 to 125

ECAD模型

下載ECAD模型
$7.05 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

移動Labs是中國移動的社交化新媒體平臺,是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進門戶。