admin / 21.12.2017

Hyper v powershell

Нужна ли графика для управления виртуализацией

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

Одной из самых доступных платформ виртуализации на сегодняшний день является платформа Microsoft Hyper-V. Сейчас уже используется третья версия системы виртуализации, которая может быть развернута как в бесплатной редакции — Hyper-V Server 2012 R2, так и в рамках платных редакций — Windows Server 2012 R2 Standard/Datacenter.

В случае использования Hyper-V Server 2012 R2 необходимо отдельно лицензировать только операционные системы и программное обеспечение на самих виртуальных машинах (за исключением бесплатно распространяемых операционных систем и программного обеспечения). При этом в случае покупки Standard или Datacenter редакции Windows Server 2012 R2 необходимость и в этом частично или полностью отпадает (по отношению лицензирования серверных платформ Windows).

Для управления Hyper-V можно использовать графическую консоль управления Hyper-V Manager, которую, в случае использования Core режима установки Windows Server 2012 R2, можно запускать на рабочей станции под управлением Windows 8.1

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

Неудобно не потому что разработчики создали недружелюбный интерфейс, а потому как выполнять однотипные простые действия становится скучно и утомительно, так как процесс создания новых или импорта существующих виртуальных машин превращается в рутину. Можно, безусловно, воспользоваться таким продуктом как System Center Virtual Machine Manager 2012 R2, который в первую очередь и предназначен для управления большим количеством как отдельных серверов виртуализации, так и кластерами. Но данный продукт потребует дополнительных затрат на покупку System Center 2012 R2, в состав которого и входит VMM.

Для того чтобы отказаться от этой рутины, высвободить ресурсы и повысить эффективность работы ИТ и при этом обойтись без дополнительных затрат в Windows Server 2012 R2 встроен модуль Hyper-V для PowerShell.

Для многих, в том числе и опытных администраторов, автоматизация типовых процедур через PowerShell становится непростой задачей, а создание виртуальных машин без графической оболочки может вообще привести в ступор. Но это только на первый взгляд кажется сложным.

С помощью краеугольного командлета PowerShell под названием Get-Help (рисунок 1) можно получить абсолютно всю необходимую информацию для автоматизации своей насущной задачи.

Рисунок 1- Справка в PowerShell

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

Справка PowerShell может быть выведена сжато либо подробно. Основная часть справочной информации размещена в сети на серверах компании Microsoft и при желании может быть скачена оттуда, если к командлету Get-Help добавить параметр –Online, но также можно воспользоваться локальной справкой, содержащей основные сведения по наиболее популярным командлетам, но с ограниченным количеством примеров.

Что нужно знать о виртуальной машине, чтобы создать новый экземпляр в системе? Имя (идентификатор), месторасположение файлов, размер выделенной оперативной памяти, подключение к сети и месторасположение виртуального жёсткого диска. Как это задать в PowerShell? Довольно просто! На рисунке 2 приведены параметры командлета New-Vm.

Рисунок 2- Создание виртуальной машины

В Hyper-V 3, появившемся вместе с Windows Server 2012 R2, появляется дополнительный параметр Generation (Поколение), который определяет функциональность виртуальной машины. Если виртуальные машины Поколения 1 загружались с использованием программной BIOS , подключали диски через IDE-контроллер и использовали устаревший сетевой адаптер, то машины нового Поколения 2 работают с UEFI, позволяя реализовать  безопасную загрузку, подключают VHDX диски через SCSI-контроллер, не поддерживая теперь IDE и VHD, но позволяя к работающей виртуальной машине смонтировать новый DVD-привод; также виртуальные машины нового поколения поддерживают новую версию программного сетевого адаптера, позволяющего реализовать  загрузку PXE.

Новое поколение виртуальных машин позволяет серьёзно ускорить загрузку гостевой операционной системы и расширить возможности управления в виртуальной среде, но, к сожалению, не все операционные системы могут загрузиться на виртуальных машинах Поколения 2 а только 64-разрядные версии Windows 8 и Windows 8.1, а также Windows Server 2012 иWindows Server 2012 R2. Windows 7 и Windows Server 2008 R2 смогут работать только на машинах Поколения 1. Дело в том, что новые виртуальные машины не используют программируемый контроллер прерываний (PIC), который необходим для предыдущих поколений операционных систем.

