ZFS:镜像与RAID-Z

我正计划使用OpenSolaris和ZFS构build文件服务器,它将提供两项主要服务 – 成为XenServer虚拟机的iSCSI目标并成为一般的主文件服务器。 我正在查看的硬件包括2个4端口SATA控制器,2个小引导驱动器(每个控制器上有一个驱动器)以及4个用于存储的大驱动器。 这允许每个控制器有一个空闲端口用于升级arrays。

我有点困惑的地方是如何设置存储驱动器。 对于性能来说,镜像似乎是国王。 我很难看到使用RAIDZ镜像的好处是什么。 有了这个设置,我可以看到两个选项 – 两个镜像池在一个条纹,或RAIDZ2。 两者都应该防止2驱动器故障和/或一个控制器故障… RAIDZ2的唯一好处是任何 2驱动器可能会失败。 在这两种情况下,存储容量应该是容量的50%,但首先应该有更好的性能,对吧?

另一件事我试图包围我的思想是有两个以上的设备的镜像arrays的好处。 为了数据的完整性,如果有的话,RAIDZ在三向镜像上的好处是什么? 由于ZFS保持文件的完整性,RAIDZ带来了什么?ZFS的完整性检查不会否定RAIDZ的奇偶校验值吗?

    简单的答案是,镜像某些事物几乎不需要任何处理能力 – 它只是第二次写入磁盘。 对于RAID-Z2,你必须计算一个全新的奇偶校验块,尽pipe当你不得不快速写入大量的数据时,小的CAN会使CPU停滞不前。

    镜像一直是高速数据的首选解决scheme,如果只是大容量存储而没有快速写入速度,那么RAID-Z2是一个很好的select,可以让任何两个驱动器按照您的指示死掉。

    另一个好处是可以使用更多的镜像设备来扩展镜像池 – 尽pipeRAID-Z2无法扩展 – 尽pipe可以将更多的RAID-Z2存储添加到池中,但将会连接两个RAID-Z2存储池(在效果),而不是在所有的存储和条纹之间平分。

    RAID-Z消除了大部分写入损失和RAID 5/6卷遭受的数据完整性问题,代价是一些CPU时间。 通常情况下,系统有CPU周期,所以花费CPU时间来提高IO性能和数据完整性是一个很好的折衷与镜像。

    以下是可能回答其他问题的RAID-Z的详细说明 。

    另外,请记住, RAID是容错解决scheme 。 您不实施RAID-Z2来防止数据丢失 – 您执行备份或复制来执行此操作。 您select实施RAID-Z2与RAID-Z或RAID-10与RAID-6与RAID-5相比,以在发生硬件故障时保持系统正常运行。