如何调试/解决严重的 ZFS 问题?

如何调试/解决严重的 ZFS 问题?

我已经建立了一个家庭数据服务器,并且已经更换了除驱动器本身之外的几乎所有部件。

从在 CentOS 中使用软件 RAID 开始,我已经让一系列 5 个驱动器在 RAID 0 中完美地运行了两年。这完全是运行 RAID 的最危险的方式。其他五个驱动器与前 5 个相同且来自同一批次,始终采用某种形式的 RAID 5 配置,首先使用软件 RAID,然后在完全重建后使用 ZFS。经过几个月的无懈可击的服务后,这套设备总是定期地放弃并以或多或少令人惊叹的方式离线。

这些驱动器位于外部外壳中,最初通过多路复用 eSATA 连接,现在通过多路复用 USB3 连接。

起初我认为问题可能出在廉价的机箱/多路复用器上,因此我在两个机箱之间交换了 RAID 0 和 RAID 5 阵列的 5 个驱动器。 RAID 0 继续完美地运行,RAID 5 继续出现这些周期性的停电。

我第一个暗示问题出在该组中的一个驱动器上,但五个驱动器中没有一个比其他驱动器出现的问题更多。所以我想知道 RAID 5 是否有一些奇怪的电源要求,导致外壳跳闸,并投资了另一个外壳,这次是 USB 3 连接盒 - USB3 比 eSATA 积极得多。

就这样,这个方法已经稳定运行了六个月,直到今天。在终端上我收到了 5 条连续的消息:

WARNING: Your hard drive is failing
Device: /dev/sda [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sdb [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sdc [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sdd [SAT], unable to open device
WARNING: Your hard drive is failing
Device: /dev/sde [SAT], unable to open device

我已经去掉了盒子、多路复用器的连接、PCIe eSATA 扩展板,问题一定是一定与驱动器在一起,但除非将它们全部扔掉,否则我不知道如何调试它。当它第一次发生时,zpool status所有驱动器都显示几乎相同的错误,奇怪的是它们都按字母顺序排列。

我清除了 zpool,它重新同步,有一段时间一切都很好,然后它停止响应。现在spool status实际上挂起了终端并且不受 Ctrl+C 的影响。

新的信息:

/dev/sda-e自发地将自己重命名为/dev/sda1-e1,由于没有读取或写入,我重新启动了驱动器盒。这些设备消失然后按预期重新出现,但1名称上仍带有后缀。

更新:(2017 年 6 月 3 日)

使用Oracle 文档我尝试设置failmodecontinue

zpool set failmode=continue tank

在这种模式下,我继续定期获取

WARNING: Your hard drive is failing
Device: /dev/sda [SAT], unable to open device

并且阵列中的驱动器都会产生写入错误:

   NAME                        STATE     READ WRITE CKSUM
    tank                        ONLINE       0    16    59
      raidz1-0                  ONLINE       0    32   118
        ata-WDC_WDC_WD10-68...  ONLINE       0    14     0
        ata-WDC_WDC_WD10-68...  ONLINE       0    12     0
        sda                     ONLINE       0    12     0
        ata-WDC_WDC_WD10-68...  ONLINE       0    12     0
        ata-WDC_WDC_WD10-68...  ONLINE       0    14     0

errors: 67 data errors, use '-v' for a list

但是此时至少 zpool 保持活动状态,并且不会无限期地挂起终端或挂起其他池。

有趣的是,只有写入操作才会在所有驱动器上产生错误,而且错误数量非常相等。

答案1

由于消息是由智能通知并且系统确实无法访问设备,我建议调查首先是驱动器问题,因为这看起来像是硬件问题。

zfs对此我们无能为力。更换有故障的硬盘驱动器(或电缆或控制器)后,zfs也许能够再次恢复池。

相关内容