ZFS:处理大量并发 RW 操作和故障转移

ZFS:处理大量并发 RW 操作和故障转移

我有一个 ZFS/Linux 实例,其中的文件可以增长到 ZFS 支持的那些疯狂的大小。

大量并发用户需要通过公共互联网读取/写入此文件。如何在具有相同文件系统数据和元数据的 ZFS/Linux 实例池中平衡如此大量的文件访问负载?

另外 - 虽然 ZFS 可以从轻微的位腐烂中自我修复,但是在发生总体硬件故障的情况下,如何实现故障转移到一组复制的 ZFS/Linux 实例?

似乎没人在 ZFS 上下文中讨论副本、故障转移和负载平衡。或者,也许我在网上搜索的时间还不够长。

答案1

ZFS 和 BTRFS 都不是用于在实例之间实时复制的。您需要查看分布式文件系统的特定类别。维基百科页面分布式文件系统比较给出了一个很好的起始列表。

答案2

我不太了解 ZFS“RAID”模式,但 BTRFS“RAID”模式独特且特殊,并且具有极大的灵活性、内置负载平衡和冗余。

例如,BTRFS RAID1 不是在块级别上工作,而是在文件系统级别上工作。当您使用 4 个磁盘创建 BTRFS RAID1 时,RAID 模式表示每个文件至少存储在 2 个不同的磁盘上(在文件系统级别上)。因此,例如,您有磁盘 A、B、C 和 D,现在您将文件 TESTFILE 保存到 BTRFS RAID1 上,TESTFILE 随后作为完整副本保存在 4 个驱动器中的 2 个驱动器上。这为您带来了性能优势,因为当时只有 2 个驱动器真正需要工作,读取文件也是如此。

使用 BTRFS,您可以毫无问题地向“RAID”阵列添加/删除磁盘。您可以使用send/receive命令复制整个 BTRFS 文件系统或仅复制文件系统的子卷部分(对于备份很有用)。

我对 ZFS 确实不太了解,但我可以想象它也具有类似 BTRFS 的功能。如果它没有这样的功能,我会用 BTRFS 替换它。

相关内容