USB-Controller, Hubs, Ports und IOMMU bzw. PCI-Passthrough

Shihatsu

Legende
Thread Starter
Mitglied seit
16.08.2005
Beiträge
5.028
Moin, ich hab mal ein paar grundsätzliche Fragen zu USB-Controllern und Virtualisierung.
Und zwar geht es darum welche Ports eines Rechners warum per PCI-Passthrough an verschiedene VMs durchgereicht werden.
Was ich glaube zu wissen ist folgendes:
-Controller können an VMs durchgereicht werden, je nach Chipsatz landet ein Controller in einer eigenen IOMMU-Group oder eben nicht
-Controller die mit einem eigenen Chip realisiert werden der per PCI an den Chipsatz angebunden ist, haben eine eigene Group
-Einzelne Ports die an einem controller hängen können nicht selektiert werden
Soweit richtig?
Wenn ich jetzt den Bedarfsfall von 4 USB Ports habe, die an 4 verschiedene VMS durchgereicht werden sollen, was brauche ich da? Gesetzt den Fall ich könnte das Board-Design selber machen?
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Moin, ich hab mal ein paar grundsätzliche Fragen zu USB-Controllern und Virtualisierung.
Und zwar geht es darum welche Ports eines Rechners warum per PCI-Passthrough an verschiedene VMs durchgereicht werden.
Was ich glaube zu wissen ist folgendes:
-Controller können an VMs durchgereicht werden, je nach Chipsatz landet ein Controller in einer eigenen IOMMU-Group oder eben nicht
Kommt eher aufs Mainboard als den Chipsatz an. Und nicht jeder Onboard (USB)-Controller lässt sich durchreichen.
-Controller die mit einem eigenen Chip realisiert werden der per PCI an den Chipsatz angebunden ist, haben eine eigene Group
Muss nicht sein. Das hängt wieder vom Layout des Mainbords ab.
-Einzelne Ports die an einem controller hängen können nicht selektiert werden
Richtig. Je nach Virtualisierer lassen sich aber die USB-Geräte selbst an eine VM geben. Bei ESXi z.B. geht das aber nicht bei HID-Geräten wie Maus oder Tastatur.
Soweit richtig?
Wenn ich jetzt den Bedarfsfall von 4 USB Ports habe, die an 4 verschiedene VMS durchgereicht werden sollen, was brauche ich da? Gesetzt den Fall ich könnte das Board-Design selber machen?
Urgs. Idealerweise ein Board mit einem extra-Onboard Controller z.B. von Marvel oder ASMedia plus 3-4x PCI-Karten (ich hab mit Renesas-Chipsätzen recht gute Erfahrungen unter ESXi gemacht).
 
Ja, das hängt halt mitunter von den lanes der CPU ab. Wenn ein USB Controller am Chipsatz hängt, welcher ja noch andere Geräte bedient, dann geht das halt nicht. Mit Brückencontroller siehts glaube ich ähnlich aus. Das darf ich bald mal testen mit meinem neuen Board mit 2 PLXE Controllern. Ich habe da schon unterschiedliche Meinungen gehört, aber anscheinend ist das Board ungeeignet, obwohl die CPU 40 lanes hat.

Was da durchgereicht werden kann, muss man testen. Aber grundsätzlich halt von PCIe und den lanes abhängig. Zusätzlich an den PCIe Ports noch wie die gruppiert sind. Wenn das Board bifurcation unterstützt, hat man schon viel mehr Möglichkeiten.
 
Die bessere Variante fürs USB Durchreichen in eine VM ist die Verwendung eines USB-> LAN Adapters:

 
Danke für eure Antworten, diese erzeugen massivst Rückfragen!

Wovon hängt es ab ob ein USB-Controller durchreichbar ist oder nicht? Gibt es Erfahrungswerte zu ebstimmten Modellen?
Wovon hängt es beim Layout des Mainboards ab? Was ist da definierende Faktor? Wo die anbindung physisch erfolgt? Ob an CPU oder Chipsatz oder wovon?
Geht das mit dem virtualisieren von USB-Geräten unter KVM? Wie könnte man das testen?
Kartenplatz wäre extrem knapp - also quasi nicht vorhanden. 4 * Marvel aufs Board, jeweils mit einer Lane angebunden (so rein theoretisch) würde gehen?
LAN-Ports sind keine (freien) vorhanden - die sind fest verplant...
 
Ob und wie sich ein Gerät per PT durchreichen lässt, hängt sowohl von der Hardware als auch vom Virtualisierer ab, das ist Try & Error bzw auch Glückssache. In letzter Instanz hängt es auch möglicherweise von der Art des USB Gerätes, d.h. wenn Du da ein zickiges Security Dongle hast, kann das Probleme amchen, obwohl normale Sticks und Speichermedien problemlos funktionieren.

Eine USB -> LAN Adapter wird nicht direkt an den PC angeschlossen, den kannst Du irgendwo im Netz an einen Switch anschliessen. In der VM wird der Treiber für die Box installieren und das USB Gerät zugeordnet. Heisst Konkret: solange VM und Box im selben IP Kreis unterwegs sind und keine Firewall / Router / Switch / VLAN da irgendwas blockt, finden die sich und fertig.
 
Kannst Du mal sagen, was Dein Ziel ist bezüglich USB? Sonst wie der Kollege sagt; USB Server benutzen, dann musst Du Dich nicht um durchreichen kümmern.
 
jo, beschreib mal, welche Geräte du in den VMs nutzen willst und wofür. Tendenziell ist USB-Passthrough (meiner Meinung nach) die frickeligste Methode, die man nur verwenden sollte, wenn was anderes wirklich nicht geht. Und ob es dann im konkreten Fall tatsächlich geht, lässt sich meist wirklich nur durch Ausprobieren herausfinden und kann mit komischen Nebeneffekten einhergehen… :(

Nur mal ein Beispiel: kein „hot plug“ bei USB Geräten an einer Passthrough-USB-PCIe-Karte (mit manchen USB-Geräten gehts, mit andern nicht).
 
Das Ziel ist folgendes:
Eine Hardware als Host haben, diese Hardware hat Geräte die via USB angebunden sind und für den Host gedacht sind (LC-Display, LTE-Modem, ...) und zusätzlich sollen VMs drauf laufen an die man auch mal einen Massenspeicher via USB bringen können soll/muss/kann - und davon am besten bis zu 4.
 
In UnRaid kannst du beispielsweise alle USB Geräte die du magst Hotplug an eine VM durchreichen ohne die VM jedes mal neustarten zu müssen. Da gehen auch Maus und Tastatur usw..
Brauchst nur das Plugin: Libvirt Hotplug USB
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh