Работа с динамической миграцией

Динамическая миграция — это новая функция, представленная в Hyper-V в версии Windows Server 2008 R2. Она повышает доступность виртуальных машин за счет возможности их прозрачного перемещения между узлами отказоустойчивого кластера без простоя и разрыва сетевых подключений.Динамическая миграция использует общие тома кластера из компонента отказоустойчивого кластера Windows Server 2008 R2, который описывается в следующем разделе. Динамическая миграция также может использовать новый режим совместимости процессора Hyper-V R2 для скрытой миграции работающих виртуальных машин между главными компьютерами с такой же архитектурой процессора (AMD или Intel), но различными функциями процессора. Дополнительные сведения о режиме совместимости процессоров см. ниже во врезке «Принцип работы: режим совместимости процессора».

Общие сведения об общих томах кластера

Общие тома кластера — это новый тип тома хранения, поддерживаемый отказоустойчивыми кластерами Windows Server 2008 R2. Эта функция разрешает одновременную запись и чтение нескольким узлам кластера. Общие тома кластера предназначены для использования в Hyper-V и не поддерживаются для других применений, если корпорацией Майкрософт не указано иное.

При реализации общих томов кластера в отказоустойчивом кластере серверов Hyper-V кластеризованные виртуальные машины (т.е. машины, размещенные в различных узлах кластера) могут одновременно обращаться к виртуальным жестким дискам. Эти виртуальные диски находятся на общем томе кластера, который представляет собой один номер логического устройства (LUN) в массиве кластеров хранения. Это позволяет кластеризованным виртуальным машинам выполнять переключение при отказе независимо друг от друга. В любой момент времени управление состоянием виртуальной машины осуществляется только одним узлом кластера.

Обеспечение высокой доступности кластеризованных машин без общих томов кластера составляет определенную сложность. Это связано с тем, что каждый номер LUN в массиве кластера хранения одновременно доступен только одному узлу кластера. Таким образом, каждой кластеризованной виртуальной машине требуется отдельный номер LUN, что усложняет реализацию кластеризованных виртуальных машин и LUN, а также управление ими. Общие тома кластера позволяют преодолеть эти трудности, что упрощает реализацию высокой доступности кластеризованных виртуальных машин.

Реализация кластеризованного Hyper-V

Наиболее простой формой высокодоступной реализации кластеризованной технологии Hyper-V является отказоустойчивый кластер с двумя узлами. Кластер обычно состоит из следующих компонентов:

  • Два сервера под управлением Windows Server 2008 R2 Enterprise или Datacenter с установленной ролью Hyper-V и отказоустойчивыми кластерами. Для узлов необходимо использовать одну и ту же версию Windows Server 2008 R2: конфигурация с версией Enterprise на одном узле и версией Datacenter на другом узле невозможна. Следует также использовать одинаковую архитектуру: наличие одного сервера Itanium и одного сервера x64 недопустимо. Кроме того, для каждого узла необходимо использовать одинаковые варианты установки: на узлах не могут быть одновременно установлены вариант Windows Server 2008 R2 Full и вариант Server Core. Оборудование этих серверов в общем случае должно максимально совпадать, а на серверах должны быть установлены одинаковые пакеты обновления и обновления ПО.  Наконец, оба сервера должны входить в один и тот же домен служб Active Directory (AD DS).
  • Массив хранения, который состоит из двух номеров LUN, настроенных на аппаратном уровне. Массив хранения может использовать Serial Attached SCSI (SAS), iSCSI или оптоволоконный кабель. В состав массива хранения должны входить следующие компоненты
    • Один номер LUN, настроенный в качестве диска-свидетеля для кластера. Диск-свидетель содержит копию диска конфигурации кластера. Конфигурация кворума кластера будет иметь значение «Большинство узлов и дисков», устанавливаемое по умолчанию для двухузлового кластера, конфигурация которого хранится в узлах и на диске-свидетеле.
    • Номер LUN, настроенный в качестве общего ресурса хранения, в котором находятся виртуальные машины и виртуальные жесткие диски. Общие тома кластера должны быть базовыми, а не динамическими дисками. Они могут быть основаны на основной загрузочной записи (MBR) или таблице разделов GPT и должны иметь формат NTFS.

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

Все оборудование хранения и сети (в т. ч. сами серверы) должно быть сертифицировано для Windows Server 2008 R2. Чтобы убедиться в возможности использования отказоустойчивых кластеров, используйте мастер проверки конфигурации до реализации решения кластеризации.

