Windows Server 2008 R2 Server Load Balancer入門篇

來源:互聯網
上載者:User

標籤:

一、簡單介紹負載平衡

負載平衡也稱負載共用,它是指負載平衡是指通過對系統負載情況進行動態調整,把負荷分攤到多個動作節點上執行,以減少系統中因各個節點負載不均衡所造成的影響,從而提高系統的工作效率。
在常用的大型伺服器系統當中都存在著負載平衡組件,常用的像微軟的網路Server Load BalancerNLB、甲骨文的Oracle RAC、思科的負載平衡(SLB),Apach+Tomcat 負載平衡,它們能從硬體或軟體不同方面實現系統各節點的Server Load Balancer,有效地提高大型伺服器系統的運行效率,從而提升系統的輸送量。本篇文章以微軟的網路Server Load BalancerNAT為例子,簡單介紹Windows Server 2008 R2 Server Load Balancer的安裝與使用方式。
在Windows Server 2008 R2當中,存在著 “網路Server Load Balancer” 功能 (簡稱 NLB, Network Load Balancing),它以TCP/IP 為基礎的服務,可以將一個登入的IP地址映射到多個內部域的IP地址當中,讓多台主機為同時對網路請求作出反應。使用NLB網路負載平衡最多可以串連到32台主機上,讓32台主機共同分擔大量的服務壓力。在Windows Server 2008 R2 中還具備 “容錯移轉叢集” 功能,它是利用負載共用的方式,把多台伺服器的共用資訊進行持久化儲存,當其中某台伺服器出現問題時,請求會自動分攤到其他伺服器當中。使用 “容錯移轉叢集” 功能,更能保證 “網路Server Load Balancer叢集”的正常運行,有利於統籌管理分布式系統中的各種資源,利用共用資訊及其服務機制擴大系統的處理能力。

 

 

二、NLB 主要功能

  1. 支援群集功能,一個群集最多支援32台伺服器。
  2. 支援網路位址轉譯(NAT)功能,能把請求自動轉寄到 NLB 群集上對各台伺服器。
  3. 實現管道化式管理,允許向 NLB 群集同時發送多個請求。
  4. 支援多地址多連接埠管理,每台伺服器可以綁定多個虛擬 IP,每個虛擬 IP 可建立多個開放式連接埠。
  5. 支援故障快速恢複功能,當伺服器出現故障重啟後將自動回復群集聯機。
  6. 支援單播、多播、IGMP多播多種群集操作模式。
  7. 支援事件記錄管理,可以快速查閱群集事件記錄。

 

三、NLB 使用方式

3.1.  開啟 “服務管理員”,添加 “網路Server Load Balancer” 功能。

3.2. 安裝完成後,開啟“網路Server Load Balancer管理器”

3.3.建立群集,串連到作為叢集伺服器當中的一台主機

3.4.為此主機綁定優先順序數,和專用的IP地址,一台主機可以綁定多個IP地址

3.5.建立群集IP地址以進行Server Load Balancer,若存在多個IP地址系統將會以第一個IP作為此群集的IP對資訊進行檢測。

3.6.設定群集參數,此處可設定群集完整的Internet名稱,確定其操作模式。此處需要稍作解釋:

3.6.1 單播模式
指把各主機節點重時指向同一個虛擬MAC地址,在此情況下各節點之間不能實現通訊。

3.6.2 多播模式
指各主機節點都保留原有的MAC地址,此外再外加專用於NLB的通訊MAC地址,使各節點之間能正常實現通訊。但並非所有的路由器或交換器都支援多播模式,使用時需要謹慎處理。

3.6.3 IGMP多播模式
建立在多播模式功能之上,在預設情況下每隔60秒發送一次IGMP資訊。它可以確保發送給網路Server Load Balancer群集的通訊只通過服務於群集主機的連接埠,而不是所有交換器連接埠。

注意: 由於並非所有路由器或交換器都支援多播模式,所以在不確定的情況下最好使用雙網卡單播模式,並且預先設定好ARP,否則可能造成跨網段無法訪問群集ip的錯誤。

3.7 綁定群集開放的連接埠,此處可為主機設定一定範圍內的開放連接埠。置於TCP、UDP協議就不多作解釋,一般設定只使用TCP協議使資料轉送更具備可靠性和安全性。此處對篩先模式稍作解釋:

