4.8.5章节SMART / Health Information Requirements详细规定了NVMe固态硬盘对SMART(Self-Monitoring, Analysis and Reporting Technology)和健康信息日志页面的支持要求,以确保设备能够准确报告其运行状态和预测潜在故障。
-
SLOG-1:
设备需要保证所有由本规范定义的DSSD特定日志页面上的数据在电源循环后依然保持不变,除非有特别说明。 -
SLOG-2:
所有计数器均应设计为饱和计数器,即当达到最大允许值时停止递增,而不会回滚到零。 -
SLOG-3:
DSSD日志页面中所有的字段都采用小端字节序格式存储。 -
SLOG-4:
规范中定义的所有标准化或归一化计数器(如磨损度等),出厂时默认为100%,表示设备出厂时的状态。1%代表设备可靠运行的最小阈值,当计数器降至0%时,意味着设备不再被认为是可靠的。 -
SLOG-5:
设备必须支持SMART / Health Information(标识符02h)日志页中的所有字段。 -
SLOG-6:
当执行获取SMART / Health Information(标识符02h)或SMART / Health Information Extended(标识符C0h)日志页面命令时,除了温度值外,不应导致除温度以外的SMART值更新。该操作应当是一个直接读取当前数据的简单过程,不应阻塞I/O操作。 -
SLOG-7:
除非另有规定,否则设备应在后台至少每十分钟更新一次SMART / Health Information(02h)和SMART / Health Information Extended(C0h)日志页面的值。 -
SLOG-8:
组合和原始温度传感器值应在访问日志页面时得到更新。 -
SLOG-9:
所有断言事件和控制器发起的日志捕获都需要一个与之关联的供应商特定“Reason Identifier”,用于唯一标识断言/控制器条件。 -
SLOG-10:
这一条款已经过时,并参考STD-LOG-23标准。 -
SLOG-11:
设备不得在任何情况下丢失备用能源故障信息、SMART / Health Information(标识符02h)的严重警告或SMART / Health Information Extended(标识符C0h)的严重警告,即使在电源循环或重置期间也不可丢失。 -
SLOG-12:
设备不应仅仅因为SMART/Health日志中的“Percentage Used”字段的值就设置SMART/Health关键警告。
此外,对于SMART / Health Information Extended(标识符C0h)这一扩展日志页面,它具有512字节大小,并有一系列功能需求和字段格式。
SMART-1: 该段内容描述了一个SMART属性或日志页面字段,它记录了写入到存储介质上的总字节数,也即是写入NAND的数据量。这个数值包括用户数据和元数据两部分,并且涵盖写入到用户区域(用于存储实际用户文件及应用数据)以及系统区域(通常用来存放设备内部管理和配置信息)的所有数据。
通过这个属性值可以计算出写入放大因子(Write Amplification Factor,简称WAF)。WAF是一个衡量固态硬盘在处理写入操作时实际执行的物理写入次数与主机发出逻辑写入请求次数之间比率的指标。例如,如果写入100GB的数据到SSD上,但由于垃圾回收、磨损均衡等因素,实际上可能需要对NVME SSD进行200GB的物理写入,那么WAF就是2.
写放大WAF是NAND-based SSD寿命消耗的关键参数,WAF越大,寿命消耗越快,越接近1,则寿命消耗越慢,也是最理想的情况。
影响WAF的因素有很多:
-
SSD FTL算法的设计会影响写入放大的大小
-
Wear Leveling,WL磨损均衡:这一机制主要是通过均衡所有的闪存颗粒,从而延长整体的使用寿命,然而依旧是增加整体的写放大
-
Over-Provisioning,OP冗余空间:也会影响NAND写入的比例,最终影响写放大
-
Garbage Collection,GC垃圾回收:比如上面的例子,就是GC垃圾回收搬迁数据,擦除数据块后写入带来了整体写放大提升。
-
业务读写的数据模型:随机写和顺序写对NAND的写入比例有非常大的影响,直接影响写放大的系数
-
系统层的TRIM操作:会影响invalid无效数据是否在GC过程中搬迁,对写放大影响也有重要的作用。
SMART-2:需要从用户数据和元数据两部分读取NAND的数据总量。
SMART-3:该段内容描述的是NVMe SSD中与用户NAND块退役相关的SMART属性。RAW计数(Raw count)是一个数值字段,位于字节地址37:32处,记录由于任何原因导致退役的用户NAND块总数。这些原因可能包括编程失败、擦除失败或其他事件,意味着这些NAND块因不可恢复的错误或达到使用寿命极限而无法再用于存储有效数据。
与此同时,规范还定义了一个归一化值(Normalized value),位于字节地址39:38,用来表示剩余可用用户备用NAND块的百分比。出厂时,这个归一化值被设置为十六进制64h,相当于100%的可用性。这意味着在设备出厂时,所有用户备用块都是可用状态。
需要注意的是,用于记录归一化值的空间是2个字节(对应16位),而RAW计数占用的空间则是6个字节(对应48位)。这样设计可以提供足够大的计数范围来追踪大量的NAND块操作,并以一个相对较小的归一化值表示总体健康状况的百分比。当设备出厂后,RAW计数会被清零,开始累积实际使用过程中的NAND块退役情况。
SMART-4:与SMART-3类似,区别是针对的系统区域的NAND坏块总数
SMART-5:这个这段内容描述了NVMe固态硬盘中与数据恢复相关的一个SMART属性。该属性记录了在NAND闪存中为了恢复数据而调用XOR操作的总次数。XOR是用于错误校验和数据修复的一种常见算法。
这个计数涵盖了所有从NAND闪存进行读取操作时的数据恢复尝试,无论这些尝试最终成功与否。这意味着每当由于硬件故障、噪声干扰或其他原因导致数据完整性受到威胁时,如果系统使用了包含XOR在内的纠错机制尝试恢复数据,则该计数会增加。
当设备出厂时,这一数据恢复计数会被清零。这样确保了每个新出厂的设备具有相同的初始状态,并且使用者可以从零开始跟踪设备在其生命周期内因数据错误而进行的恢复尝试次数。这对于评估SSD性能稳定性和预测潜在寿命非常有用。
SMART-6:记录了不可纠正读错误的数量,即那些无法通过标准纠错机制(如ECC,LDPC,XOR)修复的读取操作。这个计数反映了NAND闪存单元出现的严重错误状况,可能预示着设备潜在的健康问题。