USB пренасочване на USB флаш памети / устройства към виртуална машина на VMWare ESXi

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

Да предположим, че нашата задача е да препратим външно USB 3.0 устройство, локално свързано с хоста на ESXi 6.7, във виртуална машина. Достъпът до диска е необходим за бързо копиране на данни директно от VM на отделно USB устройство.

Съдържание:

  • Характеристики на USB Passthrough режима в VMWare
  • USB Passthrough: Препращане на USB устройство към VM на ESXi
  • VMware PCI Passthrough (VMDirectPath): probros USB контролер в VM

Характеристики на USB Passthrough режима в VMWare

Както вече разбрахте, Passthrough режимът ви позволява да препращате физическо устройство, свързано с ESXi хоста директно, към гост-OS на виртуалната машина. В режим Passthrough (преминаване на устройството през) можете да дадете директен достъп на виртуалната машина до USB флаш устройство / устройство, модем или до целия PCI / USB контролер.

ESXi се нуждае от няколко основни компонента, за да препраща USB устройства:

  • арбитър - отделна услуга на ESXi сървъра, която сканира свързани физически USB устройства, отговаря за маршрутизирането на трафика на USB устройство между хоста и VM, контролира блокирането на достъпа до устройството (само един VM може да използва свързаното USB устройство). USB арбитър може едновременно да проследява до 15 USB контролера.
  • USB контролери - USB контролерът трябва да бъде инсталиран както на физическия хост, така и на виртуалната машина.

За да инсталирате USB контролер за VM на VMWare ESXi, отворете настройките му и добавете ново устройство - USB контролер (USB контролер). Когато добавяте USB контролер, трябва да изберете неговия тип:

  • USB 2.0 (EHCI + UHCI) - контролер с поддръжка за USB 2.0 и USB 1.1 устройства;
  • USB 3.0 (xHCI) - поддържа бързи USB 3.0 устройства, изисква виртуален хардуер версия 8 и по-нова версия.
USB 3.0 режимът е достъпен, като се започне с vSphere 5.5 кръпка 3. За да поддържа този режим, xHCI контролерът трябва да работи в гост операционната система. Поддържани операционни системи за гости, започвайки с Windows 8.1 / Windows Server 2012 R2 и Linux с ядро ​​2.6.35.

USB Passthrough: Препращане на USB устройство към VM на ESXi

В родния USB Passthrough режим можете да свържете физическо USB устройство от хоста към виртуалната машина VMWare.

Основните изисквания и ограничения на този метод на пренасочване:

  • Виртуален хардуер 7.0 или по-нова версия;
  • Можете да осигурите директен достъп до USB устройство само с един VM;
  • Максималният брой препратени USB устройства за един VM е 20;
  • Изтеглянето на VM от USB не се поддържа.

След като добавите виртуален USB контролер за VM, можете да препратите USB устройство, свързано с хоста.

  1. Добавете устройството в настройките на VM Хост usb устройство и щракнете Добави;
  2. В падащия списък изберете свързаното USB устройство, което искате да добавите;
  3. За да поддържате vMotion за виртуални машини с свързано физическо USB устройство, активирайте „Поддържайте vMotion, докато устройството е свързано";
  4. След това USB устройството трябва да се появи вътре в ОС на виртуалната машина.
Има редица ограничения на vMotion за виртуални устройства с прикрепен USB стик:

  1. Не можете да изключите VM или да го поставите на пауза. Когато включите такава машина, трябва ръчно да я прехвърлите към хоста, към който е свързано USB устройството;
  2. DPM режимът не се поддържа, защото vCenter може да изключи хоста с USB устройство, за да спести енергия;
  3. ESXi хостове с VM и физическо USB устройство трябва да бъдат достъпни чрез vmk0 през TCP порт 902.

Ако при добавяне на ново USB устройство, клиентът vSphere пише, че не са открити USB устройства (Няма налични USB устройства), това означава, че вашето USB устройство не се поддържа от VMWare за пренасочване в този режим. Списъкът на съвместимите USB устройства е на уебсайта на VMWare (не е много голям). Вижте „USB устройства, тествани за преминаване от ESXi хост към виртуална машина в ESXi 6.7”В статията https://kb.vmware.com/s/article/1021345.

В този случай можете да препратите целия USB контролер към вашия VM от вашия ESXi хост.

VMware PCI Passthrough (VMDirectPath): probros USB контролер в VM

Друг, не толкова удобен метод за предоставяне на достъп от VM до физическо USB устройство е да препратите целия USB контролер от хоста на ESXi. Този режим се нарича VMDirectPath. За да го използвате, чипсетът на сървъра трябва да поддържа Вход / изход, насочен към Intel или AMD I / O технология за виртуализация (AMD IOMMU), и този режим е активиран в настройките на BIOS / UEFI.

Ако на сървъра е инсталиран само един USB контролер, когато го препращате към VM, няма да можете да използвате локално свързани USB хост устройства (клавиатура, мишка). В този случай е по-добре да добавите допълнителен PCI USB контролер към сървъра.

