[libvirt] [PATCH] initial version of the bhyve driver

Roman Bogorodskiy bogorodskiy at gmail.com
Fri Dec 27 19:22:06 UTC 2013


Hi,

This is an initial version of the bhyve driver. bhyve is a hypervisor for
FreeBSD: http://bhyve.org/.

I've tried to make this initial version as small as possible but functional, e.g.
so it could be tested without lots of manual actions outside of libvirt. Hopefully
it's not large enough for review, because I have no idea how to make it smaller yet
functional.

About the driver itself.

It supports the following operations on domains (not counting service ones):

 * define
 * start
 * destroy

Domain configuration is limited, user can define RAM, vcpus, can specify only one
block device and attach the domain to only one network of 'bridge' type (default
network works fine).

Having that, you can start a bhyve VM and it will get a network connectivity.
Network supported added at the early state, because the only way to get inside VM
but network is via stdout/stdin, which is not convenient at all. That was fixed
in -CURRENT and one could use tty device, but I haven't upgrade my development box
to that version yet.

Testing information:

I use an domain xml like that:

https://gist.github.com/novel/8151244

On both host and guest I use FreeBSD amd64 10-BETA3. Guest image doesn't have much
configuration except:

ifconfig_vtnet0="DHCP"

in /etc/rc.conf

And allowing root loging for sshd.

Also, if one wants to manually test the image outside of libvirt, this line is needed
in /etc/ttys to be able to login from console:

ttyu2   "/usr/libexec/getty std.9600"   vt100   on secure

Roman Bogorodskiy (1):
  bhyve: add a basic driver

 configure.ac                |  37 ++++
 daemon/libvirtd.c           |   9 +
 include/libvirt/virterror.h |   1 +
 src/Makefile.am             |  35 +++
 src/bhyve/bhyve_driver.c    | 529 ++++++++++++++++++++++++++++++++++++++++++++
 src/bhyve/bhyve_driver.h    |  28 +++
 src/bhyve/bhyve_process.c   | 386 ++++++++++++++++++++++++++++++++
 src/bhyve/bhyve_process.h   |  36 +++
 src/bhyve/bhyve_utils.h     |  48 ++++
 src/conf/domain_conf.c      |   3 +-
 src/conf/domain_conf.h      |   1 +
 src/driver.h                |   1 +
 src/libvirt.c               |   3 +
 src/util/virerror.c         |   1 +
 14 files changed, 1117 insertions(+), 1 deletion(-)
 create mode 100644 src/bhyve/bhyve_driver.c
 create mode 100644 src/bhyve/bhyve_driver.h
 create mode 100644 src/bhyve/bhyve_process.c
 create mode 100644 src/bhyve/bhyve_process.h
 create mode 100644 src/bhyve/bhyve_utils.h

-- 
1.8.4.3




More information about the libvir-list mailing list