我已经建立了一个家庭数据服务器,并且已经更换了除驱动器本身之外的几乎所有部件。
从在 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 文档我尝试设置failmode
为continue
:
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 保持活动状态,并且不会无限期地挂起终端或挂起其他池。
有趣的是,只有写入操作才会在所有驱动器上产生错误,而且错误数量非常相等。