At Six Feet Up, we have been running the legacy-free virtualization platform Bhyve
, which is built into FreeBSD 10
. We have been moving away from Xen in favor of Bhyve to power our VM platform because we are looking for a lighter and more efficient solution. As opposed to many hypervisors out there today, Bhyve removes the overhead necessary to support older hardware platforms and relies on the hardware to accelerate the virtualization process.
In parallel, we also use the open source storage solution FreeNAS for backups and serving up shared file storage. We love FreeNAS because this ZFS-based advanced file system offers, among other things, snapshots, replication and is self healing. It's also based on the FreeBSD OS.
So, when we heard that FreeNAS was going to support Bhyve , we were ecstatic because combining the two will greatly boost the efficiency of our VM hosting process. FreeNAS boxes typically have a lot of extra CPU resources that go unused and we can now run hybrid cloud services that combine the storage and virtualization layer to simplify the operations.
As part of our platform we are using the vmrc framework from Michael Dexter to create and control the VMs. In a note on Twitter  Michael mentioned that FreeNAS will be including Bhyve support on ZFS zvols using his work (he works for iXsystems and helps maintain FreeNAS). It is great to see the community paying to support great open source work.
Example of how easy it is to use Bhyve with `vmrc`:
# Create a new VM called sfup-tst01
$ sudo sh mkvm.sh sfu_default_64bit sfup-tst01_
# Start the VM
$ sudo service vm start sfup-tst01_0
That whole process created a Zvol for the root file system, formatted the block device as UFS and extrated the FreeBSD distribution onto it ready to boot. It does it in a little less than a minute from creation to running VM. The move by FreeNAS to include this as their virtualization layer means that you now have a nice point-and-click interface to control your VMs.
Did you like this post? Other blog posts you may like include: