Статья по настройке vCenter 8 High Availability (VCHA). Будем разбираться с архитектурой высокой доступности. Сегодня настроим Advanced vCenter 8 HA в ручном режиме в разных подсетях.
По теме:
- vCenter 7 HA в автоматическом режиме в одной подсети
- Advanced vCenter 7 HA в ручном режиме в одной подсети
- Advanced vCenter 7 HA в ручном режиме в разных подсетях
- Advanced vCenter 8 HA в разных подсетях
Advanced vCenter 8 HA в ручном режиме в разных подсетях
Архитектура отказоустойчивого VCHA состоит из трёх нод: активного экземпляра vCenter Server Appliance, пассивного и хоста-свидетеля, всего три виртуальные машины.
Активный экземпляр vCenter имеет два сетевых интерфейса: стандартный интерфейс управления (eth0) и специальный интерфейс HA (eth1). VCHA реплицирует данные с активной ноды на пассивную по HA сети.
Пассивный экземпляр имеет также два сетевых интерфейса, однако основной его интерфейс eth0 с теми же FQDN, IP и MAC неактивен. Интерфейс активируется в случае сбоя основного экземпляра сервера vCenter или при ручной инициации failover.
Третий экземпляр-свидетель используется для предоставления ресурса-кворума, информируя кластер о том, какой из узлов является активным в текущий момент времени. У свидетеля также два сетевых интерфейса, но eth0 не используется.

vCenter 8 HA сеть
Проведу подготовительные работы. Сперва нужно создать vCenter HA network. На каждом Distributed Switch создам группу портов HA в той подсети, в которой будет находиться сеть HA (NIC1) соответствующей ноды.

Подсеть HA должна отличаться от подсети управления, иначе получим ошибку:
The Management interface (NIC0) and vCenter HA interface (NIC1) must be in different subnets.
Network latency между нодами в подсети HA не должно быть более 10 мс.
Я буду настраивать две ноды в рамках одного кластера на одном распределённом коммутаторе. А третью ноду размещу в отдельном Datacenter и в другом кластере на втором распределённом коммутаторе. На всех коммутаторах понадобится сеть HA.
На первом распределённом коммутаторе HA находится в подсети 10.12.61.0/24. На втором распределённом коммутаторе HA находится в подсети 10.17.61.0/24.
Для сети HA (NIC1) резервирую три IP адреса:
- 10.12.61.251 — активная нода
- 10.12.61.252 — пассивная нода
- 10.17.61.253 — нода-свидетель (в другой подсети)
IP адрес управления (NIC0) для активной ноды уже настроен на текущем сервере vCenter, его не меняем:
- 10.12.62.51
vCenter 8 HA порты
Перед началом работ нужно убедиться, что между нодами открыты порты в сети HA в обоих направлениях:
- TCP 22 — между тремя нодами
- TCP 5432 — между активной и пассивной нодой
- TCP 8182 — между тремя нодами
- UDP 8182 — между тремя нодами
vCenter 8 HA сетевой адаптер NIC1
Смотрю настройки виртуальной машины vCenter. Добавляю второй сетевой адаптер NIC1 в сети HA с типом VMXNET 3.

Перезагружаю vCenter.
Шаблоны нод для vCenter 8 HA
Настройка Advanced vCenter 7 HA подразумевает создание пассивной ноды и ноды-свидетеля путём клонирования vCenter вручную. В помощь себе создадим шаблоны нод.

Переходим в раздел Menu → Shortcuts → Monitoring → VM Customization Specifications. Или Menu → Policies and Profiles → VM Customization Specifications.
Создаём профиль пассивной ноды. "+ New". Открывается мастер создания спецификаций. Попадаем в раздел Name and target OS. Придумываем описание.
- Указываем название виртуальной машины для пассивной ноды: vcenter01-Passive
- Выбираем vCenter из выпадающего списка: vcenter01
- Указываем тип OS: Linux
NEXT. Попадаем в раздел Computer name.

