我有一台运行 ZFS 并配备 3ware 9690SA 控制器的 FreeBSD 8.x 机器。
3ware 控制器显示其中一个磁盘出现 ECC-ERROR:
//host> /c0 show
VPort Status Unit Size Type Phy Encl-Slot Model
------------------------------------------------------------------------------
p0 OK u0 279.39 GB SAS 0 - SEAGATE ST3300657SS
p1 OK u0 279.39 GB SAS 1 - SEAGATE ST3300657SS
p2 OK u1 931.51 GB SAS 2 - SEAGATE ST31000640SS
p3 ECC-ERROR u2 931.51 GB SAS 3 - SEAGATE ST31000640SS
p4 OK u3 931.51 GB SAS 4 - SEAGATE ST31000640SS
/c0 show events
显示其近期历史中未出现 ECC 错误。
zpool status
ZFS目前未检测到任何错误。No known data errors
我的问题是:这是ECC-ERROR
我需要担心的事情吗?
根据3ware CLI 9.5.2 手册,这ECC-ERROR
意味着 3ware 控制器捕获了此驱动器上一个或多个扇区的读取错误。当 RAID 阵列从故障磁盘中恢复时,有时会发生这种情况。我相信当 3ware 控制器验证每个磁盘时也可以检测到 ECC-ERRORS。所有驱动器均未发生故障,因此没有驱动器重建,因此我假设 3ware 在运行每周的磁盘自动验证扫描时发现了坏扇区。这是一个安全的假设吗?
根据我们的日志,ZFS 未检测到此驱动器上的任何坏扇区。ZFS 可以解决读取错误问题 - 如果 ZFS 检测到驱动器上的坏扇区,它会将该扇区标记为坏扇区并且不再使用它。从 ZFS 的角度来看,一个坏扇区并不是什么大问题,尽管它可能表明驱动器开始出现问题。
我可以ECC-ERROR
使用tw_cli /c0 rescan
、 和清除错误根据 tw_cli 手册页“如果情况不再存在,重新扫描控制器将清除错误状态“。由于 ECC 错误仅在读取特定磁盘扇区时才会发生,因此错误ECC-ERROR
会消失。由于 ZFS 可能已将坏扇区移至磁盘的另一个区域,并将坏扇区标记为“坏”,因此坏扇区将永远不会再次被读取。
答案1
根据文档,如果是单驱动器,这意味着数据可能损坏,也可能没有损坏。ZFS 保存对象的校验和,因此可以进行数据完整性检查. 确保有 RAID 和计划的完整性检查。