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

相关文章

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

JavaEE7 Servlet 3.1(JSR 340)规范中文版

http://www.iteye.com/news/27727-jinnianshilongnian     Jave EE 7中的部分规范已正式获得批准通过,其中包括JSR340 Java Servlet 3.1规范,去年翻译了该规范,在此分享出来,希望对某些朋友有所帮助,不足之处请指正。   点击直接下载    在线版目录   Servlet3.1规范翻译

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m