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

В Hyper-V в Windows Server 2012 заложены весьма широкие возможности масштабирования, виртуальные машины могут иметь до 64 виртуальных процессоров (vCPU) и до 1 Тбайт оперативной памяти. Благодаря новому формату VHDX теперь возможно создавать виртуальные жесткие диски (VHD) объемом до 64 Тбайт, что избавляет от необходимости задействовать транзитное хранилище. Таким образом, можно согласиться с тем, что практически любое приложение может быть виртуализовано с помощью Hyper-V.

Конечно, масштабируемость сама по себе не имеет большого значения без функций, способных в полной мере использовать ее возможности. И Windows Server 2012 обладает ими. Динамическая миграция хранилища позволяет перемещать хранилище виртуальной машины, не выключая ее. Динамическая миграция без разделения ресурсов позволяет перемещать виртуальные машины между хостами Windows Server 2012 без простоя, даже без кластеризации и общего хранилища. Эти возможности делают виртуальные машины мобильными в рамках центра обработки данных.

Такие новые возможности, как виртуализация операций ввода-вывода SR-IOV (single root I/O virtualization), протокол Server Message Block (SMB) версии 3.0, виртуальный адаптер Fibre Channel и виртуализация сети, делают Hyper-V очень эффективным гипервизором. Однако многие организации не рассматривали его ранее и не знают, с чего начать. В этой статье мы рассмотрим основы установки и настройки Windows Server 2012 Hyper-V.

Какое аппаратное обеспечение мне потребуется?

