The Windows BranchCache feature optimizes WAN bandwidth, but many admins aren't aware of all its facets and which...
deployment model suits their organization.
Microsoft introduced BranchCache in Windows Server 2008 R2 to speed up communication between a home office and end users located in branch offices. When an admin enables Windows BranchCache, a client can download a file that can be stored either on a hosted cache server or on a client computer that operates in distributed cache mode. When other client computers access that file, BranchCache retrieves the cached content of the file from either the hosted cache server or the client that operates in distributed cache mode. This avoids the need to download the file again.
Another benefit of Windows BranchCache is that applications that access a file over the network don't need to cross network boundaries. Instead, applications retrieve cached contents on the hosted cache server, which improves response time and, in turn, increases worker productivity. This opens up more WAN bandwidth for other networking applications.
Windows BranchCache modes and considerations
There are two BranchCache modes: distributed and hosted.
In the hosted cache mode, the content cache resides in a Windows Server computer at the branch locations. The client computers fetch cached contents from that hosted cache server.
In the distributed cache mode, the Windows client computers cache the contents. When a BranchCache-enabled client computer needs to access a file, it performs a discovery of the cached content through a broadcast request on the local subnet. In Figure 1, PC1 downloads contents from the server at the hub site, and then PC2, PC3 and PC4 retrieve content from PC1 rather than contacting the server for the same file.
As part of the Windows BranchCache planning process, keep track of:
- the number of client subnets;
- if a Windows Server OS runs in the branch locations;
- data access frequency; and
- networking applications.
Use hosted cache mode if a branch location uses fewer than 100 client subnets and a local Windows Server system as the hosted cache server. Since the hosted cache server is a single point of contact to maintain and distribute all cached contents, it can send the cached contents to clients on any client subnet. Hosted cache mode increases cached content availability if the client that requested the file is unavailable.
Alternatively, use distributed cache mode in a branch location if there is no available Windows Server computer in that office and there are fewer than 100 client subnets. However, if there are several user subnets in the branch location, use hosted cache mode, which avoids unnecessary broadcast traffic on the network. The benefit of distributed cache mode is that it avoids the need for a separate server and requires less administrative work to set up and maintain.
Microsoft improved the BranchCache algorithm in Windows Server 2012 to preload contents to hosted cache servers in branch locations. This improved the speed over previous versions, which required a client to download the files before the cache process could proceed.
If a branch location runs 10 or more network applications that require access to remote data, install a hosted cache server to provide a single point of contact for applications to retrieve the cached data.
There are scenarios where the use of both BranchCache modes is appropriate. For example, the administrator might set up a distributed cache mode for a particular user subnet but will also install a hosted cache server in the same branch location to serve cached contents for other client subnets.
Requirements before a Windows BranchCache deployment
The client computers that need access to cached contents on the hosted servers must run Windows 8, Windows 8.1 or Windows 10. Lower versions, such as Windows 7, support Windows BranchCache, but the newer client OSes use more advanced BranchCache features, such as content chunking -- which splits files into smaller sections -- and updated hash version support for greater bandwidth savings.
An organization that uses BranchCache on an Active Directory (AD) domain can use Group Policy settings to control BranchCache settings on client computers from a domain controller. Otherwise, the business must use the Netsh command-line utility or PowerShell cmdlets to configure settings on client computers.
Manage Windows BranchCache with PowerShell
Earlier versions of Windows, such as Windows Server 2008 R2 and Windows 7, required the Netsh utility to administer BranchCache.
However, newer versions of Windows, such as Windows 8 and Windows Server 2012, support BranchCache PowerShell cmdlets. Now, administrators who write scripts can reduce time spent on recurring maintenance and configuration tasks.
Administrators use Netsh or PowerShell to improve Windows BranchCache performance or perform configuration tasks on the hosted cache server. For example, admins can increase the amount of cache storage, clear cache contents, register a hosted cache server service connection point in Active Directory for the discovery and export and import cached contents.
Administrators can build new data cache files to boost BranchCache performance. In PowerShell, to add a new cache file or increase storage on a hosted cache server, run the following command, which reserves 15% of total disk space on the E drive:
Add-BCDataCacheExtension –Path E:\NewDataCache –Percentage 15.
For additional PowerShell commands to manage the Windows BranchCache deployment, check the Microsoft TechNet section.
Admins can use AD sites to limit where client machines discover the hosted cache servers. Admins should associate client subnets with AD sites. With that boundary set, a client computer will not check for a hosted cache server outside its own site.
Configure Windows Server Updates Services to avoid bottlenecks
Manage cached credentials with PowerShell
Know when to use caching, tiering for storage