Заметки о Windows и других программных продуктах Microsoft...

Hyper-V в Windows 8.1 (часть 1)

Hyper-V в Windows 8.1 (часть 1)

Клиентская виртуализация становится все более востребованной функцией, причем не только у IT специалистов, но и среди обычных пользователей. Однако у Microsoft долгое время не было достойного решения в этой области, поэтому для клиентской виртуализации приходилось использовать сторонние приложения, такие как Oracle VirtualBox или VMWare Workstation.

Однако с выходом Windows 8, а затем и Windows 8.1 ситуация изменилась в лучшую сторону. Пользуясь тем, что восьмерка базируется на одном ядре с Windows Server 2012, в Microsoft просто взяли серверную роль Hyper-V и с минимальными изменениями перенесли ее в клиентскую операционную систему, обозвав новый функционал клиентским гипервизором (Client Hyper-V). В результате получилось очень неплохое решение для виртуализации. Об особенностях использования Hyper-V в Windows 8.1 и пойдет речь в этой и последующих статьях.

Системные требования для включения Hyper-V

Процессор

Для Hyper-V необходим 64-битный процессор производства Intel или AMD с поддержкой инструкций NX и SSE2. Процессор должен поддерживать технологии виртуализации (Intel VT-x или AMD-V), а также технологию преобразования адресов второго уровня (Second Level Address Translation, SLAT). Проверить процессор на наличие необходимых технологий можно утилитой Coreinfo от Sysinternals, процедура проверки подробно описана здесь и здесь.

Также перед включением Client Hiper-V необходимо проверить, включены ли все эти технологии в BIOS/UEFI. В некотрых случаях для их включения может потребоваться перепрошивка.

Оперативная память

Согласно рекомендациям Microsoft, для работы Hyper-V необходимо минимум 4Гб оперативной памяти. От себя добавлю, что на этом объеме ОЗУ вы сможете стартовать основную систему и запустить максимум одну-две нетребовательных к памяти виртуалки. Для более-менее комфортной работы стоит рассчитывать минимум на 8Гб ОЗУ. Максимум же ограничен только количеством слотов на материнской плате и вашими финансовыми возможностями, так как сам Hyper-V поддерживает выделение до 512Гб ОЗУ для одной ВМ.

Дисковая подсистема

Здесь официальных рекомендаций нет, но по опыту скажу, что Hyper-V предъявляет довольно серьезные требования к производительности дисковой подсистемы. Если вы планируете запускать одновременно несколько ВМ, то стоит подумать о том, чтобы выделить под них отдельный жесткий диск, либо организовать RAID.

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

Операционная система

В качестве операционной системы для Hyper-V можно использовать только 64-битные версии Windows 8\8.1, редакций Professional или Enterprise.

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

Для установки Hyper-V переходим в Панель управления -> Программы и компоненты и выбираем пункт «Включение или отключение компонентов Windows».

окно "Программы и компоненты"

 

В открывшемся окне находим пункт Hyper-V. Кроме самой платформы Hyper-V сюда входят средства для ее управления — графическая оснастка Hyper-V Manager и модуль Hyper-V для PowerShell. Раскрываем его, отмечаем  все необходимые компоненты и жмем OK.

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

 

Также все необходимые компоненты можно установить из консоли PowerShell, вот такой командой:

Еnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

Или из командной строки, с помощью утилиты Dism:

Dism /online /enable-feature /featurename:Microsoft-Hyper-V –All

В любом из вариантов установка компонентов занимает несколько минут, после чего потребуется перезагрузить компьютер.

Настройка Hiper-V

Теперь приступим к настройке, для чего нам потребуется оснастка Диспетчер Hyper-V (Hyper-V Manager). Находится он на стартовом экране, а также можно нажать Win+R и запустить оснастку командой virtmgmt.msc. Если вы планируете плотно работать с виртуальными машинами, то Hyper-V Manager стоит сразу прикрепить на панель задач.

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

Открыв диспетчер, кликаем правой клавишей на имени хоста и выбираем в контекстном меню пункт «Параметры Hyper-V».

окно Hyper-V Manager

 

Здесь находятся общие настройки гипервизора. Они не то чтобы очень важны, но пробежаться по ним все же стоит.

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

Раздел «Охват NUMA» (NUMA Spanning) — здесь включается технология неравномерного доступа к памяти NUMA (Non-Uniform Memory Access), которая управляет распределением памяти между физическими процессорами в многопроцессорных конфигурациях. Уточню, речь идет не о ядрах одного процессора, а о разных физических процессорах.

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

В Windows 8.1 появился режим расширенного сеанса, который позволяет перенаправлять устройства и ресурсы с хоста на ВМ. Соответственно в разделе «Политика расширенного сеанса» мы разрешаем использование режима расширенного сеанса при подключении к ВМ, а в разделе «Режим расширенного сеанса» указываем использовать расширенный режим в том случае, если он поддерживается операционной системой ВМ. В клиентском Hyper-V режим расширенного сеанса включен по умолчанию.

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

настройки Hyper-V

 

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

• Внешняя. Этот тип сети используется в том случае, если виртуальным машинам необходим доступ во внешнюю сеть. При этом виртуальный коммутатор привязывается к физическому сетевому адаптеру, а все виртуальные машины, подключенные к нему, имеют доступ во внешнюю сеть наравне с хостом. Имейте в виду, что при этом варианте каждой ВМ необходимо назначить IP-адрес из внешней сети;
• Внутренняя. В этом варианте виртуальные машины, расположенные на одном хосте, могут общаться между собой, а также с управляющей системой. Внутренняя виртуальная сеть не привязана к физическому сетевому адаптеру, соответственно доступа наружу из нее нет;
• Частная. Самый ограниченный вариант, в котором виртуальные машины могут общаться только друг с другом, связи с внешней сетью и хостом у них нет. Частные виртуальные сети используются в том случае, если необходимо полностью изолировать ВМ от внешнего сетевого трафика.

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

Итак, для создания нового виртуального коммутатора надо выбрать его тип и нажать кнопку «Создать виртуальный коммутатор».

настройки сети Hyper-V

 

Затем даем коммутатору внятное имя, также можно добавить краткое описание.

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

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

Ну и если у вас в сети используется разбиение на логические подсети (Virtual Local Area Network, VLAN), то для виртуального коммутатора, подключенного к внешней сети, можно разрешить использование VLAN и указать VLAN ID. Соответственно все ВМ, подключенные к этому коммутатору, будут находиться в указанной подсети.

настройка виртуального коммутатора Hyper-V

 

Дополнительно, перейдя в раздел «Глобальные параметры сети» можно задать диапазон MAC-адресов, которые будут динамически назначаться виртуальным машинам. Это может потребоваться в корпоративной сети, чтобы диапазоны MAC-адресов не пересекались.

настройка диапазона MAC-адресов

 

Как видно из примера, я создал 3 виртуальных коммутатора — External, Internal и Private, по одному для каждого типа сетей. Если если теперь в зайти в сетевые подключения, то можно увидеть любопытную картину.

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

Для внутренней сети создан виртуальный адаптер Internal, которому автоматически назначается адрес APIPA (169.254.xxx.xxx). С помощью этого адаптера управляющая система может общаться с виртуальными машинами.

Ну а частной виртуальной сети не требуется виртуальный сетевой адаптер в управляющей операционной системе.

войства сетевого адаптера

 

И еще, стоит упомянуть о таком немаловажном моменте, как права на управление гипервизором.

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

группа для управления Hyper-V

 

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

 
 
Комментарии

спасибо, было интересно

День добрый. Спасибо за статью, приятно почитать. Но столкнулся с проблемой, по которой гугл молчит. Устанавливаю компоненты Hyper-V. Создаю виртуальную машину. Первый запуск, установка системы — полет нормальный. После перезагрузки системы (основной) пытаюсь запустить VMConnect или просто подключится к виртуальной машине через Диспетчер Heper-V, но ничего не происходит. Открывается окно подключения VMConnect и через долю секунды исчезает. Такое впечатление, что какая то служба блокирует VMConnect. Если сразу после прогрузки рабочего стола, быстро нажать на «Подключение к виртуальной машине Hyper-V», то окно подключения активно около 3 секунд… пока опять же не загрузится (или наоборот остановится) какая то служба… может кто сталкивался?

