March 10, 2009 - Matthijs Haverink
XenServer 5.0 Enterprise Ready?
Since 2 months I’ve been playing around with the new enterpise version of XenServer 5.0. As you can read in my first post my expectations of the new version were high. I’ve created a summary of pro’s and con’s. As far is I’m concerned VMware ESX server 3.5 Enterprise and Citrix XenServer 5.0 platinum are in the same league although some key features from ESX 3.5 are missing within XenServer and the other way around. Below you’ll find the way I created my test environment and all challenges I ran in to. See for your self if you consider XenServer enterprise ready.
For the base purpose “Virtualize Hardware” XenServer does the job. You can create several types of virtual machines with several types of Operating Systems. Although the first obstacle is the fact Intel-VT or AMD-V is required for virtualizing Windows machines (this is not the case for ESX). This makes it a lot tougher to re-use hardware (because most older hardware does not have this support). But OK in most new servers it’s integrated (and when you wan’t to play around at home please keep this in mind).
The installation procedure of a XenServer host is very simple and quick, just plugin the CD and within 5 minutes you’ll have a running Xenserver (I’ve seen several blogs posting the installation procedure so I’ll spare you the details). In the rest of this post a configuration of 2 servers is used (because of a key difference between ESX and XenServer, I’ll get back on this later on). After installing my two XenServer hosts I install XenCenter on my laptop and connect my two XenServers. All works fine and I can install my licences very easy. First difference with ESX is that XenCenter is just an application, and doesn’t need a local database or anything like that. And the licenses are directly installed on the host, this can be the case with ESX but preferably licenses are installed on a license server.
Next step is to create an Resource Pool (That’s what I thought). Within ESX is very easy to create a resource pool (first a datacenter and next is the resource pool). But within XenServer there is a requirement DNS must be properly configured before creating a resource pool. So when I want to run my DNS servers (in a new environment) on a virtual machine I first have to create a VM with DNS service, configure my XenServers to use these DNS servers and than continue. Without a DNS I can create a resource pool but cannot add a second server to it when name resolution is not in place. One of the strong features of XenServer is that the configuration changes are saved on the XenServers and not within XenCenter. This way my XenCenter doesn’t have a key position unlike Virtual Center does.
I uploaded a windows server 2008 DVD to Dom0 of both Xenservers (not recommended) to get started. I’ve created two separate windows 2008 standard servers created a Domain with an Active Directory integrated DNS, and added both XenServers to the DNS. I configured the XenServer to use the DNS servers by using the build in console (XSconsole). I Know most CLI cracks prefer to configure these things by using very complicated command lines which works as well. Funny is the way you can access the command prompt of the servers just by clicking on a host, click on console and your in. Of Course Putty or other CLI tools work as well. When all was in place I create a resource pool and automatically one of myXenservers becomes the “master” and the other the “member” (Just to let you know).
As you can read in my “first impression” article I thought it was possible to create a HA environment without shared storage. This was not entirely true. You can do this but you need additional tooling (Marathon Everrun VM). The base HA feature build-in XenCenter which provides fail-over level 1 needs shared storage (and NFS doesn’t work) so you need Iscsi, Fiberchannel, NetApp or EqualLogic. So what I thought was a big plus for XenServer turned out to be exactly the same as ESX HA. I’ve installed Marathon Everrun VM on both of my XenServers to create an environment where shared storage is not needed (because I don’t have shared storage at home of course you can create Iscsi targets on Windows or Linux machines with additional software but I choose the fancy way). Installing Marathon Everrun VM takes about 5 minutes including the upload to the XenServers. Now I’m able to create a Level 2 protected Virtual Machine which replicates it’s storage between the hosts. Unfortunately Everrun VM only supports Windows 2003 servers and not yet 2008. So the rest of my servers will be Windows 2003 servers.
I created a file share on one of my DC’s to store my ISO’s and create a new storage repository for my Resource Pool. I’ve seen these types of SR’s within ESX as well but I must say the configuration of storage repository’s is very easy within XenServer. On this ISO share I’ve uploaded the Windows 2003 cd’s and started creating a 2003 machine which I transformed to a template after the installation of Xentools. Unfortunately this is a one way operation unlike within ESX. When a template is created you first have to deploy a VM from it update it with whatever you want to do and than convert that updated VM to a new template and delete the old template (which I think is a weird situation). I’ve created the template on one of the XenServers and though it would be manageable to deploy a VM from this template to the other XenServer host (stupid me). Of course you need shared storage to deploy a template over more than one XenServer hosts. So I created a windows 2003 SR2 level 2 protected machine with enough disk space and a NFS share. I connected this NFS share to my resource pool and copied my template to the new Storage Repository. This way when one server fails the other one can take over the file server and my NFS share will still be in place.
Last curious thing I would like to mention is the Virtual Machine configuration. Within ESX I’m used to build a virtual machine and tell what kid of hardware is in that virtual machine. All this hardware is placed within one tab. Within XenCenter, the Memory and vCPU are in a separate tab, storage is in a separate tab, networking is in a separate tab and a dvd can be created from two separate places. And most importantly I cannot configure other hardware than this (no com ports, lpt ports etc etc.). This is an issue which is not a big problem but when using specific hardware it might be a problem.
Finally I have a stable environment in which I can create and manage virtual machines without dedicated shared storage. As you can see it is manageable but it’s not an ideal situation. So my advice when using XenServer within an enterprise environment use shared storage. I think that XenServer is a very cool solution but still can use a lot of development. And with the release of ESX 4.0 upcoming they need to do this quick as well.
Let me know what you’re experience is with Xen or XenServer….