DPU數(shù)據(jù)平面需要一種大規(guī)模敏捷異構(gòu)的計(jì)算架構(gòu)。這一部分的實(shí)現(xiàn)也處在“百家爭(zhēng)鳴”的階段,各家的實(shí)現(xiàn)方式差別較大,有基于通用處理器核的方式,有基于可編程門(mén)陣列FPGA的方式,也有基于異構(gòu)眾核的方式,還有待探索。
網(wǎng)絡(luò)功能卸載
網(wǎng)絡(luò)功能卸載是伴隨云計(jì)算網(wǎng)絡(luò)而產(chǎn)生的,主要是對(duì)云計(jì)算主機(jī)上的虛擬交換機(jī)的能力做硬件卸載,從而減少主機(jī)上消耗在網(wǎng)絡(luò)上的CPU算力,提高可售賣(mài)計(jì)算資源。
目前除了公有云大廠采用自研云平臺(tái),絕大部分私有云廠商都使用開(kāi)源的OpenStack云平臺(tái)生態(tài)。在OpenStack云平臺(tái)中,虛擬交換機(jī)通常是Open vSwitch,承擔(dān)著云計(jì)算中網(wǎng)絡(luò)虛擬化的主要工作,負(fù)責(zé)虛擬機(jī)(VM)與同主機(jī) 上虛擬機(jī)(VM)、虛擬機(jī)(VM)與其它主機(jī)上虛擬機(jī)(VM)、虛擬機(jī)(VM)與外部的網(wǎng)絡(luò)通信。虛擬交換機(jī)與網(wǎng)關(guān)路由器(GW)通常由同一SDN控制器來(lái)管理控制,為租戶(hù)開(kāi)通VPC網(wǎng)絡(luò)以及和外部通信的網(wǎng)絡(luò)。
主機(jī)與主機(jī) 間的網(wǎng)絡(luò)通常是Underlay網(wǎng)絡(luò),是由TOR/EOR構(gòu)建的Spine-Leaf結(jié)構(gòu)的Fabric Network。虛擬機(jī)(VM)與虛擬機(jī)(VM)通信的網(wǎng)絡(luò)是Overlay網(wǎng)絡(luò),是承載在Underlay網(wǎng)絡(luò)構(gòu)建的VxLAN,NVGRE或Geneve隧道之上的。通常VxLAN,NVGRE或Geneve的隧道端點(diǎn)(VTEP)在虛擬交換機(jī)和網(wǎng)關(guān)路由器(GW) 上。也有部分對(duì)網(wǎng)絡(luò)性能要求比較高的場(chǎng)景,采用SR-IOV替代虛擬交換機(jī),VF直通到虛擬機(jī)(VM)內(nèi)部,這樣就要求隧道端點(diǎn)(VTEP)部署在TOR上,TOR與網(wǎng)關(guān)路由器(GW)創(chuàng)建隧道,提供Overlay網(wǎng)絡(luò)服務(wù)。虛擬交換機(jī)的場(chǎng)景是最通用的應(yīng)用場(chǎng)景,所以,虛擬交換機(jī)的技術(shù)迭代也直接影響著虛擬化網(wǎng)絡(luò)的發(fā)展。
虛擬化網(wǎng)絡(luò)功能(Virtual Network Function)
行業(yè)內(nèi)主流的Hypervisor主要有Linux系統(tǒng)下的KVM-Qemu,VMWare的ESXi,微軟Azure的Hyper-V,以及亞馬遜早期用的Xen(現(xiàn)在亞馬遜已經(jīng)轉(zhuǎn)向 KVM-Qemu)。KVM-Qemu有著以Redhat為首在持續(xù)推動(dòng)的更好的開(kāi)源生態(tài),目前行業(yè)內(nèi)90%以上的云廠商都在用KVM-Qemu作為虛擬化的基礎(chǔ)平臺(tái)。
在KVM-Qemu這個(gè)Hypervisor的開(kāi)源生態(tài)里,與網(wǎng)絡(luò)關(guān)系最緊密的標(biāo)準(zhǔn)協(xié)議包括virtio和vhost,以及vhost衍生出來(lái)的vhost-vdpa。Virtio在KVM-Qemu中定義了一組虛擬化I/O設(shè)備,和對(duì)應(yīng)設(shè)備的共享內(nèi)存的通信方法,配合后端協(xié)議vhost和vhost-vdpa使用,使虛擬化I/O性能得到提升。
(1)內(nèi)核虛擬化網(wǎng)絡(luò)(vhost-net)
在虛擬化網(wǎng)絡(luò)的初期,以打通虛擬機(jī)(VM)間和與外部通信能力為主,對(duì)功能訴求遠(yuǎn)高于性能,虛擬交換機(jī)OVS(Open vSwitch)的最初版本也是基于操作系統(tǒng)Linux內(nèi)核轉(zhuǎn)發(fā)來(lái)實(shí)現(xiàn)的。
(2)用戶(hù)空間DPDK虛擬化網(wǎng)絡(luò)(vhost-user)
隨著虛擬化網(wǎng)絡(luò)的發(fā)展,虛擬機(jī)(VM)業(yè)務(wù)對(duì)網(wǎng)絡(luò)帶寬的要求越來(lái)越高,另外,英特爾和Linux基金會(huì)推出了DPDK(Data Plane Development Kit)開(kāi)源項(xiàng) 目,實(shí)現(xiàn)了用戶(hù)空間直接從網(wǎng)卡收發(fā)數(shù)據(jù)報(bào)文并進(jìn)行多核快速處理的開(kāi)發(fā)庫(kù),虛擬交換機(jī)OVS將數(shù)據(jù)轉(zhuǎn)發(fā)平面通過(guò)DPDK支持了用戶(hù)空間的數(shù)據(jù)轉(zhuǎn)發(fā),進(jìn)而實(shí)現(xiàn)了轉(zhuǎn)發(fā)帶寬量級(jí)的提升。
(3)高性能SR-IOV網(wǎng)絡(luò)(SR-IOV)
在一些對(duì)網(wǎng)絡(luò)有高性能需求的場(chǎng)景,如NFV業(yè)務(wù)部署,OVS-DPDK的數(shù)據(jù)轉(zhuǎn) 發(fā) 方 式 , 無(wú) 法 滿(mǎn) 足 高性能網(wǎng)絡(luò)的 需 求 , 這 樣 就 引 入 的 SR-IOV 透 傳(passthrough)到虛擬機(jī)(VM)的部署場(chǎng)景。
(4)Virtio硬件加速虛擬化網(wǎng)絡(luò)(vDPA)
為了解決高性能SRIOV網(wǎng)絡(luò)的熱遷移問(wèn)題,出現(xiàn)了很多做法和嘗試,尚未形成統(tǒng)一的標(biāo)準(zhǔn)。在Redhat提出硬件vDPA架構(gòu)之前,Mellanox實(shí)現(xiàn)了軟件vDPA(即VF Relay)。
云原生網(wǎng)絡(luò)功能 (1)云原生網(wǎng)絡(luò)架構(gòu)
云原生,從廣義上來(lái)說(shuō),是更好的構(gòu)建云平臺(tái)與云應(yīng)用的一整套新型的設(shè)計(jì)理念與方法論,而狹義上講則是以docker容器和Kubernetes(K8S)為支撐的云原生計(jì)算基金會(huì)(CNCF)技術(shù)生態(tài)堆棧的新式IT架構(gòu)。對(duì)比虛擬機(jī),容器應(yīng)用對(duì)磁盤(pán)的占用空間更小,啟動(dòng)速度更快,直接運(yùn)行在宿主機(jī)內(nèi)核上,因而無(wú)Hypervisor開(kāi)銷(xiāo),并發(fā)支持上百個(gè)容器同時(shí)在線,接近宿主機(jī)上本地進(jìn)程的性能,資源利用率也更高。以K8S為代表的云原生容器編排系統(tǒng),提供了統(tǒng)一調(diào)度 與彈性擴(kuò)展的能力,以及標(biāo)準(zhǔn)化組件與服務(wù),支持快速開(kāi)發(fā)與部署。
容器平臺(tái)包括容器引擎Runtime(如containerd,cri-o等),容器網(wǎng)絡(luò)接口(CNI,如calico,flannel,contiv,cilium等)和容器存儲(chǔ)接口(CSI,如EBS CSI,ceph-csi等)。
云原生對(duì)于網(wǎng)絡(luò)的需求,既有基礎(chǔ)的二三層網(wǎng)絡(luò)聯(lián)通,也有四至七層的高級(jí)網(wǎng)絡(luò)功能。二三層的網(wǎng)絡(luò)主要是實(shí)現(xiàn)K8S中的CNI接口,具體如calico,flannel,weave,contiv,cilium等。主要是支持大規(guī)模實(shí)例,快速?gòu)椥陨炜s,自 愈合,多集群多活等。四至七層網(wǎng)絡(luò)功能,主要是服務(wù)網(wǎng)格(Service Mesh)。
(2)eBPF的硬件加速
eBPF是一項(xiàng)革命性的技術(shù),可以在Linux內(nèi)核中運(yùn)行沙盒程序,而無(wú)需重新 編譯內(nèi)核或者加載內(nèi)核模塊。在過(guò)去幾年,eBPF已經(jīng)成為解決以前依賴(lài)于內(nèi)核更改或者內(nèi)核模塊的問(wèn)題的標(biāo)準(zhǔn)方法。對(duì)比在Kubernetes上Iptables的轉(zhuǎn)發(fā)路徑, 使用eBPF會(huì)簡(jiǎn)化其中大部分轉(zhuǎn)發(fā)步驟,提高內(nèi)核的數(shù)據(jù)轉(zhuǎn)發(fā)性能。Cilium是一個(gè)基于eBPF實(shí)現(xiàn)的開(kāi)源項(xiàng)目,提供和保護(hù)使用Linux容器管理平臺(tái)部署的應(yīng)用程序服務(wù)之間的網(wǎng)絡(luò)和API連接,以解決容器工作負(fù)載的新可伸縮性,安全性和可見(jiàn)性要求。
RDMA網(wǎng)絡(luò)功能
(1)RDMA網(wǎng)絡(luò)功能介紹
面對(duì)高性能計(jì)算、大數(shù)據(jù)分析和浪涌型IO高并發(fā)、低時(shí)延應(yīng)用,現(xiàn)有TCP/IP軟硬件架構(gòu)和應(yīng)用高CPU消耗的技術(shù)特征根本不能滿(mǎn)足應(yīng)用的需求。這主要體現(xiàn)在處理時(shí)延過(guò)大——數(shù)十微秒,多次內(nèi)存拷貝、中斷處理,上下文切換,復(fù)雜的TCP/IP協(xié)議處理,以及存儲(chǔ)轉(zhuǎn)發(fā)模式和丟包導(dǎo)致額外的時(shí)延。而RDMA通過(guò)網(wǎng)絡(luò)在兩個(gè)端點(diǎn)的應(yīng)用軟件之間實(shí)現(xiàn)Buffer的直接傳遞,相比TCP/IP,RDMA無(wú)需操作系統(tǒng)和協(xié)議棧的介入,能夠?qū)崿F(xiàn)端點(diǎn)間的超低時(shí)延、超高吞吐量傳輸,不需要網(wǎng)絡(luò)數(shù)據(jù)的處理和搬移耗費(fèi)過(guò)多的資源,無(wú)需OS和CPU的介入。RDMA的本質(zhì)實(shí)際上是一種內(nèi)存讀寫(xiě)技術(shù)。
RDMA和TCP/IP網(wǎng)絡(luò)對(duì)比可以看出,RDMA的性能優(yōu)勢(shì)主要體現(xiàn)在:
(1)零拷貝——減少數(shù)據(jù)拷貝次數(shù),由于沒(méi)有將數(shù)據(jù)拷貝到內(nèi)核態(tài)并處理數(shù)據(jù)包頭部到過(guò)程,傳輸延遲會(huì)顯著減少。
(2)Kernel Bypass和協(xié)議卸載——不需要內(nèi)核參與,數(shù)據(jù)通路中沒(méi)有繁瑣的處理報(bào)頭邏輯,不僅會(huì)使延遲降低,而且也節(jié)省了CPU的資源。
(2)RDMA硬件卸載方式
原生RDMA是IBTA(InfiniBand Trade Association)在2000年發(fā)布的基于InfiniBand的RDMA規(guī)范;基于TCP/IP的RDMA稱(chēng)作iWARP,在2007年形成標(biāo)準(zhǔn);基于Ethernet的RDMA叫做RoCE,在2010年發(fā)布協(xié)議,基于增強(qiáng)型以太網(wǎng)并 將傳輸層換成IB傳輸層實(shí)現(xiàn);在2014年,IBTA發(fā)布了RoCEv2,引入IP解決擴(kuò)展性問(wèn)題,可以跨二層組網(wǎng),引入U(xiǎn)DP解決ECMP負(fù)載分擔(dān)等問(wèn)題。
InfiniBand是一種專(zhuān)為RDMA設(shè)計(jì)的網(wǎng)絡(luò),從硬件級(jí)別保證可靠傳輸。全球HPC高算系統(tǒng)TOP500大效能的超級(jí)計(jì)算機(jī)中有相當(dāng)多套系統(tǒng)在使用InfiniBand Architecture(IBA)。最早做InfiniBand的廠商是IBM和HP,現(xiàn)在主要是NVIDIA的Mellanox。InfiniBand從L2到L4都需要自己的專(zhuān)有硬件,成本非常高。
iWARP直接將RDMA實(shí)現(xiàn)在TCP上,優(yōu)點(diǎn)就是成本最低,只需要采購(gòu)支出 iWARP的NIC即可以使用RDMA,缺點(diǎn)是性能不好,因?yàn)門(mén)CP協(xié)議棧本身過(guò)于重量級(jí),即使按照iWARP廠商的通用做法將TCP卸載到硬件上實(shí)現(xiàn),也很難超越 IB和RoCE的性能。
RoCE(RDMA over Converged Ethernet)是一個(gè)允許在以太網(wǎng)上執(zhí)行RDMA的網(wǎng)絡(luò)協(xié)議。由于底層使用的以太網(wǎng)幀頭,所以支持在以太網(wǎng)基礎(chǔ)設(shè)施上使用 RDMA。不過(guò)需要數(shù)據(jù)中心交換機(jī)DCB技術(shù)保證無(wú)丟包。相比IB交換機(jī)時(shí)延,交換機(jī)時(shí)延要稍高一些。由于只能應(yīng)用于二層網(wǎng)絡(luò),不能跨越IP網(wǎng)段使用,市場(chǎng)應(yīng)用場(chǎng)景相對(duì)受限。
RoCEv2協(xié)議構(gòu)筑于UDP/IPv4或UDP/IPv6協(xié)議之上。由于基于IP層,所以可以被路由,將RoCE從以太網(wǎng)廣播域擴(kuò)展到IP可路由。由于UDP數(shù)據(jù)包不具有保序的特征,所以對(duì)于同一條數(shù)據(jù)流,即相同五元組的數(shù)據(jù)包要求不得改變順序。另外,RoCEv2還要利用IP ECN等擁塞控制機(jī)制,來(lái)保障網(wǎng)絡(luò)傳輸無(wú)損。RoCEv2也是目前主要的RDMA網(wǎng)絡(luò)技術(shù),以NVIDIA的Mellanox和Intel為代表的廠商,均支持RoCEv2的硬件卸載能力。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19334瀏覽量
230186 -
云計(jì)算
+關(guān)注
關(guān)注
39文章
7837瀏覽量
137527 -
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7578瀏覽量
88926 -
DPU
+關(guān)注
關(guān)注
0文章
365瀏覽量
24211 -
RDMA
+關(guān)注
關(guān)注
0文章
77瀏覽量
8954
原文標(biāo)題:詳解DPU網(wǎng)絡(luò)卸載場(chǎng)景及架構(gòu)
文章出處:【微信號(hào):AI_Architect,微信公眾號(hào):智能計(jì)算芯世界】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論