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). После модификации списка обхода прокси всё заработало.

4 comments:

  1. Антон здравствуйте, у меня такая же проблема как и Вас в этом блоге, у меня стоит Kerio Control как его настроить на нормальное соединение с таким же Kerio Control, чтобы запустилась реплика?

    ReplyDelete
    Replies
    1. При включении репликации включаются правила в Windows Firewall, которые разрешают трафик репликации. Найдите их и создайте вручную такие же правила на Керио, которые разрешат этот трафик.

      В общем случае вы должны изолировать проблему - либо это связано с тем, что керио не пускает трафик, либо трафик проходит, но сбой касается hyper-v.

      Delete
    2. В настройках Hyper-V указано что трафик будет ходить через 80 порт, telnetom я могу заходить на гипервизор по этому порту, и локально через VPN и через интернет telnet меня пускает по 80 порту.

      Delete
    3. Если вы заходите телнетом, это не значит, что аутентификация проходит успешно. Могут быть проблемы с Керберос. Попробуйте проверить аутентификацию перед установкой репликации.

      http://www.virtualizationadmin.com/kbase/VirtualizationTips/ServerVirtualization/MicrosoftHyper-VTips/General/testing-connection-between-primary-and-replica-server.html

      Если аутентификация работает, двигайтесь дальше, как я описал в статье - посмотрите журналы, захватите трафик на исходном и целевом сервере и покопайтесь там.

      Delete