轮询的两个问题
传统做法是运维 Agent 定时读取 SMART 日志。周期设长会漏掉瞬时事件——一次温度尖峰、一次介质错误可能在两次采样之间来去;周期设短则在上千盘的集群里制造可观的管理面开销,而且每次 Get Log Page 都要占用队列槽位,与业务 I/O 竞争。两头都不理想。
取走才复位的握手语义
AEN 的工作方式是主机预先向盘下发若干条 Asynchronous Event Request 命令,这些命令不立即返回而是驻留在盘上。盘检测到事件时完成其中一条,返回事件类型和关联的日志页标识。主机随后必须去读对应日志页把事件状态清除,再补发一条新的 AER 重新武装通道。这个语义意味着驱动若忘记补发,后续事件将静默丢失——这是平台集成阶段最常见的问题,且症状表现为告警变少而非报错,很容易被误认为一切正常。
哪些事件值得占用这条通道
事件大致分三类:错误状态(介质错误、内部错误)、健康状态变化(可靠性降级、温度越阈、备用块低于阈值、进入只读模式)、通知类(命名空间属性变化、固件激活完成、Telemetry 日志更新)。企业级盘应完整支持这几类,并允许主机通过 Set Features 逐位使能,让不同角色的机器只订阅自己关心的事件,避免噪声淹没真正需要响应的告警。
与 SMART、Telemetry、NVMe-MI 的分工
四者互补而非替代。AEN 负责有事快说,携带的信息量很少;SMART 日志承载定量健康指标,用于趋势判断;Telemetry 承载故障时刻的内部状态快照,供离线失效分析使用;NVMe-MI 走带外通道,在主机操作系统失效或盘无法响应带内命令时仍能读到基本状态。只有 AEN 而没有 Telemetry,运维知道出了事却查不出原因;只有 SMART 而没有 AEN,则永远慢一拍。
抑制误报与抖动
温度在阈值附近来回穿越会造成告警风暴。固件侧需要迟滞窗口和最小上报间隔,同一类事件在窗口内合并,上行与下行使用不同门限。J750/J770 尚在产品定义/EVT 阶段,这组参数与客户机箱的实际温度曲线相关,属于平台联调时的标定内容;事件覆盖清单与抑制门限正在内部工程平台 JH-E4U-C 上逐条验证,最终会与固件版本一起进入发布说明,让主机侧的订阅配置有确定的对照对象。
