Thursday, February 28, 2013

Hyper-V Replication

В конторе 2 кластера с виртуальными машинами - один на основе
бесплатного Hyper-V Server 2012, второй на основе нормальной Windows
Server 2012 Datacenter. Hyper-V Server - это урезанный Server
Core с одной ролью Hyper-V.

Одна из ключевых фич Windows Server 2012 - это репликация виртуальных
машин. Т.е. на другой хост-системе поддерживается в актуальном
состоянии копия виртуальной машины, которую можно запустить в случае
сбоя основной. Трафик репликации идёт по http (аутентификация через
Kerberos, если машины входят в домен) или https (аутентификация через
сертификаты, единственный вариант для автономных машин. в этом случае
поддерживается шифрация трафика репликации).

Установка простая:

- подготовить хост-сервер реплики Enable this computer as replica server
(если кластер, нужно создать ресурс брокера репликации и включать
репликацию на нём)
- разрешить трафик репликации Hyper-V Replica HTTP(S) Listener(TCP-In)
- включить репликацию нужной машины

Включение репликации для машины не идёт (скриншот 1). Ошибка 0x00002efe
это общий сбой соединения. В журнале Microsoft-Windows-Hyper-V-VMMS
ничего вразумительного нет. Нашёл статью на одном МС-блоге, там
подобное сообщение было при проблемах с Керберос. Никаких сообщений про
Керберос в журнале, однако, нет.

Решил проверить, как идёт установка репликации. В Windows Server 2008
R2 появилась возможность делать захват трафика без дополнительных
драйверов через netsh trace. Эта команда создаёт дамп всего трафика и
кучу вспомогательных файлов - разных журналов и выводов диагностических
команд. Удобная вещь. Полученный дамп можно загрузить в
майкрософтовский бесплатный снифер Netmon.

Создал 2 трейса - на исходном и на целевом сервере. На целевом сервере
нет запросов с исходного. Очевидно, что трафик где-то теряется.
Оказалось, исходный сервер пересылает эти http запросы на прокси
сервер, который когда-то сконфигурировали через netsh winhttp и забыли
(скриншот 2). После модификации списка обхода прокси всё заработало.