bhyve - The BSD Hypervisor |
bhyve is a legacy-free Hypervisor for FreeBSD and its derivatives such as PC-BSD and NanoBSD
A: bhyve, the "BSD hypervisor" is a legacy-free hypervisor/virtual machine manager that is actively being developed on FreeBSD and leverages modern CPU features such as Extended Page Tables (EPT).
A: bhyve currently supports Intel processors with Extended Page Tables and will support AMD processors in the future. Processor EPT compatibility can be determined at ark.intel.com but most Core i3, i5, i7 and related Xeon processors are supported. Presence of the "POPCNT" (POP Count) processor feature in dmesg(8) will also indicate EPT support.
A: Here is an overview of its operation:
A: bhyve can be built and operated on FreeBSD 9.0 but its active development is taking place on 10-CURRENT. Backporting to 9.* and even 8.* is fundamentally possible.
A: As a legacy-free hypervisor, bhyve currently only supports the booting of FreeBSD guests on a FreeBSD host. Currently, unmodified FreeBSD 10-CURRENT, 9-STABLE and 8-STABLE guests can be booted on a bhyve 10-CURRENT host because they include VirtIO drivers. VirtIO drivers can be added to FreeBSD 9.0 systems.
Other nonproprietary and proprietary guest OS support is actively being explored.
A: bhyve is being developed on FreeBSD but its virtual machine manager logic is fundamentally portable.
A: The vmm.ko
loadable kernel module, the libvmmapi
library, the bhyve
, bhyveload
and bhyvectl
utilities. In total these are about 250K in size.
A: bhyve was merged from the bhyve projects branch into FreeBSD head on January 19th, 2013.
A raw diff, a diff without svn mergeinfo and an annotated diff of the bhyve patches prior to import are available for reference.
A: bhyve uses the VirtIO set of devices for virtualized storage and network devices. It can boot with only a kernel-loaded, memory-backed root filesystem but this provides limited flexibility.
A: Yes, though it is experimental.
A: Memory Disk (md) disk images, ZFS zvols and iSCSI targets.
A: Yes, this is a requirement of FreeBSD 10, where bhyve is being developed.
A: The most popular places to discuss bhyve are the freebsd-virtualization@freebsd.org
mailing list and the #bhyve
channel on irc.freenode.net
.
A: The developers mercifully depreciated the CamelCase name "BHyVe" and simply refer to it as "bhyve".
The easiest way to try bhyve is with a FreeBSD 10-CURRENT release.iso snapshot from January 20th, 2013 (r245673) or later for the host and the vmrun.sh
launch script (instructions) to install and manage guests. Any recent FreeBSD 8.3-STABLE, 9.0-STABLE, 9.1-STABLE or 10-CURRENT release.iso snapshot should include the necessary VirtIO drivers for bhyve.
Once you have the 10-CURRENT snapshot installed as a host, vmrun.sh
will look for the release.iso
disc image and will create an 8G disk image named diskdev
for storage. vmrun.sh
only requires a guest name as a parameter and must be executed with root privileges: sudo sh vmrun.sh vm1
For your convenience, FreeBSD 8 and 9 VirtIO r244024 drivers and a 10-CURRENT r245673 snapshot with debugging disabled are provided on the bhyve mirrors:
USA: mirrors.nycbug.org/pub/bhyve/
Europe: high5.nl/mirrors/bhyve/
The European mirror also contains an experimental VMware image that needs testing.
For greater flexibility you can use a series of sequential scripts that will build and populate various boot media using the official FreeBSD snapshot install media.
The archive of these scripts is: bhyve-scripts.tar
The archive contains:
INSTRUCTIONS-COPYRIGHT.txt 0-make-softdevice.sh 1-format-device.sh 1-format-zvol-gpt.sh 2-install-guest.sh 3-host-prep.sh 4-boot-guest.sh 5-cleanup-guests.sh mount-diskdev.sh
Please provide bug reports and feedback to the contact information provided in the scripts.
FreeBSD Virtualization Mailing List
Neel's Personal Page
The FreeBSD Wiki bhyve Page
Bandwidth courtesy of High5! and NYC*BUG, the New York City *BSD User Group.
This page is maintained by Michael Dexter and the bhyve development team and served using OpenBSD