區(qū)別 SmartNIC 與 DPU (數(shù)據(jù)處理器) 的依據(jù)是它的功能,而不是形態(tài)。對(duì)稱為 SmartNICs 的一類數(shù)據(jù)中心智能網(wǎng)卡來(lái)說(shuō),它需要支持硬件傳輸和用于虛擬交換機(jī)加速的可編程數(shù)據(jù)路徑。這些功能是必要的,但不足以使其成為 DPU 。一個(gè)真正的 DPU 還必須包括一個(gè)易于擴(kuò)展的、 C 語(yǔ)言編程的 Linux 環(huán)境,使數(shù)據(jù)中心架構(gòu)師能夠虛擬化云中的所有資源,并使它們看起來(lái)像本地資源。為了更好地理解為什么需要這樣,一起討論一下-創(chuàng)建 DPU 的原因。
為什么世界需要 DPU
世界需要 DPU 的一個(gè)最重要原因是,目前的應(yīng)用程序和數(shù)據(jù)中心的設(shè)計(jì)讓 CPU 內(nèi)核花費(fèi)了太多的開(kāi)銷來(lái)支持網(wǎng)絡(luò)功能。隨著網(wǎng)絡(luò)速度的提高(現(xiàn)在每條鏈路的速度高達(dá) 200gb / s ), CPU 使用了太多寶貴的內(nèi)核來(lái)進(jìn)行網(wǎng)絡(luò)流量的分類、跟蹤和控制。這些昂貴的 CPU 內(nèi)核是為通用應(yīng)用程序處理而設(shè)計(jì)的,最不值得的就是將它們用于網(wǎng)絡(luò)數(shù)據(jù)包的查找和管理。畢竟用 CPU 內(nèi)核來(lái)分析數(shù)據(jù)并得到結(jié)果才是它們真正的價(jià)值所在。
計(jì)算虛擬化的引入使這種情況變得更糟,因?yàn)闊o(wú)論是在同一臺(tái)服務(wù)器上運(yùn)行的 VM 或容器之間,還是和其他的計(jì)算服務(wù)器或存儲(chǔ)服務(wù)器之間,都需要更多的流量。軟件定義存儲(chǔ)( SDS )、超聚合基礎(chǔ)設(shè)施( HCI )和大數(shù)據(jù)等的應(yīng)用程序會(huì)增加服務(wù)器之間的東西向的通信流量,另外, RDMA 也通常被用來(lái)加速服務(wù)器之間的數(shù)據(jù)傳輸,這使得服務(wù)器對(duì)網(wǎng)絡(luò)基礎(chǔ)功能的處理要求更高。
隨著通信量的增加和 VXLAN 、 NVGRE 或 GENEVE 等覆蓋網(wǎng)絡(luò)的使用,公共云和私有云越來(lái)越流行。但其需求的多層封裝也進(jìn)一步增加了網(wǎng)絡(luò)的復(fù)雜性。軟件定義的網(wǎng)絡(luò)( SDN )帶來(lái)了額外的數(shù)據(jù)包控制和處理的需求,這讓 CPU 花費(fèi)珍貴的內(nèi)核來(lái)處理 openvswitch ( OVS )等更多工作。
DPU 可以比標(biāo)準(zhǔn) CPU 更快、更高效、更低的成本處理所有這些虛擬化的功能( SR-IOV 、 RDMA 、覆蓋網(wǎng)絡(luò)流量封裝、 OVS 卸載)。
不可忽視的安全隔離
有時(shí)出于安全原因,需要將網(wǎng)絡(luò)與 CPU 隔離開(kāi)來(lái)。網(wǎng)絡(luò)是黑客攻擊或惡意軟件入侵最有可能的載體,但也是第一個(gè)發(fā)現(xiàn)或阻止黑客攻擊的地方。它同時(shí)也是最有可能實(shí)現(xiàn)在線加密的地方。
DPU 作為特殊的網(wǎng)卡 ,是檢查網(wǎng)絡(luò)流量、阻止攻擊和加密傳輸?shù)氖走x,最簡(jiǎn)單有效,既有性能優(yōu)勢(shì),又有安全優(yōu)勢(shì),因?yàn)樗藢⑺袀魅牒蛡鞒龅臄?shù)據(jù)讓 CPU 處理 并通過(guò) PCIe 總線的頻繁需要。它通過(guò)與主機(jī) CPU 分開(kāi)運(yùn)行來(lái)提供安全隔離。如果主機(jī) CPU 受損, DPU 仍然可以檢測(cè)或阻止惡意活動(dòng)。DPU 可以在不立即涉及 CPU 的情況下檢測(cè)或阻止攻擊。
虛擬化存儲(chǔ)和云
DPU 的一個(gè)較新用例是虛擬化軟件定義的存儲(chǔ)、超聚合基礎(chǔ)設(shè)施和其他云資源。在虛擬化需求爆發(fā)之前,大多數(shù)服務(wù)器只運(yùn)行本地存儲(chǔ),這并不總是高效的,但卻很簡(jiǎn)單易行。每個(gè)操作系統(tǒng)、應(yīng)用程序和 hypervisor 都知道如何使用本地存儲(chǔ)。
然后是網(wǎng)絡(luò)存儲(chǔ)的興起:SAN、NAS 以及最近出現(xiàn)的 NVMe of Fabrics (NVMe-oF) 。但是,并不是每個(gè)應(yīng)用程序都是原生的并可感知 SAN。另外,一些操作系統(tǒng)和 hypervisor ,比如 Windows 和 VMware ,都還沒(méi)有考慮到 NVMe-oF。DPU 可以支持虛擬化網(wǎng)絡(luò)存儲(chǔ),即可以更高效也更易于管理,讓虛擬化網(wǎng)絡(luò)存儲(chǔ)看起來(lái)就像本地存儲(chǔ),非常易于應(yīng)用程序使用。一個(gè) DPU 甚至可以虛擬化 GPU 或其他神經(jīng)網(wǎng)絡(luò)處理器,這樣任何服務(wù)器在需要時(shí)都可以通過(guò)網(wǎng)絡(luò)訪問(wèn)任意數(shù)量的 GPU。
類似的 DPU 優(yōu)勢(shì)也適用于軟件定義的存儲(chǔ)和超聚合基礎(chǔ)架構(gòu)。兩種架構(gòu)傳統(tǒng)上都使用管理層軟件(通常作為 VM 或 hypervisor 的一部分來(lái)運(yùn)行)來(lái)虛擬化和抽象本地存儲(chǔ)和網(wǎng)絡(luò),以使其可供集群中的其他服務(wù)器或客戶端使用。這對(duì)于服務(wù)器的快速部署,及共享存儲(chǔ)資源帶來(lái)了極大的便利。然而,管理層和虛擬化占用了許多本應(yīng)運(yùn)行應(yīng)用程序的 CPU 資源。更糟糕的是,網(wǎng)絡(luò)帶寬越大,存儲(chǔ)速度越快,需要損耗的 CPU 的資源就越多。
這也是智能 DPU 創(chuàng)造效率的地方。首先,它卸載并幫助虛擬化網(wǎng)絡(luò)。它們加速了私有云和公共云,這就是為什么它們有時(shí)被稱為 CloudNICs 。它們可以卸載網(wǎng)絡(luò)和大部分甚至全部的存儲(chǔ)虛擬化。DPU 還可以減輕 SDS 和 HCI 的各種功能,如壓縮、加密、重復(fù)數(shù)據(jù)消除、 RAID 、報(bào)告等。這一切都是為了把更昂貴的 CPU 內(nèi)核送回它們最擅長(zhǎng)的領(lǐng)域:運(yùn)行應(yīng)用程序。
必須有硬件加速
了解了主要的 DPU 用例之后,應(yīng)該已經(jīng)清楚何時(shí)何地使用 DPU 會(huì)帶來(lái)最大的好處:加速和卸載網(wǎng)絡(luò)流量,虛擬化存儲(chǔ)資源,通過(guò)網(wǎng)絡(luò)共享 GPU,以及支持 RDMA 和執(zhí)行加解密。
那么最優(yōu)的 DPU 需要具備什么?必須有硬件加速。硬件加速提供了最好的性能和效率,這也意味著用更少的開(kāi)銷進(jìn)行更多的卸載。為某些功能提供專用硬件的能力讓采用 DPU 的機(jī)會(huì)大大增加。
必須可編程
為了獲得最佳性能,大多數(shù)加速功能必須在硬件上運(yùn)行。為了獲得最大的靈活性,這些功能的控制和編程必須在軟件中運(yùn)行。
在 DPU 上有許多功能可以編程,通常,特定的卸載方法、加密算法和傳輸機(jī)制不會(huì)有太大變化,但是路由規(guī)則、流表、加密的密鑰和網(wǎng)絡(luò)地址會(huì)一直會(huì)變化。前者是數(shù)據(jù)平面,后者是控制平面。數(shù)據(jù)平面規(guī)則和算法經(jīng)過(guò)標(biāo)準(zhǔn)化后,可以被固化到芯片中。但控制平面規(guī)則和要求變化太快,無(wú)法固化,但可以在 FPGA 上運(yùn)行(偶爾修改,但很困難),也可以在 支持 C 語(yǔ)言編程的 Linux 環(huán)境中運(yùn)行(容易且可以經(jīng)常修改)。
在DPU上需要多少編程?
用戶可以選擇在 DPU 上有多少功能要由運(yùn)行程序完成,也就是說(shuō),處理數(shù)據(jù)包的數(shù)據(jù)平面由 DPU 處理 (硬件加速或/和 開(kāi)發(fā)的程序),同時(shí), 用于設(shè)置和管理規(guī)則的控制平面,可以由用戶決定是由 DPU 來(lái)全權(quán)處理,還是由位于其他地方的處理器,如 CPU 來(lái)處理 。
例如使用 Open vSwitch ,包交換可以在軟件或硬件中完成,而控制平面則可以在 CPU 或 DPU 上運(yùn)行。如果是常規(guī)的基礎(chǔ)網(wǎng)卡,所有的交換和控制都必須由 CPU 上的軟件完成。使用 SmartNIC 時(shí),交換在網(wǎng)卡的 ASIC 上運(yùn)行,但控制仍必須在 CPU 上完成。只有在真正的 DPU 中,交換是由 DPU 卡上的 ASIC 完成,而控制平面也是在 DPU 包含的 Arm 內(nèi)核上運(yùn)行。
DPU 和 SmartNIC 哪一個(gè)最好?
為了在數(shù)據(jù)中心充分實(shí)現(xiàn)應(yīng)用程序的效率,傳輸卸載、可編程的數(shù)據(jù)平面以及用于虛擬交換的硬件卸載都是至關(guān)重要的功能。根據(jù)定義,支持這些功能是 SmartNIC 的重要部分。但只是 DPU 的最基本要求之一, 并不能將 SmartNIC 提升到 DPU 的級(jí)別。
客戶常稱必須有 DPU,因?yàn)樗麄冃枰删幊痰奶摂M交換硬件加速支持。這主要是某些供應(yīng)商的誤導(dǎo)。如果某個(gè)供應(yīng)商只能提供昂貴的、幾乎無(wú)法編程的產(chǎn)品,他會(huì)告訴客戶,“ DPU ”是實(shí)現(xiàn)這一目標(biāo)的唯一方法。對(duì) NVIDIA 來(lái)說(shuō),這種情況只需要 ConnectX 系列的 SmartNIC 。
要將 SmartNIC 提升到 DPU 的高度,還需要支持更多的功能,比如能夠運(yùn)行控制平面,以及在 Linux 環(huán)境下提供 C 語(yǔ)言編程。NVIDIA 提供 BlueField DPU 來(lái)支持所有這些,它包括 ConnectX 的所有智能 網(wǎng)卡 功能,以及 4 到 16 個(gè) 64 位的 Arm 內(nèi)核,當(dāng)然,所有這些內(nèi)核都運(yùn)行 Linux ,并且易于編程。
在計(jì)劃下一個(gè)基礎(chǔ)架構(gòu)的構(gòu)建或更新時(shí),請(qǐng)記?。?/p>
DPU 在卸載網(wǎng)絡(luò)功能和虛擬化存儲(chǔ)、網(wǎng)絡(luò)和 GPU 等資源方面越來(lái)越有用
SmartNIC 可以在硬件中加速數(shù)據(jù)平面任務(wù),但必須依靠 host CPU 來(lái)運(yùn)行控制平面
控制平面軟件和其他管理軟件可以在常規(guī) CPU 或 DPU 上運(yùn)行
NVIDIA 提供業(yè)界最佳的 SmartNICs ( ConnectX )、 FPGA NIC ( Innova )和完全可編程并支持?jǐn)?shù)據(jù)平面及控制平面 DPUs ( BlueField 可編程 DPU )
責(zé)任編輯:haq
-
編程
+關(guān)注
關(guān)注
88文章
3615瀏覽量
93709 -
DPU
+關(guān)注
關(guān)注
0文章
358瀏覽量
24171
原文標(biāo)題:用多個(gè) DPU 實(shí)現(xiàn)云級(jí)架構(gòu)
文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論