Миграция — это перенос виртуальной машины (ВМ) на другой узел. VMmanager позволяет выполнять миграцию ВМ как внутри одного кластера, так и в другой кластер.
Существует два типа миграции:
- без остановки ВМ (живая миграция) — ВМ остаётся доступной во время миграции;
- с остановкой ВМ — ВМ недоступна на время миграции.
Ограничения миграции
Для всех типов миграции
Миграция не может быть выполнена, если:
- исходный узел и узел назначения используют разные типы виртуализации. Например, исходный узел находится в кластере KVM, а узел назначения — в кластере LXD;
- у исходного кластера тип сетевых настроек "Маршрутизация";
- на ВМ с моделью добавления IP-адресов "Windows" не установлен QEMU Guest Agent;
- ВМ использует виртуальную сеть Route Reflector, которой нет в кластере назначения;
- если в исходном кластере или в кластере назначения настроена отказоустойчивость.
Для миграции в другой кластер
Миграция не может быть выполнена, если:
- на ВМ создана виртуальная сеть Full Mesh;
- у кластеров разные типы сетевых настроек;
- на исходном узле и узле назначения установлены ОС из разных семейств Linux. Например, на исходном узле ОС семейства Red Hat, а на узле назначения ОС семейства Debian;
- диск ВМ находится в NAS-хранилище и мигрирует в хранилище, отличное от файлового.
При миграции ВМ с опцией Разрешить подключения по протоколу SPICE в кластер, где подключения по SPICE запрещены, опция у ВМ останется включённой, но подключения по SPICE будут недоступны.
Для живой миграции
Миграция не может быть выполнена, если:
- на исходном узле или узле назначения версия QEMU ниже 2.0.0;
- версия QEMU на узле назначения ниже, чем на исходном узле.
В некоторых случаях миграция не может быть выполнена:
- если на исходном узле и узле назначения используются разные версии ОС;
- если на узле кластера включена вложенная виртуализация. Подробнее см. в статье Как отключить вложенную виртуализацию?
- если версия QEMU, которая использовалась в последний раз для запуска ВМ, несовместима с версией QEMU на узле назначения. В таких случаях может помочь синхронизация версий QEMU на узлах и перезапуск ВМ перед повторной миграцией.
После живой миграции ВМ может зависнуть по следующим причинам:
- несовпадение CPU в режиме эмуляции Host-passthrough;
- ошибка QEMU или libvirt;
- ошибка ядра ОС.
Для миграции из VMmanager 5
Ограничения перечислены в статье Миграция с VMmanager 5 на VMmanager 6.
Алгоритм миграции
- Копируется XML-описание виртуальной машины на сервер назначения.
- Если опция Сжимать диск VM перед миграцией включена, выполняется оптимизация файла диска ВМ. Оптимизация позволяет получить минимально возможный размер файла.
- Переносится диск виртуальной машины:
- если диск в локальном хранилище, он копируется на сервер назначения;
-
если диск в сетевом хранилище, он подключается к серверу назначения.
При живой миграции во время переноса QEMU периодически проверяет состояние виртуальной машины. Если исходные данные ВМ изменились, то скопированные данные переписываются на изменённые. Если виртуальная машина активно используется и данные постоянно меняются, миграция завершится с ошибкой.
- Виртуальная машина удаляется на исходном сервере.
- Виртуальная машина запускается на сервере назначения.
Миграция в ОС Astra Linux
При живой миграции в ОС Astra Linux для сертификатов безопасности libvirt используется пользователь node. В начале миграции платформа проверяет на узлах кластера наличие пользователя node и его присутствие в необходимых группах.
Если такой пользователь существует, платформа добавит его в нужные группы. Если пользователя нет, платформа создаст учётную запись с нужным наборов прав. Авторизация в системе под этим пользователем будет недоступна.
Запуск миграции
- Перейдите в раздел Виртуальные машины.
-
Выберите нужную ВМ → меню → Мигрировать или выделите нужные ВМ → → Мигрировать.
Если миграция доступна не для всех выбранных ВМ, то пункт меню будет содержать число ВМ, доступных для миграции. Например, Мигрировать (5).Групповая миграция через интерфейс платформы доступна только для ВМ, находящихся на одном узле кластера. При выборе ВМ с разных узлов групповая миграция будет выполняться для ВМ с того узла, который находится выше по списку. - Чтобы управлять списком ВМ для миграции:
- Выберите Тип миграции:
- В рамках кластера — ВМ останутся в том же кластере, но будут перенесены на другой узел;
- Между кластерами — ВМ будут перенесены в другой кластер;
- Только диск — диски ВМ будут перенесены в другое хранилище.
- Укажите параметры миграции:
- Отключите опцию Сжимать диск VM перед миграцией, если оптимизация диска не требуется. Опция доступна только для выключенных ВМ.
- Отключите опцию Учитывать фильтры распределения, если использование фильтров не требуется. Подробнее о фильтрах распределения см. в статье Управление серверами кластера.
- Отключите опцию Холодная миграция связанных клонов, если требуется живая миграция связанных клонов.
- Для миграции Между кластерами в разделе Целевой кластер нажмите кнопку Все кластеры и выберите нужный кластер из списка.
- Для миграции В рамках кластера или Между кластерами в разделе Целевой узел нажмите кнопку Все узлы и выберите нужный узел из списка. Если узел недоступен, в столбце Статус отображается причина его недоступности.
- В разделе Настройки сетевых интерфейсов выберите какие интерфейсы на узле назначения будут соответствовать интерфейсам на исходном узле.
- В разделе Распределение дисков VM выберите в каких хранилищах будут размещены диски ВМ. Диски одной ВМ могут быть размещены в разных хранилищах.
- Изучите информацию в разделе Резюме по миграции. Раздел содержит информацию о том, все ли диски распределены и требуется ли для ВМ перезагрузка.
- Нажмите кнопку Мигрировать.