mdadm + zfs vs mdadm + lvm

这可能是一个天真的问题,因为我是新手,我无法find关于mdadm + zfs的任何结果,但经过一些testing,似乎它可能工作:

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

  • 一个RAID6arrays加规则的LVM和ext4
  • 一个RAID6arrays加上ZFS(没有冗余)。 这是第二个选项,我没有看到任何讨论。

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

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

  • ZFS有没有预先分配空间的快照。 LVM需要预分配(可能不再是真实的)。
  • ZFS有校验(对此非常感兴趣)和压缩(很好的奖金)。
  • LVM在线文件系统增长(ZFS可以通过export / mdadm –grow / import离线执行)。
  • LVM具有encryptionfunction(ZFS-on-Linux没有)。 这是我看到的这个组合的唯一主要内容。 我想我可以去RAID6 + LVM + ZFS …似乎太重了,还是不行?

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

1)是否有什么内在的阻碍或排除RAID6 + ZFS? 任何人都有这样的设置的经验?

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

如果您使用MDADM raid6 + ZFS解决scheme,那么您将失去自我修复,因为ZFS没有关于如何重新计算/恢复受损数据块的数据,除非您设置了copies = 2或更多(将使用两倍的存储空间)。 您的ZFS存储将只报告数据不一致。

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

您还可以通过添加更多的vdevs到您的池,增长您的ZFS文件系统,这将是dynamic条纹。 例如,你可以用4到8个磁盘创build一个新的raidz2 vdev并把它添加到你的池中。 你甚至可以添加一个镜像的vdev。