Hyper-v в windows: руководство по созданию и настройке виртуальных машин

Какая разница между поколениями машин

Впервые машины поколения 2 появились в реализации Hyper-V в составе Windows Server 2012 R2. Эту особенность унаследовали все серверные версии-последовательницы. И в реализации с такой особенностью Hyper-V был поставлен в отдельные выпуски клиентской Win8.1, а потом перекочевал и в отдельные выпуски Win10. Существовавший до этого стандарт машин был назван поколением 1, стандарт новый же стал называться, соответственно, поколением 2. Главное отличие машин нового стандарта – они работают на базе эмуляции базовой прошивки BIOS UEFI и полностью подчиняются её правилам. Это значит, что на такие машины можно установить только UEFI-совместимые системы, соответственно, 64-разрядные Windows 8.1, 10, Ubuntu, серверные их аналоги. Эти системы могут быть установлены на виртуальные диски со стилем разметки GPT, и мы сможем использовать все вытекающие отсюда преимущества. Для машин поколения 2 реализована эмуляция протокола безопасной загрузки, как и в настоящей среде UEFI.

Из преимуществ машин поколения 2 над поколением 1:

— Подключением загрузочных виртуальных дисков через современный контролер SCSI (вместо устаревшего IDE);- Лучшая интеграция гостевой ОС и хоста;- Лучшая безопасность;- Расширенный сеанс подключения с использованием возможностей RDP-технологии, предусматривающий выбор любого разрешения экрана, поддержку нескольких дисплеев, работу звуковых устройств в среде гостевой ОС, двусторонний обмен данными, подключение с хоста принтеров, устройств информации и прочей периферии.

Поколение выбирается на одном из первичных этапов в процессе создания машины.

И не может быть изменено впоследствии. Единственный способ смены поколения – конвертирование стиля разметки диска машины, создание его бэкап-образа и развёртывание на новой машине нужного поколения. Windows 7, несмотря на то, что во многих случаях на физических компьютерах может быть установлена при отключённой безопасной загрузке, но активном режиме BIOS UEFI, на машину поколения 2 Hyper-V установлена не может быть ни при каких условиях.

Многие особенности машин поколения 2 Hyper-V вытекают из эмуляции UEFI.

Windows Hyper-V client

In this section, we’ll cover how to enable Windows 10 Hyper-V client for Hyper-V USB passthrough. Users can virtualize their local resources (such as USB ports and hard drives) when connecting their Hyper-V virtual machine, and a host computer using Remote Desktop Protocol(RDP).

Users can also permit device access to guest operating systems as well.

The RDP option is a great method for anyone using a Windows OS configuration. Users can find their Windows 10 Hyper-V USB passthrough feature within Remote Desktop Connection—under the “Client options”.

Follow the steps below:

When operating the host machine:

Step 1: Hit Win+R to open the “Run” window.

Step 2: Type “gpedit.msc” within the window—which will open the computer’s group policy settings.

Step 3: Navigate as follows:

Computer configuration > Administrative templates > Windows Components > Remote Desktop Services > Remote Desktop Connection Client > RemoteFX USB Device Redirection.

Step 4: Choose the available GPO (there should only be one) and enable it—this alters the access right to “Administrators and Users”.

When operating the Virtual Machine(VM):

Step 1: Hit “Win+R”.

Step 2: Type “gpedit.msc” and hit “Enter”—users can follow the same process via PowerShell (poweshell.exe).

Step 3: Navigate as follows:

Computer configuration > Administrative templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Device and Resource Redirection.

Step 4: Choose GPO «Do not allow supported Plug and Play device redirection» and disable it to use PnP devices on a Virtual Machine.

Step 5: Reboot both computers.

From here, users can easily redirect any device to their Virtual Machine(VM). Once the user connects, a third icon will appear beside the Connection icon. Hit the icon to choose any local device for redirection to a VM.

Passthrough USB in Hyper-V with Enhanced Session Mode

An Enhanced session is a special mode that allows users to link their VMConnect.exe app with a VMBus component on a host computer. In its most simplistic terms, enabling Enhanced Session mode allows the “guest” OS to instantaneously access all local devices (such as SCSI controllers, USB dongles, and so on.)

This is also possible via USB redirection using an Ethernet connection. Users can access both the devices attached to the host, as well as devices connected to other machines sharing the same network.

