Проект

Общее

Профиль

Lvm-mirroring » История » Версия 3

Константин Пильник, 2016-04-01 21:29

1 1 Константин Пильник
h1. Lvm-mirroring, перенос lvm-раздела online с минимальным downtime
2
3 3 Константин Пильник
Добавление (nbd, aoe, loop(nfs)) в группу, далее loop0 некоторое транзитное блочное устройство, в представленном (худшем) сценарии - это файл, лежащий на nfs шаре, подключенный через losetup, в лучшем сценарии - aoe/nbd-устройство (в этом случае перенос с транзитного устройства на основное не требуется.
4 1 Константин Пильник
<pre>
5
pvcreate /dev/loop0
6 2 Константин Пильник
vgextend vgnane /dev/loop0
7 1 Константин Пильник
</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>