WEB NLB

  網絡負載平衡羣集(Network Load balancing)

Internet快速發展的今天,爲了滿足企業的高速發展。爲了解決服務器的負載、高可用、以及服務器的可伸縮性。通常我們的做法是在“網絡層、數據鏈路層”不斷的添加硬件設備。但是這種做法對於一些中小企業來說是在“資金”方面是吃不消的。有沒有一種方法解決這些問題呢?答案是肯定的,常見的有linux中的LVSwindows中的NLB以及其它的第三方軟件來實現。

今天,主要給大家介紹一下Windows下的NLB (Network Load balancing)網絡負載平衡是 Microsoft 在所有 Windows 2000 Server Windows Server 2003 操作系統上提供的一種負載平衡技術。NLB 使用一種分佈算法將負載均衡分佈到多臺主機上,從而提高基於 IP 的關鍵型服務(例如 Web、虛擬專用網絡、流媒體、終端服務、代理等等)的可伸縮性和可用性,同時可檢測主機故障並自動將流量重新分配給其他操作主機,從而提供高可用性。

其實,網絡負載平衡就是兩個或兩個以上的Windows 2003服務器組成羣集的方式,其中每臺服務器的地位是平等的。 都可以爲客戶端提供服務並且不用其它服務器的輔助。例如:如下圖羣集的服務器將虛擬出來的主機Server3 IP地址分配給Server1和Server2。然後將虛擬出來的IP地址和主機名發佈到互聯網上,服務器之間將均衡來處理客戶端請求。如果某一臺服務器出現宕機,則將請求分配給另外一臺服務器。同時我們需要注意,如果將數據存放到NLB每個服務器成員上,服務器之間的數據要求統一,但是他們之間的數據是無法通過NLB自動同步,所以需要通過手動的完成數據的同步。如果要避免這種情況我們可以使用第三方存儲(磁盤櫃)或者將Web服務器的數據交給數據庫。
縐嬫棩鎯滄灚
網絡負載均衡的工作原理就是使用兩臺或更多臺一起工作的主機(服務器)組成羣集,Internet客戶端使用一個IP地址或一組地址訪問羣集。網絡負載均衡使用全面分佈式的算法來從統計意義上將客戶端的請求映射到基於IP地址、端口和其它信息的羣集主機上,在檢查收到的數據包時,所有主機均同步執行這種映射以迅速決定哪個主機應處理該數據包。對於Web服務而言,程序的一個拷貝運行在羣集內的所有主機上,然後通過均衡技術,將外部發送來的請求均勻地分配到對稱結構中的某一臺服務器上,而接受到請求的服務器都能獨立迴應客戶機的請求,網絡負載均衡則將工作負載在這些主機間進行分配,其中只有一臺主機處理工作負載,網絡負載均衡允許網絡通訊量流到一個主機上,並在該主機發生故障時將通訊量移至其它主機。

羣集在配置了網絡負載平衡以後,對羣集IP地址的客戶請求被羣集內的所有主機收到。網絡負載平衡在這些數據報到達TCP/IP協議軟件之前,就對這些數據報進行過濾以指定TCPUDP協議,並以端口方式控制它們的活動。除了流向指定端口的TCPUDP通訊量之外,網絡負載平衡不控制任何其它的IP通訊量。

網絡負載平衡通過在分配給羣集(NLB)的一個或多個虛擬IP地址(羣集IP地址)間分配傳入的網絡通信。然後,羣集中的主機同時對不同的客戶端請求甚至來自同一個客戶端的多個請求做出響應。Web瀏覽器可以從網絡負載平衡羣集中的不同之際獲得所有單張網頁中的多幅圖像。這就提高了處理速度,並縮短了對客戶端做出響應的時間。

在羣集中,每個NLB成員都會想羣集中的其他主機發出心跳信號。如果某臺主機停止發送心跳信號則認爲此主機出現故障,羣集中的其他主機就會經歷一個稱爲收斂的過程。通過收斂,整個羣集重新協商成員關係,並刪除掉出現故障的成員,網絡負載平衡則將傳入的網絡通信重定向到工作的羣集主機。連到脫機主機的現有連接將丟失,在多數情況下客戶端軟件可以自動重試失敗的連接,而且客戶端在重新接收響應時,只有數秒鐘的延遲。
配置實例:
1、建立如圖環境,在實際環境下建議不要使用DC在作負載均衡。

2、配置如圖環境,每臺服務器有兩塊網卡,一個用於負載均衡,一個用於管理

3、如果使用DNS服務器的話,可以建立一條和虛擬IP對應的dns記錄
4、建立兩個網站用於測試NLB羣集。

(1)Windows系統默認安裝的服務,首先在Server1上以管理員身份登錄,從“管理工具”中運行“網絡負載平衡管理器”,單擊“網絡負載平衡羣集”右鍵“新建羣集”

(2)在“羣集參數”對話框,輸入我們規劃好的虛擬羣集IP地址(注意虛擬IP地址與主機IP地址應在同一個網段)、輸入子網掩碼,輸入域名。羣集操作模式選“多播”,這裏單播和組播的含義如下:

單播

  在單播模式下,NLB重新對每個NLB節點中啓用NLB的網絡適配器分配MAC地址(此MAC地址稱爲羣集MAC地址),並且所有的NLB節點均使用相同的MAC地址(均使用羣集MAC地址),同時NLB修改所有發送的數據包中的源MAC地址,從而使交換機不能將此羣集MAC地址綁定在某個端口上。

  工作在單播模式下的NLB可以在所有網絡環境下正常運行,但是由於它的工作特性,具有以下兩個限制:

n 由於NLB所使用的羣集MAC地址沒有綁定在某個具體的交換機端口上,所以所有的NLB通訊均通過在交換機的所有端口上廣播進行,而不管此端口是否連接了NLB節點,這造成了額外的網絡流量負擔;

n 由於所有的NLB節點具有相同的MAC地址,NLB節點之間不能通過自己原有的專用IP地址進行通訊。  

多播

  在多播模式下,NLB不會修改NLB節點啓用NLB的網絡適配器的MAC地址,而是爲它再分配一個二層多播MAC地址專用於NLB的通訊(此MAC地址稱爲羣集MAC地址),這樣NLB節點之間可以通過自己原有的專用IP地址進行通訊。但是在多播模式中,NLB節點發送的針對羣集IP地址MAC地址ARP請求的ARP回覆會將羣集IP地址映射到多播MAC地址,而許多路由器或者交換機(包括CISCO的產品)會拒絕這一行爲。當出現這種情況時,你必須在路由器和交換機上手動添加靜態映射,將羣集IP地址映射到羣集的多播MAC地址。

(3)單擊“下一步”如果要虛擬多個羣集IP的話可以在這裏添加。

(4)在“端口規則”保持默認設置,單擊“下一步”即可。

(5)在“連接”界面,我們可以輸入當前主機的計算機名或任意的有效IP地址即可。注意選擇和虛擬IP對應的的接口IP地址。(也就是對外提供服務的網卡)

(6)點擊“完成”完成配置。系統會開始配置網絡負載平衡,大約需要幾分鐘。

(7)這是Server1完成配置後的圖片。
(8)在Server2上,我們可以先連接到現存的羣集,單擊“羣集”選擇“連接到現存的”
(9)這裏在主機上輸入Server1的計算機名或IP地址,點擊連接。有的時候會出現連接不上的故障,根據提示,查看系統日誌去解決問題即可。
(10)連接成功後,我們會在管理界面看到只有Server1服務器,這時只需單擊我們的羣集名稱“[url]www.abc.com[/url]”右鍵選擇“添加主機到羣集”
(11)在連接界面,還是輸入Server2的IP地址或計算機名,這裏也要注意我們需要選擇對外提供服務的網卡IP地址。
(12)點擊“完成”後,大約需要幾分鐘我們發現系統已配置成功,如下圖。
(13)驗證一下配置,在兩臺服務器上我們會發現網卡上都添加了響應的羣集參數。
(14)配置Web這裏不做詳細介紹,爲了看出效果我在Server上添加了如下圖內容,我們可以將Server2的IP網卡禁用,會發現我們訪問的內容是Server1上的。
(15)啓用Server2的網卡,禁用Server1的,我們可以看到Server2上的網站信息。
(16)如果關閉了網絡負載平衡管理器後再次進入的話,我們可以選擇“連接到現存的”。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章