题 ZFS - RAIDZ-1真的那么糟糕吗?


我有一台带有4x 2TB WD RE4-GP驱动器的NAS服务器,采用RAID10配置(4TB可用)。我的空间不足(剩下可用空间<1TB)。我有0美元用于更大/更多的驱动器/机箱。

我喜欢我读过的有关ZFS数据完整性功能的内容,它本身就足以让我从现有的XFS(软件)RAID10切换。然后我读到了ZFS对RAID5的优越实现,所以我想我甚至可以使用RAIDZ-1在讨价还价中获得2TB更多的可用空间。

但是,我继续读 更多 和 更多  帖子 说几乎从不使用RAIDZ-1。只有RAIDZ-2 +足够可靠,可以处理“真实世界”的驱动器故障。当然,就我而言,RAIDZ-2没有任何意义。在单个池(RAID10)中使用两个镜像vdev会好得多。

我是否想要将RAIDZ-1用于4x 2TB驱动器?

我应该只使用两个镜像vdev池(本质上是RAID10),并希望压缩给我足够的额外空间?

不管怎样,我打算使用压缩。我只有8GB的RAM(最大值),所以重复数据删除不是一个选项。

这将在FreeNAS服务器上(即将取代当前的Ubuntu OS),以避免ZFS-on-Linux的稳定性问题。


15
2017-10-07 15:42




不确定这是怎么回事。我正在询问有关服务器的正确文件系统配置的建议。 - Andrew Ensley
与RAID10相比,RAIDZ1or2写入速度也很差 - JamesRyan
如果您有足够的CPU来计算奇偶校验而不减速,那么对于大多数写入,RAIDZ应该比RAID10快或快。 RAIDZ将所有内容写入完整的RAID条带,没有像RAID5那样的读取 - 修改 - 写入周期。因此,您将获得更多磁盘带宽(更多数据,更少开销),并且写入速度应该比RAID10快。然而,这具有缺点 读往往最终变慢。 “每次写一个完整的条带”会导致碎片化,并且不会为您提供只读取许多小读取的磁盘子集的好处。这是一个有意识的设计决定。 - Dan Pritts
我上面所说的只是部分正确。如果您有并发的小写,例如数据库服务器,RAID10会快得多。在RAIDZ中,所有磁盘都对所有写入都有效; RAID10将它们分开。我试图解决的问题是RAIDZ消除了RAID5的性能损失和可能不安全的读 - 修改 - 写周期。 - Dan Pritts


答案:


RAIDZ-1“对于真实世界的故障不够好​​”的说法是因为当重建时间到来时,你的一个幸存磁盘上可能会出现潜在的媒体错误。相同的逻辑适用于RAID5。

在我们讨论具体细节之前,请考虑您的用例。你在存储照片,MP3和DVD翻录吗?如果是这样,您可能不关心是否永久丢失数组中的单个块。另一方面,如果它是重要数据,这可能是一场灾难。

ZFS在某种程度上缓解了这种失败。如果RAID5设备无法重建,那你几乎没有运气;复制您的(剩余)数据并从头开始重建。另一方面,使用ZFS,它将重建除坏块之外的所有块,并让管理员“清除”错误。您将丢失文件的一个文件/部分,但不会丢失整个阵列。当然,ZFS的奇偶校验意味着您将被可靠地通知您存在错误。否则,我相信有可能(尽管不太可能)多个错误会导致重建显然成功,但会给你带来不良数据。

由于ZFS是“猖獗的分层违规,“它也知道哪些区域没有数据,并且可以在重建中跳过它们。所以如果你的数组是半空的,那么重建错误的可能性只有一半。

通过定期执行,可以降低任何RAID级别上这些类型的重建错误的可能性 “zpool scrubs” 要么 “mdadm检查”你的阵列。其他RAID也有类似的命令/进程;例如,LSI / dell PERC raid卡称之为“巡逻阅读”。这些可以读取所有内容,这可能有助于磁盘驱动器找到失败的扇区,并在它们成为永久性之前重新分配它们。如果它们是永久性的,则RAID系统(ZFS / md / raid卡/无论如何)可以从奇偶校验重建数据。

即使您使用RAIDZ2或RAID6,常规磨砂也很重要。

最后一点 - 任何类型的RAID都不能替代备份 - 它不会保护您免受意外删除,勒索软件等的影响。虽然常规ZFS快照可以作为备份策略的一部分。


17
2017-12-08 22:57



