zfs的压缩和重复数据删除 鱼和熊掌不可兼得
一直以来都有疑问 ZFS DDT表里的数据块是按啥分割的最近有闲心就自己试验了一把DDT-sha256-zap-duplicate: 16 entries, size 4480 on disk, 1024 in core
DDT-sha256-zap-unique: 2198 entries, size 13396 on disk, 2974 in core
实验之前的数据 重复块和不重复块分别是16个和2198个
将recordsize调整到1M,然后复制了一个接近12M的文件进数据集
DDT-sha256-zap-duplicate: 16 entries, size 4480 on disk, 1024 in core
DDT-sha256-zap-unique: 2210 entries, size 13323 on disk, 2958 in core
2210 - 2198 = 12,不重复块增加了12个,正好和recordsize大小一致,删除这个文件复原块,然后将recordsize调整到512K
然后又把这个文件复制进数据集
DDT-sha256-zap-duplicate: 16 entries, size 4480 on disk, 1024 in core
DDT-sha256-zap-unique: 2222 entries, size 13251 on disk, 2942 in core
2222-2198 = 24,正好增加了一倍
结论:重复数据删除块大小按照recordsize大小分割,越大的块重复概率就越小,压缩则相反,块越大 压缩采样越多 压缩率越高,所以一般来说 只开压缩就好 原则上,没有个十倍八倍的重复率,就不考虑开dedup
同意鱼与熊掌
重复数据删除感觉上在VM储存上比较实用,而这种情况下压缩反而会造成额外的CPU开销。
而压缩比较适合低频存储,曾经我也认为那一点点压缩率带来的收益并不是很大,直到我接手了两个200TB级别的存储,压缩率再低,在绝对数量上也会变得很可观。
听说过一个说法,对于机械硬盘,如果预期压缩率还可以的情况下,比如大量文本文件等,由于少写入节约的时间大于压缩浪费的时间,因此总写入还更快。未实际验证过,但听起来靠谱。
存视频我啥都不开...
页:
[1]