Wie verwenden Sie USB-Geräte mit einer VMware vSphere virtuellen Maschine

Der Hauptfunktion eines Hypervisors ist es, Geräte zu emulieren, die von virtuellen Maschinen verwendet werden, auf Software-Ebene. Geräte wie virtuelle Controller, Festplatten, DVD-ROMs, Grafikkarten, Netzwerkkarten, Eingabegeräte usw. werden in einer virtuellen Maschine erstellt. Aber was passiert, wenn Sie einen Drucker, einen Scanner, eine USB-Flash-Drive, eine USB-Festplatte, einen USB-Smartcard-Reader, Sicherheits-Dongles, USB-Lizenzschlüssel usw. verbinden möchten?

Für externe physische Geräte mit einer USB-Schnittstelle können Sie sie an eine virtuelle Maschine verbinden, die unter VMware Workstation oder einem ESXi-Host läuft, indem Sie die USB-Passthrough-Funktion verwenden. Dieser Blog-Beitrag behandelt die Verwendung dieser Funktion in VMware vSphere auf ESXi-Hosts, einschließlich der Anforderungen und Schritte zur Verbindung von USB-Geräten.

Was ist USB Passthrough?

USB-Passthrough in VMware ist eine Funktion, die es Ihnen ermöglicht, ein physisches USB-Gerät, das an einem USB-Port auf einem physischen ESXi-Host angeschlossen ist, einer virtuellen Maschine als wäre das USB-Gerät direkt mit der virtuellen Maschine verbunden. USB-Passthrough ist eine Funktion, die ab ESXi 4.1 verfügbar ist.

Die Gründe für die Verwendung von Pass Through für ein USB-Gerät von dem ESXi-Host in eine Gast Betriebssystem (OS) einer virtuellen Maschine sind vielfältig. Zum Beispiel kann es der Fall sein, dass Sie ein älteres Scanner oder Drucker haben, die keine Treiber für die neuesten Versionen des Windows Betriebssystems haben. Sie können die ältere Version von Windows installieren, die das USB-Gerät unterstützt, und dieses Gerät mit einer virtuellen Maschine verbinden. Eine weitere praktische Anwendung dieser Funktion ist, wenn Sie Dateien von/zum USB-Festplatte direkt zwischen einer virtuellen Maschine und dem USB-Gerät mit hoher Geschwindigkeit kopieren müssen. Es kann sein, dass Benutzer Software, die durch Hardware-USB-Lizenzschlüssel geschützt ist, in virtuellen Maschinen verwenden müssen.

Wie USB Pass Through funktioniert

Es sind drei Hauptkomponenten erforderlich, um USB Pass Through zu arbeiten: der Schlichtungsdienst, der USB-Controller und das physische USB-Gerät.

Der Schlichtungsdienst ist ein dedizierter Dienst auf einem ESXi-Server. Der Schlichtungsdienst durchsucht physische USB-Geräte, die mit dem physischen Server verbunden sind, und ist verantwortlich für die Weiterleitung von USB-Geräteverkehr zwischen einem physischen Host und einer virtuellen Maschine. Gleichzeitig kann nur eine virtuelle Maschine auf das USB-Gerät zugreifen. Der Zugriff auf ein mit einer virtuellen Maschine verbundenes USB-Gerät ist für andere virtuelle Maschinen blockiert. Der USB-Schlichtungsdienst unterstützt bis zu 15 USB-Controller (vSphere 7.0). Der Schlichtungsdienst ist standardmäßig in ESXi aktiviert.

Ein USB-Controller, der auf einem physischen ESXi-Server verwendet wird, ist der Controller, an den die physischen USB- Ports angeschlossen sind. Der physische USB-Controller arbeitet mit physischen USB-Geräten, die in die physischen USB-Ports am Server eingesteckt sind. USB-Controller können integriert (auch als integriert bezeichnet und in einem Chip auf der Mainboard- Plakette verbaut) oder externe (als PCI- oder PCIe-Karten realisiert, die in die entsprechenden Slots auf der Server-Mainboard-Plakette eingesetzt werden) sein. Der integrierte USB-Controller agiert als Brücke zwischen einem USB-Bus und einem PCIe- (oder PCI-)Bus. Der integrierte USB-Controller ist physikalisch über die entsprechende Anzahl von PCIe-Lanes an ein Mainboard-Chipsatz angeschlossen.

Ein virtueller USB-Controller ist ein emuliertes Gerät, das speziell für eine虚拟机 auf einem Hypervisor erstellt wird. Ein virtueller USB-Controller interagiert mit einem physischen USB-Controller, wenn ein physisches USB-Gerät von einem physischen ESXi-Host an eine Gasteinrichtung in der virtuellen Maschine weitergeleitet wird. Der virtuelle USB-Controller ist in der VM-Konfiguration erforderlich, um die USB-Passthrough-Funktion in der VM zu verwenden.maximal acht virtuelle USB-Controller können an einem ESXi-Host für eine virtuelle Maschine verbunden werden. Wenn Sie einen virtuellen USB-Controller aus der VM-Konfiguration entfernen müssen, müssen Sie zunächst alle USB-Geräte entfernen, die mit diesem Controller verbunden sind. Nachdem ein virtueller USB-Controller zu der virtuellen Maschine Konfiguration hinzugefügt wurde, wird das VMware USB-Treiber auf dem Gasteinrichtung installiert.

Ein physisches USB-Gerät ist jedes USB-Gerät, das über eine USB-Schnittstelle und einen USB-Port verfügt, um mit einem Computer verbunden zu werden.maximal 20 USB-Geräte können an einer einzelnen virtuellen Maschine oder an einem ESXi-Host angeschlossen werden.

Die USB-Standards und Controller- Modi sind:

  • USB 2.0 und USB 1.1 (EHCI+UHCI)
  • USB 3.0 (xHCI) VM-Hardware-Version 8 oder höher

Nachdem Sie ein physisches USB-Gerät an eine virtuelle Maschine mithilfe der VMware USB-Passthrough-Funktion angeschlossen haben, könnten Sie im Gastbetriebssystem Treiber für das angeschlossene USB-Gerät installieren müssen.

Anforderungen an USB 3.0

USB 3.0 ist ab VMware vSphere 5.5 Patch 3 für ESXi-Server verfügbar. Dies erfordert den USB xHCI-Treiber in der VM-Konfiguration. Die Anforderungen an den Betriebssystemen für die Verwendung von USB 3.0 Passthrough sind: Windows 8.1 oder höher, Windows Server 2012 R2 oder höher oder Linux mit Linux-Kernel 2.6.35 oder höher. USB 3.1-Geräte werden ab VMware vSphere 7.0 mit vollem Geschwindigkeitsvermögen unterstützt.

USB Passthrough-Einschränkungen

Es gibt einige Einschränkungen, die Sie beim Verwenden der USB-Passthrough-Funktion kennen sollten:

  • Ein USB-Laufwerk kann nicht als Bootlaufwerk für eine virtuelle Maschine verwendet werden.
  • Wenn ein USB-Laufwerk verwendet wird, um ESXi zu booten, kann dieses USB-Laufwerk nicht einer virtuellen Maschine angeschlossen werden.
  • Eine virtuelle Hardwareversion 7 oder höher ist für eine virtuelle Maschine erforderlich.

Einige USB-Geräte könnten von VMware nicht unterstützt werden:

  • USB-Hub
  • Audiogeräte und Video-Kameras, die asynchronen Datentransfer verwenden
  • Einige USB-Tastaturen und Mäuse (weitere Details finden Sie in dem VMware-Artikel 1021345).
  • Manche Smart Cards, die CCID verwenden, müssen zusätzliche Konfigurationen durchlaufen, um mit einer virtuellen Maschine verbunden zu werden.

vMotion ist für virtuelle Maschinen möglich, die mit USB-Passthrough-Geräten verbunden sind. Nachdem die virtuelle Maschine ordnungsgemäß konfiguriert wurde und vMotion aktiviert wurde, bleiben die USB-Geräte nach der Migration zu einer anderen ESXi-Host verbunden.

