區別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 內核送回它們最擅長的領域:運行應用程序。
圖 1 。 DPU 是一種可編程的、專用的電子電路板,具有數據中心計算數據處理的硬件加速功能
必須有硬件加速
在介紹了主要的 DPU 用例之后,您應該已經清楚何時何地使用DPU會帶來最大的好處:加速和卸載網絡流量,虛擬化存儲資源,通過網絡共享 GPU, 以及支持 RDMA 和執行加解密。
那么 最優的DPU 需要具備什么?必須有硬件加速。 硬件加速提供了最好的性能和效率,這也意味著用更少的開銷進行更多的卸載。為某些功能提供專用硬件的能力讓采用DPU 的機會大大增加。
必須可編程
為了獲得最佳性能,大多數加速功能必須在硬件上運行。為了獲得最大的靈活性,這些功能的控制和編程必須在軟件中運行。
在 DPU 上有許多功能可以編程,通常,特定的卸載方法、加密算法和傳輸機制不會有太大變化,但是路由規則、流表、加密的密鑰和網絡地址會一直會變化。前者是數據平面,后者是控制平面。數據平面規則和算法經過標準化后,可以被固化到芯片中。但控制平面規則和要求變化太快,無法固化,但可以在 FPGA 上運行(偶爾修改,但很困難),也可以在 支持C語言編程的 Linux 環境中運行(容易且可以經常修改)。
表 1 。 DPU 功能指南
在 DPU 上需要多少編程?
您可以選擇在DPU 上有多少功能要由運行程序完成,也就是說,處理數據包的數據平面由DPU處理 (硬件加速或/和 開發的程序),同時, 用于設置和管理規則的控制平面,可以由用戶決定是由DPU來全權處理,還是由位于其他地方的處理器,如 CPU來處理 。
例如,使用 Open vSwitch ,包交換可以在軟件或硬件中完成,而控制平面則可以在 CPU 或 DPU 上運行。如果是常規的基礎網卡,所有的交換和控制都必須由 CPU 上的軟件完成。 使用 SmartNIC 時,交換在網卡的 ASIC 上運行,但控制仍必須在 CPU 上完成。 只有在真正的 DPU 中,交換是由DPU卡上的 ASIC完成,而控制平面也是在DPU包含的 Arm 內核上運行。
圖 2 。 ConnectX-5 SmartNIC 卸載 OVS 切換到 NIC 硬件
DPU 和 SmartNIC 哪一個最好?
為了在數據中心充分實現應用程序的效率,傳輸卸載、可編程的數據平面以及用于虛擬交換的硬件卸載都是至關重要的功能。根據定義,支持這些功能是 SmartNIC 的重要部分,。但只是 DPU 的最基本要求之一, 并不能將 SmartNIC 提升到 DPU 的級別。
客戶經常告訴我們,他們必須有 DPU,因為他們需要可編程的虛擬交換硬件加速支持。這主要是某些供應商的誤導。如果某個供應商只能提供昂貴的、幾乎無法編程的產品,他會告訴客戶,“ DPU ”是實現這一目標的唯一方法。對我們來說,這種情況只需要我們的 ConnectX 系列的 SmartNIC 。
我覺得要將 SmartNIC 提升到 DPU 的高度,還需要支持更多的功能,比如能夠運行控制平面,以及在 Linux 環境下提供 C 語言編程。我們很自豪地提供 BlueField DPU 來支持所有這些,它包括 ConnectX 的所有智能 網卡 功能,以及 4 到 16 個 64 位的 Arm 內核,當然,所有這些內核都運行 Linux ,并且易于編程。
在計劃下一個基礎架構的構建或更新時,請記住以下要點:
DPU 在卸載網絡功能和虛擬化存儲、網絡和 GPU 等資源方面越來越有用
SmartNIC 可以在硬件中加速數據平面任務,但必須依靠host CPU來運行控制平面
控制平面軟件和其他管理軟件可以在常規 CPU 或 DPU 上運行。
NVIDIA 提供業界最佳的SmartNICs ( ConnectX )、 FPGA NIC ( Innova )和完全可編程并支持數據平面及控制平面 DPU s ( BlueField 可編程 DPU )。
關于作者
Kevin Deierling 從 2013 年 3 月開始擔任 Mellanox 的營銷副總裁。此前,他曾擔任 Genia Technologies 的技術副總裁、 Silver Spring Networks 的首席架構師,并在 Spans Logic 負責營銷和業務開發
審核編輯:郭婷
-
cpu
+關注
關注
68文章
10826瀏覽量
211160 -
Linux
+關注
關注
87文章
11230瀏覽量
208933 -
數據中心
+關注
關注
16文章
4693瀏覽量
71957
發布評論請先 登錄
相關推薦
評論