Top.Mail.Ru
Настройка восстановления после сбоев в Cartridge CLI | Tarantool
Tarantool
Узнайте содержание релиза 2.8
Tarantool Cartridge Cartridge CLI Команды Cartridge CLI Настройка восстановления после сбоев в Cartridge CLI

Настройка восстановления после сбоев в Cartridge CLI

Конфигурировать восстановление после сбоев (failover) в Cartridge можно с помощью команды cartridge failover.

cartridge failover [подкоманда] [параметры] [аргументы]

--name Имя приложения.
--file Путь к файлу с настройками восстановления после сбоев. По умолчанию — failover.yml.

Команда failover также поддерживает глобальные параметры.

Восстановление после сбоев конфигурируется с помощью Lua API.

Чтобы запустить восстановление после сбоя, cartridge-cli подключается к случайно выбранному сконфигурированному экземпляру. Поэтому предварительно следует настроить топологию кластера. Подробную информацию об этом вы найдете в описании команды cartridge replicasets. Кроме того, вы можете обратиться к документации по архитектуре восстановления после сбоев.

Управлять восстановлением после сбоев можно так:

cartridge failover set [режим] [параметры]

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

  • stateful
  • eventual
  • disabled

--state-provider Поставщик состояния при восстановлении после сбоев. Возможные значения: stateboard или etcd2. Используется только в режиме stateful.
--params Параметры восстановления после сбоев, описанные в виде строки в формате JSON. Пример: "{'fencing_timeout': 10', 'fencing_enabled': true}".
--provider-params Параметры поставщика состояния, описанные в виде строки в формате JSON. Пример: "{'lock_delay': 14}".

Информацию о параметрах вы найдете в соответствующем разделе руководства.

В отличие от команды setup, set не принимает параметры, неподходящие для выбранного режима. Например, если указать параметр --state-provider для режима eventual, произойдет ошибка.

cartridge failover setup --file [файл_конфигурации]

По умолчанию для конфигурации восстановления после сбоев используется файл failover.yml. См. описание параметров, используемых в этой конфигурации.

mode: stateful
state_provider: stateboard
stateboard_params:
    uri: localhost:4401
    password: passwd
failover_timeout: 15

В файле можно сохранять неиспользуемые параметры. Допустим, задан режим stateful и информацию о состоянии передает поставщик etcd2, а вы хотите указать вместо этого поставщика stateboard. Вы можете не удалять из файла раздел etcd2_params — достаточно добавить stateboard_params и изменить значение state_provider. Чтобы впоследствии перевести восстановление после сбоев в режим eventual, не обязательно удалять из файла ни etcd2_params, ни stateboard_params.

Обратите внимание, что в Cartridge применяются все параметры, указанные в файле конфигурации. Это означает, что в примере выше параметры etcd2_params и stateboard_params будут применены и для режима eventual, хотя они предназначены для режима stateful.

cartridge failover status [параметры]

Проверка статуса восстановления после сбоев.

cartridge failover disable [параметры]

Отключение восстановления после сбоев. Другой способ отключить его — задать режим disabled с помощью команды set или в файле конфигурации.

mode Режим восстановления после сбоев (обязательный параметр). Возможные значения: disabled, eventual, stateful.
failover_timeout Время в секундах до перевода экземпляра в кластере из статуса suspect в статус dead.
fencing_enabled Сброс статуса лидера, если потерян кворум поставщиков состояний и хотя бы одна реплика (только для режима stateful).
fencing_timeout Время до срабатывания фенсинга после неудачной проверки.
fencing_pause Время в секундах до выполнения проверки.

Остальные параметры связаны с выбранным режимом.

В режиме eventual не требуется указывать дополнительные параметры.

Подробную информацию о режиме eventual вы найдете в соответствующей документации.

Режим stateful требует следующих параметров:

state_provider Тип поставщика внешнего состояния. Поддерживаются следующие варианты: stateboard, etcd2.
stateboard_params

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

  • uri — URI экземпляра stateboard (обязательный параметр).
  • password — пароль к экземпляру stateboard (обязательный параметр).
etcd2_params

Конфигурация etcd2:

  • prefix — префикс ключей etcd (<prefix>/lock, <prefix>/leaders).
  • lock_delay — длительность блокировки в секундах. По умолчанию в Cartridge — 10.
  • endpoints — URI для поиска экземпляров etcd и подключения к ним. По умолчанию в Cartridge — ['http://localhost:2379', 'http://localhost:4001'].
  • username
  • password

Подробную информацию о режиме stateful вы найдете в соответствующей документации.