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

2024-03-15 23:44

本文主要是介绍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的运行状态进行全面深入的故障诊断和性能调优。

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

精彩推荐:

  • 固态存储是未来|浅析SSD架构的演进与创新技术

  • 论文解读:NAND闪存中读电压和LDPC纠错码的高效设计

  • 华为新发布磁电存储“王炸”,到底是什么?

  • 关于SSD LDPC纠错能力的基础探究

  • 存储系统如何规避数据静默错误?

  • PCIe P2P DMA全景解读

  • 深度解读NVMe计算存储协议

  • 对于超低延迟SSD,IO调度器已经过时了吗?

  • 浅析CXL P2P DMA加速数据传输的原理

  • HDD回暖于2024,与SSD决战于2028

  • SSD固态硬盘的黄金原则:抱最高的希望,做最坏的打算

  • PCIe 6.0生态业内进展分析总结

  • 详细解读QLC SSD无效编程问题

  • NVMe SSD IO压力导致宕机案例解读

  • 浅析PCIe 6.0功能更新与实现的挑战

  • 过度加大SSD内部并发何尝不是一种伤害

  • FIO测试参数与linux内核IO栈的关联分析

  • PCIe surprise down异常与DPC功能分析

  • 过度加大SSD内部并发何尝不是一种伤害

  • NVMe over CXL技术如何加速Host与SSD数据传输?

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • SSD在AI发展中的关键作用:从高速缓存到数据湖

  • 浅析不同NAND架构的差异与影响

  • SSD基础架构与NAND IO并发问题探讨

  • 字节跳动ZNS SSD应用案例解析

  • SSD数据在写入NAND之前为何要随机化?

  • 深度剖析:DMA对PCIe数据传输性能的影响

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 如何通过优化Read-Retry机制降低SSD读延迟?

  • 关于硬盘质量大数据分析的思考

  • 存储系统性能优化中IOMMU的作用是什么?

  • 全景解析SSD IO QoS性能优化

  • NVMe IO数据传输如何选择PRP or SGL?

  • 浅析nvme原子写的应用场景

  • 多维度深入剖析QLC SSD硬件延迟的来源

  • 浅析PCIe链路LTSSM状态机

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

这篇关于OCP NVME SSD规范解读-12.Telemetry日志要求的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813655

相关文章

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

Java 日志中 Marker 的使用示例详解

《Java日志中Marker的使用示例详解》Marker是SLF4J(以及Logback、Log4j2)提供的一个接口,它本质上是一个命名对象,你可以把它想象成一个可以附加到日志语句上的标签或戳... 目录什么是Marker?为什么使用Markejavascriptr?1. 精细化的过滤2. 触发特定操作3

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

MySQL8.0临时表空间的使用及解读

《MySQL8.0临时表空间的使用及解读》MySQL8.0+引入会话级(temp_N.ibt)和全局(ibtmp1)InnoDB临时表空间,用于存储临时数据及事务日志,自动创建与回收,重启释放,管理高... 目录一、核心概念:为什么需要“临时表空间”?二、InnoDB 临时表空间的两种类型1. 会话级临时表

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、