Donnerstag, 18. November 2010

USB-Geräte in virtuellen Maschinen

Bekanntlich hat VMWare seit einiger Zeit in ESX und vSphere Umgebungen seit einiger Zeit keinen USB-Support mehr:

Zwar ist mit vSphere 4.1 eine Änderung angekündigt, dass diverse USB-Controller wieder unterstützt werden sollen, aber auch hier bleibt die Frage offen ob und wenn ja, welche.

Außerdem bleibt bei direkter Hardware-Anbindung an einen Host immer das Problem, das virtuelle Maschinen an einen Host gebunden sind, was zu Problemen im Failover-Fall führt und im allgemeinen Virtualisierung und HA ein wenig ad absurdum führt.

Trotzdem bleibt aber oftmals die Notwendigkeit, USB-Geräte an eine virtuelle Maschine durchzureichen, z.B. Dongles für Datev oder CAD-Systeme, Seriell-Adapter, Festplatten, USB-Sticks und sonst noch so einiges.

Eine angenehme Lösung hierfür bietet die Virtualisierung des USB-Controllers in der Art, dass ein USB-Hub netzwerkfähig gemacht wird. Hierfür gibt es einige wenige Anbieter, welche sogenannte Netzwerk-USB-Hubs (USB Anywhere) anbieten. Von VMWare wird ein Gerät vom Hersteller "Digi" empfohlen. Diese Geräte haben meines Erachtens erhebliche Nachteile: Sie sind nur schwer zu bekommen, sind verhältnismäßig teuer (280$), habe wenig Anschlüsse (2) und pro virtuelle Maschine benötige ich ein seperates Gerät (1:1). Eine deutlich effizientere Lösung ist der Belkin Network USB-Hub F5L009: http://www.belkin.com/networkusbhub/

Das Gerät kostet 99$ UVP (beim Distributor eurer Wahl ab 60€ zu bekommen), kann 15 Geräte verwalten (6 Anschlüsse vorhanden, ggf. USB-Verteiler zusätzlich anschließen) und ist extrem einfach zu verwalten. Außerdem können beliebige viele virtuelle Maschinen gleichzeitig auf den Hub zugreifen, wobei ein USB-Gerät natürlich nur einer Maschine zugewiesen werden kann.

Im Folgenden möchte ich Euch zeigen, wie man das Gerät auf Windows 2003 oder Windows 2008 zum Laufen bringt und das ganze auch noch als Dienst!

Zunächst benötigt ihr das Installationspaket, welches Ihr entweder von der CD oder direkt von der Belkin-Homepage bekommt: Link zum Paket

Nun wird eigentlich nur der Programm-Ordner benötigt, aber nachdem ich den noch nicht aus der Setup extrahieren konnte, muss das ganze Ding einmal auf einem beliebigen WinXP installiert werden. Alternativ können die Programmdateien auch bei mir angefragt werden. Nun nimmt man den Programm-Ordner (wahrscheinlich unter C:\Programme\Belkin) und kopiert ihn auf den Zielserver. Vorsicht, es gibt unterschiedliche Programmdateien für x86 und x64. Das Programm läuft später, auch wenn die Setup-Routine nicht ausgeführt wurde!

Sollte dann folgendermaßen aussehen:


Als nächstes müssen wir die Treiber auf das System bekommen. Diese finden sich im Installationspaket unter: Utility\Connect\Files\Sxcsapi. Hier hat es vier Ordner:
  • Win XP --> Für Win2000, WinXP und Windows 2003 x86
  • Win Xp x64 --> Für Win2000, WinXP und Windows 2003 x64
  • Vista --> Für Vista und 2008 x86
  • Vista x64 --> Für Vista und 2008 x64 und Win 2008 R2
Leider lassen sich die Treiber nicht einfach per doppelklick installieren. Also erst mal in die Systemsteuerung und den Gerätemanager und von dort aus den Treiber manuell installieren.



Im Anschluss über "Datenträger" den Treiber von Hand auswählen.

Nun kann über die Connect-Software (C:\Programme\Belkin) die Software eingerichtet werden und USB-Geräte verbunden werden. Nicht vergessen, die USB-Geräte auf "automatisch verbinden" zu stellen.


Jetzt bringen wir die Software noch dazu, als Dienst ohne Benutzeranmeldung ausgeführt zu werden. Das geht mit den Programmen "instsrv" und "srvany" von Microsoft gut und einfach. Die Erklärung spar ich mir an dieser Stelle, da es in dem KB-Artikel 137890 gut beschrieben ist.

Der letzt Schritt, ist die Anmeldung des Dienstes zu ändern. Die Konfiguration der Software wird benutzerspezifisch gespeicher, das bedeutet als Anmeldung für den Dienst muss der Benutzer hinterlegt werden, mit dem die Connect-Software gestartet wurde und konfiguriert wurde. Außerdem dürfen Dienst und Software nicht gleichzeitig laufen.

Sprich: Erst Dienst beenden, dann Konfigurieren. Danach die Konfig-Software beenden (Vorsicht: Ein Klick auf das "x" minimiert diese nur in die Taskleiste) und den Dienst wieder starten.

That's it! Hört sich umständlicher an, als es ist! Funktioniert aber tadellos.

Erfolgreich im produktiven Betrieb mit:
- Datev USB-Dongeln
- AutoCAD-Dongeln
- Datev Smartcard-Reader
- diverse USB-to-Seriel Adaptern
- diverse Festplatten und Sticks.
- AKS Hardlock
- SafeNet
- ...

Außerdem haben wir mit einer USB-TV-Karte den Durchsatz getestet: Ruckelfrei!

Keine Kommentare:

Kommentar veröffentlichen