首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zfs raidz-2是如何从3个驱动器下恢复的?

zfs raidz-2是如何从3个驱动器下恢复的?
EN

Server Fault用户
提问于 2020-01-22 23:42:12
回答 1查看 1.7K关注 0票数 2

我想知道发生了什么,ZFS是如何能够完全恢复的,或者我的数据是否仍然是真正的灵巧的。当我昨晚进来时,我惊愕地看到了这件事,然后感到困惑.

代码语言:javascript
复制
zpool status
  pool: san
 state: DEGRADED
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://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

errors: No known data errors 

怎么可能没有数据错误,而整个池没有故障呢?

一个驱动器sdf的smartctl测试失败到S.M.A.R.T. read fail,另一个驱动器的问题稍微小一些;不可纠正的/待定扇区或UDMA CRC错误。

我试着把每一个错误的驱动器切换到离线,然后恢复在线,一次一个,这是没有帮助的。

代码语言:javascript
复制
    $ zpool status
  pool: san
 state: DEGRADED
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://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 392K in 0h0m with 0 errors on Tue Jan 21 16:36:41 2020
config:

        NAME                                          STATE     READ WRITE CKSUM
        san                                           DEGRADED     0     0     0
          raidz2-0                                    DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346  ONLINE       0     0     0
            ata-ST2000DM001-9YN164_W1E07E0G           DEGRADED     0     0    38  too many errors
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332  OFFLINE      0     0    63
            ata-ST2000NM0011_Z1P07NVZ                 ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344  ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                    DEGRADED     0     0    75  too many errors

所以,我感到非常幸运,或者有点困惑,如果我的数据真的还在那里,经过一次检查,找出最糟糕的驱动器,我做了我唯一的备用。

代码语言:javascript
复制
    $ zpool status
  pool: san
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Tue Jan 21 17:33:15 2020
        467G scanned out of 8.91T at 174M/s, 14h10m to go
        77.6G resilvered, 5.12% done
config:

        NAME                                              STATE     READ WRITE CKSUM
        san                                               DEGRADED     0     0     0
          raidz2-0                                        DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346      ONLINE       0     0     0
            replacing-1                                   DEGRADED     0     0     0
              ata-ST2000DM001-9YN164_W1E07E0G             OFFLINE      0     0    38
              ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0  (resilvering)
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332      DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                     ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344      ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                        DEGRADED     0     0    75  too many errors

重银币确实成功地完成了。

代码语言:javascript
复制
$ zpool status
  pool: san
 state: DEGRADED
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://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 1.48T in 12h5m with 0 errors on Wed Jan 22 05:38:48 2020
config:

        NAME                                            STATE     READ WRITE CKSUM
        san                                             DEGRADED     0     0     0
          raidz2-0                                      DEGRADED     0     0     0
            ata-WDC_WD20EZRX-00DC0B0_WD-WMC1T3458346    ONLINE       0     0     0
            ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1171516  ONLINE       0     0     0
            ata-WDC_WD20EZRX-19D8PB0_WD-WCC4M0428332    DEGRADED     0     0    63  too many errors
            ata-ST2000NM0011_Z1P07NVZ                   ONLINE       0     0     0
            ata-WDC_WD20EARX-00PASB0_WD-WCAZAJ490344    ONLINE       0     0     0
            wwn-0x50014ee20949b6f9                      DEGRADED     0     0    75  too many errors

我现在正处在十字路口。我通常会将错误驱动器的前2MB替换为dd 0,这样做是可以的,但是如果确实缺少数据,我可能需要这最后两个卷来恢复。

我把这个sdf放在桌子上了,移走了。我觉得我可以,最坏的情况下,用这个来帮助一些恢复。

在此期间,我认为我将开发/零的前几MB的退化驱动器,并替换为自己,我认为事情应该解决,冲洗和重复的第二个错误驱动器,直到我可以得到一些替代。

问题到底发生了什么,池是如何能够坚持下来的,或者我可能遗漏了一些数据(考虑到zfs及其报告的完整性,有些数据令人怀疑)

这可能是因为一个幸运的失败顺序,例如没有失败的堆栈顶部驱动器?

问题这个问题只是FYI,与主题无关。是什么原因导致了这三者同时失败呢?我想是因为擦洗剂造成的。我前一天晚上查过了,所有的硬盘都在网上。

请注意,在最近的过去,布线一直是一个问题,办公室在夜间变冷,但这些问题只是drive unavailable,而不是校验和错误。我认为这不是电缆,但可能是老化的驱动器,他们是5岁。但一天三次失败?得了吧,这足以吓到我们很多人!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-01-23 14:18:26

RAID-Z2是双奇偶校验,类似于RAID 6的冗余。两个磁盘可能完全失败,数据从奇偶校验中恢复。假设数组的其余部分是健康的。

您不一定有I/O错误。降级意味着ZFS继续使用磁盘.,尽管校验和错误。也许是因为一些翻转,但驱动器仍能工作。输出的每个链接

运行“zpool状态-x”以确定哪个池发生了错误。为读、写或CKSUM查找具有非零错误计数的设备.这表示设备经历了读取I/O错误、写入I/O错误或校验和验证错误。由于设备是镜像或RAID-Z设备的一部分,ZFS能够从错误中恢复并随后修复损坏的数据。如果这些错误持续了一段时间,ZFS可以确定设备是错误的,并将其标记为错误。然而,这些错误计数可能表示设备不可用,也可能不表示设备不可用。

关于驾驶健康:

也许是老化的驱动器,他们已经5岁了。但一天三次失败?得了吧,这足以吓到我们很多人!

现在备份恢复测试重要数据。来自不同的媒体,而不是这个数组。

更换继续退化的驱动器。当然,如果内核在syslog中报告了I/O错误。如果在保修或支持合同下,利用这一点。如果通过了保修,制造商打赌他们不会持续这么久,所以要考虑这一点。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1000026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档