VK Docs logo
Помощь
Обновлена 27 ноября 2025 г. в 14:21

Конфигурация и запуск кластеров

Для работы TCF требуется настроить два идентичных кластера, один из которых в системе TCF будет активным, а другой пассивным:

  • активный кластер принимает запросы от приложения;
  • пассивный кластер содержит копию данных активного кластера, но не принимает запросы от приложения.

В этом разделе описано, как задать конфигурацию для каждого из кластеров, а затем запустить их. В приведенном примере разворачиваются два кластера Tarantool DB, каждый кластер состоит из набора реплик с 4 узлами (1 роутером и 3 экземплярами хранилища). Для корректной работы примера необходимо использовать Tarantool DB версии 2.2.0 или выше. Поддерживаемые типы кластеров описаны в соответствующем разделе.

Начиная с версии 0.7.0, TCF поддерживает работу с расширениями журнала упреждающей записи (WAL extensions) и с кластерами, запущенными в режиме синхронной репликации. Использование расширений журнала упреждающей записи настоятельно рекомендуется при работе с TCF, поскольку они повышают надёжность и согласованность данных. Синхронная репликация остаётся опциональной и может быть включена при необходимости для повышения устойчивости. Подробнее см. в разделах Расширения WAL и Использование синхронных спейсов.

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

  1. Распаковать архивы с TCF и TDB версии 2.2.0 или выше. Для этого необходимо заранее выполнить шаги из соответствующего раздела руководства по установке.

  2. Подготовить и запустить кластер хранилища состояния на основе etcd или Tarantool – в этом кластере хранятся конфигурация кластеров и их состояние активный-пассивный. В данном примере используется хранилище состояния на основе Tarantool.

Создание конфигурации кластеров Tarantool DB

Конфигурация для каждого из кластеров задается в отдельном YAML-файле конфигурации. Эта конфигурация задает топологию кластера и параметры его экземпляров. Полный список опций конфигурации для кластеров Tarantool и продуктов на его основе приведен в справочнике в документации Tarantool.

Файлы с финальной конфигурацией активного и пассивного кластеров приведены в разделе этого руководства.

Настройка пользователей и соединения

Создайте файл source.yaml, в который будет добавлена конфигурация активного кластера (далее Tarantool Cluster 1). В созданном файле в секции credentials.users задайте пользователей, которые взаимодействуют с компонентами Tarantool или TCF и укажите, какие права они имеют:

credentials:  users:    dbadmin:      password: secret      roles: [super]    replicator:      password: replicator_password      roles:         - replication        - dictionary_api_service    tcm_tarantool:      password: tcm_tarantool_password      roles: [super]    storage:      password: storage_password      roles: [sharding]    tcf_replicator:      password: secret      roles: [super]    tcf_dml:      password: secret      roles: [super]

Здесь:

  • dbadmin – администратор TCF;
  • replicator – пользователь для соединения узлов Tarantool Cluster 1 друг с другом;
  • tcm_tarantool – пользователь для подключения TCM к экземплярам Tarantool Cluster 1;
  • storage – пользователь используется при запросах роутера к экземплярам хранилища;
  • tcf_replicator – пользователь для репликации между кластерами, которыми управляет TCF;
  • tcf_dml – пользователь используется внешними пользователями/приложениями для выполнения операций с данными (DML – Data Manipulation Language).

Подробнее о пользователях, необходимых для корректной работы TCF, можно узнать в разделе .

Для корректной работы кластера Tarantool нужно настроить связь между его экземплярами. Параметры подключения можно задать в секции iproto:

iproto:  advertise:    peer:      login: replicator    sharding:      login: storage

В секции credentials создаются пользователи replicator и storage. iproto.advertise.peer.login указывает, что другие экземпляры Tarantool Cluster 1 должны подключаться к адресу, определенному в опции iproto.listen, с помощью пользователя replicator. iproto.advertise.sharding.login указывает, что роутер должен подключаться к экземплярам хранилища на адрес, определенный в iproto.listen, с помощью пользователя storage.

Узнать больше: Конфигурация соединений в Tarantool.

Настройка репликации

Настройки репликации можно задать в секции replication:

replication:  failover: manual  bootstrap_strategy: config#..groups:  routers:    replicasets:      rsrouter001:        leader: router001        bootstrap_leader: router001#..

Здесь:

  • replication.failover – режим выбора узла лидера в наборе реплик. В примере узел лидера назначается явно в опции <replicaset_name>.leader;
  • replication.bootstrap_strategy – выбранная стратегия для первоначальной загрузки набора реплик. В примере узел для первоначальной загрузки задается в опции <replicaset_name>.bootstrap_leader.

