Один из критических требований для виртуальной инфраструктуры, особенно в крупных центрах обработки данных, – это устранение единой точки отказа и обеспечение высокой доступности служб и приложений. В среде Hyper-V доступна технология кластеризации с отказоустойчивостью Microsoft для настройки нескольких узлов (или хостов) Hyper-V, которые могут взять на себя нагрузку, если один из хостов выйдет из строя.
В этом пошаговом руководстве изучите практические аспекты конфигурации кластеризации с отказоустойчивостью Hyper-V, включая начальную настройку хоста и сети, установку роли Hyper-V и создание кластера.
Конфигурация хоста Hyper-V
Чтобы подготовить хосты к кластеризации с отказоустойчивостью, мы должны выбрать операционную систему для установки на все хосты, которые будут использоваться в конкретном кластере. Затем нам нужно выполнить базовую настройку среды, включая все хосты, чтобы подготовить их к настройке кластера Hyper-V.
Выбор операционной системы для установки
В этой настройке мы используем две установки Windows Server 2016 Server Core, чтобы минимизировать количество подвижных частей и повысить безопасность. Использование установки Windows Server 2016 Server Core позволяет устранить множество ненужных компонентов и уменьшить нагрузку. Усложнение администрирования с помощью Server Core компенсируется преимуществами эффективности и безопасности. Вы также можете использовать более новые версии Windows Server, например, Windows Server 2019 для настройки кластера Hyper-V.
Примечание: Для администрирования и настройки Windows Server 2016 Server Core мы используем PowerShell. Технически возможно использовать Windows Server с Desktop Experience для настройки кластеризации с отказоустойчивостью Hyper-V.
Первоначальная конфигурация среды
Прежде чем думать о хостах Hyper-V как о кластере, мы должны выполнить начальную конфигурацию хостов. Это включает в себя множество одинаковых шагов по подготовке любого сервера Windows – именование, настройку сети, установку обновлений и т. д. Планирование сети, в частности, критично в кластере Windows, так как это позволяет обеспечить правильную кластерную связь, а также связь с общим хранилищем.
- Именование. Оба сервера были названы и присоединены к домену лаборатории. Обратите внимание, что начиная с Windows Server 2016, присоединение к домену больше не является обязательным условием. Конфигурации сервера отображаются на скриншотах ниже для первого сервера H1. Конфигурации для второго сервера H2 аналогичны.
- Обновления. Необходимо установить обновления на все потенциальные узлы кластера Hyper-V до последнего уровня патчей, доступного согласно рекомендациям по наилучшим практикам кластеризации Hyper-V. Установка обновлений на хосты Hyper-V повышает безопасность нашей системы. Возможно, потребуется перезагрузить Windows для завершения установки обновлений.
- Согласованность. По наилучшей практике мы хотим, чтобы все потенциальные узлы кластера были сконфигурированы одинаково, за исключением имен компьютеров и IP-адресов. Это гарантирует стандартизацию между хостами, включая уровни обновлений, сети и т. д.
Планирование сети
Правильное планирование среды смягчает множество рисков в будущем. Для сети лаборатории в данном сценарии были сконфигурированы четыре сетевые адаптеры для каждого хоста. Оба хоста лаборатории не используют командировку NIC для упрощения. Однако в производственной среде вы бы хотели объединить адаптеры, чтобы избежать единой точки отказа в любой из сетей.
Для настройки нашей лаборатории у нас есть:
- Управление и трафик VM
- iSCSI
- Приватный кластерный трафик
- Живая миграция
Учитывая вышеуказанные сети, мы назначаем IP-адреса каждому серверу в наших желаемых диапазонах подсетей. Здесь также учитываются VLAN, поскольку вы, скорее всего, захотите согласовать ваши подсети с предоставленными VLAN. Это следует продумать заранее.
Настройка целей хранения iSCSI
Хранилище кластера Hyper-V является ключевым моментом при построении кластера. Для хранилища iSCSI в лабораторной среде, в данном примере, мы используем FreeNAS для создания целей iSCSI и предоставления их нашему кластеру Hyper-V. Конечно, настройка iSCSI на оборудовании выбранного вами поставщика или программное iSCSI может отличаться в зависимости от поставщика, поэтому всегда следуйте методам, определенным для каждого.
Примечание: FreeNAS – это универсальная и гибкая операционная система на основе FreeBSD, которую можно установить на компьютер для использования в качестве NAS. Вы можете создать общее хранилище кластера Hyper-V или построить резервное устройство с помощью FreeNAS и решения NAKIVO.
Ниже приведен краткий обзор того, как настраивается хранилище для кластеризации отказоустойчивости Hyper-V с использованием FreeNAS. Мы не будем углубляться во все детали настройки FreeNAS для iSCSI. Однако вот основные настройки для представления нескольких целей iSCSI нашим хостам Hyper-V.
- Запустите службу iSCSI в FreeNAS и настройте сетевую конфигурацию для сети хранилища так, чтобы она соответствовала тому, что вы намерены использовать для хостов Hyper-V.
- Проверьте базовую настройку IQN для целей, которые мы создадим.
- Настройте портал в FreeNAS для прослушивания трафика iSCSI.
- Настройте имена целей iSCSI. В нашем устройстве FreeNAS мы настраиваем:
- a quorum volume to be used as a disk witness
- a volume to be used for the Hyper-V cluster shared volume to house our VMs
Примечание: Кворум – это механизм в кластере Windows, который используется для обеспечения того, что в случае сбоя между частями кластера всегда имеется большинство ресурсов кластера для его функционирования.
- Начиная с Windows Server 2012, каждый узел в кластере имеет по умолчанию один голос кворума. Добавляя дополнительный голос с помощью общей папки, диска или нового учетной записи облачного хранилища в Windows Server 2016, одна часть кластера всегда должна получать более 50% голосов кворума, претендуя на голос общей папки, диска или учетной записи облачного хранилища.
- С Windows Server 2012 R2, рекомендация изменилась на всегда настройку диска или общего доступа к файлам в качестве свидетеля. Голос передается на дополнительный свидетель (общий доступ к файлам, диск или учетную запись облачного хранилища) только в случае четного числа узлов. При нечетном числе узлов свидетель не получает голос и не используется.
На скриншоте ниже мы создали два целевых имени: объем кворума для использования в качестве дискового свидетеля и объем для использования в нашем общем объеме кластера.
- Добавление расширений, которые в приведенном ниже примере сопоставлены с отдельными дисками, которые мы физически назначили в нашем устройстве FreeNAS.
- Сопоставление цели с расширением. Цели сопоставлены с хранилищем в FreeNAS.
Установка роли Hyper-V
Для установки роли Hyper-V запустите следующую команду в командной строке PowerShell:
Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -IncludeManagementTools -Restart
Настройка хранилища: Добавление адреса портала iSCSI
Перед добавлением нашего адреса портала iSCSI необходимо настроить и запустить службу Microsoft iSCSI следующим образом:
- Установите службу на автоматический режим.
Set-Service -Name msiscsi -StartupType Automatic
- Запустите службу.
Start-Service msiscsi
- Используйте PowerShell для добавления предоставленного адреса портала iSCSI:
New-iscsitargetportal -targetportaladdress <IP-адрес>
- Подключите конкретные цели iSCSI, которые в нашем случае были созданы на нашем устройстве FreeNAS. Ниже приведены примеры того, что мы использовали при добавлении целей FreeNAS к узлам Hyper-V, предоставленным для кластера.
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:quorum -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
- Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:hvvol1 -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
Вы можете проверить и увидеть добавленные цели, выполнив команду Get-iSCSItarget.
Примечание: Вы можете использовать команду get-disk для отображения информации о диске и убедиться, что общее хранилище Hyper-V кластера работает и находится в рабочем состоянии.
Настройка виртуальных коммутаторов
Настройка виртуальных коммутаторов необходима для правильной конфигурации сети кластера отказоустойчивости Hyper-V. Мы можем использовать либо PowerShell, либо Hyper-V Manager для настройки виртуальных коммутаторов для Hyper-V.
Пример команды для создания виртуального коммутатора в PowerShell:
New-VMSwitch “ExternalSwitch01” -NetAdapterName “Public” -AllowManagementOS 1
Примечание: Настройте имена ваших виртуальных коммутаторов одинаково на обоих хостах, так как нам нужно убедиться, что виртуальные коммутаторы совпадают, особенно при выполнении живой миграции.
Создание кластера Hyper-V
С помощью PowerShell создание кластера представляет собой простую однострочную команду.
- Перед созданием кластера выполните эту команду для проверки соответствия конфигурации кластера лучшим практикам кластеризации Hyper V:
Test-Cluster H1,H2
- Используйте командлет new-cluster для создания кластера и назначения имени, узлов и статического IP-адреса кластера.
New-Cluster -Name HVCluster -node H1,H2 -staticAddress 192.168.85.75
- Когда процесс создания кластера завершится, вы увидите вывод, отображающий имя кластера в командной строке.
Гипер-V кластеризованные общие тома
Несмотря на то, что у нас есть общее хранилище с точки зрения iSCSI-цели, нам нужно убедиться, что хранилище, на котором находятся наши ВМ, настроено на кластеризованный общий том Hyper-V (clustered shared volume). Кластеризованный общий том (CSV) был представлен в Windows Server 2008 R2 для использования с ролью Hyper-V, чтобы ВМ могли иметь доступ к файлам VHD, к которым можно обращаться любым узлом в кластере. В CSV также встроена отказоустойчивость, включая обнаружение ошибок ввода-вывода, что позволяет использовать альтернативные пути связи в случае сбоев связи.
Давайте посмотрим на создание кластеризованного общего тома шаг за шагом для наших ВМ.
- Переименуйте ресурс диска кластера, который будет использоваться для хранения ВМ (по желанию). В нашей лабораторной установке это Cluster Disk 1:
(Get-ClusterResource | ?{$_.Name -eq “Cluster Disk 1”}).name = “VMs”
- Теперь мы можем добавить этот том в общий том кластера:
Get-ClusterResource -Name “VMs”| Add-ClusterSharedVolume
Примечание: Мы также можем использовать Менеджер отказоустойчивости кластера для добавления диска в CSV:
- Проверьте состояние кластеризованного общего тома с помощью командлета get-clustersharedvolume.
Примечание: Если у вас есть управляющая рабочая станция для подключения с использованием Менеджера кластера отказоустойчивости, вы можете просматривать хранилище с графическим пользовательским интерфейсом (GUI), подключаясь к Кластеру отказоустойчивости Windows. Здесь мы легко можем увидеть доступные Диски и назначенные им роли. Ниже мы видим как диск кворума, так и диск ВМ, который назначен как общий объем кластера.
Изменение настроек хранилища Hyper-V
Теперь, когда у нас настроен общий объем для кластера, мы можем изменить настройки Hyper-V для использования общего объема кластера Hyper-V в качестве места по умолчанию для хранения наших ВМ.
В Настройках Hyper-V для каждого хоста измените местоположение Виртуальных жестких дисков и местоположение Виртуальных машин на ваш общий объем кластера, который находится в C:\ClusterStorage\volume(x) на ваших хостах Hyper-V.
Создание высокодоступной ВМ
Теперь мы можем запустить Менеджер кластера отказоустойчивости и начать создавать высокодоступную ВМ.
- Щелкните правой кнопкой мыши по Ролям и выберите создание Новой виртуальной машины.
- Выберите хост Hyper-V (один из узлов кластера) для виртуальной машины.
- Пройдите через Мастер новой виртуальной машины, чтобы создать новую виртуальную машину.
- На шаге Подключить виртуальный жесткий диск мастера убедитесь, что виртуальная машина создается на нашем общем объеме кластера Hyper-V.
- Шаг Сводка отображает выбранные нами параметры.
- При нажатии кнопки “Завершить” появляется Мастер настройки высокой доступности, который отображает сводку активации высокой доступности для роли и виртуальной машины. Как видите, активация прошла успешно.
- Если вы хотите просмотреть отчет о высокой доступности, нажмите кнопку Просмотреть отчет, где будет представлено более подробное описание тестов на высокую доступность.
Настройка группы сбоев Hyper-V завершена, и теперь у нас есть виртуальная машина, работающая в кластере с высокой доступностью. Вы можете создавать дополнительные виртуальные машины в кластере и использовать функцию высокой доступности Hyper-V.
Заключение
Кластеризация с отказоустойчивостью Hyper-V позволяет снизить время простоя виртуальных машин в случае сбоя. Однако, это не защитит ваши данные виртуальных машин, если вы не регулярно создаете резервные копии кластера Hyper-V. Поскольку виртуальные машины могут мигрировать между узлами кластера Hyper-V, создание резервных копий может представлять собой сложную задачу. Используйте решение от NAKIVO и легко создавайте резервные копии даже для виртуальных машин, работающих в кластере.