我一直在尝试使用 ZFS 并使用稀疏文件作为虚拟设备来学习如何使用 zfs 工具。
通过使用位于不同设备上的 JBOD 文件系统之上的稀疏文件创建 raid 池,似乎不会对性能造成太大影响。
所以我想知道这是否是一个让灵活的系统向前发展的好方法,因为不可能缩小 zfs 文件系统。
例如我有四个磁盘。每个设备上都有一个设备文件系统。我创建了 4 个稀疏文件,每个文件系统上一个,即磁盘上一个。负载分布在设备上,并且它们还提供冗余。
在 raid 阵列填满之前,我仍然拥有所有剩余的磁盘空间用于某些可能不需要 raid 的东西,例如临时大文件。
我预计当两种类型的文件系统同时繁忙时,性能会受到重大影响。
这种方法还有其他优点和缺点吗?
答案1
一个问题是您确实有两个带有冗余缓存的叠加文件系统层。
另一种情况是,除非您写入的数据从未更新或删除,否则ZFS的写时复制性质将逐渐使用所有文件后端区域,速度比您预期的要快。这将减少它们的稀疏性,从而破坏您的精简配置目标。
答案2
我从一开始就预计会出现性能问题。主要是因为您要将文件写入位于另一个文件系统之上的 ZFS 文件系统。
对于每次写入,您将至少执行双倍的必要 I/O。不包括临时的大文件。
无论如何,如果您对数据进行分段,则可以拥有具有不同块大小的不同 ZFS 数据集。除了压缩和重复数据删除之外,虽然这会消耗更多一点的CPU。但这比让 FS 放在另一个 FS 之上要好。