分支緩存的技術是從2008R2和Win7開始引入的,此功能通過在分部的計算機中頻繁的本地緩存那些使用過的文件,減少分部與總部之間的WAN網帶寬使用。分支緩存利用下面的協議提高應用程序的性能:
1.HTTP 或者 HTTPS協議。這些協議被網頁瀏覽器和其他應用程序所使用。
2.SMB(服務器消息塊),包括已簽名的SMB流量協議。這個協議被用於訪問共享文件夾。
3.BITS(後臺智能傳輸服務)。這是一個僅利用空閒的網絡帶寬將服務器的內容發佈給客戶端的windows組件。BITS也被應用與微軟的SCCM中。
分支緩存改善了常用的應用程序在慢速網絡的中訪問內部服務器的響應能力。分支緩存不需要額外的基礎架構,你可以通過部署Win7或更新版的客戶端計算機和Win2008R2以上版本的服務器,並啓用分支緩存功能來提升遠程網絡的性能。
分支緩存的文件和文件夾權限保障了用戶只能訪問擁有權限的文件和文件夾。分支緩存能夠與網絡安全技術無縫的結合在一起,包括SSL,SMB簽名和端到端的IPsec。即使能容是被加密的,也可以通過分支緩存技術來降低網絡帶寬的使用並提升應用程序的性能。
分支緩存擁有兩種模式,託管緩存模式和分佈式緩存模式。
託管緩存模式:這種模式主要用於分支機構,在分支機構搭建一臺Win2008R2以上版本的服務器作爲託管緩存服務器。當這臺服務器的託管緩存生效時,客戶端計算機會從這臺服務器的託管緩存中獲取內容。如果在託管緩存中的內容是無效的,託管緩存的服務器會通過網絡連接到存放內容的服務器中獲取所需的內容,然後將獲取到的內容放入托管緩存以便請求成功的客戶端能夠從中檢索到內容。
分佈式緩存模式:對於比較小的分支機構,這種模式更爲適合,它不需要一臺專門的服務器來作爲緩存位置。但是這種模式只能用於各自單獨的子網中,另外如果用戶緩存的客戶端計算機休眠了或者無法連接了,那麼其他請求檢索內容的客戶端是無法檢索到內容的。
使用分支緩存的時候,可以將兩種模式都在企業中應用,但是每個分支機構職能配置一種模式。
在Win2012R2中,分支緩存有以下的改進:
1.允許擴展性,分支緩存能夠在每個位置設置多臺託管緩存服務器。
2.一個新的底層數據庫,使用從Exchange服務器中引入的可擴展存儲引擎技術。這個技術能夠讓一個託管緩存服務器存儲更多的數據,數據的容量可以達到TB。
3.更簡單的部署方法,不再需要每個區域都設置一個GPO。部署分支緩存只需要一個設置好的GPO,當用戶在區域之間移動辦公時,客戶端可以在託管緩存和分佈式緩存模式之間切換,不需要使用特定站點的GPO。
當客戶端和服務器啓用了分支緩存之後,如果客戶端計算機使用HTTP,HTTPS或者SMB協議,客戶端計算機通過以下的步驟來獲取數據:
1.Win8.1的客戶端計算機連接到總部一臺Win2012的內容服務器,最初請求的內容將不會使用分支緩存
2.總部的內容服務器驗證請求用戶,並且確認該用戶擁有訪問數據的權限。
3.總部的內容服務器返回一個哈希值作爲請求內容的標示符給客戶端計算機,而不是發送內容本身。通常內容服務器會使用與之前發送時相同的連接方式發送數據。
4.使用檢索的標示符,客戶端計算機會使用以下方法:
I.如果客戶端計算機被配置成分佈式緩存,那麼它會通過在本地子網中廣播去找到其他的已經下載了內容的客戶端計算機。
II.如果客戶端計算機被配置成託管緩存,那麼它會在配置的託管緩存中搜索內容。
5.如果分支機構中的內容是有效的,客戶端計算機會在分支機構的一臺或多臺客戶端或者託管緩存上檢索內容。客戶端計算機需要確認數據已經更新並且沒有被篡改或者損壞。
6.如果在遠程辦公地點的內容是無效的,那麼客戶端計算機將直接通過WAN網從內容服務器上獲取內容。這臺客戶端計算機可以使用分佈式緩存讓本地網絡中的其他發出請求的客戶端計算機獲得有效的內容,或者按照託管緩存模式將內容發送給託管緩存。
配置分支緩存的要求:
客戶端操作系統需要是Win7及以上的企業或者旗艦版,服務器操作系統需要Win2008R2及以上版本
針對文件服務使用分支緩存需要執行以下操作:
1.在Win2012R2的託管服務器上安裝BranchCache功能或者網絡文件BranchCache角色。
2.使用powershell命令Enable-BCHostedClient或者組策略或者Netsh branchcache set service命令配置客戶端計算機。
如果你想使用分支緩存區緩存文件服務器的內容,你必須執行以下步驟:
1.在文件服務器上安裝網絡文件BranchCache角色服務
2.配置分支緩存的哈希發佈機制
3.創建啓用分支緩存的文件共享
如果你想使用分支緩存區緩存Web服務器的內容,必須在Web服務器上安裝BrancheCache功能,但不需要做其他額外的配置。
在安裝有Hyper-V角色的Win2008R2企業版的核心模式和Win2012R2的數據中心版的服務器上不能使用分支緩存功能。
在分佈式緩存模式中,分支緩存不需要專用的服務器,而是在同一個站點的客戶端之間應用。如果一個客戶端計算機被配置成使用分佈式緩存模式,任意的客戶端計算機可以使用WS-Discovery的廣播協議去搜索本地的已經下載並緩存了內容的計算機。你需要配置客戶端防火牆的入站流量,HTTP和WS-Discovery.
但是在win8.1客戶端會去搜索托管緩存服務器,如果發現了一臺託管緩存服務器,將會自動的把客戶端配置成託管緩存模式。在託管緩存模式中,客戶端計算機會自動將自身配置成託管緩存模式的客戶端,並會搜索託管緩存服務器以便於他們能從託管緩存中獲取內容。
BranchCache配置實驗演示:
環境介紹:
LON-DC1 win2012R2 域服務器
LON-SVR2 win2012R2 成員服務器
LON-CL1 win8.1Ent 客戶端計算機
LON-CL2 win8.1Ent 客戶端計算機
一、配置總部的文件服務器LON-DC1
本實驗中將LON-DC1作爲文件服務器,首先在LON-DC1上安裝網絡文件BranchCache的角色,該角色位於 文件和存儲服務->文件和iSCSI服務中
後續操作都按默認值,開始安裝網絡文件BranchCache
安裝成功後,在LON-DC1上用gpedit.msc打開本地組策略,在計算機配置-管理模板-網絡-Lanman服務器 中找到分支緩存的哈希發佈並啓用它,哈希發佈操作保持默認。
將LON-DC1通過本地組策略設置模擬一個慢速網絡,在計算機配置-windows設置-基於策略的Qos,新建一條策略
策略命名爲100Kbs,將指定出站調解率的值設爲100,後續保持默認完成嚮導
在LON-DC1的C盤建立一個名爲Folder的文件夾,並在文件夾的屬性中啓用高級共享
在高級共享打開緩存選項,並勾選啓用BranchCache
在Folder文件夾中放入一個文件,本實驗中拷貝了一個mspaint.exe文件
在LON-DC1上使用GPMC.MSC打開組策略管理器,新建一個BranchCacheFireWall的組策略來配置客戶端的防火牆
在新建的組策略中設置兩條入站防火牆規則,在預定義中選擇BranchCache-對等機發現(使用WSD)和BranchCache-內容檢索(使用HTTP)
策略設置完畢
二、配置分支機構的託管服務器LON-SVR2
在LON-SVR2上安裝BranchCache功能和網絡文件BranchCache角色
開始安裝所選角色和功能
打開Powershell控制檯,使用命令Enable-BCHostedServer -RegisterSCP將LON-SVR2註冊爲服務連接點
輸入Get-BCStatus,確認顯示的信息中BranchCacheIsEnabled,HostedCacheServerIsEnabled,HostedCacheScpRegistrationEnabled這3個值都是True
將Powershell的顯示內容拉到最下,確認目前DataCache中的CurrentActiveCacheSize的值爲0,表示目前託管主機還沒有緩存數據
三、配置客戶端計算機的BranchCache
連接到LON-DC1,打開AD用戶和計算機控制檯,新建一個名稱爲BranchCache的OU,將LON-CL1和LON-CL2放入這個OU
打開組策略管理器,創建一個新的組策略,命名爲BranchCache,並編輯這個組策略,導航到計算機配置-策略-管理模板-網絡-Branche,將"啓用BranchCache","通過服務連接點啓用自動託管緩存發現","配置網絡文件的BranchCache"都設置成已啓用狀態
將BranchCache和之前創建的BranchCacheFireWall策略鏈接到BranchCache的OU上
使用域管理員賬號登陸LON-CL1,LON-CL2,運行CMD打開命令窗口,在命令窗口中輸入netsh branchcache show status all,或者使用powershell的命令Get-BCStatus,查看BranchCache服務狀態中的服務模式和當前狀態,確保服務處於運行狀態,如果不是運行狀態則用gpupdate /force強制刷新組策略,然後確認BranchCache服務正在運行
四、檢測BranchCache的運行狀況
分別在LON-SVR2,LON-CL1,LON-CL2上面性能監視器中監視BranchCache的性能數據,首先運行Perfmon打開性能監視器控制面板
選中性能監視器,並在右邊的工具欄中將視圖方式修改成報告模式
添加BranchCache對象的監視
在LON-CL1上拷貝LON-DC1上共享的mspaint.exe文件,由於LON-DC1與LON-CL1之間處於一個慢速網絡鏈接的狀態下,所以拷貝所需時間會比較慢,同時你可以觀察性能監視器中的數據,可以看出內容主要是從文件服務器中檢索的,而不是從緩存中
我們切換到LON-SVR2,觀察BranchCache的性能監視,可以看到數據已經緩存到LON-SVR2上了
接下來,我們切換到LON-CL2上,同樣從LON-DC1的共享Folder裏面拷貝mspaint這個文件,可以發現Retrieval:Bytes from cache的值變得比LON-CL1上的大很多,可以看出LON-CL2獲取的內容主要來自緩存。
最後可以在LON-SVR2,LON-CL1,LON-CL2中運行powershell命令Get-BCStatus查看DataCache中的CurrentActiveCacheSize,你會發現數值已經變成mspaint的大小了,說明文件已經緩存了。
注:實驗用的客戶端計算機必須是Win7或者以上的企業版和旗艦版,否則Branche功能是無法生效的。