我对 RAID 的第一目标是防止故障冗余。我的第二个问题是可扩展性。因为ZFS 的 RAID 尚不允许您将磁盘添加到 raid 池,并且BTRFS RAID6 不稳定,我的选择是什么?
- 我能看到的最佳折衷方案似乎是 Raid 1(镜像)改为 Raid 10 镜像/条带化。假设每个驱动器的价格为 300 美元,如果我这样做,据我所知,我将能够从 2 个磁盘(600 美元)扩展,然后是 4 个磁盘(1200 美元),然后是 6 个磁盘(1800 美元)。每次创建一个更大的 raid 10 卷。然而,使用这种方法我必须始终保持 50% 的磁盘奇偶校验。
- 然而,如果我想预先花 1,800 美元并启动 Raid-z2,我将能够承受任意两次驱动器故障。我不会使用 3 个驱动器,而是使用 4 个驱动器。但这样的解决方案的性能总是会大大降低吗?
我是否正确总结了这些选项?是否有比 ZFS 更好的生产就绪可扩展 Raid-6 解决方案?我很高兴能够为 raid6 购买三个驱动器,并在扩展时一次扩展一个驱动器重新平衡。
是的,你的总结是正确的。
是的,3 个镜像 vdev 将为您提供比 6 驱动器 raidz2 更好的性能(大约是 IOPS 的三倍 - IOPS 规模随 vdev 数量的增加)。如果您主要进行大型顺序读取和写入(例如视频文件),或者如果池主要用于归档/备份数据......但如果它用于繁重的数据库工作负载,那么这可能并不重要可以获得的 IOPS 越多越好。
顺便说一句,另一个可能值得考虑的选择是一次购买 3 个驱动器,最终在您的池中拥有两个条带 3 驱动器 raidz1 vdev。与 raidz2 相同的容量,以及更好的性能(因为有两个 vdev) - 唯一的缺点是它是 raidz1 而不是 raidz2(因此每个 vdev 最多只能丢失一个驱动器)。
就我个人而言,我喜欢尽可能多地使用镜像 vdev(当然是在启动/操作系统池上,我使用 SSD 或现在的 NVME 驱动器构建),并且仅使用 raidz 进行大容量存储(特别是在性能不重要时,尽管我通常会通过为 ARC 使用大量 RAM 并使用 SSD 或 NVME 驱动器上的一些分区作为 HDD 池的 SLOG 和/或 L2ARC 来改进这一点。如果我能负担得起,我会用镜子做所有事情,但这基本上意味着要支付双倍的存储费用。
Synology 盒子使用 LVM 提供 RAID 阵列,您只需添加磁盘即可 - 但我不知道其幕后工作原理的详细信息。大概是类似这样的事情吧。同时 md 允许您添加磁盘。在这两种情况下,您都会失去使用 ZFS 的很多好处。