Es gibt Einschränkungen für virtuelle Maschinen, die USB-Passthrough-Festplatten verwenden:

  • Der verteilte Leistungsmanagement (DPM) wird nicht unterstützt, da ein ESXi-Host ohne den USB-Gerätetrenner von einer virtuellen Maschine heruntergefahren werden kann, um Energie zu sparen. DPM sollte auf diesem Rechner deaktiviert werden.
  • Der Fault Tolerance ist nicht unterstützt.
  • Eine VM kann nicht angehalten oder heruntergefahren werden (sonst werden die USB-Geräte von der VM getrennt und können nur nach der Migration der VM zu dem ursprünglichen ESXi-Host, an dem die USB-Geräte physikalisch angeschlossen sind, wieder verbunden werden). Die VM muss manuell zu dem ESXi-Host mit dem USB-Gerät verschoben werden, wenn Sie diese VM anschalten müssen. Linux-Gäste, die wiederhergestellt wurden, können USB-Geräte nach der Wiederverbindung an anderen Mount-Punkten mounten.
  • ESXi-Hosts, die virtuelle Maschinen mit USB-Passthrough-Geräten haben, müssen über die virtuelle Maschinen-Kernel-Schnittstelle (für Management-Netzwerke) und TCP-Port 902 zugänglich sein.

Trenne USB-Geräte von einer virtuellen Maschine vor der Verwendung der Hot-Add-Funktion und dem Hinzufügen von CPUs, Arbeitsspeicher oder PCI-Geräten. Ansonsten werden USB-Geräte automatisch getrennt und es kann zu Datenverlusten kommen, wenn die Hot-Add-Funktion verwendet wird. Wenn Sie eine VM anhalten und dann fortsetzen, werden USB-Geräte getrennt und anschließend der VM wieder angegliedert.

Bezüglich der Erstellung eines VMware-virtuellen USB-Laufwerks oder eines virtuellen USB-Flashlaufwerks, um es einer laufenden virtuellen Maschine auf ESXi oder VMware Workstation anzubinden, funktioniert diese Option derzeit nicht.

Wie verbinden Sie ein USB-Gerät mit einer virtuellen Maschine

Nachdem wir uns mit der Theorie vertraut gemacht haben, können wir zu den praktischen Schritten übergehen und die Konfiguration in VMware vSphere anschauen.

  1. Schlage ein USB-Gerät in einem USB-Port auf Ihrem ESXi-Server ein. In meinem Fall werde ich ein USB-Flashlaufwerk einfügen.
  2. Dann kannst du überprüfen, ob das USB-Gerät mit ESXi verbunden ist, indem du die ESXi-Kommandozeile verwendest:

    lsusb

  3. Wie du in dem folgenden Screenshot sehen kannst, ist mein Flashlaufwerk nun mit dem ESXi-Server verbunden.

  4. Der USB-Arbiter-Dienst muss ausgeführt werden. Du kannst den Status des Dienstes mit dem Befehl überprüfen:

    chkconfig usbarbitrator --list

  5. Wenn der USB-Arbiter gestoppt ist, kann er mit dem Befehl

    /etc/init.d/usbarbitrator start

    gestartet werden.

    Hinweis: Mehr über ESXiCLI erfahren Sie in dem blog post.

    Der virtuelle Rechner ist auf dem ESXi-Host platziert, der von vCenter Server verwaltet wird. In meinem Beispiel ist Windows als Gast-Betriebssystem installiert.Öffnen Sie den VMware vSphere Client und navigieren Sie zu Hosts and Clusters. Wählen Sie im Navigator-Bereich einen virtuellen Rechner, an den Sie das USB-Gerät mithilfe der Direktzugriffsfunktion verbinden möchten. Der virtuelle Rechner muss heruntergefahren sein. Sie müssen VMware Tools auf dem Gast-Betriebssystem installieren.

  6. Sobald Sie die virtuelle Maschine ausgewählt haben, klicken Sie auf Aktionen > Bearbeiten.

  7. In der BearbeitenFenster, prüfen, ob sich ein USB-Controller in den virtuellen Maschinen-Einstellungen befindet. Wenn der USB-Controller fehlt, klicken Sie auf Neues Gerät hinzufügen > USB-Controller und wählen Sie den USB-Controller-Typ (USB 2.0 oder USB 3.0) aus.
  8. Wenn der USB-Controller vorhanden ist, müssen Sie das USB-Gerät, das mit dem ESXi-Host verbunden ist, Ihrer VM hinzufügen. Klicken Sie auf Neues Gerät hinzufügen > Host USB-Gerät.
  9. Eine neue Zeichenfolge wird zur virtuellen Maschinenkonfiguration hinzugefügt. Im Eingabefeld Neuer USB-Host wählen Sie das USB-Gerät aus, das Sie mit der VM verbinden möchten. Ich habe jetzt zwei USB-Flashdrives an meinem physischen ESXi-Server angeschlossen und verbinde den Verbatim-Flashdrive mit meiner VM (Verbatim-Produkt 0x0302). Wenn Sie vMotion-Unterstützung aktivieren müssen, erweitern Sie das Eingabefeld Neuer USB-Host und wählen Sie die Checkbox “Unterstütze vMotion während des Gerätestabds” aus. Beachten Sie die vMotion-Anforderungen und Beschränkungen. Klicken Sie auf OK, um die Einstellungen zu speichern und dieses Fenster zu schließen.
  10. Starten Sie eine virtuelle Maschine. Wenn die Gast-OS geladen ist, warten Sie, bis es initialisiert und das USB-Flashdrive installiert hat. Danach öffnen Sie das Windows-Gerätedialogfenster. Klicken Sie mit der rechten Maustaste auf Mein Computer und wählen Sie aus dem Kontextmenü Verwalten aus. In dem Fenster Computerverwaltung klicken Sie auf Gerätedialog und erweitern Sie die Sektion Laufwerke (da wir ein USB-Flashdrive angeschlossen haben, sollte dieses Gerät in dieser Kategorie auftauchen). Wir sehen das Verbatim-USB-Gerät, der Name meines USB-Sticks, der mit der VMware USB Passthrough-Funktion an die VM angeschlossen ist.
  11. Öffne Disk Management im Computer Management-Fenster und stelle sicher, dass dem USB-Flashdrive eine Festplatte zugewiesen ist. In meinem Fall ist alles korrekt und ich kann Daten von der USB-Flashdrive auf die virtuelle Festplatte einer VM im Windows Gast und umgekehrt kopieren.

