什么是Uncorrectable Error?

 

当阵列在读取某块磁盘时发现某扇区/数据块发生问题(通常是media error即盘片介质原因)导致无法读取时,系统会试图从RAID Group的其它磁盘对应位置上进行数据重建(RAID1、RAID1/0会通过镜像盘读取数据,RAID3/RAID5会利用奇偶校验 )。当尝试重建数据失败的时候,就会发生Uncorrectable Error。

 

如下图,举例为4+1的RAID-5 RG(RaidGroup)。当DATA 5无法读取时,会通过同一个条带上的DATA 6~8和XOR2进行数据重建;如果此时其他数据中DATA 6~8或者校验位XOR2无法读取,就无法通过RAID保护进行数据重建。所以Uncorrectable Error只有在阵列读操作的时候发生,并且会报在同一个RG上的两块磁盘上。

 

Uncorrectable.jpg

 

从以上我们可以了解到,当Uncorrectable Error发生时已经是在条带层面上DL(Data Loss)的状态了。

如果此时主机需要读取该部分数据,就会提示文件损坏或数据不完整无法读取。

 

相关功能:

 

FAST VP

FAST VP即Auto Tiering可能会把坏数据迁移到其它磁盘上扩大受影响的范围,所以当我们遇到Uncorrectable Error的时候都需要把此功能暂时停掉。

 

FAST Cache

FAST Cache缓存中发生Uncorrectable Error时,需要把FAST Cache停用并把所有缓存刷到磁盘上,然后在所有启用过FAST Cache的LUN上执行BV去检查Uncorrectable Error。

 

BV(Background Verify)

BV会尝试去读取和修复数据坏块,BV结束以后会得到一个报表列出所有无法修复/已修复Uncorrectable Error。

注明一点,如果报Uncorrectable Error的同时,还有Cohearency Error的话,绝对不允许执行BV,这样会导致更糟糕的结果。如果发现此类问题,请及时联系技术支持,我会在下一讲介绍Coherency Error。

 

作者简介

Nate Ju

EMC资深技术支持工程师。

精通VNX/MCx架构,熟练问题排查及提供解决方案。