这天,Contoso公司的广州办又抱怨工做时间访问总部的文件服务器很慢,常常没法正常打开共享文件。IT部接到抱怨后,开始分析广州办的网络使用状况,结果发现,除了平常互联网应用外,你们访问总部文件服务器的时候,常常须要下载相同的文件,这样重复性的访问,加剧了广州办原本就不宽松的网络负载压力。IT经理让你们出谋划策,看如何解决既知足广州办访问互联网的需求,又能加速访问总部文件服务器的速度。小赵沉思几秒,脱口而出:试试Windows Server 2008 R2的Branch Cache吧。html
1、 Branch Cache 简介web
也许你们的公司会出现这样一种状况:总部的员工访问总部的文件服务器快速高效,由于他们处于局域网中。但对于远程分支机构办公的员工,访问总部的文件就没那么走运了,在网络应用高峰时期,使用一个稍微大一些的文档,须要花费几分钟甚至几十分钟的时间。即便网络应用负载不高,广域网的稳定性及速率也不尽人意。这样的下降分支机构的员工的工做效率,让人很不爽。缓存
Branch Cache正是为此而设计的。当在Windows 7和Windows Server 2008 R2上启用了Branch Cache后,总部的web和文件服务器内容在分支机构请求访问时被缓存到分支本地网络,当该分支的另外一客户端请求访问相同内容时,通过总部服务器的验证受权后,则能够直接从分支本地网络访问它。服务器
2、 Branch Cache的缓存模式网络
Branch Cache的缓存模式分为两种:分布式缓存和托管式缓存。如图1
并发
图1分布式
托管式缓存(Hosted Cache mode)须要Branch Cache功能被部署在分支机构的Windows Server 2008 R2上,当Windows 7客户端第一次从总部服务器中访问数据时,会先经过广域网获取数据,同时也被缓存服务器缓存,当分支机构又有访问相同数据的请求时,总部服务器只返回数据的哈希值,而由缓存服务器来提供数据访问需求。ide
分布式缓存适用于分支机构少于50个员工的状况,它不须要单独的服务器提供缓存,而是利用被配置成分布式缓存模式的Windows 7客户端为其余通过验证的Windows 7客户端提供已缓存的请求数据。可是此模式经过组播请求数据的时候,不能跨越子网。另外,当分支机构能够提供内容缓存的Windows 7客户端离线或者不可用时,将没法提供内容给请求客户端。this
注意:一个客户端不能同时使用托管和分布式缓存。若是客户端被配置成托管缓存模式,那将不会维持本地缓存内容。若是客户端被配置成分布式缓存模式,那它不会联系本地托管模式的Branch Cache的服务器。加密
3、 托管缓存是如何工做的
图2描述了托管缓存模式,并提供了文件缓存和检索过程的简要说明。
图2
具体工做过程以下:
1. 分支机构的Windows 7客户端链接到运行Windows Server 2008 R2的总部数据中心,请求所需内容,这个过程与不使用Branch Cache获取内容时同样。
2. 数据中心服务器对客户端进行验证,并验证其是否有权访问数据。若是验证成功,数据中心服务器将使用原来的通讯通道返回一个内容元数据,而不是内容自己。
3. 客户端A使用元数据中的标识符(哈希值)搜索本地托管模式的Branch Cache的服务器。因为尚未客户端检索过该内容,它尚未被缓存到分支本地网络。所以,客户端A会直接从总部数据中心检索内容。
4. 客户端A从总部数据中心下载到内容后,与托管缓存服务器创建SSL链接,并发送内容标识符。
5. 缓存服务器链接到客户端A,检索缓存,下载内容并存储在缓存池中。
6. 客户端B在总部数据中心请求相同的内容时,数据中心验证用户并返回内容标识符。
7. 客户端B就使用这些标识符向托管缓存服务器请求内容。托管缓存服务器加密数据并发送给客户端B。
8. 客户端B解密数据,并校验收到的缓存内容的哈希值,与总部数据中心提供的值进行比较。确保得到的内容没有被修改。
4、 分布缓存是如何工做的
图3描述了分布缓存模式,并提供了文件缓存和检索过程的简要说明。
图3
分布缓存请求数据的过程与托管缓存相似,除了被请求的数据发送到内部网络的客户端中,而且不须要缓存服务器。
1. 分支机构的Windows 7客户端链接到运行Windows Server 2008 R2的总部数据中心,请求所需内容,这个过程与不使用Branch Cache获取内容时同样。
2. 数据中心服务器对客户端进行验证,并验证其是否有权访问数据。若是验证成功,数据中心服务器将使用原来的通讯通道返回一个内容元数据,而不是内容自己。
3. 客户端使用内容元数据中的标识符在分支本地网络搜索。因为尚未客户端检索过该内容,它尚未被缓存到分支本地网络。所以,客户端A会直接从总部数据中心检索内容并缓存到客户端本地。
4. 客户端B也从总部数据中心请求相同的内容。数据中心也对客户端进行验证和受权,像没有启用Branch Cache同样。若是验证成功,也会返回一个请求内容的元数据。
5. 客户端B在分支本地网络使用WS-Discover组播协议请求数据内容。
6. 客户端A使用SSL加密通道将已缓存的内容数据发送给客户端B。
7. 客户端B解密数据,并校验收到的缓存内容的哈希值,与总部数据中心提供的值进行比较。确保得到的内容没有被修改。
关于Branch Cache的元数据:为了能确保传递正确的内容给发出请求的客户端,启用了Branch Cache的服务器会使用哈希值来肯定内容。当用户访问启用了Branch Cache的文件或web服务器时,会返回给用户一个SHA-256的哈希值,而不是内容自己的哈希值。因为这个元数据值小于真实内容的数千倍,因此大大下降了经过广域网链路的数据量。
总结:经过上面的描述,想必你们对Branch Cache已经有必定了解了。下一篇,将开始在Contoso公司的广州办部署Branch Cache,看看它究竟是如何解决广州办员工的烦恼的。