Развертывание отказоустойчивого комплекса Space VDI 5.4

В современном мире, где технологии развиваются с невероятной скоростью, обеспечение высокой доступности и надежности IT-инфраструктуры становится критически важным для любого бизнеса. Одним из ключевых аспектов в этом процессе является развертывание отказоустойчивых решений, способных минимизировать риски простоя и потери данных.

В моей прошлой статье я описывал развертывание Space VDI версии 5.2 в единственном экземпляре — поддерживаемым производителем, что не позволяло обеспечить отказоустойчивость и балансировку нагрузки в крупных enterprise развертываниях. Начиная с версии 5.3 Производитель полностью пересмотрел данный подход и предложил новую схему реализации своего решения:

57203b22b719ec5201fa96ed6d4b1806.png

Была разделена база данных и сервисы VDI, таким образом сервисы кластеризуются нечетным количеством виртуальных машин путем дублирования контейнеров Docker на машинах по алгоритму RAFT, база данных защищается классической репликацией на вторую виртуальную машину с Postgresql. Для всех ролей используется ОС Astra Linux Special Edition версии 1.7 релиз Смоленск, обеспечивающий максимальную защищенность информационной системы. Минимальная целевая отказоустойчивая схема приведена ниже:

4d9e2763cc9a11860a6cd0e531286258.png

Данную схему развернем на стенде. Будем использовать последние версии продуктов: Space VM — 6.4, Space VDI — 5.4

На развернутой платформе виртуализации Space VM, разворачиваем виртуальную машину с минимальными требованиями: не менее 2 виртуальных ядер, не менее 4 гигабайта оперативной памяти, жестки диск не менее 30 гигабайт, один virtio виртуальный адаптер. И ставим со стандартными настройками Astra Linux Special Edition 1.7 Смоленск (дистрибутив и все нужные компоненты предоставляет вендор). Данная машина у нас будет эталонной с нее мы будем делать клоны.

Далее переходим к настройке операционной системы:

1)     Ставим утилиты интеграции (идут вместе с дистрибутивом), перезагружаемся

2)     Создаем каталог, и копируем туда содержимое предоставленных установочных дисков по очереди (их два — сама операционная система и диск со средствами разработки ОС):

mount /media/cdrom
mkdir /opt/main
cp -r /media/cdrom/pool /media/cdrom/dists /opt/main/
cp -r /media/cdrom/pool /media/cdrom/dists /opt/devel/

3)     Настраиваем локальный репозиторий:

sudo nano /etc/apt/sources.list
# deb cdrom:[OS Astra Linux 1.7.0 1.7_x86-64 DVD ]/ 1.7_x86-64 contrib main non-free
# deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository/ 1.7_x86-64 main contrib non-free
deb file:///opt/main 1.7_x86-64 contrib main non-free
deb file:///opt/devel 1.7_x86-64 contrib main non-free
apt update

Так же возможно настроить режим замкнутой программной среды, но в демо развертывании я этого не делал

4)     После всех изменений выключаем машину и делаем 3 клона.

Один сервер Space Disp поддерживает до 2000 одновременных подключений с возможностью масштабирования. В одном кластере может быть от одного до семи серверов. Мы будем развертывать 3 сервера Space Dispatcher и 2 сервера баз данных. Производитель рекомендует начать с подготовки серверов баз данных:

5)     Запускаем одну из клонированных машин, меняем IP адрес и DNS — имя она будет Мастером.

6)     Устанавливать будем в автоматическом режиме поэтому просто монтируем очередной установочный диск с пакетами Dispatcher и выполняем команду:

sudo bash /media/cdrom/install.sh db

Во время отработки скрипта запрашивается имя пользователя (у меня dbuser) и пароль для базы данных, записываем их себе, в дальнейшем они пригодятся.

7)     Далее устанавливаем и настраиваем службу keepalived:

sudo apt install keepalived

8)     Создаем файл конфигурации данной службы:

