XenServer Installation Guide

Release 5.0.0

Table of Contents

1. Introducing XenServer
1.1. About this document
1.2. How this Guide relates to other documentation
1.3. New Features in XenServer 5.0.0
1.3.1. New Guest Support
1.3.2. Business Continuity
1.3.3. Storage and Provisioning
1.3.4. Usability and Reliability
1.3.5. Performance and Hardware
2. System Requirements
2.1. XenServer host system requirements
2.2. XenCenter requirements
2.3. VM support
3. XenServer Licensing
4. Installing XenServer
4.1. Installing the XenServer host
4.2. Installing XenCenter
4.3. Installation and deployment scenarios
4.3.1. XenServer hosts with local storage
4.3.2. XenServer hosts with shared NFS storage
4.3.3. XenServer hosts with shared iSCSI storage
5. Updating, upgrading, or freshening XenServer
5.1. Preparing XenServer hosts for upgrade
5.2. Applying updates
5.2.1. Applying updates using the CLI
5.3. Reinstalling the same version
5.4. Rolling upgrade between major versions
5.4.1. Backup
5.4.2. Performing a rolling pool upgrade
5.5. Upgrading from version 3.2 to 4.0.1
5.6. Upgrading VHD files from version 4.0.1
5.7. Backing up and restoring XenServer hosts and VMs
5.7.1. Backing up Virtual Machine metadata
5.7.2. Backing up XenServer hosts
5.7.3. Backing up VMs
A. Troubleshooting
B. PXE installation of XenServer host
B.1. Setting up the PXE boot environment
B.2. Creating an answerfile for unattended PXE installation
B.3. Installation media repository format
B.3.1. Presence of installation media repositories
B.3.2. Installation media repository metadata
B.3.3. Package metadata
B.3.4. Example files
B.3.5. Notes on best practice
C. Xen Memory Usage
C.1. Setting Control Domain Memory
Index

Thank you for choosing XenServer™ from Citrix Systems, Inc., the creators of the Xen® hypervisor and leaders of the open source Xen project.

This release of XenServer contains the following major new features. For a detailed list, please refer to the XenServer 5.0.0 Release Notes. XenServer 5.0.0 includes a number of new features and ongoing improvements in hardware support, performance and scalability.

XenServer supports several features to guarantee service uptime in the event of infrastructure failure. Firstly, resource pools can be configured for automated high-availability. This deals with individual host failures by restarting VMs that were running on that host onto the next available machine in the resource pool. Notable features include:

Integrated disaster recovery to enable regular backups of virtual machine metadata. When combined with SAN storage replication, this provides a fast way to migrate entire resource pools to another physical site and continue running services with little interruption. It also permits the use of storage repositories which include all of the metadata for VMs installed on them, permitting a "transportable VM" model across resource pools.

Fibre Channel and iSCSI multipath support, configurable from the XenCenter GUI. This ensures that redundant storage links to an FC SAN or ISCSI SR permit link failures without loss of service.

Improved network reliability by support active/active NIC aggregation. Existing active/passive NIC bonds on older installations will be upgraded to aggregation mode for active/active usage, permitting full use of all available bandwidth while still maintaining redundant links.

Multiple management network interfaces can be defined in the control domain, and individual ones can be dedicated for use by network storage (e.g. iSCSI or NFS). This helps improve isolation between VMs and storage infrastructure traffic.

One of the most common reasons for system failure is operator error through misconfiguration. XenServer now provides e-mail and XenCenter alerting for potentially dangerous configurations, for example when VM performance will be degraded or a resource pool is overcommitted with respect to high availability.

Performance statistics are now persisted in a round-robin database on the XenServer pool, with decreasing granularity as time passes. This enables long-term trending and resource optimization for complex data centre deployments.

The XenCenter GUI supports connecting to both 4.1 and 5.0.0 hosts, and has several new features:

Enhanced support for keeping hosts up to date with the latest improvements:

A menu-driven text console is now present when connecting to the main screen of the XenServer host. This new interface provides an alternative to XenCenter for common operations, or when networking is not otherwise available. The boot process is also much more user-friendly now, with a graphical splash screen and progress indicator.

XenServer requires at least two separate physical x86 computers: one to be the XenServer host, and the other to run the XenCenter application. The XenServer host machine is dedicated entirely to the task of hosting VMs and is not used for other applications. The computer that runs XenCenter can be any general-purpose Windows computer that satisfies the hardware requirements, and can be used to run other applications simultaneously.

The XenServer host is a 64-bit x86 server-class machine devoted to hosting multiple VMs. This machine runs a stripped-down Linux operating system with a Xen-enabled kernel which controls the interaction between the virtualized devices seen by VMs and the physical hardware.

The following are the system requirements for the XenServer host:

When XenServer 5.0.0 is first installed, the product is enabled with the XenServer Express Edition feature set by default. This feature set enables basic XenServer capabilities, such as single server management through XenCenter and support for up to four concurrently running virtual machines. However, to enable the more advanced capabilities found in XenServer Standard, Enterprise, and Platinum Editions, a corresponding license key-in the form of a license file-must be installed on each XenServer host system.

The XenServer license key is provided in the form of a license file with the .xslic extension. This unique file will be issued to your organization by Citrix and can be installed on a XenServer host system in a number of different ways including:

Q: The XenServer (annual, not-for-resale, trial) license has expired. What is going to happen?
Q: The license file from a previous version of XenServer does not work with XenServer 5.0.0
Q: This XenServer 4.0.1 license file has a .txt extension, but the product licensing instructions reference a license file with the .xslic extension. Does this mean that the XenServer 4.0 license is incompatible?
Q: Is there a way to manually install a XenServer license file without using XenCenter?

Q:

The XenServer (annual, not-for-resale, trial) license has expired. What is going to happen?

A:

