简介

NVIDIA® 系统管理 (NVSM) 是 NVIDIA 软件堆栈,用于管理和监控 NVIDIA 设计的服务器,例如 NVIDIA DGX™、CGX 和 RTX 服务器。

  • NVSM 是一个“常时开启”的健康监控引擎,它可以主动捕捉问题,而不是像其他工具那样需要在事后运行。凭借对底层平台的深入了解,NVSM 拥有进行最佳健康检查的列表以及每次检查需要发生的频率。

  • NVSM CLI 和 API 减轻了用户对以下方面的需求:

    • 深入了解 ipmitool、dmidecode、lspci、storcli、mdadm 和 lsblk 等工具。

    • 深入了解平台细节,例如预期的 PCIe 层次结构、存储层次结构或错误阈值。

    • 手动关联来自多个工具的信息;在许多情况下,需要手动解析一个工具的输出,以了解如何使用下一个工具。例如,SEL 记录中的 BDF 与 lspci 中的 BDF 只是为了确定哪个设备有故障。

  • NVSM 捕捉到一些客户可能永远不会注意到的问题。例如,某些 PCIe 链路可能以较低的链路宽度/速度运行,导致作业运行缓慢。如果没有 NVSM,客户可能会怀疑他们的作业有问题,或者更糟糕的是,认为 DGX 就是这么慢。

  • NVSM 提供:

    • 按需健康检查套件,运行一系列测试并报告与预期结果的偏差。

    • 创建 NVIDIA 支持报告问题时所需的所有相关系统日志包的功能。

    • 安全的 REST API 接口,无需用户/脚本登录系统。因此,使用这些 API 可以轻松开发远程管理软件应用程序。

    • 可以启用 Prometheus 指标导出器,以便外部 Prometheus 服务器可以从目标 DGX 节点拉取关键系统指标。

  • 如果启用 NVSM 的呼叫中心功能,即使在客户注意到平台问题之前,也会自动代表客户创建支持票证。

  • 此外,NVSM 还提供其他通知机制,如电子邮件和 PagerDuty。

目前,NVSM 支持以下 DGX 系统:

  • DGX 服务器:本文档中描述的完整 NVSM 功能。

  • DGX Station:功能仅限于使用 CLI 检查系统健康状况并获取诊断信息。

以下是 NVSM 架构的高级图表:

_images/nvsm-diagram.png

注意:

DGX Station 不支持“常时开启”功能。

可配置的“常时开启”功能

NVSM 包含以下可以使用 NVSM CLI 配置的功能:

  • 健康监控器警报

  • 健康监控器策略

健康监控器警报

警报是需要注意的重要事件。当健康监控器检测到其监控的子系统中发生此类事件时,它会生成警报以通知用户。默认行为是将警报记录在持久存储中,并向注册用户发送电子邮件通知。有关配置用户以接收警报电子邮件通知的详细信息,请参阅使用 NVSM CLI部分。

每个警报都有一个“状态”。活动警报可以处于“严重”或“警告”状态。在此,“严重”表示需要立即采取行动的事件,“警告”表示需要用户注意的事件。当警报条件消除时,警报状态变为“已清除”。有关如何查看数据库中记录的已生成警报的详细信息,请参阅使用 NVSM CLI部分。

健康监控器警报列表

下表描述了每个警报 ID:

消息和详细信息

警报 ID

组件 ID

严重性

建议措施

不支持的驱动器配置。受影响的组件 URI:{{ index .Params "Uri" }}

NV-DRIVE-01

驱动器插槽 <>

警告

请参阅下面的建议措施 A。

系统进入降级模式,{{ index .Params "DriveSlot" }} 中的驱动器不受支持。

NV-DRIVE-07

驱动器插槽 <>

警告

请参阅下面的建议措施 A。

不支持的 SED 驱动器配置。

NV-DRIVE-09

卷标

警告

请参阅下面的建议措施 A。

不支持的卷加密配置。

NV-DRIVE-10

卷标

严重

请参阅下面的建议措施 A。

M.2 驱动器固件版本不匹配。

NV-DRIVE-11

