FreeNAS的困惑:不知道发生了什么事。 raidz1“降级”,磁盘“FAULTED”

对不起,长时间的叙述,但我彻底困惑。

我在configuration为raidz卷的5x3TB SATA磁盘上使用FreeNAS-8.0.4-RELEASE-p2-x64(11367)。

几天前,控制台给了我这个警报:

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:

它列出了2660个文件(5万个左右)

加上类似的东西:

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

我们closures了服务器,除了已经在那里的五台服务器之外,还安装了一个新的驱动器。

去控制和view disks ,它只是说“加载”永远*无法进入“replace”选项!

然后我们得到:

 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-5×3 / 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目标0 lun 0(ada0,pass0)在scbus4目标0 lun 0(ada1,pass1)在scbus4目标1 lun 0(ada2,pass2)在scbus5目标0 lun 0(ada3,pass3)at 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个磁盘失败,再见数据。

这是真的?

我点击了'scrub'button… zpool状态显示“正在进行中…… 900小时…”,这就像一个月…,并持续高达30,000小时…

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

然后又开始重新弹性,但速度更快。

几个文件 – 之前报告为腐败 – 我随机检查,他们现在“似乎”是好的。 (这意味着我能够复制它们并播放它们 – 我们大部分的数据都是video文件。)

我想要做的是将所有没有备份的东西复制到另一台机器上,然后将其升级到RAIDZ2。

我想也许发生了什么事是2驱动器被驱逐。 我认为我们拥有的热潮是质量差。

但是,再次,他们出现了连接,只是故障…我不知道。

在3.5小时内完成重组。

现在zpool状态说:

  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小时去)

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

驱动器是否失败? 如果是这样,哪一个? 还是它只是松散?

我需要更换吗? 二?

我们的数据是否安全? 如果是这样,哪些文件?

我没有足够的数据完整性说zfs。 zpool list给raidz1-0在线0 0 0 c8t1d0p0在线0 0 0 c8t2d0p0在线0 0 0 c8t3d0p0在线0 0 0

smartctl -d sat,12 -a / dev / rdsk / c8t3d0p0列出了特定的属性。 -d sat -d ata -d scsi可能会根据你有什么types的驱动器来工作。 查看原始读取错误率,重定位扇区计数,寻找错误率,硬件ecc以及待定扇区重定位。 -t长而不是-a将开始testing。 长时间的testing可能需要一个或几个小时,具体取决于驱动器。 读取的seak和硬件错误不一定是一个失败。 如果他们一直在列表之间跳跃,他们可能是一个很好的指标。 另外一些驱动器制造商可能会要求您使用他们的工具来获得驱动器rma'd。

如果我在你的位置上,并不确定驱动器,我会得到一个替代品,通过与制造商合作或者通过rmavalidation其良好之后。 我会把额外的驱动器作为热备用,这样如果它再次发生,你有另一个驱动器准备好和等待。 z2也不是一个坏主意,但我仍然保持备用。 与驱动器的大小,现在他们需要很长的时间来重build,并有可能出现第二个错误。

至于损坏的文件,如果你仍然有一个原始的一些其他“损坏”的文件做一个MD5的计算,然后看看损坏的文件的MD5匹配。 这会告诉你,如果位被损坏。 如果不是,那么文件可能会有不可见的损坏。 是否足够的损害是一个问题将取决于你。

更换失败的驱动器时,我不小心卸下了不正确的驱动器,同样的事情发生在我身上。 当我检查数组时,它说整个vdev失败了两个磁盘故障。 一旦我重新连接了没有发生故障的磁盘并更换了实际的故障磁盘,池就完全自我复原,对最初列为损坏/丢失/损坏的文件没有明显的影响。

据我了解,当磁盘暂时松动被标记为失败,然后由于一个磁盘实际上失败,整个arrays也被标记为失败。 然后,只要重新连接,它就会被扫描,并显示为现有游泳池的一部分,并与其余部分重新组合。 由于3/4个磁盘足够有可用的数据,只要数据没有变化太多,一旦更换故障磁盘,一切都可以恢复。

校验和错误不是很难的错误 – 它们是可恢复的错误。 当发生校验和错误时,ZFS立即在RAIDZ中纠正错误,这是ZFS是如此优秀的文件系统的主要原因之一。 也就是说,看到校验和错误是一个问题的表示。 密切关注磁盘,尽量备用,以防发生故障。 如果您再次看到校验和错误,请更换正在发生的驱动器/电缆。 它可能是背板,它可能是连接器,它可能是什么,检查一切。 如果你担心整个海湾,请更换它。

没有已知的错误只是指池的当前状态,而不是完整的历史logging。 由于磁盘被replace,并且arrays重新组装,统计数据看起来也被清除了; 校验和错误被清零。 之前有两个错误,这些错误将保持到清除。

ZFS报告是可信的,所以没有在损坏的文件列表中列出的文件应该没问题。 正如在另一个答案中提到的,如果你已经知道任何文件的好副本,做一些抽查哈希不会伤害。 获得完整备份也不是一个坏主意。 ;)