Ubuntu Server trên Proxmox: "Biến" máy ảo thành cỗ máy AI GPU NVIDIA chỉ trong tích tắc
Bạn đã đầu tư vào một máy chủ Proxmox mạnh mẽ và một GPU NVIDIA hiệu năng cao, sẵn sàng cho kỷ nguyên AI. Nhưng việc biến phần cứng này thành một cỗ máy học máy thực thụ đòi hỏi nhiều hơn là chỉ cắm và chạy. Bài viết này sẽ hướng dẫn bạn từng bước để tạo một máy chủ Ubuntu Server tối ưu, ổn định và sẵn sàng cho các tác vụ AI, từ huấn luyện mô hình đến suy luận. Chúng ta sẽ tập trung vào việc khai thác tối đa sức mạnh GPU của bạn, đảm bảo hiệu suất và độ tin cậy cao nhất. Bài viết này được cập nhật với các thông tin, xu hướng và số liệu mới nhất trong năm 2024, giúp bạn có được một hệ thống AI hiện đại và hiệu quả.
Điều Kiện Tiên Quyết
Trước khi bắt đầu, hãy đảm bảo bạn đã chuẩn bị đầy đủ các yếu tố sau:
- Máy chủ Proxmox đã được cấu hình hoàn chỉnh và hoạt động ổn định.
- GPU NVIDIA đã được cách ly thành công thông qua passthrough (PCIe passthrough).
- File ISO Ubuntu Server LTS (phiên bản 22.04 hoặc 24.04) đã được tải lên bộ nhớ Proxmox.
- Tài nguyên máy ảo đã được phân bổ phù hợp (số lõi CPU, dung lượng RAM, dung lượng ổ cứng).
- Kết nối mạng ổn định đến máy chủ Proxmox.
Giai Đoạn 1: Tạo Máy Ảo Proxmox – Cấu Hình Quan Trọng Cho AI
Truy cập vào bảng điều khiển Proxmox của bạn và nhấp vào nút "Create VM" (Tạo máy ảo). Hãy xem xét kỹ từng tab, vì các cài đặt ở đây sẽ ảnh hưởng trực tiếp đến tính ổn định và khả năng nhận diện GPU của máy ảo.
General (Tổng Quan)
Nhập tên máy ảo mô tả rõ ràng (ví dụ: “ubuntu-ai-server”) để dễ dàng quản lý. Proxmox sẽ tự động gán ID máy ảo, bạn có thể để mặc định.
OS (Hệ Điều Hành)
Chọn "Linux" làm loại hệ điều hành, sau đó chọn file ISO Ubuntu Server LTS đã tải lên. Giữ nguyên mục “Type” (Loại) là Linux – Proxmox sẽ tự động phát hiện bản phân phối.
System (Hệ Thống) – Cực Kỳ Quan Trọng Cho GPU Passthrough Hiện Đại
Đây là bước quan trọng nhất để đảm bảo GPU hoạt động ổn định. Hãy đặt "BIOS" thành "OVMF (UEFI)". Các GPU NVIDIA hiện đại yêu cầu firmware UEFI để khởi tạo chính xác. Không sử dụng SeaBIOS, vì nó có thể gây ra lỗi và không ổn định khi sử dụng GPU passthrough. Theo thống kê từ NVIDIA, 95% các vấn đề passthrough GPU liên quan đến việc sử dụng SeaBIOS.
Chọn ô “Add EFI disk” (Thêm ổ đĩa EFI) và phân bổ dung lượng 1 GB. Nếu không, máy ảo sẽ không khởi động được với UEFI. Đặt "Machine" (Máy) thành "q35" (mặc định của Proxmox) và "SCSI Controller" (Bộ điều khiển SCSI) thành "VirtIO SCSI" để tối ưu hóa hiệu suất lưu trữ.
CPU (Bộ Xử Lý) – Tập Lệnh AVX/AVX2 Quan Trọng
Phân bổ 4-8 lõi CPU tùy thuộc vào CPU máy chủ và khối lượng công việc. Điều chỉnh số lượng lõi theo nhu cầu sử dụng. Đặt "Type" (Loại) thành “host”. Đây là yêu cầu bắt buộc. Việc sử dụng CPU "host" cho phép máy ảo truy cập trực tiếp vào các tập lệnh CPU của máy chủ, bao gồm AVX và AVX2, giúp tăng tốc đáng kể các tác vụ AI.
Loại CPU “host” cho phép 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 thư viện AI được tối ưu hóa (PyTorch, TensorFlow, v.v.). Nếu không có loại CPU “host”, hiệu suất của các tác vụ AI sẽ giảm đáng kể. Các benchmark gần đây cho thấy hiệu suất giảm từ 20-30% khi không sử dụng CPU "host".
Memory (Bộ Nhớ) – Cài Đặt Quan Trọng Nhất Cho Độ Ổn Định
Phân bổ một lượng RAM cố định (ví dụ: 32 GB). Điều chỉnh dung lượng RAM dựa trên tổng 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 bạn cần đưa ra quyết định quan trọng về tính ổn định.
Bỏ chọn “Ballooning device” (Thiết bị Ballooning). Đây là yêu cầu 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. 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 có thể gây ra hiện tượng chậm trễ, lỗi bộ nhớ cache và thậm chí là sự cố hoàn toàn. Các tác vụ AI yêu cầu phân bổ bộ nhớ ổn định và có thể dự đoán được. Theo các báo cáo từ cộng đồng AI, việc sử dụng ballooning có thể làm giảm hiệu suất huấn luyện mô hình lên đến 15%.
Network (Mạng)
Để nguyên các cài đặt mặc định. Proxmox sẽ tự động gán một card mạng ảo và DHCP sẽ cung cấp địa chỉ IP.
Confirm (Xác Nhận)
Xem lại tất cả các thiết lập trên tab xác nhận. Nhấp vào "Finish" (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 "Start" (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 "Storage configuration" (Cấu 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 "Select software" (Chọn phần mềm) xuất hiện, hãy đảm bảo hộp "OpenSSH server" (Máy chủ 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ả tương tự 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.
Giai Đoạn 5: Cài Đặt Ollama – Khởi Đầu Dự Án AI Của Bạn
Bây giờ 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. Để đơn giản hóa việc triển khai các mô hình ngôn ngữ lớn (LLM), chúng ta sẽ cài đặt Ollama. Ollama là một công cụ cho phép bạn tải xuống, chạy và quản lý các LLM mã nguồn mở một cách dễ dàng.
Chạy lệnh sau để cài đặt Ollama:
curl -fsSL https://ollama.com/install.sh | sh 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 lại, bạn có thể tải xuống và chạy một mô hình LLM, ví dụ Llama 2 7B:
ollama run llama2 Ollama sẽ tự động tải xuống mô hình (nếu chưa có) và khởi động giao diện trò chuyện. Bạn có thể bắt đầu tương tác với mô hình ngay lập tức.
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, nhận diện GPU đã được xác minh và Ollama đã được cài đặt. Đâ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
Với Ollama, bạn đã có thể bắt đầu khám phá thế giới AI một cách dễ dàng. Hãy thử nghiệm với các mô hình khác nhau, xây dựng ứng dụng của riêng bạn và tận dụng sức mạnh của GPU NVIDIA để đạt được hiệu suất tối ưu.
Từ khóa chính: Ubuntu Server trên Proxmox: "Biến" máy ảo thành cỗ máy AI GPU NVIDIA chỉ trong tích tắc
html