Назад | Перейти на главную страницу

ESXi USB PCIe Passthrough Не удается подключить подключенные устройства

У меня есть свежая установка ESXi 6.7U2, на которой я могу успешно запускать виртуальные машины. К этой настройке я добавил StarTech.com 4-портовый адаптер карты USB 3.0 (PEXUSB3S44V). Это было настроено для прохождения следующих https://kb.vmware.com/s/article/1010789. Это можно настроить для сквозной передачи на виртуальную машину:

Контроллеры USB PCIe определяются здесь как uPD720202 Хост-контроллер USB 3.0. У одного адаптера PCIe есть 4 независимых контроллера, и я решил пропустить их полностью для простоты, пытаясь отладить эту проблему.

Я пробовал использовать как Amazon Linux 2 (on prem), так и Ubuntu Server 18.04.2 для виртуальных машин, то, что ниже, похоже, эквивалентно для них обоих.

lspci вывод показывает ожидаемый проход через устройства:

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
00:10.0 SCSI storage controller: LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI (rev 01)
00:11.0 PCI bridge: VMware PCI bridge (rev 02)
00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:15.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:16.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:17.7 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.0 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.1 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.2 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.3 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.4 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.5 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01)
00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01)
02:01.0 SATA controller: VMware SATA AHCI controller
03:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
04:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
13:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)
1b:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02)

lsusb вывод перед подключением устройства к адаптеру:

Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Просмотр dmesg вывод при попытке подключения устройства, в зависимости от устройства (USB-концентратор, USB-накопитель и т. д.), я либо не получаю дополнительного вывода, либо:

[  818.213414] xhci_hcd 0000:04:00.0: Abort failed to stop command ring: -110
[  818.213435] xhci_hcd 0000:04:00.0: xHCI host controller not responding, assume dead
[  818.213453] xhci_hcd 0000:04:00.0: HC died; cleaning up
[  818.213467] xhci_hcd 0000:04:00.0: WARNING: Host System Error
[  818.213497] xhci_hcd 0000:04:00.0: Error while assigning device slot ID
[  818.213511] xhci_hcd 0000:04:00.0: Max number of devices this xHCI host supports is 32.
[  818.213526] usb usb4-port1: couldn't allocate usb_device
[  818.213538] xhci_hcd 0000:04:00.0: Error while assigning device slot ID
[  818.213551] xhci_hcd 0000:04:00.0: Max number of devices this xHCI host supports is 32.
[  818.213565] usb usb3-port1: couldn't allocate usb_device

Очевидно, что устройство обнаруживается в виртуальной машине, но что-то мешает ему успешно подключиться.

То, что я пробовал (Ref https://bbs.archlinux.org/viewtopic.php?id=236536):

  1. Установка параметров ядра iommu = soft pci = nomsi
  2. Установка параметра ядра intel_iommu = off
  3. Различные виртуальные машины (как указано выше)
  4. Обеспечение подключения USB-устройств при загрузке виртуальной машины
  5. Настройка управления питанием хоста ESXi на «Высокая производительность»

Чтобы убедиться, что у меня не было проблем с оборудованием / питанием, я отказался от гипервизора на том же оборудовании, выполнив загрузку с USB (LinuxMint). Здесь адаптер PCIe корректно работал со всеми подключенными устройствами, поэтому я думаю, что это можно исключить.

На данный момент мои подозрения:

  1. Этот набор микросхем uPD720202 несовместим с ESXi, хотя в Интернете есть много сообщений о том, что он должен работать нормально (вот почему я его купил).
  2. Мне не хватает важной конфигурации на хосте ESIx.

Если кто-то обнаружит что-нибудь очевидное, что я мог бы попробовать, или хотел бы получить дополнительную информацию, я буду очень признателен.

Похоже, это был вариант 1, совместимость оборудования.

Я поменял местами StarTech.com 4-портовый адаптер карты USB 3.0 (PEXUSB3S44V) для 4-х портовая ракета HighPoint U RU1144D который теперь работает, как ожидалось.

В рекомендациях VMware для клиентов настоятельно рекомендуется использовать USB через IP из-за vMotion. Прямая передача контроллеров хоста USB не рекомендуется, поскольку виртуальная машина затем привязывается к физическому хосту. Есть ли причина, по которой вы не можете пройти через USB-устройства, подключенные к USB-портам StarTech или RocketU? В ESXi драйвер для USB-устройства не потребуется, vMotion должен «просто работать», и VMware с гораздо большей вероятностью ответит на запрос в службу поддержки. Конечно, если ваш хост необходимо отключить, виртуальные машины, где бы они ни работали, временно потеряют устройство (а), но это, вероятно, лучше, чем отключать виртуальные машины. JMHO и рад, что у вас есть над чем поработать.

Здесь дело обстоит не так, просто для ясности другим, сквозная передача хост-контроллеров материнской платы не поддерживается, когда ESXi загружается с USB. или использует USB в качестве локального хранилища (например, для файла coredump, конфигурация которого вызывает открытие дескриптора файла при загрузке). Видеть https://kb.vmware.com/s/article/2068645.