Trong thế giới của những dự án home lab độc đáo, không thiếu những ý tưởng táo bạo mà bạn có thể hiện thực hóa. Cách đây vài tuần, tôi đã thử nghiệm xây dựng một Hackintosh trên bo mạch chủ N100 SBC của mình, dù kết quả không mấy khả quan. Tuy nhiên, tôi cũng đã thử sử dụng GhostBSD, một bản phân phối dựa trên FreeBSD, làm hệ điều hành chính hàng ngày và khá ngạc nhiên về giao diện đơn giản, khả năng phản hồi nhanh và khả năng tương thích ứng dụng ổn định của nó.
Nói về việc sử dụng một thiết lập không thông thường làm hệ thống chính, tôi cũng đã thử chạy một máy ảo Windows 11 được quản lý bởi Proxmox như một hệ thống làm việc chính trong một thời gian. Và tôi không chỉ nói đến các tác vụ lập trình – điều mà tôi đã làm từ lâu. Tôi đang nói đến việc thực sự chơi game trên máy ảo – một điều mà ban đầu tôi cho là vô lý. Tuy nhiên, tôi có thể khẳng định rằng thiết lập này hoàn toàn khả thi, miễn là bạn sẵn lòng dành thời gian để ghép nối tất cả các thành phần lại với nhau một cách chính xác.
1. Kích hoạt IOMMU trong BIOS bo mạch chủ
Cài đặt quan trọng không thể bỏ qua
Nếu bạn đã từng sử dụng các trình ảo hóa (hypervisor) trước đây, chắc chắn bạn đã kích hoạt SVM, Intel VT-x, AMD-V, hoặc bất kỳ tên gọi nào khác của tính năng ảo hóa trong BIOS bo mạch chủ của mình. Tuy nhiên, nếu bạn đang lên kế hoạch xây dựng một máy ảo chuyên dụng để chơi game, bạn sẽ cần bật thêm một cài đặt nữa trong BIOS: IOMMU. Viết tắt của Input-Output Memory Management Unit, cài đặt có vẻ phức tạp này cho phép máy ảo của bạn truy cập các địa chỉ bộ nhớ liên quan đến thiết bị I/O – và bạn sẽ cần nó để kích hoạt tính năng truyền card đồ họa (GPU passthrough) trên máy ảo Proxmox của mình.
Giao diện BIOS của bo mạch chủ Gigabyte hiển thị tùy chọn IOMMU
Bạn cũng sẽ muốn chỉnh sửa bộ nạp khởi động GRUB bên trong Proxmox để kích hoạt IOMMU trên nền tảng ảo hóa, và việc này đơn giản như thêm dòng GRUB_CMDLINE_LINUX_DEFAULT="iommu=pt"
vào tệp /etc/default/grub
. Thật không may, không phải bo mạch chủ nào cũng hỗ trợ IOMMU một cách hoàn hảo. Trong trường hợp của tôi, bo mạch chủ X99 về mặt kỹ thuật có hỗ trợ tính năng này, nhưng việc triển khai của nó quá lỗi đến nỗi tôi phải chuyển sang bo mạch chủ B450 khi xây dựng dự án này.
2. Truyền Card Đồ Họa (GPU Passthrough) cho Máy Ảo
Thử thách nhưng hoàn toàn khả thi trên hầu hết hệ thống
Phần phức tạp nhất của toàn bộ thiết lập là gán một card đồ họa cho máy ảo. Để tăng thêm độ “điên rồ”, tôi đã chọn sử dụng GPU Intel thay vì Nvidia, mặc dù thử nghiệm của tôi cuối cùng đã thành công khi tôi có thể truy cập card đồ họa trên máy ảo. Giống như các thiết bị PCI khác, tôi phải thêm một số biến vfio
vào tệp /etc/modules
.
Sau đó, tôi phải thêm dòng blacklist i915
vào tệp /etc/modprobe.d/blacklist.conf
để ngăn Proxmox host truy cập GPU khi nó đã được ghép nối với một máy ảo. Tiếp theo, tôi thực thi lệnh lspci -n -s
theo sau là ID PCIe của card Intel và các tính năng liên quan, mà tôi tìm thấy bằng cách chạy lệnh lspci -v
. Cuối cùng, tôi mở tệp /etc/modprobe.d/vfio.conf
và thêm dòng options vfio-pci ids=Device_1,Device_2 disable_vga=1
, trong đó Device_1
và Device_2
trỏ đến các trình điều khiển GPU của tôi.
Điều này có vẻ như rất nhiều thao tác, nhưng nếu bạn đã thiết lập IOMMU từ trước, bạn sẽ không gặp phải bất kỳ vấn đề tương thích nào. Ít nhất, tôi đã không gặp phải, và tôi đã thành công trong việc bật GPU passthrough bằng ba loại card đồ họa khác nhau trên bốn hệ thống.
3. Triển khai Máy Ảo trên Ổ Cứng SSD
Tối ưu hiệu suất thay vì phụ thuộc vào ổ cứng chậm chạp
Tôi thường sử dụng kết hợp SSD và ổ cứng HDD trong home lab của mình. SSD thường được dùng làm ổ đĩa khởi động cho các thiết lập bare-metal và các đơn vị lưu trữ tốc độ cao cho các dự án yêu cầu tốc độ truyền dữ liệu cao nhất có thể. Trong khi đó, tôi thường dựa vào HDD để lưu trữ dữ liệu LXC và VM thiết yếu – bao gồm cả các ổ đĩa ảo được sử dụng để cài đặt các hệ điều hành khách này.
Giao diện cài đặt Windows 11 bên trong máy ảo Proxmox, hiển thị tùy chọn chọn ổ đĩa để cài đặt
Nhưng vì tôi muốn máy ảo chơi game của mình phản hồi nhanh nhất có thể, tôi đã tạo một ngoại lệ bằng cách triển khai nó trên ổ cứng SSD. Thời gian khởi động khá hợp lý, và điều tương tự cũng đúng với thời gian tải các tựa game yêu thích của tôi. Tuy nhiên, khả năng phản hồi khi chơi game (hay đúng hơn là việc thiếu phản hồi) đòi hỏi tôi phải thực hiện thêm một số tinh chỉnh bổ sung.
4. Sử dụng Parsec để Truy cập Máy Ảo
Giải pháp tối ưu cho trải nghiệm chơi game
Mặc dù có một số vấn đề, tôi thường sử dụng QEMU để truy cập các máy ảo Proxmox của mình, nhưng nó không hề lý tưởng cho một máy ảo chơi game nơi độ trễ là kẻ thù số một. Thậm chí tôi còn sử dụng Giao thức Màn hình Từ xa (RDP) để truy cập môi trường phát triển mà tôi đã thiết lập trong một máy ảo Windows 11 khác, và vì tôi đã sử dụng phiên bản Pro của hệ điều hành, thiết lập RDP có vẻ tốt hơn, phải không? Chà, không hẳn vậy. Mặc dù các trò chơi không đến mức không thể chơi được, nhưng tốc độ khung hình qua kết nối RDP thấp hơn đáng kể so với mức đáng ra phải có.
Do đó, tôi đã lên kế hoạch triển khai một máy chủ Apollo trên máy ảo Windows 11 của mình và sử dụng Moonlight để truy cập. Thật không may, những nỗ lực ban đầu của tôi đã thất bại, và cuối cùng tôi đã phải nhờ đến Parsec. Mặc dù đây chắc chắn là một ứng dụng hữu ích, nhưng việc Parsec phụ thuộc vào máy chủ của công ty để xác thực cũng như các tính năng bị giới hạn bởi tường phí khiến tôi ít muốn phụ thuộc vào nó hơn. Tuy nhiên, máy ảo Windows 11 chơi game của tôi hoạt động cực kỳ tốt với Parsec, với điều kiện tôi đã cài đặt trình điều khiển GPU và truyền ID thiết bị của bộ xử lý đồ họa cho máy ảo của mình trước đó.
Kết luận
Việc biến một máy ảo Proxmox thành nền tảng chơi game Windows 11 có vẻ phức tạp nhưng hoàn toàn khả thi và mang lại trải nghiệm đáng ngạc nhiên. Bằng cách thực hiện đúng các bước quan trọng như kích hoạt IOMMU trong BIOS, cấu hình GPU Passthrough một cách tỉ mỉ, ưu tiên triển khai máy ảo trên ổ cứng SSD tốc độ cao và lựa chọn giải pháp truy cập tối ưu như Parsec, bạn có thể tận hưởng hiệu suất chơi game mượt mà, giảm thiểu độ trễ. Đây là một dự án home lab thú vị dành cho những ai muốn khám phá giới hạn của ảo hóa và tối ưu hóa hệ thống của mình.
Hãy thử nghiệm thiết lập này và chia sẻ kinh nghiệm của bạn trong phần bình luận bên dưới nhé!