Конечно же созданием разных виртуальных машин возможности PowerShell не ограничиваются. Среди 178 командлетов модуля Hyper-V в PowerShell (рисунок 3) можно найти команды для добавления дисков, сетевых адаптеров, коммутаторов, контроллеров и других полезных для виртуальных машин объектов, также можно делать снапшоты виртуальных машин, менять сетевые интерфейсы, удалять и импортировать наборы виртуальных машин различных поколений.

Рисунок 3 — Часть командлетов модуля Hyper-V

PowerShell с модулем Hyper-V может стать верным помощником и незаменимым инструментом для администрирования виртуальной среды, ускоряя процессы управления и повышая эффективность работы ИТ, а подробнее о возможностях Hyper-V v3.0 и применения PowerShell в виртуальной среде Hyper-V можно узнать на курсе 20409: Виртуализация серверов с Windows Server Hyper-V и System Center в УЦ «Эврика»

Перенос виртуальных машин с гипервизора Hyper-V 2008 R2 в Hyper-V 2012 R2

Проблема с экспортом из Hyper-V 2008 R2 и импортом в Hyper-V 2012 R2

Симптомы проблемы

В случае, если Вы хотите перенести виртуальную машину с сервера Hyper-V 2008 R2 на сервер Hyper-V 2012 R2, у Вас возникнут проблемы: после экспорта виртуальной машины из Hyper-V 2008 R2 и копирования файлов на новый сервер, при попытке импорта в Hyper-V 2012 R2 Вы получите сообщение вида:

или

Причины проблемы

Hyper-V в 2012 R2 использует новую версию WMI 2.0 , которая не поддерживает .EXP файлы, полученные после экспорта машины Hyper-V 2008 R2, в котором используется WMI 1.0. Поэтому и решение в данном случае : копирование+импорт, т.к. импорт без экспорта виртуальной машины поддерживается на уровне Server 2012 R2 и этих .exp при импорте просто нет, поэтому всё проходит гладко).
@The namespace for version 1.0 of WMI is deprecated. Prepare to adapt scripts for a revised namespace.@
@The WMI root\virtualization namespace is deprecated. The new namespace is root\virtualization\v2.@
http://technet.microsoft.com/en-us/library/hh831568.aspx

Решение проблемы

Необходимо использовать не экспорт+импорт, а копирование+импорт. Сделайте следующее:

  1. Остановите виртуальную машину (ВМ), которую необходимо перенести.
  2. Скопируйте .XML файл, содержащий конфигурацию виртуальной машины, а также .VHD или .VHDX файлы жестких дисков виртуальной машины на новый сервер.
  3. Импортируйте виртуальную машину в Hyper-V 2012 R2
  4. Если Вы уже сделали экспорт виртуальной машины, просто удалите (или переименуйте) файл с расширением .EXP, находящейся в папке с экспортированной ВМ.

 

