Перенос виртуальной машины на другую vg » История » Версия 4
Владимир Ипатов, 03.03.2021 22:27
1 | 1 | Владимир Ипатов | h1. Перенос виртуальной машины на другую vg |
---|---|---|---|
2 | 1 | Владимир Ипатов | |
3 | 1 | Владимир Ипатов | h2. Виртуальная машина на одном узле |
4 | 1 | Владимир Ипатов | |
5 | 1 | Владимир Ипатов | Данная операция является потенциально опасной, следует выполнять ее только при полном понимании описываемых операций и последствий. |
6 | 1 | Владимир Ипатов | Данная операция требует остановки машины на все время копирования содержимого. |
7 | 1 | Владимир Ипатов | |
8 | 1 | Владимир Ипатов | h3. Подготовка |
9 | 1 | Владимир Ипатов | |
10 | 1 | Владимир Ипатов | Получить информацию о машине: |
11 | 1 | Владимир Ипатов | <pre> |
12 | 1 | Владимир Ипатов | gnt-instance info ИМЯ |
13 | 1 | Владимир Ипатов | </pre> |
14 | 1 | Владимир Ипатов | |
15 | 1 | Владимир Ипатов | Больше всего будет интересовать информация о диске: |
16 | 1 | Владимир Ипатов | |
17 | 1 | Владимир Ипатов | Например: |
18 | 1 | Владимир Ипатов | <pre> |
19 | 1 | Владимир Ипатов | Disks: |
20 | 1 | Владимир Ипатов | - disk/0: plain, size 10.0G |
21 | 1 | Владимир Ипатов | access mode: rw |
22 | 1 | Владимир Ипатов | logical_id: xenvg/8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0 |
23 | 1 | Владимир Ипатов | on primary: /dev/xenvg/8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0 (253:9) |
24 | 1 | Владимир Ипатов | name: None |
25 | 1 | Владимир Ипатов | UUID: 3c7fb626-21d2-4e99-9365-6639a13456b5 |
26 | 1 | Владимир Ипатов | </pre> |
27 | 1 | Владимир Ипатов | |
28 | 1 | Владимир Ипатов | Выключить машину |
29 | 1 | Владимир Ипатов | |
30 | 1 | Владимир Ипатов | <pre> |
31 | 1 | Владимир Ипатов | gnt-instance shutdown ИМЯ |
32 | 1 | Владимир Ипатов | </pre> |
33 | 1 | Владимир Ипатов | |
34 | 1 | Владимир Ипатов | На мастер узле остановить ganeti-watcher, ganeti: |
35 | 1 | Владимир Ипатов | <pre> |
36 | 1 | Владимир Ипатов | service ganeti-watcher stop |
37 | 1 | Владимир Ипатов | service ganeti stop |
38 | 1 | Владимир Ипатов | </pre> |
39 | 1 | Владимир Ипатов | Сделать резервную копию конфига ganeti. |
40 | 1 | Владимир Ипатов | <pre> |
41 | 1 | Владимир Ипатов | cp /var/lib/ganeti/config.data ~/ |
42 | 1 | Владимир Ипатов | </pre> |
43 | 1 | Владимир Ипатов | |
44 | 1 | Владимир Ипатов | берем имя тома из информации об инстансе, после / |
45 | 1 | Владимир Ипатов | <pre> |
46 | 1 | Владимир Ипатов | в нашем случае это 8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0 |
47 | 1 | Владимир Ипатов | </pre> |
48 | 1 | Владимир Ипатов | |
49 | 1 | Владимир Ипатов | Копируем в буфер обмена |
50 | 1 | Владимир Ипатов | |
51 | 1 | Владимир Ипатов | Также из информации об инстансе берем точный размер тома |
52 | 1 | Владимир Ипатов | |
53 | 1 | Владимир Ипатов | создаем том с таким же именем на новой vg (здесь она будет называться ssd) |
54 | 1 | Владимир Ипатов | |
55 | 1 | Владимир Ипатов | <pre> |
56 | 1 | Владимир Ипатов | lvcreate -L10G -n 8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0 ssd |
57 | 1 | Владимир Ипатов | </pre> |
58 | 1 | Владимир Ипатов | |
59 | 1 | Владимир Ипатов | открываем файл /var/lib/ganeti/config.data, ищем по данному имени, находим блок наподобие этого (json упакован без отступов и перевода строки, читать неудобно, так что нужно пользоваться поиском по подстроке): |
60 | 1 | Владимир Ипатов | |
61 | 1 | Владимир Ипатов | <pre> |
62 | 2 | Владимир Ипатов | "disks": [{"logical_id": ["xenvg", "8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0"], "uuid": "3c7fb626-21d2-4e99-9365-6639a13456b5", "dev_type": "plain", "params": {}, "mode": "rw", "iv_name": "disk/0", "size": 10240}] |
63 | 1 | Владимир Ипатов | </pre> |
64 | 1 | Владимир Ипатов | |
65 | 1 | Владимир Ипатов | вот указание vg и имени тома: |
66 | 1 | Владимир Ипатов | |
67 | 1 | Владимир Ипатов | <pre> |
68 | 1 | Владимир Ипатов | {"logical_id": ["xenvg", "8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0"], |
69 | 1 | Владимир Ипатов | </pre> |
70 | 1 | Владимир Ипатов | |
71 | 1 | Владимир Ипатов | В нем меняем vg "xenvg" на "ssd" |
72 | 1 | Владимир Ипатов | |
73 | 1 | Владимир Ипатов | Сохраняем файл. |
74 | 1 | Владимир Ипатов | |
75 | 1 | Владимир Ипатов | Запускаем ганети: |
76 | 1 | Владимир Ипатов | <pre> |
77 | 1 | Владимир Ипатов | service ganeti start |
78 | 1 | Владимир Ипатов | </pre> |
79 | 1 | Владимир Ипатов | |
80 | 1 | Владимир Ипатов | Если в кластере более одного узла, то запускаем копирование конфигурации: |
81 | 1 | Владимир Ипатов | <pre> |
82 | 1 | Владимир Ипатов | gnt-cluster redist-conf |
83 | 1 | Владимир Ипатов | </pre> |
84 | 1 | Владимир Ипатов | |
85 | 1 | Владимир Ипатов | проверяем, применились ли изменения, с помощью команды info: |
86 | 1 | Владимир Ипатов | |
87 | 1 | Владимир Ипатов | <pre> |
88 | 1 | Владимир Ипатов | gnt-instance info ИМЯ |
89 | 1 | Владимир Ипатов | </pre> |
90 | 1 | Владимир Ипатов | |
91 | 1 | Владимир Ипатов | Если все в порядке, то запускаем машину и ganeti-watcher |
92 | 1 | Владимир Ипатов | <pre> |
93 | 1 | Владимир Ипатов | gnt-instance startup ИМЯ |
94 | 1 | Владимир Ипатов | service ganeti-watcher start |
95 | 1 | Владимир Ипатов | </pre> |
96 | 1 | Владимир Ипатов | |
97 | 1 | Владимир Ипатов | |
98 | 3 | Владимир Ипатов | h2. Виртуальная машина на двух узлах |
99 | 3 | Владимир Ипатов | |
100 | 3 | Владимир Ипатов | Возможны два варианта производства этой операции: с остановкой и без. |
101 | 3 | Владимир Ипатов | Вариант без остановки более сложный и трудоемкий. |
102 | 3 | Владимир Ипатов | |
103 | 3 | Владимир Ипатов | h2. Перенос с остановкой |
104 | 3 | Владимир Ипатов | |
105 | 3 | Владимир Ипатов | машину следует перед переносом остановить и перевести в plain (сделать ее машиной на одном узле): |
106 | 3 | Владимир Ипатов | |
107 | 3 | Владимир Ипатов | <pre> |
108 | 3 | Владимир Ипатов | gnt-instance shutdown ИМЯ |
109 | 3 | Владимир Ипатов | gnt-instance modify -t plain ИМЯ |
110 | 3 | Владимир Ипатов | </pre> |
111 | 3 | Владимир Ипатов | |
112 | 3 | Владимир Ипатов | После этого машина останется только на primary узле, дальнейшие операции проводятся так же, как для машины на одном узле, см. выше. |
113 | 3 | Владимир Ипатов | |
114 | 3 | Владимир Ипатов | по завершении переноса машина переводится в drbd режим: |
115 | 3 | Владимир Ипатов | |
116 | 3 | Владимир Ипатов | <pre> |
117 | 3 | Владимир Ипатов | gnt-instance modify -t drbd -n gnt2 ИМЯ |
118 | 3 | Владимир Ипатов | </pre> |
119 | 3 | Владимир Ипатов | где gnt2 - имя нового secondary узла |
120 | 3 | Владимир Ипатов | |
121 | 3 | Владимир Ипатов | h2. Перенос без остановки |
122 | 4 | Владимир Ипатов | |
123 | 4 | Владимир Ипатов | Данная операция является потенциально опасной, следует выполнять ее только при полном понимании описываемых операций и последствий. |
124 | 4 | Владимир Ипатов | |
125 | 4 | Владимир Ипатов | h3. Подготовка |
126 | 4 | Владимир Ипатов | |
127 | 4 | Владимир Ипатов | получаем информацию об инстансе, интересует то, на каком узле он запущен и информация о дисках: |
128 | 4 | Владимир Ипатов | |
129 | 4 | Владимир Ипатов | <pre> |
130 | 4 | Владимир Ипатов | gnt-instance info ИМЯ |
131 | 4 | Владимир Ипатов | </pre> |
132 | 4 | Владимир Ипатов | |
133 | 4 | Владимир Ипатов | <pre> |
134 | 4 | Владимир Ипатов | Disks: |
135 | 4 | Владимир Ипатов | - disk/0: drbd, size 10.0G |
136 | 4 | Владимир Ипатов | access mode: rw |
137 | 4 | Владимир Ипатов | nodeA: gnt2.pproduct, minor=1 |
138 | 4 | Владимир Ипатов | nodeB: *gnt1.pproduct, minor=1* |
139 | 4 | Владимир Ипатов | port: 11001 |
140 | 4 | Владимир Ипатов | on primary: /dev/drbd1 (147:1) in sync, status ok |
141 | 4 | Владимир Ипатов | on secondary: */dev/drbd1* (147:1) in sync, status ok |
142 | 4 | Владимир Ипатов | name: None |
143 | 4 | Владимир Ипатов | UUID: 4dd153b6-f975-4c3f-a2f7-9dddbd6a3dc2 |
144 | 4 | Владимир Ипатов | child devices: |
145 | 4 | Владимир Ипатов | - child 0: plain, size 10.0G |
146 | 4 | Владимир Ипатов | logical_id: *ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_data* |
147 | 4 | Владимир Ипатов | on primary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_data (253:4) |
148 | 4 | Владимир Ипатов | on secondary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_data (253:4) |
149 | 4 | Владимир Ипатов | name: None |
150 | 4 | Владимир Ипатов | UUID: 4a24c9fb-cd8e-4034-b908-18d3d83c246d |
151 | 4 | Владимир Ипатов | - child 1: plain, size 128M |
152 | 4 | Владимир Ипатов | logical_id: ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_meta |
153 | 4 | Владимир Ипатов | on primary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_meta (253:5) |
154 | 4 | Владимир Ипатов | on secondary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_meta (253:5) |
155 | 4 | Владимир Ипатов | name: None |
156 | 4 | Владимир Ипатов | UUID: 37dc4222-a29a-42d0-a1a5-3e2c9b0aec8a |
157 | 4 | Владимир Ипатов | |
158 | 4 | Владимир Ипатов | </pre> |