VMware PCI Passthrough

Wenn das USB-Gerät, das du mit der VMware USB Passthrough-Funktion einer VM verbinden möchtest, von VMware nicht unterstützt wird, kannst du versuchen, die PCI Passthrough-Funktion zu verwenden und den gesamten physischen USB-Controller, der über eine PCI-Schnittstelle verfügt, einer VM zu verbinden.

Wenn dein ESXi-Server einen USB-Controller in einem PCI-Slot eingebaut hat, kannst du dieses PCI-Gerät einer virtuellen Maschine übergeben. VMware PCI Passthrough wird auch VMDirectPass genannt. Diese Methode ist weniger bequem als die USB Passthrough-Methode, aber sie kann dir helfen, die Aufgabe zu erledigen.

Anforderungen

Der Intel Directed I/O oder die AMD I/O Virtualization Technology (AMD IOMMU) muss von der Serverhardware unterstützt und im UEFI/BIOS aktiviert werden. Wenn du auf deinem Server nur einen USB-Controller hast, solltest du einen zusätzlichen USB-Controller anschließen, um Verbindungen zu USB-Geräten, die von deinem physischen ESXi-Host verwendet werden, zu vermeiden.

Einschränkungen und Beschränkungen:

  • Du kannst eine virtuelle Maschine nicht in die Pause versetzen.
  • Eine VM kann nicht mit vMotion auf andere ESXi-Hosts migriert werden.
  • Virtuelle Maschinen-Snapshots werden nicht unterstützt.

Let’s look at the Workflow, um ein USB-Gerät an eine VM zu verbinden, indem man PCI-Passthrough verwendet und den gesamten USB-Controller, an den das USB-Gerät angeschlossen ist, an die VM weiterleitet.

  1. Um das USB-Gerät und den USB-Controller zu identifizieren, an den Ihr USB-Gerät angeschlossen ist (wenn mehrere USB-Controller auf Ihrem Server installiert sind), verwenden Sie diesen Befehl:

    lsusb -v | grep -e Bus -e iSerial

  2. Finden Sie die Zeichenkette mit dem Namen Ihres an den USB-Controller angeschlossenen USB-Geräts und identifizieren Sie die Controller-ID (z.B. bus002).
  3. Wenn Sie ein USB-Gerät an einen ESXi-Server anschließen, können Sie das VMkernel-Log überprüfen:

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

  4. Öffnen Sie den VMware vSphere Client und gehen Sie zu Hosts and Clusters.
  5. Wählen Sie den ESXi-Host aus, auf dem Ihre virtuelle Maschine resident ist (an die Sie das USB-Gerät anschließen müssen).
  6. Gehe zur Registerkarte Configure und wähle PCI Devices in der Sektion Hardware.
  7. Finden und wählen Sie den benötigten USB-Controller aus der Liste der PCI-Geräte aus, indem Sie die zuvor ermittelte ID verwenden.
  8. Der Status des gewählten Treibers sollte jetzt zu Available wechseln.
  9. Drücken Sie OK, um die Einstellungen zu speichern.
  10. Starten Sie den ESXi-Host neu, damit die Änderungen wirksam werden.
  11. Stellen Sie sicher, dass Ihre virtuelle Maschine ausgestattet ist. Gehen Sie zu den VM-Einstellungen, klicken Sie auf Neues Gerät hinzufügen > PCI-Gerät > Hinzufügen. Wählen Sie Ihren USB-Controller aus dem Dropdown-Menü mit der korrekten ID aus.
  12. Starten Sie die virtuelle Maschine. Prüfen Sie die Geräte im Gast-Betriebssystem. Wenn Windows auf der virtuellen Maschine installiert ist, öffnen Sie den Geräte-Manager und überprüfen Sie die Treiber und die Speichergeräte.