Рекомендации по переносу виртуальных машин

  1. Когда делаете экспорт (или подготавливаете виртуальную машину к переносу), выключив виртуальную машину, зайдите в ее конфигурацию, и переключите MAC адрес сетевой карты с динамического в статический. При этом по умолчанию в качестве статического MAC адреса будет предложен старый MAC сетевой карты.
    Это позволит не перенастраивать параметры TCP/IP в виртуальной машине после переноса, поскольку MAC адрес карты не изменится и операционная система будет считать, что сетевая карта та же самая.
  2. Вы можете (это рекомендуется Microsoft) сменить (на время переноса виртуальной машины) тип использования оперативной памяти: назначить статическое выделение RAM.

    Manage Hyper-V with PowerShell

    После импорта виртуальной машины (на новом сервере) можно снова поставить динамическое выделение RAM.

  3. Если у Вас несколько виртуальных машин на одном хосте, то иногда бывает сложно выяснить, какой .XML файл принадлежит нужной виртуальной машине: все XML файлы могут оказаться в одной папке. Ничего страшного! Скопируйте их все! При импорте виртуальной машины укажите папку с этими XML файлами, и Hyper-V 2012 R2 попросит Вас выбрать нужную виртуальную машину для импорта.
  4. При импорте (если Вы именно переносите виртуальную машину — т.е. на старом сервере она в результате будет удалена, а на новом должна быть запущена та же ВМ) выберите, каким способом производить импорт:
    1. Register the virtual machine in-place — зарегистрировать ВМ по месту с тем-же ID;
    2. Restore the virtual machine — скопировать ВМ в другую папку, ID оставить без изменения;
      Для переноса ВМ выберите этот вариант.
    3. Copy the virtual machine — скопировать ВМ в другую папку и сгенерировать для нее новый ID.
  5. Поскольку импорт (помимо всего прочего) требует копирования файлов жестких дисков, в случае больших файлов VHD(X) этот процесс хочется ускорить. С этой целью скопируйте (или переместите) VHD файл сразу в ту папку, где он должен будет находиться после импорта виртуальной машины. Затем в процессе импорта Hyper-V 2012 R2 запросит Вас, в какой папке взять файлы жестких дисков импортируемой виртуальной машины, а также куда их копировать в процессе импорта. На оба этих вопроса укажите папку, в которую Вы положили VHD файл импортируемой ВМ. То есть у Вас будет указана одинаковая папка "откуда копировать виртуальный диск" и "куда сохранять виртуальный диск".

 

При подготовке статьи использовались материалы:

Not Found Virual Machine при импорте в WS 2012 R2

Windows Hyper-V 2012 & 8.1 Hyper-V Did Not Find Virtual Machine to Import

Экспорт и импорт виртуальных машин в Windows Server 2012 R2

 

.

Работа с Hyper-V и Windows PowerShell

  • Время чтения: 2 мин
  • Соавторы

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

Получение списка команд Hyper-V

  1. Нажмите кнопку "Пуск" в Windows и введите PowerShell.
  2. Запустите указанную ниже команду, чтобы отобразить список команд PowerShell, доступных в модуле PowerShell Hyper-V.

    Отобразится примерно следующее:

  3. Чтобы получить дополнительные сведения о конкретной команде PowerShell, введите команду . Например, запустив указанную ниже команду, вы получите информацию о команде Hyper-V.

    Отобразится информация о синтаксисе команды, обязательных и дополнительных параметрах, а также псевдонимах, которые можно использовать.

Получение списка виртуальных машин

Чтобы извлечь список виртуальных машин, используйте команду .

  1. В PowerShell запустите следующую команду:

    Отобразится примерно следующее:

  2. Чтобы извлечь список только тех виртуальных машин, которые включены в данный момент, добавьте к команде фильтр.

    Фильтр можно добавить командой . Дополнительные сведения о фильтрации см. в статье Использование командлета Where-Object.

  3. Чтобы получить список всех отключенных виртуальных машин, запустите указанную ниже команду. Эта команда представляет собой копию команды, приведенной ранее (шаг 2), но только значение фильтра изменено с "Running" (Работают) на "Off" (Отключены).

Запуск и завершение работы виртуальных машин

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

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

  3. Чтобы завершить работу всех работающих виртуальных машин, запустите это:

Создание контрольной точки виртуальной машины

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

Создание новой виртуальной машины

Следующий пример демонстрирует создание виртуальной машины в интегрированной среде сценариев (ISE) PowerShell. Это простой пример.

Управление Hyper-V с помощью PowerShell

Его можно усложнить, добавив дополнительные функции PowerShell и расширенные сценарии развертывания виртуальной машины.

  1. Чтобы открыть среду ISE PowerShell, нажмите кнопку "Пуск" и введите PowerShell ISE.
  2. Запустите указанный ниже код для создания виртуальной машины. Подробные сведения о команде см. в документации по команде New-VM.

Подведение итогов и справочные материалы

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

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*