This is an old revision of the document!
Virtualization TODO
This page was last edited in early 2013.
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: BHyVe
- 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
- 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.