ZFS DRAID,最后

2021-02-18 23:09:39

这是我们的文章系列的一部分,该文章系列以“深度的OpenZFS”发布。订阅我们的文章系列,以了解有关OpenZFS秘密的更多信息

Isaac Huang在OpenZFS 2017开发者峰会上的讲话见证了针对大型安装的ZFS存储持久性范围的扩大。 dRAID或分布式RAID是一种新的vdev类型,是对非常大的存储阵列的现有ZFS数据保护功能的补充。从类似RAID-Z的基础开始,dRAID将磁盘块排列或混合在一起,以使访问均匀地分布在所有驱动器上的方式。通过使用池中的所有成员,使用预分配的虚拟备件,将其快速分布在所有主轴上,可以快速更换主轴。贡献者包括英特尔,劳伦斯·利弗莫尔实验室和惠普企业,它们对数据中心规模和高可靠性的存储具有浓厚的兴趣。如果我们应用得当,OpenZFS用户社区将是此增强功能的受益者。

管理员通常会使用宽RAID条带,以在有多个主轴的情况下最大化可用存储空间。条带宽度大(十个或更大)的RAID-Z部署由于许多原因而导致重新银色性能不佳。重新格式化完整的vdev意味着从每个正常的磁盘读取数据并不断写入新的备用磁盘。这将使替换磁盘充满写操作,而散布遍及vdev的其余部分。对于使用12TB主轴的14个宽RAID-Z2 vdev,重建可能需要数周时间。当系统在最短的时间内没有空闲时,优先使用Resilver I / O活动。完整的zpool会碎片化,并需要其他I / O来重新计算数据。一个池可能退化为一个永无止境的重建周期或池Aka:死亡螺旋的丢失。

随着主轴一起老化,磁盘可能会成组出现故障,因为缺陷计数和机械故障不是关于寿命的独立随机过程。 SSD的运算法则更加复杂,因为其耐磨损水平耐久性将非常接近,并且在相同负载下的设备集群可能会一起失效。制造商提供的平均故障时间是前瞻性声明,不适合补货计划。一家制造商声称其平均无故障时间为120万小时:这是对质量的137年承诺。糟糕的计划是假设今天不会选择任何驱动器来导致严重故障。

dRAID是一种提供快速奇偶校验重建的选项,可以减轻RAIDZ宽条带的死亡螺旋行为,但是从默认宽度设置8中可以看出,它不鼓励宽条带化。专用足够的奇偶校验可以提高ZFS池的持久性,并且应该以丢失该池的风险来告知对奇偶校验的投资。

备用磁盘是一种使磁盘保持温暖并准备更换发生故障的成员的方法。通常,备用零件的闲置时间是闲散的,直到他们在重建过程中被抢购一空。懒惰是浪费时间做有用的工作。 dRAID中没有特定的备用磁盘。而是,在整个vdev中分配了足够的块以充当备用块。分布式备用磁盘是对工作的明智重新分配,因此所有磁盘都始终处于使用状态。磁盘故障会导致对该专用空间的重建。备用磁盘可用后,可以重新平衡vdev以返回备用块并将备用磁盘投入使用。

与RAID-Z不同,无论存储对象需要多少磁盘块,dRAID中的整个条带都会立即分配。条带宽度由磁盘扇区大小乘以RAID组中数据驱动器的数量确定。

RAID-Z具有优化块布局的方法,以最小化小文件的块分配。但是,dRAID优先考虑重建奇偶校验的速度,并且没有进行相同的空间保留尝试。如果您的文件仅占条带大小的一小部分,则dRAID将无法完全使用所有磁盘块。例如,默认的dRAID vdev具有32k的条带(每个磁盘4k,8个磁盘)。任何分配至少需要32k。存储请求对象后,将分配内部填充以填充条带宽度。使用较小的条带宽度或提供特殊的镜像vdev将适合较小的分配并提高驱动器利用率。

发生故障后,将仅按照空间映射中的奇偶校验布局依次写入实际或分布式备用,以根据奇偶校验数据重建驱动器。通过发布大型I / O块,减少寻道并避免树间接开销,可以快速完成顺序重构。重建磁盘的内容不一定与证明zpools数据完整的Merkle树一致。重要的是,首先要重建磁盘的按位复制,以使系统恢复到完整的状态并恢复服务。也就是说,顺序重建过程将恢复池的冗余级别,但无法验证数据的校验和。这样做的好处是它可以更快地完成,从而减少了其他磁盘故障可能会使池处于危险中的窗口。

修复重发会在顺序重发后自动触发,这是最终操作,可通过块指针遍历验证驱动器的所有内容是否与它们的初始校验和相匹配。修复性银盘具有许多优化功能,可以快速找到并重建对故障磁盘的写入。当可以将备用驱动器添加到池中时,重新平衡操作是另一个顺序重新启动,然后再执行修复重新启动。

磨砂膏是泳池健康的金标准;但是,清理可能是一项艰巨的工作,需要访问池中分配的每个块。修复性镀银可以在必须定期修复故障的环境中实际恢复运行。

根据1月OpenZFS领导会议的报告,OpenZFS 2.1将在2021年初支持dRAID。 OpenZFS的主要分支是针对最近支持的操作系统构建的:FreeBSD 12.1 +,Linux 5.10 +,Illumos,NetBSD等。 OpenZFS回归测试套件ztest很好地表明dRAID满足了ZFS对数据保护的承诺。十多年来,IBM和Panasas的企业客户一直在鞭打其他分布式RAID系统。这是一个成熟的概念,是对ZFS工具集的补充。

我们将从源代码安装ZFS磁头,然后添加一些“ md”文件支持的磁盘。

建议在生产中测试这些技能之前,遵循故障的生命周期并在文档中进行更换。

我们来解码一下描述dRAID vdev的几何的术语。诸如“ dRAID2:3d:14c:1s”之类的字符串编码有关dRAID vdev的以下内容。

-parity:必需,用于存储奇偶校验信息的主轴数。例如:dRAID3可以生存到第四个磁盘出现故障而不会丢失数据。奇偶校验可以是1,2或3。

-[d]数据:(每个RAID组的主轴数):确定数据条带的宽度,默认值为8。较大的值将增加条带宽度并减少总奇偶校验。

-[c]子代:此参数应与您提供给vdev的设备条目数相匹配。如果您没有正确命名正确数量的磁盘,将进行有益的检查,警告您:“ dRAID子代数无效;需要14个,但提供了13个”

-[s]备用磁盘:要作为分布式备用磁盘混入的磁盘区域数。默认情况下不创建任何备件,最多可容纳四个。每个备用磁盘都会从每个磁盘中删除一小部分空间。

dRAID为大型阵列提供了一种解决方案,具有少于20个心轴的vdev将无法从新选项中受益。对于少量的主轴,性能和重新镀银的结果将类似于RAIDZ。具有许多主轴的安装将在性能,快速备用激活和更换方面获得最佳效果。好处是在池中为小型对象分配时间时整个条带的相关成本。该开销应该在操作池意外之前通过池的设计计算得出。

dRAID不提供免费午餐来保存奇偶校验或备用驱动器,它们是您防止数据丢失的防御措施。随着驱动器大小的增加,它们重新备份的时间增加,并且可以破坏的数据量也增加。

ZFS对许多公司而言至关重要。 我们指导公司和团队实现ZFS的安全白皮书实施,以增强和改善基础架构为您的业务提供支持的方式。