Cloud Cache registry configuration reference

Note

Cloud Cache configuration may be used for both Profile Container and Office Container. For Profile Container registry settings are applied here: HKLM\SOFTWARE\FSLogix\Profiles. For Office Container registry settings are applied here: HKLM\SOFTWARE\Policies\FSLogix\ODFC.

When using Cloud Cache, CCDLocations replaces VHDLocations. CCDLocations and VHDLocations may not both be present at the same time.

Profile Container reference see: Profile Container registry configuration reference.

Office Container reference see: Office Container registry configuration reference.

CCDLocations

(Required Setting)

Type: REG_SZ / MULTI_SZ

Default Value: N/A

Data values and use

Specifies the storage type and location of Cloud Cache remote containers. CCDLocations should be used instead of VHDLocations when using Cloud Cache, see Profile Containers or Office Container for further instructions. CCDLocations supports SMB and Azure Blob types with up to four remote container locations. When setting CCDLocations, the first location set will be the primary read location. The primary read location will be read from, unless it's unavailable. All locations will be written to.

  • When setting CCDLocations, do not place spaces around delimiters.
  • CCDLocations values are always case-sensitive.

CCDLocations are formatted using a type and a connectionString separated using a ; as the delimiter. The type will accept either smb or azure. The connectionString for smb type must include the full UNC path to the file share. The connectionString for azure type must include the full connectionString as found from the Access Keys section of the storage account. When configuring multiple azure location types, the connectionString must be surrounded by double quotation marks.

  • CCDLocations using SMB: type=smb,connectionString=\\Location1\Folder1;type=smb,connectionString=\\Location2\folder2
  • CCDLocations using Azure (unsecure): type=azure,connectionString="DefaultEndpointsProtocol=https;AccountName=*storage-account-name*;AccountKey=*account-key*;EndpointSuffix=*end-point-suffix*"
  • CCDLocations using Azure (secure): type=azure,connectionString="DefaultEndpointsProtocol=https;AccountName=|fslogix/accountname|;AccountKey=|fslogix/accountkey|;EndpointSuffix=|fslogix/endpointsuffix|"

Warning

Do not use the unsecure method for Azure storage locations in a Production environment. Production workloads should only use Azure storage locations when the connection string is secured using Credential Manager. See the Configure Cloud Cache Tutorial for step-by-step instructions.

CcdMaxCacheSizeInMBs

Note

Introduced with the FSLogix 2009

Type: DWORD

Default Value: 0

Warning

Using CcdMaxCacheSizeInMBs causes FSLogix to perform extra steps including, re-writing data that may have once been in local cache, maintain a manifest of flushed data, and other tasks which require resources. Using CcdMaxCacheSizeInMBs will negatively impact performance, regardless of the size specified, although larger sizes will somewhat decrease the performance impact. Using CcdMaxCacheSizeInMBs increases storage IO and Network traffic.

Depending on the configuration and use, the storage IO and Network traffic increase could be substantial. Setting the CcdMaxCacheSizeInMBs value below 200 will have a significant effect on system performance. CcdMaxCacheSizeInMBs is an advanced configuration option and requires thorough planning as it will have impacts to the overall performance of the profile solution.

CcdMaxCacheSizeInMBs specifies the maximum local cache size in megabytes, per user, during normal operation. Normal operation assumes that all Cloud Cache providers are available, and that storage performance is adequate to accept IO at the rate necessary to accommodate profile utilization. Setting CcdMaxCacheSizeInMBs to 0 (default value) means that Cloud Cache does not attempt to limit the size of the local cache. This setting is not designed to limit the size of the local cache during failure scenarios, but is rather intended to provide predictable operation during normal operation. When CcdMaxCacheSizeInMBs is set, the local cache will be allowed to expand to the maximum size, at which point blocks will be removed from the local cache as they're written to the remote Cloud Cache providers. The algorithm for removing blocks from local cache is a ‘black box’, it is not configurable and is not documented. If a provider is not available, each user’s local cache will be allowed to expand until the disk where it resides is out of disk space. This is the only operating model and is designed to utilize resources in the most efficient way possible prior to impacting the user's experience.

CcdMaxCacheSizeInMBs Examples

Normal Operation

