Включение режима высокой доступности менеджера управления
Аннотация
В данной инструкции представлен процесс развертывания менеджера управления zVirt в режиме высокой доступности (High Available).
Функция обеспечения высокой доступности менеджера управления является экспериментальной и будет доработана в будущих релизах. Функционал не рекомендуется использовать в продуктивных средах. Для получения дополнительной информации и необходимых пакетов обратитесь в службу технической поддержки. |
1. Предварительные требования
-
Для отказоустойчивой работы платформы виртуализации и обеспечения корректной работы EngineFailOver рекомендуется заполнить файл /etc/hosts на исходном менеджере управления со списком всех серверов платформы виртуализации и менеджера управления.
Шаблон файла /etc/hosts:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # Внести список IP-адресов и FQDN-имен серверов платформы виртуализации и исходного HostedEngine # {IP-адрес} {FQDN-имя сервера} {Имя-сервера}
-
Настройте полное резервное копирование конфигурации Менеджера управления по расписанию.
2. Установка и запуск
-
Подключитесь по SSH к хосту, на котором запущена ВМ HostedEngine.
-
Установите пакет he-failover:
dnf install -y he-failover-1.0.3-1.42253.zvirt.el8.noarch.rpm
-
Загрузите пакет zvirt-appliance той же версии, которую имеет текущий Менеджер управления, и разместите его в каталоге /usr/share/ansible/he-failover/roles/he-failover/files/repos/appliance/. Например, для zVirt 4.2:
wget --user=<username> --password=<password> \ https://repo-zvirt.orionsoft.ru/repository/zvirt-4/4.2/iso/zvirt-appliance-4.2.rpm \ -O /usr/share/ansible/he-failover/roles/he-failover/files/repos/appliance/zvirt-appliance-4.2.rpm
<username> и <password>, соответственно, логин и пароль для доступа к репозиторию.
-
Заполните инвентарный файл /usr/share/ansible/he-failover/roles/he-failover/inventory/EngineFailOver.
Шаблон инвентарного файла:
localhost ansible_connection=local [engines] HostedEngine ansible_host=<новый IP Менеджера> ip_peer=<IP резервного Менеджера> ansible_ssh_host=<IP исходного Менеджера> HostedEngine2 ansible_host=<IP резервного Менеджера> ip_peer=<новый IP Менеджера> [engines:vars] vip=<IP исходного Менеджера> [all:vars] # Общие переменные Ansible ansible_connection=ssh ansible_user=root # Переменные Менеджера управления ovirt_fqdn=<FQDN исходного Менеджера> ovirt_username=<учетная запись администратора> datacenter=<имя центра данных для размещения резервного Менеджера> cluster=<имя кластера для размещения резервного Менеджера> storage_domain=<имя домена хранения для диска резервной ВМ HE> # Переменные для сетевой конфигурации netmask=255.255.255.0 dns_servers='<DNS сервер>' gateway=<Шлюз по умолчанию>
Пример инвентарного файла:
localhost ansible_connection=local [engines] HostedEngine ansible_host=10.252.12.100 ip_peer=10.252.12.20 ansible_ssh_host=10.252.12.10 HostedEngine2 ansible_host=10.252.12.20 ip_peer=10.252.12.100 [engines:vars] vip=10.252.12.10 [all:vars] # Ansible ansible_connection=ssh ansible_user=root # Engine ovirt_fqdn=engine.vlab.local ovirt_username=admin@zvirt@internalsso datacenter=Default cluster=failover-cl storage_domain=hosted_storage # Network netmask=255.255.255.0 dns_servers='10.252.3.250' gateway=10.252.12.254
-
Запустите развертывание решения:
zvirt-he-failover --deploy
-
Ответьте на вопросы в процессе развертывания:
-
Измените или подтвердите FQDN исходного Менеджера
Enter Engine FQDN [engine.vlab.local]:
-
Введите пароль администратора для доступа к исходному менеджеру:
Enter the password for [admin@zvirt@internalsso]:
-
Введите пароль для root-доступа к исходному Менеджеру
Enter password for SSH acces to Engine under [root]:
-
Укажите, есть ли доступ к онлайн репозиториям:
Do you have access to External/Internet repositories? [no]:
-
Подтвердите начало установки отказоустойчивого Менеджера управления:
Do you want to start installing EngineFailOver [yes/no]?: yes
-
-
Дождитесь успешного окончания развертывания.
3. Тестирование конфигурации
3.1. Переключение с исходного сервера HostedEngine на целевой HostedEngine2
-
Выключить исходный сервер HostedEngine:
hosted-engine --vm-shutdown
-
Через 5 минут выполнить следующие проверки:
-
Работа кластерного IP-адреса на целевом сервере HostedEngine2:
ip a
Ожидаемый результат:
-
кластерный IP-адрес назначен на целевой сервер HostedEngine2
-
-
Статус на целевом сервере HostedEngine2:
cat /opt/zvirt/he-failover/mode
Ожидаемый результат:
-
целевой сервер HostedEngine2 в статусе MASTER
-
-
Статус таймера ebackup.timer на целевом сервере HostedEngine2:
systemctl status ebackup.timer
Ожидаемый результат:
-
Таймер в статусе
active (waiting)
-
-
3.2. Обратное переключение целевого сервера HostedEngine2 на исходный HostedEngine
-
Включить исходный сервер HostedEngine:
hosted-engine --vm-start
-
Через 5 минут выполнить следующие проверки:
-
Работа кластерного IP-адреса на исходном сервере HostedEngine:
ip a
Ожидаемый результат:
-
кластерный IP-адрес назначен на исходный сервер HostedEngine
-
-
Статус на исходном сервере HostedEngine:
cat /opt/zvirt/he-failover/mode
Ожидаемый результат:
-
исходный сервер HostedEngine в статусе MASTER
-
целевой сервер HostedEngine2 в статусе SLAVE
-
-
Статус таймера ebackup.timer на исходном сервере HostedEngine:
systemctl status ebackup.timer
Ожидаемый результат:
-
Таймер в статусе
active (waiting)
-
-
Cоздание резервных копии с исходного сервера HostedEngine на целевой HostedEngine2 в директорию /opt/zvirt/he-failover/backup/
ls -l /opt/zvirt/he-failover/backup
Ожидаемый результат:
-
Созданы актуальные резервные копии на целевом сервере HostedEngine2 в директории /opt/zvirt/he-failover/backup/
-
-
4. Возможные ошибки
4.1. Ошибка 1
Развертывание завершается ошибкой на этапе TASK [EngineFailOver : Wait 180 seconds, but only start checking after 300 seconds]
.
В выводе содержится сообщение следующего вида:
fatal: [HostedEngine2]: FAILED! => {"changed": false, "elapsed": 481, "msg": "timed out waiting for ping module test: Failed to connect to the host via ssh: ssh: connect to host 10.252.12.20 port 22: No route to host"}
Вероятные причины ошибки:
-
В инвентарном файле был неверно указан ip-адрес для резервного менеджера управления (например, адрес из недоступной подсети).
Чтобы убедиться в этом и исправить ошибку откройте /usr/share/ansible/he-failover/roles/he-failover/inventory/EngineFailOver и проверьте параметр
ansible_host
для HostedEngine2. При необходимости исправьте.Также убедитесь, что
ansible_host
для HostedEngine2 соответствуетip_peer
для HostedEngine. -
IP-адрес резервного менеджера управления применяется к несуществующему интерфейсу.
Для проверки этой гипотезы:
-
На портале администрирования, перейдите в
и убедитесь что ВМ HostedEngine2 создана. -
Подключитесь к консоли ВМ HostedEngine2 (выделить ВМ, нажать консоль и открыть скачанный файл).
-
С помощью
ip address
проверьте назначен ли указанный в инвентарном файле IP-адрес. -
Если адрес не назначен, вероятно проблема связана с некорректным указанием имени интерфейса резервного Менеджера управления в файле переменных. Запомните имя интерфейса, назначенное ВМ HostedEngine2. В примере
enp1s0
. -
Вернитесь в консоль хоста, на котором запускалось развертывание.
-
Откройте файл переменных /usr/share/ansible/he-failover/roles/he-failover/inventory/host_vars/HostedEngine2 и при необходимости исправьте следующие значения:
# KeepAlived state: BACKUP interface: enp1s0 (1) priority: 50 mode: slave # Cloud-init disks: name: he2_virtio_disk type: virtio nics: name: vnet0 type: virtio profile: ovirtmgmt cloud_init: user_name: root nic_boot_protocol: static nic_name: enp1s0 (1)
1 Необходимо указать корректное имя интерфейса.
-
Устранение ошибки после исправления переменных:
-
В консоли хоста, на котором запускалось развертывание выполните откат ошибочного развертывания:
zvirt-he-failover --rollback
-
Повторно запустите развертывание:
zvirt-he-failover --deploy