การนำ GPU แบบเสมือน (vGPU) เข้ามาใช้งานในระบบ Virtual Machine บน Proxmox VE ถือเป็นทางเลือกที่ทรงพลัง สำหรับผู้ที่ต้องการความสามารถด้านกราฟิกขั้นสูง เช่น AI/ML, CAD, งานตัดต่อวิดีโอ หรือแม้กระทั่งเกมบน Windows VM ในดาต้าเซ็นเตอร์ หรือโฮมแล็บ
โดยเฉพาะเมื่อใช้งานร่วมกับ NVIDIA Tesla P4 หรือ GPU รุ่น Data Center อื่น ๆ ที่รองรับเทคโนโลยี vGPU คุณสามารถแบ่งทรัพยากร GPU ออกเป็นหลายส่วน ให้ VM หลายตัวใช้งานพร้อมกันได้อย่างมีประสิทธิภาพสูงสุด โดยไม่ต้องมี GPU หลายใบ!
ในบทความนี้ เราจะพาคุณไปตั้งค่า NVIDIA vGPU บน Proxmox VE อย่างครบขั้นตอน ตั้งแต่การเตรียมระบบ ไปจนถึงการติดตั้ง Windows VM พร้อมไดรเวอร์ เพื่อให้ใช้งานได้ “ลื่น” จริง ทั้งกราฟิก 3 มิติ, Remote Desktop, หรือแอปพลิเคชันกราฟิกเข้มข้นต่าง ๆ
บทความนี้ เราจะแนะนำตั้งแต่การเปิด IOMMU, ติดตั้ง NVIDIA vGPU Driver , สร้าง VM พร้อมแนบ GPU ไปจนถึงการติดตั้ง Guest Driver ใน Windows VM
GPU ที่รองรับ vGPU (เช่น NVIDIA Tesla P4 ในบทความนี้)
ไดรเวอร์ NVIDIA vGPU Host Driver
vGPU Manager License (หรือใช้งานแบบ Open GPU Kernel Modules ก็ได้ในบางกรณี)
Proxmox VE (PVE) เวอร์ชัน 8 ขึ้นไป
Windows ISO และ VirtIO Drivers ISO
สามารถใช้ GPU NVIDIA /ไม่ผ่านคุณสมบัติ vGPU ต่อไปนี้ร่วมกับ vGPU ได้:
หากคุณมีการ์ดที่รองรับ vGPU จาก รายการนี้ จะสามารถทำงาน vGPU ได้
ก่อนอื่นต้องทำ เปิด IOMMU GPU Passthrough บน Proxmox VE
– เช็ก BIOS ทำการเปิดใช้งาน SR-IOV
– เปิดใช้งาน Intel Virtualization / Intel VT-d และ SR-IOV ใน NIC ผ่าน BIOS ก่อน
– ทำการเปิด IOMMU บนระบบ Proxmox ดูการติดตั้ง คลิก
1. ทำการดาวน์โหลด Driver NVIDIA vGPU ก่อน **ให้ตรงรุ่น ตัวอย่างคือ รุ่น PASCAL Tesla P4
2. เปิดโปรแกรม WinSCP เพื่อใช้ในการอัพไฟล์ Driver NVIDIA vGPU ขึ้น Host Proxmox VE
3. เข้าสู่ระบบ Proxmox VE
4. เลือกเมนู PVE –> Shell
5. เช็คไฟล์ Driver ที่อัพโหลด ด้วยคำสั่ง
# ls
6. ติดตั้ง แพคเกจ pve (กรณี * pve-no-subscription) **เท่านั้น**
# echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" >> /etc/apt/sources.list # rm /etc/apt/sources.list.d/pve-enterprise.list
7. Update and upgrade
# apt update
# apt dist-upgrade
8. ติดตั้ง แพคเกจ git,compiler
# apt install -y git build-essential dkms pve-headers mdevctl
9. โคลน Git repos
# vgpu_unlock-rs.repo
# git clone https://gitlab.com/polloloco/vgpu-proxmox.git
10. เก็บ vgpu_unlock-rs
# cd /opt # git clone https://github.com/mbilker/vgpu_unlock-rs.git
11.จากนั้นทำการติดตั้ง Rust compiler
# curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal
12. ตอนนี้ให้ไบนารี Rust พร้อมใช้งานใน $PATH (คุณต้องทำในครั้งแรกหลังจากติดตั้ง Rust เท่านั้น)
# source $HOME/.cargo/env
13. เข้าสู่ไดเรกทอรี vgpu_unlock-rs และคอมไพล์ไลบรารี
# cd vgpu_unlock-rs/ # cargo build --release
14.สร้างไฟล์สำหรับปลดล็อค vGPU
# mkdir /etc/vgpu_unlock # touch /etc/vgpu_unlock/profile_override.toml
15.สร้างโฟลเดอร์และไฟล์สำหรับให้ systemd โหลดไลบรารี vgpu_unlock-rs เมื่อเริ่มบริการ NVIDIA vgpu
# 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
16.โหลดโมดูล kernel
# echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" >> /etc/modules
17. ป้องกันไม่ให้โหลดไดรเวอร์ nouveau
# echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
18.การใช้การกำหนดค่า kernel
# update-initramfs -u -k all # reboot
19.เรียกใช้งาน NVIDIA-Linux-x86_64-535.230.02-vgpu-kvm.run
# chmod +x NVIDIA-Linux-x86_64-535.230.02-vgpu-kvm.run
20.ติดตั้งไดว์เวอร์
# ./NVIDIA-Linux-x86_64-535.230.02-vgpu-kvm.run --apply-patch ~/vgpu-proxmox/535.230.02.patch
หลังจากนั้นคุณควรเห็นบรรทัดนี้: Self-extractible archive “NVIDIA-Linux-x86_64-535.230.02-vgpu-kvm-custom.run” successfully created.
21. ติดตั้งไดรเวอร์ที่สามารถแก้ไขใหม่นี้ได้ดังนี้ (กรณีไม่ตรงกัน)
# ./NVIDIA-Linux-x86_64-535.230.02-vgpu-kvm-custom.run --dkms -m=kernel
22. กด YES
23. กด OK
24. ทำการ reboot
# reboot
25. หลังจาก reboot แล้วตรวจสอบว่าการติดตั้งไดรเวอร์ทำงานหรือไม่ ด้วยคำสั่ง
# nvidia-smi
คุณควรได้รับผลลัพธ์ที่คล้ายกับสิ่งนี้
26. ตรวจสอบว่าการปลดล็อก vGPU ทำงานหรือไม่ ให้พิมพ์คำสั่งนี้
# mdevctl types
หากคำสั่งนี้ไม่ได้ส่งคืนผลลัพธ์ใดๆ แสดงว่าการปลดล็อค vGPU จะไม่ทำงาน **ตรวจสอบขั้นตอนของคุณแล้วเริ่มใหม่อีกครั้ง
27. สร้าง Resource Mappings
– Datacenter –> Resource Mappings
– คลิกปุ่ม Add
– ตั้งชื่อ PCI Mappings / เลือก Device (YES) ที่พร้อมทำงาน จากนั้น คลิกปุ่ม Create
แสดงรายละเอียด PCI Device
28. Assigning GPU Profiles ให้กับ VM
– เลือก VM ที่ต้องการ –> เลือกเมนู Hardware
– คลิกปุ่ม Add –> เลือกเมนู PCI Device
เลือก Mappings Device –> Device
เลือก MDec Type จากนั้น คลิกปุ่ม Add
แสดงรายละเอียด PCI Device
29. เปิดใช้งาน VM (Windows10) เพื่อการติดตั้งไดรเวอร์ NVIDIA vGPU
30. ทำการติดตั้งไดรเวอร์ NVIDIA vGPU โดยดับเบิลคลิกที่ไฟล์ปฏิบัติการ และทำตามคำแนะนำในเมนูการติดตั้งที่ปรากฏขึ้น
31. แตกไฟล์ไดรเวอร์ไปยังตำแหน่งเริ่มต้นในช่อง “Extraction path:”
32. คลิก Agree and Continue เลือก Express แล้วคลิก Next
33. คลิกปุ่ม “CLOSE” เพื่อออกจากเมนู
34 . ขั้นตอนต่อไปคือการรีบูต VM เพื่อให้กระบวนการเปิดใช้งานเสร็จสมบูรณ์
บริษัท AVESTA ให้บริการติดตั้ง จำน่าย Proxmox VE เราเป็นตัวแทนตรง และ ได้รับการไว้วางใจ ให้ติดตั้งกับบริษัทน้อยใหญ่มากมาย สนใจสอบถาม Line OA : @avesta.co.th หรือ Email : [email protected]