כיצד להגדיר את Proxmox VE 8 עבור PCI/PCIE ו-NVIDIA GPU Passthrough

Kyzd Lhgdyr T Proxmox Ve 8 Bwr Pci Pcie W Nvidia Gpu Passthrough



Proxmox VE 8 הוא אחד מה-Hypervisors מסוג קוד פתוח וחינמיים הטובים ביותר שיש להפעלת מכונות וירטואליות QEMU/KVM (VMs) ומכולות LXC. יש לו ממשק ניהול אינטרנט נחמד והרבה תכונות.

אחת התכונות המדהימות ביותר של Proxmox VE היא שהוא יכול להעביר התקני PCI/PCIE (כלומר NVIDIA GPU) מהמחשב שלך למכונות וירטואליות של Proxmox VE (VMs). מעבר PCI/PCIE הולך ומשתפר עם מהדורות חדשות יותר של Proxmox VE. בזמן כתיבת שורות אלה, הגרסה האחרונה של Proxmox VE היא Proxmox VE v8.1 ויש לה תמיכה מצוינת במעבר PCI/PCIE.







במאמר זה, אני הולך להראות לך כיצד להגדיר את המארח/שרת Proxmox VE 8 שלך עבור PCI/PCIE מעבר ולהגדיר את ה-NVIDIA GPU שלך עבור מעבר PCIE במכונות וירטואליות Proxmox VE 8 (VMs).





תוכן העניינים

  1. הפעלת וירטואליזציה מקושחת ה-BIOS/UEFI של לוח האם שלך
  2. התקנת Proxmox VE 8
  3. הפעלת מאגרי קהילה של Proxmox VE 8
  4. התקנת עדכונים על Proxmox VE 8
  5. הפעלת IOMMU מקושחת ה-BIOS/UEFI של לוח האם שלך
  6. הפעלת IOMMU ב-Proxmox VE 8
  7. אימות אם IOMMU מופעל ב-Proxmox VE 8
  8. טעינת מודולי ליבת VFIO ב-Proxmox VE 8
  9. רישום קבוצות IOMMU ב-Proxmox VE 8
  10. בדיקה אם ה-NVIDIA GPU שלך יכול לעבור למכונה וירטואלית של Proxmox VE 8 (VM)
  11. בדיקת מודולי הליבה לרשימה שחורה עבור PCI/PCIE Passthrough ב-Proxmox VE 8
  12. רשימה שחורה של מודולי ליבה נדרשים עבור PCI/PCIE Passthrough ב-Proxmox VE 8
  13. הגדרת ה-NVIDIA GPU שלך לשימוש במודול ליבת VFIO ב-Proxmox VE 8
  14. העברת ה-NVIDIA GPU למכונה וירטואלית של Proxmox VE 8 (VM)
  15. עדיין נתקל בבעיות עם PCI/PCIE Passthrough במכונות וירטואליות של Proxmox VE 8 (VMs)?
  16. סיכום
  17. הפניות





הפעלת וירטואליזציה מקושחת ה-BIOS/UEFI של לוח האם שלך

לפני שתוכל להתקין את Proxmox VE 8 במחשב/שרת שלך, עליך להפעיל את תכונת הווירטואליזציה של החומרה של המעבד שלך מקושחת ה-BIOS/UEFI של לוח האם שלך. התהליך שונה עבור לוחות אם שונים. לכן, אם אתה זקוק לסיוע כלשהו בהפעלת וירטואליזציה של חומרה בלוח האם שלך, לקרוא את המאמר הזה .



התקנת Proxmox VE 8

Proxmox VE 8 ניתן להורדה, התקנה ושימוש בחינם. לפני שתתחיל, הקפד להתקין את Proxmox VE 8 במחשב שלך. אם אתה צריך עזרה כלשהי בנושא, לקרוא את המאמר הזה .

הפעלת מאגרי קהילה של Proxmox VE 8

לאחר שתתקין את Proxmox VE 8 במחשב/שרת שלך, הקפד לעשות זאת אפשר את מאגרי החבילות של Proxmox VE 8 .

כברירת מחדל, מאגרי החבילות הארגוניים של Proxmox VE 8 מופעלים ולא תוכל לקבל/להתקין עדכונים ותיקוני באגים מהמאגרים הארגוניים אלא אם כן קנית רישיונות ארגוניים של Proxmox VE 8. אז אם אתה רוצה להשתמש ב-Proxmox VE 8 בחינם, הקפד לעשות זאת אפשר את מאגרי החבילות של Proxmox VE 8 כדי לקבל את העדכונים האחרונים ותיקוני באגים מ-Proxmox בחינם.