Enhanced Sessions are integral in numerous situations where VMs must communicate with local resources without having access to network connectivity.

Below are a series of examples where Enhanced Sessions are beneficial:

  • Printing Capabilities: Users can transmit files directly from a VM to a local printer
  • Authentication Efficiency: Enhanced Sessions allow users to log into VMs using their smart card and a local USB dongle or USB card reader
  • Debugging Support: Enhanced Sessions can help remedy numerous VM-related problems without a network connection

Additionally, software and hardware developers love using Hyper-V USB passthrough—especially with Windows-compatible products. Enhanced Session mode even improves the speed and ease of USB app testing and debugging while using a VM.

Улучшенная безопасность

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

Создание внешнего коммутатора vSwitch

Мастер создания предлагает вам выбор нескольких настроек при создании внешнего vSwitch.

  1. Можно выбрать нужный физический сетевой адаптер, если подходящих vSwitch у вас несколько.
  2. Опция Allow management OS to share this network adapter(Разрешить управляющей операционной системе создавать общий доступ к этому сетевому адаптеру) по умолчанию включена. Отключение этой опции лишит ОС гипервизора возможности сетевого подключения. Будьте осторожнее при создании vSwitch удаленно. Это может полностью разорвать соединение с удаленным хостом.
  3. SR-IOV(Single Root I/O Virtualization) (Виртуализация ввода-вывода с единым корнем) позволяет подготовить такую конфигурацию, которая может увеличить пропускную способность сети путем перенаправления трафика напрямую в ВМ в обход коммутатора vSwitch. Информация о включении опции SR-IOV доступна здесь. Необходимо учесть несколько аппаратных и системных требований: совместимость BIOS, поддержка SLAT процессором и сетевой картой SR-IOV PCIe в вашей системе. Убедитесь заранее, что вы знаете, что делаете.ПРИМЕЧАНИЕ: Вы не сможете включить опцию SR-IOV для существующего коммутатора vSwitch.
  4. VLAN ID: Эта настройка разрешает создание виртуальной локальной сети (VLAN) в управляющей ОС. Верно это и для физической среды, настройка позволяет выделить трафик гипервизора путем предоставления отдельных широковещательных доменов внутри единой сети.

Рис. 3. Создание внешнего коммутатора vSwitch

Нажав кнопку Apply (Применить), будьте готовы потерять возможность физического сетевого подключения на время, пока среда Hyper-V выключит физический сетевой адаптер, настроит коммутатор vSwitch и заново их включит:

Рис. 4. Предупреждение при создании внешнего vSwitch

Процедура создания внутреннего и частного коммутатора vSwitch аналогична, хотя некоторые настройки, такие как общий доступ к сети и SR-IOV будут недоступны и выделены серым цветом, что связано с самим характером этих коммутаторов.

Рис. 5. Создание внутреннего коммутатора vSwitch

ПРИМЕЧАНИЕ: Возможна автоматизация процедуры с помощью скрипта PowerShell, как и в случае других административных операций Windows 2012 R2. Полный синтаксис скрипта нуждается в проверке на сайте TechNet, но несколько примеров скриптов PS приведено ниже.

ПОДСКАЗКА: Не забудьте запустить консоль PowerShell с повышенными правами.

Следующая команда создает внешний коммутатор vSwitch для сетевого адаптера “Ethernet”:

Следующая команда создает внутренний коммутатор vSwitch:

Тип коммутатора vSwitch определяется параметром “-SwitchType «Internal/Private» или в случае внешнего vSwitch одним из следующих параметров: “-NetAdapterName «имя физического сетевого адаптера» / -NetAdapterInterfaceDescription «описание физического сетевого адаптера»”.

Создав коммутаторы vSwitch, вы можете их использовать в настройках сетевого подключения ваших ВМ.

Рис. 6. Мастер создания новой ВМ

ПОДСКАЗКА: Проверьте, к какому из всех vSwitch подключены ваши ВМ, с помощью команды:

Get-VMNetworkAdapter -VMName *

Безопасная загрузка