Upon license expiration, a XenServer host reverts back to the XenServer Express Edition feature set. If the license on a XenServer host expires while the system is still running, all active virtual machines continue to run as long as the host system is not disrupted. However, new VMs cannot be launched. If the host system is disrupted (through a power failure, system restart, and so on), XenServer reverts to Express Edition-level functionality upon restart.

Note

Citrix strongly encourages customers who opt for the XenServer annual license to renew their new annual license before the expiration date to ensure the greatest degree of continuity. XenCenter and e-mail alerts will be generated daily from 30 days before the license is due to expire, to give you enough notice to upgrade.

Q:

The license file from a previous version of XenServer does not work with XenServer 5.0.0

A:

All license files from XenServer 3.x are incompatible with XenServer 5.0.0. XenServer 3.x customers under valid software maintenance or Subscription Advantage agreements will receive a valid XenServer 4.x license file from Citrix and these newly issued license files should be used in conjunction with XenServer 5.0.0.

XenServer 4.0.1 and 4.1.0 license files are forward-compatible with XenServer 5.0.0.

Q:

This XenServer 4.0.1 license file has a .txt extension, but the product licensing instructions reference a license file with the .xslic extension. Does this mean that the XenServer 4.0 license is incompatible?

A:

No. In general, XenServer 4.0 license files are forward-compatible with XenServer 5.0.0 and as a result XenCenter can import valid XenServer 4.x license files of any extension. For some administrators, it may be easier to rename an older XenServer 4.0 license key with a .txt extension to a file with the .xslic extension prior to applying the license file in XenCenter.

Q:

Is there a way to manually install a XenServer license file without using XenCenter?

A:

Yes. First, license files may be manually installed using the xe CLI. The host-license-add command allows a local license file to be installed on a particular XenServer host. For more information about using xe, refer to the XenServer Administrator's Guide. Additionally, you can use Secure Copy (SCP) to upload a license file from a system where the license file resides to a XenServer host. The target path on the XenServer host system must be /etc/xensource/license. Citrix strongly recommends using SCP to apply a license file only as a last resort, such as when the XenCenter console or xe CLI are unavailable.

Any XenServer network, from the simplest to the most complex deployment, is made up of one or more XenServer hosts, each running some number of VMs, and one or more workstations running XenCenter to administer the XenServer hosts.

In order to create resource pools and enable XenMotion (live migration of VMs), a means of shared storage also needs to be deployed on the network. This version of the XenServer product family supports Fibre Channel, NetApp filers, LVM over iSCSI, and NFS shared storage.

This chapter describes installing XenServer host software on physical servers, installing XenCenter on Windows workstations, and connecting them to form the infrastructure for a network of Virtual Machines.

The first sections describe the installation of XenServer host and XenCenter, which are common to all deployments. The following sections describe several common installation and deployment scenarios and provide information that is specific to each scenario.

Installers for both the XenServer host and XenCenter are on the installation media. The installation media also includes:

The XenServer host consists of a Xen-enabled Linux operating system, a management agent, VM templates, and a local storage repository reserved for VMs. The XenServer host must be installed on a dedicated 64-bit x86 server. XenServer is not supported in a dual-boot configuration with any other operating system.

You can install the XenServer host from the installation CDs or set up a network-accessible TFTP server to boot from via PXE. For details about setting up a TFTP server for PXE-booting the installer, see Appendix B, PXE installation of XenServer host.

Note

Do not install any other operating system in a dual-boot configuration with the XenServer host; this is an unsupported configuration.

The main installation CD contains the basic packages to set up the XenServer host on a physical host, and to create Windows VMs by using the Windows installation CDs. The XenServer package also contains a separate CD containing support for creating Linux VMs (including complete built-in distributions of Debian Sarge and Etch), and six CDs containing source code for the included open-source software.

The installer has an upgrade choice if it is run on a server that already has a previous version of XenServer on it. It parallels the first-time installation process but several setup steps are bypassed, and the existing settings for networking configuration, system time setting, etc. will be retained.

If you only want to create Windows VMs, you can install XenServer using just the first CD. If you want to install Linux VMs, be sure to

  1. Download the Linux Pack ISO
  2. Burn it to a physical CD if installing from a DVD/CD drive, or set it up for PXE installation as described in Appendix B, PXE installation of XenServer host

Note

If, after installing XenServer without Linux support, you decide later to add it, mount the Linux Pack installation CD or ISO image on the XenServer host and run the script install.sh, located in the root of the CD.

To install or upgrade the XenServer host

Warning

