ZFS 重复数据删除性能优化

ZFS 重复数据删除性能优化

我正在运行 VDI 服务器。许多 VDI 用户都在他们的桌面上安装相同的应用程序,所以这zfs set dedup=on vdipool/myDesktop很方便。

如何优化 zfs dedup 的性能影响?

我会预期到哪些性能下降?

有没有办法为重复数据删除过程分配专用的 CPU 线程,以便对系统其余部分的影响最小?

答案1

在 100% SSD 存储上,如果您有足够的 RAM 让 100% 的重复数据删除哈希表始终处于 RAM 中,则性能影响可能是可以承受的。确保您有足够的 RAM 来存储所有元数据是唯一可以进行的优化。

如果您使用的是旋转锈蚀,极端的磁盘碎片将使性能完全无法使用。

一般来说,如果你没有真正看到最低限度10:1 的重复数据删除率,不值得造成巨大的性能影响。

答案2

随着最近引入的分配类(和“特殊”vdev),您可能在非 SSD 池上使用重复数据删除获得足够好的性能,假设您有一个快速的 SSD 来保存元数据(其中包括重复数据删除数据)。

在添加“特殊”vdev 之前,请先进行一些实验,并了解该功能。据我所知,“特殊”vdev 的故障会导致整个池一起故障。此外,您无法删除“特殊”vdev。

https://www.reddit.com/r/zfs/comments/cm594b/why_is_nobody_talking_about_the_newly_introduced/

答案3

如果重复块完全随机地以准级分布出现,那么碎片化在 HDD 介质上将是一个严重的问题。但在实际情况下,情况并非如此。在实际情况下,绝大多数重复块都是作为重复(或非常相似的)文件的一部分出现的,因此它们会成群出现。因此,它不会引起严重的碎片化问题。

除此之外,解决碎片问题的方法是碎片整理,不要避免使用这个非常有用的功能。

然而,zfs 根本没有碎片整理工具或功能。对 zfs 卷进行碎片整理的唯一方法是重建它。除此之外,它还存在一些许可问题。但它仍有很多工作要做,而且很多人觉得它很有用。希望有人能实现碎片整理(甚至可能是在线碎片整理!),在那之前我们应该尊重我们所拥有的。

相关内容