Home/Blog/How to Enable BranchCache on NetApp CIFS Shares
Storage

How to Enable BranchCache on NetApp CIFS Shares

In distributed environments, remote offices often struggle with slow file access due to high latency and limited WAN bandwidth.BranchCache, a WAN optimization feature from Microsoft, solves this by al...

How to Enable BranchCache on NetApp CIFS Shares

💡 What You’ll Learn: Complete step-by-step configuration of BranchCache on NetApp CIFS shares, Windows client setup, performance testing, and troubleshooting common issues.

Prerequisites

Before enabling BranchCache on your NetApp CIFS shares, ensure that your environment meets these critical requirements:

ONTAP Version Compatibility

BranchCache requires NetApp ONTAP 9 or later for full support. Check your ONTAP version with:

cluster version show

SMB Protocol Requirements

For BranchCache to function, your SMB server must support the correct protocol version:

  • BranchCache v1 requires SMB 2.1 or later
  • BranchCache v2 requires SMB 3.0 or later

Verify your SMB protocol settings:

vserver cifs options show -vserver <vserver_name>

Windows Client Compatibility

BranchCache is a Windows feature, so ensure your remote clients are running:

  • Windows 7+ (Professional, Enterprise, or Ultimate)
  • Windows Server 2008 R2+

Step 1: Verify SMB Protocol Settings

Before enabling BranchCache, you must ensure that the correct SMB protocol versions are enabled on your NetApp storage system.

Enable SMB 2.1 and SMB 3.0

Enable SMB 2.1 for BranchCache v1 support:

vserver cifs options modify -vserver <vserver_name> -smb2-enabled true

Enable SMB 3.0 for BranchCache v2 support:

vserver cifs options modify -vserver <vserver_name> -smb3-enabled true

💡 Pro Tip: After modifying SMB settings, confirm the changes with vserver cifs options show -vserver <vserver_name> and restart the CIFS service if necessary.

Step 2: Configure BranchCache on NetApp CIFS Server

Now that SMB protocols are enabled, configure BranchCache on your NetApp CIFS server by setting up a hash store and enabling the service.

Create BranchCache Hash Store

BranchCache requires a dedicated hash store where metadata for cached files is stored:

vserver cifs branchcache create -vserver <vserver_name> -hash-store-path /vol/branchcache -hash-store-max-size 20GB

Enable BranchCache Service

Enable BranchCache on the SVM:

vserver cifs branchcache modify -vserver <vserver_name> -enabled true

Configure BranchCache Versions and Operating Mode

Enable both BranchCache versions for maximum compatibility:

vserver cifs branchcache modify -vserver <vserver_name> -versions enable-all

Set the operating mode to per-share (recommended for granular control):

vserver cifs branchcache modify -vserver <vserver_name> -operating-mode per-share

Step 3: Enable BranchCache on CIFS Shares

With BranchCache configured at the SVM level, you now need to enable it on specific CIFS shares to control which data is cached.

List Available CIFS Shares

First, check existing CIFS shares on your NetApp system:

vserver cifs share show -vserver <vserver_name>

Enable BranchCache on Specific Shares

Enable BranchCache on an individual CIFS share:

vserver cifs share properties add -vserver <vserver_name> -share-name <share_name> -share-properties branchcache

Verify BranchCache is enabled on the share:

vserver cifs share show -vserver <vserver_name> -share-name <share_name>

⚠️ Important: You should see “branchcache” listed under Share Properties in the output. If not, the configuration was not applied correctly.

Step 4: Configure Windows Clients

After enabling BranchCache on NetApp CIFS shares, configure Windows client devices to take advantage of local caching.

Enable BranchCache on Individual Clients

Open PowerShell as administrator and check BranchCache status:

Get-BCStatus

If BranchCache is disabled, enable it with:

Enable-BCLocal

