Przekazywanie przez USB przekierowywanie dysków / urządzeń flash USB na maszynę wirtualną na VMWare ESXi

Na hoście VMWare ESXi możesz przekazać lokalne urządzenie USB / dysk flash / dysk podłączony do hosta na maszynę wirtualną. Technologia ta nosi nazwę USB Passthrough i jest dostępna od wersji ESXi 4.1..

Załóżmy, że naszym zadaniem jest przekierowanie zewnętrznego napędu USB 3.0 lokalnie podłączonego do hosta ESXi 6.7 na maszynę wirtualną. Dostęp do dysku jest potrzebny, aby szybko skopiować dane bezpośrednio z maszyny wirtualnej na osobny dysk USB.

Treść

  • Funkcje trybu USB Passthrough w VMWare
  • USB Passthrough: Przekazywanie urządzenia USB do VM na ESXi
  • VMware PCI Passthrough (VMDirectPath): kontroler USB probros na VM

Funkcje trybu USB Passthrough w VMWare

Jak już zrozumiałeś, tryb Passthrough umożliwia przekazanie fizycznego urządzenia podłączonego do hosta ESXi bezpośrednio do systemu-gościa maszyny wirtualnej. W trybie passthrough (przechodzenie przez urządzenie) możesz dać maszynie wirtualnej bezpośredni dostęp do napędu / napędu flash USB, modemu lub całego kontrolera PCI / USB.

ESXi potrzebuje kilku podstawowych komponentów do przesyłania dalej urządzeń USB:

  • Arbiter - oddzielna usługa na serwerze ESXi, która skanuje podłączone fizyczne urządzenia USB, jest odpowiedzialna za routing ruchu urządzenia USB między hostem a maszyną wirtualną, kontroluje blokowanie dostępu do urządzenia (tylko jedna maszyna wirtualna może korzystać z podłączonego urządzenia USB). Arbiter USB może jednocześnie śledzić do 15 kontrolerów USB.
  • Kontrolery USB - Kontroler USB musi być zainstalowany zarówno na hoście fizycznym, jak i na maszynie wirtualnej.

Aby zainstalować kontroler USB dla VM na VMWare ESXi, otwórz jego ustawienia i dodaj nowe urządzenie - kontroler USB (Kontroler USB) Podczas dodawania kontrolera USB musisz wybrać jego typ:

  • USB 2.0 (EHCI + UHCI) - kontroler z obsługą urządzeń USB 2.0 i USB 1.1;
  • USB 3.0 (xHCI) - obsługuje szybkie urządzenia USB 3.0, wymaga sprzętu wirtualnego w wersji 8 i wyższej.
Tryb USB 3.0 jest dostępny od wersji vSphere 5.5 patch 3. Aby obsługiwać ten tryb, kontroler xHCI musi działać w systemie-gościu. Obsługiwane systemy operacyjne gościa począwszy od Windows 8.1 / Windows Server 2012 R2 i Linux z jądrem 2.6.35.

USB Passthrough: Przekazywanie urządzenia USB do VM na ESXi

W natywnym trybie USB Passthrough można podłączyć fizyczne urządzenie USB z hosta do maszyny wirtualnej VMWare.

Główne wymagania i ograniczenia tej metody przekazywania:

  • Sprzęt wirtualny 7.0 lub nowszy;
  • Możesz zapewnić bezpośredni dostęp do urządzenia USB za pomocą tylko jednej maszyny wirtualnej;
  • Maksymalna liczba urządzeń USB przesłanych dla jednej maszyny wirtualnej wynosi 20;
  • Pobieranie maszyn wirtualnych z USB nie jest obsługiwane.

Po dodaniu wirtualnego kontrolera USB dla maszyny wirtualnej możesz przesłać dalej dysk USB podłączony do hosta.

  1. Dodaj urządzenie w ustawieniach VM Hostuj urządzenie USB i kliknij Dodaj;
  2. Z rozwijanej listy wybierz podłączone urządzenie USB, które chcesz dodać;
  3. Aby obsługiwać vMotion dla maszyn wirtualnych z podłączonym fizycznym dyskiem USB, włącz opcję „Obsługa vMotion, gdy urządzenie jest podłączone„;
  4. Następnie dysk USB powinien pojawić się w systemie operacyjnym gościa maszyny wirtualnej.
Istnieje wiele ograniczeń vMotion dla maszyn wirtualnych z podłączoną pamięcią USB:

  1. Nie można wyłączyć maszyny wirtualnej ani jej wstrzymać. Po włączeniu takiego komputera musisz ręcznie migrować go do hosta, do którego podłączone jest urządzenie USB;
  2. Tryb DPM nie jest obsługiwany, ponieważ vCenter może wyłączyć hosta za pomocą urządzenia USB w celu oszczędzania energii;
  3. Hosty ESXi z maszyną wirtualną i fizycznym urządzeniem USB muszą być dostępne przez vmk0 przez port TCP 902.

Jeśli podczas dodawania nowego urządzenia USB klient vSphere zapisuje, że nie wykryto żadnych urządzeń USB (Brak dostępnych urządzeń USB), oznacza to, że Twój dysk USB nie jest obsługiwany przez VMWare do przekazywania w tym trybie. Lista kompatybilnych urządzeń USB znajduje się na stronie VMWare (nie jest bardzo duża). Zobacz „Urządzenia USB przetestowane pod kątem przejścia z hosta ESXi na maszynę wirtualną w ESXi 6.7”W artykule https://kb.vmware.com/s/article/1021345.

W takim przypadku możesz przesłać cały kontroler USB do maszyny wirtualnej z hosta ESXi.

VMware PCI Passthrough (VMDirectPath): kontroler USB probros na VM

Innym, mniej wygodnym sposobem zapewnienia dostępu z maszyny wirtualnej do fizycznego urządzenia USB jest przekazanie całego kontrolera USB z hosta ESXi. Ten tryb jest nazywany VMDirectPath. Aby z niego skorzystać, chipset serwera musi obsługiwać Intel Directed I / O lub Technologia wirtualizacji we / wy AMD (AMD IOMMU), i ten tryb jest włączony w ustawieniach BIOS / UEFI.

Jeśli na serwerze jest zainstalowany tylko jeden kontroler USB, podczas przekazywania go do maszyny wirtualnej nie będzie można używać lokalnie podłączonych urządzeń hosta USB (klawiatura, mysz). W takim przypadku lepiej jest dodać dodatkowy kontroler PCI USB do serwera.

Jeśli host ma kilka kontrolerów USB, można zidentyfikować podłączone urządzenie USB i numer kontrolera za pomocą powłoki ESXi. Lista urządzeń USB:

lsusb -v | grep -e Bus -e iSerial

W danych wyjściowych polecenia musisz znaleźć wiersz napędu USB, na przykład:

Magistrala 002 Urządzenie 003: ID 0280: a00c Toshiba America Info. Systems, Inc.

Następnie, korzystając z numeru kontrolera (w tym przypadku Bus02), określ koncentrator główny i jego iSerial:

Magistrala 002 Urządzenie 001: ID 1d6b: 0002 Główny koncentrator Linux Foundation 3.0 iSerial 1 0000: 00: 1D.0
Jeśli nie widzisz dysku USB, spróbuj fizycznie podłączyć i odłączyć go i zajrzeć do dziennika vmkernel.log, który wykrył dysk USB Arbitrator:

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

