Live Migration (Динамическая миграция)
Выполнение данной практики в полном объеме возможно лишь при наличии соответствующего аппаратного и программного обеспечения, поэтому практика не является обязательной к выполнению и предназначена, в первую очередь, для иллюстрации последовательности действий, необходимых для организации динамической миграции виртуальных машин средствами Hyper - V.
Общие тома кластера
Общие тома кластера — это новый тип тома хранения, поддерживаемый отказоустойчивыми кластерами Windows Server 2008 R2. Эта функция разрешает одновременную запись и чтение нескольким узлам кластера. Общие тома кластера предназначены для использования в Hyper-V и не поддерживаются для других применений, если корпорацией Майкрософт не указано иное.
При реализации общих томов кластера в отказоустойчивом кластере серверов Hyper-V кластеризованные виртуальные машины (т.е. машины, размещенные в различных узлах кластера) могут одновременно обращаться к виртуальным жестким дискам. Эти виртуальные диски находятся на общем томе кластера, который представляет собой один номер логического устройства (LUN) в массиве кластеров хранения. Это позволяет кластеризованным виртуальным машинам выполнять переключение при отказе независимо друг от друга. В любой момент времени управление состоянием виртуальной машины осуществляется только одним узлом кластера.
Обеспечение высокой доступности кластеризованных машин без общих томов кластера составляет определенную сложность. Это связано с тем, что каждый номер LUN в массиве кластера хранения одновременно доступен только одному узлу кластера. Таким образом, каждой кластеризованной виртуальной машине требуется отдельный номер LUN, что усложняет реализацию кластеризованных виртуальных машин и LUN, а также управление ими. Общие тома кластера позволяют преодолеть эти трудности, что упрощает реализацию высокой доступности кластеризованных виртуальных машин.
Основы динамической миграции
Динамическая миграция — это новая функция Hyper-V в Windows Server 2008 R2, требующая добавления и настройки компонента отказоустойчивости кластеров на серверах под управлением Hyper-V. Hyper-V и компонент отказоустойчивости кластеров можно использовать совместно для обеспечения высокой доступности виртуальной машины, сокращая до минимума перерывы в работе и время простоя для клиентов. Динамическая миграция обеспечивает прозрачный перенос виртуальных машин с одного узла отказоустойчивого кластера на другой узел в том же кластере без отключения от сети и вынужденного простоя. Кроме того, отказоустойчивые кластеры должны располагаться в общем хранилище узлов кластера. Это может быть оптоволоконная сеть хранения данных или сеть хранения данных iSCSI. Все виртуальные машины располагаются в общем хранилище, а состоянием запущенных виртуальных машин управляет один из узлов.
Архитектура динамической миграции
В упрощенном виде процесс динамической миграции может быть описан следующим образом:
- На целевом сервере создается файл настроек новой виртуальной машины.
- Первоначальное состояние памяти исходной виртуальной машины копируется на целевую систему.
- Модифицированные страницы памяти исходной виртуальной машины тегируются и копируются на целевую систему.
- Этот процесс продолжается до тех пор, пока число модифицированных страниц не становится небольшим.
- Работа виртуальной машины на исходном узле приостанавливается.
- Финальное состояние памяти из исходной виртуальной машины копируется на целевую систему.
- Работа виртуальной машины возобновляется на целевом сервере.
- Для обновления сетевых таблиц маршрутизации применяется протокол Address Resolution Protocol (ARP).
Важно понимать, что динамическая миграция возможна лишь в том случае, когда синхронизация памяти возможна, т.е. когда, проще говоря, "скорость" внесения изменения ниже скорости синхронизации. Таким образом, нельзя применять динамическую миграцию, к примеру, для виртуальной машины, обслуживающей хранилище данных, с которым единовременно работают несколько сотен пользователей.
Формирование инфраструктуры для динамической миграции
Для построения отказоустойчивого кластера необходимо:
- Наличие, как минимум, двух серверов Windows 2008 R2 (Datacenter или Enterprise) с развернутой ролью Hyper - V. Обратите внимание, что версии ОС должны совпадать, т.е. нельзя использовать Datacenter и Enterprise.
- Настроить виртуальную частную сеть в Hyper - V.
- Настройть общие тома кластера.
- Установить на серверах компонент - Средство отказоустойчивости кластеров
- Создать кластер
Рассмотрим более подробно каждый из шагов.
-
Добавление роли Hyper-V серверам под управлением Windows 2008 Server R2.
Подробно процесс добавления роли Hyper-V был рассмотрен в "Установка и настройка Hyper-V" . Отметим только, что наряду с обязательным использованием только одной версии Windows 2008 Server R2 на обоих серверах, также необходимо убедиться в том, что они используют одинаковую архитектуру. Также необходимо использовать один и тот же вариант установки ОС на сервер (Core или Full) и являться частью одного и того же домена Active Directory.
-
Настройка виртуальной частной сети.
Подробное описание настройки VPN выходит за рамки текущей практики, поэтому с ней рекомендуется ознакомиться самостоятельно. (см. список дополнительных источников).
-
Настройка общих томов кластера.
Каждый сервер должен быть оснащен по крайней мере тремя сетевыми интерфейсными платами по 1 Гбит: одна для соединения с внешними сетями, другая — для связи с хранилищем iSCSI и третья — для управления узлами. В идеале следовало бы иметь еще одну интерфейсную сетевую плату, выделенную для динамической миграции, но эти операции могут выполняться и с использованием соединения для внешних сетей, просто в данном случае быстродействие будет несколько ниже. Здесь важно отметить, что, если вы реализуете консолидацию серверной среды, вам понадобятся дополнительные сетевые интерфейсные платы для пропуска сетевого трафика виртуальных машин. (Более подробно о настройке общих томов кластера см. в списке дополнительных источников)
-
Установка компонента отказоустойчивости кластеров осуществляется следующим образом:
- Запустите диспетчер сервера (Пуск - Администрирование). Щелкните правой кнопкой мыши на вкладке Компоненты и выберите Добавить компоненты.
- В окне мастера добавления компонентов в списке доступных компонент выберите Средство отказоустойчивости кластеров и нажмите кнопку Далее.
- Дождитесь окончания процесса установки нового компонента.
- Установка средства отказоустойчивости кластеров завершена.
-
Создание отказоустойчивого кластера.
Теперь все готово к непосредственному созданию кластера.
- Запустите диспетчер отказоустойчивых серверов (Пуск - Администрирование).
- Щелкните правой кнопкой мыши на узле Диспетчер отказоустойчивых серверов и выберите пункт меню Создать кластер.
- В появившемся окне мастера создания кластера нажмите кнопку Далее, после ознакомления с содержащейся в нем информацией.
- Далее необходимо указать сервера, которые будут выступать в качестве узлов кластера. Введите имена серверов в соответствующее текстовое поле и нажмите кнопку Добавить. По завершении нажмите кнопку Далее.
- В следующем окне необходимо определить будут ли выполняться проверочные тесты перед созданием кластера, или нет. Для того, чтобы убедиться в наличии возможности создания кластера выберите Да и нажмите кнопку Далее.
- На следующем этапе выберите вариант выполнения рекомендованных тестов и нажмите кнопку Далее.
- Убедитесь в том, что все параметры заданы верно и нажмите кнопку Далее.
- Дождитесь окончания процесса тестирования и после ознакомления с результатом нажмите кнопку Готово.
- На следующем этапе необходимо задать имя создаваемого кластера и IP адрес точки доступа администрирования кластера. Точкой доступа называется имя и связанные IP - данные, точка используется для, как видно из названия, администрирования кластера и связи со службами и приложениями кластера. (более подробную информацию см. http://technet.microsoft.com/ru-ru/library/cc732536.aspx)
- Далее необходимо проверить введенные данные, перейти на последний этап установки и нажать кнопку Готово.
Кластер создан.
Подготовка к динамической миграции
Для подготовки к динамической миграции с помощью ролей Hyper-V и отказоустойчивых кластеров Windows Server 2008 R2 необходимо выполнить следующие действия:
- Настройте архитектуру сервера, средств хранения и сети, описанную в предыдущем разделе, для поддержки отказоустойчивых кластеров и управления виртуальными машинами.
- Установите Windows Server 2008 R2 на каждом из серверов и добавьте роль Hyper-V.
- Установите отказоустойчивый кластер на каждом сервере и настройте все серверы в качестве узлов кластера. Проверьте конфигурацию кластера с помощью мастера проверки конфигурации.
- Щелкните отказоустойчивый кластер в диспетчере и выберите команду "Включить общие тома кластеров". После этого все узлы кластера смогут использовать общие тома. Общие тома можно включить только один раз для каждого кластера. После выполнения этого действия в дереве консоли отобразится узел "Общие тома кластера".
- Выберите кластер для управления и щелкните команду "Добавить хранилище" на панели "Действия". В диалоговом окне добавления хранилища выберите диск из списка доступных дисков и нажмите кнопку "ОК" для добавления диска к общему тому кластера. Отобразится расположение хранилища общего тома кластера SystemRoot\ClusterStorage для всех узлов отказоустойчивого кластера, а каждый добавленный диск будет отображаться под этим расположением.
- Создайте кластеризованные виртуальные машины. Для этого выберите общий том кластера для хранения виртуальных машин и их жестких дисков. Чтобы том кластера был доступен виртуальным машинам, необходимо создать виртуальные машины в узле кластера, который владеет общим томом.
- После этого используйте диспетчер Hyper-V, чтобы открыть параметры виртуальных машин. Выберите команду "Автоматическое действие при запуске" на левой панели и установите для нее значение "Нет", чтобы указать действие виртуальной машины при запуске физического компьютера. Это позволяет контролировать состояние виртуальной машины через службу кластера.
- После этого воспользуйтесь диспетчером отказоустойчивого кластера, чтобы обеспечить высокую доступность кластеризованных виртуальных машин. Для этого выберите элемент "Службы и приложения" в дереве консоли и выберите на панели "Действия" команду "Настроить службу или приложение" для запуска мастера высокой доступности. Щелкните элемент "Виртуальная машина" на странице выборе службы или приложения, а на странице выбора виртуальной машины установите флажок рядом с виртуальной машиной, которую необходимо сделать высокодоступной. После этого завершите работу мастера. Виртуальная машина отобразится в узле "Службы и приложения". Запустите виртуальную машину, щелкнув ее правой кнопкой мыши и выберите команду "Перевести службу или приложение в оперативный режим". Затем установите гостевую ОС и приложения на виртуальной машине. Повторите эти действия для всех виртуальных машин, которые необходимо сделать высокодоступными.
- После этого перейдите в диспетчер отказоустойчивого кластера к разделу "Службы и приложения" и выберите кластеризованную виртуальную машину, чтобы настроить кластерную сеть для динамической миграции. На центральной панели щелкните ресурс виртуальной машины правой кнопкой мыши, выберите элемент "Свойства", перейдите на вкладку "Сеть для динамической миграции" и выберите одну или несколько кластерных сетей для использования в динамической миграции. Кнопки "Вверх" и "Вниз" позволяют изменить порядок сетей. Сеть в начале списка будет предпочтительной для использования в ходе динамической миграции. В общем случае закрытая кластерная сеть должна являться предпочтительной для динамической миграции, а сеть, используемая только для трафика кластера и общими томами кластера, должна находиться в конце списка.
Динамическая миграция
Чтобы выполнить динамическую миграцию и переместить виртуальную машину с одного узла кластера на другой, выполните следующие действия:
- Откройте диспетчер отказоустойчивого кластера, выберите кластер и разверните узел "Службы и приложения".
- Щелкните ресурс виртуальной машины на центральной панели и выберите команду "Выполнить динамическую миграцию виртуальной машины на другой узел", а затем выберите узел, в который следует переместить виртуальную машину.
- Ход выполнения динамической миграции отобразится на центральной панели.
- Время, требуемое для динамической миграции, зависит от количества оперативной памяти виртуальной машины, загрузки исходных и целевых узлов кластера, а также от скорости и пропускной способности соединения, используемого для перемещения виртуальной машины.
- После завершения миграции право владения виртуальной машиной передается от узла node 1 узлу node 2.
Краткие итоги
Live Migration является одной из самых "соблазнительных" особенностей Hyper-V R2, однако настройка данной функции и условия, при которых ее выполнение осуществимо не столь очевидны, как кажутся. Прежде чем настраивать Live Migration, убедитесь, что это именно то, что вам необходимо.