התקנת עדכונים על Proxmox VE 8

ברגע שעשית אפשרו את מאגרי החבילות הקהילתיות של Proxmox VE 8 , הקפד לעשות זאת התקן את כל העדכונים הזמינים בשרת Proxmox VE 8 שלך .

הפעלת IOMMU מקושחת ה-BIOS/UEFI של לוח האם שלך

תצורת IOMMU נמצאת במקומות שונים בלוחות אם שונים. כדי להפעיל את IOMMU בלוח האם שלך, לקרוא את המאמר הזה .

הפעלת IOMMU ב-Proxmox VE 8

ברגע שה-IOMMU מופעל בצד החומרה, עליך להפעיל את IOMMU גם מצד התוכנה (מ-Proxmox VE 8).

כדי להפעיל את IOMMU מ-Proxmox VE 8, יש לך להוסיף את הפרמטרים הבאים לאתחול הליבה:

ספק מעבד פרמטרי אתחול ליבה להוספה
אינטל intel_iommu=on, iommu=pt
AMD iommu=pt

כדי לשנות את פרמטרי האתחול של הליבה של Proxmox VE 8, פתח את /etc/default/grub קובץ עם עורך הטקסט הננו באופן הבא:

$ nano /etc/default/grub

בסוף ה GRUB_CMDLINE_LINUX_DEFAULT , הוסף את פרמטרי האתחול הדרושים של הליבה להפעלת IOMMU בהתאם למעבד שבו אתה משתמש.

מכיוון שאני משתמש במעבד AMD, הוספתי רק את פרמטר האתחול של הליבה iommu=pt בסוף ה GRUB_CMDLINE_LINUX_DEFAULT קו ב- /etc/default/grub קוֹבֶץ.

לאחר שתסיים, הקש + איקס בא אחריו ו ו כדי להציל את /etc/default/grub קוֹבֶץ.

כעת, עדכן את תצורות האתחול של GRUB עם הפקודה הבאה:

$ update-grub2

לאחר עדכון תצורות האתחול של GRUB, לחץ על לְאַתחֵל כדי להפעיל מחדש את שרת Proxmox VE 8 שלך כדי שהשינויים ייכנסו לתוקף.

אימות אם IOMMU מופעל ב-Proxmox VE 8

כדי לוודא אם IOMMU מופעל ב-Proxmox VE 8, הפעל את הפקודה הבאה:

$ dmesg | grep -e DMAR -e IOMMU

אם IOMMU מופעל, תראה כמה פלטים המאשרים ש-IOMMU מופעל.

אם IOMMU אינו מופעל, ייתכן שלא תראה יציאות.

אתה צריך גם את מיפוי מחדש של פסיקה של IOMMU מופעל כדי שמעבר PCI/PCIE יפעל.

כדי לבדוק אם IOMMU Interrupt Remapping מופעל בשרת Proxmox VE 8 שלך, הפעל את הפקודה הבאה:

$ dmesg | grep 'מאפינג מחדש'

כפי שאתה יכול לראות, IOMMU Interrupt Remapping מופעל בשרת Proxmox VE 8 שלי.

לרוב מעבדי AMD ואינטל המודרניים מופעלת IOMMU Interrupt Remapping. אם מסיבה כלשהי, לא הפעלת את IOMMU Interrupt Remapping, יש דרך לעקיפת הבעיה. עליך להפעיל פסיקות לא בטוחות עבור VFIO. קרא את המאמר הזה למידע נוסף על הפעלת הפרעות לא בטוחות בשרת Proxmox VE 8 שלך.

טעינת מודולי ליבת VFIO ב-Proxmox VE 8

העברת PCI/PCIE מתבצעת בעיקר על ידי מודולי ליבת VFIO (Virtual Function I/O) ב-Proxmox VE 8. מודולי ליבת VFIO אינם נטענים בזמן האתחול כברירת מחדל ב-Proxmox VE 8. אבל, קל לטעון את ה-VFIO מודולי ליבה בזמן האתחול ב-Proxmox VE 8.

ראשית, פתח את ה /etc/modules-load.d/vfio.conf קובץ עם ה ננו עורך טקסט באופן הבא:

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

הקלד את השורות הבאות ב- /etc/modules-load.d/vfio.conf קוֹבֶץ.

vfio

vfio_iommu_type1

vfio_pci

לאחר שתסיים, הקש + איקס בא אחריו ו ו כדי לשמור את השינויים.

כעת, עדכן את initramfs של התקנת Proxmox VE 8 שלך עם הפקודה הבאה:

$ update-initramfs -u -k הכל

לאחר עדכון initramfs, לחץ על לְאַתחֵל כדי להפעיל מחדש את שרת Proxmox VE 8 שלך כדי שהשינויים ייכנסו לתוקף.

לאחר אתחול שרת ה-Proxmox VE 8 שלך, אתה אמור לראות שכל מודולי ליבת ה-VFIO הנדרשים נטענים.

$ lsmod | grip vfio

רישום קבוצות IOMMU ב-Proxmox VE 8

כדי להעביר מכשירי PCI/PCIE במכונות וירטואליות Proxmox VE 8 (VMs), תצטרך לבדוק את קבוצות IOMMU של התקני PCI/PCIE שלך בתדירות גבוהה למדי. כדי להקל על בדיקת קבוצות IOMMU, החלטתי לכתוב סקריפט מעטפת (קיבלתי אותו מ-GitHub, אבל אני לא זוכר את שם הפוסטר המקורי) בנתיב /usr/local/bin/print-iommu-groups כדי שאוכל פשוט לרוץ print-iommu-groups הפקודה והיא תדפיס את קבוצות IOMMU על מעטפת Proxmox VE 8.

ראשית, צור קובץ חדש print-iommu-groups בנתיב /usr/local/bin ופתח אותו עם עורך הטקסט הננו באופן הבא:

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

הקלד את השורות הבאות ב- print-iommu-groups קוֹבֶץ:

#!/bin/bash

חנויות nullglob

ל ז ב ` למצוא / sys / גַרעִין / iommu_groups /* -מקסימום עומק 0 -סוּג ד | סוג -IN ` ; לַעֲשׂוֹת

הֵד 'קבוצת IOMMU ${g##*/} :'

ל ד ב $g / מכשירים /* ; לַעֲשׂוֹת

הֵד -זה ' \t $(lspci -nns ${d##*/}) '

בוצע ;

בוצע ;

לאחר שתסיים, הקש + איקס בא אחריו ו ו כדי לשמור את השינויים ב- print-iommu-groups קוֹבֶץ.

לעשות את ה print-iommu-groups קובץ script בר הפעלה עם הפקודה הבאה:

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

עכשיו, אתה יכול להפעיל את print-iommu-groups הפקודה כדלקמן כדי להדפיס את קבוצות IOMMU של התקני PCI/PCIE המותקנים בשרת Proxmox VE 8 שלך:

$ print-iommu-groups

כפי שאתה יכול לראות, קבוצות IOMMU של התקני PCI/PCIE המותקנים בשרת ה-Proxmox VE 8 שלי מודפסות.

בדיקה אם ה-NVIDIA GPU שלך יכול לעבור למכונה וירטואלית של Proxmox VE 8 (VM)

כדי להעביר מכשיר PCI/PCIE למחשב וירטואלי Proxmox VE 8 (VM), עליו להיות בקבוצת IOMMU משלו. אם 2 או יותר התקני PCI/PCIE חולקים קבוצת IOMMU, אינך יכול להעביר אף אחד מהתקני PCI/PCIE של קבוצת IOMMU זו למכונות וירטואליות של Proxmox VE 8 (VMs).

לכן, אם ה-NVIDIA GPU שלך והתקן השמע שלו נמצאים בקבוצת IOMMU משלו, אתה יכול להעביר את ה-NVIDIA GPU לכל מכונות וירטואליות של Proxmox VE 8 (VMs).

בשרת Proxmox VE 8 שלי, אני משתמש בלוח אם MSI X570 ACE בשילוב עם מעבד Ryzen 3900X ו-Gigabyte RTX 4070 NVIDIA GPU. לפי קבוצות IOMMU של המערכת שלי, אני יכול להעביר את NVIDIA RTX 4070 GPU (IOMMU Group 21), RTL8125 2.5Gbe Ethernet Controller (IOMMU Group 20), Intel I211 Gigabit Ethernet Controller (IOMMU Group 19), בקר USB 3.0 ( IOMMU Group 24), ובקר האודיו HD המשולב (IOMMU Group 25).

$ print-iommu-groups

מכיוון שהמוקד העיקרי של מאמר זה הוא הגדרת Proxmox VE 8 למעבר דרך ה-NVIDIA GPU למכונות וירטואליות של Proxmox VE 8, ה-NVIDIA GPU והתקן האודיו שלו חייבים להיות בקבוצת IOMMU משלו.

