Добавление узлов в кластер¶
Добавление нового узла (экземпляра) в кластер TDG – это фактически та же операция развертывания.
В этом примере мы возьмем уже развернутый кластер TDG, развернем новый экземпляр TDG и настроим его через веб-интерфейс, создав новый набор реплик с кластерной ролью «storage».
Чтобы развернуть новый экземпляр, требуются те же ресурсы, что и для
первоначального развертывания кластера: пакет tar.gz
и инструмент
Ansible с предопределенными файлом инвентаря и конфигурацией плейбука.
Перейдите в директорию развертывания, извлеченную ранее из пакета
tar.gz
, и отредактируйте файл инвентаря Ansiblehosts.yml
. Добавьте описание и параметры нового экземпляра. В приведенном ниже примере кода параметры, которые нужно заполнить, отмечены комментариями# <-- Добавьте...
.children: tdg_group: ### Instances ### hosts: ... storage_3: # <-- Добавьте новый экземпляр и параметры конфигурации для него config: advertise_uri: "172.19.0.2:3005" http_port: 8085 memtx_memory: 1073741824 # 1024 МБ children: ### Machines ### vm1: hosts: stateboard_instance: core: runner_1: storage_1: storage_2: storage_3: # <-- Добавьте этот экземпляр к hosts на vm1 vars: ansible_host: "172.19.0.2"
Важно
Внимательно проверьте следующие параметры при редактировании
hosts.yml
:cartridge_package_path
— используйте ту же версию пакета, что и при первоначальном развертывании кластера.cartridge_cluster_cookie
— cookie должен быть тем же, что и во время первоначального развертывания, иначе новый экземпляр не будет включен в кластер.
Выполните развертывание нового экземпляра, используя плейбук
deploy_without_topology.yml
:$ ansible-playbook -i hosts.yml --limit storage_3 playbooks/deploy_without_topology.yml
Параметр
--limit
указывает, что шаги плейбука следует применить только к конкретному экземпляру, не затрагивая другие экземпляры.Откройте или обновите страницу с интерфейсом TDG. В нашем примере она находится по адресу http://172.19.0.2:8081. Новый экземпляр появится на вкладке Cluster в разделе Unconfigured servers.
Последний шаг — создание нового набора реплик с ролью «storage». Нажмите Configure напротив экземпляра «storage_3». В диалоговом окне Configure server укажите следующие параметры и нажмите Create replica set:
Replica set name
: storage_3Roles
: storageReplica set weight
: 1
Значение параметра Replica set weight
должно быть таким же, как и в
остальных наборах реплик с ролью «storage». Тогда после добавления нового
хранилища запустится автоматическая балансировка данных между всеми
хранилищами.
Вы можете проверить, корректно ли была проведена балансировка, обратившись к
параметру Buckets
. Его значение должно совпадать для всех экземпляров с
ролью «storage» на одном сервере (172.19.0.2
в этом примере).
Балансировка займет некоторое время, поэтому результат в веб-интерфейсе
появится не сразу: немного подождите и обновите страницу.