Как настроить репликацию Hyper-V [Пошаговая инструкция]

Управляете ли вы виртуальными машинами (VM) Hyper-V и хотите создать план аварийного восстановления? Вы можете начать с репликации Hyper-V. Вещи могут идти не так, как задумано, и, скорее всего, так и случится. И если у вас есть только одна копия ваших виртуальных машин, то вы готовитесь к мукам.

Иметь одну или несколько реплик ваших ВМ, особенно критически важных, не обязательно сложно и дорого. Компания Microsoft встроила в Hyper-V функцию встроенной репликации, которую вы можете настроить без введения стороннего программного обеспечения или устройства в вашу инфраструктуру.

Если вы готовы узнать, как включить репликацию Hyper-V и быть готовыми предотвратить возможную катастрофическую потерю данных, то давайте начнем!

Предварительные требования

Это руководство будет практической демонстрацией. Если вы хотите следовать за ним, убедитесь, что у вас есть следующее:

Два сервера-хоста Hyper-V. Эти два хоста могут быть в домене Active Directory (AD) или рабочей группе. В этом руководстве будут использоваться два сервера с следующими данными.

Hostname IP Address Designation Location Operating System
hyperv-ny 10.1.0.4 Primary Server Primary Site Windows Server 2019 Datacenter (version 1809)
hyperv-wa 10.0.0.4 Replica Server Secondary Site Windows Server 2019 Datacenter (version 1809)

У основного хоста Hyper-V должна быть хотя бы одна гостевая виртуальная машина для репликации. В этом руководстве на основном хосте будет одна гостевая ВМ с именем webserver.

Для получения более подробной информации о требованиях к системе Hyper-V обратитесь к Требования к системе для Hyper-V на Windows Server.

Подготовка хостов для репликации Hyper-V

Предполагая, что у вас уже есть все необходимые предпосылки, не думайте о запуске репликации Hyper-V. Перед репликацией виртуальных машин вам нужно выполнить несколько подготовительных действий. Ниже приведены общие пункты, которые вам нужно отметить, прежде чем все будет готово.

Разрешение трафика репликации Hyper-V

Этот раздел применим только при использовании брандмауэра Windows на ваших хостах Hyper-V. В противном случае вы можете перейти к следующей части.

Или, если вы в настоящее время используете брандмауэр Windows и хотите полностью его отключить, прочтите Как отключить брандмауэр Windows (все способы).

При установке роли Hyper-V на сервер, Windows создает два дополнительных входящих правила в брандмауэре Windows. Эти два правила управляют разрешением трафика репликации Hyper-V, и они следующие:

  • Слушатель Hyper-V Replica HTTP (TCP-In) – Входящее правило для прослушивания Hyper-V Replica для принятия подключения HTTP для репликации (через порт 80, не зашифровано).
  • Слушатель Hyper-V Replica HTTPS (TCP-In) – Входное правило для слушателя Hyper-V Replica для принятия HTTPS-соединения для репликации (через порт 443, зашифрованное сертификатом).

По умолчанию эти брандмауэры Windows отключены, что фактически блокирует трафик репликации Hyper-V на хост. Но основное внимание в этом руководстве уделяется настройке репликации Hyper-V только через HTTPS, а не HTTP.

Чтобы включить правило брандмауэра репликации Hyper-V, выполните следующие действия.

1. Войдите в сервер реплики и откройте PowerShell от имени администратора.

2. Запустите команду Enable-Netfirewallrule ниже в PowerShell, чтобы включить правило.

# Включить правило брандмауэра трафика репликации HTTPS Hyper-V.
Enable-Netfirewallrule -DisplayName 'Hyper-V Replica HTTPS Listener (TCP-In)'

3. Наконец, чтобы подтвердить успешное включение правил брандмауэра репликации Hyper-V, выполните команду ниже.

Get-Netfirewallrule -DisplayName 'Hyper-V Replica HTTPS Listener (TCP-In)'

Если все прошло хорошо, вы должны увидеть результат, аналогичный скриншоту ниже.

Enabling Hyper-V replication firewall rules

Настройка записей хоста Hyper-V

Если ваши хосты Hyper-V могут разрешать имена друг друга через DNS-запрос, вы можете пропустить этот раздел.

Когда придет время включить репликацию Hyper-V, вы укажете имя сервера реплики во время конфигурации. Возможность Hyper-V найти вторичный сервер по имени зависит от правильного разрешения имени.

Чтобы гарантировать, что узлы Hyper-V смогут находить имена друг друга в сети, вам потребуется отредактировать файл hosts на обоих серверах и добавить соответствующие имена и IP-адреса. Для этого выполните следующие действия.

  1. На основном сервере откройте PowerShell от имени администратора.

2. Выполните следующую команду, чтобы открыть файл hosts в редакторе notepad.exe для редактирования.

notepad.exe "$env:windir\system32\drivers\etc\hosts"

3. Когда файл hosts откроется, прокрутите его до конца и добавьте IP-адрес и имя сервера реплики следующим образом.

Убедитесь, что вы используете свой IP-адрес и имя сервера.

10.1.0.4	hyperv-wa

4. После редактирования файла нажмите CTRL+S или щелкните Файл —> Сохранить, чтобы сохранить изменения.

5. Повторите те же шаги на сервере реплики и добавьте имя и IP-адрес сервера основного в файл hosts реплики. На скриншоте ниже показан конечный результат для обоих файлов hosts серверов.

Updating the hosts file

Создание самоподписанных сертификатов

Этот раздел применяется только в случае, если репликация Hyper-V будет использовать аутентификацию на основе сертификатов (HTTPS). Если хосты Hyper-V присоединены к домену и будут использовать аутентификацию Kerberos (HTTP), этот раздел можно пропустить.

Для репликации Hyper-V через HTTPS требуется, чтобы и основной, и реплицирующий хосты использовали сертификат, выданный общим эмитентом. Hyper-V использует эти сертификаты для аутентификации основного сервера на реплицирующем сервере.

Вместо покупки сертификатов у внешнего поставщика сертификатов, такого как DigiCert или NameCheap, вы можете бесплатно создать самоподписанные сертификаты для использования с репликацией Hyper-V.

Для аутентификации на основе сертификатов между двумя хостами Hyper-V вам понадобятся три сертификата. Корневой сертификат и сертификат сервера для каждого хоста. Следуйте нижеуказанным шагам, чтобы создать эти сертификаты.

1. На основном сервере хоста откройте PowerShell от имени администратора.

2. Затем определите следующие переменные, запустив команды ниже в PowerShell. Обратитесь к встроенным комментариям, чтобы понять каждую переменную, и замените их значения при необходимости.

# Настройка переменных сертификатов

## Укажите имя нового сертификата корневого ЦС.
$rootCA_Name = 'Hyper-V Root CA'

## Укажите имена серверов Hyper-V.
$hostnames = @('hyperv-ny','hyperv-wa')

## Какой пароль для экспортированных сертификатов PFX.
$CertPassword = 'this is a strong password' | ConvertTo-SecureString -Force -AsPlainText

## Куда экспортировать сертификат PFX после создания. Убедитесь, что этот каталог существует.
$CertFolder = 'C:\HPVCerts'

3. После определения переменных сертификата выполните нижеприведенную команду для создания корневого сертификата. Эта команда создает самоподписанный корневой сертификат, используя командлет New-SelfSignedCertificate в хранилище Сертификаты личного сервера.

## Создать и сохранить сертификат корневого ЦС в хранилище сертификатов "Личное".
## Действителен в течение 10 лет.
$rootCA = New-SelfSignedCertificate `
-Subject $rootCA_Name  `
-FriendlyName $rootCA_Name `
-KeyExportPolicy Exportable  `
-KeyUsage CertSign  `
-KeyLength 2048  `
-KeyUsageProperty All  `
-KeyAlgorithm 'RSA'  `
-HashAlgorithm 'SHA256'  `
-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider"  `
-NotAfter (Get-Date).AddYears(10)

