Описание параметров запуска Picodata¶
Picodata является консольным приложением, которое поддерживает различные параметры запуска в виде аргументов командной строки.
Полный список аргументов доступен с помощью следующей команды:
picodata <command> [<params>]
Описание команды run
¶
Ниже приводится описание аргументов команды run
.
--advertise <[host][:port]>
Адрес, по которому другие инстансы смогут подключиться к данному инстансу. По умолчанию используется значение из аргумента --listen
.
Аналогичная переменная окружения: PICODATA_ADVERTISE
.
--cluster-id <name>
Имя кластера. Инстанс не сможет стать частью кластера, если у него указано другое имя.
Аналогичная переменная окружения: PICODATA_CLUSTER_ID
.
--data-dir <path>
Директория, в которой инстанс будет сохранять свои данные для постоянного хранения.
Аналогичная переменная окружения: PICODATA_DATA_DIR
.
-e, --tarantool-exec <expr>
Данный аргумент позволяет выполнить Lua-скрипт на Tarantool
--failure-domain <key=value>
Список параметров географического расположения сервера (через запятую). Также этот аргумент называется зоной доступности.
Каждый параметр должен быть в формате КЛЮЧ=ЗНАЧЕНИЕ. Также, следует помнить о том, что добавляемый инстанс должен обладать
тем же набором доменов (т.е. ключей данного аргумента), которые уже есть в кластере.
Picodata будет избегать помещения двух инстансов в один репликасет если хотя бы один параметр зоны доступности у них совпадает.
Соответственно, инстансы будут формировать новые репликасеты.
Аналогичная переменная окружения: PICODATA_FAILURE_DOMAIN
.
-h, --help
Вывод справочной информации
--init-replication-factor <INIT_REPLICATION_FACTOR>
Число реплик (инстансов с одинаковым набором хранимых данных) для каждого репликасета.
Аргумент используется только при начальном создании кластера и в дальнейшем игнорируется.
Аналогичная переменная окружения: PICODATA_INIT_REPLICATION_FACTOR
.
--instance-id <name>
Название инстанса. Если этот аргумент не указать, то название будет сгенерировано автоматически.
Данный аргумент удобно использовать для явного указания инстанса при его перезапуске
(например, в случае его недоступности или при переносе в другую сеть).
Аналогичная переменная окружения: PICODATA_INSTANCE_ID
.
-l, --listen <[host][:port]>
Адрес и порт привязки инстанса. По умолчанию используется localhost:3301
Аналогичная переменная окружения: PICODATA_LISTEN
.
--log-level <LOG_LEVEL>
Уровень регистрации событий. Возможные значения: fatal, system, error, crit, warn, info, verbose, debug.
По умолчанию используется уровень info.
Аналогичная переменная окружения: PICODATA_LOG_LEVEL
.
--peer <[host][:port]>
Адрес другого инстанса. В данному аргументе можно передавать несколько значение через запятую.
По умолчанию используется значение localhost:3301, т.е. без связывания с каким-либо другим инстансом.
Указание порта опционально. Аналогичная переменная окружения: PICODATA_PEER
.
--replicaset-id <name>
Название целевого репликасета. Аналогичная переменная окружения: PICODATA_REPLICASET_ID
Описание команды tarantool
¶
Открывает консоль c Lua-интерпретатором, в котором можно взаимодействовать с СУБД аналогично тому как это происходит в обычной консоли Tarantool. Никакая логика Picodata поверх Tarantool не выполняется, соответственно, кластер не инициализируется и подключение к кластеру не производится. Запускается консоль Tarantool, встроенного в Picodata (но не установленного обычного Tarantool, если такой есть в системе).
Описание команды expel
¶
Исключает инстанс из кластера. Применяется чтобы указать кластеру, что инстанс больше не участвует в кворуме Raft.
Полный формат:
picodata expel --instance-id <instance-id> [--cluster-id <cluster-id>] [--peer <peer>]
Команда подключается к peer
через протокол netbox и отдает ему
внутреннюю команду на исключение instance-id
из кластера. Команда
отправляется в raft-лог, из которого затем будет применена к таблице
инстансов и установит значение target_grade=Expelled
для заданного
инстанса. Затем через какое-то время governor возьмет в обработку этот
target_grade
, выполнит необходимые работы по отключению инстанса и
установит ему значение current_grade=Expelled
. Сам инстанс после этого
остановится, его процесс завершится. В дальнейшем кластер не будет
ожидать от этого инстанса участия в кворуме. Исключенный из кластера
инстанс при попытке перезапуститься будет автоматически завершаться.
Параметр cluster-id
проверяется перед добавлением команды в raft-лог.
Параметр peer
— это адрес любого инстанса кластера. Формат:
[host]:port
. Может совпадать с адресом исключаемого инстанса.
Если исключаемый инстанс является текущим raft-лидером, то лидерство переходит другому инстансу.
Обратите внимание, что исключенный инстанс нужно снять из-под контроля супервизора.
Значение instance-id
исключенного инстанса может быть использовано
повторно. Для этого достаточно запустить новый инстанс с тем же
instance-id
.
Примеры¶
Ниже приведены типовые ситуации и подходящие для этого команды.
-
На хосте с инстансом
i4
вышел из строя жесткий диск, данные инстанса утрачены, сам инстанс неработоспособен. Какой-то из оставшихся инстансов доступен по адресу192.168.104.55:3301
.picodata expel --instance-id i4 --peer 192.168.104.9:3301
-
В кластере
mycluster
из 3-х инстансов, где каждый работает на своем физическом сервере, происходит замена одного сервера. Выключать инстанс нельзя, так как оставшиеся 2 узла кластера не смогут создать стабильный кворум. Поэтому сначала в сеть добавляется дополнительный сервер:picodata run --instance-id i4 --peer 192.168.104.1 --cluster-id mycluster
Далее, если на сервере с инстансом i3 настроен автоматический перезапуск Picodata в Systemd или как-либо иначе, то его нужно предварительно отключить. После этого c любого из уже работающих серверов кластера исключается инстанс i3:
picodata expel --instance-id i3 --cluster-id mycluster
Указанная команда подключится к
127.0.0.1:3301
, который самостоятельно найдет лидера кластера и отправит ему команду на исключение инстансаi3
. Когда процессpicodata
на i3 завершится — сервер можно выключать.
Подробнее об устройстве кластера и репликасетов Picodata см. разделе Инструкция по развертыванию¶
Дата создания: 10 апреля 2023 г.