Lvm-mirroring » История » Версия 7
Константин Пильник, 2016-04-01 21:36
| 1 | 1 | Константин Пильник | h1. Lvm-mirroring, перенос lvm-раздела online с минимальным downtime |
|---|---|---|---|
| 2 | |||
| 3 | 4 | Константин Пильник | Добавление (nbd, aoe, loop(nfs)) в группу, далее loop0 некоторое транзитное блочное устройство, в представленном (худшем) сценарии - это файл, лежащий на nfs шаре, подключенный через losetup, в лучшем сценарии - aoe/nbd-устройство (перенос с транзитного устройства на основное не требуется. |
| 4 | 1 | Константин Пильник | <pre> |
| 5 | 5 | Константин Пильник | losetup -f nfs-share/path-to_big-sparse-file |
| 6 | 1 | Константин Пильник | pvcreate /dev/loop0 |
| 7 | 2 | Константин Пильник | vgextend vgnane /dev/loop0 |
| 8 | 1 | Константин Пильник | </pre> |
| 9 | |||
| 10 | Конвертируем исходный раздел в raid1, дожидаемся синхронизации. |
||
| 11 | <pre> |
||
| 12 | lvconvert -m1 --type raid1 vgname/lvname /dev/loop0 |
||
| 13 | </pre> |
||
| 14 | 7 | Константин Пильник | снимаем нагрузку с исходной хост-системы (shutdown vds) и расклеиваем исходный раздел, готовим половинку зеркала к отсоединению |
| 15 | 1 | Константин Пильник | <pre> |
| 16 | lvconvert --splitmirrors 1 --name transit_lvname vgname/lvname /dev/loop0 |
||
| 17 | lvchange -an vgname/transit_lvname |
||
| 18 | vgsplit vgname transit_vgname /dev/loop0 |
||
| 19 | losetup -d /dev/loop0 |
||
| 20 | </pre> |
||
| 21 | на целевой машине принимаем транзитный раздел в целевую группу |
||
| 22 | <pre> |
||
| 23 | lvrename transit_vgname transit_lvname lvname |
||
| 24 | vgmerge vgname transig_vgname |
||
| 25 | 6 | Константин Пильник | vgchange -ay vgname/lvname |
| 26 | 1 | Константин Пильник | </pre> |
| 27 | 7 | Константин Пильник | том виден, включаем нагрузку на целевой хост-системе (start vds), запускаем перенос с транзитного устройства на целевое |
| 28 | 1 | Константин Пильник | <pre> |
| 29 | lvconvert -m1 --type raid1 vgname/lvname |
||
| 30 | </pre> |
||
| 31 | дожидаемся синхронизации, и отклеиваем транзитное устройство |
||
| 32 | <pre> |
||
| 33 | lvconvert -m0 vgname/lvname /dev/loop0 |
||
| 34 | vgreduce vgname /dev/loop0 |
||
| 35 | losetup -d /dev/loop0 |
||
| 36 | </pre> |