Before Citrix Metaframe Presentation Server 3 licenses were stored in the Citrix Datastore. Because the Citrix servers have a copy of the Datastore in their Local Host Cache, these servers could continue supporting users for 96 hours. Every company performs an evaluation of changes which occur if the SQL server is unavailable. Within this risk analyses companies compare investments versus costs to determine if the SQL server should be made redundant. Using SQL server with the Citrix Datastore creates a fully fault tolerant solution by MS SQL Cluster using MS Clustering. Another option for redundancy is to have spare space on another SQL server to store the database (remember that the SQL servername is specified in the DSN file) in combination with a good back-up and restore procedure.
“New” License Server
From Citrix Metaframe Presentation Server 3 and later, licensing information is not stored on the Citrix Datastore. Instead Citrix launched a separate component/product which took care of licenses. This separation was a logical step because in this way all Citrix products could use one licensing component. The new license server software was built on Microsoft Internet Information Server.
To store licenses on the license server a license file is imported into the product. In this license file the actual hostname (case sensitive) is stored to ensure that the license is only used on the correct license server.
The need for a redundant license server
With the introduction of this license server Citrix included a grace period of 96 hours for keeping the environment running without a license server. Since the license file used the hostname many companies and IT personnel were dissatisfied with this grace period and asked how the license service could be made redundant. Because Citrix did not have a solution for redundancy at the time and probably because they were a bit overwhelmed with the amount of complaints received regarding redundancy and the grace period, Citrix quickly changed the grace period to 30 days.
How does the grace period work? If a Citrix Server cannot contact the license server for any reason, the server will go immediately into the grace period. The server should have contacted the license server successfully at least once; otherwise this grace period cannot be activated. When the Citrix Server can establish a connection with the license server again the server switches back to normal behavior, registering every usae of a license. After 30 days of not being able to contact the License server the Citrix Server will not grant access to the server anymore.
So do you need a redundant solution for the license server? Taking the 30 day grace period into consideration there is no technical necessity for creating a redundant solution. For every IT department it should be possible to reinstall a server with the license server name within 30 days even if there is some hardware disturbance. But remember that the server should have contacted the License Server once, so during the absence of the License server no additional Citrix Servers should be installed.
But besides technical reasons there can also be business reasons for creating a redundant solution for the Citrix License server. There are lots of companies that require redundant solutions for every component within their infrastructure.
After all the complaints and comments Citrix developed a new version of the Citrix License Server. With this version Citrix officially supports a redundant solution using MS Clustering Services. But there are more options available.
So if you are in the environement building phase, or there is a business reason for redundancy you have three possibilities:
- Clustering using MS Clustering Services;
- Cold Standby solution;
- Transferring the license to another IIS server.
Clustering using MS Clustering Services
The latest version of the Citrix License Service can be installed on Microsoft Clustering Services (earlier versions do not support this setup). To accomplish this configuration you need at least two nodes available in the active-passive configuration (this is the only supported cluster type by Microsoft Clustering Services). IIS must be installed and not manually configured as a cluster resource.
Besides these requirements all default requirements for a Microsoft Cluster are valid. So you need to have at least one shared disk, two NICS (one for the heartbeat and one for the Public network) and so on.
A virtual node should be created with at least the following resources:
- Cluster IP Address;
- Cluster Name;
- Shared Disk.
First install Java Runtime normally on both physical nodes (the operating system running on the hardware).
Then the installation is carried out on the physical node that hosts the virtual node. On the local system drive a folder should be created with the name CtxLic and on the shared disk a folder with the name Citrix should be created.
Then the installation of the license server can begin. This must be done using command line parameters. The full command line is:
msiexec /i <INSTALLSOURCE>:\Licensing\ctx_licensing.msi
REGISTER_CTX_LS_CLUSTERING="No" /l*v "<SHAREDDISKDRIVE>:\install_firstnode.log"
Follow the Citrix License server installation program wizard but change the destination folder to <SHAREDDISKDRVE>:\Citrix. Also set the location of the license file within this folder (default <SHAREDDISKDRIVE:\Citrix\Licensing\MyFiles. After the installation move the virtual node to the second physical server.
The installation on the second server should be carried out using the command line installation parameters. The command for the second (or the other following nodes, when using more than two physical nodes) is:
msiexec /i <INSTALLSOURCE>:\Licensing\ctx_licensing.msi
REGISTER_CTX_LS_CLUSTERING="Yes" /l*v "e:\install_secondnode.log"
Follow the same steps as the installation of the first node. After the installation the virtual node should contain four additional cluster resources, so the License server is now fault tolerant and redundant.
In Citrix KB article CTX107764 the complete procedure on how the License server should be installed on Microsoft Clustering Service is described. There are also a few articles available describing problems with the solution when configuring. For example CTX107213 and CTX107765.
Cold Standby solution
If your infrastructure does not contain a Microsoft Cluster it is pretty expensive to implement a Microsoft Cluster for just clustering the Citrix License Server. Fortunately there are also other ways to create a redundant solution. One of the other solutions is the creation of a cold standby solution. As mentioned before, the license file contains the host name of the server which hosts the License server. Therefore the cold standby server should have exactly the same name as your default license server. Logically no server with the same name can be created in the Active Directory. But because the License server is based on Internet Information Server this machine does not need to a member of a domain. The best way to do this is to run the cold standby in workgroup mode and the installation is done on standalone basis or on a completely separate network. Install the server, completely configured, including the imported license file. When your default server fails just turn the cold standby on (connected to the production LAN). Because the hostname is the same no additional configuration is needed. If you are using a CNAME, check if the DNS A records are changed to the right IP address of the cold standby servername. When the default license server is available again, just power down the cold standby again and put the default server back in production.
Transferring the license to another IIS server
Another possible solution is transferring the license role to another active server with IIS enabled. Logically the license file cannot be used because of the included hostname. But within MyCitrix.com it is possible to return licenses for re-allocation. In this solution return your license first and then reallocate them using the hostname of the other IIS server. Citrix limits the times you can return and reallocate the licenses, so this option should only be carried out when no other solutions are available. Use a CNAME name for you license server, so the only change should be made with the DNS tool.
In this article I first gave a brief history of Citrix licensing followed by the need to create a redundant solution. Only the deployment of a farm is the only technical reason for implementing a redundant solution, but of course business needs can also demand a redundant solution. If you need to have a solution without any manual intervention and that is fault tolerant, Microsoft Clustering is the only option. The other solutions are quick ways of getting a license server back in place on short notice with just a few actions.
Determine the need for a redundant solution in your infrastructure and decide based on the business needs, costs and manual interaction needed to implement the solution in your Citrix Farm.