Configuración del paso a través de dispositivos USB desde VMWare ESXi a una máquina virtual

En su host VMWare ESXi, puede redirigir un dispositivo USB / unidad flash / disco local adjunto dentro de la máquina virtual. Esta tecnología se llama Passthrough de USB y disponible a partir de ESXi 4.1.

Supongamos que nuestra tarea es redirigir una unidad USB 3.0 externa conectada localmente al host ESXi 6.7 a una máquina virtual. Necesitamos acceder a una unidad para copiar rápidamente datos directamente desde la máquina virtual a una unidad USB separada.

Paso a través de VMWare USB

El modo Passthrough permite redirigir un dispositivo físico conectado a un host ESXi directamente al sistema operativo invitado de una máquina virtual. En el modo Passthrough, puede otorgar a una máquina virtual el acceso directo a una unidad USB, un módem o un controlador PCI / USB.

Para redirigir un dispositivo USB en ESXi, necesitará algunos componentes principales:

  • Árbitro es un servicio separado en un host ESXi que escanea los dispositivos USB físicos conectados, enruta el tráfico del dispositivo USB entre un host y una VM y controla el acceso a un dispositivo (solo una VM puede usar un dispositivo USB conectado). Un árbitro USB puede rastrear hasta 15 controladores USB simultáneamente.
  • Controladores USB – Se debe instalar un controlador uSB tanto en un host físico como en una máquina virtual.

Para instalar un controlador USB para una VM en VMWare ESXi, abra la configuración de VM y agregue un nuevo dispositivo: un Controlador USB. Al agregar un controlador USB, seleccione su tipo:

  • USB 2.0 (EHCI + UHCI) – un controlador compatible con dispositivos USB 2.0 y USB 1.1;
  • USB 3.0 (xHCI) – admite dispositivos USB 3.0 rápidos, requiere hardware virtual versión 8 o superior.

El modo USB 3.0 está disponible a partir del parche 3 de vSphere 5.5. Para admitirlo, se debe ejecutar un controlador xHCI en un sistema operativo invitado. Windows 8.1 / Windows Server 2012 R2 y Linux con la versión del kernel 2.6.35 o más reciente son compatibles como sistema operativo invitado.

agregando un nuevo controlador usb a la máquina virtual vmware

Pasar a través de un dispositivo USB a ESXi VM

En el modo de paso a través de USB nativo, puede conectar un dispositivo USB físico desde un host a una máquina virtual VMWare.

Los principales requisitos y restricciones de este método de redirección:

  • Hardware virtual 7.0 o más reciente;
  • Puede proporcionar acceso directo a un dispositivo USB solo para una máquina virtual;
  • El número máximo de dispositivos USB redirigidos para una máquina virtual es 20;
  • No se admite un arranque de VM desde el dispositivo USB adjunto.

Después de agregar un controlador USB virtual para una máquina virtual, puede redirigir una unidad USB conectada al host:

  1. Agregar una nueva Dispositivo USB anfitrión en la configuración de VM y haga clic en Agregar;
  2. Seleccione un dispositivo USB conectado de una lista desplegable para agregarlo;
  3. Para habilitar la compatibilidad con vMotion para una máquina virtual con una unidad USB física conectada, marque la casilla Admite vMotion mientras el dispositivo está conectado opción;Pasar a través de una unidad flash USB a la VM desde el host Vmware ESXi
  4. Luego, la unidad USB aparecerá en el sistema operativo invitado de la máquina virtual.

Existen algunas restricciones de vMotion para máquinas virtuales con una unidad USB redirigida:

  • No puede detener ni pausar una máquina virtual. Si enciende la máquina, debe migrarla manualmente al host al que está conectado el dispositivo USB;
  • El modo DPM no es compatible, ya que vCenter puede apagar un host con el dispositivo USB conectado para ahorrar energía;
  • Los hosts ESXi con la VM y un dispositivo USB físico deben ser accesibles a través de vmk0 a través del puerto TCP 902.

Si al agregar un nuevo dispositivo USB, un cliente vSphere muestra un mensaje de que no se han encontrado dispositivos USB (No hay dispositivos USB disponibles), significa que VMWare no admite su unidad USB para redirigir en el modo de paso a través de USB. Puede encontrar la lista de dispositivos USB compatibles en el sitio web oficial de VMWare (la lista no es larga). Compruebe el «Dispositivos USB probados para pasar de un host ESXi a una máquina virtual en ESXi 6.7«Sección en el artículo https://kb.vmware.com/s/article/1021345.

