Hướng dẫn thiết lập Ubuntu Server trên Proxmox để phát triển AI với GPU NVIDIA.

Máy chủ Proxmox của bạn đã được cấu hình. GPU của bạn đã được cách ly thông qua passthrough. Giờ là lúc biến một phần cứng đắt tiền thành một bộ tăng tốc AI hoạt động hiệu quả: tạo một môi trường Ubuntu Server gọn nhẹ, ổn định để chứa GPU và chạy các tác vụ học máy của bạn.

Hướng dẫn này giả định bạn đã hoàn tất cấu hình máy chủ Proxmox (bao gồm cả thiết lập GPU passthrough từ Ngày 2) và đã tải lên ảnh ISO Ubuntu Server LTS vào bộ nhớ Proxmox của bạn. Chúng ta sẽ không cài đặt giao diện đồ họa máy tính để bàn — GNOME hoặc KDE sẽ tiêu tốn RAM quý giá mà các mô hình ngôn ngữ lớn của bạn cần để chạy. Mỗi megabyte đều quan trọng khi bạn đang chạy các mô hình ngôn ngữ lớn hoặc các tác vụ huấn luyện phức tạp.

Điều kiện:

Máy chủ Proxmox đã được cấu hình GPU passthrough
File ISO Ubuntu Server LTS có sẵn trong bộ nhớ Proxmox
Tài nguyên máy ảo đã được lên phân bổ đúng (số lõi CPU, phân bổ RAM)
Kết nối mạng đến máy chủ Proxmox của bạn

Giai đoạn 1: Trình hướng dẫn tạo máy ảo Proxmox — Các cài đặt AI quan trọng
Truy cập vào bảng điều khiển Proxmox của bạn và nhấp vào Tạo máy ảo. Xem kỹ từng tab — các cài đặt ở đây quyết định tính ổn định và khả năng nhận diện GPU.

General Tab
Nhập tên máy ảo mô tả rõ ràng (ví dụ: “ubuntu-ai-server”) và để Proxmox tự động gán ID máy ảo để tham chiếu.

OS Tab
Chọn Linux làm loại hệ điều hành, sau đó chọn ảnh ISO Ubuntu Server LTS đã tải lên của bạn. Để nguyên mục “Loại” là Linux — Proxmox sẽ tự động phát hiện bản phân phối.

System Tab — Crucial for Modern GPU Passthrough
Thiết lập này là bắt buộc đối với các tác vụ GPU. Hãy đặt BIOS thành OVMF (UEFI). Điều này rất quan trọng — các GPU NVIDIA hiện đại yêu cầu firmware UEFI để khởi tạo đúng cách. Không sử dụng SeaBIOS; nó sẽ không hoạt động ổn định với tính năng truyền GPU trực tiếp.

Chọn ô “Thêm ổ đĩa EFI” và phân bổ 1 GB. Nếu không, máy ảo sẽ không khởi động được với UEFI. Đặt Machine thành q35 (mặc định của Proxmox) và SCSI Controller thành VirtIO SCSI để tối ưu hóa hiệu suất lưu trữ.

CPU Tab — AVX/AVX2 Instruction Sets Matter
Phân bổ 4-8 lõi tùy thuộc vào CPU máy chủ và khối lượng công việc (điều chỉnh theo nhu cầu của bạn). Thiết lập quan trọng: đặt Loại thành “host”. Điều này là bắt buộc.

Loại CPU “host” truyền trực tiếp các tập lệnh của CPU vật lý của bạn — bao gồm AVX và AVX2 — đến máy ảo. Điều này rất cần thiết cho các hoạt động thư viện AI được tối ưu hóa (PyTorch, TensorFlow, v.v.). Nếu không có loại CPU “host”, khối lượng công việc AI của bạn sẽ chạy chậm hơn đáng kể và bỏ lỡ các tối ưu hóa hiệu năng quan trọng.

