Найти тему
Подписаться

VMware PCI Passthrough. Проброс USB с гипервизора на виртуальную машину.

Задача — пробросить USB порт гипервизора на виртуальную машину. Имеем сервер HP Proliant DL360 Gen9 в качестве гипервизора.

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

-2
-3
-4

Выключаем гипервизор:

-5

Снимаем крышку:

-6

Вытаскиваем переходник для PCI плат:

-7

Вставляем в него наш PCI USB контроллер. Возвращаем на место переходник для PCI плат:

-8

Собираем сервер, включаем. Присоединяем к USB порту нового контроллера то устройство, которое будем прокидывать на виртуальную машину.

-9

Дожидаемся загрузки сервера. Поскольку у нас HP Proliant, то смотрим через ILO в разделе System Information > Device Inventory адрес нашего устройства:

-10

Адрес показывается при наведении мышкой. Bus 8, Device 0, Function 0.

В vCenter кликаем на наш гипервизор. Configure > PCI Devices.

-11

Кликаем на карандашик, открывается окно со списком всех PCI устройств:

-12

Находим устройство 8-0-0 и ставим галку. Можно и по названию определить, но если у вас несколько одинаковых USB контроллеров, то трудно угадать нужный. Сохраняемся.

1 device will become available when this host is rebooted
-13

В списке доступных устройств появляется наш контроллер. Но для его работы нужна перезагрузка. перезагружаем хост:

-14

После перезагрузки гипервизора PCI устройство можно прокидывать на виртуальную машину.

Выбираем виртуалку, нажимаем Edit Settings:

-15

Добавляем новое устройство PCI Device:

-16

Add. Если у нас только один контроллер, то в списке от подставляется автоматически:

-17

Для работы PCI устройства необходимо зарезервировать ОЗУ. Кликаем Reserve all memory. Один аларм пропадает:

-18

Читаем предупреждение о том, что на виртуалке с прокинутым PCI устройством нельзя делать некоторые вещи: нельзя ставить виртуалку на паузу, мигрировать на другой хост, использовать снапшоты.

Теперь у нас есть PCI устройство:

-19

Примечание

Если вы попытаетесь на такую машину поставить Windows, то получите в бубен:

-20

В этом случае удаляете PCI устройство из виртуалки, ставите Windows, снова прокидываете устройство на виртуалку. Вот такая канитель.

Обычная загрузка Windows тоже может привести к такой ошибке. В этом случае вынимаете все устройства из USB контроллера, вставляете в него обычную флешку. Windows загрузится. Потом можно вынимать флешку и втыкать ваши устройства.

В целом, я недоволен этим сервисом. В случае перезагрузки машины есть большая вероятность, что гипервизор упадёт. От чего это зависит - непонятно, ясно только, что падения происходят только на Windows машинах. С Linux проблем замечено не было. После нескольких неудачных перезагрузок всё может нормально подняться.

Источник:
https://internet-lab.ru/vmware_pci_passthrough

Если вам понравилась статья, то ставьте 👍🏻 каналу. Пишите комментарии, задавайте вопросы, подписывайтесь.