In a production environment, it's often important to have some flexibility on its servers. For this, we will use the XenServer pools system.
Then, it's also important to provide the best possible availability. This is often possible by configuring high availability (HA) of the solution used.
In this complete tutorial, we will explain how to :
- create a homogeneous pool of servers (servers with the same hardware and especially the same processor (CPU)).
- create a heterogeneous pool of servers : in order to create a pool of servers using different hardware, or a different processor.
- enable the high availability (HA).
Create a server pool allows you to get some flexibility and a fault tolerance in case of one of your XenServer servers will fail or that you should put it in maintenance.
Indeed, with the pools, it's possible to run a virtual machine on the server of your choice.
However, to use this system, you need to use an external storage server (NAS, NFS, iSCSI, ...) that will be shared between the servers of the pool.
- Important information to know
- Configuration used
- Synchronize the date/time of your servers by NTP
- Create a homogeneous pool of servers (same hardware)
- Create a heterogeneous pool (different hardware)
- Add a NFS shared storage
- Add an iSCSI shared storage
- Enable multipathing to get better performance
- Install a virtual machine
- Start or migrate a virtual machine from one server to another
- Configure HA : High Availability
Why use servers pools ?
To get flexibility.
When you create a server pool :
- you will need to store your virtual machines on shared storage (NFS, iSCSI, ... server)
- you will be able to start your virtual machines on any server of the pool
- you will also be able to move a virtual machine from one server to another (technology called XenMotion), even if she is currently running. Note that there will still be a short time of unavailability of the service hosted by the affected virtual machine. (The time of transition between the two servers.
- you can also implement the high availability for this pool if you wish. High availability is not possible if your servers are not in the same pool.
What is the difference between homogeneous pool and heterogeneous pool ?
Homogeneous pool :
A homogeneous pool means that all XenServer servers of the pool must have identical hardware. Including the same processor model.
If this is not the case, the creation of homogeneous pool will not work.
In addition, homogeneous pool is recommended, especially to get the best performance that you can have with your hardware.
Heterogeneous pool :
A heterogeneous pool means that at least one pool of servers have a different hardware, or uses at least a different processor from those present in your other servers.
In this case, you can not create the pool without making changes beforehand.
In the case of heterogeneous pool, you will need to hide the features of one or more processors in order for they use the same functionality and are therefore compatible.
Which means that you may risk losing performance. However, that will work too.
Here is some important information from the "XenServer 6.5.0 Service Pack 1 Administrator's Guide" of Citrix.
The official documentation of Citrix XenServer 6.5.0 is available at : docs.vmd.citrix.com
- A pool can contain up to 16 XenServer servers.
- Each pool will have a master server to which will connect XenCenter. Other servers will be discovered from the master server.
- If the master server is unavailable (eg down), another master server will automatically be designated among the other servers in the pool.
- Servers that will join the pool must use the same version of XenServer with the same installed updates.
- The server that you want to add to the pool should not have shared storage. Indeed, you should add them to the pool and not to a particular server.
- It's recommended to synchronize your servers with a XenServer time server (NTP) that they will use the same date / time.
- It's recommended to use the same hardware for XenServer servers that will be part of the same pool. (This will prevent further manipulation, and you can enjoy the best performance offered by your hardware and processors)
- Les serveurs que vous souhaitez ajouter au pool ne doivent pas utiliser une interface de gestion en mode "bonded" (bonded management interface). Si c'est le cas, vous devrez retirer ce "bond" pour le remettre après avoir ajouté votre serveur dans le pool.
- Servers that you want add to the pool should not use a management interface in "bonded" mode (bonded management interface). If it's the case, you must remove this "bond" to restore it after adding your server in the pool.
Then you have also set static IP addresses on all of your servers :
- XenServer servers
- external storage servers (NFS, iSCSI, ...)
Finally, for high availability (HA), Citrix recommends enabling the HA only if your pool contains at least 3 XenServer servers.
For this tutorial, we will use only 2 servers with high availability, but in production, it will be preferable to have at least 3 XenServer servers in your pool.
For this tutorial, we'll use :
- IP 10.0.0.101 and 10.0.0.102 : 2 XenServer 6.5.0 servers* with exactly the same hardware and especially the same processor.
- IP 10.0.0.103 : a XenServer 6.5.0 server with the same updates as the 2 other servers, but with a different hardware and therefore a different processor. (For the example of the heterogeneous pool)
- IP 10.0.0.111 : a NFS server for shared storage that you will need for your servers pools. (Compatible, but not recommended for HA)
- IP 10.0.0.112 : OR an iSCSI server for the same reason. (Recommended for multipathing support. Which is recommended by Citrix for the HA)
* Our XenServer servers have two NICs each to ensure maximum compliance with the HA requirements specified in their official documentation.
Indeed, as you will see later, Citrix says in its documentation that you should always use linked network cards (which involves doubling their number) to use the high availability in the best conditions.