Lvm-mirroring » История » Редакция 7
Редакция 6 (Константин Пильник, 2016-04-01 21:35) → Редакция 7/16 (Константин Пильник, 2016-04-01 21:36)
h1. Lvm-mirroring, перенос lvm-раздела online с минимальным downtime Добавление (nbd, aoe, loop(nfs)) в группу, далее loop0 некоторое транзитное блочное устройство, в представленном (худшем) сценарии - это файл, лежащий на nfs шаре, подключенный через losetup, в лучшем сценарии - aoe/nbd-устройство (перенос с транзитного устройства на основное не требуется. <pre> losetup -f nfs-share/path-to_big-sparse-file pvcreate /dev/loop0 vgextend vgnane /dev/loop0 </pre> Конвертируем исходный раздел в raid1, дожидаемся синхронизации. <pre> lvconvert -m1 --type raid1 vgname/lvname /dev/loop0 </pre> снимаем нагрузку с исходной хост-системы (shutdown vds) и расклеиваем исходный раздел, готовим половинку зеркала к отсоединению <pre> lvconvert --splitmirrors 1 --name transit_lvname vgname/lvname /dev/loop0 lvchange -an vgname/transit_lvname vgsplit vgname transit_vgname /dev/loop0 losetup -d /dev/loop0 </pre> на целевой машине принимаем транзитный раздел в целевую группу <pre> lvrename transit_vgname transit_lvname lvname vgmerge vgname transig_vgname vgchange -ay vgname/lvname </pre> том виден, включаем нагрузку на целевой хост-системе (start vds), запускаем перенос с транзитного устройства на целевое <pre> lvconvert -m1 --type raid1 vgname/lvname </pre> дожидаемся синхронизации, и отклеиваем транзитное устройство <pre> lvconvert -m0 vgname/lvname /dev/loop0 vgreduce vgname /dev/loop0 losetup -d /dev/loop0 </pre>