NVIDIA DOCA 框架旨在簡(jiǎn)化 NVIDIA BlueField DPU 和 ConnectX 智能網(wǎng)卡的編程和應(yīng)用程序開發(fā)。它通過(guò) SDK、運(yùn)行時(shí)二進(jìn)制文件和高級(jí) API 提供與網(wǎng)絡(luò)應(yīng)用程序相關(guān)的高級(jí)抽象構(gòu)建塊,使開發(fā)者能夠快速創(chuàng)建應(yīng)用程序和服務(wù)。
NVIDIA DOCA Flow 是 DOCA 框架中最新更新的一組軟件驅(qū)動(dòng)程序和一個(gè)轉(zhuǎn)向庫(kù)。它在用戶空間中運(yùn)行,并能夠從 CPU 卸載與網(wǎng)絡(luò)相關(guān)的操作。這又使得應(yīng)用程序能夠以低延遲來(lái)處理高數(shù)據(jù)包吞吐量的工作負(fù)載,從而節(jié)省 CPU 資源并降低功耗。
DOCA Flow 還有效地優(yōu)化了 BlueField DPU 和 ConnectX 智能網(wǎng)卡的利用率。DOCA 是釋放 BlueField DPU 加速引擎潛力的關(guān)鍵,而 DOCA Flow 允許快速訪問(wèn)加速引擎以實(shí)現(xiàn)數(shù)據(jù)包轉(zhuǎn)向邏輯。
簡(jiǎn)化并加速開發(fā)
DOCA Flow 提供 C 語(yǔ)言庫(kù) API,用于定義基于硬件的數(shù)據(jù)包處理流水線,抽象化了 BlueField DPU 和 ConnectX 智能網(wǎng)卡的硬件功能。這使開發(fā)者能夠?yàn)閿?shù)據(jù)中心和云網(wǎng)絡(luò)構(gòu)建高性能和可擴(kuò)展的應(yīng)用程序,以編程的方式定義和控制網(wǎng)絡(luò)流量,實(shí)施網(wǎng)絡(luò)策略,并有效管理資源。
DOCA Flow 補(bǔ)充并擴(kuò)展了 DPDK 的核心編程功能,提供了專為 NVIDIA BlueField DPU 和網(wǎng)卡量身定制的額外優(yōu)化功能。此外,DOCA Flow 還提供了實(shí)現(xiàn)基本數(shù)據(jù)包處理流水線的構(gòu)建塊,從而簡(jiǎn)化了網(wǎng)絡(luò)堆棧的復(fù)雜性,可用于流行的網(wǎng)絡(luò)用例以及更復(fù)雜的用例,例如:最長(zhǎng)前綴匹配(LPM)、IPsec 加解密,以及創(chuàng)建或修改訪問(wèn)控制列表(ACL)中的條目。
使用預(yù)先創(chuàng)建的網(wǎng)絡(luò)構(gòu)建塊可以讓您專注于創(chuàng)建應(yīng)用程序,而無(wú)需編寫低級(jí)的數(shù)據(jù)包處理例程。這減少了上市時(shí)間,并使您能夠?qū)W⒂趹?yīng)用程序的核心,因?yàn)闃?gòu)建塊已經(jīng)針對(duì)性能進(jìn)行了有效優(yōu)化。DOCA Flow 構(gòu)建塊使軟件開發(fā)更加簡(jiǎn)單,各種經(jīng)驗(yàn)級(jí)別的開發(fā)者都可以使用。
為什么需要 DPU
現(xiàn)代工作負(fù)載和軟件定義網(wǎng)絡(luò)導(dǎo)致 CPU 核心上產(chǎn)生巨大的網(wǎng)絡(luò)開銷。數(shù)據(jù)中心和云網(wǎng)絡(luò)現(xiàn)在的起始速率是 25 或 100 Gbps,并向 200 甚至 400 Gbps 擴(kuò)展,這需要 CPU 核心以極高的速度處理網(wǎng)絡(luò)流量的分類、跟蹤、處理和轉(zhuǎn)向。
計(jì)算虛擬化通過(guò)在主機(jī)虛擬機(jī)和容器之間內(nèi)部生成更多的東/西流量來(lái)增大網(wǎng)絡(luò)需求,并增加 Overlay 網(wǎng)絡(luò)封裝和為分段來(lái)與其他服務(wù)器或存儲(chǔ)設(shè)備進(jìn)行外部通信。因此,對(duì) CPU 增加了更多的網(wǎng)絡(luò)需求。
CPU 核心成本高昂,并且不太適合高效的網(wǎng)絡(luò)數(shù)據(jù)包處理。高帶寬任務(wù)消耗了更多的 CPU 核心,給服務(wù)器寶貴的計(jì)算基礎(chǔ)設(shè)施帶來(lái)不必要的壓力,否則這些基礎(chǔ)設(shè)施可以更有效地用于租戶工作負(fù)載和應(yīng)用程序數(shù)據(jù)處理。
相比之下,像智能網(wǎng)卡和 DPU 等專用硬件經(jīng)過(guò)專門設(shè)計(jì),可以有效地處理大規(guī)模的快速數(shù)據(jù)移動(dòng),與標(biāo)準(zhǔn) CPU 相比,可以降低功耗、散熱和總體成本。
執(zhí)行管道
DOCA Flow 庫(kù)提供的 API 可以使用 BlueField DPU 和 ConnectX 智能網(wǎng)卡中的硬件功能來(lái)構(gòu)建通用和可重復(fù)使用的執(zhí)行管道,其中每個(gè)管道可能包括匹配標(biāo)準(zhǔn)(數(shù)據(jù)包分類)和一組操作。
分類能夠識(shí)別應(yīng)該應(yīng)用相應(yīng)邏輯的傳入數(shù)據(jù)包,而操作則會(huì)有所不同,并實(shí)現(xiàn)適合每個(gè)數(shù)據(jù)包分類的邏輯。使用分類和操作作為構(gòu)建塊為開發(fā)硬件加速的網(wǎng)絡(luò)應(yīng)用程序(包括網(wǎng)關(guān)、防火墻、負(fù)載均衡器等)提供了一種靈活的方法。
如前所述,DOCA Flow 執(zhí)行管道中的操作各不相同,例如:對(duì) MAC 地址應(yīng)用網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)邏輯、更改源或目的地 IP 地址、應(yīng)用 Overlay 封裝、更改報(bào)頭字段、增加計(jì)數(shù)器以測(cè)量流量等數(shù)據(jù)包操作。操作可能包括通過(guò)使用策略監(jiān)控流量,將流量轉(zhuǎn)發(fā)到不同的隊(duì)列——軟件隊(duì)列或發(fā)夾目標(biāo)、端口鏡像或數(shù)據(jù)包采樣以進(jìn)行調(diào)試和合法攔截,以及丟棄數(shù)據(jù)包以強(qiáng)制執(zhí)行策略或訪問(wèn)控制——所有這些都完全卸載到 DPU 或網(wǎng)卡硬件。
管道可以通過(guò)從一個(gè)管道到另一個(gè)管道的轉(zhuǎn)發(fā)操作鏈接在一起,以形成一個(gè)完整的轉(zhuǎn)向樹,其定義了傳入數(shù)據(jù)包的路徑。在對(duì)數(shù)據(jù)包執(zhí)行預(yù)定義操作之后,數(shù)據(jù)包可以被轉(zhuǎn)發(fā)到另一個(gè)管道以進(jìn)行進(jìn)一步的操作或檢查,也可以被轉(zhuǎn)發(fā)到軟件隊(duì)列、硬件發(fā)夾隊(duì)列或者被發(fā)送或丟棄。
圖1:管道鏈接構(gòu)建網(wǎng)絡(luò)邏輯,因?yàn)槊總€(gè)管道都處理唯一的標(biāo)準(zhǔn)、操作和轉(zhuǎn)發(fā),從而形成數(shù)據(jù)包控制的轉(zhuǎn)向樹
轉(zhuǎn)向樹
通過(guò)實(shí)現(xiàn)通用網(wǎng)絡(luò)功能邏輯,可以使用轉(zhuǎn)向樹在 DPU 或網(wǎng)卡上創(chuàng)建基于硬件的網(wǎng)絡(luò)應(yīng)用程序。這使得數(shù)據(jù)包能夠被有效地分類,從而可以對(duì)每個(gè)數(shù)據(jù)包應(yīng)用適當(dāng)?shù)牟僮鳌J褂棉D(zhuǎn)向樹概念提供了多種好處,包括:
為每個(gè)數(shù)據(jù)流定制處理邏輯
將數(shù)據(jù)包定向到特定操作或目的地的通用性
自適應(yīng)結(jié)構(gòu),可根據(jù)不斷變化的條件輕松調(diào)整大小
靈活的框架,允許添加新的管道類型,以滿足不斷發(fā)展的需求
優(yōu)化資源使用,最大限度地減少冗余,實(shí)現(xiàn)共享匹配和操作
NVIDIA DOCA Flow 用例
在為 BlueField DPU 和 ConnectX 智能網(wǎng)卡開發(fā)網(wǎng)絡(luò)流水線時(shí),DOCA Flow 是簡(jiǎn)化應(yīng)用程序開發(fā)工作的基本要素。用例適用于企業(yè)數(shù)據(jù)中心、電信和云環(huán)境,尤其是那些專注于需要高效數(shù)據(jù)包處理的網(wǎng)絡(luò)基礎(chǔ)設(shè)施和安全的環(huán)境。
此外,它被設(shè)計(jì)用于處理涉及以極高的速率建立和刪除流水線的場(chǎng)景,并且每秒可以管理數(shù)百萬(wàn)個(gè)數(shù)據(jù)包交換。其適用于軟件定義網(wǎng)絡(luò)應(yīng)用程序、數(shù)據(jù)分析、虛擬交換、人工智能推理、網(wǎng)絡(luò)安全和其他數(shù)據(jù)包處理應(yīng)用程序。它支持基于預(yù)定策略或其他標(biāo)準(zhǔn)的接收、檢查報(bào)文頭和有效負(fù)載、跟蹤連接以及檢查、重新路由、復(fù)制或丟棄數(shù)據(jù)包之類的操作。
Open vSwitch 虛擬交換機(jī)
Open vSwitch(OVS)通過(guò)編程擴(kuò)展實(shí)現(xiàn)了大規(guī)模的網(wǎng)絡(luò)自動(dòng)化,旨在實(shí)現(xiàn)虛擬機(jī)(VM)和容器等虛擬化環(huán)境中的高效網(wǎng)絡(luò)交換。通過(guò) DOCA Flow,可以在用戶空間數(shù)據(jù)平面中實(shí)現(xiàn) DPU 加速虛擬交換機(jī)(vSwitch),允許任何配備 DPU 的服務(wù)器充當(dāng)網(wǎng)絡(luò)交換機(jī)、路由器或有狀態(tài)負(fù)載均衡器。
這不僅提供了將 vSwitch 用于多個(gè) VNF 的靈活性,同時(shí)也顯著提高了小數(shù)據(jù)包吞吐量并降低了延遲,從而通過(guò)增強(qiáng) DPU 的網(wǎng)絡(luò)性能來(lái)加速通信,并助力連接用戶的南北流量,以及 AI 和分布式應(yīng)用程序的東西流量。
下一代防火墻
現(xiàn)代防火墻需要以更高的速率檢查數(shù)據(jù),以應(yīng)對(duì)新的威脅。然而,隨著網(wǎng)絡(luò)速度的提高,CPU 上的負(fù)載會(huì)增加。這可能導(dǎo)致延遲增加、數(shù)據(jù)包丟失和網(wǎng)絡(luò)吞吐量降低。要在不犧牲延遲的情況下支持更高的速度和更嚴(yán)格的安全要求是非常復(fù)雜的,并且部署足夠多的傳統(tǒng)防火墻來(lái)處理增加的流量是成本高昂的。
DOCA Flow 支持為每臺(tái)托管 DPU 的服務(wù)器開發(fā)智能網(wǎng)絡(luò)過(guò)濾器。借助此過(guò)濾器,流量的解析和轉(zhuǎn)向?qū)⒒陬A(yù)定義的策略,且不會(huì)產(chǎn)生 CPU 開銷。它可以用于創(chuàng)建分布式下一代防火墻(NGFW),通過(guò)使用 DPU 上的專用加速器和 Arm 核心來(lái)根據(jù)適當(dāng)流過(guò)濾和轉(zhuǎn)發(fā)數(shù)據(jù)包,以及管理 NGFW 的數(shù)據(jù)平面卸載和控制平面,每臺(tái)服務(wù)器可以實(shí)現(xiàn)接近 100Gbps 的吞吐量。
使用 DOCA Flow 可以提供一種經(jīng)濟(jì)高效的解決方案,將數(shù)據(jù)包處理從 CPU 卸載到 DPU,以超越傳統(tǒng)硬件解決方案的方式提高性能并降低成本。它在不犧牲服務(wù)器性能的情況下提供了高級(jí)安全功能,如入侵防御。它還可以在網(wǎng)卡/ DPU 中實(shí)現(xiàn)更快的網(wǎng)絡(luò)流量檢查。
虛擬網(wǎng)絡(luò)功能
DOCA Flow 可以加速虛擬化網(wǎng)絡(luò)功能(VNF),如路由器、負(fù)載均衡器、防火墻、內(nèi)容交付網(wǎng)絡(luò)(CDN)服務(wù)等。電信供應(yīng)商可以通過(guò)開發(fā)在 BlueField DPU 上運(yùn)行的 VNF 來(lái)替換專有硬件,并在商用服務(wù)器上執(zhí)行虛擬化工作負(fù)載。
通過(guò)使用 DPU 進(jìn)行 VNF 加速,實(shí)現(xiàn)了更高效、更靈活的解決方案,與商用服務(wù)器相比,減少了設(shè)備、空間、散熱和電力需求。所有這些都有助于解決基于冷卻和空間的限制,為 5G、人工智能、物聯(lián)網(wǎng)和邊緣計(jì)算帶來(lái)新的機(jī)遇。
邊緣應(yīng)用程序
DOCA Flow 是需要高網(wǎng)絡(luò)速度和 I/O 處理能力的邊緣工作負(fù)載的理想解決方案,例如內(nèi)容交付網(wǎng)絡(luò)和視頻分析系統(tǒng)。邊緣的主機(jī)應(yīng)用程序可以使用 DOCA Flow 進(jìn)行設(shè)計(jì),在安裝在通用服務(wù)器中的 DPU 上運(yùn)行,從而消除了對(duì)昂貴的專有硬件設(shè)備的需求。通過(guò)使用 DPU 加速和 Arm 核心,需要更少的服務(wù)器 CPU 核心,從而允許使用更少量的服務(wù)器,且需要更少的能量消耗、更少的冷卻和更少的機(jī)架空間占用。這種方法在資本支出和運(yùn)營(yíng)支出方面都能節(jié)省成本。
總結(jié)
DOCA Flow 庫(kù)可以簡(jiǎn)化現(xiàn)代應(yīng)用程序的開發(fā),在數(shù)據(jù)包處理中提供加速的網(wǎng)絡(luò)吞吐量和延遲改進(jìn),從而為開發(fā)者提供幫助。對(duì)于用商用現(xiàn)貨(COTS)服務(wù)器平臺(tái)上托管的虛擬化應(yīng)用程序取代專有裸機(jī)硬件解決方案的應(yīng)用程序來(lái)說(shuō)尤其如此。
該庫(kù)由幾個(gè)用于高效網(wǎng)絡(luò)卸載的構(gòu)建塊組成,包括實(shí)現(xiàn)基本的數(shù)據(jù)包處理流水線、最長(zhǎng)前綴匹配(LPM)和互聯(lián)網(wǎng)協(xié)議安全(IPsec)的加解密。不久將在連接跟蹤(CT)和訪問(wèn)控制列表(ACL)中添加增強(qiáng)功能,以創(chuàng)建或修改訪問(wèn)控制條目。有關(guān) DOCA Flow 參考應(yīng)用程序的示例,請(qǐng)參閱 DOCA Reference Applications 文檔。
通過(guò)利用 DOCA Flow 的功能,組織可以在需要高吞吐量和低延遲的用例中最大限度地降低成本、加快服務(wù)部署并優(yōu)化硬件利用率。
審核編輯:劉清
-
NVIDIA技術(shù)
+關(guān)注
關(guān)注
0文章
17瀏覽量
6417 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2720瀏覽量
101341 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2284瀏覽量
96025 -
DPU
+關(guān)注
關(guān)注
0文章
390瀏覽量
24687 -
加解密
+關(guān)注
關(guān)注
0文章
18瀏覽量
6614
原文標(biāo)題:利用 NVIDIA DOCA Flow 實(shí)現(xiàn) DPU 加速數(shù)據(jù)包轉(zhuǎn)向邏輯
文章出處:【微信號(hào):Leadtek,微信公眾號(hào):麗臺(tái)科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux系統(tǒng)收發(fā)網(wǎng)絡(luò)數(shù)據(jù)包的工作過(guò)程

DPDK在AI驅(qū)動(dòng)的高效數(shù)據(jù)包處理應(yīng)用

esp8266怎么做才能每秒發(fā)送更多的數(shù)據(jù)包呢?
odbus實(shí)現(xiàn)主機(jī)對(duì)從設(shè)備讀取數(shù)據(jù)包和從設(shè)備寫入數(shù)據(jù)包
什么是DPU?
網(wǎng)絡(luò)數(shù)據(jù)包捕獲機(jī)制研究
基于Jpcap的數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
數(shù)據(jù)包過(guò)濾原理

什么是數(shù)據(jù)包?
高速數(shù)據(jù)包處理硬件加速技術(shù)

網(wǎng)絡(luò)數(shù)據(jù)包分析軟件wireshark的基本使用
簡(jiǎn)述Linux系統(tǒng)收發(fā)網(wǎng)絡(luò)數(shù)據(jù)包的過(guò)程

使用 NVIDIA BlueField DPU 加速 Suricata IDS / IPS

Linux如何操作將數(shù)據(jù)包發(fā)送出去

請(qǐng)問(wèn)高端網(wǎng)絡(luò)芯片如何處理數(shù)據(jù)包呢?

評(píng)論