Windows Server 2008 R2 负载平衡入门篇
一、簡單介紹負載均衡
負載均衡也稱負載共享,它是指負載均衡是指通過對系統(tǒng)負載情況進行動態(tài)調整,把負荷分攤到多個操作節(jié)點上執(zhí)行,以減少系統(tǒng)中因各個節(jié)點負載不均衡所造成的影響,從而提高系統(tǒng)的工作效率。
在常用的大型服務器系統(tǒng)當中都存在著負載均衡組件,常用的像微軟的網(wǎng)絡負載平衡NLB、甲骨文的Oracle RAC、思科的負載均衡(SLB),Apach+Tomcat 負載均衡,它們能從硬件或軟件不同方面實現(xiàn)系統(tǒng)各節(jié)點的負載平衡,有效地提高大型服務器系統(tǒng)的運行效率,從而提升系統(tǒng)的吞吐量。本篇文章以微軟的網(wǎng)絡負載平衡NAT為例子,簡單介紹Windows Server 2008 R2 負載平衡的安裝與使用方式。
在Windows Server 2008 R2當中,存在著 “網(wǎng)絡負載平衡” 功能 (簡稱 NLB, Network Load Balancing),它以TCP/IP 為基礎的服務,可以將一個已注冊的IP地址映射到多個內部域的IP地址當中,讓多臺主機為同時對網(wǎng)絡請求作出反應。使用NLB網(wǎng)絡負載均衡最多可以連接到32臺主機上,讓32臺主機共同分擔大量的服務壓力。在Windows Server 2008 R2 中還具備 “故障轉移群集” 功能,它是利用負載共享的方式,把多臺服務器的共用信息進行持久化儲存,當其中某臺服務器出現(xiàn)問題時,請求會自動分攤到其他服務器當中。使用 “故障轉移群集” 功能,更能保證 “網(wǎng)絡負載平衡集群”的正常運行,有利于統(tǒng)籌管理分布式系統(tǒng)中的各種資源,利用共享信息及其服務機制擴大系統(tǒng)的處理能力。“故障轉移群集” 功能將在下一篇文章再作詳細介紹。
?
?
二、NLB 主要功能
?
三、NLB 使用方式
3.1.? 打開 “服務管理器”,添加 “網(wǎng)絡負載平衡” 功能。
3.2. 安裝完成后,打開“網(wǎng)絡負載平衡管理器”
3.3.新建群集,連接到作為群集服務器當中的一臺主機
3.4.為此主機綁定優(yōu)先級數(shù),和專用的IP地址,一臺主機可以綁定多個IP地址
3.5.建立群集IP地址以進行負載平衡,若存在多個IP地址系統(tǒng)將會以第一個IP作為此群集的IP對信息進行檢測。
3.6.設定群集參數(shù),此處可設定群集完整的Internet名稱,確定其操作模式。此處需要稍作解釋:
3.6.1 單播模式
指把各主機節(jié)點重時指向同一個虛擬MAC地址,在此情況下各節(jié)點之間不能實現(xiàn)通訊。
3.6.2 多播模式
指各主機節(jié)點都保留原有的MAC地址,此外再外加專用于NLB的通訊MAC地址,使各節(jié)點之間能正常實現(xiàn)通訊。但并非所有的路由器或交換機都支持多播模式,使用時需要謹慎處理。
3.6.3 IGMP多播模式
建立在多播模式功能之上,在默認情況下每隔60秒發(fā)送一次IGMP信息。它可以確保發(fā)送給網(wǎng)絡負載平衡群集的通訊只通過服務于群集主機的端口,而不是所有交換機端口。
注意: 由于并非所有路由器或交換機都支持多播模式,所以在不確定的情況下最好使用雙網(wǎng)卡單播模式,并且預先設置好ARP,否則可能造成跨網(wǎng)段無法訪問群集ip的錯誤。
3.7 綁定群集開放的端口,此處可為主機設置一定范圍內的開放端口。置于TCP、UDP協(xié)議就不多作解釋,一般設置只使用TCP協(xié)議使數(shù)據(jù)傳輸更具備可靠性和安全性。此處對篩先模式稍作解釋:
3.7.1 多主機
該參數(shù)指定了群集中多個主機處理與端口規(guī)則相關的網(wǎng)絡通訊。通過在多個主機之間分布網(wǎng)絡負載,該篩選模式提供了可縮放性能以及容錯。可以指定在主機之間均衡分布負載,或每個主機處理指定的負荷量。在多主機相似性選項中,存在3種選擇:
- “無”選項:指定來自同一客戶端 IP 地址的多條連接可由不同的主機(無客戶端的相似性)進行處理。第一次請求可能指向主機A,第二次請求可能指向主機B,為了實現(xiàn)在多臺主機之間共享session,系統(tǒng)應該預先把session作出持久化處理。若使用ASP.NET進行開發(fā)時,可通過命令:
aspnet_regsql.exe -S 〈SQL Server IP> -U 〈User Name> -P 〈Password> -E -ssadd -sstype c -d 〈Database Name>
建立用于Session持久化保存的數(shù)據(jù)庫 - “單一”選項:指定網(wǎng)絡負載平衡應該將來自同一客戶端 IP 地址的多個請求導向同一臺群集主機。這是相似性的默認設置。
- “網(wǎng)絡”選項:指相似性指定網(wǎng)絡負載平衡將來自同一個 TCP/IP C 類地址范圍的多個請求定向到同一臺群集主機。比如在客戶端使用了多臺代理服務器對群集進行訪問時,請求看起來像源自不同的計算機。啟用“網(wǎng)絡”相似性選項,可以正確處理同一客戶端多個代理服務器的session會話數(shù)據(jù)。
3.7.2 單一主機
該參數(shù)指定群集中的單個主機根據(jù)指定的處理優(yōu)先級來處理相關端口規(guī)則的網(wǎng)絡通訊。該篩選模式為處理網(wǎng)絡通訊提供了端口專用的容錯性能。
3.7.3 禁用該端口范圍
該參數(shù)指定阻止相關端口規(guī)則的所有網(wǎng)絡通訊。在這種情況下,網(wǎng)絡負載平衡驅動程序將篩選所有相應的網(wǎng)絡數(shù)據(jù)包或數(shù)據(jù)報。該篩選模式可讓您阻止傳送到特定范圍的端口的網(wǎng)絡通訊。
3.8 在完成群集配置后,在群集上按右鍵,選擇 “添加主機到群集”,重復 3.3 、3.4安裝步驟,可連接多臺群集主機。
?
四、網(wǎng)絡負載平衡群集系統(tǒng)測試
建立一個ASP.NET項目,加入以下 Default.aspx 頁面,然后建立一個群集,綁定IP為192.168.1.110,在編輯 “端口規(guī)則” 時,選擇 “多主機無相關性” 篩選模式。最后分別在群集加入Virtual-PC-A1、Virtual-PC-A2兩臺主機。使用第三方客戶端進行訪問時,多次點擊 NewPage 連接時,可檢測到系統(tǒng)會把請求連接到不同的主機之上。
1 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <head runat="server"> 3 <title></title> 4 <script type="text/C#" runat="server"> 5 protected void Page_Load(object sender, EventArgs e) 6 { 7 String hostName = System.Net.Dns.GetHostName(); 8 Response.Write(hostName+"<br/>"); 9 IPAddress[] addressList = System.Net.Dns.GetHostAddresses(hostName); 10 foreach(IPAddress address in addressList) 11 Response.Write(address.ToString()+"<br/>"); 12 } 13 </script> 14 </head> 15 <body> 16 <form id="form1" runat="server" > 17 <div align="left"> 18 <a href="http://192.168.1.110/Default.aspx" target="_blank">New Page</a> 19 </div> 20 </form> 21 </body> 22 </html>測試結果
?
五、NLB 安裝注意事項
5.1.如果需要使用“域”服務,一般在安裝 “網(wǎng)絡負載平衡” 管理器前,先添加“Active Directory 域服務” 角色,并進行林、域配置。
?
若服務器需要使用IIS或者ASP.NET,那么在安裝 NLB 前建議先添加Web服務器(IIS)服務器角色和 .NET Framework 3.5 功能
5.2.要建立 “網(wǎng)絡負載平衡群集” ,需要先在 “高級共享設置” 中打開 “啟用網(wǎng)絡發(fā)現(xiàn)” 功能。
若無法打開 “啟用網(wǎng)絡發(fā)現(xiàn)” 功能,可先在服務管理器中打開以下3項服務:
- Function Discovery Resource Publication
- SSDP Discovery
- UPnP Device Host
5.3. 若使用VMware、Hyper-V等虛擬化工具,在網(wǎng)絡中實現(xiàn)信息共享時無法查找到其他虛擬主機,可嘗試檢查虛擬機設置時“網(wǎng)絡適配器”是否使用同一種“網(wǎng)絡連接方式”,并且已打開“網(wǎng)絡共享服務”功能。
5.4.在“網(wǎng)絡負載平衡管理器”中建立群集,群集連接主機時顯示“RPC連接服務器不可用”等錯誤信息,可嘗試檢查主機有否打開“Remote Procedure Call(RPC)”和“Remote Procedure Call(RPC)Locator” 服務,并查檢“Remote Procedure Call(RPC)的屬性——依存關系——依賴服務” 的“狀態(tài)”是否已經(jīng)全部設置為 “已經(jīng)啟動” 或 “啟動類型” 設置為 “自動”。
5.5. 若使用虛擬化工具克隆主機,在群集連接主機時顯示 “指定主機沒有可用于安裝新的群集的任何接口”,這可能是在克隆主機時多臺主機使用同一個MAC造成的,此時可以嘗試卸載網(wǎng)絡適配器的驅動程序,然后再進行驅動軟件更新。
5.6.若在群集連接主機時顯示出現(xiàn)錯誤提示 “在主機 ‘MyPC上的NLB管理器’ 不能繼續(xù),因為沒有安裝Microsoft群集服務” 。可以檢查服務器上是否已經(jīng)成功安裝 “網(wǎng)絡負載平衡” 服務,然后打開 “本地連接-屬性”,選擇“網(wǎng)絡負載平衡(NLB)”。
?
結束語
為滿足大型企業(yè)內部需求,實現(xiàn)企業(yè)服務器的高性能、高可用度、高可靠度,各大軟、硬件提供商都構建起一系列的解決方案,而微軟的網(wǎng)絡負載平衡(NLB)只是其中一種。但鑒于本人知識度有限,且并非網(wǎng)絡服務管理類專家,所以本文只牽涉到NLB入門安裝方面的知識。
更多資料可參閱 TechNet Library http://technet.microsoft.com/zh-cn/library/cc778263.aspx
文中存在的錯誤與漏洞敬請各位點評。
對 .NET 開發(fā)有興趣的朋友歡迎加入QQ群:230564952 共同探討 !
?
服務類工具的應用與管理
Apache2.2+Tomcat7.0整合配置詳解
Windows Server 2008 R2 負載平衡入門篇
數(shù)字證書應用綜合揭秘(包括證書生成、加密、解密、簽名、驗簽)?
作者:風塵浪子
http://www.cnblogs.com/leslies2/archive/2012/11/15/WindowsServer2008R2_NLB.html
原創(chuàng)作品,轉載時請注明作者及出處
?
轉載于:https://www.cnblogs.com/leslies2/archive/2012/11/15/WindowsServer2008R2_NLB.html
總結
以上是生活随笔為你收集整理的Windows Server 2008 R2 负载平衡入门篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows Phone 开发环境的
- 下一篇: Microsoft Accelerato