小白如果排查SSD故障原因?| SSD 故障分析 | 万事不求人,从NVMe Cli 错误报告和日志记录功能发现端倪

NVMe™技术是从头开始为ssd构建的,最初的NVMe规范包括一个标准的SMART(自我监控、分析和报告技术)日志,用于监控错误、设备健康状况和耐用性。

此后,NVMe技术中内置了许多功能,包括增强的错误报告、日志记录、管理、调试和遥测。可以将这些功能内置于从开源管理工具到OEM管理控制台的各种工具中,以帮助监控SSD的状态和健康状况(例如在SSD发生故障时通知用户)。更重要的是,客户希望确保他们的SSD能够顺利正常运行,并且能够了解故障的位置和原因以及何时发生故障。

管理工具、日志页面、耐久性监控等可以帮助识别和精确定位设备故障、错误数量和错误类型。这些错误可能包括硬件故障、完整性错误、媒体错误、温度问题等等。在我们深入研究NVMe技术的具体功能之前,重要的是要了解ssd是如何故障的,然后我们可以使用这些工具来帮助预测和预防它们,当发生故障的时候利用工具来排查问题, 亡羊补牢。

SSD故障通常分为以下几类:

系统不兼容-在这种情况下,SSD没有任何问题,但兼容性错误阻碍了正常操作。一个例子是系统挂起或没有SSD枚举。如果发生这种情况,客户通常会将SSD退还给制造商。

SSD耐用性- SSD耐用性是有限的,写入数据最终会磨损SSD。好消息是,可以通过了解工作负载和SSD来准确地预测和建模,NVMe技术可以报告统计数据以实时监控这一点。

固件错误——SSD固件很复杂,必须处理许多工作负载和状态的极端情况才能传输数据。SSD供应商试图在投入生产之前消除尽可能多的固件问题,但完美的验证和验证并不能捕获所有固件问题。固件故障占大多数SSD故障!

介质错误——有许多不同类别的SSD,有些具有端到端数据保护、断电保护和通过RAID、XOR或其他技术在SSD介质内的冗余。但是NAND闪存和其他存储和内存类确实有故障,太多会导致SSD停止工作。

硬件错误——电容器、电阻器和电源管理电路可能失效。这种情况比较罕见,但一旦发生,后果会更严重。

1 如果利用日志分析分析问题?

日志页面维护在SSD中,主机软件可以随时读取。以下是NVMe技术使用的各种日志页面:

1.1 错误日志页面

错误日志页用于记录所有错误,以便没有错误未报告或丢失。NVMe驱动器维护一个错误日志页面,记录发生的所有错误。此日志页保存有关错误数量、错误来自哪个队列以及哪些数据和名称空间受到影响的重要信息。这对于识别有问题的驱动器和系统中可能导致错误的根源至关重要。

sudo nvme error-log /dev/nvme0n1

Error Log Entries for device:nvme2n1 entries:64
Entry[ 0]
error_count     : 500
sqid            : 0
cmdid           : 0x1008
status_field    : 0x6002(Invalid Field in Command: A reserved coded value or an unsupported value in a defined field)
phase_tag       : 0
parm_err_loc    : 0x28
lba             : 0
nsid            : 0
vs              : 0
trtype          : The transport type is not indicated or the error is not transport related.
cs              : 0
trtype_spec_info: 0

1.2 SMART日志页面

SMART日志页用于报告驱动器的一般运行状况信息。其主要运行状况指示器称为严重警告,用于警告驱动器中的问题。然后NVMe驱动器将通知主机问题的类型。问题可能意味着由于介质错误,驱动器处于降级或只读模式,驱动器当前超过温度阈值或可能存在硬件故障。SMART日志页面还可以汇总媒体或数据完整性错误的错误日志页面,并列出由于掉电事件导致的不安全关机次数。最后,SMART页面用于监视耐力。通过查看SMART Percentage Used字段,系统集成商可以查看SSD剩余寿命占已使用/可用总寿命的百分比,这是一个易于读取的百分比。为了最好地利用这个特性,供应商可以设置一个可用的备件字段,以便在备件低于某个阈值时向主机发送通知。

sudo nvme smart-log /dev/nvme0n1 -H

Smart Log for NVME device:nvme2n1 namespace-id:ffffffff

critical_warning                        : 0

Available Spare[0]             : 0

Temp. Threshold[1]             : 0

NVM subsystem Reliability[2]   : 0
...

扩展 NVMe Cli -- 从 Linux 透视 Nvme SSD_元存储的博客-CSDN博客

