Bozaro

Конвертация ext2/ext3/ext4 в btrfs

by on Май.23, 2011, under Без рубрики

Решил я пощупать файловую систему btrfs, в основном, чтобы пощупать сжатие и дедубликацию данных.

Первое, что пришло в голову – сконвертировать существующий раздел из ext3 в btrfs. Для конвертации выполнил штатную утилиту:

btrfs-convert /dev/mapper/LVM-DISK1

По прошествии некоторого времени конвертация была успешно завершена, но результат меня сильно озадачил: при выполнении команды df разница «размер – (использовано + доступно)» была более 100Гб при размере раздела 400Гб. То есть, было «потеряно» более 25% дискового пространства. Я нашел две причины такого поведения…

Причина 1. Резервная копия для восстановления ext3

Причина оказалась достаточно проста: утилита btrfs-convert при изменении файловой системы, сохраняет метаданные ext3 для возможности отката. То есть, после конвертации в файловой системе уже будет один снимок – данные на момент конвертации.

В этом легко убедиться, если выполнить команду вида:

btrfs subvolume list /mnt/disk1/

Для удаления снимка можно воспользоваться командой:

btrfs subvolume delete /mnt/disk1/ext2_saved

После этого кол-во свободного места неторопливо поползло вверх.

Причина 2. Не оптимальная структура файловой системы

После выполнения команды:

btrfs fi df /mnt/disk1/

Я обратил внимание на безумный размер метаданных – их меньше чем данных всего раза в четыре.

После перестроения дерева командой:

btrfs fi balance /mnt/disk1/

Кол-во метаданных уменьшилось до 1Гб, а кол-во «потерянного» места – до 4Гб.


Leave a Reply

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...