In this example, you want users at both locations to be able to log on to their local StoreFront servers and access desktops and applications provided locally, where possible. In the event that local resources are not available, either due to a failure or capacity issues, users must be automatically and silently redirected to resources delivered from the other location. If all resources provided by both locations are unavailable, users must be able to continue working with a subset of the most business-critical desktops and applications.
To achieve this user experience, you configure the store in Location 1 as shown below.
<resourcesWingConfiguration name="Default" wingName="Default">
<group name="Everyone" sid="everyone" />
<equivalentFarmSet name="Location1" loadBalanceMode="LoadBalanced"
<farm name="Location1Deployment1" />
<farm name="Location1Deployment2" />
<farm name="Location1Deployment3" />
<farm name="DisasterRecoveryDeployment" />
<equivalentFarmSet name="Location2" loadBalanceMode="Failover"
<farm name="Location2Deployment1" />
<farm name="Location2Deployment2" />
<farm name="Location2Deployment3" />
<farm name="DisasterRecoveryDeployment" />
<farm name="Location1UniqueDeployment" />
There is a single mapping available to all users, listing the Location 1 deployments first and the Location 2 deployments second. In both cases, the disaster recovery deployment is configured as the backup and all the deployments are assigned to the same aggregation group. The configuration of the store in Location 2 is almost identical, differing only in that the order in which the deployments are listed is reversed such that the Location 2 deployments are listed first. In both cases, the deployment providing the Location 1 unique resources is listed last with no backup deployment or aggregation group defined.
When users at Location 1 log on to their local store, StoreFront contacts a Location 1 deployment to enumerate the desktops and applications available. Because the loadBalanceMode attribute is set to LoadBalanced, the exact deployment contacted is selected randomly to evenly distribute requests across the available deployments. If the selected Location 1 deployment is unavailable, StoreFront randomly selects another Location 1 deployment to contact.
In the case of the Location 2 deployments, the loadBalanceMode attribute is set to Failover. This means that StoreFront always contacts the deployments in the specified order. As a result, resources are enumerated from Location 2 Deployment 1 for every user request until Deployment 1 stops responding. Subsequent requests are then routed to Deployment 2 until Deployment 1 becomes available again. This minimizes the number of deployments in use at Location 2 at any given time.
When a response is received from a Location 1 deployment, StoreFront does not contact any further Location 1 deployments. Including all the Location 1 deployments in a single <equivalentFarmSet> element specifies that these deployments provide exactly the same resources. Similar behavior also occurs during enumeration of the Location 2 resources. Finally, the Location 1 unique deployment is contacted, although since there is no alternative in this case, the unique resources are not enumerated if the deployment is unavailable.
Where a desktop or application with the same name and path on the server is available from both Location 1 and Location 2, StoreFront aggregates these resources and presents users with a single icon. This behavior is a result of setting the aggregationGroup attribute to AggregationGroup1 for both the Location 1 and Location 2 deployments. Users clicking on an aggregated icon are typically connected to the resource in their location, where available. However, if a user already has an active session on another deployment that supports session reuse, the user is preferentially connected to the resource on that deployment to minimize the number of sessions used.
Because an aggregation group is not specified for the Location 1 unique resources, users see separate icons for each of the unique resources. In this example, none of the unique resources are available on the other deployments. However, if a desktop or application with the same name and path on the server were available from another deployment, users would see two icons with the same name.
Only when resources cannot be enumerated from any of the Location 1 or Location 2 deployments does StoreFront contact the disaster recovery deployment. Because the same disaster recovery deployment is configured for both Location 1 and Location 2, all of these deployments must be unavailable before StoreFront will attempt to enumerate the disaster recovery resources. In this example, a disaster recovery alternative is not configured for the Location 1 unique deployment, so the availability of the unique deployment does not affect this determination.