2

Этот вопрос почти такой же, как btrfs: выделены ОГРОМНЫЕ метаданные , за исключением величины размера данных на разделе и новой версии ядра Linux 4.4.

Я пытаюсь сделать полный образ резервной копии раздела btrfs. btrfs fil usage показывает:

Overall:
    Device size:        4.50GiB
    Device allocated:   3.17GiB
    Device unallocated: 1.33GiB
    Device missing:       0.00B
    Used:               1.70GiB
    Free (estimated):   1.58GiB       (min: 936.52MiB)
    Data ratio:            1.00
    Metadata ratio:        2.00
    Global reserve:   512.00MiB       (used: 0.00B)

Data,single: Size:1.85GiB, Used:1.61GiB
    /dev/vda2      1.85GiB

Metadata,DUP: Size:640.00MiB, Used:49.38MiB
    /dev/vda2      1.25GiB

System,DUP: Size:32.00MiB, Used:16.00KiB
    /dev/vda2     64.00MiB

Я обнаружил, что метаданные занимают до 1,25 ГБ, тогда как реальный размер метаданных составляет всего менее 100 МБ. Как видите, весь объем диска составляет 4,5 ГБ. Такая трата пространства недопустима.

Я попытался запустить btrfs balance start -m и btrfs balance start -musage=x где x изменяется от 0 до 50, но ни один из них не помог.

Есть ли способ заставить btrfs уменьшить размер метаданных? Или есть ли какой-нибудь способ изменить размер раздела btrfs до размера, который он на самом деле занял?

1 ответ1

1

Прежде всего, BTRFS выделяет метаданные (и данные) по одному фрагменту за раз. Каждый кусок составляет 1 ГБ. Даже если выделен фрагмент метаданных, это не означает, что этот фрагмент полностью используется. Имейте в виду, что BTRFS также хранит файлы меньшего размера в метаданных, которые могут способствовать использованию метаданных с высокой степенью использования.

По умолчанию BTRFS также дублирует метаданные, чтобы увеличить вероятность восстановления вашей файловой системы в случае повреждения. Данные не дублируются.

Вы можете уменьшить использование метаданных, перебалансировав свои метаданные в единый профиль за счет шансов на восстановление, которые могут быть желательны в зависимости от вашего варианта использования. Вы делаете это так:

btrfs balance start -dconvert=single /mountpoint

Вы также можете искать смешанные группы блоков, которые позволят BTRFS не выделять отдельные порции метаданных, а хранить данные и метаданные в одних и тех же порциях.

Также стоит упомянуть, что когда вы запускаете баланс с использованием фильтра использования, вы говорите только о том, что балансные блоки имеют коэффициент использования меньше X.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .