PCI/PCIE ve NVIDIA GPU Geçişi için Proxmox VE 8'i Yapılandırma

Pci Pcie Ve Nvidia Gpu Gecisi Icin Proxmox Ve 8 I Yapilandirma



Proxmox VE 8, QEMU/KVM sanal makinelerini (VM'ler) ve LXC konteynerlerini çalıştırmak için piyasadaki en iyi açık kaynaklı ve ücretsiz Tip-I hipervizörlerden biridir. Güzel bir web yönetim arayüzüne ve birçok özelliğe sahiptir.

Proxmox VE'nin en şaşırtıcı özelliklerinden biri, PCI/PCIE aygıtlarını (yani bir NVIDIA GPU) bilgisayarınızdan Proxmox VE sanal makinelere (VM'ler) aktarabilmesidir. PCI/PCIE geçişi, yeni Proxmox VE sürümleriyle giderek daha iyi hale geliyor. Bu yazının yazıldığı sırada Proxmox VE'nin en son sürümü Proxmox VE v8.1'di ve mükemmel PCI/PCIE geçiş desteğine sahipti.







Bu makalede Proxmox VE 8 ana makinenizi/sunucunuzu PCI/PCIE geçişi için nasıl yapılandıracağınızı ve Proxmox VE 8 sanal makinelerde (VM'ler) PCIE geçişi için NVIDIA GPU'nuzu nasıl yapılandıracağınızı göstereceğim.





İçindekiler

  1. Anakartınızın BIOS/UEFI Ürün Yazılımından Sanallaştırmayı Etkinleştirme
  2. Proxmox VE 8'in Kurulumu
  3. Proxmox VE 8 Topluluk Depolarını Etkinleştirme
  4. Güncellemeleri Proxmox VE 8'e Yükleme
  5. IOMMU'yu Anakartınızın BIOS/UEFI Firmware'inden Etkinleştirme
  6. Proxmox VE 8'de IOMMU'yu etkinleştirme
  7. Proxmox VE 8'de IOMMU'nun Etkin olup olmadığının doğrulanması
  8. VFIO Çekirdek Modüllerini Proxmox VE 8'e Yükleme
  9. IOMMU Gruplarının Proxmox VE 8'de Listelenmesi
  10. NVIDIA GPU'nuzun Proxmox VE 8 Sanal Makineye (VM) Geçiş Yapıp Yapamayacağını Kontrol Etme
  11. Proxmox VE 8'de PCI/PCIE Geçişi için Kara Listeye Alınacak Çekirdek Modüllerinin Kontrol Edilmesi
  12. Proxmox VE 8'de PCI/PCIE Geçişi için Gerekli Çekirdek Modüllerini Kara Listeye Alma
  13. NVIDIA GPU'nuzu Proxmox VE 8'de VFIO Çekirdek Modülünü Kullanacak Şekilde Yapılandırma
  14. NVIDIA GPU'yu Proxmox VE 8 Sanal Makinesine (VM) geçirin
  15. Proxmox VE 8 Sanal Makinelerinde (VM'ler) PCI/PCIE Geçişiyle İlgili Hala Sorun mu Yaşıyorsunuz?
  16. Çözüm
  17. Referanslar





Anakartınızın BIOS/UEFI Ürün Yazılımından Sanallaştırmayı Etkinleştirme

Proxmox VE 8'i bilgisayarınıza/sunucunuza kurmadan önce anakartınızın BIOS/UEFI ürün yazılımından işlemcinizin donanım sanallaştırma özelliğini etkinleştirmelisiniz. Farklı anakartlar için süreç farklıdır. Anakartınızda donanım sanallaştırmasını etkinleştirme konusunda yardıma ihtiyacınız olursa, bu makaleyi oku .



Proxmox VE 8'in Kurulumu

Proxmox VE 8'i indirmek, yüklemek ve kullanmak ücretsizdir. Başlamadan önce bilgisayarınıza Proxmox VE 8'i yüklediğinizden emin olun. Bu konuda yardıma ihtiyacınız olursa bu makaleyi oku .

Proxmox VE 8 Topluluk Depolarını Etkinleştirme

Proxmox VE 8'i bilgisayarınıza/sunucunuza yükledikten sonra, aşağıdakileri yaptığınızdan emin olun: Proxmox VE 8 topluluk paketi depolarını etkinleştirin .

Varsayılan olarak Proxmox VE 8 kurumsal paket depoları etkindir ve Proxmox VE 8 kurumsal lisansları satın almadığınız sürece kurumsal depolardan güncellemeler ve hata düzeltmeleri alamaz/kuramazsınız. Bu nedenle Proxmox VE 8'i ücretsiz kullanmak istiyorsanız mutlaka Proxmox VE 8 topluluk paketi depolarını etkinleştirin Proxmox'tan en son güncellemeleri ve hata düzeltmelerini ücretsiz almak için.

Güncellemeleri Proxmox VE 8'e Yükleme

Bir kez yaptıktan sonra Proxmox VE 8 topluluk paketi depolarını etkinleştirdi , emin ol mevcut tüm güncellemeleri Proxmox VE 8 sunucunuza yükleyin .

IOMMU'yu Anakartınızın BIOS/UEFI Firmware'inden Etkinleştirme

IOMMU yapılandırması farklı anakartlarda farklı konumlarda bulunur. Anakartınızda IOMMU'yu etkinleştirmek için, bu makaleyi oku .

Proxmox VE 8'de IOMMU'yu etkinleştirme

IOMMU donanım tarafında etkinleştirildikten sonra, IOMMU'yu yazılım tarafından da etkinleştirmeniz gerekir (Proxmox VE 8'den).

IOMMU'yu Proxmox VE 8'den etkinleştirmek için aşağıdaki çekirdek önyükleme parametrelerini eklemeniz gerekir:

İşlemci Satıcısı Eklenecek çekirdek önyükleme parametreleri
Intel intel_iommu=açık, iommu=pt
AMD ıommu=pt

Proxmox VE 8'in çekirdek önyükleme parametrelerini değiştirmek için /etc/varsayılan/grub nano metin düzenleyiciyle aşağıdaki gibi dosyalayın:

$ nano /etc/default/grub

Sonunda GRUB_CMDLINE_LINUX_DEFAULT kullandığınız işlemciye bağlı olarak IOMMU'yu etkinleştirmek için gerekli çekirdek önyükleme parametrelerini ekleyin.

AMD işlemci kullandığım için yalnızca çekirdek önyükleme parametresini ekledim ıommu=pt sonunda GRUB_CMDLINE_LINUX_DEFAULT çizgideki /etc/varsayılan/grub dosya.

İşiniz bittiğinde tuşuna basın + X bunu takiben VE Ve kaydetmek için /etc/varsayılan/grub dosya.

Şimdi GRUB önyükleme yapılandırmalarını aşağıdaki komutla güncelleyin:

$ güncelleme-grub2

GRUB önyükleme yapılandırmaları güncellendikten sonra Yeniden başlat Değişikliklerin etkili olması için Proxmox VE 8 sunucunuzu yeniden başlatmak için.

Proxmox VE 8'de IOMMU'nun Etkin olup olmadığının doğrulanması

IOMMU'nun Proxmox VE 8'de etkin olup olmadığını doğrulamak için aşağıdaki komutu çalıştırın:

$dmesg | grep -e DMAR -e IOMMU

IOMMU etkinse, IOMMU'nun etkin olduğunu doğrulayan bazı çıktılar göreceksiniz.

IOMMU etkin değilse herhangi bir çıktı göremeyebilirsiniz.

Ayrıca şu özelliklere sahip olmanız gerekir: IOMMU Kesinti Yeniden Eşlemesi PCI/PCIE geçişinin çalışması için etkinleştirildi.

Proxmox VE 8 sunucunuzda IOMMU Kesinti Yeniden Eşlemesinin etkin olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın:

$dmesg | grep 'yeniden eşleme'

Gördüğünüz gibi Proxmox VE 8 sunucumda IOMMU Kesinti Yeniden Eşleme etkin.

Çoğu modern AMD ve Intel işlemcide IOMMU Kesinti Yeniden Eşleme etkin olacaktır. Herhangi bir nedenle IOMMU Kesinti Yeniden Eşlemeyi etkinleştirmediyseniz bunun bir geçici çözümü vardır. VFIO için Güvenli Olmayan Kesintileri etkinleştirmeniz gerekir. Bu makaleyi okuyun Proxmox VE 8 sunucunuzda Güvenli Olmayan Kesintileri etkinleştirme hakkında daha fazla bilgi için.

VFIO Çekirdek Modüllerini Proxmox VE 8'e Yükleme

PCI/PCIE geçişi esas olarak Proxmox VE 8'deki VFIO (Sanal İşlev I/O) çekirdek modülleri tarafından yapılır. VFIO çekirdek modülleri, Proxmox VE 8'de varsayılan olarak önyükleme sırasında yüklenmez. Ancak VFIO'yu yüklemek kolaydır. Proxmox VE 8'de önyükleme sırasında çekirdek modülleri.

Öncelikle şunu açın: /etc/modules-load.d/vfio.conf ile dosya nano metin editörü aşağıdaki gibidir:

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

Aşağıdaki satırları alana yazın /etc/modules-load.d/vfio.conf dosya.

vfio

vfio_iommu_type1

vfio_pci

İşiniz bittiğinde tuşuna basın + X bunu takiben VE Ve Değişiklikleri kaydetmek için.

Şimdi Proxmox VE 8 kurulumunuzun initramf'lerini aşağıdaki komutla güncelleyin:

$ update-initramfs -u -k hepsi

İnitramfs güncellendiğinde, üzerine tıklayın. Yeniden başlat Değişikliklerin etkili olması için Proxmox VE 8 sunucunuzu yeniden başlatmak için.

Proxmox VE 8 sunucunuz önyüklendiğinde gerekli tüm VFIO çekirdek modüllerinin yüklendiğini görmelisiniz.

$lsmod | kavrama vfio

IOMMU Gruplarının Proxmox VE 8'de Listelenmesi

Proxmox VE 8 sanal makinelerinde (VM'ler) PCI/PCIE aygıtlarını geçirmek için PCI/PCIE aygıtlarınızın IOMMU gruplarını oldukça sık kontrol etmeniz gerekecektir. IOMMU gruplarını kontrol etmeyi kolaylaştırmak için yola bir kabuk betiği yazmaya karar verdim (GitHub'dan aldım ama orijinal posterin adını hatırlayamıyorum) /usr/local/bin/print-iommu-groups böylece koşabilirim baskı-iommu-grupları komutunu verin ve IOMMU gruplarını Proxmox VE 8 kabuğuna yazdıracaktır.

İlk önce yeni bir dosya oluşturun baskı-iommu-grupları yolda /usr/yerel/bin ve nano metin düzenleyiciyle aşağıdaki gibi açın:

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

Aşağıdaki satırları alana yazın baskı-iommu-grupları dosya:

#!/bin/bash

mağazalar -S nullglob

için G içinde ' bulmak / sistem / çekirdek / iommu_groups /* -Maksimum derinlik 0 -tip D | düzenlemek -İÇİNDE ' ; Yapmak

Eko 'IOMMU Grubu ${g##*/} :'

için D içinde $g / cihazlar /* ; Yapmak

Eko -Bu ' \T $(lspci -nns ${d##*/}) '

