zpool 由 3 个磁盘组成,配置为双奇偶校验 RAID-Z 池

zpool 由 3 个磁盘组成,配置为双奇偶校验 RAID-Z 池

我正在构建的文件服务器将托管一个datapool由 3 个磁盘组成的 ZFS 池,配置为双奇偶校验 RAID-Z 池。datapool/home池上创建了一个数据集。数据集datapool/home导出为 NFS 共享。这是我所做的:

1. zpool create datapool mirror /dev/sdb /dev/sdc /dev/sdd
2. zfs create datapool/doc

我创建了有 3 个磁盘和一个数据集的 zpool datapool/doc。我知道可以通过运行以下命令来创建 RAID:

mdadm --create --verbose /dev/md0 --level=5 --raid-level=3 /dev/sdb /dev/sdc /dev/sdd

但是,我对如何将我的 3 个磁盘配置为双奇偶校验 RAID-Z 池感到困惑。

答案1

要创建具有 2 个奇偶校验磁盘的 RAID-Z 池 ( raidz2),您可以运行:

zpool create datapool raidz2 <disk1> <disk2> <disk3> ...

您根本不应该使用mdadm此配置。ZFS 本身实现卷管理——mdadm在 ZFS 使用的相同设备上使用会损坏你的数据。此外,一旦创建了池,您就无法更改数据冗余设置(除非是在您添加的新磁盘上,或者除非您将数据从现有池中复制出来,擦除并从头开始重建池)。

但是,如果您愿意,仍然无法仅对 3 个磁盘运行上述命令raidz2。RAID-Z 背后的理念与镜像基本相同 - 您希望通过存储冗余信息来降低磁盘故障导致数据丢失的可能性 - 只不过它应该减少磁盘故障时重建数据所必须存储的冗余信息总量。但是,如果您想在除一个磁盘以外的所有磁盘故障的情况下幸存下来,您必须将所有数据放在最后一个幸存的磁盘上,因为没有其他磁盘可以读取来重建数据。

因此,如果您想要 2 故障冗余,那么镜像是仅使用 3 个磁盘所能实现的最佳方案:

zpool create datapool mirror <disk1> <disk2> <disk3>

但是,我相信raidz1如果 1 故障冗余可以的话你可以使用:

zpool create datapool raidz1 <disk1> <disk2> <disk3>

相关内容