High availability options for FSLogix
A high availability design isn't solely focused on a single element rather ensuring all the elements of a given solution have a level of redundancy. The FSLogix design goal applies high availability so that the underlying storage provider has replicas of your data. This goal doesn't take into account the availability of the virtual machine, network or any other dependent resource needed to access the storage provider. Implementing a high availability solution for user profiles is aimed at insulating users from momentary or short-lived storage issues or outages.
Note
High availability in these contexts are specifically focused on protecting the user's profile container within the same region or data center.
High availability with Cloud Cache containers (preferred)
- Review: Cloud Cache overview
Tip
The storage examples in the diagrams could be swapped with Azure page blobs in lieu of Azure Files. Configuring both Azure Files and page blobs are not unique enough to provide a sufficient level of isolation in the event of an outage.
Cloud Cache containers are user profile VHD(x) files used with storage providers listed in the CCDLocations
configuration setting. Cloud Cache allows for multiple storage providers, which are kept up-to-date from the local cache of the virtual machine. Using multiple storage providers, both on-premises and Azure based solutions may be able to separate the storage providers in order to mitigate any one (1) outage from affecting both storage providers. Most commonly high availability is achieved through using unique storage providers within the same region or data center.
Azure Files is configured for ZRS and Azure NetApp Files isn't configured with any redundancy. This design limits the exposure of an outage or issue affecting one of these storage platforms, which provides more resiliency than creating two (2) Azure Files (shares), two (2) Azure NetApp Files (capacity pools or volumes), or two (2) Azure page blob accounts.
Figure 1: FSLogix High Availability with Cloud Cache
Session Hosts in Azure Virtual Desktop (AVD) are configured with CCDLocations
. The diagram is based on a common AVD deployment scenario. While this design doesn't represent every customer environment, the goal is to demonstrate a multi-provider configuration within a single region or data center for high availability purposes. Cloud Cache is configured in such a way that the local cache is stored on the same disk as the operating system. Alternatively, the virtual machine could be configured with another disk, in Azure this disk could be a Managed Disk (data disk) or a Temporary disk1.
1 Temporary disks have many caveats and should reviewed before implemented in a production environment.
High availability with standard containers
Standard containers are user profile VHD(x) files used with storage providers, which are listed in the VHDLocations
configuration setting. Customers using FSLogix in an on-premises environment may have limited options in designing their storage resiliency in comparison to Azure based storage providers. This design requires significant investment in storage architecture, which is locally redundant and redundant across other failure domains. As outlined, Azure provides native capabilities in these scenarios.
Warning
- FSLogix in this configuration is not providing any resiliency and is fully reliant on the storage provider.
- This section will focus on Azure based storage providers which have native high availability options.
Azure Files
- Review: Azure Files documentation
- Review: Azure Storage redundancy
It's highly recommended to use zone-redundant storage (ZRS) when configuring an Azure Files share. This ensures the data is replicated across the three (3) availability zones for the given region2. While this data is replicated across the availability zones, this configuration (standard containers), the container is mounted to the virtual machine over the network using the SMB protocol.
2 Not all Azure regions support availability zones, see Azure regions with availability zone support.
Warning
Any network, connection, configuration change or issues with other dependent resource need to access the Azure File share will result in the user's session becoming unstable or unresponsive and could lead to a session disconnect.
Azure NetApp Files
Currently, the only option for high availability using Azure NetApp Files is to use their availability zone placement feature. The availability zone placement feature only let's you deploy volumes in availability zones of your choice, which should be in alignment with Azure compute and other services in the same zone.
Caution
This storage provider does not provide enough redundancy for FSLogix high availability using standard containers.