驱动器插槽 <>

警告

请参阅下面的建议措施 A。

系统进入降级模式,卷 {{ index .Params "ComponentName" }} 正在重建中。

NV-VOL-01

卷名

警告

请参阅下面的建议措施 A。

系统进入降级模式,卷 {{ index .Params "ComponentName" }} 重建失败。

NV-VOL-02

卷名

严重

请参阅下面的建议措施 A。

系统进入降级模式,卷 {{ index .Params "ComponentName" }} 处于降级状态。

NV-VOL-03

卷名

严重

请参阅下面的建议措施 A。

系统进入降级模式,卷 {{ index .Params "ComponentName" }} 处于非活动或失败状态。

NV-VOL-04

卷名

严重

请参阅下面的建议措施 A。

Raid-0 卷 {{ index .Params "ComponentName" }} 配置错误。

NV-VOL-05

卷名

警告

请参阅下面的建议措施 A。

用于缓存的 Raid-0 数据卷不存在。

NV-VOL-06

信息

请参阅下面的建议措施 A。

引导卷上缺少 EFI 分区。运行 ‘blkid’ 以检查分区类型。

NV-VOL-09

卷名

严重

请参阅下面的建议措施 A。

存储卷 {{ index .Params "ComponentName" }} 利用率接近 {{ index .Params "Capacity" }} 字节的 90%。

NV-VOL-10

卷名

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(电源模块发生故障。)

NV-PSU-01

<PSU#>,其中 # 是 PSU 编号。

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(工作温度超过组件的热规格。)

NV-PSU-02

<PSU#>,其中 # 是 PSU 编号。

警告

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(PSU 的输入丢失)

NV-PSU-03

<PSU#>,其中 # 是 PSU 编号。

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。(电源模块的输入电压超出范围)

(电源模块的输入电压超出范围)

NV-PSU-04

<PSU#>,其中 # 是 PSU 编号。

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(PSU 丢失)

NV-PSU-05

<PSU#>,其中 # 是 PSU 编号。

警告

请参阅下面的建议措施 A。

检测到电源模块故障。

(系统以降级的性能模式运行。)

NV-PSU-06

警告

纠正 PSU 上观察到的问题。然后参阅下面的建议措施 A。

检测到电源模块故障。

(系统处于电源故障状态)

NV-PSU-07

严重

纠正 PSU 上观察到的问题。然后参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(工作温度超过组件的热规格。)

NV-PDB-01

<PDB#>,其中 # 是 PDB 编号

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(风扇速度读数已降至预期速度设置以下。)

NV-FAN-01

<FAN#_F> 或 <FAN#_R>

其中 # 是风扇模块编号。

F 表示前风扇。

R 表示后风扇。

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(风扇读数无法访问。)

NV-FAN-02

<FAN#_F> 或 <FAN#_R>

其中 # 是风扇模块编号。

F 表示前风扇。

R 表示后风扇。

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(发生不可恢复的 CPU 内部错误。)

NV-CPU-01

<CPU#>

其中 # 是 CPU 插槽编号(CPU0 或 CPU1)

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(CPU Thermtrip 已发生,处理器插槽温度超过组件的热规格。)

NV-CPU-02

<CPU#>

其中 # 是 CPU 插槽编号(CPU0 或 CPU1)

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(处理器插槽温度超过组件的热规格。)

NV-CPU-03

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(处理器插槽温度超过组件的热规格。)

NV-CPU-04

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(报告了不可纠正的错误。)

NV-DIMM-01

<CPU#_DIMM_@$>

其中 # = (1, 2)

@ = (A, B, C, D, E, F)

$ = (1, 2)

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(报告的可纠正错误超过配置的阈值。)

NV-DIMM-02

<CPU#_DIMM_@$>

其中 # = (1, 2)

@ = (A, B, C, D, E, F)

$ = (1, 2)

警告

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(在 DIMM 上观察到不可恢复的错误,无法获得错误的具体详细信息。)

NV-DIMM-03

<CPU#_DIMM_@$>

其中 # = (1, 2)

@ = (A, B, C, D, E, F)

