Установка мультикластера

Устанавливаемые компоненты

КомпонентОписание
Zakroma-StorageУправляющий слой, обеспечивающий S3-протокол.
Zakroma-ZDSНижний слой хранения (минимальное требование — 3 узла в режиме Erasure Coding, 3 узла - в режиме репликации(Full Copy)).
PostgreSQLСУБД для метаданных Zakroma-Storage.
KafkaСистема обмена сообщениями, используемая сервисами Zakroma
СерверКомпонентыCluster
loran-10.cluster-1.zakroma.internalZakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1)1
loran-11.cluster-1.zakroma.internalZakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1)1
loran-12.cluster-1.zakroma.internalZakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1)1
loran-14.cluster-1.zakroma.internalPostgreSQL1
loran-15.cluster-1.zakroma.internalKafka1
loran-20.cluster-2.zakroma.internalZakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1)2
loran-21.cluster-2.zakroma.internalZakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1)2
loran-22.cluster-2.zakroma.internalZakroma-Storage, Zakroma-ZDS (Erasure Coding 2+1)2
loran-24.cluster-2.zakroma.internalPostgreSQL2
loran-25.cluster-2.zakroma.internalKafka2

Установка

1. Получить и распаковать архив

1tar -xvzf zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>.tar.gz

1.1. Перейти в директорию с ролями

1cd zakroma-roles-<ВЕРСИЯ_РЕЛИЗА_АРХИВА_С_ANSIBLE_РОЛЯМИ>

2. Установка первого кластера

2.1 Создать inventory, включающий хостнейм в соответствующих хост-группах

Как пример можно использовать файл inventories/multicluster/cluster-1/hosts

1[certificates] 2loran-10 ansible_host=10.128.0.10 3loran-11 ansible_host=10.128.0.11 4loran-12 ansible_host=10.128.0.12 5 6 7[zakroma-storage] 8loran-10 ansible_host=10.128.0.10 9loran-11 ansible_host=10.128.0.11 10loran-12 ansible_host=10.128.0.12 11 12[zakroma-zds-v2-ec] 13loran-10 ansible_host=10.128.0.10 zakroma_zds_node_name=loran-10 14loran-11 ansible_host=10.128.0.11 zakroma_zds_node_name=loran-11 15loran-12 ansible_host=10.128.0.12 zakroma_zds_node_name=loran-12

Для проверки текущего ansible_hostname на узлах выполните:

1ANSIBLE_CONFIG=ansible.cfg ansible -m setup -i inventories/multicluster/cluster-1/hosts all | grep ansible_hostname

2.2. Копирование сертификатов на целевые хосты с помощью роли certificates

  • Необходимо отредактировать файл переменных inventories/multicluster/cluster-1/group_vars/certificates.yml роли certificates для группы хостов certificates
1--- 2# Задаёт путь к каталогу, откуда копируются сертификаты и ключи. 3certificates_copy_source_path: "files" 4 5# Содержит информацию о каждом хосте, на который нужно скопировать сертификаты и ключи.
Развернутьarrow
  • Запустить playbook:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/multicluster/cluster-1/hosts playbooks/sample-play-copy-certificates.yml

2.3. Установка Zakroma Storage c помощью роли zakroma-storage

  • Подготовить файл с лицензией licence, положить его в директорию ./files/zakroma-licence и запустить playbook playbooks/sample-play-copy-licence-file.yml для группы хостов zakroma-storage

  • Далее необходимо отредактировать файл переменных inventories/multicluster/cluster-1/group_vars/zakroma-storage.yml роли zakroma-storage для группы хостов zakroma-storage

1--- 2# ---------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------- 3# Выполнить удаление Zakroma и ничего больше 4zakroma_storage_delete_only: false
Развернутьarrow
  • Запустить playbook:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/multicluster/cluster-1/hosts playbooks/sample-play-zakroma-storage.yml

2.4. Опциональная настройка Nginx

Nginx не является обязательным компонентом установки. Для legacy-инсталляций используйте отдельную инструкцию: Настройка Nginx.

2.5. Установка Zakroma ZDS в режиме EC (Erasure coding, минимум 3 хоста) (нижний слой хранения) с помощью роли zakroma-zds-v2

