硬盘介质错误分析

2023-08-08 2002阅读

温馨提示:这篇文章已超过371天没有更新,请注意相关的内容是否还可用!

Media Error,有时也称为Medium Error,一般是指硬盘在读取操作时遇到不可纠正的扇区,无法向主机返回准确的数据。Media Error的产生意味着即使硬盘本身用尽了所有容错手段,也无法正确读取该扇区中的数据。Media Error的本质原因是硬盘的读写信号处理系统无法正确解码硬盘介质上读取的数据信号。由于极其精密的内部机械结构,目前主流硬盘的磁头与盘片之间的距离已被压缩至1nm左右,轻微的外部干扰就会造成读写信号质量的波动。通常,介质错误发生在两种情况:硬盘自检和主机主动读取。当某个LBA发生Media Error时,意味着硬盘中的所有纠错措施都无法恢复,单盘中该LBA的数据已经丢失。

1. 什么是介质错误

Media Error,有时也称为Medium Error,一般是指硬盘读取操作时遇到不可纠正的扇区,无法向主机返回准确的数据。 SCSI协议对应的KCQ代码是03/11/xx。 Media Error的产生意味着即使硬盘本身用尽了所有容错手段(如LDPC解码、重试等),也无法正确读取该扇区(LBA)中的数据。

硬盘被识别为可弹出设备问题_硬盘io错误不能识别_硬盘识别失败

2. 介质错误的原因

Media Error的本质原因是硬盘的读写信号处理系统无法正确解码硬盘介质(如HDD的盘片、SSD的NAND)上读取的数据信号。 下面分别针对 HDD 和 SSD 分析 Media Error 的主要原因。

硬盘:

由于极其精密的内部机械结构,目前主流硬盘的磁头与盘片之间的距离已被压缩至1nm左右,轻微的外部干扰就会造成读写信号质量的波动。 硬盘产生Media Error的主要原因如下:

硬盘io错误不能识别_硬盘识别失败_硬盘被识别为可弹出设备问题

不可靠的LBA:读写信号质量的波动会导致偶发性不稳定的LBA报Media Error,但有时硬盘可能会在多次重试后恢复。

弱写/高飞写:硬盘读写时需要对磁头进行加热,利用热胀冷缩的原理,使磁头与盘片的距离更近,以提供更好的读写信号质量。 但高IO读写会对热凸块产生一定的影响,从而在一定程度上增加弱写的概率。 出现弱写入后,写入信号强度较弱,读取时可能无法正确纠错,导致Media Error。 高飞写是由于IO高时(磁头摆动频率增大),硬盘内部的自由颗粒被气流卷起撞击磁头,导致磁头飞高而产生写数据时弱写。

硬盘被识别为可弹出设备问题_硬盘识别失败_硬盘io错误不能识别

冲击/振动/声学:外部冲击、振动、噪音会引起盘片内部产生较大的共振,从而导致磁头振动,导致读写脱轨,从而导致Media Error。

硬盘被识别为可弹出设备问题_硬盘识别失败_硬盘io错误不能识别

介质缺陷:光盘被划伤。 由于盘片中存在较大颗粒或磁头对盘片的冲击,导致某些区域的磁性材料损坏,无法读取数据。

硬盘识别失败_硬盘io错误不能识别_硬盘被识别为可弹出设备问题

Head Degrade:磁头劣化,磁头结构或材料损坏,导致读写信号质量大幅下降,导致Media Error。

硬盘被识别为可弹出设备问题_硬盘io错误不能识别_硬盘识别失败

上述第4点和第5点是不可恢复的硬件损坏,一般会导致大量LBA出现不可恢复的读取错误,而第1点到第3点不涉及硬件损失,可以通过简单的覆盖来恢复。

固态硬盘:

简单来说,读取SSD数据的过程就是阈值电压Vt对应于浮栅中存储的电子的过程。 随着SSD P/E的增加,原始BER也会增加。

硬盘被识别为可弹出设备问题_硬盘识别失败_硬盘io错误不能识别

图片来源:IEEE:闪存校正和刷新:保留感知错误管理可延长闪存寿命

硬盘被识别为可弹出设备问题_硬盘识别失败_硬盘io错误不能识别

硬盘被识别为可弹出设备问题_硬盘io错误不能识别_硬盘识别失败

SSD产生Media Error的主要原因如下:

硬盘io错误不能识别_硬盘识别失败_硬盘被识别为可弹出设备问题

编程干扰:在写入过程中,一些不应该写入的单元(同一页或相邻页中的一些单元)会受到电压应力增大而导致位翻转,尤其是在大量部分页写入时。 ,干扰尤为严重。

硬盘io错误不能识别_硬盘被识别为可弹出设备问题_硬盘识别失败

图片来源:《NAND闪存难以忽视的真相》

读干扰:在读过程中,由于电压应力增大,相邻页受到干扰,导致位变化。

硬盘io错误不能识别_硬盘被识别为可弹出设备问题_硬盘识别失败

图片来源:《NAND闪存难以忽视的真相》

过编程:位线的阈值电压(阈值栅极电压)过高,导致读写数据不正确。

