Choosing FSLogix Storage: Cloud Cache vs Azure Files vs Azure NetApp Files

Microsoft recommends Azure Files for most FSLogix deployments, Azure NetApp Files for very large or latency-sensitive estates, and Cloud Cache when profiles must survive an outage. The comparison, identity support for Entra ID-joined hosts, what Cloud Cache really costs, and the three business continuity patterns.

By David,

For FSLogix profile containers on Azure Virtual Desktop, Microsoft recommends Azure Files "for most of our customers", with Azure NetApp Files for very large or performance-sensitive estates and Cloud Cache when you need profiles to survive a storage or regional outage. These aren't three equivalent choices. Azure Files and Azure NetApp Files are where the containers live. Cloud Cache is an FSLogix feature that writes each container to up to four storage locations at once, from a local cache on the session host, so it sits on top of one or both of them.

The short version: Start with Azure Files on SSD (premium) shares with zone-redundant storage, using VHDLocations. Move to Azure NetApp Files when you need its lower latency or very high per-volume performance, and you have the Active Directory setup it needs. Add Cloud Cache, with CCDLocations instead of VHDLocations, only when you need profiles to fail over between regions, and accept the cost: storage in two places, I/O-heavy hosts, longer sign-outs and a local cache disk sized for it.

This guide goes with our FSLogix troubleshooting guide. For capacity and IOPS numbers on Azure Files, see Premium Azure Files sizing for FSLogix. Everything below is from Microsoft Learn as of November 2026, with each source linked.


Azure Files vs Azure NetApp Files for FSLogix

Microsoft's own comparison for FSLogix on AVD (storage options):

Azure FilesAzure NetApp Files
Use caseGeneral purposeGeneral purpose to enterprise scale
RegionsAll regionsSelect regions
RedundancyLRS, ZRS, GRS, GZRSLRS; ZRS with cross-zone replication; GRS with cross-region replication
PerformanceUp to 100K IOPS and 10 GBps per share, about 3 ms latencyUp to 460K IOPS and 4.5 GBps per volume, about 1 ms latency
Capacity100 TiB per share, 5 PiB per storage account100 TiB per volume, 12.5 PiB per NetApp account
Minimum1 GiB share1 TiB capacity pool, 50 GiB volume
Identity (in this comparison)AD DS and Microsoft Entra Domain ServicesEntra Domain Services and AD DS

Microsoft's stated default is clear: "We recommend storing FSLogix profile containers on Azure Files for most of our customers."

How performance scales. On Azure Files, Microsoft recommends the provisioned v2 model for new deployments, where storage, IOPS and throughput are provisioned separately (Azure Files billing); for FSLogix at scale it recommends SSD (premium) shares, and SSD shares whenever you use Cloud Cache (Azure Files for virtual desktops). On Azure NetApp Files, throughput is "a function of tier times capacity": the Standard, Premium and Ultra service levels give up to 16, 64 and 128 MiB/s per provisioned TiB (service levels).

Handle limits on Azure Files. A share allows 2,000 concurrent handles per file or directory and 10,000 on the share root, and FSLogix uses about two or three handles per user. On SSD shares these limits are soft: metadata caching and the increased file handle limits (preview) raise them. Microsoft's guidance by concurrent FSLogix users: under 2,000, HDD (standard) shares on pay-as-you-go or provisioned v2 can be enough; 2,000 to 5,000, one or two SSD shares with metadata caching; 5,000 to 10,000, two to four SSD shares; over 10,000, multiple SSD shares with metadata caching and the increased handle limits (Azure Files for virtual desktops).


Identity: which works with Entra ID-joined hosts?

This is often what decides it.

  • Azure Files supports AD DS, Microsoft Entra Domain Services, and Microsoft Entra Kerberos, which lets Entra ID-joined session hosts reach the share without a domain controller. A storage account uses one identity source at a time. Our FSLogix with Entra ID-joined session hosts guide walks through the setup.
  • Azure NetApp Files SMB volumes join AD DS or Entra Domain Services; Microsoft says ANF "doesn't support AD join for Microsoft Entra ID" (ANF SMB FAQ). Hybrid identities can reach ANF shares from Entra ID-joined devices, and Microsoft recommends domain controllers within about 10 ms round trip of the volume (AD site guidelines). Entra Kerberos for ANF SMB volumes is in preview as of September 2026, needs a feature registration, and a NetApp account uses either it or AD DS, not both (ANF Entra Kerberos).

What Cloud Cache is, and what it costs

Cloud Cache changes how FSLogix writes, not where you can store. Instead of VHDLocations, you set CCDLocations to up to four storage providers (SMB shares or Azure Blob). FSLogix keeps a local cache of the container on the session host, reads from one provider (the first healthy one in the list), and writes to all of them (Cloud Cache, settings).

What you get. Profiles that keep working through short storage interruptions, and a copy in a second location you can fail over to. Microsoft's high-availability page labels Cloud Cache the preferred option (high availability), and its multi-region AVD architecture says to "use the FSLogix cloud cache feature instead of storage-specific replication mechanisms", with a recovery point of "seconds to a few minutes" (multi-region BCDR).

