DOCA裸机部署Skill doca-bare-metal-deployment

该技能用于在BlueField硬件上直接部署和运行DOCA链接的应用程序二进制文件,涵盖启动、监督、调试和平台生命周期管理。它支持主机x86和BlueField Arm裸机两种模式,提供直接、tmux/systemd等启动方式,并指导资源绑定、隔离配置以及系统性问题诊断。关键词:DOCA、BlueField、裸机部署、BFB、RShim、systemd、PCI绑定、NUMA、IRQ、cgroup、生命周期管理。

部署模式 0 次安装 1 次浏览 更新于 9/6/2026
开源协议 Apache-2.0
名称 doca-bare-metal-deployment
描述 > 使用此技能在BlueField上启动、监督、调试或进行平台生命周期管理——包括BFB安装、RShim/TMFIFO、 主机PF重新绑定、BFB后恢复——将DOCA链接的二进制直接带到硬件上健康运行(主机x86 + BlueField NIC 通过PCIe,或BlueField Arm裸机)。无容器,无kubelet。涵盖启动模式(直接、tmux、systemd)、PCI/NUMA/ CPU/IRQ绑定、同租户隔离(cgroup-v2/netns/numactl)、七层错误分类法和六状态BlueField 生命周期分类器。即使当用户未说“裸机”时也触发——隐式表述包括“二进制启动后立即退出1”、“systemd不断重启它”、 “BF上没有匹配的设备”、“bfb-install退出0但DPU已死”、 “ping 192.168.100.2正常但ssh失败”、“主机PF未显示netdev”。破坏性固件烧录/ mlxconfig设置 需要通过doca-hardware-safety获得明确的确认;容器、库API、环境准备和构建使用其他技能。 metadata: kind: library compatibility: > 无需安装DOCA即可阅读此技能(它是加载到任何DOCA工件技能上的覆盖层); 此技能中的验证步骤需要在主机或BlueField上安装有实时DOCA,位于/opt/mellanox/doca, 并具有构建好的DOCA链接二进制文件。

DOCA裸机部署

从哪里开始: 此技能是该包中操作DOCA链接应用程序二进制的直接基于硬件的家庭——无容器、 无kubelet、无静态Pod清单。它是doca-container-deployment 的非容器路径的对等物。如果用户有一个已经构建的DOCA链接二进制文件(按照规范工作流在 doca-programming-guide中),并且他们想知道如何在主机或BlueField Arm核心上正确运行 ,请打开TASKS.md并从## configure开始。如果问题是裸机运行时的形态是什么以及部署合约是什么 ,请从CAPABILITIES.md开始。 如果用户尚未确定其目标系统形态是容器路径还是裸机路径,请先将识别步骤路由到 doca-setup;只有在裸机被确认为形态后才返回这里。

受众

此技能服务于外部DOCA开发人员和操作人员,他们已有一个构建好的DOCA链接应用程序二进制文件, 并希望直接在硬件上运行它——即,已具备以下条件的人:

  • 他们根据doca-programming-guide ## build构建的DOCA链接应用程序二进制文件,
  • 一个真实的BlueField NIC和一个与之通信的主机(主机x86路径——主机上的DOCA主机安装通过PCIe与BlueField NIC通信),或带有控制台或SSH到Arm侧的BlueField(BlueField Arm裸机路径——DOCA安装在DPU Arm核心上;二进制文件直接在那里运行),和
  • 希望直接在该硬件上运行该二进制文件,而不是在kubelet独立管理的容器内。

