Table of Contents

Xenserver Updates

:!: If you have Xen Orchestra: https://xen-orchestra.com/blog/xcp-ng-updates-from-xen-orchestra/

:!: If you have XCP-NG: https://github.com/xcp-ng/xcp/wiki/Upgrade-Howto

:!: Upgrade XenServer to XCP-NG: https://github.com/xcp-ng/xcp/wiki/Upgrade-from-XenServer

Download Updates: https://support.citrix.com/article/CTX138115

:!: The XenServer Dom0 disk space is limited and easy to fill up. You should clean out any unnecessary files before, during and after updates to keep from filling the disk. For example, on a large update like a Service Pack, you might want to just install the Service Pack, delete any unneeded files, then proceed with any other updates.

Updating VMs

:!: Updating VMs: https://docs.citrix.com/en-us/xenserver/7-1/vms/update.html

Do not install Citrix PV driver update at the same time as other Windows Updates!
Perform Citrix PV driver updates from the XenAdmin (XenCenter) VM console.

When updating a Windows VM:

  1. Install all other Windows Updates and reboot
  2. Then install Citrix PV driver update and reboot
  3. Finally, log into the Windows VM as the same (admin) user and initiate a second reboot

Show Installed Updates on a XenServer

xe patch-list |grep name-label |sort

xe update-list -s <server> -u root -pw <password> name-label=XS72E016

Install Updates

:!: As of XenServer 7.0, we use XenCenter to do the updates.

:!: Do not install XenServer 7.3 due to limitations, one of which is “Maximum Pool Size Restricted To 3 Hosts”.

XenServer 7.2

Manual Updates

wget --no-check-certificate --limit-rate=500k -O XSxxxxxxxxx.zip <URL>

for x in XS*.zip; do unzip $x; done

for x in *.xsupdate; do xe patch-upload file-name=$x; done

Then install the updates one at a time, in order, using the UUID's printed by the last command:

xe patch-pool-apply uuid=<uuid-of-update>

:!: You can use xe patch-list | more to show more patch details such as UUIDs, names and reboot recommendations.

Migrate any running VMs off of the Pool Master:

xe vm-migrate vm=<vm-name> host=<pool-member-host>

:!: If the pool is HA enabled, you will have to disable HA, reboot the pool master, then reboot the pool member servers one by one after the pool master comes back up. Finally, re-enable HA.

:!: Don't put the Pool Master in Maintenance Mode unless you want to designate another member server as Pool Master.

xe pool-ha-disable
xe pool-designate-new-master host-uuid=<UUID>
xe pool-ha-enable

Then restart XAPI or reboot the XenServer host as necessary:

xe-toolstack-restart

or

reboot

Multiple XenServers

For a single XenServer, the above commands would suffice when run from the commmand line of the XenServer.

To update multiple XenServers, you would download the updates once, then push them to multiple servers by running additional commands specifying server/user/password on the 'xe patch-upload' and 'xe patch-pool-apply' commands.

Patch Cleanup

First, we delete all the downloaded stuff (everything in /root):

cd ~
rm -rf *

Then, to clean patches pool-wide we run:

for i in `xe patch-list --minimal|tr "," " "`;do xe patch-pool-clean uuid=$i;done