Czy można przekazać jeden kontroler USB do maszyny wirtualnej bez utraty portów hosta?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Tak, ale tylko wtedy, gdy porty, które chcesz przekazać, należą do kontrolera, który można odizolować od hosta. Przekazywanie PCI przypisuje cały kontroler USB, a nie pojedyncze złącze, więc wszystkie porty podłączone do tego kontrolera zostaną przekazane razem z nim.

Oznaczenia na obudowie nie są wiarygodną mapą. Przednie, tylne i wewnętrzne złącza mogą współdzielić jeden kontroler, a pojedynczy tylny panel może zawierać porty z dwóch kontrolerów. To rozróżnienie decyduje o bezpiecznej konfiguracji, metodzie weryfikacji i punkcie przywracania.

Mapowanie kontrolerów, portów i grup IOMMU

Wyświetl listę kontrolerów USB PCI i ich grup IOMMU, a następnie podłącz nieszkodliwe urządzenie do każdego fizycznego portu i obserwuj, który kontroler je otrzymuje. Zapisz mapę przed zmianą sterowników.

Grupa IOMMU jest na większości systemów minimalną bezpieczną granicą przypisania. Jeśli docelowy kontroler współdzieli grupę z pamięcią masową, siecią lub jedynym kontrolerem USB hosta, przekazywanie może spowodować usunięcie większej liczby urządzeń, niż zamierzano.

Najczystszym rozwiązaniem w przypadku nierozdzielnego układu jest dedykowana karta USB PCIe. Wybierz kartę, której kontroler nie współdzieli niebezpiecznej grupy i której budżet mocy odpowiada podłączonym urządzeniom.

Decyzja na podstawie sygnałów przetrwania hosta

Pozostaw aktywne połączenie SSH lub inną ścieżkę zarządzania niezależną od USB. Upewnij się, że klawiatura hosta, nośnik rozruchowy, kabel UPS i urządzenie wejściowe instalatora nie są podłączone do kontrolera, który ma zostać ponownie przypisany.

Przypisz tylko docelową funkcję PCI do VFIO i uruchom ponownie system. Host powinien zachować pozostałe kontrolery, a maszyna wirtualna powinna wykryć wszystkie porty przekazanego urządzenia.

Przed podłączeniem sprzętu, którego nie można łatwo zastąpić, skorzystaj z poniższej tabeli.

Zaobserwowany stan Werdykt Następne działanie
Dedykowany kontroler i czysta grupa Przekaż Host zachowuje pozostałe kontrolery
Kontroler współdzieli grupę z krytycznym urządzeniem Nie przekazuj Dodaj oddzielną kartę USB
Nieznana przynależność portów Najpierw zmapuj Na razie nie podłączaj urządzeń produkcyjnych

Przekaż kontroler z możliwością wycofania zmian

Zapisz oryginalny sterownik i parametry rozruchowe, a następnie zmieniaj konfigurację tylko jednego kontrolera naraz. Nie stosuj ACS override jako pierwszego rozwiązania, ponieważ może on sprawić, że grupy będą wyglądać na rozdzielone bez zmiany rzeczywistej izolacji sprzętowej.

Podłącz urządzenie PCI do maszyny wirtualnej i włącz wymagane opcje maszyny oraz IOMMU. Przetestuj podłączanie podczas pracy, długotrwałe transfery, reset maszyny wirtualnej i ponowne uruchomienie hosta.

Recenzja sprzętowa ZimaSpace dotycząca ZimaCube pokazuje, dlaczego układ rozszerzeń ma znaczenie.

Społecznościowy przewodnik po przekazywaniu VFIO wyjaśnia grupowanie IOMMU i izolację urządzeń.

-15% OFF

Ponownie przetestuj każdy fizyczny port

Po uruchomieniu przetestuj każdy port hosta i każdy port przypisany do maszyny wirtualnej, używając pamięci masowej oraz urządzenia HID o niskim ryzyku. Sprawdź, czy host pozostaje dostępny, gdy maszyna wirtualna zostanie zatrzymana lub ulegnie awarii.

Powtórz test po pełnym cyklu zasilania, ponieważ oprogramowanie układowe może zmienić kolejność urządzeń lub sposób ich inicjalizacji. Zachowaj metodę odzyskiwania dostępu do konsoli, która nie zależy od przekazanego kontrolera.

Kontynuuj tylko wtedy, gdy docelowy kontroler ma bezpieczną grupę, a host zachowuje zarządzanie i krytyczne urządzenia USB. Zatrzymaj się, jeśli wraz z docelową funkcją znikną pamięć masowa, sieć, UPS lub wszystkie urządzenia wejściowe hosta.

Wsparcie i wskazówki

Więcej do przeczytania

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.