3.7.1 多主機
該參數指定了群集中多個主機處理與連接埠規則相關的網路通訊。通過在多個主機之間分布網路負載,該篩選模式提供了可縮放效能以及容錯。可以指定在主機之間均衡分布負載,或每個主機處理指定的負荷量。在多主機相似性選項中,存在3種選擇:

  • “無”選項:指定來自同一用戶端 IP 位址的多條串連可由不同的主機(無用戶端的相似性)進行處理。第一次請求可能指向主機A,第二次請求可能指向主機B,為了實現在多台主機之間共用session,系統應該預先把session作出持久化處理。若使用ASP.NET進行開發時,可通過命令: 
    aspnet_regsql.exe -S 〈SQL Server IP> -U 〈User Name> -P 〈Password> -E -ssadd -sstype c -d 〈Database Name>
    建立用於Session持久化儲存的資料庫
  • “單一”選項:指定網路Server Load Balancer應該將來自同一用戶端 IP 位址的多個請求導向同一台群集主機。這是相似性的預設設定。
  • “網路”選項指相似性指定網路Server Load Balancer將來自同一個 TCP/IP C 類位址範圍的多個請求定向到同一台群集主機。比如在用戶端使用了多台Proxy 伺服器對群集進行訪問時,請求看起來像源自不同的電腦。啟用“網路”相似性選項,可以正確處理同一用戶端多個Proxy 伺服器的session會話資料。

3.7.2 單一主機
該參數指定群集中的單個主機根據指定的處理優先順序來處理相關連接埠規則的網路通訊。該篩選模式為處理網路通訊提供了連接埠專用的容錯效能。

3.7.3 禁用該連接埠範圍
該參數指定阻止相關連接埠規則的所有網路通訊。在這種情況下,網路Server Load Balancer驅動程式將篩選所有相應的網路資料包或資料報。該篩選模式可讓您阻止傳送到特定範圍的連接埠的網路通訊。

3.8 在完成群集配置後,在群集上按右鍵,選擇 “添加主機到群集”,重複 3.3 、3.4安裝步驟,可串連多台群集主機。

 

四、網路Server Load Balancer群集系統測試

建立一個ASP.NET項目,加入以下 Default.aspx 頁面,然後建立一個群集,綁定IP為192.168.1.110,在編輯 “連接埠規則” 時,選擇 “多主機無相關性” 篩選模式。最後分別在群集加入Virtual-PC-A1、Virtual-PC-A2兩台主機。使用第三方用戶端進行訪問時,多次點擊 NewPage 串連時,可檢測到系統會把請求串連到不同的主機之上。

 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.如果需要使用“域”服務,一般在安裝 “網路Server Load Balancer” 管理器前,先添加“Active Directory 網域服務” 角色,並進行林、網域設定。

 
若伺服器需要使用IIS或者ASP.NET,那麼在安裝 NLB 前建議先添加Web伺服器(IIS)伺服器角色和 .NET Framework 3.5 功能


5.2.要建立 “網路Server Load Balancer群集” ,需要先在 “進階共用設定” 中開啟 “啟用網路發現” 功能。

若無法開啟 “啟用網路發現” 功能,可先在服務管理員中開啟以下3項服務:

  • Function Discovery Resource Publication
  • SSDP Discovery
  • UPnP Device Host


5.3. 若使用VMware、Hyper-V等虛擬化工具,在網路中實現資訊共用時無法尋找到其他虛擬機器主機,可嘗試檢查虛擬機器設定時“網路介面卡”是否使用同一種“網路連接方式”,並且已開啟“網際網路共用服務”功能。


5.4.在“網路Server Load Balancer管理器”中建立群集,群集串連主機時顯示“RPC串連伺服器不可用”等錯誤資訊,可嘗試檢查主機有否開啟“Remote Procedure Call(RPC)”和“Remote Procedure Call(RPC)Locator” 服務,並查檢“Remote Procedure Call(RPC)的屬性——依存關係——依賴服務” 的“狀態”是否已經全部設定為 “已經啟動” 或 “啟動類型” 設定為 “自動”。


5.5. 若使用虛擬化工具複製主機,在群集串連主機時顯示 “指定主機沒有可用於安裝新的群集的任何介面”,這可能是在複製主機時多台主機使用同一個MAC造成的,此時可以嘗試卸載網路介面卡的驅動程式,然後再進行驅動軟體更新。


5.6.若在群集串連主機時顯示出現錯誤提示 “在主機 ‘MyPC上的NLB管理器’ 不能繼續,因為沒有安裝Microsoft叢集服務” 。可以檢查伺服器上是否已經成功安裝 “網路Server Load Balancer” 服務,然後開啟 “本地串連-屬性”,選擇“網路Server Load Balancer(NLB)”。

Windows Server 2008 R2 Server Load Balancer入門篇

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.