Há alguns anos que eu sempre formato meus PCs seguindo um mesmo padrão usando volumes lógicos com LVM, mas o tempo passou e chegou a hora de mudar e a escolha foi o Btrfs que já está bastante estável.
Há pouco mais de quatro anos eu montei meu desktop atual e instalei a mais recente versão do Ubuntu na época (se não me engano a 14.04), de lá pra cá só estava fazendo atualizações chegando até ao 18.04 mas era hora de fazer uma formatação e se livrar da lixarada que sempre sobra depois de tantas atualizações. Era hora de aproveitar e experimentar o novo. Por que não!?
Não totalmente novo assim pois já fazia algum tempo que estava testando o btrfs como sistema de arquivos para o meu /home, montei algumas máquinas virtuais para testes e por fim cheguei a algumas considerações e a um novo padrão para minhas formatações.
Considerando uma máquina com um único disco, o padrão de formatação foi por muito tempo como abaixo:
- sda1 (512MB) – fat32 – /boot/efi
- sda2 (1GB) – ext4 – /boot
- sda3 (todo o disco) lvm pv
- Dentro desta partição LVM eu criava meu “/” com cerca de 50GB e o restante ficava alocado para swap, /home etc.
Com poucas modificações este esquema me atendia desde 2005 ou até antes. Eventualmente eu poderia mudar isso por alguma razão pontual como por exemplo eu abolia o “/boot” colocando no lugar o “/”, ou não configurava a partição de EFI em máquina não necessitavam dela, ou descia mais um pouco isso ai deixando o sda2 para o Windows em dual boot (prática inclusive que não adota há alguns anos) etc.
Depois de muitos anos usando aquele esquema eu resolvi começar a buscar novos esquemas fazendo alguns testes eu cheguei a um novo padrão:
- sda1 (512MB) – fat32 – /boot/efi
- sda2 (8GB) – ext4 – /LinuxRecover
- sda3 (50GB) – btrfs – subvolume “/”
- sda4 (todo o disco) – btrfs – inicialmente subvolume “/home” e outros que precisem ser preservados entre formatações
Tal como no esquema anterior este esquema pode ter algumas variações para atender cada cenário, como o acréscimo das partições para Windows e consequente necessidade de usar partições estendidas etc mas as mudanças mais notáveis ai são:
- o “/LinuxRecover” que eu passei a adotar para boots adicionais sem instalação. Ali eu coloco uma ou mais imagens ISO que me permitem dar boot na máquina diretamente pelo grub para testes ou mesmo para reinstalação do sistema, mas isso será tema de outro post;
- A minha partição “/” virou oficialmente uma partição comum formatada com btrfs e tamanho fixo. Isso porque notei que esta partição praticamente nunca exige mais do que estes 50GB, quando surge necessidade isso costuma ser culpa de algum diretório especifico que pode ser movido para outro volume ou disco;
- Não havendo um segundo disco disponível a última partição primária (sda4) é formatada também como btrfs e lá podem habitar os outros subvolumes necessários para sobreviver a uma formatação do “/” como /var/log, /var/lib/mysql, /home etc;
- Sem partição de swap. Anteriormente o swap era alocado em um volume no LVM consumindo o mesmo tamanho da RAM para que em casos de necessidade eu pudesse hibernar o sistema, mas francamente eu só fiz isso umas 4 vezes nos últimos 20 anos que uso Linux então ela foi abandonada.
O que eu ganhei com isso?
A partição “Linux Recover” me permite não só a recuperação do sistema como também fazer testes rápidos que antes me obrigava a ter um pendrive disponível ou a criação de uma máquina virtual;
O abandono do LVM me permite uma configuração mais limpa e rápida do sistema;
A adoção do BTRFS me permite fazar praticamente tudo que se fazia com o LVM mas de forma mais simples e rápida como manter snapshots do sistema para recuperação rápida de falhas;
A falta do swap não tem causado transtornos. O objetivo maior de sua existência pra mim, que era a hibernação, nunca funcionou 100% e quando funcionava o tempo de recuperação era muito maior do que se eu desse boot do zero e abrisse todos os programas novamente, para suprir alguma necessidade do sistema com a falta de swap eu deixo o zram instalado que simula uma swap na própria memória (tema para outro post).
Se isso vai me atender perfeitamente eu ainda não, mas ao menos neste inicioo de uso (dois meses) estou bastante satisfeito.
Olá camarada, bom artigo.
Estou pensando em testar o btrfs. Para no futuro utilizar esse file system nos servidores.
Utilizo ubuntu server 18.04 nos novos servidores.
Poderia me contar a sua experiência na utilização do btrfs até este momento, e se posso fazer o mesmo procedimento do lvm (acrescentando mais disco ou coisa parecida)?
Grato.
Olá Carlos,
Ainda não não me entusiasmei em colocar btrfs nos servidores não, mas é tentador. Dentre as vantagens que tenho visto são:
1 Trabalhar com snapshots no btrfs é muito mais rápido e prático do que com LVM.
2 Você pode adicionar mais discos a sua VM e colocá-los em RAID 0, 1 ou 5 e inclusive mudar de um para outro, com todo o sistema online. Alias esta me parece ser uma das premissas do projeto, que tudo (ou quase tudo) deve ser feito com o filesystem montado.
3 Se você lida com conteiners, o docker trabalha diretamente com os snapshots do btrfs sem ficar fazendo gambiarras. Se isso melhora a performance eu não sei, mas fica mais “limpo” do que o método tradicional sobre outros sistemas de arquivos
4 Não notei qualquer degradação na performance do meu ambiente então na pior das hipóteses considero que neste ponto ele é igual ao que tinha sem ele
5 Tal como você pode atualizar seu volume de “ext2” para “ext3” ou de “ext3” para “ext4”, você também pode migrar de “ext4” para o “btrfs” sem perda de dados (este eu fiz questão de testar e embora tenha feito em uma máquina de testes, fiquei bastante satisfeito em ver que funcionou de verdade)
Sugiro que antes de partir para o seu primeiro servidor que monte um ambiente de testes e “brinque” bastante com ele, depois verifique a compatibilidade das suas ferramentas com ele. Nos meus testes e no uso ao longo destes meses por exemplo, eu descobri que uma das ferramentas de backups lá do meu ambiente só consegue fazer backup granular das minhas VMs se elas estiverem formatadas com ext3, então elas estariam fora de cogitação para migrar até a troca da ferramenta; Em meu desktop eu usava muito o Dropbox mas em uma das últimas atualizações do ano passado esta ferramenta passou a suportar apenas ext4 no Linux (eu abandonei o Dropbox e adotei outra ferramenta, mas pode não ser seu caso). Teste todos os cenários, simule e mude onde possível, com certeza onde você migrar não haverá motivo para arrependimento.