Come utilizzare dispositivi USB con una VM VMware vSphere

VMware Workstation o a un Host VMware ESXi utilizzando la funzione USB passthrough. Questo post del blog illustra l’utilizzo di questa funzione in VMware vSphere su Host VMware ESXi, inclusi i requisiti e i passaggi per il collegamento dei dispositivi USB.

NAKIVO for VMware vSphere Backup

NAKIVO for VMware vSphere Backup

Complete data protection for VMware vSphere VMs and instant recovery options. Secure backup targets onsite, offsite and in the cloud. Anti-ransomware features.

Che cos’è il passthrough USB?

Il passthrough dei dispositivi USB VMware è una funzione che consente di collegare un dispositivo USB fisico connesso a una porta USB su un host VMware ESXi fisico a una VM come se il dispositivo USB fosse collegato direttamente alla VM. Il passthrough VMware è una funzione disponibile da ESXi 4.1.

I motivi per utilizzare il passthrough per un dispositivo USB dall’host VMware ESXi al sistema operativo (OS) guest di una VM variano. Ad esempio, se si dispone di uno scanner o di una stampante meno recenti che non dispongono dei driver per le versioni più recenti del sistema operativo Windows. È possibile installare la versione precedente di Windows che supporta il dispositivo USB e collegare questo dispositivo a una VM. Un altro uso pratico di questa funzione è quando è necessario copiare file da/verso un disco rigido USB a/da una VM direttamente ad alta velocità. Può capitare che gli utenti debbano utilizzare software protetto da chiavi di licenza USB hardware nelle VM.

Come funziona il passthrough USB

Ci sono tre componenti principali necessari per il funzionamento del passthrough USB: l’arbitratore, il controller USB e il dispositivo USB fisico.

L’arbitratore è un servizio dedicato su un server ESXi. L’arbitratore esegue la scansione dei dispositivi USB fisici collegati al server fisico ed è responsabile dell’instradamento del traffico dei dispositivi USB tra un host fisico e una VM. Solo una VM alla volta può accedere al dispositivo USB. L’accesso al dispositivo USB collegato a una VM è bloccato per le altre VM. L’arbitrator USB supporta fino a 15 controller USB (vSphere 7.0). Il servizio Arbitrator è abilitato per impostazione predefinita in ESXi.

Un controller USB utilizzato su un server ESXi fisico è il controller a cui sono collegate le porte USB fisiche. Il controller USB fisico funziona con dispositivi USB fisici inseriti nelle porte USB fisiche del server. I controller USB possono essere integrati (chiamati anche integrati e incorporati in un chip sulla scheda madre) o esterni (implementati come schede PCI o PCIe inserite negli slot corrispondenti sulla scheda madre del server). Il controller USB integrato funge da ponte tra un bus USB e un bus PCIe (o PCI). Il controller USB integrato è collegato fisicamente tramite il numero appropriato di linee PCIe a un chipset della scheda madre.

Un controller USB virtuale è un dispositivo emulato creato appositamente per una VM in esecuzione su un hypervisor. Un controller USB virtuale interagisce con un controller USB fisico quando un dispositivo USB fisico viene trasferito da un host ESXi fisico a un sistema operativo guest nella VM. La presenza di un controller USB virtuale è obbligatoria nella configurazione della VM per utilizzare la funzione di passthrough USB nella VM. È possibile collegare un massimo di otto controller USB virtuali a una VM su un host ESXi. Se è necessario rimuovere un controller USB virtuale dalla configurazione di una VM, è necessario prima rimuovere tutti i dispositivi USB collegati a quel controller. Il driver USB VMware viene installato su un sistema operativo guest dopo che un controller USB virtuale è stato aggiunto alla configurazione della VM.

Un dispositivo USB fisico è qualsiasi dispositivo USB dotato di un’interfaccia USB e di una porta USB per il collegamento a un computer. È possibile collegare un massimo di 20 dispositivi USB a una singola VM o host ESXi.

Gli standard USB e le modalità del controller sono:

  • USB 2.0 e USB 1.1 (EHCI+UHCI)
  • USB 3.0 (xHCI) Versione hardware VM 8 o superiore

Dopo aver collegato un dispositivo USB fisico a una VM utilizzando la funzione VMware USB passthrough, potrebbe essere necessario installare i driver per il dispositivo USB collegato in un sistema operativo guest.

Requisiti per USB 3.0

