Добавление узлов в кластер¶
Добавление нового узла (экземпляра) в кластер 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 в этом примере).
Балансировка займет некоторое время, поэтому результат в веб-интерфейсе
появится не сразу: немного подождите и обновите страницу.