4. Чтобы сервер доверял самоподписанному корневому сертификату, скопируйте его в Хранилище сертификатов доверенных корневых центров сертификации, выполнив команду ниже.

## Скопируйте корневой CA из хранилища 'Личные' в хранилище 'Доверенные корневые удостоверяющие центры'.
$rootStore = [System.Security.Cryptography.X509Certificates.X509Store]::new("Root","LocalMachine")
$rootStore.Open("ReadWrite")
$rootStore.Add($rootCA)
$rootStore.Close()

5. Затем выполните нижеприведенную команду, чтобы экспортировать корневой сертификат в файл с использованием командлета Export-PfxCertificate. Вам нужно экспортировать сертификат, чтобы затем скопировать его на сервер реплики.

## Экспортировать корневой CA
$rootCA | Export-PfxCertificate -FilePath "$CertFolder\$($rootCA_Name).pfx" -Password $CertPassword -Force
Exporting the Root Certificate

6. Теперь сгенерируйте серверные сертификаты, подписанные корневым сертификатом, который вы создали. Выполните нижеприведенную команду, чтобы создать серверные сертификаты для каждого хоста Hyper-V и экспортировать каждый сертификат в файл.

$hostnames | ForEach-Object {
	$name = $_
	## Создать сертификат
	New-SelfSignedCertificate `
	-FriendlyName $name `
	-Subject $name `
	-KeyExportPolicy Exportable `
	-CertStoreLocation "Cert:\LocalMachine\My" `
	-Signer $rootCA `
	-KeyLength 2048  `
	-KeyAlgorithm 'RSA'  `
	-HashAlgorithm 'SHA256'  `
	-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider"  `
	-NotAfter (Get-Date).AddYears(10) |
	## Экспортировать сертификат
	Export-PfxCertificate -FilePath "$CertFolder\$($name).pfx" -Password $CertPassword -Force
}
Generating and exporting the server certificates

7. Наконец, скопируйте файл корневого сертификата (Hyper-V Root CA.pfx) и файл сертификата сервера реплики (hyperv-wa.pfx) на сервер реплики.

Copying the certificate files to the replica host

Установка сертификатов на хост реплики

Чтобы обеспечить работу аутентификации на основе сертификатов между двумя хостами Hyper-V, тот же корневой сертификат и сертификат сервера должны присутствовать также на хосте реплики. Выполните следующие шаги для установки корневого и серверного сертификатов.

1. На хосте реплики откройте PowerShell от имени администратора.

Чтобы установить корневой сертификат в хранилище доверенных центров сертификации, выполните команду Import-PfxCertificate, приведенную ниже. Убедитесь в изменении значений переменных по необходимости.

## Укажите имя корневого сертификата ЦС.
$rootCA_Name = 'Hyper-V Root CA'

## Где находятся файлы сертификата PFX.
$CertFolder = 'C:\HPVCerts'

## Какой пароль у экспортированных сертификатов PFX.
$CertPassword = 'this is a strong password' | ConvertTo-SecureString -Force -AsPlainText

## Импорт корневого ЦС.
Import-PfxCertificate  "$CertFolder\$($rootCA_Name).pfx" -CertStoreLocation Cert:\LocalMachine\Root -Password $CertPassword
Importing the root certificate

3. Чтобы установить серверный сертификат в хранилище личных сертификатов, выполните указанную ниже команду.

## Импорт серверного сертификата
Import-PfxCertificate  "$CertFolder\$($env:COMPUTERNAME).pfx" -CertStoreLocation Cert:\LocalMachine\My -Password $CertPassword
Importing the server certificate

4. Наконец, настройте реестр Hyper-V для отключения проверки отзыва сертификата. Для этого Hyper-V не будет пытаться проверить сведения о отзыве сертификата, которые отсутствуют в самоподписанном сертификате. Выполните следующую команду PowerShell New-ItemProperty.

## Отключение проверки отзыва сертификата Hyper-V.
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" -Name "DisableCertRevocationCheck" -Value 1 -PropertyType DWORD -Force

Настройка репликации Hyper-V