Подготовка к динамической миграции

Для подготовки к динамической миграции с помощью ролей Hyper-V и отказоустойчивых кластеров Windows Server 2008 R2 необходимо выполнить следующие действия:

  1. Настройте архитектуру сервера, средств хранения и сети, описанную в предыдущем разделе, для поддержки отказоустойчивых кластеров и управления виртуальными машинами.
  2. Установите Windows Server 2008 R2 на каждом из серверов и добавьте роль Hyper-V.
  3. Установите отказоустойчивый кластер на каждом сервере и настройте все серверы в качестве узлов кластера. Проверьте конфигурацию кластера с помощью мастера проверки конфигурации. Для этого откройте консоль диспетчера отказоустойчивого кластера и щелкните элемент «Проверить конфигурацию» на центральной панели управления:
  4. Щелкните отказоустойчивый кластер в диспетчере и выберите команду «Включить общие тома кластеров». После этого все узлы кластера смогут использовать общие тома.  Общие тома можно включить только один раз для каждого кластера. После выполнения этого действия в дереве консоли отобразится узел «Общие тома кластера».
  5. Выберите кластер для управления и щелкните команду «Добавить хранилище» на панели «Действия». В диалоговом окне добавления хранилища выберите диск из списка доступных дисков и нажмите кнопку «ОК» для добавления диска к общему тому кластера. Отобразится расположение хранилища общего тома кластера SystemRoot\ClusterStorage для всех узлов отказоустойчивого кластера, а каждый добавленный диск будет отображаться под этим расположением.
  6. Создайте кластеризованные виртуальные машины. Для этого выберите общий том кластера для хранения виртуальных машин и их жестких дисков. Чтобы том кластера был доступен виртуальным машинам, необходимо создать виртуальные машины в узле кластера, который владеет общим томом.
  7. После этого используйте диспетчер Hyper-V, чтобы открыть параметры виртуальных машин. Выберите команду «Автоматическое действие при запуске» на левой панели и установите для нее значение «Нет», чтобы указать действие виртуальной машины при запуске физического компьютера. Это позволяет контролировать состояние виртуальной машины через службу кластера.
  8. После этого воспользуйтесь диспетчером отказоустойчивого кластера, чтобы обеспечить высокую доступность кластеризованных виртуальных машин. Для этого выберите элемент «Службы и приложения» в дереве консоли и выберите на панели «Действия» команду «Настроить службу или приложение» для запуска мастера высокой доступности. Щелкните элемент «Виртуальная машина» на странице выборе службы или приложения, а на странице выбора виртуальной машины установите флажок рядом с виртуальной машиной, которую необходимо сделать высокодоступной. После этого завершите работу мастера. Виртуальная машина отобразится в узле «Службы и приложения». Запустите виртуальную машину, щелкнув ее правой кнопкой мыши и выберите команду «Перевести службу или приложение в оперативный режим». Затем установите гостевую ОС и приложения на виртуальной машине. Повторите эти действия для всех виртуальных машин, которые необходимо сделать высокодоступными.
  9. После этого перейдите в диспетчер отказоустойчивого кластера к разделу «Службы и приложения» и выберите кластеризованную виртуальную машину, чтобы настроить кластерную сеть для динамической миграции.На центральной панели щелкните ресурс виртуальной машины правой кнопкой мыши, выберите элемент «Свойства», перейдите на вкладку «Сеть для динамической миграции» и выберите одну или несколько кластерных сетей для использования в динамической миграции.

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

Итак, настроен отказоустойчивый кластер серверов Hyper-V с высокодоступными кластеризованными виртуальными машинами, поддерживающими динамическую миграцию. В следующем разделе описывается выполнение динамической миграции.

Выполнение динамической миграции

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

  1. Откройте диспетчер отказоустойчивого кластера, выберите кластер и разверните узел «Службы и приложения».
  2. Щелкните ресурс виртуальной машины на центральной панели и выберите команду «Выполнить динамическую миграцию виртуальной машины на другой узел», а затем выберите узел, в который следует переместить виртуальную машину.

    На приведенном снимке экрана владельцем двух виртуальных машин изначально являлся узел R2-NODE1, а виртуальная машина CONTOSO-FS5 перемещается в узел R2-NODE2.
  3. Ход выполнения динамической миграции отобразится на центральной панели.

    Время, требуемое для динамической миграции, зависит от количества оперативной памяти виртуальной машины, загрузки исходных и целевых узлов кластера, а также от скорости и пропускной способности соединения, используемого для перемещения виртуальной машины.
  4. После завершения миграции право владения виртуальной машиной CONTOSO-FS5 будет передано от узла R2-NODE1 узлу R2-NODE2

В версии R2 Hyper-V и отказоустойчивых кластеров для динамической миграции также можно использовать Windows PowerShell.  Для этого используется следующая команда:

Get-Cluster "<имя кластера>" | Move-ClusterVirtualMachineRole -Name "<имя группы виртуальной машины>" -Node "<имя целевого узла>"

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

Дополнительные сведения Для получения более подробной информации об отказоустойчивых кластерах для высокодоступных виртуальных машин обратитесь к разделу «Hyper-V: использование Hyper-V и отказоустойчивых кластеров» в библиотеке TechNet по адресу
https://technet.microsoft.com/en-us/library/cc732181.aspx. Дополнительные сведения о выполнении динамической миграции см. в разделе «Hyper-V: использование динамической миграции с общими томами кластера в Windows Server 2008 R2» по адресу
https://technet.microsoft.com/en-us/library/dd446679.aspx.

Принцип работы: режим совместимости процессоров

Режим совместимости процессоров — это новая функция Hyper-V в Windows Server 2008 R2, которая позволяет переносить виртуальную машину между главными компьютерами с одной архитектурой процессора (AMD или Intel). При запуске виртуальной машины на узле Hyper-V низкоуровневая оболочка предоставляет поддерживаемые функции процессора, доступные на оборудовании главного компьютера. Такие функции называются функциями, видимыми гостевым системам, так как они доступны виртуальной машине до момента ее перезапуска

При включении режима совместимости процессоров на виртуальной машине Hyper-V нормализует набор функций процессора. Это значит, что гостевым системам предоставляются только те функции, которые доступны на всех процессорах одинаковой архитектуры. Другими словами, гостевая операционная система может обращаться к «стандартному» процессору Intel или к «стандартному» процессору AMD вне зависимости от того, какой процессор физически находится на главном компьютере. Скрытие реальных функций процессора и предоставление стандартного процессора с ограниченным набором функций позволяет переносить виртуальную машину между процессорами одной архитектуры. Скрытие функций процессора реализуется за счет перехвата инструкций CPUID виртуальной машины в низкоуровневой оболочке и очистки битов, соответствующих скрываемым функциям процессора.

Для включения режима совместимости процессоров не требуется изменение BIOS.  Кроме того, процессор может не поддерживать расширенные функции (расширенную миграцию или гибкую миграцию). При включении режима совместимости для процессоров AMD теряются функции SSSE3, SSE4.1, SSE4.A, SSE5, POPCNT, LZCNT, AMD 3DNow!, Extended AMD 3DNow! и Misaligned SSE. Для процессоров Intel теряются функции SSSE3, SSE4.1, SSE4.2, POPCNT, Misaligned SSE, XSAVE и AVX.

Обратите внимание на то, что при включенном режиме совместимости процессоров и запуске сторонних приложений, которые способны использовать одну или несколько скрытых функций процессора, поведение приложения при отсутствии таких функций должно быть определено заранее. В связи с этим на виртуальных машинах Hyper-V режим совместимости процессора по умолчанию отключен, чтобы избежать ошибок работы сторонних приложений в виртуальной машине. Перед включением режима совместимости следует проверить все приложения, установленные на виртуальной машине.  Особое внимание следует уделить мультимедийным приложениям, которые могут работать нестабильно при включенном режиме совместимости процессора. Это связано с тем, что такие приложения часто используют функции процессора для оптимизации своей работы.

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

Режим процессора включается отдельно для каждой из виртуальных машин. Чтобы включить режим совместимости процессора для виртуальной машины, завершите ее работу с помощью диспетчера Hyper-V. Откройте лист свойств виртуальной машины и щелкните элемент «Процессор» в левой панели. На правой панели установите флажок «Выполнить перенос на физический компьютер с другой версией процессора» , как показано на следующем снимке экрана.

Включение режима совместимости процессоров на виртуальной машине позволяет выполнить динамическую или быструю миграцию виртуальной машины между узлами Hyper-V с одинаковой архитектурой процессора. Режим совместимости процессора также делает совместимыми сохраненные состояния и моментальные снимки. Подробные сведения об использовании режима совместимости процессоров см. в разделе «Настройка памяти и процессоров» в библиотеке TechNet по адресу https://technet.microsoft.com/en-us/library/cc742470.aspx.