Hoe gebruikt u USB-apparaten met een VMware vSphere virtuele machine?

Het hoofdfunctie van een hypervisor is om de apparaten die gebruikt worden door virtuele machine op software niveau te emuleren. Apparaten zoals virtuele controllers, schijven, DVD-ROMs, video kaarten, netwerk kaarten, invoer apparaten enzovoort worden in een virtuele machine aangemaakt. Maar wat als u een printer, scanner, USB-flashdrive, USB-harde schijf, USB-smartcard lezer, beveiligingsdongles, USB-licentie keys enzovoort wilt verbinden?

Voor externe fysieke apparaten met een USB-interface kunt u ze verbinden met een virtuele machine die wordt uitgevoerd op VMware Workstation of een ESXi host door middel van de USB doorstroomfunctie. Dit blog artikel behandelt het gebruik van deze functie in VMware vSphere op ESXi hosts, inclusief de vereisten en stappen voor het verbinden van USB-apparaten.

Wat is USB Doorstroom?

USB-apparaat doorstroomfunctie van VMware is een functie die u toestaat om een fysiek USB-apparaat dat is verbonden aan een USB-poort op een fysieke ESXi host te verbinden met een virtuele machine zoals het apparaat direct is verbonden aan de virtuele machine. VMware doorstroom is een functie beschikbaar sinds ESXi 4.1.

De redenen om passthrough te gebruiken voor een USB-apparaat van de ESXi-host naar een gastbesturingssysteem (OS) van een virtuele machine zijn verschillend. Bijvoorbeeld, als u een ouder scanner of printer heeft die geen stuurprogramma’s heeft voor de nieuwste versies van het Windows-besturingssysteem. U kunt de oudere versie van Windows installeren die de USB-apparaat ondersteunt en dit apparaat aan een virtuele machine connecten. Een andere praktische toepassing van deze functie is wanneer u bestanden van/naar een USB-hardeschijf tussen een virtuele machine en deze schijf direct met hoge snelheid moet kopiëren. Het kan voorkomen dat gebruikers hardware-USB-licentie sleutels gebruikende software moeten gebruiken in virtuele machines.

Hoe USB Passthrough Werkt

Er zijn drie hoofdcomponenten nodig om USB passthrough te laten werken: de arbitrator, de USB-controller en het fysieke USB-apparaat.

De arbitrator is een gededicateerde dienst op een ESXi-server. De arbitrator扫描 de fysieke USB-apparaten die zijn aangesloten op de fysieke server en is verantwoordelijk voor het routeren van USB-apparaatverkeer tussen een fysieke host en een virtuele machine. Tegelijkertijd kan slechts één virtuele machine toegang krijgen tot het USB-apparaat. Toegang tot het aan een virtuele machine gekoppelde USB-apparaat wordt voor andere virtuele machines geblokkeerd. De USB-arbitrator ondersteunt tot maximaal 15 USB-controllers (vSphere 7.0). De Arbitrator-dienst is standaard ingeschakeld in ESXi.

Een USB-controller die op een fysieke ESXi-server wordt gebruikt, is de controller waaraan de fysieke USB-poorten zijn aangesloten. De fysieke USB-controller werkt met fysieke USB-apparaten die zijn ingevoerd in de fysieke USB-poorten op de server. USB-controllers kunnen onboard zijn (ook wel geïntegreerd en ingebouwd op een moederbord) of externe (geïmplementeerd als PCI of PCIe-kaarten die in de corresponderende slots op een moederbord van de server worden ingevoerd). De onboard USB-controller fungeert als een brug tussen een USB-bus en een PCIe (of PCI)-bus. De onboard USB-controller is fysiek via het toepasselijke aantal PCIe-banen verbonden aan een moederbord chipsets.

Een virtuele USB-controller is een geemuleerde apparaat gemaakt speciaal voor een virtuele machine die draait op een hypervisor. Een virtuele USB-controller interacteert met een fysieke USB-controller wanneer een fysiek USB-apparaat van een fysieke ESXi-host naar een gastOS in de virtuele machine wordt doorgegeven. Het bestaan van een virtuele USB-controller is vereist in de VM-configuratie om de USB-doorstuurfunctie in de VM te kunnen gebruiken. Maximaal acht virtuele USB-controllers kunnen aan een virtuele machine op een ESXi-host zijn aangesloten. Als u een virtuele USB-controller uit een VM-configuratie moet verwijderen, moet u eerst alle USB-apparaten verwijderen die zijn aangesloten op die controller. Het VMware USB-stuurprogramma wordt geïnstalleerd op een gastbesturingssysteem nadat een virtuele USB-controller is toegevoegd aan de virtuele machine-configuratie.

Een fysieke USB-apparaat is elk USB-apparaat met een USB-interface en een USB-poort om te worden aangesloten op een computer. Maximaal 20 USB-apparaten kunnen aan één virtuele machine of ESXi-host zijn aangesloten.