Ако хостът има няколко USB контролера, можете да идентифицирате свързаното USB устройство и номера на контролера чрез черупката на ESXi. Списък на USB устройства:

lsusb -v | grep -e Автобус -e iSerial

В изхода на командата трябва да намерите реда на USB устройството, например:

Автобус 002 Устройство 003: ID 0280: a00c Toshiba America Info. Systems, Inc.

След това, използвайки номера на контролера (Bus02 в този случай), определете главния концентратор и неговия iSerial:

Шина 002 Устройство 001: ID 1d6b: 0002 Основен център на Linux Linux 3.0 iSerial 1 0000: 00: 1D.0
Ако не можете да видите вашето USB устройство, опитайте да го свържете и прекъснете физически и погледнете в лога на vmkernel.log, че услугата USB Arbitrator е открила вашия диск:

опашка -f /var/log/vmkernel.log | grep -i USB

2019-12-03T12: 06: 12.546Z cpu0: 33271) usb 4-2: ново SuperSpeed ​​USB устройство номер 5 с помощта на xhci_hcd 2019-12-03T12: 06: 12.570Z cpu0: 33271) usb 4-2: Намерено ново USB устройство , idVendor = 0480, idProduct = b207 2019-12-03T12: 06: 12.570Z cpu0: 33271) usb 4-2: Нови низове на USB устройства: Mfr = 1, Product = 2, SerialNumber = 3 2019-12-03T12: 06 : 12.570Z cpu0: 33271) usb 4-2: Продукт: Външен USB 3.0 2019-12-03T12: 06: 12.570Z cpu0: 33271) usb 4-2: Производител: TOSHIBA 2019-12-03T12: 06: 12.570Z cpu0 : 33271) usb 4-2: сериен номер: 20180528012427F 2019-12-03T12: 06: 12.571Z cpu0: 33271) usb 4-2: доставчик: 0x0480, продукт: 0xb207, ревизия: 0x0315 2019-12-03T12: 06: 12.571 Z cpu0: 33271) usb 4-2: Подклас на интерфейса: 0x06, протокол: 0x50 2019-12-03T12: 06: 12.571 Z cpu0: 33271) ВНИМАНИЕ: LinScsiLLD: scsi_add_host: 573: vmkAdapter (usb-storage) sgMaxEntries закръглено до 25 . Отчетеният размер беше 65535 2019-12-03T12: 06: 12.571Z cpu0: 33271) usb-storage 4-2: 1.0: интерфейсът е заявен от usb-storage 2019-12-03T12: 06: 12.571Z cpu0: 33271) usb 4-2: устройството не е налично ble for passthrough 2019-12-03T12: 06: 12.571Z cpu0: 33271) usb 4-2: usbfs: регистриран usb0405 2019-12-03T12: 06: 15.454Z cpu0: 33207) usb-storage 4-2: 1.0: спряно

Ако USB устройството не бъде открито от ESXi хоста, проверете дали услугата работи:

#chkconfig usbarbitrator --list.

Съответно получихме номера на USB контролера, който трябва да бъде препратен към VM.

  1. За да препратите физическия USB контролер, изберете ESXi на хоста, на който работи вашия VM, и отидете на секцията управлявам -> Настройки -> PCI устройства -> редактирам;
  2. В списъка на PCI устройства намерете и изберете желания USB контролер според неговия идентификатор (в моя пример 00: 1D.0, контролерът се нарича C610 / X99 серия чипсет USB Подобрен хост контролер №1 Intel Corporation);
  3. Състоянието на USB контролера трябва да се промени от Не се предлага (Това устройство понастоящем не е достъпно за използване на виртуални машини) на наличен (Това устройство е достъпно за използване на виртуални машини). Щракнете върху OK.
  4. За да запазите промените, трябва да рестартирате ESXi хоста.
  5. След зареждане на хоста изключете VM и добавете ново PCI устройство (Ново устройство -> PCI устройство -> Добави). В падащия списък изберете вашия USB контролер (например 0000: 00: 1D | Intel Corporation USB чипсет ...). Ако при добавяне на PCI устройство се появи предупреждение в настройките на VM: “Предупреждение: VM няма да се включи, докато резервацията на паметта му изравни с размера на паметта”, Трябва да запазите памет за VM.
  6. Включете VM и се уверете, че USB устройството се появява в гост операционната система. В моя случай свързано USB устройство “Toshiba External USB 3.0 USB Device” се появи в гостния Windows Server 2012 R2.

В режим VMDirectPath можете да препращате до две PCI устройства към VM.

Съществуват редица ограничения за виртуални машини с PCI затънало PCI устройство: не можете да поставите на пауза VM (Suspend), да извършите vMotion на друг хост (логично е, тъй като сте обвързани с физически контролер, създайте снимки).

Hyper-V поддържа също пренасочване на физически USB устройства към VM.