我有一台运行ZFS的FreeBSD 8.x机器和一台3ware 9690SA控制器。
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在最近的历史logging中显示没有ECC错误。
ZFS目前不检测任何错误。 zpool status说No known data errors
我的问题:这个ECC-ERROR是我需要关注的吗?
根据3ware CLI 9.5.2手册 , ECC-ERROR意味着3ware控制器在该驱动器上发现了一个或多个扇区的读错误。 当RAIDarrays从发生故障的磁盘恢复时,有时会发生这种情况。 我相信,当3ware控制器validation每个磁盘时,也可以检测到ECC-ERRORS。 没有一个驱动器出现故障,因此没有驱动器重build,因此我认为3ware在运行磁盘每周自动validation扫描时发现了一个坏扇区。 这是一个安全的假设吗?
根据我们的日志,ZFS在这个驱动器上没有发现任何坏道。 ZFS可以解决读取错误 – 如果ZFS检测到驱动器上的坏扇区,它将简单地标记该扇区为坏,不再使用它。 从ZFS的angular度来看,一个糟糕的行业并不是什么大不了的事情,尽pipe这可能表明行情开始变差。
我可以使用tw_cli /c0 rescan清除ECC-ERROR错误,并根据tw_cli手册页 “ 重新扫描控制器将清除错误状态,如果条件不再存在 ”。 而且由于ECC错误只有在特定的磁盘扇区被读取时才会出现, ECC-ERROR就会消失。 由于ZFS可能将坏扇区移动到磁盘的另一个区域,并将坏扇区标记为“坏”,坏扇区将永远不会再被读取。
根据文档 ,在单个驱动器的情况下,这意味着你可能有损坏的数据或可能不是。 ZFS保存对象的校验和,因此可以进行数据完整性检查 。 一定要有RAID和计划的完整性检查。