If you are performing an upgrade, please ensure you do not have any suspended virtual machines as these may not be resumable after the upgrade. Please ensure that all CD drives of virtual machines have been ejected and are empty.

  1. Boot the computer from the main installation CD, or PXE-boot from your TFTP server if applicable (see Appendix B, PXE installation of XenServer host for details on how to set up the XenServer media for PXE installation).
  2. After the initial boot messages, the installer does some hardware detection and initialization, then presents a screen asking you to select which keyboard keymap you want to use for the installation. In this and the screens that follow, use Tab or Alt+Tab to move between elements, Space to select, and F12 to move to the next screen.Select the desired keymap and choose OK to proceed.
  3. Next, the "Welcome to XenServer" screen appears. Select Install or upgrade XenServer host and choose OK to proceed.
  4. The next screen displays a message telling you that the setup program will install XenServer on the computer, and warns that it will overwrite data on any hard drives that you select to use for the installation. Choose OK to proceed.
  5. The XenServer End User License Agreement (EULA) is displayed. Use the up and down arrow keys to scroll through and read the agreement. Choose Accept EULA to proceed.
  6. At this point, if the computer on which you are installing the XenServer host does not have a CPU which supports hardware virtualization, or if the support is disabled in the BIOS, a message appears to warn you that you will not be able to run Windows VMs. Choose OK to proceed.Note that some systems have bugs in their BIOS software which can result in the setting being incorrect. If you get a spurious warning about a lack of hardware virtualization (or do not see a warning when you expected one), then perform a hard power cycle of the host and restart the installation. You should also check the hardware manufacturer's support site for BIOS upgrades.
  7. If the installer detects a previously-installed version of XenServer host, you are offered the choice to perform a clean installation, or to upgrade the existing version, which preserves any of the VMs present. Choose an installation type as appropriate and select OK to proceed.If you select to upgrade an existing version, you will get a message that the installer is going to create a backup of the existing installation. Select Continue to proceed.
  8. If you have multiple local hard disks, you are asked to choose the Primary Disk for the installation. Select the desired disk and choose OK to proceed. After selecting the primary one, you are also prompted to choose if you want any of the other drives to be formatted for use by XenServer for VM storage. Select and choose OK to proceed.If the computer has a single hard disk, these two screens do not appear.
  9. The next screen asks you to specify the source of the installation packages. If you are installing off the CD, you will most likely want to select Local media (CD-ROM). If you are installing via PXE you will most likely want to select HTTP or FTP or NFS, as appropriate.If you select HTTP or FTP or NFS, you are next prompted to set up Networking so that the installation script can connect to the product repository.If the computer has multiple network interfaces, you are prompted to select one of them to be used to access the XenServer product repository. Select and choose OK to proceed.If the computer has a single network interface, that interface is used to access the XenServer product repository and no prompt is displayed.You can select Automatic configuration (DHCP) to configure the NIC using DHCP, or Static configuration, which prompts you to configure the NIC's properties manually. Following that, you are prompted to provide the URL or NFS server and path where the installation media are, as appropriate.

    Note

    To be part of a resource pool, XenServer hosts need to have static IP addresses.

    If you selected Local media, this networking setup appears later in the installation process.If you selected Local media, the next screen asks if you want to install the Linux Pack from a second CD. If you are planning to install VMs that will run Linux operating systems, choose Yes. If you are planning to install only Windows VMs, you can choose No.

    Important

    In a pooled setup, the Linux Pack must be installed either on all of the pool XenServer hosts, or on none of them, so that they are homogeneous.

  10. The next screen asks if you want to verify the integrity of the installation media. If you select Verify installation source, the MD5 checksum of the packages is calculated and checked against the known value. This may take some time. If you select Skip verification, this check is bypassed. Make your selection and choose OK to proceed.
  11. You are next prompted to set a root password. (This will be the password that the XenCenter application will use to connect to the XenServer host.) Type the desired password and type it again to verify it.
  12. If you selected to perform a clean installation, you are next prompted to set up Networking for the management NIC, which is the interface that will be used to connect to the XenCenter.If you selected to upgrade an existing installation, the existing management NIC configuration is used and these screens are bypassed.If the computer has multiple network interfaces, you are prompted to select one of them to be used as the management NIC for the XenServer host software. Select one and choose OK to proceed.If the computer has a single network interface, that interface is used as the management NIC and no prompt is displayed.Next you can select Automatic configuration (DHCP) to configure the NIC using DHCP, or Static configuration, which prompts you to configure the NIC's properties manually.

    Note

    To be part of a resource pool, XenServer hosts need to have static IP addresses.

  13. If you selected to perform a clean installation, you are next prompted to specify the hostname and the configuration for the name service.If you selected to upgrade an existing installation, the existing hostname and name service configuration is used and these screens are bypassed.In the Hostname Configuration section, if you select Automatically set via DHCP, the DHCP server will provide the hostname along with the IP address. If you select Manually specify, enter the desired hostname for the server in the field below.In the DNS Configuration section, if you select Manually specify, enter the IP addresses of your primary (required), secondary (optional), and tertiary (optional) Nameservers in the fields below. Otherwise, select Automatically set up via DHCP to get name service configuration via DHCP.Select OK to proceed.
  14. If you selected to perform a clean installation, you are prompted to select the general geographical area for the Time Zone. Choose from the displayed list of geographical areas, then choose OK to proceed. You are then prompted to select the specific locale for the Time Zone. (Note that this list is long, but if you type the first letter of the desired locale, the selection will jump to the first entry that begins with this letter.) Choose from the displayed list of locales, then choose OK to proceed.If you selected to upgrade an existing installation, the existing time zone and locale is used and these screens are bypassed.
  15. If you selected to perform a clean installation, you are prompted to choose a method of setting the System Time. You can select Using NTP or Manual time entry. Make your selection and choose OK to proceed.If you selected to upgrade an existing installation, the existing method of setting system time is used and this screens is bypassed.
  16. If you selected Using NTP in the preceding step, you are prompted to identify the time server or servers you want to use. You can check NTP is configured by my DHCP server and the time server will be set by DHCP. Otherwise, enter at least one NTP server name or IP address in the fields below. Choose OK to proceed.Otherwise, the installation script moves to the next step; you will be prompted for the manually-entered time later, near the end of the installation.

    Warning

    Currently XenServer assumes that the time setting for the server's BIOS is the current time in UTC, and that the time for the VMs reflects the local time based on the time zone offset specified.

  17. A message is displayed that the installation is ready to proceed and that this will format the primary disk and any other disks selected for VM storage, destroying any data that is currently on them. Select Install XenServer to proceed.A progress bar is displayed as the installation commences. If you chose to set the system date and time manually, a dialog box appears when the progress bar has reached about 90%. Enter the correct numbers in the fields and select OK to proceed.
  18. If you are installing from CD and selected to include support for Linux VMs, you will be prompted to put in the Linux Pack disk. Eject the main disk, put in the Linux Pack disk, and close the CD drawer. Select OK. A screen appears, identifying that this disk contains the Linux Pack. Select Use media to proceed with installing it. Another progress bar is displayed, and when it reaches 100%, a completion message is displayed.If you selected not to install support for Linux VMs, a completion message is displayed.

    Note

    If you decide later to add Linux support, mount the Linux Pack installation CD or ISO image on the XenServer host and run the script install.sh, located in the root of the CD.

  19. Select Reboot. After the splash screen, XenServer displays xsconsole, a convenient system configuration console.