2019-12-03T12: 06: 12.546Z cpu0: 33271) usb 4-2: nowe urządzenie SuperSpeed ​​USB numer 5 przy użyciu xhci_hcd 2019-12-03T12: 06: 12.570Z cpu0: 33271) usb 4-2: Znaleziono nowe urządzenie USB , idVendor = 0480, idProduct = b207 2019-12-03T12: 06: 12.570Z cpu0: 33271) usb 4-2: Ciągi nowych urządzeń USB: Mfr = 1, Product = 2, SerialNumber = 3 2019-12-03T12: 06 : 12.570Z cpu0: 33271) USB 4-2: Produkt: zewnętrzny USB 3.0 2019-12-03T12: 06: 12.570Z cpu0: 33271) USB 4-2: Producent: TOSHIBA 2019-12-03T12: 06: 12.570Z cpu0 : 33271) USB 4-2: Numer seryjny: 20180528012427F 2019-12-03T12: 06: 12.571Z cpu0: 33271) USB 4-2: Producent: 0x0480, Produkt: 0xb207, Wersja: 0x0315 2019-12-03T12: 06: 12.571 Z cpu0: 33271) USB 4-2: Podklasa interfejsu: 0x06, Protokół: 0x50 2019-12-03T12: 06: 12.571 Z cpu0: 33271) OSTRZEŻENIE: LinScsiLLD: scsi_add_host: 573: vmkAdapter (pamięć USB) sgMaxEntries zaokrąglone do 255 Zgłoszony rozmiar to 65535 2019-12-03T12: 06: 12.571Z cpu0: 33271) USB-Storage 4-2: 1.0: interfejs jest zgłaszany przez USB-Storage 2019-12-03T12: 06: 12.571Z CPU0: 33271) USB 4-2: urządzenie nie jest dostępne ble for passsthrough 2019-12-03T12: 06: 12.571Z cpu0: 33271) usb 4-2: usbfs: zarejestrowany usb0405 2019-12-03T12: 06: 15.454Z cpu0: 33207) usb-storage 4-2: 1.0: zawieszony

Jeśli dysk USB nie zostanie wykryty przez hosta ESXi, sprawdź, czy usługa jest uruchomiona:

#chkconfig usbarbitrator --list.

W związku z tym otrzymaliśmy numer kontrolera USB, który należy przekazać do maszyny wirtualnej.

  1. Aby przekazać fizyczny kontroler USB, wybierz ESXi hosta, na którym działa twoja maszyna wirtualna, i przejdź do sekcji Zarządzaj -> Ustawienia -> Urządzenia PCI -> Edytuj;
  2. Na liście urządzeń PCI znajdź i wybierz żądany kontroler USB według jego identyfikatora (w moim przykładzie 00: 1D.0 kontroler nazywa się Chipset z serii C610 / X99 Ulepszony kontroler hosta USB nr 1 Intel Corporation);
  3. Status kontrolera USB powinien zmienić się z Niedostępny (To urządzenie nie jest obecnie dostępne dla maszyn wirtualnych) na Dostępne (To urządzenie jest dostępne dla maszyn wirtualnych). Kliknij OK.
  4. Aby zapisać zmiany, musisz ponownie uruchomić hosta ESXi.
  5. Po załadowaniu hosta wyłącz maszynę wirtualną i dodaj nowe urządzenie PCI (Nowe urządzenie -> Urządzenie PCI -> Dodaj) Z rozwijanej listy wybierz kontroler USB (na przykład 0000: 00: 1D | Intel Corporation USB Chipset ...). Jeśli podczas dodawania urządzenia PCI w ustawieniach maszyny Wirtualnej pojawi się ostrzeżenie: „Ostrzeżenie: maszyna wirtualna nie włączy się, dopóki jej rezerwacja pamięci nie będzie równa wielkości pamięci”, Musisz zarezerwować pamięć dla VM.
  6. Włącz maszynę wirtualną i upewnij się, że dysk USB pojawia się w systemie-gościu. W moim przypadku podłączony dysk USB „Toshiba External USB 3.0 USB Device” pojawił się w gościnnym systemie Windows Server 2012 R2.

W trybie VMDirectPath można przekazać do dwóch urządzeń PCI do maszyny wirtualnej.

Istnieje wiele ograniczeń dotyczących maszyn wirtualnych z urządzeniem PCI zatrzaskującym PCI: nie można wstrzymywać maszyn wirtualnych (Suspend), wykonywać vMotion na innym hoście (jest to logiczne, ponieważ jesteś przywiązany do fizycznego kontrolera, twórz migawki).

Hyper-V obsługuje także przekazywanie fizycznych urządzeń USB do maszyn wirtualnych.