Вы завершили подготовку ваших хостов Hyper-V. Теперь вы можете начать включение репликации Hyper-V и начать репликацию виртуальных машин.

Включение хоста в качестве сервера реплики

Прежде чем хост Hyper-V сможет размещать реплики ВМ, сначала необходимо включить хост в качестве сервера реплики. Для этого выполните следующие действия.

  1. На хосте реплики откройте Менеджер Hyper-V. Для этого выполните команду virtmgmt.msc в PowerShell.
  2. Находясь в окне Менеджера Hyper-V, щелкните правой кнопкой мыши имя сервера реплики и выберите параметры Hyper-V.
Open the Hyper-V settings

Затем, на окне параметров Hyper-V, щелкните Конфигурация репликации в левой панели.

На правой панели отметьте флажок Включить этот компьютер в качестве сервера репликации. Это позволит включить все другие параметры конфигурации ниже.

В разделе Аутентификация и порты отметьте флажок Аутентификация на основе пользовательского сертификата (HTTPS). Оставьте значение номера порта как 443.

Enabling the server as a replica

Подразделе Аутентификация и порты щелкните Выбрать сертификат. В появившемся диалоговом окне Безопасность Windows подтвердите, что сертификат правильный, и нажмите OK.

Selecting the server certificate

После выбора сертификата вы должны увидеть, что поле Укажите сертификат теперь отображает детали сертификата.

Certificate details

Примечание: Если нет действительного сертификата или вы установили сертификат неправильно, вы увидите ошибку, аналогичную изображению ниже. В этом случае вам нужно будет вернуться и установить сертификат снова.

The error shows no valid certificate

5. Затем, в разделе Авторизация и хранение, выберите Разрешить репликацию с любого аутентифицированного сервера. Это позволит любому серверу Hyper-V реплицировать виртуальные машины на этот сервер, при условии успешной аутентификации на основе сертификата.

Чтобы разрешить репликацию только с определенных серверов, выберите опцию Разрешить репликацию с указанных серверов и добавьте данные каждого сервера вместо этого.

Введите или просмотрите местоположение для хранения файлов реплики. В этом примере место хранения – C:\Hyper-V\Виртуальные жесткие диски. Убедитесь, что выбрано место с достаточным пространством для хранения файлов реплики виртуальных машин.

Наконец, нажмите ОК, чтобы сохранить изменения.

Choosing the authorization and storage

Включение репликации виртуальной машины

На этом этапе вы разрешили хосту реплицировать входящую репликацию Hyper-V для виртуальных машин. Теперь вы готовы разрешить репликацию виртуальной машины. Следуйте нижеуказанным шагам для продолжения.

1. На основном хосте откройте окно диспетчера Hyper-V.

2. Затем щелкните сервер Hyper-V в левой панели. В списке виртуальных машин щелкните виртуальную машину, которую вы собираетесь реплицировать, и щелкните Включить репликацию в разделе Действия.

Selecting the VM for Hyper-V replication

3. На всплывающем окне Включить репликацию для <Имя ВМ> щелкните Далее на странице Прежде чем начать.

4. На странице Укажите сервер реплики введите имя хоста сервера реплики в поле Сервер реплики и щелкните Далее.

Specifying the target replica server

5. Теперь, на странице Укажите параметры подключения, измените номер порта Сервера реплики на 443.

В разделе Тип аутентификации щелкните, чтобы выбрать Аутентификация на основе пользовательского сертификата (HTTPS).

На этом этапе информация о сертификате пуста. Чтобы выбрать сертификат, щелкните Выбрать сертификат.

Specifying the port and authentication type

6. Затем, на диалоговом окне Выбор сертификата, щелкните, чтобы выбрать сертификат, который вы ранее создали и который содержит имя сервера основного хоста. После выбора сертификата, щелкните OK.

Selecting the server certificate

7. После выбора сертификата вы должны увидеть информацию о сертификате, как показано ниже. Щелкните Далее, чтобы продолжить.

Confirming the certificate details

