3. 可观测性数据源与采集体系
在高速计算网络中,故障诊断的起点不是“猜哪里坏了”,而是“先确认哪些数据源能看见问题”。NVIDIA InfiniBand 与 Spectrum 以太网在可观测性上提供了多条互补的数据通道:传统 SNMP 适合低频设备状态轮询,Streaming Telemetry 与 gNMI/gRPC 适合高频、结构化、亚秒级指标推送,NetFlow/sFlow 负责流量行为画像,PFC/ECN 计数器直接反映无损网络拥塞控制状态,而 UFM、NetQ 与 DPU 遥测则把网络、主机与业务侧数据关联起来。理解这些数据源的采集方式、采样粒度与部署位置,是构建可观测性体系的第一步。
一、数据源分层与采集方式
从采集机制看,可观测性数据源可分为三类。第一类是拉取式轮询,以 SNMP 为代表:采集器按固定周期向交换机或 IB 交换机发起 OID 查询,获取端口状态、字节数、错误计数、温度、电源等。SNMP 部署简单、兼容性好,但轮询周期通常为 30 秒到 5 分钟,无法捕捉微突发和 PFC 风暴。第二类是推送式流遥测,包括 Streaming Telemetry、gNMI/gRPC 和 NVIDIA 的 UFM/NetQ 遥测:设备或控制器主动将结构化数据推送给采集端,支持 1 秒甚至 100 毫秒级粒度,适合监控 PFC、ECN、队列深度、链路误码等快速变化指标。第三类是流量采样与流记录,包括 NetFlow 和 sFlow:前者基于流缓存聚合五元组统计,后者基于报文采样并携带接口计数器,用于分析流量矩阵、大象流、DDoS 与路径异常。
在 InfiniBand 网络中,PFC/ECN 计数器并非以太网专属概念,IB 通过拥塞控制与信用机制实现无损,但 UFM 会暴露类似的拥塞与丢包指标。Spectrum 以太网则同时支持 PFC、ECN、WRED 和 RoCE 计数器。采集这些计数器时,必须明确采集点:是交换机端口、队列、优先级,还是主机侧网卡。以 Spectrum 为例,show interface counters 可查看端口级 PFC 暂停帧,show interface priority-flow-control 可查看每优先级 PFC 状态,而 gNMI 路径如 /interfaces/interface/state/counters 可订阅结构化计数器。
二、部署要点与采集链路
部署 Streaming Telemetry 时,核心是“订阅路径 + 推送目标 + 采样周期”三要素。以 gNMI 为例,采集器通过 SubscribeRequest 指定路径、模式和采样间隔。模式分为 ONCE、POLL 和 STREAM;STREAM 又分 ON_CHANGE 与 SAMPLE。对于 PFC/ECN 计数器,建议使用 SAMPLE 模式,周期设为 1 秒;对于链路 up/down 事件,使用 ON_CHANGE 模式可避免无效轮询。推送目标通常为 Telegraf、Prometheus 或 NVIDIA NetQ 采集器,需在交换机上配置 gRPC 服务、证书和订阅。
NetFlow 与 sFlow 的部署差异明显。NetFlow 需要在接口上启用 ip flow ingress,并配置流缓存超时(活跃超时默认 1800 秒,非活跃超时 15 秒),适合分析长连接和大象流;sFlow 则通过 sflow agent 和 sflow collector 配置,采样率通常设为 1/1000 或 1/2000,适合高频短流和接口计数器趋势。两者都应将采集器部署在管理网,避免与业务流量争抢带宽。
NVIDIA UFM 是 InfiniBand 网络的核心遥测平台,通过 Fabric Collector 采集交换机与主机 HCA 的计数器、拓扑和性能数据,支持亚秒级监控。NetQ 则面向以太网与 IB 混合环境,提供实时验证、历史回溯和 What-If 分析。DPU 遥测(如 BlueField)可在主机侧采集 RoCE、PFC、ECN 和业务流指标,把网络可观测性延伸到服务器内部。部署时需注意:UFM 需要 IB 子网管理器配合,NetQ 需要部署 NetQ Agent 到交换机与主机,DPU 遥测需要启用 DOCA Telemetry Service。
三、采集频率与数据关联
不同数据源的采集频率决定了它们能回答什么问题。SNMP 适合“设备是否在线、端口是否 up、总流量趋势”这类慢变问题;Streaming Telemetry 和 gNMI 适合“PFC 是否在 1 秒内激增、ECN 标记率是否超过阈值、队列深度是否持续高位”这类快变问题;NetFlow/sFlow 适合“哪条流在占用带宽、是否存在异常五元组、流量路径是否偏移”这类行为问题;UFM/NetQ/DPU 遥测适合“整网拓扑是否健康、主机侧 RoCE 是否重传、业务性能是否受网络影响”这类关联问题。
实际部署中,建议采用“分层采集 + 统一时间戳”的策略。所有采集器必须与 NTP/PTP 同步,否则 PFC 计数器与流量采样无法对齐。例如,当 sFlow 显示某端口在 10:00:01 出现流量突增,而 gNMI 显示同一端口在 10:00:01 出现 PFC 暂停帧激增,两者时间戳一致才能确认因果。若时间偏差超过 100 毫秒,关联分析就会失效。
四、采集配置示例
以下为 Spectrum 交换机上启用 gNMI 订阅 PFC 计数器的示例配置(示例参数,非实测):
# 启用 gRPC/gNMI 服务
nv set system grpc enable on
nv set system grpc port 9339
nv set system grpc cert /etc/ssl/certs/switch.pem
nv set system grpc key /etc/ssl/private/switch.key
# 配置 sFlow 采集器
nv set sflow agent 10.10.1.1
nv set sflow collector 10.10.1.100 port 6343
nv set sflow sampling-rate 1000
nv set interface swp1 sflow enable on
# 配置 NetFlow 流缓存
nv set interface swp1 netflow ingress enable on
nv set netflow cache timeout active 1800
nv set netflow cache timeout inactive 15
nv set netflow collector 10.10.1.100 port 2055
采集端可使用 Telegraf 的 gNMI 插件订阅 /interfaces/interface/state/counters 和 /qos/interfaces/interface/output/queues/queue/state/transmit-pkts,将数据写入 Prometheus 或 InfluxDB。对于 UFM,需在 Fabric Collector 中配置交换机与 HCA 的采集周期,通常设为 1 秒;对于 NetQ,需在每台交换机和主机上安装 NetQ Agent,并确保 Agent 与 NetQ Server 之间 31980 端口可达。
五、数据源选择决策
| 数据源 | 采集方式 | 典型周期 | 最适合回答的问题 |
|---|---|---|---|
| SNMP | 轮询 OID | 30s–5min | 设备在线、端口状态、总流量趋势 |
| Streaming Telemetry / gNMI | 推送订阅 | 1s–100ms | PFC/ECN 激增、队列深度、微突发 |
| NetFlow | 流缓存聚合 | 15s–30min | 大象流、五元组异常、流量矩阵 |
| sFlow | 报文采样 | 1/1000–1/2000 | 短流、接口计数器趋势、路径异常 |
| UFM / NetQ | 控制器采集 | 亚秒级–1s | 整网拓扑、历史回溯、What-If 分析 |
| DPU 遥测 | DOCA Telemetry | 1s | 主机侧 RoCE 重传、PFC 统计、业务流 |
选择数据源时,先明确故障假设:如果怀疑拥塞,优先看 gNMI 的 PFC/ECN 计数器和 UFM 的拥塞视图;如果怀疑流量路径异常,优先看 sFlow 和 NetFlow;如果怀疑主机侧问题,优先看 DPU 遥测和 HCA 计数器。不要试图用单一数据源覆盖所有场景,多源关联才是高速计算网络可观测性的正确打开方式。