Реализация протокола безопасной загрузки (возможно, более известен он в англоязычном наименовании как Secure Boot) для машин поколения 2 – это возможность работы в виртуальной среде в приближённых к реальным условиям UEFI-компьютеров. Этот протокол обеспечивает запуск на компьютерах только сертифицированного программного обеспечения во избежание заражения вредоносным кодом. Но не всё самозагружаемое программное обеспечение, не несущее нам никакой угрозы, сертифицировано, и в отдельных случаях этот протокол становится препятствием для работы с нужными нам LiveDisk’ами. По умолчанию этот протокол активен на машинах поколения 2. Но, как и на реальных UEFI-компьютерах, его можно отключить. Делается это в параметрах машины, нужно просто снять галочку его активности и сохранить изменения.

Советы по использованию Hyper-V

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

Используйте RDP для подключения к виртуальным машинам.

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

Если вы планируете регулярно использовать RDP для подключения к различным виртуальным машинам, закрепите программу на панели задач. Тогда в списке переходов будет сохраняться список машин.

Будьте внимательны со снимками

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

Александр Косивченко (MVP по виртуализации) подробно, хотя и несколько сумбурно, описал принцип работы снимков Hyper-V на Хабре.

Используйте импорт виртуальных машин при необходимости

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

Оглядевшись в оснастке, я увидел опцию импорта и моментально восстановил машину.

Причем я даже не подозревал, что выполненные мною действия стали возможны лишь за счет появления новой возможности в Hyper-V :)

Method 3: Enhanced Session Mode USB Connectivity

The last method is the most reliable but also has the most restrictions. Enhanced Session Mode was introduced with the 2012 version of Hyper-V and was included with Windows 8’s Client Hyper-V. This technology merges many of the session technologies of RDP into the VMConnect.exe application. If that application name doesn’t ring any bells, Hyper-V Manager and Failover Cluster Manager invoke it when you use the Connect menu item.

Initiating VMConnect

You can also run it directly just by executing vmconnect.exe at a prompt (elevation is typically required).

Simply, VMConnect is Hyper-V’s console application. Like physical systems in a datacenter, Hyper-V virtual machines can run whether you have attached a console or not. Hypervisor console applications provide at least keyboard, video, and mouse functionality. Mature Type 2 hypervisors tend to have very robust consoles. Hyper-V’s client application has not had nearly as much time to develop, so it taps into features of the Remote Desktop client to bring you Enhanced Session Mode.

How to Enable Enhanced Session Mode

Client Hyper-V installations automatically enable Enhanced Session Mode. For the server SKUs, you need to enable it manually. Afterward, you need to restart the Hyper-V Virtual Machine Management service (vmms). The quickest way is with PowerShell:

Set-VMHost -EnableEnhancedSessionMode $true

That cmdlet includes the -ComputerName parameter if you’re running it remotely.

If you prefer Hyper-V Manager:

  1. Right-click on the host in the left pane. Click Hyper-V Settings.
  2. In the left-side tabs, click Enhanced Session Mode Policy.
  3. Check the box for Allow enhanced session mode and click OK.

It is not necessary to enable the Guest services integration service just to enable USB redirection.

How to set USB Options for Enhanced Session Mode

Because Enhanced Session Mode is based on RDP technology, you’ll see familiar settings. Follow these steps to setup USB redirection for a guest:

  1. Upon connecting to a virtual machine that can support Enhanced Session Mode with vmconnect.exe, you’ll be shown the following dialog, where you’ll click Show Options:

  2. Just as it does with mstsc.exe, this will cause the dialog to expand. Choose the Local Resources tab:

  3. Click More. You’ll be presented with the following dialog:

  4. Any USB devices that you have will appear under the Other supported Plug and Play (PnP) devices branch. You can check those, as well as the Devices that I plug in later box to cover any additional USB devices.

I didn’t show it, but there is a checkbox on the first screen after clicking Show Options that allows you to save these settings for the current virtual machine.

Pros of Enhanced Session Mode

  • Works across the VMBus, so it can be extremely fast. Still limited by network speed when vmconnect.exe is used against a remote host.
  • Works with Client Hyper-V
  • Does not require network connectivity directly to the guest, only to the host

Cons of Enhanced Session Mode

  • Same cons as the RDP option, listed above, with the exception of the item about network connectivity to the guest operating system
  • Requires Windows 8/Windows Server 2012 or later as the host and guest operating system (or Hyper-V Server 2012 or later as the host)
  • Windows/Hyper-V Server hosts must each be configured to allow Enhanced Session Mode against guests
  • Each guest must be configured per connecting user
  • If drivers are necessary, they’ll need to be loaded into the guest
  • VMConnect requires sufficient privileges against the host, not just the guest. With AzMan being deprecated in 2012 and removed in all later versions, that means at least Hyper-V Administrators membership unless you have access to System Center Virtual Machine Manager
  • Network connectivity between the system that is physically hosting the USB device and the Hyper-V host running the target guest; TCP port 2179 must be opened. If you’ve opted to leave your Hyper-V host out of the domain for whatever reason, there might be additional necessary steps.

Enhanced Session Mode is best used with Client Hyper-V, and is the closest that you’ll get to the capabilities found in type 2 hypervisors. Remember that it is based on RDP technology, therefore it is not truly “passing through” the USB device. You may find that some devices don’t work as well as they do with type 2 hypervisors; others may not work at all.

Note: This article was originally published in August 2016. It has been fully updated to be relevant as of September 2019.

Was this helpful?

Do you want to become a member of Altaro Dojo?

Что такое виртуальный коммутатор в среде Hyper-V?

Hyper-V vSwitch — это программно-определяемый коммутатор трафика сети Ethernet, работающий на канальном уровне (layer-2). С его помощью сетевые администраторы могут подключать ВМ как к физическим, так и к виртуальным сетям. Он доступен по умолчанию при установке Hyper-V Manager и содержит улучшенные средства обеспечения безопасности и отслеживания системных ресурсов. Как и в случае других возможностей среды Hyper-V, в состав каждой новой версии Hyper-V входит улучшенная версия vSwitch. В настоящее время коммутатор vSwitch считается очень надежным, но в него продолжают вносить улучшения. Например, в среде Hyper-V 4.0 (той, что в Windows 2012 R2) предусмотрено множество возможностей для внутреннего изолирования и защиты сети от вредоносных ВМ.

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

Hyper-V vs. VirtualBox

Разбираясь с Hyper-V, я невольно сравнивал решение Microsoft для клиентской операционной системы с Oracle VirtualBox.

VirtualBox не имеет столь жестких аппаратных требований, а его графические возможности даже шире, поскольку имеется поддержка аппаратного ускорения 3D (хотя я никогда ей не пользовался).

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

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

Method 1: Network-Based USB Solutions

If you need to make a USB device available in your virtualized datacenter, I prefer network-based solutions. Years ago, I used a product sold by Digi. This is not an endorsement per se because I only ever used the one device and have not used any of their current technology, but they’re still around so they must be doing something right. Remember that USB hubs, not ports, match up with operating systems at a one-to-one ratio. Don’t buy a single device with a lot of ports and expect to connect lots of virtual machines.

USB Over Network

Pros of network-based USB hubs:

  • Can remain connected to their assigned virtual machine no matter where it moves and whether or not anyone is logged in, provided network connectivity remains constant
  • Allows for concentration and management of networked USB devices in administrator-defined locations. For instance, you might purchase a rack shelf and use it to hold all of your network USB hubs, all connected to a switch provisioned just for connecting those devices.
  • A perfect solution for nuisance devices such as licensing dongles.
  • Widest range of host and guest operating system support.

Cons of network-based USB hubs:

  • A 1-to-1 ratio of hubs to virtual machines often means purchasing many empty USB slots
  • Gigabit Ethernet is much slower than USB 3+
  • Unless your wiring, addressing, routing, and firewall infrastructure allows for it, you may not be able to provide physical device access to end-users
  • Drivers for the network-connected USB hub must be available for your guest operating system, as well as for the USB devices plugged into it
  • The guest must be connected to the network (could be a limiting factor for VMs that you wish to be isolated)

What I want to make most clear with this technique is that the virtual machine connects to the USB hub via TCP/IP. Hyper-V has no part in it beyond providing fundamental network connectivity via the virtual switch.

Hyper-V Cannot Passthrough Non-Disk USB

