Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Управление наборами реплик

$ tt replicaset COMMAND {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]# или$ tt rs COMMAND {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]

Команда tt replicaset (или tt rs) управляет набором реплик Tarantool.

COMMAND может принимать одно из следующих значений:

status

$ tt replicaset status {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]# или$ tt rs status {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]

Команда tt replicaset status (tt rs status) показывает текущий статус набора реплик.

Отображение статуса всех наборов реплик

Чтобы просмотреть статус всех наборов реплик приложения в текущем окружении tt, выполните команду tt replicaset status с именем приложения:

$ tt replicaset status myapp

Отображение статуса отдельного набора реплик

Чтобы просмотреть статус отдельного набора реплик приложения, выполните команду tt replicaset status с именем или URI экземпляра из этого набора реплик:

$ tt replicaset status myapp:storage-001-a

Для реплики вне текущего окружения tt укажите ее URI и учетные данные для доступа:

$ tt replicaset status 192.168.10.10:3301 -u myuser -p p4$$w0rD

Подробнее о других способах передачи учетных данных см. в разделе Аутентификация.

promote

$ tt replicaset promote {APPLICATION:APP_INSTANCE | URI} [OPTIONS ...]# or$ tt rs promote {APPLICATION:APP_INSTANCE | URI} [OPTIONS ...]

Команда tt replicaset promote (tt rs promote) повышает указанный экземпляр, назначая его лидером набора реплик. Эта команда работает с кластерами Tarantool, использующими локальную YAML-конфигурацию, и с кластерами Cartridge.

Повышение в кластерах с локальными YAML-конфигурациями

Команда tt replicaset promote работает с кластерами Tarantool, использующими локальные YAML-конфигурации, с режимами отказоустойчивости off, manual и election.

В режимах отказоустойчивости off или manual команда обновляет файл конфигурации кластера в соответствии с указанными аргументами и перезагружает его:

  • Режим отказоустойчивости off: команда устанавливает параметр database.mode в значение rw для указанного экземпляра.

  • Режим отказоустойчивости manual: команда обновляет параметр leader в конфигурации набора реплик. Остальные экземпляры этого набора реплик переходят в режим только для чтения.

Пример:

$ tt replicaset promote my-app:storage-001-a

Если некоторые участники затронутого набора реплик запущены вне текущего окружения tt, команда tt replicaset promote не может гарантировать перезагрузку конфигурации на них и сообщает об ошибке. Эту проверку можно пропустить, добавив параметр -f/--force:

$ tt replicaset promote my-app:storage-001-a --force

В режиме отказоустойчивости election команда tt replicaset promote инициирует новые выборы лидера, вызывая функцию box_ctl-promote на указанном экземпляре. С помощью параметра --timeout можно задать время ожидания завершения выборов:

$ tt replicaset promote my-app:storage-001-a --timeout=10

Повышение в кластерах Cartridge

Команда tt replicaset promote повышает экземпляры в кластерах Cartridge следующим образом:

  • Режим отказоустойчивости disabled или eventual: команда изменяет приоритет отказоустойчивости экземпляра.

  • Режим отказоустойчивости eventual или raft: команда вызывает cartridge.failover_promote() и ожидает перехода экземпляра в режим чтения-записи. Если указан параметр -f/--force, параметр force_inconsistency функции cartridge.failover_promote устанавливается в значение true.

$ tt replicaset promote my-cartridge-app:storage-001-a --force

Подробнее см. режимы отказоустойчивости Cartridge.

demote

$ tt replicaset demote APPLICATION:APP_INSTANCE [OPTIONS ...]# или$ tt rs demote APPLICATION:APP_INSTANCE [OPTIONS ...]

Команда tt replicaset demote (tt rs demote) понижает статус экземпляра в кластере Tarantool с локальной YAML-конфигурацией.

Понижение статуса в кластерах с локальными YAML-конфигурациями

Команда tt replicaset demote понижает статус экземпляров в кластерах Tarantool с локальными YAML-конфигурациями при режимах отказоустойчивости off и election.

В режиме отказоустойчивости off команда tt replicaset demote устанавливает для параметра database.mode экземпляра значение ro и перезагружает конфигурацию.

Если некоторые члены затронутого набора реплик запущены вне текущего окружения tt, команда tt replicaset demote не может гарантировать перезагрузку конфигурации на них и сообщает об ошибке. Пропустить эту проверку можно, добавив параметр -f/--force:

$ tt replicaset demote my-app:storage-001-a --force

В режиме отказоустойчивости election команда tt replicaset demote инициирует выборы лидера в наборе реплик. Для указанного экземпляра параметр replication.election_mode на время этих выборов изменяется на voter, что гарантирует избрание другого экземпляра новым лидером набора реплик.

С помощью параметра --timeout можно задать время ожидания завершения выборов:

$ tt replicaset demote my-app:storage-001-a --timeout=10

Исключение

