xfcyhuang 发表于 2023-10-26 18:46

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大小分割,越大的块重复概率就越小,压缩则相反,块越大 压缩采样越多 压缩率越高,所以一般来说 只开压缩就好

cabala 发表于 2023-10-26 18:50

原则上,没有个十倍八倍的重复率,就不考虑开dedup

Joe_Li 发表于 2023-10-27 20:49

同意鱼与熊掌

重复数据删除感觉上在VM储存上比较实用,而这种情况下压缩反而会造成额外的CPU开销。

而压缩比较适合低频存储,曾经我也认为那一点点压缩率带来的收益并不是很大,直到我接手了两个200TB级别的存储,压缩率再低,在绝对数量上也会变得很可观。

cabala 发表于 2023-10-27 22:06

听说过一个说法,对于机械硬盘,如果预期压缩率还可以的情况下,比如大量文本文件等,由于少写入节约的时间大于压缩浪费的时间,因此总写入还更快。未实际验证过,但听起来靠谱。

litel 发表于 2023-10-27 23:21

存视频我啥都不开...
页: [1]
查看完整版本: zfs的压缩和重复数据删除 鱼和熊掌不可兼得