btrfs e falta de espaço livre

8

Eu converti minha partição ext4 para btrfs e excluí o subvolume save depois de fazer isso. Ativei a compactação (lzo) do sistema de arquivos no arquivo fstab e tudo está correto até agora.

Então forcei a compactação de todos os arquivos usando o comando de desfragmentação com o parâmetro -c que a nova compactação é aplicada a todos os arquivos.

Ao fazer isso, notei que meu ssd foi completamente preenchido - antes que eu tivesse 6gigs de espaço livre. Não, eu não tenho mais nada.

easteregg@x201s:~$ btrfs fi df /
Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

e

easteregg@x201s:~$ df -ha
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda1          75G   60G  852M  99% /

Então agora. Como posso recuperar meu espaço livre. Eu esperava ganhar mais espaço por causa da compressão lzo. E agora!

O FS está montado corretamente.

easteregg@x201s:~$ mount
/dev/sda1 on / type btrfs (rw,noatime,ssd,compress=lzo)

Alguma idéia de como corrigir esse problema?

ovos de pascoa
fonte
Agora entendi: você não pode fazer o reequilíbrio online. Isso explica por que nada funcionou para mim. Então, eu apenas inicializei meu sistema de recuperação e apenas fiz um reequilíbrio de todo o disco. Depois, executei o comando de desfragmentação com a compactação ativada. Agora eu tenho cerca de 17 shows de espaço livre! bom :)
easteregg 31/07/2012
1
Como prática recomendada, mantenha apenas um conjunto mínimo de capturas instantâneas e remova as desnecessárias para evitar desperdício de espaço no volume, porque o btrfs é um sistema de arquivos de copiar em gravar, à medida que o tempo passa, mais e mais blocos de dados serão alterados, fazendo com que os instantâneos ocupem cada vez mais espaço no disco.
Terry Wang
2
Veja também esta pergunta , que tem uma explicação completa e comentários úteis.
Ignis

Respostas:

8

Eu sei que essa pergunta é antiga - mas até hoje o comando balance resolve esse problema:

Durante a conversão, muito espaço será revestido para mover as coisas para ele. Uma vez alocado, não será mais exibido como "livre" ou "não alocado". Para corrigir isso, basta iniciar um balanço

btrfs balance start "path"

você também pode dizer ao comando balance, para equilibrar apenas os pedaços, que são usados ​​para uma certa porcentagem - como 0%, o que significa que os pedaços estão vazios:

btrfs balance start "path" -dusage=0 -musage=0

parâmetro -d significa opções para os dados. parâmetro -m significa opções para os metadados.

jogar com o comando de equilíbrio, deve ajudar.

wuppi
fonte
5

Veja a saída de btrfs fi df:

Data: total=50.00GB, used=49.17GB
System: total=32.00MB, used=4.00KB
Metadata: total=24.50GB, used=9.86GB

A totalparte é o espaço alocado, enquanto usedé o realmente usado pelo btrfs. A diferença entre totale used(em torno de 15 GB) é o espaço que falta. Como você pode ver, ele já foi alocado para blocos de metadados.

Eu só tenho experiência com btrfs, mas não acho que uma conversão ext4 seja a melhor maneira de criar um sistema de arquivos btrfs bem definido. Felizmente, você pode reequilibrar todo o sistema de arquivos para refazer todas as alocações.

Como sempre, use backups.

ramslök
fonte