ADG Оставить заявку
Блог Управление и процессы 5 мин чтения

DR-тест с Hyper-V Replica на WS2016: RTO 25 минут и шифрование репликационного трафика без overhead

Плановый DR-тест на Windows Server 2016: Hyper-V Replica с шифрованием трафика и расширенным журналом изменений, RTO критичных ВМ клиента - 25 минут по факту замера.

Контекст момента

Hyper-V Replica в Windows Server 2016 получил улучшенную репликацию с поддержкой шифрования и расширенным журналом изменений

На прошлой неделе провели плановый DR-тест для одного из клиентов - первый полноценный тест на новой инфраструктуре Windows Server 2016 с Hyper-V Replica. Не учебная тревога на бумаге, а реальный failover с замером времени и разбором того, что пошло не по плану. Результат оказался лучше, чем ожидали, хотя и не без нюансов.

Предыстория

Клиент - производственная компания, несколько критичных сервисов: ERP, файловый сервер, контроллер домена. Инфраструктура живёт у нас в managed-окружении. Основная площадка - один дата-центр, реплика - в другом. Hyper-V Replica использовали и раньше, на WS2012 R2, но с переездом на WS2016 в октябре перешли и на новую версию репликации.

DR-тест был запланирован ещё в сентябре - раз в полгода, обязательно. Последний раз делали в мае, результат был не очень: RTO по факту вышло около 55 минут вместо заявленных 30, потому что один из ВМ не поднялся чисто и пришлось возиться с сетевыми настройками вручную. В этот раз хотели разобраться конкретно.

Что нового в Hyper-V Replica на WS2016

Если сравнивать с тем, что было в 2012 R2, в 2016 есть несколько изменений, которые реально влияют на практику.

Шифрование репликационного трафика. В 2012 R2 трафик между primary и replica шёл по HTTP или HTTPS - и HTTPS требовал отдельной возни с сертификатами, так что большинство инсталляций работали по HTTP через выделенный VLAN и надеялись на сегментацию. В 2016 шифрование через Kerberos делается в несколько кликов без PKI. Для реплики в чужом дата-центре это существенно.

Расширенный журнал изменений (HRL). Replica Log теперь хранит историю изменений за более длинный период и ведёт себя устойчивее при длинных разрывах связи между площадками. В нашей инсталляции это почувствовалось: пара выходных с нестабильным каналом между DC не привела к тому, что реплика встала на full resync, как это иногда случалось раньше.

Частота репликации. Минимальный интервал репликации снизился до 30 секунд вместо 5 минут в 2012 R2. Для критичных ВМ с низким RPO это важно.

Как проводили тест

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

Критичные ВМ для теста:

  • контроллер домена (2 штуки)
  • файловый сервер
  • сервер ERP-системы
  • шлюз RDP

Всего пять машин, из которых три крупные по объёму дисков - ERP и файловый сервер суммарно под 2 ТБ данных. Для репликации это важно: failover по времени зависит не от объёма данных (данные уже реплицированы), а от последовательности запуска и зависимостей между ВМ.

Шифрование настраивалось через PowerShell, ничего экзотического:

Set-VMReplication -VMName "erp-server" -ReplicationFrequencySec 30 `
    -AuthenticationType Kerberos -CompressionEnabled $true

Что замеряли

Этап Время
Команда на failover всех ВМ 0:00
DC1 и DC2 доступны 0:08
Файловый сервер доступен 0:14
ERP-сервер загружен 0:19
RDP-шлюз, первый пользователь вошёл 0:25

25 минут от команды до реального рабочего места пользователя. Это по грязному замеру - включая время на то, чтобы переключить DNS у клиента на резервную площадку и убедиться что браузер идёт куда надо.

Для сравнения: в мае на WS2012 R2 было 55 минут с ручными правками. Разница существенная, хотя сравнение не совсем чистое - в мае был инцидент с сетью, а не просто медленная реплика.

Где потратили время лишнего

Два момента, которые съели минуты и которые стоит учесть.

Порядок запуска ВМ. Failover в Hyper-V не знает о зависимостях между ВМ - он поднимает их в том порядке, в котором вы указываете. Если ERP-сервер стартует раньше DC и не видит домен при загрузке - сервис поднимается в деградированном режиме, потом надо рестартовать. Это известная история, но в тестовом сценарии на неё всё равно потратили минут пять, пока разбирались что ERP ругается на AD. Решение простое: зафиксировать порядок запуска в runbook и не отступать.

DNS-переключение вручную. У клиента внешний DNS для RDP-шлюза управляется вручную. В тесте это отняло лишние несколько минут - надо было зайти в панель регистратора и поменять A-запись. Это точка, которую стоит автоматизировать или хотя бы перенести управление DNS на что-то с API.

Про шифрование и overhead

Отдельно про шифрование репликационного трафика - потому что изначально был вопрос, не просядет ли скорость репликации при включённом Kerberos и сжатии одновременно.

По нашим наблюдениям на этом клиенте - не просела. Репликация 30-секундных слепков укладывается в канал без ощутимого роста нагрузки по сравнению с тем, что было на HTTP без шифрования. Объяснение, скорее всего, простое: основной объём трафика определяется дельтой изменений, а не шифрованием - если дельта небольшая, и трафик небольшой вне зависимости от того, шифруется он или нет. При массовых изменениях картина могла бы быть другой, но для типичной рабочей нагрузки ERP + файловый сервер это не проблема.

Что дальше

Результат теста зафиксирован в отчёте для клиента: RTO 25 минут, все пять критичных ВМ подняты в рамках сценария, два пункта для доработки - порядок запуска в runbook и автоматизация DNS.

Следующий тест через полгода. Задача - убрать ручное переключение DNS и добавить автоматическую проверку порядка старта ВМ через скрипт. Тогда посмотрим, можно ли приблизиться к 15 минутам.

Hyper-V Replica остаётся инструментом, который не требует дополнительных лицензий поверх Windows Server Datacenter и при этом даёт вполне рабочий DR для среднего сегмента. Не Zerto и не Site Recovery Manager, но для задачи «поднять пять ВМ на резервной площадке за разумное время» - справляется.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.