Update Citrix Xenserver to XCP-ng

The story behind XCP-ng

Since XenServer 7.x, Citrix decided to make changes to their free Version, obviously to make more money with the licensed versions of the product. You can’t use the LTS 7.1 without a subscription, because there are no more updates for this minor without a licence. It’s free to upgrade from 7.1 to the next version, but in 7.2 Citrix started to disable features and with the next releases they also decided to create a limit of max. 3 servers per pool and removed so many important features like HA, Xen Storage Motion or the Rolling Pool Upgrade Wizard, that the most homelabs or little companies had to decide what to do. Of course, you will find a lot of other hypervisors out there and some are free, but if you really love XenServer, you don’t want to move to another product. 

Oliver Lambert and his Team – the developers of Xen Orchestra – decided to start a new project: XCP-ng – basically, they hack the code of Citrix XenServer to enable all features and remove the restrictions, but that’s not all, they also implement new features like a very easy updates process and the code of the new “product” is 100% open source plus community supported. 

This post should show you my experience with the update from XenServer to XCP-ng, after some tests I wanted to give it a shot and use it on my servers.

the Situation:

  • one Citrix XenServer 7.2 pool
  • two hosts
  • 31 virtual machines
  • no shared storage 

prerequisites

the update

an update of the whole pool is pretty easy:

  • start with the poolmaster
    • stop the virtual machines on your host
  • boot the CD / ISO-Image
  • use “upgrade XenServer”
    • the installer will perform a backup of the old installation for you
  • reboot after the process is finished
  • use Xen Orchestra or XCP-ng Center to manage the upgraded poolmaster (normal XenCenter will not work anymore!)
    • start your virtual machines

Your pool is now partially upgraded, so you need to do the slave(s) as well.

  • stop the VMs
  • boot the CD / ISO-Image
  • use “upgrade XenServer”
    • the installer will perform a backup of your old installation for you
    • the installer will ask for the management interface and IP configuration – make sure to use the same config as the slave has normally
  • reboot after the process is finished
  • use Xen Orchestra or XCP-ng Center to manage the pool
    • start your virtual machines

the live-update without downtime

it is possible to update the pool without an downtime for the virtual machines, but they have to be on shared storage! during a pool-update, sadly – it’s not possible to move VMs between the nodes via “Xen Storage Motion”

Just use an additional computer with NFS, SMB, CIFS or iSCSI protocol (for example) and enough storage space to host your VM hard drives.

Add it as new SR to the pool and move everything on the new repository before upgrading. 

Now use the normal way:

  • start with the poolmaster
    • migrate the virtual machines to the slave
  • boot the CD / ISO-Image
  • use “upgrade XenServer”
    • the installer will perform a backup of your old installation for you
  • reboot after the process is finished
  • use Xen Orchestra or XCP-ng Center to manage the upgraded poolmaster (normal XenCenter will not work anymore!)

Your pool is now partially upgraded, so you need to do the slave as well.

  • migrate all VMs from the slave to the master
  • boot the CD / ISO-Image
  • use “upgrade XenServer”
    • the installer will perform a backup of your old installation for you
    • the installer will ask for the management interface and IP configuration – make sure to use the same config as the slave has normally
  • reboot after the process is finished
  • distribute all your machines like you want
  • if necessary, move the VMs back to local storage

the patching

congratulations, your pool should now be upgraded to XCP-ng, good job 🙂

there are two ways of patching an XCP-ng Pool – and they are ten times better than Citrix can offer.

via yum packet manager

a simple command will patch your host. the developers built a way to use yum – so it’s very easy patching a node. the host needs internet access, direct or via proxy doesn’t matter.

! Remember: start with the pool master!

# login as root to the machine
[root@sheldon ~]# yum update
# reboot the host after updates are finished
# do the same with the next host in pool

there is a special yum-repository included:

[root@sheldon ~]# cat /etc/yum.repos.d/xcp-ng.repo
[xcp-ng]
name=XCP-ng 7.4
baseurl=https://updates.xcp-ng.org/7.4/
enabled=1
gpgcheck=0

you can also mirror the whole repo to a host in your data centre and the servers don`t need direct internet access anymore.

via Xen orchestra

it is also possible to use xoa to patch the pool:

just install the updater-patch on all of your servers, it’s enough to do it one time after installing the system:

[root@sheldon ~]# yum install xcp-ng-updater

after that, you can patch the whole pool with one click:

  • use “Install pool patches” 
  • wait until its finished
  • reboot the master first
  • reboot the slave(s) afterwards

Hopefully, someone can use this howto and upgrades his XenServer pools 🙂

cheers, Ringo

 

This entry was posted in IT, XCP-ng and tagged , , , . Bookmark the permalink.

4 Responses to Update Citrix Xenserver to XCP-ng

  1. mrzoonatwork says:

    Hi – I’ve been involved in much the same process. I *do* have a nice new iSCSI box for shared storage, and the first few VMs I exported from our old XenServer 6.5 pool to our new XCP-ng 7.6 pool seemed to work fine, with a few minor tweaks. These were all Linux VMs. We are mostly a Windows shop, unfortunately, so for the last week or so I’ve been trying to export/import some minor Win VMs, with very mixed results:

    • One of my slave hosts is now called “the host where VMs go to die” – starting or moving a Windows VM to this host causes the VM to crash, and the host also bugs out, forcing me to go to the physical console and Reboot.

    • Every Windows VM I’ve tried to migrate so far has munged networking, and is basically unusable. They are using the same virtual MAC that they’ve had for years, and the “Network” is the correct one (I’m not trying to get on our SAN with main network settings), but they have no connectivity at all. I even tried forcing them to use all their old IPv4 settings static vs DHCP, and still not behaving.

    • Citrix guest tools (extracted from XS7.6) will install on Win7, but now sequential disk i/o is slower than without the PV drivers? xcp guest tools (beta) fare little better, hosing random disk i/o back to 6-7MB/sec. Citrix guest tools fail to install on Win 10. xcp guest tools (beta) do install on Win10, but XCP-ng Center still says that I need to “Install I/O drivers and Management Agent”, and if I look in Device Manager, there are no PV drivers anywhere.

    I have not tried XOA yet, but so far, I’m less than impressed with XCP-ng.

    Do you have Windows VMs that are working on XCP-ng, and if so, how did you do it?

    • vampire says:

      hey mrzoon 🙂 thanks for your comment – there was a bug earlier when you moved VMs from pool to pool – it ended in 100% cpu for the virtual machines and so you had to reboot them, but this is fixed now.

      I never had problems to migrate windows vms to be honest. I’ve just moved them and the normal xenserver guest tools are working fine. here is a nice description how to handle the xcp-ng guest utilities: https://github.com/xcp-ng/xcp/wiki/Guest-Tools#windows-guest-tools

      try xoa! it helps a lot to lower the amount of todos for your farms 🙂 post again if you still have problems with your windows vms and we can have a look together if you want.

  2. Martin says:

    Thank you – so what was the ‘neverending story’? After reading the headline, I expected you to run in a lot of trouble, but apparently everything went pretty smooth, no?

    • vampire says:

      haha no its only the headline for the whole blog 🙂 it was supposed to be for travel stories but now i will try to post everything of my it experiences 🙂

Leave a Reply