Конфигурация наборов реплик и экземпляров

Чтобы задать топологию кластера и определить настройки для конкретных экземпляров, в файле конфигурации используются секции groups, replicasets и instances. Узнать больше: Общая информация о конфигурации в Tarantool.

groups:  routers:    replicasets:      rsrouter001:        #...        instances:          router001:            #...            iproto:              listen:                - uri: 127.0.0.1:3307              advertise:                client: 127.0.0.1:3307    app:      module: app.vshard_bootstrapper    sharding:      roles: [router]    #...

Здесь:

  • iproto.listen.uri – адрес и порт для приема входящих запросов, заданный для конкретного экземпляра;
  • iproto.advertise.client – адрес и порт, позволяющий другим экземплярам кластера или клиенту подключиться к текущему экземпляру.

Настройка технологических ролей

Технологическая роль – это модуль, реализующий определенные функции или логику. Подробная информация о технологических ролях приведена в документации Tarantool. Для работы непосредственно TCF в конфигурации кластеров используются две технологические роли – roles.tcf-worker и roles.tcf-coordinator. Другие технологические роли, заданные для экземпляров в этом руководстве, используются для работы самих кластеров Tarantool DB.

Включить или выключить нужную технологическую роль для конкретных экземпляров в конфигурации можно без перезапуска этих экземпляров. Технологическая роль запускается при загрузке или перезагрузке конфигурации.

groups:  routers:    #...    roles: [ roles.tcf-worker, roles.tcf-coordinator, roles.httpd, roles.crud-router, dictionary.roles.router ]

Здесь roles – список технологических ролей, заданных на конкретных экземплярах кластера. В этом руководстве в конфигурации кластера используются следующие технологические роли:

  • roles.tcf-worker – TCF-worker инициализирует и координирует переключение статусов кластеров (активный ↔ пассивный) и предоставляет базовый HTTP API для управления TCF. Назначается всем экземплярам типа storage и router в кластере Tarantool, которыми управляет TCF;

  • roles.tcf-coordinator – TCF-координатор отвечает за автоматическое переключение состояния. Чтобы обеспечить отказоустойчивость, в каждом кластере должно быть запущено два и более экземпляра Tarantool с этой ролью. Назначается выборочным экземплярам типа storage и router в кластере Tarantool, которыми управляет TCF;

  • roles.httpd – работа с HTTP-запросами для управления TCF. Роль задается на всех экземплярах кластера. Адрес отправки HTTP-запроса для конкретного экземпляра определяется в секции roles.httpd.default.listen;

  • roles.crud-router – предоставляет IPROTO API для CRUD-операций (создание, чтение, обновление, удаление) на кластере. Задается на узлах-роутерах. Используется совместно с ролью roles.crud-storage, которая задается на узлах типа storage для выполнения CRUD-операций. Узнать больше в документации Tarantool DB;

  • dictionary.roles.router – внешнее управление словарями в Tarantool DB. Задается на узлах-роутерах. Используется совместно с ролью dictionary.roles.storage, которая задается на узлах типа storage для хранения данных словарей. Узнать больше в документации Tarantool DB;

  • roles.expirationd – контроль за устаревающими данными. Узнать больше в документации Tarantool DB.

Настройки технологических ролей для конкретного экземпляра или группы экземпляров задаются в секции roles_cfg.

Пример конфигурации roles.tcf-worker:

roles_cfg:  roles.tcf-worker:    cluster_1: cluster_a    cluster_2: cluster_b    initial_status: active    dml_users: [ tcf_dml ]    replication_user: tcf_replicator    replication_password: secret    storage: config_storage    storage_params:      endpoints:        - uri: 127.0.0.1:3301          login: tarantool_config_storage          password: tarantool_config_storage_password        - uri: 127.0.0.1:3302          login: tarantool_config_storage          password: tarantool_config_storage_password        - uri: 127.0.0.1:3303          login: tarantool_config_storage          password: tarantool_config_storage_password

В примере настройки технологической роли roles.tcf-worker заданы на верхнем уровне конфигурации (global level), поскольку эти настройки одинаковые для всех экземпляров кластера.

Здесь:

  • cluster_1 – имя кластера, для которого применяется конфигурация;
  • cluster_2 – имя соседнего кластера в системе TCF. Для кластера B значения параметров cluster_1 и cluster_2 меняются местами:
    • сluster_1: cluster_b;
    • сluster_2: cluster_a;
  • initial_status – состояние (активный-пассивный), в которое кластер переходит при первом запуске с использованием TCF. Для Tarantool Cluster 1 состояние при первом запуске будет active, для Tarantool Cluster 2passive;
  • dml_users – список пользователей, доступ которым заблокирован на пассивном кластере;
  • replication_user и replication_password – имя и пароль пользователя для подключения репликаторов TCF;
  • storage – тип хранилища конфигурации;
  • storage_params – параметры хранилища конфигурации:
    • endpoints.uri – адреса узлов хранилища конфигурации;
    • endpoints.login – пользователь для подключения экземпляров кластера к узлам хранилища конфигурации;
    • endpoints.password – пароль для подключения экземпляров кластера к узлам хранилища конфигурации.

Пример конфигурации roles.tcf-coordinator:

replicasets:  rsrouter001:    #...    instances:      router001:        roles_cfg:          #...          roles.tcf-coordinator:            storage: config_storage            storage_params:              endpoints:                - uri: 127.0.0.1:3301                  login: tarantool_config_storage                  password: tarantool_config_storage_password                - uri: 127.0.0.1:3302                  login: tarantool_config_storage                  password: tarantool_config_storage_password                - uri: 127.0.0.1:3303                  login: tarantool_config_storage                  password: tarantool_config_storage_password

Полный список поддерживаемых опций конфигурации roles.tcf-worker и roles.tcf-coordinator можно найти в разделе .

Расширения WAL

Начиная с версии 0.7.0, TCF поддерживает расширения журнала упреждающей записи (WAL extensions). Такие расширения позволяют добавлять дополнительную информацию к каждой записи в журнале WAL. В частности, расширения WAL позволяют хранить старый и новый кортежи вместе с ключом шардирования (bucket_id) для каждой совершённой CRUD-операции. В шардированном кластере ключ bucket_id используется для отправки запросов UPDATE и DELETE на конкретный набор реплик, что повышает производительность обработки таких операций на больших кластерах.

Чтобы включить расширения WAL в конфигурации Tarantool 3.x, используйте опцию wal.ext.*:

wal:  ext:    new: true    old: true

В конфигурации Tarantool 2.x на основе Cartridge это можно сделать с помощью опции wal_ext:

cartridge.cfg {    {}, -- cartridge params    {        wal_ext = { old = true, new = true },    },}

Использование синхронных спейсов

Начиная с версии 0.7.0, TCF поддерживает работу с синхронными спейсами в кластерах. Синхронная репликация повышает консистентность данных и надежность их хранения внутри кластера: каждая синхронная транзакция проходит коммит лишь после репликации на определенном количестве экземпляров, и только тогда клиенту приходит подтверждение о завершении транзакции.

В кластерах Tarantool по умолчанию используется асинхронная репликация. Синхронную репликацию при этом можно настроить для отдельных спейсов. TCF предоставляет одинаковые гарантии для кластеров как с асинхронными, так и с синхронными спейсами. TCF отправляет транзакции на пассивный кластер в момент их записи (коммита):

  • синхронные транзакции – после репликации на определенном количестве экземпляров, в момент подтверждения транзакций;
  • асинхронные транзакции – сразу, не ожидая репликации на другие экземпляры.

Порядок выполнения коммитов соответствует порядку вызова метода box.commit() для каждой из транзакций, независимо от того, синхронные транзакции или асинхронные. Если для одной из синхронных транзакций истечет время ожидания, эта транзакция будет отменена (rollback). Вместе с ней будут отменены все последующие транзакции в очереди на репликацию. Транзакции отменяются в порядке, обратном порядку вызова box.commit() для каждой из них, независимо от того, синхронные транзакции или асинхронные.

Репликатор данных Gateway обрабатывает синхронные транзакции следующим образом:

  • пропускает в пассивный кластер транзакции, подтвержденные в активном кластере;
  • отбрасывает транзакции, отмененные в активном кластере, чтобы они не попали в пассивный кластер.

Компонент Destination обрабатывает полученные операции как асинхронные. Целевой спейс на пассивном кластере может быть как синхронным, так и асинхронным.

Включение синхронной репликации

Чтобы включить синхронную репликацию для спейса в кластере, задайте опцию space_opts.is_sync при создании или изменении этого спейса:

local space = box.schema.space.create('writers', { is_sync = true })space:format({    {name = 'id', type = 'number'},    {name = 'bucket_id', type = 'number'},    {name = 'name', type = 'string'},    {name = 'age', type = 'number'},})space:create_index('primary', {parts = {'id'}})space:create_index('bucket_id', {parts = {'bucket_id'}})

