btrfs: ENORME metadados alocados

14

Eu tenho um disco SSD de 256 GB no qual converti meu FS ext4 raiz em btrfs. Apaguei o subvolume de backup ext4, habilitei a compactação e desfragmentei recursivamente para habilitá-lo em todos os arquivos.

btrfs fi df / tem uma saída que me preocupa:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

Se eu entendi a saída corretamente, 65 GB (1/4 do meu disco!) Estão reservados para metadados e não estão disponíveis para armazenamento de arquivos. Se isso estiver correto, seria um enorme desperdício de espaço em disco. Estou entendendo corretamente? A parte alocada em metadados do meu disco pode ser redimensionada?

Gnurou
fonte

Respostas:

16

Primeiro, verifique se o seu kernel e o espaço do usuário do BTRFS estão atualizados.

De acordo com as Perguntas frequentes do BTRFS , você não pode redimensionar o tamanho do bloco de metadados. Você pode, no entanto, tentar executar o btrfs balance start -m <ponto de montagem> que realocará os metadados em todo o disco e, como efeito colateral, possivelmente liberará espaço não alocado.

Se isso não funcionar, pode ser necessário fazer backup dos dados e recriar o sistema de arquivos. (Dê uma olhada nisso para obter mais informações.)

Hololeap
fonte
Obrigado pela resposta. O kernel é 3.11.2, o btrfs-tools é v0.20-rc1, então eu não acho que estou desatualizado aqui. Tentei executar um equilíbrio, mas depois atingi o seguinte bug: spinics.net/lists/linux-btrfs/msg26977.html e não tenho vontade de compilar um kernel mais recente apenas para isso. : P O que me pergunto é se esses 65 GB são o bloco de metadados que não pode ser redimensionado ou se esse termo se refere a outra coisa. Caso contrário, eu realmente não entendo como o bloco de metadados foi criado com esse tamanho em primeiro lugar.
Gnurou 4/10/2013
Infelizmente, sou apenas um usuário do btrfs e não um especialista, então minha ajuda é limitada. De qualquer forma, é possível que exista uma falha no processo de conversão do ext4.
hololeap
11
Portanto, o patch necessário entrou no kernel estável e tentei o que você sugeriu. De fato, o balanceamento reduziu a quantidade de área reservada para metadados para 3 GB, e o espaço reivindicado agora aparece como espaço livre em 'df'. Observe que você não precisa reequilibrar o disco inteiro; você pode fazer o btrfs balance start -m <ponto de montagem> para reequilibrar apenas os metadados, o que é muito mais rápido. Obrigado pela resposta perspicaz!
Gnurou 25/10
Ainda bem que pude ajudar!
hololeap
"você não pode redimensionar o tamanho do bloco de metadados". Isso é irrelevante para esta pergunta - as perguntas frequentes falam sobre o tamanho da unidade de alocação, não a quantidade de espaço alocado para os metadados.
Vladimir Panteleev 4/16/16
1

Isso diminuirá o tamanho dos metadados.

sudo btrfs balance start -v -musage=0 /path
Benjamin
fonte