新聞中心
IPDK是一個(gè)開源的、與廠商無關(guān)的驅(qū)動(dòng)程序和API框架,可管理由CPU、IPU、DPU或交換機(jī)構(gòu)建的基礎(chǔ)設(shè)施。DPU/IPU應(yīng)該是下一個(gè)十年的可編程重要硬件載體,IPDK能否成為DPU/IPU的通用軟件平臺(tái)呢?

DPU/IPU軟件生態(tài)
DPU/IPU持續(xù)爆火,引得越來越多的玩家相繼入局,除英偉達(dá)、英特爾和AMD等國(guó)外廠商,阿里、騰訊、銳捷、浪潮、芯啟源、星云智聯(lián)等本土廠商也持續(xù)發(fā)力。
但目前市場(chǎng)上DPU/IPU軟件生態(tài)非常復(fù)雜,存在框架多、接口雜、開發(fā)難度高等問題。對(duì)最終用戶和供應(yīng)商來說,需要一個(gè)統(tǒng)一的開放API來支持業(yè)務(wù)應(yīng)用開發(fā)和基礎(chǔ)設(shè)施管理。
IPDK
IPDK應(yīng)運(yùn)而生,它屏蔽了底層硬件的差異,可以支持任何定義了相關(guān)接口類型的設(shè)備,并給上層應(yīng)用提供一致性的訪問接口。IPDK將管理基礎(chǔ)設(shè)施的所有功能進(jìn)行抽象封裝,形成了“接口三明治”(如下圖)?!叭髦巍钡讓訉?duì)接SDK驅(qū)動(dòng)程序、編譯器后端等,頂部定義了一組RPC接口以支撐不同的應(yīng)用場(chǎng)景。
IPDK在Linux中運(yùn)行,使用SPDK、DPDK和P4等成熟的開源工具,實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化、存儲(chǔ)虛擬化、工作負(fù)載調(diào)配、信任根和平臺(tái)中的卸載功能。IPDK為提高性能、優(yōu)化資源和確保基礎(chǔ)設(shè)施的安全提供了一個(gè)通用平臺(tái)。另外,IPDK可以抽象出硬件的壓縮和加密功能,以及底層的存儲(chǔ)加速。
IPDK標(biāo)準(zhǔn)接口
IPDK包括兩大開放接口,一種是Infrastructure Application Interface(基礎(chǔ)設(shè)施應(yīng)用接口),另一種是Target Abstraction Interface (TAI)(目標(biāo)設(shè)備抽象接口),這個(gè)概念有點(diǎn)像SDN里的北向接口與南向接口。
基礎(chǔ)設(shè)施應(yīng)用接口
基礎(chǔ)設(shè)施應(yīng)用接口基于以下兩個(gè)設(shè)計(jì)原則:
- 基于標(biāo)準(zhǔn):根據(jù)基礎(chǔ)設(shè)施應(yīng)用程序使用的現(xiàn)有標(biāo)準(zhǔn)進(jìn)行開發(fā)設(shè)計(jì)
- 基于RPC:應(yīng)用程序可以運(yùn)行在本地、遠(yuǎn)程或兩者結(jié)合
基礎(chǔ)設(shè)施應(yīng)用接口也可以被認(rèn)為是DPU/IPU容器的北向接口,代表IPDK中支持的不同RPC接口,其中包括:
- P4Runtime : 用于可編程網(wǎng)絡(luò)的數(shù)據(jù)平面
- OpenConfig :用于配置物理端口、虛擬設(shè)備、QoS和IPsec等
- Redfish / REST API : 用于基礎(chǔ)設(shè)施設(shè)備生命周期和平臺(tái)管理
- SPDK Storage Protocol : 用于軟件定義存儲(chǔ)的RPC接口
- Managed Kubernetes : 用于控制Kubernetes基礎(chǔ)設(shè)施組件的RPC接口
- Envoy xDS : 用于配置Envoy的RPC接口
基礎(chǔ)設(shè)施應(yīng)用接口的示例實(shí)現(xiàn)如下圖所示:
目標(biāo)設(shè)備抽象接口
目標(biāo)設(shè)備抽象接口 (TAI) 是為基礎(chǔ)設(shè)施硬件設(shè)備定義的一個(gè)抽象模型,基礎(chǔ)設(shè)施應(yīng)用程序可以通過TAI管理調(diào)度設(shè)備資源。
目標(biāo)抽象接口基于以下三個(gè)設(shè)計(jì)原則:
- 基于標(biāo)準(zhǔn):根據(jù)可編程目標(biāo)的現(xiàn)有標(biāo)準(zhǔn)進(jìn)行開發(fā)設(shè)計(jì)
- 基于驅(qū)動(dòng)程序和庫組件:基礎(chǔ)設(shè)施中的應(yīng)用程序與 TAI 的庫組件連接,以對(duì)控制平面進(jìn)行編程。在計(jì)算實(shí)例和基礎(chǔ)設(shè)施中的應(yīng)用程序都使用設(shè)備驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)平面操作,例如移動(dòng)數(shù)據(jù)包或存儲(chǔ)數(shù)據(jù)。
- 基于功能:根據(jù)功能接口進(jìn)行開發(fā)設(shè)計(jì),這樣應(yīng)用程序可以在部署目標(biāo)之前預(yù)先查詢目標(biāo)以了解其功能。
目標(biāo)設(shè)備抽象接口由以下部分組成:
- 虛擬設(shè)備:虛擬設(shè)備使用 PCI 熱插拔與計(jì)算實(shí)例交互
- 生命周期控制:控制平面接口用于管理運(yùn)行基礎(chǔ)設(shè)施設(shè)備的更新、監(jiān)控、重置和恢復(fù)。
- 加速器控制:用于加速器的控制平面接口,供基礎(chǔ)設(shè)施應(yīng)用程序使用。
IPDK應(yīng)用場(chǎng)景
IPDK主要的應(yīng)用場(chǎng)景包括:
IaaS:實(shí)現(xiàn)跨虛擬機(jī)、容器和裸機(jī)的虛擬網(wǎng)絡(luò)、存儲(chǔ)和加密技術(shù)等;
IaaS場(chǎng)景下的網(wǎng)絡(luò)虛擬化
IaaS場(chǎng)景下的存儲(chǔ)虛擬化
IaaS場(chǎng)景下的主機(jī)虛擬化
PaaS:實(shí)現(xiàn)容器網(wǎng)絡(luò)、代理服務(wù)等;
PaaS場(chǎng)景下的CSI & CNI
PaaS場(chǎng)景下的Calico Running on IPU
PaaS場(chǎng)景下的Envoy on IPU
Inline Acceleration:實(shí)現(xiàn)防火墻、IDS、網(wǎng)絡(luò)遙測(cè)、5G/無線基礎(chǔ)設(shè)施、AI/ML等。
IPDK與DOCA
從前文我們也可以看出,IPDK與DOCA非常相似。
DOCA(Data Center Infrastructure-on-a-Chip Architecture)是英偉達(dá)專為BlueField DPU打造的一個(gè)高度可編程的SDK開發(fā)平臺(tái)工具,為開發(fā)者提供簡(jiǎn)單開發(fā)接口,程序員可以利用 API、庫和示例代碼來創(chuàng)建和加速應(yīng)用程序,從而豐富DPU的應(yīng)用開發(fā)生態(tài)。英偉達(dá)的專家將DOCA類比為數(shù)據(jù)中心服務(wù)器領(lǐng)域的CUDA。
IPDK與DOCA相比,其獨(dú)特之處在于它是一個(gè)面向DPU/IPU 等硬件進(jìn)行抽象封裝的公共開發(fā)套件。由于一致的抽象性,它可以在任何硬件上運(yùn)行,除英特爾的IPU外,還包括英特爾 Xeon服務(wù)器及其他廠商的DPU。例如,Marvell展示了他們?cè)谄銸cteon DPU上運(yùn)行的IPDK。但目前IPDK的生態(tài)建設(shè)還處于起步階段,而DOCA在市場(chǎng)上已經(jīng)有一定的用戶量。
展 望
未來IPDK項(xiàng)目能否順利發(fā)展,業(yè)界人士認(rèn)為還要考慮到以下幾點(diǎn):
- 從技術(shù)角度,后續(xù)IPDK接口封裝是否全面?能否實(shí)現(xiàn)向后兼容?
- 項(xiàng)目的發(fā)展還要需求牽引,未來會(huì)不會(huì)出現(xiàn)一個(gè)殺手級(jí)應(yīng)用真正引爆IPDK?
- 目前類似軟件堆棧百家爭(zhēng)鳴,如何打動(dòng)和吸引更多廠家參與到IPDK?如何平衡多方的利益?
IPDK項(xiàng)目的愿景十分宏大,但其最終能否成為像OpenStack、Kubernetes那樣的明星開源項(xiàng)目,甚至成為DPU/IPU的通用軟件平臺(tái),還需多方參與,共同推動(dòng),期待IPDK項(xiàng)目早日走向成熟。
網(wǎng)站欄目:IPDK:可編程基礎(chǔ)設(shè)施時(shí)代的開源開發(fā)框架
分享路徑:http://www.dlmjj.cn/article/cdjcsip.html


咨詢
建站咨詢
