На хості VMWare ESXi ви можете прокинути підключений до хосту локальне USB пристрій / флешку / диск всередину віртуальної машини. Ця технологія називається USB Passthrough і доступна, починаючи з ESXi 4.1.

Припустимо, наша задача – прокинути в віртуальну машину локально підключений до хосту ESXi 6.7 зовнішній USB 3.0 диск. Доступ до диска потрібен для швидкого копіювання даних безпосередньо з ВМ на окремий USB диск.

Особливості роботи режиму USB Passthrough в VMWare

Як ви вже зрозуміли, режим Passthrough дозволяє прокинути фізичний пристрій, підключений до ESXi хосту, безпосередньо в гостьову ОС віртуальної машини. У режимі Passthrough (passing the device through) ви можете надати віртуальній машині прямий доступ до USB флешці / диску, модему, або цілком PCI / USB контролера.

Для проброса USB пристроїв в ESXi потрібні кілька основних компонентів:

  • Арбітр – окремий сервіс на сервері ESXi, який виконує сканування підключених фізичних USB пристроїв, відповідає за маршрутизацію трафіку USB пристрою між хостом і ВМ, управляє блокуванням доступу до пристрою (тільки одна ВМ може використовувати підключений USB пристрій). USB arbitrator одночасно може відстежувати до 15 USB контролерів.
  • USB контролери – USB контролер повинен бути встановлений як на фізичному хості, так і на віртуальній машині.

Щоб встановити USB контролер для ВМ на VMWare ESXi, відкрийте її налаштування і додайте новий пристрій – USB контролер (USB-контролер). У разі використання USB контролера потрібно вибрати його тип:

  • USB 2.0 (EHCI + UHCI) – контролер з підтримкою USB 2.0 і USB 1.1 пристроїв;
  • USB 3.0 (xHCI) – підтримуються швидкі пристрої USB 3.0, потрібна версія virtual hardware 8 і вище.

Режим USB 3.0 доступний починаючи з vSphere 5.5 patch 3. Для підтримки такого режиму в гостьовій ОС повинен працювати контролер xHCI. Підтримуються гостьові ОС починаючи з Windows 8.1 / Windows Server 2012 R2 і Linux з ядром 2.6.35.

віртуальна машина vmware додати usb контролер

USB Passthrough: кидок USB пристрою в ВМ на ESXi

У нативному режимі USB Passthrough ви можете підключити фізичне USB пристрій з хоста в віртуальну машину VMWare.

Основні вимоги та обмеження такого способу проброса:

  • Virtual Hardware 7.0 або вище;
  • Ви можете надати прямий доступ до USB пристрою тільки однієї ВМ;
  • Максимально кількість проброшенних USB пристроїв для однієї ВМ – 20;
  • Чи не підтримується завантаження ВМ з USB.

Після додавання віртуального USB контролера для ВМ, ви можете прокинути підключений до хосту USB диск.

  1. В налаштуваннях ВМ додайте пристрій Хост-пристрій USB та натисніть Додати;
  2. У випадаючому списку виберіть підключений USB пристрій, який потрібно додати;
  3. Для підтримки vMotion для ВМ з підключеним фізичним USB диском потрібно включити опцію “Підтримка vMotion, коли пристрій підключено”; USB Passthrough - кидок флешки в ВМ на vmware esxi
  4. Після цього USB диск повинен з’явиться всередині гостьової ОС віртуальної машини.
Є ряд обмеження vMotion для ВМ з проброшенним USB диском:

  1. Не можна виключити ВМ або поставити на паузу. При включенні такої машини її потрібно вручну смігріровать на хост, до якого підключено USB пристрій;
  2. Чи не підтримується режим DPM, тому що vCenter може вимкнути хост з USB пристроєм для економії електроенергії;
  3. ESXi хости з ВМ і фізичним USB пристроєм має бути доступні через vmk0 по порту TCP 902.

Якщо при додаванні нового USB пристрої клієнт vSphere пише, що USB пристроїв не виявлено (Немає доступних USB-пристроїв), Значить ваш USB диск не підтримує VMWare для проброса в такому режимі. Список сумісних USB пристроїв є на сайті VMWare (він не дуже великий). Дивіться секцію “Пристрої USB, протестовані на проходження від хоста ESXi до віртуальної машини в ESXi 6.7” у статті https://kb.vmware.com/s/article/1021345.

vmware USB passthrough Немає доступних USB-пристроїв

В цьому випадку ви можете з вашого ESXi хоста прокинути в ВМ USB контролер цілком.

VMware PCI Passthrough (VMDirectPath): кидок USB контролера в ВМ

