Перенос Space Disp на SpaceVM 7
Внимание
Для корректной работы инфраструктуры необходимо обеспечить сетевую доступность экземпляров Space Disp к API-интерфейсу контроллера SpaceVM.
При размещении экземпляров Space Disp на виртуальных машинах внутри кластера SpaceVM необходимо учитывать версию платформы:
- Для SpaceVM 6.5.9 допустимо подключать виртуальные машины непосредственно к сети управления (mgmt).
- Для SpaceVM 7.0.2 требуется организовать внешнюю маршрутизацию между сетью mgmt и сетью виртуальных машин, поскольку они изолированы. Реализация сети для взаимодействия ВМ с API запланирована в будущих релизах SpaceVM 7. Подробнее о работе с сетями в документации SpaceVM 7.0.2.
Общая информация
Space VDI версии 6.2.0 получил совместимость со SpaceVM версии 7.0.2.
Для использования кластера на SpaceVM 7.0.2 перед обновлением Space Disp необходимо:
-
Установить SpaceVM 7.0.2 в соответствии с документацией.
-
Ознакомиться с матрицей совместимости компонентов Space VDI.
-
Выполнить перенос узлов кластера с ролями Leader, Manager и БД с SpaceVM 6.5.9 на SpaceVM 7.0.2
Перед началом работ по переносу узлов кластера необходимо:
-
Запланировать перерыв в работе сервиса на период переноса узлов.
-
Проверить доступность всех узлов кластера командой
sudo docker node ls. При выявлении проблем устранить их до начала процесса переноса. -
Выполнить резервное копирование узлов кластера.
Внимание
В тексте статьи IP-адреса являются примерами. Необходимо производить настройку в соответствии с существующей инфраструктурой.
Шаг 1. Перенос БД на SpaceVM 7
Создание резервной копии ВМ с БД
Внимание
- Если в кластере используется внешняя БД, не из состава установки SpaceVDI, необходимо сразу перейти к шагу 2. В этом случае перенос БД не требуется и IP-адрес останется прежним.
- Если шлюз включен, перед переносом его необходимо выключить в настройках диспетчера.
- В Web-интерфейсе SpaceVM 6.5.9 перейти в раздел Виртуальные машины.
- Выключить все ВМ установки диспетчера.
-
Создать резервную копию ВМ с БД для дальнейшего экспорта согласно документации.
-
Созданную резервную копию перенести на установку SpaceVM 7.0.2.
Перенос резервной копии на SpaceVM 7
- В Web-интерфейсе SpaceVM 7.0.2 перейти в раздел Хранилища - Файлы.
- Загрузить файл резервной копии ВМ с БД удобным способом.
- После загрузки выбрать резервную копию.
- Обновить информацию и перейти в Конфигурация копии ВМ.
- В открывшемся окне запустить восстановление ВМ с помощью кнопки Восстановить ВМ.
- В разделе Виртуальные машины выбрать восстановленную ВМ.
- В окне подробного просмотра информации в разделе Сетевые настройки - Интерфейсы удалить старый интерфейс.
- Добавить новый интерфейс согласно документации.
- Запустить восстановленную ВМ с БД.
Подключение новой БД
-
В Web-интерфейсе SpaceVM 6.5.9 включить ВМ с компонентами Space Disp.
Корректный порядок: сначала включить ВМ с БД, а потом все остальные ВМ.
Кластер должен запуститься с прежним набором IP-адресов.
-
Переключить установку Space Disp 6.1 на новую ВМ с БД на SpaceVM 7.0.2. Выполняется 1 раз на любом из узлов с ролью Leader или Manager.
-
Получить значение параметра
ancestorв столбцеIMAGEвывода команды:sudo docker ps -
Получить доступ к настройкам кластера с помощью команды:
sudo docker exec -it $(sudo docker ps --filter "ancestor=space-dispatcher-backend:6.1.0.1380" --format "{{.ID}}" | head -1) cat /run/secrets/LOC_SET > old_secrets -
В файле
old_secretsисправить параметрDB_HOSTна IP-адрес новой ВМ с БД на SpaceVM 7.Пример исправления параметра
DB_HOST#DB_HOST = 'gAAABqZxc_KFw6-SWx-xrU0zzeselqMBiP1WG8q7_owYsDjm5eYXvhHFa-i5Cq93MeY1B6A==' DB_HOST = '10.253.33.104'
-
-
Удалить стек командой:
sudo docker stack rm multivdiДождаться выполнения команды. Процесс займёт около минуты.
-
Удалить секреты командой:
sudo docker secret rm LOC_SET -
Импортировать отредактированный файл
old_secretsв качестве новых секретов командой:sudo docker secret create LOC_SET old_secrets -
Создать стек, задействовав новые секреты, командой:
sudo docker stack deploy --resolve-image never -c /opt/multivdi/multivdi-stack.yml multivdi -
Выключить старую ВМ с БД на SpaceVM 6.5.9.
- Запустить кластер с новой БД и убедиться в корректности его работы, выполнив вход в панель администратора.
- Перейти в Web-интерфейс SpaceVM 7.0.2.
- На ВМ с БД выполнить обновление ОС Astra Linux SE до версии 1.8.5.46, затем провести обновление в соответствии с инструкцией.
Шаг 2. Перенос узлов кластера на SpaceVM 7
Создание новых узлов кластера
- Перейти в Web-интерфейс SpaceVM 6.5.9.
-
На одной из старых ВМ с ролью Leader или Manager определить IP-адрес лидера командой:
sudo docker node ls -
Вывести значение токена добавления нового узла в кластер командой:
sudo docker swarm join-token manager -q -
Для добавления новых узлов полученные данные необходимо сохранить.
- Перейти в Web-интерфейс SpaceVM 7.0.2.
-
Создать новые узлы для ввода в кластер.
- Установку выполнить сразу с версии 6.2.
- Количество: количество узлов с ролью Manager + узел с ролью Leader.
- Каждый узел необходимо установить с ролью Manager и добавить в существующий кластер:
sudo bash /media/cdrom/install.sh manager {leader_address} {join_token}- В качестве
leader_addressуказать IP-адрес текущего лидера (п.2). - В качестве
join_tokenуказать токен добавления нового узла (п.3).
Вывод старых узлов из кластера
-
Лишить прав управления кластером старые узлы на SpaceVM 6.5.9, включая узел с ролью Leader, командой:
sudo docker node demote {id}Получить id узла можно с помощью команды
sudo docker node ls. -
Выключить старые узлы командой:
poweroff -
Удалить старые узлы из кластера командой:
sudo docker node rm {id}
Настройка работы кластера
-
Удалить стек командой:
sudo docker stack rm multivdi -
Создать обновленные секреты с сертификатами для nginx и redis, последовательно выполнив команды:
sudo cat "/opt/multivdi/pki/nginx-apache/ssl.crt" | sudo docker secret create WEB_SSL_CRT -sudo cat "/opt/multivdi/pki/nginx-apache/ssl.key" | sudo docker secret create WEB_SSL_KEY -sudo cat "/opt/multivdi/pki/nginx-apache/dhparam.pem" | sudo docker secret create WEB_DH_PARAM -sudo cat "/opt/multivdi/pki/ca/ca_cert.pem" | sudo docker secret create CA_CERT_PEM -sudo cat "/opt/multivdi/pki/redis/srv_cert.pem" | sudo docker secret create REDIS_SRV_CRT -sudo cat "/opt/multivdi/pki/redis/srv_key.pem" | sudo docker secret create REDIS_SRV_KEY - -
Собрать стек командой:
sudo docker stack deploy --resolve-image never -c /opt/multivdi/multivdi-stack.yml multivdi -
Дождаться запуска кластера и убедиться в корректности его работы, выполнив вход в панель администратора.
Шаг 3. Настройка event-exporter для новой БД
Внимание
Данный шаг требуется только при использовании функционала экспорта событий БД и не оказывает влияния на функциональность Space VDI.
-
На одном из узлов создать новый ключ для event-exporter с помощью скрипта agent-key-gen c новым адресом БД, например:
cd /opt/event-exporter && sudo ./agent-key-gen --ex --db-pass vdi --db-host 10.253.33.194 --db-user vdi -
Обновленный ключ
/opt/event-exporter/key.binкопировать на узлы с ролями Leader и Manager. - Перезапустить службу event-exporter.service на всех узлах кластера. Остановить службу на узлах, где выгрузка не требуется.