Репликация Hyper-V
В этой статье мы кратко расскажем о механизме репликации Hyper-V встроенными средствами. К сожалению, данный механизм почему-то крайне редко кто-то использует и вместо этого воруют “покупают” такие продукты как Veeam Backup, но при этом используют его только для создания реплик VMs.
Репликация Hyper-V позволяет делать полную копию VM на другой гипервизор (сервер) и поддерживает эту копию в актуальном состоянии непрерывно. Таким образом, в случае тотального краха основного гипервизора, вы как администратор среды виртуализации, после принятия решения “Основной сервер восстановлению не подлежит и надо запускать VM на резервном гипервизоре” потратите буквально несколько минут, чтобы данную VM включить с объёмом потерянных данных не более чем 0,5 / 5 / 15 минут (в зависимости от настройки). Мало того, если гостевая OS, так же Windows (из поколения не ниже 9-ой версии), то за счёт использования службы VSS совместно с компонентами интеграции вы получите целостными даже базы СУБД, работавшими в момент создания копии данных для резервного гипервизора.
После настройки репликации основной гипервизор создаёт разностные файлы виртуальных дисков и передаёт их на сервер реплику (резервный сервер), а сервер-реплика получив его объединяет с основным виртуальным диском. В зависимости от настроек, можно получить ещё и согласованные реплики с приложениями (та самая служба VSS). Такие “согласованные” копии гарантируют, что в них все данные будут целостными и даже в MS SQL, MySQL, PostgreSQL и другие СУБД даже сильно нагруженные окажутся на сервере реплике с своими базами в целостном состоянии и в случае неожиданного краха основного сервера у вас будет возможность взять последнее состояние реплики (с минимальным объёмом потерянных данных, но с риском что БД находится в состоянии corrupted), либо откатиться на более раннюю точку, но согласованную с приложениями (VSS). И вы на 100% получите целостные транзакции внутри БД.
Выделяем в списке VM в списке и в правой части диспетчера управления Hyper-V жмём “Включить репликацию”. На первом экране укажите имя сервера партнёра по репликации (на этом партнёре уже должно быть всё настроено включая открытый TCP/80 или TCP/443) и нажмите “Далее”:
Выберите режим передачи данных с шифрованием или без него. Настоятельно не рекомендуем включать шифрование, если у вас данные передаются в закрытом сегменте. Но если у вас есть необходимость настроить шифрование вы должны понимать что такое ассиметричное шифрование, корректно настроить центр сертификации в домене и получить корректные сертификаты на обоих серверах. Также вам надо учесть фактор избыточной нагрузки на CPU на обоих серверах.
Тут вы можете настроить какие виртуальные диски необходимо реплицировать. Например, если у вас на сервере партнёре не очень много свободного места и вы не хотите, например, реплицировать кэш WSUS службы, то тут можно диск с WSUS исключить из репликации. Учтите, что добавить “на лету” его не получится в дальнейшем и надо будет пересоздать параметры репликации. Пересоздать можно двумя способами:
• Удалить VM на сервере реплике.
• Удалить параметры репликации и создать их заново и начальную реплику передать в ранее отреплицированную VM. При таком восстановлении начальная репликация будет передана не полностью, но диск который ранее был не реплицирован приедет на сервер-реплику с именем виртуального диска не как вы задали на основном сервере, а в виде длинного GUID.
5. Настройка частоты репликации
На этом экране вы можете выбрать как часто надо отправлять реплику на сервер-реплику. Учтите, что слишком частая отправка даст избыточную нагрузку как на отправляющий сервер, так и на принимающий. Слишком редкая отправка реплики может привести к проблемам объединения полученных изменений на стороне реплики.
6. Настройка дополнительных точек восстановления
При настройке дополнительных точек, учтите что на сервере-реплике необходимо иметь свободное пространство равное объёму изменений за выбранное количество часов (первый параметр). Также помните, что служба VSS имеется только в операционных системах Windows и корректно работает в паре с Hyper-V и гостевой OS Windows версии не ниже 9-й. Ещё немаловажный фактор, это ощутимое снижение производительности гостевой OS в момент создания точки VSS. Если гостевая система высоко нагружена и делать такую точку каждый час, тогда вы получите эффект снижения производительности каждый час.
7. Выбор метода начальной репликации
Если с передачей начальной реплики по сети всё ясно, то вот с передачей на носителе и “Использовать существующую….” есть нюансы, о которых надо знать.
• Чтобы передать начальную реплику на носителе, надо эти данные выгрузить на этот носитель. И это возможно сделать выполнив просто экспорт VM на носитель. Но тут есть “нюанс”, о котором будет сказано ниже.
• Если у вас уже есть реплика вашей VM на сервере-реплике, то вы можете для ускорения процесса запустить репликацию используя параметр “Использовать существующую VM….”. Учтите, что Hyper-V определяет какая VM является той же на реплике определяет не по имени в диспетчере, а по GUID (внутренний параметр VM). По этому как именно названа ваша VM на реплике, не важно. Если в момент начала такой репликации на сервере-реплике не было каких-то виртуальных дисков, то они загрузятся на сервер-реплику, но имя файла данного виртуального диска будет содержать не название как на исходном сервере, а GUID. Полезен данный механизм в тех случаях, когда вы добавили ещё один диск на исходную VM и надо добавить это диск в репликацию.
После настройки репликации от отправки начальной реплики на основном сервере автоматически удалится “снапшот” (Точка возврата) и начнёт исполняться автоматическая процедура передачи всех изменений на сервер-реплику.
Преимущества данного решения очевидно, но всё же отмечу их:
• Имеется в базовой конфигурации OS Windows Server.
• Крайне легко настраивается даже новичком.
• Гарантирует целостность данных внутри VM для гостевых OS Windows.
• В случае отказа основного сервера или самой VM вам потребуется 1-5 минут на проверку статуса точек восстановления на сервере-реплике и выполнить отработку отказа.
• Имеются точки возврата за 24 часа, то можно вернуться не к последнему состоянию (когда внутри VM уже данные были Corrupt), а выбрать время для точки восстановления.
• Возможность настройки “Расширенной репликации на 3-й сервер, что даёт уверенность вам в том, что при самых негативных обстоятельствах, у вас есть ещё одна копия целиком VM.
Но есть и негативные стороны данного решения:
• В случае отказа основного сервера, VM на сервере-реплике сама не включится (требуется вмешательство человека).
• Незначительно снижается производительность из-за избыточных затрат файловой подсистемы на создания файлов с данными которые надо передать в реплике.
• Репликация может самопроизвольно прекратить функционировать.
Если с первым пунктом вопросов особо ни у кого не будет, и всем ясно, что если надо ещё выше уровень отказоустойчивости, то надо использовать “Отказоустойчивый кластер” и со вторым тоже всё понятно и это особенность технологии и снижение производительности не значительное, то вот с третьим пунктом проблема. Не нанимать же специального человека, который будет каждые 15 минут заходить и проверять.
Для этого мы разработали сенсор для системы мониторинга PRTG и скоро опубликуем у нас на сайте и GitHub. Для Zabbix тоже будет готов, но чуть позже. Вы сможете взять данный сенсор и переписать его самостоятельно т. к. он написан на PowerShell.