Основная функция гипервизора – это эмуляция устройств, используемых виртуальными машинами, на уровне программного обеспечения. Устройства, такие как виртуальные контроллеры, диски, DVD-ROM, видеокарты, сетевые карты, входные устройства и т. д., создаются в виртуальной машине. Но что, если вы хотите подключить принтер, сканер, USB-флэшку, USB-HDD, USB-smart-card-reader, безопасные дongles, USB-license-keys и т. д.?
Для внешних физических устройств с USB-интерфейсом можно подключить их к виртуальной машине, которая выполняется на VMware Workstation или ESXi host, используя функцию USB-passthrough. Этот блог-пост описывает использование этой функции в VMware vSphere на ESXi-vääjsach, включая требования и шаги по подключению USB-устройств.
Что такое USB Passthrough?
VMware USB-устройственный passthrough – это функция, которая позволяет подключить физическое USB-устройство, подключенное к USB-порту на физическом ESXi-vääjsach, к виртуальной машине, как будто это USB-устройство было подключено к виртуальной машине напрямую. VMware passthrough – это функция, доступная с ESXi 4.1.
Причины использования passthrough для USB-устройства с ESXi-主機 на гостевую операционную систему (OS) виртуального устройства варьируются. Например, если у вас есть стараяscanner или принтер, который не имеет драйверов для последних версий Windows ОС. Вы можете установить более старую версию Windows, которая поддерживает USB-устройство и подключить это устройство к виртуальной машине. another practical use of this feature is when you need to copy files from/to a USB hard drive to/from a virtual machine directly with high speed. It may happen that users need to use software protected by hardware USB license keys in virtual machines.
How USB Passthrough Works
There are three main components required for USB passthrough to work: the arbitrator, the USB controller, and the physical USB device.
The arbitrator is a dedicated service on an ESXi server. The arbitrator scans physical USB devices connected to the physical server and is responsible for routing USB device traffic between a physical host and a virtual machine. Only one virtual machine can access the USB device at a time. Access to the USB device connected to a virtual machine is blocked for other virtual machines. The USB arbitrator supports up to 15 USB controllers (vSphere 7.0). The Arbitrator service is enabled by default in ESXi.
USB-контроллер, используемый на физическом сервере ESXi, это контроллер, к которому подключены физические USB-порты. Физический USB-контроллер работает с физическими USB-устройствами, вставленными в физические USB-порты на сервере. USB-контроллеры могут быть наборной (также называемые интегрированными и встроенными в чип на материнской плате) или внешней (представлены в виде карт PCI или PCIe, которые вставляются в соответствующие отверстия на материнской плате сервера). Наборной USB-контроллер выполняет роль моста между шиной USB и шиной PCIe (или PCI). Физический USB-контроллер физически подключен через соответствующее количество лanes PCIe к чипсету материнской платы.
Виртуальный USB-контроллер является эмулированным устройством, созданным специально для виртуальной машины, работающей на гипервизоре. Виртуальный USB-контроллер взаимодействует с физическим USB-контроллером, когда физическое USB-устройство передается от физического ESXi-хоста к гостевой ОС в виртуальной машине. Присутствие виртуального USB-контроллера требуется в конфигурации VM для использования функции проксирования USB в VM. Максимум восьми виртуальных USB-контроллеров может быть подключено к виртуальной машине на ESXi-хосте. Если вам нужно удалить виртуальный USB-контроллер из конфигурации VM, вы должны сначала удалить все USB-устройства, подключенные к этому контроллеру. Driver USB VMware устанавливается на гостевой операционной системе после добавления виртуального USB-контроллера в конфигурацию виртуальной машины.
Физическое USB-устройство – любое USB-устройство с USB- интерфейсом и USB-портом для подключения к компьютеру. Максимум 20 USB-устройств может быть подключено к одной и той же виртуальной машине или ESXi-хосту.
Стандарты USB и режимы контроллеров:
- USB 2.0 и USB 1.1 (EHCI+UHCI)
- USB 3.0 (xHCI) Версия оборудования VM 8 или выше
После подключения физического USB-устройства к виртуальной машине с использованием функции USB- passthrough VMware, у вас может потребоваться установить драйвера для подключенного USB-устройства в гостевой операционной системе.
Требования для USB 3.0
USB 3.0 доступен для серверов ESXi, начиная с пакета исправлений 3 VMware vSphere 5.5. Это требует драйвера USB xHCI в конфигурации VM. Требования операционной системы для использования USB 3.0 passthrough: Windows 8.1 или выше, Windows Server 2012 R2 или выше, или Linux с ядром Linux kernel 2.6.35 или выше. USB 3.1 устройства поддерживаются в полной скорости, начиная с VMware vSphere 7.0.
Ограничения USB Passthrough
Есть несколько ограничений, о которых вы должны быть осведомлены, прежде чем начать использовать функцию USB passthrough:
- USB-накопитель не может использоваться в качестве引导分区 для виртуальной машины.
- Если USB-накопитель используется для 引导 ESXi, этот USB-накопитель не может быть подключен к виртуальной машине.
- Необходима версия виртуального оборудования 7 или выше для виртуальной машины.
Некоторые USB-устройства могут не поддерживаться VMware:
- USB-hubs
- Аудиоустройства и видеокамеры, использующие асинхронные передачи данных
- Некоторые USB-клавиатуры и мыши (более детальная информация может быть найдена в статье VMware 1021345).
- Некоторые умные карты, использующие CCID, могут требует дополнительной настройки для подключения к виртуальной машине.
vMotion возможен для виртуальных машин с подключенными устройствами USB-passthrough. после correctного настройки виртуальной машины и включения vMotion, устройства USB остаются подключенными к виртуальной машине после переноса на другой ESXi-хост.
Есть ограничения vMotion для виртуальных машин, использующих USB-passthrough-диски:
- распределенного управления энергопотреблением (DPM) не поддерживается, поскольку ESXi-хост не может быть выключен, чтобы экономить энергию, не отключив USB-устройство от виртуальной машины (USB-устройство отключается, если хост выключается с помощью DPM). DPM должен быть отключен на этом хосте.
- не поддерживается репликация.
- VM не может быть приостановлен или выключен (иначе USB-устройства отключаются от VM и могут быть подключены снова только после переноса VM на первый ESXi-хост, с которым физически подключены USB-устройства). VM должно быть вручную перенесено на ESXi-хост с подключенным USB-устройством, когда нужно включить эту VM. Linux-гостям, которые были приостановлены, может быть необходимо соединить USB-устройства с различными точками монтирования после пересоединения.
- ESXi-хосты с виртуальными машинами с USB-passthrough-устройствами должны быть доступны через virtual machine kernel interface vmk0 (для управленной сети) и TCP-порт 902.
Отключите USB-устройства от виртуальной машины до использования функции «горячего добавления» и добавления CPU, памяти или PCI-устройств. иначе USB-устройства автоматически отключаются и могут быть потеряны некоторые данные при использовании функции горячего добавления. Если вы приостановите VM, а затем продолжите ее, USB-устройства отключаются, а затем снова подключаются к VM.
Что касается создания виртуального USB-диска или виртуального флэш-диска для подключения к работающей виртуальной машине ESXi или VMware Workstation, так же как вы могли бы подключить виртуальный дискFloppy или CD/DVD, эта опция пока не поддерживается.
Как подключить USB-устройство к виртуальной машине
Теперь, когда мы ознакомились с теорией, мы можем перейти к практической части и посмотреть на конфигурацию в VMware vSphere.
- Вставьте USB-устройство в USB-порт на вашем сервере ESXi. В моем случае я вставлю USB-флэш-диск.
- Вы можете затем проверить, соединен ли USB-устройство с ESXi в интерфейсе командной строки ESXi:
lsusb
- Как видите из следующего скриншота, моя флэш-диск теперь подключен к серверу ESXi.
- Сервис USB-арбитра должен быть запущен. Вы можете проверить статус сервиса с помощью команды:
chkconfig usbarbitrator --list
- Если USB арбитр остановлен, вы можете запустить его командой
/etc/init.d/usbarbitrator start
Примечание: Читайте больше о ESXiCLI в блоге.
Виртуальная машина находится на ESXi хосте, управляемом vCenter Server в моем примере. Windows установлен в качестве гостевой ОС на моей виртуальной машине. Откройте клиент VMware vSphere, перейдите к Хостам и Кластерам. В области навигации выберите виртуальную машину, к которой вы хотите подключить USB-устройство с помощью функции passthrough. Виртуальная машина должна быть выключена. Вам необходимо установить VMware Tools в гостевой ОС.
- После выбора виртуальной машины нажмите Действия > Edit settings.
- Во Edit Settings окне убедитесь, что у виртуальной машины есть контроллер USB. Если контроллер USB отсутствует, нажмите Add New Device > USB Controller и выберите тип контроллера USB (USB 2.0 или USB 3.0).
- Если контроллер USB присутствует, вам нужно добавить USB-устройство, подключенное к узлу ESXi, к вашей ВМ.Click Add New Device > Host USB Device.
- Добавлена новая строка в конфигурацию виртуальной машины. В строке Новый USBHost выберите USB-устройство, которое вы хотите подключить к VMM. у меня сейчас два USB-USB flash drive подключены к моему физическому серверу ESXi, и я подключаю USB-USB flash drive Verbatim к моей VMM (Verbatim продукт 0x0302). Если вам нужно включить поддержку vMotion, увеличьте Новый USBHost устройство и выберите “Поддержка vMotion, когда устройство подключено” checkbox. Обратите внимание на vMotion требования и ограничения.Click OK, чтобы сохранить настройки и закрыть это окно.
- запустите виртуальную машину. После загрузки гостевой ОС подождите, пока она инициализируется и установит USB-USB flash drive. Next, open the Windows Device Manager. Right-click on My Computer and from the context menu, click on Manage. In the Computer Management window, click on Device Manager and expand the Disk drives section (since we connected a USB flash drive, this device should appear in this device category). We can see the Verbatim USB device, which is the name of my USB stick connected to the VM using the VMware USB Passthrough feature.
- Откройте дискету в окне управления компьютером и убедитесь, что для USB-устройства назначено磁盘驱动器. В моем случае все в порядке, и сейчас я могу копировать данные с USB-устройства на виртуальный диск в образе Windows-гостя и наоборот.
VMware PCI Passthrough
Если USB-устройство, которое вы хотите подключить к ВМ с помощью функции USB passthrough VMware, не поддерживается VMware, вы можете попробовать использовать функцию PCI passthrough и подключить к ВМ весь физический контроллер USB с PCI-интерфейсом.
Если у вашего сервера ESXi вставлен контроллер USB в PCI-slot, вы можете пропустить этот PCI-устройство в виртуальную машину. VMware PCI passthrough также называется VMDirectPass. Этот метод менее удобен, чем использование USB passthrough, но он может помочь вам выполнить задачу.
требования
услуга Intel Directed I/O или технология AMD I/O Virtualization (AMD IOMMU) должны поддерживаться серверным оборудованием и включены в UEFI/BIOS. Если у вашего сервера есть только один USB-контроллер, вы должны подключить дополнительный USB-контроллер, чтобы избежать потери соединений с USB-устройствами, используемыми вашим физическим ESXi- хостом.
ограничения и ограничения:
- вы не можете приостановить виртуальную машину.
- виртуальной машине нельзя переместить на другие ESXi-хосты с использованием vMotion.
- снимки виртуальной машины не поддерживаются.
Давайте рассмотрим рабочий процесс подключения USB-устройства к ВМ с использованием прохождения PCI и подключения всего USB-контроллера, к которому подключено USB-устройство, к ВМ.
- Для идентификации USB-устройства и USB-контроллера, к которому подключено ваше USB-устройство (если на вашем сервере установлены несколько USB-контроллеров), используйте этот командный запрос:
lsusb -v | grep -e Bus -e iSerial
- Найдите строку с именем вашего USB-устройства, подключенного к USB-контроллеру, и идентифицируйте идентификатор контроллера (например, bus002).
- Вы можете проверить журнал VMkernel, когда USB-устройство подключено к серверу ESXi:
tail -f /var/log/vmkernel.log | grep -i USB
- Откройте VMware vSphere Client и перейдите к Hosts and Clusters.
- Выберите ESXi-主機, на котором находится ваша виртуальная машина (к которой вам нужно подключить USB-устройство).
- Перейдите к вкладке Configure и выберите PCI Devices в секции Hardware.
- Используя ранее обнаруженный ID, найдите и выберите необходимый USB-контроллер из списка PCI-устройств.
- Статус выбранного драйвера теперь должен измениться на Available.
- Нажмите OK, чтобы сохранить настройки.
- Перезапустите ESXi-主機, чтобы изменения вступили в силу.
- Убедитесь, что ваша виртуальная машина выключена. Перейдите к настройкам ВМ, нажмите Добавить новый устройство > PCI-устройство > Добавить. Выберите из списка ваш USB-контроллер с помощью правильного ID.
- Включите виртуальную машину. Проверьте устройства в гостевой ОС. Если на виртуальной машине установлено Windows, откройте Управление устройствами и проверьте драйвера и запоминающие устройства.
USB-соединение с Smart Card
Некоторые USB-устройства с соответствующей CCID-класс могут не поддерживаться по умолчанию для подключения к ВМ. Сообщение ошибки “Невозможно подключить ‘path:0/1/6/1’ к этой виртуальной машине. Устройство не найдено”. В логах можно увидеть сообщение:
(vmx-vcpu-0) не установил интерфейс 0 до использования
PCSCD — это déмон ESXi, управляющий считывателями Smart Card. Доступ к USB-Smart Card для виртуальных машин отключен, чтобы избегать конфликтов, так как ESXi-主机 требует Smart Card. В результате, passthrough USB не может использоваться с default значениями для USB Smart Card. Вам необходимо редактировать конфигурацию ESXi-主机, чтобы включить passthrough для USB Smart Card.
- Остановите виртуальную машину. Откройте настройки виртуальной машины, выберите вкладку VM Options, затем нажмите Edit Configuration.
- В окне Parametry konfiguracji нажмите Dodaj parametry konfiguracji.*
.*
Также можно редактировать конфигурационный файл VMX виртуальной машины в командной строке, соединившись с консолью ESXi с помощью клиента SSH.
- Если параметр отсутствует, добавьте или измените следующий строк в конфигурации виртуальной машины:**
usb.generic.allowCCID = "TRUE"
.*
- Сохраните настройки виртуальной машины.*
- Остановите службу PCSCD с помощью следующего запроса на командной строке ESXi:**
sudo /etc/init.d/pcscd stop
.*
- Убедитесь, что служба PCSCD не запущена:**
ps | grep pcscd
.*
- Включите виртуальную машину и проверьте устройства, чтобы убедиться, что USB-читатель смарт-карт подключен к виртуальной машине.*
Conclusion
Вы можете подключить различные устройства, подключенные к USB-портам на физических хостах ESXi, непосредственно к виртуальным машинам и использовать их в гостевых операционных системах виртуальных машин, как будто вы используете эти USB-устройства на обычных физических компьютерах. Вы даже можете мигрировать виртуальные машины с внешними USB-устройствами, подключенными к основному хосту ESXi с vMotion, на другой хост. Несмотря на некоторые ограничения, функция USB-прохождения VMware добавляет дополнительные возможности и гибкость в различных ситуациях.
VMware VM backups is important for those who use VMware vSphere. Download NAKIVO Backup & Replication and try this universal data protection solution to protect your VMware vSphere virtual machines and other data in your environment.
Source:
https://www.nakivo.com/blog/vmware-administration-essentials-configuring-esxi-vm-networks-2/