USB 3.0 è disponibile per i server ESXi a partire da VMware vSphere 5.5 patch 3. Ciò rende obbligatorio il driver USB xHCI nella configurazione della VM. I requisiti del sistema operativo per l’utilizzo del passthrough USB 3.0 sono: Windows 8.1 o versioni successive, Windows Server 2012 R2 o versioni successive oppure Linux con kernel Linux 2.6.35 o versioni successive. I dispositivi USB 3.1 sono supportati alla loro massima velocità a partire da VMware vSphere 7.0.

Limitazioni del passthrough USB

Prima di iniziare a utilizzare la funzione di passthrough USB, è necessario tenere presente alcune limitazioni:

Alcuni dispositivi USB potrebbero non essere supportati da VMware:

  • Hub USB
  • Dispositivi audio e videocamere che utilizzano il trasferimento dati asincrono
  • Alcune tastiere e mouse USB (maggiori dettagli sono disponibili nell’articolo VMware 1021345)
  • Alcune smart card che utilizzano CCID potrebbero richiedere una configurazione aggiuntiva per connettersi a una VM.

vMotion è possibile per le VM con dispositivi USB passthrough collegati. Dopo aver configurato correttamente la VM e abilitato vMotion, i dispositivi USB rimangono collegati alla VM dopo la migrazione a un altro host ESXi.

Esistono limitazioni vMotion per le VM che utilizzano dischi USB passthrough:

  • Distributed Power Management (DPM) non è supportato perché un host ESXi non può essere spento per risparmiare energia senza scollegare un dispositivo USB da una VM (un dispositivo USB viene scollegato se l’host viene spento utilizzando DPM). La DPM deve essere disabilitata su questo host.
  • La tolleranza ai guasti non è supportata.
  • Una VM non può essere sospesa o spenta (in caso contrario, i dispositivi USB vengono scollegati dalla VM e possono essere ricollegati solo dopo la migrazione della VM all’host ESXi iniziale a cui i dispositivi USB sono fisicamente collegati). La VM deve essere migrata manualmente all’host ESXi con il dispositivo USB collegato quando è necessario accendere questa VM. Gli ospiti Linux che sono stati ripristinati possono montare i dispositivi USB in diversi punti di montaggio dopo la riconnessione.
  • Gli host ESXi che dispongono di VM con dispositivi USB passthrough devono essere accessibili tramite l’interfaccia del kernel della VM vmk0 (per la rete di gestione) e la porta TCP 902.

Scollegare i dispositivi USB da una VM prima di utilizzare la funzione di aggiunta a caldo e aggiungere CPU, memoria o dispositivi PCI. In caso contrario, i dispositivi USB vengono disconnessi automaticamente e alcuni dati potrebbero andare persi quando si utilizza la funzione di aggiunta a caldo. Se si sospende una VM e poi la si riprende, i dispositivi USB vengono disconnessi e poi ricollegati alla VM.

Per quanto riguarda la creazione di un’unità USB virtuale VMware o di una chiavetta USB virtuale da collegare a una VM che esegue ESXi o VMware Workstation, proprio come si farebbe per montare un floppy disk virtuale o un disco CD/DVD, questa opzione non è attualmente supportata.

Come collegare un dispositivo USB a una VM