I often read complaints that Hyper-V cannot perform passthrough operations for USB devices. The complaint typically accompanies a negative comparison to applications such as VMware Workstation and Oracle VirtualBox, which can perform USB passthrough. The very sharp distinction to be made here is that Hyper-V is a type 1 hypervisor whereas the products that provide simple USB passthrough are type 2 hypervisors. In a type 2 hypervisor, the management operating system is installed directly to the hardware and the hypervisor is just another application that runs within it. Applications have the ability to exclusively capture a USB port to prevent other applications from using it if they like; this is why it’s so easily done in a type 2 hypervisor. If you’ve ever used a type 2 hypervisor in this way, you’ll notice that they explicitly tell you that the USB device can be attached to the parent or a guest — there’s no sharing or divvying up resource access or anything of the sort.

Type 1 hypervisors are not applications. They are kernels firmly entrenched within partitions. A type 2 hypervisor is essentially an application shim that is pretending to provide a root hardware device, which is fine because it doesn’t require the same degree of isolation as a type 1 hypervisor. Hyper-V can’t do this because one operating system instance locking a USB port from all other operating system instances is just not how type 1 virtualization works. Could there be a way for a type 1 hypervisor to assign a USB port to a specific guest by doing the same thing that a type 2 does? I don’t know. In theory, it sounds like something that could be done. But, technological feasibility is beside the point. Hyper-V doesn’t do it. If you want more information, Microsoft has published a thorough article regarding passing through hardware on the 2016 platform that describes some of the challenges and possibilities.

If true USB passthrough is a requirement for whatever you’ve got in mind, then Hyper-V is a poor solution. If you’re using the emulators in Visual Studio, you’re sort of forced into it. For most everyone else, I’d say to turn your eye to a type 2 hypervisor. I personally like VirtualBox. It’s not perfect by any stretch, but the licensing terms are favorable for most and it gets the job done.

All of that said, it is entirely possible to use USB devices inside a Hyper-V guest, even Client Hyper-V.

Note: a fourth option not explored in this article is software-based solutions. I’ve never personally used any, which is why they’re not in the text. Check the comments section, though. Reader Tim has suggested one such application and recounted his own experiences with it.

Опрос

Я познакомился с виртуальными машинами в 2004 году, когда начал заниматься автоустановкой Windows. С тех пор они стали неотъемлемой частью моей повседневной работы, включая тестирование системных настроек, программ и т.п.

Я хочу поблагодарить Дениса Дягилева за помощь в подготовке этого материала. Одним из преимуществ программы MVP является знакомство с лучшими специалистами по технологиям Microsoft. Это означает, что в частном порядке можно получить грамотную консультацию по любому вопросу ;)

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

Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.

Server-side Hyper-V USB passthrough (SCSI controller)

A user cannot access USB peripherals attached to a local PC while working in Hyper-V virtual machine. To resolve this challenge, you need to either resort to the help of some dedicated third-party tools or look for a workaround among features of your host OS.

SCSI (Small Computer System Interface) controllers give virtual machines access to SCSI disks. From a virtual SCSI controller a maximum of 64 devices can be supported. Multiple disks attached to a single controller will provide optimal performance. Here we will let you know how to how to install a USB drive as a virtual hard drive:

  1. Right-click on your Hyper-V server, choose New > Hard Disk, or do the same from Actions menu; follow the instructions.
  2. When prompted enter a name for your drive, click Next.
  3. Choose ‘Copy the content of the specified physical disk’ and enter the details to identify the disk. Copying the content of the removable storage and creating the USB.vhd file might take a while, it depends on its size. The amount of free space does not matter, a vhd file is created with the entire size of the removable storage.
  4. Choose Settings on your virtual machine, select SCSI Controller – see the left pane; select Hard drive – see the right pane, click Add.

  5. Click Browse and choose to open the vhd file to which you mounted your removable storage. Your removable storage should be displayed as a drive.

If ‘My Computer’ does not show it as a removable storage, it might be because the drive is offline. To check it, go to your VM, right-click Computer, choose ‘Manage’ or ‘Administrative Tools’ and go to Computer Management.

Expand Storage and select Disk Management. Red arrow icon means that the disk is offline, right-click the disk and in the context menu displayed select Online. Once your disk gets Online status, a drive letter will be assigned to it.

There are certain drawbacks to this method: you will have to reproduce the entire actions sequence for each USB drive connected to your Hyper-V virtual environment. As we already mentioned, creating a vhd file might consume some time, it directly depends on the size of your USB disk.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
DS-сервис
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: