Недавно я обнаружил чудо современной файловой системы, btrfs. Поработав с ним несколько часов, я решил погрузиться в него и конвертировать весь раздел /home
используя инструмент btrfs-convert
. После того, как этот процесс был завершен, у меня осталась совершенно функциональная файловая система, за исключением странного факта, что он, казалось, имел почти 80 гигабайт метаданных (для блочного устройства 420 ГБ), и он, казалось, выделил 123 гигабайта (30 % от всего устройства) для метаданных.
root@asmodeus:/home/robbie# btrfs fi df /home
Data, single: total=249.50GiB, used=210.80GiB
System, single: total=32.00MiB, used=24.00KiB
Metadata, single: total=123.00GiB, used=79.69GiB
Затем я понял, что забыл последний шаг в процессе преобразования файловой системы - дефрагментацию. Я инициировал дефрагментацию с помощью btrfs fi defrag -v -c -r -f /home
(В статье о конвертации ext3 в btrfs говорилось только об использовании флага рекурсии, но я решил, что это не помешает добавить некоторое сжатие в микс и Сразу же запишите измененный диск на диск и будьте многословны, потому что я так катался), и это работает уже добрый час. Сначала я собирался оставить вопрос, пока не закончится дефрагментация, но я заметил, что, хотя количество метаданных медленно уменьшалось, мое использование диска фактически увеличивалось.
root@asmodeus:/home/robbie# btrfs fi df /home
Data, single: total=249.50GiB, used=223.15GiB
System, single: total=32.00MiB, used=24.00KiB
Metadata, single: total=123.00GiB, used=65.48GiB
Я заметил, что объем данных увеличился примерно на столько же, что и метаданные. Я мог видеть, что это временный артефакт добавления сжатия, и, возможно, после завершения дефрагментации все будет хорошо, но я все еще хотел бы знать, что случилось с нелепым распределением метаданных? Могу ли я уменьшить его?
Отчет о проделанной работе: после нескольких часов работы, вот как выглядит использование
robbie@asmodeus:~$ btrfs fi df /home
Data, single: total=249.50GiB, used=230.50GiB
System, single: total=32.00MiB, used=24.00KiB
Metadata, single: total=123.00GiB, used=12.23GiB
Использование метаданных сократилось почти на 60 гигабайт (вау), а использование данных увеличилось на 32 гигабайта (кажется, меньше, я переместил около 12 гигабайт мультимедийных файлов на внешний диск). С точки зрения использования диска все выглядит лучше, но остается вопрос, почему так много места выделяется? Теперь, когда я сократил количество метаданных, которые нужно хранить, могу ли я перераспределить часть пространства метаданных как пространство данных?