區別 SmartNIC 與 DPU (數據處理器) 的依據是它的功能,而不是形態。對稱為 SmartNICs 的一類數據中心智能網卡來說,它需要支持硬件傳輸和用于虛擬交換機加速的可編程數據路徑。這些功能是必要的,但不足以使其成為 DPU 。一個真正的 DPU 還必須包括一個易于擴展的、 C 語言編程的 Linux 環境,使數據中心架構師能夠虛擬化云中的所有資源,并使它們看起來像本地資源。為了更好地理解為什么需要這樣,一起討論一下-創建 DPU 的原因。
為什么世界需要 DPU
世界需要 DPU 的一個最重要原因是,目前的應用程序和數據中心的設計讓 CPU 內核花費了太多的開銷來支持網絡功能。隨著網絡速度的提高(現在每條鏈路的速度高達 200gb / s ), CPU 使用了太多寶貴的內核來進行網絡流量的分類、跟蹤和控制。這些昂貴的 CPU 內核是為通用應用程序處理而設計的,最不值得的就是將它們用于網絡數據包的查找和管理。畢竟用 CPU 內核來分析數據并得到結果才是它們真正的價值所在。
計算虛擬化的引入使這種情況變得更糟,因為無論是在同一臺服務器上運行的 VM 或容器之間,還是和其他的計算服務器或存儲服務器之間,都需要更多的流量。軟件定義存儲( SDS )、超聚合基礎設施( HCI )和大數據等的應用程序會增加服務器之間的東西向的通信流量,另外, RDMA 也通常被用來加速服務器之間的數據傳輸,這使得服務器對網絡基礎功能的處理要求更高。
隨著通信量的增加和 VXLAN 、 NVGRE 或 GENEVE 等覆蓋網絡的使用,公共云和私有云越來越流行。但其需求的多層封裝也進一步增加了網絡的復雜性。軟件定義的網絡( SDN )帶來了額外的數據包控制和處理的需求,這讓 CPU 花費珍貴的內核來處理 openvswitch ( OVS )等更多工作。
DPU 可以比標準 CPU 更快、更高效、更低的成本處理所有這些虛擬化的功能( SR-IOV 、 RDMA 、覆蓋網絡流量封裝、 OVS 卸載)。
不可忽視的安全隔離
有時出于安全原因,需要將網絡與 CPU 隔離開來。網絡是黑客攻擊或惡意軟件入侵最有可能的載體,但也是第一個發現或阻止黑客攻擊的地方。它同時也是最有可能實現在線加密的地方。
DPU 作為特殊的網卡 ,是檢查網絡流量、阻止攻擊和加密傳輸的首選,最簡單有效,既有性能優勢,又有安全優勢,因為它消除了將所有傳入和傳出的數據讓 CPU 處理 并通過 PCIe 總線的頻繁需要。它通過與主機 CPU 分開運行來提供安全隔離。如果主機 CPU 受損, DPU 仍然可以檢測或阻止惡意活動。DPU 可以在不立即涉及 CPU 的情況下檢測或阻止攻擊。
虛擬化存儲和云
DPU 的一個較新用例是虛擬化軟件定義的存儲、超聚合基礎設施和其他云資源。在虛擬化需求爆發之前,大多數服務器只運行本地存儲,這并不總是高效的,但卻很簡單易行。每個操作系統、應用程序和 hypervisor 都知道如何使用本地存儲。
然后是網絡存儲的興起:SAN、NAS 以及最近出現的 NVMe of Fabrics (NVMe-oF) 。但是,并不是每個應用程序都是原生的并可感知 SAN。另外,一些操作系統和 hypervisor ,比如 Windows 和 VMware ,都還沒有考慮到 NVMe-oF。DPU 可以支持虛擬化網絡存儲,即可以更高效也更易于管理,讓虛擬化網絡存儲看起來就像本地存儲,非常易于應用程序使用。一個 DPU 甚至可以虛擬化 GPU 或其他神經網絡處理器,這樣任何服務器在需要時都可以通過網絡訪問任意數量的 GPU。
類似的 DPU 優勢也適用于軟件定義的存儲和超聚合基礎架構。兩種架構傳統上都使用管理層軟件(通常作為 VM 或 hypervisor 的一部分來運行)來虛擬化和抽象本地存儲和網絡,以使其可供集群中的其他服務器或客戶端使用。這對于服務器的快速部署,及共享存儲資源帶來了極大的便利。然而,管理層和虛擬化占用了許多本應運行應用程序的 CPU 資源。更糟糕的是,網絡帶寬越大,存儲速度越快,需要損耗的 CPU 的資源就越多。
這也是智能 DPU 創造效率的地方。首先,它卸載并幫助虛擬化網絡。它們加速了私有云和公共云,這就是為什么它們有時被稱為 CloudNICs 。它們可以卸載網絡和大部分甚至全部的存儲虛擬化。DPU 還可以減輕 SDS 和 HCI 的各種功能,如壓縮、加密、重復數據消除、 RAID 、報告等。這一切都是為了把更昂貴的 CPU 內核送回它們最擅長的領域:運行應用程序。
必須有硬件加速
了解了主要的 DPU 用例之后,應該已經清楚何時何地使用 DPU 會帶來最大的好處:加速和卸載網絡流量,虛擬化存儲資源,通過網絡共享 GPU,以及支持 RDMA 和執行加解密。
那么最優的 DPU 需要具備什么?必須有硬件加速。硬件加速提供了最好的性能和效率,這也意味著用更少的開銷進行更多的卸載。為某些功能提供專用硬件的能力讓采用 DPU 的機會大大增加。
必須可編程
為了獲得最佳性能,大多數加速功能必須在硬件上運行。為了獲得最大的靈活性,這些功能的控制和編程必須在軟件中運行。
在 DPU 上有許多功能可以編程,通常,特定的卸載方法、加密算法和傳輸機制不會有太大變化,但是路由規則、流表、加密的密鑰和網絡地址會一直會變化。前者是數據平面,后者是控制平面。數據平面規則和算法經過標準化后,可以被固化到芯片中。但控制平面規則和要求變化太快,無法固化,但可以在 FPGA 上運行(偶爾修改,但很困難),也可以在 支持 C 語言編程的 Linux 環境中運行(容易且可以經常修改)。
在DPU上需要多少編程?
用戶可以選擇在 DPU 上有多少功能要由運行程序完成,也就是說,處理數據包的數據平面由 DPU 處理 (硬件加速或/和 開發的程序),同時, 用于設置和管理規則的控制平面,可以由用戶決定是由 DPU 來全權處理,還是由位于其他地方的處理器,如 CPU 來處理 。
例如使用 Open vSwitch ,包交換可以在軟件或硬件中完成,而控制平面則可以在 CPU 或 DPU 上運行。如果是常規的基礎網卡,所有的交換和控制都必須由 CPU 上的軟件完成。使用 SmartNIC 時,交換在網卡的 ASIC 上運行,但控制仍必須在 CPU 上完成。只有在真正的 DPU 中,交換是由 DPU 卡上的 ASIC 完成,而控制平面也是在 DPU 包含的 Arm 內核上運行。
DPU 和 SmartNIC 哪一個最好?
為了在數據中心充分實現應用程序的效率,傳輸卸載、可編程的數據平面以及用于虛擬交換的硬件卸載都是至關重要的功能。根據定義,支持這些功能是 SmartNIC 的重要部分。但只是 DPU 的最基本要求之一, 并不能將 SmartNIC 提升到 DPU 的級別。
客戶常稱必須有 DPU,因為他們需要可編程的虛擬交換硬件加速支持。這主要是某些供應商的誤導。如果某個供應商只能提供昂貴的、幾乎無法編程的產品,他會告訴客戶,“ DPU ”是實現這一目標的唯一方法。對 NVIDIA 來說,這種情況只需要 ConnectX 系列的 SmartNIC 。
要將 SmartNIC 提升到 DPU 的高度,還需要支持更多的功能,比如能夠運行控制平面,以及在 Linux 環境下提供 C 語言編程。NVIDIA 提供 BlueField DPU 來支持所有這些,它包括 ConnectX 的所有智能 網卡 功能,以及 4 到 16 個 64 位的 Arm 內核,當然,所有這些內核都運行 Linux ,并且易于編程。
在計劃下一個基礎架構的構建或更新時,請記住:
DPU 在卸載網絡功能和虛擬化存儲、網絡和 GPU 等資源方面越來越有用
SmartNIC 可以在硬件中加速數據平面任務,但必須依靠 host CPU 來運行控制平面
控制平面軟件和其他管理軟件可以在常規 CPU 或 DPU 上運行
NVIDIA 提供業界最佳的 SmartNICs ( ConnectX )、 FPGA NIC ( Innova )和完全可編程并支持數據平面及控制平面 DPUs ( BlueField 可編程 DPU )
責任編輯:haq
-
編程
+關注
關注
90文章
3716瀏覽量
97185 -
DPU
+關注
關注
0文章
414瀏覽量
26968
原文標題:用多個 DPU 實現云級架構
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業解決方案】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
彰顯硬科技實力 中科馭數榮登VENTURE50硬科技榜 構建DPU“運力”底座
網絡接口:數字世界的“門鈴”,你了解多少?
浮思特 | 洞察不可見的世界,紅外熱成像技術如何重塑我們的感知
NVIDIA推出全新BlueField-4 DPU
基于NVIDIA BlueField DPU的5G UPF數據面加速方案
NVIDIA助力Axio團隊打造全新DPU數據面開發框架
利用NVIDIA DPU重塑網絡安全格局
聲學世界模型將如何改變我們的生活
第三屆NVIDIA DPU黑客松開啟報名
中科馭數攜DPU全棧產品亮相福州數博會,賦能智算時代算力基建
我們的世界為什么需要DPU
評論