摘要:
我們研究了使用SmartNIC加速服務(wù)器在數(shù)據(jù)中心執(zhí)行基于微服務(wù)的應(yīng)用程序怎诫,發(fā)現(xiàn)通過將合適的微服務(wù)卸載到智能NIC的低功耗處理器上桂敛,我們可以提高服務(wù)器的能量效率信卡,而不會(huì)造成延遲損失全度。 然而,作為主機(jī)數(shù)據(jù)路徑中的異構(gòu)計(jì)算基板闻镶,SmartNIC為微服務(wù)平臺(tái)帶來了幾個(gè)挑戰(zhàn): 網(wǎng)絡(luò)流量路由和負(fù)載平衡甚脉,異構(gòu)硬件上的微服務(wù)放置,以及共享智能NIC資源的爭(zhēng)用儒溉。
我們介紹了E3宦焦,一個(gè)用于SmartNIC加速服務(wù)器的微服務(wù)執(zhí)行平臺(tái), E3遵循Azure Service Fabric微服務(wù)平臺(tái)的設(shè)計(jì)理念,并將關(guān)鍵系統(tǒng)組件擴(kuò)展到SmartNIC波闹,以解決上述挑戰(zhàn)酝豪。
E3采用了三種關(guān)鍵技術(shù):
- 通過Smart NIC實(shí)現(xiàn)基于ECMP的負(fù)載平衡
- 網(wǎng)絡(luò)拓?fù)涓兄奈⒎?wù)放置
- 能夠檢測(cè)Smart NIC過載的數(shù)據(jù)平面編排器
我們使用Cavium LiquidIO SmartNIC的E3原型表明,SmartNIC卸載可以將集群能量效率提高3倍精堕,成本效率提高1.9倍孵淘,包括實(shí)時(shí)分析,IoT中心和虛擬網(wǎng)絡(luò)功能歹篓。
背景/問題:
能效已成為數(shù)據(jù)中心設(shè)計(jì)的主要因素瘫证,美國(guó)數(shù)據(jù)中心每年消耗約700億千瓦每小時(shí)的能源(約占總能源消耗的2%) ,其中多達(dá)57%的能量被服務(wù)器使用庄撮。 因此背捌,提高服務(wù)器的能效勢(shì)在必行,最近的一種選擇是在服務(wù)器網(wǎng)絡(luò)接口卡(NIC)中集成低功耗處理器洞斯。例如Netronome Agilio-CX 毡庆,Mellanox BlueField,Broadcom Stingray 和Cavium LiquidIO烙如,它們依賴于基于ARM / MIPS的處理器和板載內(nèi)存么抗。這些SmartNIC可以處理微秒級(jí)的客戶端請(qǐng)求,但比服務(wù)器CPU消耗的能量少得多亚铁, 通過與主機(jī)服務(wù)器共享空閑電源和機(jī)箱蝇刀,SmartNIC還有望比其他異構(gòu)或低功耗群集更具能源效率和成本效益。
如今徘溢,越來越多的云應(yīng)用程序已構(gòu)建為微服務(wù)吞琐,這促使我們重新審視云中的SmartNIC卸載。
微服務(wù)通常具有足夠小的內(nèi)存空間以用于SmartNIC卸載甸昏,并且它們的編程模型有效地支持異構(gòu)平臺(tái)上的透明執(zhí)行顽分。 通過共享數(shù)據(jù)中心基礎(chǔ)架構(gòu)上的微服務(wù)平臺(tái)部署微服務(wù),這些平臺(tái)提取并分配物理數(shù)據(jù)中心計(jì)算節(jié)點(diǎn)施蜜,提供可靠且可用的執(zhí)行環(huán)境,并通過一組通用的運(yùn)行時(shí)API與已部署的微服務(wù)進(jìn)行交互雌隅。大型Web服務(wù)已經(jīng)在成千上萬的服務(wù)器上使用微服務(wù)翻默。
我們正在探索如何將每臺(tái)服務(wù)器的多個(gè)SmartNIC集成到微服務(wù)平臺(tái)中,以期以最小的延遲成本實(shí)現(xiàn)更高的能源效率恰起。
但是修械,將SmartNIC透明地集成到微服務(wù)平臺(tái)中并非易事。與傳統(tǒng)的異構(gòu)群集不同检盼,SmartNIC與主機(jī)服務(wù)器并置肯污,從而引發(fā)了許多問題:
- 首先,SmartNIC和主機(jī)共享相同的MAC地址,我們需要一種有效的機(jī)制來路由和負(fù)載均衡到主機(jī)和SmartNIC的流量蹦渣。
- 其次哄芜,SmartNIC位于主機(jī)的數(shù)據(jù)路徑中,SmartNIC上運(yùn)行的微服務(wù)可能會(huì)干擾主機(jī)上的微服務(wù)柬唯,微服務(wù)需要適當(dāng)放置以平衡網(wǎng)絡(luò)到計(jì)算帶寬认臊。
- 最后,微服務(wù)可能會(huì)爭(zhēng)用共享的SmartNIC資源從而導(dǎo)致過載锄奢,我們需要有效地檢測(cè)和預(yù)防這種情況失晴。
解決辦法:
我們提出了E3,這是一種用于SmartNIC加速服務(wù)器的微服務(wù)執(zhí)行平臺(tái)拘央,可以解決這些問題涂屁。
E3遵循Azure Service Fabric微服務(wù)平臺(tái)的設(shè)計(jì)理念,并擴(kuò)展了關(guān)鍵系統(tǒng)組件灰伟,以允許將微服務(wù)透明卸載到SmartNIC胯陋。 為了平衡SmartNIC和主機(jī)之間的網(wǎng)絡(luò)請(qǐng)求流量,E3在機(jī)架頂部(ToR)交換機(jī)上采用了等價(jià)多路徑(ECMP)負(fù)載平衡袱箱,并在主機(jī)和SmartNIC之間提供了高性能的PCIe通信機(jī)制遏乔。 為了平衡計(jì)算需求,我們引入了HCM(一種分層的发笔,可感知通信的微服務(wù)放置算法)盟萨,并結(jié)合了可以通過微服務(wù)遷移檢測(cè)和消除SmartNIC過載的數(shù)據(jù)平面編排器。 這使E3可以優(yōu)化服務(wù)器能效了讨,而對(duì)客戶端請(qǐng)求延遲的影響最小捻激。
總結(jié):
E3其實(shí)是將Azure Service Fabric微服務(wù)平臺(tái)的關(guān)鍵系統(tǒng)組件(編程模型,執(zhí)行引擎前计,通信子系統(tǒng)胞谭,調(diào)度)擴(kuò)展到SmartNIC,但有個(gè)重要的點(diǎn)男杈,之前的微服務(wù)平臺(tái)假定所有計(jì)算節(jié)點(diǎn)之間具有統(tǒng)一的通信性能丈屹,但是其實(shí)SmartNIC-Host(通過PCIe)和SmartNIC-SmartNIC(通過ToR交換機(jī))的通信往返時(shí)間比主機(jī)-主機(jī)(通過ToR交換機(jī))內(nèi)核旁路通信分別低83.3%和86.2%,E3考慮了這種拓?fù)湫?yīng)獲得的良好性能伶棒。
鏈接:https://pan.baidu.com/s/1AYA0Sqfj0F0RiFaLCFdeUQ
提取碼:h85u
為了講這個(gè)組合還做了一天的PPT旺垒,害,詳細(xì)的都在里面了肤无,自己碼一下先蒋。