隨著云計算和虛擬化技術的發(fā)展,網(wǎng)卡在功能和硬件結構方面也經(jīng)歷了四個階段,即網(wǎng)卡、智能網(wǎng)卡、基于FPGA的DPU和DPU SoC網(wǎng)卡。本文將重點介紹這些不同類型的網(wǎng)絡適配器和處理器,在硬件、可編程能力、開發(fā)和應用方面的特點。
網(wǎng)卡的演進和應用
傳統(tǒng)的基本網(wǎng)卡,也被稱為NIC或網(wǎng)絡適配器,在計算機網(wǎng)絡中的作用至關重要。它的主要功能是將數(shù)據(jù)轉換為網(wǎng)絡設備之間高效傳輸所需的格式。隨著時間的推移,網(wǎng)卡的功能不斷擴展,除了融合額外功能,還具備基本的硬件卸載功能,例如CRC校驗、TSO/UF0、LSO/LR0以及VLAN支持等。它還支持SR-IOV以實現(xiàn)虛擬化和QoS以提升網(wǎng)絡性能。在網(wǎng)絡接口帶寬方面,它已經(jīng)從100M和1000M的速率演進到支持更高速率的10G、25G甚至100G。
在云計算虛擬化網(wǎng)絡中,傳統(tǒng)的基本網(wǎng)卡提供了三種主要方法來為虛擬機提供網(wǎng)絡訪問。
1. 通過操作系統(tǒng)內(nèi)核協(xié)議棧,網(wǎng)卡將傳入的流量轉發(fā)到虛擬機。
2. DPDK用戶態(tài)驅動程序繞過內(nèi)核協(xié)議棧,直接將數(shù)據(jù)包復制到虛擬機的內(nèi)存中,以提高性能。
3. SR-IOV技術將物理網(wǎng)卡虛擬化為多個直接分配給虛擬機的虛擬功能(VF)。
隨著VxLAN等隧道協(xié)議和虛擬交換技術等網(wǎng)絡復雜性的增加,對CPU資源的需求也越來越高。智能網(wǎng)卡通過從CPU中卸載網(wǎng)絡處理任務,提升整體網(wǎng)絡性能,從而應對這一挑戰(zhàn)。
智能網(wǎng)卡的演進和應用
智能網(wǎng)卡不僅提供傳統(tǒng)基本網(wǎng)卡中的網(wǎng)絡傳輸功能,還融合數(shù)據(jù)平面硬件卸載功能,例如使用FPGA或集成處理器與FPGA和處理器核心的OVS/vRouter硬件卸載。這些智能網(wǎng)卡提升云計算網(wǎng)絡的轉發(fā)速率,并減輕主機CPU的計算資源負擔。
與傳統(tǒng)的網(wǎng)卡不同,智能網(wǎng)卡不包含通用的CPU。相反,它們依賴主機CPU來管理控制平面。智能網(wǎng)卡卸載加速的主要焦點是數(shù)據(jù)平面,涵蓋了諸如0VS/vRouter等虛擬交換機的快速路徑卸載、RDMA網(wǎng)絡卸載、NVMe-oF存儲卸載和IPsec/TLS數(shù)據(jù)平面安全卸載等任務。
然而,隨著云計算應用中網(wǎng)絡速度的不斷提高,主機CPU仍然需要大量的資源用于流量分類、跟蹤和控制。實現(xiàn)主機CPU的“零消耗”已成為云服務提供商的下一個研究方向,旨在盡可能減少主機CPU參與這些任務。
基于FPGA的數(shù)據(jù)處理單元(DPU)的演進和應用
基于FPGA的數(shù)據(jù)處理單元(DPU)是一種智能網(wǎng)卡,可以卸載數(shù)據(jù)并具有平面控制功能。它在控制平面和數(shù)據(jù)平面上都是部分可編程的。在硬件方面,它包括一個基于FPGA的通用CPU處理器,例如英特爾CPU。
與智能網(wǎng)卡相比,基于FPGA的數(shù)據(jù)處理單元(DPU)通過整合通用CPU處理單元來增強硬件架構,形成了FPGA+CPU架構。這種配置有助于加速和卸載各種基礎設施組件,包括網(wǎng)絡、存儲、安全和管理。目前,主流形式的DPU是FPGA+CPU配置,基于這種架構的DPU具有出色的軟件和硬件可編程性。
在DPU的早期開發(fā)階段,它提供了更短的開發(fā)時間和快速迭代,便于快速定制功能。這使得DPU制造商能夠快速推出產(chǎn)品并抓住市場機遇。然而,隨著網(wǎng)絡帶寬從25G過渡到100G,基于FPGA+CPU的DPU架構由于芯片工藝和FPGA結構的限制遇到挑戰(zhàn)。這些限制使得在追求更高吞吐量的同時,有效控制芯片面積和功耗變得困難。因此,這種DPU架構的持續(xù)發(fā)展受到了阻礙。
DPU SoC網(wǎng)卡的演進和應用
與基于FPGA的架構不同,基于應用專用集成電路(ASIC)的DPU SoC將專用加速器的性能與通用處理器的可編程性相結合,解決了成本、功耗和功能等方面的問題。尤其是針對下一代100G服務器,它們在成本、功耗、高吞吐量和靈活的編程能力方面具有優(yōu)勢,DPU SoC可支持應用管理、虛擬機、容器和裸金屬應用。
DPU技術正在不斷發(fā)展,通用可編程的DPU SoC現(xiàn)在對于云服務提供商的數(shù)據(jù)中心建設至關重要。它們能夠高效地管理計算和網(wǎng)絡資源,支持多樣化的云計算場景,并優(yōu)化數(shù)據(jù)中心資源利用率。芯片巨頭和領先的云服務提供商在DPU的研究、開發(fā)和利用方面進行了重大投資,通過持續(xù)的探索和實際實施取得了顯著的成本效益。
亞馬遜云中的DPU
亞馬遜網(wǎng)絡服務(AWS)是一家以Nitro DPU系統(tǒng)作為關鍵技術基礎的頂級云計算服務提供商。Nitro DPU系統(tǒng)可以高效地將網(wǎng)絡、存儲、安全和監(jiān)控功能卸載到專用的硬件和軟件上。這使得服務實例可以訪問大部分的服務器資源,從而大幅降低成本并增加年收入。Nitro DPU系統(tǒng)由多個組件組成:
1. Nitro卡:用于網(wǎng)絡、存儲和控制的專用硬件,以提升整體系統(tǒng)性能。
2. Nitro安全芯片:將虛擬化和安全功能轉移到專用的硬件和軟件上,減小攻擊面,確保安全的云平臺。
3. Nitro虛擬化管理程序:一種輕量級的虛擬化管理程序,高效地管理內(nèi)存和CPU分配,提供與裸金屬相當?shù)男阅堋?
通過提供關鍵的網(wǎng)絡、安全、服務器和監(jiān)控功能,Nitro DPU系統(tǒng)可以釋放底層服務資源供客戶虛擬機使用。它使得AWS可以提供更多的裸金屬實例類型,甚至能夠為特定實例實現(xiàn)高達100Gbps的網(wǎng)絡性能。
英偉達(NVIDIA)DPU
英偉達(NVIDIA)是一家知名的半導體公司,以其在高性能計算領域的圖形處理單元(GPU)而聞名。該公司于2020年4月以69億美元收購了網(wǎng)絡芯片和設備公司邁絡思(Mellanox)。在收購之后,英偉達(NVIDIA)推出了BlueField系列的DPU。
NVIDIA BlueField-3 DPU是專為加速計算而設計的,繼承了BlueField-2 DPU的先進功能。它提供高達400G的網(wǎng)絡連接,并為軟件定義的網(wǎng)絡、存儲、安全和管理功能提供卸載、加速和隔離能力。
英特爾(Intel)IPU
英特爾(Intel)IPU是一種配備了硬化加速器和以太網(wǎng)連接的先進網(wǎng)絡設備。它利用緊密耦合的專用可編程核心來加速和管理基礎設施功能。IPU實現(xiàn)基礎設施卸載,并充當運行基礎設施應用程序的主機控制點,提供了額外的安全層。將所有基礎設施服務從服務器卸載到IPU中,釋放服務器CPU資源,并為云服務提供商提供了一個獨立且安全的控制點。
英特爾的路線圖包括Oak Springs Canyon和Mount Evans IPU產(chǎn)品。Oak Springs Canyon是基于FPGA的IPU產(chǎn)品,而Mount Evans IPU是基于ASIC的IPU產(chǎn)品。Oak Springs Canyon采用了英特爾的Agilex FPGA和Xeon-D CPU,而Mount Evans則由英特爾和谷歌共同設計,結合用于數(shù)據(jù)包處理的ASIC和16個ARM Neoverse N1核心,具備強大的計算能力。
阿里云中的DPU
阿里云是DPU技術探索的前沿。在2022年的阿里云峰會上,他們發(fā)布了基于神龍架構開發(fā)的云基礎架構處理器CIPU。CIPU繼承了其前身MoC卡(卡上微服務器)的功能和定位,與DPU的定義相吻合。MoC卡具有獨立的I/O、存儲和處理單元,并處理網(wǎng)絡、存儲和設備虛擬化任務。MoC卡經(jīng)歷了四個發(fā)展階段:
第一代和第二代MoC卡解決計算虛擬化的零開銷挑戰(zhàn),通過軟件實現(xiàn)了網(wǎng)絡和存儲虛擬化。
第三代MoC卡引入了增強的網(wǎng)絡轉發(fā)功能,顯著提高了網(wǎng)絡性能。
第四代MoC卡實現(xiàn)了網(wǎng)絡和存儲操作的完全硬件卸載,并支持RDMA功能。
阿里云的CIPU專為飛天系統(tǒng)設計,對于構建新一代綜合軟硬件云計算架構系統(tǒng)至關重要。
火山引擎DPU
火山引擎致力于推進自主開發(fā)的DPU技術,采用軟硬集成的虛擬化方法,提供彈性和可擴展的高性能計算服務。他們的第二代彈性裸金屬服務器和第三代云服務器都配備了自主研發(fā)DPU。這些DPU經(jīng)過了廣泛的測試,以確保其在各種應用中的功能和適應性。2022年推出的第二代彈性裸金屬實例將物理機的穩(wěn)定性和安全性與虛擬機的靈活性相結合,代表了高性能云服務器的新一代。2023年上半年發(fā)布的第三代云服務器實例將火山引擎最新的DPU架構與專有的虛擬交換機和虛擬化技術集成在一起,顯著提高了網(wǎng)絡和存儲I/O性能。通過結合自主開發(fā)的DPU、虛擬交換機和虛擬化技術,Volcano Engine旨在提供可擴展和高效的高性能計算解決方案,以滿足云計算不斷演變的需求。