Over the past few years, I’ve become a big fan of Virtualization technologies like VMWare, VirtualBox, Xen, Microsoft Hyper-V, etc. So much so that I moved the majority of our clients to virtual server solutions.

On the desktop, I tend to use VirtualBox from Sun. It seems to perform the best for both Windows and Linux, but does not contain (on Windows) many “enterprise” level features found in XEN and VMWare Server.

I initially used VMWare Server to setup numerous VMs for software and platform integration testing and other fancy stuff like that.  I still use VMWare Player for a couple VMs I have left from the past, but VirtualBox is my favorite for desktop testing.

When it came to XenServer, I did not have much experience with it since I *thought* it was more of a IT Backendish type of Virtualization software and more arcane (CLI Only). Perhaps it was at one time.  Now I’m no stranger to the command line interface, but still like a nice interface to be able to “see” all the settings right in front of me.

But regardless of my misconception, I decided to download XenServer and install it on one of my spare test boxes. XenServer is full virtualization host “OS” that you install and all the guest machines are run inside it.

I won’t go through all the minute details, but XenServer was a breeze to install, only asking basic questions and the IP to assign to the server. It’s best to put it on a decent machine with lots of hard drive space, plenty of RAM and processor power. Having virtualization extensions on the CPU is a BIG plus and allows you to run Windows VMs.

On older machines, like my old Pentium D Dell server, that do not have virtualization extensions, are not able to run Windows virtual machines.  The Linux (Ubuntu in my case) VMs worked just fine without them.

For Windows VMs, I used a newer Quad Core Phenom box and put 4 Windows Server 2003′s (by cloning them) on it by using the VMWare to XEN conversion program.  It was a little buggy getting the image converted, but the Citrix XEN forums helped quite a bit.

Overall, I’ve been extremely happy with the performance of XenServer and when it comes to testing, I don’t think I’ll go back to desktop type virtualization solutions like VirtualBox (big learning curve for advanced CLI functionality) and VMWare Server (which has a crappy, buggy web interface, the last time I used it).  They also require you to already have an existing full blown host OS, at least under Windows.

To manage the servers, there is a desktop application called XenCenter you can use to connect remotely to one or more XenServers.  It allows you to manage all aspects of your XenServer(s) even allowing you to easily upload, install, snapshot, clone and even do live migrations of VMs between XenServers.

One of my favorite features was the ability to create “templates” of a machine so you can easily spin up a new one from the template.  It’s always there and you can have many different variations of a server for example, like a clean server install, one with IIS & ASP.NET configured and yet another with a full custom configuration.  Just use the template, create a new VM from it, be sure to change the default IP so it doesn’t conflict with an existing machine and you’re good to go.

There are some sites out there you can google that have XEN ready images you can upload through the XenCenter software into the server and boot.

XenServer is an OS+Virtualization solution all-in-one and helps you get the most out of your machines.