Forum OpenACS Q&A: Solaris Zones vs. Xen vs. Vanilla Debian
I am starting a new OpenACS based project at the hospital I am working at and we are seriously considering going down the OS virtualization route. We have narrowed it down to Xen vs. Solaris Zones. I was wondering if there is any experience with Xen in the community?
I have gotten some initial feedback on Zones from the community (i.e. there is experience using them for OpenACS running PostgreSQL), but we would like to join the Debian install efforts that E-lane has spearheaded and Xen would allow that. As a side note: would also like to avoid trapping ourselves in the quirkiness of Solaris and the joy of installation that quirkiness brings with it).
Any feedback or thoughts are welcome.
- http://www.xensource.com/ is the community site for Xen.
- Xen and the Art of Virtualization (PDF)" is a detailed research paper that describes the Xen hypervisor architecture. This and the other papers on the Xen architecture are invaluable in understanding exactly how Xen works.
- "Xen and the Art of Repeated Research (PDF)" is a performance comparison of XenoLinux (Linux running in a Xen virtual machine) to native Linux as well as to other virtualization tools on an IBM eServer™ zSeries® mainframe. It repeats an earlier performance analysis for consistency of results.
- "Virtualization and the On Demand Business" (IBM Redpaper, August 2004) describes how organizations can use virtualization as a technique to gain more business value and greater flexibility from their IT infrastructure.
I think Cathy is using User Mode Linux. I have ruled out UML based on research and problems getting a testing environment up.
Getting a test version of Xen running was simple ( http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads.html ). In fact I had the Xen Demo up and running before I finished reading through the license and downloading the second Solaris 10 CD from Sun (iirc there where ~6).
I like these two:
- move running virtual machines to another host without stopping them
- pickle a virtual machine's state to disk and resume it later (wonder if the paused server can be moved easily to another machine as well)
On the Vserver site I found this wish from Cathy:
"Biggest wish: more resource allocation abilities, especially for memory."
Is that still the case Cathy? This is one of the positive things I read about Solaris Zones (nice allocation between zones... e.g. if one zone needs RAM and anothers are not using it all, that machine can take adavantage of the situation). Wondering how Xen deals with this.
Also, here is a Xen limitation that could be important for heavy trafficked sites: "Xen can currently use up to 4GB of memory. It is possible for x86 machines to address up to 64GB of physical memory but there are no current plans to support these systems: The x86/64 port is the planned route to supporting larger memory sizes." How much RAM does a site like Galileo typically need? On the other hand, we do have a load balancer for clinical applications and could possibly use it to distribute load to various Xen instances on different physical boxes.
Solaris Zones sounds like Linux V-Server or the FreeBSD Jail facility. These are all inherently different than Xen. With Xen you can run multiple different kernels, even entirely different operating systems (as long as they support Xen). The new thing about Xen, is that unlike VMware, it can do this efficiently (like IBM's VM) on commodity processors (unlike IBM's VM).
The problem with Debian, currently, is that there is no support for x86-64 (neither AMD nor Intel) in Sarge. So either you run 32 bit x86 Debian, or you use the unofficial (and "unstable") Debian AMD64 port. Neither of which is a particularly good choice for people buying x86-64 servers now...
Depending on your requirements this can be a good thing or a bad thing. Do you actually need to run several different OSs or OS versions on your production servers? If not then virtualisation along the Zones/Jail line is actually a win since you don't have the resource hit (memory mainly, but also cycles) of running multiple kernel images at the same time.
Andrew, although VMWare's overhead is more than Xen's, it's still pretty good. I believe the rule of thumb is ~15-20%, so maybe your 3Ghz Xeon behaves like a 2Ghz Xeon. Not a difference that should really matter if you're not running at the limit of the machine.
For real world experience, I deployed half of my projects last year into VMs on client's sites. These were decent size intranet apps (100s or 1000s of users). It worked great -- often I found out late in the project that the machine I was remote'ing into was a VM.
The only issues encountered with the rollouts were developer inflicted.
Anyway, here's a great article contrasting the different approaches: