Одним із суттєвих недоліків Hyper-Vперед іншими гіпервізорами (наприклад, ESXi або Proxmox) є відсутність повноцінної можливості прокидати USB пристрої з хоста в віртуальні машини. Починаючи з версії Hyper-V 2012 R2 з’явився ряд змін, що стосуються можливостей USB Passthrouth, однак цей функціонал все ще поступається можливостям конкурентів. У цій статті ми розповімо про особливості проброса USB пристроїв в Hyper-V.

Особливості USB Passthrough в Hyper-V

під терміном USB проходження розуміється можливість проброса USB пристрої з хостового гипервизора (або по мережі з іншого сервера / пристрої) в віртуальну машину. За допомогою USB passthrough ви можете прокинути всередину ВМ токен, USB ключ, модем або будь-яке інше обладнання, підключене через USB порт.

Погана новина в тому, що в Hyper-V немає нормальної підтримки проброса USB пристроїв, ви не зможете прокинути будь-який USB пристрій з фізичного хоста в віртуальну машину (в VMWare з цим на порядок краще – див. Статтю USB passthrough в VMWare ESXi). Є кілька вбудованих можливостей використання USB пристрою в Hyper-V, але у всіх них є істотні обмеження. На даний момент можна використовувати такі технології для проброса USB пристрою в Hyper-V.

  • Проброс USB дисків з хоста Hyper-V;
  • Розширені можливості консолі Hyper-V – Enhanced Session Mode;
  • Проброс USB пристрою через RDP сесію;
  • Використання програмного / апаратного кошти для проброса USB по мережі (USB over IP).

Останній сценарій передбачає використання сторонніх рішень для реалізації USB over IP. Це може бути мережевий USB хаб, програмне рішення по прокинув USB пристрою через TCP / IP мережу з іншого сервера. Більшість популярних комерційних рішень – платні (AnywhereUSB, DigiUSBAW). З безкоштовних можна відзначити VirtualHere USB (безкоштовна для одного ключа і одного сервера) і досить старий opensource проект usbip.sourceforge.net (серверна частина реалізується на Linux, на Windows ставиться клієнт).

Проброс USB диска в віртуальну машину Hyper-V

Ви можете досить просто прокинути підключений до хосту USB диск безпосередньо всередину будь-якої запущеної віртуальної машини Hyper-V. Розглянемо, як надати віртуальній машині Hyper-V прямий доступ до USB диску.

  1. Підключіть зовнішній USB диск до хосту Hyper-V (це може бути як будь-який хост з Windows і встановленої роллю Hyper-V, так і Free Hyper-V Server). Диск з’явиться в системі і йому буде призначена буква диска (якщо буква диска не призначили, див. Статтю);
  2. Відкрийте консоль управління дисками Управління дисками (diskmgmt.msc) На хості Hyper-V. Клацніть правою кнопкою миші по диску (ліва колонка, в нашому прикладі USB диск розміром 20 Гб має ідентифікатор Disk 1) і виберіть Офлайн. перевести usb диск на хості hyper-v в офлайн
    Якщо у вас використовується Windows Server Core або Hyper-V Server, в яких відсутні деяких графічні оснащення, ви можете управляти локальними дисками за допомогою PowerShell модуля управління дисками. Наступні команди можуть вивести список фізичних дисків на хості і перевести вказаний диск в режим offline:Get-Disk
    Get-Disk -Number 1 |Set-Disk -IsOffline:$true
    powershell перевести usb диск в оффлайн
  3. Запустіть консоль Hyper-V Manager. Відкрийте властивості віртуальної машини, в яку ви хочете прокинути USB диск. Додайте новий диск в розділі Контролер SCSI. Вкажіть, що це фізичний диск (Фізичний жорсткий диск). У випадаючому меню виберіть ваш USB диск (він буде виглядати якось так: Disk 1 20.00 Gb Bus 0 Lun 0 Target 1).

    Примітка. Не потрібно вимкнути віртуальну машину при додаванні SCSI жорсткого диска. Для SCSI пристрої підтримується гаряче додавання і видалення дисків (hot-add і hot-remove).

    кидок USB диска в віртуальну машину hyper-v

  4. Тепер покажемо, як отримати доступ до USB диску на Hyper-V хості з гостьової ОС віртуальної машини на прикладі Windows. Відкрийте консоль віртуальної машини або підключіться до неї по RDP (як включити rdp). Авторизуйтесь в гостьовій ОС. Запустіть диспетчер дисків. ОС повинна побачити новий диск. Якщо він знаходиться в оффлайн статус, клацніть по ньому прово кнопкою і виберіть Інтернет. На даний момент розділах на диску не призначені літери дисків або точки монтування. Щоб виправити це, клацніть ПКМ по розділу на диску і в контекстному меню виберіть Змінити букву та шляхи руху. Призначте розділу будь-яку вільну букву диска або вкажіть точку монтування. змінити букву usb диска

