TDB Documentation portal logo
Помощь
Обновлена 30 июня 2026 г. в 07:00

Конфигурация кластера

Tarantool позволяет настроить полную топологию кластера, определить параметры для отдельных экземпляров и задать клиентский код миграций. Каждый экземпляр использует эту конфигурацию при запуске, чтобы организовать кластер. Конфигурация кластера определяет топологию кластера, восстановление после сбоев (failover), параметры шардирования, настройки модулей, настройки аутентификации, управление списками контроля доступа (ACL), а также настройки, заданные пользователем. В конфигурации также можно задать параметры для конкретного экземпляра, например настройки подключения, память, рабочие каталоги и параметры снимков данных (snapshots).

Доступны два способа хранения конфигурации:

  • Централизованная конфигурация. Данные конфигурации хранятся в едином месте — в хранилище на базе etcd или Tarantool, все изменения конфигурации экземпляры кластера получают из этого централизованного хранилища;
  • Локальная конфигурация в YAML-файле для каждого экземпляра в составе кластера. Такой способ предполагает, что все экземпляры кластера используют идентичные файлы конфигурации. Копия конфигурации хранится на каждом экземпляре кластера, а сам кластер автоматически синхронизирует эти копии.

Узнать больше о способах настройки конфигурации можно в документации Tarantool.

Содержание:

Представление кластерной конфигурации

Представить кластерную конфигурацию можно двумя способами:

  • Единый YAML-файл — заданные секции конфигурации собраны в одном файле config.yml. Секции конфигурации представлены в виде соответствующих блоков внутри файла. Это представление конфигурации компактно, его удобно использовать для хранения и передачи данных.

  • Несколько YAML-файлов — конфигурация разбита на несколько файлов. Вместе эти файлы составляют единую конфигурацию кластера. Этот подход можно использовать, чтобы организовать конфигурацию в большом кластере. В веб-интерфейсе TCM все файлы, которые формируют конфигурацию кластера, отображаются в списке на вкладке Configuration.

Пример единого файла конфигурации config.yml:

credentials:  users:    admin:      password: 'secret-cluster-cookie'      roles: [super]    client:      password: 'secret'      roles: [super]    replicator:      password: 'secret'      roles: [replication]    storage:      password: 'secret'      roles: [sharding]iproto:  advertise:    peer:      login: replicator    sharding:      login: storagesharding:  bucket_count: 30000roles_cfg:  roles.metrics-export:    http:    - endpoints:      - format: prometheus        path: /metrics      listen: 8081groups:  routers:    replication:      failover: manual    sharding:      roles: [router]    roles:      - roles.crud-router      - roles.metrics-export      - roles.dictionary-router    roles_cfg:      roles.crud-router:        stats: true        stats_driver: metrics        stats_quantiles: true        stats_quantile_tolerated_error: 0.001        stats_quantile_age_buckets_count: 5        stats_quantile_max_age_time: 180    replicasets:      router-msk:        leader: router-msk        instances:          router-msk:            iproto:              listen:                - uri: tarantool-router-msk:3301              advertise:                client: tarantool-router-msk:3301      router-spb:        leader: router-spb        instances:          router-spb:            iproto:              listen:                - uri: tarantool-router-spb:3301              advertise:                client: tarantool-router-spb:3301  storages:    replication:      failover: election    sharding:      roles: [storage]    roles:      - roles.crud-storage      - roles.metrics-export      - roles.dictionary-storage    roles_cfg:      roles.expirationd: [ ]    replicasets:      storage-1:        instances:          storage-1-msk:            iproto:              listen:                - uri: tarantool-storage-1-msk:3301              advertise:                client: tarantool-storage-1-msk:3301          storage-1-spb:            iproto:              listen:                - uri: tarantool-storage-1-spb:3301              advertise:                client: tarantool-storage-1-spb:3301          storage-1-brn:            iproto:              listen:                - uri: tarantool-storage-1-brn:3301              advertise:                client: tarantool-storage-1-brn:3301      storage-2:        instances:          storage-2-msk:            iproto:              listen:                - uri: tarantool-storage-2-msk:3301              advertise:                client: tarantool-storage-2-msk:3301          storage-2-spb:            iproto:              listen:                - uri: tarantool-storage-2-spb:3301              advertise:                client: tarantool-storage-2-spb:3301          storage-2-brn:            iproto:              listen:                - uri: tarantool-storage-2-brn:3301              advertise:                client: tarantool-storage-2-brn:3301

Загрузка конфигурации кластера

Загрузить новую конфигурацию кластера или обновить уже существующую можно двумя способами:

Загрузка конфигурации через веб-интерфейс

Чтобы обновить конфигурацию через TCM, выполните следующие шаги:

  1. В TCM перейдите на вкладку Configuration.
  2. При необходимости скачайте текущую версию конфигурационного файла. Для этого выберите нужный файли и нажмите на кнопку Download в появившемся меню.
  3. Внесите необходимые изменения в конфигурационный файл.
  4. Чтобы сохранить черновик конфигурации без отправки в централизованное хранилище конфигурации, нажмите Save. Чтобы применить обновленный файл конфигурации и загрузить его в централизованное хранилище, нажмите Apply. Кластер проверяет изменения, отклоняя неприемлемые, а затем распространяет новую конфигурацию по всем узлам кластера. Если файл обновлен успешно, появится соответствующее сообщение в нижней части экрана. Если при попытке применить новые настройки возникла проблема, появится сообщение об ошибке.

Загрузка конфигурации через tt CLI

Обновить конфигурацию через утилиту tt можно следующим образом:

  1. Перейдите в директорию, где хранится файл конфигурации config.yaml.

  2. Загрузите конфигурацию кластера в централизованное хранилище из YAML-файла, используя команду tt cluster publish:

    tt cluster publish http://etcd1:2379/tdb config.yml
    

    Здесь:

    • http://etcd1:2379/tdb — адрес одного из узлов ETCD;
    • config.yml — публикуемый файл конфигурации.

Пример работы с кластерной конфигурацией

В конфигурации кластера можно хранить данные и параметры для конкретной роли. Гибкость конфигурации кластера позволяет изменять систему под различные потребности, в том числе под требования конкретных ролей. В примере добавлены роли crud, которые позволяют выполнять на кластере CRUD-операции (создание, чтение, обновление, удаление) через IPROTO API.

Чтобы добавить роль crud в запущенный кластер через TCM:

  1. В TCM перейдите на вкладку Configuration.

  2. Создайте файл crud.yml. В нем будут храниться настройки роли crud.

  3. Укажите в файле такую конфигурацию:

    roles:  - roles.crud-router  - roles.crud-storageroles_cfg:    roles.crud-router:        crud:            stats: true            stats_driver: metrics            stats_quantiles: false            stats_quantile_tolerated_error: 0.001            stats_quantile_age_buckets_count: 5            stats_quantile_max_age_time: 180

    Здесь:

Узнать больше: Включение и настройка ролей. Подробное описание опций crud можно прочитать в справочнике конфигурации.

  1. Нажмите кнопку Apply.

вкладка Configuration

Через TCM можно менять состояние работы статистики и другие параметры в реальном времени без перезапуска кластера или экземпляров. Для этого поменяйте значение параметра и нажмите кнопку Apply.