PowerScale: OneFS: Continuous Availability and Client-Side Caching features are not compatible together
Summary: If the feature Continuous Availability (CA) is enabled for a share , the share will not be useable offline (Client-Side Caching, or CSC).
Symptoms
When you connect to a CA-enabled share, there is no longer an option to use offline files.
Cause
CA was designed for the Scale-out File Server workload, and it provides both disk write-through guarantees and "transparent failover", where a client re-attaches to file handles after a cluster failover. This means that applications like Hyper-V and SQL Server continue to dish out their virtual machines and databases when a storage cluster node reboots.
CSC was designed for branch office and mobile users back when networks were not consistent. A user could cache their unstructured data locally and synchronize with a file server over SMB. By Windows 7 and 8, it was a pretty decent system, with background sync and offline functionality that allowed a user to seamlessly roam while IT got centralized backups.
The root cause of the issues between CSC and CA?
The Offline Files was introduced in 1998 and Continuous Availability in 2010. They are products of very different networks, clients, and strategies but all laid on top of a single protocol family, SMB. They were never designed to interoperate. Offline transitions did not happen quickly enough and applications saw long hangs when trying to access an unreachable share, or the opposite, where data was saved to the local cache instead of being durably persisted on the server.
Starting on Windows 10, when you connect to a CA-enabled share, there is no longer an option to use offline files. No matter the settings, files will not cache and the user will not run into timeout problems.
When you mark a share as continuously available you are essentially committing to the following contract:
- The SMB server must always be available.
- Any data written to the server needs durable persistence on disk and must be resilient to disk failures.
- The network between the client and the server is expected to be fault tolerant and high speed.
The CA feature tries to hide transient failures at any of the above three interfaces from applications by holding and resuming handles. Remember, it s for high-throughput, high-availability, high-IO, mission critical server applications like SQL Server and Hyper-V. #3 above directly conflicts with offline files which assumes flakey, slow, and intermittent network connectivity.
Resolution
If you are looking for data consistency and transparent failover for non-mobile users, then Continuous Availability is best option.
If you are looking to configure a share for mobile users while having inconsistent network access, Client-Side Caching would be a better choice.