如何通过dpu-core与openEuler深度集成打造国产化DPU软件生态
如何通过dpu-core与openEuler深度集成打造国产化DPU软件生态
【免费下载链接】dpu-coredpu-core is DPU customized software utility based on openEuler项目地址: https://gitcode.com/openeuler/dpu-core
前往项目官网免费下载:https://ar.openeuler.org/ar/
随着数据中心算力需求的快速增长,DPU(Data Processing Unit)作为新型可编程处理器正在成为云数据中心的关键组件。dpu-core作为openEuler社区中基于openEuler构建的DPU定制化软件工具集,为国产化DPU软件生态的构建提供了完整解决方案。本文将深入探讨dpu-core与openEuler的深度集成实践,帮助您快速掌握打造高性能DPU软件生态的关键技术。
为什么需要DPU与操作系统的深度集成?
在传统数据中心架构中,通用CPU需要处理大量网络、存储、安全等IO密集型任务,这部分资源消耗被称为"数据中心税"。据AWS统计,数据中心税可能占据数据中心算力的30%以上。DPU的出现正是为了将这部分算力从主机CPU上解放出来,通过专用处理器芯片进行卸载加速。
然而,多样化的DPU硬件需要专用定制化的操作系统及上层统一接口来发挥硬件的极致性能。openEuler作为国内领先的开源操作系统,通过与dpu-core的深度集成,为DPU厂商和用户提供了统一的软件框架,解决了DPU硬件与软件生态的适配难题。
dpu-core的核心架构设计
dpu-core项目采用五层架构设计,确保DPU操作系统既轻量又高性能:
1. 内核层优化
通过定制内核配置,裁剪非必需内核特性及模块,实现内核轻量化。同时使能特定内核特性,为DPU提供高性能内核能力。在documents/基于openEuler的DPU-OS裁剪发布.md中详细描述了内核裁剪的具体方法。
2. 驱动层适配
对openEuler原生驱动进行裁剪定制,选择最小集合驱动。同时集成DPU厂商的底层驱动,原生支持多种DPU硬件产品。这种设计确保了硬件兼容性的同时保持了系统的精简。
3. 系统配置优化
通过对系统sysctl、proc等参数进行针对性配置,为DPU相关业务提供最优性能。dpu-core提供了标准化的配置模板,用户可以根据具体DPU硬件特性进行调整。
4. 外围包裁剪
对openEuler外围包进行裁剪定制,选择最小集合。同时提供DPU相关的定制工具集合,如透明卸载工具、性能监控工具等,这些工具位于tools/目录中。
5. 系统服务精简
通过优化系统原生服务启动项,减少非必要系统服务的运行,保证系统运行时底噪最小化。这对于资源受限的DPU环境尤为重要。
图1:DPU-OS五层架构设计,从内核到应用层全面优化
DPU与平台的整体通信架构
在云计算场景中,DPU需要与云平台进行深度集成。dpu-core提供了完整的通信架构设计,支持裸金属(BM)和虚拟机(VM)两种主要场景。
图2:DPU在云计算平台中的整体集成架构,支持BM和VM两种场景
裸金属场景下的DPU集成
在裸金属场景中,DPU作为独立的管理单元运行:
- 节点注册:DPU启动nova-compute服务,通过bm_driver获取宿主机硬件信息并上报给云平台
- 实例创建:云平台调度到DPU节点后,DPU为裸金属实例创建存储和网络设备
- 动态资源管理:支持网卡和云盘的动态添加与删除
- 控制台访问:通过BMC接口提供裸金属控制台访问能力
虚拟机场景下的DPU集成
在虚拟机场景中,DPU与主机协同工作:
- 资源上报:DPU通过host_man组件获取主机资源信息并上报云平台
- 虚拟机创建:DPU为虚拟机创建透传设备,包括存储PF和网络PF
- 设备管理:支持虚拟机的动态设备管理和迁移操作
透明卸载技术的实现
dpu-core中的透明卸载功能是其核心特性之一,通过qtfs共享文件系统实现高效的IO卸载。
图3:透明卸载架构示意图,展示DPU如何卸载主机IO任务
qtfs共享文件系统
qtfs是一个高性能共享文件系统,专门为host-DPU架构设计:
核心特性:
- 支持挂载点传播和特殊文件系统共享
- 支持远程文件读写和远程挂载
- 支持特殊文件的定制化处理
- 基于PCIe协议底层通信,性能优于传统网络
- 内核模块形式开发,无需内核侵入式修改
安装配置:qtfs的详细安装步骤可在documents/transparent-offload/qtfs共享文件系统架构及使用手册.md中找到。系统支持VSOCK通信模式,可以在有DPU硬件支持的环境或通过host-vm模拟环境中部署。
图4:qtfs共享文件系统的软件架构,支持客户端-服务器模式工作
快速开始:构建定制化DPU-OS
环境准备
要开始使用dpu-core构建DPU操作系统,您需要:
- 基础环境:安装openEuler 22.03 LTS或更高版本
- 工具准备:安装imageTailor镜像裁剪工具
- 资源获取:准备openEuler安装镜像作为RPM包源
裁剪步骤
dpu-core提供了完整的DPU-OS裁剪指南,主要步骤包括:
1. 配置文件准备将dpuos的配置文件拷贝到imageTailor工具目录:
cp -rf custom/cfg_dpuos /opt/imageTailor/custom cp -rf kiwi/minios/cfg_dpuos /opt/imageTailor/kiwi/minios/cfg_dpuos2. 配置修改修改相关配置文件,添加dpuos产品配置:
- 修改
kiwi/eulerkiwi/product.conf - 修改
kiwi/eulerkiwi/minios.conf - 修改
repos/RepositoryRule.conf
3. 密码设置在三个关键配置文件中设置初始密码,确保系统安全。
4. 执行裁剪运行裁剪命令生成定制化的DPU-OS镜像:
cd /opt/imageTailor ./mkdliso -p dpuos -c custom/cfg_dpuos --sec --minios force生成的ISO镜像将保存在/opt/imageTailor/result目录中,可直接用于DPU设备的安装部署。
DPU通信与管理组件接口设计
dpu-core定义了完整的组件接口规范,确保DPU与云平台的无缝集成。这些接口设计文档位于documents/DPU通信及管理组件接口设计.md中。
关键接口组件
- nova-compute接口:负责节点状态上报、实例创建与管理
- snic-controller接口:提供PF/VF创建、删除和查询功能
- OVS接口:管理网络端口的添加和删除
- BMC接口:提供裸金属的电源管理和硬件信息获取
网络数据面能力
dpu-core支持丰富的网络数据面功能:
- QoS控制:支持实例网卡的流量控制
- 隧道支持:支持VXLAN、Geneve等隧道协议
- 连接跟踪:支持conntrack功能
实际部署与验证
虚拟机验证环境
即使没有实际的DPU硬件,也可以通过VirtualBox创建虚拟机来验证DPU-OS:
创建虚拟机步骤:
- 配置虚拟机资源:建议2CPU+4GB内存以上
- 创建虚拟机磁盘:建议60GB以上空间
- 启用EFI启动支持
- 加载DPU-OS ISO作为启动介质
- 完成自动安装过程
启动验证:安装完成后选择"Boot From Local Disk"启动DPU-OS,使用制作时设置的密码登录系统。通过这种方式,开发者可以在标准服务器环境中测试DPU-OS的功能和性能。
实际DPU硬件部署
在实际DPU硬件上部署时,需要考虑硬件特定的安装方式,如PXE网络安装、U盘安装或由Host下发的自定义安装方式。dpu-core的模块化设计确保了与多种DPU硬件的兼容性。
项目贡献与社区参与
dpu-core作为openEuler社区的一部分,欢迎开发者和用户的积极参与:
贡献方式
- 提交Issue:报告使用问题、软件BUG或特性需求
- 技术讨论:通过邮件列表、微信群、在线例会参与讨论
- 代码贡献:参与方案设计、特性开发和文档撰写
- 联合创新:以开源方式开发DPU相关软件技术
项目结构
dpu-core项目采用清晰的目录结构:
documents/:项目相关指导文档及手册quicklystart/:新手入门指导projects/:孵化项目仓库tools/:非项目仓库的使用工具weeklyreport/:双周工作总结归档
未来展望与路线图
dpu-core项目正在不断演进,未来将重点关注以下方向:
技术演进
- 性能优化:进一步优化DPU-OS的性能,减少资源开销
- 硬件兼容:扩展对更多DPU硬件的原生支持
- 功能丰富:增加更多DPU特性和加速能力
生态建设
- 标准化接口:推动DPU软件接口的标准化
- 社区协作:加强DPU厂商、开发者和用户的协作
- 应用生态:构建基于DPU的应用生态系统
结语
dpu-core与openEuler的深度集成为国产化DPU软件生态的建设提供了坚实的技术基础。通过统一的软件框架、标准化的接口设计和优化的操作系统,dpu-core不仅解决了DPU硬件与软件生态的适配难题,更为DPU在云计算、大数据等场景的应用提供了完整解决方案。
随着DPU技术的不断发展,dpu-core将继续演进,为构建更加开放、高效的DPU软件生态贡献力量。无论是DPU厂商、云服务提供商还是最终用户,都可以通过参与dpu-core项目,共同推动DPU技术的创新与应用。
想要了解更多技术细节或参与项目贡献,请参考项目文档或加入openEuler DPU SIG的技术讨论。让我们一起打造更加完善的国产化DPU软件生态!
【免费下载链接】dpu-coredpu-core is DPU customized software utility based on openEuler项目地址: https://gitcode.com/openeuler/dpu-core
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考