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

我有一个已经运行了一段时间的ZFS文件系统,最近我有机会升级它(最后!)到最新的ZFS版本。 我们的数据不会尖叫重复数据删除,但我坚信基于小testing,我们可以从5-10%的空间中获取任何地方的空间。 我已经在文件系统上启用了重复数据删除function,新文件正在慢慢地被重新数据删除,但是大部分(95%以上)的数据已经存在于文件系统中。

除了将数据池移出然后重新复制之外,有没有办法触发现有数据的重复数据删除扫描? 它不一定是asynchronous的或活的。

(和FYI没有足够的空间来复制整个文件系统到另一个,然后只是切换安装。)

不,您无法复制现有数据。 Rember,如果整个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 

请注意,当前的重复 数据删除 实施 (内部版本134)对内存要求较高,并且在删除大量数据时存在悬而未决的问题 ,或多或less会在相当长的一段时间内损坏ZFS池。 http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=a24a5761748eedbb50cd39d3530e?bug_id=6924390

关于删除现有的数据,复制/移动文件一个一个,而留在同一池应该做的伎俩。

Blasafer给出了很好的答案,我只是补充说, Block Pointer重写是一个计划的function,可以对已经存储的数据进行重新压缩,也许可以用来重新进行重复数据删除。 但是,这是未来,我只是猜测。

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

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

(这个是令人讨厌的,因为它也会超出虚拟机pipe理程序的虚拟机界限!)