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 分區上安裝Linux時就啟用壓縮功能 ,在mount檔案系統時使用 compress 選項:mount -o compress=zstd /dev/sda1 /mnt/。在配置過程中,請在 fstab 中把 compress=zstd 添加到根目錄檔案系統的挂載選項裡,zstd也可替換成lzo或zlib。隻有在加入挂載選項後建立或修改的檔案才會被壓縮。
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 檔案系統),并測量出它們使用的壓縮類型和其有效壓縮比。