Host A has a maximum of 10 users, and CcdMaxCacheSizeInMBs set to 1000 MB (1 GB), and the host has 20 GB of disk space available. Assuming that all remote providers are available and have appropriate performance, the maximum size of each local cache file will be 1 GB. This will ensure that only 10 GB of the 20 GB available on the host is utilized for local cache files.

Failure Scenario

Host A has a maximum of ten (10) users, and CcdMaxCacheSizeInMBs set to 1000 MB (1 GB), and the host has 20 GB of disk space available. Seven (7) users are active, and three (3) users are idle. Two remote Cloud Cache providers are configured, and one of those providers becomes unavailable. Each users local cache file will continue to expand to support normal operation. This will continue, as needed, until the remote providers become available and the local cache is able to be flushed to the remote providers. If the remote provider does not return to operation before the local cache files utilize all storage on the host, the result will be the same as if the system drive runs out of disk space. The user will be impacted in a negative way up to and including session failures and/or data loss.

Regardless of the scenario above, during a failure event active users may utilize more than their assigned 1 GB while idle users may consume less. This is by design.

ClearCacheOnLogoff

Type: DWORD

Default Value: 0

Data values and use

By default, the Local Cache file won't be removed when the user sign out. If a user accesses a system where it's desirable to have the Local Cache file deleted when they sign out, set ClearCacheOnLogoff to 1.

Enabled

(required setting)

Type: DWORD

Default Value: N/A

Data values and use

Used as described in Profile Container Reference and Office Container Reference.

Cloud Cache disk registration settings overview

Note

INFORMATION FOR ALL DISK REGISTER/UNREGISTER SETTINGS

ALL REGISTER/UNREGISTER settings are only available for FSLogix 2004 or later.

Traditionally, Cloud Cache had rigid behavior when all defined providers were not available at user sign-in and sign out. Specifically, users would never trigger an error during sign in, even if no Cloud Cache providers were available. Also, at sign out, if any Cloud Cache provider was not available the user's sign out would be prevented indefinitely. In most scenarios, where Cloud Cache providers point to highly available storage that would rarely, if ever, be unavailable for extended periods, these settings are ideal for insuring data integrity. In some scenarios, users have expressed a desire for more granular control over these behaviors. The following settings allow configuration of Cloud Cache behavior during disk register (associated with user sign in) and disk unregister (associated with user sign out) events. When configuring any settings associated with disk register or unregister events, verify that you are familiar with the concepts, and that the configurations achieve your data integrity goals. Various setting combinations could cause local profile data to be discarded with no Cloud Cache providers being updated. The result of clearing the local cache, without flushing to a Cloud Cache provider, is the permanent deletion of the user's session data stored in the local cache.

The following settings may be used, with Profile Container and/or Office Container when using Cloud Cache.

Warning

Please read the Cloud Cache disk registration settings overview before using these settings.

HealthyProvidersRequiredForRegister

Type: DWORD

Default Value: 0

Data values and use

This setting specifies the number of healthy Cloud Cache providers required to allow a sign in. If HealthyProvidersRequiredForRegister is set to 0, the default setting, users will always be allowed to sign in, even if no Cloud Cache providers are available.

If a user signs in with no available providers, FSLogix assumes that one or more Cloud Cache providers will become available prior to the user signing out. If a Cloud Cache provider does not become available during the time of the user session, then the user is prevented from signing out (discussed in HealthyProviderRequiredForUnregister).

If it is desired to block a user from signing in and a minimum number of Cloud Cache providers are not available, the HealthyProvidersRequiredForRegister may be set to the number of providers required for a sign in.

If the minimum number of providers required for registration aren't available, then the sign in will fail. When setting HealthyProvidersRequiredForRegister to anything other than 0, then PreventLoginWithFailure and/or PreventLoginWithTempProfile should be used in order to create the desired user experience.

HealthyProvidersRequiredForUnregister

Type: DWORD

Default Value: 1

Data values and use

This setting specifies the number of healthy Cloud Cache providers required for a user to sign out. The default setting is 1, meaning that at least one remote Cloud Cache provider is required for the user to sign out.

If the number of available providers, when a user attempts to sign out, is less than the number set for HealthyProvidersRequiredForUnregister, the user's sign out will be prevented for the time specified in CCDUnregisterTimeout.

Note

