Перенос виртуальной машины на другую vg » История » Версия 4
« Предыдущее -
Версия 4/8
(Разница(diff)) -
Следующее » -
Текущая версия
Владимир Ипатов, 03.03.2021 22:27
Перенос виртуальной машины на другую vg¶
Виртуальная машина на одном узле¶
Данная операция является потенциально опасной, следует выполнять ее только при полном понимании описываемых операций и последствий.
Данная операция требует остановки машины на все время копирования содержимого.
Подготовка¶
Получить информацию о машине:
gnt-instance info ИМЯ
Больше всего будет интересовать информация о диске:
Например:
Disks: - disk/0: plain, size 10.0G access mode: rw logical_id: xenvg/8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0 on primary: /dev/xenvg/8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0 (253:9) name: None UUID: 3c7fb626-21d2-4e99-9365-6639a13456b5
Выключить машину
gnt-instance shutdown ИМЯ
На мастер узле остановить ganeti-watcher, ganeti:
service ganeti-watcher stop service ganeti stop
Сделать резервную копию конфига ganeti.
cp /var/lib/ganeti/config.data ~/
берем имя тома из информации об инстансе, после /
в нашем случае это 8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0
Копируем в буфер обмена
Также из информации об инстансе берем точный размер тома
создаем том с таким же именем на новой vg (здесь она будет называться ssd)
lvcreate -L10G -n 8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0 ssd
открываем файл /var/lib/ganeti/config.data, ищем по данному имени, находим блок наподобие этого (json упакован без отступов и перевода строки, читать неудобно, так что нужно пользоваться поиском по подстроке):
"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}]
вот указание vg и имени тома:
{"logical_id": ["xenvg", "8aea288f-37ad-4cd0-8a76-1e36f4da32cb.disk0"],
В нем меняем vg "xenvg" на "ssd"
Сохраняем файл.
Запускаем ганети:
service ganeti start
Если в кластере более одного узла, то запускаем копирование конфигурации:
gnt-cluster redist-conf
проверяем, применились ли изменения, с помощью команды info:
gnt-instance info ИМЯ
Если все в порядке, то запускаем машину и ganeti-watcher
gnt-instance startup ИМЯ service ganeti-watcher start
Виртуальная машина на двух узлах¶
Возможны два варианта производства этой операции: с остановкой и без.
Вариант без остановки более сложный и трудоемкий.
Перенос с остановкой¶
машину следует перед переносом остановить и перевести в plain (сделать ее машиной на одном узле):
gnt-instance shutdown ИМЯ gnt-instance modify -t plain ИМЯ
После этого машина останется только на primary узле, дальнейшие операции проводятся так же, как для машины на одном узле, см. выше.
по завершении переноса машина переводится в drbd режим:
gnt-instance modify -t drbd -n gnt2 ИМЯ
где gnt2 - имя нового secondary узла
Перенос без остановки¶
Данная операция является потенциально опасной, следует выполнять ее только при полном понимании описываемых операций и последствий.
Подготовка¶
получаем информацию об инстансе, интересует то, на каком узле он запущен и информация о дисках:
gnt-instance info ИМЯ
Disks: - disk/0: drbd, size 10.0G access mode: rw nodeA: gnt2.pproduct, minor=1 nodeB: *gnt1.pproduct, minor=1* port: 11001 on primary: /dev/drbd1 (147:1) in sync, status ok on secondary: */dev/drbd1* (147:1) in sync, status ok name: None UUID: 4dd153b6-f975-4c3f-a2f7-9dddbd6a3dc2 child devices: - child 0: plain, size 10.0G logical_id: *ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_data* on primary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_data (253:4) on secondary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_data (253:4) name: None UUID: 4a24c9fb-cd8e-4034-b908-18d3d83c246d - child 1: plain, size 128M logical_id: ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_meta on primary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_meta (253:5) on secondary: /dev/ssd/590d122d-57bb-4a3d-a6d4-95542d42cf26.disk0_meta (253:5) name: None UUID: 37dc4222-a29a-42d0-a1a5-3e2c9b0aec8a