Converting Xen Appliances for XenServer Import

It is no secret that we use many Novell technologies at Martin Luther College to enable our faculty, staff, and students to get their work done. I’ve blogged about such things many times and I’ll be continuing to do so in the future. I have plans to bring Filr and ZENworks on campus soon to alleviate some specific needs we have and I have already deployed the new iPrint here to serve as part of our printing solution.

All three of these solutions have one things in common: they are available as virtual appliances for ease of deployment.

However, one hitch is that Novell only provides appliances for three virtualization platforms: VMware, Hyper-V, and Xen. XenServer, our platform of choice, is the one that is missing. The bare Xen image won’t do, initially, because it provides nothing more than a raw disk image and a configuration file.

Initially I just used the VMware image provided as an OVF which imported into our XenServer infrastructure just fine but was incomplete. I could not easily get the XenServer Tools installed and I still wanted to get the paravirtualized kernel so that I get some optimizations within XenServer. I also cannot easily take advantage of the high availability features of XenServer without the tools installed.

Workable, but no ideal.

This is how we are currently running the latest iPrint appliance (currently version 1.1). It has been working extremely well, but if I can find a way to run things in a more optimized way, I’m all for it. So I spent a day in IRC asking how I might be able to convert a Xen image to something more amenable to XenServer import.

Enter xva.py. A simple Python script “… to aid the migration of xend based Xen virtual machines to XenServer and Xen Cloud Platform.” That would do it! So I moved onto attempting the conversion of the Filr 1.1 appliance that was just released!

All of these steps are being done on Apple OS X but most steps should be transferable to any UNIX-like system. So let’s do this!

  1. Download the wanted Xen appliance from the Novell site. I chose Filr 1.1 as my test appliance because I want to test Filr.
  2. Unarchive the download. You should have a folder with a raw disk image and a xenconfig file. My Filr disk image is 21+ GB in size once it is expanded. The xenconfig file is only 179 bytes.
  3. Open your terminal application of choice and move into that newly created appliance folder.
  4. Grab xva.py and drop it into your appliance folder. I used curl http://www-archive.xenproject.org/files/xva/xva.py > xva.py to just grab it directly from the site. I have also made a local copy so that I have it for the future.
  5. Now is the fun part. Make sure you have enough free disk space to handle making a copy of the disk image. Also, make sure that xva.py is within that appliance folder. It will just make things easier.
  6. Next I ran the following: python xva.py -c Filr.x86_64-1.1.0.653.xenconfig -f Filr.x86_64-1.1.0.653.xva which will inspect the image and then output the whole thing as an XVA for import into XenServer. The xenconfig file contains the name of the disk image and other parameters needed, so you don’t need to include those.
  7. Now you wait.

When it is complete you will have a new XVA file that you can import through XenCenter into your XenServer infrastructure. Logging into the appliance later will allow you to install the XenServer Tools.

Web Tool for XenServer: Xen Orchestra

While not earth-shattering for most, having a good web-based tool for managing XenServer installations is something I have been looking for since we started our virtualization project at work a few years back.

Well, here is Xen Orchestra to do just that!

xo21This morning I finally spent the little bit of time it takes to get Xen Orchestra up and running as a virtual appliance on our XenServer infrastructure and so far I have been very pleased with it. It is still very young and needs some time to cook, but it will allow me to do the basic things I need to do from the web instead of needing to spin up my Windows VM to get XenCenter going.

That makes me very happy.

Features are missing, things are sometimes a little clunky, but I think the basic bones of the application are there for all to see and this could end up to be an excellent web-based tool to help anyone with a XenServer of XAPI-based infrastructure.

How To Upgrade to XenServer 6.2: My Story

This is my story on how I was able to upgrade our two virtualization stacks to XenServer 6.2. It is a tale of woe, so be prepared.

Where to begin …

We have two virtualization “stacks” consisting of four servers each. Two servers are for storage (Ubuntu 12.04 boxes using DRBD for replication) and two are XenServer hosts. At first we were hoping to use software RAID on the host boxes, but that did not work out.

So, we went ahead and purchased Adaptec RAID 6405 cards for the host boxes even though they were not on the HCL list for XenServer because we thought it would be easy enough to go ahead and create driver disks. While it is possible, it is still a pain.

Worse than that, when we attempted the upgrade to XenServer 6.2 from our 6.1 pools … the installation media would not see the prior installation even when using proper driver disks. We could do new installations, but we could not upgrade pools.

What!?

So … a new plan was hatched. Here are the steps:

  1. Purchase new LSI MegaRAIDSAS 9260-4i card as a replacement for the Adaptec RAID 6405 card currently in one of the host boxes.
  2. Install said card into host box and test installation of XenServer 6.1.
  3. After installation of XenServer 6.1, test upgrade to XenServer 6.2
  4. Reinstall XenServer 6.1 onto host.
  5. Run patches and add back into pool.
  6. Order three more RAID cards.
  7. Migrate VMs to the newly added pool member.
  8. Drop other host box with the Adaptec card still in it.
  9. Install new RAID card and install XenServer 6.1.
  10. Run patches and add back into pool.
  11. Upgrade all pool hosts and pool to XenServer 6.2.

Do that for each stack. It allows me to move each host box onto a RAID card supported by XenServer and then allows me to upgrade the entire pool to XenServer 6.2 using the mechanisms with XenCenter.

YAY!

I’ve learned a lot, again, through this entire process … maybe most importantly how vital it is to have a plan ready to go in your head before you start and to follow it as closely as possible. Luckily, this one worked.

I’ll have to wait and see if I am as lucky in the future.

Xen Orchestra

I’ve been looking around for alternative administrative GUIs for XenServer and happened upon this young project: Xen Orchestra.

Web-based? Check.

Attractive design? Check.

Open source? Check.

That’s pretty cool. Go ahead and check it out yourself. It is very young, but it is good to see some life around XenServer now that it is open source.