Kaip sukonfigūruoti „Proxmox VE 8“, skirtą PCI / PCIE ir NVIDIA GPU perėjimui

Kaip Sukonfiguruoti Proxmox Ve 8 Skirta Pci Pcie Ir Nvidia Gpu Perejimui



„Proxmox VE 8“ yra vienas geriausių atvirojo kodo ir nemokamų I tipo hipervizorių, skirtų QEMU/KVM virtualioms mašinoms (VM) ir LXC konteineriams paleisti. Jis turi gražią žiniatinklio valdymo sąsają ir daugybę funkcijų.

Viena iš nuostabiausių „Proxmox VE“ savybių yra ta, kad ji gali perduoti PCI / PCIE įrenginius (t. y. NVIDIA GPU) iš jūsų kompiuterio į Proxmox VE virtualias mašinas (VM). Su naujesniais Proxmox VE leidimais PCI/PCIE perdavimas tampa vis geresnis. Šio rašymo metu naujausia „Proxmox VE“ versija yra „Proxmox VE v8.1“ ir ji turi puikų PCI/PCIE perdavimo palaikymą.







Šiame straipsnyje parodysiu, kaip sukonfigūruoti „Proxmox VE 8“ pagrindinį kompiuterį / serverį PCI / PCIE perėjimui ir sukonfigūruoti NVIDIA GPU PCIE perdavimui „Proxmox VE 8“ virtualiosiose mašinose (VM).





Turinys

  1. Virtualizavimo įgalinimas iš pagrindinės plokštės BIOS / UEFI programinės įrangos
  2. „Proxmox VE 8“ diegimas
  3. „Proxmox VE 8“ bendruomenės saugyklų įgalinimas
  4. „Proxmox VE 8“ naujinimų diegimas
  5. IOMMU įjungimas iš pagrindinės plokštės BIOS / UEFI programinės įrangos
  6. IOMMU įgalinimas „Proxmox VE 8“.
  7. Patikrinkite, ar IOMMU įjungtas „Proxmox VE 8“.
  8. Įkeliami VFIO branduolio moduliai į „Proxmox VE 8“.
  9. IOMMU grupių sąrašas „Proxmox VE 8“.
  10. Patikrinkite, ar jūsų NVIDIA GPU gali būti perkeltas į „Proxmox VE 8“ virtualią mašiną (VM)
  11. Branduolio modulių tikrinimas į juodąjį sąrašą PCI / PCIE perdavimui Proxmox VE 8
  12. Būtinų branduolio modulių įtraukimas į juodąjį sąrašą PCI / PCIE perdavimui Proxmox VE 8
  13. NVIDIA GPU konfigūravimas naudoti VFIO branduolio modulį „Proxmox VE 8“
  14. NVIDIA GPU perdavimas į Proxmox VE 8 virtualią mašiną (VM)
  15. Vis dar kyla problemų dėl PCI / PCIE perdavimo „Proxmox VE 8“ virtualiosiose mašinose (VM)?
  16. Išvada
  17. Nuorodos





Virtualizavimo įgalinimas iš pagrindinės plokštės BIOS / UEFI programinės įrangos

Prieš įdiegdami „Proxmox VE 8“ savo kompiuteryje / serveryje, turite įjungti procesoriaus aparatinės įrangos virtualizavimo funkciją iš pagrindinės plokštės BIOS / UEFI programinės įrangos. Procesas skiriasi skirtingoms pagrindinėms plokštėms. Taigi, jei jums reikia pagalbos įgalinant aparatinės įrangos virtualizavimą pagrindinėje plokštėje, perskaitykite šį straipsnį .



„Proxmox VE 8“ diegimas

„Proxmox VE 8“ galima nemokamai atsisiųsti, įdiegti ir naudoti. Prieš pradėdami, įsitikinkite, kad kompiuteryje įdiegėte „Proxmox VE 8“. Jei jums reikia pagalbos šiuo klausimu, perskaitykite šį straipsnį .

„Proxmox VE 8“ bendruomenės saugyklų įgalinimas

Kai kompiuteryje / serveryje įdiegsite Proxmox VE 8, įsitikinkite, kad tai padarėte įgalinti Proxmox VE 8 bendruomenės paketų saugyklas .

Pagal numatytuosius nustatymus „Proxmox VE 8“ įmonės paketų saugyklos yra įjungtos ir jūs negalėsite gauti / įdiegti naujinimų ir klaidų pataisymų iš įmonės saugyklų, nebent įsigijote „Proxmox VE 8“ įmonės licencijas. Taigi, jei norite naudoti „Proxmox VE 8“ nemokamai, būtinai tai įgalinti Proxmox VE 8 bendruomenės paketų saugyklas Norėdami nemokamai gauti naujausius atnaujinimus ir klaidų pataisymus iš „Proxmox“.

„Proxmox VE 8“ naujinimų diegimas

Kai tik jūs įgalino Proxmox VE 8 bendruomenės paketų saugyklas , būtinai įdiekite visus galimus naujinimus savo Proxmox VE 8 serveryje .

IOMMU įjungimas iš pagrindinės plokštės BIOS / UEFI programinės įrangos

IOMMU konfigūracija yra skirtingose ​​​​pagrindinių plokščių vietose. Norėdami įjungti IOMMU pagrindinėje plokštėje, perskaitykite šį straipsnį .

IOMMU įgalinimas „Proxmox VE 8“.

Kai IOMMU įjungtas aparatinės įrangos pusėje, taip pat turite įjungti IOMMU iš programinės įrangos pusės (iš Proxmox VE 8).

Norėdami įjungti IOMMU iš Proxmox VE 8, turite pridėti šiuos branduolio įkrovos parametrus:

Procesoriaus pardavėjas Branduolio įkrovos parametrai, kuriuos reikia pridėti
Intel intel_iommu=on, iommu=pt
AMD iommu=pt

Norėdami pakeisti Proxmox VE 8 branduolio įkrovos parametrus, atidarykite /etc/default/grub failą naudodami nano teksto rengyklę taip:

$ nano /etc/default/grub

Pabaigoje GRUB_CMDLINE_LINUX_DEFAULT , pridėkite reikiamus branduolio įkrovos parametrus, kad įgalintumėte IOMMU, atsižvelgiant į naudojamą procesorių.

Kadangi naudoju AMD procesorių, pridėjau tik branduolio įkrovos parametrą iommu=pt pabaigoje GRUB_CMDLINE_LINUX_DEFAULT eilutėje /etc/default/grub failą.

Baigę paspauskite + X sekė IR ir <Įveskite> išsaugoti /etc/default/grub failą.

Dabar atnaujinkite GRUB įkrovos konfigūracijas naudodami šią komandą:

$ update-grub2

Kai GRUB įkrovos konfigūracijos bus atnaujintos, spustelėkite Perkraukite iš naujo paleiskite Proxmox VE 8 serverį, kad pakeitimai įsigaliotų.

Patikrinkite, ar IOMMU įjungtas „Proxmox VE 8“.

Norėdami patikrinti, ar IOMMU įjungtas Proxmox VE 8, paleiskite šią komandą:

$ dmesg | grep -e DMAR -e IOMMU

Jei IOMMU įjungtas, pamatysite kai kuriuos išėjimus, patvirtinančius, kad IOMMU įjungtas.

Jei IOMMU neįjungtas, galite nematyti jokių išėjimų.

Taip pat reikia turėti IOMMU pertraukų pertvarkymas įjungtas, kad PCI/PCIE perdavimas veiktų.

Norėdami patikrinti, ar jūsų Proxmox VE 8 serveryje įjungtas IOMMU pertraukimo pertvarkymas, paleiskite šią komandą:

$ dmesg | grep 'pertvarkymas'

Kaip matote, mano „Proxmox VE 8“ serveryje įjungtas IOMMU pertraukimo pertvarkymas.

Daugumoje šiuolaikinių AMD ir Intel procesorių bus įjungtas IOMMU pertraukų pertvarkymas. Jei dėl kokios nors priežasties neįjungėte IOMMU pertraukimo pertvarkymo, yra išeitis. Turite įjungti nesaugius VFIO pertraukimus. Perskaitykite šį straipsnį Norėdami gauti daugiau informacijos apie nesaugių pertraukų įgalinimą „Proxmox VE 8“ serveryje.

Įkeliami VFIO branduolio moduliai į „Proxmox VE 8“.

PCI/PCIE perdavimą daugiausia atlieka VFIO (virtualios funkcijos įvesties/išvesties) branduolio moduliai Proxmox VE 8. Proxmox VE 8 pagal numatytuosius nustatymus VFIO branduolio moduliai neįkeliami įkrovos metu. Tačiau VFIO įkelti paprasta. branduolio moduliai įkrovos metu „Proxmox VE 8“.

Pirmiausia atidarykite /etc/modules-load.d/vfio.conf failą su nano teksto redaktorius taip:

