FreeNAS 混乱:不确定发生了什么。raidz1“降级”,磁盘“故障”

FreeNAS 混乱:不确定发生了什么。raidz1“降级”,磁盘“故障”

抱歉说了这么多,但我实在是糊涂了。

我在一个盒子上使用 FreeNAS-8.0.4-RELEASE-p2-x64 (11367),其中 5x3TB SATA 磁盘配置为 raidz 卷。

几天前,控制台向我发出了此警报:

CRITICAL: The volume raid-5x3 (ZFS) status is DEGRADED

zpool status给了:

  pool: raid-5x3
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
  see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: resilver completed after 3h25m with 7607009 errors on Sun Aug 12 06:26:44 2012
config:

    NAME                      STATE    READ WRITE CKSUM
    raid-5x3                  DEGRADED    0    0 7.29M
      raidz1                  DEGRADED    0    0 14.7M
        ada0p2                ONLINE      0    0    0
        10739480653363274060  FAULTED      0    0    0  was /dev/ada1p2
        ada2p2                ONLINE      0    0    0
        ada3p2                ONLINE      0    0    3  254M resilvered
        ada1p2                ONLINE      0    0    0

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

我做了zpool status -v并得到了:

Permanent errors have been detected in the following files:

它列出了 2,660 个文件(总共 50,000 个左右)

还有类似的东西:

raid-5x3/alpha:<0x0>
raid-5x3/alpha:<0xf5ec>
raid-5x3/alpha:<0xf5ea>

我们关闭了服务器,除了原来的五个驱动器外,还安装了一个新的驱动器。

进入控制台view disks,它只是说永远“加载”*无法进入“替换”选项!

然后我们得到:

zpool status -v
  pool: raid-5x3
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
  see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: none requested
config:

        NAME                      STATE    READ WRITE CKSUM
        raid-5x3                  DEGRADED    0    0    0
          raidz1                  DEGRADED    0    0    0
            ada0p2                ONLINE      0    0    0
            10739480653363274060  UNAVAIL      0    0    0  was /dev/ada1p2
            ada2p2                ONLINE      0    0    0
            ada3p2                ONLINE      0    0    0
            ada1p2                ONLINE      0    0    0

errors: Permanent errors have been detected in the following files:

        raid-5x3/alpha:<0x0>
        /mnt/raid-5x3/alpha/staff/Sound FX jw/Sound FX - scary horror/11 DR-EerieAct3-Waterphone..aif
        /mnt/raid-5x3/alpha/staff/Wheelhouse Shoots/ROCKY_THE_MUSICAL/ SHOOTS/WESTPORT/Cannon-CARD-B/CONTENTS/CLIPS001/AA0876/AA087601.SIF

...然后是 2,860 个文件和“raid-5x3/alpha:<....>”条目...

camcontrol devlist

<ST3000DM001-9YN166 CC4C>          at scbus4 target 0 lun 0 (ada0,pass0)
<WDC WD30EZRX-00MMMB0 80.00A80>    at scbus4 target 1 lun 0 (aprobe1,pass6,ada4)
<WDC WD30EZRX-00MMMB0 80.00A80>    at scbus5 target 0 lun 0 (ada1,pass1)
<ST3000DM001-9YN166 CC4C>          at scbus5 target 1 lun 0 (ada2,pass2)
<ASUS DRW-24B1ST  a 1.04>        at scbus6 target 0 lun 0 (cd0,pass3)
<Hitachi HDS5C3030ALA630 MEAOA580>  at scbus7 target 0 lun 0 (ada3,pass4)
< USB Flash Memory 1.00>          at scbus8 target 0 lun 0 (da0,pass5)

gpart show

=>    63  7831467  da0  MBR  (3.7G)
      63  1930257    1  freebsd  [active]  (943M)
  1930320      63      - free -  (32K)
  1930383  1930257    2  freebsd  (943M)
  3860640    3024    3  freebsd  (1.5M)
  3863664    41328    4  freebsd  (20M)
  3904992  3926538      - free -  (1.9G)

=>      0  1930257  da0s1  BSD  (943M)
        0      16        - free -  (8.0K)
      16  1930241      1  !0  (943M)