Попробуйте запустить vmconnect.exe напрямую, с правами администратора. Утилита находится в C:\Windows\System32. Отключите на время антивирусы\файерволы, возможно запуск vmconnect блокируют они.
Ну и полезно будет посмотреть системные логи Windows на предмет ошибок и предупреждений.

Игорь

Похоже себя ведёт VirtualBox на Windows 10(на других не пробывал). Запуск со 2-го, 3-го пинка.

Да в том то и дело, что логи пусты… антивирусов нет, файерволов тоже… Запускаю естественно с правами админа… всю голову сломал уже… Причем может нормально загрузится единожды, при смене например пользователя или перезагрузке системы… и потом опять тоже самое… ни как не найду от чего зависит

Управление ВМ из диспетчера (запускать, останавливать) доступно?
Сама ВМ нормально стартует, загружается?
С другими ВМ такая-же ситуация?

Да, сами ВМ работают нормально из диспетчера все доступно.

Не хватило терпения разобраться… переустановил винду… проблема ушла… скорее всего проблемы были с дравами NVidia… ИМХО… Спасибо за советы и внимание.

Доброго времени суток, у меня такой вопрос: при создании коллекции, все проходит нормально, но в конце, когда идет экспорт рабочего стола в папку (корневую), создает 2-3 папки, а потом радостно сообщает Invalid parametr и конечно-же не создает коллекцию. Если можно, подскажите, что может быть

О какой коллекции идет речь?

Отличная статья,главное понятно и пошагово

Обязательным условием наличия оснастки Hyper-V в Windows 8.1 является ее версия (только в Pro и Enterprise). Поэтому, владельцы большинства современных ноутбуков (win 8 домашняя для одного языка) лишены этого удавольствия.

Неплохо бы это внести в текст поста

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

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

P.S.
Хост и виртуалка на одном физ. порту, у хоста один внешний IP, у виртуалки другой (тоже внешний). Тип сети у них «внешняя».

А с самой виртуалки доступ наружу есть?
Если да, то стоит проверить настройки файерволла.

Нет, из виртуалки наружу тоже нет. 🙁
Если с хоста пинговать виртуалку — пингуется. Виртуалка тоже пингует хост. Но дальше — никак ни в нее, ни из нее.
Брандмауэр отключал (хотя рискованно) — не помогает.

Только что перепробовал разные подключения, сети (в т.ч. отключая хост от сети), разные виртуалки (разные ОС!) — ни с одной нет доступа наружу. Т.е. ставлю в виртуалке внешний IP подключаю внешнюю сеть — доступа нет. К хосту есть.
Хоть приблизительно понять бы где это настраивается. Ковырял брандмауэр, политики, — ничего не нашел.

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

Kirill
Спасибо за помощь, но все оказалось просто — у провайдера привязка по одному MAC.
Несколько дней потратил изучая виртуальные свичи, пока не догадался запустить снифер и стало все ясно.

Прошу прощения за назойливость, но посоветуйте как мне теперь быть в этой ситуации?
Получается два IP на одном MAC. Мне надо один IP отдать хосту c Hyper-V, а второй IP — виртуальной машине с роутером в виртуальную сеть и пробросом портов на разные виртуалки.
Насколько я понимаю, если сделать двойной NAT (на хосте и на шлюзе-виртуалке), то будет теряться статистика по внешним IP. Может быть можно на физ. интерфейсе сделать один IP «прозрачным»? Или как-то настроить виртуальный коммутатор Hyper-V?

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

Взял небольшую сеть адресов и проблема отпала.
Но вывод из этой истории такой — жаль что эту проблему нельзя решить стандартными средствами.

При создании ВМ выдает ошибку «Hyper-v обнаружена ошибка при настройке сети» и когда захожу в диспетчер комутаторов пишет «произошла ошибка при попытке получения списка виртуальных комутаторов»

здравствуйте. такая проблема, при создании виртуального коммутатора, ставлю галочку частная сеть, сохраняю, подтверждаю. сначала идёт применение, потом синий экран с ошибкой PAGE_FAULT_IN_NONPAGED_AREA, код 0х00000050. дамп указывает на файл tcpip.sys. в чём может быть причина?

Вариантов много — проблемы с драйверами, в системе завелся вирус, несовместимость с каким либо ПО, аппаратная неисправность и т.п. А другой тип коммутатора (не частный) удается создать?