De USB-standaarden en controllermodi zijn:

  • USB 2.0 en USB 1.1 (EHCI+UHCI)
  • USB 3.0 (xHCI) VM hardware versie 8 of hoger

Nadat u een fysieke USB-apparaat heeft verbonden met een virtuele machine middels de VMware USB passthrough-functie, moet u mogelijk drivers installeren voor het aangesloten USB-apparaat in een gastbesturingssysteem.

Vereisten voor USB 3.0

USB 3.0 is beschikbaar voor ESXi-servers vanaf VMware vSphere 5.5 patch 3. Dit vereist de USB xHCI-driver in de VM-configuratie. De vereisten voor het gebruik van USB 3.0 passthrough zijn: Windows 8.1 of hoger, Windows Server 2012 R2 of hoger, of Linux met Linux kernel 2.6.35 of hoger. USB 3.1-apparaten worden vanaf VMware vSphere 7.0 met hun volledige snelheid ondersteund.

USB Passthrough Beperkingen

Er zijn enkele beperkingen die u moet kennen voordat u de USB passthrough-functie gaat gebruiken:

  • Een USB-station kan niet worden gebruikt als opstartstation voor een virtuele machine.
  • Als een USB-station wordt gebruikt om ESXi op te starten, kan dit USB-station niet worden verbonden met een virtuele machine.
  • Virtuele hardwareversie 7 of hoger is vereist voor een virtuele machine.

Sommige USB-apparaten worden mogelijk niet ondersteund door VMware:

  • USB-hubs
  • Geluidsapparaten en video-camerassen die asyncrhonneke gegevensoverdracht gebruiken
  • Enkele USB-toetsenborden en muizen (meer details zijn te vinden in het VMware artikel 1021345).
  • Enkele slimme kaarten die CCID gebruiken, kunnen extra configuratie nodig hebben om verbinding te maken met een virtuele machine.

vMotion is mogelijk voor VMs met USB doorstroomapparaten die zijn aangesloten. Na correcte configuratie van de VM en inschakeling van vMotion blijven USB-apparaten verbonden aan de VM nadat deze is ge migreerd naar een andere ESXi-host.

Er zijn beperkingen voor vMotion voor virtuele machines die USB-doorstroomschijven gebruiken:

  • Het Geografisch Geëxporteerde Krachtbeheer (DPM) wordt niet ondersteund, want een ESXi-host kan niet worden afgesloten om energie te besparen zonder een USB-apparaat van een virtuele machine te ontkoppelen (een USB-apparaat wordt ontkoppeld als de host wordt afgesloten met DPM). DPM moet uitgeschakeld zijn op deze host.
  • Fouttolerantie wordt niet ondersteund.
  • Een VM kan niet worden opgeschort of afgesloten (anders worden USB-apparaten van een VM ontkoppeld en kunnen alleen opnieuw worden aangesloten nadat de VM is ge migreerd naar de originele ESXi-host waarnaar de USB-apparaten fysiek zijn aangesloten). De VM moet handmatig naar de ESXi-host met het USB-apparaat dat verbonden is, worden gemigreerd als u deze VM moet opstarten. Linux-gasten die zijn herstart kunnen USB-apparaten na herkoppeling op verschillende mount-punten aanknopen.
  • ESXi-hosts die virtuele machines met USB-doorstroomapparaten bevatten, moeten toegankelijk zijn via de vmk0 virtuele machine kernelinterface (voor beheernet netwerk) en TCP-poort 902.

Verbindsel USB-apparaten niet aan een virtuele machine voordat u de hot-add functionaliteit gebruikt en CPU’s, geheugen of PCI-apparaten toevoegt. Anders worden USB-apparaten automatisch verbroken en kunnen sommige gegevens verloren gaan bij het gebruik van de hot-add functionaliteit. Als u een virtuele machine opslaat en daarna weer hervat, worden USB-apparaten ontkoppeld en daarna weer aangesloten op de virtuele machine.

Het maken van een VMware virtuele USB-schijf of virtuele flashdrive om aan een virtuele machine te koppelen die ESXi of VMware Workstation draait, is net zoals u een virtuele floppy disk of CD/DVD disk zou aankoppelen, momenteel niet ondersteund.

Hoe een USB-apparaat aan een virtuele machine te koppelen

