Конфигурация и запуск кластеров
Для работы TCF требуется настроить два идентичных кластера, один из которых в системе TCF будет активным, а другой пассивным:
- активный кластер принимает запросы от приложения;
- пассивный кластер содержит копию данных активного кластера, но не принимает запросы от приложения.
В этом разделе описано, как задать конфигурацию для каждого из кластеров, а затем запустить их. В приведенном примере разворачиваются два кластера Tarantool DB, каждый кластер состоит из набора реплик с 4 узлами (1 роутером и 3 экземплярами хранилища). Для корректной работы примера необходимо использовать Tarantool DB версии 2.2.0 или выше. Поддерживаемые типы кластеров описаны в соответствующем разделе.
Начиная с версии 0.7.0, TCF поддерживает работу с расширениями журнала упреждающей записи (WAL extensions) и с кластерами, запущенными в режиме синхронной репликации. Использование расширений журнала упреждающей записи настоятельно рекомендуется при работе с TCF, поскольку они повышают надёжность и согласованность данных. Синхронная репликация остаётся опциональной и может быть включена при необходимости для повышения устойчивости. Подробнее см. в разделах Расширения WAL и Использование синхронных спейсов.
Перед настройкой и запуском кластеров требуется выполнить следующие шаги:
-
Распаковать архивы с TCF и TDB версии 2.2.0 или выше. Для этого необходимо заранее выполнить шаги из соответствующего раздела руководства по установке.
-
Подготовить и запустить кластер хранилища состояния на основе etcd или Tarantool – в этом кластере хранятся конфигурация кластеров и их состояние активный-пассивный. В данном примере используется хранилище состояния на основе Tarantool.
- Создание конфигурации кластеров Tarantool DB
- Настройка кластеров Tarantool DB
- Запуск активного кластера
- Запуск пассивного кластера
- Проверка работы кластеров
Конфигурация для каждого из кластеров задается в отдельном YAML-файле конфигурации. Эта конфигурация задает топологию кластера и параметры его экземпляров. Полный список опций конфигурации для кластеров Tarantool и продуктов на его основе приведен в справочнике в документации Tarantool.
Файлы с финальной конфигурацией активного и пассивного кластеров приведены в разделе этого руководства.
Создайте файл source.yaml, в который будет добавлена конфигурация активного кластера (далее Tarantool Cluster 1).
В созданном файле в секции credentials.users задайте пользователей, которые взаимодействуют с компонентами Tarantool или TCF и
укажите, какие права они имеют:
credentials:users:dbadmin:password: secretroles: [super]replicator:password: replicator_passwordroles:- replication- dictionary_api_servicetcm_tarantool:password: tcm_tarantool_passwordroles: [super]storage:password: storage_passwordroles: [sharding]tcf_replicator:password: secretroles: [super]tcf_dml:password: secretroles: [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: replicatorsharding: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: manualbootstrap_strategy: config#..groups:routers:replicasets:rsrouter001:leader: router001bootstrap_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:3307advertise:client: 127.0.0.1:3307app:module: app.vshard_bootstrappersharding: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_acluster_2: cluster_binitial_status: activedml_users: [ tcf_dml ]replication_user: tcf_replicatorreplication_password: secretstorage: config_storagestorage_params:endpoints:- uri: 127.0.0.1:3301login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3302login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3303login: tarantool_config_storagepassword: 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 2 –passive;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_storagestorage_params:endpoints:- uri: 127.0.0.1:3301login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3302login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3303login: tarantool_config_storagepassword: tarantool_config_storage_password
Полный список поддерживаемых опций конфигурации roles.tcf-worker и roles.tcf-coordinator можно найти в разделе
.
Начиная с версии 0.7.0, TCF поддерживает расширения журнала упреждающей записи (WAL extensions).
Такие расширения позволяют добавлять дополнительную информацию к каждой записи в журнале WAL.
В частности, расширения WAL позволяют хранить старый и новый кортежи вместе с ключом шардирования
(bucket_id) для каждой совершённой CRUD-операции.
В шардированном кластере ключ bucket_id используется для отправки запросов UPDATE и DELETE на конкретный набор реплик,
что повышает производительность обработки таких операций на больших кластерах.
Чтобы включить расширения WAL в конфигурации Tarantool 3.x, используйте опцию wal.ext.*:
wal:ext:new: trueold: 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 2.x: Пример использования синхронной репликации
- кластер Tarantool 3.x: Синхронная репликация
- кластер Tarantool 2.x на основе Cartridge: Настройка синхронной репликации
-
Перейдите в директорию
tarantooldbи выполните в ней команду tt init. Команда создаст новое окружение для консольной утилиты tt CLI, в том числе файл конфигурацииtt.yaml. -
В директории
instances.enabledсозданного окружения создайте директории кластеровcluster_aиcluster_b. -
В директории
instances.enabled/cluster_aдобавьте файлsource.yamlс конфигурацией Tarantool Cluster 1, приведенной ниже. Экземпляры в этой конфигурации принимают входящие запросы на порты 3304–3307. Особенности конфигурации кластеров были описаны ранее в разделе Создание конфигурации кластеров Tarantool DB. -
В директории
instances.enabled/cluster_aсоздайте файлinstances.yaml– список экземпляров, которые будут запущены в текущем окружении:instance004:instance005:instance006:router001: -
В директории
instances.enabled/cluster_aсоздайте файлconfig.yaml– с настройками хранилища конфигурации на основе Tarantool, запущенного ранее.config:storage:endpoints:- uri: 127.0.0.1:3301login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3302login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3303login: tarantool_config_storagepassword: tarantool_config_storage_passwordprefix: /cluster1Здесь:
config.storage.endpoints.uri– адреса узлов хранилища конфигурации;config.storage.endpoints.login– пользователь для подключения экземпляров кластера к узлам хранилища конфигурации;config.storage.endpoints.password– пароль для подключения экземпляров кластера к узлам хранилища конфигурации;config.storage.prefix– префикс кластера, под которым хранится конфигурация для конкретного кластера.
-
В директории
instances.enabled/cluster_bсоздайте файлsource.yamlс конфигурацией Tarantool Cluster 2, приведенной ниже. Экземпляры в этой конфигурации принимают входящие запросы на порты 3324–3327. Особенности конфигурации кластеров были описаны ранее в разделе Создание конфигурации кластеров Tarantool DB. -
В директории
instances.enabled/cluster_bсоздайте файлinstances.yaml:instance007:instance008:instance009:router002: -
В директории
instances.enabled/cluster_aсоздайте файлconfig.yamlс настройками хранилища конфигурации на основе Tarantool, запущенного ранее.config:storage:endpoints:- uri: 127.0.0.1:3301login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3302login: tarantool_config_storagepassword: tarantool_config_storage_password- uri: 127.0.0.1:3303login: tarantool_config_storagepassword: tarantool_config_storage_passwordprefix: /cluster2 -
На каждом из серверов в директориях
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.
В качестве веб-интерфейса кластеров 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.
Перед запуском кластеров нужно загрузить их конфигурацию в TCM и задать необходимые настройки.
-
Определите текущий 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 -- -
Вернитесь в домашнюю директорию и загрузите файл конфигурации 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 -
Чтобы войти в TCM, откройте в браузере адрес http://localhost:8080. Логин и пароль для входа:
- Username:
admin - Password:
secret
Пароль для входа указан в конфигурации TCM в файле
tcm.yaml(см. опцию TCMsecurity.bootstrap-password). - Username:
-
При успешном применении конфигурации топология Tarantool Cluster 1 появится на вкладке Stateboard. Состояние экземпляров Tarantool Cluster 1 при этом будет отображаться как неактивное, так как они еще не запущены.
Перед запуском экземпляров Tarantool Cluster 1 и Tarantool Cluster 2 нужно создать Tarantool Cluster 2 в TCM и настроить его конфигурацию. Для этого:
-
В TCM откройте вкладку Clusters и нажмите кнопку Add.
-
На первом экране настройки (General) введите имя нового кластера
Tarantool Cluster 2в поле Name. -
Переключитесь на второй экран настройки (Config storage connection), нажав кнопку Next.
-
На втором экране настройки (Config storage connection) укажите следующие значения:
- в поле Provider –
tarantool; - в поле 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 - в поле Provider –
- в поле Username –
tcm_config_storage; - в поле Password –
tcm_config_storage_password.
-
Переключитесь на третий экран настройки (Tarantool connection), нажав кнопку Next.
-
На третьем экране настройки (Tarantool connection) укажите следующие значения:
- в поле Username –
tcm_tarantool; - в поле Password –
tcm_tarantool_password.
- в поле Username –
-
Нажмите Add, чтобы сохранить настройки нового кластера.
-
Загрузите файл конфигурации 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
-
Скопируйте директории модулей в директории 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 -
Перейдите в директорию
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].. -
Проверьте состояние запущенных узлов Tarantool Cluster 1:
$ tt status cluster_aINSTANCE STATUS PID MODE CONFIG BOX UPSTREAMcluster_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 -- -
Загрузите файл миграции
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" -
Примените загруженные миграции:
$ 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
-
Запустите пассивный 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].. -
Проверьте состояние запущенных узлов 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 -- -
Загрузите файл миграции
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" -
Примените загруженные миграции:
$ 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
-
Чтобы проверить состояние кластеров, в TCM выберите нужный кластер (Tarantool Cluster 1 или Tarantool Cluster 2) над вкладкой Stateboard в выпадающем списке Clusters. Всё настроено правильно, если на вкладке Stateboard все узлы в кластере подсвечены зеленым цветом.
-
Чтобы проверить примененную миграцию, перейдите на вкладку Tuples. При успешной миграции в списке появится спейс
writers. -
Чтобы проверить текущее состояние кластеров, откройте вкладку TCF. Видно, что
cluster_aперешел в активное состояние, аcluster_b– в пассивное.