mdadm+zfs 对比 mdadm+lvm

Ále*_*lex 5 zfs lvm mdadm software-raid

这可能是一个幼稚的问题,因为我是新手,我找不到任何关于 mdadm+zfs 的结果,但经过一些测试,它似乎可以工作:

用例是具有 RAID6 的服务器,用于某些不经常备份的数据。我认为 ZFS 或 RAID6 中的任何一个都可以很好地为我服务。平台是Linux。性能是次要的。所以我正在考虑的两个设置是:

  • RAID6 阵列加上常规 LVM 和 ext4
  • RAID6 阵列加 ZFS(无冗余)。这是我根本没有看到讨论的第二个选项。

为什么是 ZFS+RAID6?这主要是因为 ZFS 无法使用新磁盘扩展 raidz2。你可以用更大的磁盘替换磁盘,我知道,但不能添加另一个磁盘。您可以使用 mdadm 作为冗余层来实现 2 磁盘冗余和 ZFS 磁盘增长。

除了这个要点(否则我可以直接进入没有 RAID 的 raidz2),这些是我看到的每个选项的利弊:

  • ZFS 具有没有预分配空间的快照。LVM 需要预分配(可能不再正确)。
  • ZFS 具有校验和(对此非常感兴趣)和压缩(不错的奖励)。
  • LVM 具有在线文件​​系统增长(ZFS 可以使用 export/mdadm --grow/import 离线完成)。
  • LVM 具有加密功能(ZFS-on-Linux 没有)。这是我看到的这个组合的唯一主要缺点。我想我可以去 RAID6+LVM+ZFS... 看起来太重了,还是不?

所以,以一个适当的问题结束:

1) 是否有任何本质上不鼓励或排除 RAID6+ZFS 的东西?任何人都有这样的设置的经验?

2) 校验和和压缩是否有可能使 ZFS 变得不必要(保持文件系统增长的可能性)?因为 RAID6+LVM 组合似乎是认可的、经过测试的方式。

小智 2

如果您选择 MDADM raid6 + ZFS 解决方案,您将失去自我修复功能,因为 ZFS 没有有关如何重新计算/恢复损坏的数据块的数据,除非您设置副本=2 或更多(这将使用两倍的存储空间)。您的 ZFS 存储只会报告数据不一致。

这意味着如果无法正确读取数据块,ZFS 将告诉您哪些文件受到影响。您的整个文件系统不应该处于危险之中,因为元数据是双重冗余的,并且如果检测到任何不一致,可以自我修复。

您还可以通过向池中添加更多 vdev 来扩展 ZFS 文件系统,该池将动态条带化。例如,您可以创建一个具有 4 到 8 个磁盘的新 raidz2 vdev,并将其添加到您的池中。您甚至可以向其中添加镜像 vdev。