
У меня на ноутбуке массив btrfs RAID1 (два раздела по 891GiB на двух HDD). Когда я его запускаю, btrfs balance
он занимает огромное количество времени.
Я знаю, что если бы я хотел сбалансировать всю файловую систему, это заняло бы целую вечность, поэтому я использую фильтр -usage следующим образом; я поместил это в цикл for, потому что не всегда знаю, с какого числа начать.
for i in {1..100}; do sudo btrfs balance start -dusage=$i /my/mount/path/; done
В этом цикле sudo спрашивает мой пароль только в первый раз, или если баланс занял много времени. Это выводится около 20 раз
Done, had to relocate 0 out of 868 chunks
И затем, после того как это заняло огромное количество времени, он печатает
Done, had to relocate 1 out of 868 chunks
Это значит, что он переместил только 1 ГБ (или 200 МБ) данных. Перемещение всего 1 ГБ данных не должно занять так много времени, я могу скопировать гораздо больше данных в эту файловую систему за десятую часть времени.
Это запись на моем сайте fstab
:
UUID=<the uuid> /my/mount/path/ btrfs defaults,noatime,compress=lzo 0 0
Я также должен упомянуть, что я обычно делаю и удаляю снимки экрана на всякий случай, если сделаю что-то неправильно.
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
У меня также включены квоты, которые помогают мне видеть, сколько данных было изменено между моментальными снимками.
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
Это 16.00EiB
, должно быть, какая-то ошибка. У кого есть такой HDD?
Почему балансировка занимает так много времени? Мне очень нравятся функции btrfs, поэтому я предпочитаю оставаться с ними.
решение1
Я наконец понял. Причина, по которой это занимало так много времени, была в квоте.
Я отключил его, запустив:
sudo btrfs quota disable /my/mount/path/
Теперь он балансирует мою ФС всего за несколько минут.