$ tt replicaset expel APPLICATION:APP_INSTANCE [OPTIONS ...]# или$ tt rs expel  APPLICATION[:APP_INSTANCE] [OPTIONS ...]

Команда tt replicaset expel (tt rs expel) исключает экземпляр из кластера.

$ tt replicaset expel myapp:storage-001-b

Команда поддерживает параметры --config, --cartridge и --custom для принудительного использования определенного оркестратора.

Чтобы исключить экземпляр из кластера Cartridge:

$ tt replicaset expel my-cartridge-app:storage-001-b --cartridge

vshard

$ tt replicaset vshard COMMAND {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]# или$ tt rs vshard COMMAND {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]# или$ tt rs vs COMMAND {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]

Команда tt replicaset vshard (tt rs vs) управляет vshard в кластере.

Доступны следующие подкоманды:

vshard bootstrap

$ tt replicaset vshard bootstrap {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]# или$ tt rs vshard bootstrap {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]# или$ tt rs vs bootstrap {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]

tt replicaset vshard bootstrap (tt rs vs bootstrap) выполняет начальную загрузку vshard в кластере.

$ tt replicaset vshard bootstrap myapp

С указанием URI и учетных данных:

$ tt replicaset vshard bootstrap 192.168.10.10:3301 -u myuser -p p4$$w0rD

Можно указать имя приложения или имя любого экземпляра в кластере. Команда автоматически находит маршрутизатор vshard в кластере и вызывает на нем функцию vshard.router.bootstrap().

Команда поддерживает параметры --config, --cartridge и --custom, которые принудительно задают использование определенного оркестратора.

Чтобы выполнить начальную загрузку vshard в кластере Cartridge:

$ tt replicaset vshard bootstrap my-cartridge-app --cartridge

Начальная загрузка

$ tt replicaset bootstrap APPLICATION[:APP_INSTANCE] [OPTIONS ...]# или$ tt rs bootstrap APPLICATION[:APP_INSTANCE] [OPTIONS ...]

Команда tt replicaset bootstrap (tt rs bootstrap) выполняет начальную загрузку кластера Cartridge или экземпляра. Команда работает в пределах текущего окружения tt и использует имена приложений и экземпляров.

Начальная загрузка кластера Cartridge

Чтобы выполнить начальную загрузку приложения cartridge_app с использованием файла наборов реплик по умолчанию (replicasets.yml):

$ tt replicaset bootstrap cartridge_app

Чтобы использовать другой файл с конфигурацией наборов реплик, укажите путь к нему в параметре --file:

$ tt replicaset bootstrap cartridge_app --file replicasets1.yml

Чтобы дополнительно выполнить начальную загрузку vshard после начальной загрузки кластера, добавьте параметр --bootstrap-vshard:

$ tt replicaset bootstrap --bootstrap-vshard cartridge_app

Начальная загрузка экземпляра

При вызове с именем экземпляра команда tt replicaset bootstrap добавляет экземпляр в набор реплик, указанный в параметре --replicaset:

$ tt replicaset bootstrap --replicaset replicaset cartridge_app:instance1

rebootstrap

$ tt replicaset rebootstrap APPLICATION:APP_INSTANCE [-y | --yes]# или$ tt rs rebootstrap APPLICATION:APP_INSTANCE [-y | --yes]

Команда tt replicaset rebootstrap (tt rs rebootstrap) выполняет повторную начальную загрузку экземпляра: останавливает его, удаляет артефакты экземпляра и запускает заново.

Чтобы выполнить повторную начальную загрузку экземпляра storage-001 приложения myapp:

$ tt replicaset rebootstrap myapp:storage-001

Для автоматического подтверждения повторной начальной загрузки добавьте параметр -y/--yes:

$ tt replicaset rebootstrap myapp:storage-001 -y

roles

$ tt replicaset roles [add|remove] APPLICATION[:APP_INSTANCE] ROLE_NAME [OPTIONS ...]# или$ tt rs roles [add|remove] APPLICATION[:APP_INSTANCE] ROLE_NAME [OPTIONS ...]

Команда tt replicaset roles (tt rs roles) управляет ролями приложения в кластере. Эта команда работает с кластерами Tarantool, использующими локальную YAML-конфигурацию, и с кластерами Cartridge. У неё есть две подкоманды:

  • add – добавляет роль;
  • remove - удаляет роль.

Управление ролями в кластерах с локальными YAML-конфигурациями

При вызове в кластерах с локальными YAML-конфигурациями подкоманды tt replicaset roles добавляют или удаляют соответствующие строки из файла конфигурации и перезагружают конфигурацию.

Используйте параметры --global, --group, --replicaset, --instance, чтобы указать область конфигурации для добавления или удаления ролей. Например, чтобы добавить роль всем экземплярам в наборе реплик:

$ tt replicaset roles add my-app roles.my-role --replicaset storage-a

Также можно управлять ролями конкретного экземпляра, указав его имя после имени приложения:

