NVIDIA DOCA 是一個框架,旨在簡化 NVIDIA BlueField DPUs 和 ConnectX SmartNICs 的編程和應用程序開發。它通過 SDK、運行時二進制文件和高級 API 提供與網絡應用程序相關的高級抽象構建塊,使開發人員能夠快速創建應用程序和服務。
NVIDIA DOCA Flow 是 DOCA 框架中最新更新的一組軟件驅動程序和一個引導庫。它在用戶空間中運行,并能夠從 CPU 卸載與網絡相關的操作。這反過來又使應用程序能夠以低延遲處理高數據包吞吐量的工作負載,從而節省 CPU 資源并降低功耗。
DOCA Flow 還有效地優化了 BlueField DPU 和 ConnectX SmartNIC 的利用率。 DOCA 是釋放 BlueField 加速引擎潛力的關鍵,而 DOCA Flow 允許快速訪問加速引擎以實現數據包導向邏輯。
簡化和加快開發
DOCA Flow 提供 C 庫 API,用于定義基于硬件的數據包處理管道?, 抽象了 BlueField DPU 和 ConnectX SmartNIC 的硬件功能。這使開發人員能夠為數據中心和云網絡構建高性能和可擴展的應用程序,以編程方式定義和控制網絡流量,實施網絡策略,并有效管理資源。
DOCA Flow 補充并擴展了 DPDK,提供了專門為 NVIDIA DPU 和 NIC 量身定制的額外優化功能。此外,DOCA Flow 通過為流行的網絡用例以及更復雜的用例(如最長前綴匹配(LPM)、互聯網協議安全(IPsec)加密或解密以及訪問控制列表(ACL)中的條目的創建或修改)提供用于實現基本包處理管道的構建塊,簡化了網絡堆棧的復雜性。
使用預先創建的網絡構建塊可以讓您專注于創建應用程序,而不是編寫低級的數據包處理例程。這減少了 TTM,并使您能夠專注于應用程序的核心,因為構建塊已經針對性能進行了有效優化。 DOCA Flow 構建塊使軟件開發更容易,所有經驗級別的開發人員都可以使用。
為什么需要 DPU
現代工作負載和軟件定義的網絡導致 CPU 核心上的網絡開銷很大。數據中心和云網絡現在以 25 或 100 Gbps 的速度啟動,并擴展到 200 甚至 400 Gbps,需要 CPU 核心以極高的速度處理網絡流量的分類、跟蹤、處理和引導。
計算虛擬化通過在主機虛擬機和容器之間的內部生成更多的東/西流量,并為與其他服務器或存儲設備的外部通信添加覆蓋網絡封裝和微分段,來增強網絡需求。因此,對 CPU 提出了更多的網絡需求。
CPU 核心具有顯著的成本,并且不太適合高效的網絡數據包處理。高帶寬任務消耗更多的 CPU 核心,給服務器寶貴的計算基礎設施帶來不必要的壓力,否則這些基礎設施可以更有效地用于租戶工作負載和應用程序數據處理。
相比之下,像 SmartNIC 和 DPU 這樣的專用硬件是專門設計的,可以有效地處理大規模的快速數據移動,與標準 CPU 相比,功耗、熱量和總體成本都有所降低。
執行管道
DOCA Flow 庫提供了 API,這些 API 使用 BlueField DPU 和 ConnectX SmartNIC 中的硬件功能來構建通用和可重復使用的執行管道,其中每個管道可能由匹配標準(數據包分類)和一組操作組成。
?分類能夠識別應該應用邏輯的傳入數據包,而操作會有所不同,并實現適合每個數據包分類的邏輯。使用分類和操作作為構建塊為開發硬件加速的網絡應用程序提供了一種靈活的方法,包括網關、防火墻、負載均衡器等。
如前所述, DOCA 流執行管道中的動作各不相同,例如,可以包括分組操作,例如對 MAC 地址應用網絡地址轉換(NAT)邏輯、更改源或目的地 IP 地址、應用覆蓋網絡封裝、更改報頭字段、增加計數器以測量流量等等。行動可能包括通過使用策略監控流量,將流量轉發到不同的隊列——軟件隊列或發夾目標,端口鏡像或數據包采樣以進行調試和合法攔截,以及丟棄數據包以強制執行策略或訪問控制——所有這些都完全卸載到 DPU 或 NIC 硬件。
管道可以通過從一個管道到另一個管道的轉發操作鏈接在一起,以形成一個完整的指導樹,定義傳入數據包的路徑。在對數據包執行預定義動作之后,數據包可以被轉發到另一個管道以進行進一步的動作或檢查,被轉發到軟件隊列、硬件發夾隊列,或者被發送或丟棄。

