On Sat, Oct 18, 2014 at 09:04:20PM +0400, Roman Bogorodskiy wrote: > Hi, > > In discussion of this spec proposal: > https://review.openstack.org/#/c/127827/ it was suggested by Joe Gordon > to start a discussion on the mailing list. > > So I'll share my thoughts and a long term plan on adding FreeBSD host > support for OpenStack. > > An ultimate goal is to allow using libvirt/bhyve as a compute driver. > However, I think it would be reasonable to start with libvirt/qemu > support first as it will allow to prepare the ground.
Agreed, I'd avoid the temptation to try to do everything at once. Taking an iterative approach of attacking small chunks of work at a time is much more practical. So by targetting libvirt+qemu you are able to focus on just identifying the Linux specific bits of the existing libvirt+qemu support. Once complete, then you can focus on the separate task of porting to the libvirt+bhyve driver. > High level overview of what needs to be done: > > - Nova > * linux_net needs to be re-factored to allow to plug in FreeBSD > support (that's what the spec linked above is about) Yep, this is biggest piece of Linux specific code in Nova codepaths for VM startup at least. So makes sense to deal with this. > * nova.virt.disk.mount needs to be extended to support FreeBSD's > mdconfig(8) in a similar way to Linux's losetup Broken file injection isn't a show-stopper for booting VMs but is obviously nice to have and shouldn't be too difficult as we already have a decent abstraction layer here. > - Glance and Keystone > These components are fairly free of system specifics. Most likely > they will require some small fixes like e.g. I made for Glance > https://review.openstack.org/#/c/94100/ Glance & Keystone are obviously core things to get working in order to be able to boot a VM. > - Cinder > I didn't look close at Cinder from a porting perspective, tbh. > Obviously, it'll need some backend driver that would work on > FreeBSD, e.g. ZFS. I've seen some patches floating around for ZFS > though. Also, I think it'll need an implementation of iSCSI stack > on FreeBSD, because it has its own stack, not stgt. On the other > hand, Cinder is not required for a minimal installation and that > could be done after adding support of the other components. I wouldn't worry about doing anything in Cinder until you have the rest of Nova almost fully functional on FreeBSD. There are bound to be a number of other things that we can't think of right now that will appear as you do the work & get to test more and more functional areas. I wouldn't bother trying to imagine what these are right now nor create specs for them. Instead I'd very much recommend taking an iterative approach to specs + bugs. ie when you come across new problems wrt porting, just file new specs (for big problems needing refactoring) or bugs (for minor problems easily fixed) to deal with the issues as you see fit at the time. IOW I'd just encourage you to jump right into the networking refactor work. That mess badly needs cleaning up even if we don't do FreeBSD work, so is a very worthwhile thing to work on for Kilo regardless. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| _______________________________________________ OpenStack-dev mailing list OpenStackemail@example.com http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev