DPU 作为一种软硬协同的虚拟化架构,相较仅做网络加速的智能网卡而言,一方面需要考虑与 CPU 中运行的虚拟化软件栈对接,另一方面由于 DPU 硬件的特殊设计导致卡与服务器存在更多的适配对接需求,因此 DPU 产业发展与软硬件市场的配合度存在强关联。能否理解行业需求,拉通软硬件形成完整解决方案成为 DPU 发展与落地的关键。
当前 DPU 解决方案百花齐放,在下表总结的业界主流 DPU 方案中,由于硬件路线选择不同,DPU 卡的硬件设计存在较大差异,同时,各厂家均开始布局自有配套软件生态,并呈现出各自为营的态势。纵观处理器芯片几十年的发展历程,定制产品总是逐渐走向硬件形态的标准化和软件生态的通用化,最终形成专用与通用并存的格局。DPU 作为继 CPU、GPU 之后的第三颗数据中心核心处理器,基于自身虚拟化需求定制软硬耦合DPU 产品固然能够最大化发挥 DPU 产品优势,但是随着更多的数据中心提出DPU 需求,这种方式的技术门槛和引入成本过高,难以复制。而商业 DPU 产品由于各自发展软件栈生态,也导致软件与 DPU 适配对接的成本较高。同时,DPU与服务器整机的生态也不可忽视。从物理关系上看,DPU 是挂载在服务器主 CPU下的 PCIe 子设备,但从顶层云管逻辑来看,DPU 是服务器的管理员,是提供数据加速、存储加速、安全管控及云管的云底座。因此,不同于传统网卡、HBA 卡、GPU 等标准 PCIe 设备,主从关系的倒换使得 DPU 对传统服务器硬件设计提出了特殊要求,主要体现在硬件供电、散热适配、带外管理、整机开关机及异常处理策略等方面。市场需求决定了 DPU 的软硬件设计,而软硬件的开发、适配需要高昂的人力、财力成本投入,当前专用化的 DPU 路径不利于生态的发展,在百花齐放的行业现状下更需要考虑通用性和标准化,拉通需求方、虚拟化软件厂商、DPU 厂商与服务器厂商,形成端到端的闭环生态体系。随着需求越来越广泛,技术的演进对 DPU 的落地带来了诸多挑战,关键挑战即标准化程度对 DPU 技术易用性的影响。与 CPU 和 GPU 这种先有硬件再有软件生态的发展背景不同,DPU 承载的虚拟化软件已经较为成熟,DPU 在此基础之上实现功能和性能的提升,因此对于业界云平台以及 DPU 厂商来说,DPU 能否规模部署取决于 DPU 配套软件是否“能用”且“好用”。
中国移动结合典型 DPU 应用场景需求,分析 DPU 软件部署方式,结合开源社区方案成熟情况,给出 DPU 云化技术架构管理、网络、存储、计算和安全五大系统软件标准化建议,并结合中国移动业务需求场景推动软件标准化阶段式发展和落地:一、管理系统:引入 DPU 后,计算节点上的管理系统软件(OpenStack 等)安装位置从主机侧 CPU 调整到 DPU 的 ARM 或 x86 核上。管理系统软件主要实现虚拟硬件资源的逻辑管理功能,不使用 DPU 上的硬件加速引擎,因此理论上该部分软件与 DPU 天然解耦,DPU 需支持管理系统软件的编译、安装,可以通过 DPU OS 和 Host OS 互通或者融合的方式,实现传统云平台管理软件在 DPU上的无缝迁移部署和无感卸载,降低适配开发成本。虚拟化场景下,Libvirt 作为虚拟机管理组件也安装在 DPU 上,OS 资源视图发生变化,因此需要在主机侧CPU 运行轻量化代理完成主机资源和虚拟机管理。此时需要保证 Libvirt 管理面接口和原生 Libvirt 接口保持一致,同时支持接口的扩展。裸金属场景下,可采用 Ironic 组件或增强 Nova 组件完成裸金属管理,DPU 厂商可以提供标准 Ironic Driver 集成到云管理软件中或适配标准 Nova 管理流程,实现裸金属生命周期的管理功能。二、网络系统:虚拟交换网络 vSwitch 控制面运行在 DPU 的 CPU 核上,与SDN 控制器对接,生成流表规则并通过 DPDK 标准 rte_flow 完成流表向转发面的下发,且需完成 bond 模式、mtu 值等数据通道参数的配置;转发面运行在 DPU的硬件加速引擎上,负责流表匹配逻辑的硬件实现,并为虚拟机、容器或裸金属提供标准的 virtio 硬件后端。结合中国移动现网需求,提出以下标准化要求:采用 DPDK 标准 rte_flow 接口完成流表从控制面到转发面的下发。同时考虑 NFV 业务网络拓扑需求,尤其在与终端用户或基站通信时容易产生大规模流表瓶颈,影响转发性能,因此需定制流表收敛方案,规避大流表场景问题,同时降低业务倒换场景下流表下发通道阻塞的风险;
增强运维灵活性,业务网络平面数据全部在硬件加速引擎完成接收与发送,因此需要在数据在硬件加速引擎的生命周期流程中增加入口与出口的运维统计能力,便于故障分析定位,保证端到端可靠性;
- 网络接口采用用户态 vDPA 框架,在 DPU 上实现 virtio 后端,同一站点资源池内需统一要求 virtio 支持的 feature,以实现在部署不同厂商 DPU的计算节点之间的虚拟机热迁移功能,保证云主机弹性特点。
RDMA 是超低时延网络的关键技术,但是由于传统 Socket 编程模型和RDMA Verbs 编程模型差距显著,导致传统应用迁移到 RDMA 网络环境下需要进行大量代码改造,进而给业务带来不确定性风险或者可靠性风险,因此使用RDMA Socket 适配层屏蔽底层 RDMA 原语,向上对接 Socket 接口成为必然趋势,通过标准化的适配层,可以实现传统 Socket 应用无缝迁移到 RDMA 网络环境,在不改变业务代码的情况下,提高业务的响应时间和吞吐量。三、存储系统:包含存储接口和存储网络协议两部分。基于开源 SPDK 框架提供存储卸载服务,利用 SPDK 的 JSON-RPC 配置接口,为虚拟机、裸机、容器提供一致的 virtio-blk/NVMe 虚拟块设备后端,基于 bdev 层抽象虚拟磁盘并提供QoS、加密、压缩、DIF、EC、RAID 等高级特性。存储网络协议方面,iSCSI 协议运行在 DPU 上的 CPU 核上,需要支持标准 iSCSI-Initiator 的编译和安装;NVMe-oF 由 DPU 硬件加速引擎实现,需要实现 RoCEv2 等高性能 Fabric 网络。四、计算系统:主要为 Hypervisor 计算虚拟化系统的前后端分离,在计算节点需要对 Hypervisor 软件进行合理的剪裁和卸载。主机侧保留轻量化的Hypervisor 前端,KVM 完成 CPU 和内存的虚拟化管理,DPU 侧的 Hypervisor 后端配合 QEMU 完成虚拟机的初始化,并配合 Libvirt 完成虚拟机的生命周期管理。Hypervisor 前后端对接应标准化,同时需要对操作系统内核进行深度剪裁和修改,业界尚无参考模型,需要共同探索。五、安全系统:DPU 可以提供节点出入口硬件级的数据加解密功能,通过虚拟化方式实现的分布式防火墙、DDoS 防御设备等安全应用可以利用 DPU 硬件级的数据处理能力,提升安全应用处理性能。此外针对 HTTPS 等应用层的加解密处理,需要提供统一的 API 接口来完成业务层用户密钥证书的管理。针对以上五大系统在 DPU 上的卸载,OpenStack、DPDK、SPDK 等云计算虚拟化相关的主流开源技术框架已经逐步实现在 DPU 环境下的部署与应用,当前在裸金属管理和虚拟交换网络卸载两类功能需求下已经有较为成熟的技术方案。中国移动软件标准化推进将分为两个阶段进行:当前 DPU 内除网络、存储卸载芯片外还会包含轻量级处理器芯片(或集成在其他芯片内的处理器内核)及带外管理芯片,该部件可看作在服务器整机内部的另一个小型服务器。在硬件标准化设计时,无论是对服务器自身还是承载的业务都应该遵循最小影响原则做通用增强,梳理绝对必要项,约束服务器整机能为DPU 提供的最大能力。
从服务器整机角度,需重点考虑机构设计、供电散热和边带信号等方面的标准化工作:从 DPU 角度,业务的多样性需求决定了当前硬件形态的多样化,行业内存在如 PCIe 卡、OCP 卡、自定义扣卡等多种形态,结合服务器整机的标准化方向,需要考虑以下方面:由于 DPU 上存在 CPU 核,因此可以看作服务器整机的第二系统,这种架构的变化也导致服务器的带外管理方式产生了变化,从 DPU 与服务器整机带外管理交互角度,需要以下方面的标准化工作:DPU BMC(或其他带外管理模块)具备的最小管理功能
裸金属场景服务器及 DPU 的上下电、复位、固件升级、异常下电、故障处理时的开关机流程及软件处理策略;
- 云管业务对带外信息抓取方案,定义裸金属网卡 BMC 与主机 BMC 的核心职责,细化两者交互信息框架。
服务器整机硬件层面的标准化可让通用服务器与各厂家 DPU 具备适配前提,扫清新生态发展中的技术障碍。在这一过程中,需共同探讨 DPU 带外管理系统与服务器整机带外管理系统关系,明确 DPU BMC 应具备的核心功能,逐步收敛双 BMC 控制信息的交互框架,最终做到边界清晰。同时,中国移动倡议各行业终端客户关注因引入裸金属服务引发的组网方式变革,立足自身业务特征探讨网络业务平面、存储平面、带内管理平面、带外 BMC 管理平面的处理方式,明确DPU 需提供的带内带外网口规格及数量,为 DPU 厂商提供产品路标。来源:算力基建
本公众号高薪签约长期专栏作者,欢迎具备优秀写作能力的科技从业或爱好者,联系传感器小编:YG18511751369(微信号)
期待下一篇10W+出自您的笔下!
免责声明:本文版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。