谢谢你的解释。这对我到目前为止所学到的关于ZFS的知识非常有意义。我实际上已经用FreeNAS重新加载了我的服务器并使用了RAIDZ-1配置。我每月都要擦洗一次。你认为这通常是否足够,或者你会建议更频繁的磨砂?猖獗的分层违规是我最喜欢的ZFS功能:-) - Andrew Ensley
我有一个raidz1运行在7个不同年龄的消费者驱动器上。我每两周擦洗一次。它经常发现错误并纠正它。我最近丢失了一个驱动器并丢失了一个潜在错误的文件。幸运的是,这是一个我可以轻松替换的媒体文件。对于我的重要数据,我当然还有备份。 - Dan Pritts
我将指出 - “家庭”驱动器在与“企业”级别进行平方时,具有2个数量级的不可恢复的误码率。我仍然很高兴RAID-5的复合故障率在适当的FC / SAS驱动器上是可以接受的。虽然不会在SATA上做到这一点。 - Sobrique
比较两个希捷硬盘只有一个数量级:希捷ST2000DM001:10E14中的1个。 ST2000NM0033:10E15中的1。但实际上,很难确定驱动机制是否有所不同。我听说可靠的消息来源给出了相反的答案。 - Dan Pritts
我在我的系统上发现了一根坏的SATA电缆 - 因为它被更换了,我的擦洗器发现零错误。 - Dan Pritts


这里有一点误解。 你所看到的许多建议都是基于一种假设 可以 不是真的。具体来说,驱动器的不可恢复的误码率。

便宜的“家庭用户”磁盘每10 ^ 14有1个不可恢复的错误率。

http://www.seagate.com/gb/en/internal-hard-drives/desktop-hard-drives/desktop-hdd/#specs

这是一个你正在谈论RAID重建期间不可恢复的错误的可能性的水平,所以你不应该这样做。 (快速而肮脏的计算表明,5x 2TB磁盘RAID-5设置实际上有大约60%的可能性)

不过这个  适用于更昂贵的驱动器: http://www.seagate.com/gb/en/internal-hard-drives/enterprise-hard-drives/hdd/enterprise-performance-15k-hdd/#specs

每10 ^ 16 1个更好100倍 - 意味着5x 2TB重建失败的概率<1%。 (可能更少,因为对于企业用途,600GB主轴通常更有用)。

所以个人 - 我认为RAI​​D-5和RAID-4仍然非常有用,因为RAID-0仍然相当普遍。不要忘记 - RAID-6的问题是它的写入惩罚很大。您可以通过大量缓存来部分缓解这种情况,但是您仍然会遇到一些痛苦,尤其是当您首先使用慢速驱动器时。

更重要的是 - 永远不要相信您的RAID能够为您提供全面的弹性。与驱动器故障相比,您将更频繁地丢失数据到“oops”,因此如果您关心数据,则需要一个不错的备份策略。


3
2017-12-23 16:49



我正在使用4个WD RE4-GP驱动器,其中有10个不可恢复的读取错误。 - Andrew Ensley


嗯,这里有一些不好的信息。对于4个磁盘,XFS确实没有问题。出于性能和可扩展性的原因,我倾向于避免使用ZFS RAIDZ(低读/写,无法扩展)。如果可以,请使用ZFS镜像。然而,有4个磁盘并且无处可放置您的操作系统,您将要么失去大量容量,要么必须经历奇怪的分区游戏以使您的操作系统和数据适合相同的四个磁盘。

我可能不会为您的用例推荐ZFS。这里的XFS没有任何问题。


2
2017-10-07 16:03



忘记提到操作系统位于一个单独的驱动器上。抱歉。我想从XFS中获得的XFS RAID10没有的是校验和数据验证,可以检测(并透明地修复)静默数据错误(驱动器上有点翻转,而HDD根本不知道)。我不相信XFS能够做到这一点。 - Andrew Ensley
对于四个磁盘,如果您有可能需要扩展或性能很重要,请使用ZFS镜像。我也避免使用FreeNAS,只在Linux上使用直接ZFS。 - ewwhite
我自己就是一个终端家伙,所以我绝对不会转换GUI。大多数情况下,我只需要一个稳定的文件系统(尽可能多)保证存储在其上的文件的完整性。而且我希望在这个过程中获得一些空间。我看到ZoL报告了很多问题,其中许多与Ubuntu OS升级有关。 groups.google.com/a/zfsonlinux.org/forum/#!searchin/zfs-discuss/... 不要试图成为一种痛苦。只是解释为什么我认为我的想法。我当然愿意接受纠正。 - Andrew Ensley
没关系。我已经看到了FreeNAS(不是FreeBSD)的更多问题,所以它有两个方面。那里有信息。我不使用Ubuntu, 但是我 做 知道ZFS。我在Linux上的ZFS通常使用RHEL或CentOS。这里的 示例工作流程。 - ewwhite
我在Linux和Centos 6上使用ZFS。我不允许自动更新内核或ZFS。我有ZFS / SCL borking的问题,但我从来没有数据丢失。对于记录,btw,FreeBSD有一组类似的solaris兼容性例程,但它们和ZFS完全集成到发行版中,这使得使所有内容协同工作变得更加简单。如果我只想要ZFS和文件服务,我可能会运行FreeBSD。事实上,这就是我过去常常做的事情,但是我将这个盒子用于其他随机的东西,这使得ZoL更具吸引力。 - Dan Pritts