人们经常谈论 ZFS 的理论优势以及它如何轻松应对(RAIDZ1/2)硬盘故障,而 Server Fault 对此有很多证明。我正在考虑使用 FreeNAS 设置一个有 3-5 个硬盘的 NAS,而且我可能每晚都会备份重要文档,所以我不能忍受超过一周的停机时间。
硬盘的物理工作原理失败?
当 zpool 中的硬盘出现故障时,ZFS 和 FreeNAS 会做什么?就像它通过 SMTP 向您发送一封电子邮件一样,提示“更换硬盘 1,完成后单击确定...”。
FreeNAS 从 RAIDZ2 中的 2 个磁盘故障中恢复需要多长时间?
假设人机交互最少,在 RAIDZ2 设置中,从最坏可容忍的硬盘故障中成功恢复的可能性有多大?
外行人能否按照 SO 质量手册或向导以图形方式进行修复?
答案1
FreeNAS 支持 SMART 监控,因此通常在驱动器出现故障之前,如果通知设置正确且监控已启用,系统管理员将收到有关损坏的不可用扇区、过热等的报告。FreeNAS 自 9.2.1.8 版本起才不是支持“热备用”。zpool 中配置的备用驱动器可以手动推送以替换发生故障的驱动器,但软件中没有任何内容可以实现该过程的自动化。如果 RAIDZ2 中同时发生 2 次故障,几乎肯定会出现无法恢复的文件错误。这是因为一个称为比特罗特。现代驱动器通常为 3TB+。为了获得比镜像空间利用率更好的效果,人们会从至少 6 个驱动器构建 RAIDZ2。现在,如果一个驱动器发生故障,并且剩余的 RAID 5(如条带)中的 vdev 容量大于 12 TB,URE 率为 10^14,则您很可能会遇到 URE。如果驱动器供应商是正确的,几乎可以肯定。这将导致至少出现如下消息:
~# zpool status -v
pool: dpool
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.
scan: resilvered 6.90T in 52h5m with 313 errors on Wed Oct 22 17:44:25 2014
config:
NAME STATE READ WRITE CKSUM
dpool DEGRADED 0 0 5.75K
raidz2-0 ONLINE 0 0 78
c0t50014EE05807CC4Ed0 ONLINE 0 0 0
c0t50014EE6AAD9F57Fd0 ONLINE 0 0 0
c0t50014EE204FC5087d0 ONLINE 0 0 0
c0t50014EE6AADA3B7Cd0 ONLINE 0 0 0
c0t50014EE655849876d0 ONLINE 0 0 0
c0t50014EE6AADA3DFDd0 ONLINE 0 0 0
c0t50014EE6AADA38FFd0 ONLINE 39 0 0
raidz2-1 ONLINE 0 0 11.4K
c0t50014EE6AADA45E4d0 ONLINE 1.69K 0 0
c0t50014EE6AADA45ECd0 ONLINE 726 0 0
c0t50014EE6AADA3944d0 ONLINE 0 0 0
c0t50014EE204FC1F46d0 ONLINE 0 0 0
c0t50014EE6002A74CEd0 ONLINE 0 0 0
c0t50014EE2AFA6C8B4d0 ONLINE 0 0 0
c0t50014EE6002F9C53d0 ONLINE 5 0 0
raidz2-2 DEGRADED 0 0 0
c0t50014EE6002F39C5d0 ONLINE 0 0 0
c0t50014EE25AFFB56Ad0 ONLINE 0 0 0
c0t50014EE6002F65E3d0 ONLINE 0 0 0
c0t50014EE6002F573Dd0 ONLINE 0 0 0
c0t50014EE6002F575Ed0 ONLINE 0 0 0
spare-5 DEGRADED 0 0 0
c0t50014EE6002F645Ed0 FAULTED 1 29 0 too many errors
c0t50014EE2AFA6FC32d0 ONLINE 0 0 0
c0t50014EE2050538DDd0 ONLINE 0 0 0
raidz2-3 ONLINE 0 0 0
c0t50014EE25A518CBCd0 ONLINE 0 0 0
c0t50014EE65584A979d0 ONLINE 0 0 0
c0t50014EE65584AC0Ed0 ONLINE 0 0 0
c0t50014EE2B066A6D2d0 ONLINE 0 0 0
c0t50014EE65584D139d0 ONLINE 0 0 0
c0t50014EE65584E5CBd0 ONLINE 0 0 0
c0t50014EE65584E120d0 ONLINE 0 0 0
raidz2-4 ONLINE 0 0 0
c0t50014EE65584EB2Cd0 ONLINE 0 0 0
c0t50014EE65584ED80d0 ONLINE 0 0 0
c0t50014EE65584EF52d0 ONLINE 0 0 0
c0t50014EE65584EFD9d0 ONLINE 0 0 1
c0t50014EE2AFA6B6D0d0 ONLINE 0 0 0
c0t5000CCA221C2A603d0 ONLINE 0 0 0
c0t50014EE655849F19d0 ONLINE 0 0 0
spares
c0t50014EE2AFA6FC32d0 INUSE currently in use
errors: Permanent errors have been detected in the following files:
重建过程称为“重新镀银”,将取决于各个驱动器的速度及其占用率。想想最高速度 25MB/s。然而,这是一个真实的例子,多次发生故障,实际速度为 5MB/s - 所以我们说的是几周 - 这些是 2TB 7200 RPM WD 驱动器。
~# zpool status
pool: dpool
state: ONLINE
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 Thu Nov 13 10:41:28 2014
338M scanned out of 48.3T at 5.72M/s, (scan is slow, no estimated time)
32.3M resilvered, 0.00% done
config:
NAME STATE READ WRITE CKSUM
dpool ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
gptid/9640be78-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0 (resilvering)
gptid/97b9d7c5-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/994daffc-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/9a7c78a3-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/9c48de9d-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/9e1ca264-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0 (resilvering)
gptid/9fafcc1e-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/a130f0df-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/a2b07b02-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/a44e4ed9-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
raidz2-1 ONLINE 0 0 0
gptid/a617b0c5-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/a785adf7-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/a8c69dd8-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0 (resilvering)
gptid/aa097d45-a3e1-11e3-844a-001b21675440 ONLINE 0 0 1 (resilvering)
gptid/ab7e0047-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/acfe5649-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0 (resilvering)
gptid/ae5be1b8-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/afd04931-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/b14ef3e7-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/b2c8232a-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
raidz2-2 ONLINE 0 0 0
gptid/b43d9260-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/b5bd6d79-a3e1-11e3-844a-001b21675440 ONLINE 0 0 1 (resilvering)
gptid/b708060f-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/b8445901-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/b9c3b4f4-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/bb53a54f-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/bccf1980-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/be50575e-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0 (resilvering)
gptid/bff97931-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
gptid/c1b93e80-a3e1-11e3-844a-001b21675440 ONLINE 0 0 0
spares
gptid/c4f52138-a3e1-11e3-844a-001b21675440 AVAIL
gptid/c6332a6f-a3e1-11e3-844a-001b21675440 AVAIL
errors: No known data errors
RAIDZ 中的数据保护并非旨在取代备份。在具有 RAID2 保护的 PB 存储中,仅在前 3 年内,从统计上讲,至少会丢失一些文件。因此,复制到第二位是强制性的。FreeNAS 支持 ZFS 发送/接收以及 rsync。如果设置了监控并注意通知,则很容易启动将备用磁盘插入 zpools。但是,当前的 FreeNAS 版本 (9.2.1.8) 不提供一种简单的方法来识别故障磁盘的插槽/机箱。您可以查看我对此主题的回答: 如何确定 FreeNAS/ZFS 设置中哪个磁盘发生故障
答案2
我可以根据个人经验回答以下问题;
您问:FreeNAS 从 RAIDZ2 中的 2 个磁盘故障中恢复需要多长时间?
我注意到:我目前正在使用“卷状态”中的“替换”命令将现有的非故障驱动器替换为另一个新的更大的驱动器。
需要扫描 4.67T 的数据。我获得了 30M/s 的重新同步传输速率。我认为这已经很不错了。更换驱动器大约需要 48 小时。由于阵列没有降级,因此我并不担心在此过程中另一个驱动器会失败。
这就是更换驱动器如此重要的原因前它们会失败,例如由于 SMART 错误或任何类型的写入或读取错误。我还同意 Dimitar 的观点,即池应该同步到另一个逻辑上独立的设备,最好每小时同步一次。
您问:外行人能否按照 SO 质量手册或向导以图形方式进行修复?
我注意到:在我看来,不是。使用 FreeNAS/ZFS 需要相当多的技术技能。
答案3
我有一个 freenaz 5 磁盘 raid-z1 池 3TB 硬盘超过 5 年了,并且丢失过单个硬盘,一些 SMART 会提醒我几次,发现硬盘咔嗒声或死机,大多数时候我的阵列都说降级了。有很多教程如何做到这一点,还有 YouTube 视频。有几个技巧,在关闭以更换降级驱动器之前,请截取降级驱动器的屏幕截图,哪个 SN# 属于哪个驱动器。在 Freenas 中设置电子邮件提醒,当降级时向您发送短信。根据我的经验,重新镀银过程大约需要 4-12 小时,请勿在阵列降级时使用。如果您需要订购驱动器,请将其打开但不要使用它。我这样说的原因是电子设备在运行了很长时间然后关闭它们并冷却下来时可能会出现问题。我通常让它运行,只关闭几分钟以更换驱动器。