$ nano /etc/modules-load.d/vfio.conf

Įveskite šias eilutes /etc/modules-load.d/vfio.conf failą.

vfio

vfio_iommu_type1

vfio_pci

Baigę paspauskite + X sekė IR ir <Įveskite> norėdami išsaugoti pakeitimus.

Dabar atnaujinkite „Proxmox VE 8“ diegimo initramfs naudodami šią komandą:

$ update-initramfs -u -k all

Kai initramfs bus atnaujintas, spustelėkite Perkraukite iš naujo paleiskite Proxmox VE 8 serverį, kad pakeitimai įsigaliotų.

Kai jūsų Proxmox VE 8 serveris bus paleistas, turėtumėte pamatyti, kad visi reikalingi VFIO branduolio moduliai yra įkelti.

$ lsmod | rankena vfio

IOMMU grupių sąrašas „Proxmox VE 8“.

Norėdami perduoti PCI / PCIE įrenginius Proxmox VE 8 virtualiose mašinose (VM), turėsite gana dažnai tikrinti savo PCI / PCIE įrenginių IOMMU grupes. Kad būtų lengviau patikrinti IOMMU grupes, nusprendžiau kelyje parašyti apvalkalo scenarijų (gavau jį iš GitHub, bet nepamenu originalaus plakato pavadinimo) /usr/local/bin/print-iommu-groups kad galėčiau tiesiog bėgti print-iommu-groups komanda ir ji išspausdins IOMMU grupes Proxmox VE 8 apvalkale.

Pirmiausia sukurkite naują failą print-iommu-groups kelyje /usr/local/bin ir atidarykite jį naudodami nano teksto rengyklę taip:

$ nano /usr/local/bin/print-iommu-groups

Įveskite šias eilutes print-iommu-groups failas:

#!/bin/bash

parduotuvės -s nullglob

dėl g in ` rasti / sys / branduolys / iommu_groups /* - didžiausias gylis 0 -tipas d | rūšiuoti -IN ` ; daryti

aidas „IOMMU grupė ${g##*/} :'

dėl d in g $ / prietaisai /* ; daryti

aidas -Tai yra \t $(lspci -nns ${d##*/})

padaryta ;

padaryta ;

Baigę paspauskite + X sekė IR ir <Įveskite> norėdami išsaugoti pakeitimus print-iommu-groups failą.

Padaryti print-iommu-groups scenarijaus failas, vykdomas naudojant šią komandą:

$ chmod +x /usr/local/bin/print-iommu-groups

Dabar galite paleisti print-iommu-groups Norėdami spausdinti jūsų Proxmox VE 8 serveryje įdiegtų PCI / PCIE įrenginių IOMMU grupes, atlikite toliau nurodytus veiksmus.

$ print-iommu-groups

Kaip matote, mano Proxmox VE 8 serveryje įdiegtų PCI/PCIE įrenginių IOMMU grupės yra spausdinamos.

Patikrinimas, ar jūsų NVIDIA GPU gali būti perkeltas į „Proxmox VE 8“ virtualią mašiną (VM)

Norint perduoti PCI / PCIE įrenginį į Proxmox VE 8 virtualią mašiną (VM), jis turi būti savo IOMMU grupėje. Jei 2 ar daugiau PCI / PCIE įrenginių dalijasi IOMMU grupe, negalite perduoti nė vieno iš tos IOMMU grupės PCI / PCIE įrenginių į jokias Proxmox VE 8 virtualias mašinas (VM).

Taigi, jei jūsų NVIDIA GPU ir jo garso įrenginys priklauso savo IOMMU grupei, galite perduoti NVIDIA GPU į bet kurias „Proxmox VE 8“ virtualias mašinas (VM).

Savo Proxmox VE 8 serveryje naudoju MSI X570 ACE pagrindinę plokštę, suporuotą su Ryzen 3900X procesoriumi ir Gigabyte RTX 4070 NVIDIA GPU. Pagal savo sistemos IOMMU grupes galiu perduoti NVIDIA RTX 4070 GPU (IOMMU 21 grupė), RTL8125 2,5 Gbe eterneto valdiklį (IOMMU 20 grupė), Intel I211 Gigabit Ethernet valdiklį (IOMMU 19 grupė), USB 3.0 valdiklį ( IOMMU Group 24) ir integruotą HD garso valdiklį (IOMMU Group 25).

$ print-iommu-groups

Kadangi šiame straipsnyje pagrindinis dėmesys skiriamas „Proxmox VE 8“ konfigūravimui, kad jis būtų perduodamas per NVIDIA GPU į „Proxmox VE 8“ virtualias mašinas, NVIDIA GPU ir jo garso įrenginys turi būti savo IOMMU grupėje.

Branduolio modulių tikrinimas į juodąjį sąrašą PCI / PCIE perdavimui Proxmox VE 8

Norėdami perduoti PCI / PCIE įrenginį Proxmox VE 8 virtualioje mašinoje (VM), turite įsitikinti, kad Proxmox VE priverčia jį naudoti VFIO branduolio modulį, o ne pradinį branduolio modulį.

Norėdami sužinoti branduolio modulį, kurį naudoja jūsų PCI / PCIE įrenginiai, turėsite žinoti šių PCI / PCIE įrenginių pardavėjo ID ir įrenginio ID. PCI / PCIE įrenginių pardavėjo ID ir įrenginio ID galite rasti naudodami print-iommu-groups komandą.

$ print-iommu-groups

Pavyzdžiui, mano NVIDIA RTX 4070 GPU pardavėjo ID ir įrenginio ID yra 10de: 2786 ir tai yra garso įrenginys 10de:22bc .

Norėdami rasti branduolio modulį, PCI / PCIE įrenginį 10de: 2786 (mano NVIDIA RTX 4070 GPU) naudoja, paleiskite lspci komandą taip:

$ lspci -v -d 10de: 2786

Kaip matote, mano NVIDIA RTX 4070 GPU naudoja nvidiafb ir naujas branduolio moduliai pagal numatytuosius nustatymus. Taigi šiuo metu jų negalima perduoti „Proxmox VE 8“ virtualiajai mašinai (VM).

Mano NVIDIA RTX 4070 GPU garso įrenginys naudoja snd_hda_intel branduolio modulis. Taigi šiuo metu jo negalima perduoti ir „Proxmox VE 8“ virtualioje mašinoje.

$ lspci -v -d 10de:22bc

Taigi, norėdamas perduoti savo NVIDIA RTX 4070 GPU ir jo garso įrenginį Proxmox VE 8 virtualioje mašinoje (VM), turiu įtraukti į juodąjį sąrašą nvidiafb , naujas , ir snd_hda_intel branduolio modulius ir sukonfigūruoti mano NVIDIA RTX 4070 GPU ir jo garso įrenginį naudoti vfio-pci branduolio modulis.

Būtinų branduolio modulių įtraukimas į juodąjį sąrašą PCI / PCIE perdavimui Proxmox VE 8

Norėdami įtraukti Proxmox VE 8 branduolio modulius į juodąjį sąrašą, atidarykite /etc/modprobe.d/blacklist.conf failą naudodami nano teksto rengyklę taip:

$ nano /etc/modprobe.d/blacklist.conf

Į juodąjį branduolio modulių sąrašą naujas , nvidiafb , ir snd_hda_intel branduolio modulius (per NVIDIA GPU), pridėkite šias eilutes /etc/modprobe.d/blacklist.conf failas:

juodasis sąrašas nouveau

juodasis sąrašas nvidiafb

juodasis sąrašas snd_hda_intel

Baigę paspauskite + X sekė IR ir <Įveskite> išsaugoti /etc/modprobe.d/blacklist.conf failą.

NVIDIA GPU konfigūravimas naudoti VFIO branduolio modulį „Proxmox VE 8“

Norėdami sukonfigūruoti PCI / PCIE įrenginį (t. y. jūsų NVIDIA GPU) naudoti VFIO branduolio modulį, turite žinoti jo tiekėjo ID ir įrenginio ID.

Šiuo atveju mano NVIDIA RTX 4070 GPU ir jo garso įrenginio pardavėjo ID ir įrenginio ID yra 10de: 2786 ir 10de:22bc .

Norėdami sukonfigūruoti NVIDIA GPU naudoti VFIO branduolio modulį, atidarykite /etc/modprobe.d/vfio.conf failą naudodami nano teksto rengyklę taip:

$ nano /etc/modprobe.d/vfio.conf

Norėdami sukonfigūruoti NVIDIA GPU ir jo garso įrenginį naudodami : 10de: 2786 ir 10de:22bc (tarkime) atitinkamai norėdami naudoti VFIO branduolio modulį, pridėkite šią eilutę prie /etc/modprobe.d/vfio.conf failą.

parinktys vfio-pci ids=10de:2786,10de:22bc

Baigę paspauskite + X sekė IR ir <Įveskite> išsaugoti /etc/modprobe.d/vfio.conf failą.

Dabar atnaujinkite „Proxmove VE 8“ initramfs naudodami šią komandą:

$ update-initramfs -u -k all

Kai initramfs bus atnaujintas, spustelėkite Perkraukite iš naujo paleiskite Proxmox VE 8 serverį, kad pakeitimai įsigaliotų.

Kai tik jūsų Proxmox VE 8 serveris bus paleistas, turėtumėte pamatyti, kad jūsų NVIDIA GPU ir jo garso įrenginys ( 10de: 2786 ir 10de:22bc mano atveju) naudoja vfio-pci branduolio modulis. Dabar jūsų NVIDIA GPU paruoštas perduoti Proxmox VE 8 virtualiajai mašinai.

$ lspci -v -d 10de: 2786

$ lspci -v -d 10de:22bc

NVIDIA GPU perdavimas į Proxmox VE 8 virtualią mašiną (VM)

Dabar, kai jūsų NVIDIA GPU yra paruoštas perduoti Proxmox VE 8 virtualiose mašinose (VM), galite perduoti NVIDIA GPU norimoje Proxmox VE 8 virtualioje mašinoje ir įdiegti NVIDIA GPU tvarkykles, atsižvelgdami į naudojamą operacinę sistemą. ta virtuali mašina kaip įprasta.

Norėdami gauti išsamios informacijos, kaip perduoti NVIDIA GPU Proxmox VE 8 virtualioje mašinoje (VM), kurioje įdiegtos skirtingos operacinės sistemos, skaitykite vieną iš šių straipsnių:

  • Kaip perduoti NVIDIA GPU į „Windows 11 Proxmox VE 8“ virtualią mašiną (VM)
  • Kaip perduoti NVIDIA GPU į Ubuntu 24.04 LTS Proxmox VE 8 virtualią mašiną (VM)
  • Kaip perduoti NVIDIA GPU į „LinuxMint 21 Proxmox VE 8“ virtualią mašiną (VM)
  • Kaip perduoti NVIDIA GPU į Debian 12 Proxmox VE 8 virtualią mašiną (VM)
  • Kaip perduoti NVIDIA GPU į elementariąją OS 8 Proxmox VE 8 virtualią mašiną (VM)
  • Kaip perduoti NVIDIA GPU į Fedora 39+ Proxmox VE 8 virtualią mašiną (VM)
  • Kaip perduoti NVIDIA GPU „Arch Linux Proxmox VE 8“ virtualioje mašinoje (VM)
  • Kaip perduoti NVIDIA GPU naudojant „Red Hat Enterprise Linux 9“ (RHEL 9) „Proxmox VE 8“ virtualią mašiną (VM)

Vis dar kyla problemų dėl PCI / PCIE perdavimo „Proxmox VE 8“ virtualiosiose mašinose (VM)?

Net ir teisingai išbandę viską, kas nurodyta šiame straipsnyje, jei PCI/PCIE perdavimas vis tiek jums netinka, būtinai išbandykite kai kuriuos Proxmox VE PCI / PCIE perėjimo triukus ir (arba) sprendimus kuriuos galite naudoti norėdami gauti PCI / PCIE perdavimo darbą su savo aparatūra.

Išvada

Šiame straipsnyje parodžiau, kaip sukonfigūruoti Proxmox VE 8 serverį PCI / PCIE perdavimui, kad galėtumėte perduoti PCI / PCIE įrenginius (t. y. savo NVIDIA GPU) į savo Proxmox VE 8 virtualias mašinas (VM). Taip pat parodžiau, kaip sužinoti branduolio modulius, kuriuos reikia įtraukti į juodąjį sąrašą, ir kaip juos įtraukti į juodąjį sąrašą, kad norimi PCI/PCIE įrenginiai (t. y. jūsų NVIDIA GPU) sėkmingai patektų į Proxmox VE 8 virtualią mašiną. Galiausiai parodžiau, kaip sukonfigūruoti norimus PCI/PCIE įrenginius (t. y. jūsų NVIDIA GPU), kad jie naudotų VFIO branduolio modulius, o tai taip pat yra esminis žingsnis norint sėkmingai perduoti norimus PCI/PCIE įrenginius (t. y. jūsų NVIDIA GPU). ) į Proxmox VE 8 virtualią mašiną (VM).

Nuorodos

  1. PCI(e) pralaidumas – Proxmox VE
  2. PCI perėjimas – Proxmox VE
  3. Aukščiausia žaidimų virtuali mašina „Proxmox“ – „YouTube“.