btrfs: выделены ОГРОМНЫЕ метаданные

14

У меня есть SSD-диск объемом 256 ГБ, на котором я преобразовал свою корневую FS-файловую систему ext4 в btrfs. Я удалил резервный том ext4, включил сжатие и рекурсивно дефрагментировал его, чтобы включить его для всех файлов.

btrfs fi df / есть вывод, который меня беспокоит, хотя:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

Если я правильно понимаю вывод, 65 ГБ (1/4 моего диска!) Зарезервировано для метаданных и недоступно для хранения файлов. Если это правильно, это будет огромная трата моего дискового пространства. Я правильно понимаю? Можно ли изменить размер выделенной метаданными части моего диска?

Gnurou
источник

Ответы:

16

Во-первых, убедитесь, что ваше ядро ​​и пользовательское пространство BTRFS обновлены.

Согласно часто задаваемым вопросам BTRFS , вы не можете изменить размер блока метаданных. Однако вы можете попробовать запустить btrfs balance start -m <точка монтирования>, которая перераспределяет метаданные по всему диску и, как побочный эффект, возможно, освобождает нераспределенное пространство.

Если это не сработает, возможно, вам придется сделать резервную копию ваших данных и воссоздать файловую систему. (Посмотрите на это для получения дополнительной информации.)

hololeap
источник
Спасибо за ответ. Ядро 3.11.2, btrfs-tools v0.20-rc1, поэтому я не думаю, что я здесь устарел. Я попытался установить баланс, но затем наткнулся на следующую ошибку: spinics.net/lists/linux-btrfs/msg26977.html и не хочу компилировать новое ядро ​​только для этого. : P Что мне интересно, так это то, являются ли эти 65 ГБ блоком метаданных, размер которого нельзя изменить, или этот термин относится к чему-то другому. В противном случае я действительно не понимаю, как блок метаданных был создан с таким размером в первую очередь.
Gnurou
К сожалению, я всего лишь пользователь btrfs, а не эксперт, поэтому моя помощь ограничена. В любом случае возможно, что в процессе конвертации из ext4 есть изъян.
Hololeap
11
Итак, необходимый патч превратил его в стабильное ядро, и я попробовал то, что вы предложили. Балансировка действительно уменьшила объем зарезервированной области для метаданных до 3 ГБ, и заявленное пространство теперь отображается как свободное место в 'df'. Обратите внимание, что вам не нужно перебалансировать весь диск, вы можете выполнить команду btrfs balance start -m <точка монтирования>, чтобы перебалансировать только метаданные, что намного быстрее. Спасибо за проницательный ответ!
Gnurou
Рад, что смог помочь!
Отпуск
msgstr "вы не можете изменить размер блока метаданных". Это не имеет отношения к этому вопросу - часто задаваемые вопросы говорят о размере единицы выделения, а не о количестве места, выделенного для метаданных.
Владимир Пантелеев
1

Это уменьшит размер метаданных.

sudo btrfs balance start -v -musage=0 /path
Вениамин
источник