USB-Smartcard-Verbindung

Manche USB-Geräte, die die entsprechende CCID-Klasse haben, werden standardmäßig nichtunterstützt, um mit VMs verbunden zu werden. Die Fehlermeldung “Kann ‘path:0/1/6/1’ nicht mit dieser virtuellen Maschine verbinden. Das Gerät wurde nicht gefunden”. In den Protokollen können Sie die Nachricht sehen:

(vmx-vcpu-0) hat vor dem Verwenden keine Schnittstelle 0 beansprucht

PCSCD ist der ESXi-Daemon, der Smartcard-Leser steuert. Der Zugriff auf USB-Smartcards ist für virtuelle Maschinen standardmäßig deaktiviert, um Konflikte zu vermeiden, da ein ESXi-Host ein Smartcard benötigt. Daher kann USB-Passthrough mit den Standardeinstellungen für USB-Smartcards nicht verwendet werden. Sie müssen die ESXi-Hostkonfiguration bearbeiten, um USB-Passthrough für USB-Smartcards zu aktivieren.

  1. Stoppen Sie die virtuelle Maschine. Öffnen Sie die virtuellen Maschinen-Einstellungen, wählen Sie den Abschnitt VM-Optionen und klicken Sie auf Einstellungen bearbeiten.

  2. In der Konfigurationseinstellungen-Fenster, klicken Sie auf Konfigurationseinstellungen hinzufügen.

    Alternativ können Sie die VMX-Konfigurationsdatei der virtuellen Maschine im Befehlszeileninterface mit einem SSH-Client verwalten, indem Sie sich mit dem ESXi-Konsole verbinden.

  3. Bearbeiten oder fügen Sie dieser Zeile in der virtuellen Maschine hinzu, wenn die Parameter nicht vorhanden ist:

    usb.generic.allowCCID = "TRUE"

  4. Speichern Sie die Einstellungen der virtuellen Maschine.
  5. Stoppen Sie den PCSCD-Dienst mit dem folgenden Befehl auf dem ESXi-Befehlszeileninterface:

    sudo /etc/init.d/pcscd stop

  6. Stellen Sie sicher, dass der PCSCD-Dienst nicht ausgeführt wird:

    ps | grep pcscd

  7. Starten Sie die virtuelle Maschine und überprüfen Sie die Geräte, um sicherzustellen, dass der USB-Smartcard-Leser mit der virtuellen Maschine verbunden ist.

Fazit

Sie können verschiedene Geräte, die an USB-Ports auf physischen ESXi-Hosts angeschlossen sind, direkt zu virtuellen Maschinen verbinden und in den Gastbetriebssystemen der virtuellen Maschinen verwenden, genau wie Sie diese USB-Geräte auf normalen physischen Computern nutzen. Sie können sogar virtuelle Maschinen mit externen USB-Geräten, die an den primären ESXi-Host angeschlossen sind, mithilfe von vMotion auf einen anderen Host migrieren. Bei einigen Einschränkungen gleitet die VMware-USB-Passthrough-Funktion dennoch in verschiedenen Situationen mehr Kapazitäten und Flexibilität hinzu.

VMware-VM-Backups sind wichtig für diejenigen, die VMware vSphere verwenden. Laden Sie NAKIVO Backup & Replication herunter und versuchen Sie diese universelle Datenschutzlösung, um Ihre VMware vSphere-Virtuellen Maschinen und andere Daten in Ihrer Umgebung zu schützen.

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