1.3 持久事件日志

在NVMe 1.4规范中添加了持久性事件日志,可以将其比作SSD的黑匣子记录器。这用于记录SSD上发生的事件,如错误、固件更新、格式化等,以便人们能够清楚地看到它们并带有时间戳。这对于OEM或OS供应商来说非常有用,他们希望识别和管理他们的设备,并确定何时发生特定的事件或故障。那些有兴趣了解更多关于持久事件日志的人可以访问“NVMe Revision 1.4中的变化”网页。

1.4 遥测技术——为NVMe技术增加调试能力

遥测技术使SSD供应商/制造商能够在设备发生故障时收集内部日志。由于客户的IP和内部数据收集敏感性,这里鼓励使用标准的人类可读日志。该命令既可以由主机发起,也可以由控制器发起,但通常对于主机(在本例中是客户)来说,在设备发生故障时读取遥测日志并将其发送给SSD供应商或OEM以进行进一步分析是有意义的。正如我们从介绍中看到的,固件问题是SSD故障的主要原因,遥测日志允许供应商在现场发生故障时找到根本原因。

1.5 事件和错误报告

除了日志页之外,许多NVMe规范还提供报告错误和操作失败的功能。这些报告有助于识别每种特定类型的错误,以及如何恢复控制器、驱动器和操作系统。

在这里插入图片描述

 图片来源  [NVME CLI -- nvme 命令查看NVME设备内部状态]

1.6 异步事件请求

异步事件用于通知主机软件各种事件的状态、错误和运行状况信息。当发生错误、驱动器属性更改、SMART更改或完成管理事件时,NVMe控制器或驱动器将向主机软件报告事件。这里最重要的功能是NVMe控制器(在大多数情况下是驱动器)可以在发生严重警告时异步通知主机,操作系统或系统控制台可以立即将此报告给用户。要了解有关所定义事件类型的更多详细信息,请访问NVMe 1.4规范的第96页。

1.6 操作失败

NVMe规范包括一个专门用于控制器/驱动器、驱动程序和操作系统使用的错误报告和恢复的部分。这主要用于设备驱动程序和主机软件系统,以识别NVM子系统和NVMe控制器的关键故障。本节可以在NVMe 1.4规范的第400页找到。

1.7 重建帮助

重建辅助在NVMe 1.4规范中作为一个选项添加。Rebuild Assist定义了一个新的Get LBA Status功能,用于标识主机上可能不可恢复的LBA。此状态用于确定主机需要从其他位置恢复设备上的哪些LBAs并重新写入。重建辅助的一个主要用例是帮助替换SSD的后台数据擦除,因为SSD固件通常已经在内部执行此分析,并且现在有一种方法将此报告给主机。主机通常有数据的冗余副本,现在有机会从有效副本中恢复数据。

1.8 管理

NVMe管理接口™(NVMe- mi™)技术的管理能力对于企业、云和数据中心部署至关重要。这对于支持多个操作系统并受益于一个管理控制台的oem特别有用,这对最终客户来说是一个增值。

NVMe-MI规范

NVMe- mi规范通过SMBUS/MCTP和PCIe/ vdm接口管理操作系统外的NVMe ssd。NVMe-MI架构使用基板管理控制器来检查库存、监控错误、跟踪SMART日志和耐久度,并通过管理控制台报告这些情况。要了解有关NVMe-MI规范的更多信息,我们邀请您阅读我们的NVMe-MI技术博客,以获得对其功能和优点的更深入的解释。NVMe- mi通过提供专门用于管理存储设备的完整规范,真正将NVMe标准与其他存储接口区分开来。

2. 自测诊断问题

测试功能对于进行诊断和确保正确实施NVMe技术非常有用。

设备自检命令

设备自检命令特性,定义在NVMe 1.4规范的第107页,允许主机启动一个短期或长期的自检,以运行脱机诊断。oem、ODMS和系统集成商在将新的NVMe SSD集成到更大的系统中时经常使用此命令特性。一个例子是在系统集成商或工厂,他们从SSD供应商那里获得SSD,并将它们放入更大的服务器中,然后继续运行自检命令以确保驱动器都能正常工作。NVMe规范包括一个包含示例设备自检的信息图。

转载自

How SSDs Fail – NVMe™ SSD Management, Error Reporting, and Logging Capabilities - NVM Express

原作者: Jonmichael Hands, NVMe MWG Co-Chair, Intel       

 

Je suppose que tu aimes

Origine blog.csdn.net/vagrant0407/article/details/131819984
conseillé
Classement