$ = (1, 2)

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告错误。

(此插槽中不应存在 DIMM,请验证 DIMM 详细信息。)

NV-DIMM-04

请参阅下面的建议措施 A。

系统进入降级模式,GPU 报告错误

(GPU 报告了严重错误。)

NV-GPU-01

严重

请参阅下面的建议措施 A。

GPU{} 功率限制配置不正确

(预期限制(功率:200000W,时钟:1597MHz),实际限制(功率:200000W,时钟:1163MHz)。)

NV-GPU-02

严重

请参阅下面的建议措施 A。

系统进入降级模式,{ID} 报告错误。

({ BDF1, BDF2} 之间观察到链路速度降低,预期链路速度为 {},实际链路速度为 {})

NV-PCI-01

警告

请参阅下面的建议措施 A。

系统进入降级模式,{ID} 报告错误。

({BDF1, BDF2} 之间观察到链路宽度降低,预期链路宽度为 {},实际链路宽度为 {})

NV-PCI-02

警告

请参阅下面的建议措施 A。

系统进入降级模式,{ID} 报告错误。

(在 {BDF} 上报告了可纠正错误。)

NV-PCI-03

警告

请参阅下面的建议措施 A。

系统进入降级模式,{ID} 报告错误。

(在 {BDF} 上报告了不可纠正错误)

NV-PCI-04

严重

请参阅下面的建议措施 A。

系统进入降级模式,{ID} 报告错误。

({BDF} 上缺少设备)

NV-PCI-05

严重

请参阅下面的建议措施 A。

系统进入降级模式,{ID} 报告错误。

({BDF} 上为 {} 禁用了设备错误报告)

NV-PCI-06

严重

请参阅下面的建议措施 A。

系统进入降级模式,{ID} 报告错误。

({BDF} 上的设备已禁用)

NV-PCI-07

严重

请参阅下面的建议措施 A。

系统进入降级模式,控制器 {{ index .Params "ComponentName" }} 报告错误。

NV-CONTROLLER-01

控制器名称

警告

请参阅下面的建议措施 A。

系统进入降级模式,存储控制器 {{ index .Params "ComponentName" }} 报告 PHY 错误。

NV-CONTROLLER-02

控制器名称

警告

请参阅下面的建议措施 A。

系统进入降级模式,控制器 {{ index .Params "ComponentName" }} 设置为低于预期速度的速度。

NV-CONTROLLER-03

控制器名称

警告

请参阅下面的建议措施 A。

系统进入降级模式,控制器 {{ index .Params "ComponentName" }} 报告错误。

NV-CONTROLLER-04

控制器名称

警告

请参阅下面的建议措施 A。

系统进入降级模式,控制器 {{ index .Params "ComponentName" }} 报告错误。

NV-CONTROLLER-05

控制器名称

严重

请参阅下面的建议措施 A。

系统进入降级模式,控制器 {{ index .Params "ComponentName" }} 报告错误。

NV-CONTROLLER-06

控制器名称

严重

请参阅下面的建议措施 A。

需要清除控制器 {{ index .Params "ComponentName" }} 的 LEDStatus。

NV-CONTROLLER-07

控制器名称

严重

请参阅下面的建议措施 A。

{} 上出现链路错误。

(网络链路已断开)

NV-NET-01

警告

请参阅下面的建议措施 B。

在 {} 上观察到网络流量错误。

(在 {} 网络端口上,{} 的 Rx 冲突率已超过阈值 {}。)

NV-NET-02

警告

请参阅下面的建议措施 B。

在 {} 上观察到网络流量错误。

(在 {} 网络端口上,{} 的 Tx 冲突率已超过阈值 {}。)

NV-NET-03

警告

请参阅下面的建议措施 B。

在 {} 上观察到网络流量错误。

(在 {} 网络端口上,{} 的 CRC 错误率已超过阈值 {}。)

NV-NET-04

严重

请参阅下面的建议措施 B。

{} 报告错误。

({} 网络端口已禁用。)

NV-NET-05

严重

请参阅下面的建议措施 B。

端口 {} 上出现以太网接口错误。