Nu we ons met de theorie geacquiseerd hebben, kunnen we doorgaan met de praktischeelijkheid en de configuratie in VMware vSphere bekijken.

  1. Sluit een USB-apparaat aan op een USB-poort op uw ESXi-server. In mijn geval ga ik een USB-flashdrive aansluiten.
  2. U kunt dan controleren of het USB-apparaat aan ESXi is gekoppeld in de ESXi commandline interface:

    lsusb

  3. Zoals u in de volgende schermafbeelding ziet, is mijn flashdrive nu gekoppeld aan de ESXi-server.

  4. De USB-arbitrage-dienst moet actief zijn. U kunt de status van de dienst controleren met de opdracht:

    chkconfig usbarbitrator --list

  5. Als de USB arbiter wordt gestopt, kun je hem met de opdracht

    /etc/init.d/usbarbitrator start

    Opmerking: Lees meer over ESXiCLI in het blogbericht.

    De virtuele machine resideert op de ESXi host die wordt beheerd door vCenter Server in mijn voorbeeld. Windows is geïnstalleerd als een gastbesturingssysteem op mijn virtuele machine. Open VMware vSphere Client, ga naar Hosts and Clusters. Selecteer in het Navigator paneel een virtuele machine waar je de USB apparaat met behulp van de doorstroomfunctie wilt verbinden. De virtuele machine moet uitgevoerd zijn. U moet VMware Tools installeren op de gastbesturingssysteem.

  6. Nadat u de virtuele machine heeft gekozen, klik op Acties > Instellingen bewerken.

  7. In het Instellingen bewerken venster, controleer of er een USB-controller in de virtuele machine-instellingen zit. Als de USB-controller ontbreekt, klik op Nieuw apparaat toevoegen > USB-controller en selecteer het type USB-controller (USB 2.0 of USB 3.0).
  8. Als de USB-controller aanwezig is, moet u het USB-apparaat toevoegen dat aan de ESXi-host is gekoppeld aan uw VM. Klik op Nieuw apparaat toevoegen > Host USB-apparaat.
  9. Een nieuwe string wordt toegevoegd aan de configuratie van de virtuele machine. In de Nieuwe USB Host apparaatstring selecteer je een USB-apparaat dat je wilt verbinden met de virtuele machine. Ik heb nu twee USB-flashdrives verbonden aan mijn fysieke ESXi-server en verbind ik de Verbatim-flashdrive met mijn virtuele machine (Verbatim product 0x0302). Als je vMotion-ondersteuning moet inschakelen, breid de Nieuwe USB Host apparaatuitbreiding uit en selecteer de “Ondersteun vMotion terwijl apparaat verbonden is” checkbox. Noteer de vMotionvereisten en beperkingen. Klik OK om de instellingen op te slaan en deze venster te sluiten.
  10. Start een virtuele machine. Wanneer de gastOS is geladen, wacht totdat hij is geïnitialiseerd en de USB-flashdrive is geïnstalleerd. Vervolgens opent u het Windows Apparaatbeheerprogramma.klik met de rechts muisknop op Mijn Computer en kies van het contextmenu Beheer. In het Beheer van Computers venster klikt u op Apparaatbeheer en breidt u de sectie Schijven uit (gezien dat we een USB-flashdrive hebben verbonden, zou dit apparaat in deze apparaatcategorie moeten verschijnen). We kunnen de Verbatim USB-apparaat zien, welke de naam is van mijn USB-stift die is verbonden aan de virtuele machine via de VMware USB Passthrough-functie.
  11. Open Schijfbeheer in het Computerbeheer venster en controleer of de USB-flashdrive een schijfstation toegewezen heeft. In mijn geval is alles correct en kan ik nu gegevens van de USB-flashdrive naar de virtuele schijf van een VM in het Windows gastbesturingssysteem kopiëren en omgekeerd.

VMware PCI Passthrough

Als het USB-apparaat dat u wilt verbinden met een VM via de VMware USB passthrough-functie niet door VMware wordt ondersteund, kunt u proberen de PCI passthrough-functie te gebruiken en de gehele fysieke USB-controller die de PCI-interface heeft aan een VM te verbinden.

Als uw ESXi-server een USB-controller heeft die is ingevoerd in een PCI-slot, kunt u dit PCI-apparaat naar een virtuele machine doorgeven. VMware PCI passthrough wordt ook wel VMDirectPass genoemd. Deze methode is minder comfortabel dan het gebruik van USB passthrough, maar het helpt u de taak uit te voeren.

vereisten

Intel Geïntegreerde I/O of AMD I/O Virtualisatie Technologie (AMD IOMMU) moeten worden ondersteund door de serverhardware en ingeschakeld zijn in UEFI/BIOS. Als u op uw server maar één USB-controller heeft, moet u een extra USB-controller verbinden om te vermijden dat uw verbindingen met USB-apparaten die door uw fysieke ESXi-host worden gebruikt verliezen.

Beperkingen en Limieten:

  • U kunt geen virtuele machine opslaan.
  • Een VM kan niet met behulp van vMotion naar andere ESXi-hosts worden gemigreerd.
  • Virtuele machine-snapshots worden niet ondersteund.

Bekijk de workflow van het verbinden van een USB-apparaat met een virtuele machine (VM) met behulp van PCIe-doorstroom en het verbinden van de gehele USB-controller waaraan een USB-apparaat is aangesloten met een VM.

  1. Gebruik deze opdracht om de USB-apparaat en de USB-controller te identificeren die uw USB-apparaat aan is gelast (als er meerdere USB-controllers zijn geïnstalleerd op uw server):

    lsusb -v | grep -e Bus -e iSerial

  2. Zoek naar de string met de naam van uw USB-apparaat die aan de USB-controller is gelast en identificeer de controller-ID (bijv. bus002).
  3. U kunt de VMkernel-logboekbestand controleren wanneer u een USB-apparaat aan een ESXi-server verbindt:

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

  4. Open VMware vSphere Client en ga naar Hosts and Clusters.
  5. Selecteer de ESXi-host waar uw virtuele machine op zit (waar u een USB-apparaat moet aanmaken).
  6. Ga naar het Configure-tabblad en selecteer PCI Devices in de Hardwaresectie.
  7. Zoek en selecteer de vereiste USB-controller uit de lijst met PCI-apparaten met behulp van de ID die u eerder detectede.
  8. De status van de geselecteerde driver zou nu veranderen naar Beschikbaar.
  9. Klik OK om de instellingen op te slaan.
  10. Herstart de ESXi-host om de wijzigingen effectief te maken.
  11. Zorg ervoor dat uw virtuele machine uitgeschakeld is. Ga naar de virtuele machine-instellingen, klik op Nieuw Apparaat Toevoegen > PCI-apparaat > Toevoegen. Selecteer uw USB-controller uit de keuzelijst met de correcte ID.
  12. Schakel de virtuele machine aan. Controleer de apparaten in het gastbesturingssysteem. Als Windows is geïnstalleerd op de virtuele machine, open dan het Apparaatbeheer en controleer de stuurprogramma’s en opslagsapparaten.

USB Smart Card Connection

Sommige USB-apparaten die de correcte CCID-klasse hebben worden standaard niet ondersteund voor verbinding met virtuele machines. Het foutmelding “Kan ‘path:0/1/6/1’ niet aan deze virtuele machine verbinden. Het apparaat werd niet gevonden”. In de logboeken zie je het bericht:

(vmx-vcpu-0) heeft interface 0 niet ge claimd voordat het gebruikt werd

PCSCD is de ESXi-demon die de toegang tot smartcard-lezers beheert. De toegang tot USB-smartcards is voor virtuele machines uitgeschakeld om conflicten te vermijden, aangezien een ESXi-host een smartcard vereist. Als gevolg hiervan kan USB-doorstroom niet worden gebruikt met de standaardinstellingen voor USB-smartcards. U moet de ESXi-hostconfiguratie bewerken om USB-doorstroom voor USB-smartcards in te schakelen.

  1. Stop de virtuele machine. Open de virtuele machine-instellingen, selecteer de tab VM-opties en klik op Configuratie bewerken.

  2. In het Configuratie Parameters venster, klik op Voeg Configuratie Parameters toe.

    U kunt ook de VMX-configuratiebestand van de virtuele machine bewerken in de opdrachtregelinterface door verbinding te maken met de ESXi-console via een SSH-client.

  3. Wijzig of voeg deze regel toe aan de configuratie van de virtuele machine als de parameter niet aanwezig is:

    usb.generic.allowCCID = "TRUE"

  4. Sla de instellingen van de virtuele machine op.
  5. Stop de PCSCD-dienst met de volgende opdracht op de ESXi-opdrachtregel:

    sudo /etc/init.d/pcscd stop

  6. Controleer of de PCSCD-dienst actief is:

    ps | grep pcscd

  7. Schakel de virtuele machine aan en controleer de apparaten om te verifiëren dat de USB-smartcardlezer is aangesloten op de virtuele machine.

Conclusie

U kunt verschillende apparaten die zijn aangesloten op USB-poorten op fysieke ESXi-hosts direct aan virtuele machines verbinden en ze in de gastbesturingssystemen van de virtuele machines gebruiken, net als u deze USB-apparaten op gewone fysieke computers gebruikt. U kunt zelfs virtuele machines die zijn aangesloten op externe USB-apparaten zijn verbonden aan de primaire ESXi-host met vMotion naar een andere host migreren. Ondanks enkele beperkingen voegt de VMware USB-doorstroomfunctie meer mogelijkheden en flexibiliteit toe in verschillende situaties.

VMware-VM-back-ups zijn belangrijk voor wie gebruik maakt van VMware vSphere. Download NAKIVO Backup & Replication en probeer deze universele gegevensbeschermingsoplossing uit om uw VMware vSphere virtuele machines en andere gegevens in uw omgeving te beschermen.

Source:
https://www.nakivo.com/blog/vmware-administration-essentials-configuring-esxi-vm-networks-2/