本文來自“DPU技術發展及落地實戰(2023)”,隨著云計算、虛擬化技術的發展,網卡也隨之發展,從功能和硬件結構上基本可劃分為4個階段。
1.傳統基礎網卡(NIC)。負責數據報文的收發,具有較少的硬件卸載能力。硬件上以ASIC硬件邏輯實現網絡物理鏈路層,以及MAC層的報文處理,后期NIC標卡也支持了,諸如CRC校驗的功能。不具有編程能力。
2.智能網卡(SmartNIC)。具備一定的數據平面硬件卸載能力,例如OVS/vRouter硬件卸載。硬件結構上以FPGA或者是帶有FPGA和處理器內核的集成處理器(這里處理器功能較弱)來實現數據面硬件卸載。
3.FPGA+CPU的DPU網卡(FPGA-Based DPU)。兼具智能網卡功能的同時,可以支持數據面和控制面的卸載以及一定的控制平面與數據平面的可編程能力。硬件結構的發展上,基于FPGA增加了通用CPU處理器,例如Inte1 CPU。
4.DPU SoC網卡(Single-Chip DPU)。單芯片的通用可編程DPU芯片,具備豐富的硬件卸載加速和可編程能力,支持不同云計算場景和資源統一管理特性。
硬件上,采用單芯片的SoC形態,兼顧性能和功耗。FPGA-Based DPU在硬件設計上的挑戰主要來自芯片面積和功耗。
面積上,PCIe接口的結構尺寸限定了板上的芯片面積;
功耗上,板卡的散熱設計與芯片和整板的功耗密切相關。
這兩個因素制約著FPGA方案的持續發展。DPU SoC方案吸取了從NIC到FPGA-Based DPU的發展過程的軟硬件經驗和成果,是目前以DPU為中心的數據中心架構的重要演進路徑。
DPU作為軟件定義芯片的典型代表,基于“軟件定義、硬件加速”的理念,是集數據處理為核心功能于芯片的通用處理器。DPU通用處理單元用來處理控制平面業務,專用處理單元保證了數據平面的處理性能,從而達到了性能與通用性的平衡。DPU專用處理單元用來解決通用基礎設施虛擬化的性能瓶頸,通用處理單元則保證DPU的通用性,使得DPU能夠廣泛適用于云基礎設施的各種場景中,實現虛擬化軟件框架向DPU的平滑遷移。
NIC的發展和應用
傳統基礎網卡NIC,又稱網絡適配器,是構成計算機網絡系統中最基本和最重要的連接設備,其主要工作是將需要傳輸的數據轉換為網絡設備能夠識別的格式在網絡技術發展的帶動下,傳統基礎網卡的功能也更加豐富,已經初步具備了一些簡單的硬件卸載能力(如CRC校驗、TSO/UF0、LSO/LR0、VLAN等),支持SR-IOV和流量管理QoS,傳統基礎網卡的網絡接口帶寬也由原來的百兆、千兆發展到10G、25G乃至100G。
在云計算虛擬化網絡中,傳統基礎網卡向虛擬機提供網絡接入的方式主要分為以下3種。
(1)網卡接收流量經操作系統內核協議棧轉發至虛擬機。
(2)由DPDK用戶態驅動接管網卡,讓數據包繞過操作系統內核協議棧直接拷貝到虛擬機內存。
(3)使用SR-IOV技術,將物理網卡PF虛擬化成多個具有網卡功能的虛擬VF,再將VF直通到虛擬機中。
隨著VxLAN等隧道協議以及OpenFlow、0VS等虛擬交換技術的應用,網絡處理的復雜度在逐漸增大,需要消耗更多的CPU資源,因此智能網卡SmartNIC誕生了。
2.SmartNIC的發展和應用
智能網卡SmartNIC除了具備傳統基礎網卡的網絡傳輸功能外,還提供豐富的硬件卸載加速能力,能夠提升云計算網絡的轉發速率,釋放主機CPU計算資源。
智能網卡SmartNIC上沒有通用處理器CPU,需要主機CPU進行控制面管理。智能網卡SmartNIC主要卸載加速對象是數據平面,如虛擬交換機0VS/vRouter等數據面Fastpath卸載、RDMA網絡卸載、NVMe-oF存儲卸載以及IPsec/TLS數據面安全卸載等。
但是隨著云計算應用中網絡速率的不斷提高,主機仍會消耗大量寶貴的CPU資源對流量進行分類、跟蹤和控制,如何實現主機CPU的“零消耗”成了云廠商下一步的研究方向。
3.FPGA-Based DPU網卡的發展和應用
相比智能網卡SmartNIC,FPGA-Based DPU網卡在硬件架構上增加了通用CPU處理單元,組合成FPGA+CPU的架構形態,從而便于實現對網絡、存儲、安全和管控等通用基礎設施的加速和卸載。
在這個階段中,DPU的產品形態主要以FPGA+CPU為主。基于FPGA+CPU硬件架構的DPU具有良好的軟硬件可編程性,在DPU發展初期大部分DPU廠商都選擇了這個方案。該方案開發時間相對較短且迭代快速,能夠迅速完成定制化功能開發,便于DPU廠商快速推出產品,搶占市場。但是隨著網絡帶寬從25G向100G的遷移,基于FPGA+CPU硬件架構的DPU受到芯片制程和FPGA結構的限制,導致在追求更高吞吐能力時,難以做到對芯片面積和功耗的很好控制,從而制約了這種DPU架構的持續發展。
4.DPU SoC網卡的發展和應用
DPU SoC是基于ASIC的硬件架構,結合了ASIC和CPU的優勢,兼顧了專用加速器的優異性能和通用處理器的可編程靈活性的單芯片DPU技術方案,是驅動云計算技術發展的重要因素。
如前一段所述,雖然DPU在云計算扮演著重要的作用,但傳統的DPU方案多以FPGA-based方案呈現,隨著服務器從25G向下一代100G服務器遷移,其成本、功耗、功能等諸多方面受到了嚴重的挑戰。單芯片的DPU SoC不僅在成本、功耗方面有著巨大優勢,同時也兼具高吞吐和高靈活編程能力,不僅支持虛擬機、容器的應用管理部署,也支持裸金屬應用。
隨著DPU技術的不斷發展,通用可編程的DPU SoC正在成為云廠商在數據中心建設中的關鍵部件。DPU SoC可以實現對數據中心中的計算資源和網絡資源的經濟高效管理,具備豐富功能和可編程能力的DPUSoC可以支持不同云計算場景和資源統一管理,優化數據中心計算資源利用率。
在DPU的設計、開發和使用中,國內外芯片巨頭和頭部云服務商都投入了大量的研發資源,經過不斷探索和實踐,取得了很好的成本收益。
1.DPU在AWS(亞馬遜云)中的應用
AWS是全球領先的云計算服務和解決方案提供商,AWS NitroDPU系統已經成為AWS云服務的技術基石。AWS借助Nitro DPU系統把網絡、存儲、安全和監控等功能分解并轉移到專用的硬件和軟件上,將服務器上幾乎所有資源都提供給服務實例,極大地降低了成本。Nitro DPU在亞馬遜云中的應用可以使一臺服務器每年可以多獲得幾千美元的收益。Nitro DPU系統主要分為以下幾個部分。
(1)Nitro卡。一系列用于網絡、存儲和管控的專用硬件,以提高整體系統性能。
(2)Nitro安全芯片。將虛擬化和安全功能轉移到專用的硬件和軟件上,減少攻擊面,實現安全的云平臺。
(3)Nitro控制卡。一種輕量型Hypervisor管理程序,可以管理內存和CPU的分配,并提供與裸機無異的性能。
Nitro DPU系統提供了密鑰、網絡、安全、服務器和監控等功能支持,釋放了底層服務資源供客戶的虛擬機使用,并且NitroDPU使AWS可以提供更多的裸金屬實例類型,甚至將特定實例的網絡性能提升到100Gbps。
2.Nvidia DPU的應用
Nvidia是一家以設計和銷售圖形處理器GPU為主的半導體公司,GPU產品在AI和高性能計算HPC領域被廣泛應用。2020年4月,Nvidia以69億美元的價格收購了網絡芯片和設備公司Mellanox,隨后陸續推出BlueField系列DPU。
Nvidia BlueField-3DPU(如圖7所示)延續了BlueField-2DPU的先進特性,是首款為AI和加速計算而設計的DPU。BlueField-3 DPU提供了最高400Gbps網絡連接,可以卸載、加速和隔離,支持軟件定義網絡、存儲、安全和管控功能。
3.Intel?IPU的應用
Intel IPU是一種具有硬化加速器和以太網連接的高級網絡設備,可使用緊密耦合的專用可編程內核來加速和管理基礎設施功能。IPU提供完整的基礎設施卸載,并充當運行基礎設施應用的主機控制點,以提供額外的安全層。使用Intel IPU,可以將全部基礎設施業務從服務器卸載到IPU上,釋放服務器CPU資源,也為云服務提供商提供了一個獨立且安全的控制點。
2021年,Intel在Intel Architecture Day上發布了OakSprings Canyon和Mount Evans IPU產品。其中,Oak Springs Canyon是基于FPGA的IPU產品,Mount EvansIPU是基于ASIC的IPU產品。
Intel Oak Springs Canyon IPU配備了Intel Agilex FPGA和Xeon-D CPU。Intel Mount Evans IPU是Intel與Google共同設計的SoC(System-on-a-Chip),Mount Evans主要分為I0子系統和計算子系統兩個部分。網絡部分用ASIC進行數據包處理,性能相比FPGA高很多,且功耗更低。計算子系統使用了16個ARM Neoverse N1核心,擁有極強的計算能力。
4.DPU在阿里云中的應用
阿里云也在DPU的技術上不斷進行著探索。2022年阿里云峰會上,阿里云正式發布了云基礎設施處理器CIPU,CIPU的前身是基于神龍架構的MoC卡(Micro Server on a Card),從功能和定位符合DPU的定義。MoC卡擁有獨立的I0、存儲和處理單元,承擔了網絡、存儲和設備虛擬化的工作。第一代和第二代MoC卡解決了狹義上的計算虛擬化零開銷問題,網絡和存儲部分的虛擬化仍由軟件實現。第三代MoC卡實現了部分網絡轉發功能硬化,網絡性能大幅提升。第四代MoC卡實現了網絡、存儲全硬件卸載,還支持了RDMA能力。
阿里云CIPU作為一顆為飛天系統設計的數據中心處理器系統,對于阿里云構建新一代完整的軟硬件云計算架構體系有著重大意義。
5.DPU在火山引擎中的應用
火山引擎同樣在不斷探索自研DPU的道路,其自研DPU采用軟硬一體虛擬化技術,旨在為用戶提供可彈性伸縮的高性能計算服務。在火山引擎彈性計算產品中,第二代彈性裸金屬服務器和第三代云服務器都搭載了自研DPU,在產品能力和應用場景上進行了廣泛驗證。2022年正式對外商用的火山引擎第二代EBM實例首次搭載火山自研DPU,在整體性能上既保留了傳統物理機的穩定性和安全性優勢,能夠實現安全物理隔離,又兼具虛擬機的彈性和靈活性優勢,是新一代多優勢兼具的高性能云服務器。2023年上半年發布的火山引擎第三代ECS實例同樣結合了火山引擎自研最新DPU的架構和自研虛擬交換機、虛擬化技術,網絡及存儲IO性能均實現了大幅提升。
審核編輯:黃飛
?
評論
查看更多