ZFS:镜像与RAID-Z


14

我正在计划使用OpenSolaris和ZFS构建文件服务器,该文件服务器将提供两项主要服务-成为XenServer虚拟机的iSCSI目标并成为通用的家庭文件服务器。我正在查看的硬件包括2个4端口SATA控制器,2个小型引导驱动器(每个控制器一个)和4个用于存储的大型驱动器。这允许每个控制器一个空闲端口,用于在将来升级阵列。

我有点困惑的是如何设置存储驱动器。对于性能而言,镜像似乎是最重要的。我很难知道使用RAIDZ而不是镜像会有什么好处。通过此设置,我可以看到两个选项-一个条带中的两个镜像池或RAIDZ2。两者都应防止2个驱动器发生故障和/或一个控制器发生故障... RAIDZ2的唯一好处是任何 2个驱动器都可能发生故障。在两种情况下,存储都应占容量的50%,但第一个应该具有更好的性能,对吗?

我想包裹的另一件事是具有两个以上设备的镜像阵列的好处。对于数据完整性,RAIDZ相对于三向镜像有什么好处(如果有)?由于ZFS维护文件完整性,因此RAIDZ会带给表什么……ZFS的完整性检查不会否定RAIDZ奇偶校验的值吗?

Answers:


14

简单的答案是,镜像某物几乎不需要处理能力-它只是第二次写入磁盘。对于RAID-Z2,您必须计算一个全新的奇偶校验块,尽管当您必须快速写入大量数据时,小型CAN会使CPU瘫痪。

镜像始终是高速数据的首选解决方案,如果它只是大容量存储而没有快速写入速度,则RAID-Z2是一个不错的选择,它确实可以使任何两个驱动器都失效。

另一个优点是可以使用更多镜像设备扩展镜像池-虽然不能扩展RAID-Z2-尽管可以将更多RAID-Z2存储添加到池中,但它将是两个RAID-Z2存储池串联在一起(在效果),而不是在所有存储和条带化之间平均分配。


但是在ZFS中,RAIDZ的奇偶校验块为您提供了什么?除了ZFS已经提供的功能以外,它还能提供其他任何数据完整性吗?还是仅仅需要两个驱动器消亡?如果那是唯一的好处,而不是三元方案,那么RAIDZ不会比镜子好。
John Clayton

1
RAID-Z允许一个驱动器死亡-如果您有10个驱动器,则将获得9个驱动器的数据价值。使用RAID-Z2,您可以使任何两个驱动器死亡,并具有8个驱动器的数据价值。使用镜像,您可以使一半的驱动器死亡,但是每两个驱动器中只有一个死亡。我怀疑您已经知道了这一点,但是正是这种4个驱动器的边缘情况提供了两个防止两个驱动器故障的解决方案-RAID-Z2和镜像模式。在正常情况下,没有“有用”的其他数据完整性配额。
dotwaffle

因此,为了清楚起见,RAIDZ相对于镜像的优势是针对硬件故障的更多保护?RAIDZ1和带有X驱动器的镜像在本质上是等效的吗?
约翰·克莱顿

5
RAID-Z的奇偶校验是ZFS内置校验和的超集。校验和所做的全部工作是确保从磁盘读取的数据是正确的。它旨在以很少的开销进行快速检查。RAID-Z的奇偶校验为您提供了在驱动器丢失(或RAID-Z2为2)的情况下重建损坏的数据的功能。但是,生成此奇偶校验数据的计算比简单的块校验和要占用更多的CPU资源,即使您仅编写4KB块,也必须在整个条带上进行计算。
afrazier 2010年

4
@John Clayton:冗余级别取决于您配置存储的方式。您可以创建一个N向镜像,这意味着您的数据容量等于一个驱动器的大小,但是您可以丢失N-1个驱动器而不会丢失任何数据。例如,如果您有一个三向镜像,则所有3个驱动器都包含相同的数据,并且可以丢失2个驱动器而不会丢失任何数据。区别在于,将驱动器添加到N路镜像会增加冗余(但您的容量始终是1个驱动器的大小),而将驱动器添加到raidz2会增加容量(但您的冗余始终是2个驱动器)。

18

RAID-Z消除了大多数写入损失和RAID 5/6卷遭受的数据完整性问题,而这需要花费一些CPU时间。通常,系统有空闲的CPU周期,因此与镜像相比,花费CPU时间来提高IO性能和数据完整性是一个很好的折衷方案。

这是RAID-Z的详细说明,可能会回答其他问题。

另外,请记住,RAID是一种容错解决方案。您没有实现RAID-Z2来防止数据丢失,而是执行备份或复制来做到这一点。您选择实施RAID-Z2与RAID-Z或RAID-10与RAID-6与RAID-5,以在发生硬件故障时保持系统正常运行。


1
因为他帮助我理解了技术上的差异,所以他给了dotwaffle一个答案。不过,关于预期用法的好建议……确实让我停下来思考。
约翰·克莱顿,

1
需要注意的重要一点是,尽管RAIDZ消除了写入损失问题,但由于每次读取操作的并发性增加,它引入了读取损失问题
the-wabbit 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.