Ora che abbiamo familiarizzato con la teoria, possiamo passare alla parte pratica e vedere la configurazione in VMware vSphere.

  1. Inserisci un dispositivo USB in una porta USB del tuo server ESXi. Nel mio caso, inserirò una chiavetta USB.
  2. È quindi possibile verificare se il dispositivo USB è collegato a ESXi nell’interfaccia della riga di comando ESXi:

    lsusb

  3. Come potete vedere nella schermata seguente, la mia chiavetta USB è ora collegata al server ESXi.

    Configuración de dispositivos USB VMware

  4. Il servizio USB Arbiter deve essere in esecuzione. È possibile verificare lo stato del servizio con il comando:

    chkconfig usbarbitrator --list

  5. Se l’arbiter USB è arrestato, è possibile avviarlo con il comando

    /etc/init.d/usbarbitrator start

    Nota: Per ulteriori informazioni su ESXiCLI, consultare il post del blog.

    La VM risiede sull’host VMware ESXi gestito da vCenter Server nel mio esempio. Windows è installato come sistema operativo guest sulla mia VM. Apri VMware vSphere Client, vai su Host e cluster. Nel riquadro Navigatore selezionare una VM alla quale si desidera collegare il dispositivo USB utilizzando la funzione di passthrough. La VM deve essere spenta. È necessario installare VMware Tools sul sistema operativo guest.

  6. Dopo aver selezionato la VM, fare clic su Azioni > Modifica impostazioni.

    Editar ajustes de VM para conectar unidad USB a máquina virtual VMware

  7. Nella finestra Modifica impostazioni , verificare se nelle impostazioni della VM è presente un controller USB. Se il controller USB non è presente, fare clic su Aggiungi nuovo dispositivo > Controller USBe selezionare il tipo di controller USB (USB 2.0 o USB 3.0).
  8. Se il controller USB è presente, è necessario aggiungere il dispositivo USB collegato all’host ESXi alla VM. Fare clic su Add New Device > Host USB Device.Añadir un dispositivo USB VMware a una máquina virtual
  9. Viene aggiunta una nuova stringa alla configurazione della VM. Nella stringa del dispositivo New USB Host , selezionare un dispositivo USB che si desidera collegare alla VM. Ora ho due chiavette USB collegate al mio server ESXi fisico e sto collegando l’unità flash Verbatim alla mia VM (prodotto Verbatim 0x0302). Se è necessario abilitare il supporto vMotion, espandere Nuovo host USB dispositivo e selezionare la casella di controllo “Supporta vMotion mentre il dispositivo è collegato” casella di controllo. Prendere nota dei requisiti e delle limitazioni di vMotion. Fare clic su OK per salvare le impostazioni e chiudere questa finestra.Configuración VM USB - selección de un dispositivo USB que debe conectarse a una VM
  10. Avvia una VM. Una volta caricato il sistema operativo guest, attendi che si inizializzi e installa la chiavetta USB. Avanti, apri Gestione dispositivi di Windows. Fai clic con il pulsante destro del mouse su Risorse del computer e da quel menu fai clic su Gestisci. Nella finestra Gestione computer fai clic su Gestione dispositivi ed espandere la sezione Unità disco (poiché abbiamo collegato un’unità flash USB, questo dispositivo dovrebbe apparire in questa categoria di dispositivi). Possiamo vedere il dispositivo USB Verbatim, che è il nome della mia chiavetta USB collegata alla VM utilizzando la funzione VMware USB Passthrough.
  11. Aprire Gestione disco nella finestra Gestione computer e assicurarsi che alla chiavetta USB sia assegnato un’unità disco. Nel mio caso, tutto è corretto e ora posso copiare i dati da chiavetta USB al disco virtuale di una VM nel guest Windows e viceversa.ESXi USB passthrough está funcionando y una unidad USB está conectada a una VM

VMware PCI Passthrough

Se il dispositivo USB che desideri collegare a una VM utilizzando la funzione VMware USB passthrough non è supportato da VMware, puoi provare a utilizzare la funzione PCI passthrough e collegare l’intero controller USB fisico dotato di interfaccia PCI a una VM.

Se il tuo server ESXi dispone di un controller USB inserito in uno slot PCI, puoi trasferire questo dispositivo PCI a una VM. Il passthrough PCI VMware è anche chiamato VMDirectPass. Questo metodo è meno comodo rispetto all’utilizzo del passthrough USB, ma può aiutarti a portare a termine l’operazione.

Requisiti

Intel Directed I/O o AMD I/O Virtualization Technology (AMD IOMMU) devono essere supportati dall’hardware del server e abilitati in UEFI/BIOS. Se sul server è presente un solo controller USB, è necessario collegare un controller USB aggiuntivo per evitare di perdere le connessioni ai dispositivi USB utilizzati dall’host ESXi fisico.

Restrizioni e limitazioni:

  • Non è possibile sospendere una VM.
  • Una VM non può essere migrata ad altri host ESXi utilizzando vMotion.
  • Gli snapshot delle VM non sono supportati.