Перед установкой рекомендуем ознакомиться с архитектурой ZDS: Что такое ZDS и Как ZDS хранит данные.

  • Необходимо отредактировать файл переменных inventories/multicluster/cluster-1/group_vars/zakroma-zds-v2-ec.yml роли zakroma-zds-v2 для группы хостов zakroma-zds-v2-ec
1# Выполнить удаление бинарного файла - удаляет только бинарный файл в дирректории /opt/zakroma/zakroma-ds-agent 2zakroma_zds_delete_binary: false 3 4# Выполнить только рестарт сервисов и ничего больше 5zakroma_zds_restart_services_only: false
Развернутьarrow
  • Запустить playbook:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/multicluster/cluster-1/hosts playbooks/sample-play-zakroma-zds-v2-ec.yml

3. Установка второго кластера

3.1 Создать inventory, включающий хостнейм в соответствующих хост-группах

Как пример можно использовать файл inventories/multicluster/cluster-2/hosts

1[certificates] 2loran-20 ansible_host=10.129.0.20 3loran-21 ansible_host=10.129.0.21 4loran-22 ansible_host=10.129.0.22 5 6 7[zakroma-storage] 8loran-20 ansible_host=10.129.0.20 9loran-21 ansible_host=10.129.0.21 10loran-22 ansible_host=10.129.0.22 11 12[zakroma-zds-v2-ec] 13loran-20 ansible_host=10.129.0.20 zakroma_zds_node_name=loran-20 14loran-21 ansible_host=10.129.0.21 zakroma_zds_node_name=loran-21 15loran-22 ansible_host=10.129.0.22 zakroma_zds_node_name=loran-22

Для проверки текущего ansible_hostname на узлах выполните:

1ANSIBLE_CONFIG=ansible.cfg ansible -m setup -i inventories/multicluster/cluster-2/hosts all | grep ansible_hostname

3.2. Копирование сертификатов на целевые хосты с помощью роли certificates

  • Необходимо отредактировать файл переменных inventories/multicluster/cluster-2/group_vars/certificates.yml роли certificates для группы хостов certificates
1--- 2# Задаёт путь к каталогу, откуда копируются сертификаты и ключи. 3certificates_copy_source_path: "files" 4 5# Содержит информацию о каждом хосте, на который нужно скопировать сертификаты и ключи.
Развернутьarrow
  • Запустить playbook:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/multicluster/cluster-2/hosts playbooks/sample-play-copy-certificates.yml

3.3. Установка Zakroma Storage c помощью роли zakroma-storage

  • Подготовить файл с лицензией licence, положить его в директорию ./files/zakroma-licence и запустить playbook playbooks/sample-play-copy-licence-file.yml для группы хостов zakroma-storage

  • Далее необходимо отредактировать файл переменных inventories/multicluster/cluster-2/group_vars/zakroma-storage.yml роли zakroma-storage для группы хостов zakroma-storage

1--- 2# ---------------------------------------------------ОБЩИЕ НАСТРОЙКИ--------------------------------------------------- 3# Выполнить удаление Zakroma и ничего больше 4zakroma_storage_delete_only: false
Развернутьarrow
  • Запустить playbook:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/multicluster/cluster-2/hosts playbooks/sample-play-zakroma-storage.yml

3.4. Опциональная настройка Nginx

Nginx не является обязательным компонентом установки. Для legacy-инсталляций используйте отдельную инструкцию: Настройка Nginx.

3.5. Установка Zakroma ZDS в режиме EC (Erasure coding, минимум 3 хоста) (нижний слой хранения) с помощью роли zakroma-zds-v2

Перед установкой рекомендуем ознакомиться с архитектурой ZDS: Что такое ZDS и Как ZDS хранит данные.

  • Необходимо отредактировать файл переменных inventories/multicluster/cluster-2/group_vars/zakroma-zds-v2-ec.yml роли zakroma-zds-v2 для группы хостов zakroma-zds-v2-ec
1# Выполнить удаление бинарного файла - удаляет только бинарный файл в дирректории /opt/zakroma/zakroma-ds-agent 2zakroma_zds_delete_binary: false 3 4# Выполнить только рестарт сервисов и ничего больше 5zakroma_zds_restart_services_only: false
Развернутьarrow
  • Запустить playbook:
1ANSIBLE_CONFIG=ansible.cfg ansible-playbook -i inventories/multicluster/cluster-2/hosts playbooks/sample-play-zakroma-zds-v2-ec.yml