Temos um servidor SuSE 12, sp3 (SLES, não openSuSE). Há apenas um disco em uso no sistema, o disco raiz com vários sistemas de arquivos montados com BTRFS.
Estamos vendo problemas em que um trabalho de "balanço btrfs" começa no meio do dia de produção. Isso parece travar o servidor, embora o que pareça estar acontecendo é que o processo de balanceamento está consumindo 100% da CPU e 100% de E/S.
Como temos apenas um disco e como o motivo da operação de balanceamento é balancear grupos de blocos em todos os dispositivos, realmente precisamos executar a operação de balanceamento?
Esta é a razão principal. Não é a única razão.
Minha resposta é um tanto anedótica. Descreverei dois cenários em que
btrfs balance
foi/é útil para mim. Em ambos os casos, o sistema de arquivos Btrfs existe em um único dispositivo. Trata-se de uso doméstico, mas a resposta pode lhe dar alguma pista.O primeiro dispositivo tem cerca de 1,8 TB. Eu usei o sistema de arquivos por alguns anos. Durante os últimos meses, o espaço livre oscilou abaixo de 100 GB, continuei adicionando novos arquivos e removendo alguns antigos.
Um dia eu bati "sem espaço no dispositivo", foi uma surpresa. Tradicionalmente eu uso
df
em vez debtrfs fi df
, a ferramenta relatou 0 bytes livres. Eu removi alguns arquivos descartáveis, alguns gigabytes, entãodf
relatei cerca de 20 GB livres. Consegui adicionar novos dados novamente. Em algum momentodf
saltou de cerca de 20 GB para 0 bytes livres. Depois disso, consegui adicionar mais alguns dados (megabytes em vez de gigabytes) até acertar "sem espaço".Isso se repetiu várias vezes, mas tive que me livrar de mais e mais arquivos para manter as coisas funcionando. O limite, que era de 20 GB quando o observei pela primeira vez, cresceu para cerca de 120 GB. Eventualmente, eu supostamente tinha 120 GB de espaço livre, mas só consegui escrever alguns gigabytes antes de clicar em "sem espaço".
btrfs balance start …
ajudou. Depois que terminou, gravei com sucesso cerca de 50 GB no sistema de arquivos.Veja o que
man 8 btrfs-balance
diz sobre "tornar o uso do grupo de blocos mais compacto" (usage
filtro, exemplos). Compare esta resposta , é muito mais técnica do que a minha história.O segundo dispositivo é o meu SSD. Percebo que
fstrim -v …
pode relatar menos bytes cortados do que eu esperava. Só depois quebtrfs balance start …
o valor atender à minha expectativa. Compare esta questão .Eu não balanceio meu SSD com frequência. Eu invoco
fstrim -v …
uma vez por semana mais ou menos; e só quando reconheço que aparou "muito pouco", sei que é hora de equilibrar (e aparar novamente).Então, sim, você pode precisar executar o balanceamento. O cenário com
fstrim
provavelmente não se aplica à sua configuração, mas aquele com "sem espaço restante" pode. Algumas dicas:man 8 btrfs-balance
fornece algumas informações. Combtrfs fi df
você provavelmente pode estimar se ainda precisa equilibrar e o-dusage=
que usar.