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: https://docs.citrix.com/en-us/xenserver/7-1/vms/update.html
Windows Update tools
for PV drivers from Windows Updatexe vm-param-set uuid=<VM-UUID> has-vendor-device=true
When updating a Windows VM:
xe patch-list |grep name-label |sort xe update-list -s <server> -u root -pw <password> name-label=XS72E016
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”.
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
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.
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