- Computer name: указываем такое же, как у активной ноды — vcenter01.
- Domain name: указываем домен vCenter.
NEXT. Попадаем в раздел Time zone.

Настройки временных зон всех трёх нод должны совпадать, указываю настройки, используемые на активной ноде. Etc/UTC. NEXT. Попадаем в раздел Customization script.

Здесь нам ничего не нужно. NEXT. Попадаем в раздел Network.

Сетевую карту NIC1 настроим как сеть управления активной ноды. Переключаемся на "Manually select custom settings". Выбираем NIC1. EDIT. Настраиваем IPv4. IPv6 не используется.
- IPv4 address: 10.12.62.51
- Subnet mask: 255.255.255.0
- Указываем основной шлюз: 10.12.62.1
OK.
Кнопкой ADD добавляем вторую сетевую карту NIC2 и настраиваем её. Здесь нам нужно настроить статический IP адрес 10.12.61.252 (пассивная нода). Настраиваем IPv4. Шлюз не указываем. IPv6 не используется.
- IPv4 address: 10.12.61.252
- Subnet mask: 255.255.255.0
OK.
NEXT. Попадаем в раздел DNS settings.

Указываем сервера DNS. NEXT. Попадаем в раздел Ready to complete.

FINISH.
Шаблон пассивной ноды создан. Теперь нужно сделать шаблон ноды-свиделетя. Нажимаем Duplicate. Указываем название для ноды-свидетеля: vcenter01-Witness. Выбираем vCenter vcenter01. OK. Редактируем шаблон vcenter01-Witness. Edit. Придумываем описание.

В разделе Network меняем IP адрес для сетевой карты NIC2 на статический 10.17.61.253 (нода-свидетель).
IP адрес для сетевой карты NIC1 меняем на автоматический Use DHCP. OK.
Настрока vCenter 8 HA
Подготовительные работы завершены. Переходим непосредственно к настройке HA. Корневой раздел vCenter, Configure → vCenter HA.

Нажимаю кнопку SET UP VCENTER HA.

Текущая виртуальная машина vcenter01 станет активной нодой. С помощью кнопку BROWSE указываем группу портов для сети HA. Снимаем галку Automatically create clones for Passive and Witness nodes, тем самым отключаем обычный режим настройки HA. Мы видим что сеть управления на NIC0 не выбрана, странно, должно было автоматически подтянуться HV, а сеть на NIC1 — становится HA.
Пассивную ноду и ноду-свидетель нам нужно будет создать самим. NEXT.

Переходим к настройкам IP адресов. Для
- HA сети активной ноды указываем IP адрес 10.12.61.251 и маску.
- Для HA сети пассивной ноды указываем IP адрес 10.12.61.252 и маску.
- Для HA сети ноды-свидетеля указываем IP адрес 10.17.61.253 и маску.
FINISH.

Сеть на активной ноде поднялась. Пассивная нода и нода-свидетель, естественно, недоступны.
Клонирование нод vCenter 7 HA
Клонируем vcenter01 для создания пассивной ноды. Правой кнопкой на vcenter01, Clone → Clone to virtual machine.

Указываем название виртуалки для пассивной ноды vcenter01-passive. Выбираем Datacenter. NEXT.

Выбираем хост. NEXT.

Выбираем хранилище, NEXT.

Ставим галку "Customize the operating system". NEXT.

Выбираем шаблон спецификации для пассивной ноды, который создавали ранее: vcenter01-Passive. NEXT. NEXT. FINISH.

Начинается процесс клонирования виртуальной машины. Дожидаемся окончания.
Клонируем vcenter01 для создания ноды-свидетеля. Правой кнопкой на vcenter01, Clone → Clone to virtual machine.

Указываем название виртуалки для пассивной ноды vcenter01-witness. Выбираем второй Datacenter. NEXT.
Выбираем хост во втором кластере. Видно, что имеются предупреждения.

