2. Руководство по эксплуатации / 2.2. Настройка кластера
2. Руководство по эксплуатации / 2.2. Настройка кластера

2.2. Настройка кластера

2.2. Настройка кластера

После успешной установки приложения на серверы необходимо настроить кластер, что включает в себя следующие действия:

2.2.1. Создание набора реплик и задание ролей

Операции по настройке кластера можно выполнить через web-интерфейс администратора. Для подключения к web-интерфейсу надо зайти в браузере на любой сервер по доступному на нем http-порту http://<instance_address>:<instance_http_port> (указаны в файле конфигурации кластера). В рассматриваемом примере это может быть http://172.19.0.2:8080 (соответствует инстансу с именем «core»).

На вкладке Cluster мы имеем набор не сконфигурированных инстансов, на что указывает их текущий статус «unconfigured»:

../_images/clusterconf01.png

Примечание

В некоторых подсетях может не работать автоматический поиск доступных серверов (autodiscovery). Тогда инстансы этих серверов могут отсутствовать в таблице. Для ручной проверки доступности можно использовать функцию Probe server (кнопка справа над таблицей с инстансами). Функция проверяет, доступен ли сервер, и, если доступен, инстансы этого сервера появятся в таблице.

../_images/probeserver.png

Далее необходимо создать наборы реплик (репликасеты) и задать роли инстансов.

Для инстанса, через который мы зашли в web-интерфейс (в нашем примере — «core»), в колонке ACTION доступна кнопка Create для создания репликасета и выбора ролей. По нажатию этой кнопки появится диалог создания репликасета:

../_images/clusterconf02.png

Выберите необходимую роль(и) и нажмите Submit. Подробнее о ролях и рекомендациях по их назначению см. раздел «Роли».

После определения роли инстанс становится частью кластера в составе созданного репликасета (таблица REPLICA SETS):

../_images/clusterconf03.png

Далее необходимо настроить оставшиеся не сконфигурированные инстансы — либо создав новые реликасеты (кнопка Create), либо включив их в состав уже имеющихся (кнопка Join).

В нашем примере мы создадим 3 дополнительных репликасета:

../_images/clusterconf04.png

Примечание

Когда будет задан первый инстанс с ролью storage, в web-интерфейсе появится секция для инициализации модуля «Tarantool vshard», который обеспечивает механизм горизонтального масштабирования. Его нужно инициализировать позже, после того, как будут настроены все репликасеты.

В нашем примере конфигурации осталось два ненастроенных инстанса, находящихся на разных серверах:

../_images/clusterconf05.png

Мы включим их в уже созданные репликасеты роли storage, определив как реплики мастеров. Для этого нажмите кнопку Join для одного из инстансов и в диалоге JOIN SERVER выберите нужный репликасет, в который собираетесь добавить инстанс. Нажмите Submit.

../_images/clusterconf06.png

Инстанс будет включен в состав репликасета в качестве реплики. Выполните аналогичную операцию для второго инстанса.

Ниже показан итог настройки кластера для нашего примера после всех вышеупомянутых операций:

../_images/clusterconf07.png

2.2.2. Запуск кластера

После создания репликасетов и задания ролей инстансов нужно запустить кластер в работу, выполнив инициализацию модуля «Tarantool vshard». Пока кластер не запущен, на вкладке Cluster отображается секция Tarantool vshard.

../_images/vshard_bootstrap.png

Для инициализации нажмите кнопку Bootstrap vshard. При этом будут созданы виртуальные сегменты (virtual buckets) и распределены по хранилищам с учетом количества инстансов с ролью storage. Подробнее про принцип работы модуля см. в документации по Tarantool.

2.2.3. Загрузка конфигурации системы

Последний этап запуска системы в работу — загрузка и применение ее конфигурации.

Для этого через web-интерфейс (Cluster > Config management > Upload config) необходимо загрузить архив .zip, который должен содержать основной файл конфигурации системы config.yml и другие необходимые файлы (описание модели данных, Lua-код функций и др.).

В дальнейшем актуальную конфигурацию (config.yml и сопутствующие файлы) всегда можно скачать в этой же секции Config management по ссылке «Current configuration can be downloaded here».

../_images/config_upload.png

После успешной загрузки конфигурации и ее применения система готова к работе.

2.2.4. Автоматическая синхронизация настроек в кластере

Для нормального функционирования кластера все инстансы должны иметь одинаковые настройки. С этой целью каждый инстанс хранит копию конфигурации config.yml в своей рабочей директории /var/lib/tarantool/<instance_name>. Также в этой директории хранятся резервная копия config.backup.yml и токен кластера .tarantool.cookie. Кластер синхронизирует эти файлы настроек у всех инстансов.

После первоначальной загрузки файл конфигурации config.yml автоматически обогащается информацией о топологии кластера с указанием всех серверов, репликасетов, инстансов и их ролей. Также добавляется информация о созданных спейсах для хранения объектов согласно модели данных. Именно в таком виде конфигурация хранится в рабочей директории каждого инстанса и синхронизируется между ними.

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