Миграция — это перенос виртуальной машины (ВМ) с одного (исходного) узла на другой (целевой). 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 выберите в каких хранилищах будут размещены диски ВМ. Диски одной ВМ могут быть размещены в разных хранилищах.
- Изучите информацию в разделе Резюме по миграции. Раздел содержит информацию о том, все ли диски распределены, требуется ли для ВМ перезагрузка и будут ли ВМ остановлены на время миграции.
- Нажмите кнопку Мигрировать.