Um valor alto “usado” para um dispositivo em “btrfs filesystem show” representa um problema? Uma operação de balanceamento deve ser executada?

2

Eu tenho um laptop com um SSD Samsung 840 de 500 GB e instalei o openSUSE 12.3 com o btrfs como sistema de arquivos.

Há alguns dias recebi uma mensagem do meu navegador da Web sobre a impossibilidade de salvar seu arquivo de favoritos. Pouco tempo depois, meu computador ficou instável e não conseguiu inicializar corretamente novamente. A inicialização em um sistema ativo e a exclusão de alguns dos snapshots anteriores (tirados automaticamente pelo snapper) corrigiram o problema para que eu pudesse inicializar novamente.

Antes da falha, o sistema de arquivos estava aproximadamente 70% cheio, conforme relatado pelo df, pelo sistema de arquivos btrfs show e pelo sistema de arquivos btrfs df /.

Eu estava com a impressão de que quando df e filesystem df btrfs concordam que o sistema de arquivos tem muito espaço sobrando, então tudo deve ficar bem. A saída do sistema de arquivos btrfs show após excluir os instantâneos era:

Label: none  uuid: 9eeb0c9b-c419-49f1-8476-ea0f19d262b4
    Total devices 1 FS bytes used 252.33GB
    devid    1 size 449.61GB used 449.61GB path /dev/dm-1

A quantidade de bytes do FS usada é menor do que antes da falha (o que é esperado, já que os snapshots são contados nesse total pelo que eu entendi), enquanto os bytes do dispositivo usados (449.61GB) ainda estão mostrando como completos. p>

Então, minha pergunta é se deve ser considerado problemático quando os bytes de dispositivo usados se aproximam do tamanho total do dispositivo? No momento, estou executando uma operação de balanceamento apenas para estar segura, mas fiquei com a impressão de que os bytes de dispositivo usados representavam realmente o quanto do dispositivo havia sido reivindicado pelo btrfs até o momento, e que o valor usado dos bytes do FS era a medida real de quanto está realmente sendo usado agora.

Como uma operação de balanceamento consome muito tempo, e sujeita um SSD TLC NAND como o Samsung 840 a uma quantidade significativa de desgaste, isso é muito importante e é um grande problema do btrfs exigir que essas operações permaneçam estáveis regularmente .

    
por Quantumboredom 27.07.2013 / 19:57

1 resposta

1

A resposta é "sim". Uma justa descrição do problema é dada aqui

Essencialmente, um dispositivo completo significa que o btrfs não pode mais alocar mais "pedaços" e, por exemplo, pode estar em uma posição em que nenhum outro metadado possa ser alocado.

Se o valor usado dos bytes do FS for baixo (como era no meu caso), então uma operação de balanceamento pode resolver o problema. Por exemplo:

btrfs filesystem balance start -dusage=20 /

Este comando irá reequilibrar (e assim recuperar também algum espaço no dispositivo) todos os fragmentos que são 20% usados ou menos. Quanto maior o número (0-100%), mais trabalho será feito.

Parece provável que isso será tratado em segundo plano em algum momento no futuro, mas a partir do linux 3.14 isso ainda tem que ser feito manualmente, tanto quanto eu sei.

    
por 22.05.2014 / 23:50

Tags