OCP NVME SSD规范解读-12.Telemetry日志要求

以NVME SSD为例,通常大家想到的是观察SMAR-log定位异常,但是这个信息在多数情况下无法只能支撑完整的定位链路。

定位能力的缺失和低效是数据中心问题解决最大的障碍。

为了解决这个问题,Meta的做法是推进OCP组织加入延迟记录页面。同时NVME协议也增加了Telemetry盘片的故障定位能力。

4.9章节详述了主机和控制器触发的Telemetry日志功能,这是数据中心NVMe SSD规范的一部分,旨在增强客户和供应商对于设备监控和调试的可见性。这一功能通过对设备生成的数据进行分区和标准化格式化,使得快速定位和诊断故障成为可能。

设计原理是通过提供一种机制让主机能够主动请求或者控制器自身在发生关键事件时生成Telemetry日志数据,以便于实时或事后分析设备行为和性能问题。数据划分为影响I/O和不影响I/O两类:

  • 数据区域1存放那些不影响正在进行的活动命令的性能或延迟的监控和/或调试数据。

  • 而数据区域2则储存会影响这些命令性能或延迟的监控和/或调试数据。

无论是主机触发还是控制器触发的遥测日志中,数据区域1和2所使用的数据格式相同,并且两个来源的日志数据应当是相同的报告数据。

针对目前已有的一些NVMe日志已经被整合进Telemetry数据区域1中,以便在轮询Telemetry数据区域1时可以一次性收集所有监控信息。

4.9.7节专门讨论了Telemetry数据的要求,它在数据中心NVMe SSD规范中扮演着至关重要的角色,旨在提升设备故障快速诊断的能力。以下是该节内容的详细分析解读:

  1. Telemetry数据跟踪要求:
    • TEL-1要求设备必须记录其运行历史和任何有助于问题调试的关键参数,确保当设备出现问题时有足够丰富的运行记录可供分析。
  1. 故障原因标识符管理:
    • TEL-4规定,在Telemetry控制器触发和主机触发的日志页面中,原因标识符字段应当始终记录最新的故障标识符,即便设备经历电源循环或复位,也不应清除这些标识符,以保持故障历史记录的一致性和连续性。
  1. Telemetry数据区域规范:
    • 规定了Telemetry数据区域1和2的标准格式,适用于Telemetry Host-Initiated Log(日志标识符07h)和Telemetry Controller-Initiated Log(日志标识符08h)。这两个区域分别用于存储不影响当前I/O性能/延迟的数据和影响I/O性能/延迟的数据。
    • 数据区域3和4预留用于供应商提供的特定调试数据。若供应商需要用于根因分析的特定数据超过了数据区域3的容量,则额外的特定数据应放入数据区域4。
  1. 一致性与透明度:
    • 主机和控制器触发的Telemetry日志页面中,无论数据来自何处,数据区域1和2所报告的信息应始终保持一致,以确保跨不同触发源的数据统一和易于比较。

4.9.14.2节详细定义了一系列事件类别的信息,这些类别是为了协助调试设备问题而设计的。事件类别的目的是为数据中心NVMe SSD在运行过程中可能出现的各种异常情况或值得关注的行为提供详细的分类记录。以下是各事件类别的解读:

  1. Timestamp Debug Class (01h):此事件类别记录与时间戳相关的调试信息,可能包括设备操作的时间点、周期性任务的执行时间等,用于分析系统时序和响应时间问题。

  2. PCIe Debug Class (02h):此类别关注与PCI Express(PCIe)接口相关的事件,比如数据传输错误、链路层事件、电气信号异常等,有助于解决物理层通信问题。

  1. NVMe Debug Class (03h):这一类别的事件集中在NVMe协议层面,包括但不限于命令处理错误、队列溢出、资源冲突等,用于诊断NVMe控制器内部逻辑和功能异常。
  1. Reset Debug Class (04h):这类事件记录了与设备复位有关的情况,如意外复位、软件触发的复位、硬件故障引发的复位等,有助于查明导致复位的根本原因。
  1. Boot Sequence Debug Class (05h):此事件类别追踪设备启动序列中的问题,如固件加载失败、初始化过程中的异常等,对于优化启动过程和确定开机故障非常关键。

  2. Firmware Assert Debug Class (06h):记录固件内部assert异常事件,当固件检测到不应该发生的条件或状态时触发,用于开发和测试阶段的代码质量保证,以及生产环境中发现潜在软件缺陷。

  1. Temperature Debug Class (07h):温度相关事件,可能涉及到过热警告、温度阈值突破等,对于热管理系统和散热问题的调试尤为有用。
  1. Media Debug Class (08h):介质相关的事件,例如NAND闪存芯片的操作错误,如编程失败、擦除失败、读取错误等,有助于评估和改善闪存介质的可靠性和耐久性。
  1. Media Wear Class (09h):该类别关注闪存磨损状态,如写入次数过多导致的区块老化、读干扰迁移、数据保持重写等现象,有助于评估SSD剩余寿命及优化写入策略。
  1. Statistic Snapshot Class (0Ah):统计快照类事件,记录了设备某一时刻的关键统计指标,如当前NVMe和DSSD功率状态、程序/擦除失败次数、读扰动写入量、保持重写量等,用于长期性能趋势分析和健康状态监控。

以上事件类别共同构建了一个强大的调试工具箱,通过捕捉和解析这些事件,可以有效地对数据中心NVMe SSD的运行状态进行全面深入的故障诊断和性能调优。

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角"关注 "并点击"分享 "、"在看",非常感谢!

精彩推荐:

相关推荐
YesPMP平台官方6 分钟前
AI+教育|拥抱AI智能科技,让课堂更生动高效
人工智能·科技·ai·数据分析·软件开发·教育
Data-Miner6 分钟前
196页满分PPT | 集团流程优化及IT规划项目案例
大数据·数据分析
徐*红9 分钟前
Elasticsearch 8.+ 版本查询方式
大数据·elasticsearch
DolphinScheduler社区22 分钟前
怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
大数据
goTsHgo24 分钟前
Hive自定义函数——简单使用
大数据·hive·hadoop
Geomatrix_12325 分钟前
大联大诠鼎集团推出基于联咏科技、思特威和TDK产品的电子防抖(EIS)摄像头方案
科技·大大通
码爸26 分钟前
flink 例子(scala)
大数据·elasticsearch·flink·scala
FLGB27 分钟前
Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
大数据·flink·kubernetes
码爸28 分钟前
flink 批量压缩redis集群 sink
大数据·redis·flink
core51229 分钟前
Flink官方文档
大数据·flink·文档·官方