({} 以太网健康检查失败,在线 NVRAM 测试失败。)

NV-ETH-01

严重

请参阅下面的建议措施 B。

{} 上出现以太网接口配置错误。

({} 的以太网接口上缺少 MAC 地址。)

NV-ETH-02

严重

请参阅下面的建议措施 B。

IB 驱动程序错误。

(HCA 自检报告 IB 驱动程序初始化失败。)

NV-IB-01

严重

请参阅下面的建议措施 C。

IB 端口 {} 上的计数器错误

(IB 端口上的 {} HCA 自检报告计数器错误。)

NV-IB-02

严重

请参阅下面的建议措施 B。

IB 端口 {} 上的配置错误。

({} HCA 上缺少 GUID。)

NV-IB-03

严重

请参阅下面的建议措施 D。

系统进入降级模式,{} 报告致命错误

(NVSwitch Id {} 报告了严重错误,SXID 错误为 {})

NV-NVSWITCH-01

严重

请参阅下面的建议措施 A。

系统进入降级模式,{} 报告非致命错误

(NVSwitch Id {} 报告了严重错误,SXID 错误为 {})

NV-NVSWITCH-02

警告

请参阅下面的建议措施 A。

健康监控器策略

用户可以使用健康监控器策略调整健康监控器行为的某些方面。这包括警报通知的电子邮件相关配置、有选择地禁用要监控的设备等详细信息。有关支持的策略以及如何使用 CLI 配置它们的详细信息,请参阅使用 NVSM CLI部分。

验证安装

在使用 NVSM 之前,您可以验证安装以确保所有服务都存在。

使用 systemctl 验证 NVSM 服务

NVSM 是 DGX OS 映像的一部分,并在 DGX 启动时由 systemd 启动。以下是在 NVSM 下运行的服务:

  • nvsm-api-gateway.service

  • nvsm-core.service

  • nvsm-mqtt.service

  • nvsm-notifier.service

  • nvsm.service

您可以使用 systemctl 命令验证每个 NVSM 服务是否已启动并正在运行。例如,以下命令验证核心服务:

$ sudo systemctl status nvsm-core

您可以使用以下命令查看所有 NVSM 服务及其状态:

$ sudo systemctl status -all nvsm*

使用 nvsm status 验证 NVSM 服务

nvsm status 命令显示 NVSM 服务及其状态,示例输出:

$ sudo nvsm status
SERVICE                   ENABLED  ACTIVE  SUB       DESCRIPTION
================================================================================
nvsm-mqtt.service         enabled    active  running         MQTT broker for NVSM API for signaling within NVSM API components
nvsm-core.service         enabled    active  running         NVSM Core Service for System Management
nvsm-api-gateway.service  enabled    active  running         NVSM API Server to provide DGX System Management APIs
nvsm-notifier.service     enabled    active  running         NVSM Notifier service.

Overall
================================================================================
Overall Health: Healthy
Overall Status: Active

如果您在 NVSM 启动时运行 nvsm status,则输出类似于以下示例:

$ sudo nvsm status
SERVICE                   ENABLED  ACTIVE     SUB         DESCRIPTION
================================================================================
nvsm-mqtt.service         enabled  active     running     MQTT broker for NVSM API for signaling within NVSM API components
nvsm-core.service         enabled  activating start-post  NVSM Core Service for System Management
nvsm-api-gateway.service  enabled  inactive   dead        NVSM API Server to provide DGX System Management APIs
nvsm-notifier.service     enabled  inactive   dead        NVSM Notifier service.

Overall
================================================================================
Overall Health: Transient
Overall Status: Starting

Recommendations:
================================================================================
0. NVSM is starting, this state should be transient, please try again later
1. nvsm-core.service is activating. If it stay in this state, please run "journalctl -fu nvsm-core.service" for more details

注意:

仅当所有 NVSM 服务都已启动并正在运行时,nvsm CLI 命令才有效。

如果任何子服务失败或卡在启动中,请运行以下命令以获取更多信息:

sudo systemctl status <service-name>

例如:

sudo systemctl status nvsm-core.service