Cấu hình vGPU Passthrough vga Nvidia Tesla P40 trên Promox

Bước 1: Cài Promox bản 8.2 và update bằng lệnh: apt update, apt dist-upgrate.

Bước 2: Cài các package và tool theo lệnh sau: apt install -y git build-essential dkms pve-headers mdevctl

Bước 3: Cài repo sau trên git: git clone https://gitlab.com/polloloco/vgpu-proxmox.git

Bước 4: Cài thêm repo vgpu_unlock-rs trong folder opt:

cd /opt
git clone https://github.com/polloloco/vgpu_unlock-rs.git

Sau đó cài Rust bằng lệnh sau:curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal

source $HOME/.cargo/env

Bước 5: Thêm thư viện của vgpu_unlock-rs bằng lệnh sau:

cd vgpu_unlock-rs/
cargo build --release

Bước 6: Tạo thư mục để Unlock vGPU:

Tạo thư mục vgpu_unlock và tạo file profile_override.toml rỗng
mkdir /etc/vgpu_unlock
touch /etc/vgpu_unlock/profile_override.toml

Sau đó tạo thư mục và tệp cho systemd để tải thư viện vgpu_unlock-rs khi khởi động dịch vụ nvidia vgpu bằng lệnh sau:

mkdir /etc/systemd/system/{nvidia-vgpud.service.d,nvidia-vgpu-mgr.service.d}
echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpud.service.d/vgpu_unlock.conf
echo -e "[Service]\nEnvironment=LD_PRELOAD=/opt/vgpu_unlock-rs/target/release/libvgpu_unlock_rs.so" > /etc/systemd/system/nvidia-vgpu-mgr.service.d/vgpu_unlock.conf

Bước 7: Bật IOMMU:

7.1: Cấu hình Grub:

  • Mở file /etc/default/grub bằng trình soạn thảo trong linux như vi, vim, nano:nano /etc/default/grub
  • Tìm tới dòng này:GRUB_CMDLINE_LINUX_DEFAULT="quiet"
  • Sửa lai như sau:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt
    "
  • Lưu lại file rồi chạy lệnh sau để update lại grub:update-grub

7.2: Cấu hình systemd-boot:

  • Chỉnh sửa file /etc/kernel/cmdline bằng vi, vim, nano ở đây sử dụng nano:nano /etc/kernel/cmdline
  • Trong file này sẽ có 1 dòng như sau:root=ZFS=rpool/ROOT/pve-1 boot=zfs
  • Thêm vào cuỗi dòng trên ‘intel_iommu=on iommu=pt’ như sau:root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt
  • Lưu file.

Bước 8: Tải các modules Kernel cần thiết và thêm trinh điều khiển mở của nvidia vào blacklist.

Chúng ta cần tải các modules kernel: vfio, vfio_iommu_type1, vfio_pci và vfio_virqfd để vGPU hoạt động:echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" >> /etc/modules

Đưa trình điều khiển mã nguồn mở nouveau vào blacklist:echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

update cấu hình kernel và reboot lại hệ thống:update-initramfs -u -k all

reboot

Sau đó chạy lệnh sau nếu có dòng IOMMU enable thì iommu đã được bật:

dmesg | grep -e DMAR -e IOMMU

Bước 9: Vào các link sau để cài Linux_kvm để unlock vGPU.

Link linux kvm: https://box.cloudzone.vn/index.php/s/He8A13eNIVrwgl9

Bước 10: Cài đặt driver Linux-kvm:

Đầu tiền tải file linux-kvm 16.5 vừa tải qua promox bằng WinSCP đặt ở /root.

Cấp thêm quyền execute cho folder đó như sau:

chmod +x NVIDIA-Linux-x86_64-535.161.05-vgpu-kvm.run 

Tạo patch tương ứng version trong vps-promox:./NVIDIA-Linux-x86_64-535.161.05-vgpu-kvm.run --apply-patch ~/vgpu-proxmox/535.161.05.patch

Sau khi chạy lệnh trên xong nếu xuất ra được như sau là đã patch thành công file linux-kvm:Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86_64 (version: 535.161.05) is now complete.

Lúc này sẽ có thêm 1 file bản custom nhứ sau NVIDIA-Linux-x86_64-550.54.16-vgpu-kvm-custom.run chúng ta sẽ dùng file này để cài đặt bằng lệnh sau:./NVIDIA-Linux-x86_64-535.161.05-vgpu-kvm-custom.run --dkms -m=kernel

Khì cài sẽ có yếu cầu như sau “Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later“. Chúng ta chọn yes và tiếp tục cài đặt.

Sau khi cài đặt xong chúng chạy lênh reboot để reboot lại máy chủ.

Bước 11: Kiểm tra vGPU đã được unlock chưa.

Sau khi máy chủ reboot xong ta chạy lênh sau để kiểm ra drive cài đặt có đang hoạt động không:nvidia-smi

Nếu có output như sau thì driver đang hoạt động:

 

 

 

 

 

 

Kiểm tra vGPU đã được unlock thành công chưa bằng lệnh:mdevctl types

Nếu có output như sau thì vGPU đã unlock thành công:

 

 

 

 

 

 

Nếu không có bất kì output nào thì vGPU chưa unlock được.

Cuối cùng kiểm tra vGPU đã được bật chưa bằng lệnh sau:nvidia-smi vgpu

Nếu có output như này là đã cài đặt thành công

Lưu ý: Nếu kiểm tra bằng 3 lệnh trên mà output không giống trong hình hoặc không có output thì cài đặt đang lỗi và vGPU không chạy được.

Bước 12: Add vGPU cho vm trong promox.

Vào promox, chọn vm cần add, chọn phần hardware chọn add rồi chọn pci.

Sau đó chọn edit rồi chọn device là vga P40 và MDev Type chọn cấu hình vGPU bạn muốn rồi chọn ok để lưu lại.

Cuối cùng login vào vm tải file Driver và cài đặt để vm nhận vGPU.

Link driver: https://box.cloudzone.vn/index.php/s/UbGIageGRsMmG4W

 

Was this article helpful?

Hướng dẫn liên quan

Leave A Comment?