
поддерживает ли btrfs частичное преобразование файловой системы?
Сейчас я нахожусь в таком состоянии:
btrfs fi df .
Data, RAID5: total=9.83TiB, used=7.68TiB
System, RAID1: total=32.00MiB, used=704.00KiB
Metadata, RAID1: total=12.00GiB, used=8.61GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
И из-за ошибок, найденных в режиме raid5, я хочу перейти на raid1. Есть несколько причин, по которым я не делаю полную конвертацию прямо сейчас. Я хочу установить целевой режим на raid1. Таким образом, все новые данные будут помещены в raid1, и когда будет время, я смогу запустить полную перебалансировку (или мягкую)
Так возможно ли что-то подобное?
btrfs balance start -dconvert=raid1 -dusage=10 .
решение1
Ну, поскольку ни у кого другой информации не было, я просто попробовал и задокументировал свои шаги здесь.
btrfs balance start -dconvert=raid1 -dusage=10 .
Эта команда просто преобразовала куски, которые соответствовали фильтру (usage=10%). Не было никакого сжатия кусков (как при обычном балансе) и не было установки целевого уровня рейда с raid5 на raid1. Так что это было довольно бесполезно и создавало большие куски с в основном пустыми данными и пустой тратой времени.
Следующий подход заключался в использовании предельного фильтра и мягкого параметра для пошагового выполнения преобразования.
btrfs balance start -dconvert=raid1 -dlimit=500,soft .
Таким образом, файловая система была преобразована шаг за шагом.
Примечания:
- Уберите "пустые куски" баланса перед конвертацией. Это экономит время.
- во время этого процесса btrfs всегда будет помещать новые данные в куски старого raid-профиля. Я не нашел способа изменить это. Поэтому новые данные всегда будут помещаться в куски raid5 или будут созданы новые куски raid5 для хранения данных. После преобразования всей файловой системы это поведение, конечно, исчезнет.
- это полностью сработало онлайн :)