For enterprise environments, use Group Policy to configure BranchCache across multiple clients:

  1. Open Group Policy Management Console (GPMC)
  2. Navigate to: Computer Configuration → Policies → Administrative Templates → Network → Offline Files
  3. Enable “Turn on BranchCache”
  4. Configure “Set BranchCache Distributed Cache Mode” for branch office caching
  5. Apply the policy to your Active Directory OU containing branch office computers

Force Group Policy update on client machines:

gpupdate /force

Step 5: Test and Verify BranchCache

After configuration, it’s essential to verify that BranchCache is working correctly and providing performance benefits.

Verify Client Status

On Windows clients, confirm BranchCache is running:

Get-BCStatus

Check cached data:

Get-BCDataCache

Performance Testing

Test file retrieval performance:

  1. Open a large file (50MB+) from the CIFS share
  2. Close the file and note the access time
  3. Reopen the same file – it should load significantly faster from cache

Monitor NetApp BranchCache statistics:

vserver cifs branchcache show -vserver <vserver_name>

🎯 Success Indicators: BranchCache service status shows “Running,” cached data is accumulating on clients, and file access times improve significantly on subsequent requests.

Best Practices and Optimization

Follow these best practices to ensure optimal BranchCache performance, security, and long-term maintenance.

Performance Optimization

  • Adjust Hash Store Size: Increase from default 20GB based on network traffic and file usage patterns
  • Use SSD Storage: Store BranchCache data on SSD-backed volumes for improved read speeds
  • Monitor Cache Utilization: Regularly check cache usage with Get-BCDataCache
  • Network Performance: Monitor with Get-BCNetworkStatistics to track cache hits vs. WAN requests

Security Considerations

  • NTFS Permissions: Ensure CIFS shares have proper read/write permissions
  • BitLocker Encryption: Configure Windows BitLocker to encrypt cached content on clients
  • Audit Logging: Enable CIFS audit logging with vserver cifs audit enable
  • Access Controls: Use Group Policy to restrict BranchCache to authorized users only

Maintenance and Updates

  • Keep ONTAP Updated: Regular updates provide performance improvements and security patches
  • Windows Updates: Ensure clients receive latest BranchCache updates via Windows Update or WSUS
  • Regular Testing: Periodically test file access speeds to confirm BranchCache effectiveness
  • Documentation: Maintain records of configured shares and client deployments

Conclusion

Enabling BranchCache on NetApp CIFS shares significantly improves file access speeds for remote users while reducing WAN bandwidth usage. By caching frequently accessed files locally, BranchCache enhances user experience and optimizes network performance across distributed environments.

Following this comprehensive guide, you’ve successfully configured BranchCache at both the NetApp storage level and Windows client level, implemented proper testing procedures, and established best practices for ongoing maintenance and security.

🔗 Related Resources: For additional NetApp optimization techniques, explore our guide on connecting to storage systems using iSCSI, NFS, and CIFS/SMB.

Frequently Asked Questions

Find answers to common questions

WAN traffic reduction: 60-90% for repeated file access (Office docs, PDFs), 30-50% for mixed workloads. Real example: 50-user branch office, 100Mbps WAN link, heavy Office 365 offline file access—BranchCache reduced WAN usage from 80Mbps to 15-25Mbps (70% reduction). User experience: first open of file = normal speed (WAN fetch), subsequent opens = LAN speed (cached locally, 10-100x faster). Typical gains: 20MB PowerPoint over WAN = 8-15 seconds, from cache = <1 second. Scenarios with biggest wins: branch offices with limited WAN bandwidth (<100Mbps), users accessing same files repeatedly (shared templates, project files), Office documents and PDFs (high reusability). Less effective for: unique files (CAD, video editing), streaming content, constantly updated files. Setup time: 1-2 hours NetApp side, 2-4 hours client deployment (GPO). ROI: 50-user branch with $500/month WAN upgrade vs $0 BranchCache setup. Storage requirement: 5-20GB per client for cache (configurable).

