触发 ZFS 重复数据删除一次性扫描/重复数据删除

触发 ZFS 重复数据删除一次性扫描/重复数据删除

我有一个已经运行了一段时间的 ZFS 文件系统,最近我终于有机会将它升级到最新的 ZFS 版本。我们的数据不需要重复数据删除,但根据小型测试,我坚信,通过利用它,我们可以免费获得 5-10% 的空间。我已经在文件系统上启用了重复数据删除,新文件正在慢慢被重复数据删除,但我们的大部分数据(95% 以上)已经存在于文件系统上。

除了将数据移出池然后重新复制回来之外,还有其他方法可以触发对现有数据的重复数据删除扫描吗?它不必是异步的或实时的。

(仅供参考,池中没有足够的空间来将整个文件系统复制到另一个文件系统,然后切换挂载。)

答案1

不,您无法在不复制现有数据的情况下对其进行重复数据删除。请记住,只有当整个 Dedup-Table 适合 RAM/L2ARC 时,您才会从重复数据删除中受益。

你可以使用 zds -S poolname 来评估重复数据删除的好处,甚至无需打开重复数据删除:

pfexec zdb -S rpool 模拟的DDT直方图:

bucket              allocated                       referenced          
______   ______________________________   ______________________________
refcnt   blocks   LSIZE   PSIZE   DSIZE   blocks   LSIZE   PSIZE   DSIZE
------   ------   -----   -----   -----   ------   -----   -----   -----
     1     313K   13.4G   13.4G   13.4G     313K   13.4G   13.4G   13.4G
     2     111K   5.27G   5.27G   5.27G     233K   10.7G   10.7G   10.7G
     4    5.15K   96.2M   96.2M   96.2M    22.4K    403M    403M    403M
     8    1.03K   12.2M   12.2M   12.2M    10.3K    111M    111M    111M
    16      384   16.3M   16.3M   16.3M    8.10K    350M    350M    350M
    32      157   6.17M   6.17M   6.17M    6.47K    250M    250M    250M
    64       83   6.52M   6.52M   6.52M    6.37K    511M    511M    511M
   128       17    395K    395K    395K    2.61K   62.5M   62.5M   62.5M
   256        2      5K      5K      5K      802   2.24M   2.24M   2.24M
    2K        1     512     512     512    2.66K   1.33M   1.33M   1.33M
    8K        1    128K    128K    128K    8.21K   1.03G   1.03G   1.03G
 Total     431K   18.8G   18.8G   18.8G     613K   26.8G   26.8G   26.8G

dedup = 1.43, compress = 1.00, copies = 1.00, dedup * compress / copies = 1.43

答案2

请注意,当前的重复数据删除实现(版本 134)对 RAM 要求较高,删除大量数据时存在突出问题,或多或少会在相当长的一段时间内占用你的 ZFS 池。 http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=a24a5761748eedbb50cd39d3530e?bug_id=6924390

关于对现有数据进行重复数据删除,在同一个池中逐个复制/移动文件应该可以解决问题。

答案3

blasafer 的回答很好,我只想补充一点块指针重写是一项计划中的功能,它将允许重新压缩已存储的数据,也许它也可以用于重新进行重复数据删除。但这还得等到将来,我只是猜测而已。

答案4

等待重复数据删除出现在 FreeNAS 的 ZFS 上...当这种情况发生时,RAM 要求可能会变得更合理。希望它也能解决或缓解仍然存在的 ZFS ARC 3 年以上的错误!

http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6522017

(这个很讨厌,因为它也会超出虚拟机管理程序的虚拟机限制!)

相关内容