天天看點

Btrfs檔案系統開啟透明壓縮節省硬碟空間

Btrfs介紹

Btrfs檔案系統開啟透明壓縮節省硬碟空間

檔案系統3d單詞檔案夾組織曆史檔案檔案,File System 3d Words Folders

Btrfs 是一種現代的寫時複制(CoW)Linux 檔案系統,已經并入核心主線。Btrfs 緻力于實作一些進階功能,同時着重于容錯性、修複性以及易于管理性。它由多家企業共同開發,以 GNU GPL 協定授權,并歡迎任何人的貢獻。

Btrfs有很多有趣的特性,本文将介紹Btrfs的透明壓縮功能。

壓縮

Btrfs支援透明檔案壓縮。這就減小了檔案的大小,通過減少檔案寫入增幅來顯著延長閃存媒體(flash-baesd media)的壽命。在某些特定的場景下(比如單線程、重負荷的檔案 I/O)還提高了性能。盡管在其他的場景下(比如多線程和/或大檔案 I/O 高強度 CPU 任務)還是明顯影響了性能。有三種算法可用:zlib, lzo, zstd,通常使用更快的壓縮算法,比如 zstd 和 lzo 可以獲得更好的性能。

Btrfs檔案系統開啟透明壓縮節省硬碟空間

如何啟用壓縮?

要在新的 Btrfs 分區上安裝Linux時就啟用壓縮功能 ,在mount檔案系統時使用 compress 選項:mount -o compress=zstd /dev/sda1 /mnt/。在配置過程中,請在 fstab 中把 compress=zstd 添加到根目錄檔案系統的挂載選項裡,zstd也可替換成lzo或zlib。隻有在加入挂載選項後建立或修改的檔案才會被壓縮。

Btrfs檔案系統開啟透明壓縮節省硬碟空間

fstab

如果想壓縮已經存在Btrfs上的未壓縮檔案,可用 Btrfs filesystem defragment -r -v -czstd / ,會使用zstd的壓縮方式将整個檔案系統重新壓縮。

如何設定壓縮級别

zlib:支援9個級别,預設值為Level 3,它提供了高的壓縮比,并且速度仍然相當快。級别越高,所需時間越長。可以将級别指定為挂載選項,如“compress=zlib:1”。

zstd: zstd支援包括多達15個級别。整數值越大越慢,壓縮效果越好;值越小越快,壓縮效果越小。級别0映射到預設值。

lzo: 不支援設定壓縮級别

壓縮方法之間有什麼差別?

zlib:更慢,更高的壓縮率

lzo:比zlib更快的壓縮/解壓縮速度,較差的壓縮率,旨在快速

zstd:壓縮與zlib相當,具有更高的壓縮/解壓縮速度和不同的比率級别

差異取決于實際資料集,不能用單個數字或建議來表示。對于一般應用,lzo似乎給出了令人滿意的結果。

檢視壓縮類型和壓縮比

btrfs-compsize 軟體包能擷取一個檔案清單 (或一整個 Btrfs 檔案系統),并測量出它們使用的壓縮類型和其有效壓縮比。

Btrfs檔案系統開啟透明壓縮節省硬碟空間