Узнать больше:

Настройка кластеров Tarantool DB

Создание кластеров

  1. Перейдите в директорию tarantooldb и выполните в ней команду tt init. Команда создаст новое окружение для консольной утилиты tt CLI, в том числе файл конфигурации tt.yaml.

  2. В директории instances.enabled созданного окружения создайте директории кластеров cluster_a и cluster_b.

  3. В директории instances.enabled/cluster_a добавьте файл source.yaml с конфигурацией Tarantool Cluster 1, приведенной ниже. Экземпляры в этой конфигурации принимают входящие запросы на порты 3304–3307. Особенности конфигурации кластеров были описаны ранее в разделе Создание конфигурации кластеров Tarantool DB.

  4. В директории instances.enabled/cluster_a создайте файл instances.yaml – список экземпляров, которые будут запущены в текущем окружении:

    instance004:instance005:instance006:router001:
  5. В директории instances.enabled/cluster_a создайте файл config.yaml – с настройками хранилища конфигурации на основе Tarantool, запущенного ранее.

    config:  storage:    endpoints:    - uri: 127.0.0.1:3301      login: tarantool_config_storage      password: tarantool_config_storage_password    - uri: 127.0.0.1:3302      login: tarantool_config_storage      password: tarantool_config_storage_password    - uri: 127.0.0.1:3303      login: tarantool_config_storage      password: tarantool_config_storage_password    prefix: /cluster1

    Здесь:

    • config.storage.endpoints.uri – адреса узлов хранилища конфигурации;
    • config.storage.endpoints.login – пользователь для подключения экземпляров кластера к узлам хранилища конфигурации;
    • config.storage.endpoints.password – пароль для подключения экземпляров кластера к узлам хранилища конфигурации;
    • config.storage.prefix – префикс кластера, под которым хранится конфигурация для конкретного кластера.
  6. В директории instances.enabled/cluster_b создайте файл source.yaml с конфигурацией Tarantool Cluster 2, приведенной ниже. Экземпляры в этой конфигурации принимают входящие запросы на порты 3324–3327. Особенности конфигурации кластеров были описаны ранее в разделе Создание конфигурации кластеров Tarantool DB.

  7. В директории instances.enabled/cluster_b создайте файл instances.yaml:

    instance007:instance008:instance009:router002:
  8. В директории instances.enabled/cluster_a создайте файл config.yaml с настройками хранилища конфигурации на основе Tarantool, запущенного ранее.

    config:  storage:    endpoints:    - uri: 127.0.0.1:3301      login: tarantool_config_storage      password: tarantool_config_storage_password    - uri: 127.0.0.1:3302      login: tarantool_config_storage      password: tarantool_config_storage_password    - uri: 127.0.0.1:3303      login: tarantool_config_storage      password: tarantool_config_storage_password    prefix: /cluster2
  9. На каждом из серверов в директориях instances.enabled/cluster_a и instances.enabled/cluster_b соответственно создайте директорию migrations/scenario. В этой директории создайте файл миграции 001_migration.lua:

    local helpers = require('tt-migrations.helpers')local function apply_scenario()    local space = box.schema.space.create('writers')    space:format({        {name = 'id', type = 'number'},        {name = 'bucket_id', type = 'number'},        {name = 'name', type = 'string'},        {name = 'age', type = 'number'},    })    space:create_index('primary', {parts = {'id'}})    space:create_index('bucket_id', {parts = {'bucket_id'}})    helpers.register_sharding_key('writers', {'id'})endreturn {    apply = {        scenario = apply_scenario,    },}

    В миграции создан шардированный спейс writers с ключом шардирования id и первичным индексом primary.

Запуск TCM

В качестве веб-интерфейса кластеров Tarantool DB используется Tarantool Cluster Manager, или TCM. Tarantool Cluster Manager – это инструмент для настройки и отслеживания кластеров Tarantool EE и управления ими. Подробная информация о TCM приведена в документации Tarantool.

Задать настройки для запуска TCM можно в файле конфигурации. Для этого перейдите в директорию Tarantool Cluster 1 tarantooldb/instances.enabled/cluster_a и создайте в ней файл tcm.yaml со следующей конфигурацией:

