天天看點

檔案伺服器之Branchcache分布式緩存

前言:

BranchCache是 Windows 7 和 Windows Server 2008 R2 中的一個功能,當使用者從分支機構位置通路總部的内容時,它可以降低廣域網 (WAN) 使用率并增強網絡應用程式響應能力。啟用 BranchCache 之後,會在分支機構内緩存從 Web 伺服器或檔案伺服器檢索到的内容的副本。如果分支機構内的另一個用戶端請求相同的内容,則該用戶端可以直接從本地分支網絡進行下載下傳,而不需要通過使用廣域網 (WAN) 檢索該内容。總的來說是為了優化分支機構網絡流量。   

根據緩存所處的位置,BranchCache 可以在以下兩種模式之一下操作:托管緩存模式或分布式緩存模式。托管緩存模式通過将運作 Windows Server 2008 R2 的一台計算機部署為分支機構中的一台主機來執行操作。會為用戶端配置主機的完全限定域名,這樣它們可以在可用時從托管緩存中檢索内容。如果在托管緩存中不提供該内容,則會通過使用 WAN 從内容伺服器進行檢索,然後将其提供給托管緩存,這樣後續用戶端可以受益。    

對于使用者數量少于 50 的分支機構,可以采用分布式緩存模式配置 BranchCache。在此模式下,本地 Windows 7 用戶端保持該内容的一個副本,并使其對請求相同資料的其他已授權用戶端可用。這消除了在分支機構中配備一台伺服器的需求。但是,與托管緩存模式不同,此配置僅适合跨單一子網的情形(即,必須通過使用 WAN 在分支機構中每個子網檢索一次該内容)。此外,休眠的用戶端或以其他方式從網絡斷開連接配接的用戶端不能向請求用戶端提供内容。

Branchcache工作原理

分布式緩存模式:在分布式緩存模式下,Windows 7 用戶端緩存它們通過使用 WAN 檢索到的内容,然後在收到請求時将該内容直接發送給其他已授權的 Windows 7 用戶端。下圖顯示分布式緩存模式,并提供緩存和檢索過程的簡單圖示。通過使用 WAN 從内容伺服器檢索内容的第一個用戶端,對于請求相同内容的其他用戶端來說,成為分支機構内該内容的一個源。當第二個用戶端請求相同的内容時,它會從内容伺服器下載下傳内容中繼資料。第二個用戶端接着發送一個請求,請求本地網絡上的段哈希,以确定是否任何其他用戶端已緩存該資料。找到第一個用戶端之後,第二個用戶端會從其本地檢索該内容。

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058068VRx5.jpg"></a>

分布式緩存模式使用以下過程來緩存和檢索資料:    

a.Windows 7 用戶端連接配接到内容伺服器并請求某個檔案(或某個檔案的一部分),完全就像它過去沒有使用 BranchCache 時檢索檔案一樣。    

b.内容伺服器對用戶端進行身份驗證和授權,然後伺服器傳回一個用戶端用于在本地網絡上搜尋該檔案的辨別符。因為這是任何用戶端第一次嘗試檢索該檔案,它尚未在本地網絡上進行緩存。是以,用戶端直接從内容伺服器檢索該檔案并緩存它。    

c.第二個 Windows 7 用戶端從内容伺服器請求相同的檔案。内容伺服器對使用者進行身份驗證和授權,與未使用 BranchCache 時它對用戶端進行身份驗證和授權的方式完全相同。如果成功,它會在通常已發送資料的相同通道上傳回内容中繼資料。    

d.第二個用戶端通過使用 Web 服務發現 (WS-Discovery) 多點傳播協定在本地網絡上發送一個請求,請求所需的檔案。有關 WS_Discovery 的詳細資訊,請參閱白皮書“Web 服務動态發現”。    

e.先前已緩存該檔案的用戶端将該檔案發送給請求用戶端。資料是通過使用某個密鑰加密的,該密鑰是作為内容中繼資料的一部分,從由内容伺服器發送的哈希派生的。    