Tab Bộ nhớ — Cài đặt quan trọng nhất cho sự ổn định

Phân bổ một lượng RAM cố định (ví dụ: 32 GB). Điều chỉnh dựa trên dung lượng RAM khả dụng của máy chủ và quy mô khối lượng công việc dự kiến. Đây là nơi đưa ra các quyết định về tính ổn định.

BỎ CHỌN “Thiết bị Ballooning”. Điều này là bắt buộc. Tính năng ballooning cho phép Proxmox tự động thu nhỏ hoặc mở rộng RAM của máy ảo theo yêu cầu. Trong quá trình huấn luyện hoặc suy luận AI cường độ cao, việc thay đổi kích thước bộ nhớ động gây ra hiện tượng chậm không thể đoán trước, lỗi bộ nhớ cache và sự cố hoàn toàn. Khối lượng công việc AI yêu cầu phân bổ bộ nhớ ổn định và có thể dự đoán được. Hãy giữ nguyên tùy chọn ballooning không được chọn.

Network Tab
Để nguyên mặc định. Proxmox sẽ tự động gán một card mạng ảo, và DHCP sẽ cung cấp địa chỉ IP.

Xác nhận và Tạo

Xem lại tất cả các thiết lập trên tab xác nhận. Nhấp vào Hoàn tất để tạo máy ảo.

Giai đoạn 2: Cài đặt hệ điều hành và khởi động lần đầu

Nhấp vào Bắt đầu để khởi động máy ảo. Mở tab Console trong Proxmox để theo dõi quá trình khởi động. Trình cài đặt Ubuntu sẽ xuất hiện trong vài giây.

Làm theo các hướng dẫn cài đặt tiêu chuẩn: ngôn ngữ, bố cục bàn phím, cấu hình mạng và thiết lập lưu trữ. Khi đến màn hình Lưu trữ, hãy chấp nhận mặc định — sử dụng toàn bộ ổ đĩa ảo mà Proxmox đã tạo.

Nhập tên máy chủ cho máy ảo của bạn (ví dụ: “ai-server”) và tạo tài khoản người dùng với mật khẩu mạnh. Bạn sẽ sử dụng tài khoản này cho công việc hàng ngày.

Quan trọng trong quá trình cài đặt: Khi màn hình Chọn phần mềm xuất hiện, hãy đảm bảo hộp OpenSSH được ĐÁNH DẤU. Điều này rất quan trọng. Nó cho phép bạn kết nối từ xa với máy ảo qua SSH mà không cần dựa vào bảng điều khiển của Proxmox, vốn có thể chậm và rắc rối cho việc phát triển hàng ngày.

Hãy để quá trình cài đặt hoàn tất và cho phép máy ảo tự động khởi động lại.

Giai đoạn 3: Dọn dẹp sau cài đặt — Những việc cần làm
Sau khi máy ảo khởi động và hiển thị lời nhắc đăng nhập, hãy đăng nhập bằng thông tin đăng nhập người dùng mà bạn đã tạo.

Chạy ngay các lệnh sau:

sudo apt update && sudo apt upgrade -y

Thao tác này cập nhật kho gói phần mềm và cài đặt bất kỳ bản vá bảo mật nào có sẵn. Quá trình này mất từ ​​1 đến 3 phút, tùy thuộc vào tuổi đời của hệ thống.

Tiếp theo, hãy cài đặt ba tiện ích thiết yếu.

sudo apt install qemu-guest-agent neofetch htop -y

Dưới đây là chức năng của từng thành phần:

qemu-guest-agent cho phép Proxmox giám sát địa chỉ IP, mức sử dụng CPU và mức tiêu thụ bộ nhớ của máy ảo theo thời gian thực. Quan trọng hơn, nó cho phép thực hiện các lệnh tắt máy sạch từ Proxmox thay vì khởi động lại cứng. Việc tắt máy không sạch có thể khiến bộ nhớ GPU ở trạng thái không ổn định, có khả năng làm hỏng các tác vụ huấn luyện đang hoạt động.