Здесь:

  • http.host – адрес и порт, на которых будет запущен TCM. Если порт в команде не указан, TCM будет по умолчанию запущен на порту 8080;
  • security.bootstrap-password – пароль для первичного входа в TCM;
  • storage – настройки хранилища конфигурации и его узлов:
    • provider – тип хранилища конфигурации;
    • tarantool.username – имя пользователя для подключения TCM к хранилищу конфигурации на основе Tarantool;
    • tarantool.password – пароль пользователя для подключения TCM к хранилищу конфигурации на основе Tarantool;
  • initial-settings – сущности, которые создаются автоматически при первом запуске TCM. Сущности в примере – это два кластера Tarantool DB.
    • clusters.<cluster>.prefix – префикс кластера. Кластеры используют общее хранилище конфигурации на основе Tarantool, но должны иметь различные префиксы. В конфигурации выше задан префикс /cluster1 для кластера Tarantool Cluster 1. Префикс для второго кластера будет задан позже в веб-интерфейсе TCF;
    • clusters.<cluster>.storage-connection.tarantool-connection.username – имя пользователя для подключения TCM к хранилищу конфигурации;
    • clusters.<cluster>.storage-connection.tarantool-connection.password – пароль пользователя для подключения TCM к хранилищу конфигурации;
    • clusters.<cluster>.storage-connection.tarantool-connection.endpoints – адреса узлов хранилища конфигурации;
    • clusters.<cluster>.tarantool-connection.username – имя пользователя для подключения TCM к экземплярам кластера;
    • clusters.<cluster>.tarantool-connection.password – пароль пользователя для подключения TCM к экземплярам кластера.

Полная информация об опциях конфигурации TCM (в частности, опции настройки etcd) приведена в документации TCM.

Запустить TCM с конфигурацией из файла можно так:

$ tcm -c tcm.yaml

См. также Начало работы с TCM.

Настройка конфигурации Tarantool Cluster 1

Перед запуском кластеров нужно загрузить их конфигурацию в TCM и задать необходимые настройки.

  1. Определите текущий master-узел хранилища конфигурации с помощью команды tt status. В этом руководстве это узел instance003, имеющий адрес 127.0.0.1:3303:

    tt status configstorageINSTANCE                   STATUS   PID      MODE  CONFIG   BOX        UPSTREAMconfigstorage:instance001  RUNNING  269163   RO    ready    running    --       configstorage:instance002  RUNNING  269164   RO    ready    running    --       configstorage:instance003  RUNNING  269165   RW    ready    running    --
  2. Вернитесь в домашнюю директорию и загрузите файл конфигурации Tarantool Cluster 1 source.yaml в хранилище конфигурации. В параметрах команды при необходимости обновите адрес текущего master-узла хранилища конфигурации:

    $ tt cluster publish http://dbadmin:secret@127.0.0.1:3303/cluster1 tarantooldb/instances.enabled/cluster_a/source.yaml
  3. Чтобы войти в TCM, откройте в браузере адрес http://localhost:8080. Логин и пароль для входа:

    • Username: admin
    • Password: secret

    Пароль для входа указан в конфигурации TCM в файле tcm.yaml (см. опцию TCM security.bootstrap-password).

  4. При успешном применении конфигурации топология Tarantool Cluster 1 появится на вкладке Stateboard. Состояние экземпляров Tarantool Cluster 1 при этом будет отображаться как неактивное, так как они еще не запущены.

Настройка конфигурации Tarantool Cluster 2

Перед запуском экземпляров Tarantool Cluster 1 и Tarantool Cluster 2 нужно создать Tarantool Cluster 2 в TCM и настроить его конфигурацию. Для этого:

  1. В TCM откройте вкладку Clusters и нажмите кнопку Add.

  2. На первом экране настройки (General) введите имя нового кластера Tarantool Cluster 2 в поле Name.

  3. Переключитесь на второй экран настройки (Config storage connection), нажав кнопку Next.

  4. На втором экране настройки (Config storage connection) укажите следующие значения:

    • в поле Providertarantool;
    • в поле Prefix/cluster2. Префиксы Tarantool Cluster 1 и Tarantool Cluster 2 должны отличаться друг от друга. В примере Tarantool Cluster 1 имеет префикс /cluster1, а Tarantool Cluster 2/cluster2;
    • в поле Endpoints укажите узлы хранилища конфигурации:
    127.0.0.1:3301
    127.0.0.1:3302
    127.0.0.1:3303
    
  • в поле Usernametcm_config_storage;
  • в поле Passwordtcm_config_storage_password.
  1. Переключитесь на третий экран настройки (Tarantool connection), нажав кнопку Next.

  2. На третьем экране настройки (Tarantool connection) укажите следующие значения:

    • в поле Usernametcm_tarantool;
    • в поле Passwordtcm_tarantool_password.
  3. Нажмите Add, чтобы сохранить настройки нового кластера.

  4. Загрузите файл конфигурации Tarantool Cluster 2 source.yaml в хранилище конфигурации. В параметрах команды при необходимости обновите адрес текущего master-узла хранилища конфигурации TCF.

    $ tt cluster publish http://dbadmin:secret@127.0.0.1:3303/cluster2 tarantooldb/instances.enabled/cluster_b/source.yaml

