
dpu-core在裸金属场景中的应用BM场景的完整实现方案【免费下载链接】dpu-coredpu-core is DPU customized software utility based on openEuler项目地址: https://gitcode.com/openeuler/dpu-core前往项目官网免费下载https://ar.openeuler.org/ar/openEuler/dpu-core是基于openEuler的DPU定制化软件工具专为裸金属BM场景提供高效的硬件加速和资源管理解决方案。本文将详细介绍dpu-core如何在裸金属环境中实现完整的部署与应用帮助用户快速掌握这一强大工具的使用方法。裸金属场景下的DPU架构优势裸金属服务器作为高性能计算的核心载体对硬件资源的直接控制和高效利用有着极高要求。dpu-core通过深度定制的软件栈将传统由CPU处理的网络、存储等任务卸载到DPU实现计算资源的释放和性能的显著提升。图1dpu-core在裸金属环境中的平台整合架构展示了HOST与DPU的协同工作模式从架构图可以清晰看到dpu-core通过ASIC/FPGA硬件加速单元直接对接裸金属服务器的硬件资源同时提供vm_driver和bm_driver双驱动支持完美适配虚拟化与裸金属混合部署场景。dpu-core系统架构解析dpu-core基于openEuler构建了层次化的软件架构专为裸金属环境优化图2dpu-core的系统架构分层从内核到应用服务的完整栈设计内核层DPU定制内核针对裸金属环境进行了性能优化驱动层原生驱动最小集合 DPU厂商驱动确保硬件兼容性系统配置层针对DPU产品优化的系统参数配置外围包层第三方依赖最小集合 DPU专用工具集系统服务层DPU定制化的服务启动配置这种架构设计确保了dpu-core在裸金属环境中能够高效运行同时保持对openEuler生态的兼容性。关键技术组件实现裸金属场景突破1. 透明卸载技术dpu-core的透明卸载技术是裸金属场景的核心特性通过将容器管理面组件如dockerd、containerd卸载到DPU上运行实现计算资源的解放。图3透明卸载架构示意图展示HOST与DPU之间的组件分布与通信透明卸载的实现依赖于以下关键技术远程执行rexec跨主机的进程生命周期管理uds代理udsproxyd跨主机Unix域套接字通信共享文件系统通过qtfs实现HOST与DPU间的文件系统共享2. qtfs共享文件系统qtfs是dpu-core专为裸金属场景开发的高性能共享文件系统支持proc、sys、cgroup等特殊文件系统的共享为DPU与HOST之间提供透明的数据访问能力。图4qtfs共享文件系统框架实现HOST与DPU间的高效数据共享qtfs的核心特性包括支持基于PCIe协议的底层通信性能远超传统网络支持远程文件读写和挂载操作支持特殊文件如fifo、unix-socket的透明处理内核模块形式开发无需修改内核源码裸金属环境部署步骤环境准备硬件要求支持PCIe的裸金属服务器DPU卡如ASIC/FPGA加速卡软件要求openEuler 22.03 LTS或更高版本内核版本5.10或更高代码获取git clone https://gitcode.com/openeuler/dpu-coreqtfs文件系统部署qtfs是实现裸金属场景下HOST与DPU协同的基础部署步骤如下编译qtfs内核模块# 在DPU侧编译客户端模块 cd dpu-core/documents/transparent-offload/qtfs make clean make -j # 在HOST侧编译服务端模块 cd dpu-core/documents/transparent-offload/qtfs_server make clean make -j加载内核模块# HOST侧加载服务端模块 insmod qtfs_server.ko qtfs_server_ip192.168.10.10 qtfs_server_port12345 # DPU侧加载客户端模块 insmod qtfs.ko qtfs_server_ip192.168.10.10 qtfs_server_port12345启动服务进程# HOST侧启动engine服务 nohup ./engine 16 1 192.168.10.10 12121 192.168.10.11 12121 21 # DPU侧启动udsproxyd服务 nohup udsproxyd 1 192.168.10.11 12121 192.168.10.10 12121 21 容器管理面卸载配置准备rootfs环境# 创建DPU上的rootfs目录 mkdir /another_rootfs # 使用openEuler镜像构建rootfs qemu-img convert -O raw openEuler-22.03-LTS-x86_64.qcow2 openEuler.raw mount -o loop openEuler.raw /mnt cp -r /mnt/* /another_rootfs/ umount /mnt配置挂载点# 运行准备脚本挂载必要目录 ./documents/transparent-offload/config/prepare.sh启动容器服务# 启动containerd chroot /another_rootfs SHIM_HOST192.168.10.10 containerd --config /var/run/docker/containerd/containerd.toml # 启动dockerd SHIM_HOST192.168.10.10 dockerd --containerd /var/run/containerd/containerd.sock -s overlay2 --iptablesfalse 通信架构裸金属环境的高效数据通道dpu-core为裸金属场景设计了多层次的通信架构确保HOST与DPU之间的高效数据传输图5dpu-core通信架构展示从应用层到硬件层的完整通信路径通信架构的关键组件包括应用层提供Telemetry、DPU启动、DPU管理等功能接口接口层/库支持网络、串口、unix-socket、FIFO、SHM等多种通信方式通信抽象实现通信设备和通信队列的抽象简化应用开发连接通道基于PCIe、USB等高速总线协议确保低延迟高带宽实际应用场景与优势1. 容器服务加速通过将容器管理面dockerd/containerd卸载到DPU裸金属服务器可释放大量CPU资源用于业务计算同时通过qtfs共享文件系统保持容器镜像和数据的透明访问。2. 存储性能优化dpu-core的存储接口设计充分利用DPU的硬件加速能力通过PCIe直连实现存储IO的低延迟和高吞吐量特别适合裸金属环境下的高性能存储需求。相关设计细节可参考DPU存储接口设计.md。3. 网络功能卸载将虚拟交换机、负载均衡等网络功能卸载到DPU不仅减轻了主机CPU负担还通过硬件加速提升了网络处理性能非常适合裸金属环境下的网络密集型应用。总结与展望dpu-core为裸金属场景提供了完整的DPU软件解决方案通过透明卸载、共享文件系统和高效通信架构实现了计算资源的优化利用和性能提升。随着技术的不断发展dpu-core将在以下方面持续演进增强对更多DPU硬件的支持优化裸金属环境下的实时性和确定性提供更丰富的管理工具和监控能力通过本文的指南您已经了解了dpu-core在裸金属场景中的核心架构和部署方法。如需更详细的技术文档可参考项目中的官方文档和快速入门指南。【免费下载链接】dpu-coredpu-core is DPU customized software utility based on openEuler项目地址: https://gitcode.com/openeuler/dpu-core创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考