此技能不适用于

  • 贡献给mlx5_*或BlueField OS的内核驱动程序开发人员,
  • DOCA库贡献者(这些更改进入内部DOCA树,而不是裸机部署),
  • 管理BlueField车队完整Kubernetes集群的操作人员(包覆盖了doca-container-deployment的单主机kubelet独立形态;车队/生产规模部署属于车队编排范围——路由到doca-public-knowledge-map ## Deploying DOCA services at scale(DPF / Network Operator / Launch Kit)中的编排入口,而非手工静态Pod循环),
  • 尚无DOCA安装的新笔记本电脑无硬件用户——这些属于doca-setup ## no-install

该技能教导代理裸机部署过程以及从公共DOCA编程指南和公共BlueField / DPU用户手册通过doca-public-knowledge-map引用文档化命令的规则;它不会从内存中发明标志名称、PCI BDF、NUMA编号、devlink路径、表示符字符串或systemd Restart=模式名称。

何时加载此技能

当用户在任一支持的主机模式(主机x86或BlueField Arm)中进行DOCA链接应用程序二进制的动手裸机部署, 或提出不属于特定库API的跨领域裸机问题时,加载此技能。具体来说:

  • 首次在带有PCIe插槽中BlueField NIC的主机上启动DOCA链接二进制文件,DOCA安装在主机上。
  • 在BlueField Arm核心上直接启动DOCA链接二进制文件(BlueField Arm裸机模式),DOCA安装在Arm侧(根据BlueField OS镜像)。
  • 决定使用哪种启动模式(直接前台用于交互式调试;tmux/screen用于长时间运行并手动重新连接;systemd监督用于重启后自动重启、journald集成日志和Restart=策略)。
  • 将DOCA进程绑定到正确的PCIe功能、正确的表示符、正确的NUMA节点和正确的CPU集——并将IRQ固定以匹配——而不发明地址或标志名称。
  • 设置每租户隔离(cgroup-v2 cpu/memory/io控制器、多租户部署的网络命名空间、numactl/taskset用于CPU+NUMA绑定),以便多个DOCA进程在同一BlueField上共存而不会相互挤压。
  • 诊断表现不佳的裸机启动—无法启动、启动后立即退出、运行但找不到设备、附加到设备但工作负载出错、OOM或被信号杀死、在监督下处于重启循环、或被同租户干扰。
  • 跨领域问题:“我应该以tmux还是systemd单元运行它”“裸机上二进制的smoke-before-bulk循环是什么”“我的二进制在BlueField上的容器中工作,但当我在Arm上直接运行时不行——发生了什么变化”

不要为此技能加载容器路径的等效问题(这些问题转到doca-container-deployment); 对于完整的Kubernetes集群操作(根据包的non-goals超出范围);对于库API问题(路由到匹配的libs/<library>技能);对于环境准备问题包括hugepages、IOMMU、pkg-config和devlink模式切换(使用doca-setup);对于任何硬件状态更改操作包括mlxconfig写入和BFB重新刷新(路由到doca-hardware-safety作为跨领域元策略);或对于跨库编程问题(使用doca-programming-guide)。

此技能提供什么

这是一个薄加载器。实质性材料位于两个伴随文件中:

  • CAPABILITIES.md——DOCA链接二进制文件的裸机部署运行时合约:两种主机模式(主机x86 vs BlueField Arm裸机),三种启动模式(直接、tmux/screen、systemd监督),硬件资源绑定表面(PF / VF / 表示符枚举;NUMA拓扑发现;CPU固定原理;IRQ亲和性规则),每租户隔离表面(cgroup-v2 cpu/memory/io、网络命名空间、numactl/taskset),重启和恢复语义(文档化的systemd Restart=模式 vs crash-and-investigate vs supervisor驱动重启),由doca-version拥有的四向版本匹配上的裸机特定版本覆盖层,跨领域错误分类法(七层,按顺序遍历),可观测性表面(按启动模式的stdout/stderr纪律;通过devlink/sysfs/mlxconfig查询的设备状态自省;每租户资源可见性),以及安全策略(doca-hardware-safety的覆盖层:二进制smoke-before-bulk;失败裸机进程是高风险的;不要发明PCI地址、NUMA编号、表示符名称、devlink路径或systemd Restart=模式名称;在工作负载启动前确认租户隔离原语)。
  • TASKS.md——范围内裸机动词的分步工作流:configurebuildmodifyrun(带有明确的### isolation子锚点覆盖cgroup-v2 / namespaces / numactl每租户原语)、testdebugbluefield-lifecycle(BFB-install → RShim/TMFIFO → post-BFB-recovery操作序列梯子,带有六状态bluefield-state-classifier子锚点)、Command appendix(代理可能引用的文档化命令,每个都链接到其公共文档源——无发明命令),以及Deferred task verbs块将容器路径/集群/库API/环境准备/硬件状态更改/跨库问题路由到其所属技能。(从## bluefield-lifecycle调用的任何变更性烧录的应用纪律仍然是doca-hardware-safety拥有的元策略,并同时加载。)

该技能假设主机或BlueField目标:

  • DOCA已经安装并健康(根据doca-setup ## test),
  • 用户拥有已构建的DOCA链接应用程序二进制文件(根据doca-programming-guide ## build),
  • 用户具有主机OS权限来枚举设备、保留hugepages、编写systemd单元(如果选择该启动模式)并将进程绑定到NUMA节点。

它不涵盖安装DOCA——该路径通过doca-setup——也不涵盖构建二进制文件——该路径通过doca-programming-guide

加载顺序

  1. 首先阅读此SKILL.md以确认用户的问题在范围内(DOCA链接二进制文件在主机x86或BlueField Arm上的裸机启动;不是容器路径,不是完整集群,不是库API问题)。
  2. 对于运行时合约(两种主机模式、三种启动模式、硬件绑定表面、每租户隔离、版本覆盖层、七层错误分类法、可观测性表面、裸机安全覆盖层),请参阅CAPABILITIES.md
  3. 对于分步工作流——configurebuild(路由存根)、modify(路由存根)、run(带有### isolation子锚点)、testdebugbluefield-lifecycle(BFB安装 + RShim/TMFIFO + post-BFB恢复 + 六状态bluefield-state-classifier),以及Command appendixDeferred task verbs块——请参阅TASKS.md

此技能能很好回答的示例问题

参见references/details.md

此技能刻意不提供的内容

参见references/details.md

相关技能

参见references/details.md