XenCenter is a Windows client application. XenCenter must be installed on a remote machine that can connect to the XenServer host through the network; it cannot run on the same machine as the XenServer host. It can be installed and run on Windows 2003, XP SP2, or Vista. The .NET framework version 2.0 or above must be installed as well.

To install XenCenter

  1. Before installing XenCenter, be sure to uninstall the previous version if one exists.
  2. Put the Base Pack CD in the drive or browse to the location where you downloaded the installation file XenCenter.msi.
  3. If installing from CD:
    • If Auto-play is enabled for the CD drive, the application installer launches automatically after a few moments.
    • If Auto-play is not enabled for the CD drive, browse to the /client_install directory on the CD and find the file named XenCenter.msi. Then double-click on the file to launch the application installer.
    If installing from the installation file XenCenter.msi, double-click on the file to launch the application installer.
  4. Click next on the first page of the setup wizard. On the Custom Setup page, XenCenter 4.1.0 is shown as a subfeature of XenCenter 5.0.0. If you have any XenServer 4.0 hosts that you want to manage, select it by clicking and choosing Will be installed on local hard drive or Entire feature will be installed on local hard drive. In this case, a separate XenCenter 4.1.0 will also be installed on your computer.If you do not have any XenServer 4.0 hosts that you want to manage, leave this subfeature unselected.Click Next to proceed.
  5. The next page allows you to modify the default destination folder (C:\Program Files\Citrix\XenCenter). Click Browse to change the default installation location, if desired. You can also select whether XenCenter is installed so that every user of the computer can access it, or only the user logged into the current profile. Click Next to proceed.
  6. In the next page, click Install to proceed.When complete, there will be a XenCenter icon on the desktop and a XenCenter item on the All Programs list.

    Note

    The installer will only create a single desktop icon, for XenCenter 5.0.0. XenCenter 4.1.0 appears in the All Programs list on the Start menu

  7. When the installation process is complete, click Finish to close the Setup wizard. There will be a XenCenter icon on the desktop and a XenCenter item on the All Programs list.

Should you need to, XenCenter can be uninstalled from a system quite easily.

This section describes several common installation and deployment scenarios:

and details the steps that differ between scenarios.

Adding shared storage to the XenServer network enables grouping of XenServer hosts into resource pools, enabling live relocation of VMs and sharing of server resources.

For this procedure, a server running a typical Linux distribution is assumed as the NFS server. Consult your Linux distribution documentation for further information.

Adding shared storage to the XenServer network enables grouping of XenServer hosts into resource pools, enabling live relocation of VMs and sharing of server resources.

The details of how to set up iSCSI storage differ between the various iSCSI solutions on the market. In general, though, you need to provide an iSCSI target on the SAN for the VM storage, and then configure XenServer hosts to be able to see and connect to it. This is done by providing a valid iSCSI Qualified Name (IQN) to the iSCSI target and to the iSCSCI initiator on each XenServer host.

You can use either XenCenter or the CLI to configure the IQN for each XenServer host and to create the SR. The following describes using the CLI; see the XenServer Help for details on using XenCenter.

This chapter documents how to update (apply minor update patches), upgrade from an earlier version, or freshen (reinstall the same version) your XenServer installation.

Before performing maintenance operations on a XenServer host that is part of a resource pool, you should disable it (which prevents any VMs from being started on it), then migrate its VMs to another XenServer host in the pool. This can most readily be accomplished by placing the XenServer host into Maintenance Mode using XenCenter. See the XenCenter Help for details.

Before performing maintenance operations on a XenServer host that is not part of a resource pool, you should disable it (which prevents any VMs from being started on it), then either shutdown or suspend its VMs.

Between releases of XenServer software, Citrix occasionally releases updates to the software. These updates typically contain accumulated bug fixes and feature improvements. When an update is released, it is made accessible on the Internet and an email announcement is sent to all XenServer customers.

Once downloaded, updates can be applied most readily via XenCenter, but can also be applied using the CLI. Updates are applied through the Manage Updates dialog box, under the pool menu. See the XenCenter Help for details.

Updates sometimes have special steps that have to be performed after the update is applied, such as requiring the XenAPI agent to be restarted. Whenever possible, updates will be such that they can be applied without interruption, but in some cases they might require XenServer host or VM restarts to be performed. In cases where a XenServer host restart is required, you can avoid downtime of virtual machines in a pooled environment by applying the update to each server in turn, migrating VMs away from each server in turn as the update is applied. XenCenter can take care of this update sequence automatically on your behalf via the Manage Updates feature. If you are using the CLI, you will have to do this manually using the host-evacuate command.

If using the CLI to perform the update, XenServer hosts to be updated should be prepared for this operation by the procedures in Section 5.1, “Preparing XenServer hosts for upgrade”. If using XenCenter, this will be taken care of automatically where required.

First, the update must be uploaded to the pool or server to which it will be applied. This will cause a UUID (identifier) to be assigned to the update, and information about which servers it has been applied to will be tracked. Once an update has been uploaded to a pool or server, you can use the patch-list and patch-param-list commands to view information about the update. The second stage is to apply the update. We recommend that the patch-pool-apply command be used to do this; this will result in the update being applied on all servers in the pool. Alternatively, the patch-apply command may be used to apply the update to one server in a pool - this may be useful when applying the update and then restarting individual servers in the pool. Pools should not be left in an inconsistent update state (one where updates have been installed on some servers and not others).

Discussion of procedures using the CLI below assume a basic knowledge of the usage of the xe tool. For information about this, please see the Administrator's Guide.