What it costs. Microsoft is direct about the trade-offs:

  • It "puts a performance and storage requirement on the virtual machine." The local cache lives in C:\ProgramData\FSLogix\Cache by default, should be on SSD-class storage, and can grow up to the container's SizeInMBs. As a starting point, Microsoft's architecture guidance sizes the cache disk at "at least 30 GB for each concurrent user", adjusted to your actual profile sizes, and an undersized disk "causes sign-in failures."
  • "Cloud Cache is an I/O intensive system and can easily cause network and/or storage bottlenecks" (business continuity), and it can lengthen sign-in and sign-out.
  • Sign-out waits until enough providers are up to date. With the defaults (HealthyProvidersRequiredForUnregister 1, CcdUnregisterTimeout 0), a sign-out can be held indefinitely while no provider is healthy. Microsoft says not to set HealthyProvidersRequiredForUnregister to 0, because the local data could be permanently lost.
  • If no provider can supply data the session needs, the result can be "session hang or worse a system crash (BSOD)."
  • You pay for storage in every provider location, and failover between regions is a manual decision.

The key Cloud Cache settings (settings):

SettingDefaultWhat it does
CCDLocations(none)Up to four providers, in order of proximity then preference, for example type=smb,name="SMB PROVIDER 1",connectionString=\\server\share. Case sensitive, no spaces around delimiters
HealthyProvidersRequiredForRegister0How many providers must be healthy for sign-in. At 0, users can always sign in
HealthyProvidersRequiredForUnregister1How many must be up to date before sign-out completes. Don't set 0
CcdUnregisterTimeout0How long sign-out waits for providers. 0 waits indefinitely
ClearCacheOnLogoff0Delete the local cache at sign-out (1) or keep it for the next sign-in (0)
CacheDirectoryC:\ProgramData\FSLogix\CacheWhere the local cache lives

Business continuity: three options

Microsoft's FSLogix business continuity guidance describes three patterns (business continuity):

  1. No profile recovery. VHDLocations on zone-redundant storage in each region. Users who fail over to another region get new, empty profiles. Microsoft calls it the most cost-effective.
  2. Cloud Cache, primary and failover. Each region's hosts write to their own storage first and the other region's second.
  3. Cloud Cache, active-active. Both regions serve users, with each writing to both locations.

Azure Files SSD (premium) shares don't offer geo-redundant storage, which is part of why Microsoft points to Cloud Cache rather than storage replication for cross-region profiles (multi-region BCDR). Even with Cloud Cache, a profile isn't guaranteed to survive: Microsoft warns that users who sign in at the failover location "could experience data loss or, in worse cases, container corruption." So whichever option you pick, keep business data in OneDrive or SharePoint, not only in the profile (business continuity).

On Azure NetApp Files, cross-region and cross-zone replication exist but are mutually exclusive, and Microsoft notes cross-zone replication "provides recoverability, not automatic zone-level resilience" (multi-region BCDR).


Which should you choose?

Your situationChoose
Most AVD deployments, one regionAzure Files SSD shares with ZRS, VHDLocations
Entra ID-joined hosts with no domain controllersAzure Files with Microsoft Entra Kerberos
Very large estates or latency-sensitive power users, with AD DS in placeAzure NetApp Files
Profiles must survive a regional outageCloud Cache across two regions, with a cache disk sized for it
Profiles can be rebuilt after a regional outageZRS in each region, no Cloud Cache

How Atlas AVD helps

Atlas AVD configures FSLogix per host pool, can create Azure Files storage accounts and shares from Workspace → FSLogix → Storage, and its FSLogix Capacity Monitor checks every profile share every 15 minutes. Auto-expand, when you turn it on, grows Azure Files shares; Azure NetApp Files and other SMB shares are monitored and warn you as they fill, but Atlas doesn't resize them. See FSLogix optimization for the rest.


FAQ

What is the best storage for FSLogix on Azure Virtual Desktop?

For most deployments, Azure Files, as Microsoft recommends, on SSD (premium) shares with zone-redundant storage. Azure NetApp Files suits very large or latency-sensitive estates with AD DS.

What is FSLogix Cloud Cache?

An FSLogix feature that keeps a local cache of the profile container on the session host and writes it to up to four storage locations at once, set with CCDLocations instead of VHDLocations. It adds resilience and cross-region failover at the cost of host I/O, local disk and longer sign-outs.

Do I need Cloud Cache for FSLogix?

Only if profiles must survive the loss of a storage location or region. For a single region, zone-redundant Azure Files without Cloud Cache is simpler and cheaper.

Does Azure NetApp Files work with Entra ID-joined session hosts?

Hybrid identities can reach ANF SMB shares from Entra ID-joined devices, with AD DS behind the volume. Entra Kerberos for ANF is in preview as of September 2026.

Can I use geo-redundant storage for FSLogix on Azure Files premium?

No. SSD (premium) Azure Files shares support locally and zone-redundant storage only, which is why Microsoft recommends Cloud Cache for cross-region profile resilience.

Storage, Cloud Cache and business continuity details are from Microsoft Learn as of November 2026: storage options for FSLogix, Azure Files for virtual desktops, Azure Files billing, Azure NetApp Files service levels, the ANF SMB FAQ, ANF Entra Kerberos, Cloud Cache, configuration settings, high availability, business continuity and the multi-region BCDR architecture.