分類: 經驗之談技術探討分析設計網路技術 2010-04-30 15:461272人閱讀評論(1)收藏舉報
windowsiis伺服器microsoftserver網路
在現行的許多網路應用中,有時一台伺服器往往不能滿足用戶端的要求,那麼有沒有什麼辦法解決伺服器的高延展性、高可用、高可靠性和高效能,提升伺服器的SLA? 使用Windows Server 2008/R2中的網路Server Load Balancer(Network Load Balancing,以下簡稱NLB)和IIS 7的ARP模組就是解決這個問題的方法。
首先解釋一下群集,群集是指一組伺服器,通過彼此的協同作業,提供一個相同的服務或應用程式,用於提升服務或應用程式的可用性(availability)、可靠性(reliability)和可擴充性(scalability)。當群集內的伺服器down掉以後,服務要求會轉給其它群集內的節點,以實現24小時不中斷的服務
網路Server Load Balancer(NLB)是Microsoft在所有 Windows 2000 Server、Windows Server 2003、Windows Server 2008和Windows Server 2008 R2 作業系統上提供的一種Server Load Balancer技術。網路Server Load Balancer(NLB)是將網路連接客戶與伺服器應用分布在同一個NLB群集內的多個伺服器上。NLB允許添加額外的伺服器,因此具備了可擴充性。此外NBL允許使用者替換運行不良的伺服器,從而確保了可靠性。NBL對於需要將多個客戶請求分布在一組伺服器上的企業來說至關重要。特別是它能夠確保運行在互連網資訊服務(IIS)上的基於Web的應用,可通過添加額外的伺服器增加工作負載量而使應用獲得擴充。
網路Server Load Balancer(NLB)包括以下功能:
² 延展性
延展性是度量電腦、服務或應用程式如何更好地改進以滿足持續增長的效能需求的標準。對於NLB群集而言,延展性是指當群集的全部負載超過其能力時逐步將一個或多個系統添加到現有群集中的功能。下表詳細介紹了NLB的延展性功能:
——平衡NLB群集上對各個TCP/IP服務的負載請求
——在一個群集中最多支援32台電腦
——平衡群集中多個主機之間的多個伺服器負載請求(來自同一個用戶端或者來自幾個用戶端)
——支援在負載增加時,能夠在不關閉群集的情況下向NLB群集中添加主機
——支援在負載降低時,能夠從群集中刪除主機
——通過全部實現管道化提高效能並降低開銷。管道允許向NLB群集發送請求,而無需等待響應上一個發送的請求
² 高可用性
通過最大程度地減少停機時間,高可用系統能夠可靠地提供可接受層級的服務。NLB包括一些內建功能,可以通過自動執行以下操作來提供高可用性:
——檢測發生故障或離線的群集主機並對其進行恢複。
——在添加或刪除主機時平衡網路負載。
——在十秒之內恢複並重新分發負載。
² 可管理性
NLB提供以下可管理性功能:
——使用NLB管理器,可以從單個電腦管理和配置多個NLB群集和群集主機。
——使用連接埠管理規則,可以為單個IP連接埠或一組連接埠指定Server Load Balancer行為。
——可以為每個網站定義不同的連接埠規則。如果您對多個應用程式或網站使用相同的一組Server Load Balancer伺服器,則連接埠規則基於目標虛擬IP地址(使用虛擬叢集)。
——使用可選的單主機規則,可以將所有用戶端請求引導至單個主機。NLB將用戶端請求路由到運行特定應用程式的特定主機。
——可以阻止對某些IP連接埠進行不需要的網路訪問。
——可以在群集主機上啟用網際網路群組管理通訊協定(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網路堆棧是透明的。
顯示了在NLB主機的典型配置中,NLB和其他軟體組件之間的關係。
——不需要修改伺服器應用程式即可在NLB群集中運行。
——如果群集主機出現故障並且後來又恢複聯機,則可以將NLB配置為自動將該主機添加到群集。之後,添加的主機將能夠開始處理來自用戶端的新的伺服器請求。
——可以在不打擾其他主機上群集操作的情況下使電腦離線進行預防性的維護。
Windows Server 2008 R2 中的網路Server Load Balancer的功能,為了支援更多的使用者同時使用。 Windows Server 2008 R2 中的網路Server Load Balancer的功能改進包括:
1. 更好的支援應用程式和服務的持久串連
在網路Server Load Balancer IP 粘性功能允許您配置用戶端與叢集節點之間長串連。 預設情況下,網路Server Load Balancer每個請求分布在群集中的節點。某些應用程式例如購物的購物車應用程式的服務需要一個將保持與特定叢集節點持久串連。
2. 改進對應用程式和服務的健康監測
在Windows Server 2008 R2網路Server Load Balancer管理組件允許您監視應用程式和在網路Server Load Balancer群集中啟動並執行服務的健全狀態。
3. 支援下一代 TCP/IP
Windows Server 2008 R2 支援網際網路通訊協定 (IP)版本 4 (IPv4) 和 網際網路通訊協定 (IP)版本 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 群集。
網路Server Load Balancer的缺點
² NLB叢集本身會消耗掉一部分CPU資源,因此實際應用中並不是叢集節點越多效能越好。MS官方有提供這樣一份測試報告,類比web 用戶端從群集中下載了 10 KB 的靜態 web 頁。在群集大小超過 8 到 10 個成員時,擴充因子會顯著偏離了線性擴充。如所示
² 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
分享到:
- 上一篇:負載平衡器簡介
- 下一篇:IT行業人才工資水平曝光,收入情況調查,薪水揭密