В Windows Server 2012 появилось интересное решение, предназначенное для обеспечения высокой доступности и аварийного восстановления виртуальных машин. Это решение называется Hyper-V Replica и с его помощью можно осуществлять репликацию виртуальных машин между хостами или кластерами Hyper-V.
Суть Hyper-V Replica (HVR) состоит в наличии регулярно обновляемой копии (реплики) виртуальной машины. Технически это выглядит как две площадки с серверами Hyper-V — основная (primary site) и резервная (replica site). При возникновении проблем с основной площадкой (потоп, пожар, отключение электричества или ядерная война) реплику можно активировать, что дает возможность оперативно восстановить работоспособность виртуальной машины в случае аварии.
Hyper-V Replica может использоваться в различных сценариях, например для репликации виртуальных машин между головным офисом компании и ее филиалами, или между офисом клиента и датацентром провайдера. Для Hyper-V Replica абсолютно не важно местоположение серверов. Репликация возможна как между серверами Hyper-V в одной локальной сети, так и между датацентрами, расположенными в разных странах. При этом Hyper-V Replica фактически не зависит от хранилища и предъявляет минимальные требования к пропускной способности сети.
Архитектура
Архитектурно Hyper-V Replica состоит из следующих компонентов:
Replication Engine — как следует из названия, это основной «движок» технологии. Он управляет конфигурацией HVR и обрабатывает операции репликации: первоначальную репликацию (Initial Replication), разностную репликацию (Delta Replication) и отработку отказа (Failover). Также Replication Engine отслеживает события, связаные с перемещением виртуальных машин и дисковых хранилищ, и предпринимает необходимые действия (приостанавливает процесс репликации во время миграции и возобновляет его по окончании);
Change Tracking Module — модуль, отслеживающий на основном узле операции записи, производимые на уровне виртуальной машины. Работа модуля не зависит от типа хранилища, в котором хранятся диски виртуальной машины, он может работать с любыми хранилищами (локальные диски, Direct Attached Storage (DAS), SAN LUN, Cluster Shared Volume (CSV) или файловая шара SMB);
Network Module — компонент, обеспечивающий безопасный и эффективный (по умолчанию осуществляется сжатие данных) канал связи между узлами. Соединение создается с использованием HTTP/HTTPS, поддерживается аутентификация с помощью цифровых сертификатов и шифрование трафика репликации (опционально).
Hyper-V Replica Broker — роль, обеспечивающая корректную работу репликации в случае размещения виртуальной машины на узле кластера. Работает совместно с сетевым модулем и службой Failover Clustering. Брокер запрашивает в базе данных кластера, какой узел отвечает за обработку данных репликации и перенаправляет необходимые данные на нужный узел. Это обеспечивает репликацию в случае миграции ВМ на другой узел кластера.
Management Experience — инструменты для управления репликацией. Сюда входят следующие компоненты:
• Hyper-V Manager UI — интерфейс Hyper-V Manager;
• Failover Cluster Manager UI — интерфейс Failover Cluster;
• Scripting — модуль Hyper-V для управления репликацией с помощью PowerShell;
• Hyper-V Replica APIs — программный интерфейс, может использоваться сторонними управляющими приложениями;
• Remote Management — средства удаленного управления (RSAT).
Безопасность
Одним из плюсов технологии Hyper-V Replica является то, что нахождение основного сервера и сервера-реплики в одном домене/рабочей группе не является обязательным. Если вы используете репликацию между некластерными узлами, то членство в домене совсем не обязательно (для кластеров, естественно, домен необходим). В связи с этим стоит затронуть некоторые вопросы безопасности:
• Используется новая упрощенная модель авторизации. При установке на сервер роли Hyper-V создается локальная группа Hyper-V Administrators, которая может использоваться для управления репликацией наряду с локальными администраторами сервера;
• Серверы-реплики можно настроить на принятие входящих соединений только от определенных серверов. Ограничения могут быть как по FQDN, так и по доменному суффиксу (напр. *.contoso.com);
• Можно настроить правила брандмауэра серверов-реплик на принятие входящих соединений только по определенному порту;
• В доменной среде взаимная аутентификация осуществляется на основе встроенной проверки подлинности (Kerberos) между доверенными доменами. Во внедоменной инфраструктуре должны использоваться сертификаты.
Примечание. По умолчанию трафик репликации не шифруется. Хотя в Kerberos и есть механизм шифрования, HVR его не задействует. Поэтому, если требуется шифрование, необходимо использовать аутентификацию на основе сертификатов.
Принцип работы
Сначала между основным сервером и репликой устанавливается соединение и производится первоначальная репликация (Initial Replication), в ходе которой на резервной площадке создается реплика виртуальной машины. Реплика находится в выключеном состоянии и по умолчанию не подключена к виртуальной сети.
Затем в дело вступает механизм Delta Replication. На основном узле все изменения, происходящие с VHD-дисками соответствующей ВМ отслеживаются и записываются в лог репликации (Hyper-V Replica Log file, HRL). Это файл с расширением .hrl, находящийся в той же директории, что и VHD. Каждому VHD ставится в соответствие свой HRL-файл, каждая операция записи в виртуальной машине соответствует записи на VHD и записи в HRL.
Примечание. Реплицируются лишь дисковые изменения, состояние памяти ВМ не затрагивается.
Раз в 5 минут изменения передаются на сервер-реплику. Для этого текущий HRL останавливается и отправляется на резервный сервер, создается новый HRL и все изменения пишутся уже в него. Переданные изменения применяются к VHD-диску реплики, после чего на основной сервер приходит уведомление об успешной операции и процесс передачи начинается по новой. При таком подходе каждый раз передаются только последние изменения. Передаваемые данные разбиваются на части размером 2 MB и сжимаются, а если используется HTTPS, то еще и шифруются.
Периодичность передачи данных составляет 5 минут, изменить ее нельзя. Таким образом, в нормальном состоянии копия машины отстаёт от оригинала не более чем на пять минут. Если же в течение 5 минут не удалось передать изменения, то в состоянии репликации появится предупреждение. Попытки передать изменения будут продолжаться еще 25 минут, а затем репликация остановится и перейдет в аварийное состояние. После этого для восстановления работы репликации потребуется вмешательство администратора.
Вот так в общих чертах выглядит технология Hyper-V Replica в Windows Server 2012. Более подробно о настройке репликации я расскажу во второй части статьи.
Добрый вечер, Кирилл!
Большое спасибо за статью!!!
Но появилось несколько вопросов. Возможно вы с ними сталкивались.
1) Можно ли настроить хранение VHD(-vhdx) данных на разных дисках?
2) Любое приложение с данными (SQL, Exchange, Sharepoint) можно в технологии репликации?