Proxmox Virtual Environment


Proxmox Virtual Environment Proxmox Virtual Environment

Přímý odkaz na tento článek: https://zorgan.cz/2025/01/proxmox-virtual-environment/

2 komentáře

    • zorgan on 6.1.2025 at 21:19
      Autor

    Pokud si neplatíte předplatné u Proxmox VE, je třeba nezapomenout přepnout v update na balíčky no-subscribe.

    • zorgan on 6.1.2025 at 21:20
      Autor

    Passthrough ve virtuálních strojích (VM) je technika, která umožňuje hostujícímu operačnímu systému (OS) přímý přístup k hardwarovým zařízením, která jsou normálně spravována hostitelským OS. Tento přístup obchází hostitelský OS, což může významně zvýšit výkon a umožnit hostujícímu OS využít zařízení, jako by bylo přímo připojeno k jeho vlastnímu hardwaru.
    Existují dvě běžné aplikace passthrough technologie:
    PCI Passthrough: Umožňuje hostujícímu OS přístup k PCI zařízením (jako jsou grafické karty, síťové karty atd.). To je užitečné například pro hráče, kteří chtějí využívat výkonnou grafickou kartu přímo ve virtuálním stroji.
    USB Passthrough: Umožňuje hostujícímu OS přístup k USB zařízením (jako jsou USB disky, tiskárny, kamery atd.). To je užitečné pro případy, kdy je nutné používat specifická USB zařízení ve virtuálním prostředí.
    ————————————————————————————————————————————-

    Ujistěte se, že máte povolené VT-d (pro Intel) nebo AMD-Vi (pro AMD) v BIOSu hostitelského stroje a v Proxmox VE node terminal:
    # dmesg | grep -e DMAR -e IOMMU

    Povolení IOMMU v Proxmox VE na hostitelském serveru a na hostovaném VM OS Linux :
    Otevrete /etc/default/grub a pridejte intel_iommu=on nebo amd_iommu=on
    ideálně vypadající grub:
    GRUB_CMDLINE_LINUX_DEFAULT=“quiet intel_iommu=on iommu=pt nofb nomodeset video=vesafb:off,efifb:off initcall_blacklist=sysfb_init“
    nomodeset se zadává pouze na hostitelském serveru pouze v node proxmox ve.
    Ostatní parametry jsou třeba doplnit i na hostovaném OS např. ve VM OS Linux.
    info: nofb a vesafb, efifb = nechceme frame buffer, protože na vzdálené ploše to dělá nepořádek.
    ——————————————————-
    Přidání na blacklist u hostovaného a hostitelském OS Linux :
    echo „blacklist nouveau“ >> /etc/modprobe.d/blacklist.conf
    echo „blacklist nvidiafb“ >> /etc/modprobe.d/blacklist.conf
    ——————————————————-
    na hostitelském serveru přidejte do /etc/modules :
    vfio
    vfio_iommu_type1
    vfio_pci
    vfio_virqfd
    ————————
    … V obou případech aktualizujte grub pro načtení při spuštění :
    # sudo update-grub
    …. a aktualizujeme přidání nových modulů
    # sudo update-initramfs -u

    Doporučená doinstalace knihoven do Proxmox VE node hostitelský server:
    apt install dkms libc6-dev proxmox-default-headers –no-install-recommends
    apt install -y pve-headers-$(uname -r)
    apt install build-essential pkg-config xorg xorg-dev libglvnd0 libglvnd-dev

    Poté se můžeme vrhnout na instalaci ovladačů pro vaše GPU
    ————————————————————————————————————————————-
    Aby jste mohli passthrough naplno využít multi GPU HW, je třeba určit podle vendoru a ID, konkrétní GPU určené pro hostované VM OS.
    Což je třeba udělat na vašem node v Proxmox VE.
    příklad vypadající informace o hardwaru GPU :
    # lspci -nn | grep -i vga
    ..class…..device……ID……..iommgroup….vendor….name …..
    ¦0x030000¦0x24b0¦0000:84:00.0 ¦….5…..¦… 0x10de..¦..GA104GL [RTX A4000]
    84:00.0 0300: 10de:24b0 (rev a1) GPU
    84:00.1 0403: 10de:228b (rev a1) GPU Sound output
    Musí se dát vědět Proxmoxu, že nechceme aby využíval tyto GPU, nebo HW, protože jej chceme používat v modu passthrough ve vybraném hostovaném VM OS.
    # sudo nano /etc/modprobe.d/vfio.conf pridej radek takto >
    options vfio-pci ids=10de:24b0, 10de:228b, … dalsi HW
    V configu vfio.conf se IDs skládá z vendor bez 0x a device bez 0x
    ,což znamená dvě 32bit. hodnoty.
    Pokud používáte více kusů stejného hardware, budou mít IDs ve vfio.conf stejnou hodnotu a nemusíte je uvádět duplicitně.
    Což znamená, že blíže specifikovat číslo karty GPU, nebo HW, upřesníte přímo v nastavení hardwaru pro VM v proxmox VE, a to přidáním PCI hardwaru.
    Doporučuji zaškrtnout PCI-E pro GPU a doplnit Vendor a ID, pokud používáte i zvuk z GPU uvedete jako podřazený vendor a ID, zvuku.
    Vendor ID zvuku naleznete ve výpisu při nastavení hardwaru ve stejném kroku.

    ——————– IOMMU skupiny ————————————–
    Ověř, zda jsou obě GPU v samostatných IOMMU skupinách.
    Použij tento příkaz:
    for d in /sys/kernel/iommu_groups/*; do echo „IOMMU group $(basename „$d“)“; for i in „$d/devices/“*; do echo -n „$(basename „$i“) „; lspci -nns „${i##*/}“; done; done

    ———————–Kontrola ve virtuálním stroji (VM)—————————————
    Uvnitř virtuálního stroje spusť příkaz: lspci -nnk | grep -i vga.
    Tento příkaz by měl zobrazit obě GPU a ovladače, které je používají.
    Pokud jsou GPU správně předány, měly by být detekovány virtuálním strojem a používány ovladači nainstalovanými ve VM.
    ————-CUDA a ověření funkčnosti passthrought ve VM OS ——————————————————–
    Můžete použít samozřejmě příkaz : nvidia-smi
    Můžeš použít nástroje pro testování grafického výkonu (např. glxgears nebo Unigine Heaven) k ověření funkčnosti GPU.
    —————————–

Komentáře byly zablokovány.