Управление наборами реплик
$ tt replicaset COMMAND {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]# или$ tt rs COMMAND {APPLICATION[:APP_INSTANCE] | URI} [OPTIONS ...]
Команда tt replicaset (или tt rs) управляет набором реплик Tarantool.
COMMAND может принимать одно из следующих значений:
$ 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
Подробнее о других способах передачи учетных данных см. в разделе Аутентификация.
$ 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.
Команда 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
Команда 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.
$ tt replicaset demote APPLICATION:APP_INSTANCE [OPTIONS ...]# или$ tt rs demote APPLICATION:APP_INSTANCE [OPTIONS ...]
Команда tt replicaset demote (tt rs demote) понижает статус экземпляра в кластере Tarantool с локальной 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
$ 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 в кластере.
Доступны следующие подкоманды:
$ 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_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
$ 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
$ 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-конфигурациями подкоманды 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 подкоманды 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 при начальной загрузке приложения Cartridge.
Принудительно использовать оркестратор Cartridge для кластеров Tarantool 2.x.
Принудительно использовать оркестратор конфигурации YAML для кластеров Tarantool 3.0 и новее.
Принудительно использовать пользовательский оркестратор для кластеров Tarantool 2.x.
Применимо к: bootstrap
Файл с конфигурацией наборов реплик Cartridge. По умолчанию: instances.yaml в каталоге приложения.
См. также раздел Начальная загрузка кластера Cartridge
Применимо к: promote, demote, roles
Пропустить операцию на экземплярах, не работающих в том же окружении.
Применимо к: roles для Tarantool 3.x и новее
Применить операцию к глобальной области конфигурации, то есть ко всем экземплярам.
Применимо к: roles
Имя группы конфигурации, к которой применяется операция.
Применимо к: roles
Имя экземпляра, к которому применяется операция. Не применимо к кластерам Cartridge. Подробнее см. в разделе Управление ролями в кластерах Cartridge.
Применимо к: bootstrap, roles
Имя набора реплик, к которому применяется операция.
См. также раздел Начальная загрузка экземпляра
Пользователь Tarantool для подключения к экземпляру по URI.
Пароль пользователя.
Путь к файлу SSL-сертификата для зашифрованных соединений при использовании URI.
Путь к файлу закрытого SSL-ключа для зашифрованных соединений при использовании URI.
Путь к файлу доверенных центров сертификации (CA) для зашифрованных соединений при использовании URI.
Список наборов шифров SSL, используемых для зашифрованных соединений при использовании URI, разделенный двоеточиями (:).
Применимо к: promote, demote, expel, vshard, bootstrap
Время ожидания выполнения операции в секундах. По умолчанию:
3дляpromote,demote,expel,roles;10дляvshardиbootstrap.
Применимо к: promote, demote, expel, roles
Генерировать хэши и подписи для проверки целостности.
Применимо к: rebootstrap
Автоматически подтвердить повторную начальную загрузку.