На выбранном хосте недоступна сеть, настроенная на активной ноде. Это и понятно, потому как выбранный хост будет находиться в другой подсети в другом распределённом коммутаторе. Продолжаем, NEXT.
Выбираем хранилище, NEXT.

Ставим галку "Customize the operating system". Дополнительно ставим галку "Customize this virtual machine's hardware". NEXT.

Выбираем шаблон спецификации для ноды-свидетеля, который создавали ранее: vcenter01-Witness. NEXT.

Выбираем сеть управления для первого адаптера уже со второго распределённого коммутатора. Указываем сеть HA для второго адаптера.

Для ноды-свидетеля не требуется большое количество процессоров и много памяти. Ставим 2 CPU и 4 ГБ ОЗУ. NEXT. NEXT. NEXT. FINISH.

Начинается процесс клонирования виртуальной машины. Дожидаемся окончания.
Включаем вторую и третью ноды.
Маршрутизация
Ноды с HA в разных подсетях не видят друг друга. У меня первая и вторая нода в одной подсети, они видят друг друга. А нода-свидетель в отдельной подсети. Настройка маршрутизации производится вручную. Маршруты можно прописать к отдельным подсетям, но я буду прописывать маршруты к отдельным IP адресам.
Начну с ноды-свидетеля. Захожу на неё через консоль. Вхожу под пользователем root. Запускаю оболочку:
shell
Текущий IP адрес ноды-свидетеля 10.17.61.253. Пробуем пингануть активную ноду 10.12.61.251 — неудача, что закономерно.

Настройки сетевых карт находятся в папке:
/etc/systemd/network/
- 10-eth0.network.manual — сеть управления.
- 10-eth1.network— сеть HA.


Модифицируем файл 10-eth1.network:
vim /etc/systemd/network/10-eth1.networkТекущие настройки HA на ноде-свидетеле:
[Match]
Name=eth1
[Network]
DHCP=no
Address=10.17.61.253/24
Gateway=
DNS=10.12.47.10
DNS=10.12.47.11
[DHCP]
UseDNS=falseВносим маршруты к активной и пассивной нодам.
[Match]
Name=eth1
[Network]
DHCP=no
Address=10.17.61.253/24
Gateway=
DNS=10.12.47.10
DNS=10.12.47.11
[DHCP]
UseDNS=false
[Route]
Gateway=10.17.61.1
Destination=10.12.61.251
[Route]
Gateway=10.17.61.1
Destination=10.12.61.252
Передёргиваем сеть:
ifdown eth1
ifup eth1Проверяем маршруты:
ip route
Аналогично на активной и пассивной нодах прописываем маршрут к ноде-свидетелю:
[Route]
Gateway=10.12.61.1
Destination=10.17.61.253На активной:

На пассивной:

Теперь все ноды друг друга видят:
Последние штрихи vCenter HA
Пока я делал скриншоты, кворум собрался.

Mode: Enabled, State: Degraded.
Ждём когда репликация PostgreSQL заработает.
PostgreSQL replication is not in progress. For an initial deployment, PostgreSQL standby creation may take time depending on the database size. If this issue persists, verify that PostgreSQL is running on the passive node and that the passive node is reachable on the vCenter HA network.
Небольшой оффтопик:
И здесь репликация у меня не взлетела. Я очистил папку /storage/seat/vpostgres/ на пассивной ноде, дал права. И перезапустил службу.
rm -rf /storage/seat/vpostgres/*
chown vpostgres:root /storage/seat/vpostgres
chmod 700 /storage/seat/vpostgres
service-control --restart vmware-vchaПосле того как скрипт создал структуру директорий, вернул как было:
chown root:root /storage/seat/vpostgres
chmod 755 /storage/seat/vpostgres

Через какое-то время:

Ещё ждём:

Mode: Enabled, State: Healthy.
Перезагружаем пассивную ноду, ждём восстановления.
Кластер vCenter HA 8 собрался.
Тестирование
Осталось протестировать Failover.

Запускаю кнопкой вручную — работает.



