Cấu hình GPU Partitioning (vGPU) trên VMware vSphere 8: Tối ưu tài nguyên cho AI và VDI

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

Tại sao bạn nên chia nhỏ GPU (vGPU) trên VMware vSphere 8?

Sở hữu những dòng card đồ họa mạnh mẽ như NVIDIA A100, L40 hay RTX 6000 Ada là mơ ước của mọi admin. Tuy nhiên, việc gán nguyên một card vật lý cho duy nhất một máy ảo (DirectPath I/O) thường gây lãng phí tới 70-80% tài nguyên. Trừ khi bạn đang training các model AI khổng lồ (LLMs), các tác vụ như chạy chatbot nội bộ, fine-tuning model nhỏ hay triển khai VDI đều không khai thác hết sức mạnh của card.

Trong một dự án thực tế mình triển khai trên cluster 8 host ESXi, bài toán đặt ra là làm sao để từ 2 card A100 80GB, hệ thống phải đáp ứng được cho 15 máy ảo của đội Data Science. Công nghệ NVIDIA vGPU trên vSphere 8 chính là chìa khóa. Nó cho phép “thái lát” GPU vật lý thành nhiều phần nhỏ (GPU Partitions), giúp bạn tối ưu chi phí đầu tư phần cứng một cách hiệu quả nhất.

Checklist chuẩn bị trước khi cấu hình

Đừng vội bắt tay vào cài đặt ngay. Hãy đảm bảo bạn đã có đủ các thành phần dưới đây để tránh tình trạng lỗi giữa chừng:

  • Phần cứng: Card NVIDIA dòng Enterprise (Tesla, Ampere, Ada Lovelace). Lưu ý: Các dòng GeForce phổ thông không hỗ trợ vGPU chính thức trên ESXi.
  • License: NVIDIA vGPU Software License (GRID, vCS, hoặc vWS). Đây là phần bắt buộc vì nếu thiếu license, hiệu năng GPU sẽ bị bóp nghẹt sau 20 phút.
  • Driver: File VIB của NVIDIA dành riêng cho ESXi và Driver tương ứng cho Guest OS (Windows/Linux).
  • vSphere 8: Hãy nâng cấp lên bản 8.0 để tận dụng tính năng Device Groups và khả năng vMotion mượt mà khi có vGPU.

Bước 1: Cài đặt NVIDIA Host Driver (VIB) lên ESXi

Trước tiên, hãy đưa host ESXi về chế độ Maintenance Mode. Bạn có thể dùng WinSCP để đẩy file driver (.vib) lên datastore của host.

Mở SSH vào host và thực thi các lệnh sau:

# Bật Maintenance Mode
esxcli system maintenanceMode set --enable true

# Cài đặt driver từ datastore
esxcli software vib install -v /vmfs/volumes/datastore1/NVIDIA-VMware_ESXi_8.0_Host_Driver_535.129.03-1OEM.800.1.0.20613240.vib

# Khởi động lại hệ thống
reboot

Sau khi host khởi động lại, hãy kiểm tra trạng thái card bằng lệnh nvidia-smi. Nếu bảng thông số hiện đầy đủ nhiệt độ và mức tiêu thụ điện, bạn đã thành công 50% chặng đường.

Bước 2: Thiết lập Graphics Device trên vSphere Client

Mặc định, ESXi thường hiểu card đồ họa theo kiểu “Shared”. Để kích hoạt tính năng vGPU, chúng ta cần chuyển sang chế độ Shared Direct.

  1. Truy cập vCenter, chọn Host ESXi -> Configure -> Hardware -> Graphics.
  2. Tại tab Graphics Devices, chọn card NVIDIA tương ứng và nhấn Edit.
  3. Chuyển sang chế độ Shared Direct (Vendor shared passthrough).
  4. Khởi động lại host lần cuối để thay đổi này có hiệu lực hoàn toàn.

