2.3. Настройка кластера и запуск системы¶
После успешной установки приложения на серверы необходимо настроить кластер, что включает в себя следующие действия:
2.3.1. Создание набора реплик и задание ролей¶
Операции по настройке кластера можно выполнить через web-интерфейс
администратора. Для подключения к web-интерфейсу надо зайти в браузере на любой
сервер по доступному на нем http-порту http://<address>:<http_port>
(указаны в файле конфигурации кластера).
В рассматриваемом примере это может быть http://172.19.0.2:8080
(соответствует экземпляру с именем «core_1»).
На вкладке Cluster мы имеем набор несконфигурированных экземпляров (инстансов, instances), на что указывает их текущий статус «Unconfigured».

В некоторых подсетях может не работать автоматический поиск доступных серверов (autodiscovery). Тогда экземпляры этих серверов могут отсутствовать в таблице Unconfigured servers. Для ручной проверки доступности и добавления новых экземпляров в кластер можно использовать функцию Probe server (кнопка над таблицей с экземплярами), которая проверяет, доступен ли экземпляр по указанному адресу. Если экземпляр доступен, он появится в таблице.
Далее необходимо сконфигурировать топологию кластера, создав так называемые наборы реплик (replica sets, репликасеты) и задав их роли.
Выберите в таблице несконфигурированный экземпляр и нажмите кнопку Configure в правой части строки этого экземпляра. Откроется диалог настройки репликасета Configure server.
В диалоге необходимо выбрать нужные для данного репликасета роли
(параметр Roles
). Этот параметр обязательный, поэтому должна быть
выбрана как минимум одна роль. Если репликасет выполняет в кластере более одной
роли, то нужно отметить все необходимые роли. Подробнее о ролях репликасетов и
рекомендациях по их назначению см. раздел «Роли».

Остальные параметры репликасета являются опциональными. Тем не менее
рекомендуется задать имя репликасета (Replica set name
), чтобы в
дальнейшем было легче им управлять. У параметров Replica set weight
и
Vhsard group
можно оставить значения, заданные по
умолчанию. После определения нужных параметров нажмите кнопку
Create replica set.
Cозданный репликасет с включенным в него экземпляром отображается в таблице Replica sets. Оставшиеся несконфигурированные экземпляры по-прежнему отображаются в таблице Unconfigured servers.

Продолжим настройку кластера — в нашем примере создадим 4 дополнительных репликасета, каждый из которых содержит по одному экземпляру:

На примере репликасетов с ролью storage
(их в текущей топологии кластера — два)
рассмотрим также операцию по добавлению дополнительных
экземпляров в существующий репликасет.
У одного из оставшихся несконфигурированных экземпляров — с именем «storage_1_replica» — нажмите Configure и в диалоге настройки репликасета перейдите на вкладку Join Replica Set. В списке Choose replica set выберите репликасет с именем «storage_1» и нажмите Join replica set.

Экземпляр «storage_1_replica» будет включен в состав репликасета «STORAGE_1».

Выполните аналогичную операцию для последнего несконфигурированного экземпляра «storage_2_replica», включив его в репликасет «STORAGE_2».
На этом настройка топологии кластера завершена.
2.3.2. Запуск кластера¶
После настройки топологии кластера необходимо
запустить в рабочее состояние репликасеты с
ролью storage
, выполнив инициализацию модуля Tarantool vshard
.
Для этого на вкладке Cluster нажмите кнопку Bootstrap vshard:

Будут созданы виртуальные сегменты для хранения данных (virtual buckets) и
распределены по хранилищам с учетом количества экземпляров с ролью storage
.

2.3.3. Загрузка конфигурации системы¶
Последний этап запуска системы в работу — загрузка и применение ее конфигурации.
В web-интерфейсе перейдите на вкладку Configuration files. В секции
Upload configuration загрузите архив в формате .zip
, который должен
содержать основной файл конфигурации системы
config.yml
и другие необходимые файлы (описание модели
данных, Lua-код функций и др.). Если загрузка и применение конфигурации прошли
успешно, система выдаст уведомление об этом.

После этого система готова к работе.
В дальнейшем актуальную конфигурацию всегда можно скачать на этой же вкладке, нажав на кнопку Current configuration в верхнем правом углу.
2.3.4. Автоматическая синхронизация настроек в кластере¶
Для нормального функционирования кластера все экземпляры должны иметь одинаковые
настройки. С этой целью каждый экземпляр в своей рабочей директории
/var/lib/tarantool/<instance_name>
хранит копию конфигурации —
в поддиректории /config
в виде набора yml
-файлов. Также в рабочей директории
хранятся резервная копия конфигурации (в поддиректории /config.backup
) и
токен кластера .tarantool.cookie
.
Кластер синхронизирует эти файлы настроек у всех экземпляров.
После первоначальной загрузки файла конфигурации config.yml
конфигурация автоматически
обогащается информацией о топологии кластера с указанием всех серверов,
репликасетов, экземпляров и их ролей. Также добавляется информация о созданных
спейсах для хранения объектов согласно модели данных. Именно в таком виде
конфигурация хранится в рабочей директории каждого экземпляра и синхронизируется
между ними.
При дальнейшей настройке системы — добавлении пользователей и токенов приложений, настройке прав доступа и др. — информация об этом добавляется в соответствующие файлы конфигурации и синхронизируется в кластере. Аналогичная синхронизация выполняется при любых изменениях текущих настроек.
2.3.5. Токен кластера¶
Токен кластера (cluster_cookie
) — это некий уникальный идентификатор, одинаковый для всех узлов
кластера и хранящийся на каждом из узлов. Он шифрует UDP-трафик построения
кластера и необходим для того, чтобы все члены кластера могли общаться между
собой и не допускать в кластер посторонних членов. Если у какого-либо узла токен
другой, остальные узлы кластера его не видят, и сам узел не видит кластер.
Токен кластера можно задать, например, при установке системы, определив в
файле конфигурации кластера параметр cluster_cookie
.
Если токен кластера не задан, то берется значение по умолчанию.
По умолчанию токен кластера хранится в файле .tarantool.cookie.
в рабочей
директории каждого из узлов (экземпляров) — /var/lib/tarantool/<instance_name>
.
Поиск файла .tarantool.cookie
осуществляется в следующих местах по убыванию
важности:
{workdir}/.tarantool.cookie
, где{workdir}
задается или в параметре инициализации, или из переменной среды$WORKDIR
, или берется текущая директория;$HOME/.tarantool.cookie
, где$HOME
— переменная среды.