Миграция с минимальным простоем виртуальных машин KVM между отдельными кластерами Proxmox VE

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Некоторое время назад потребовалось решить задачу по переносу виртуальных машин KVM с одного кластера Proxmox VE на другой с минимальным временем простоя. В PVE «из коробки» такой возможности нет, но, как оказалось, онлайн‑миграцию виртуальных машин между кластерами можно выполнить средствами KVM. Процедуру переноса я подробно опишу в этом руководстве.

Важные замечания

  1. Процедура протестирована для Proxmox VE 6.x

  2. На серверы кластера между которыми производится миграция должен быть настроен вход по SSH без пароля

Условные обозначения

  • pve-01 - сервер с которого будем выполнять миграцию

  • pve-02 - сервер на который будем выполнять миграции

  • 100 - исходный ID виртуальной машины

  • 120 - ID виртуальной машины после миграции

  • pc-i440fx-2.11 - чипсет виртуальной машины, в вашем случае может отличаться, ниже я покажу как определить

  • 192.168.0.3 - IP-адрес сервера на который будем мигрировать виртуальную машину

Процедура

  1. Зайдём по SSH на оба сервера

  2. На сервере pve-01 найдём чипсет который эмулируется для нашей виртуальной машины. В нашем случае это будет pc-i440fx-2.11

    cat << EOF | socat STDIO UNIX:/run/qemu-server/$SRCID.qmp | grep --color current
    { "execute": "qmp_capabilities" }
    { "execute": "query-commands" }
    { "execute": "query-machines" }
    EOF
  3. Для удобства установим переменные окружения на обоих серверах

    SRCID=100
    DSTID=120
    CHIPSET=pc-i440fx-2.11
    DSTIP=192.168.0.3
    DSTPORT=60000
  4. Получим на сервере pve-01 команду запуска виртуальной машины

    ps ax | grep $SRCID
  5. Скопируем с pve-01 на pve-02 файл конфигурации виртуальной машины. После выполнения этого шага, в веб-интерфейсе PVE появится конфигурация виртуальной машины с ID $DSTID

    scp /etc/pve/local/qemu-server/$SRCID.conf $DSTIP:/etc/pve/local/qemu-server/$DSTID.conf
  6. В интерфейсе PVE сервера pve-02 из конфигурации виртуальной машины $DSTID удалим все диски (Hard Disk) и добавим заново такое же количество дисков такого же размера.

  7. В консоли сервера pve-02 запустим виртуальную машину $DSTID в режиме ожидания миграции. Для этого модифицируем строку запуска полученную на шаге 4:

    1. $SRCID заменить на $DSTID

    2. Удалить из строки ,x509 если есть

    3. Убедиться, что в строке запуска указан -machine type=$CHIPSET полученный на шаге 2

    4. Добавить -incoming tcp:$DSTIP:$DSTPORT -S

    /usr/bin/kvm -id $DSTID <остальные параметры> -incoming tcp:$DSTIP:$DSTPORT -S
  8. Запустим миграцию

    qm monitor $SRCID
    # Опционально можно ограничить скорость передачи данных
    qm> migrate_set_speed 100M
    qm> migrate -b tcp:$DSTIP:$DSTPORT
    
    # Прогресс можно наблюдать командой
    qm> info migrate
  9. Запустим qm monitor на сервере pve-02, чтобы отслеживать прогресс. Когда копирование данных завершится, исходная VM перейдёт в состояние VM status: paused (postmigrate)

    qm monitor $DSTID
    qm> info status
    
    VM status: paused (postmigrate)
  10. В qm monitor на сервере pve-02 запустим перенесённую виртуальную машину

    qm> c
  11. На сервере pve-01 остановим исходную виртуальную машину

    qm stop $SRCID
  12. Проверяем, что после миграции всё работает как ожидалось и удаляем исходную виртуальную машину

    qm destroy $SRCID

Надеюсь это руководство сможет сэкономить время и нервы инженерам, перед которыми возникнет аналогичная задача.

Источник: https://habr.com/ru/articles/741114/


Интересные статьи

Интересные статьи

Новая версия нашего браузера для ПК (1.42) включает в себя два нововведения, которые предоставляют пользователям кошелька Brave новые возможности для криптотранзакций:1. Aurora, виртуальная машина Eth...
Без особой помпы вышла новая версия Proxmox Virtual Environment - 7.1. Эта опенсорс-платформа виртуализации, построенная на базе Debian, KVM, LXC, Ceph, давно зарекомендовала себя. Авторы, кстати, гов...
На днях мы выпустили текстовую версию очередного интервью для нашего подкаста «ITMO Research_». В нем — поговорили о переключении с офисной работы в ИТ на полноценную научную деятельность. О своем опы...
Человеку свойственно опираться на различные теории – это придает уверенности. Когда мы ищем ответы в точных науках, очевидность теорий, подкрепленных проверками лабораторных испытаний...
Всем привет, сегодня я бы хотел рассказать вам об RC Cars, машинках на радиоуправлении. Это хобби и достаточно веселое. Лично для себя я нахожу в нем хоть какую-то доли реальности. Сидеть целым...