Although HealthyProvidersRequiredForUnregister may be set to 0, it is NOT recommended. A setting of 0 for HealthyProvidersRequiredForUnregister will prevent ClearCacheOnForcedUnregister and CCDUnregisterTimeout from ever being evaluated. Setting HealthyProvidersRequiredForUnregister to 0 may cause the permanent deletion of the user session data stored in the local cache, without the protections built in through CCDUnregisterTimeout and ClearCacheOnForced Unregister.

CcdUnregisterTimeout

Type: DWORD

Default Value: 0

Data values and use

CCDUnregisterTimeout represents the number of seconds that a user's sign out will be delayed if the number of available providers is less than specified in HealthyProvidersRequiredForUnregister.

If CCDUnregsiterTimeout is set to 0, then the user sign out will be held until the number of providers specified in HealthyProvidersRequiredForUnregister are available. NOTE: If CCDUnregisterTimeout is set to 0, and the number of providers specified in HealthyProvidersRequiredForUnregister is not met, then the user's sign out may appear to the user as if the session is locked. The sign out may be held infinitely.

ClearCacheOnForcedUnregister

Type: DWORD

Default Value: 0

Data values and use

CCDUnregisterTimeout is set to specify the number of seconds to wait prior to allowing a user session to be closed, even if a successful flush to a Cloud Cache provider has not occurred. If ClearCacheOnLogoff is set, the local cache will be deleted, even if the data in the local cache has not been flushed to a Cloud Cache provider.

To preserve the user data in the local cache, when a user session is forced to close, local cache is NOT deleted in this scenario (Even if ClearCacheOnLogoff is set). This allows user data to be recovered from the local cache, however the local cache file must then be managed (deleted) manually after user data is restored.

If the desired behavior is for the local cache to be deleted, even if the data has not been flushed to a Cloud Cache provider, then ClearCacheOnForcedUnregister should be set to 1.

Warning

Setting ClearCacheOnForcedUnregister to 1 may result in user data saved in the registry during the current session to be lost. It is important to understand that this data isn't recoverable if the local cache is cleared in this scenario. Verify that you understand the implications of changing the default value of this setting prior to making changes.

Global Cloud Cache Settings

The following configuration settings are Cloud Cache specific and are used for ALL Cloud Cache implementations whether applied to Profile containers or Office containers. These settings are found at: HKLM\SYSTEM\CurrentControlSet\Services\frxccd\Parameters

CacheDirectory

Type: REG_SZ

Default Value: N/A

Data values and use

CacheDirectory specifies the location of the Local Cache file. By default, the local Cache file will be placed in C:\ProgramData\FSLogix\Cache. The Local Cache file may be placed on another mapped drive or a UNC. CacheDirectory and ProxyDirectory MUST NOT be the same location as the Proxy File and the Cache File are the same name and will conflict.

Warning

When considering the location of the Local Cache file, it's critical to select storage that is Highly Available and High Performing. Storage that is appropriate for the Local Cache file will have performance and availability characteristics similar to higher performing local storage. CacheDirectory is set prior to GPOs being applied, it is not possible to rely on GPOs to set CacheDirectory in environments where a GoldImage is applied at boot.

WriteCacheDirectory

Type: REG_SZ

Default Value: N/A

Data values and use

WriteCacheDirectory specifies where the files are located that control what data needs to be written to the CCDLocations. These files contain a list of sectors that need to be written to the CCDLocations. For each set, the data is read from the VHD(x) in the CacheDirectory then the data is written to the CCDLocations. Each CCDLocation has it's own write cache list since they may flush at different speeds.

ProxyDirectory

Type: REG_SZ

Default Value: N/A

Data values and use

ProxyDirectory specifies the location of the Local Proxy Stub file. By default, the local Cache file will be placed in C:\ProgramData\FSLogix\Proxy. The Proxy Directory may be placed on another mapped drive. CacheDirectory and ProxyDirectory MUST NOT be the same location as the Proxy File and the Cache File are the same name and will conflict.

Note

Although it is possible to change the location of the Proxy Directory, it is strongly recommended that this is only done when there is no C drive. The Proxy Directory contains no data.

SilenceACLWarning

Type: DWORD

Default Value: N/A

Data values and use

Set SilenceACLWarning to 1 disable the event log warning the proxy or cache ACLs do not match the default values. Please review the default values before setting this value.