The update procedure is essentially the same for both a single server and pool scenario, except that in a pooled scenario you must ensure that the update is applied to all servers in the pool. This will be achieved either by using the patch-pool-apply command, or by executing the patch-apply once for each host. These are described below.

To apply an update to a XenServer host or XenServer host pool using the CLI

  1. Download the update to a local directory. Note the path to the update file you have downloaded. (It is also possible to download the update directly to an appropriate location on the server, e.g. /root, using standard Linux commands, but it is usually best to download it to a remote client.)
  2. Upload the update to your server or pool. An example CLI command to do this might be:
    xe -s my_server -u root -pw root_password patch-upload \
    file-name=update_file b89249c7-feba-41c5-8838-911ded969add
    Here, the -s -u, and -pw options refer to the server, the username (which would usually be root), and the password, as usual - these would be omitted if running the command directly from the XenServer host console.Once you have executed the above command, you will be given the UUID of the uploaded update. This UUID will be used to specify the update that is to be applied.
  3. Be sure to follow any guidance regarding the update before continuing, in particular any information provided about whether VMs should be moved away from the server or that the server should be restarted after applying the update. As always, we recommend taking appropriate backup measures before making modifications to system software. To automatically move VMs to other servers, you can make use of the host-evacuate CLI command.
  4. Apply the update to the pool. A command like the following may be used to do this:
    xe patch-pool-apply uuid=b89249c7-feba-41c5-8838-911ded969add
    This will apply the update to all servers in the pool. Alternatively, if you need to restart servers and perform the update in a rolling manner, you can apply the update to an individual server by running a command like the following:
    xe patch-apply host-uuid=ebf17583-d8c5-4835-999a-e0a29716207d \
    uuid=b89249c7-feba-41c5-8838-911ded969add
  5. Verify that the update was applied by using the patch-list command again. Now the hosts field should contain the host UUID.

After an update is applied to a XenServer host, a small file containing the same information stored on the master from the xe patch-upload command is written to a subdirectory of the machine's patch directory. This enables XenServer hosts later ejected from the pool to repopulate their databases with information about updates already applied.

