我计划使用 OpenSolaris 和 ZFS 构建一个文件服务器,它将提供两个主要服务 - 成为 XenServer 虚拟机的 iSCSI 目标和成为通用家庭文件服务器。我正在查看的硬件包括 2 个 4 端口 SATA 控制器、2 个小型引导驱动器(每个控制器上一个)和 4 个用于存储的大型驱动器。这允许每个控制器有一个空闲端口,用于升级阵列。
我有点困惑的是如何设置存储驱动器。对于性能,镜像似乎是王道。我很难看出使用 RAIDZ 而不是镜像会有什么好处。通过此设置,我可以看到两个选项 - 一个条带中的两个镜像池,或 RAIDZ2。两者都应该防止 2 个驱动器故障和/或一个控制器故障……RAIDZ2 的唯一好处是任何2 个驱动器都可能发生故障。在这两种情况下,存储都应该是容量的 50%,但第一个应该具有更好的性能,对吧?
我想解决的另一件事是具有两个以上设备的镜像阵列的好处。对于数据完整性,如果有的话,RAIDZ 比三向镜像有什么好处?由于 ZFS 维护文件完整性,RAIDZ 带来了什么……ZFS 的完整性检查不是否定 RAIDZ 奇偶校验的值吗?
例如,我现在设置了一个 4x2TB RaidZ1,但除此之外我只想添加一个 3X4TB RaidZ1。有没有办法用 zdevs/另一个 Zpool 做到这一点?
谢谢
假设我要构建一个非常大的 1PB zpool。我将有一个带有 HBA 的主机单元(可能是 4 端口 LSI SAS 卡),并且我可能将 7 个 45 驱动器的 JBOD 连接到主机单元。
使用 raidz3 执行此操作的基本方法是创建 21 个不同的 15 驱动器 raidz3 vdev(7 个 JBOD 中的每一个 3 个 15 驱动器 vdev),然后从所有 21 个这些 raidz3 vdev 中创建一个池。
这将工作得很好。
这里的问题是,如果您因任何原因丢失一个 vdev,您将丢失整个池。这意味着您绝对不会丢失整个 JBOD,因为那会丢失 3 个 vdev。但是,在邮件列表线程中,有人暗中暗示了一种组织磁盘的方法,这样您就可以确实丢失整个 JBOD。他们说:
“使用戴尔 R720 主机,加上一堆双路径连接到几个 LSI SAS 交换机的戴尔 MD1200 JBOD……我们进行了三重奇偶校验,并且我们的 vdev 成员资格设置为我们最多可以丢失三个 JBOD 并且仍然可以功能(每个 JBOD 一个 vdev 成员磁盘)。”
......我不太确定他们在这里说什么。我认为他们的意思是,不是在一个 HBA 上拥有一个 vdev(所有连续的 15 个(或 12 个,或其他)磁盘),您实际上将 vdev 的奇偶校验驱动器拆分为其他 JBOD,这样您可能会丢失任何 jbod 并且您在其他地方仍然有 N-3 驱动器来覆盖该 vdev …