Развертывание отказоустойчивого комплекса Space VDI 5.4
В современном мире, где технологии развиваются с невероятной скоростью, обеспечение высокой доступности и надежности IT-инфраструктуры становится критически важным для любого бизнеса. Одним из ключевых аспектов в этом процессе является развертывание отказоустойчивых решений, способных минимизировать риски простоя и потери данных.
В моей прошлой статье я описывал развертывание Space VDI версии 5.2 в единственном экземпляре — поддерживаемым производителем, что не позволяло обеспечить отказоустойчивость и балансировку нагрузки в крупных enterprise развертываниях. Начиная с версии 5.3 Производитель полностью пересмотрел данный подход и предложил новую схему реализации своего решения:
Была разделена база данных и сервисы VDI, таким образом сервисы кластеризуются нечетным количеством виртуальных машин путем дублирования контейнеров Docker на машинах по алгоритму RAFT, база данных защищается классической репликацией на вторую виртуальную машину с Postgresql. Для всех ролей используется ОС Astra Linux Special Edition версии 1.7 релиз Смоленск, обеспечивающий максимальную защищенность информационной системы. Минимальная целевая отказоустойчивая схема приведена ниже:
Данную схему развернем на стенде. Будем использовать последние версии продуктов: 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:
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!:
Статус работоспособности можно проверить специальными командами:
Далее добавляем контроллер, о чем я писал предыдущей статье и настраиваем систему для эксплуатации.
В заключение, развертывание отказоустойчивой системы Space VDI 5.4 предоставляет организациям мощный инструмент для обеспечения непрерывности бизнес-процессов и повышения эффективности и безопасности работы сотрудников. Благодаря улучшенным механизмам масштабирования и отказоустойчивости, в отличии от предыдущей версии минимизируются риски простоя и потери данных.
Если вы хотите подробнее ознакомиться с работой данного решения или даже опробовать его самостоятельно, мы приглашаем вас на наш демо-стенд. Оставляйте заявку, и мы свяжемся с вами для уточнения деталей.