$ tt replicaset roles add my-app:router-001 roles.my-role

Чтобы удалить роль, определённую в глобальной области конфигурации:

$ tt replicaset roles remove my-app roles.my-role --global

Если некоторые экземпляры из затронутой области работают вне текущего окружения tt, команда tt replicaset roles не может гарантировать перезагрузку конфигурации на них и сообщает об ошибке. Эту проверку можно пропустить, добавив параметр -f/--force:

$ tt replicaset roles add my-app roles.my-role --replicaset storage-a --force

Управление ролями в кластерах Cartridge

При вызове в кластерах Cartridge подкоманды tt replicaset roles добавляют или удаляют роли кластера Cartridge.

Роли кластера Cartridge определяются для каждого набора реплик. Таким образом, для указания области роли можно использовать параметры --replicaset и --group. В этом случае группа - это группа vshard.

Чтобы добавить роль в набор реплик кластера Cartridge:

$ tt replicaset roles add my-cartridge-app my-role --replicaset storage-001

Чтобы удалить роль из группы vshard:

$ tt replicaset roles remove my-cartridge-app my-role --group cold-data

Подробнее см. в разделе роли кластера Cartridge.

Выбор оркестратора приложения вручную

Оркестратор для приложения можно задать при вызове команд tt replicaset. Доступны следующие параметры:

  • --config для приложений, использующих YAML-конфигурацию кластера (Tarantool 3.x или новее).
  • --cartridge для приложений Cartridge (Tarantool 2.x).
  • --custom для любых других оркестраторов, используемых в кластерах Tarantool 2.x.
$ tt replicaset status myapp –config $ tt replicaset promote my-cartridge-app:storage-001-a –cartridge

Если фактический оркестратор приложения не совпадает с указанным параметром, возникает ошибка.

Аутентификация

Передать учетные данные пользователя Tarantool при подключении к экземпляру по его URI можно одним из следующих способов:

  • Параметры -u (--username) и -p (--password):

    $ tt replicaset status 192.168.10.10:3301 -u myuser -p p4$$w0rD
  • Строка подключения:

    $ tt replicaset status myuser:p4$$w0rD@192.168.10.10:3301
  • Переменные окружения TT_CLI_USERNAME и TT_CLI_PASSWORD:

    $ export TT_CLI_USERNAME=myuser$ export TT_CLI_PASSWORD=p4$$w0rD$ tt replicaset status 192.168.10.10:3301

Параметры

--bootstrap-vshard

Применимо к: bootstrap

Дополнительно выполнить начальную загрузку vshard при начальной загрузке приложения Cartridge.

--cartridge

Принудительно использовать оркестратор Cartridge для кластеров Tarantool 2.x.

--config

Принудительно использовать оркестратор конфигурации YAML для кластеров Tarantool 3.0 и новее.

--custom

Принудительно использовать пользовательский оркестратор для кластеров Tarantool 2.x.

--file STRING

Применимо к: bootstrap

Файл с конфигурацией наборов реплик Cartridge. По умолчанию: instances.yaml в каталоге приложения.

См. также раздел Начальная загрузка кластера Cartridge

-f, --force

Применимо к: promote, demote, roles

Пропустить операцию на экземплярах, не работающих в том же окружении.

-G, --global

Применимо к: roles для Tarantool 3.x и новее

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

-g, --group STRING

Применимо к: roles

Имя группы конфигурации, к которой применяется операция.

-i, --instance STRING

Применимо к: roles

Имя экземпляра, к которому применяется операция. Не применимо к кластерам Cartridge. Подробнее см. в разделе Управление ролями в кластерах Cartridge.

-r, --replicaset STRING

Применимо к: bootstrap, roles

Имя набора реплик, к которому применяется операция.

См. также раздел Начальная загрузка экземпляра

-u, --username STRING

Пользователь Tarantool для подключения к экземпляру по URI.

-p, --password STRING

Пароль пользователя.

--sslcertfile STRING

Путь к файлу SSL-сертификата для зашифрованных соединений при использовании URI.

--sslkeyfile STRING

Путь к файлу закрытого SSL-ключа для зашифрованных соединений при использовании URI.

--sslcafile STRING

Путь к файлу доверенных центров сертификации (CA) для зашифрованных соединений при использовании URI.

--sslciphers STRING

Список наборов шифров SSL, используемых для зашифрованных соединений при использовании URI, разделенный двоеточиями (:).

--timeout UINT

Применимо к: promote, demote, expel, vshard, bootstrap

Время ожидания выполнения операции в секундах. По умолчанию:

  • 3 для promote, demote, expel, roles;
  • 10 для vshard и bootstrap.

--with-integrity-check STRING

Применимо к: promote, demote, expel, roles

Генерировать хэши и подписи для проверки целостности.

-y, --yes

Применимо к: rebootstrap

Автоматически подтвердить повторную начальную загрузку.