Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Windows教程綜合 >> 關於windows >> Windows NLB搭配IIS的ARR搭建高可用環境

Windows NLB搭配IIS的ARR搭建高可用環境

日期:2017/2/7 13:42:01      編輯:關於windows
 

在現行的許多網絡應用中,有時一台服務器往往不能滿足客戶端的要求,那麼有沒有什麼辦法解決服務器的高可伸縮性、高可用、高可靠性和高性能,提升服務器的SLA? 使用Windows Server 2008/R2中的網絡負載平衡(Network Load Balancing,以下簡稱NLB)和IIS 7的ARP模塊就是解決這個問題的方法。

首先解釋一下群集,群集是指一組服務器,通過彼此的協同作業,提供一個相同的服務或應用程序,用於提升服務或應用程序的可用性(availability)、可靠性(reliability)和可擴展性(scalability)。當群集內的服務器down掉以後,服務請求會轉給其它群集內的節點,以實現24小時不中斷的服務

網絡負載平衡(NLB)是Microsoft在所有 Windows 2000 Server、Windows Server 2003、Windows Server 2008和Windows Server 2008 R2 操作系統上提供的一種負載平衡技術。網絡負載平衡(NLB)是將網絡連接客戶與服務器應用分布在同一個NLB群集內的多個服務器上。NLB允許添加額外的服務器,因此具備了可擴展性。此外NBL允許用戶替換運行不良的服務器,從而確保了可靠性。NBL對於需要將多個客戶請求分布在一組服務器上的企業來說至關重要。特別是它能夠確保運行在互聯網信息服務(IIS)上的基於Web的應用,可通過添加額外的服務器增加工作負載量而使應用獲得擴展。

網絡負載平衡(NLB)包括以下功能:

² 可伸縮性

可伸縮性是度量計算機、服務或應用程序如何更好地改進以滿足持續增長的性能需求的標准。對於NLB群集而言,可伸縮性是指當群集的全部負載超過其能力時逐步將一個或多個系統添加到現有群集中的功能。下表詳細介紹了NLB的可伸縮性功能:

——平衡NLB群集上對各個TCP/IP服務的負載請求

——在一個群集中最多支持32台計算機

——平衡群集中多個主機之間的多個服務器負載請求(來自同一個客戶端或者來自幾個客戶端)

——支持在負載增加時,能夠在不關閉群集的情況下向NLB群集中添加主機

——支持在負載降低時,能夠從群集中刪除主機

——通過全部實現管道化提高性能並降低開銷。管道允許向NLB群集發送請求,而無需等待響應上一個發送的請求

² 高可用性

通過最大程度地減少停機時間,高可用系統能夠可靠地提供可接受級別的服務。NLB包括一些內置功能,可以通過自動執行以下操作來提供高可用性:

——檢測發生故障或脫機的群集主機並對其進行恢復。

——在添加或刪除主機時平衡網絡負載。

——在十秒之內恢復並重新分發負載。

² 可管理性

NLB提供以下可管理性功能:

——使用NLB管理器,可以從單個計算機管理和配置多個NLB群集和群集主機。

——使用端口管理規則,可以為單個IP端口或一組端口指定負載平衡行為。

——可以為每個網站定義不同的端口規則。如果您對多個應用程序或網站使用相同的一組負載平衡服務器,則端口規則基於目標虛擬IP地址(使用虛擬群集)。

——使用可選的單主機規則,可以將所有客戶端請求引導至單個主機。NLB將客戶端請求路由到運行特定應用程序的特定主機。

——可以阻止對某些IP端口進行不需要的網絡訪問。

——可以在群集主機上啟用Internet 組管理協議(IGMP)支持,以控制交換機廣播(在多播模式中操作時)。

——使用shell命令或腳本,可以從運行Windows的任何聯網計算機上遠程啟動、停止和控制NLB操作。

——可以查看Windows事件日志以檢查NLB事件。NLB在事件日志中記錄所有操作和群集更改。

² 易用性

NLB提供了許多便於使用的功能:

——可以作為標准的Windows網絡驅動程序組件安裝NLB。

——NLB不需要更改任何硬件即可啟用和運行。

——使用NLB管理器可以新建NLB群集。

——使用NLB管理器,可以從一台遠程或本地計算機上配置和管理多個群集以及群集的所有主機。

——NLB允許客戶端使用單個邏輯Internet名稱和虛擬IP地址(稱為群集IP地址,它保留每台計算機的各個名稱)訪問群集。NLB允許多宿主服務器具有多個虛擬IP地址。

注:如果是虛擬群集,則不需要服務器是多宿主服務器即可具有多個虛擬IP地址。

——可以將NLB綁定到多個網絡適配器,這樣您便可以在每個主機上配置多個獨立的群集。支持多個網絡適配器與虛擬群集不同,因為虛擬群集允許您在單個網絡適配器上配置多個群集。

² NLB配置

NLB作為Windows網絡驅動程序運行。它的操作對於TCP/IP網絡堆棧是透明的。

image

上圖顯示了在NLB主機的典型配置中,NLB和其他軟件組件之間的關系。

——不需要修改服務器應用程序即可在NLB群集中運行。

——如果群集主機出現故障並且後來又恢復聯機,則可以將NLB配置為自動將該主機添加到群集。之後,添加的主機將能夠開始處理來自客戶端的新的服務器請求。

——可以在不打擾其他主機上群集操作的情況下使計算機脫機進行預防性的維護。

Windows Server 2008 R2 中的網絡負載平衡的功能,為了支持更多的用戶同時使用。 Windows Server 2008 R2 中的網絡負載平衡的功能改進包括:

