Windows Server 2008 R2所提供的BranchCache功能可以提高网络的响应,当用户从远程办公室访问时,它可以使这些用户的体验就像在本地网络中一样。同时,BranchCache还可以减少对WAN的使用。启用了BranchCache之后,对内网Web和文件服务器的数据访问被缓存在分支办公室本地。当同一网络的另外一个客户端请求这个文件时,它实际上是从本地缓存中下载这个文件,而不需要通过WAN去下载。
图1,BranchCache部署示意图
从本质上讲,BranchCache就像一个大文件柜,储存了本地办公网络的一份内容检索的副本。当其它客户端在同一网络上要求这些内容时,客户端就可以快速检查,并确认它在本地的位置。缓存副本相当于原件在总公司,但是如果其它客户端需要的话,可以从其他客户端通过速度更快的局域网获得该文件。内容可以是以Web为基础的,或者是典型的文件和文件夹。出于安全的考虑,可以配置为SSL或IPSec的加密连接。所有的安全是通过授权的主机服务器来控制的,而不是在远程办公室里进行缓存处理任务的“小服务器”来实现。
BranchCache可以在以下两种模式下运行:
(一) 分布式缓存
通过一个点对点的架构:远程办公室的客户端都使用同事间的缓存。这种方式最适合企业中比较小的办公室,没有时间或资源来管理不同地点的服务器。基本上,每个客户端都扮演成缓存服务器角色,机器间的网络侦听是通过点对点联网来实现的。这个方案要求所有客户端机器运行的必须是Windows 7。
图2,分布式缓存模式BranchCache部署
分布式缓存模式BranchCache工作过程
a) 一个客户端计算机从主办公室的BranchCache-enabled的服务器中下载内容。该内容在下载完成后,将被添加到一个位于其硬盘上的缓存中。
b) 之后,第二台客户端向主办公室的BranchCache-enabled的服务器请求相同的内容。位于主办公室的BranchCache-enabled 的服务器返回描述了所请求的内容的标识符。该客户端计算机搜索本地网络中已经下载并缓存了该内容的其他计算机
c) 第二台客户端计算机发现了第一台计算机缓存中的内容。第二台计算机从第一台计算机中下载内容
这里面有两个问题要解决:
1) 如果第一台客户端关机了,或者是笔记本用户出差了,第二台客户端应该如何获取请求内容?
答:其上问题结果是这样的:如果一个客户端计算机无法在本地网络中找到请求的内容,它返回原始服务器并请求一个下载。
2) 如果第一台客户端下载的文件,在客户端本地被修改了,使得客户端缓存的文件与主办公室的BranchCache-enabled的服务器上的文件内容不一致了,第二台客户端如何获知此情况,并应作如何处理?
答:我们通过第二台计算机的工作步骤来认识这个问题。
a) 第二台客户端连接到主办公室的BranchCache-enabled的服务器(Windows Server 2008 R2操作系统),并且请求一个文件(或者某个文件的一部分),和没有BranchCache 之前的情形完全一样。
b) 服务器验证该用户并且像正常情况一样,校验该用户被授权访问这些数据。
c) 如果服务器和客户端都支持BranchCache,并且BranchCache已经针对这些数据进行了配置,服务器不返回请求的文件,而是返回对这些数据的散列(即HASH值)。
d) 如果第二台客户端监测到延迟比较高(缺省情况是>80ms),它发送一个针对所请求的文件的请求到它所属的局域网上的分布式缓存对等体,该请求使用Web Services Dynamic Discovery (WS-Discovery)组播协议
e) 如果任何分布式缓存对等体拥有该数据的缓存,它们将其返回给第二台客户端。客户端将获取到的缓存进行散列运作(得到HASH值),与主办公室服务器返回的HASH值,进行比对,若两者相等,则验证这些数据没有被修改过,如果不相等,它将返回原始服务器并请求一个下载
f) 如果没有分布式缓存对等体缓存了该数据,客户端将从服务器上直接得到数据。客户端接着对该数据进行缓存,使得其他的客户端能够通过局域网下载该数据。
(二) 托管缓存模式
通过客户端/服务器架构:在远程办公室部署一台服务器,以提供快速存取内容服务。这更适合于大公司下运营良好的中小型分支机构。同时将资源和行政管理等方面的文件,安放在远程的总部服务器上。这是最安全的部署和配置。
托管式缓存模式使用专门一台服务器用于提供分支结构缓存,其他过程与分布式缓存类似。其工作过程如下:a) 一个客户端计算机从主办公室的一台BranchCache-enabled 服务器下载内容
b) 该客户端将下载的内容主动通知到设置在分支结构中,配置了托管缓存服务的服务器,使其缓存该内容。该服务器操作系统要求是Windows Server 2008 R2。
c) 第二台客户端计算机请求相同的内容。主办公室的BranchCache-enabled服务器返回描述了所请求的内容的标识符
d) 客户端计算机查询本地的宿主缓存服务器,并且下载内容
e) 如果客户端计算机无法在宿主缓存服务器上找到内容,它返回到主办公室的原始服务器并且请求下载。
在托管缓存模式中也同样面临在分布式缓存中存在的两个问题,解决机制与之相同,在此不再详述。
(三) 分布式缓存与托管缓存对比
下面给出分布式缓存与托管缓存的特点对比,以便各位在企业设计场景中参考
场景 分布式缓存 托管缓存
原始下载了该数据的客户端离线 数据无法提供 数据在宿主缓存服务器上依然提供
别的客户端所请求的缓存的数据在一个不同的子网上的原始下载客户端上 客户端无法找到缓存的数据 客户从托管缓存服务器中下载数据
网络管理员需要担心组播流量 使用组播 不使用组播
安全管理员担心对等体到对等体之间的通讯 使用对等体到对等体 使用客户端/服务器模式
安全管理员担心便携式计算机上所缓存的数据 一个便携式计算机对等体将会缓存数据 客户端不需要对数据进行缓存
通过本文的介绍,相信大家对于Windows Server 2008 R2的分支机构架构的规划将更加得心应手,结合之前介绍的DirectAccess用户的对于资源访问的体验将产生质的变化。
【编辑推荐】