Virtualization TODO
This wiki page contains the results of brainstorming missing features required to make FreeBSD work well in a range of virtualized environments.
Cross-Platform
VirtIO drivers in the base tree (for KVM, bhyve, VirtualBox, possibly others) (9/21, initial commit of virtio drivers to projects/virtio branch: http://lists.freebsd.org/pipermail/svn-src-projects/2011-September/004361.html )
- Support for hot adding/removing of CPUs (mainly for bare metal and VMware so far)
- "make release" generates template disk / file system images (not specific to a particular VM platform)
- "make release" extensions that allow qemu-tools (or similar external or new internal tools) to convert file system images into VM images that can be loaded with minimal work (i.e., VMDK, etc).
- makefs(1) support for UFS2
- GEOM "resize" event to allow device drivers to notify the storage stack of growth
- Live-growable UFS
- Shrinkable UFS (for reducing "cloud" costs)
- Reorder partitions so that swap is first
- Possibly a /boot with pivotroot twiddle model
- tar(1) support for UFS1, UFS2
- tar(1) support for ext2fs
- Cross-install from Linux (i.e., FreeBSD installer ported to Linux can build FreeBSD file system images for use with a VM)
Xen
See: Xen
- kldloadable PV drivers without having to compile in "options XENHVM"
- Break out various Xen PV drivers into separate modules so they can be loaded independently -- i.e., front drivers without back drivers
- ifnet-level support for advertising the maximum number of mbuf clusters that can be used with TSO; Xen netfront tweaks to advertise the Linux limit used by netback
- dom0 (but lots to do here -- especially, grant tables, but also general stability work for "options XEN")
bhyve
See the dedicated bhyve page
- Suspend/resume
- Live migration
- Support for older CPUs without nested paging virtualization (there are still a lot of them)
Jails
- Make more filesystems jail friendly (audit individual filesystem code so that VFCF_JAIL can be set)
EC2 (Amazon Cloud)
- Provide AMI files as part of the release process
VMware
VMware Studio
See: http://www.vmware.com/products/studio and http://communities.vmware.com/thread/312289
- Add a FreeBSD VM vApp template.
- See /opt/vmware/etc/new_os/TODO_new_os in the VMWare Studio 2.6 image.
- Port the Provisioning Agent to FreeBSD.
- This is just a shell script run once after first boot, which provisions a VM from template fillout hosted in a custom ISO image. /etc/rc integration is needed. See /opt/vmware/www/provagent/.build/etc/vmware-studio in the VMWare Studio 2.6 image.