Software:bhyve

From HandWiki
Short description: BSD Hypervisor

Bhyve
Developer(s)The FreeBSD Project
Initial release2014; 10 years ago (2014)
Repositorygithub.com/freebsd/freebsd-src/tree/main/usr.sbin/bhyve
Written inC
Operating systemFreeBSD
TypeHypervisor
LicenseFreeBSD License

bhyve (pronounced "bee hive", formerly written as BHyVe for "BSD hypervisor") is a type-2 hypervisor initially written for FreeBSD.[1][2][3] It can also be used on a number of illumos based distributions including SmartOS,[4] OpenIndiana, and OmniOS.[5] A port of bhyve to macOS called xhyve is also available.[6]

Features

bhyve supports the virtualization of several guest operating systems, including FreeBSD 9+, OpenBSD, NetBSD, Linux, illumos, DragonFly and Windows NT[7] (Windows Vista and later, Windows Server 2008 and later). bhyve also supports UEFI installations and VirtIO emulated interfaces. Windows virtual machines require VirtIO drivers for a stable operation. Current development efforts aim at widening support for other operating systems for the x86-64 architecture.

Support for peripherals relies on basic and VirtIO drivers and supports: eXtensible Host Controller Interface (xHCI) USB controllers, NVM Express (NVMe) controllers, High Definition Audio Controllers, raw framebuffer device attached to VNC server (Video Output), and AHCI/PCI Passthrough.[8]

Since the support for peripherals is incomplete, hardware-accelerated graphics is only available using PCI passthrough. But, Intel GVT (and other vGPUs with driver support) should allow sharing the device with the host.[9]

bhyve performs about the same as its competitors with lack of memory ballooning and accelerated graphics interface, but bhyve has a more modern codebase and uses fewer resources. In the case of FreeBSD the resource management is more efficient. FreeBSD is also known for its exemplary I/O speeds; running bhyve from FreeBSD has a lot of advantages for time-critical virtual appliances by reducing I/O time, especially on disk and network related loads.

Applications

Docker on macOS uses a bhyve derivative called HyperKit. It is derived from xhyve, a port of bhyve to macOS's Hypervisor framework.[10]

iohyve on FreeBSD is a command-line utility to create, store, manage, and launch bhyve guests using built in FreeBSD features.[11]

vm-bhyve on FreeBSD is a shell-based, bhyve manager with minimal dependencies.[12]

BVCP on FreeBSD is a lightweight, native, full featured web interface for managing virtual machines.[13]

FreeNAS, based on FreeBSD, uses bhyve alongside its file sharing services to provide hosting for VMs.[14]

Other distributions

ClonOS, a FreeBSD-based distribution for virtual hosting platform and appliance, primarily uses bhyve and has a web-based management interface.[15]

MyBee, a FreeBSD-based distribution for managing cloud VMs (bhyve) through a simplified API.[16]

SmartOS, an Illumos-based distribution for managing cloud VMs (bhyve, Solaris zones) through a simplified API.

MidnightBSD, a desktop operating system, includes bhyve.[17]

References

  1. Carabas, Mihai; Grehan, Peter (10 June 2016). "Porting bhyve on ARM". https://www.bsdcan.org/2016/schedule/attachments/370_bsdcan2016.pdf. 
  2. Dexter, Michael (20 October 2012). "BHyVe: The BSD HyperVisor In Depth". http://bhyve.org/BHyVe-EuroBSDcon2012.pdf. 
  3. Kerner, Sean Michael (22 January 2014). "Open Source FreeBSD 10 Takes on Virtualization". QuinStreet Enterprise. http://www.serverwatch.com/server-news/open-source-freebsd-10-takes-on-virtualization.html. 
  4. Gerdts, Mike (March 2018). "bhyve zones in SmartOS". http://bhyvecon.org/bhyvecon2018-Gwydir.pdf. 
  5. "bhyve Hypervisor". https://omniosce.org/info/bhyve. 
  6. "machyve/xhyve: a lightweight OS X virtualization solution". 9 July 2020. https://github.com/machyve/xhyve. 
  7. "bhyve Windows Virtual Machines". https://wiki.freebsd.org/bhyve/Windows. 
  8. "FreeBSD Manual Pages". https://www.freebsd.org/cgi/man.cgi?query=bhyve&sektion=8&n=1. 
  9. "Bhyve guests with hardware accelerated graphics". https://papers.freebsd.org/2019/eurobsdcon/chiu-bhyve_guests_with_hardware_accelerated_graphics/. 
  10. "moby/hyperkit: A toolkit for embedding hypervisor capabilities in your application". Moby. 10 July 2020. https://github.com/moby/hyperkit. 
  11. "FreeBSD bhyve manager utilizing ZFS and other FreeBSD tools". Pr1ntf. https://github.com/pr1ntf/iohyve. 
  12. "Shell based, minimal dependency bhyve manager". Churchers. https://github.com/churchers/vm-bhyve. 
  13. "BVCP: FreeBSD Bhyve Project". https://bhyve.npulse.net/. 
  14. "18. Virtual Machines — FreeNAS®11.3-U5 User Guide Table of Contents". https://www.ixsystems.com/documentation/freenas/11.3-U5/virtualmachines.html. 
  15. "Free Open-Source Hosting Platform". https://clonos.convectix.com/. 
  16. "The most simplified API for creating and destroying K8S and cloud VMs". https://myb.convectix.com/. 
  17. "Virtualization". https://github.com/MidnightBSD/src/wiki/Virtual-Machines. 

Further reading

External links