Мультидиспетчер
Описание
Мультидиспетчер - кластер серверов Space Disp, обеспечивающий работоспособность, несмотря на сбои в одном из узлов кластера. Минимальный состав кластера: один узел с ролью db, один узел с ролью leader и два узла с ролью manager.
Один сервер Space Disp поддерживает до 2000 одновременных подключений, с возможностью масштабирования благодаря мультидиспетчеру. В одном кластере может быть от одного до семи серверов.
Мультидиспетчер обеспечивает отказоустойчивость и балансировку нагрузки. Между серверами одного кластера выполняется периодическая репликация конфигурации, таким образом, выход одного или нескольких серверов Space Disp не повлияет на доступность инфраструктуры.
Роли мультидиспетчера
- DB - база данных (БД), служащая для записи данных (контроллеры, пулы рабочих столов, пользователи и т.д.).
- Для базы данных используется отдельный узел, без docker, с установленным PostgreSQL.
- База данных не является отказоустойчивой. Пользователь самостоятельно обслуживает и настраивает отказоустойчивость.
-
Leader - узел управления кластером, на нем также запускается экземпляр Space Disp.
-
Manager - узел рабочей нагрузки, на нем также запускается экземпляр Space Disp.
- Кластер может состоять из более чем одного Manager.
- Общее число узлов (за исключением БД) должно быть нечетным, для полноценной работоспособности.
- При "отказе" Leader - один из Manager'ов становится Leader'ом автоматически. Если Leader восстанавливается - то он возвращается в кластер в качестве Manager'a.
Web-интерфейс доступен на адресе любого узла в кластере, если один из узлов недоступен, необходимо перейти на другой доступный.
Установка Мультидиспетчера
IP-адрес!
Для корректной работы необходимо настроить статический IP-адрес.
Установка выполняется скриптом install.sh. Для установки необходимы три хоста с ОС Astra Linux SE 1.7. В качестве хоста может быть использован физический сервер или виртуальная машина.
Наименование!
Для корректной работы необходимо задавать наименование физических серверов или виртуальных машин, отличное друг от друга.
Устанавливаем роль DB
- Установить БД (PostgreSQL) на хост с ОС Astra Linux SE 1.7.
- Примонтировать iso-образ установочного диска, нажав кнопку Монтировать образ
- откроется окно Монтирование iso-образа, в котором необходимо выбрать тип хранилища, его наименование и iso-образ установочного диска;
- для сохранения изменений нажать кнопку Монтировать.
- Выполнить команду:
sudo bash /media/cdrom/install.sh db
По умолчанию на БД установлены логин и пароль - vdi - vdi.
Устанавливаем роль Leader
- Установить на второй хост с ОС Astra Linux SE 1.7.
- Примонтировать iso-образ установочного диска, нажав кнопку Монтировать образ
- откроется окно Монтирование iso-образа, в котором необходимо выбрать тип хранилища, его наименование и iso-образ установочного диска;
- для сохранения изменений нажать кнопку Монтировать.
- Выполнить команду:
sudo bash /media/cdrom/install.sh multi leader {db_address} {db_port}
# Пример:
sudo bash /media/cdrom/install.sh multi leader 192.168.5.86 5432
- Указать адрес хоста БД, а так же порт.
- Ввести имя и пароль пользователя БД.
После успешной установки Leader на экран консоли будет выведен token для подключения новых Manager.
Устанавливаем роль Manager
- Установить на третий хост с ОС Astra Linux SE 1.7.
- Примонтировать iso-образ установочного диска, нажав кнопку Монтировать образ
- откроется окно Монтирование iso-образа, в котором необходимо выбрать тип хранилища, его наименование и iso-образ установочного диска;
- для сохранения изменений нажать кнопку Монтировать.
- Выполнить команду:
sudo bash /media/cdrom/install.sh multi manager {leader_address} {join_token} # Пример: sudo bash /media/cdrom/install.sh multi manager 192.168.6.44 SWMTKN-1-3xhz573o9gfz7e78lhm5gyoelmf5jkotwf9d6mtt54tx79wii4-4o13crwblvwidg12nz8v8z5wf
Основные команды
Все команды выполняются на любом удобном узле кластера.
- Для просмотра списка узлов в кластере необходимо выполнить команду:
sudo docker node ls
# Пример:
# astravdi@astra:~$ sudo docker node ls
# ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
# bhsmn9ezcvkk0zx9ddi7ixxkx * astra Ready Active Leader 20.10.2+dfsg1
# kbag53ttw46jqurv4p3awhm9g astra Ready Active Reachable 20.10.2+dfsg1
# ktj7he3mjalu4drr4jhgxg4mw astra Ready Active Reachable 20.10.2+dfsg1
Leader (главный узел управления в кластере) отмечен символом *.
-
Для просмотра списка сервисов мультидиспетчера выполняем команду:
sudo docker stack services multivdi
-
Для просмотра token для подключения новых Manager выполняем команду:
sudo docker swarm join-token manager -q