1. 更好的支持應用程序和服務的持久連接

在網絡負載平衡 IP 粘性功能允許您配置客戶端與群集節點之間長連接。 默認情況下,網絡負載平衡每個請求分布在群集中的節點。某些應用程序例如購物的購物車應用程序的服務需要一個將保持與特定群集節點持久連接。

2. 改進對應用程序和服務的健康監測

在Windows Server 2008 R2網絡負載平衡管理包允許您監視應用程序和在網絡負載平衡群集中運行的服務的運行狀況。

3. 支持下一代 TCP/IP

Windows Server 2008 R2 支持Internet 協議版本 4 (IPv4) 和 Internet 協議版本 6 (IPv6)。 NLB 支持IPv4同時 完全支持IPv6的所有通信。

4. 多個 IP 地址支持

現在,在 NLB 群集中的每個節點有多個專用的 IP 地址。

5. Microsoft ISA Server 集成

Microsoft ISA Server支持混合IPv4 和 IPv6 基礎結構的網絡環境的客戶端通過Microsoft ISA Server訪問每一個NLB節點。 ISA Server 還可以提供入侵檢測服務,以保護您的 NLB 群集。

網絡負載平衡的缺點

² NLB集群本身會消耗掉一部分CPU資源,因此實際應用中並不是集群節點越多性能越好。MS官方有提供這樣一份測試報告,模擬web 客戶端從群集中下載了 10 KB 的靜態 web 頁。在群集大小超過 8 到 10 個成員時,擴展因子會顯著偏離了線性擴展。如下圖所示

image

image

² NLB只能檢測到服務器的狀態,無法檢測到應用程序的狀態,假如某節點服務器的IIS不可用,但客戶依然會被分配到該節點服務器,從而導致請求失敗。要解決應用層面的問題,需要使用IIS 7的Application Request Routing(以下簡稱ARR),通過監控應用程序狀態,反向控制節點服務器。同時NLB可以為IIS 7的ARR模塊提供高可用性。

ARR簡單的說就是一個IIS7的負載均衡模塊,可以一次管理多個IIS 6/7的服務器集群,規則基於URL,或者基於HOST NAME,或者基於HTTP HEADER。微軟的Application Request Routing(ARR) 2.0使得Web管理員,虛擬主機提供商,內容分發網絡(CDN)通過基於規則路由,機器名匹配,HTTP請求的負載均衡和分布式磁盤緩存來提高Web應用程序的的可擴展性和可靠性。有了ARR技術,管理員可以優化資源以及應用服務器的管理成本。

² 負載均衡可以有效的提高資源的利用率

使用ARR,管理員可以創建強大的基於規則的URL,HTTP HEADERS 變量,並決定最合適的WEB應用服務器。ARR在應用層進行路由選擇,並可以在其上加上BIG IP 5這類硬件負載均衡器或者是Windows 負載均衡技術,進行三層架構路由。典型的幾種方式:使用ARR,管理員可以將*.aspx路由到一個獨立應用服務器上。

² 使用標准的IIS MANAGER更容易管理多個WEB FARMS

ARR給予管理員,創建、管理、應用LOAD BALANCING(負載均衡)規則的能力,管理員可以需求輕松地添加一個服務器到WEB FARMS裡去,ARR同時包含了對每台單獨的服務器實時流量、URL測試的監視能力。管理員這時有能力在IIS 7的MANAGER中查看WEB FARMS中每個服務器的統計信息。

² 優化帶寬的使用和通過緩存擴展服務器的能力

ARR可以在磁盤上緩存任何經過服務器的HTTP通信。 通過結合磁盤緩存連同層次化的IIS網站運行ARR的IIS web服務器,CDN和層次化服務器的能力可以大大降低到達源服務器的網絡流量。

具體的配置文檔這裡就不再詳細羅列,只給出IIS.NET上的文檔鏈接。主要的配置步驟:

步驟1:按照這篇文檔Install Application Request Routing安裝ARR v2,重啟服務器後接著完成後續的步驟。

步驟2:按照這篇文檔Achieving High Availability and Scalability - ARR and NLB配置你的ARR Server Farm. 這裡還有一個以F5的配置文檔Achieving High Availability and Scalability - ARR and Hardware Load Balancer

應用程序具有擴展性還要求應用程序的架構上支持,對於ASP.NET的應用程序來說,主要是要解決兩個問題ASP.NET Session State和ASP.NET Cache,這個在Windows Server AppFabric裡頭有很好地解決方案。可以參看文章Windows Server AppFabric Beta 2 for For Vistual Studio 2010已經發布,WizardWu有篇博文用 IIS 7、ARR 與 Velocity 建設高性能的大型網站 供參考。

本文的PDF版本:http://cid-33478a966734670f.skydrive.live.com/self.aspx/.Public/%e9%ab%98%e5%8f%af%e7%94%a8%e6%80%a7/Windows%20NLB%e6%90%ad%e9%85%8dIIS%e7%9a%84ARR%e6%90%ad%e5%bb%ba%e9%ab%98%e5%8f%af%e7%94%a8%e7%8e%af%e5%a2%83.pdf

下載:

ARR v2 x86: http://download.microsoft.com/download/4/D/F/4DFDA851-515F-474E-BA7A-5802B3C95101/ARRv2_setup_x86.EXE

ARR v2 x64: http://download.microsoft.com/download/3/4/1/3415F3F9-5698-44FE-A072-D4AF09728390/ARRv2_setup_x64.EXE

Copyright © Windows教程網 All Rights Reserved