8. Затем выберите, какие Виртуальные жесткие диски (VHD) включить в репликацию. Если есть более одного VHD, убедитесь, что выбран VHD, содержащий операционную систему ВМ. В приведенном ниже примере есть только один VHD. После выбора сделайте, щелкните Далее.

Selecting VHDs to replicate

9. На следующей странице выберите интервал репликации из раскрывающегося списка. Это значение определяет, с какой частотой Hyper-V отправляет изменения на сервер реплики. Интервал по умолчанию – 5 минут. Другие доступные варианты – 30 секунд и 15 минут. Нажмите Далее.

Choosing the Hyper-V replication interval

10. На странице Настройка дополнительных точек восстановления выберите вариант Сохранять только последнюю точку восстановления.

При выборе этого варианта Hyper-V будет хранить только последнюю точку восстановления или состояние ВМ на сервере реплики. Этот вариант использует наименьшее количество места, но позволяет восстановить только одну точку во времени. Щелкните Далее, чтобы продолжить.

Selecting the recovery points to maintain

11. На странице Выбор метода начальной репликации есть три варианта, как вы хотите отправить первоначальную копию VHD на сервер реплики:

  • Отправить первоначальную копию через сеть. Этот вариант копирует VHD через сеть.
  • Отправить первоначальную копию с помощью внешнего носителя. При выборе этого варианта вы можете сохранить копию VHD на внешнем носителе, например на внешнем жестком диске. Затем вы можете физически перенести носитель и подключить его к серверу реплики для копирования.
  • Использовать существующую виртуальную машину на сервере реплики в качестве первоначальной копии. Этот вариант применим только в том случае, если вы уже восстановили копию ВМ на сервер реплики.

Какой вариант выбрать в реальной жизни зависит от ваших оценок. Но для этого руководства выберите Отправить первоначальную копию через сеть.

Далее выберите Начать репликацию немедленно, чтобы запустить процесс репликации сразу после завершения настройки.

Choosing the initial replication method

12. На странице Сводка просмотрите конфигурацию репликации и нажмите Завершить, чтобы завершить процесс.

Finalizing the replication configuration

13. Дождитесь подтверждающего сообщения о том, что Репликация успешно включена. Нажмите Закрыть, чтобы вернуться к окну Менеджера Hyper-V.

Репликация Hyper-V копирует виртуальную машину, ее конфигурацию и VHD-диски. Однако результирующая копия на сервере-репликанте не подключена. Как видно ниже, вам все равно нужно настроить сетевое подключение реплики виртуальной машины.

Confirming the replication is now enabled

Проверка состояния репликации

Итак, вы включили репликацию Hyper-V для выбранной виртуальной машины. Как узнать, идет ли репликация Hyper-V, завершена ли она или произошла ошибка? К счастью, Hyper-V предоставляет вам удобство проверки состояния репликации прямо в Менеджере Hyper-V.

Чтобы проверить состояние репликации виртуальной машины, выполните следующие действия.

Щелкните правой кнопкой мыши на имени виртуальной машины в окне Менеджера Hyper-V основного хоста —> Репликация —> Просмотр состояния репликации.

Opening the VM replication health

Изначально вы увидите сообщение о Состоянии репликации, как показано на скриншоте ниже, что указывает на то, что репликация все еще выполняется.

Initial replication in progress

И когда репликация Hyper-V завершится, вы должны увидеть сообщение, похожее на приведенное ниже.

And that’s it! You’ve successfully set up Hyper-V replication for your VM.

И все! Вы успешно настроили репликацию Hyper-V для вашей виртуальной машины.

Заключение

В конце концов, настройка репликации Hyper-V – это то, что администраторы систем должны учитывать при планировании и внедрении восстановления после катастрофы. Это может быть дешевле, чем потеря данных или продленное простое обслуживание. Представьте, если ваш сервер бухгалтерии отключится?

Вы использовали репликацию Hyper-V? Что вы думаете? Вы бы порекомендовали это другим, или есть какие-то причины, по которым вы считаете, что организации должны избегать этого?

Source:
https://adamtheautomator.com/hyper-v-replication/