支持压缩是 zfs 文件系统的一个重要特性,zfs 的压缩功能对用户是透明的,也就是说压缩和解压操作由 zfs 文件系统自动完成。支持的压缩算法有 LZJB, ZLE, gzip[1-9],lz4。
zfs 的压缩算法对 CPU 的消耗很低,并且某些压缩算法速度很快,因此压缩的代价是很低的,建议开启 zfs 文件系统的压缩功能。
另外, 可以对 zfs 池的一部分 dataset 开启压缩功能,也可以对池的一部分 dataset 不开启压缩; 开启压缩功能后,仅对新写入的数据生效,dataset 上之前的数据不会被压缩。
1 zfs 的 compression 选项
1 |
compression=on | off | lzjb | gzip | gzip-N | zle | lz4 |
备注:zfs 默认关闭压缩功能, 设置 compression=on 将默认使用 LZJB 压缩方式。
2 gzip 压缩举例
1 |
root@francs:/data2 # zfs set compression=gzip zp1/data1 |
备注: gzip 默认压缩级别为6, 上传了一个 17 M 的文件到压缩目录 /data1,压缩后为 4M。
1 |
root@francs:/data1 # zfs get all zp1/data2 | grep compress |
备注: /data2 目录未开启压缩功能,文件未被压缩,还是 17 M。
3查看压缩比
1 |
root@francs:/data1 # zfs get compressratio zp1/data1 |
关于各种压缩算法的效率,德哥这篇 blog 有测试,可以参考,这里不作演示了; 值得一提的是 lz4 压缩算法作为 lzjb 的替代,具有较高的压缩和解压性能,同时具有折中的压缩比,推荐使用。
ZFS compression algorithm lzjb, gzip, gzip-[0-9], zle, lz4 compare
4 参考
- ZFS compression algorithm lzjb, gzip, gzip-[0-9], zle, lz4 compare
- ZFS Compression and Deduplication
原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/238633.html