zfs 池错误,如何确定过去哪个驱动器发生故障

zfs 池错误,如何确定过去哪个驱动器发生故障

我一直在从我的池中复制数据,这样我就可以用不同的版本重建它,这样我就可以离开 solaris 11 并转到一个可以在 freebsd/openindia 等之间移植的版本。前几天它的复制速度是每秒 20mb,这大约是我的台式机驱动器可以处理的所有网络写入速度。突然,昨晚它降到了 1.4mb,我今天运行了 zpool status 并得到了这个。

   pool: store
   state: ONLINE
   status: One or more devices has experienced an unrecoverable error.  An
          attempt was made to correct the error.  Applications are unaffected.
   action: Determine if the device needs to be replaced, and clear the errors
          using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://www.sun.com/msg/ZFS-8000-9P
   scan: none requested
   config:

    NAME          STATE     READ WRITE CKSUM
    store         ONLINE       0     0     0
      raidz1-0    ONLINE       0     0     0
        c8t3d0p0  ONLINE       0     0     2
        c8t4d0p0  ONLINE       0     0    10
        c8t2d0p0  ONLINE       0     0     0

它目前是一个 3 x1tb 驱动器阵列。最好使用什么工具来确定错误是什么以及哪个驱动器出现故障。

根据管理文档

 The second section of the configuration output displays error statistics. These errors are divided into three categories:

READ – I/O errors occurred while issuing a read request.

WRITE – I/O errors occurred while issuing a write request.

CKSUM – Checksum errors. The device returned corrupted data as the result of a read request.

它说低计数可能是任何东西,从功率通量到磁盘事件,但没有提供使用什么工具进行检查和确定的建议。

答案1

当从磁盘读取数据但与预期的校验和不匹配时,就会发生校验和错误;嘈杂的 SATA 电缆可能会导致这种损坏,无论是在写入(数据在写入磁盘的过程中损坏)还是在读取(数据在从磁盘读取的过程中损坏)过程中。虽然这可能是磁盘故障,但很可能是由松动或夹紧的 SATA 数据线引起的。尝试重新安装两端的电缆或尝试另一根已知良好的电缆。

至于确定哪个磁盘,取决于你使用的硬件。对于 Sun 品牌的硬件cfgadm -alv应该为您提供硬盘序列号以匹配其逻辑名称。如果您在主板上使用 SATA 端口,端口号对应于目标 ID(2、3、4),因此第一个端口可能是 t0。我的大多数磁盘的标签上都印有 WWN,您可以通过启用多路径来发现这一点pfexec stmsboot -e(请参阅:这个问题) 它将使用 c8tWWNxxxxxxxxd0p0 格式而不是 c8tNd0p0,但可能仅当您使用 SAS 控制器时才如此。

您的输出显示 ZFS 能够通过重建其他两个磁盘的数据并恢复冗余来纠正错误。它只是让您导致一些不好的事情发生,此时故障管理系统尚未确定磁盘是否有足够的错误来保证将其脱机(导致“降级”池状态)。我会给它一个清理,以确保每个字节都干净地读取。更多信息错误 ZFS-8000-0P这里。

相关内容