Neofetch hiển thị thông tin hệ thống — hữu ích để nhanh chóng xác minh phiên bản và thông số kỹ thuật Ubuntu của bạn.

htop là một trình giám sát tiến trình tương tác hiển thị mức sử dụng CPU và bộ nhớ theo thời gian thực — vô cùng hữu ích để gỡ lỗi xung đột tài nguyên trong quá trình xử lý các tác vụ AI.

Sau khi cài đặt hoàn tất, hãy khởi động lại máy ảo:

sudo reboot

Sau khi khởi động, hãy kiểm tra xem QEMU Guest Agent có đang chạy hay không:

sudo systemctl status qemu-guest-agent

Bạn sẽ thấy trạng thái hoạt động (đang chạy). Nếu không, hãy khởi động lại:

sudo systemctl restart qemu-guest-agent

Quay lại giao diện Proxmox và làm mới chế độ xem phần cứng của máy ảo. Bây giờ bạn sẽ thấy địa chỉ IP của máy ảo được hiển thị trong mục “IPs” thay vì “N/A”. Điều này xác nhận rằng tác nhân khách đang giao tiếp với Proxmox.

Giai đoạn 4: Cài đặt trình điều khiển NVIDIA
Đây là thời điểm quyết định. Nếu tính năng truyền GPU được cấu hình chính xác trên máy chủ Proxmox của bạn, GPU của bạn sẽ được nhận diện ở đây. Nếu không thành công, bạn cần xem lại cấu hình IOMMU và danh sách đen của máy chủ.

Phương pháp dễ nhất và đáng tin cậy nhất cho Ubuntu Server là công cụ ubuntu-drivers tích hợp sẵn, công cụ này tự động phát hiện GPU của bạn và cài đặt trình điều khiển phù hợp.

Chạy:

sudo ubuntu-drivers list

Lệnh này sẽ hiển thị tất cả các trình điều khiển NVIDIA có sẵn cho phần cứng của bạn. Bạn sẽ thấy kết quả tương tự như sau:

nvidia-driver-470
nvidia-driver-550
nvidia-driver-570
nvidia-driver-570-open

Đối với các tác vụ AI hiện đại, nên ưu tiên các phiên bản trình điều khiển mã nguồn mở (những trình điều khiển có hậu tố -open). Chúng tránh được các vấn đề liên quan đến lỗi mô-đun kernel và cung cấp độ ổn định tuyệt vời. Tuy nhiên, nếu GPU của bạn không hỗ trợ trình điều khiển mã nguồn mở, các phiên bản độc quyền cũng hoạt động tốt.

Cài đặt trình điều khiển được đề xuất tự động:

sudo ubuntu-drivers autoinstall

Quá trình này sẽ phát hiện phần cứng của bạn và cài đặt trình điều khiển ổn định phù hợp nhất. Quá trình mất từ ​​2 đến 5 phút. Bạn sẽ thấy các thông báo của trình biên dịch khi mô-đun kernel được xây dựng và chèn vào kernel đang chạy.

Sau khi hoàn tất, khởi động lại máy ảo để tải mô-đun kernel mới:

sudo reboot

Sau khi khởi động lại, hãy chạy lệnh huyền thoại:

nvidia-smi

Nếu cấu hình truyền GPU trực tiếp được thực hiện chính xác, bạn sẽ thấy kết quả như sau.

+---------------------------------------------------------------------------------+
| NVIDIA-SMI 570.169            Driver Version: 570.169   CUDA Version: 12.8     |
|-----------------------------------------+------------------------+-------------|
| GPU  Name                Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|===========================================================================================|
|   0  NVIDIA GeForce RTX 9090    Off   | 00:10.0 Off |              N/A      |
|  0%   38C   P8            15W / 575W |      2MiB / 32607MiB |      0%      Default |
+-------------------------+------------------------+-------------|