בדיקת מודולי הליבה לרשימה שחורה עבור PCI/PCIE Passthrough ב-Proxmox VE 8

כדי לעבור התקן PCI/PCIE במכונה וירטואלית של Proxmox VE 8 (VM), עליך לוודא ש-Proxmox VE מאלץ אותו להשתמש במודול ליבת VFIO במקום במודול הליבה המקורי שלו.

כדי לגלות את מודול הליבה שמכשירי ה-PCI/PCIE שלך משתמשים בהם, תצטרך לדעת את מזהה הספק ומזהה ההתקן של התקני PCI/PCIE אלה. אתה יכול למצוא את מזהה הספק ומזהה ההתקן של התקני PCI/PCIE באמצעות print-iommu-groups פקודה.

$ print-iommu-groups

לדוגמה, מזהה הספק ומזהה ההתקן של ה-NVIDIA RTX 4070 GPU שלי הוא 10de:2786 ומכשיר האודיו שלו הוא 10de:22bc .

כדי למצוא את מודול הליבה התקן PCI/PCIE 10de:2786 (ה-NVIDIA RTX 4070 GPU שלי) משתמש, הפעל את lspci הפקודה כדלקמן:

$ lspci -v -d 10de:2786

כפי שאתה יכול לראות, ה-NVIDIA RTX 4070 GPU שלי משתמש ב- nvidiafb ו חָדָשׁ מודולי ליבה כברירת מחדל. לכן, לא ניתן להעביר אותם למכונה וירטואלית Proxmox VE 8 (VM) בשלב זה.

התקן האודיו של ה-NVIDIA RTX 4070 GPU שלי משתמש ב- snd_hda_intel מודול ליבה. לכן, לא ניתן להעביר את זה גם במכונה וירטואלית של Proxmox VE 8 בשלב זה.

$ lspci -v -d 10de:22bc

אז כדי להעביר את ה-NVIDIA RTX 4070 GPU שלי והתקן השמע שלו על מכונה וירטואלית Proxmox VE 8 (VM), אני חייב לרשום את nvidiafb , חָדָשׁ , ו snd_hda_intel מודולי ליבה ולהגדיר את ה-NVIDIA RTX 4070 GPU שלי והתקן השמע שלו להשתמש ב vfio-pci מודול ליבה.

רשימה שחורה של מודולי ליבה נדרשים עבור PCI/PCIE Passthrough ב-Proxmox VE 8

לרשימה שחורה של מודולי ליבה ב-Proxmox VE 8, פתח את /etc/modprobe.d/blacklist.conf קובץ עם עורך הטקסט הננו באופן הבא:

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

לרשימה שחורה של מודולי הליבה חָדָשׁ , nvidiafb , ו snd_hda_intel מודולי ליבה (כדי להעביר את ה-NVIDIA GPU), הוסף את השורות הבאות ב- /etc/modprobe.d/blacklist.conf קוֹבֶץ:

רשימה שחורה נובו

רשימה שחורה של nvidiafb

רשימה שחורה snd_hda_intel

לאחר שתסיים, הקש + איקס בא אחריו ו ו כדי להציל את /etc/modprobe.d/blacklist.conf קוֹבֶץ.

הגדרת ה-NVIDIA GPU שלך לשימוש במודול ליבת VFIO ב-Proxmox VE 8

כדי להגדיר את התקן PCI/PCIE (כלומר, ה-NVIDIA GPU שלך) לשימוש במודול ליבת VFIO, עליך לדעת את מזהה הספק ומזהה ההתקן שלהם.

במקרה זה, מזהה הספק ומזהה ההתקן של ה-NVIDIA RTX 4070 GPU שלי והתקן השמע שלו הם 10de:2786 ו 10de:22bc .

כדי להגדיר את ה-NVIDIA GPU שלך לשימוש במודול ליבת VFIO, פתח את /etc/modprobe.d/vfio.conf קובץ עם עורך הטקסט הננו באופן הבא:

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

כדי להגדיר את ה-NVIDIA GPU והתקן האודיו שלו עם : 10de:2786 ו 10de:22bc (נניח) בהתאמה כדי להשתמש במודול ליבת VFIO, הוסף את השורה הבאה ל- /etc/modprobe.d/vfio.conf קוֹבֶץ.

אפשרויות vfio-pci ids=10de:2786,10de:22bc

