Proxmox VE 8 là một trong những trình ảo hóa loại I miễn phí và mã nguồn mở tốt nhất hiện có để chạy các máy ảo QEMU/KVM (VM) và bộ chứa LXC. Nó có giao diện quản lý web đẹp và nhiều tính năng.
Một trong những tính năng tuyệt vời nhất của Proxmox VE là nó có thể chuyển các thiết bị PCI/PCIE (tức là GPU NVIDIA) từ máy tính của bạn sang máy ảo Proxmox VE (VM). Quá trình chuyển tiếp PCI/PCIE ngày càng tốt hơn với các bản phát hành Proxmox VE mới hơn. Tại thời điểm viết bài này, phiên bản mới nhất của Proxmox VE là Proxmox VE v8.1 và nó có hỗ trợ chuyển tiếp PCI/PCIE tuyệt vời.
Trong bài viết này, tôi sẽ hướng dẫn bạn cách định cấu hình máy chủ/máy chủ Proxmox VE 8 để truyền qua PCI/PCIE và định cấu hình GPU NVIDIA của bạn để truyền qua PCIE trên máy ảo (VM) Proxmox VE 8.
Mục lục
- Kích hoạt ảo hóa từ Firmware BIOS/UEFI trên bo mạch chủ của bạn
- Cài đặt Proxmox VE 8
- Kích hoạt kho lưu trữ cộng đồng Proxmox VE 8
- Cài đặt bản cập nhật trên Proxmox VE 8
- Kích hoạt IOMMU từ Firmware BIOS/UEFI trên bo mạch chủ của bạn
- Kích hoạt IOMMU trên Proxmox VE 8
- Xác minh xem IOMMU có được bật trên Proxmox VE 8 hay không
- Đang tải mô-đun hạt nhân VFIO trên Proxmox VE 8
- Liệt kê các nhóm IOMMU trên Proxmox VE 8
- Kiểm tra xem GPU NVIDIA của bạn có thể truyền qua máy ảo Proxmox VE 8 (VM) hay không
- Kiểm tra các mô-đun hạt nhân trong danh sách đen để truyền qua PCI/PCIE trên Proxmox VE 8
- Đưa vào danh sách đen các mô-đun hạt nhân cần thiết để truyền qua PCI/PCIE trên Proxmox VE 8
- Định cấu hình GPU NVIDIA của bạn để sử dụng Mô-đun hạt nhân VFIO trên Proxmox VE 8
- Chuyển GPU NVIDIA sang Máy ảo Proxmox VE 8 (VM)
- Bạn vẫn gặp sự cố với Truyền qua PCI/PCIE trên Máy ảo (VM) Proxmox VE 8?
- Phần kết luận
- Người giới thiệu
Kích hoạt ảo hóa từ Firmware BIOS/UEFI trên bo mạch chủ của bạn
Trước khi có thể cài đặt Proxmox VE 8 trên máy tính/máy chủ của mình, bạn phải bật tính năng ảo hóa phần cứng của bộ xử lý từ chương trình cơ sở BIOS/UEFI của bo mạch chủ. Quá trình này khác nhau đối với các bo mạch chủ khác nhau. Vì vậy, nếu bạn cần bất kỳ sự trợ giúp nào trong việc kích hoạt ảo hóa phần cứng trên bo mạch chủ của mình, đọc bài viết này .
Cài đặt Proxmox VE 8
Proxmox VE 8 được tải xuống, cài đặt và sử dụng miễn phí. Trước khi bắt đầu, hãy đảm bảo cài đặt Proxmox VE 8 trên máy tính của bạn. Nếu bạn cần bất kỳ sự trợ giúp nào về điều đó, đọc bài viết này .
Kích hoạt kho lưu trữ cộng đồng Proxmox VE 8
Khi bạn đã cài đặt Proxmox VE 8 trên máy tính/máy chủ của mình, hãy đảm bảo kích hoạt kho gói cộng đồng Proxmox VE 8 .
Theo mặc định, kho lưu trữ gói doanh nghiệp Proxmox VE 8 được bật và bạn sẽ không thể tải/cài đặt các bản cập nhật và sửa lỗi từ kho lưu trữ doanh nghiệp trừ khi bạn đã mua giấy phép doanh nghiệp Proxmox VE 8. Vì vậy, nếu bạn muốn sử dụng Proxmox VE 8 miễn phí, hãy đảm bảo kích hoạt kho gói cộng đồng Proxmox VE 8 để nhận miễn phí các bản cập nhật và sửa lỗi mới nhất từ Proxmox.
Cài đặt bản cập nhật trên Proxmox VE 8
Một khi bạn đã đã bật kho gói cộng đồng Proxmox VE 8 , hãy đảm bảo cài đặt tất cả các bản cập nhật có sẵn trên máy chủ Proxmox VE 8 của bạn .
Kích hoạt IOMMU từ Firmware BIOS/UEFI trên bo mạch chủ của bạn
Cấu hình IOMMU được tìm thấy ở các vị trí khác nhau trên các bo mạch chủ khác nhau. Để kích hoạt IOMMU trên bo mạch chủ của bạn, đọc bài viết này .
Kích hoạt IOMMU trên Proxmox VE 8
Khi IOMMU được bật ở phía phần cứng, bạn cũng cần bật IOMMU từ phía phần mềm (từ Proxmox VE 8).
Để kích hoạt IOMMU từ Proxmox VE 8, bạn phải thêm các tham số khởi động kernel sau:
Nhà cung cấp bộ xử lý | Tham số khởi động kernel cần thêm |
Intel | intel_iommu=bật, iommu=pt |
AMD | iommu=pt |
Để sửa đổi các tham số khởi động kernel của Proxmox VE 8, hãy mở /etc/mặc định/grub tập tin bằng trình soạn thảo văn bản nano như sau:
$ nano /etc/default/grub
Vào cuối của GRUB_CMDLINE_LINUX_DEFAULT , hãy thêm các tham số khởi động kernel cần thiết để bật IOMMU tùy thuộc vào bộ xử lý bạn đang sử dụng.
Vì tôi đang sử dụng bộ xử lý AMD nên tôi chỉ thêm tham số khởi động kernel iommu=pt vào cuối của GRUB_CMDLINE_LINUX_DEFAULT dòng trong /etc/mặc định/grub tài liệu.
Khi bạn đã hoàn tất, hãy nhấn
Bây giờ, hãy cập nhật cấu hình khởi động GRUB bằng lệnh sau:
$ cập nhật-grub2
Khi cấu hình khởi động GRUB được cập nhật, hãy nhấp vào Khởi động lại để khởi động lại máy chủ Proxmox VE 8 của bạn để những thay đổi có hiệu lực.
Xác minh xem IOMMU có được bật trên Proxmox VE 8 hay không
Để xác minh xem IOMMU có được bật trên Proxmox VE 8 hay không, hãy chạy lệnh sau:
$dmesg | grep -e DMAR -e IOMMU
Nếu IOMMU được bật, bạn sẽ thấy một số kết quả đầu ra xác nhận rằng IOMMU đã được bật.
Nếu IOMMU không được bật, bạn có thể không thấy bất kỳ kết quả đầu ra nào.
Bạn cũng cần phải có Ánh xạ lại ngắt IOMMU được kích hoạt để thông qua PCI/PCIE hoạt động.
Để kiểm tra xem IOMMU Interrupt Remapping có được bật trên máy chủ Proxmox VE 8 của bạn hay không, hãy chạy lệnh sau:
$dmesg | grep 'ánh xạ lại'
Như bạn có thể thấy, Bản đồ lại ngắt IOMMU được bật trên máy chủ Proxmox VE 8 của tôi.
Hầu hết các bộ xử lý AMD và Intel hiện đại sẽ được kích hoạt IOMMU Interrupt Remapping. Nếu vì bất kỳ lý do gì mà bạn không bật tính năng Ánh xạ lại ngắt IOMMU thì có một cách giải quyết. Bạn phải kích hoạt Ngắt không an toàn cho VFIO. Đọc bài viết này để biết thêm thông tin về cách bật Ngắt không an toàn trên máy chủ Proxmox VE 8 của bạn.
Đang tải mô-đun hạt nhân VFIO trên Proxmox VE 8
Việc chuyển qua PCI/PCIE được thực hiện chủ yếu bởi các mô-đun hạt nhân VFIO (I/O chức năng ảo) trên Proxmox VE 8. Các mô-đun hạt nhân VFIO không được tải vào lúc khởi động theo mặc định trên Proxmox VE 8. Tuy nhiên, việc tải VFIO rất dễ dàng mô-đun hạt nhân khi khởi động trên Proxmox VE 8.
Đầu tiên, hãy mở /etc/modules-load.d/vfio.conf tập tin với nano soạn thảo văn bản như sau:
$ nano /etc/modules-load.d/vfio.conf
Gõ những dòng sau vào ô /etc/modules-load.d/vfio.conf tài liệu.
vfiovfio_iommu_type1
vfio_pci
Khi bạn đã hoàn tất, hãy nhấn
Bây giờ, hãy cập nhật initramfs của bản cài đặt Proxmox VE 8 bằng lệnh sau:
$ cập nhật-initramfs -u -k tất cả
Khi initramfs được cập nhật, hãy nhấp vào Khởi động lại để khởi động lại máy chủ Proxmox VE 8 của bạn để những thay đổi có hiệu lực.
Khi máy chủ Proxmox VE 8 của bạn khởi động, bạn sẽ thấy tất cả các mô-đun hạt nhân VFIO cần thiết đã được tải.
$ lsmod | nắm vfio
Liệt kê các nhóm IOMMU trên Proxmox VE 8
Để chuyển qua các thiết bị PCI/PCIE trên máy ảo (VM) Proxmox VE 8, bạn sẽ cần kiểm tra các nhóm IOMMU của thiết bị PCI/PCIE khá thường xuyên. Để việc kiểm tra các nhóm IOMMU dễ dàng hơn, tôi quyết định viết một shell script (tôi lấy nó từ GitHub, nhưng tôi không nhớ tên của người đăng ban đầu) trong đường dẫn /usr/local/bin/print-iommu-groups để tôi có thể chạy nhóm in-iommu lệnh và nó sẽ in các nhóm IOMMU trên vỏ Proxmox VE 8.
Đầu tiên, tạo một tập tin mới nhóm in-iommu trong con đường /usr/local/bin và mở nó bằng trình soạn thảo văn bản nano như sau:
$ nano /usr/local/bin/print-iommu-groups
Gõ những dòng sau vào ô nhóm in-iommu tài liệu:
#!/bin/bashcửa hàng -S nullglob
vì g TRONG ` tìm thấy / hệ thống / hạt nhân / iommu_groups /* -độ sâu tối đa 0 -kiểu d | loại -TRONG ` ; LÀM
tiếng vọng 'Tập đoàn IOMMU ${g##*/} :'
vì d TRONG $g / thiết bị /* ; LÀM
tiếng vọng -Nó là ' \t $(lspci -nns ${d##*/}) '
xong ;
xong ;
Khi bạn đã hoàn tất, hãy nhấn
Làm cái nhóm in-iommu tập tin script có thể thực thi được bằng lệnh sau:
$ chmod +x /usr/local/bin/print-iommu-groups
Bây giờ, bạn có thể chạy nhóm in-iommu lệnh như sau để in các nhóm IOMMU của thiết bị PCI/PCIE được cài đặt trên máy chủ Proxmox VE 8 của bạn:
$ print-iommu-group
Như bạn có thể thấy, nhóm IOMMU của thiết bị PCI/PCIE được cài đặt trên máy chủ Proxmox VE 8 của tôi đã được in.
Kiểm tra xem GPU NVIDIA của bạn có thể truyền qua máy ảo Proxmox VE 8 (VM) hay không
Để chuyển thiết bị PCI/PCIE sang máy ảo (VM) Proxmox VE 8, thiết bị đó phải nằm trong nhóm IOMMU của chính nó. Nếu 2 thiết bị PCI/PCIE trở lên chia sẻ một nhóm IOMMU, bạn không thể chuyển bất kỳ thiết bị PCI/PCIE nào của nhóm IOMMU đó sang bất kỳ máy ảo (VM) Proxmox VE 8 nào.
Vì vậy, nếu GPU NVIDIA và thiết bị âm thanh của nó thuộc nhóm IOMMU riêng, bạn có thể chuyển GPU NVIDIA sang bất kỳ máy ảo (VM) Proxmox VE 8 nào.
Trên máy chủ Proxmox VE 8 của tôi, tôi đang sử dụng bo mạch chủ MSI X570 ACE kết hợp với bộ xử lý Ryzen 3900X và GPU Gigabyte RTX 4070 NVIDIA. Theo các nhóm IOMMU trong hệ thống của tôi, tôi có thể chuyển qua GPU NVIDIA RTX 4070 (IOMMU Nhóm 21), Bộ điều khiển Ethernet RTL8125 2.5Gbe (IOMMU Nhóm 20), Bộ điều khiển Ethernet Intel I211 Gigabit (IOMMU Nhóm 19), bộ điều khiển USB 3.0 ( IOMMU Nhóm 24) và Bộ điều khiển âm thanh HD tích hợp (IOMMU Nhóm 25).
$ print-iommu-group
Vì trọng tâm chính của bài viết này là định cấu hình Proxmox VE 8 để truyền GPU NVIDIA sang máy ảo Proxmox VE 8, GPU NVIDIA và thiết bị Âm thanh của nó phải nằm trong nhóm IOMMU riêng.
Kiểm tra các mô-đun hạt nhân trong danh sách đen để truyền qua PCI/PCIE trên Proxmox VE 8
Để chuyển thiết bị PCI/PCIE trên máy ảo Proxmox VE 8 (VM), bạn phải đảm bảo rằng Proxmox VE buộc thiết bị phải sử dụng mô-đun hạt nhân VFIO thay vì mô-đun hạt nhân ban đầu.
Để tìm ra mô-đun hạt nhân mà thiết bị PCI/PCIE của bạn đang sử dụng, bạn cần biết ID nhà cung cấp và ID thiết bị của các thiết bị PCI/PCIE này. Bạn có thể tìm ID nhà cung cấp và ID thiết bị của thiết bị PCI/PCIE bằng cách sử dụng nhóm in-iommu yêu cầu.
$ print-iommu-group
Ví dụ: ID nhà cung cấp và ID thiết bị của GPU NVIDIA RTX 4070 của tôi là 10de:2786 và đó là thiết bị âm thanh 10de:22bc .
Để tìm mô-đun hạt nhân, thiết bị PCI/PCIE 10de:2786 (GPU NVIDIA RTX 4070 của tôi) đang sử dụng, hãy chạy lspci lệnh như sau:
$ lspci -v -d 10de:2786
Như bạn có thể thấy, GPU NVIDIA RTX 4070 của tôi đang sử dụng nvidiafb Và mới mô-đun hạt nhân theo mặc định. Vì vậy, chúng không thể được chuyển sang máy ảo (VM) Proxmox VE 8 vào thời điểm này.
Thiết bị âm thanh của GPU NVIDIA RTX 4070 của tôi đang sử dụng snd_hda_intel mô-đun hạt nhân. Vì vậy, nó cũng không thể được truyền trên máy ảo Proxmox VE 8 vào thời điểm này.
$ lspci -v -d 10de:22bc
Vì vậy, để chuyển GPU NVIDIA RTX 4070 và thiết bị âm thanh của nó trên máy ảo Proxmox VE 8 (VM), tôi phải đưa vào danh sách đen nvidiafb , mới , Và snd_hda_intel mô-đun hạt nhân và định cấu hình GPU NVIDIA RTX 4070 của tôi cũng như thiết bị âm thanh của nó để sử dụng vfio-pci mô-đun hạt nhân.
Đưa vào danh sách đen các mô-đun hạt nhân cần thiết để truyền qua PCI/PCIE trên Proxmox VE 8
Để đưa các mô-đun hạt nhân vào danh sách đen trên Proxmox VE 8, hãy mở /etc/modprobe.d/blacklist.conf tập tin bằng trình soạn thảo văn bản nano như sau:
$ nano /etc/modprobe.d/blacklist.conf
Để đưa vào danh sách đen các mô-đun hạt nhân mới , nvidiafb , Và snd_hda_intel mô-đun hạt nhân (để chuyển qua GPU NVIDIA), hãy thêm các dòng sau vào /etc/modprobe.d/blacklist.conf tài liệu:
danh sách đen mớidanh sách đen nvidiafb
danh sách đen snd_hda_intel
Khi bạn đã hoàn tất, hãy nhấn
Định cấu hình GPU NVIDIA của bạn để sử dụng Mô-đun hạt nhân VFIO trên Proxmox VE 8
Để định cấu hình thiết bị PCI/PCIE (tức là GPU NVIDIA của bạn) để sử dụng mô-đun hạt nhân VFIO, bạn cần biết ID nhà cung cấp và ID thiết bị của chúng.
Trong trường hợp này, ID nhà cung cấp và ID thiết bị của GPU NVIDIA RTX 4070 của tôi và thiết bị âm thanh của nó là 10de:2786 Và 10de:22bc .
Để định cấu hình GPU NVIDIA của bạn để sử dụng mô-đun hạt nhân VFIO, hãy mở /etc/modprobe.d/vfio.conf tập tin bằng trình soạn thảo văn bản nano như sau:
$ nano /etc/modprobe.d/vfio.conf
Để định cấu hình GPU NVIDIA và thiết bị âm thanh của nó bằng
Khi bạn đã hoàn tất, hãy nhấn
Bây giờ, hãy cập nhật initramfs của Proxmove VE 8 bằng lệnh sau:
$ cập nhật-initramfs -u -k tất cả
Khi initramfs được cập nhật, hãy nhấp vào Khởi động lại để khởi động lại máy chủ Proxmox VE 8 của bạn để những thay đổi có hiệu lực.
Khi máy chủ Proxmox VE 8 của bạn khởi động, bạn sẽ thấy GPU NVIDIA và thiết bị âm thanh của nó ( 10de:2786 Và 10de:22bc trong trường hợp của tôi) đang sử dụng vfio-pci mô-đun hạt nhân. Bây giờ, GPU NVIDIA của bạn đã sẵn sàng được chuyển sang máy ảo Proxmox VE 8.
$ lspci -v -d 10de:2786$ lspci -v -d 10de:22bc
Chuyển GPU NVIDIA sang Máy ảo Proxmox VE 8 (VM)
Giờ đây, GPU NVIDIA của bạn đã sẵn sàng để chuyển qua các máy ảo (VM) Proxmox VE 8, bạn có thể chuyển qua GPU NVIDIA trên máy ảo Proxmox VE 8 mong muốn của mình và cài đặt trình điều khiển GPU NVIDIA tùy thuộc vào hệ điều hành mà bạn đang sử dụng. máy ảo đó như bình thường.
Để biết thông tin chi tiết về cách chuyển qua GPU NVIDIA của bạn trên máy ảo Proxmox VE 8 (VM) được cài đặt các hệ điều hành khác nhau, hãy đọc một trong các bài viết sau:
- Cách chuyển GPU NVIDIA sang Máy ảo Windows 11 Proxmox VE 8 (VM)
- Cách chuyển GPU NVIDIA sang Máy ảo Ubuntu 24.04 LTS Proxmox VE 8 (VM)
- Cách chuyển GPU NVIDIA sang Máy ảo LinuxMint 21 Proxmox VE 8 (VM)
- Cách chuyển GPU NVIDIA sang Máy ảo Debian 12 Proxmox VE 8 (VM)
- Cách chuyển GPU NVIDIA sang Máy ảo Proxmox VE 8 (VM) chạy hệ điều hành cơ bản
- Cách chuyển GPU NVIDIA sang Máy ảo Fedora 39+ Proxmox VE 8 (VM)
- Cách chuyển qua GPU NVIDIA trên Máy ảo Arch Linux Proxmox VE 8 (VM)
- Cách chuyển qua GPU NVIDIA trên máy ảo Proxmox VE 8 (VM) của Red Hat Enterprise Linux 9 (RHEL 9)
Bạn vẫn gặp sự cố với Truyền qua PCI/PCIE trên Máy ảo (VM) Proxmox VE 8?
Ngay cả sau khi thử chính xác mọi thứ được liệt kê trong bài viết này, nếu thông qua PCI/PCIE vẫn không hiệu quả với bạn, hãy nhớ hãy thử một số thủ thuật và/hoặc cách giải quyết thông qua Proxmox VE PCI/PCIE mà bạn có thể sử dụng để thực hiện công việc chuyển tiếp PCI/PCIE trên phần cứng của mình.
Phần kết luận
Trong bài viết này, tôi đã hướng dẫn bạn cách định cấu hình máy chủ Proxmox VE 8 để truyền qua PCI/PCIE để bạn có thể chuyển qua các thiết bị PCI/PCIE (tức là GPU NVIDIA) sang máy ảo (VM) Proxmox VE 8 của bạn. Tôi cũng đã chỉ cho bạn cách tìm ra các mô-đun hạt nhân mà bạn cần đưa vào danh sách đen và cách đưa chúng vào danh sách đen để chuyển thành công các thiết bị PCI/PCIE mong muốn của bạn (tức là GPU NVIDIA) sang máy ảo Proxmox VE 8. Cuối cùng, tôi đã chỉ cho bạn cách định cấu hình các thiết bị PCI/PCIE mong muốn của bạn (tức là GPU NVIDIA của bạn) để sử dụng các mô-đun hạt nhân VFIO, đây cũng là một bước thiết yếu để chuyển đổi thành công các thiết bị PCI/PCIE mong muốn của bạn (tức là GPU NVIDIA của bạn). ) sang máy ảo Proxmox VE 8 (VM).