VMmanager

Миграция с VMmanager 5 на VMmanager 6

Миграция позволяет перенести управление виртуальными машинами (ВМ) из панели VMmanager 5 KVM в платформу VMmanager 6. Миграция включает перенос:

  • адресного пространства — используемых IP-адресов, пулов и сетей;
  • учётных записей пользователей;
  • ограничений доступа к ВМ;
  • пользователей BILLmanager, если была настроена интеграция.

Для мигрируемых ВМ платформа создаст временный кластер с ограниченной функциональностью. После миграции вы можете перенести ВМ из этого кластера в другие кластеры платформы.

Обратите внимание!
В статье описана миграция из панели управления VMmanager 5 KVM. Если вы используете VMmanager 5 OVZ, ВМ можно перенести вручную по инструкции из статьи Перенос OVZ-контейнера в LXD-кластер

Ограничения миграции

Вы можете перенести в VMmanager 6 любой кластер из VMmanager 5. Дальнейшая миграция ВМ в кластеры VMmanager 6 имеет ограничения в текущей версии платформы:

ОграничениеВозможное решение
для узлов кластера с QEMU версии ниже 2.0.0 недоступна "живая" миграция ВМвыключить ВМ перед миграцией
изменение типа хранилища может привести к временной недоступности ВМне менять тип хранилища при миграции
у ВМ не должно быть сетевых интерфейсов, подключённых к NATизменить сетевую конфигурацию ВМ
к каждому сетевому мосту узла кластера должно быть подключено не более одного интерфейса ВМудалить интерфейс ВМ или подключить его к свободному сетевому мосту
у ВМ не должно быть созданных снимков (snapshot)удалить снимки перед миграцией
у ВМ не должно быть подключённых ISO-образовотключить ISO-образы перед миграцией
диск ВМ должен находиться в локальном хранилище — файловом или LVMвозможность миграции появится в следующих версиях платформы

Миграция ВМ возможна в кластеры с сетевой настройкой "Коммутация" или IP-fabric.

Для миграции лицензия на панель управления VMmanager 5 должна быть активной.

Tребования к сетевым настройкам

У каждого сервера должно быть уникальное имя хоста (hostname).

Разрешите подключения на порты:

  • между сервером с панелью управления VMmanager 5 и платформой VMmanager 6:
    • 22/tcp — SSH;
    • 5900-6900/tcp — QEMU VNC, SPICE;
    • 6514/tcp — сервис управления виртуальными машинами libvirt;
    • 49152-49261/tcp — сервисы миграции libvirt;
    • 443/tcp — HTTPS;
  • между узлами кластера VMmanager 5 и узлами кластера VMmanager 6:
    • 22/tcp — SSH;
    • 49152-49261/tcp — сервисы миграции libvirt;
    • 443/tcp — HTTPS;
  • между узлами кластера VMmanager 5 и платформой VMmanager 6:
    • 22/tcp — SSH;
    • 5900-6900/tcp — QEMU VNC, SPICE;
    • 6514/tcp — сервис управления виртуальными машинами libvirt;
    • 49152-49261/tcp — сервисы миграции libvirt;
    • 443/tcp — HTTPS.

Если у VMmanager 5 настроена интеграция с IPmanager 5 или BILLmanager, платформа VMmanager 6 должна иметь доступ к портам IPmanager5 или BILLmanager:

  • 22/tcp — SSH;
  • 443/tcp — HTTPS;
  • 3306/tcp, 3306/udp - cервер MySQL IPmanager или BILLmanager;

Если BILLmanager находится за сервисом защиты от DDoS, в настройках миграции необходимо указать IP-адрес сервера BILLmanager с открытыми портами 22/tcp и 443/tcp. При миграции в BILLmanager изменяются идентификаторы услуг и пользователей, и VMmanager 6 может создавать большое количество запросов в BILLmanager, что может привести к блокировке таких запросов защитой от DDoS.

Порт 22/tcp должен быть доступен для всех узлов кластера и при необходимости для публичной сети.