導向樹
通過實現通用網絡功能邏輯,可以使用導向樹在 DPU 或 NIC 上創建基于硬件的網絡應用程序。這使得數據包能夠被有效地分類,從而可以對每個數據包應用適當的操作。使用轉向樹概念提供了多種好處,包括:
- 為每個數據流定制處理邏輯
- 將數據包定向到特定操作或目的地的通用性
- 自適應結構,可根據不斷變化的條件輕松調整大小
- 靈活的框架,允許添加新的管道類型以滿足不斷發展的需求
- 優化資源使用,最大限度地減少冗余,實現共享匹配和操作
NVIDIA DOCA Flow 用例
在為 BlueField DPU 和 ConnectX SmartNIC 開發網絡管道時, DOCA Flow 是簡化應用程序開發工作的基本要素。用例適用于企業數據中心、電信公司和云環境,尤其是那些專注于需要高效數據包處理的網絡基礎設施和安全的環境。
此外,它被設計用于處理涉及以極高的速率建立和刪除管道的場景,并且每秒可以管理數百萬個數據包交換。這包括軟件定義的網絡應用程序、數據分析、虛擬交換、人工智能推理、網絡安全和其他數據包處理應用程序。它支持諸如接收、檢查標頭和有效負載、跟蹤連接以及基于預定策略或其他標準檢查、重新路由、復制或丟棄數據包之類的操作。
打開 vSwitch 虛擬交換機
Open vSwitch(OVS)通過編程擴展實現了大規模的網絡自動化,旨在實現虛擬機(VM)和容器等虛擬化環境中的高效網絡切換。通過 DOCA 流,可以在用戶空間數據平面中實現 DPU 加速虛擬交換機(vSwitch),允許任何具有 DPU 的服務器充當網絡交換機、路由器或有狀態負載均衡器。
這為多個 VNF 提供了 vSwitch 可用性的靈活性,同時也顯著提高了小數據包吞吐量并減少了延遲,從而通過增強 DPU 的網絡性能來加快和加速通信,并促進了連接用戶的南北流量,以及 AI 和分布式應用程序的東西流量。
下一代防火墻
現代防火墻需要以更高的速率檢查數據,以應對新的威脅。然而,隨著網絡速度的提高, CPU 上的負載會增加。這可能導致延遲增加、數據包丟失和網絡吞吐量降低。在不犧牲延遲的情況下支持更高的速度和更嚴格的安全要求是復雜的,并且部署足夠多的能夠處理增加的流量的傳統防火墻的成本令人望而卻步。
DOCA Flow 支持為托管 DPU 的每個服務器開發智能網絡過濾器。有了這個過濾器,流量流的解析和引導基于預定義的策略,沒有 CPU 開銷。它可以用于創建分布式下一代防火墻(NGFW),通過在 DPU 上使用專用加速器和 Arm 核心來根據數據包的適當流過濾和轉發數據包,以及管理 NGFW 的數據平面卸載和控制平面,每個服務器可以實現接近 100 Gbps 的吞吐量。
使用 DOCA Flow 可以提供一種經濟高效的解決方案,將數據包處理從 CPU 卸載到 DPU ,以提高性能并降低傳統硬件解決方案之外的成本。它在不犧牲服務器性能的情況下提供了高級安全功能,如入侵防御。它還可以在 NIC/ DPU 中實現更快的網絡流量檢查。
虛擬網絡功能
DOCA Flow 可以加速虛擬化網絡功能(VNF),如路由器、負載均衡器、防火墻、內容交付網絡(CDN)服務等。電信公司供應商可以通過開發在 BlueField DPU 上運行的 VNF 來替換專有硬件,并在商品服務器上執行虛擬化工作負載。
通過使用 DPU 進行 VNF 加速,實現了更高效、更靈活的解決方案,與商品服務器相比,減少了設備、空間、熱量和功率需求。所有這些都有助于解決基于冷卻和空間限制的限制,為 5G、人工智能、物聯網和邊緣計算帶來新的機遇。
邊緣應用程序
DOCA Flow 是需要高網絡速度和 I/O 處理能力的邊緣工作負載的理想解決方案,例如內容交付網絡和視頻分析系統。邊緣的主機應用程序可以使用 DOCA Flow 設計,在安裝在通用服務器內的 DPU 上運行,從而消除了對昂貴的專有硬件設備的需求。通過使用 DPU 加速和 Arm 內核,需要更少的服務器 CPU 內核,從而允許更小的服務器消耗更少的能量、需要更少的冷卻和占用更少的機架空間。這種方法在資本支出和運營支出方面都能節省成本。
總結
DOCA Flow 庫可以簡化現代應用程序的開發,從而在數據包處理中提供加速的網絡吞吐量和延遲改進,從而為開發人員提供幫助。對于用商用現貨(COTS)服務器平臺上托管的虛擬化應用程序取代專有裸機硬件解決方案的應用程序來說尤其如此。
該庫由幾個用于高效網絡卸載的構建塊組成,包括實現基本的數據包處理管道、最長前綴匹配(LPM)和互聯網協議安全(IPsec)的加密或解密。不久將在連接跟蹤(CT)和訪問控制列表(ACL)中添加增強功能,以創建或修改訪問控制條目。有關 DOCA 流量參考應用程序的采樣,請參閱 DOCA Reference Applications 文檔。
通過利用 DOCA Flow 的功能,組織可以在需要高吞吐量和低延遲的用例中最大限度地降低成本、加快服務部署并優化硬件利用率。
要了解更多信息,請瀏覽以下資源:
- 使用 NVIDIA DPUs 和 NVIDIA DOCA 為 AI 時代轉型數據中心
- 配備 DOCA 的 BlueField DPUs
- 使用 NVIDIA DOCA 2.0 改變 IPsec 部署
- Accelerated Networking
- BlueField DPUs 轉型
?