ZFS类别中的文章

  1. ZFS RAIDZ扩展很棒,但有一个小警告

    2021年6月22日星期二

    简介

    我最受欢迎的博客文章之一是这篇文章欧宝体育直播官网关于“为您的家庭NAS使用ZFS的隐藏成本”。总结本文的主要论点:

    扩展基于zfs的存储可能相对昂贵/低效。

    例如,如果基于单个3盘RAIDZ vdev(相当于RAID5)运行ZFS池2),扩容池的唯一方法是增加一个3盘的RAIDZ vdev1

    您不能仅仅在现有的3盘RAIDZ vdev中添加一个磁盘来创建4盘RAIDZ vdev,因为vdev不能扩展。

    这种限制的影响是,你必须预先购买所有的存储空间,即使你在未来几年都不需要这些空间。

    否则,通过扩展额外的vdev,您将失去可能不是真正想要/需要的奇偶校验容量,这也限制了NAS的最大可用容量。

    RAIDZ vdev扩展

    幸运的是,ZFS的这一限制正在得到解决!

    ZFS创始人马修·阿伦斯创建了一个把请求大约在2021年6月11日,详细介绍了一个新的ZFS功能,将允许RAIDZ vdev扩展。

    最后,ZFS用户将能够通过一次只添加一个驱动器来扩展他们的存储。这个功能可以扩展存储空间,这对预算紧张的家庭用户来说尤其有吸引力3.

    吉姆·索尔特写过篇好文章欧宝体育直播官网在Ars Technica上讨论这个。

    这里仍有一个警告

    现有数据将重新分配重新平衡所有驱动器,包括新添加的驱动器。但是,已经存储在vdev上的数据将不会被删除restripedvdev扩容完成后。这意味着这些数据存储在旧的,低效率的parity-to-data比率。

    我认为Matthew Ahrends用他自己的话解释得最好:

    在扩展完成后,旧块仍然保持其旧的数据对奇偶比(例如5宽RAIDZ2,有3个数据对2个奇偶比),但分布在更大的磁盘集中。新的块将以新的数据与奇偶比写入(例如,5宽的RAIDZ2已扩展到6宽,具有4个数据与2个奇偶比)。但是,RAIDZ vdev的“假设奇偶比”没有改变,因此根据zfs list、df、ls -s和类似工具,对于新写入的块,报告的空间可能比预期的要小一些。

    因此,如果您将一个新驱动器添加到RAIDZ vdev中,您将注意到在扩展后,您将拥有可用容量比理论上预期的要大。

    然而,更重要的是要理解这种影响积累.这对家庭用户尤其重要。

    我认为从少量磁盘开始并随用随扩展的整个概念非常适合家庭用户。但这也意味着每次将磁盘添加到vdev时,现有数据仍然使用旧的数据对奇偶校验率存储。

    想象一下,我们有一个10驱动器的底盘,我们开始与4驱动器RAIDZ2。

    如果我们继续增加驱动器5按照这个例子,直到机箱满了10个驱动器,大约1.35个驱动器的容量“损失”到奇偶校验开销/效率损失欧宝体育直播官网4

    我认为这是相当大的开销或容量损失。

    这个开销是如何计算的?如果我们只购买10个驱动器并创建一个10个驱动器的RAIDZ2 vdev,数据到奇偶校验的开销是20%,这意味着vdev总原始容量的20%用于存储奇偶校验。这是最有效的情况。

    当我们开始使用四个驱动器的RAIDZ2 vdev时,数据到奇偶校验的开销是50%。这与“理想的”10个驱动器的配置相比,节省了30%的开销。

    随着我们不断添加驱动器,奇偶校验的相对开销不断下降,因此我们最终得到了具有不同数据与奇偶校验比率的“多个数据集”,这比10个驱动器的最终阶段效率要低。

    我创建了一个谷歌表来粗略估计每个阶段的开销,但我的数学完全错了。幸运的是,约里克重写了表格可以在这里找到.谢谢约里克!此外,truena的用户DayBlur也分享了这一信息额外的见解如果你对计算感兴趣的话。

    谷歌表允许您使用各种变量来估计给定场景的容量损失。请注意,由于使用了许多需要填充数据的驱动器而可能产生的任何损失(如Ars Technica文章中所讨论的那样)不属于计算的一部分。

    有点不幸的是,特别是在家庭用户希望从小规模开始并随需扩展的场景中,这种开销表现得如此之多。但也有好消息!

    失去的能力可以恢复!

    开销或“损失容量”可能是恢复通过重写扩展vdev后的现有数据,因为数据将使用更大的vdev中更有效的奇对数据比写入。

    重写所有数据可能需要相当长的时间,您可以选择推迟这一步,直到vdev扩展了几次,因此奇对数据比现在“足够好”,可以通过重写数据获得显著的存储收益。

    因为开销损失的容量可以完全恢复,我认为这个警告是相对次要的,特别是与以前的情况相比,我们必须用整个vdev扩展池,并且没有办法恢复任何开销。

    目前还没有内置机制来触发这种数据重写作为原生ZFS工具的一部分。这将是一个手动过程,直到有人可以创建一个脚本来自动化这个过程。根据Matthew Ahrens的说法,重条带化数据作为vdev扩展过程的一部分将是一项努力规模相近RAIDZ扩展本身。

    评价

    我认为怎么说都不过分太棒了RAIDZ vdev扩展特性是,特别是对于那些希望从小规模开始并随着时间增长存储空间的家庭用户。

    尽管扩展过程可能会积累相当多的开销,但这些开销可以通过重写现有数据来恢复,这对大多数人来说可能不是问题。

    尽管ZFS有很多很棒的特性和功能,但我认为相当多的家庭用户还是选择了其他存储解决方案,因为它的扩展成本/开销相对较高。现在这个障碍将被克服,我认为ZFS将更适合家庭用户DIY NAS人群。

    发布时间

    根据吉姆·索尔特(Jim Salter)在Ars Technica上的文章,这项功能可能会在2022年8月推出,所以我们需要一些耐心。即便如此,您可能已经决定基于ZFS构建新的DIY NAS:当您可能需要扩展存储时,该特性可能已经可用了!

    更新一些——在我看来——糟糕的建议

    播客2.5管理员(我喜欢听)讨论RAIDZ扩展的话题一集45

    有两句话我想提一下,因为我不同意。

    不要重写数据?

    正如在他的Ars Technica文章中,Jim Salter一直主张不要在vdev扩展后重写数据,但我个人不同意这个建议。我希望我已经演示了,如果您继续添加驱动器,奇偶校验开销对于大多数家庭用户来说是足够大的,因此值得在添加几个驱动器后重写数据。

    就用镜子吧!

    我也不同意的建议用镜子,尤其适合家庭用户6.我个人认为这是一个糟糕的建议,因为家庭用户和企业环境一样有其他的需求和愿望。

    如果“只使用镜像”仍然是建议,为什么Matthew Ahrends首先建立整个RAIDZ vdev扩展功能?我认为RAIDZ vdev扩展对家庭用户非常有益。

    也许Jim和我对于家庭用户想要或需要DIY NAS存储解决方案有非常不同的想法。欧宝体育直播官网我认为家庭用户想要的是:

    在可接受的冗余下,以尽可能少的钱获得尽可能多的存储空间。

    此外,我认为家庭用户通常使用较大的文件(至少几兆字节)。如果它们有时使用更小的文件,它们可以接受由于单个RAIDZ vdev较低的随机I/O性能而导致的一些性能损失7

    坦率地说,对我来说,“只使用镜像”的建议被用来“淡化”ZFS的一个重大限制8.吉姆是Ars Technica网站上的一位多产作家,拥有大量读者,所以他的建议很重要。所以这就是为什么我认为他坚持“只使用镜子”很可悲,而这显然不符合大多数家庭用户的最佳利益。

    然而,这只是我的观点,你自己决定什么是最好的。


    1. 另一种方法是将现有的驱动器逐个替换为较大的驱动器。只有在你更换了所有的驱动器后,你才能获得额外的容量,所以这种方法有一个类似的缺点,只是扩大额外的vdev:你必须一次购买多个驱动器。此外,我认为这种方法是相当耗时和繁琐的,尽管人们确实使用它来扩展容量。公平地说:您确实可以添加4+磁盘vdev,具有更高RAIDZ级别的vdev或镜像,但在这种情况下,这些都没有意义。

    2. 只是为了说明冗余的程度,即在丢失多少磁盘的情况下仍然可以正常工作。

    3. 我个人认为它甚至对中小企业主也很好。只有较大的企业想要继续增加由多个驱动器组成的相对较大的vdev,因为如果他们每次只扩展一个驱动器,他们可能不得不非常频繁地扩展容量,这可能是不现实的。

    4. 如果您只在池几乎满时才升级—不建议!—开销增加到1.69个驱动器。

    5. 从4个驱动器到5个驱动器。然后是五到六次,以此类推。

    6. 如果随机I/O性能很重要,那么使用基于SSD的存储可能是明智的。

    7. 当它进入生产环境时,显然由ZFS vdev扩展来解决。

    标记为: 存储
  2. 为什么我使用ZFS作为我的NAS文件系统

    2015年1月29日星期四

    2011年2月,我发表了一篇关于我的动机的文章欧宝体育直播官网我为什么这么做使用ZFS作为我的文件系统18tb nas

    你必须明白这一点当时我相信这篇文章中的论点是相关的,但从那以后发生了很多变化,我确实认为这篇文章已经不相关了。

    我对ZFS的立场是在家庭NAS构建

    如果您正在构建自己的NAS,我真的建议您认真考虑ZFS。如果您关心数据完整性,那么它可能是您可以使用的最好的文件系统。欧宝体育直播官网

    ZFS可能只适用于非windows操作系统,但有相当多易于使用的NAS发行版可用,可以将您的硬件变成功能齐全的家庭NAS盒,可以通过web浏览器进行管理。举几个例子:

    我还想补充一点:我不认为它是错误的或者特别危险,如果你-作为一个家庭NAS建设者-将决定使用ZFS,并选择更适合您需求的“遗留”解决方案。我认为ZFS的支持者经常夸大ZFS减轻的风险,可能是为了促进ZFS。我认为这些风险是相关的,但这完全取决于你的情况。所以你决定了。

    2016年5月:我还写了一个单独的文章关于我对使用ZFS DIY家欧宝体育直播官网庭NAS构建的感觉。

    关于Arstechnica的文章欧宝体育直播官网FreeNAS vs NAS4free

    如果您非常熟悉FreeBSD或Linux,我强烈建议您这样做ZFS指南文章从Arstechnica。它很好地介绍了ZFS,并解释了像“池”和“vdev”这样的术语。

    如果您计划将ZFS用于您自己的家庭NAS,我建议您阅读以下文章:

    我当时不使用ZFS的历史原因

    当我在2009年开始使用我的18tb NAS时,还没有用于Linux的ZFS这样的东西。ZFS仅在Open Solaris的稳定版本中可用。欧宝体育链接我们都知道Open Solaris发生了什么欧宝体育链接(它的)

    所以你可能会问:“为什么不在FreeBSD上使用ZFS呢?”问得好,但时机不对:

    ZFS的FreeBSD实现直到2010年1月才变得稳定,这是在我构建NAS(2009年夏天)6个月之后。所以FreeBSD在当时还不是一个选择。

    反对ZFS的另一个反对意见是,您不能通过添加单个驱动器和随着数据集的增长而增加阵列来扩展存储。

    ZFS池由一个或多个vdev组成。VDEV是一个传统的raid阵列。扩容存储空间的方式是ZFS池,而不是VDEVS池。不能对VDEV本身进行扩容。只能将VDEVS添加到资源池中。

    因此,ZFS要么迫使您预先投资于您不需要的存储,要么迫使您稍后投资,因为您可能会在平价上浪费相当多的额外驱动器。例如,如果您从一个6个驱动器的RAID6 (RAIDZ)配置开始,您可能会扩展到另外6个驱动器。因此池在12个总驱动器上有4个奇偶校验驱动器(损失33%)。提前投资10个驱动器而不是6个驱动器会更有效,因为你只损失了10个驱动器中的2个(损失20%)。

    所以在那个时候,我发现坚持我所知道的是合理的:Linux和MDADM。

    但我的new 71 TiB NAS是基于ZFS的。

    我写了一篇文章欧宝体育直播官网关于我担心ZFS可能会在FreeBSD作为唯一支持的情况下消亡,但幸运的是,事实证明我错得非常非常严重。

    ZFS现在在FreeBSD和Linux.尽管有一些许可问题阻碍了ZFS集成到Linux内核本身,但它仍然可以作为常规内核模块使用,并且工作得非常完美。

    甚至还有一个开源ZFS联盟它将支持ZFS的不同操作系统的所有开发人员聚集在一起。

    ZFS将在这里停留很长一段时间。

    标记为: ZFS
  3. Linux上的ZFS事件守护进程

    2014年8月29日星期五

    如果我的zpool出了问题,我希望通过电子邮件得到通知。在使用MDADM的Linux上,MDADM守护进程会处理这个问题。

    随着ZoL 0.6.3,一个全新的“ZFS事件守护进程”或ZED已经介绍过。

    我找不到太多关于它的信息,所以把这篇文章看作是我对这项新服务的笔记。欧宝体育直播官网

    如果您希望接收警报,只有一个要求:必须在您的机器上设置MTA,这超出了本文的范围。

    安装ZoL时,会自动安装ZED守护进程,并在引导时启动。

    ZED的配置文件可以在这里找到:/etc/zfs/zed.d/zed.rc.只需取消“ZED_EMAIL=”部分的评论,并填写您的电子邮件地址。不要忘记重新启动服务。

    ZED似乎与内核中保存的zpool事件日志挂钩,并实时监控这些事件。

    你可以自己看到这些事件:

    zfs root@debian: / etc / / zed。d # zpool类活动时间2014年8月29日16:53:01.872269662 resource.fs.zfs.statechange 2014年8月29日16:53:01.873291940 resource.fs.zfs.statechange 2014年8月29日16:53:01.962528911 ereport.fs.zfs.config.sync 2014年8月29日16:58:40.662619739 ereport.fs.zfs.scrub.start 2014年8月29日16:58:40.670865689 ereport.fs.zfs.checksum 2014年8月29日16:58:40.671888655 ereport.fs.zfs.checksum 2014年8月29日16:58:40.671905612 ereport.fs.zfs.checksum……

    您可以看到启动了擦除,并且发现了不正确的校验和。几秒钟后,我收到一封电子邮件:

    第一封邮件:

    A ZFS checksum error has been detected: eid: 5 host: debian time: 2014-08-29 16:58:40+0200 pool: storage vdev: disk:/dev/sdc1 .日志含义

    此后不久:

    A ZFS pool has finished scrubbing: eid: 908 host: debian time: 2014-08-29 16:58:51+0200 pool: storage state: ONLINE status:一个或多个设备发生不可恢复错误。有人试图纠正错误。应用程序不受影响。操作:确定设备是否需要更换,并使用“zpool clear”清除错误或使用“zpool replace”替换设备。参见:http://zfsonlinux.org/msg/ZFS-8000-9P scan: scrub restored 100M in 0h0m with 0 errors on Fri Aug 29 16:58:51 2014 config: NAME STATE READ WRITE CKSUM storage ONLINE 000 mirror-0 ONLINE 000 sdb ONLINE 000 sdc ONLINE 00 903 errors: No known data error

    太棒了!

    ZED守护进程基于事件类.所以它可以做的不仅仅是发送电子邮件,你可以根据事件类自定义不同的动作。事件类可以在zpool事件输出。

    更有趣的特性之一是自动用热备盘替换缺陷驱动器,因此可以尽快恢复完整的容错能力。

    我一直没能把它修好。ZED脚本不会自动替换失败/故障的驱动器。

    似乎有一些已知的问题.修复似乎在一个挂起的拉请求。

    为了确保我得到了提醒,我在一个VM中模拟了生产环境的ZED配置。

    如前所述,我用dd模拟了一个驱动器故障,但结果是,对于每个校验和错误,我都会收到一封电子邮件。由于有成千上万的校验和错误,我不得不从收件箱中清除1000多封邮件。

    这个默认情况下没有注释的选项似乎没有启用。

    ZED_EMAIL_INTERVAL_SECS = " 3600 "

    此选项实现了一个冷却期,其中事件只报告一次,然后在间隔到期之前抑制。

    最好在默认情况下启用该选项。

    《ZED》的作者承认,《ZED》有点粗糙,但它始终如一地发出警报,这就是我一直在寻找的,所以我很高兴。

第1 / 4页

Baidu
map