adventures in virtualization
Almost 2 months ago, I embarked on a project at work to automate some package builds for nightly automated testing. The goal was to generate these packages once, and then have the assorted test systems use those packages instead of each having to build them (repeatedly). I decided that the most efficient means of doing this was on one beefy server that would then host several OS instances to do the assorted builds.
I tried out Sun's VirtualBox first, but it was rather unstable. I experienced several kernel Oops, and eventually gave up
Next was the 'native' Xen that ships with RHEL5. At first, it was rather promising. It was stable, and performance was fairly decent. Redhat's virt-manager was a decent GUI frontend to the assorted xn commands. Unfortunately, there was one huge problem. Cygwin worked just fine inside of WINXP32, however it was severely broken inside of WINXP64. bash.exe would randomly segfault with heap allocation failures. Apparently there are a few others with the same problem, and the cygwin folks are pointing fingers at Microsoft (which isn't much of a stretch), and the Xen folks are not sure what's wrong. After trying a series of hacks and workarounds, I eventually had to give up on Xen, as I absolutely had to have a working WINXP64 instance.
Finally, I gave VMWare's Server-2.0 a try. While the performance was no where near as good as Xen, it appears to be significantly more stable, and the cygwin bug is not present. One other plus is their web admin console which is rather polished & full featured. Additionally, cloning VM instances is as easy as running this bash script. At this point, I'm hopeful that I have a stable, scalable solution.