Flying Zones and x86 Virtualization
When we started using our Flying Zone architecture we were really limited to Solaris and some Linux (with a branded Zone). This is still pretty interesting but didn’t really get us to where I wanted to be. One day while sitting at Equinix in one of their Ashburn data centers I was building out a cage for Sun Services and I had an idea.
Sun acquired a company called Innotek back in the beginning of 2008 which produced a product called VirtualBox. It is an x86 type 2 Hypervisor. It is a competitor to Parallels Desktop or VMware Workstation/Fusion - one major difference is it is free! Once we made the acquisition I had access to the developers. I had several dialogues with them asking for features based on what I was trying to accomplish…I wanted to run VirtualBox inside a Zone.
I eventually was able to create a Zone on Solaris 10 x86 and I installed VirtualBox (VBOX) inside of it. Now this was getting pretty cool. VirtualBox has a mode where you can run it “headless” - with this mode you can configure everything via the CLI. This is analogous to configuring Xen or KVM from the CLI but the difference was I could utilize the power of ZFS (snapshots, cloning, etc) and Zones.
VBOX was running successfully within a Zone. The first test I did was to create a Windows VM and do a ZFS snapshot then send/receive (again cloning wasn’t available) to see if I could quickly clone the VM. That test was successful and I had a new VM in a matter of seconds. Awesome! The thoughts of building a hosting company around this methodology quickly filled my mind because I figured no one else was using ZFS, Zones, and VBOX in this manner.
I eventually dug a bit deeper and I hit a roadblock. At the time there were some licensing restrictions on using the pre-compiled Sun version and the open source version was missing some key components. That effectively killed my idea for a quick way to create and host VMs.
My idea to host x86 VMs inside a Zone has effectively been on hold for a bit. Sun did start up an xVM project to run Xen on Solaris but unfortunately Oracle killed off that project so they could focus on their own Oracle VM (Xen on Linux) product. Something very exciting happened on August 22, 2011…Joyent ported KVM to Illumos (a forked OpenSolaris).
Joyent is now using KVM within a Zone and utilizing today’s great features ZFS has. They’ve actually created their own custom distribution of Illumnos called SmartOS. To see more about what they’re up to check out the SmartOS Wiki. This has become their foundation for their cloud offering, Joyent Cloud.
In my next post I’ll go through sharing my experiences with KVM on Illumos.