Olá pinguins, tudo bem?
Já tem um tempo que venho utilizando o BTRFS e estou amando. Claro que filesystem é algo que fica ali por baixo dos panos e a gente só deveria pensar nele durante a instalação, porém ele possui recursos muito interessantes, sendo o principal as snapshots (para quem ainda não conhece, fica a dica, é maravilhoso).
No entanto, já tem algum tempo que venho tendo alguns problemas. De maneira quase que aleatória, o sistema entra em um estado de read-only, me deixando como única opção reiniciar o sistema. No início até achei que era um problema no SSD que eu tinha acabado de comprar, até fiz uma formatação completa no disco para saber se ele tinha algum setor com problema e não encontrei nada, porém isso fez o problema ficar menos frequente por um tempo.
Ah quando digo que é aleatório, significa que já aconteceu copiando pastas grandes ou navegando enquanto executava alguma outra tarefa, mas não aconteceu baixando jogas com mais de 60GB na Steam. Em resumo, não tenho um método para reproduzir esse erro com 100% de certeza.
Começou a ficar um pouco mais preocupante, quando o mesmo problema ocorreu no meu notebook. Acontece com uma frequência muito menor, porém como ele é a minha ferramenta de estudos, acaba que preocupa bem mais.
Em um chat com o GPT, estudando as possibilidades do que poderia estar acontecendo, surgiu a possibilidade de que o sistema esteja enchendo o espaço para metadados que o BTRFS aloca e com isso tendo problemas para fazer a manipulação dos blocos de memória (ou chuncks, como o BTRFS chama).
Como proposta de solução, ficou:
- Executar o balanceamento do sistema
sudo btrfs balance start ....
; - Excluir algumas snapshots.
Mesmo ao fazer isso, o uso dos metadados continua alto (acima de 70% segundo o GPT é alto) e por consequência, não sei dizer se essa realmente é a causa do erro.
Agora vamos as dados técnicos
Notebook
OS: Fedora Linux 41 (Workstation Edition) x86_64
Kernel: 6.11.10-300.fc41.x86_64
$ sudo btrfs filesystem usage /
Overall:
Device size: 221.97GiB
Device allocated: 218.00GiB
Device unallocated: 3.97GiB
Device missing: 0.00B
Device slack: 0.00B
Used: 212.35GiB
Free (estimated): 6.45GiB (min: 4.46GiB)
Free (statfs, df): 6.45GiB
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 452.17MiB (used: 0.00B)
Multiple profiles: no
Data,single: Size:207.00GiB, Used:204.52GiB (98.80%)
/dev/mapper/luks-7a66b20d-407c-43fb-8984-17ac8d4faac7 207.00GiB
Metadata,DUP: Size:5.47GiB, Used:3.91GiB (71.54%)
/dev/mapper/luks-7a66b20d-407c-43fb-8984-17ac8d4faac7 10.94GiB
System,DUP: Size:32.00MiB, Used:48.00KiB (0.15%)
/dev/mapper/luks-7a66b20d-407c-43fb-8984-17ac8d4faac7 64.00MiB
Unallocated:
/dev/mapper/luks-7a66b20d-407c-43fb-8984-17ac8d4faac7 3.97GiB
PC
OS: Fedora Linux 41 (Workstation Edition) x86_64
Kernel: 6.11.10-300.fc41.x86_64
$ sudo btrfs filesystem usage /
Overall:
Device size: 892.45GiB
Device allocated: 590.04GiB
Device unallocated: 302.41GiB
Device missing: 0.00B
Device slack: 0.00B
Used: 585.93GiB
Free (estimated): 305.33GiB (min: 305.33GiB)
Free (statfs, df): 305.33GiB
Data ratio: 1.00
Metadata ratio: 1.00
Global reserve: 512.00MiB (used: 0.00B)
Multiple profiles: no
Data,single: Size:586.01GiB, Used:583.09GiB (99.50%)
/dev/mapper/luks-739d03ba-1749-4a35-8474-78e6b9f1968b 586.01GiB
Metadata,single: Size:4.00GiB, Used:2.85GiB (71.16%)
/dev/mapper/luks-739d03ba-1749-4a35-8474-78e6b9f1968b 4.00GiB
System,single: Size:32.00MiB, Used:96.00KiB (0.29%)
/dev/mapper/luks-739d03ba-1749-4a35-8474-78e6b9f1968b 32.00MiB
Unallocated:
/dev/mapper/luks-739d03ba-1749-4a35-8474-78e6b9f1968b 302.41GiB