Esse recurso do sistema de arquivos economizará muito espaço em disco e economizará muito tempo que você gastaria comprimindo seus arquivos manualmente.
Neste artigo, vou mostrar como ativar a compactação no nível do sistema de arquivos BTRFS em um sistema de arquivos BTRFS. Então vamos começar.
Pré -requisitos:
Para experimentar os exemplos deste artigo,
Eu tenho um disco rígido de 20 GB sdb Na minha máquina Ubuntu. Eu criei 2 partições sdb1 e sdb2 Neste disco rígido. Vou usar a partição sdb1 neste artigo.
$ sudo lsblk -e7
Seu disco rígido ou SSD pode ter um nome diferente do meu, assim como as partições. Então, certifique -se de substituí -los por seus a partir de agora.
Se você precisar de ajuda para instalar o sistema de arquivos BTRFS no Ubuntu, verifique meu artigo Instale e use BTRFs no Ubuntu 20.04 LTS.
Se você precisar de ajuda para instalar o sistema de arquivos BTRFS no Fedora, verifique meu artigo Instale e use BTRFs no Fedora 33.
Algoritmos de compressão BTRFS:
No momento da redação deste artigo, o sistema de arquivos BTRFS suporta os seguintes algoritmos de compactação:
i) lzo: LZO é um algoritmo de compressão em tempo real sem perdas. LZO divide os dados em blocos e comprime/descompacteu os dados por blocos em tempo real. É o algoritmo de compactação padrão do sistema de arquivos BTRFS.
ii) Zlib: Zlib é uma biblioteca usada para compactação de dados. Ele usa o algoritmo de compressão de dados deflate. O algoritmo de compressão de dados deflate é uma combinação dos algoritmos de codificação LZ77 e Huffman. O sistema de arquivos BTRFS suporta o algoritmo de compressão de dados ZLIB.
Você também pode especificar o nível de compressão que deseja. O nível pode ser qualquer número de 1 para 9. Um nível mais alto indica uma taxa de compressão mais alta. Portanto, o nível 9 salvará mais espaço em disco que o nível 1 (o nível 9 tem uma taxa de compressão mais alta que o nível 1). A menos que você especifique um nível de compressão Zlib para usar, o sistema de arquivos BTRFS usará o nível de compactação ZLIB 3 por padrão.
ZSTD: ZSTD ou Zstandard é um algoritmo de compressão de dados sem perdas de alto desempenho. Foi desenvolvido no Facebook por Yann Collect. Sua taxa de compressão é comparável ao algoritmo esvaziado que é usado em Zlib, mas é mais rápido. O sistema de arquivos BTRFS suporta o algoritmo de compressão de dados ZSTD.
Você também pode especificar o nível de compressão que deseja. O nível pode ser qualquer número de 1 para 15. Um nível mais alto indica uma taxa de compressão mais alta. Portanto, o nível 15 salvará mais espaço em disco que o nível 1 (o nível 15 tem uma taxa de compressão mais alta que o nível 1). A menos que você especifique um nível de compressão ZSTD para usar, o sistema de arquivos BTRFS usará o nível de compactação ZSTD 3 por padrão.
Criando um sistema de arquivos BTRFS:
Para experimentar a compactação de dados no nível do sistema de arquivos BTRFS, você precisa criar um sistema de arquivos BTRFS.
Para criar um sistema de arquivos BTRFS com o rótulo dados no sdb1 Partição, execute o seguinte comando:
$ sudo mkfs.BTRFS -L DATA /DEV /SDB1
Monte um sistema de arquivos BTRFS com compactação ativada:
Para ativar a compactação no nível do sistema de arquivos BTRFS, você deve montar o sistema de arquivos BTRFS que você criou no sdb1 partição com o comprimir ou compressa-força opção de montagem.
i) Compressa a opção de montagem: O comprimir Opção de montagem simplesmente ativará a compactação no nível do sistema de arquivos BTRFS. O sistema de arquivos BTRFS determinará se a compactação torna o arquivo que deve ser compactado maior que o tamanho do arquivo original (não compactado). Se a compactação tornar o tamanho do arquivo maior que o original, o sistema de arquivos BTRFS não comprimirá esse arquivo.
ii) opção de montagem de força de compressão: Ao contrário do comprimir Opção de montagem, se o sistema de arquivos BTRFS for montado usando o compressa-força Opção de montagem, então todos os arquivos no sistema de arquivos BTRFS serão compactados mesmo quando a compressão aumentar o arquivo.
Crie um diretório /dados com o seguinte comando:
$ sudo mkdir -v /dados
Para ativar LZO Compressão, monte o sistema de arquivos BTRFS que você criou anteriormente no /dados Diretório com o seguinte comando:
$ sudo monte -o compact = lzo /dev /sdb1 /dados
Para ativar a força LZO Compressão, monte o sistema de arquivos BTRFS que você criou anteriormente no diretório /dados da seguinte forma:
$ sudo monte -o compress force = lzo /dev /sdb1 /dados
Da mesma maneira, você pode montar o sistema de arquivos BTRFS no /dados diretório o seguinte para ativar Zlib compressão:
$ sudo monte -o compact = zlib /dev /sdb1 /dados
Para definir a Zlib Nível de compressão (digamos, nível 7), você pode montar o sistema de arquivos BTRFS no /dados diretório da seguinte maneira:
$ sudo monte -o compact = zlib: 7 /dev /sdb1 /dados
Para ativar Zstd compressão, monte o sistema de arquivos BTRFS no /dados diretório da seguinte maneira:
$ sudo monte -o compact = zstd /dev /sdb1 /dados
Para definir a Zstd Nível de compressão (digamos, nível 10), você pode montar o sistema de arquivos BTRFS no /dados diretório da seguinte maneira:
$ sudo monte -o compress = zstd: 10 /dev /sdb1 /dados
O sistema de arquivos BTRFS que você criou no sdb1 a partição deve ser montada no /dados diretório como você pode ver na captura de tela abaixo.
$ df -h /dados
Testando a compactação do sistema de arquivos BTRFS:
Para testar se o sistema de arquivos BTRFS comprime os arquivos que estão no sistema de arquivos BTRFS, montarei o sistema de arquivos BTRFS no /dados diretório com o compressa-força opção. Vou usar o nível de compressão mais alto do algoritmo de compressão ZSTD para a demonstração.
Primeiro, desmonte o sistema de arquivos BTRFS que você pode ter montado no /dados diretório da seguinte maneira:
$ sudo umount /dados
Monte o sistema de arquivos BTRFS com o nível de compressão mais alto (nível 15) do Zstd algoritmo de compressão no /dados diretório da seguinte maneira:
$ sudo monte -o compress force = zstd: 15 /dev /sdb1 /dados
Eu copiei sobre 717 MB de dados no sistema de arquivos BTRFS montado no /dados diretório. Como você pode ver, apenas 661 MB O espaço do disco é usado no sistema de arquivos BTRFS, mesmo que os dados armazenados no sistema de arquivos sejam 717 MB no tamanho. Então, a compactação no nível do sistema de arquivos BTRFS está funcionando.
Montagem de uma compactação habilitada pelo sistema de arquivos BTRFS na inicialização:
Se você deseja montar o sistema de arquivos BTRFS automaticamente no momento da inicialização com a compactação ativada (o que você provavelmente faz), esta seção é para você.
Primeiro, encontre o UUID do sistema de arquivos BTRFS, que você deseja ativar a compactação e montar automaticamente no tempo de inicialização da seguinte forma:
$ sudo btrfs arquivos sistemas /dados
Como você pode ver, o uuid do sistema de arquivos BTRFS é A8E75A9D-A6F6-4C6E-BE41-C10BC1077AA2 No meu caso. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.
Abra o /etc/fstab arquivo com o Nano Editor de texto da seguinte forma:
$ sudo nano /etc /fstab
Digite a seguinte linha no final do /etc/fstab arquivo:
UUID = A8E75A9D-A6F6-4C6E-BE41-C10BC1077AA2 /DATA BTRFS COMPRESSE = LZO 0 0
OBSERVAÇÃO: Substitua o Uuid do sistema de arquivos BTRFS com o seu. Além disso, mude a opção de montagem e o algoritmo de compressão como você gosta.
Depois de terminar, pressione + X seguido pela Y e Para salvar o /etc/fstab arquivo.
Para que as alterações entrem em vigor, reinicie seu computador com o seguinte comando:
$ sudo reiniciar
Depois que o seu computador botas, o sistema de arquivos BTRFS deve ser montado no /dados diretório como você pode ver na captura de tela abaixo.
$ df -h /dados
Conclusão:
Neste artigo, discuti os algoritmos de compactação suportados pelo BTRFS FileSystem: LZO, ZLIB e ZSTD. Eu também mostrei como ativar a compactação no nível do sistema de arquivos em um sistema de arquivos BTRFS.