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