Two BranchCache modes: Hosted Cache (requires Windows Server 2012+ at branch) and Distributed Cache (peer-to-peer, no server needed). Hosted Cache: central server at branch caches files (better for 50+ users, predictable performance, survives client reboots), requires Windows Server 2012+ ($500-$1000 license + hardware). Distributed Cache: clients cache for each other (peer-to-peer, good for <50 users, free—no server needed). NetApp role: BranchCache content server (generates hashes, serves files), works with both modes. Recommendation: <20 users = Distributed Cache (zero cost, clients share cached content), 50+ users = Hosted Cache (centralized, better performance, survives user logoffs). Hosted Cache hardware: modest (2-4 cores, 8GB RAM, 100GB-1TB storage for cache), can be VM. Setup: NetApp enables BranchCache on CIFS share (simple), clients configured via GPO (15-30 mins), Hosted Cache server if needed (1-2 hours setup). Cost: Distributed free, Hosted adds $500-$2000 (server + license). Mixed: use Distributed at small branches, Hosted at large branches.

Prerequisites: NetApp Data ONTAP 8.1+ (check with 'version' command), CIFS license enabled, SMB 2.1+ (default on modern NetApp). Step 1: SSH to NetApp, verify BranchCache not already enabled: vserver cifs branchcache show. Step 2: Enable BranchCache on vserver: vserver cifs branchcache create -vserver -path /path/to/cache -operating-mode per-share (or all-shares). Step 3: Configure specific share for BranchCache: vserver cifs share properties add -vserver -share-name -share-properties branchcache. Step 4: Verify: vserver cifs share show -vserver -share-name (should show branchcache property). Step 5: Client side—deploy GPO to enable BranchCache on Windows clients (Computer Config → Policies → Admin Templates → Network → BranchCache). Timeframe: NetApp config 15-30 mins, GPO deployment 30-60 mins. Cache location: NetApp stores hashes in /path/to/cache (needs 5-10GB, grows with usage). Troubleshooting: event viewer on clients for BranchCache errors, NetApp 'statistics show' for hit rates.

BranchCache only works for on-premises SMB shares (NetApp CIFS, Windows File Servers)—does NOT work with Office 365/OneDrive/SharePoint Online (cloud services use HTTPS, not SMB). Confusion: Office 365 has different caching (Outlook Cached Mode for email, OneDrive Files On-Demand for cloud files). BranchCache scenario: branch office accesses NetApp CIFS share over WAN (\netapp\share\file.docx), opens file in Office 365 app (Word, Excel), BranchCache caches the file content from NetApp. It doesn't cache Office 365 cloud sync. Hybrid scenario: OneDrive configured to sync to on-premises file server, then access via NetApp CIFS share with BranchCache (works). Cloud alternative to BranchCache: OneDrive Files On-Demand (caches files locally automatically), Azure Files with SMB (supports BranchCache if on-premises), SharePoint Online with local sync. Recommendation: BranchCache for on-premises file servers (NetApp, Windows), OneDrive Files On-Demand for cloud files, hybrid approach possible but complex.

NetApp side: hash store (not full files), typically 1-5% of shared data size. 1TB shared data = 10-50GB hash storage on NetApp. Configure: vserver cifs branchcache create -path /vol/cache (create dedicated volume, 50-100GB typical). Client side: full file cache, size varies by mode. Distributed Cache: 5GB default per client (configurable 1GB-100GB via GPO), stores actual file content. Hosted Cache: 50GB-1TB on server (depends on user count and data access patterns, 50 users = 100-500GB typical). Calculation: estimate 100-500MB per user for typical office workloads (Word, Excel, PDF), multiply by user count. Example: 100-user branch, Hosted Cache = 10-50GB realistic, configure 100GB-500GB for headroom. Cache grows over time: monitor disk usage, BranchCache auto-purges old content (LRU). NetApp performance: use SSD aggregate for hash store if high I/O (better hash generation), HDD adequate for small deployments. Client cache location: C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistRepub (Distributed), custom path for Hosted. Monitoring: NetApp 'statistics show -object cifs' for cache hits, Windows Event Viewer for client cache stats.

Optimize Your Storage Infrastructure

From on-prem NAS to cloud storage, our team designs cost-effective solutions that perform and scale.