Eu finalmente percebi isso. A razão pela qual estava demorando tanto foi por causa da cota.
Eu desabilitei a execução:
sudo btrfs quota disable /my/mount/path/
Agora equilibra o meu fs em apenas alguns minutos.
Eu tenho um array RAID1 btrfs (duas partições de 891GiB em dois HDDs) no meu laptop. Quando executar btrfs balance
, leva muito tempo para ser concluído.
Eu sei que se eu gostaria de balancear todo o fs que levaria para sempre, é por isso que eu estou usando o filtro -usage como este, eu coloquei isso no loop porque eu nem sempre sei com qual número para começar.
for i in {1..100}; do sudo btrfs balance start -dusage=$i /my/mount/path/; done
Neste loop, o sudo só pergunta a minha senha pela primeira vez, ou se a balança levou muito tempo. Isso imprime cerca de 20 vezes
Done, had to relocate 0 out of 868 chunks
E depois de levar uma quantidade enorme de tempo, imprime
Done, had to relocate 1 out of 868 chunks
Por isso, ele só moveu 1 GB (ou 200 MB) de dados. Só não deveria levar tanto tempo para mover apenas 1GB de dados, eu posso copiar muito mais dados para este fs no décimo do tempo.
Esta é a entrada no meu fstab
:
UUID=<the uuid> /my/mount/path/ btrfs defaults,noatime,compress=lzo 0 0
Eu também tenho que mencionar que eu costumo fazer e também excluir instantâneos apenas no caso de eu fazer algo errado (merda acontece).
sudo btrfs subvolume list /my/mount/path/
ID 5238 gen 178224 top level 5 path SNAP/snap-2017-04-15
ID 5270 gen 178229 top level 5 path SNAP/snap-2017-04-17
ID 5272 gen 178228 top level 5 path SNAP/snap-2017-04-21
ID 5276 gen 178230 top level 5 path SNAP/snap-2017-04-25
ID 5284 gen 178232 top level 5 path SNAP/snap-2017-05-04
ID 5290 gen 178231 top level 5 path SNAP/snap-2017-05-10
ID 5291 gen 178229 top level 5 path SNAP/snap-2017-05-11
ID 5309 gen 178225 top level 5 path SNAP/snap-2017-05-11-22-52-30
ID 5310 gen 178226 top level 5 path SNAP/snap-2017-05-13
ID 5311 gen 178232 top level 5 path SNAP/snap-2017-05-15
ID 5312 gen 178227 top level 5 path SNAP/snap-2017-05-17
ID 5313 gen 178227 top level 5 path SNAP/snap-2017-05-18
Também tenho cotas ativadas para me ajudar a ver quanto foi modificado entre os instantâneos.
sudo btrfs qgroup show /my/mount/path/
qgroupid rfer excl
-------- ---- ----
0/5 774.25GiB 910.87MiB
0/3098 142.21GiB 0.00B
0/3119 39.38GiB 16.00EiB
0/5226 0.00B 16.00EiB
0/5228 0.00B 16.00EiB
0/5233 48.00KiB 16.00EiB
0/5236 96.00KiB 16.00EiB
0/5238 785.18GiB 46.57GiB
0/5270 768.99GiB 1.22MiB
0/5272 768.73GiB 1.36MiB
0/5276 766.70GiB 12.70MiB
0/5284 768.55GiB 3.33MiB
0/5290 772.23GiB 964.00KiB
0/5291 772.23GiB 912.00KiB
0/5309 773.77GiB 608.00KiB
0/5310 773.78GiB 1.09MiB
0/5311 773.56GiB 1.66MiB
0/5312 773.55GiB 2.16MiB
0/5313 774.32GiB 147.49MiB
O 16.00EiB
deve ser algum tipo de erro. Quem tem esse HDD?
Por que o saldo demora tanto para ser concluído? Eu realmente gosto dos recursos do btrfs, então eu prefiro ficar com ele.
Eu fornecerei qualquer informação extra que possa ser útil.
Tags performance btrfs