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.

Leave a Reply