f.用戶端解密資料,計算從第一個用戶端接收到的塊上的哈希,并確定它等于内容伺服器作為内容中繼資料的一部分提供的塊哈希。這可確定内容未被修改。

Branchcache工作要求

您的系統必須滿足以下要求才能使用 BranchCache:    

a.用戶端計算機必須運作 Windows 7,并啟用了 BranchCache 功能。    

b.伺服器必須運作 Windows Server 2008 R2,并啟用了 BranchCache 功能

實驗拓撲

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058071IGjs.jpg"></a>

Setup

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058073DbpP.jpg"></a>

2, 在總部DC上(嚴謹點說是企業裡提供檔案服務的那台伺服器,我這裡DC是域控并提供檔案服務)安裝檔案服務角色裡的網絡檔案Branchcache和功能裡的Branchcache

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058077iv8b.jpg"></a>

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058081Jmw9.jpg"></a>

3, 在DC上建立共享檔案夾Branchcache,共享後在進階裡選中“啟用Branchcache”

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058087rIul.jpg"></a>

4, 打開組政策,建立一個Ou名字叫“Branchcache_Server”,并定位到計算機配置—政策—管理模闆—網絡—Lanman伺服器,啟用分支緩存的哈希釋出,完成後應用到我們提供檔案服務的伺服器所在的OU上,并gpupdate /force 一下

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058097WslJ.jpg"></a>

5, 建立一個組政策對象,名叫“Branchcache_Client”并編輯政策,定位到—計算機配置—政策—管理模闆—網絡—Branchcache,分别啟用

“啟用Branchcache”

“設定Branchcache分布式緩存模式”

“配置網絡檔案的Branchcache”

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058105HHJp.jpg"></a>

在分布式緩存模式下,BranchCache 将 HTTP 協定用于用戶端計算機之間的資料傳輸,并将 WS-Discovery 協定用于緩存内容發現。必須配置用戶端防火牆才能允許在使用分布式緩存模式的計算機上傳入 HTTP 和 WS-Discovery 通信。    

注:配置為使用托管緩存模式的用戶端也使用 HTTP 協定,但不使用 WS-Discovery 協定。必須将在托管緩存模式下操作的用戶端配置為允許從托管緩存伺服器傳入 HTTP 通信。    

允許使用80、3702号端口,具體配置如下:

定位到計算機配置—政策—Windows設定—安全設定—進階安全Windows防火牆—入站規則,建立允許2條入站政策

“Branchcache-對等機發現(使用WSD)”

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058111v4JX.jpg"></a>

“Branchcache-内容檢索(使用http)”

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058117zq0u.jpg"></a>

完成後應用到分支機構的需要緩存内容的計算機所在的OU上

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_136905812214e0.jpg"></a>

6, 為了單域多站點的複制能夠快速響應,我們直接打開dssite進行立即複制

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058126EJqa.jpg"></a>

7, 待2邊複制完成後,計算機都gpupdate /force ,最好重新開機一下,全部應用政策後,使用netsh branchcache show status all  能顯示BranchCache 服務狀态、本地緩存的位置、本地緩存的大小、BranchCache 使用的 HTTP 和 WS-Discovery 協定的防火牆規則的狀态   

對branchcache使用指令行工具文法,請參考:netsh branchcache /?

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_13690581314vsI.jpg"></a>

8, 我們先使用win7-2到dc上去複制一個檔案,然後再次檢視Branchcache的狀态:說明已經進行了緩存

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_13690581373UVc.jpg"></a>

9,我們使用win7-1通路DC,并考貝同樣的内容,我們使用netstat –n 可以看出,win7-1是通過80端口從win7-1上複制而來!

<a href="http://itmydream.blog.51cto.com/attachment/201305/20/961933_1369058145y8z7.jpg"></a>

IT之夢---你---我---他

2013年05月20日

本文轉自 IT之夢 51CTO部落格,原文連結:http://blog.51cto.com/itmydream/1205188

繼續閱讀