分层 zfs filsystems 来管理不可预测的未来工作负载且不会严重影响性能的好方法是什么?

分层 zfs filsystems 来管理不可预测的未来工作负载且不会严重影响性能的好方法是什么?

我一直在尝试使用 ZFS 并使用稀疏文件作为虚拟设备来学习如何使用 zfs 工具。

通过使用位于不同设备上的 JBOD 文件系统之上的稀疏文件创建 raid 池,似乎不会对性能造成太大影响。

所以我想知道这是否是一个让灵活的系统向前发展的好方法,因为不可能缩小 zfs 文件系统。

例如我有四个磁盘。每个设备上都有一个设备文件系统。我创建了 4 个稀疏文件,每个文件系统上一个,即磁盘上一个。负载分布在设备上,并且它们还提供冗余。

在 raid 阵列填满之前,我仍然拥有所有剩余的磁盘空间用于某些可能不需要 raid 的东西,例如临时大文件。

我预计当两种类型的文件系统同时繁忙时,性能会受到重大影响。

这种方法还有其他优点和缺点吗?

答案1

一个问题是您确实有两个带有冗余缓存的叠加文件系统层。

另一种情况是,除非您写入的数据从未更新或删除,否则ZFS的写时复制性质将逐渐使用所有文件后端区域,速度比您预期的要快。这将减少它们的稀疏性,从而破坏您的精简配置目标。

答案2

我从一开始就预计会出现性能问题。主要是因为您要将文件写入位于另一个文件系统之上的 ZFS 文件系统。

对于每次写入,您将至少执行双倍的必要 I/O。不包括临时的大文件。

无论如何,如果您对数据进行分段,则可以拥有具有不同块大小的不同 ZFS 数据集。除了压缩和重复数据删除之外,虽然这会消耗更多一点的CPU。但这比让 FS 放在另一个 FS 之上要好。

相关内容