Kun je één USB-controller doorgeven aan een VM zonder de poorten van de host te verliezen?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Ja, maar alleen wanneer de poorten die je wilt toewijzen bij een controller horen die van de host kan worden geïsoleerd. PCI-passthrough wijst de volledige USB-controller toe, niet één aansluiting, dus elke poort die op die controller is aangesloten, gaat mee.

De labels op de behuizing geven geen betrouwbare indeling. Voor-, achter- en interne headers kunnen één controller delen, terwijl één achterpaneel poorten van twee controllers kan bevatten. Dat onderscheid bepaalt de veilige configuratie, de validatiemethode en het terugdraaipunt.

Breng controllers, poorten en IOMMU-groepen in kaart

Maak een lijst van PCI-USB-controllers en hun IOMMU-groepen. Sluit vervolgens een onschadelijk apparaat aan op elke fysieke poort en controleer welke controller het ontvangt. Sla de indeling op voordat je stuurprogramma's wijzigt.

Een IOMMU-groep is op de meeste systemen de minimale veilige toewijzingsgrens. Als de doelcontroller een groep deelt met opslag, netwerkapparatuur of de enige USB-controller van de host, kan passthrough meer verwijderen dan bedoeld.

De eenvoudigste oplossing voor een niet-scheidbare indeling is een speciale PCIe-USB-kaart. Kies een kaart waarvan de controller geen onveilige groep deelt en waarvan het vermogensbudget geschikt is voor de aangesloten apparaten.

Beslis op basis van signalen voor de overlevingskans van de host

Houd SSH of een ander niet-USB-beheerkanaal actief. Controleer of het toetsenbord, opstartmedium, de UPS-kabel en invoerapparatuur van het installatieprogramma van de host niet zijn aangesloten op de controller die opnieuw wordt toegewezen.

Koppel alleen de beoogde PCI-functie aan VFIO en start opnieuw op. De host moet de overige controller behouden en de VM moet alle poorten op het toegewezen apparaat herkennen.

Gebruik de onderstaande tabel voordat je onvervangbare hardware aansluit.

Waargenomen toestand Oordeel Volgende actie
Speciale controller en schone groep Toewijzen Host behoudt andere controllers
Controller deelt een groep met een kritiek apparaat Niet toewijzen Voeg een aparte USB-kaart toe
Eigendom van poorten onbekend Eerst in kaart brengen Nog geen productieapparaten aansluiten

Wijs de controller toe met een terugdraaipad

Noteer het oorspronkelijke stuurprogramma en de opstartparameters en wijzig vervolgens één controller tegelijk. Gebruik ACS override niet als eerste oplossing, omdat groepen daardoor gescheiden kunnen lijken zonder dat de onderliggende hardware-isolatie verandert.

Koppel het PCI-apparaat aan de VM en schakel de vereiste machine- en IOMMU-opties in. Test hot-plug, langdurige overdrachten, het resetten van de VM en het opnieuw opstarten van de host.

De hardwarebeoordeling van de ZimaCube van ZimaSpace laat zien waarom de indeling van uitbreidingen belangrijk is.

De community-gids voor VFIO-passthrough legt IOMMU-groepering en apparaatisolatie uit.

-15% OFF
Single board computer zimaboard2

Test elke fysieke poort opnieuw

Test na het opstarten elke hostpoort en elke poort die eigendom is van de VM met opslag en een HID-apparaat met laag risico. Controleer of de host bereikbaar blijft wanneer de VM wordt gestopt of crasht.

Herhaal dit na een volledige uitschakeling en stroominschakeling, omdat firmware apparaten opnieuw kan rangschikken of de initialisatie kan wijzigen. Zorg voor een consoleherstelmethode die niet afhankelijk is van de toegewezen controller.

Ga alleen verder wanneer de doelcontroller een veilige groep heeft en de host beheer- en kritieke USB-apparaten behoudt. Stop als opslag, netwerk, UPS of alle invoerapparatuur van de host verdwijnt samen met de doel functie.

Ondersteuning & Tips

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.