เปิดเผยการแจกจ่าย VirtualBox KVM สู่สาธารณะ
(cyberus-technology.de)เปิดตัว VirtualBox KVM สู่สาธารณะ
- Cyberus Technology เปิดซอร์สโค้ดแบ็กเอนด์ KVM ของ VirtualBox
- VirtualBox เป็นตัวตรวจสอบเครื่องเสมือนแบบหลายแพลตฟอร์ม (VMM) ที่รองรับระบบปฏิบัติการเกสต์หลากหลาย และมอบส่วนติดต่อผู้ใช้ที่สอดคล้องกันบนระบบปฏิบัติการโฮสต์หลายแบบ
- เมื่อใช้แบ็กเอนด์ KVM, VirtualBox จะสามารถใช้ Linux KVM hypervisor เพื่อรันเครื่องเสมือนได้ โดยใช้แทนเคอร์เนลโมดูลแบบกำหนดเองที่ VirtualBox มาตรฐานใช้งาน
การเปิดซอร์สโค้ด
- Cyberus Technology เปิดเผยแบ็กเอนด์ KVM บน GitHub ภายใต้ไลเซนส์โอเพนซอร์ส เพื่อรักษาคำมั่นสัญญาที่มีต่อโอเพนซอร์ส
- ผู้ใช้สามารถบิลด์ VirtualBox และแบ็กเอนด์ KVM ของ Cyberus Technology จาก GitHub เพื่อใช้งานความสามารถที่ปรับปรุงแล้วได้โดยตรง
- โรดแมปปี 2024 มีฟีเจอร์ที่น่าสนใจเพิ่มเติมอีกมาก และมีแผนจะเผยแพร่โพสต์เพิ่มเติมที่ลงลึกด้านเทคนิคทุกครั้งที่มีการออกอัปเดต
การขอรับการสนับสนุน
- หากต้องการใช้งาน VirtualBox และ KVM หรือต้องการโซลูชัน virtualization แบบปรับแต่งเอง Cyberus Technology พร้อมให้คำแนะนำและบริการด้านวิศวกรรม
- ผู้ใช้ที่ต้องการรับการสนับสนุนสามารถติดต่อผ่านแบบฟอร์มซัพพอร์ตหรืออีเมล service@cyberus-technology.de
ความเห็นของ GN⁺:
- การเปิดซอร์สโค้ดแบ็กเอนด์ KVM ของ VirtualBox ถือเป็นความก้าวหน้าสำคัญสำหรับเทคโนโลยี virtualization และสำหรับชุมชนผู้ใช้กับนักพัฒนาที่ต้องการความเข้ากันได้ที่กว้างขึ้น
- การประกาศครั้งนี้สะท้อนถึงความก้าวหน้าทางเทคนิคที่อาจช่วยเพิ่มประสิทธิภาพของเครื่องเสมือน เสริมความปลอดภัย และขยายการรองรับฮาร์ดแวร์กับกรณีใช้งานของเกสต์
- ความพยายามของ Cyberus Technology ในการมีส่วนร่วมกับชุมชนโอเพนซอร์สน่าจะช่วยส่งเสริมการพัฒนาและนวัตกรรมของซอฟต์แวร์โอเพนซอร์ส
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
คนที่ใช้ VirtualBox ควรระวัง Extension Pack ให้ดี Oracle เอาจริงเอาจังเรื่องการฟ้องร้องมาก
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...
ในองค์กรของเราแบน VirtualBox ไปแล้ว ใช้ VMware Workstation หรือ virt-manager ถูกกว่าการต้องไปต่อกรกับ Oracle มาก
เลยต้องรีบทำให้ทุกคนหยุดใช้มันให้เร็วที่สุด แน่นอนว่าไม่ได้จำกัดแค่ VBox ฐานข้อมูลก็เหมือนกัน ดังนั้นหลีกเลี่ยงไปเลยดีกว่า
จะยื่นกล้วยให้คนบนถนน แล้วอีก 3 เดือนกลับมาเรียกเงิน 1,000 ดอลลาร์ไม่ได้หรอก
ในที่สุดก็มาแล้ว ทุกครั้งที่ต้องรัน virtual machine ผมเลือก libvirt เพราะประสิทธิภาพดีกว่า VirtualBox และจัดการง่ายกว่า แต่ตัวเลือก GUI นี่แย่จริง ๆ
แม้แต่ virt-manager ซึ่งเป็น GUI ของ libvirt ที่ “ดีที่สุด” ก็ยังมีบั๊กเยอะและฟีเจอร์ไม่พอ เช่น ไม่เข้ากับหน้าจอ HiDPI และไม่มีวิธีตั้งค่า IPv6
หลายครั้งผมเคยเลือก VirtualBox เพราะประสบการณ์ใช้งานดีกว่า แม้ประสิทธิภาพจะด้อยกว่า libvirt/KVM แต่ตอนนี้ดูเหมือนจะไม่จำเป็นต้องทำแบบนั้นแล้ว
$ virsh net-dumpxml default6default673590ea2-eb15-4e67-b104-319721bdf302ถ้าต้องการก็ใช้ DHCPv6 ได้ด้วย
สองตัวนี้แทบจะตรงข้ามกันเลย ผมใช้ virt-manager เพราะ GUI เรียบง่ายกว่า และอย่างไรเสียการตั้งค่า VirtualBox ก็แทบจะเป็นฝันร้ายอยู่แล้ว
ไม่ว่าอย่างไร ฟีเจอร์นี้ก็เป็นก้าวหนึ่งในทิศทางที่ถูกต้อง อยากรู้ว่า distro ต่าง ๆ จะรับไปใช้ไหม และสักวันจะถูกรวมเข้า upstream หรือเปล่า
ตอนนั้น PC หลักของผมเป็น Windows 10 และสภาพแวดล้อม command line ของ Windows ก็ค่อนข้างแย่
นี่เท่ากับทำให้ VirtualBox กลายเป็นตัวทดแทน virt-manager กับ virsh หรือเปล่า?
เท่าที่ผมรู้ VirtualBox ไม่รองรับ PCI passthrough อย่าง GPU เลยสงสัยว่ากรณีแบบนี้จะจัดการอย่างไร
บน Linux หลังจากย้ายไป QEMU/KVM แล้วผมก็ไม่หันกลับไปมอง VirtualBox อีก แต่บน Windows ผมยังใช้ VirtualBox อยู่ และทุกครั้งก็รู้สึกว่า GUI ดีกว่าและเป็นมิตรกว่ามาก
เพิ่มเติม: ดูเหมือน VirtualBox จะมี PCI passthrough แบบทดลองผ่าน Extension Pack [0] แล้วสิ่งนี้จะใช้กับ KVM backend ได้ไหม?
[0] https://docs.oracle.com/en/virtualization/virtualbox/6.0/adm...
ข้อดีในทางปฏิบัติคือไม่ต้องคอมไพล์โมดูลเคอร์เนล vbox ซึ่งเป็นไดรเวอร์ third-party ใหม่ทุกครั้งที่มีการอัปเกรดเคอร์เนล แม้ DKMS จะพยายามจัดการโดยไม่ต้องให้แอดมินเข้ามายุ่ง แต่ก็ไม่ได้ปลอดบั๊กเสมอไป
ในทางกลับกัน แอปพลิเคชัน VirtualBox ถูกออกแบบมาให้ทำงานร่วมกับเดสก์ท็อปได้ดี ดังนั้นการเชื่อมต่อเข้า guest ผ่าน VNC จึงแทบเป็นทางเลือกทดแทนไม่ได้
ฝั่ง FreeBSD ก็น่าจะมีความพยายามคล้าย ๆ กันสำหรับ hypervisor bhyve บ้าง
ประเด็นเรื่องคำศัพท์ก็น่าสนใจ แต่เพิ่งถูกพูดถึงไปแล้วในหัวข้อ Linux Direct Rendering Manager หรือ DRM คำย่อพวกนี้ถูกใช้ในกลุ่มที่แคบเมื่อเทียบกับ “ICT ทั้งหมด” และอุปกรณ์ keyboard-video-mouse ก็เช่นกัน
ผู้เชี่ยวชาญที่แตะภายในของ Linux ถึงระดับนั้นมีไม่ถึง 1% และวิศวกรภาคสนามในห้องเซิร์ฟเวอร์ก็มีน้อยกว่า 1% จึงไม่มีการรับรู้ร่วมกันเกี่ยวกับคำพวกนี้ เลยถูกนำกลับมาใช้ซ้ำ
LVM ก็ถูกใช้ในฝั่ง storage อยู่แล้ว และ LKVM ก็อาจทำให้สับสนได้
ต่อให้ downvote ก็ไม่ได้ทำให้ distro ของคุณเก่งขึ้นหรอก
ไม่แน่ใจว่าสิ่งนี้ให้อะไรเพิ่มจากที่ได้อยู่แล้วด้วย KVM และ virt-manager บน Linux
VirtualBox โดยรวมเป็นมิตรกับผู้ใช้มากกว่า การผสานกับ guest, ลากแล้ววาง, clipboard, USB passthrough, และการรองรับเสียงของ VBox ก็ดีมาก
virtual machine ส่วนใหญ่ถูกเข้ารหัสไว้ จึงพกพาไปไหนมาไหนได้อย่างสบายใจ ข้อมูลลับหลายอย่างก็เข้ารหัสแยกไว้แล้ว แต่เพราะมีการเข้ารหัสตัว virtual machine เอง เลยไม่ต้องกังวลว่าถ้าทำอุปกรณ์หายในสนามบิน สิ่งที่ไม่ควรถูกเข้าถึงจะรั่วไหล
ใน virt-manager และ KVM ก็มีวิธีทำได้ แต่ไม่มีแบบที่ถูกใจ ไม่อยากพึ่งการเข้ารหัสระดับไฟล์ซิสเต็มของ host และยังมีปัญหาเรื่องความพกพา อีกทั้งเคยมีปัญหาเล็กน้อยกับ full disk encryption มาก่อน จึงรู้สึกไม่สบายใจที่จะพึ่งมัน
โดยแก่นแล้ว VirtualBox ก็เหมือนทำ full disk encryption เช่นกัน แต่ guest มองไม่เห็น และดูเสถียรดี
ด้านความพกพา ควรจะสามารถใช้ https://www.vbox.me/ ติดตั้ง virtual machine และ host ลงในแฟลชไดรฟ์ แล้วรันสภาพแวดล้อมของตัวเองบน Windows host ใดก็ได้โดยไม่ต้องติดตั้งเพิ่ม ยังไม่ได้ลองจริง แต่เป็นข้อดีใหญ่
ตอนนี้สภาพแวดล้อมส่วนใหญ่ตั้งค่าอัตโนมัติด้วย Vagrant: https://github.com/robsheldon/vagrantfiles เลยได้ข้อดีบางส่วนของ virt-manager ด้วย
ไม่ชอบเลยจริง ๆ ที่ต้องพึ่งพาอะไรบางอย่างจาก Oracle
เคยได้ยิน KVM เฉพาะในบริบทอุปกรณ์พวก keyboard-video-monitor ซึ่งดูไม่ค่อยเข้ากับแนวคิด virtual machine เท่าไร ในที่นี้หมายถึงอย่างอื่นใช่ไหม?
https://en.m.wikipedia.org/wiki/Kernel-based_Virtual_Machine
Xen ขยาย kernel เพื่อรองรับ virtual CPU แบบแบ่งช่วงเวลา
KVM จัดสรร virtual core แต่ละตัวเป็น process ที่ใช้ Linux scheduler
เมื่อ vCPU core ของ hardware virtual machine ถูก preempt จะเกิดการเรียก vmexit ที่ต้องตั้งค่า register ฯลฯ ใหม่ ซึ่งมีต้นทุนสูง
AWS instance สมัยก่อนรันบน Xen และมีข้อดีคือทำให้ความเป็นธรรมระหว่าง guest ทำได้ง่าย
KVM มีข้อดีตรงได้ประโยชน์จาก Linux scheduler ที่ปรับแต่งมาดีบนพื้นฐาน red-black tree
เช่น เมื่อมี CPU ใหม่ออกมา KVM จะได้รับการรองรับจาก upstream แต่ Xen ต้องรองรับเอง
เมื่อเทคโนโลยีอย่าง cgroups ดีขึ้น ข้อดีของการให้ thread ทำงานจนเสร็จโดยไม่ถูก preempt เพราะหมด time slice ช่วยหลีกเลี่ยงต้นทุนของ vmexit
ในเชิงทฤษฎี การใช้ประโยชน์จากฟีเจอร์หลักของ Linux ที่ถูกปรับแต่งมาโดยเนื้อแท้ก็น่าจะเป็นประโยชน์ต่อ VirtualBox ด้วย
คนส่วนใหญ่ที่ใช้ KVM จะใช้ abstraction layer อย่าง libvirt ที่ซ่อนรายละเอียดการ implement ไว้
ถ้าดู process จริง ๆ ต่อให้ implementation เป็น KVM ก็อาจเห็น qemu อยู่
เรื่องนี้น่าสงสัยจริง ๆ ในฐานะ penetration tester ที่ใช้แล็ปท็อป Linux และใช้เวลามากใน Kali VM ภายใน VirtualBox
จะคาดหวังประสิทธิภาพเพิ่มขึ้นจาก KVM backend ได้ประมาณไหน?
เพราะต้องเชื่อมต่อกับ VPN ของที่นั่น เลยดูเหมือนว่าควรแยกกิจกรรมนี้ออกจากเครือข่ายส่วนตัว
อยากรู้ว่าใช้คอนฟิกเครือข่ายแบบไหนกับ VM สำหรับ penetration testing ตามอุดมคติคืออยากให้ VM เข้าถึงอินเทอร์เน็ต และดังนั้นเข้าถึง HTB VPN ได้ แต่เข้าถึงภายในเครือข่าย local ไม่ได้
แต่ไม่แน่ใจว่าจะทำให้เชื่อถือได้อย่างไร ตั้งแต่แรกนี่อาจเป็นความคิดระแวงเกินไปจนไม่ practical ก็ได้ เลยอยากได้มุมมองจากผู้เชี่ยวชาญ
ปกติคงใช้ QEMU แต่ถ้า VirtualBox มีฟีเจอร์ที่ทำให้เรื่องนี้ง่ายกว่า ก็ยอมใช้ VirtualBox ในกรณีนี้ได้
แต่ยากที่จะพูดแบบสรุปทั่วไป
ในอดีตลูกค้าบางรายใช้ VBox เลยเคย contribute ให้ libvirt เพื่อรองรับฟีเจอร์บางส่วนของ VirtualBox
ถ้าตอนนั้นมีสิ่งนี้ก็คงสะดวก และคงทำให้ลูกค้าทุกคนใช้ KVM virtual machine ได้
ยินดีกับผลงานด้วย
เท่ดีนะ แต่ไม่รู้ว่าเป็นเพราะตอนนี้ผมแก่และขี้หงุดหงิดไปแล้วหรือเปล่า ถ้าเป็น 10 ปีก่อน คงสุดยอดมาก ตอนนี้ยังมีใครสนใจจริง ๆ ไหม?
ทุกวันนี้เวลาจะ virtualize Linux GUI ภายใน Linux มีวิธีที่ดีกว่า virt-manager, VMware, VirtualBox มากแล้ว
ถ้าใช้ crosvm จะสามารถแชร์ Wayland ผ่าน shared memory buffer และยังได้ acceleration ของ OpenGL กับ Vulkan ใน guest ด้วย
แบบนี้แอปพลิเคชันใน guest จะปรากฏอย่างแนบเนียนผ่าน Wayland compositor ของ host
แต่ use case หลักของ VBox ส่วนใหญ่คือ Windows