=>        34  5860533101  ada0  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada1  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada2  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada3  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada4  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

glabel status

                                      Name  Status  Components
                            ufs/FreeNASs3    N/A  da0s3
                            ufs/FreeNASs4    N/A  da0s4
                            ufs/FreeNASs1a    N/A  da0s1a
gptid/446dd91d-8f15-11e1-a14c-f46d049aaeca    N/A  ada4p1
gptid/447999cb-8f15-11e1-a14c-f46d049aaeca    N/A  ada4p2

好像新的驱动器没有正确连接?

重新连接并重新启动。

现在控制台显示绿灯警报。

但是当我进入“查看所有卷”时,它只是显示“正在加载……”

然后:

glabel status

          Name  Status  Components
 ufs/FreeNASs3    N/A  da0s3
 ufs/FreeNASs4    N/A  da0s4
ufs/FreeNASs1a    N/A  da0s1a

camcontrol devlist:代码:在 scbus0 目标 0 lun 0 (ada0,pass0) 在 scbus4 目标 0 lun 0 (ada1,pass1) 在 scbus4 目标 1 lun 0 (ada2,pass2) 在 scbus5 目标 0 lun 0 (ada3,pass3) 在 scbus5 目标 1 lun 0 (ada4,pass4) 在 scbus6 目标 0 lun 0 (cd0,pass5) 在 scbus7 目标 0 lun 0 (ada5,pass6) < USB 闪存 1.00> 在 scbus8 目标 0 lun 0 (da0,pass7)

gpart show

=>    63  7831467  da0  MBR  (3.7G)
      63  1930257    1  freebsd  [active]  (943M)
  1930320      63      - free -  (32K)
  1930383  1930257    2  freebsd  (943M)
  3860640    3024    3  freebsd  (1.5M)
  3863664    41328    4  freebsd  (20M)
  3904992  3926538      - free -  (1.9G)

=>      0  1930257  da0s1  BSD  (943M)
        0      16        - free -  (8.0K)
      16  1930241      1  !0  (943M)

=>        34  5860533101  ada1  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada2  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada3  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada4  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

=>        34  5860533101  ada5  GPT  (2.7T)
          34          94        - free -  (47K)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  5856338703    2  freebsd-zfs  (2.7T)

zpool status

  pool: raid-5x3
 state: ONLINE
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
  see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: none requested
config:

        NAME        STATE    READ WRITE CKSUM
        raid-5x3    ONLINE      0    0    0
          raidz1    ONLINE      0    0    0
            ada1p2  ONLINE      0    0    0
            ada2p2  ONLINE      0    0    2
            ada4p2  ONLINE      0    0    0
            ada5p2  ONLINE      0    0    0
            ada3p2  ONLINE      0    0    0

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

此时,FreeNAS 论坛上有人说,“你完蛋了,有 2 个磁盘出现故障,数据就没了。”

这是真的?

我点击了“清理”按钮...zpool 状态显示“正在重新镀银...还剩 900 小时”......相当于一个月......并且一直持续到 30,000 小时......

减少到:今天,我们重新检查了所有驱动器上的所有连接。

然后它再次开始重新镀银,但速度要快得多。

我随机检查了几个文件(之前报告为已损坏),现在“似乎”没有问题。(这意味着我可以复制和播放它们——我们的大多数数据都是视频文件。)

我想要做的是将我们没有备份并且没有损坏的所有内容复制到另一台机器,然后将这台机器升级到 RAIDZ2。

我想可能是因为 2 个驱动器脱落了。我认为我们的热插拔托架质量很差。

但是,话又说回来,它们确实看起来有联系,只是有缺陷……我不知道。

重新银化完成,耗时 3.5 小时。

现在 zpool status 显示:

  pool: raid-5x3
 state: ONLINE
 scrub: resilver completed after 3h31m with 0 errors on Fri Aug 17 21:46:12 2012
config:

        NAME        STATE    READ WRITE CKSUM
        raid-5x3    ONLINE      0    0    0
          raidz1    ONLINE      0    0    0
            ada1p2  ONLINE      0    0    0
            ada2p2  ONLINE      0    0    0  236G resilvered
            ada4p2  ONLINE      0    0    0
            ada5p2  ONLINE      0    0    0  252G resilvered
            ada3p2  ONLINE      0    0    0

errors: No known data errors

这是否意味着数据已恢复?“没有已知错误”听起来很有希望!

我现在已开始清理。(还有 8 小时。)

我们没有所有数据的备份...所以我们需要找出哪些文件已损坏,哪些文件可用。

驱动器发生故障了吗?如果发生故障,是哪一个?还是驱动器松动了?

我需要更换一个吗?两个?

我们的数据安全吗?如果有,哪些文件安全?

答案1

我还没有使用过足够的 zfs 来判断数据完整性。zpool list 给出 raidz1-0 ONLINE 0 0 0 c8t1d0p0 ONLINE 0 0 0 c8t2d0p0 ONLINE 0 0 0 c8t3d0p0 ONLINE 0 0 0

smartctl -d sat,12 -a /dev/rdsk/c8t3d0p0 列出了特定的属性。-d sat -d ata -d scsi 可能会使其工作,具体取决于您拥有的驱动器类型。查看原始读取错误率、重定位扇区数、寻道错误率、硬件 ecc 和待处理的扇区重定位。-t short 或 -t long 而不是 -a 将启动测试。长测试可能需要一到几个小时,具体取决于驱动器。读取 seak 和硬件错误不一定是失败。但是,如果它们一直在列表之间跳转,则它们可能是一个很好的指标。此外,一些驱动器制造商可能要求您使用他们的工具来对驱动器进行 rma'd。

如果我处于你的位置,并且不确定驱动器是否正常,我会更换驱动器,然后通过与制造商合作或对其进行 rma 验证其是否正常。我会将额外的驱动器作为热备用驱动器,这样如果再次发生这种情况,你就有另一个驱动器准备好并等待。z2 也不错,但我仍然会保留一个备用驱动器。以现在驱动器的大小,它们确实需要很长时间才能重建,并且可能会出现第二个错误。

至于损坏的文件,如果您仍然拥有某个“损坏”文件的原始文件,请对其进行 md5 计算,然后查看损坏文件的 md5 是否匹配。这将告诉您是否已损坏位。如果没有,则文件可能存在不可见的损坏。其损坏程度是否足以成为问题将取决于您。

答案2

当我在更换故障驱动器时意外移除了错误的驱动器时,也发生了同样的事情。当我检查阵列时,它显示整个 vdev 都发生故障,并且两个磁盘出现故障。一旦我重新连接未发生故障的磁盘并更换实际发生故障的磁盘,池就会完全恢复同步,并且对最初列为损坏/丢失/损坏的文件没有明显影响。

据我了解,当磁盘被短暂地推松时,它会被标记为故障,然后由于一个磁盘实际上已经发生故障,整个阵列也会被标记为故障。然后,一旦重新连接,它就会被扫描并显示为现有池的一部分,并与其余部分重新同步。由于 3/4 个磁盘足以容纳可用数据,只要数据没有发生太多变化,一旦更换故障磁盘,一切都可以恢复。

校验和错误不是硬错误——它们是可恢复的错误。当发生校验和错误时,ZFS 会立即在 RAIDZ 中更正错误,这是 ZFS 成为如此出色的文件系统的主要原因之一。也就是说,看到校验和错误表明存在问题。密切关注磁盘,尽量准备一个备用磁盘以防出现故障。如果您再次看到校验和错误,请更换发生错误的任何驱动器/电缆。可能是背板,可能是连接器,也可能是其他原因,请检查所有内容。如果您担心整个托架,请更换它。

没有已知错误仅指池的当前状态,而不是其完整历史记录。由于磁盘已更换且阵列已重新镀银,因此统计信息似乎也已清除;校验和错误已清零。之前有两个错误,这些错误将一直存在,直到清除为止。

ZFS 报告是可信的,因此任何未列在损坏文件列表中的文件都应该没问题。正如另一个答案中提到的,如果您知道任何文件的良好副本,那么进行一些抽样检查哈希值不会有什么坏处。进行完整备份也不错。;)

相关内容