To save space on the master, large updates can be deleted from disk using the xe patch-clean command. (The update information stored in the master's database, though, is always retained.) These updates can be uploaded again using xe patch-upload if required.

XenServer allows you to upgrade a pool of XenServer hosts to the next major version, while keeping VMs on that pool running and thus avoiding downtime of your services. This is achieved by upgrading on a host-by-host basis, with only one XenServer host offline at a time.

Rolling upgrade is supported from:

You can use XenCenter or the command line interface to migrate VMs running on a XenServer host running an older version of the product to one running either the same version or higher. It is not possible to migrate VMs located on a XenServer host with a newer XenServer version to one running an older version.

You should plan your upgrade path carefully, as we strongly advise against running a mixed-mode pool (one with multiple versions of XenServer co-existing) for longer than necessary. This is because the pool will be operating in a degraded state during the upgrade: all VMs will continue to function as normal, but control operations other than migration might not be available. In particular, it is not safe to perform storage-related operations such as adding, removing or resizing virtual disks in this mode.

The correct sequence for upgrading a pool of XenServer installations to a newer version is as follows:

  1. Eject any CDs from your Virtual Machines before starting the rolling upgrade. Having CDs inserted during rolling upgrade can prevent migrations from working correctly, and due to the mode of operation of the pool while the rolling upgrade is taking place, it is required that this be done before the rolling upgrade is started.
  2. Upgrade your XenCenter to the latest version. The newer version will continue to operate fine against older versions of XenServer hosts.
  3. Verify that there are no VMs in the Suspended state. This is indicated in XenCenter by a blue paused icon. Any suspended VM with a CD drive attached (with the Tools ISO or a physical CD in the local physical drive, for example) cannot be resumed after performing an upgrade. To get a suspended VM back into a usable state, you have to perform a "Force Shutdown" on it and then restart it.
  4. Migrate all VMs running on the pool master to other XenServer hosts using XenMotion. The pool master is identified in XenCenter as being the topmost server in the pool, and shows Server type: Master in the General tab when selected.
  5. Shut down the pool master using XenCenter or the command line interface. This will cause your pool to enter emergency mode. VMs will continue to run, but you will be unable to perform control operations. This is expected behavior.
  6. Boot the pool master using your XenServer installation media or network and follow the instructions for doing an upgrade (see Chapter 4, Installing XenServer).
  7. On restarting your pool master, after a few minutes your pool will leave emergency mode and normal service will be restored.
  8. You are now ready to upgrade a second XenServer host. You should select a XenServer host still running an old version of XenServer and migrate the VMs running on this XenServer host to the one you have just upgraded. Do not attempt to migrate a VM from an upgraded XenServer host to one that has not yet been upgraded. You will see an error message if you attempt to do this, and your VM will continue running without being migrated.
  9. Upgrade the member XenServer host you have just freed up following a similar procedure as for the master; shut down the member using XenCenter or the command line interface (your pool will not enter emergency mode this time), then upgrade the server software using your product media or remote installation repository.
  10. Repeat the previous two steps for each member XenServer host in the pool.
  11. Now that you have upgraded the XenServer host software on your pool, it is important to upgrade the Citrix Tools for Virtual Machines on each VM. This will enable new functionality and ensure the stability of your VMs. Running old versions of Citrix Tools for Virtual Machines on newer XenServer installations is not a supported configuration except for during the upgrade process. Please refer to the XenCenter Help, or the XenServer Virtual Machine Installation Guide for details on how to perform the upgrade of Citrix Tools for Virtual Machines for Windows and Linux VMs.

Note

In the unlikely event that a host fails (hardware failure, for example) during the rolling upgrade process, it is necessary to use the xe host-forget command to forget the host. Failure to do so will result in XenServer remaining stuck in rolling upgrade mode indefinitely.

The following procedure describes how to install the current version of the XenServer host over an existing installation of XenServer host 3.2.0.

When upgrading from version 3.2.0 to the current version, be aware of the following:

Note that there is no direct upgrade path to the current version from 3.2. You must first upgrade to 4.0.1, and then proceed to the next version. This will ensure that your VMs are preserved correctly.

The EXT and NFS storage repository types store data in the Microsoft Virtual Hard Disk (VHD) format under the 4.0.1 version of XenServer that has a free space bitmap written in with the wrong byte order. Version 4.1 and higher provides an upgrade utility vhd-update, located in /usr/sbin/.

Whilst it is not necessary to use this tool under XenServer, you may need to run it in order to safely interchange your Version 4.0.1 VHD files with a third party tool that uses the VHD format. If you wish to use this utility, you should ensure that the VHD files are not being used while you are working with them, and that all the relevant VHD files are upgraded (such as the parent VHD of a snapshot). Working with this tool should be considered an advanced operation, so appropriate backup measures should be taken.

The command

vhd-update -f <filename>

copies all bitmaps in filename to filename.journal, then writes all bitmaps, transformed appropriately, from filename.journal to filename, and finally deletes filename.journal.

If the update is interrupted for any reason, it can be resumed by running:

vhd-update -f <filename> -j <filename>.journal

This will validate the specified journal file, then proceed to transform the bitmaps and rewrite filename.

There is also a rollback operation

vhd-update -f <filename> -j <filename>.journal -r

which will write the bitmaps from filename.journal to filename without transforming them (this is probably only useful for testing and debugging).

We recommend that, whenever possible, you leave the installed state of XenServer hosts unaltered. That is, do not install any additional packages or start additional services on XenServer hosts, and treat them as if they are appliances. The best way to restore, then, is to re-install XenServer host software from the installation media. If you have multiple XenServer hosts, the best approach is to configure a PXE boot server and appropriate answerfiles for this purpose (see Appendix B, PXE installation of XenServer host).

For VMs, the best approach is to install backup agents on them, just as if they were standard physical servers. For Windows VMs, as of this release we have tested CA BrightStor ARCserve Backup, and Symantec NetBackup and Backup Exec.

For more information about backup tools tested, best practices, and backups in general, see the Citrix Knowledge Base.

XenServer hosts use a per-host database to store metadata about VMs and associated resources such as storage and networking. When combined with storage repositories, this database forms the complete view of all VMs available across the pool. Thus, it is important to understand how to backup this database in order to recover from physical hardware failure and other disaster scenarios.

This section first describes how to backup metadata for single-host installations, and then for more complex pool setups.

The CLI must be used to backup the pool database. To obtain a consistent pool metadata backup file, run xe pool-dump-database against the XenServer host and archive the resulting file. The backup file will contain sensitive authentication information about the pool, so ensure it is securely stored.

To restore the pool database, use the xe pool-restore-database from a previous dump file. If your XenServer host has died completely, then you must first do a fresh install, and then run the xe pool-restore-database command against the freshly installed XenServer host.

After a restoration of the pool database, some VMs may still be registered as being “suspended”, but if the storage repository with their suspended memory state (defined in the suspend-VDI-uuid field) was a local SR, it will no longer be available since the host has been reinstalled. To reset these VMs back to the halted state so that they can be started up again, use the xe vm-shutdown vm=vm_name -force command, or use the xe vm-reset-powerstate vm=vm_name -force command.

Note that XenServer hosts restored using this method will have their UUIDs preserved. Thus, if you restore to a different physical machine while the original XenServer host is still running, there will be a UUID clash. The main observable effect of this clash will be that XenCenter will refuse to connect to the second XenServer host. Pool database backup is not the recommended mechanism for cloning physical hosts; you should use the automated installation support for that (see Appendix B, PXE installation of XenServer host).

This section describes the XenServer host control domain backup and restore procedures. These procedures do not back up the storage repositories that house the VMs, but only the privileged control domain that runs Xen and the XenServer agent.

Note that since the privileged control domain is best left as installed, without customizing it with other packages, we recommend you set up a PXE boot environment to cleanly perform a fresh installation from the XenServer media as a recovery strategy. In many cases you will not need to backup the control domain at all, but just save the pool metadata (see Section 5.7.1, “Backing up Virtual Machine metadata”). This backup method should always be considered complementary to backing up the pool metadata.

Another approach is to run the XenServer installation twice, selecting to back up the existing installation when prompted. This will create a pristine copy of the freshly-installed control domain that can later be restored if necessary by using the installation CD and choosing the Restore option.

Using the xe commands host-backup and host-restore is another approach that you can take. The xe host-backup command archives the active partition to a file you specify, and the xe host-restore command extracts an archive created by xe host-backup over the host's currently inactive disk partition. This partition can then be made active by booting off the installation CD and choosing the Restore option.

After completing the above steps and rebooting the host, you must ensure that the VM meta-data is restored to a consistent state. This can be achieved by running xe pool-restore-database on /var/backup/pool-database-${DATE}. This file is created by xe host-backup using xe pool-dump-database prior to archiving the running filesystem, in order to snapshot a consistent state of the VM metadata.

If you experience odd behavior, crashes, or have other issues during installation, this chapter is meant to help you solve the problem if possible and, failing that, describes where logs are located and other information that can help your Citrix Solution Provider and Citrix track and resolve the issue.

Citrix provides two forms of support: you can receive free self-help support via the Support site, or you may purchase our Support Services and directly submit requests by filing an online Support Case. Our free web-based resources include product documentation, a Knowledge Base, and discussion forums.

The XenServer host installation CD runs Linux, so most standard Linux commands can be used to diagnose installation problems. There are three virtual terminals available during installation, which display the installation menu, an interactive console and an event log, respectively. Use the ALT + F1-F3 keys to toggle between the virtual terminals.

You can check some basic things in the interactive terminal:

  • fdisk lists all disks that can be seen as a result of the loaded storage device drivers. If a particular device driver did not load, for example, the driver for a RAID card, then the disks attached to that card will not appear in the output from the fdisk command.
  • ifconfig shows the network configuration of physical NICs, including their IP addresses, netmasks, and gateway.
  • ping can be used to verify network connectivity from the XenServer host to a remote IP address and vice-versa.

You should use the two additional virtual terminals solely under the guidance of your Citrix Solution Provider.

Installation logs are written to /install/tmp/

This appendix describes setting up a TFTP server to enable PXE booting of XenServer host installations. It also describes the use of an XML answerfile, which allows you to perform unattended installations.

To create a PXE environment, you need:

These can all co-exist on the same server, or be distributed on different servers on the network.

Additionally, each system that you want to PXE boot and install the XenServer on needs a PXE boot-enabled Ethernet card.

The following steps assume that the Linux server or servers you will use have RPM support.

To set up a TFTP server for PXE booting

  1. TFTP requires SYSLINUX 3.11 or above. SYSLINUX is a collection of boot loaders for the Linux operating system which operates on Linux EXT2/EXT3 file systems, MS-DOS FAT file systems, network servers using PXE firmware, and CD-ROMs. Make sure you have SYSLINUX version 3.11 or above installed on your system with the command
    #rpm -q syslinux
    If you have an earlier version, you can download an appropriate later version from ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/RPMS/i386/, then install it using the command
    #rpm -Uvh syslinux.-.rpm
  2. Check if the tftp server package is installed:
    #rpm -q tftp-server
    If not, use system-config-packages and install.
  3. Edit the file /etc/xinetd.d/tftp to change the line
    disable = yes
    to
    disable = no
  4. Restart the xinetd service, which manages tftp:
    # service xinetd restart
  5. Make a directory inside /tftpboot called xenserver.
  6. Copy the files mboot.c32 and pxelinux.0 from /usr/lib/syslinux to the /tftboot directory.
  7. Copy the files install.img, vmlinuz, and xen.gz from the Base Pack CD (found in the root of the Base Pack CD, and in its /boot directory respectively), and place them in /tftpboot/xenserver.
  8. Make a directory called pxelinux.cfg inside /tftboot and create a file named default. The file contents depend on how you want to configure your PXE boot environment. For example, you might have a configuration file like the following:

    Note

    The backslashes at the ends of lines in the example PXE configuration files shown below denote continuation of lines; do not actually include them in your PXE configuration file.

    Also note that the three hyphens in the examples are necessary parts of the mboot.c32 loader syntax, and not including them will cause PXE boot attempts to fail.

    default xenserver
    label xenserver
       kernel mboot.c32
       append path/to/boot/directory/xen.gz dom0_mem=752M com1=115200,8n1i \
          console=com1,tty --- path/to/boot/directory/vmlinuz \
          console=ttyS0,115200n8 console=tty0 \
    	  --- path/to/boot/directory/install.img
    (where path/to/boot/directory is the directory where you copied install.img, vmlinuz, and xen.gz files in the previous step). This will start an installation on any machine that boots from this server. Someone would then need to manually respond to the prompts to complete the installation. Alternatively, you might have a configuration file like the following:
    default xenserver-auto
    label xenserver-auto
       kernel mboot.c32
       append path/to/boot/directory/xen.gz dom0_mem=752M com1=115200,8n1 \
          console=com1,tty --- path/to/boot/directory/vmlinuz \
          console=ttyS0,115200n8 console=tty0 \
          answerfile=http://pxehost.example.com/4.1.0-answerfile \
          install --- path/to/boot/directory/install.img
    This will perform an unattended installation using the answerfile at the URL specified.

    Note

    The above examples show how to configure the installer to run on the physical console, tty0. It is recommended that you place the console= entry of the console you wish to use for the installation as the last entry on the line, so if you wanted to install over serial then, in the examples above, the two entries would be reversed, as console=tty0 console=ttyS0,115200n8

    For details on creating an answerfile for unattended installation, see
    Section B.2, “Creating an answerfile for unattended PXE installation”. For more information on PXE configuration file syntax, see the SYSLINUX website.

Please refer to your server operating system manual for details for your specific operating system. The information here is a guide that can be used for Red Hat, Fedora, and some other RPM-based distributions.

To set up a DHCP server

  1. On the server that you will be using for DHCP, check if you have DHCP installed by issuing the command
    rpm -qa dhcp
    If not, install using system-config-packages.
  2. Configure the dhcp server. Refer to article 4221 in the Red Hat Knowledge base for details.
  3. Add these lines to the end of the existing dhcpd.conf file where is your tftp server address:
    allow booting;
    allow bootp;
    class "pxeclients" {
        match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
        next-server ;
        filename "pxelinux.0";
    }
  4. Restart the dhcpd service:
    # service dhcpd restart

For example, to install both packages from the webserver http://pxehost.example.com where the packages are in the directories mentioned above relative to the server's document root, the answerfile would contain this source element:

<source type="url">http://pxehost.example.com/XenServer_4.1.0</source>

or, to install just the basic pack and skip Linux support:

<source type="url">
http://pxehost.example.com/XenServer_4.1.0/packages.main
</source>

In either case you can specify a username and password if required, for example:

<source type="url">
http://<username>:<password>@pxehost.example.com/XenServer_4.1.0/packages.main
<source>

In order to perform installations in an unattended fashion, you need to create an XML answerfile.

Here is an example answerfile:

<?xml version="1.0"?>
   <installation>
      <primary-disk>sda</primary-disk>
      <guest-disk>sdb</guest-disk>
      <guest-disk>sdc</guest-disk>
      <keymap>us</keymap>
      <root-password>mypassword</root-password>
      <source type="url">http://pxehost.example.com</source>
	  <post-install-script type="url">
	  http://pxehost.example.com/myscripts/post-install-script
	  </post-install-script>
      <admin-interface name="eth0" proto="dhcp" />
      <timezone>Europe/London</timezone>
   </installation>

All nodes should be within a root node named installation.

The following is a summary of the elements. All values should be PCDATA within the nodes, unless otherwise stated. Required elements are indicated.

ElementDescriptionRequired?
<primary-disk> The name of the storage device where the Dom0 should be installed, equivalent to the choice made on the Select Primary Disk step of the interactive installation process.

Attributes:

You can specify a gueststorage attribute with possible values yes and no. For example:

<primary-disk gueststorage="no">sda</primary-disk>

If this attribute is not specified, the default is yes. If you specify no, it is possible to automate an installation scenario where no storage repository is created, if, in addition, no guest-disk keys are specified.

Y
<guest-disk>The name of a storage device to be used for storing guests. You should use one of these elements for each extra disk.N
<keymap>The name of the keymap to use during installation.

<keymap>us</keymap>

Y
<root-password>The desired root password for the XenServer host.Y
<source>Where the packages should be installed from.

Attributes:

type: url, nfs, or local

If local, leave the PCDATA empty. For example,

<source type="url">
http://server/packages
</source>
<source type="local" />
<source type="nfs">
server:packages
</source>
Y
<post-install-script>Where the post-install-script is.

Attributes:

type: url, nfs, or local

If url or nfs, put the url or NFS path in the PCDATA; if local, leave the PCDATA empty. For example,

<source type="url">
http://server/scripts
</source>
<source type="local" />
<source type="nfs">
server:scripts
</source>
Y
<admin-interface>The single network interface to be used as the host administration interface.

Attributes:

proto: dhcp or static

name: eth0 for example.

Children:

  • <ip>: The IP address, if proto="static"
  • <subnet-mask>: The subnet mask, if proto="static"
  • <gateway>: The gateway, if proto="static"

All three child elements are required if proto="static"

N
<timezone>In the format used by the TZ variable, e.g. Europe/London, or America/Los_Angeles.Y
<nameserver>The name of a nameserver. You should use one of these elements for each nameserver you wish to nominate.N
<hostname>Specify if you want to manually set a hostname.N
<bootloader>Specify which bootloader to install for startup time. Only change this if you have problems booting. Currently either grub (the default) or extlinux.N

You can also perform automated upgrades by varying the answerfile appropriately. You would set the mode attribute of the installation element to reinstall, specify the disk on which the existing installation lives with the existing-installation element, and leave the primary-disk and guest-disk elements unspecified. For example:

<?xml version="1.0"?>
   <installation mode="reinstall">
      <existing-installation>sda</existing-installation>
      <keymap>us</keymap>
      <root-password>mypassword</root-password>
      <source type="url">http://pxehost.example.com</source>
	  <post-install-script type="url">
	  http://pxehost.example.com/myscripts/post-install-script
	  </post-install-script>
      <admin-interface name="eth0" proto="dhcp" />
      <timezone>Europe/London</timezone>
   </installation>

The repository format described here should be used by installation sources and driver disks.

The XS-PACKAGES file describes the packages in a repository, one line per package. Fields are separated by spaces.

There are three types of packages:

Firmware loading support is currently limited; this will be addressed in a future release.

The first three fields are mandatory: package name, package size, and package checksum (md5). The fourth field is the package type, either tbz2, driver, or firmware. Which type is used dictates the contents of the subsequent fields.

If the type is tbz2, the subsequent fields are required or optional, source filename, and destination (usually just /).

Example:

docs 37750 2ba1783d84d10c71f07469252c555427 tbz2 required docs.tar.bz2 /

If the type is driver, the subsequent fields are source filename and destination (${KERNEL_VERSION} will be substituted with the Xen-kernel version.)

Example:

firmware_example 77001 3452c04dfcc237cde11c63d43e97a303 driver \
firmware_example.ko \
/lib/modules/${KERNEL_VERSION}/extra/firmware_example.ko

If the type is firmware, the subsequent field is destination filename (no path is necessary - it is automatically prefixed with /lib/firmware/).

Example:

firmware 12 6f5902ac237024bdd0c176cb93063dc4 firmware sample_firware.bin

Note

The backslashes at the ends of lines in the examples in this section denote continuation of lines; do not actually include them in a XS-PACKAGES file.

When calculating the memory footprint of a Xen host there are two components that must be taken into consideration. First there is the memory consumed by the Xen hypervisor itself; then there is the memory consumed by the host's control domain. The control domain is a privileged VM that provides low-level services to other VMs, such as providing access to physical devices. It also runs the management tool stack.

If your control domain requires more allocated memory, this can be set using the Xen CLI.

Use the xe vm-memory-target-set command to set the amount of memory available to the host hypervisor.

The xe vm-memory-target-wait command can be used to check if the control domain has managed to attain the requested memory target specified at the last use of the xe vm-memory-target-set command. xe vm-memory-target-wait will not return until the memory target has been reached.

The following fields on a VM define how much memory will be allocated:

namedefaultdescription
memory-actual209715200The actual amount of memory current available for use by the VM
memory-target209715200The target amount of memory as set by using xe vm-memory-target-set
memory-static-max790102016The maximum possible physical memory
memory-dynamic-max790102016The desired maximum memory to be made available
memory-dynamic-min209715200The desired minimum memory to be made available
memory-static-min209715200The minimum possible physical memory

Dynamic memory values must be within the boundaries set by the static memory values. Additionally the target memory must fall in the range between the dynamic memory values.

To find out how much host memory is actually available to be assigned to VMs, get the value of the memory-free field of the host, and then use the vm-compute-maximum-memory command to get the actual amount of free memory that can be allocated to the VM:

xe host-list uuid=<host_uuid> params=memory-free
xe vm-compute-maximum-memory vm=<vm_name> total=<host_memory_free_value>