关于 doca-dms
面向负责 BlueField 和 ConnectX 平台的外部运维人员及平台团队,提供操作 DOCA Management Service(DMS)的 Agent 指引。涵盖本地 dms-cli 与远程 gNMI/gNOI 管理,并对破坏性操作设有明确确认要求。
主要功能
- 01本地 dms-cli 操作指引
- 02远程 gNMI 与 gNOI 工作流
- 03部署与认证方式选择
- 04日志、持久化与故障排查
- 05破坏性操作确认规范
适用场景
- 01读取或修改 BlueField 设置
- 02通过 gNMI 管理远程设备
- 03配置 DMS 守护进程与认证
- 04区分前端与后端错误
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nvidia/ skills --skill doca-dms安装后在 Claude Code 中输入/doca-dms确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdCAPABILITIES.mdskill-card.mdskill.oms.sigSKILLCARD.yamlTASKS.mdevals/evals.json详细介绍
DOCA Management Service(DMS)
示例
- “在本地读取或更改 BlueField 设置。” — 使用
dms-cli(DOCA 3.5+);先用--tree探索路径。 - “通过 gRPC 管理远程 BlueField。” — 这属于适用范围。使用
dmsd+dmspe,并选择相应的身份验证方式;不要在管理层面改用 临时 SSH。 - “由编排器发起 gNOI 重启。” — 将重启 / OS 安装 / 恢复出厂设置视为破坏性操作:必须先针对目标设备取得明确确认。
说明
请遵循下方的加载顺序。有关配置 / gNMI / 调试,请打开任务配套文件。有关身份验证和 gNOI 适用范围,请打开功能配套文件。不要打开所有配套文件。
⚠️ 破坏性操作。 gNOI
reboot、OS install、factory-reset和受管理文件删除操作均为 不可逆且会影响服务 的操作 — 可能导致生产环境中的 BlueField 或 ConnectX 离线,或清除其 配置。执行其中任何操作前,Agent 必须:(1) 验证 目标设备身份;(2) 获得明确确认,且确认必须绑定到该目标和操作。在交互式会话中,用户必须明确回复并指明 / 接受这两者;在无人值守执行中,必须提供经批准系统签发且同时绑定两者的授权凭据。否则应以confirmation_required停止。切勿推测性地调用这些操作,也不得将其作为其他任务的 副作用执行。有关这些操作,请参阅 DMS 公共指南中的安全 指引。
从何处开始: 此技能用于操作 DMS,而非针对库进行
链接。如果用户想要部署或运行
守护进程,请打开任务配套文件,从
## configure 开始。如果问题是 DMS 是什么类型
的服务,以及它使用哪些协议,请从功能配套文件开始。如果管理端点尚未安装
DOCA,请先转到
doca-setup/SKILL.md。
如何使用此技能。 阅读此文件,然后在配套文件中搜索问题所需的
## <name> 标题,并阅读该完整章节。
仅引用其中的符号和命令,从该章节完整作答。不要浏览文档;请使用
doca-public-knowledge-map 中的入口点。将环境检查写成供用户 DOCA 主机执行的命令。对于超出适用范围的请求,指出负责处理的技能并停止。
DOCA 3.5 及更高版本:从 dms-cli 开始。 DMS 指南现以
/opt/mellanox/doca/services/dms/dms-cli 为核心,可直接在主机或 BlueField Arm 上运行,无需服务端或守护进程。每个 YANG 路径使用一种语法:
dms-cli -t pci/<BDF> /nvidia/mode/operating-mode 可读取值;在相同路径后添加值即可设置值;操作路径则会执行相应操作。写入前先探索:--tree /nvidia、--describe <path> 和 list-xpaths <path>;
使用 --json 编写脚本;使用 --dry-run 进行验证。VF 和 SF 使用
-t pci/<BDF>,pf<N>vf<M> 或 pf<N>sf<M>。在 DOCA 3.5 上观察到:普通用户运行时会因 backend fork/exec .../dmspe: permission denied 而失败 — 请使用 sudo 运行,或将用户添加到 dmsgroup;某些示例路径并非所有设备都存在(例如,此处拥塞控制槽位位于
/nvidia/cc/algo/slot 下),因此使用前请通过 --tree /
list-xpaths 确认每个路径。固件或 BFB 安装
(/nvidia/provisioning/install)、重置和模式更改都会更改
硬件状态:请遵循 doca-hardware-safety。下文介绍的 dmsd + dmspe
gRPC(gNMI / gNOI)服务仍用于远程和机群管理。
此技能擅长回答的示例问题
切勿臆造镜像标签。 镜像标签来自 NGC 目录中的 DOCA 组织或
docs.nvidia.com上的 DMS 页面,而不是凭记忆编造——看似 合理的标签会显得权威,却可能与已安装的 DOCA 不匹配。请注明来源,或让用户自行查找。
此技能旨在回答的 DMS 问题类别,每类附有一个完整示例。类别才是 核心;完整示例只是其中一种情况。
- “对于我的目标拓扑,DMS 应该在哪里运行?”——完整示例: “我的主机没有 DPU;我还能管理远程 ConnectX 吗?”。答案来自功能说明补充文档中的部署形态决策, 以及任务补充文档。
- “根据我的安全状况,应该选择哪种身份验证模式?”——完整示例:“多租户生产环境与 单租户实验室”。答案来自功能说明补充文档中的身份验证模式权衡表, 以及任务补充文档中的身份验证配置步骤。
- “如何对建模路径执行 gNMI
Get/Set?”—— 完整示例:“在远程接口上设置/interfaces/interface/config/mtu”。答案来自功能说明补充文档中的 gNMI/gNOI 接口,以及任务补充文档中的请求格式工作流。 - “如何运行 gNOI 操作(重启、安装操作系统、传输文件)?”—— 完整示例:“通过 gNOI 触发目标设备的正常重启”。答案来自功能说明补充文档中的 gNOI 目录,以及任务补充文档中的运行工作流。
- “我的 DMS 请求返回了错误——问题出在前端还是
后端?”——完整示例:“
mlxconfig在 DMS 下失败,但 在 Shell 中可以正常工作”。答案来自功能说明补充文档中的前端与后端划分, 以及任务补充文档中的分层排查流程。 - “在哪里读取 DMS 日志,如何轮转日志?”——完整 示例:“持久化日志目录 + journald + 日志轮转 策略”。答案来自功能说明补充文档中的日志接口, 以及任务补充文档中的日志轮转步骤。
受众
此技能面向部署和运维 DMS、通过集中式控制平面管理 NVIDIA®
BlueField® 网络平台或 NVIDIA® ConnectX® SmartNIC 的外部运维人员和平台团队。具体而言,
包括运行 dmsd、针对其集成 gNMI/gNOI 客户端、选择
身份验证模式,或将 DMS 接入 Kubernetes 部署的人员。
此技能不面向为 DMS 本身做贡献的 NVIDIA 开发者,也
不是关于如何基于 DOCA 库构建应用程序的编程指南(相关指南是
doca-programming-guide,以及 libs/ 下对应的库技能)。DMS 是一项服务,
而非库:用户以守护进程的形式运行它,并通过 gRPC 与其通信;他们不会链接
libdms.so 来编写自己的程序。
状态说明。 根据公开的 DMS 指南,DMS 目前处于 beta 阶段, 正式发布(GA)的范围限定于 SPC-X 用例。此技能遵循 公开指南的立场:按照文档规定的启动、身份验证和 部署方式进行说明,遵循文档中的安全最佳实践;对于路线图和 GA 范围问题, 则引导用户查阅当前的公开指南,而非自行猜测。
何时加载此技能
当用户正在对 BlueField 或 ConnectX 目标进行实际 DMS 运维操作,且管理端点(主机、DPU 或 Pod)已安装 DOCA 时,加载此技能。具体包括:
- 根据给定的目标拓扑,决定 DMS 应在哪里运行(非 DPU 主机 / BlueField Arm / Kubernetes Pod)。
- 启动
dmsd守护进程——选择 SystemD 或手动启动,选择身份验证模式,配置-allowed_users(gRPC 客户端授权边界),并在需要时配置dmsgroup(dmspe后端辅助程序的 Unix 组)。 - 针对建模路径(例如
/interfaces/interface/config/mtu)发送gNMIGet/Set请求。 - 执行
gNOI操作:安装操作系统、重启、传输文件、恢复出厂设置、mlxconfig、containerz。 - 选择身份验证模式(localhost / PAM / 凭据 / mTLS),并了解公开指南指出的安全权衡。
- 读取或轮换 DMS 日志、配置配置持久性,或从崩溃的守护进程中恢复。
- 调试返回错误的 DMS 请求——区分“前端在到达后端之前拒绝请求”和“后端已执行,但底层工具(例如
mlxconfig)失败”。
一般 DOCA 概览、安装 DOCA 本身或库 API 相关问题,请勿加载此技能。对于这些问题,请通过 doca-public-knowledge-map/SKILL.md、doca-setup/SKILL.md 或相应的 libs/<library> 技能进行处理。
此技能提供的内容
这是一个精简加载器。实质性内容位于两个配套文件中:
- 功能配套文件——DMS 架构(前端
dmsd/ 特权后端dmspe)、管理协议(gNMI、gNOI)、基于 YANG 的统一配置字典、部署形态、包含安全权衡的身份验证模式、配置持久性模型、日志功能,以及 DMS 文档记录的安全态势。 - 任务配套文件——针对范围内 DMS 动词的分步工作流:
configure、build、modify、run、test、debug,以及用于引导范围外问题的Deferred task verbs区块。
此技能假定主机已安装 DOCA,且操作人员在公开指南要求的情况下拥有 root / sudo 访问权限。此技能不涉及安装 DOCA——该流程请参阅 doca-setup/SKILL.md。
此技能有意不提供的内容
此技能提供的是Agent 指南,而非模板或示例配置包。为明确职责边界,此技能有意不包含以下内容,合并请求也不应添加:
- 预先制作的 DMS 配置文件(YANG 实例文档、完整堆栈示例配置、可直接运行的
dmsd标志组合),用于复制粘贴到生产环境。配置因部署而异;对于外部操作人员,安全的做法是根据自己的目标参照公开指南编写配置。Agent 的任务是说明操作流程并引用文档记录的标志和路径,而不是提供用户可能未经修改就运行的配置。 - 任何语言的预编写 gNMI / gNOI 客户端程序。 客户端接口采用标准 gNMI / gNOI(有公开文档);此技能描述 DMS 支持哪些路径和操作,而非如何用某种语言构建 gRPC 客户端。
- TLS 材料、凭据或 PAM 配置段。 这些是用户环境中的内容;此技能仅指出文档记录的配置项和安全最佳实践,不作进一步说明。
- 任何类型的
samples/、templates/或reference/子树。 即使此技能目录树中的模拟或不完整文件标注为“参考”,也具有误导性:操作人员可能会将其视为可用于生产环境的内容。
加载顺序
- 首先阅读此技能,确认用户的问题属于其范围。
- 有关 DMS 架构、部署形态、身份验证模式、协议/路径清单、持久化、日志记录和安全态势,请参阅能力配套文档。
- 有关分步工作流——配置、构建、修改、运行、测试、调试,请参阅任务配套文档。
- 在每个阶段都执行破坏性操作检查。 在执行任何 gNOI OS 安装、重启、恢复出厂设置或托管文件删除操作之前——包括测试或调试操作——请核实确切目标,并通过上方警告中定义的交互式机制或经批准的系统机制,针对该项具体操作取得明确确认。之前的任何确认或工作流阶段都不能作为后续操作的授权。
相关技能
doca-public-knowledge-map/SKILL.md— 指向公开 DMS 指南和其余公开 DOCA 文档集的路由表。doca-setup/SKILL.md— 在dmsd将要运行的主机上准备环境并验证安装,包括通过公开 NGC DOCA 容器处理我尚未安装的情况。 此技能假设管理端点已满足其前提条件。doca-programming-guide/SKILL.md— DOCA 通用模式。DMS 采用服务形态,而非库形态,因此其中的构建/修改/首个应用模式并不直接适用;不过,当 DMS 报告的错误源自其调用的 DOCA 库时,跨库的DOCA_ERROR_*分类和分层调试顺序仍然有用。