Настройка наборов реплик | Tarantool
Документация на русском языке
поддерживается сообществом
Tarantool Cartridge Cartridge CLI Команды Cartridge CLI Настройка наборов реплик

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

Используйте команду cartridge replicasets, чтобы настроить наборы реплик для локального запуска.

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

В любой подкоманде replicasets можно использовать следующие параметры:

--name Имя приложения.
--run-dir Директория, где хранятся PID-файлы и файлы сокетов. По умолчанию — ./tmp/run или значение run-dir из файла .cartridge.yml.
--cfg Файл конфигурации экземпляра, по умолчанию — ./instances.yml или значение cfg из файла .cartridge.yml.

Наборы реплик в Cartridge настраиваются с помощью Lua API. Все экземпляры в топологии описываются в одном файле instances.yml (см. параметр --cfg). Экземпляры получают конфигурацию через сокеты консоли, которые находятся в директории запуска.

Сначала все запущенные экземпляры, указанные в файле instances.yml, объединяются в сеть membership. Таким образом Cartridge проверяет, входят ли уже какие-либо экземпляры в кластер. Один из таких экземпляров затем выполняет кластерные операции.

cartridge replicasets setup [параметры]

Настройка наборов реплик с помощью файла.

Параметры:

--file Файл с конфигурацией набора реплик. По умолчанию — replicasets.yml.
--bootstrap-vshard Инициализация vshard при первоначальной настройке.

Пример конфигурации:

router:
  instances:
  - router
  roles:
  - vshard-router
  - app.roles.custom
s-1:
  instances:
  - s1-master
  - s1-replica
  roles:
  - vshard-storage
  weight: 11
  all_rw: false
  vshard_group: default

Все экземпляры должны быть описаны в instances.yml (или другом файле, переданном в параметре --cfg).

cartridge replicasets save [параметры]

Сохранение текущей конфигурации в файл.

Параметры:

--file Файл, в который сохраняется конфигурация. По умолчанию — replicasets.yml.

cartridge replicasets list [параметры]

Вывод текущей топологии кластера.

cartridge replicasets join [ИМЯ_ЭКЗЕМПЛЯРА...] [параметры]

Присоединение экземпляра к кластеру.

Параметры:

--replicaset Имя набора реплик.

Если набор реплик с указанным алиасом уже есть в кластере, экземпляры присоединяются к этому набору. Если такого набора нет, он будет создан.

Чтобы Cartridge присоединил экземпляр к набору реплик, в instances.yml должен быть указан параметр advertise_uri этого экземпляра.

cartridge replicasets list-roles [параметры]

Вывод списка доступных ролей.

cartridge replicasets list-vshard-groups [параметры]

Вывод списка доступных групп vshard.

cartridge replicasets add-roles [ИМЯ_РОЛИ...] [параметры]

Добавление ролей для набора реплик.

Параметры:

--replicaset Имя набора реплик.
--vshard-group Группа vshard для наборов реплик vshard-storage.

cartridge replicasets remove-roles [ИМЯ_РОЛИ...] [параметры]

Удаление ролей для набора реплик.

Параметры:

--replicaset Имя набора реплик.

cartridge replicasets set-weight ВЕС [параметры]

Определение веса набора реплик.

Параметры:

--replicaset Имя набора реплик.

cartridge replicasets set-failover-priority ИМЯ_ЭКЗЕМПЛЯРА... [параметры]

Изменение приоритета экземпляра при восстановлении набора реплик после сбоев.

Параметры:

--replicaset Имя набора реплик.

cartridge replicasets bootstrap-vshard [параметры]

Инициализация vshard.

cartridge replicasets expel [ИМЯ_ЭКЗЕМПЛЯРА...] [параметры]

Исключение экземпляров из кластера.

В примере используется приложение, созданное командой cartridge create. Файл instances.yml выглядит так:

---
myapp.router:
advertise_uri: localhost:3301
http_port: 8081

myapp.s1-master:
advertise_uri: localhost:3302
http_port: 8082

myapp.s1-replica:
advertise_uri: localhost:3303
http_port: 8083

# остальные экземпляры в этом примере не показаны

cartridge replicasets join --replicaset s-1 s1-master s1-replica

    • Join instance(s) s1-master, s1-replica to replica set s-1
    • Instance(s) s1-master, s1-replica have been successfully joined to replica set s-1

cartridge replicasets join --replicaset router router

    • Join instance(s) router to replica set router
    • Instance(s) router have been successfully joined to replica set router

cartridge replicasets list-roles

    •   Available roles:
    •   failover-coordinator
    •   vshard-storage
    •   vshard-router
    •   metrics
    •   app.roles.custom

cartridge replicasets add-roles --replicaset s-1 vshard-storage

    • Add role(s) vshard-storage to replica set s-1
    • Replica set s-1 now has these roles enabled:
    •   vshard-storage (default)

cartridge replicasets add-roles \
  --replicaset router \
  vshard-router app.roles.custom failover-coordinator metrics

    • Add role(s) vshard-router, app.roles.custom, failover-coordinator, metrics to replica set router
    • Replica set router now has these roles enabled:
    •   failover-coordinator
    •   vshard-router
    •   metrics
    •   app.roles.custom

cartridge replicasets bootstrap-vshard

    • Vshard is bootstrapped successfully

cartridge replicasets list

    • Current replica sets:
• router
Role: failover-coordinator | vshard-router | metrics | app.roles.custom
    ★ router localhost:3301
• s-1                    default | 1
Role: vshard-storage
    ★ s1-master localhost:3302
    • s1-replica localhost:3303

cartridge replicasets expel s1-replica

    • Instance(s) s1-replica have been successfully expelled