Phát hành công khai VirtualBox KVM
(cyberus-technology.de)Ra mắt công khai VirtualBox KVM
- Cyberus Technology đã phát hành backend KVM của VirtualBox dưới dạng mã nguồn mở.
- VirtualBox là một trình giám sát máy ảo (VMM) đa nền tảng, hỗ trợ nhiều hệ điều hành khách khác nhau và cung cấp giao diện người dùng nhất quán trên nhiều hệ điều hành chủ.
- Với backend KVM, VirtualBox có thể tận dụng hypervisor KVM trên Linux để chạy máy ảo, thay cho mô-đun kernel tùy chỉnh mà VirtualBox tiêu chuẩn sử dụng.
Phát hành mã nguồn mở
- Để thực hiện cam kết với mã nguồn mở, Cyberus Technology đã công bố backend KVM trên GitHub theo giấy phép mã nguồn mở.
- Người dùng có thể build VirtualBox cùng backend KVM của Cyberus Technology từ GitHub để trực tiếp sử dụng các tính năng được cải thiện.
- Lộ trình năm 2024 bao gồm thêm nhiều tính năng đáng chú ý, và công ty dự định sẽ đăng thêm các bài viết đi sâu vào khía cạnh kỹ thuật mỗi khi có bản cập nhật được phát hành.
Nhận hỗ trợ
- Nếu muốn sử dụng VirtualBox và KVM hoặc cần một giải pháp ảo hóa tùy chỉnh, Cyberus Technology sẵn sàng cung cấp hướng dẫn và dịch vụ kỹ thuật.
- Người dùng cần hỗ trợ có thể liên hệ qua biểu mẫu hỗ trợ hoặc email service@cyberus-technology.de.
Ý kiến của GN⁺:
- Việc phát hành mã nguồn mở backend KVM của VirtualBox là một bước tiến quan trọng đối với công nghệ ảo hóa và với cộng đồng người dùng, nhà phát triển đang theo đuổi khả năng tương thích rộng hơn.
- Thông báo này đánh dấu tiến bộ kỹ thuật, có thể giúp cải thiện hiệu năng máy ảo, tăng cường bảo mật và mở rộng hỗ trợ cho phần cứng cũng như nhiều trường hợp sử dụng guest hơn.
- Nỗ lực đóng góp cho cộng đồng mã nguồn mở của Cyberus Technology được kỳ vọng sẽ thúc đẩy sự phát triển và đổi mới của phần mềm mã nguồn mở.
1 bình luận
Ý kiến trên Hacker News
Những ai dùng VirtualBox cần cẩn thận với Extension Pack. Oracle rất tích cực trong việc kiện tụng
https://www.reddit.com/r/sysadmin/comments/147k6az/oracle_is...
https://www.reddit.com/r/sysadmin/comments/d1ttzp/oracle_is_...
https://www.theregister.com/2019/10/04/oracle_virtualbox_mer...
Tổ chức của chúng tôi đã cấm VirtualBox. Dùng VMware Workstation hoặc virt-manager rẻ hơn nhiều so với phải đối phó với Oracle
Vì vậy chúng tôi đã phải ngăn mọi người dùng nó càng sớm càng tốt. Tất nhiên không chỉ riêng VBox, cơ sở dữ liệu cũng vậy, nên tốt nhất là cứ tránh đi
Không thể đưa cho người ta một quả chuối ngoài đường rồi 3 tháng sau quay lại đòi 1000 đô la được
Cuối cùng cũng có rồi. Mỗi khi chạy máy ảo, tôi chọn libvirt vì hiệu năng tốt hơn VirtualBox và dễ xử lý hơn, nhưng các lựa chọn GUI thì thật sự rất tệ
Ngay cả virt-manager, GUI libvirt “tốt nhất”, cũng nhiều lỗi và thiếu tính năng. Chẳng hạn không tương thích tốt với màn hình HiDPI, cũng không có cách cấu hình IPv6
Đã nhiều lần tôi chọn VirtualBox vì trải nghiệm sử dụng tốt hơn, dù hiệu năng kém libvirt/KVM; giờ có vẻ không cần làm vậy nữa
$ virsh net-dumpxml default6default673590ea2-eb15-4e67-b104-319721bdf302Nếu cần cũng có thể dùng DHCPv6
Hai cái gần như trái ngược hoàn toàn. Tôi dùng virt-manager vì GUI đơn giản hơn, mà dù sao cấu hình VirtualBox cũng gần như là ác mộng
Dù thế nào, tính năng này là một bước đi đúng hướng. Tôi tò mò liệu các bản phân phối có áp dụng không, và một ngày nào đó nó có được tích hợp upstream không
Khi đó PC chính của tôi là Windows 10, và môi trường dòng lệnh trên Windows khá tệ
Vậy về cơ bản thứ này biến VirtualBox thành một giải pháp thay thế cho virt-manager và virsh à?
Theo tôi biết VirtualBox không hỗ trợ PCI passthrough cho những thứ như GPU, nên tôi tò mò các trường hợp như vậy sẽ được xử lý thế nào
Trên Linux, sau khi chuyển sang QEMU/KVM tôi đã không ngoái lại VirtualBox nữa, nhưng trên Windows tôi vẫn dùng VirtualBox và mỗi lần đều cảm thấy GUI tốt hơn, thân thiện hơn nhiều
Bổ sung thêm, có vẻ VirtualBox có cung cấp PCI passthrough thử nghiệm thông qua Extension Pack [0]. Có thể dùng nó với backend KVM không?
[0] https://docs.oracle.com/en/virtualization/virtualbox/6.0/adm...
Lợi ích thực tế là không phải biên dịch lại module kernel vbox, một driver bên thứ ba, mỗi khi kernel được nâng cấp. DKMS cố gắng xử lý mà không cần quản trị viên can thiệp, nhưng không phải lúc nào cũng không có lỗi
Trong khi đó, ứng dụng VirtualBox được thiết kế để tích hợp tốt với desktop, nên việc kết nối vào guest bằng VNC khó có thể là một phương án thay thế
Sẽ rất hay nếu phía FreeBSD cũng có nỗ lực tương tự cho hypervisor bhyve
Vấn đề thuật ngữ cũng thú vị, nhưng gần đây đã được bàn đến trong chủ đề về Linux Direct Rendering Manager, DRM. Các từ viết tắt này được dùng trong các nhóm hẹp hơn so với “toàn bộ ICT”, và thiết bị keyboard-video-mouse cũng vậy
Chưa đến 1% là chuyên gia xử lý nội bộ Linux ở mức đó, và kỹ sư hiện trường trong phòng máy chủ cũng dưới 1%, nên không có nhận thức tập thể về các thuật ngữ này và chúng đã được tái sử dụng
LVM đã được dùng trong mảng lưu trữ, còn LKVM cũng có thể gây nhầm lẫn
Downvote cũng không làm bản phân phối của bạn giỏi hơn đâu
Tôi không rõ cái này mang lại thêm gì so với những gì đã có với KVM và virt-manager trên Linux
VirtualBox nhìn chung thân thiện với người dùng hơn. Tích hợp guest, kéo thả, clipboard, USB passthrough, hỗ trợ âm thanh cũng rất tốt trên VBox
Phần lớn máy ảo đều được mã hóa nên mang theo cũng yên tâm. Nhiều thông tin bí mật cũng được mã hóa riêng, nhưng nhờ mã hóa chính máy ảo nên nếu mất thiết bị ở sân bay, tôi không phải lo những thứ không nên bị truy cập sẽ bị lộ
virt-manager và KVM cũng có những cách làm được việc này, nhưng tôi không thích cách nào. Tôi không muốn phụ thuộc vào mã hóa ở mức hệ thống tệp của host, cũng có vấn đề về tính di động, và trước đây từng gặp chút rắc rối với mã hóa toàn bộ đĩa nên không thoải mái khi dựa vào nó
VirtualBox về bản chất cũng giống như đang mã hóa toàn bộ đĩa, nhưng guest không thấy điều đó và trông có vẻ ổn định
Về tính di động, có thể dùng https://www.vbox.me/ để cài máy ảo và host lên ổ flash, rồi chạy môi trường của tôi trên bất kỳ host Windows nào mà không cần cài thêm gì. Tôi vẫn chưa thực sự thử, nhưng đó là một lợi thế lớn
Hiện giờ phần lớn môi trường của tôi được tự động cấu hình bằng Vagrant: https://github.com/robsheldon/vagrantfiles nên tôi cũng đang có được một phần lợi ích của virt-manager
Tôi thật sự không thích phải phụ thuộc vào Oracle theo bất kỳ cách nào
Tôi chỉ từng nghe KVM trong ngữ cảnh các thiết bị kiểu keyboard-video-monitor, nên thấy nó không hợp lắm với khái niệm máy ảo. Ở đây là nghĩa khác à?
https://en.m.wikipedia.org/wiki/Kernel-based_Virtual_Machine
Xen mở rộng kernel để hỗ trợ CPU ảo theo các lát thời gian
KVM gán mỗi core ảo thành một process dùng scheduler của Linux
Khi core vCPU của một máy ảo phần cứng bị preempt, sẽ phát sinh lệnh gọi vmexit khiến phải thiết lập lại register v.v., chi phí rất lớn
Các instance AWS ngày trước chạy trên Xen, có lợi thế là dễ đảm bảo tính công bằng giữa các guest
KVM có lợi thế là tận dụng scheduler Linux đã được tối ưu tốt dựa trên cây đỏ-đen
Ví dụ khi có CPU mới, KVM sẽ nhận được hỗ trợ từ upstream, còn Xen phải tự hỗ trợ trực tiếp
Khi các công nghệ như cgroups được cải thiện, lợi ích của việc để thread hoàn tất thay vì bị preempt do hết lát thời gian đã giúp tránh chi phí vmexit
Về lý thuyết, việc tận dụng các chức năng lõi Linux vốn đã được tối ưu nội tại cũng sẽ có lợi cho VirtualBox
Hầu hết người dùng KVM dùng một lớp trừu tượng như libvirt để che giấu cách triển khai
Thực tế nếu nhìn vào process, bạn sẽ thấy qemu dù phần triển khai là KVM
Tôi thật sự tò mò về cái này. Là pentester, tôi dùng laptop Linux và dành nhiều thời gian trong Kali VM bên trong VirtualBox
Với backend KVM thì có thể kỳ vọng cải thiện hiệu năng đến mức nào?
Vì phải kết nối vào VPN của họ, tôi thấy nên tách hoạt động này khỏi mạng cá nhân
Tôi tò mò các bạn dùng cấu hình mạng nào cho VM pentest. Lý tưởng là VM có thể truy cập internet, và do đó truy cập HTB VPN, nhưng không thể truy cập vào bên trong mạng cục bộ
Nhưng tôi không rõ cách triển khai điều đó một cách đáng tin cậy. Có thể ngay từ đầu đây đã là suy nghĩ quá hoang tưởng và không thực tế, nên tôi muốn nghe góc nhìn của chuyên gia
Bình thường tôi sẽ dùng QEMU, nhưng nếu VirtualBox có tính năng giúp việc này dễ hơn thì trong trường hợp này dùng VirtualBox cũng được
Tuy nhiên khó nói một cách khái quát
Trước đây một số khách hàng của tôi dùng VBox, nên tôi từng đóng góp vào libvirt để hỗ trợ một số tính năng của VirtualBox
Nếu khi đó có cái này thì đã tiện hơn, và tôi đã có thể để tất cả khách hàng dùng máy ảo KVM
Chúc mừng nhóm làm việc này
Nghe thì hay đấy, nhưng không biết có phải giờ tôi đã già và khó tính rồi không, chứ nếu là 10 năm trước thì chắc sẽ rất tuyệt. Bây giờ liệu còn ai thực sự quan tâm không?
Ngày nay khi ảo hóa Linux GUI bên trong Linux, cũng có những cách tốt hơn nhiều so với virt-manager, VMware hay VirtualBox
Dùng crosvm có thể chia sẻ Wayland qua buffer bộ nhớ dùng chung, đồng thời có tăng tốc OpenGL và Vulkan trong guest
Như vậy ứng dụng guest sẽ xuất hiện liền mạch thông qua Wayland compositor của host
Tuy nhiên use case chính của VBox phần lớn là Windows