編者按:
NVIDIA最大的成功是把GPU變成了GPGPU,使之成為了最廣泛的異構加速器件;而構筑起堅固護城河的的則是龐大的CUDA生態。 2020年10月,NVIDIA DPU發布,同步發布了DOCA開發SDK及框架。是否能夠基于DOCA構建DPU的成熟生態,復制GPU和CUDA的成功,大家拭目以待。本文是DOCA SDK及框架的綜述。
1 DOCA定義
現代企業數據中心是軟件定義、完全可編程的數據中心,旨在跨越云、核心和邊緣環境為高度分布式的應用工作負載提供服務。軟件定義的數據中心可提供類似云的靈活性和敏捷性,但會消耗許多CPU核資源,降低服務器和數據中心的效率。通過DPU和DOCA(Data Center Infrastructure on a Chip Architecture),可以實現軟件定義且硬件加速的基礎設施,更大限度地提高數據中心的性能和靈活性。
DPU位于數據中心的服務器節點內,DOCA是用于在BlueField DPU上開發應用程序的軟件框架。借助DOCA,可以在BlueField DPU,從主機CPU卸載并加速基礎設施工作負載。 開發者基于DOCA開發運行在DPU上的各種服務,讓DPU成為與業務隔離的、安全的服務域(或Enclave),用于網絡、安全、存儲和基礎設施管理。
DPU可加速所有關鍵數據中心的基礎設施服務,還可以運行控制平面的軟件,如軟件定義網絡(SDN)的控制器、分布式存儲軟件,或在可編程Arm核上運行新一代防火墻代理。
2 NVIDIA Bluefield DPU
BlueField DPU包括:
一個強大的智能網卡,可支持高速以太網或InfiniBand兩種接口;
一組Arm核以及DRAM;
PCIe交換機;
通過高速Mesh網絡連接在一起。
嵌入式ConnectX智能網卡包含許多加速器(網絡、云、存儲、加密、流媒體、時間同步等),BlueField更是增加了面向安全、存儲虛擬化、硬件隔離和遠程管理的加速器和功能。
3 DOCA的功能組件
從開發者的角度來看,DOCA可劃分為兩大領域:
SDK組件,幫助您構建在DPU上運行或使用DPU的應用程序。
DOCA運行時集,包含在DPU上運行應用程序所需的組件。
DOCA軟件包括:
DOCA SDK提供行業標準的開放式API和框架,其中包括用于網絡和安全的DPDK和P4,以及用于存儲的SPDK。這些框架通過集成的NVIDIA加速包簡化了應用卸載開發。
DOCA SDK支持一系列操作系統及其發行版本,并且包含驅動、庫、工具、文檔和示例應用程序。
基于DOCA的服務以行業標準的I/O接口開放給計算節點,從而實現基礎設施虛擬化和隔離。
DOCA運行時環境包括用于在數據中心內的數百或數千個DPU上進行預置、部署和編排容器化服務的工具。
BlueField DPU和DOCA框架允許將基礎設施服務轉移到DPU,從而卸載和加速這些服務。DOCA支持在應用層和基礎架構服務層進行開發。SDK包含的關鍵組件:
行業標準API:DPDK、SPDK、P4;
網絡加速SDK:ASAP2 SDN、模擬的VirtIO、P4、5T for 5G技術;
安全加速SDK:inline加密、深度數據包檢測;
存儲加速SDK:存儲Emulation和虛擬化、加密和壓縮;
RDMA加速SDK:UCX、RDMA Verbs、GPUDirect;
管理SDK:部署、預配置、服務編排;
用戶空間接口和內核空間接口。
運行時包含二進制庫、運行時二進制文件、編譯工具、安裝工具、基準測試程序以及各種DOCA服務代理。借助這些,您可以使用不同的DPU API和功能,設置DPU卡、安裝合適的操作系統,以及在DPU上運行您的軟件。運行時還包括各種管理工具,用于配置和支撐服務器中和網絡中的DPU卡,同時支持編排容器化操作與各種加速服務。
DOCA 1.0包括了使用DPI的加速負載均衡器參考應用程序,以及使用DPI和regex模型匹配的下一代防火墻代理參考應用程序。他們都充分利用了DOCA庫和DPU上的加速功能的優勢。它們包含源文件,無需在DPU上進行編程。但是,它們可以提供DPU API和庫的使用示例,從而簡化應用程序的開發和集成。未來的DOCA版本中可能會添加更多的參考應用程序。 DPU管理工具和其他功能:
SDK管理器。幫助在運行DPU的機器上安裝和更新BlueField SDK。它會在主機上安裝 DOCA SDK和運行時,并在主機上安裝用于更新BlueField的操作系統和DOCA的開發容器。
配置工具。旨在簡化管理和自動化部署數據中心中的大量DPU卡,可以通過腳本和管理工具來實現。
遙測。可以在DPU上選擇性地捕獲和共享網絡和服務器的關鍵遙測數據,然后分享和收集這些數據給日志管理工具、數據分析工具或網絡安全工具等。
以下功能目前可以從BlueField DPU軟件包或Mellanox OFED庫中獲得,并將被添加到未來版本的DOCA SDK中:
網絡流量加密(使用IPSec或TLS);
面向時間同步數據中心的超級準確的精度時間協議(PTP);
關于NVIDIA GPUDirect Storage(GDS)的支持;
等等。
通過DPU將遠端網絡存儲虛擬為本地NVMe SSD或virtio-blk(虛擬IO-塊存儲)設備的BlueField SNAP技術。DOCA運行時包含的SNAP功能,可支持通過SPDK庫訪問上層開發者SDK,更多的SNAP功能將會逐漸添加到DOCA SDK。
BlueField操作系統包含引導加載器、操作系統內核、必要的網卡固件、NVIDIA驅動、示例文件系統和工具鏈。NVIDIA BlueField DPU預裝商業級Linux發行版Ubuntu Server 20.04,并且持續提供操作系統和安全更新。作為一個獨立的軟件包,DOCA可以在多種業界領先的操作系統上使用,而不與某個特定的Arm或x86操作系統進行捆綁。
4 DOCA的價值和作用
DOCA的關鍵作用
DOCA利用行業標準API,基于NVIDIA DPU快速創建應用程序和服務;
DOCA和BlueField DPU相結合,使得開發者能夠開發具備突破性的網絡、安全和存儲性能的應用程序。
BlueField將基礎設施服務域與工作負載域隔離開來,顯著提高了應用程序和服務器的性能、安全性和效率;
同時,DOCA為開發者提供了實現優化、安全、加速數據中心所需的各種工具。
DOCA的特點:
滿足未來需求。DOCA可提供多代產品支持,給予開發者充分信心,確保今天開發的應用程序能夠在未來各代的BlueField上持續運行,并持續獲得性能加持。
卸載、加速、隔離基礎設施。網絡、存儲和安全服務可通過DPU進行卸載、加速和隔離,同時以線速性能安全地把數據傳輸給上層工作負載。
開放式生態系統。DOCA提供軟件應用程序框架,加速生態系統開發。
4.1 加快基礎設施服務走向市場的時間
DOCA包括了API、驅動、庫、示例代碼、文檔和預設的容器等,可激活BlueField-2 DPU的加速、安全和虛擬化功能。DOCA提供一套統一且可靠的工具,用于開發基于DPU運行的關鍵數據中心服務,以處理多種類型的數據處理。其中包括:
定向網絡流量;
存儲的加速、虛擬化和壓縮;
數據加密和解密;
安全威脅掃描;
與遠程管理工具的集成;
在Arm核上運行控制平面應用。
您可以對這些卸載和加速器進行編程,實現單獨或一起使用,并可與基于GPU的NVIDIA AI平臺進行集成。 DOCA助力應用程序開發者、設備供應商、研究人員和NVIDIA軟件合作伙伴通過SDK對所有這些DPU功能進行編程。許多功能的接口在底層的API和上層編程語言中均會提供。
這些基于DPU運行的服務不僅僅是軟件定義、硬件加速,而且支持AI、易于編程。 未來幾代BlueField DPU將借助新的增強型加速器提供更強的計算力。DOCA可通過擴展API的方式來支持新的功能,確保了與DPU的前向兼容。NVIDIA致力于通過架構流程技術和軟件創新來提升性能。我們持續提升云、核心和邊緣環境以及應用工作負載的性能和功能。
4.2 簡化BlueField DPU上的服務創建流程
4.2.1 網絡
DPU可加速SDN和NFV:開放虛擬交換(OVS)、Overlay網絡(例如VXLAN)、網絡地址轉換(NAT)、自動負載平衡、細粒度流量管理和內容分發網絡。 DOCA支持通過標準DPDK API將服務應用和DPU加速引擎關聯起來,例如rte_flow庫可以支持基于流的不同操作,包括Overlay封包、包頭重寫、Hairpin,以及對虛擬網絡功能的測量。
為提升性能和主機CPU效率,DOCA還包含了原生OVS-kernel和OVS-DPDK應用程序,通過BlueField DPU的硬件加速交換和數據包處理(ASAP2)技術提供無縫加速。
DPU硬件對于主機網絡的加速,由DOCA編程平臺上運行的OVS應用來定義,數據中心SDN控制器來編排所有網絡,并通過DPU的帶外管理端口進行連接。 P4是另一種語言,可以對BlueField DPU中靈活、可編程的數據路徑加速器進行編程。
DOCA 支持P4語言,可支持未來基于P4開發的VNF業務。這個功能被集成到了已經擁有豐富的VNF產品生態系統的其它API中。此架構允許同時執行面向內核、RoCE、DPDK、SPDK、P4 和P4.runtime接口編寫的程序,這些可無縫共存并充分利用DPU數據路徑加速。
4.2.2 存儲
對于存儲,DPU支持加速軟件定義的彈性存儲、NVMe over Fabrics (NVMe-oF)、RoCE、靜態數據加密、數據刪除、分布式糾錯和數據壓縮。BlueField DPU NVMe SNAP技術可提供彈性塊存儲功能,并向主機提供遠程塊存儲,如同它是本地NVMe塊存儲或VirtIO-blk塊設備一樣具有低延遲、高吞吐量和高IOPS等特性。
DOCA完全支持SPDK開源框架,可助力您創建自己的存儲解決方案。通過模擬對PCIe NVMe磁盤的的訪問,利用BlueField DPU的多項加速功能來實現各種自定義的邏輯,主機應用可以透明地管理模擬出來的NVMe存儲。其中包括加密、ECC分布式糾錯、壓縮、重復數據刪除和惡意軟件掃描。如果您要通過DOCA進行編程,現在無需對個別引擎進行顯式編程,即可輕松調用用于數據存儲的功能。
4.2.3 安全性
DPU還可以卸載、加速和隔離所有關鍵數據中心安全服務。其中包括支持新一代防火墻、微分段、使用透明IPSec和TLS進行動態數據在線加密以及入侵保護。DPU擁有一組專用的安全引擎,包含了構建安全解決方案的所有模塊。 DOCA包含一組用于開發安全應用程序的標準化API。
所有安全服務均始于數據包采集、解密、連接狀態的有狀態跟蹤,一直到7層深度數據包檢查。這樣會將應用程序流量分類為受信任或惡意。此外,它最終還會將定義的安全策略轉換為一系列操作,例如數據包允許、丟棄、重寫或重定向。編程通過標準DPDK API完成,如下所示:
rte_security,用于加密和解密
rte_sft庫,用于連接感知
rte_regex庫,用于正則表達式模式匹配
rte_dpi庫,用于對所有流水線加速函數進行深度包檢查
DOCA還支持基于IPSec、TLS和存儲AES-XTS的原生內核加密,由DPU實現在線加速,可以輕松用于基于OpenSSL或OVS-IPSec的應用。這支持DPU在不通知主機的情況下透明地對所有流量進行加密和解密。其中包括DPU在安全Enclave內執行密鑰管理。
通過RDMA庫對主機進行快速內存訪問,DOCA可讓您創建嚴格的主機自檢方案。借助自動惡意軟件掃描,您可以進一步了解從DPU到主機的一舉一動。如果發現惡意活動,您可以通過對DPU的硬件加速引擎的編程,達到以線速來執行策略。
4.2.4 基礎設施管理
傳統管理會在每臺服務器上運行代理。但是,運行這些代理會消耗本可用于業務應用的CPU周期。代理通常無法監控服務器上VM之間以及容器之間的網絡流量。如果代理執行數據包過濾或流量遙測等功能,則會消耗更多CPU周期。如果服務器發生嚴重故障,則基于VM 或容器的管理代理不太可能報告狀態或重啟服務器。
DOCA允許業務隔離的、基于DPU的代理執行帶內或帶外管理,而不會給服務器CPU增加負擔。如果服務器需要重置,或者甚至租戶或業務應用需要一臺無代理的裸金屬服務器,通過DOCA編程的DPU仍可發送遙測數據、執行遠程重置或允許安全啟動服務器,這些操作均無需在服務器CPU上運行代理。
4.3 使用DOCA的益處
BlueField的許多功能和加速器均可通過特定API、開源SDK或現有驅動進行訪問,使用DOCA的主要益處是簡化使用DPU的基礎設施應用程序和功能的開發和部署流程。這樣可以加快應用和其它BlueField的功能進入市場的速度:
統一訪問所有DPU功能,不必學習和使用多種不同的工具。
在DPU的底層API上提供一個抽象層給上層的庫,可以更快速、更輕松地進行開發,實現和上層業務的集成;也可以直接和底層接口交互,從而達到更精細的控制。
向前/向后兼容性。使用DOCA進行開發意味著應用可以在未來版本的BlueField DPU上無縫運行,且得到了更高的性能和擴展性。
基于容器化服務的DPU調配和部署。DOCA包含用于簡化DPU設置、配置和服務編排的工具。
5 BlueField DPU和DOCA密切協作
通過BlueField DPU和DOCA,可以整合通常無法一起部署的數據中心基礎設施服務。例如,由CPU或獨立Look-aside加密卡對動態數據進行加密時,無法和RoCE、壓縮、哈希或 Overlay網絡一起工作。事實上,執行此類加密會禁用以上操作及許多其它網絡卸載功能。
這是因為,如果先對數據進行加密的話,意味著網絡設備不再能識別數據包的內容,進而無法執行巧妙的數據包重路由、過濾、擁塞管理等操作。但是,使用BlueField DPU和DOCA, 您可以通過編程將RoCE、VXLAN、哈希計算、壓縮,以及許多其它卸載功能與加密功能組合在一起,以及它們之間互相組合。
DOCA將所有功能合并到一個SDK,使用基于通用開放API的加速庫來即刻釋放DPU的力量。您還可以使用DOCA,透明地將關鍵控制平面應用或代理從X86域移植到DPU的Arm 核,從而提高服務器性能、效率,并實現工作負載和安全的隔離。
6 對數據處理加速和AI進行編程
重要的是,DOCA更進一步地支持先進的GPU加速的AI工作負載,被完全整合到了大型NVIDIA NGC加速計算軟件平臺,成為了其中的一個測試項。 對于傳統的企業應用,DOCA可加速包含BlueField DPU的系統中的數據中心基礎設施服務。
但是,對于包含DPU和GPU的系統,加速AI和數據分析工作負載具有巨大優勢。DOCA 已集成到NGC認證計劃。它可以充分利用大量的開發、集成和測試資源,支持NVIDIA的全部AI應用程序框架(NVIDIA Riva、NVIDIA Merlin、NVIDIA Metropolis、NVIDIA Clara、NVIDIA Aerial等)。
DOCA與NGC平臺集成,還釋放了各類第三方軟件基礎設施與應用的強大功能。 可以將DOCA與CUDA結合使用,通過GPU加速計算并通過DPU加速數據中心服務。還可以使用DOCA啟用GPUDirect,加速整個網絡中GPU之間的通信。
7 DOCA編程選項
當對DPU進行編程時,可以直接訪問驅動。這通常需要底層編程和詳細的驅動知識。在大多數情況下,對DOCA庫進行編程會更加輕松,這些庫為驅動提供了上層的抽象層。它的優勢就是已經針對每個用例進行了調優,可獲得更出色的加速性能。
參考應用提供了實際工作代碼以及DOCA庫的使用示例。在某些情況下,可以使用這些參考應用作為基礎,然后通過修改它們來滿足運行在DPU上的不同應用和方案。 例如如果想構建一個可加速的負載均衡器,或者集成一個分布式防火墻的代理到DPU,可以選擇DOCA中關于深度數據包檢測(DPI)庫的相關參考應用。
這些庫又運行在DPDK庫上,利用DPU內的有狀態連接跟蹤和正則表達式(regex)匹配引擎進行加速。
加速負載均衡器 | NGFW下一代防火墻代理 | 彈性存儲 | |
DOCA參考應用 | 負載均衡器 | 防火墻代理 | <2021年6月推出> |
DOCA庫 | DOCA Flow和DPI | DOCA Flow和DPI | SPDK |
底層API/Lib | FTE_FLOW、DPDK SFT、DPDK REGEX、DPDK | RTE_FLOW、DPDK RegEx | SPDK、BlueField SNAP |
DPU硬件功能 | eSwitch、連接跟蹤、RegEx | eSwitch、連接跟蹤、RegEx | RDMA、BlueField SNAP、PCIe交換機 |
表1 三個例子來解釋DOCA是如何運行在底層API/Lib和DPU上,以及如何來訪問底層API/Lib和DPU件功能的
8 DOCA 1.1更新
DOCA 1.1版本建立在DOCA 1.0的強勁勢頭之上,并包含以下更新:
DOCA FLOW-LIB,用于網關性能的加速,以實現不同網絡間互操作性;
DOCA FLOW示例應用,用于URL和DNS過濾與轉發功能;
加速有狀態流表(SFT),用于連接追蹤功能;
加速正則表達式(RegEx),用于與DPI Lib進行模式匹配;
引入x86平臺上的DOCA Runtime,用于加速在主機x86處理器上運行的應用,不必所有的業務都卸載到DPU。
審核編輯:劉清
-
控制器
+關注
關注
112文章
16392瀏覽量
178451 -
DRAM芯片
+關注
關注
1文章
84瀏覽量
18034 -
DPU
+關注
關注
0文章
365瀏覽量
24211 -
sdn
+關注
關注
3文章
254瀏覽量
44803
原文標題:DOCA綜合介紹:讓NVIDIA DPU更加強大
文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論