לאחר שתסיים, הקש + איקס בא אחריו ו ו כדי להציל את /etc/modprobe.d/vfio.conf קוֹבֶץ.

כעת, עדכן את initramfs של Proxmove VE 8 עם הפקודה הבאה:

$ update-initramfs -u -k הכל

לאחר עדכון initramfs, לחץ על לְאַתחֵל כדי להפעיל מחדש את שרת Proxmox VE 8 שלך כדי שהשינויים ייכנסו לתוקף.

לאחר אתחול שרת ה-Proxmox VE 8 שלך, אתה אמור לראות שה-NVIDIA GPU שלך והתקן השמע שלו ( 10de:2786 ו 10de:22bc במקרה שלי) משתמשים ב- vfio-pci מודול ליבה. כעת, ה-NVIDIA GPU שלך מוכן לעבור למכונה וירטואלית Proxmox VE 8.

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

העברת ה-NVIDIA GPU למכונה וירטואלית של Proxmox VE 8 (VM)

כעת, לאחר שה-NVIDIA GPU שלך מוכן למעבר על מכונות וירטואליות Proxmox VE 8 (VMs), אתה יכול להעביר את ה-NVIDIA GPU שלך במחשב הווירטואלי הרצוי של Proxmox VE 8 ולהתקין את מנהלי ההתקן של NVIDIA GPU בהתאם למערכת ההפעלה שבה אתה משתמש אותה מכונה וירטואלית כרגיל.

למידע מפורט על איך להעביר את ה-NVIDIA GPU שלך במכונה וירטואלית Proxmox VE 8 (VM) עם מערכות הפעלה שונות מותקנות, קרא אחד מהמאמרים הבאים:

  • כיצד להעביר GPU של NVIDIA למכונה וירטואלית של Windows 11 Proxmox VE 8 (VM)
  • כיצד להעביר GPU NVIDIA ל-Ubuntu 24.04 LTS Proxmox VE 8 Virtual Machine (VM)
  • כיצד להעביר GPU NVIDIA ל- LinuxMint 21 Proxmox VE 8 Virtual Machine (VM)
  • כיצד להעביר GPU של NVIDIA למכונה וירטואלית Debian 12 Proxmox VE 8 (VM)
  • כיצד להעביר GPU NVIDIA למערכת OS 8 אלמנטרית Proxmox VE 8 Virtual Machine (VM)
  • כיצד להעביר GPU NVIDIA ל-Fedora 39+ Proxmox VE 8 Virtual Machine (VM)
  • כיצד להעביר GPU של NVIDIA ב- Arch Linux Proxmox VE 8 Virtual Machine (VM)
  • כיצד להעביר GPU של NVIDIA ב-Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8 Virtual Machine (VM)

עדיין נתקל בבעיות עם PCI/PCIE Passthrough במכונות וירטואליות של Proxmox VE 8 (VMs)?

גם לאחר שניסית נכון את כל מה שמופיע במאמר זה, אם מעבר PCI/PCIE עדיין לא עובד בשבילך, הקפד נסה כמה מהטריקים ו/או הדרכים לעקיפת Proxmox VE PCI/PCIE שבו אתה יכול להשתמש כדי לקבל עבודת מעבר PCI/PCIE על החומרה שלך.

סיכום

במאמר זה, הראיתי לך כיצד להגדיר את שרת ה-Proxmox VE 8 שלך למעבר PCI/PCIE כך שתוכל להעביר את התקני PCI/PCIE (כלומר, ה-NVIDIA GPU שלך) למכונות הווירטואליות שלך Proxmox VE 8 (VMs). הראיתי לך גם איך לגלות את מודולי הליבה שאתה צריך לרשימה שחורה וכיצד לרשום אותם ברשימה השחורה למעבר מוצלח של מכשירי ה-PCI/PCIE הרצויים שלך (כלומר, ה-NVIDIA GPU שלך) למכונה וירטואלית Proxmox VE 8. לבסוף, הראיתי לך כיצד להגדיר את התצורה של התקני ה-PCI/PCIE הרצויים (כלומר, ה-NVIDIA GPU שלך) לשימוש במודולי ליבת VFIO, שהוא גם שלב חיוני למעבר מוצלח של התקני PCI/PCIE הרצויים (כלומר, NVIDIA GPU שלך ) למכונה וירטואלית Proxmox VE 8 (VM).

הפניות

  1. PCI(e) Passthrough – Proxmox VE
  2. PCI Passthrough - Proxmox VE
  3. מכונת המשחקים הוירטואלית האולטימטיבית ב-proxmox - YouTube