spacer

bhyve - The BSD Hypervisor

About bhyve

bhyve is a legacy-free Hypervisor for FreeBSD and its derivatives such as PC-BSD and NanoBSD

Q: What is bhyve?

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).

Q: What hardware does it run on?

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.

Q: How does it work?

A: Here is an overview of its operation:

spacer

Q: What versions of FreeBSD does bhvye support as a host?

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.

Q: What guest operating systems does bhyve support?

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.

Q: Does bhyve only run on FreeBSD?

A: bhyve is being developed on FreeBSD but its virtual machine manager logic is fundamentally portable.

Q: What is bhyve comprised of?

A: The vmm.ko loadable kernel module, the libvmmapi library, the bhyve, bhyveload and bhyvectl utilities. In total these are about 250K in size.

Q: Where are the sources?

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.

Q: Does bhyve have any dependencies?

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.

Q: Does bhyve support VT-d PCI device pass-through?

A: Yes, though it is experimental.

Q: What boot media are supported?

A: Memory Disk (md) disk images, ZFS zvols and iSCSI targets.

Q: Can bhyve be built with LLVM/CLANG?

A: Yes, this is a requirement of FreeBSD 10, where bhyve is being developed.

Q: Is there a mailing list or IRC channel?

A: The most popular places to discuss bhyve are the freebsd-virtualization@freebsd.org mailing list and the #bhyve channel on irc.freenode.net.

Q: Is it "bhyve" or "BHyVe"?

A: The developers mercifully depreciated the CamelCase name "BHyVe" and simply refer to it as "bhyve".

Presentations

Operating 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.

The bhyve-scripts

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.

Additional bhyve Information

FreeBSD Virtualization Mailing List

Neel's Personal Page

The FreeBSD Wiki bhyve Page

Special Thanks

Bandwidth courtesy of High5! and NYC*BUG, the New York City *BSD User Group.

spacer


This page is maintained by Michael Dexter and the bhyve development team and served using OpenBSD

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.