IPDK — Overview
目录
OPI
2022 年 6 月 21 日,Linux 基金会宣布了新的 OPI(Open Programmable Infrastructure,开放可编程基础设施)项目,并提出了 “Unlocking Your Programmable Future” 的口号,旨在为基于 DPU/IPU 等可编程硬件承载的软件开发框架培育一个由社区驱动的开放生态,简化应用程序中的网络、存储和安全 API,从而在开发运维、安全运维以及网络运维之间的云和数据中心中实现更具可移植性和高性能的应用程序。
- https://opiproject.org
OPI 的工作目标:
- 定义 DPU/IPU。
- 描述适用于任何硬件解决方案的基于 DPU/IPU 的软件堆栈的供应商无关的框架和架构。
- 支持创建丰富的开源应用程序生态系统。
- 与具有相同愿景的现有开源项目(如 Linux 内核)集成。
- 创建新的 API,用于与 DPU/IPU 生态系统的元素进行交互,包括:硬件、托管应用程序、主机节点以及软件的远程配置和编排。
目前 OPI 的两个核心项目将会是 IPDK 和 DOCA。
IPDK
IPDK(Infrastructure Programmer Development Kit,基础设施程序员开发工具包)作为 OPI 的子项目,是一个开源的、与厂商无关的驱动程序和 API 框架,可管理由 CPU、IPU、DPU 或 Switch 构建的基础设施。
- https://ipdk.io/
IPDK 运行在 Linux 中,使用 SPDK、DPDK 和 P4 等成熟的开源工具,实现网络虚拟化、存储虚拟化、工作负载调配、信任根和平台中的卸载功能。
IPDK 用于屏蔽底层 DPU/IPU 硬件的差异,可以支持任何定义了相关接口类型的设备,并给上层应用提供一致性的访问接口。IPDK 将管理基础设施的所有功能进行抽象封装,形成了 “接口三明治”。
Infrastructure Application Interface
Infrastructure Application Interface(基础设施应用接口)
基础设施应用接口基于以下两个设计原则:
-
基于标准:根据基础设施应用程序使用的现有标准进行开发设计。
-
基于 RPC:应用程序可以运行在本地、远程或两者结合。
基础设施应用接口也可以被认为是 DPU/IPU 设备的北向接口,代表 IPDK 中支持的不同 RPC 接口,其中包括:
-
P4Runtime:用于可编程网络的数据平面。
-
OpenConfig:用于配置物理端口、虚拟设备、QoS 和 IPSec 等。
-
Redfish / REST API:用于基础设施设备生命周期和平台管理。
-
SPDK Storage Protocol:用于软件定义存储的 RPC 接口。
-
Managed Kubernetes:用于控制 Kubernetes 基础设施组件的 RPC 接口。
-
Envoy xDS:用于配置 Envoy 的 RPC 接口。
Target Abstraction Interface
Target Abstraction Interface(目标设备抽象接口)为基础设施硬件设备定义的一个抽象模型,基础设施应用程序可以通过 TAI 管理调度设备资源。
目标抽象接口基于以下 3 个设计原则:
-
基于标准:根据可编程目标的现有标准进行开发设计。
-
基于驱动程序和库组件:基础设施中的应用程序与 TAI 的库组件连接,以对控制平面进行编程。在计算实例和基础设施中的应用程序都使用设备驱动程序进行数据平面操作,例如移动数据包或存储数据。
-
基于功能:根据功能接口进行开发设计,这样应用程序可以在部署目标之前预先查询目标以了解其功能。
目标设备抽象接口由以下部分组成:
-
虚拟设备:虚拟设备使用 PCI 热插拔与计算实例交互。
-
生命周期控制:控制平面接口用于管理运行基础设施设备的更新、监控、重置和恢复。
-
加速器控制:用于加速器的控制平面接口,供基础设施应用程序使用。
IPDK 应用场景
IaaS
网络虚拟化
存储虚拟化
主机虚拟化
PaaS
CSI & CNI
Calico Running on IPU
Envoy on IPU
文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。
原文链接:is-cloud.blog.csdn.net/article/details/125499049
- 点赞
- 收藏
- 关注作者
评论(0)