Processes:
 GPU GiB Type Process name          GPU Memory
|                  GPU-Util  Compute M. |
|===========================|===========================|
|  No running processes found           |
+---------------------------+-----------+

Những điều cần kiểm tra

Tên GPU: Hiển thị kiểu GPU của bạn (RTX 5090, RTX 4090, A100, v.v.). Điều này xác nhận GPU của bạn đã được truyền thành công.

Phiên bản trình điều khiển: Hiển thị phiên bản trình điều khiển đã cài đặt. Nếu bạn thấy điều này, quá trình cài đặt trình điều khiển đã thành công.

Phiên bản CUDA: Hiển thị phiên bản CUDA được trình điều khiển này hỗ trợ (ví dụ: 12.8). Điều này rất quan trọng đối với các framework AI — PyTorch và TensorFlow hãy kiểm tra khả năng tương thích CUDA.

Bộ nhớ: Hiển thị tổng bộ nhớ GPU khả dụng (ví dụ: 32607 MiB = ~32 GB). Điều này xác nhận toàn bộ VRAM có thể truy cập được bởi máy ảo.

Nếu lệnh nvidia-smi thất bại
Nếu bạn thấy “Không tìm thấy thiết bị nào” hoặc lỗi trình điều khiển, quá trình truyền GPU không hoạt động. Quay lại máy chủ Proxmox của bạn và kiểm tra:

IOMMU đã được bật trong cấu hình GRUB của máy chủ
GPU của bạn không nằm trong danh sách đen (kiểm tra /etc/modprobe.d/blacklist.conf)
GPU đã được gán chính xác trong tab thiết bị PCI của máy ảo
Mẫu GPU của bạn được hỗ trợ bởi trình điều khiển NVIDIA (GPU quá cũ hoặc quá mới đôi khi gặp sự cố)
Giám sát GPU thời gian thực tùy chọn
Để giám sát liên tục việc sử dụng GPU, hãy cài đặt:

sudo apt install nvtop

Sau đó chạy lệnh:

nvtop

Điều này cung cấp giao diện giống như bảng điều khiển hiển thị bộ nhớ GPU, mức sử dụng và các tiến trình đang chạy trong thời gian thực. Nó vô cùng hữu ích trong quá trình phát triển và gỡ lỗi.

Những gì bạn đã xây dựng
Giờ đây bạn đã có một máy chủ Ubuntu ổn định, được tăng tốc bằng GPU, sẵn sàng cho việc phát triển AI. Hệ thống có bộ nhớ cố định (không bị phình to), truyền CPU đúng cách với các tập lệnh AVX/AVX2 và nhận diện GPU đã được xác minh. Đây là nền tảng vững chắc để chạy các LLM, huấn luyện mô hình hoặc thực hiện các tác vụ suy luận.

GPU của bạn không còn là một phần cứng không hoạt động nằm trong máy chủ Proxmox nữa. Nó đang hoạt động, được nhận diện và sẵn sàng tăng tốc công việc cho máy ảo của bạn.

Bước tiếp theo
Nhưng một động cơ mạnh mẽ mà không có nhiên liệu thì vô dụng. Trong giai đoạn tiếp theo, bạn sẽ cài đặt Ollama — cách đơn giản nhất để tải xuống và chạy bất kỳ LLM mã nguồn mở nào trên hệ thống của bạn mà không cần phải vật lộn với việc cài đặt CUDA Toolkit, môi trường ảo Python hoặc các tệp cấu hình phức tạp.

Với Ollama, bạn sẽ hoàn tất quá trình xác minh bằng nvidia-smi và chạy mô hình Llama 7 tỷ tham số chỉ trong vòng chưa đầy 15 phút. Không còn rắc rối về phụ thuộc. Không còn xung đột phiên bản. Chỉ cần suy luận LLM tức thì.

Phần khó khăn đã được giải quyết. Giờ đến phần thú vị: thực sự sử dụng thiết lập AI của bạn.