On 14 September Citrix released XenApp/XenDesktop 7.11. Each release Citrix adds several enhancements to the product. One of those enhancements is the new functionalities to the Zones component (which became available in version 7.9). The enhancement is a re-inventing of the Zone Preferences in Presentation Server 4.5/5 or Worker Groups in XenApp 6.5. In this article I will show the functionality, the configuration possibilities, how it works (in cooperation with the Application Priority) and if the functionality is fully comparable with the Zone Preferences and/or Worker Groups functionality.
Recap: Zones in XenApp/XenDesktop before 7.11
Before I will dive into the enhancements added tot the Zone functionality let’s do a quick recap of the Zones functionality before this release. The zones were introduced in version 7.7 and the functionality did not change in version 7.8 and 7.9.
The zones functionality was focusing on streamlining the traffic between VDAs and the Delivery Controller. With the zones before 7.11 you could create two or more zones. To each zone you could assign a Machine Catalog. When the zone also has assigned one or more Delivery Controllers the VDAs will communicate with the Delivery Controller(s). When no Delivery Controller is available, the Delivery Controllers in the primary site are used. So via this methodology it is possible to regulate the traffic. For more detailed information, please read part three of the article series.
Zone Preference in XenApp/XenDesktop 7.11
Within XenApp/XenDesktop 7.11 Citrix reintroduced (aka reinvented) the Zone Preferences functionality again. What does Zone Preferences offer in XenDesktop 7.11? Basically it enables the possibility to assign a VDA session the end-user based on criteria bases on (so called by Citrix) user home or application home. In practice this means that you can assign a user based on username or group membership to machines in a Machine Catalog or you can assign a specific application to a specific Machine Catalog. In the first option called user home in the Citrix documentation it would be logical to assign the user to a Machine Catalog which is located closely the user back-end systems which stores the user files, the second option is useful by ensuring that the front-end application will be started on a Machine Catalog where the application back-end is nearby.
Now we have described the global functionality let’s take a look how to configure the feature.
User/Group Zone Preference
Let’s start with the User/Group Zone Preference option. As already mentioned the option allows the possibility to assign a user to a VDA of a specific machine catalog (one or more). The first step is to create a zone with at least a Machine Catalog assigned to it. Secondly you need to assign a username or group to the Zone.
As show in the above figure you can assign one or more groups to a zone. Users in this group will be assigned to a VDA in the Machine Catalog primarily. In earlier version you could use a kind of priority list to the zone preferences. In the current implementation (7.11) this option is not available. In the case that there is no VDA available in the Machine Catalog(s) assigned to the zone, the session will be started on another VDA in one of the other Machine Catalogs (it looks like the default load evaluator is being used, to the least busy VDA available in all catalogs will be used). This can be unwanted behavior. Currently you have two options, failover to a random other Machine Catalog or limit the user(group) to one Zone only.
The option to ensure that only the Machine Catalogs are being used assigned to the specific zone you can configure the option Sessions much launch in a user’s home zone, if configured. This option is available at the user tab in the Delivery Group option. Remember that this setting will arrange that a user cannot connect to the XenDesktop infrastructure if no VDA resources are available within the Machine Catalog(s) assigned to the zone.
Personally I did not expect that the option on this level, especially if you take a look at the application options later on in this article. Also I would like to have an option to assign a specific back-up zone to a user group as both options are not exactly what you would like to configure is several use cases. However finally we can have the option to set-up both an active-standby as an active-active set-up
Also you need to take care when a user is member of multiple groups that are assigned to different zones. XenDesktop will randomly choose one of the zones the user is assigned to be based on the membership, so you definitely need to prevent multiple memberships to zones.
Application Zone Preference
The second methodology is based on assigning an application to a specific zone arranging that the application will be started on the machines of the Machine Catalog belonging to that zone. This is useful if the application has a back-end which is only available at one location and the front-end and back-end should be as close together.
Configuring the Application Zone Preference can be done on two ways. First you can assign the application to a specific zone at the zone component (see the first picture of this article). Here you can only select the application to the zone. More options are available on the application properties.
There is a zone option available in the left pane of the application properties. First you can configure the enabled of using zones (or not). When not using the Application Zones feature, you can even configure for the application that the User Zone Preference should be ignored. When using Application Zone Preference you need to choose the Zone the application should belong to. Additionally you can choose that the application only may be run from the machines available within the zone. Logically this settings will cause that the application cannot be started if no machines are available in the Machine Catalogs assigned to the zone.
With this option not enabled and no machines are available in the Machine Catalog(s) belonging to the zone another machine belonging to the Delivery Group with the lowest load evaluator value. The same way as with the User Home assignment. There is not possibility if you have more than two Zones, to specify a second or third zone as a fail over.
If you have no Application Zone preference defined the user home location will be used when starting a Published Application (when user home zone preferences is set-up).
Although the way to configure is different for both possibilities, it’s not that hard to set-up. However the scenarios will become more complex if we are combining both Application as User Home preference or even more complicated using the Application priority as well. Let’s take a look at those scenarios.
Combined User/Group Zone and Application Zone Preference
Let’s start with the combination of User Home Zone and Application Home zone preferences. The case will be there if both methods are set, applying both to the user and different zones are assigned. So let’s make it bit more logical. User is member of the group location 1, which is assigned to zone location 2. Application X, to which the user has access to, is assigned to zone location 3.
Which machine will be selected if the user starts Application X? In my tests the application is started on a machine of the Machine Catalog assigned to the zone of Application Zone preference. So in my case the session is started on a VDA assigned to zone location 3. Conclusion is that Application goes above User Zone Preference, which in my opinion is the correct and logical way. It also the way Citrix describes the priority in their Zones article.
Combined Application Zone Preference and Application Groups (priority)
However we also have another possible scenario and that both Application Zone Preference are configured combined with the earlier Application Groups (Priority) option.
With Application Groups you have the possibility to offer an application via multiple Delivery Groups. Via priority criteria you can determine which delivery group will be contacted first and if no VDAs are available the next delivery group will be tried (see above shown figure).
However what will happen if you define Application Zone preference, which is different than the priority options configured within the application properties. I tested this with setting a Machine Catalog on a zone and assign the application to this zone. The Delivery Group connected to this Machine Catalog has a lower priority than another Delivery Group.
The user was connected to a VDA based on the Zone Preference (while the Delivery Group has a lower priority). This shows that Zone Preference is taken precedence over the priority defines at groups. I also tested it without any available VDA in het Zone Preference Machine Catalog and in that case the application was started on a VDA in the Delivery Group on the Groups tab with the highest priority. So the Groups function is still being used, as a second attempt. Personally I think those set-ups are getting complex and confusing for administrators. I would like to see that one technology is being used for both options.
XenDesktop 7.11 versus Presentation Server 4.5/5 – XenApp 6.5
With Zone Preference we are getting really close to the functionality of the previous XenApp/Presentation Server versions. One main functionality that is missing to assign a priority list to Desktops and Applications as now you can only set a default location. When no resources are available in the default location the session is started on the least busy VDA in the whole XenDesktop infrastructure. Also the combination of Application Zone Preference in combination with the priority in the Application Groups functionality can be confusing. Hopefully Citrix can make a change to offers this functionality as well, although it is probably for a minority of their customers.
Important Note
The whole zone preference is only functioning if you are connecting via StoreFront 3.7 or NetScaler Gateway 11.0-65x. Earlier versions are not compatible.
Summarization
In XenDesktop/XenApp 7.11 Zone Preferences are re-introduced (aka re-invented). In this article I described the functionality of Zones before 7.11, followed by the added functionalities. We went into the configuration and tested combinations of techniques around redirecting the users’ session to a VDA.