В простом случае, то есть при развертывании одного сервера, вам потребуется сервер с 64-разрядным процессором, поддерживающим аппаратную виртуализацию. У процессоров Intel эта технология называется Intel Virtualization Technology (VT), у процессоров AMD — AMD virtualization (AMD-V). Практически любой процессор из выпущенных за последние пять лет поддерживает эту технологию. Но если вы не уверены в своем аппаратном обеспечении, загрузите и запустите из командной строки с повышенными привилегиями утилиту Coreinfo (technet.microsoft.com/en-us/sysinternals/cc835722.aspx) с параметром –v. Утилита покажет, поддерживает ли процессор аппаратную виртуализацию и преобразование адресов второго уровня (Second Level Address Translation (SLAT); для процессоров Intel и AMD эта возможность также может называться Extended Page Tables. Результат запуска утилиты, показанный на экране 1, говорит о том, что аппаратная виртуализация Intel включена, а это все, что нужно, чтобы начать. Поддержка SLAT не является обязательной для работы Hyper-V, но улучшает производительность. Поэтому предпочтительно задействовать SLAT всегда, когда это возможно, а в тех средах, где используются технологии виртуальных рабочих столов, такие, как виртуализованные серверы служб удаленных рабочих столов Remote Desktop Services или инфраструктура виртуальных рабочих столов (VDI), применение SLAT является абсолютно необходимым.

 

Пример вывода утилиты Coreinfo
Экран 1. Пример вывода утилиты Coreinfo

Windows Server 2012 не имеет ограничения на соотношение между физическими и логическими процессорами (в Windows Server 2008 R2 поддерживалось соотношение 8:1 для виртуальных машин с серверными операционными системами). Если вас удовлетворяет, как сервер справляется с нагрузкой, то Microsoft этого достаточно.

Объем необходимой памяти полностью зависит от того, сколько памяти вы планируете выделить виртуальным машинам. Обычно я выделяю 2 Гбайт на хост, а затем добавляю память, которая потребуется для виртуальных машин. Для крупномасштабных виртуальных сред серверы с объемом памяти в 96 или 192 Гбайт — дело обычное. Но для тестовой среды вам хватит ровно столько памяти, сколько необходимо для работы.

У каждой виртуальной машины есть один или более виртуальных дисков. В Windows Server 2012 используется новый формат VHDX, который не только поддерживает диски объемом 64 Тбайт (старый формат поддерживал диски объемом до 2 Tбайт), но и был оптимизирован так, что его производительность практически не уступает физическим жестким дискам. Это верно даже для динамических виртуальных жестких дисков, которые изначально занимают немного места и увеличиваются в объеме по мере записи данных. Также есть возможность создания VHD фиксированного размера. Этот вариант, как правило, используется в производственных средах, как из соображений производительности, так и для того, чтобы не израсходовать все свободное место на диске. А это вполне может произойти, если фактический объем занимаемого дискового пространства не отслеживается должным образом, поскольку динамические файлы VHDX увеличиваются в размере. Используйте старый формат VHD только в том случае, если вам нужна совместимость с предыдущими версиями серверов Hyper-V, такими как Windows Server 2008 R2.

Файлы VHDX могут храниться на локально подключенном хранилище (в тестовой среде, например, это могут быть встроенные диски), но в идеале стоит использовать внешнее хранилище, такое как SAN. Новая возможность в Windows Server 2012 — это хранение и запуск виртуальных машин из общей сетевой папки, с использованием протокола SMB 3.0. Применение внешнего хранилища упрощает создание резервных копий виртуальной среды. Внешнее хранилище позволяет задействовать больший объем дискового пространства по мере увеличения количества серверов. Использование центрального пула упрощает управление. Внешнее хранилище также пригодится, если вы собираетесь использовать отказоустойчивую кластеризацию для включения нескольких узлов кластера, позволив, тем самым, виртуальным машинам легко перемещаться между хостами и автоматически перезапускаться, если один хост выйдет из строя. Миграция типа Shared Nothing Live Migration позволяет виртуальным машинам также перемещаться без перерыва в работе за пределы кластера, как уже упоминалось выше. Кроме того, кластеры чрезвычайно полезны для проведения планового обслуживания, поскольку они позволяют переместить все виртуальные машины на другой узел (используя динамическую миграцию, что предотвращает момент недоступности виртуальной машины), пока на первоначальный узел устанавливаются обновления и он перезагружается, после чего машины перемещаются обратно и следующий узел обновляется и перезагружается. Любой узел в кластере может быть обновлен без простоя виртуальных машин. Используя этот процесс, в Windows Server 2012 можно обновить весь кластер одним щелчком мыши.

Что с сетевыми подключениями?

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

  1. Вам необходимо управлять хостом Hyper-V. Соответственно, вам требуется подключение для выполнения административных задач.
  2. Скорее всего, виртуальным машинам потребуется связь с внешним миром. Частный виртуальный коммутатор позволяет виртуальным машинам взаимодействовать между собой, а внутренний виртуальный коммутатор позволяет им взаимодействовать между собой и хостом Hyper-V. Но ни один из них не дает возможности взаимодействовать с внешним миром. Следовательно, вам понадобится сетевой адаптер для трафика виртуальных машин. В производственной среде вам, вероятнее всего, потребуется как минимум два адаптера для трафика виртуальных машин; вы сможете объединить их для создания отказоустойчивого подключения. Существует возможность использовать один и тот же адаптер как для управления, так и для виртуальных машин; в тестовой среде вы можете задействовать этот вариант. Но в идеале лучше разделять административный трафик и виртуальный сетевой коммутатор, который управляет трафиком виртуальных машин. Вы ведь не хотите потерять доступ к серверу, если что-то случится с виртуальным коммутатором.
  3. Необходимо, чтобы узлы в кластере обменивались служебной информацией, такой, как различные сообщения IsAlive. Обычно для этого применяется отдельная сеть. Дополнительно к трафику подтверждения соединения кластера (heartbeat) кластерная сеть используется для трафика общего тома кластера cluster shared volume (CSV). Это позволяет всем узлам кластера одновременно задействовать одни LUN в NTFS. Обычно трафик CSV состоит только из изменений метаданных. Однако в некоторых ситуациях отдельные узлы используют эту сеть для передачи трафика, относящегося к хранилищу. Поэтому при использовании CSV кластеру потребуется отдельная сеть.
  4. Вам потребуется выделенная сеть, чтобы гарантировать, что миграция виртуальных машин между узлами происходит за приемлемое время. Таким образом, вам нужно выделить сеть для динамической миграции.
  5. Если вы используете iSCSI для подключения к хранилищу, то вам опять же потребуется выделенная сеть.

Это требование наличия пяти сетевых подключений не учитывает использование нескольких сетевых адаптеров для трафика виртуальных машин или объединения сетевых карт (для балансировки нагрузки и обеспечения высокой доступности). Кроме того, оно не учитывает использование нескольких сетевых подключений iSCSI или Microsoft Multipath I/O (MPIO) для обеспечения дополнительной отказоустойчивости.

В данном расчете предполагается, что вы используете подключения 1 Гбит/с. При использовании подключений 10 Гбит/с ситуация меняется. Не имеет смысла выделять отдельный интерфейс 10 Гбит/с для административного трафика или трафика CSV. В средах с 10 Гбит/с, вероятнее всего, будет два подключения; используйте объединение сетевых карт для каждого из них для обеспечения отказоустойчивости и должного качества обслуживания Quality of Service (QoS), чтобы гарантировать пропускную способность для каждого типа трафика. Подробные рекомендации Microsoft можно найти в статье «Hyper-V: Live Migration Network Configuration Guide» (technet.microsoft.com/en-us/library/ff428137(v=WS.10).aspx).

Можно применять тот же подход и в сетях 1 Гбит/с. Используйте объединение сетевых карт и QoS, чтобы гарантировать пропускную способность для трафика разных типов.

Какую операционную систему использовать?

После того, как вы определили подходящие процессор, память, диски и сеть, все, что вам нужно — это выбрать операционную систему. Но какую именно редакцию выбрать — Windows Server 2012 Standard, Windows Server 2012 Datacenter или бесплатную Microsoft Hyper-V Server 2012? С точки зрения Hyper-V разницы нет. Все три операционные системы имеют одинаковые ограничения, возможности кластеризации и функции. Решение зависит от того, какая операционная система будет использоваться на хосте Hyper-V.

Если это Windows Server, то планируете ли вы свободно перемещать виртуальные машины между хостами? В Hyper-V 2012 Server невозможно установить на виртуальную машину операционную систему Windows Server. И это имеет смысл – операционная система бесплатна и вполне подойдет, если вы не будете устанавливать на виртуальные машины операционную систему Windows Server. Если вы используете виртуальные рабочие столы (VDI) с виртуальными машинами Windows 8 или у вас виртуальные машины только на UNIX или Linux, то ориентируйтесь на Hyper-V 2012.

Если вам нужно применять Windows Servers на виртуальных машинах, то вам подойдет редакция Windows Server 2012 Standard, которая дает возможность запускать одновременно две виртуальные машины с операционной системой Windows Server. Если бы мне потребовалось запустить четыре виртуальные машины с операционной системой Windows Server, то я мог бы купить два экземпляра Windows Server 2012 Standard. Обратите внимание, что вы можете запускать на одном и том же сервере и другие виртуальные машины, не с серверными операционными системами. По количеству виртуальных машин ограничений нет, есть только ограничение на число виртуальных машин с операционной системой Windows Server, работающих на Hyper-V, VMware или любой другой платформе виртуализации.

Если предстоит запускать несколько экземпляров операционной системы Windows Server, то вам потребуется редакция Windows Server 2012 Datacenter, которая дает возможность запускать неограниченное количество виртуальных машин с серверными операционными системами. При расчете учтите стоимость версий Standard и Datacenter применительно к своей среде. Например, если вам нужно запускать менее шести виртуальных машин с Windows Server, то дешевле купить несколько копий Standard, чем Datacenter. А если вы используете кластеризацию и хотите перемещать виртуальные машины, то вам придется учесть следующий фактор: лицензии Windows Server привязаны к аппаратному обеспечению, и их можно перемещать между серверами только раз в 90 дней.

Давайте рассмотрим пример с региональным офисом, в котором развернуты два кластера виртуализации. Повторюсь, речь идет о лицензировании Windows, а не Hyper-V, поэтому все, о чем я говорю, не зависит от используемого гипервизора. На каждом узле Hyper-V обычно работает 4 виртуальные машины, поэтому мне нужны две копии Windows Server 2012 Standard для каждого узла. Поскольку узлы включены в кластер, я могу перемещать виртуальные машины между узлами. Например, для установки обновлений мне нужно переместить все виртуальные машины на узел B (в результате на нем одновременно будет работать восемь виртуальных машин), пока я буду устанавливать обновления и перезагружать сервер А. Затем мне понадобится переместить все восемь машин на узел А, пока я буду обновлять и перезагружать узел B. Но я могу это сделать, только подождав 90 дней с момента перемещения всех виртуальных машин на узел В. К тому же, если узел выйдет из строя, то я не смогу в течение 90 дней передвинуть обратно перемещенные виртуальные машины, когда узел будет восстановлен. Для того чтобы свободно перемещать виртуальные машины, мне необходимо достаточное количество свободных лицензий, чтобы обеспечить ими все виртуальные машины, которые только могут оказаться на данном узле, то есть восемь машин. Для этого мне понадобится четыре копии Standard для каждого сервера, что делает Datacenter в данном случае более разумным вариантом.

Многие компании часто неверно понимают это сравнение, которое имеет большое значение, когда речь идет о планировании количества необходимых лицензий. Как правило, когда виртуализация используется мало, вам будет достаточно Windows Server 2012 Standard. В то время как в полностью виртуализованных средах, вероятнее всего, понадобится Windows Server 2012 Datacenter.

Еще один важный вопрос — использовать ли режим Server Core или режим с графическим пользовательским интерфейсом. В общем случае использование Server Core предпочтительно, так как требует установки меньшего количества обновлений и, как следствие, перезагрузок. Но при этом в Windows Server 2012 пользовательский интерфейс в любой момент можно добавить или удалить, что требует только одной перезагрузки. Поэтому, особенно если вы еще не очень хорошо знакомы с Windows Server 2012, изначально установите сервер с пользовательским графическим интерфейсом. Сделайте все настройки, освойтесь, а затем удалите графическую оболочку и инструменты управления и используйте сервер в режиме Server Core, управляя им удаленно с компьютера с операционной системой Windows 8.

Установка Hyper-V

Итак, вы установили Windows Server 2012, применили последние обновления, подключили сервер к системе хранения, переименовали сетевые подключения, чтобы их было проще различать (и объединили их, если необходимо) и настроили IP-адреса. Следующий шаг — установка роли Hyper-V. Эту задачу можно решить из графического интерфейса с помощью диспетчера сервера или же используя Powershell:

Install-WindowsFeature Hyper-V -IncludeManagementTools –Restart

Преимущество использования диспетчера сервера заключается в том, что вы можете создать виртуальный коммутатор на выбранном сетевом адаптере сервера. Виртуальные сетевые адаптеры, которые вы настраиваете на виртуальных машинах, подключаются к этому коммутатору для доступа к внешней сети. По умолчанию виртуальный сетевой адаптер создается и на хосте, для сетевого взаимодействия с виртуальными машинами. Если у вас есть выделенный сетевой адаптер для управления, отключите общий адаптер после завершения установки.

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

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

  1. Зарегистрируйтесь на сервере, который будет хостом Hyper-V, под учетной записью с правами администратора и запустите диспетчер сервера. Или запустите диспетчер сервера на удаленной машине, используя учетную запись с правами администратора на сервере, который будет хостом Hyper-V.
  2. Выберите «Добавить роли и функции» из меню «Управление».
  3. Нажмите «Далее».
  4. На странице «Выбор типа установки» выберите «Установка на основе ролей» и нажмите «Далее».
  5. На странице «Выбор сервера» из списка серверов выберете сервер, на который необходимо установить Hyper-V, и нажмите «Далее».
  6. В списке «Роли сервера» отметьте Hyper-V и подтвердите автоматическую установку инструментов управления.
  7. На странице «Создать виртуальный коммутатор», показанной на экране 2, выберите сетевой адаптер, который будет использоваться для трафика виртуальных машин, и нажмите «Далее».
  8. Оставьте режим «Включить динамическую миграцию» выключенным и нажмите «Далее». Динамическую миграцию легко включить позже.
  9. Укажите место для хранения виртуальных машин или оставьте значения по умолчанию и нажмите «Далее».
  10. Установите флажок для автоматической перезагрузки сервера, если это необходимо, и щелкните «Да» в окне подтверждения. Нажмите кнопку «Установить».

 

Создание виртуального коммутатора
Экран 2. Создание виртуального коммутатора

После того, как сервер перезагрузится, вы становитесь счастливым обладателем сервера Hyper-V. Запуск команды

bcdedit /enum

из командной строки показывает, что гипервизор теперь загружается автоматически при старте системы. Результат выполнения команды показан на экране 3.

 

Результат выполнения команды, показывающий автозагрузку гипервизора при старте системы
Экран 3. Результат выполнения команды, показывающий автозагрузку гипервизора при старте системы

Запустите диспетчер сервера, в разделе «Инструменты» выберите «Диспетчер Hyper-V» и подключитесь к своему серверу. На нем пока нет виртуальных машин. Но если вы нажмете «Диспетчер виртуальных коммутаторов», вы увидите единственный виртуальный коммутатор, который будет называться так же, как и контроллер сетевого адаптера, например Realtek PCIe GBE Family Controller, как показано на экране 4.

 

Настройка виртуального коммутатора
Экран 4. Настройка виртуального коммутатора

Я рекомендую заменить название на более понятное, например «Внешний коммутатор», чтобы было ясно, к какой сети он подключен. Использовать типовые имена для коммутаторов на всех хостах Hyper-V очень важно. Если вы перемещаете виртуальные машины между хостами, коммутатор с одним и тем же названием должен существовать как на исходном, так и на конечном хосте, чтобы виртуальная машина сохранила сетевое подключение. Кроме того, как показано на экране 4, не выбирайте пункт Allow management operating system to share this network adapter. Данная настройка нужна, только если у вас нет отдельного сетевого адаптера для управления сервером или если у вас только один сетевой адаптер, который используется совместно виртуальными машинами и хостом. Здесь же вы можете создать дополнительные коммутаторы, если это необходимо.

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

Есть еще несколько моментов, на которые необходимо обратить внимание.

  • Если вы включили Windows Update, то, вероятно, не хотите, чтобы ваш сервер автоматически перезагружался после установки обновлений. Поэтому если вы используете корпоративное решение для управления обновлениями, настройте сервисный интервал, во время которого сервер Hyper-V может перезагрузиться, так, чтобы он не пересекался с рабочими часами. Во время перезагрузки Hyper-V виртуальные машины недоступны.
  • Если вы используете антивирусное программное обеспечение на сервере Hyper-V, то в целях повышения производительности необходимо исключить из сканирования определенные файлы и папки. Исключения описаны в статье Microsoft «Virtual machines are missing, or error 0x800704C8, 0x80070037, or 0x800703E3 occurs when you try to start or create a virtual machine» (support.microsoft.com/kb/961804).
  • Делайте резервные копии своих виртуальных машин. В Windows Server 2012 дополнительное преимущество заключается в том, что если у вас есть резервная копия виртуальной машины, то импортировать ее на новый сервер Hyper-V очень просто. Вам не нужно предварительно экспортировать ее.
  • Если на вашем сервере Hyper-V установлен большой объем оперативной памяти, то по умолчанию Windows создаст большой файл подкачки. Размер этого файла может быть изменен вручную, так как большую часть памяти используют виртуальные машины. Вы спокойно можете создать для сервера Hyper-V файл подкачки размером 4 Гбайт, используя модуль «Система» в панели управления. Перейдите на вкладку «Дополнительно», нажмите кнопку «Настройки» в разделе «Производительность», снова откройте вкладку «Дополнительно», нажмите кнопку «Изменить» в разделе «Виртуальная память» и задайте необходимый размер. Нажмите «Задать» и «ОК» во всех открытых диалоговых окнах.

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