Configuration examples
The example configurations outlined in this article are a progression of complexity based on configuration choices. Each example has an associated configuration focused on redundancy or disaster recovery. We recommend customers select the simplest configuration for their environment. Adding unnecessary complexity leads to incorrect configurations and support cases.
Note
Use these examples as a starting point of your FSLogix configuration. The ideas and concepts in these examples should inform your unique organizational requirements.
EXAMPLE 1: Standard
The Standard configuration example is the simplest configuration in which most customers should consider.
Prerequisites (Standard)
- FSLogix prerequisites including antivirus exclusions
- Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
- SMB File Share.
- Validated share and NTFS permissions.
Configuration Items (Standard)
Items | Description |
---|---|
Single VHD location | The VHDLocations setting contains a single UNC path to an SMB file share. |
Single container | A single Profile container is created for the user. The ODFC container isn't configured. |
No concurrent connections | The ProfileType setting is set to 0 or not configured. A user's profile can only be mounted within a single connection. |
No custom profile redirections | No use of redirections.xml file. |
Registry Settings (Standard)
Key Name | Data Type | Value | Description |
---|---|---|---|
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply1 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName2 | DWORD | 1 | Recommended |
LockedRetryCount3 | DWORD | 3 | Recommended |
LockedRetryInterval3 | DWORD | 15 | Recommended |
ProfileType4 | DWORD | 0 | Default |
ReAttachIntervalSeconds3 | DWORD | 15 | Recommended |
ReAttachRetryCount3 | DWORD | 3 | Recommended |
SizeInMBs | DWORD | 30000 | Default |
VHDLocations | MULTI_SZ or REG_SZ | \\<storage-account-name>.file.core.windows.net\<share-name> |
Example |
VolumeType5 | REG_SZ | VHDX | Recommended |
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
2 Provides and easier way to browse the container directories.
3 Decreases the retry timing to enable a faster fail scenario.
4 Single connections reduce complexity and increase performance.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 2: Standard + High Availability (Cloud Cache)
The Standard + High Availability configuration enhances the basic Standard example by incorporating Cloud Cache to ensure regional availability for the profile container. This configuration is designed to provide robustness and redundancy, allowing the profile container to be accessible even in the event of failures or outages in a specific region. Cloud Cache acts as a resiliency and availability layer, periodically writing profile data upstream to multiple storage providers. By replicating data across unique storage providers, it ensures that the profile container remains available even if one storage provider is unavailable. This approach enhances reliability and minimizes downtime for end-users.
Key Points
- Redundant and robust: Allows the profile container to be accessible even in the event of failures or outages, minimizing downtime for end-users
- Resiliency: Cloud Cache acts as an availability layer, periodically writing profile data upstream to multiple storage providers.
- Storage design expertise: Cloud Cache functionality is dependent on the performance of your storage providers.
Summary
The Standard + High Availability configuration combines the benefits of the Standard setup with additional measures to maintain availability across regions, making it suitable for critical applications that require continuous access to profile data.
Figure 1: FSLogix High Availability using Cloud Cache
Prerequisites (Standard + High Availability)
- FSLogix prerequisites including antivirus exclusions
- Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
- Multiple storage providers in the same region or zone-redundant storage.
- Validated share and NTFS permissions (SMB only).
Configuration Items (Standard + High Availability)
Items | Description |
---|---|
Container redundancy | The CCDLocations contains at least 2 storage providers of varying kinds. The storage providers are in the SAME region as the virtual machines. |
Single container | A single Profile container is created for the user. The ODFC container isn't configured. |
No concurrent connections | The ProfileType setting is set to 0 or not configured. A user's profile can only be mounted within a single connection. |
No custom profile redirections | No use of redirections.xml file. |
Registry Settings (Standard + High Availability)
Key Name | Data Type | Value | Description |
---|---|---|---|
CCDLocations | MULTI_SZ or REG_SZ | type=smb,name="FILES SMB PROVIDER",connectionString=\\<storage-account-name-1>.file.core.windows.net\<share-name>;type=smb,name="ANF SMB PROVIDER",connectionString=\\<azure-netapp-files-fqdn>\<volume-name> |
Example |
ClearCacheOnLogoff1 | DWORD | 1 | Recommended |
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply2 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName3 | DWORD | 1 | Recommended |
HealthyProvidersRequiredForRegister4 | DWORD | 1 | Recommended |
LockedRetryCount5 | DWORD | 3 | Recommended |
LockedRetryInterval5 | DWORD | 15 | Recommended |
ProfileType6 | DWORD | 0 | Default |
ReAttachIntervalSeconds5 | DWORD | 15 | Recommended |
ReAttachRetryCount5 | DWORD | 3 | Recommended |
SizeInMBs | DWORD | 30000 | Default |
VolumeType7 | REG_SZ | VHDX | Recommended |
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
3 Provides and easier way to browse the container directories.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
5 Decreases the retry timing to enable a faster fail scenario.
6 Single connections reduce complexity and increase performance.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 3: Standard + Disaster Recovery (no profile recovery)
The Standard + Disaster Recovery is an extension of the basic Standard. In this setup, duplicate infrastructure exists in another region, but it remains powered down until needed. Unlike other recovery scenarios, there is no profile recovery in this approach. Instead, users create new profiles in the alternate location. While this is the least complex recovery scenario, it comes with a significant drawback: end-user experience and training become critical components for success.
Key Points
- Duplicate Infrastructure: The disaster recovery region mirrors the primary infrastructure but remains inactive until required.
- No Profile Recovery: Instead of restoring existing profiles, users create new ones in the alternate location.
- Simplicity: This approach minimizes complexity but relies heavily on user familiarity and training.
- End-User Experience: Ensuring a smooth transition and user understanding is crucial.
Summary
The Standard + Disaster Recovery configuration balances simplicity with the need for user education and adaptation.
Figure 2: No Profile Recovery | FSLogix standard containers (VHDLocations)
Prerequisites (Standard + Disaster Recovery)
- FSLogix prerequisites including antivirus exclusions
- Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
- Duplicate storage and compute infrastructure in another region.
- Validated NTFS and share-level permissions (SMB only).
Configuration Items (Standard + Disaster Recovery)
Items | Description |
---|---|
Single VHD location | The VHDLocations setting contains a single UNC path to an SMB file share. |
Single container | A single Profile container is created for the user. The ODFC container isn't configured. |
No concurrent connections | The ProfileType setting is set to 0 or not configured. A user's profile can only be mounted within a single connection. |
No custom profile redirections | No use of redirections.xml file. |
Registry Settings (Standard + Disaster Recovery)
Key Name | Data Type | Value | Description |
---|---|---|---|
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply1 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName2 | DWORD | 1 | Recommended |
LockedRetryCount3 | DWORD | 3 | Recommended |
LockedRetryInterval3 | DWORD | 15 | Recommended |
ProfileType4 | DWORD | 0 | Default |
ReAttachIntervalSeconds3 | DWORD | 15 | Recommended |
ReAttachRetryCount3 | DWORD | 3 | Recommended |
SizeInMBs | DWORD | 30000 | Default |
VHDLocations | MULTI_SZ or REG_SZ | \\<storage-account-name>.file.core.windows.net\<share-name> |
Example |
VolumeType5 | REG_SZ | VHDX | Recommended |
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
2 Provides and easier way to browse the container directories.
3 Decreases the retry timing to enable a faster fail scenario.
4 Single connections reduce complexity and increase performance.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 4: Advanced
The Advanced configuration example builds upon the Standard example by introducing additional features to enhance flexibility and customization.
Key Points
- Multiple VHDLocations or object-specific settings: You can specify multiple locations for storing user profiles (VHDLocations). Alternatively, you can define object-specific settings to tailor profile behavior for specific users or groups. This flexibility allows you to optimize profile management based on your organization’s needs.
- Minimal entries in custom profile redirections: Unlike the Standard setup, where the redirections.xml file isn't used, the Advanced configuration minimizes the number of redirections.xml entries. Each entry in the redirections.xml configuration adds complexity and can cause unknown application behaviors. Minimizing these entries may provide an overall better user experience.
Summary
The Advanced configuration provides granular control over profile storage and redirection, making it suitable for organizations with diverse requirements.
Prerequisites (Advanced)
- FSLogix prerequisites including antivirus exclusions
- Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
- Multiple SMB File Share(s).
- Validated share and NTFS permissions (SMB only).
Configuration Items (Advanced)
Items | Description |
---|---|
Multiple VHD locations | The VHDLocations setting contains a single or multiple UNC paths (separated by semi-colon) to SMB file shares. |
Object-specific settings | Allows unique settings based on a user or group SID. |
Single container | A single profile container is created for the user. The ODFC container isn't configured. |
No concurrent connections | The ProfileType setting is set to 0 or not configured. A user's profile can only be mounted within a single connection. |
Minimal redirections.xml | XML file contains minimal entries with minor complexity. |
Tip
- Review the Custom profile redirections.xml page for additional information.
- The Tutorial: Create and implement redirections.xml page demonstrates how to implement this feature for Microsoft Teams.
Registry Settings (Advanced)
Multiple VHDLocations
Key Name | Data Type | Value | Description |
---|---|---|---|
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply1 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName2 | DWORD | 1 | Recommended |
LockedRetryCount3 | DWORD | 3 | Recommended |
LockedRetryInterval3 | DWORD | 15 | Recommended |
ProfileType4 | DWORD | 0 | Default |
ReAttachIntervalSeconds3 | DWORD | 15 | Recommended |
ReAttachRetryCount3 | DWORD | 3 | Recommended |
RedirXMLSourceFolder | REG_SZ | \\<server-name>\<share-name> |
Example |
SizeInMBs | DWORD | 30000 | Default |
VHDLocations | MULTI_SZ or REG_SZ | \\<storage-account-name-1>.file.core.windows.net\<share-name>;\\<storage-account-name-2>.file.core.windows.net\<share-name> |
Example |
VolumeType5 | REG_SZ | VHDX | Recommended |
Object-Specific VHDLocations
The default VHDLocations is used for any user or group not matched by the object-specific configuration.
Registry Path: HKLM:\SOFTWARE\FSLogix\Profiles\
Key Name | Data Type | Value | Description |
---|---|---|---|
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply1 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName2 | DWORD | 1 | Recommended |
LockedRetryCount3 | DWORD | 3 | Recommended |
LockedRetryInterval3 | DWORD | 15 | Recommended |
ProfileType4 | DWORD | 0 | Default |
ReAttachIntervalSeconds3 | DWORD | 15 | Recommended |
ReAttachRetryCount3 | DWORD | 3 | Recommended |
RedirXMLSourceFolder | REG_SZ | \\<server-name>\<share-name> |
Example |
SizeInMBs | DWORD | 30000 | Default |
VHDLocations | MULTI_SZ or REG_SZ | \\<storage-account-name>.file.core.windows.net\<share-name> |
Example |
VolumeType5 | REG_SZ | VHDX | Recommended |
Registry Path: HKLM:\SOFTWARE\FSLogix\Profiles\ObjectSpecific\S-0-0-00-000000000-0000000000-000000000-1234\
Key Name | Data Type | Value | Description |
---|---|---|---|
VHDLocations | MULTI_SZ or REG_SZ | \\<server-name>\<share-name> |
Example |
Registry Path: HKLM:\SOFTWARE\FSLogix\Profiles\ObjectSpecific\S-0-0-00-000000000-0000000000-000000000-4321\
Key Name | Data Type | Value | Description |
---|---|---|---|
VHDLocations | MULTI_SZ or REG_SZ | \\<azure-netapp-files-computer-account>.contoso.com\<share-name> |
Example |
Warning
Multiple entries in VHDLocations doesn't provide container resiliency. When multiple entries exist, a user will try to create or locate their container from the list of locations in order. The first location which the user has access to or is available will be where the container is created or attached from. If using multiple entries, users should only have access to a single location. Consider using the object-specific configuration settings in lieu of multiple VHDLocations.
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
2 Provides and easier way to browse the container directories.
3 Decreases the retry timing to enable a faster fail scenario.
4 Single connections reduce complexity and increase performance.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 5: Advanced + Disaster Recovery (primary / failover)
The Advanced + Disaster Recovery configuration example adds complexity through a failover design. This is a common strategy to ensure the availability and reliability of your infrastructure in case of a disaster or a failure. With Cloud Cache, you can configure your devices to use two (2) storage providers that store your profile data in different locations. Cloud Cache synchronizes your profile data to each of the two storage providers asynchronously, so you always have the latest version of your data. Some of your devices are in the primary location and the other devices are in the failover location. Cloud Cache prioritizes the first storage provider (closest to your device), and uses the other storage provider as a backup. For example, if your primary device is in West US and your failover device is in East US, you can configure Cloud Cache as follows:
- The primary device uses a storage provider in West US as the first option and a storage provider in East US as the second option.
- The failover device uses a storage provider in East US as the first option and a storage provider in West US as the second option.
- If the primary device or the closest storage provider fails, you can switch to the failover device or the backup storage provider and continue your work without losing your profile data.
Key Points
- Failover design: This design ensures the availability and reliability of your infrastructure in case of a disaster or a failure.
- Profile storage: Cloud Cache enables your to store your profile data in different locations.
- Additional storage cost: Multiple storage locations will increase the overall cost.
- Operational excellence: Manual failover process, which may require the approval of the business stakeholders and process validation.
- End-user experience: You may experience some latency or inconsistency in your profile data due to the asynchronous synchronization to the two storage providers.
Summary
The Advanced + Disaster Recovery configuration shows how a failover design with Cloud Cache can enhance the reliability and availability of your infrastructure by using two storage providers in different locations. It also highlights the drawbacks of this approach, including additional costs, the need for manual failover initiation, and potential latency or inconsistency in profile data.
Figure 3: Cloud Cache (primary / failover) | FSLogix Cloud Cache (CCDLocations)
Prerequisites (Advanced + Disaster Recovery)
- FSLogix prerequisites including antivirus exclusions
- Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
- Two storage providers in at least two regions.
- Validated share and NTFS permissions (SMB only).
Configuration Items (Advanced + Disaster Recovery)
Items | Description |
---|---|
Container redundancy | The CCDLocations contains two (2) storage providers1. The primary site is configured with the closest storage provider listed first and failover storage provider provided listed last. The failover site has the reverse configuration. The closest storage provider first, followed by the primary site storage providers listed last. |
Single container | A single profile container is created for the user. The ODFC container isn't configured. |
No concurrent connections | The ProfileType setting is set to 0 or not configured. A user's profile can only be mounted within a single connection. |
No custom profile redirections | No use of redirections.xml file. |
1 The storage providers must be in different regions or locations.
Tip
Review the Custom profile redirections page for our recommended exclusions.
Registry Settings (Advanced + Disaster Recovery)
Primary site
Key Name | Data Type | Value | Description |
---|---|---|---|
CCDLocations | MULTI_SZ or REG_SZ | type=smb,name="FILES SMB PRIMARY",connectionString=\\<storage-account-name-primary>.file.core.windows.net\<share-name>;type=smb,name="FILES SMB PROVIDER FAILOVER",connectionString=\\<storage-account-name-failover>.file.core.windows.net\<share-name> |
Example |
ClearCacheOnLogoff1 | DWORD | 1 | Recommended |
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply2 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName3 | DWORD | 1 | Recommended |
HealthyProvidersRequiredForRegister4 | DWORD | 1 | Recommended |
LockedRetryCount5 | DWORD | 3 | Recommended |
LockedRetryInterval5 | DWORD | 15 | Recommended |
ProfileType6 | DWORD | 0 | Default |
ReAttachIntervalSeconds5 | DWORD | 15 | Recommended |
ReAttachRetryCount5 | DWORD | 3 | Recommended |
SizeInMBs | DWORD | 30000 | Default |
VolumeType7 | REG_SZ | VHDX | Recommended |
Failover site
Key Name | Data Type | Value | Description |
---|---|---|---|
CCDLocations | MULTI_SZ or REG_SZ | type=smb,name="FILES SMB FAILOVER",connectionString=\\<storage-account-name-failover>.file.core.windows.net\<share-name>;type=smb,name="FILES SMB PROVIDER PRIMARY",connectionString=\\<storage-account-name-primary>.file.core.windows.net\<share-name> |
Example |
ClearCacheOnLogoff1 | DWORD | 1 | Recommended |
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply2 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName3 | DWORD | 1 | Recommended |
HealthyProvidersRequiredForRegister4 | DWORD | 1 | Recommended |
LockedRetryCount5 | DWORD | 3 | Recommended |
LockedRetryInterval5 | DWORD | 15 | Recommended |
ProfileType6 | DWORD | 0 | Default |
ReAttachIntervalSeconds5 | DWORD | 15 | Recommended |
ReAttachRetryCount5 | DWORD | 3 | Recommended |
SizeInMBs | DWORD | 30000 | Default |
VolumeType7 | REG_SZ | VHDX | Recommended |
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
3 Provides and easier way to browse the container directories.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
5 Decreases the retry timing to enable a faster fail scenario.
6 Single connections reduce complexity and increase performance.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 6: Complex
The Complex configuration example builds upon the Advanced example by introducing multiple connections. In this setup, user profiles can handle multiple connections, allowing a single user to have active sessions across different devices simultaneously. Despite the increased complexity, the goal remains to provide a seamless experience for end-users. Properly configured multiple connections enhance productivity and flexibility, making this configuration suitable for organizations with diverse needs and high demands.
Note
Azure Virtual Desktop does not support multiple connections within the same Host Pool.
Summary
The Complex configuration balances sophistication with user-centric design, making it ideal for large organizations requiring scalability and robust profile management.
Figure 4: Complex example with multiple connections | FSLogix standard containers (VHDLocations)
Prerequisites (Complex)
- FSLogix prerequisites including antivirus exclusions
- Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
- Separate pools of virtual machines.
- Multiple SMB file share(s) (not for high availability).
- Validated share and NTFS permissions (SMB only).
Configuration Items (Complex)
Items | Description |
---|---|
Multiple VHD location | The VHDLocations setting contains a single or multiple UNC paths (separated by semi-colon) to SMB file shares. |
Object-specific settings | Allows unique settings based on a user or group SID. |
Single container | A single profile container is created for the user. The ODFC container isn't configured. |
Concurrent connection(s) | ProfileType is set to 3. Users can have multiple sign-ins, but only one (1) session allows writes to the base VHD disk. |
[OPTIONAL] redirections.xml | XML file contains various entries with added complexity. |
Tip
- Review the Custom profile redirections.xml page for additional information.
- The Tutorial: Create and implement redirections.xml page demonstrates how to implement this feature for Microsoft Teams.
Registry Settings (Complex)
Multiple VHDLocations
Key Name | Data Type | Value | Description |
---|---|---|---|
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply1 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName2 | DWORD | 1 | Recommended |
LockedRetryCount3 | DWORD | 3 | Recommended |
LockedRetryInterval3 | DWORD | 15 | Recommended |
ProfileType4 | DWORD | 0 | Default |
ReAttachIntervalSeconds3 | DWORD | 15 | Recommended |
ReAttachRetryCount3 | DWORD | 3 | Recommended |
RedirXMLSourceFolder | REG_SZ | \\<server-name>\<share-name> |
Example |
SizeInMBs | DWORD | 30000 | Default |
VHDLocations | MULTI_SZ or REG_SZ | \\<storage-account-name-1>.file.core.windows.net\<share-name>;\\<storage-account-name-2>.file.core.windows.net\<share-name> |
Example |
VolumeType5 | REG_SZ | VHDX | Recommended |
Object-Specific VHDLocations
The default VHDLocations is used for any user or group not matched by the object-specific configuration.
Registry Path: HKLM:\SOFTWARE\FSLogix\Profiles\
Key Name | Data Type | Value | Description |
---|---|---|---|
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply1 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName2 | DWORD | 1 | Recommended |
LockedRetryCount3 | DWORD | 3 | Recommended |
LockedRetryInterval3 | DWORD | 15 | Recommended |
ProfileType4 | DWORD | 0 | Default |
ReAttachIntervalSeconds3 | DWORD | 15 | Recommended |
ReAttachRetryCount3 | DWORD | 3 | Recommended |
RedirXMLSourceFolder | REG_SZ | \\<server-name>\<share-name> |
Example |
SizeInMBs | DWORD | 30000 | Default |
VHDLocations | MULTI_SZ or REG_SZ | \\<storage-account-name>.file.core.windows.net\<share-name> |
Example |
VolumeType5 | REG_SZ | VHDX | Recommended |
Registry Path: HKLM:\SOFTWARE\FSLogix\Profiles\ObjectSpecific\S-0-0-00-000000000-0000000000-000000000-1234\
Key Name | Data Type | Value | Description |
---|---|---|---|
VHDLocations | MULTI_SZ or REG_SZ | \\<server-name>\<share-name> |
Example |
Registry Path: HKLM:\SOFTWARE\FSLogix\Profiles\ObjectSpecific\S-0-0-00-000000000-0000000000-000000000-4321\
Key Name | Data Type | Value | Description |
---|---|---|---|
VHDLocations | MULTI_SZ or REG_SZ | \\<azure-netapp-files-computer-account>.contoso.com\<share-name> |
Example |
Warning
Multiple entries in VHDLocations doesn't provide container resiliency. When multiple entries exist, a user will try to create or locate their container from the list of locations in order. The first location which the user has access to or is available will be where the container is created or attached from. If using multiple entries, users should only have access to a single location. Consider using the object-specific configuration settings in lieu of multiple VHDLocations.
1 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
2 Provides and easier way to browse the container directories.
3 Decreases the retry timing to enable a faster fail scenario.
4 Single connections reduce complexity and increase performance.
5 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
EXAMPLE 7: Complex + Disaster Recovery (active / active)
The Complex + Disaster Recovery configuration builds upon the Advanced + Disaster Recovery configuration by implementing an active/active design. Instead of load balancing between the two sites, this configuration relies on users having access to only one location. In the event of a drill or BCDR, users from a failed region are granted access to virtual machines in the functioning region.
Key Points
- Failover capability: In the event of a disaster, the surviving regions must have capacity to support all users.
- Profile storage: Cloud Cache enables your to store your profile data in different locations.
- Additional storage cost: Multiple storage locations will increase the overall cost.
- Operational excellence: Manual failover process, which may require the approval of the business stakeholders, process validation and proper user assignments.
- End-user experience: You may experience some latency or inconsistency in your profile data due to the asynchronous synchronization to the two storage providers.
Summary
The Complex + Disaster Recovery configuration with Cloud Cache provides redundancy and flexibility, but business decisions play a crucial role in initiating failover.
Figure 5: Cloud Cache (active / active) | FSLogix Cloud Cache (CCDLocations)
Prerequisites (Complex + Disaster Recovery)
- FSLogix prerequisites including antivirus exclusions
- Azure Virtual Desktop or equivalent Virtual Desktop infrastructure.
- Separate pools of virtual machines in each location.
- Users only have access to a single region at a time.
- Validated share and NTFS permissions (SMB only).
Configuration Items (Complex + Disaster Recovery)
Items | Description |
---|---|
Container redundancy | The CCDLocations contains two (2) storage providers1. The primary site is configured with the closest storage provider listed first and failover storage provider provided listed last. The failover site has the reverse configuration. The closest storage provider first, followed by the primary site storage providers listed last. |
Single container | A Profile and ODFC container exists or is created for each user. |
No concurrent connections | The ProfileType setting is set to 0 or not configured. A user's profile can only be mounted within a single connection. |
[OPTIONAL] redirections.xml | XML file contains various entries with added complexity. |
Tip
- Review the Custom profile redirections.xml page for additional information.
- The Tutorial: Create and implement redirections.xml page demonstrates how to implement this feature for Microsoft Teams.
Registry Settings (Complex + Disaster Recovery)
Site A (West US)
Key Name | Data Type | Value | Description |
---|---|---|---|
CCDLocations | MULTI_SZ or REG_SZ | type=smb,name="FILES SMB WEST US",connectionString=\\<storage-account-name-primary>.file.core.windows.net\<share-name>;type=smb,name="FILES SMB PROVIDER EAST US",connectionString=\\<storage-account-name-failover>.file.core.windows.net\<share-name> |
Example |
ClearCacheOnLogoff1 | DWORD | 1 | Recommended |
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply2 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName3 | DWORD | 1 | Recommended |
HealthyProvidersRequiredForRegister4 | DWORD | 1 | Recommended |
LockedRetryCount5 | DWORD | 3 | Recommended |
LockedRetryInterval5 | DWORD | 15 | Recommended |
ProfileType6 | DWORD | 0 | Default |
ReAttachIntervalSeconds5 | DWORD | 15 | Recommended |
ReAttachRetryCount5 | DWORD | 3 | Recommended |
SizeInMBs | DWORD | 30000 | Default |
VolumeType7 | REG_SZ | VHDX | Recommended |
Site B (East US)
Key Name | Data Type | Value | Description |
---|---|---|---|
CCDLocations | MULTI_SZ or REG_SZ | type=smb,name="FILES SMB EAST US",connectionString=\\<storage-account-name-failover>.file.core.windows.net\<share-name>;type=smb,name="FILES SMB PROVIDER WEST US",connectionString=\\<storage-account-name-primary>.file.core.windows.net\<share-name> |
Example |
ClearCacheOnLogoff1 | DWORD | 1 | Recommended |
Enabled | DWORD | 1 | REQUIRED |
DeleteLocalProfileWhenVHDShouldApply2 | DWORD | 1 | Recommended |
FlipFlopProfileDirectoryName3 | DWORD | 1 | Recommended |
HealthyProvidersRequiredForRegister4 | DWORD | 1 | Recommended |
LockedRetryCount5 | DWORD | 3 | Recommended |
LockedRetryInterval5 | DWORD | 15 | Recommended |
ProfileType6 | DWORD | 0 | Default |
ReAttachIntervalSeconds5 | DWORD | 15 | Recommended |
ReAttachRetryCount5 | DWORD | 3 | Recommended |
SizeInMBs | DWORD | 30000 | Default |
VolumeType7 | REG_SZ | VHDX | Recommended |
1 Recommended to save disk space on the local disk and risk of data loss when using pooled desktops.
2 Recommended to ensure user's don't use local profiles and lose data unexpectedly.
3 Provides and easier way to browse the container directories.
4 Prevents users from creating a local cache if at least 1 provider isn't healthy.
5 Decreases the retry timing to enable a faster fail scenario.
6 Single connections reduce complexity and increase performance.
7 VHDX is preferred over VHD due to its supported size and reduced corruption scenarios.
Appendix: Multiple VHDLocations
logic diagram
When using multiple values in the VHDLocations
setting, it's important to understand how FSLogix determines the location to use.
Warning
Users who have access to multiple locations may create a new profile in another location if the location for their actual profile is not available.
Figure 5: VHDLocations Logic Diagram