Craig Rodrigues wrote: > On Sat, Oct 11, 2014 at 11:05 AM, Roman Bogorodskiy <no...@freebsd.org> > wrote: > > > > > Frankly speaking, it's a hard topic for me and currently I don't have a > > complete idea how to design that. The thing I'm worried about is that as > > far as I understand that exit codes are sort of temporary solution and > > will be dropped in the future. Also, it seems the behaviour is changing > > already, e.g. IIRC on -CURRENT the bhyve proccess doesn't exit on > > reboots (unlike in 10-R). My goal is to support 10-R and I'm not sure > > how to probe if exit codes are available or not (and how to probe if > > e.g. if new exit code will be added in some future version). > > > > Any reason why you are stuck on 10-R? > Unlike other parts of FreeBSD, bhyve is not mature, and is evolving over > time. > Serious users of bhyve are following CURRENT or 10-STABLE. > 10-STABLE has the same error status codes as CURRENT, and 10.1-R is > coming out in a few weeks. > libvirt for bhyve is even less mature than bhyve itself, so tracking > bhyve beyond the release should be OK, but it's up to you.
Well, it's not an ultimate goal to support 10-R, but while it's not very painful, I think it's a nice thing to do. Also, it doesn't mean that I'm not adding features available only in -STABLE, I just want user to have a possibility to have a meaningful error messages if certain feature is not support. Also, I forgot to mention one more important issue with the exit code approach. Libvirt doesn't serve as a parent process for the bhyve processes. The reason for that is to allow libvirt restart without having to interrupt the VMs (that's useful for upgrades or e.g. libvirtd crash). I'm not sure how I could track exit codes in such case. IMHO, the good way to solve this problem is to introduce some sort of control socket on the bhyve side that could be used to query VM status and push events about its change. I've been wanting to implement a PoC for that for quite some time, but, unfortunately, haven't got to it yet. > In its current form, my experience has been that bhyve and libvirt are > unusable for serious work, based > on the issues which I've described before for starting/stopping VM's. > bhyve + custom scripting is the only way to go. > > I tried to use libvirt + bhyve for jenkins.freebsd.org, but found it > unusable, even though Jenkins has libvirt > support for starting VM's on demand. I backed away from libvirt, and ended > up writing my > own scripts. I am trying to convince some people to go with libvirt + > bhyve for a simulation/testing system, > but am having a hard time because of all the rough edges, and Linux + KVM + > libvirt looks a lot more > mature and easier to use. > > It's too bad, because I think if you can incorporate a few minor > enhancements to libvirt for bhyve, > it can definitely be a replacement for Linux + KVM + libvirt > > > Neel, Peter, can you comment on the status exit codes from bhyve? > Are those temporary, or will you keep them? There is no other way > for external scripts to detect reset/poweroff. It looks like the confusion > over this issue > is blocking Roman from moving forward with libvirt. > > Thanks. > -- > Craig Roman Bogorodskiy
pgpF0qdEbZyie.pgp
Description: PGP signature