All of the Microsoft licensing described in this chapter is required as the foundation for your MetaFrame XP environment. The Citrix licensing discussed in this section is in addition to the required Microsoft licensing. The Citrix licenses do not replace the Microsoft licenses.
Citrix MetaFrame XP Licensing Requirements
There are two types of Citrix licenses required for MetaFrame XP: product licenses and connection licenses. Product licenses roughly represent "server" licenses, and connection licenses roughly represent "user" licenses.
MetaFrame XP product licenses are required for MetaFrame XP server products. Each type of MetaFrame XP server in an environment requires its own product license. There are different versions of this product license for each version of MetaFrame XP (i.e. XPs, XPa, XPe, FR-1, etc.).
Only one product license is needed for a particular MetaFrame XP version per server farm. They are not based on concurrency. From the server standpoint, that means that if you have one MetaFrame XPe product licenses, you can have as many servers running XPe as you want.
Product licenses are version-specific. For example, you must have a MetaFrame XPe product license to run a MetaFrame XPe server. Higher level product licenses cannot be used for lower level servers. This means that an XPs server cannot use an XPe product license.
Each product license includes one "free" connection license so that administrators can connect if a product license pack was installed without a connection (user) license pack (described below).
One connection license is required for each user ICA connection to a MetaFrame XP server farm. Connection licenses are based on concurrent connections. If you have 500 users but only 100 connect simultaneously, you only need 100 MetaFrame XP connection licenses.
MetaFrame XP connection licenses are based on user connections into the server farm. One user may connect to and run applications from multiple MetaFrame XP servers, even at the same time, and only use one connection license.
Just like product licenses, MetaFrame XP connection licenses are also version-specific. A user cannot use a MetaFrame XPs connection license to run an ICA session on a MetaFrame XPe server, even if that server had a MetaFrame XPe product license. However, unlike product licenses, the reverse is not true. A user with a MetaFrame XPe connection license may use that license to connect to lower-level MetaFrame XP servers in the farm, such as MetaFrame XPs or XPa.
How MetaFrame XP Licensing Works
All MetaFrame XP licensing is done at the server farm level. All licenses are installed into the server farm can be shared between users and servers in the farm. The actual license keys are stored in the farm's IMA data store. Each server's local host cache database contains a copy of the farm licensing information.
The zone data collectors work to police the license usage within the server farm. They are constantly kept up to date as to the total number of licenses that are available and in use.
Because license keys are stored in the IMA data store, each farm member MetaFrame XP server must not lose connectivity to the data store. If a MetaFrame XP server loses contact with the IMA data store for more than 48 hours (96 hours with Feature Release 2), the licensing component of the IMA service stops and no users are able to log on.
License Storage and Usage
All Citrix license numbers are stored in the IMA data store. This includes both the user connection licenses and the server product licenses.
Each MetaFrame XP server knows what type of product license it requires. When the IMA service is started (usually when the server is booted), it connects to the IMA data store to ensure that it contains the proper type of product license.
The version of the product license in the IMA data store must match the version of the MetaFrame XP server requesting the license. For example, when a MetaFrame XPe server boots, it checks the IMA data store to see if it contains a MetaFrame XPe product license. If it does not, then the MetaFrame XPe server will not allow any users to connect. Similarly, a MetaFrame XPa server will check the IMA data store for an XPa product license.
Client connection licenses are also stored in the IMA data store. When a user starts an ICA session with a MetaFrame XP server, a license is granted from the available pool in the server farm's IMA data store. These client connection licenses are valid for multiple concurrent server connections. If an ICA client connects to a server in the farm where that ICA client already has another ICA session open, the client will not consume another license.
When the ICA client logs off, the connection license is automatically returned to the pool of available licenses in the data store.
Components that make up a MetaFrame XP License
With the two different types of MetaFrame XP licenses available and Citrix's strict anti-piracy measures, there are actually several technical components that make up a MetaFrame XP license. Let's take a look at each of the components:
- Serial Number.
- Machine Code.
- Activation Code.
- License Number.
- Product Code.
- Feature Release Level.
Every MetaFrame XP license starts out as a 25-character serial number. This serial number is entered into the licensing component of the CMC when you add the license to your farm. The serial number is a unique number that represents the licenses purchased. No two serial numbers in the world are the same.
Based on the serial number entered, MetaFrame XP knows how many connection and product licenses you've purchased. A single 25-character serial number can represent multiple connection licenses or a product license. In fact, some 25-character serial numbers represent a product license and multiple connection licenses-all with the same serial number. These are usually seen in the MetaFrame XP starter kits, where a single serial number represents 20 user connection licenses and one MetaFrame XP product license.
The machine code is a random 8 digit character string that is added to a license serial number as soon as you enter it into the CMC. This machine code is automatically created when the license is entered and there is no way to change it. If you remove a license and then re-add it, that license will receive a new machine code. The reason for having the machine code will become evident in the next section.
All MetaFrame XP licenses (product and connection) must be "activated" before they can be permanently used. Activating a license involves registering the license number with Citrix and then entering an activation confirmation code into the CMC.
Citrix created the activation process to prevent licenses from being stolen or pirated. By activating MetaFrame XP licenses, Citrix can ensure that license numbers are not shared via the Internet or that one company isn't using a single connection license for 20,000 users.
When a license is installed (by entering its 25-character serial number into the CMC), the server will specify a certain "grace period." This grace period represents the number of days the license will be valid before it must be activated. If the license is not activated before the grace period runs out, it will cease to function until it is activated. Once a license has ceased to function, only one user will be able to log on. (So you see, there is no way around the license activation procedure.) For most standard licenses, the grace period is 35 days, although some demonstration and evaluation licenses have shorter grace periods.
When you activate a license, you must provide Citrix with the 25-character license serial number and the 8-digit machine code. Citrix uses these two numbers to generate a 10-digit activation code. The activation code will only work with that specific combination of the license serial number and machine code.
If you remove and re-add a license or transfer a license to a different server farm, the license will need to be reactivated because a new machine code will have been generated when the 25-character license serial number was entered into the new farm. Now you can see why the machine code exists. Because the activation code is based on the serial number and the machine code, it is not possible to use an old activation code to activate a single license serial number over and over. Every time the license is installed into a farm, a new machine code is generated. The old activation code will only work with the license number and the original machine code.
You can activate licenses via the Citrix Management Console (CMC | Licensing | Right-click on license | Activate). Activation codes are most easily attainable via Citrix's NFuse Elite-based user portal at www.citrix.com/mycitrix.
It is recommended that you do not activate a license until a server is proven production ready. After all, there is no impact to a system that has unactivated licenses as long as the grace period doesn't run out. If you activate a license too soon and you end up rebuilding the server, you will need to reactivate the license. Citrix gets suspicious if you activate the same license number and you'll have to explain to them that you are not pirating licenses. The only exception to this rule is Feature Release 1 licenses, which for some unexplained reason, must be activated before they work. (Feature Release 2 does not have this "feature.")
The "license number" is the generic term given to the combined serial number, machine code, and activation code for a specific license. Within the Citrix Management Console, activated licenses are referred to by their "license number."
Every MetaFrame XP server has a product code. The product code is an 8-digit number that tells the server what version of MetaFrame XP it is. Product codes differentiate between MetaFrame XPs, XPa, and XPe. They also tell the server if the product license is a retail, not-for-resale, evaluation, demonstration or beta version, or if it is an upgrade or migration version. As you can see, there are many different packages and distributions of MetaFrame XP, and each specific combination of these options has a different 8-digit product code so that the MetaFrame XP server knows exactly what it is.
You're probably wondering why product codes exist, especially given that all the above mentioned information can be found in the license number itself? Product codes exist for one reason. They tell the MetaFrame XP server what type of product license it should request from the server farm's license pool in the IMA data store when the server is started. Remember that all farm licenses are stored in the IMA data store. Before a server can request a license, it must know what type of license to request. This is because the IMA data store might have multiple XPs, XPa, and XPe licenses available. The product code is how the MetaFrame XP server knows what type it is. It also tells the server what type of connection licenses are required for user connections to it.
Based on this, there are four licensing steps that a MetaFrame XP server takes when it is started:
- Server is booted.
- Server checks its own product code to see what type of licenses it needs.
- Server checks the IMA data store for the appropriate license type.
- Server waits for users to connect. When they do, it makes sure that they have the right level of connection license, based on its product code. (i.e. XPe connection licenses for an XPe server, etc.)
For example, a large server farm might have many different product licenses available in the license pool in the IMA data store. If the pool contains XPs, XPa, and XPe licenses, then each server that comes online cannot blindly ask for a license-it must know which type of license it needs. This is where the product code comes in.
As an administrator, you can modify a server's MetaFrame XP product code at any time without reinstalling a thing (CMC | Server Name | Set MetaFrame Product Code). You can update an evaluation server to a permanent server or you can upgrade an XPs server to XPe without running a single line of executable code. All you have to do is add the new license or licenses to the server farm and change the server's product code (which will tell the server to look for the new license). After this, stop and start the IMA service. You're all set!
For those crafty readers, be aware that you cannot trick the licensing component of MetaFrame by entering an XPe product code with an XPs license. If you do this, the server with the XPe product code will request an XPe level license from the server farm's license pool in the IMA data store. If there is no XPe license available, the server won't accept any user connections. To remedy this, set the server's product code back to the proper XPs product code and restart the IMA service.
If you choose to install a license during the MetaFrame XP setup, the setup program will suggest that you set the server's product code to the one that matches the licenses you are adding.
Feature Release Level
The Feature Release Level is a property of a MetaFrame XP server that is similar in concept to the product code. As with any licenses, Feature Release licenses are added to the license pool in the IMA data store. In order for a MetaFrame XP server to use the Feature Release functions, you need to tell it to acquire a Feature Release license from the license pool in addition to its standard product license when it is booted. You can set the Feature Release level of a MetaFrame XP server via the CMC (CMC | Right-click server | Set Feature Release Level). In order to set this, use a version of the Citrix Management Console that has had Service Pack 1 or newer applied.
As with product codes, you must have a Feature Release license available if you set a server's Feature Release level to anything other than "Not Installed." If you don't have the correct Feature Release product license available, the server will not be able to accept any user connections.
License Component Summary
After reading through the license components that are available, you should be glad to know that most of this will not affect you on a day-to-day basis. You will not need to worry about which product licenses are allocated to which servers. From a licensing standpoint, all you need to do is make sure that:
- The right product codes are configured on each MetaFrame XP server.
- You have the proper, activated licenses added to the license pool.
Other Types of MetaFrame XP Licenses
In addition to the standard license types discussed so far, there are situations alternate licensing schemes exist. Often these can save an organization time and money over buying standard licenses. Four types of nonstandard licenses are most often used:
- Migration licenses.
- Upgrade licenses.
- Enterprise licensing agreements.
- ASP licensing agreements.
Migration Licenses from Older Citrix Products
If you have older versions of Citrix products, you can usually purchase migration licenses for the migration to MetaFrame XP. These migration licenses are less expensive than full version MetaFrame XP licenses.
Using migration licenses can save your organization thousands of dollars. You can migrate from old Citrix products, including MetaFrame and some versions of WinFrame. You can also migrate to MetaFrame XP from some OEM versions of Citrix products such as NCD WinCenter Pro, Tektronix WinDD, and Insignia NTrigure. Most of these OEM products have user connection licenses that Citrix recognizes as equivalent to MetaFrame 1.8 connection licenses-which means that there might be some real value in those old boxes in your IT closet. Even if you have old products that cannot be directly migrated to MetaFrame XP, some of them can be migrated to MetaFrame 1.8 which in turn can be migrated to MetaFrame XP for less than it costs to purchase MetaFrame XP from scratch.
There is one little quirk that you will find when using migration licenses. To use them, you must enter and activate the old product licenses into the server farm's license pool first and then enter and activate the new MetaFrame XP migration licenses. Citrix has been using the license serial number / machine code / activation code scheme for a while, and MetaFrame XP will recognize the old licenses (and know what they're from!)
When you use a MetaFrame XP migration license, you will get a different product code and license serial number for MetaFrame XP than if you purchased a regular off-the-shelf copy of MetaFrame XP. The product code will let the server know that a migration license was used. Then, when the server is started, it requests the old license and the new MetaFrame XP migration license from the license pool.
For example, if you own a copy of MetaFrame 1.8 and you would like to use MetaFrame XPs, you can purchase a MetaFrame 1.8 to MetaFrame XPs migration license for far less than purchasing a full MetaFrame XPs license. When you install MetaFrame XPs, it will ask you to enter your license number. The XPs license number that is included with your copy of MetaFrame XPs will reflect that the version of XPs you bought was a migration from MetaFrame 1.8. If you are installing the server from scratch, you will be required to enter and activate both your old MetaFrame 1.8 license and your new MetaFrame XPs migration licenses. (If you are just performing an upgrade, then you will not have to reenter your MetaFrame 1.8 licensing information.) The product code provided to you will also reflect that your version of MetaFrame XP is a MetaFrame 1.8 to MetaFrame XPs migration license. This product code will be different from the regular MetaFrame XPs product code.
In this case, when your new MetaFrame XPs server is booted, the local IMA service will read the product code. Based on that product code (and the fact that it is a MetaFrame 1.8 to XP migration license), it will verify that both the old MetaFrame 1.8 product license and the 1.8 to XPs migration license are present in the data store. By doing so, the server ensures that the MetaFrame 1.8 license you entered will not be illegally used for more than one migration to MetaFrame XP.
It's important to note that it is not necessary to actually physically install MetaFrame 1.8 before installing MetaFrame XP. It is just necessary that you have the MetaFrame 1.8 server license available and that you add it to your MetaFrame XP license pool.
MetaFrame XP upgrade licenses are similar to migration licenses, except that upgrade licenses are for use exclusively within the MetaFrame XP family. You can upgrade from XPs to XPa, XPa or XPe, or from XPa to XPe. To do this, purchase an upgrade license, change the product code on the server, and add and activate the upgrade license to the data store.
In a similar fashion to the migration licenses, the new product code and license will represent that an upgrade took place. When a server is booted with an upgrade license, the product code will require that the server uses the old full version license and the new upgrade license.
Both server product licenses and connection licenses can be upgraded. Any server can use either full versions or upgraded versions of connection licenses. Consider the following scenario. Imagine that your four-server MetaFrame XP environment has the licenses outlined in Figure 14.7.
- Product Licenses
- XPa, qty. 1
- XPe, qty. 1
- Connection Licenses
- XPa, qty. 50
- XPe, qty. 50
Figure 14.7: Current licenses
Currently, you have two servers at the XPe level and two servers at the XPa level. You also have 50 users at each level. You must have one XPe product license and one XPa product license in your data store, because each server type needs to have its own version of the product license available.
In this environment it would be legal for you to change the product codes on your two XPa servers to match the codes of your XPe servers. The only problem is that if you did this, your two XPa servers would essentially become XPe servers and your 50 XPa connection licenses would be useless (leaving you with only 50 XPe connection licenses).
However, if you decide that you like the advanced features of MetaFrame XPe and you would like to have all 100 users and all four servers at the MetaFrame XPe level, all you need to do is purchase the licenses outlined in Figure 14.8.
- Product Licenses
- Connection Licenses
- XPa to XPe, qty. 50
Figure 14.8: Upgrade licenses needed
By purchasing these licenses, your environment would be equivalent to that in Figure 14.9.
- Product Licenses
- XPe, qty. 1
- Connection Licenses
- XPe, qty. 100
Figure 14.9: New environment license equivalence
However, if you looked at the actual licenses that were maintained in the IMA data store, you would see the licenses outlined in Figure 14.10.
- Product Licenses
- XPa (no longer used), qty.1
- XPe, qty. 1
- Connection Licenses
- XPa, qty. 50
- XPe, qty. 50
- XPa to XPe, qty. 50
Figure 14.10: New environment - actual licenses in the data store
The server farm (via the IMA data store) tracks all of the licenses that you have purchased. For the environment outlined on the previous page, you would simply add the 50 XPa to XPe upgrade connections licenses to the data store and then change the product code on your XPa servers to match the code on the XPe servers.
The user connection licenses would be used interchangeably. For each user that connected to an XPe server, that XPe server would request an XPe connection license from the server farm's license pool. It doesn't matter if that server gets a full XPe connection license or a full XPa connection license coupled with an XPa to XPe upgrade connection license. The licenses can be used either way on any of the four servers.
Volume License Agreements
If MetaFrame XP is going to large a large part of your organization, Citrix now offers several different licensing programs with various discounts and degrees of flexibility. The terms of these programs change as fast as Microsoft's do, so it's not worth detailing them here since they'll be different by the time you read this.
In addition to price breaks, many of Citrix's volume license programs have special licensing hotfixes that you install on your Citrix servers to prevent you from having to manually type in license numbers and activate licenses. There are also licensing programs for service providers that allow you to pay for licenses based on actual per-month usage of your customers.
Full details about Citrix's licensing programs are available at www.citrix.com/licensing.
Configuring MetaFrame XP Server License Usage
By default, any licenses that are added to the server farm's IMA data store are automatically added to the license pool. This license pool combines identical types of connection licenses, making them available use by any server in the farm. This license pooling simplifies administration sincelicenses are not tied to specific servers. The servers take licenses from the pool as they are needed.
This generally works well, but there are times when it is necessary to reserve a certain number of user connection licenses for specific servers. To do this, you can "assign" connection licenses to specific servers via the Citrix Management Console (CMC | Licenses | Right-click license set | New assignment). When licenses are assigned to servers, the licenses are removed from the shared license pool and made available only for the server to which they have been assigned. Only activated, permanent (non-demonstration, non-evaluation) licenses can be assigned to servers.
When you assign connection licenses with the license assignment wizard in the Citrix Management Console, be sure that you assign the proper type of licenses. The wizard does not enforce this, so be careful! If you assign MetaFrame XPa licenses to an XPe server, the licenses won't work.
A server that has licenses assigned to it will still be able to accept connections above and beyond the number of assigned licenses so long as pooled licenses are still available. The assigned licenses merely represent the minimum number of licenses that must be reserved.
If a server is offline, its assigned licenses are not pooled and are still reserved for it, which is necessary so that the licenses don't get used while the server is offline. Consequently, if a server is lost, its assigned licenses are not automatically returned to the pool. Of course you can add them back to the pool with the click of the mouse in the CMC.
Because licensing is done by concurrent connection, ordinarily one user can connect to multiple MetaFrame XP servers and use one only connection license. If a user connects to a server that uses pooled licenses and then connects to a server that has licenses assigned to it, the user will only use one license because the pooled license will "travel" with the user to the second server. However, the opposite is not true. Consider the user in Figure 14.11. If a user first connects to "Server A" that has licenses assigned to it and then that user connects to "Server B," the "Server B" connection will use a second license. This is because the first license is "assigned" to the "Server A" and cannot be used for other servers. Some people wonder why that assigned license can't be used for both. If it could, the user could use the assigned license for the two connections and then terminate the connection with the first server. In this case, the user would be using the assigned license on the wrong server.
Figure 14.11: Users with assigned licenses
Best practices dictate that you do not pool all of the licenses on all of the servers. By assigning one or two licenses per server, you will always ensure that at least one user can connect. This is useful for administration purposes. By assigning one or two licenses, you are not wasting them. In fact, they may be used by regular users throughout the day.
Managing Licenses with the Citrix Management Console
The Licensing Area of the Citrix Management Console has three tabs: Connection, Product, and License Numbers. It can be confusing to understand what information is displayed on each tab because some of the license numbers are the same from tab to tab. The following section should help decipher exactly what the CMC licensing tabs are displaying.
All of the same type of connection licenses are combined together on the connection tab. These combined licenses are called "license sets." There is only one line per type of connection license even though more than one license number may contribute to the total number of licenses. For example, MetaFrame XPa connection licenses are different than MetaFrame XPe connection licenses and each would be displayed on a separate line. The MetaFrame XPa license set may show that there are 35 connection licenses available. This one line could contain combined license information from a 20 pack, a 10 pack, and a 5 pack. You can double click to see more details, including which license numbers make up the license set.
When you view licenses with the Citrix Management Console, the display does not automatically refresh even if you have "auto-refresh" enabled for the CMC. You can easily perform a manual refresh by pressing the F5 key.
The product tab works in the same manner as the connection tab except that it shows server product licenses. Again, all similar product licenses are combined to form one line entry for each type. This combination can include dedicated product license packs and the single product license that comes with starter pack combination licenses.
By viewing the product licenses, you will notice that a MetaFrame XPe license is a single license, unlike MetaFrame 1.8 that had separate licenses for Load Balancing, Installation Management, and Resource Management. In MetaFrame XPe, it is not possible to separate these advanced components from each other. You cannot use part of an XPe license for Resource Management on one server with the same license number's Installation Management on another. In this case, each server (and user connection) would require a full XPe license.
The license numbers tab displays the actual license numbers that have been entered and activated.
Viewing Licenses in Use
By selecting a server in the CMC, you can use the licensing tab to view the licenses that are in use by that server, including connection licenses and product licenses.
SNMP License Notification
For environments in which SNMP management and monitoring tools are used, MetaFrame XP servers can be configured to send traps relating to license usage. This component is similar to a functionality of the Network Management component of MetaFrame XPe described in Chapter 16 except that this SNMP license notification will work with any version of MetaFrame XP.
Options for SNMP license notification can be configured on a farm-wide (CMC | server farm | properties) or individual server (CMC | server | properties) basis.
You can configure alerts to be sent when the percentage of pooled licenses drops below the entered threshold and reset when that percentage rises above another entered threshold.
When Multiple Licenses are Applied to One User
Under some circumstances, one user may consume more than one connection license. This usually happens when a user connects to multiple servers or applications that have conflicting parameters.
For example, if one server is configured not to use compression and another server requires compression, it is not possible for a user to connect to both with one session. The user will still be able to simultaneously connect to both, but two sessions will be started and two licenses will be consumed. This occurs when one of the following does not match between sessions:
- Encryption Level.
- Color Depth.
- Disk Cache.
- Queue mouse and keystrokes values.
- Audio Settings.
Additionally, as previously mentioned, if a user connects to a MetaFrame XP server where a connection license has been assigned and then that user connects to another server, a new license will be used since the assigned license cannot travel with the user.
License Differences Between MetaFrame XP and 1.8
Citrix licensing varies with the version of MetaFrame being used. In both MetaFrame 1.8 and MetaFrame XP, user licenses are connection-based. However, the definition of "connection-based" changes depending on the version of MetaFrame.
In MetaFrame 1.8, one "connection" is defined as a single user with a single user ID on a single subnet, regardless of the number of ICA sessions actually opened or servers actually connected to by that user.
In MetaFrame XP, one "connection" is defined as a single user with a single user ID connecting to a single server farm, regardless of the number of ICA sessions actually opened or servers actually connected to by that user.
The key difference is the designation between "subnet" and "server farm." In actuality, the products were licensed this way due to the internal differences of the ICA browser and IMA data store and their respective ability to track licenses.
Regardless of MetaFrame version, Citrix licenses are based on concurrent connections as opposed to Microsoft's "per device" approach.