数据保持:当控制电极不加电压时,浮栅中的电子会产生本征电场,导致电子从浮栅中慢慢泄漏,数据就会出错

硬盘识别失败_硬盘被识别为可弹出设备问题_硬盘io错误不能识别

图片来源:《NAND闪存难以忽视的真相》

介质磨损:SSD的擦写次数(P/E Cycle)超过设计规格,绝缘浮栅氧化层老化磨损,无法隔离和保留电子,导致大量介质磨损。错误。

硬盘被识别为可弹出设备问题_硬盘io错误不能识别_硬盘识别失败

图片来源:《NAND闪存难以忽视的真相》

上面第5点是SSD NAND硬件损坏无法恢复,而第1点到第4点不涉及硬件丢失,可以通过简单的块擦除和重写来恢复。

3.硬盘中的容错机制

为了尽量减少Media Error的发生,硬盘有极其复杂的纠错流程和算法来纠正原始位错误(Raw Bit Error),以保证用户数据能够被正确解码。 产品规格方面,经过层层纠错处理算法,HDD UBER可以达到10-15,SSD UBER可以达到10-17

硬盘:

HDD读取的原始信号是通过磁头转换盘片上磁场极性而得到的电信号,信号微弱,噪声较大,无法识别。 得益于HDD强大的PRML(部分响应最大似然)通道处理技术,通过模拟信号处理、模数转换、数字信号处理和SOVA-LLR(软输出维特比算法-对数似然)处理微弱且嘈杂的模拟电信号比)检测、LDPC解码等一系列复杂的信号处理技术转化为误码率极低的用户数据。 然而,即使有如此强大的信号处理系统,有些扇区也会出现不可恢复的错误,因此HDD还具有复杂的扇区级重试算法,尝试以各种方式重新解码不可恢复的扇区。 它包括不同级别的重试步骤,例如重读、噪声补偿、磁头偏移和参数调整。 另外,在新的HDD技术中,还引入了类似于盘内RAID验证的思想。 在每个轨道的末尾,都有将被验证的扇区。 当磁道多个扇区无法读取时,可以通过检查扇区来重建无法恢复的扇区,从而实现磁盘中同一磁道上多个扇区的验证和恢复。

硬盘io错误不能识别_硬盘识别失败_硬盘被识别为可弹出设备问题

固态硬盘:

硬盘介质错误分析

SSD虽然不像HDD那样需要复杂的模数信号处理,但内部也有一套完整的错误检查和修复机制。 主机从NAND读取数据后,SSD内部会进行一系列ECC检查、LDPC检查、盘上“RAID”检查、重试等纠错步骤,以确保读取到正确的数据。 只有当所有手段都失败时,SSD才会报告Media Error,通知主机原始数据无法恢复。

硬盘io错误不能识别_硬盘被识别为可弹出设备问题_硬盘识别失败

4. Media Error发生场景

通常,介质错误发生在两种情况:硬盘自检和主机主动读取。

硬盘自检:后台定期扫描硬盘时发现硬盘,但Host感知不到。

主机主动读取:主机读取任务时报告Media Error。

5. Media Error常见误区

如果出现 Media Error,则表示硬盘出现故障: ×

介质错误非常常见,尤其是当硬盘运行在 24x7 企业级高 IO 服务器上时。 上文提到,对于HDD来说,高工作负载会产生高强度的磁头寻道和读写,再加上机箱的震动和风扇的风噪等,难免会出现写入弱、LBA不可靠等情况。原因。 媒体错误; 对于SSD来说,高Workload会增加程序干扰、读取干扰等现象,从而增加Media Error的概率。 少量介质错误是很常见的。 这不是不可逆的硬件损失,可以通过覆盖来修复。 这并不意味着硬盘有故障。

Media Error的数量越多,硬盘的坏块就越多: ×

Media Errors 的计数并不代表坏块的数量。 如果多次读取坏块(LBA),系统会报告多个Media Error。 我们需要判断产生Media Errors的LBA是零星的还是大的

硬盘应自行修复Media Error以确保数据安全:×

当某个LBA发生Media Error时,意味着硬盘中的所有纠错措施都无法恢复,单盘中该LBA的数据已经丢失。 这时就需要上层(如RAID卡、业务副本)来恢复数据冗余,而单硬盘并不能保证数据冗余和安全。

6、应用层Media Error容错方案建议

上面提到,当硬盘报出Media Error时,就意味着该硬盘对应的LBA数据无法恢复,因此从应用层的角度来看,需要对数据进行多份备份和恢复。

文件系统验证+多份:

对存储文件进行校验和验证,如果验证失败,则读取对应的副本数据,同时重写修复原始数据

硬盘识别失败_硬盘被识别为可弹出设备问题_硬盘io错误不能识别

定期检查和一致性检查

定期对多副本数据进行巡读和校验和验证,并提前用相应的副本数据重写和修复报错块

硬盘io错误不能识别_硬盘被识别为可弹出设备问题_硬盘识别失败

硬盘识别失败_硬盘io错误不能识别_硬盘被识别为可弹出设备问题

硬盘io错误不能识别_硬盘识别失败_硬盘被识别为可弹出设备问题

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]