Запуск активного кластера

  1. Скопируйте директории модулей в директории Tarantool Cluster 1 и Tarantool Cluster 2:

    cp -r tarantooldb/.rocks tarantooldb/instances.enabled/cluster_acp -r tarantooldb/.rocks tarantooldb/instances.enabled/cluster_bcp -r tarantooldb/app tarantooldb/instances.enabled/cluster_acp -r tarantooldb/app tarantooldb/instances.enabled/cluster_b
  2. Перейдите в директорию tarantooldb и запустите активный Tarantool Cluster 1:

    $ cd tarantooldb$ tt start cluster_a• Starting an instance [cluster_a:instance004]...• Starting an instance [cluster_a:instance005]...• Starting an instance [cluster_a:instance006]...• Starting an instance [cluster_a:router001]..
  3. Проверьте состояние запущенных узлов Tarantool Cluster 1:

    $ tt status cluster_aINSTANCE               STATUS   PID     MODE  CONFIG  BOX      UPSTREAM cluster_a:instance004  RUNNING  417847  RW    ready   running  --       cluster_a:instance005  RUNNING  417848  RO    ready   running  --       cluster_a:instance006  RUNNING  417849  RO    ready   running  --cluster_a:router001    RUNNING  417850  RW    ready   running  --
  4. Загрузите файл миграции 001_migration.lua в Tarantool Cluster 1:

    $ tt migrations publish http://dbadmin:secret@127.0.0.1:3303/cluster1 ./instances.enabled/cluster_a/migrations• 001_migration.lua: successfully published to key "001_migration.lua"
  5. Примените загруженные миграции:

    $ tt migrations apply http://dbadmin:secret@127.0.0.1:3302/cluster1 --tarantool-username=dbadmin --tarantool-password=secret• replicaset001:           •     001_migration.lua: successfully applied• rsrouter001:             •     001_migration.lua: successfully applied

Запуск пассивного кластера

  1. Запустите пассивный Tarantool Cluster 2:

    $ tt start cluster_b• Starting an instance [cluster_b:instance007]...• Starting an instance [cluster_b:instance008]...• Starting an instance [cluster_b:instance009]...• Starting an instance [cluster_b:router002]..
  2. Проверьте состояние запущенных узлов Tarantool Cluster 2:

    $ tt status cluster_bINSTANCE               STATUS   PID     MODE  CONFIG  BOX      UPSTREAMcluster_b:instance007  RUNNING  418077  RW    ready   running  --       cluster_b:instance008  RUNNING  418078  RO    ready   running  --       cluster_b:instance009  RUNNING  418079  RO    ready   running  --cluster_b:router002    RUNNING  418080  RW    ready   running  --
  3. Загрузите файл миграции 001_migration.lua в Tarantool Cluster 2:

    $ tt migrations publish http://dbadmin:secret@127.0.0.1:3303/cluster2 ./instances.enabled/cluster_b/migrations• 001_migration.lua: successfully published to key "001_migration.lua"
  4. Примените загруженные миграции:

    $ tt migrations apply http://127.0.0.1:3303/cluster2 --tarantool-username=admin --tarantool-password=secret-cluster-cookie   • replicaset002:           •     001_migration.lua: successfully applied• rsrouter002:             •     001_migration.lua: successfully applied

Проверка работы кластеров

  1. Чтобы проверить состояние кластеров, в TCM выберите нужный кластер (Tarantool Cluster 1 или Tarantool Cluster 2) над вкладкой Stateboard в выпадающем списке Clusters. Всё настроено правильно, если на вкладке Stateboard все узлы в кластере подсвечены зеленым цветом.

  2. Чтобы проверить примененную миграцию, перейдите на вкладку Tuples. При успешной миграции в списке появится спейс writers.

  3. Чтобы проверить текущее состояние кластеров, откройте вкладку TCF. Видно, что cluster_a перешел в активное состояние, а cluster_b – в пассивное.