Tamamlandı ;

Tamamlandı ;

İşiniz bittiğinde tuşuna basın + X bunu takiben VE Ve Değişiklikleri kaydetmek için baskı-iommu-grupları dosya.

Yapmak baskı-iommu-grupları Aşağıdaki komutla çalıştırılabilir komut dosyası:

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

Artık çalıştırabilirsiniz baskı-iommu-grupları Proxmox VE 8 sunucunuzda kurulu PCI/PCIE cihazlarının IOMMU gruplarını yazdırmak için aşağıdaki komutu verin:

$ print-iommu-grupları

Gördüğünüz gibi Proxmox VE 8 sunucumda kurulu PCI/PCIE cihazlarının IOMMU grupları yazdırılıyor.

NVIDIA GPU'nuzun Proxmox VE 8 Sanal Makineye (VM) Geçiş Yapıp Yapamayacağını Kontrol Etme

Bir PCI/PCIE cihazını Proxmox VE 8 sanal makinesine (VM) geçirmek için cihazın kendi IOMMU grubunda olması gerekir. 2 veya daha fazla PCI/PCIE cihazı bir IOMMU grubunu paylaşıyorsa, o IOMMU grubunun PCI/PCIE cihazlarından herhangi birini herhangi bir Proxmox VE 8 sanal makinesine (VM) aktaramazsınız.

