Bem-vindo ao mundo do BTRFS. Tem algumas características tentadoras, mas também algumas questões irritantes.
Em primeiro lugar, algumas informações sobre sua configuração, parece que você tem quatro unidades em um volume "RAID 10" do BTRFS (portanto, todos os dados são armazenados duas vezes em discos diferentes). Este volume BTRFS é então dividido em subvolumes em diferentes pontos de montagem. Os subvolumes compartilham um conjunto de espaço em disco, mas possuem números de inode separados e podem ser montados em locais diferentes.O BTRFS aloca espaço em "pedaços", um pedaço é alocado para uma classe específica de dados ou metadados. O que pode acontecer (e parece que aconteceu no seu caso) é que todo o espaço livre é alocado a blocos de dados, não deixando espaço para metadados
Parece também que (por razões que não entendo completamente) que os BTRFs "esgotam" o espaço de metadados antes que o indicador da proporção de espaço de metadados utilizado atinja 100%.
Isso parece ser o que aconteceu no seu caso, há muito espaço livre para dados, mas nenhum espaço livre que não tenha sido alocado para blocos e espaço livre insuficiente nos fragmentos de metadados existentes.
A correção é executar um "rebalanceamento". Isso moverá dados para que alguns trechos possam ser retornados para o pool livre "global", onde eles podem ser realocados como partes de metadados
btrfs fi balance start -dusage=5 /mnt/durable
O número após -dusage
define quão agressivo é o rebalanceamento, ou seja, quão perto de esvaziar os blocos devem ser para serem reescritos. Se a balança diz que reescreveu 0 blocos tente novamente com um valor maior de -dusage
.
Se a balança falhar, eu tentaria reinicializar e / ou liberar algum espaço removendo os arquivos.