Jak skonfigurować passthrough urządzeń PCI do maszyny wirtualnej?
Wirtualizacja

Jak skonfigurować passthrough urządzeń PCI do maszyny wirtualnej?

🛠️ Jak skonfigurować passthrough urządzeń PCI do maszyny wirtualnej?


🔍 Czym jest PCI passthrough?

Wirtualizacja pozwala uruchamiać wiele systemów operacyjnych na jednym sprzęcie fizycznym. Jedną z zaawansowanych funkcji w tym środowisku jest PCI passthrough — czyli możliwość przekazania fizycznego urządzenia PCI (np. karta graficzna, sieciowa, kontroler USB) bezpośrednio do wybranej maszyny wirtualnej.

✅ Dzięki PCI passthrough maszyna wirtualna ma bezpośredni dostęp do sprzętu, co zwiększa wydajność i pozwala np. na akcelerację grafiki w środowiskach desktopowych lub pracę z dedykowanymi kartami w środowiskach serwerowych.


🎯 Dlaczego warto stosować PCI passthrough?

Zalety:

  • 🎮 Możliwość uruchamiania gier i aplikacji 3D w maszynach wirtualnych (GPU passthrough)
  • 🖥️ Dedykacja sprzętu do konkretnych zadań (np. karta sieciowa do firewalla w VM)
  • 🔒 Lepsza separacja zasobów i bezpieczeństwo
  • 🚀 Zmniejszenie narzutu hypervisora i zwiększenie wydajności
Jak skonfigurować passthrough urządzeń PCI do maszyny wirtualnej?
Jak skonfigurować passthrough urządzeń PCI do maszyny wirtualnej?

✅ Wymagania wstępne

  1. Procesor i płyta główna z obsługą IOMMU (Intel VT-d / AMD-Vi)
  2. BIOS/UEFI z włączonym VT-d lub AMD-Vi
  3. System operacyjny z obsługą passthrough (np. KVM, Proxmox, VMware ESXi)
  4. Urządzenie PCI kompatybilne z passthrough (np. karta graficzna lub kontroler)

🧭 Krok po kroku: Konfiguracja passthrough


🟨 Krok 1: Włączenie IOMMU w BIOS/UEFI

  1. Uruchom komputer i wejdź do BIOS/UEFI
  2. Włącz opcje:
    • Intel VT-d (dla procesorów Intel)
    • AMD-Vi (dla AMD)
  3. Zapisz i zrestartuj maszynę
Czytaj  Windows 11 a narzędzia dla deweloperów: Integracja z Visual Studio i innymi narzędziami deweloperskimi

🟦 Krok 2: Włączenie IOMMU w systemie operacyjnym

📌 Linux (grub)

Dla Intel:

GRUB_CMDLINE_LINUX="intel_iommu=on"

Dla AMD:

GRUB_CMDLINE_LINUX="amd_iommu=on"

Po modyfikacji wykonaj:

update-grub
reboot

🟥 Krok 3: Identyfikacja urządzenia PCI

Użyj polecenia:

lspci -nn

Zidentyfikuj urządzenie, które chcesz przekazać, np. kartę graficzną:

03:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] [10de:1c82]

🟩 Krok 4: Izolacja urządzenia przez vfio-pci

Zidentyfikuj identyfikator urządzenia (vendor:device), np. 10de:1c82

Dodaj do pliku /etc/modprobe.d/vfio.conf:

options vfio-pci ids=10de:1c82

Zrestartuj system.


🟧 Krok 5: Dodanie urządzenia PCI do maszyny wirtualnej

🔧 W KVM/libvirt (plik XML):

<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
    <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
  </source>
</hostdev>

🖥️ W Proxmox:

Dodaj do konfiguracji VM w pliku vmID.conf:

hostpci0: 03:00,pcie=1

🧱 W VMware ESXi:

  1. W zakładce „Host” wybierz „Advanced Settings” i włącz „DirectPath I/O”
  2. Dodaj urządzenie PCI do maszyny przez GUI

🧪 Jak sprawdzić, czy passthrough działa?

  1. Uruchom maszynę wirtualną
  2. W systemie gościa (VM) sprawdź, czy urządzenie jest widoczne:
    • Linux: lspci
    • Windows: „Menedżer urządzeń”
  3. Zainstaluj sterowniki (np. NVIDIA lub AMD dla GPU)

📊 Praktyczne zastosowania

Urządzenie PCI Zastosowanie
Karta graficzna (GPU) Gry, obróbka wideo, AI/ML
Karta sieciowa (NIC) Firewall, router, środowisko testowe
Kontroler USB Dedykowane porty USB dla VM
Karta RAID/SAS Dedykowane magazyny danych dla konkretnej maszyny

⚠️ Problemy i wskazówki

  • ❗ Nie wszystkie urządzenia PCI wspierają passthrough — warto sprawdzić dokumentację producenta
  • 💡 Czasami potrzebne są dodatkowe flagi kernelowe (np. pci-stub)
  • 🛑 GPU NVIDIA może wymagać modyfikacji do obejścia „Error 43” w systemach Windows (np. QEMU fake ID)

🧩 Podsumowanie

Passthrough urządzeń PCI to zaawansowana, ale bardzo przydatna funkcja środowisk wirtualnych. Dzięki niej możesz w pełni wykorzystać fizyczne zasoby sprzętowe w maszynach wirtualnych bez rezygnowania z elastyczności, jaką daje wirtualizacja. Jeżeli zależy Ci na wysokiej wydajności i bezpośrednim dostępie do sprzętu, to rozwiązanie jest właśnie dla Ciebie.

Czytaj  Linux w chmurze danych

 

Polecane wpisy
Monitorowanie wydajności Hyper-V i maszyn wirtualnych w Windows 11
Monitorowanie wydajności Hyper-V i maszyn wirtualnych w Windows 11

📊 Monitorowanie wydajności Hyper-V i maszyn wirtualnych w Windows 11   🧭 Dlaczego warto monitorować wydajność Hyper-V? System wirtualizacji Hyper-V Czytaj dalej

Nie można uruchomić maszyny wirtualnej Hyper-V – najczęstsze przyczyny i rozwiązania
Nie można uruchomić maszyny wirtualnej Hyper-V – najczęstsze przyczyny i rozwiązania

Nie można uruchomić maszyny wirtualnej Hyper-V – najczęstsze przyczyny i rozwiązania 🖥️ Wprowadzenie Wbudowany w Windows 11 system wirtualizacji – Czytaj dalej