Если доступ к QEMU VNC, SPICE осуществляется только через сервер с VMmanager, диапазон портов 5900-6900/tcp должен быть открыт для сети, объединяющей узлы кластера.

Порядок миграции

Импорт адресного пространства

Для управления адресным пространством VMmanager 5 и VMmanager 6 используют разное ПО:

  • VMmanager 5 — панель управления IPmanager 5;
  • VMmanager 6 — встроенный модуль IPmanager 6.

При миграции вы можете импортировать адресное пространство из IPmanager 5 в IPmanager 6.

IPmanager 6 поддерживает режим эмуляции API IPmanager 5. Если вы используете другие программные продукты, которым требуется интеграция с IPmanager 5 (например, BILLmanager, DCImanager 5, ISPmanager), вы сможете перенастроить их на работу с IPmanager 6.

Пример управления адресным пространством

Импорт кластера VMmanager 5

Чтобы импортировать кластер VMmanager 5, сервис миграции:

  1. Подключается к VMmanager 5 и получает информацию о сущностях, созданных в панели управления — ВМ, пользователях, настройках кластера.
  2. Блокирует работу VMmanager 5.
  3. Создаёт резервную копию платформы VMmanager 6.
  4. Импортирует информацию о настройках VMmanager 5 в VMmanager 6.
  5. Если в VMmanager 5 была настроена интеграция с BILLmanager:
    1. Подключается к BILLmanager.
    2. Меняет тип обработчика услуг на VMmanager 6.
    3. Добавляет в VMmanager 6 пользователей BILLmanager с услугами VMmanager 5.

Перенос пользователей VMmanager 5

Если в настройках пользователя VMmanager 5 был указан e-mail, то в VMmanager 6 будет создана учётная запись с этим e-mail.

Если e-mail в настройках пользователя VMmanager 5 не указан, то в VMmanager 6 будет создана учётная запись вида username@vm5.imported, где username — имя пользователя VMmanager 5.

Подготовка к миграции

VMmanager 5

  1. Создайте резервную копию ВМ и панели управления. Подробнее см. в статье Управление планами резервного копирования документации VMmanager 5.
  2. Разрешите доступ к серверу по SSH-ключу:
    1. В файле /etc/ssh/sshd_config укажите параметр 

      PubkeyAuthentication yes
    2. Перезапустите службу sshd: 

      systemctl restart sshd
  3. Определите используемое количество ядер CPU на узлах кластера: 

    dmidecode --type processor | grep -i "core enabled"

VMmanager 6

  1. Убедитесь, что лицензия VMmanager 6 содержит достаточное количество ядер CPU для подключения всех узлов кластера из VMmanager 5. При необходимости приобретите лицензию, поддерживающую большее количество ядер.
  2. Если платформа не установлена:
    1. Убедитесь, что сервер для VMmanager 6 удовлетворяет системным требованиям.
    2. Установите VMmanager 6 по инструкции.
    3. Выполните начальную настройку платформы.

BILLmanager

  1. Создайте сотрудника для настройки интеграции. При создании включите опцию Полный доступ. Подробнее см. в статье документации BILLmanager Сотрудники, отделы, права доступа.
  2. Создайте обработчик VMmanager 6 и тарифные планы для услуг виртуальных серверов.
  3. Создайте резервную копию BILLmanager. Подробнее см. в статье Резервное копирование документации BILLmanager.
  4. Сформируйте ключ для авторизации:
    1. Подключитесь к серверу с BILLmanager по SSH с правами суперпользователя. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
    2. Выполните команду:

      /usr/local/mgr5/sbin/mgrctl -m billmgr session.newkey username='<integration_user>' key='<secret_key>'
      Пояснения к команде
    3. Сохраните значение ключа.

IPmanager 5

  1. Убедитесь, что IPmanager 5 использует СУБД MySQL или MariaDB. Если IPmanager 5 использует СУБД SQLite, перейдите на использование СУБД MySQL. Подробнее см. в статье Использование MySQL в качестве СУБД документации IPmanager. 

    Обратите внимание!
    Рекомендуемая версия MySQL/MariaDB – не ниже 5.5.x. Для более ранних версий успешный импорт ВМ не гарантируется.
  2. Убедитесь, что cервер MySQL доступен со стороны VMmanager 6 — проверьте открыты ли в настройках файрвола порты 3306/TCP, 3306/UDP и возможно ли удалённое подключение к БД:
    1. Подключитесь к серверу IPmanager 5 по SSH.
    2. Проверьте текущие настройки файрволла:

      firewall-cmd --list-all
    3. Откройте порты 3306/TCP, 3306/UDP:

      firewall-cmd --permanent --add-port=3306/tcp
      firewall-cmd --permanent --add-port=3306/udp
    4. Перезапустите сервис файрволла:

      service firewalld restart
    5. Откройте конфигурационный файл MySQL /etc/my.cnf. В раздел [mysqld] добавьте параметр bind-address=xxx.xxx.xx.x и закомментируйте строку с параметром skip-networking.

      Пояснения
    6. Подключитесь к сервису mysql:

      mysql -u root
      use mysql;
    7. Разрешите пользователю удалённое подключение к MySQL:

      GRANT ALL PRIVILEGES ON <DB_NAME> . * TO '<DB_USER>'@'<REMOTE_IP>' IDENTIFIED BY '<DB_PASSWORD>';
      Пояснения
      FLUSH PRIVILEGES;

Миграция

Миграция IP-адресов

  1. Перейдите в Миграция Мигрировать IP-адреса из IPmanager 5 .
  2. Укажите настройки подключения к IPmanager 5:

    Обратите внимание!

    Настройки подключения указаны в конфигурационном файле IPmanager /usr/local/mgr5/etc/ipmgr.conf:

    • Адрес сервера с IPmanager — параметр DBHost;
    • Имя базы данных — параметр DBName;
    • Логин пользователя для интеграции — параметр DBUser;
    • Пароль — параметр DBPassword.


    1. Адрес сервера с IPmanager — IP-адрес БД IPmanager 5;
    2. Имя базы данных — имя БД IPmanager 5;
    3. Логин пользователя для интеграции — имя пользователя БД IPmanager 5;
    4. Пароль — пароль пользователя БД IPmanager 5.
  3. Нажмите Мигрировать IP.
Как перенести отдельные блоки IP-адресов

Чтобы VMmanager 5 и BILLmanager могли работать с IPmanager 6:

  1. Если требуется доступ только к определённому пулу IP-адресов, создайте в VMmanager 6 пул с суффиксом public. Например, VM5_public.
  2. Создайте в VMmanager 6 учётную запись администратора с именем ipmgr5@example.com.

    Обратите внимание!
    ipmgr5@example.com — не пример, а точное имя, которое нужно указать при создании учётной записи.
  3. В VMmanager 5 и BILLmanager:
    1. Перейдите в ИнтеграцияIPmanager.
    2. Укажите настройки для интеграции:
      1. URLhttps://domain.com/api/ipmgr5/v3/ipmgr

        Пояснения к URL
      2. Имя пользователя:

        • чтобы панель управления имела доступ только к определённому пулу IP-адресов, укажите pool_XXX;

          Пояснения
        • чтобы панель управления имела доступ ко всему адресному пространству, укажите произвольное имя пользователя.
      3. Пароль — пароль пользователя ipmgr5@example.com.
      4. В секции Синхронизация списка IP-адресов оставьте пустыми поля Логин администратора и Пароль администратора.
    3. Нажмите Ok.

Если у VMmanager 6 настроена интеграция с DNSmanager 6, то после создания адресного пространства необходимо синхронизировать PTR-записи с DNS-сервером. Для этого:

  1. Удалите модуль "Интеграция с DNSmanager 6": Настройки Модули Интеграция с DNSmanager 6 Удалить модуль Удалить модуль .
  2. Повторно установите и настройте модуль интеграции. Подробнее см. в статье Модуль "Интеграция с DNSmanager 6".

Проверить выполнение синхронизации вы можете по лог-файлу /var/log/dns_proxy_integration.log в контейнере vm_dns_proxy_1 на сервере с VMmanager.

Миграция виртуальных машин

Обратите внимание!
Вы можете перенести виртуальные машины из нескольких экземпляров VMmanager 5 в один экземпляр VMmanager 6. Для ВМ из каждого экземпляра VMmanager 5 будет создан отдельный временый кластер.
  1. Перейдите в Миграция Мигрировать виртуальные машины из VMmanager 5.
  2. Укажите настройки миграции:
    1. Название временного кластера, который будет создан в VMmanager 6.
    2. SSH-адрес сервера VMmanager 5.
    3. Имя пользователя SSH для подключения к серверу с VMmanager 5.
    4. SSH-порт.
  3. Скопируйте Публичный ssh-ключ и добавьте его в файл ~/.ssh/authorized_keys на сервере с VMmanager 5.
  4. Укажите настройки подключения к BILLmanager, если у VMmanager 5 настроена интеграция:
    1. Адрес сервера BILLmanager 5 — IP-адрес или доменное имя сервера.
    2. Логин администратора панели — введите имя сотрудника для интеграции, созданного при подготовке BILLmanager.
    3. Временный ключ, созданный при подготовке BILLmanager.
    4. Название обработчика VMmanager 5.
  5. Нажмите Мигрировать VMmanager 5.

Если миграция завершилась с ошибкой вида 

{
  "error": {
    "code": 1111,
    "msg": "Handler throw uncaught exception",
    "value": "vm/import/cluster Can not load a vm5_data file"
  }
}

проверьте доступно ли SSH-подключение из контейнера vm_box сервера с VMmanager 6 на основной узел VMmanager 5.

IP-адрес основного узла VMmanager 5 указан в параметре MainIp конфигурационного файла /usr/local/mgr5/etc/vmmgr.conf на сервере с VMmanager 5.

Перенос ВМ из временного кластера

Для ВМ из VMmanager 5 создаётся временный кластер с типом VM5 KVM и сетевой настройкой "Коммутация". Доступные операции с ВМ во временном кластере:

  • запуск;
  • остановка;
  • перезагрузка;
  • подключение по VNC и SPICE;
  • удаление;
  • миграция на другой узел кластера;
  • миграция в другой кластер, если конфигурация ВМ соответствует требованиям.

Чтобы на мигрируемых ВМ были доступны все функции, перенесите их в другие кластеры платформы.

Если ВМ не удовлетворяет требованиям для переноса в кластер VMmanager 6, рядом с её названием отображается ссылка Миграция в кластер VM6 недоступна. Чтобы получить подробную информацию, нажмите на ссылку.

Если у ВМ есть сетевые интерфейсы, подключённые к NAT
Если у ВМ есть снимки (snapshots)
Если к ВМ подключены ISO-образы
Если на узле VMmanager 5 установлена ОС CentOS 6
Если у ВМ модель добавления IP-адресов "Нет автоматизации"

Для корректного переноса ВМ с ОС Windows установите на узле временного кластера утилиту libguestfs-winsupport.

Платформа взаимодействует с ВМ через программу QEMU Guest Agent. Например, QEMU Guest Agent нужен, чтобы VMmanager мог изменить пароль или запустить скрипт на ВМ. Если QEMU Guest Agent на ВМ не установлен или не отвечает, в столбце Состояние у ВМ отображается сообщение Проблема с Guest Agent. Чтобы установить QEMU Guest Agent на ВМ, нажмите на Проблема с Guest AgentУстановить GA и перезапустить ВМ. Вы можете установить QEMU Guest Agent вручную. Подробнее см. в статье Как проверить и восстановить работу QEMU Guest Agent?

Если имя сетевого интерфейса ВМ не было определено, интерфейс будет сохранён с суффиксом no_name. Если таких интерфейсов больше одного, то для миграции в кластер VMmanager 6 на ВМ нужно установить QEMU Guest Agent. 

Перенос ВМ без отключения ("живая" миграция) возможен, если:

  • на узле кластера VMmanager 5 установлен QEMU версии 2.0.0 и выше;
  • версия libvirt на узле кластера VMmanager 6 не ниже версии libvirt на узле кластера VMmanager 5.

В остальных случаях ВМ необходимо отключить перед переносом.

Чтобы перенести ВМ из временного кластера:

  1. Выделите нужные ВМ → еще... → Мигрировать.
  2. Укажите параметры миграции:
    1. Отключите опцию Сжимать диск VM перед миграцией, если сжатие диска не требуется. Опция доступна только для выключенных ВМ.
    2. Отключите опцию Учитывать фильтры распределения, если использование фильтров не требуется. Подробнее о фильтрах распределения см. в статье Управление серверами кластера.
    3. Выберите кластер для миграции.
    4. Выберите узел для миграции.
    5. Выберите Доступные хранилища на узле, в которых будут размещены диски ВМ. Диски одной ВМ могут быть размещены в разных хранилищах.
    6. Изучите информацию в разделе Резюме по VM. Раздел содержит информацию о том, все ли диски распределены и требуется ли для ВМ перезагрузка.
  3. Нажмите Мигрировать (Мигрировать и перезагрузить).

Действия после миграции

После переноса ВМ временный кластер можно удалить. Свободные узлы из временного кластера могут быть подключены к другим кластерам платформы. Перед подключением рекомендуем переустановить ОС на этих узлах.

Перенос услуг в BILLmanager

Если у VMmanager 5 была настроена интеграция с BILLmanager, то сервис миграции:

  1. Изменит тип обработчика услуг с VMmanager 5 на VMmanager 6.
  2. Добавит к его названию префикс _imported.

Новый обработчик создаётся для управления ВМ во временном кластере. Заказ новых услуг через этот обработчик недоступен. После переноса ВМ в другие кластеры платформы переключите услуги на тарифные планы с другим обработчиком VMmanager 6.

Для ручного переноса услуг на новый обработчик:

  1. Подключите для тарифных планов VMmanager 5 обработчик услуг VMmanager 6. Для этого:
    1. Перейдите в ПродуктыТарифные планы → выберите тариф, с которого была продана услуга виртуального сервера для VMmanager 5 → кнопка Обработчики.
    2. Включите обработчик VMmanager 6.
  2. Отключите виртуальные машины из BILLmanager:
    1. Перейдите в Товары/УслугиВиртуальные серверы → выберите все услуги виртуальных серверов VMmanager 5 (зажмите CTRL) → кнопка Изменить.
    2. Нажмите кнопку Выкл.
    3. Подтвердите выключение при помощи кнопки Ok.
  3. Перенесите услуги виртуальных серверов на тарифные планы с обработчиком VMmanager 6:
    1. Перейдите в Товары/УслугиВиртуальные серверы → выберите все услуги виртуальных серверов VMmanager 5 (зажмите CTRL) → кнопка Изменить.
    2. Укажите в поле Модуль обработки обработчик услуг VMmanager 6.
    3. Нажмите Ok.
  4. Включите услуги в BILLmanager.
  5. Удалите сотрудника, созданного для интеграции.

Возможные проблемы

Возможные проблемы при миграции описаны в статье базы знаний Возможные проблемы при миграции с VMmanager 5.

Повторная миграция

Если первый запуск миграции завершился с ошибкой, вы можете выполнить миграцию повторно. Если при первой миграции было импортировано адресное пространство, для повторной миграции удалять его не нужно.

Для миграции услуг из BILLmanager повторно сформируйте ключ для авторизации.

Отмена миграции

Вы можете вернуть управление ВМ в VMmanager 5 после миграции. Отмена миграции возможна, только если ВМ после миграции не были удалены или перенесены в другие кластеры.

Чтобы отменить миграцию:

  1. Восстановите состояние VMmanager 6 из резервной копии. Подробнее см. в статье Резервное копирование платформы.
  2. Если вы изменяли настройки BILLmanager, восстановите состояние панели управления из резервной копии. Подробнее см. в статье Резервное копирование документации BILLmanager.
  3. Разблокируйте VMmanager 5:

    1. Подключитесь к серверу с VMmanager 5 по SSH.
    2. Выполните команду:

      /usr/local/mgr5/sbin/mgrctl -m vmmgr -u