Обновление Space Disp версии 5.7.2 на 6.0
Общая информация
Примечание
Убедиться, что Space Disp на всех узлах соответствует версии 5.7.2. Если версия отличается – необходимо обновить до версии 5.7.2.
Перед обновлением узлов, необходимо отключить использование Space Gateway на стороне Space Disp.
В данном разделе описывается сценарий обновления Space Disp версии 5.7.2 на базе ОС Astra Linux SE 1.7.5 на Space Disp 6.0 на базе ОС Astra Linux SE 1.8.2.
Рассматривается типовая схема для 500-2000 подключений, со следующей конфигурацией кластера:
- Узел с ролью DB
- Узел с ролью Leader
- Узел 1 с ролью Manager
- Узел 2 с ролью Manager
Процесс обновления
Подготовка ВМ
Для обновления рассматриваемой конфигурации кластера необходимо подготовить 4 ВМ с ОС Astra Linux SE 1.8.2 для обновления Space Disp. Необходимо выполнить следующие шаги:
-
Создать 4 ВМ.
Для создания ВМ необходимо выполнить шаги по созданию ВМ в среде SpaceVM.
-
Установить ОС Astra Linux SE 1.8.2 на 4 ВМ.
Для установки ОС необходимо выполнить шаги по установке Astra Linux SE 1.8.
Монтирование ISO-образа
-
В Web-интерфейсе SpaceVM примонтировать к ВМ ISO-образ установочного диска Space Disp 6.0. В разделе CD-ROM подробного просмотра ВМ нажать кнопку Монтировать образ:
-
В открывшемся окне Монтирование ISO-образа необходимо выбрать тип хранилища, его наименование и ISO-образ установочного диска.
-
Для сохранения изменений нажать кнопку Монтировать.
-
-
Примонтировать ISO-образ установочного диска Space Disp 6.0 в файловую систему ОС Astra Linux, выполнив команду:
sudo mount /media/cdrom
Примечание
При установке в режиме ЗПС необходимо скопировать публичный ключ
dakom_m_pub.key
с ISO-образа установочного диска Space Disp 6.0 на ВМ и выполнить перезагрузку ВМ с использованием следующих команд:sudo cp /media/cdrom/dakom_m_pub.key /etc/digsig/keys/ sudo update-initramfs -uk all sudo reboot
Создание резервной копии БД
Примечание
Если используется внешняя БД, шаги с переносом БД можно пропустить.
Необходимо создать резервную копию содержимого текущей БД на ВМ со Space Disp версии 5.7.2. Для этого необходимо выполнить команду:
sudo bash /opt/db_backup.sh /opt/
где аргумент /opt/
— директория сохранения резервной копии.
В результате выполнения команды в указанной директории для создания резервной копии БД будут находиться файлы резервной копии.
Пример вывода содержимого директории /opt/
root@astra:/opt# ls
02-06-2025_14-48-48_vdi_backup.sql.gz db_backup.sh multivdi
02-06-2025_15-45-31_vdi_backup.sql.gz db_restore.sh vdi-build-info.txt
Изменение параметров подключения к БД и сохранение секретов
На узле с текущей ролью Leader
с установленным Space Disp версии
5.7.2 необходимо выполнить следующие
действия для сохранения старых секретов и изменения адреса БД:
-
Вывести список всех контейнеров командой:
sudo docker ps
-
Получить ID контейнера
vdi-tornado
командой:CONTAINER_ID=$(sudo docker ps --filter "name=multivdi_vdi-tornado" --format "{{.ID}}")
-
Записать текущие параметры подключения к БД в файл
old_secrets
командой:sudo docker exec -it $CONTAINER_ID cat /run/secrets/LOC_SET > old_secrets
где
CONTAINER_ID
— полученный на предыдущем шаге ID контейнераvdi-tornado
. -
Открыть сохранённый файл
old_secrets
для редактирования командой:sudo nano ./old_secrets
-
Изменить параметр
DB_HOST
на IP-адрес ВМ с ОС Astra Linux SE 1.8.2, на которой будет размещена новая БД. -
Удалить стек командой:
sudo docker stack rm multividi
-
Сохранить данные подключения командой:
sudo docker secret rm LOC_SET && sudo docker secret create LOC_SET old_secrets
Подготовка БД на новой ВМ
На ВМ с ОС Astra Linux SE 1.8.2, где будет размещена БД, необходимо выполнить следующие шаги:
-
Установить роль
DB
с помощью скрипта:sudo bash /media/cdrom/install.sh db
Внимание
Логин и пароль устанавливаемой БД должны совпадать с логином и паролем БД на Space Disp версии 5.7.2
-
Копировать резервную копию БД с узла с установленным Space Disp версии 5.7.2 на ВМ с ОС Astra Linux SE 1.8.2. Для этого выполнить команду:
sudo scp user@10.0.0.0:/opt/*.sql.gz /opt/
где:
10.0.0.0
— IP‑адрес узла с Space Disp версии 5.7.2, на котором была сделана резервная копия БД./opt/*.sql.gz
— путь к файлам резервной копии на удалённом сервере.
-
Удалить временную БД на ВМ командой:
sudo -u postgres psql -c "DROP DATABASE vdi;"
-
Создать новую пустую БД с необходимым набором привилегий командой:
sudo -u postgres psql -c "CREATE DATABASE vdi encoding 'UTF-8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8' template 'template0' owner 'vdi';"
где
owner 'vdi'
— пользователь БД, указанный при создании БД в шаге 1. -
Восстановить БД из резервной копии командой:
sudo bash /opt/db_restore.sh /opt/12-03-2025_15-32-44_vdi_backup.sql.gz
Переключение узлов
Необходимо выполнить переключение текущих узлов на новый адрес БД. Для этого на ВМ любого из узлов кластера с установленным Space Disp версии 5.7.2 необходимо выполнить следующие шаги:
-
Создать стек командой:
sudo docker stack deploy --resolve-image never -c /opt/multivdi/multivdi-stack.yml multividi
-
Убедиться, что все контейнеры запущены и имеют статус
healthy
, выполнив команду:sudo docker ps
-
Убедиться, что авторизация в Web-интерфейсе Space Disp пользователя с правами администратора по адресу любого из узлов кластера 5.7.2 является успешной.
-
Удалить файл
old_secrets
:sudo rm old_secrets
-
Вывести в терминал токен для подключения новых узлов в кластер:
sudo docker swarm join-token manager -q
Подключение новых узлов
На ВМ с ОС Astra Linux SE 1.8.2, где предполагается размещение роли Leader
выполнить следующие шаги:
-
Добавить новый узел с установленным Space Disp версии 6.0 в кластер выполнив команду запуска скрипта на установку с ролью
Manager
:sudo bash /media/cdrom/install.sh multi manager {leader_address} {join_token}
-
Повторить предыдущий шаг на ВМ с ОС Astra Linux SE 1.8.2, где предполагается размещение ролей
Manager
.Внимание
При присоединении новых узлов в кластер перед исполнением команды проверять на каком узле на текущий момент находится роль
Leader
для указания корректного IP-адреса в команде. Проверку произвести при помощи командыsudo docker node ls
на любом узле кластера 5.7.2.
Количество узлов с установленным Space Disp версии 6.0 должно быть равно количеству узлов кластера обновляемого Space Disp 5.7.2.
Пример
Если обновляется кластер 5.7.2 из 3 ВМ (
Leader
-Manager
-Manager
), то на данном шаге в кластере должно быть 6 ВМ:- `Leader` 5.7.2 - `Manager` 5.7.2 - `Manager` 5.7.2 - `Manager` 6.0 - `Manager` 6.0 - `Manager` 6.0
Завершение обновления
Для того чтобы Leader
мигрировал на узел кластера
с установленным Space Disp версии 6.0, необходимо
понизить статус всех узлов кластера
с установленным Space Disp версии 5.7.2 с ролью Manager
.
Для этого необходимо:
-
Выполнить команду на любом из узлов кластера с установленным Space Disp версии 6.0:
sudo docker node demote {id}
В команде аргумент
{id}
— ID узла, полученный командойsudo docker node ls
. -
Выполнить команду из предыдущего шага для остальных узлов кластера с установленным Space Disp версии 5.7.2.
-
Отключить ВМ кластера 5.7.2 с ролью
Manager
командой:sudo poweroff
-
Отключить все ВМ кластера с установленным Space Disp версии 5.7.2 командой:
sudo poweroff
-
На одной из ВМ с ОС Astra Linux SE 1.8.2 на узле кластера 6.0 выполнить команду удаления узла кластера 5.7.2:
sudo docker node rm {id}
В команде аргумент
{id}
— ID узла, полученный командойsudo docker node ls
. -
Выполнить команду из предыдущего шага для всех узлов с установленным Space Disp версии 5.7.2.
-
Пересоздать стек командами:
sudo docker stack rm multividi sudo docker stack deploy --resolve-image never -c /opt/multivdi/multivdi-stack.yml multividi sudo docker stack deploy --resolve-image never -c /opt/multivdi/multivdi-stack.yml multividi
-
Убедиться, что Web-интерфейс Space Disp доступен до IP-адресу с установленным Space Disp версии кластера 6.0.