Bước 3: Gán vGPU Profile cho máy ảo (VM)

Đây là lúc bạn quyết định mỗi máy ảo sẽ nhận bao nhiêu “miếng bánh” tài nguyên. Ví dụ, một card A100 80GB có thể chia thành 10 máy ảo, mỗi máy sở hữu 8GB VRAM chuyên dụng.

Cách thực hiện:

  1. Chuột phải vào VM -> Edit Settings.
  2. Chọn Add New Device -> PCI Device.
  3. Tại mục thiết bị mới, chọn NVIDIA vGPU.
  4. Lựa chọn GPU Profile phù hợp. Hãy chú ý các ký tự hậu tố:
    • Q: Dành cho thiết kế đồ họa chuyên nghiệp (Quadro).
    • C: Tối ưu cho tính toán AI, Deep Learning (Compute).
    • A: Dành cho các ứng dụng ảo hóa thông thường.

Ví dụ: Profile grid_a100-4c sẽ cấp cho máy ảo 4GB VRAM và tối ưu cho các tác vụ tính toán AI.

Lưu ý quan trọng: Một sai sót cực kỳ phổ biến là quên tích chọn Reserve all guest memory. vGPU yêu cầu máy ảo phải giữ chặt RAM vật lý, không được phép chia sẻ (Overcommit). Nếu thiếu tùy chọn này, máy ảo sẽ báo lỗi ngay khi bật nguồn.

Bước 4: Cài đặt Driver trên Guest OS và Kiểm tra

Khi máy ảo khởi động, hệ điều hành sẽ nhận diện một thiết bị PCI mới nhưng ở trạng thái chưa hoạt động. Bạn cần cài đặt Driver NVIDIA dành riêng cho Guest OS (phải trùng version với Driver trên host ESXi).

Với Ubuntu, bạn có thể kiểm tra nhanh bằng lệnh nvidia-smi. Kết quả sẽ hiển thị chính xác Profile vGPU bạn đã gán (ví dụ 4GB VRAM) thay vì toàn bộ dung lượng card vật lý. Lúc này, bạn đã sẵn sàng để cài đặt CUDA, Docker và triển khai các ứng dụng như Stable Diffusion.

Giám sát và Quản lý License

Trong quá trình vận hành thực tế, việc theo dõi tải của GPU là cực kỳ quan trọng. vSphere 8 đã cải tiến rất tốt phần này. Bạn không cần SSH vào từng host để gõ lệnh thủ công nữa.

Ngay tại tab Monitor của host trên giao diện vCenter, các biểu đồ về VRAM và % GPU utilization của từng máy ảo sẽ hiển thị trực quan. Điều này giúp bạn dễ dàng báo cáo với cấp trên về hiệu suất hệ thống hoặc đưa ra quyết định khi nào cần đầu tư thêm card mới.

Về License: Đừng quên thiết lập NVIDIA License Client bên trong máy ảo. Nếu không kết nối được với License Server (DLS hoặc CLS), hiệu năng tính toán sẽ bị sụt giảm nghiêm trọng sau một thời gian ngắn sử dụng.

Lời kết từ kinh nghiệm thực chiến

Triển khai vGPU trên vSphere 8 không khó về kỹ thuật, nhưng đòi hỏi sự tỉ mỉ trong việc chọn Profile và quản lý License. Nếu bạn đang làm Lab, các giải pháp “vGPU Unlock” trên GitHub có thể là lựa chọn thú vị. Tuy nhiên, với môi trường Production, hãy luôn sử dụng License chính hãng để đảm bảo tính ổn định và nhận được sự hỗ trợ kịp thời từ NVIDIA.

Nếu bạn gặp lỗi “Module DevicePowerOn failed”, hãy kiểm tra lại phần RAM Reservation đầu tiên. 90% trường hợp lỗi xuất phát từ đây. Chúc các bạn triển khai thành công!

Share: