Proxmox. Миграция виртуальных машин и контейнеров

Материал из Wiki
Перейти к навигации Перейти к поиску

Миграция между нодами PVE с разделами ZFS

Требования


Требования для миграции все те же, что и для репликации: Proxmox. Репликация виртуальных машин и контейнеров

  • Репликация работает ТОЛЬКО на разделах ZFS (используя технологию клонирования ZFS разделов)
  • На обоих хостах в кластере должен быть раздел ZFS с одинаковым именем (объем НЕобязательно должен быть одинаковым)
  • При миграции ВМ и КТ на разделе ZFS хоста, на который мигрируем, создаются новые Датасеты-ZFS-клоны для каждой ВМ или КТ, то есть, по сути, миграция ВМ - это Датасет-клон-ZFS на хосте, на который мигрируем, на старом датасет удаляется

Миграция контейнера

Миграция КОНТЕЙНЕРА 100 (при условии что настроена репликация КОНТЕЙНЕРА 100 с pve1 на pve2) проходит довольно быстро (что неудивительно, ведь реплика образа ВД уже имеется на pve2)

КОНТЕЙНЕР 100 исчезнет на pve1 и появится на pve2

При этом в настройках репликации КОНТЕЙНЕРА 100 мы увидим что Target поменялся с pve2 на pve1

То есть после миграции КОНТЕЙНЕРА 100 с pve1 на pve2, он начал реплицироваться обратно на pve1

Если мы проведем обратные действия и мигрируем КОНТЕЙНЕР 100 на pve1, то он снова автоматически начнет реплицироваться на pve2

Миграция ВМ

HINTS

  • При миграции, по сути, удаляется датасет-zfs, содержащий образ ВД, с одного хоста и создается на втором, а также переносится файл настройки (mv /etc/pve/nodes/pve1/qemu-server/100.conf /etc/pve/nodes/pve2/qemu-server/ или обратно)
  • МИГРАЦИЯ ПРИ НАЛИЧИИ СНЭПШОТОВ НЕВОЗМОЖНА. Необходимо удалить все снэпшоты
  • МИГРАЦИЯ ПРИ НАСТРОЕННОЙ РЕПЛИКАЦИИ НЕВОЗМОЖНА. Необходимо удалить репликацию, затем запустить миграцию, а затем снова создать репликацию, если необходимо
  • По сути, мигрировать при настроенной репликации можно командой: mv /etc/pve/nodes/pve1/qemu-server/100.conf /etc/pve/nodes/pve2/qemu-server/
  • При этом мы теряем новые данные с момента последней синхронизации через репликацию

ОШИБКА "proxmox can't migrate vm with local cd/dvd"

Образ cd/dvd, прикрепленный к ВМ, лежит на хранилище, в свойствах которого не стояла галка "Shared",

ошибка возникала даже после того как образ и даже сам cd-rom от машины я отключил

РЕШЕНИЕ

В свойствах хранилища, на котором лежит образ cd/dvd, подключенный к машине, включить галку "Shared"

Миграция ВМ между нодами PVE с разделами iSCSI или RBD

Собираем кластер из 2-х нод PVE: Proxmox. Кластер

Подключаем к любой ноде блочное устройство (например, RDB из системы CEPH). После подключения блочное устройство автоматически появится как локальное хранилище на всех нодах кластера: Proxmox. Mount Ceph RBD image

Проверяем статус кластера

pvecm status

Expected votes: - для успешной миграции этот параметр должен быть 2 (устанавливается по-умолчанию при создании кластера из 2-х нод), если нет - вводим в консоли (обе ноды должны быть онлайн): pvecm expected 2

...
Cluster information
-------------------
Name:             pve-cluster
Config Version:   4
Transport:        knet
Secure auth:      on
Quorum information
------------------
Date:             Tue Mar 28 21:24:44 2023
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000002
Ring ID:          1.5c
Quorate:          Yes
Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           2
Flags:            Quorate
Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 192.168.199.180
0x00000002          1 192.168.199.188 (local)
...

Вариант 1. Обе ноды PVE онлайн

ПКМ на ВМ - Migrate - target: pve02

Произойдет живая миграция. ВМ не выключится. ВМ исчезнет на pve01 и через несколько секунд появится на pve02, так как виртуальный ЖД, подключенный к ВМ, остался все на том же сетевом SAN хранилище, по сути мигрирует только настройка ВМ и опертивная память.

Вариант 2. Нода pve01 офлайн

В данном случае миграцию через веб-интерфейс выполнить не получится

Необходимо ввести следующую команду на оставшейся онлайн ноде pve02:

pvecm expected 1

Теперь в консоли pve02 просто переносим конфиг машины в директорию pve02:

mv /etc/pve/nodes/pve01-test/qemu-server/100.conf /etc/pve/nodes/pve02-test/qemu-server/

ВМ появится в веб-интерфейсе pve02.

Когда pve01 вернется онлайн - вводим в консоли:

pvecm expected 2

Теперь снова можно делать живую миграцию обратно на pve01.