dpu-core与主流DPU厂商集成:兼容性测试与适配指南 📅 发布时间:2026/7/14 16:29:56 👁️ 浏览次数: dpu-core与主流DPU厂商集成兼容性测试与适配指南【免费下载链接】dpu-coredpu-core is DPU customized software utility based on openEuler项目地址: https://gitcode.com/openeuler/dpu-core前往项目官网免费下载https://ar.openeuler.org/ar/dpu-core是基于openEuler的DPU定制化软件工具旨在为不同DPU产品提供硬件无关的软件管理平台及工具统一使用接口及命令构建通用的DPU管理生态。本文将详细介绍dpu-core与主流DPU厂商集成的兼容性测试方法和适配指南帮助用户快速实现DPU设备的无缝对接与高效管理。一、DPU兼容性测试环境搭建1.1 硬件准备兼容性测试需准备2台物理机虚拟机当前未试过网络互通。其中一台作为DPU模拟另一台作为HOST模拟。在测试模式下因为会暴露网络端口且不做连接认证存在网络安全风险仅能用于内部测试验证不要用于实际生产环境。实际生产环境中应使用封闭通信方式如vsock通信模式需要DPU加HOST且DPU能支持通过virtio提供vsock通信方式。1.2 软件环境配置首先需要参照https://docs.openeuler.org/zh/docs/22.03_LTS/docs/TailorCustom/imageTailor%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.html安装好imageTailor工具并将裁剪所要用到的rpm包准备好。镜像openEuler-22.03-LTS-everything-debug-aarch64-dvd.iso中的rpm比较全但是此镜像很大可以用镜像openEuler-22.03-LTS-aarch64-dvd.iso中的rpm包外加一个install-scripts.noarch从everything镜像中获取就可以了。然后将dpuos的配置拷贝到对应的路径下cp -rf custom/cfg_dpuos /opt/imageTailor/custom cp -rf kiwi/minios/cfg_dpuos /opt/imageTailor/kiwi/minios/cfg_dpuos修改其他配置文件修改kiwi/eulerkiwi/product.conf增加名称为dpuos的相关配置修改kiwi/eulerkiwi/minios.conf增加名称为dpuos的相关配置修改repos/RepositoryRule.conf增加名称为dpuos的相关配置进入到conf/aarch64子目录下修改下面3个文件的密码custom/cfg_dpuos/usr_file/etc/default/grubcustom/cfg_dpuos/rpm.confkiwi/minios/cfg_minios/rpm.conf最后执行裁剪命令进行裁剪裁剪出来的iso在路径/opt/imageTailor/result路径下cd /opt/imageTailor ./mkdliso -p dpuos -c custom/cfg_dpuos --sec --minios force二、DPU通信架构与兼容性测试2.1 DPU通信架构dpu-core通过简单的层级结构屏蔽底层硬件接口差异及上层应用多样性其通信架构如下不同DPU硬件与HOST使用不同的总线协议连接由上图硬件层和连接通道层表示不同类型的连接总线可能具备相同的通信队列通过通信队列抽象简化同类型连接总线开发难度通信设备抽象不区分底层连接协议对上提供统一的通信设备接口抽象及使用接口通信队列抽象和通信设备抽象合并组成通信抽象层屏蔽底层硬件差异对上层OS提供统一的通信设备模型及接口接口层/库使用通信设备及其提供的接口函数封装成OS常见的通信方式包括网络、串口、unix-socket、FIFO、共享内存SHM等跨HOST-DPU通信通道。应用层使用接口层/库提供的跨HOST-DPU通信接口实现用户自定义DPU管理功能包括Telemetry、DPU启动、管理、调试等功能组件应用功能用户可自定义。sig可提供部分典型应用。2.2 通信抽象层测试通信抽象层包括通信队列抽象和通信设备抽象。通信队列抽象根据连接总线协议确定提供消息队列的创建、销毁、读写等接口函数。通信设备抽象给予通信队列构建一个跨HOST-DPU通信设备提供设备注册及解绑接口函数。在兼容性测试中需要验证不同DPU厂商的通信队列抽象和通信设备抽象是否符合dpu-core的接口规范。可以通过调用以下接口函数进行测试queue_init消息队列创建queue_destroy: 消息队列销毁write向队列写入数据read从队列读出数据kick通知对端有数据写入或其他事件is_full: 队列检查是否已满is_empty: 队列检查是否为空register_dpu_comm_dev: 注册HOST-DPU通信设备unregister_dpu_comm_dev: 解绑HOST-DPU通信设备2.3 接口层/库测试接口层/库基于linux内核标准接口实现网络、串口、unix-socket、FIFO、共享内存SHM等标准通信接口。在兼容性测试中需要验证不同DPU厂商的接口层/库是否能够正常工作。例如网络接口测试可以通过ping命令或iperf工具测试跨HOST-DPU的虚拟网卡对的连通性和带宽串口接口测试可以通过minicom等工具测试虚拟串口的通信功能。三、DPU存储接口适配与测试3.1 存储设备接口设计dpu-core定义了统一的存储设备接口包括BlockDeviceType、BlockDevice、ObjectMeta、DeviceSource等结构体。其中BlockDeviceType包括Virtio-BLK、Virtio-SCSI、NVMe等类型DeviceSource包括ISCSI、RBD、NVMf、Memory等来源。3.2 存储接口适配指南不同DPU厂商的存储设备可能支持不同的类型和来源需要根据dpu-core的接口规范进行适配。例如对于支持NVMe类型的DPU设备需要实现NVMfDeviceSource结构体中的相关字段和接口函数对于支持ISCSI类型的DPU设备需要实现ISCSIDeviceSource结构体中的相关字段和接口函数。3.3 存储接口测试方法存储接口测试包括List、Get、Create、Update、Delete等动作。可以通过以下步骤进行测试List接口测试调用List接口返回当前所有的BlockDevice列表验证是否能够正确列出DPU上的存储设备。Get接口测试调用Get接口返回对应设备的详细信息验证是否能够正确获取设备的属性和状态。Create接口测试当DPU支持动态创建设备时通过Create接口动态创建设备验证是否能够成功创建设备。Update接口测试更新设备信息验证是否能够正确修改设备的属性。Delete接口测试删除设备验证是否能够成功删除设备。四、libvirt直连聚合环境兼容性测试4.1 libvirt卸载架构libvirt直连聚合环境的卸载架构如下4.2 环境搭建步骤qtfs文件系统部署可参考qtfs主页需要关闭DPU和HOST侧的防火墙或在防火墙中开放相关网络端口号。UDSPROXYD服务部署在dpu-utilities工程内编译udsproxyd在client侧单独拉起udsproxyd服务。REXEC服务部署下载dpu-utilities代码后编译安装rexec在server端启动rexec_server服务。libvirt服务部署在DPU侧创建chroot环境安装libvirt启动libvirtd服务。4.3 兼容性测试内容虚拟机define测试将虚拟机启动镜像放置在HOST侧某目录使用qtfs将这个目录挂载到DPU侧执行virsh define xxx.xml命令验证是否能够成功定义虚拟机。虚拟机start测试执行virsh start domain命令验证是否能够成功启动虚拟机。虚拟机生命周期管理测试包括暂停、恢复、重启、关闭等操作验证是否能够正常管理虚拟机的生命周期。五、常见兼容性问题及解决方案5.1 通信问题问题qtfs挂载失败。解决方案检查server端engine进程是否拉起、防火墙是否关闭导致qtfs建联失败。5.2 存储问题问题Create接口创建设备失败。解决方案检查DPU是否支持动态创建设备设备参数是否正确。5.3 虚拟化问题问题虚拟机启动失败。解决方案检查libvirtd和virtlogd服务是否拉起、rexec服务是否拉起、跳板进程是否拉起、是否qemu-kvm拉起时报错。六、总结dpu-core为不同DPU产品提供了硬件无关的软件管理平台及工具通过本文介绍的兼容性测试方法和适配指南用户可以快速实现dpu-core与主流DPU厂商的集成构建通用的DPU管理生态。在实际应用中用户需要根据具体的DPU设备和应用场景进行针对性的测试和适配以确保系统的稳定性和可靠性。如果需要获取更多关于dpu-core的信息可以参考项目中的官方文档如DPU通信及管理组件接口设计.md、DPU存储接口设计.md等。同时也可以通过git clone仓库地址https://gitcode.com/openeuler/dpu-core获取最新的代码和文档。【免费下载链接】dpu-coredpu-core is DPU customized software utility based on openEuler项目地址: https://gitcode.com/openeuler/dpu-core创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
短剧出海新手潮:翻译工具如何降低行业入场门槛 2026年短剧产量预测将达500万部,较2025年5万部产量膨胀100倍,大量新玩家正在涌入这条赛道。产量爆发的另一面是:翻译和本地化工具的成熟度,正在成为决定谁能真正跑起来的分水岭——技术门槛的高低,直接决定了这条赛道是… 2026/7/14 16:27:55
原来重庆这些专业音响工程很热门,到底哪家好呢? 在重庆,专业音响工程市场发展势头正盛,众多项目如雨后春笋般涌现。无论是政府机构的会议系统,还是校园的广播工程,都离不开专业音响的支持。那么,重庆哪家专业音响工程公司比较好呢?接下来为你详细分析。专… 2026/7/14 16:25:53
MapsModelsImporter实战指南:如何在Blender中高效导入真实世界3D地理数据 MapsModelsImporter实战指南:如何在Blender中高效导入真实世界3D地理数据 【免费下载链接】MapsModelsImporter A Blender add-on to import models from google maps 项目地址: https://gitcode.com/gh_mirrors/ma/MapsModelsImporter 在3D创作领域… 2026/7/14 16:25:53
uni-app 到底是什么? 2026 微信小程序 整体分四大路线:原生 Skyline 新渲染框架(官方最新)、Vue 系 uni-app/uni-app X、React 系 Taro 4、增强原生 Mpx,配套云开发、TS、WASM、低代码。 uni-app DCloud 公司推出的一个跨端开发框架,用… 2026/7/14 18:27:04
【Springboot毕设全套源码+文档】基于springboot马蜂窝书店网站的设计与实现(丰富项目+远程调试+讲解+定制) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/14 18:27:03
团队评分只看最终结果,编写程序,统计成员试错的次数,同等成果下,试错次数更多者加分,鼓励不惧失败的创新心态。 用 Python 构建一个团队试错鼓励系统:不看"做对了多少",而看"敢试了多少"——在同等成果下,试错更多者加分。内容紧扣心理健康与创新能力课程,保持去营销化、中立、可教学、可复用,不涉及任何产品… 2026/7/14 18:27:03
CQRS模式:读写分离的升级版 502 | CQRS模式:读写分离的升级版 场景引入 图书馆的烦恼: 想象一个图书馆: - 借书的人很多(读操作) - 还书的人也多(写操作) - 管理员只有一个问题:借书和还书都排队,效率很低!解决方案:分成两个窗口 - 窗口A:专门办借书 - 窗口B:专门办还书这就是CQRS的核心思… 2026/7/14 18:25:03
国产 AI 龙虾哪家强? 7款主流国产AI龙虾对比 一、OpenClaw原版 OpenClaw(俗称龙虾),一款能给AI装“手脚”的开源AI智能体框架,区别于普通聊天AI,可直接操作电脑/手机完成自动化任务,堪称24小时AI数字员工。 真实存在… 2026/7/14 18:25:03
【小白也能轻松玩转龙虾】虾壳云一键部署 (附最新安装包) OpenClaw(小龙虾)Windows 一键部署实操手册|十分钟搭建专属本地数字员工 适配平台:Windows 10/11(64 位)|零基础友好|全可视化界面|无编程门槛 当下热度较高的开源 AI 智… 2026/7/14 18:23:02
XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南 1. 项目概述:当游戏语言成为一堵墙作为一名玩了十几年日系、欧美独立游戏的“老油条”,我太懂那种面对一款心仪已久、画风玩法都戳中G点的游戏,却因为语言不通而望而却步的痛了。尤其是那些基于Unity引擎开发的、体量不大但内容精良的作品&am… 2026/7/14 0:05:14
2026普通文员学数据分析的价值 一、2026年普通文员学习数据分析的必要性随着数字化转型加速,数据分析技能正逐渐成为职场基础能力。普通文员学习数据分析可以提升工作效率、增强竞争力,并为职业转型提供更多可能性。二、数据分析对文员的价值自动化办公:通过数据分析工具&a… 2026/7/14 0:05:14
2026从计划员到主管,生产管理者学数据分析有用吗? 一、生产管理领域的职业发展路径 从计划员到主管的角色转变,是生产管理者职业发展的典型路径。计划员主要负责生产排程、库存管理和资源协调等基础工作,而主管则需要承担团队管理、决策支持和效率优化等更高级别的职责。这种转变不仅仅是职位的提升&… 2026/7/14 0:05:14
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/14 18:25:04
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/14 5:09:41