Este recurso do sistema de arquivos irá poupar muito espaço em disco e muito tempo que você gastaria compactando seus arquivos manualmente.
Neste artigo, vou mostrar como habilitar 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,
- Você deve ter o sistema de arquivos Btrfs instalado em seu computador.
- Você precisa ter um disco rígido ou SSD com pelo menos 1 partição livre (de qualquer tamanho).
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. Portanto, certifique-se de substituí-los pelos 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 o 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 o Btrfs no Fedora 33.
Algoritmos de compressão Btrfs:
No momento em que este artigo foi escrito, o sistema de arquivos Btrfs oferece suporte aos seguintes algoritmos de compressão:
i) LZO: LZO é um algoritmo de compressão de bloco em tempo real sem perdas. O LZO divide os dados em blocos e compacta / descompacta os dados por blocos em tempo real. É o algoritmo de compressão padrão do sistema de arquivos Btrfs.
ii) ZLIB: ZLIB é uma biblioteca usada para compressã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 economizará mais espaço em disco do que o nível 1 (o nível 9 tem uma taxa de compressão mais alta do que o nível 1). A menos que você especifique um nível de compactação ZLIB a ser usado, 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 DEFLATE que é usado no 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 economizará mais espaço em disco do que o nível 1 (o nível 15 tem uma taxa de compressão mais alta do que o nível 1). A menos que você especifique um nível de compactação ZSTD a ser usado, o sistema de arquivos Btrfs usará a compactação ZSTD nível 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 habilitada:
Para habilitar a compactação no nível do sistema de arquivos Btrfs, você deve montar o sistema de arquivos Btrfs que criou no sdb1 partição com o comprimir ou força de compressão opção de montagem.
i) opção de montagem de compressão: O comprimir a opção de montagem irá simplesmente habilitar a compressão de nível de sistema de arquivos Btrfs. O sistema de arquivos Btrfs determinará se a compactação torna o arquivo a ser compactado maior do que o tamanho do arquivo original (descompactado). Se a compactação tornar o tamanho do arquivo maior do que o original, o sistema de arquivos Btrfs não compactará esse arquivo.
ii) opção de montagem com força de compressão: Ao contrário do comprimir opção de montagem, se o sistema de arquivos Btrfs for montado usando o força de compressão opção de montagem, então cada arquivo no sistema de arquivos Btrfs será compactado, mesmo quando a compactação torna o arquivo maior.
Crie um diretório /dados com o seguinte comando:
$ sudo mkdir -v / data
Para habilitar LZO compressão, monte o sistema de arquivos Btrfs que você criou anteriormente no /dados diretório com o seguinte comando:
$ sudo mount -o compress = lzo / dev / sdb1 / data
Para habilitar a força LZO compactação, monte o sistema de arquivos Btrfs que você criou anteriormente no diretório / data da seguinte maneira:
$ sudo mount -o compress-force = lzo / dev / sdb1 / data
Da mesma forma, você pode montar o sistema de arquivos Btrfs no /dados diretório da seguinte forma para habilitar ZLIB compressão:
$ sudo mount -o compress = zlib / dev / sdb1 / data
Para definir um ZLIB nível de compressão (digamos, nível 7), você pode montar o sistema de arquivos Btrfs no /dados diretório da seguinte forma:
$ sudo mount -o compress = zlib: 7 / dev / sdb1 / data
Para habilitar ZSTD compressão, monte o sistema de arquivos Btrfs no /dados diretório da seguinte forma:
$ sudo mount -o compress = zstd / dev / sdb1 / data
Para definir um ZSTD nível de compressão (digamos, nível 10), você pode montar o sistema de arquivos Btrfs no /dados diretório da seguinte forma:
$ sudo mount -o compress = zstd: 10 / dev / sdb1 / data
O sistema de arquivos Btrfs que você criou no sdb1 partição deve ser montada no /dados como você pode ver na imagem abaixo.
$ df -h / data
Testando a compactação do sistema de arquivos Btrfs:
Para testar se o sistema de arquivos Btrfs compacta os arquivos que estão no sistema de arquivos Btrfs, irei montar o sistema de arquivos Btrfs no /dados diretório com o força de compressão 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 forma:
$ sudo umount / data
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 forma:
$ sudo mount -o compress-force = zstd: 15 / dev / sdb1 / data
Eu copiei sobre 717 MB de dados no sistema de arquivos Btrfs montado no /dados diretório. Como você pode ver, apenas 661 MB Este espaço em disco é usado no sistema de arquivos Btrfs, embora os dados armazenados no sistema de arquivos sejam 717 MB no tamanho. Portanto, a compactação em nível de sistema de arquivos Btrfs está funcionando.
Montando um sistema de arquivos Btrfs habilitado para compactação na inicialização:
Se você deseja montar o sistema de arquivos Btrfs automaticamente no momento da inicialização com a compactação habilitada (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 momento da inicialização da seguinte forma:
show / data do sistema de arquivos $ sudo btrfs
Como você pode ver, o UUID do sistema de arquivos Btrfs é a8e75a9d-a6f6-4c6e-be41-c10bc1077aa2 No meu caso. Será diferente para você. Portanto, certifique-se de substituí-lo pelo 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 compress = lzo 0 0NOTA: Substitua o UUID do sistema de arquivos Btrfs pelo seu. Além disso, altere a opção de montagem e o algoritmo de compressão conforme desejar.
Assim que terminar, pressione
Para que as alterações tenham efeito, reinicie o computador com o seguinte comando:
$ sudo reboot
Assim que o seu computador inicializar, o sistema de arquivos Btrfs deve ser montado no /dados como você pode ver na imagem abaixo.
$ df -h / data
Conclusão:
Neste artigo, discuti os algoritmos de compactação suportados pelo sistema de arquivos Btrfs: LZO, ZLIB e ZSTD. Também mostrei como habilitar a compactação no nível do sistema de arquivos em um sistema de arquivos Btrfs.