Linux 4.15内核中zram的zstd压缩算法是否可用?
Linux 4.15内核中zram的zstd压缩算法是否可用?
答案很明确:在Linux 4.15内核中,zram的zstd压缩算法无法实际使用,背后是内核zstd整合进度的问题,具体细节如下:
- 你在
/drivers/block/zram/zcomp.c里看到的zstd相关代码,其实是zram模块在4.14版本就提前添加的支持框架,但当时整个Linux内核生态还没准备好:zstd的内核级压缩库直到4.19版本才被正式合并到lib/zstd/和crypto/路径下,4.15内核的crypto/目录自然找不到相关内容。 - 早期zram的zstd代码只是占位性质的框架,没有对应的内核级zstd实现支撑,所以即使你在配置内核时看到了zram的zstd选项,编译后也无法正常启用——要么压缩模块加载失败,要么zram设备初始化时会报错找不到zstd压缩函数。
如果想要在zram中使用zstd压缩,有两个可行的方案:
- 直接升级内核到4.19及以上版本,这时候内核已经内置了完整的zstd压缩支持,zram可以直接调用;
- 给4.15内核手动打zstd的backport补丁,把4.19里的zstd库和相关适配代码移植过来,但这种方式需要一定的内核编译和补丁适配经验。
内容的提问来源于stack exchange,提问作者illiterate
相关产品推荐
相关产品推荐

