Linux tux ninja

Como aplicar compressão a partições btrfs

O Btrfs é um dos sistemas de arquivos mais importantes, com suporte incluído na maioria das distribuições Linux atuais.
Desde a versão do kernel Linux 2.6.38, ele passa a permitir a escolha do algoritmo de compressão: zlib ou lzo.
Este texto é voltado a quem já está usando o Btrfs em algum volume ou partição e deseja obter um melhor aproveitamento do espaço em disco, com o uso de seus recursos nativos de compressão.
Se você ainda não decidiu sobre o sistema de arquivos a usar, leia o artigo Qual sistema de arquivos escolher para meu novo drive SSD, onde faço uma comparação entre Btrfs, XFS, JFS e o tradicional EXT4.
Sistema de arquivos Btrfs - logo
Se você tem interesse específico no sistema de arquivos Btrfs, leia o texto Introdução ao sistema de arquivos Btrfs — Parte 2, onde abordamos na prática, outros recursos básicos deste sistema de arquivos.
Você ainda tem a opção de usar a caixa de busca do site para ler outros artigos sobre os sistemas de arquivos suportados no Linux (tem bastante coisa!) 😉

Os algoritmos de compressão do Btrfs

Este post baseia-se na minha experiência com o Btrfs instalado em um SSD, sob o sistema operacional Debian 8.3 “Jessie”, rodando o kernel 4.3, instalado a partir dos backports.
As opções de compressão do sistema de arquivos Btrfs, atualmente, são as seguintes:

  • compress=zlib — Oferece melhor taxa de compressão. Padrão do sistema.
  • compress=lzo — Método de compressão desenvolvido nos laboratórios da Fujitsu, oferece um nível de compressão mais baixo. É projetado para oferecer melhor desempenho de acesso e menos sobrecarga à CPU.
  • compress=no — indica que a compressão está desabilitada no sistema.
  • compress-force=<method> – Habilita o recurso até mesmo para arquivos que não respondem completamente ao processo de compressão — tais como imagens dd de disco, vídeos, arquivos mp3 etc.
    Esta opção pode ser usada a partir do kernel 2.6.38.
    A opção <method> pode ser zlib ou lzo.

Uma destas opções deve ser fornecida ao montar o seu sistema de arquivos ou pode ser inscrita no seu arquivo /etc/fstab.
Veja um exemplo de configuração de uma unidade SSD, usando Btrfs e compressão lzo:

cat /etc/fstab | grep btrfs

UUID=d36af294-1e99-4e60-af85-fd9964135dcf /               btrfs   defaults,compress=lzo        0       1

A menos que você use ‘compress-force’, o Btrfs não irá afetar arquivos que já tenham passado por algum processo de compressão anterior, tais como vídeos, músicas, imagens, backups etc.
Volumes com grande quantidade de arquivos multimídia, portanto, terão baixa taxa de compressão.
Você pode montar um sistema de arquivos Btrfs com compressão lzo, com o seguinte comando:

sudo mount -o compress=lzo /dev/sdb /mnt

Se você preferir o algoritmo de compressão zlib, use o seguinte:

sudo mount -o compress=zlib /dev/sdb /mnt

Uma vez que o zlib já é o padrão, ele não precisa ser mencionado. Por isto, o comando acima, também pode ficar assim:

sudo mount -o compress /dev/sdb /mnt

O mesmo se aplica ao fstab — se você não mencionar o algoritmo que deseja usar, o sistema irá escolher o lzo.
Leia o artigo Sobre o comando mount, se quiser saber mais sobre seu funcionamento.

Referências

Introdução ao sistema de arquivos ZFS.
https://btrfs.wiki.kernel.org/index.php/Mount_options.
https://wiki.archlinux.org/index.php/Btrfs.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *