Рейтинг@Mail.ru
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

     Bootstrap vshard task completed successfully, check the cluster status

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