Citrix Blogs

StoreFront Multi-Site Settings: Some Examples

The purpose of this article is to dive a little into the StoreFront multi-site settings as another item that has changed a lot coming from Web Interface.  Within the Citrix Consulting organization, many of our customers are starting to make the transition to StoreFront from Web Interface, especially as our XenApp 6.5 customers are looking at migrations to 7.5 and 7.6.  We are seeing a lot more questions about these settings as the number of farms (Sites per new 7.x terminology and to clarify now, any reference to “Site” in the remainder of this post should be considered a XenApp/XenDesktop 7.x Site not a StoreFront website) being enumerated tends to increase going from XenApp 6.5 zone-based architectures to datacenter-based XenApp/XenDesktop 7.x pods.  In this article, we will look at what these settings are, why they are important, and some examples of how we have used them in the field.

To set context for these settings, the closest built-in Web Interface equivalent is the Farm<n>Groups parameter in the conf file that restricted which user groups could enumerate a given farm/site.  We frequently used this in cases where a large number of farms were being aggregated by a Web Interface site but not all users required access to all sites, so this was a way of reducing Web Interface logon times because you could limit the number of enumeration requests.  The parallel resource enumeration enhancement introduced with StoreFront 2.5 has helped address this case outside of any multi-site settings, but the settings can take it a step further to restrict/control which sites/farms users have access to under a set of conditions.

In this way, the closest custom parallel is the Web Interface “high availability and load balancing” code published by Dan Allen used by some of our large XenDesktop customers.  I make no promises that StoreFront can match everything done by that code, but the overarching goal is the same: taking what Web Interface can do to filter which resources users see by default a step further.  Although these settings can be used with XenApp 6.5, in the field we are using them by far the most with XenDesktop / XenApp 7.x because we generally have more Sites to enumerate from following a Site-per-datacenter guideline than we had with XenApp 6.5 and farms that could span multiple datacenters.

So without further ado, we will get into some examples.  The StoreFront multi-site settings are as of version 2.5, exclusively config-file-based and are documented in eDocs here.  I have copied a sample structure below for reference.

<resourcesWingConfigurations>

<resourcesWingConfiguration name=”Default” wingName=”Default”>

<userFarmMappings>

<clear />

<userFarmMapping name=”user_mapping”>

<groups>

<group name=”domain\usergroup” sid=”securityidentifier” />

<group … />

</groups>

<equivalentFarmSets>

<equivalentFarmSet name=”setname” loadBalanceMode=”{LoadBalanced | Failover}”

aggregationGroup=”aggregationgroupname“>

<primaryFarmRefs>

<farm name=”primaryfarmname” />

<farm … />

</primaryFarmRefs>

<backupFarmRefs>

<farm name=”backupfarmname” />

<farm … />

</backupFarmRefs>

</equivalentFarmSet>

</equivalentFarmSets>

</userFarmMapping>

</userFarmMappings>

</resourcesWingConfiguration>

</resourcesWingConfigurations>

To define our terms, the primary tags that we have been using the field and will cover in the below examples are:

Now that we have an understanding of the parameters, below are some examples for how we have used these settings in the field.  These are by no means designed to encompass every possible scenario, but hopefully give an idea of how these settings can be used and give an idea of how settings can be combined if your requirements match a combination of the listed scenarios.

<equivalentFarmSets>

<equivalentFarmSet name=”name” loadBalanceMode=”LoadBalanced” aggregationGroup=”None”>

<primaryFarmRefs>

<farm name=”Site1″ />

<farm name=”Site2″ />

</primaryFarmRefs>

<backupFarmRefs>

</backupFarmRefs>

</equivalentFarmSet>

</equivalentFarmSets>

<equivalentFarmSets>

<equivalentFarmSet name=”name” loadBalanceMode=”Failover” aggregationGroup=”None”>

<primaryFarmRefs>

<farm name=”Site1″ />

<farm name=”Site2″ />

</primaryFarmRefs>

<backupFarmRefs>

</backupFarmRefs>

</equivalentFarmSet>

</equivalentFarmSets>

<equivalentFarmSets>

<equivalentFarmSet name=”Site1″ loadBalanceMode=”LoadBalanced” aggregationGroup=”AggGroup1″>

<primaryFarmRefs>

<farm name=”Site1″ />

</primaryFarmRefs>

<backupFarmRefs>

</backupFarmRefs>

</equivalentFarmSet>

<equivalentFarmSet name=”Site2″ loadBalanceMode=”LoadBalanced” aggregationGroup=”AggGroup1″>

<primaryFarmRefs>

<farm name=”Site2″ />

</primaryFarmRefs>

<backupFarmRefs>

</backupFarmRefs>

</equivalentFarmSet>

</equivalentFarmSets>

<equivalentFarmSets>

<equivalentFarmSet name=”Site1″ loadBalanceMode=”LoadBalanced” aggregationGroup=”AggGroup1″>

<primaryFarmRefs>

<farm name=”Site1″ />

</primaryFarmRefs>

<backupFarmRefs>

</backupFarmRefs>

</equivalentFarmSet>

<equivalentFarmSet name=”Site2″ loadBalanceMode=”LoadBalanced” aggregationGroup=”AggGroup1″>

<primaryFarmRefs>

<farm name=”Site2″ />

</primaryFarmRefs>

<backupFarmRefs>

</backupFarmRefs>

</equivalentFarmSet>

</equivalentFarmSets>

Update September 2016: As of StoreFront 3.6, a new parameter, “identical={true|false},” was added to the multi-site settings falling after the “loadBalanceMode” parameter within the equivalentFarmSet settings.  This should be added automatically if upgrading from a previous version, but if using this as a guide to manually edit the multi-site settings in 3.6 or later, please note that this parameter must be added to the above examples.  You can refer to https://citrixblogs.wpengine.com/2016/09/07/storefront-multi-site-settings-part-2/ for more information.

Exit mobile version