我已经阅读了很多关于规划ZFS重复数据删除的RAM要求的信息.我刚刚升级了我的文件服务器的RAM以支持ZFS zvols上的一些非常有限的重复数据删除,我不能使用快照和克隆(因为它们是zvols格式化为不同的文件系统)但是将包含很多重复的数据.
我想确保我添加的新RAM将支持我打算做的有限重复数据删除.在计划中,我的数字看起来不错,但我想确定.
如何判断我的实时系统上的ZFS重复数据删除表(DDT)的当前大小?我读了this mailing list thread,但我不清楚他们是如何得到这些数字的. (如果有必要,我可以发布zdb tank的输出,但我正在寻找可以帮助其他人的通用答案)
解决方法
您可以使用zpool status -D poolname命令.
输出看起来类似于:
root@san1:/volumes# zpool status -D vol1 pool: vol1 state: ONLINE scan: scrub repaired 0 in 4h38m with 0 errors on Sun Mar 24 13:16:12 2013 DDT entries 2459286,size 481 on disk,392 in core bucket allocated referenced ______ ______________________________ ______________________________ refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE ------ ------ ----- ----- ----- ------ ----- ----- ----- 1 2.23M 35.6G 19.0G 19.0G 2.23M 35.6G 19.0G 19.0G 2 112K 1.75G 1005M 1005M 240K 3.75G 2.09G 2.09G 4 8.03K 129M 73.8M 73.8M 35.4K 566M 324M 324M 8 434 6.78M 3.16M 3.16M 4.61K 73.8M 35.4M 35.4M 16 119 1.86M 811K 811K 2.33K 37.3M 15.3M 15.3M 32 24 384K 34.5K 34.5K 1.13K 18.1M 1.51M 1.51M 64 19 304K 19K 19K 1.63K 26.1M 1.63M 1.63M 128 7 112K 7K 7K 1.26K 20.1M 1.26M 1.26M 256 3 48K 3K 3K 1012 15.8M 1012K 1012K 512 3 48K 3K 3K 2.01K 32.1M 2.01M 2.01M 1K 2 32K 2K 2K 2.61K 41.7M 2.61M 2.61M 2K 1 16K 1K 1K 2.31K 36.9M 2.31M 2.31M Total 2.35M 37.5G 20.1G 20.1G 2.51M 40.2G 21.5G 21.5G
重要的字段是总分配块和总引用块.在上面的示例中,我的重复数据删除率较低. 40.2G存储在37.5G空间的磁盘上.或者在235万块的空间中有251万个街区.
要获取表的实际大小,请参阅:
DDT条目2459286,磁盘大小为481,核心大小为392
2459286 * 392 = 964040112字节除以1024和1024得到:919.3MB的RAM.