USB-Geräte in VMware ESXi 5.x nutzen


    Tags: , ,

    Memory-StickDer Hypervisor von VMware unterstützt USB-Geräte auf mehrere Arten. So kann man sie am Host anschließen und wahlweise direkt in ESXi oder in einer virtuellen Maschine verwenden. Darüber hinaus besteht seit der Version 5 die Möglichkeit, USB-Peripherie von einer Client-Maschine auf den ESXi-Host umzuleiten.

    Auch wenn USB-Geräte auf einem virtualisierten Server nicht häufig benötigt werden, so ist ihre Unterstützung durch den Hypervisor in einigen Situationen sehr willkommen. Das gilt etwa dann, wenn eine Software in einer VM einen Dongle erfordert, oder wenn beim Troubleshooting ohne funktionierende Netzanbindung Daten vom Host gesichert werden sollen. Laufen Desktops in den VMs, dann bieten die VDI-Systeme für diesen Zweck ohnehin eine USB-Redirection an, mit dem sich Geräte, die am Client angeschlossen sind, im entfernten Desktop ansprechen lassen.

    Am Host angeschlossene USB-Geräte verwenden

    Die schon länger verfügbare Form der USB-Unterstützung betrifft Geräte, die an den Host angeschlossen werden. Der automatisch mit ESXi gestartete Service USB-Arbitrator sorgt dafür, dass die Geräte nicht auf der Ebene des Hypervisors sichtbar sind, sondern an VMs durchgereicht werden können. Im Gegensatz zu Hyper-V, das USB-Hardware nicht für VMs zur Verfügung stellen kann, bietet ESXi somit ein USB-Passthrough.

    Installation eines USB-Controllers

    Um ein Gerät, das an den ESXi-Host angeschlossen ist, in einer VM nutzen zu können, muss man diese über den vSphere Client entsprechend konfigurieren. Konkret ist es erforderlich, dass man in den Einstellungen der VM einen USB-Controller hinzufügt (Hardware => Hinzufügen => USB Controller). Zur Auswahl stehen die Typen EHCI+UHCI mit Unterstützung für USB 2.0 und USB 1.1 sowie xHCI, das zusätzlichen Support für USB 3.0 bietet. Allerdings lassen sich keine USB-3-Geräte direkt an den Host anschließen, sondern nur von einem Windows-Client aus umleiten.

    Bevor man in einer VM ein USB-Gerät nutzen kann - egal ob vom Client oder Server - muss man einen USB-Controller installieren.

    Wenn man anschließend ein USB-Gerät an den Server hängt, dann kann man es im nächsten Schritt dem Gastbetriebssystem ebenfalls über die Einstellungen der VM zugänglich machen. In der Geräteliste unter der Registerkarte Hardware => Hinzufügen => USB-Gerät sollte jede angeschlossene USB-Hardware sichtbar sein, so dass man sie der VM zuordnen kann.

    Kein Support für Webcams, Audiogeräte oder Tastaturen

    Dieses Passthrough vom Host zu virtuellen Maschinen unterstützt nicht alle Arten von Geräten, vielmehr ist es primär für Dongles und Speichermedien gedacht. Nicht geeignet sind dafür Tastaturen, Mäuse, Webcams, Audiogeräte oder Memory Sticks, auf denen ESXi installiert wurde.

    Zugriff auf USB-Laufwerke in ESXi

    Möchte man ein USB-Laufwerk direkt in ESXi ansprechen, dann muss man erst den Arbitrator-Service beenden, weil dieser die USB-Peripherie an die VMs durchreicht. Zu diesem Zweck gibt man auf der ESXi-Konsole den Befehl

    /etc/init.d/usbarbitrator stop

    ein. Erst danach schließt man das gewünschte USB-Gerät an den Host an bzw. trennt es und verbindet es neu. Anschließend sollte das Gerät unter /vmfs/volumes/ sichtbar werden, und zwar als NO NAME.

    USB-Geräte lassen sich in ESXi erst dann nutzen, wenn man den Arbitrator-Dienst beendet.

    Allerdings unterstützt ESXi nur die Dateisysteme FAT und VMFS, so dass es Laufwerke, die mit exFAT, FAT32 oder NTFS formatiert wurden, nicht in unter dem volumes-Verzeichnis einblendet.

    Wenn man den Arbitrator-Dienst wieder aktivieren möchte, dann ersetzt man im obigen Aufruf stop durch start.

    Umleitung von Client-Geräten

    Seit ESXi 5.0 kommt eine weitere Variante für die USB-Integration dazu. Dabei lassen sich in VMs unter ESXi auch Geräte nutzen, die an einen Windows-Client angeschlossen sind. Diese Umleitung erfolgt über den vSphere Client, und zwar an virtuelle Maschinen, die eingeschaltet sind. Voraussetzung ist auch hier, dass zuvor in der VM ein passender USB-Controller installiert wurde.

    Die Umleitung von Client-seitigen USB-Geräten erfolgt über den vSphere Client.

    Für die USB-Umleitung zuständig ist das Icon USB-Geräte mit der virtuellen Maschine verbinden / von der virtuellen Maschine trennen in der Symbolleiste des Clients oder der Konsole. Nach der Auswahl eines Geräts erscheint wie unter der VMware Workstation die Warnung, dass die betreffende Hardware anschließend auf dem lokalen Rechner nicht mehr verfügbar ist.

    Weitere Limits für die USB-Unterstützung

    Der USB-Support von ESXi kennt neben den genannten Einschränkungen noch weitere. So ist er nur in VMs verfügbar, die mindestens Virtual Hardware 7 verwenden. Das Hinzufügen von vCPUs oder vRAM während des laufenden Betriebs einer VM (Hot Add) trennt die Verbindung mit USB-Geräten, was zu Datenverlusten führen kann. Daher sollte man sie vorher selbst entfernen.

    Bei der Umleitung von Client-Peripherie an VMs auf dem Server geht die Verbindung mit USB-Hardware auch dann verloren, wenn man den vSphere Client schließt, von dem aus man das Gerät umgeleitet hat.

    4 Kommentare

    Bild von Michael F
    Michael F sagt:
    3. April 2013 - 10:49

    Vielen Dank für diesen Artikel. Interessant wäre auch noch gewesen, welche Lösung für welches Szenario optimal ist. Manchmal kann es auch sinnvoll sein, den kompletten USB-Controller durchzureichen, z.B. wenn regelmäßig auf mehrere externe Festplatten ein Backup gemacht werden soll.

    Bild von Lukas
    Lukas sagt:
    9. Februar 2014 - 20:45

    Hallo,
    jetzt habe ich zwar einen Controller in Windows Server 2008 R2, aber keinen Treiber.

    Wie bekomme ich den USB-Controller in Windows zum Laufen.

    Danke

    LG

    Lukas

    Bild von Lexa
    Lexa sagt:
    5. Juni 2014 - 14:20

    Was man aber dabei nicht unterschlagen sollte..das Ganze funktioniert in einem ESX Cluster nur bedingt.. denn sobald eine VM ein USB Gerät gemountet hat, kann sie nicht mehr auf einen anderen ESX Host verschoben werden (kein vmotion!)!

    Bild von Jan
    Jan sagt:
    23. April 2015 - 14:20

    vMotion würde sofort gehen, wenn Du auf dem zweiten Host das benötigte USB Gerät schon stecken hättest. So musst Du das USB Gerät von der VM trennen, vMotion machen und das USB Gerät auf dem anderen Host anstecken und dann mit der VM verbinden...

    Nicht das die Fehlermeldung von vmWare immer sofort einleuchtet, aber im Bereich vMotion ist das alles recht selbsterklärend.