Esaminiamo il flusso di lavoro per il collegamento di un dispositivo USB a una VM utilizzando il passthrough PCI e il collegamento dell’intero controller USB a cui è collegato un dispositivo USB a una VM.

  1. Per identificare il dispositivo USB e il controller USB a cui è collegato il dispositivo USB (se sul server sono installati più controller USB), utilizzare questo comando:

    lsusb -v | grep -e Bus -e iSerial

  2. Trova la stringa con il nome del tuo dispositivo USB collegato al controller USB e identifica l’ID del controller (ad esempio bus002).
  3. È possibile controllare il log VMkernel quando si collega un dispositivo USB a un server ESXi:

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

  4. Aprire VMware vSphere Client e andare su Host e cluster.
  5. Seleziona l’host ESXi su cui risiede la tua VM (a cui devi collegare un dispositivo USB).
  6. Vai alla scheda Configura e seleziona Dispositivi PCI nella sezione Hardware .
  7. Individuare e selezionare il controller USB obbligatorio dall’elenco dei dispositivi PCI utilizzando l’ID rilevato in precedenza.
  8. Lo stato del driver selezionato dovrebbe ora cambiare in Disponibile.
  9. Premere OK per salvare le impostazioni.
  10. Riavvia l’host ESXi affinché le modifiche abbiano effetto.
  11. Assicurati che la tua VM sia spenta. Vai alle impostazioni della VM, clicca su Aggiungi nuovo dispositivo > Dispositivo PCI > Aggiungi. Selezionare il controller USB dal menu a discesa utilizzando l’ID corretto.
  12. Accendere la VM. Controllare i dispositivi nel sistema operativo guest. Se Windows è installato sulla VM, aprire Gestione dispositivi e controllare i driver e i dispositivi di storage.

Connessione smart card USB

Alcuni dispositivi USB che dispongono della classe CCID appropriata potrebbero non essere supportati per impostazione predefinita per la connessione alle VM. Messaggio di errore “Impossibile connettere ‘path:0/1/6/1’ a questa VM. Il dispositivo non è stato trovato”. Nei log è possibile visualizzare il messaggio:

(vmx-vcpu-0) non ha richiesto l’interfaccia 0 prima dell’uso

PCSCD è il demone ESXi che controlla i lettori di smart card. L’accesso alle smart card USB è disabilitato per le VM al fine di evitare conflitti, poiché un host ESXi richiede una smart card. Di conseguenza, il passthrough USB non può essere utilizzato con le impostazioni predefinite per le smart card USB. È necessario modificare la configurazione dell’host ESXi per abilitare il passthrough USB per le smart card USB.

  1. Arrestare la VM. Aprire le impostazioni della VM, selezionare la scheda Opzioni VM e fare clic su Modifica configurazione.

    Edición de las opciones de VM para la conexión de la tarjeta inteligente USB de VM

  2. Nella finestra Parametri di configurazione finestra, fare clic su Aggiungi parametri di configurazione.

    Editing VM USB configuration for a USB smart card reader

    In alternativa, è possibile modificare il file di configurazione VMX della VM nell’interfaccia della riga di comando collegandosi alla console ESXi con un client SSH.

  3. Modificare o aggiungere questa riga alla configurazione della VM se il parametro non è presente:

    usb.generic.allowCCID = "TRUE"

  4. Salvare le impostazioni della VM.
  5. Interrompere il servizio PCSCD utilizzando questo comando nella riga di comando ESXi:

    sudo /etc/init.d/pcscd stop

  6. Assicurarsi che il servizio PCSCD non sia in esecuzione:

    ps | grep pcscd

  7. Accendere la VM e controllare i dispositivi per verificare che il lettore di smart card USB sia collegato alla VM.

Conclusione

È possibile collegare direttamente alle macchine virtuali vari dispositivi collegati alle porte USB degli host ESXi fisici e utilizzarli nei sistemi operativi guest delle macchine virtuali proprio come si utilizzano questi dispositivi USB sui normali computer fisici. È anche possibile migrare le macchine virtuali utilizzando dispositivi USB esterni collegati all’host ESXi primario con vMotion su un altro host. Nonostante alcune limitazioni, la funzione VMware USB passthrough aggiunge maggiori capacità e flessibilità in diverse situazioni.

I backup delle macchine virtuali VMware sono importanti per chi utilizza VMware vSphere. Scaricate NAKIVO Backup & Replication e provate questa soluzione universale di protezione dei dati per proteggere le vostre VM VMware vSphere e altri dati nel vostro ambiente.

1 Year of Free Data Protection: NAKIVO Backup & Replication

1 Year of Free Data Protection: NAKIVO Backup & Replication

Deploy in 2 minutes and protect virtual, cloud, physical and SaaS data. Backup, replication, instant recovery options.

Le persone leggono anche