Начало работы с Tarantool Cluster Manager
Пример на GitHub: tcm_get_started
В этом руководстве описывается запуск TCM на локальной системе, развертывание локального кластера Tarantool EE и управление кластером через веб-интерфейс TCM.
Для прохождения этого руководства потребуется:
- Машина Linux с glibc 2.17 или новее.
- Веб-браузер: на базе Chromium (Chromium версии 108 или новее), Mozilla Firefox 101 или новее, либо другой актуальный браузер.
- Tarantool Enterprise Edition SDK 3.0 или новее в виде архива
tar.gz.
Информацию о получении архива см. здесь.
Подробнее об использовании TCM см. здесь.
-
Распакуйте архив Tarantool EE SDK:
$ tar -xvzf tarantool-enterprise-sdk-gc64-<VERSION>-<HASH>-r<REVISION>.linux.x86_64.tar.gzВ результате рядом с архивом создается директория
tarantool-enterprise. В ней содержатся три исполняемых файла с ключевыми компонентами Tarantool EE:tarantool– Tarantool Enterprise Edition.tt– утилита tt.tcm– Tarantool Cluster Manager.
-
Добавьте компоненты Tarantool EE в путь выполнения, запустив входящий в дистрибутив скрипт
env.sh:$ source tarantool-enterprise/env.sh -
Чтобы убедиться, что исполняемые файлы Tarantool EE –-
tarantool,ttиtcm–- доступны в системе, выведите их версии:$ tarantool --versionTarantool Enterprise 3.0.0-0-gf58f7d82a-r23-gc64Target: Linux-x86_64-RelWithDebInfoBuild options: cmake . -DCMAKE_INSTALL_PREFIX=/home/centos/release/sdk/tarantool/static-build/tarantool-prefix -DENABLE_BACKTRACE=TRUECompiler: GNU-9.3.1C_FLAGS: -fexceptions -funwind-tables -fasynchronous-unwind-tables -static-libstdc++ -fno-common -msse2 -fmacro-prefix-map=/home/centos/release/sdk/tarantool=. -std=c11 -Wall -Wextra -Wno-gnu-alignof-expression -fno-gnu89-inline -Wno-cast-function-type -O2 -g -DNDEBUG -ggdb -O2CXX_FLAGS: -fexceptions -funwind-tables -fasynchronous-unwind-tables -static-libstdc++ -fno-common -msse2 -fmacro-prefix-map=/home/centos/release/sdk/tarantool=. -std=c++11 -Wall -Wextra -Wno-invalid-offsetof -Wno-gnu-alignof-expression -Wno-cast-function-type -O2 -g -DNDEBUG -ggdb -O2$ tt versionTarantool CLI EE 2.1.0, linux/amd64. commit: d80c2e3$ tcm version1.0.0-0-gd38b12c2
Тarantool Cluster Manager готов к запуску без дополнительной настройки. Чтобы запустить TCM, выполните следующую команду:
$ tcm --storage.etcd.embed.enabled
Параметр storage.etcd.embed.enabled запускает
собственный экземпляр etcd при начальной загрузке TCM. Этот экземпляр etcd используется для
хранения конфигурации TCM.
- Откройте веб-браузер и перейдите по адресу
http://127.0.0.1:8080/. - Введите имя пользователя и пароль, полученные из журнала начальной загрузки TCM на предыдущем шаге.
- Нажмите Log in.
После успешного входа открывается веб-интерфейс TCM:

Для подготовки кластера Tarantool EE выполните следующие шаги:
- Задайте параметры подключения кластера в TCM.
- Настройте конфигурацию кластера в TCM.
- Запустите экземпляры кластера локально с помощью утилиты tt.
В только что установленном TCM имеется предопределенный кластер с именем Default cluster. Сразу после установки у него нет ни конфигурации, ни топологии. Его начальные свойства включают параметры подключения к etcd и Tarantool. Проверьте эти свойства, чтобы узнать, куда TCM отправляет записываемую конфигурацию кластера.
Чтобы просмотреть свойства Default cluster:
- Перейдите в раздел Clusters и нажмите Edit в меню Actions напротив имени кластера.

- Нажмите Next на вкладке General.

- Найдите параметры подключения к хранилищу конфигурации, которое
использует кластер. По умолчанию это экземпляр etcd, запущенный на
порту
2379(порт etcd по умолчанию) на том же хосте. Префикс ключа, используемый для конфигурации кластера, –-/default. Нажмите Next.

- Проверьте пользователя Tarantool, которого TCM использует для
подключения к экземплярам кластера. По умолчанию это
guest.