vmware No hay dispositivos USB disponibles

En este caso, puede redirigir todo el controlador USB a una máquina virtual desde el host ESXi.

Passthrough PCI de VMware (VMDirectPath): redirigir un controlador USB a una máquina virtual

Otro método menos conveniente para proporcionar acceso a un dispositivo USB físico desde una máquina virtual es redirigir todo el controlador USB desde el host ESXi. Este modo se llama VMDirectPath. Para usarlo, el chipset de su servidor debe admitir E / S dirigida por Intel o Tecnología de virtualización de E / S de AMD (AMD IOMMU), y este modo está habilitado en la configuración de BIOS / UEFI.

Si solo hay un controlador USB instalado en un servidor y lo redirige a una VM, no podrá usar dispositivos USB conectados a su host localmente (teclado, mouse). En este caso, es mejor agregar un controlador PCI USB adicional al servidor.

Si un host tiene varios controladores USB, puede identificar un dispositivo USB conectado y un número de controlador a través del shell ESXi. Para mostrar la lista de dispositivos USB:

# lsusb -v | grep -e Bus -e iSerial

Busque la línea relacionada con la unidad USB en la salida. Por ejemplo:

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

Luego identifique un concentrador raíz y su iSerial por el número de controlador (Autobús02, en este caso):

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 3.0 root hub
iSerial                 1 0000:00:1D.0

Si no ve su unidad USB, intente desconectarla físicamente y volver a conectarla. Ver el vmkernel.log para saber si el árbitro USB ha detectado su unidad:

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

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

vmkernel.log | grep -i dispositivo USB

Si su host ESXi no detecta la unidad USB, asegúrese de que el usbarbitrator el servicio se está ejecutando:

#chkconfig usbarbitrator --list

Detenga el servicio usbarbitrator solo si desea acceder a la memoria USB directamente desde el shell ESXi para copiar archivos.

Así que tenemos el número del controlador USB para ser redirigido a la VM.

  1. Para redirigir un controlador USB físico, seleccione el host ESXi en el que se está ejecutando su VM y vaya a Gestionar -> Ajustes -> Dispositivos PCI -> Editar;
  2. En la lista de dispositivos PCI, seleccione el controlador USB requerido por su ID (en mi ejemplo, es 00:1D.0, el controlador se llama C610/X99 series chipset USB Enhanced Host Controller #1 Intel Corporation);
  3. El estado del controlador USB debe cambiar de Indisponible (Este dispositivo no está disponible actualmente para que lo usen las VM) a Disponible (Este dispositivo está disponible para que lo utilicen las máquinas virtuales). Haga clic en Aceptar; Passthrough PCI de VMware (VMDirectPath) para dispositivo USB
  4. Para guardar los cambios, reinicie su host ESXi;
  5. Después de iniciar el host, apague su VM y agregue un nuevo dispositivo (Nuevo dispositivo -> Dispositivo PCI -> Agregar). Seleccione su controlador USB en la lista desplegable (por ejemplo, 0000:00:1D| Intel Corporation USB Chipset…);Si al agregar un dispositivo PCI aparece el siguiente mensaje en la configuración de VM: «Warning: The VM will not power on until its memory reservation equals its memory size”, Reserve algo de RAM para su VM.
  6. Encienda la máquina virtual y asegúrese de que la unidad USB haya aparecido en el sistema operativo invitado. En mi caso, la unidad USB conectada «Dispositivo USB externo USB 3.0 de Toshiba”Ha aparecido en el invitado Windows Server 2012 R2. Redirigir una unidad USB externa de esxi a VM

En el modo VMDirectPath, puede redirigir hasta dos dispositivos PCI físicos a una VM.

Existen algunas restricciones en una VM con un dispositivo PCI redirigido: no puede pausar una VM (Suspender), realizar vMotion en otro host (es lógico, ya que está vinculado a un controlador físico) o crear instantáneas.

Hyper-V también admite la redirección de dispositivos USB físicos a una máquina virtual.

Artículos Interesantes