Ảo hóa là một điều thông minh. Một máy tính trong một máy tính, nếu bạn muốn, là vô số khả năng và tình huống sử dụng. Ngoại trừ một. chơi game. Hãy hỏi bất kỳ tay mọt sách nào chạy máy ảo, vì bất kỳ lý do gì, và rất có thể họ sẽ chỉ ra một thiếu sót lớn trong tất cả và mọi phần mềm ảo hóa - ngăn xếp đồ họa không được phát triển đầy đủ hoặc đủ mạnh.
Thật vậy, khá thường xuyên, khi bạn chạy các hệ điều hành khách bên trong các máy ảo, bạn thường bị giới hạn bởi khả năng tăng tốc đồ họa - chức năng 2D và 3D đằng sau khả năng gốc của máy chủ của bạn. Vì vậy, nếu bạn cho rằng ảo hóa có thể giải quyết nhiều vấn đề của mình - chơi game không phải là một trong số đó. Virgil 3d là một dự án nhằm mang lại những điều kỳ diệu 3D cho phần mềm ảo hóa, với mục tiêu một ngày nào đó sẽ cung cấp hiệu suất máy chủ tương đương. Việc triển khai giải pháp này là QEMU Virgil, cho phép bạn kích hoạt SDL2 và Virgil 3d trong các máy ảo dựa trên QEMU/KVM. Nghe có vẻ thú vị. Vì vậy, chúng ta hãy xem.
Thiết lập
Một nhược điểm lớn của loại nỗ lực này là có thể khá phức tạp và cần có thời gian để cấu hình và chạy mọi thứ. Tuy nhiên, với Virgil 3d, nếu bạn muốn dùng thử gói snap hiện có, nó sẽ bỏ qua tất cả các bit biên dịch thủ công và những thứ khác. Gợi ý:Là một người phải luôn chia sẻ, tôi được liên kết với nỗ lực tích cực, vì vậy nếu bạn cảm thấy có sự thiên vị, hãy chạy đi!
sudo snap install qemu-virgil
sudo snap connect qemu-virgil:kvm
Chạy máy ảo
Chúng ta hãy xem một lệnh (mẫu) để biết cách bạn có thể khởi động một máy ảo được tăng tốc 3D. Nếu bạn cảm thấy hơi choáng ngợp, tôi khuyên bạn nên xem hướng dẫn Giới thiệu về KVM của tôi cách đây vài năm. Hầu hết nội dung được nêu chi tiết ở đó vẫn được áp dụng.
qemu-virgil -enable-kvm -m 4096 -thiết bị virtio-vga,virgl=on -display sdl,gl=on -netdev user,id=ethernet.0,hostfwd=tcp::10022-:22 -thiết bị rtl8139,netdev =ethernet.0 -soundhw ac97 kubuntu.img -boot d -cdrom kubuntu.iso
Chúng ta có gì ở đây?
Hãy xem tất cả các tùy chọn đầy màu sắc này:
- -enable-kvm - Chúng tôi sử dụng hỗ trợ ảo hóa KVM đầy đủ. Không cần phải nói, phần cứng của bạn phải có các phần mở rộng cần thiết (có trong CPU và được kích hoạt trong BIOS).
- -m 4096 - Bộ nhớ VM được đặt thành 4GB.
- -device ... - Tùy chọn này thêm trình điều khiển thiết bị. Cụ thể, chúng tôi sử dụng virgl.
- -display ... - Tùy chọn này cho phép sử dụng kết xuất SDL và OpenGL cho màn hình của chúng tôi.
- -netdev ... - Tùy chọn này định cấu hình giao diện mạng có chuyển tiếp cổng TCP, vì vậy bạn có thể SSH vào máy ảo của mình (sử dụng cổng máy chủ 10022). Thiết bị mạng sẽ là bộ điều hợp ảo RTL8139. Hiện tại, bộ điều hợp này bị giới hạn ở 100 Mb/giây, nhưng bạn cũng có thể sử dụng e1000. Trang mạng KVM chính thức có thêm chi tiết về chủ đề này.
- -soundhw - Chúng tôi cấu hình card âm thanh.
- kubuntu.img - Đây là tên của đĩa cứng ảo. Chúng tôi chưa tạo - và bạn có thể thực hiện việc này bằng cách tạo ảnh đĩa với dd (đầy đủ hoặc thưa thớt) hoặc bạn có thể sử dụng lệnh qemu-img.
- -boot d - Tùy chọn này chỉ định thứ tự khởi động; d có nghĩa là CD-ROM trước.
- -cdrom kubuntu.iso - Ở đây, chúng ta có kubuntu.iso là ảnh đĩa CD ảo. Trước tiên, chúng tôi sẽ khởi động vào phiên trực tiếp, cài đặt hệ điều hành và sau đó, trong những lần sử dụng tiếp theo, bạn chỉ cần xóa các tùy chọn khởi động và cdrom khỏi lệnh.
Có nhiều lựa chọn khác mà bạn có thể thử. Giống như số lượng CPU ảo, các mẫu CPU khác nhau, ảnh chụp nhanh, chế độ bộ nhớ đệm đĩa, chức năng USB, tính năng quản lý bộ nhớ khác nhau, v.v. Nhưng chúng tôi không ở đây để làm chủ KVM, chúng tôi ở đây để tận hưởng niềm vui 3D.
Tạo đĩa cứng
Vì vậy, bạn có thể làm điều gì đó như:
qemu-img tạo -f qcow2 kubuntu.img 20g
Khởi động máy ảo &đồ họa 3D
Nhấn Enter. Ma thuật xảy ra sau đó. Máy ảo sẽ khởi động và bạn sẽ sớm thấy màn hình nền của bất kỳ hệ điều hành khách nào mà bạn đã chọn. Đối với thử nghiệm của mình, tôi đã chọn Kubuntu 20.04, chạy trên Fedora 32. Nhưng bạn có thể sử dụng bất cứ thứ gì bạn thích cho khách của mình, kể cả Windows.
Bạn có thể kiểm tra hỗ trợ tăng tốc 3D bằng:
glxinfo | grep "hiển thị trực tiếp"
Bây giờ, điều này không có nghĩa là mọi chức năng kết xuất 3D đơn lẻ đã được triển khai, nhưng chắc chắn đó là một khởi đầu tốt. Thật vậy, máy ảo Kubfox của tôi có tất cả các chi tiết đẹp mắt và nó hoạt động khá ổn định, bao gồm cả hiệu suất 3D chắc chắn. Tôi thậm chí đã chạy thử nghiệm PassMarkburn-in để xem điều gì mang lại. Custy.
Kết luận
Virgil trông giống như một điều thực sự tốt đẹp. Bởi vì đó là một giải pháp tương đối đơn giản và rẻ tiền. Bây giờ, tôi biết những người có máy tính đa GPU và họ có cấu hình VM thông minh, trong đó các thẻ GPU khác nhau được máy chủ và máy ảo khách sử dụng riêng biệt, sử dụng mã định danh bus PCI và những thứ tương tự, mang lại hiệu suất gần như nguyên gốc cho máy khách của họ các hệ thống. Nhưng điều đó thường vượt quá kỹ năng và ngân sách của một mọt sách bình thường. Vì hãy thực tế đi, những người thực sự bình thường sẽ không sử dụng Linux, ảo hóa hay bất cứ thứ gì tương tự.
Ở giữa số không và mọi thứ 3D, nếu bạn cần một số đồ họa ưa thích trong máy ảo của mình, thì có lẽ Virgil có thể cung cấp cho bạn mức độ chức năng phù hợp. Nó có thể là một thị trường ngách, nó vẫn đang trong quá trình phát triển, nhưng nó hoạt động khá tốt và từ thử nghiệm của tôi, hiệu suất là phù hợp. Chúng ta vẫn chưa ở giai đoạn mà ảo hóa có thể thay thế hoàn toàn phần cứng vật lý (nếu có), nhưng Virgil là một bước đi đúng hướng. Có một đi, mọt sách đi. Chúng ta đã hoàn thành ở đây.
Chúc mừng.