Усе! Ви безпосередньо прокинув зовнішній USB диск всередину віртуальної машини Hyper-V і можете його використовувати.

Важливо. Для запобігання втрати даних, перш ніж фізично витягти жорсткий диск з USB порту хоста Hyper-V, переконайтеся, що використовується жодною програмою всередині віртуальної машини до цього диску не звертаються.

Для безпечного вилучення USB диск можна відкрити консоль Менеджер Hyper-V і перейти в вікно налаштувань віртуальної машини. В розділі Контролер SCSI виберіть жорсткий диск, який потрібно видалити і натисніть Видалити. Збережіть зміни. Після цього жорсткий диск можна фізично витягти з USB порту хоста Hyper-V.

Проброс USB пристроїв через Enhanced Session Mode в Hyper-V

У версії Hyper-V, представленої в Windows Server 2012 R2 / 8.1 практично будь-які USB пристрої можна прокинути всередину віртуальної машини за допомогою технології Покращений режим сеансу (ESM). Для підключення використовується утиліта Hyper-V Manager vmconnect.exe. Вона дозволяє підключиться до консолі віртуальної машини і вибрати USB пристрої, які потрібно прокинути.

Спочатку потрібно включити Enhanced Session Mode в настройках сервера Hyper-V. Це можна зробити за допомогою PowerShell:

Set-VMHost -EnableEnhancedSessionMode $true

Або в меню Hyper-V Settings -> Enhanced Session Mode.

включити Enhanced Session Mode в hyperv

Перезапустіть службу Hyper-V Virtual Machine Management:
Get-Service vmms | Restart-Service

У розділі Integration Services налаштувань ВМ потрібно включити опцію Послуги для гостей.

Для проброса USB пристрою через Enhanced Session Mode потрібно запустити консоль Hyper-V, вибрати ВМ і натиснути Підключіться. Або ви можете запустити утиліту vmconnect.exe (Virtual Machine Connection), вказати Hyper-V сервер і ім’я ВМ (утиліта підтримує деякі параметри командного рядка, тому ви можете віддавати користувачам налаштований bat файл).

утиліта підключення до консолі віртуальної машини vmconnect.exe (Virtual Machine Connection)

Їли ВМ підтримує Enhanced Session Mode, з’явиться вікно, схоже на властивості RDP підключення. Натисніть Show Option -> Local Resources -> Local device and resources -> More.

настройки підключення до ВМ на hyper-v

Виберіть USB пристрою на вашому комп’ютері, яке потрібно прокинути в ВМ. Якщо пристрої, яке вам потрібно, зараз не підключено, виберіть опції Інші підтримувані пристрої Plug and Play (PnP) і Пристрої, які я підключаю пізніше.

кидок usb пристрою в віртуальну машину hyper-v через enhanced session mode

Тепер всі підключені до вашого комп’ютера USB пристрої будуть автоматично доступні в консольної сесії віртуальної машини Hyper-V.

Основні можливості і обмеження Enhanced Session Mode

  • В якості гостьових ОС підтримується тільки Windows (починаючи з Windows 8.1 / Windows Server 2012 R2);
  • Вам не потрібен прямий доступ до ВМ. Всі підключення виконуються через Hyper-V хост (ви підключаєтеся до нього через мережу по порту TCP 2179), а підключення до ВМ виконується через шину VMBus;
  • На комп’ютері користувача повинен бути встановлений Hyper-V Manager
Даний метод схожий на можливість проброса USB пристроїв через RDP сесію. Ми не розглядатиме його докладніше. кидок usb через rdp

Методи проброса USB пристрою через мережу (USB over IP або в RDP сесії) дозволяють зберегти доступ до USB ключу при міграції віртуальної машини на інший хост (Hyper-V Live Migration / vMotion).

Leave a Reply

Your email address will not be published. Required fields are marked *