Інший, менш зручний метод надання доступу з ВМ до фізичного USB пристрою – кидок цілком USB контролера з ESXi хоста. Цей режим називається VMDirectPath. Для його використання чіпсет сервера повинен підтримувати Введення-виведення Intel Directed або Технологія віртуалізації AMD I / O (AMD IOMMU), І цей режим включений в налаштуваннях BIOS / UEFI.

Якщо на сервері встановлений тільки один USB контролер, при прокинув його в ВМ, ви не зможете використовувати локально підключені USB пристрої хоста (клавіатуру, миша). В цьому випадку краще додати в сервер додатковий PCI USB контролер.

Якщо на хості є кілька USB контролерів, ви можете ідентифікувати підключене USB пристрій і номер контролера через ESXi shell. Вивести список USB пристроїв:

lsusb -v | grep -e Bus -e iSerial

У висновку команду потрібно знайти рядок USB накопичувача, наприклад:

Bus 002 Device 003: ID 0280:a00c Toshiba America Info. Systems, Inc.

Потім за номером контролера (Bus02 в цьому випадку) визначаємо root hub та його iSerial:

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub
iSerial                 1 0000:00:1D.0
Якщо ви не бачите ваш USB диск, спробуйте підключити і відключити його фізично і подивитися в балці vmkernel.log, що служба USB Arbitrator визначила ваш диск:

tail -f /var/log/vmkernel.log | grep -i USB

2019-12-03T12:06:12.546Z cpu0:33271)<6>usb 4-2: new SuperSpeed USB device number 5 using xhci_hcd
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: New USB device found, idVendor=0480, idProduct=b207
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: Product: External USB 3.0
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: Manufacturer: TOSHIBA
2019-12-03T12:06:12.570Z cpu0:33271)<6>usb 4-2: SerialNumber: 20180528012427F
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: Vendor: 0x0480, Product: 0xb207, Revision: 0x0315
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: Interface Subclass: 0x06, Protocol: 0x50
2019-12-03T12:06:12.571Z cpu0:33271)WARNING: LinScsiLLD: scsi_add_host:573: vmkAdapter (usb-storage) sgMaxEntries rounded to 255. Reported size was 65535
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb-storage 4-2:1.0: interface is claimed by usb-storage
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: device is not available for passthrough
2019-12-03T12:06:12.571Z cpu0:33271)<6>usb 4-2: usbfs: registered usb0405
2019-12-03T12:06:15.454Z cpu0:33207)<6>usb-storage 4-2:1.0: suspended

esxi vmkernel.log - лого підключення usb пристрої до хосту

Якщо USB диск не визначається ESXi хостом, перевірте що служба запущена:

#chkconfig usbarbitrator --list.

Відповідно, ми отримали номер USB контролера, який потрібно прокинути в ВМ.

  1. Щоб прокинути фізичний USB контролер, виберіть ESXi хоста, на якому запущена ваша ВМ і перейдіть в розділ Управління -> Налаштування -> Пристрої PCI -> Редагувати;
  2. У списку PCI пристроїв знайдіть і виберіть потрібний USB контролер по його ID (в моєму прикладі 00: 1D.0, контролер називається Чіпсет C610 / X99 серії USB Enhanced Host Controller # 1 Intel Corporation);
  3. Статус USB контролера повинен змінитися з Недоступний (Цей пристрій наразі недоступний для використання віртуальних машин) на Доступні (Цей пристрій доступний для використання віртуальних машин). Нати Ок. VMware USB Passthrough (VMDirectPath) кидок USB контролера
  4. Для збереження змін потрібно перезавантажити хост ESXi.
  5. Після завантаження хоста, вимкніть ВМ і додайте нове PCI пристрій (Новий пристрій -> Пристрій PCI -> Додати). У випадаючому списку виберіть ваш USB контролер (наприклад 0000: 00: 1D | Intel Corporation USB Chipset …).

    Якщо при додаванні PCI пристрої в налаштуваннях ВМ з’явилося попередження: “Попередження: Віртуальна машина не вмикається, доки резервування пам’яті не дорівнює обсягу пам’яті“, Потрібно зарезервувати пам’ять для ВМ.

  6. Увімкніть ВМ і переконайтеся, що в гостьовій ОС з’явився USB диск. У моєму випадку в гостьовій Windows Server 2012 R2 з’явився підключений USB диск “Toshiba External USB 3.0 USB Device”. кидок USB диска в віртуальну машину vmware

У режимі VMDirectPath ви можете прокинути в ВМ до двох PCI пристроїв.

На ВМ з прокинути PCI пристроєм діють ряд обмежень: ви не можете поставити ВМ на паузу (Suspend), виконати vMotion на інший хост (логічно, тому що ви прив’язані до фізичного контролера, створювати снапшоти).

Hyper-V також підтримує режим проброса фізичних USB пристроїв в ВМ.

Leave a Reply

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