nano /etc/keepalived/keepalived.conf

Добавляем конфигурацию, пример ниже, где ip адрес это виртуальный IP кластера, virtual_router_id любое число от 1 до 255 и должно быть одинаково на обоих серверах:

global_defs {
    router_id pg
}

vrrp_instance postgresql {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 255
    virtual_ipaddress {
        10.10.143.178
    }
}

9)     Перезапускаем службу:

service keepalived restart

10) Редактируем файл конфигурации Postrgresql:

nano /etc/postgresql/11/main/pg_hba.conf

Добавляем строчку, где пишем IP адрес реплики:

host    replication     vdi             10.10.143.177/32   md5

11)     После сохранения файла перезапускаем службу Postgresql:

service postgresql restart

12)     Клонируем сервер Мастера подготовленный выше, в новой машине — Реплике меняем статический IP адрес,   DNS-имя.

13)     Останавливаем службу keepalived и службу postgresql:

sudo service keepalived stop
service postgresql stop

14)     Редактируем файл конфигурации Postrgresql:

nano /etc/postgresql/11/main/pg_hba.conf

Добавляем строчку, где пишем IP адрес мастера:

host    replication     vdi             10.10.143.176/32   md5

15)     Переключаемся на пользователя postgres переходим в директорию базы данных удаляем ее и создаем новую с такими же правами:

su postgres
cd /var/lib/postgresql/11
rm -r main
mkdir main
chmod go-rwx main

16)     Выполняем копирование базы данных, где вспоминаем имя пользователя, которого создавали при установки сервера базы данных и пароль, IP — адрес прописываем Мастера:

pg_basebackup -h 10.10.143.176 -U dbuser --checkpoint=fast -D ./main -R --slot=replica -C

17)     Выходим из пользователя postgres и редактируем файл  /etc/keepalived/keepalived.conf, где ставим значение state на BACKUP и priority 200:

Exit
global_defs {
    router_id pg
}

vrrp_instance postgresql {
    state BACKUP
    interface eth0
    virtual_router_id 5
    priority 200
    virtual_ipaddress {
        10.10.143.178
    }
}

18)     Запускаем службу keepalived и службуpostgresql:

sudo service keepalived start
service postgresql start

Переходим наконец то к установке Space Dispatcher:

1)     Монтируем диск установки на первый созданный сервер, он у нас будет Leader, и запускаем установку, где прописываем виртуальный IP адрес кластера базы данных и стандартный порт:

sudo bash /media/cdrom/install.sh multi leader 10.10.143.178 5432

Если все прошло успешно, то будет выведен токен для подключения Manager:

9934f1e584d06121f43279f8416c5c49.png

2)     Запускаем оставшихся два клона, меняем IP — адреса и DNS-и на каждом из них выполняем:

astravdi@spmanager:~$ sudo bash /media/cdrom/install.sh multi manager 10.10.143.174 SWMTKN-1-2p07a7hfq37e8x1y34xm7rongk1euu2xbnpwxz55vulos8fpqt-86x8dsu9q06o3x5m68v6bfwsh

Естественно, со своим токеном. Если все получилось будет доступен интерфейс по любому из IP адресов (Leader или Manager) логин и пароль по умолчанию — vdiadmin, Bazalt1!:

8993f97cbe79b8f38fc21641d180e52f.png

Статус работоспособности можно проверить специальными командами:

198dff885ed541146b12a0551933070d.pngbca3daa1baf8e493972d2ce8450bd4b3.png

Далее добавляем контроллер, о чем я писал предыдущей статье и настраиваем систему для эксплуатации.

В заключение, развертывание отказоустойчивой системы Space VDI 5.4 предоставляет организациям мощный инструмент для обеспечения непрерывности бизнес-процессов и повышения эффективности и безопасности работы сотрудников. Благодаря улучшенным механизмам масштабирования и отказоустойчивости, в отличии от предыдущей версии минимизируются риски простоя и потери данных.

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

© Habrahabr.ru