我有一个已经运行了一段时间的ZFS文件系统,最近我有机会对它进行升级(最后!)到最新的ZFS版本。我们的数据并没有大惊小怪,但我坚信,基于小型测试,我们可以免费获得5-10%的空间。我已经在文件系统上启用了去达达,新的文件正在慢慢地被取消,但是我们的大部分数据(95%+)已经存在于文件系统上。
除非将数据移出池,然后再回过头来,否则是否有任何方法触发对现有数据的增强扫描?它不必是异步的,也不一定是活动的。
(而且FYI池中没有足够的空间将整个文件系统复制到另一个文件系统,然后只切换挂载。)
发布于 2010-06-15 06:51:52
不,你不能不复制现有的数据。记住,只有当整个数据表符合RAM/L2ARC时,您才能从增强中获益。
您甚至可以使用zds -S池名来估算加速比的好处,甚至可以打开除害器:
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发布于 2010-06-15 06:30:28
请注意,当前的延迟实现(build 134)需要RAM,当大量数据被删除时,存在一个突出的问题,在相当长的一段时间内或多或少地对ZFS池进行分块处理。http://bugs.opensolaris.org/bugdatabase/view_bug.do;jsessionid=a24a5761748eedbb50cd39d3530e?bug_id=6924390
在处理现有数据时,在同一个池中逐个复制/移动文件应该可以做到这一点。
发布于 2010-06-15 23:20:29
blasafer给出了一个很好的答案,我只想补充一下,块指针重写是一个计划中的特性,它可以对已经存储的数据进行重新压缩,也许它也可以用于重加。但这是在未来,我只是猜测。
https://serverfault.com/questions/151281
复制相似问题