Rào cản lớn nhất của GPU Passthrough truyền thống
Nếu đang vận hành Proxmox, chắc hẳn bạn đã quen với PCI Passthrough. Đây là cách nhanh nhất để đưa sức mạnh phần cứng vào máy ảo (VM). Tuy nhiên, sau nửa năm chạy lab với hơn 10 VM phục vụ đủ thứ từ Home Assistant đến Stable Diffusion, mình nhận ra một nghịch lý: Tỷ lệ 1:1. Nếu bạn sở hữu một chiếc RTX 3060 12GB và chỉ muốn dùng nó để tăng tốc giao diện cho một máy ảo Windows, bạn đã lãng phí hơn 10GB VRAM còn lại.
Việc này giống như mua một chiếc xe tải chỉ để chở một phong thư. Những máy ảo khác hoàn toàn không thể chạm vào sức mạnh đồ họa này trừ khi bạn gắn thêm card mới. Đó là lúc NVIDIA vGPU (Virtual GPU) xuất hiện để giải quyết bài toán lãng phí. Công nghệ này cho phép bạn chia một card vật lý thành nhiều “mảnh” nhỏ độc lập, mỗi máy ảo sẽ nhận một phần VRAM tùy theo nhu cầu thực tế.
So sánh các phương pháp chia sẻ GPU
| Đặc điểm | PCI Passthrough | API Intercept (rGPU) | NVIDIA vGPU |
|---|---|---|---|
| Phân chia tài nguyên | Toàn bộ card cho 1 VM | Dùng chung (Shared) | Chia mảnh cứng (Partition) |
| Hiệu năng thực tế | ~100% (Native) | Giảm đáng kể do trễ | Giữ vững ~95-98% |
| Độ ổn định | Tuyệt vời | Thường xuyên crash | Chuẩn doanh nghiệp |
| Loại Card hỗ trợ | Mọi loại card | Hạn chế phần mềm | Quadro/Tesla (hoặc RTX unlock) |
Trong ba cách trên, vGPU mang lại sự cân bằng tốt nhất. Nó ổn định như Passthrough nhưng lại linh hoạt như cách chúng ta ảo hóa CPU core.
Tại sao vGPU là lựa chọn hàng đầu cho AI/ML?
Nhu cầu GPU trong các dự án AI thường mang tính thời điểm. Khi bạn viết code hoặc chuẩn bị dữ liệu, GPU gần như không hoạt động. Nó chỉ thực sự “nóng” lên khi bạn bấm lệnh Training. Với vGPU, bạn có thể cấp cho 4 lập trình viên mỗi người một mảnh 4GB VRAM từ duy nhất một chiếc card 16GB. Thay vì tốn 40 triệu đồng cho 4 bộ workstation, bạn chỉ cần đầu tư một server Proxmox đủ mạnh.
Dù tài liệu của NVIDIA nói vGPU chỉ dành cho dòng Enterprise, nhưng công cụ vgpu-unlock-rs đã thay đổi cuộc chơi. Nó giúp những chiếc card RTX phổ thông hoạt động không khác gì những dòng Tesla chuyên dụng.
Triển khai thực tế trên Proxmox 8
Đừng quên bật IOMMU trong BIOS trước khi bắt đầu. Thiếu bước này, mọi cấu hình phía sau sẽ vô nghĩa.
Bước 1: Cài đặt Driver Host
Chúng ta cần bản driver NVIDIA dành riêng cho vGPU Manager. Đừng sử dụng lệnh apt install nvidia-driver mặc định của Linux.
# Cập nhật môi trường
apt update && apt upgrade -y
# Cài đặt các gói phụ thuộc và header kernel
apt install -y build-essential dkms pve-headers-$(uname -r)
# Thực thi file cài đặt driver vGPU
chmod +x NVIDIA-Linux-x86_64-535.129.03-vgpu-kvm.run
./NVIDIA-Linux-x86_64-535.129.03-vgpu-kvm.run
Bước 2: Mở khóa tiềm năng card dân dụng
Nếu bạn đang sở hữu RTX 3000 hoặc 4000 series, bước này là bắt buộc. Tool unlock sẽ đánh lừa hệ thống rằng đây là dòng card hỗ trợ ảo hóa.
# Tải công cụ unlock từ GitHub
git clone https://github.com/mbilker/vgpu-unlock-rs.git
cd vgpu-unlock-rs
# Biên dịch bằng Rust
cargo build --release
# Đưa thư viện vào hệ thống
cp target/release/libvgpu_unlock_rs.so /usr/lib/
Kế tiếp, hãy khai báo thông số card của bạn tại /etc/vgpu_unlock/config.toml để driver nhận diện chính xác.
Bước 3: Kiểm tra Mdev Profiles
Khởi động lại máy và chạy lệnh sau để xem các “mảnh” GPU khả dụng:
mdevctl types | grep nvidia
Kết quả sẽ hiện ra các profile như nvidia-233 (tương đương 1GB VRAM). Bạn hãy ghi lại mã này để gán cho máy ảo.
Bước 4: Phân bổ cho máy ảo
Vào Proxmox GUI, chọn VM -> Hardware -> Add -> PCI Device. Ở dòng MDev Type, hãy chọn dung lượng phù hợp. Ví dụ: Cấp 4GB cho tác vụ xử lý ảnh hoặc 8GB để chạy các model LLM như Llama-3-8B.
Thiết lập phía máy khách (Client VM)
Trong máy ảo, bạn phải cài đặt driver “vGPU Client”. Lưu ý là driver Game Ready thông thường sẽ không hoạt động. Sau khi cài xong, bạn cần cấu hình license để mở khóa toàn bộ hiệu năng của card.
# Kiểm tra thành quả
nvidia-smi
Nếu bảng thông số hiện đúng dung lượng VRAM bạn đã cấp, hệ thống đã sẵn sàng làm việc.
Lưu ý quan trọng khi vận hành thực tế
Sau 6 tháng sử dụng liên tục, mình rút ra 3 bài học chính:
- Quản lý nhiệt độ: Khi nhiều máy ảo cùng render, card sẽ nóng rất nhanh. Hãy chủ động điều chỉnh tốc độ quạt (fan curve) trên host Proxmox vì chế độ tự động đôi khi phản ứng chậm.
- Rủi ro khi Backup: Proxmox không thể lưu trạng thái bộ nhớ GPU. Bạn nên tắt máy ảo trước khi backup để tránh lỗi dữ liệu đồ họa.
- Cập nhật Kernel: Mỗi lần Proxmox nâng cấp bản vá, driver NVIDIA có thể bị văng. Hãy luôn sẵn sàng chạy lại lệnh
dkms installđể phục hồi kết nối.
Tận dụng vGPU giúp mình tối ưu hóa phần cứng cũ một cách triệt để. Vừa có thể cho trẻ nhỏ chơi game qua Cloud Gaming, vừa có môi trường test AI chuyên nghiệp mà không tốn một xu cho các dịch vụ Cloud đắt đỏ. Chúc các bạn cấu hình thành công!

