Questa funzione del filesystem ti farà risparmiare un sacco di spazio su disco e ti farà risparmiare un sacco di tempo che avresti speso per comprimere i tuoi file manualmente.
In questo articolo, ti mostrerò come abilitare la compressione a livello di filesystem BTRFS su un filesystem BTRFS. Quindi iniziamo.
Prerequisiti:
Per provare gli esempi di questo articolo,
Ho un disco rigido da 20 GB sdb Sulla mia macchina Ubuntu. Ho creato 2 partizioni SDB1 E SDB2 Su questo disco rigido. Userò la partizione SDB1 in questo articolo.
$ sudo lsblk -e7
Il tuo disco rigido o SSD può avere un nome diverso dal mio, così anche le partizioni. Quindi, assicurati di sostituirli con il tuo da ora in poi.
Se hai bisogno di assistenza installando il filesystem BTRFS su Ubuntu, controlla il mio articolo Installa e usa BTRFS su Ubuntu 20.04 LTS.
Se hai bisogno di assistenza installando il filesystem BTRFS su Fedora, controlla il mio articolo Installare e utilizzare BTRFS su Fedora 33.
Algoritmi di compressione BTRFS:
Al momento della stesura di questo documento, il filesystem BTRFS supporta i seguenti algoritmi di compressione:
i) lzo: LZO è un algoritmo di compressione a blocchi in tempo reale senza perdita. LZO divide i dati in blocchi e comprime/decomprime i dati dai blocchi in tempo reale. È l'algoritmo di compressione predefinito del filesystem BTRFS.
ii) zlib: Zlib è una libreria utilizzata per la compressione dei dati. Utilizza l'algoritmo di compressione dei dati Deblate. L'algoritmo di compressione dei dati Deflate è una combinazione degli algoritmi di codifica LZ77 e Huffman. Il filesystem BTRFS supporta l'algoritmo di compressione dei dati Zlib.
Puoi anche specificare il livello di compressione che desideri. Il livello può essere qualsiasi numero da 1 A 9. Un livello più alto indica un rapporto di compressione più elevato. Quindi, il livello 9 farà risparmiare più spazio su disco rispetto al livello 1 (il livello 9 ha un rapporto di compressione più elevato rispetto al livello 1). A meno che non si specifichi un livello di compressione Zlib da utilizzare, il filesystem BTRFS utilizzerà il livello di compressione Zlib 3 per impostazione predefinita.
ZSTD: ZSTD o Zstandard è un algoritmo di compressione dei dati senza prestazione ad alte prestazioni. È stato sviluppato su Facebook da Yann Collect. Il suo rapporto di compressione è paragonabile all'algoritmo Deflate che viene utilizzato in Zlib, ma è più veloce. Il filesystem BTRFS supporta l'algoritmo di compressione dei dati ZSTD.
Puoi anche specificare il livello di compressione che desideri. Il livello può essere qualsiasi numero da 1 A 15. Un livello più alto indica un rapporto di compressione più elevato. Quindi, il livello 15 farà risparmiare più spazio su disco rispetto al livello 1 (il livello 15 ha un rapporto di compressione più elevato rispetto al livello 1). A meno che non si specifichi un livello di compressione ZSTD da utilizzare, il filesystem BTRFS utilizzerà il livello di compressione ZSTD 3 per impostazione predefinita.
Creazione di un filesystem BTRFS:
Per sperimentare la compressione dei dati a livello di filesystem BTRFS, è necessario creare un filesystem BTRFS.
Per creare un filesystem BTRFS con l'etichetta dati sul SDB1 partizione, eseguire il seguente comando:
$ sudo mkfs.BTRFS -L Data /Dev /SDB1
Montare un filesystem BTRFS con compressione abilitata:
Per abilitare la compressione a livello di filesystem BTRFS, è necessario montare il filesstem BTRFS che hai creato sul SDB1 partizione con entrambi i comprimere O Compress-Force Opzione di montaggio.
i) Opzione di montaggio a comprimere: IL comprimere L'opzione di montaggio abiliterà semplicemente la compressione a livello di filesystem BTRFS. Il filesystem BTRFS determinerà se la compressione rende il file che deve essere compresso più grande della dimensione del file originale (non compressa). Se la compressione rende la dimensione del file più grande dell'originale, il filesystem BTRFS non comprimerà quel file.
ii) Opzione di montaggio a compensazione: non mi piace il comprimere Opzione di montaggio, se il filesystem BTRFS è montato utilizzando il Compress-Force Opzione di montaggio, quindi ogni file sul filesystem BTRFS verrà compresso anche quando la compressione rende il file più grande.
Crea una directory /dati con il seguente comando:
$ sudo mkdir -v /dati
Abilitare Lzo compressione, montare il filesystem BTRFS che hai creato in precedenza nel /dati Directory con il seguente comando:
$ sudo Mount -o Compress = lzo /dev /sdb1 /data
Per abilitare la forza Lzo Compressione, montare il filesystem BTRFS che hai creato in precedenza nella directory /dati come segue:
$ sudo Mount -o Compress -Force = LZO /Dev /SDB1 /Data
Allo stesso modo, puoi montare il filesystem BTRFS nel /dati directory come segue per abilitare Zlib compressione:
$ sudo Mount -o Compress = Zlib /Dev /SDB1 /Data
Per impostare a Zlib Livello di compressione (diciamo, livello 7), è possibile montare il filesystem BTRFS nel /dati directory come segue:
$ sudo Mount -o Compress = zlib: 7 /dev /sdb1 /dati
Abilitare Zstd compressione, montare il filesystem BTRFS in /dati directory come segue:
$ sudo Mount -o Compress = zstd /dev /sdb1 /data
Per impostare a Zstd Livello di compressione (diciamo, livello 10), è possibile montare il filesystem BTRFS nel /dati directory come segue:
$ sudo Mount -o Compress = ZSTD: 10 /dev /sdb1 /dati
Il filesystem BTRFS che hai creato sul SDB1 la partizione dovrebbe essere montata nel /dati directory come puoi vedere nello screenshot qui sotto.
$ df -h /dati
Test di compressione del filesystem BTRFS:
Per verificare se il filesystem BTRFS comprime i file che si trovano sul filesystem BTRFS, monterò il filesystem BTRFS sul /dati directory con il Compress-Force opzione. Userò il livello di compressione più alto dell'algoritmo di compressione ZSTD per la dimostrazione.
Innanzitutto, sconvolta il filesystem BTRFS che potresti aver montato sul /dati directory come segue:
$ sudo umount /dati
Montare il filesystem BTRFS con il livello di compressione più alto (livello 15) del Zstd algoritmo di compressione nel /dati directory come segue:
$ sudo Mount -o Compress -Force = ZSTD: 15 /Dev /SDB1 /Data
Ho copiato 717 Mb di dati sul filesstem BTRFS montato su /dati directory. Come puoi vedere, solo 661 MB lo spazio del disco è utilizzato sul filesystem BTRFS anche se i dati archiviati nel filesystem sono 717 MB in misura. Quindi, la compressione a livello di System BTRFS funziona.
Montare un filesystem BTRFS abilitato a compressione al boot:
Se si desidera montare automaticamente il filesystem BTRFS al momento dell'avvio con la compressione abilitata (cosa che molto probabilmente fai), questa sezione fa per te.
Innanzitutto, trova l'UUID del filesystem BTRFS che si desidera abilitare la compressione e montare automaticamente al momento dell'avvio come segue:
$ sudo btrfs show /dati
Come puoi vedere, l'UUID del filesystem BTRFS è A8E75A9D-A6F6-4C6E-BE41-C10BC1077AA2 nel mio caso. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.
Apri il /etc/fstab file con il nano Editor di testo come segue:
$ sudo nano /etc /fstab
Digitare nella riga seguente alla fine del /etc/fstab file:
UUID = A8E75A9D-A6F6-4C6E-BE41-C10BC1077AA2 /DATA BTRFS Compress = LZO 0 0
NOTA: Sostituisci l'UUID del filesystem BTRFS con il tuo. Inoltre, cambia l'opzione di montaggio e l'algoritmo di compressione come preferisci.
Una volta che hai finito, premere + X seguito da Y E per salvare il /etc/fstab file.
Per avere effetto le modifiche, riavviare il computer con il seguente comando:
$ sudo riavvia
Una volta che il tuo computer si avvia, il filesystem BTRFS dovrebbe essere montato nel /dati directory come puoi vedere nello screenshot qui sotto.
$ df -h /dati
Conclusione:
In questo articolo, ho discusso degli algoritmi di compressione supportati dal filesystem BTRFS: LZO, ZLIB e ZSTD. Ti ho anche mostrato come abilitare la compressione a livello di filesystem in un filesystem BTRFS.