Использование координаторов отказоустойчивости | Tdb
Руководство администратора Использование координаторов отказоустойчивости

Использование координаторов отказоустойчивости

В этом руководстве показано, как настроить работу внешних координаторов отказоустойчивости (supervised failover coordinators).

Содержание:

Пререквизиты

Для выполнения примера требуются:

  • установленные Docker-образы Tarantool DB, Prometheus и Grafana;

  • приложение Docker Compose;

  • исходные файлы примера failover_coordinator.

    Примечание

    Есть два способа получить исходные файлы примера:

    • Архив с полной документацией Tarantool DB, полученный по почте или скачанный в личном кабинете tarantool.io. Пример архива: tarantooldb-documentation-2.0.0.tar.gz. Пример failover_coordinator расположен в таком архиве в директории ./doc/examples/failover_coordinator/.

    • Отдельный архив failover_coordinator.tar.gz, скачанный c сайта Tarantool.

Запуск стенда

Перейдите в директорию примера failover_coordinator:

cd ./doc/examples/failover_coordinator/

Запустите кластер Tarantool DB:

make start

Команда последовательно выполняет следующие шаги:

  1. Запускает централизованное хранилище конфигурации – кластер etcd;

  2. Загружает конфигурацию кластера в централизованное хранилище;

  3. Запускает кластер Tarantool DB;

  4. Загружает миграции в кластер и выполняет их.

Запущенный стенд состоит из:

  • кластера Tarantool DB:

    • 2 роутера;

    • 2 набора реплик по 3 хранилища;

    • 2 координатора отказоустойчивости;

    • 1 Tarantool Cluster Manager (TCM);

  • кластера etcd из 3 узлов;

  • средств мониторинга (Prometheus, Grafana).

После запуска должны работать все контейнеры, кроме init_host.

Также после запуска доступны следующие пользовательские интерфейсы:

  • http://localhost:8081 – веб-интерфейс TCM;

  • http://localhost:9090 – веб-интерфейс Prometheus;

  • http://localhost:3000 – веб-интерфейс Grafana.

Для входа в веб-интерфейс TCM откройте в браузере адрес http://localhost:8081. Логин и пароль для входа:

  • Username: admin

  • Password: secret

В TCM откройте вкладку Stateboard. После применения настроек кластер будет выглядеть так:

На вкладке Stateboard вызовите меню Actions кластера, нажав на кнопку ... справа от строки поиска. В меню выберите пункт Supervised failover. Откроется окно, в котором на вкладке Supervised failover отображаются все работающие координаторы кластера. Активный координатор отмечен в этом списке зелёной галочкой.

Проверка работы

В TCM перейдите на вкладку Stateboard. Нажмите на набор реплик router-msk. Выберите роутер router-msk и в открывшемся окне перейдите на вкладку Terminal.

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

crud.insert_object('bands', {id = 1, band_name = 'Free Flow Flava', year = 2014})

После этого проверьте записанный кортеж с помощью операции crud.select():

crud.select('bands').rows

Теперь нужно остановить мастер-узлы. Чтобы определить мастер-узлы в наборе реплик, в TCM на вкладке Stateboard найдите в каждом наборе реплик экземпляр кластера с иконкой короны. В данном примере это узлы storage-1-brn и storage-2-brn.

Чтобы остановить эти экземпляры кластера, вернитесь в терминал ОС и выполните следующие команды:

cd cluster/
docker compose stop tarantool-<имя_первого_мастера>
docker compose stop tarantool-<имя_второго_мастера>
cd ..

Видно, что мастер-узлы стали недоступны, а их лидерство передано другим эклемплярам.

В TCM перейдите на вкладку Stateboard. Нажмите на набор реплик router-msk. Выберите роутер router-msk и в открывшемся окне перейдите на вкладку Terminal. Во вкладке Terminal введите следующую команду, чтобы добавить в спейс новый кортеж:

crud.insert_object('bands', {id = 2, band_name = 'Wax Tailor', year = 2001})

Кластер доступен для записи данных. Проверить кортеж, добавленный в спейс, можно так:

crud.select('bands').rows

Остановка стенда

Остановить стенд можно так:

make stop
Нашли ответ на свой вопрос?
Обратная связь