Перейти к содержанию

Описание параметров запуска 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.

Примеры

Ниже приведены типовые ситуации и подходящие для этого команды.

  1. На хосте с инстансом i4 вышел из строя жесткий диск, данные инстанса утрачены, сам инстанс неработоспособен. Какой-то из оставшихся инстансов доступен по адресу 192.168.104.55:3301.

    picodata expel --instance-id i4 --peer 192.168.104.9:3301

  2. В кластере 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 см. разделе Инструкция по развертыванию

Исходный код страницы


Последнее обновление: 25 мая 2023 г.
Дата создания: 10 апреля 2023 г.