Dolayısıyla, NVIDIA GPU'nuz ve ses aygıtınız kendi IOMMU grubundaysa, NVIDIA GPU'yu herhangi bir Proxmox VE 8 sanal makinesine (VM) aktarabilirsiniz.

Proxmox VE 8 sunucumda, Ryzen 3900X işlemci ve Gigabyte RTX 4070 NVIDIA GPU ile eşleştirilmiş bir MSI X570 ACE anakart kullanıyorum. Sistemimin IOMMU gruplarına göre NVIDIA RTX 4070 GPU (IOMMU Grup 21), RTL8125 2.5Gbe Ethernet Denetleyicisi (IOMMU Grup 20), Intel I211 Gigabit Ethernet Denetleyicisi (IOMMU Grup 19), USB 3.0 denetleyici ( IOMMU Grup 24) ve Yerleşik HD Ses Denetleyicisi (IOMMU Grup 25).

$ print-iommu-grupları

Bu makalenin ana odağı Proxmox VE 8'i NVIDIA GPU üzerinden Proxmox VE 8 sanal makinelere geçecek şekilde yapılandırmak olduğundan, NVIDIA GPU ve Ses cihazının kendi IOMMU grubunda olması gerekir.

Proxmox VE 8'de PCI/PCIE Geçişi için Kara Listeye Alınacak Çekirdek Modüllerinin Kontrol Edilmesi

Proxmox VE 8 sanal makinesinde (VM) bir PCI/PCIE cihazını geçirmek için Proxmox VE'nin onu orijinal çekirdek modülü yerine VFIO çekirdek modülünü kullanmaya zorladığından emin olmalısınız.

PCI/PCIE aygıtlarınızın kullandığı çekirdek modülünü bulmak için bu PCI/PCIE aygıtlarının satıcı kimliğini ve aygıt kimliğini bilmeniz gerekir. PCI/PCIE cihazlarının satıcı kimliğini ve cihaz kimliğini aşağıdakileri kullanarak bulabilirsiniz: baskı-iommu-grupları emretmek.

$ print-iommu-grupları

Örneğin, NVIDIA RTX 4070 GPU'mun satıcı kimliği ve cihaz kimliği: 10de:2786 ve ses cihazı 10de:22bc .

Çekirdek modülünü bir PCI/PCIE aygıtı bulmak için 10de:2786 (NVIDIA RTX 4070 GPU'm) kullanıyorsa, çalıştırın lspci komut şu şekilde:

$ lspci -v -d 10de:2786

Gördüğünüz gibi NVIDIA RTX 4070 GPU'm şunu kullanıyor: nvidiafb Ve yeni çekirdek modülleri varsayılan olarak. Dolayısıyla bu noktada Proxmox VE 8 sanal makinesine (VM) aktarılamazlar.

NVIDIA RTX 4070 GPU'mun Ses cihazı şunu kullanıyor: snd_hda_intel çekirdek modülü. Dolayısıyla bu noktada Proxmox VE 8 sanal makinesine de aktarılamıyor.

$ lspci -v -d 10de:22bc

Bu nedenle, NVIDIA RTX 4070 GPU'mu ve ses cihazımı Proxmox VE 8 sanal makineye (VM) aktarmak için, nvidiafb , yeni , Ve snd_hda_intel çekirdek modülleri ve NVIDIA RTX 4070 GPU'mu ve ses cihazımı, çekirdek modüllerini kullanacak şekilde yapılandırın. vfio-pci çekirdek modülü.

Proxmox VE 8'de PCI/PCIE Geçişi için Gerekli Çekirdek Modüllerini Kara Listeye Alma

Proxmox VE 8'deki çekirdek modüllerini kara listeye almak için /etc/modprobe.d/blacklist.conf nano metin düzenleyiciyle aşağıdaki gibi dosyalayın:

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

Çekirdek modüllerini kara listeye almak için yeni , nvidiafb , Ve snd_hda_intel çekirdek modülleri (NVIDIA GPU'yu geçmek için), aşağıdaki satırları ekleyin /etc/modprobe.d/blacklist.conf dosya:

kara liste yeni

kara liste nvidiafb

kara liste snd_hda_intel

İşiniz bittiğinde tuşuna basın + X bunu takiben VE Ve kaydetmek için /etc/modprobe.d/blacklist.conf dosya.

NVIDIA GPU'nuzu Proxmox VE 8'de VFIO Çekirdek Modülünü Kullanacak Şekilde Yapılandırma

PCI/PCIE cihazını (yani NVIDIA GPU'nuzu) VFIO çekirdek modülünü kullanacak şekilde yapılandırmak için satıcı kimliğini ve cihaz kimliğini bilmeniz gerekir.

Bu durumda, NVIDIA RTX 4070 GPU'mun ve ses cihazımın satıcı kimliği ve cihaz kimliği 10de:2786 Ve 10de:22bc .

NVIDIA GPU'nuzu VFIO çekirdek modülünü kullanacak şekilde yapılandırmak için /etc/modprobe.d/vfio.conf nano metin düzenleyiciyle aşağıdaki gibi dosyalayın:

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

NVIDIA GPU'nuzu ve ses cihazını ile yapılandırmak için: 10de:2786 Ve 10de:22bc (diyelim ki) sırasıyla VFIO çekirdek modülünü kullanmak için aşağıdaki satırı ekleyin. /etc/modprobe.d/vfio.conf dosya.

seçenekler vfio-pci kimlikleri=10de:2786,10de:22bc

İşiniz bittiğinde tuşuna basın + X bunu takiben VE Ve kaydetmek için /etc/modprobe.d/vfio.conf dosya.

Şimdi Proxmove VE 8'in initramf'larını aşağıdaki komutla güncelleyin:

$ update-initramfs -u -k hepsi

İnitramfs güncellendiğinde, üzerine tıklayın Yeniden başlat Değişikliklerin etkili olması için Proxmox VE 8 sunucunuzu yeniden başlatmak için.

Proxmox VE 8 sunucunuz önyüklendiğinde, NVIDIA GPU'nuzun ve ses cihazınızın ( 10de:2786 Ve 10de:22bc benim durumumda) kullanıyorum vfio-pci çekirdek modülü. Artık NVIDIA GPU'nuz Proxmox VE 8 sanal makineye aktarılmaya hazır.

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

NVIDIA GPU'yu Proxmox VE 8 Sanal Makinesine (VM) geçirin

Artık NVIDIA GPU'nuz Proxmox VE 8 sanal makinelerde (VM'ler) geçiş için hazır olduğuna göre, NVIDIA GPU'nuzu istediğiniz Proxmox VE 8 sanal makinede geçirebilir ve kullandığınız işletim sistemine bağlı olarak NVIDIA GPU sürücülerini yükleyebilirsiniz. o sanal makine her zamanki gibi.

Farklı işletim sistemlerinin yüklü olduğu bir Proxmox VE 8 sanal makinesinde (VM) NVIDIA GPU'nuzu nasıl geçireceğiniz hakkında ayrıntılı bilgi için aşağıdaki makalelerden birini okuyun:

  • NVIDIA GPU'yu Windows 11 Proxmox VE 8 Sanal Makinesine (VM) Aktarma
  • NVIDIA GPU'yu Ubuntu 24.04 LTS Proxmox VE 8 Sanal Makinesine (VM) Aktarma
  • NVIDIA GPU'yu LinuxMint 21 Proxmox VE 8 Sanal Makinesine (VM) Aktarma
  • NVIDIA GPU'yu Debian 12 Proxmox VE 8 Sanal Makinesine (VM) Aktarma
  • NVIDIA GPU'yu Temel OS 8 Proxmox VE 8 Sanal Makinesine (VM) Aktarma
  • NVIDIA GPU'yu Fedora 39+ Proxmox VE 8 Sanal Makinesine (VM) Aktarma
  • Arch Linux Proxmox VE 8 Sanal Makinesinde (VM) NVIDIA GPU'dan Geçiş Nasıl Yapılır?
  • Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8 Sanal Makinesinde (VM) NVIDIA GPU'dan Geçiş Nasıl Yapılır?

Proxmox VE 8 Sanal Makinelerinde (VM'ler) PCI/PCIE Geçişiyle İlgili Hala Sorun mu Yaşıyorsunuz?

Bu makalede listelenen her şeyi doğru bir şekilde denedikten sonra bile PCI/PCIE geçişi hala çalışmıyorsa, mutlaka Proxmox VE PCI/PCIE geçiş hilelerinden ve/veya geçici çözümlerinden bazılarını deneyin Donanımınızda PCI/PCIE geçiş çalışmasını sağlamak için kullanabileceğiniz.

Çözüm

Bu yazıda Proxmox VE 8 sunucunuzu PCI/PCIE geçişi için nasıl yapılandıracağınızı, böylece PCI/PCIE aygıtlarını (yani NVIDIA GPU'nuzu) Proxmox VE 8 sanal makinelerinize (VM'ler) aktarabileceğinizi gösterdim. Ayrıca, kara listeye almanız gereken çekirdek modüllerini nasıl bulacağınızı ve istediğiniz PCI/PCIE aygıtlarının (yani NVIDIA GPU'nuzun) bir Proxmox VE 8 sanal makinesine başarılı bir şekilde geçişi için bunları nasıl kara listeye alacağınızı da gösterdim. Son olarak, istediğiniz PCI/PCIE cihazlarını (yani NVIDIA GPU'nuzu) VFIO çekirdek modüllerini kullanacak şekilde nasıl yapılandıracağınızı gösterdim; bu aynı zamanda istediğiniz PCI/PCIE cihazlarının (yani NVIDIA GPU'nuzun) başarılı bir şekilde geçişi için önemli bir adımdır. ) bir Proxmox VE 8 sanal makinesine (VM) bağlayın.

Referanslar

  1. PCI(e) Geçişi – Proxmox VE
  2. PCI Geçişi – Proxmox VE
  3. Proxmox'taki en üstün oyun sanal makinesi – YouTube