В TCM предусмотрен веб-редактор для написания конфигураций кластера. Он подключен к хранилищу конфигурации (в данном случае –- etcd): все изменения, внесенные в браузере, отправляются в etcd одним нажатием.
Чтобы создать конфигурацию кластера и загрузить её в хранилище etcd:
-
Перейдите в раздел Configuration.
-
Нажмите + и задайте произвольное имя для файла конфигурации, например,
all. -
Вставьте следующую конфигурацию YAML в редактор:
credentials:users:guest:roles: [super]groups:group-001:replicasets:replicaset-001:replication:failover: manualleader: instance-001instances:instance-001:iproto:listen:- uri: '127.0.0.1:3301'advertise:client: '127.0.0.1:3301'instance-002:iproto:listen:- uri: '127.0.0.1:3302'advertise:client: '127.0.0.1:3302'instance-003:iproto:listen:- uri: '127.0.0.1:3303'advertise:client: '127.0.0.1:3303'Эта конфигурация создает кластер из трех узлов в одном наборе реплик: один лидер и два последователя.
-
Нажмите Apply, чтобы отправить конфигурацию в etcd.

После сохранения конфигурации кластера топологию можно увидеть на странице Stateboard:

Однако экземпляры кластера находятся в офлайн-режиме, так как они еще не развернуты.
Для развертывания локального кластера на основе конфигурации из etcd:
-
Перейдите в системный терминал, использованный при настройке Tarantool.
-
Создайте новую среду
ttв выбранной директории:$ mkdir cluster-env$ cd cluster-env/$ tt init -
Внутри директории
instances.enabledсозданной среды tt создайте директориюcluster.$ mkdir instances.enabled/cluster$ cd instances.enabled/cluster/ -
Внутри
instances.enabled/clusterсоздайте файлыinstances.ymlиconfig.yaml:-
instances.ymlзадает экземпляры для запуска в текущей среде. В этом примере используется три экземпляра:instance-001:instance-002:instance-003: -
config.yamlуказываетttзагружать конфигурацию кластера из etcd.
Указанное расположение etcd совпадает с хранилищем конфигурации Default cluster в TCM:
config:etcd:endpoints:- http://localhost:2379prefix: /default -
-
Запустите кластер из корня среды
tt(директорияcluster-env):$ tt start clusterЧтобы убедиться, что кластер стартовал, выполните команду
tt status. Вывод должен выглядеть следующим образом:$ tt status clusterINSTANCE STATUS PID MODE CONFIG BOX UPSTREAMcluster:instance-001 RUNNING 8747 RW ready running --cluster:instance-002 RUNNING 8748 RO ready running --cluster:instance-003 RUNNING 8749 RO ready running --
Чтобы научиться работать с кластером в TCM, выполните типовые задачи работы с базой данных:
- Проверка состояния кластера.
- Создание спейса.
- Запись данных.
- Просмотр данных.
Чтобы проверить состояние кластера в TCM, перейдите в раздел Stateboard. Здесь отображается обзор топологии кластера, состояния, потребления памяти и другие сведения.

Чтобы просмотреть подробную информацию об экземпляре, нажмите на его имя в списке экземпляров на странице Stateboard.

Для интерактивного подключения к экземпляру и выполнения кода на нем перейдите на вкладку Terminal.

Перейдите в терминал instance-001 (экземпляр-лидер) и выполните
следующий код, чтобы создать форматированный спейс с первичным индексом
в кластере:
-- ../../code_snippets/snippets/config/instances.enabled/tcm_get_started/myapp.luafunction create_space()box.schema.space.create('bands')box.space.bands:format({{ name = 'id', type = 'unsigned' },{ name = 'band_name', type = 'string' },{ name = 'year', type = 'unsigned' }})box.space.bands:create_index('primary', { type = "tree", parts = { 'id' } })box.schema.user.grant('guest', 'read,write,execute', 'universe')end
Поскольку instance-001 является экземпляром для работы в режиме чтения
и записи (значение box.info.ro –- false), запросы на запись должны
выполняться на нем. Выполните следующий код в терминале instance-001,
чтобы добавить кортежи в спейс:
-- ../../code_snippets/snippets/config/instances.enabled/tcm_get_started/myapp.luafunction load_data()box.space.bands:insert { 1, 'Roxette', 1986 }box.space.bands:insert { 2, 'Scorpions', 1965 }box.space.bands:insert { 3, 'Ace of Base', 1987 }end
Проверьте кортежи спейса, выполнив запрос на чтение на instance-001:
-- ../../code_snippets/snippets/config/instances.enabled/tcm_get_started/myapp.luafunction select_data()box.space.bands:select { 3 }end
Так это выглядит в TCM:

Чтобы убедиться, что данные реплицируются между экземплярами, выполните
запрос на чтение на любом другом экземпляре –- instance-002 или
instance-003. Результат будет таким же, как на instance-001.

В веб-интерфейсе TCM предусмотрен инструмент для просмотра данных, хранящихся в кластере. Чтобы просмотреть кортежи спейса в TCM:
- Нажмите на имя экземпляра на странице Stateboard.
- Откройте меню Actions в правом верхнем углу и нажмите Explorer.

- Нажмите View в меню Actions напротив спейса, который нужно просмотреть. На странице отобразятся все ранее добавленные кортежи.
