成孝俊
摘要:在Windows Server 中搭建Web Farm網(wǎng)絡負載平衡服務器時,遇到了兩個難點:第一,使用單播模式創(chuàng)建群集時,與群集IP地址相同網(wǎng)段的其他主機無法訪問群集IP地址;第二,不管是單播還是多播模式,與群集IP地址在不同網(wǎng)段的主機都無法訪問群集IP地址。在尋求解決方案的過程中,發(fā)現(xiàn)很多教材都沒有解決這個問題,都只是簡單的介紹如何搭建網(wǎng)絡負載平衡的環(huán)境,并提供操作成功的界面。但是,當按照教材所提供的操作方法時,客戶端主機卻無法訪問群集IP地址。該文討論的內容將主要是如何在技術上解決群集IP地址無法訪問的問題,以保證Web Farm網(wǎng)絡負載實驗的成功實施。
關鍵詞:群集;負載平衡;群集IP地址;靜態(tài)路由
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2015)02-0203-02
1 基本概念
1.1 什么是群集
群集是指一組服務器,這些服務器通過彼此的協(xié)同作業(yè),對外提供一個相同的服務或應用程序,以提升服務或應用程序的可用性、可靠性和可擴展性。使用群集的目的是,當群集內的某個服務器出了故障無法訪問時,服務請求會轉給群集內的其它節(jié)點,從而可以實現(xiàn)不中斷的服務。
1.2 什么是負載平衡
Windows Server 中的網(wǎng)絡負載平衡(NLB)功能可以增強Internet服務器應用程序(如在Web、FTP、防火墻、代理、虛擬專用網(wǎng)絡以及其他執(zhí)行關鍵任務的服務器上使用的應用程序)的可用性和可伸縮性。通過將運行Windows Server 2008各種服務的兩臺或多臺計算機的資源組合到單個虛擬群集中,NLB便可以提供Web服務器和其他執(zhí)行關鍵任務服務器所需的可靠性和性能。
1.3 負載平衡工作原理
如圖1所示,每一個群集都是由若干群集節(jié)點組成的。如圖1中,群集節(jié)點NLB1與群集節(jié)點NLB2都有一個自身的靜態(tài)IP地址,在創(chuàng)建NLB群集后會創(chuàng)建一臺虛擬的群集主機,并有一個虛擬的群集IP地址與之對應,群集外的主機通過這個群集IP地址訪問該群集中的服務。雖然每個群集外的主機在訪問群集中的服務時使用的是相同的群集IP地址,但每個客戶端主機訪問的實際節(jié)點卻可能是NLB1或者NLB2。簡單的說,群集中的每臺主機分擔了群集提供的服務。
2 搭建網(wǎng)絡負載平衡實驗環(huán)境
本文以Windows Server 2008為例,以多網(wǎng)卡單播模式創(chuàng)建一個Web Farm網(wǎng)絡負載平衡實驗的群集。實驗的完整拓撲圖如圖2所示。
實驗環(huán)境說明:
1)主機DC1和DC2中都安裝網(wǎng)絡負載平衡服務,分別包含兩塊網(wǎng)卡,其中網(wǎng)卡172.16.10.101和172.16.10.102用作群集接口,192.168.1.11和192.168.1.12作為群集主機間的通信接口。群集IP地址為192.168.1.88。
2)主機DC1和DC2中都安裝IIS服務,IIS站點都綁定到群集IP地址192.168.1.88,站點首頁分別顯示“Web From DC1!”和“Web From DC2!”,以區(qū)分最終訪問的頁面是來自于哪一個IIS服務器。
3)第三臺服務器承擔LAN路由功能,實現(xiàn)192.168.1.0網(wǎng)段和192.168.2.0網(wǎng)段的互通。
本文以解決實現(xiàn)網(wǎng)絡負載平衡實驗中的難點為主,相關服務的安裝與配置不作介紹。創(chuàng)建網(wǎng)絡負載平衡群集的大致步驟如下:
1)在主機DC1的“網(wǎng)絡負載平衡管理器”中,以172.16.10.101接口作為群集節(jié)點創(chuàng)建群集,設置群集IP地址為192.168.1.88,并設置群集操作方式為“單模”;
2)在主機DC1的“網(wǎng)絡負載平衡管理器”中,將主機DC2添加到群集中,選擇172.16.10.102接口作為群集節(jié)點的接口;
3)經(jīng)過上述操作,在兩臺主機的“網(wǎng)絡負載平衡管理器”中可以查看創(chuàng)建好的群集。
3 群集IP地址連通性測試
3.1 同網(wǎng)段測試
1)測試描述:從與群集IP地址同網(wǎng)段的客戶端主機(如192.168.1.20),使用ping命令對群集IP地址進行連通性測試。測試結果表明,192.168.1.0網(wǎng)段中,除群集節(jié)點中的同網(wǎng)段IP(如本實驗中192.168.1.11、192.168.1.12)可以訪問群集IP地址外,其他主機都無法訪問群集IP地址。
2)問題解決方法:由于使用了“單播”模式,每個群集節(jié)點的群集接口就有了一個相同的MAC地址,即群集MAC地址。如圖3所示,打開群集接口的屬性,查看“配置”屬性,在“高級”選項卡中找到“本地管理的地址”,便可以看到群集MAC地址。只要將“本地管理的地址”屬性值設置為“不存在”,就可以解決“從群集IP地址同網(wǎng)段的客戶端主機無法訪問群集IP地址”的問題。
3.2 跨網(wǎng)段測試
1)測試描述:從與群集IP地址不同網(wǎng)段的客戶機(如192.168.2.20),使用ping命令對群集IP地址進行連通性測試。測試結果表明,雖然192.168.1.0網(wǎng)段與192.168.2.0網(wǎng)段是相通的(已經(jīng)由LAN路由實現(xiàn)),但192.168.2.0網(wǎng)段的主機無法訪問群集IP地址192.168.1.88。
2)問題解決方法:其實,只要知道192.168.2.0網(wǎng)段的主機可以ping通192.168.1.11接口的原因,這個問題也就解決了。在主機DC1中命令提示符中輸入route print命令,查看本地機器的路由表。
查看圖4路由表的第一條路由記錄,可以發(fā)現(xiàn)主機DC1可以從192.168.1.11接口、經(jīng)192.168.1.1網(wǎng)關訪問任意網(wǎng)段。這條路由記錄就是192.168.2.20可以ping通192.168.1.11的原因。因此,為了解決我們遇到的問題,只需要在本地路由表中添加一條靜態(tài)路由,允許來自于任意網(wǎng)段的數(shù)據(jù)經(jīng)網(wǎng)關192.168.1.1到達群集接口192.168.1.88就即可。
由于虛擬的群集接口是基于群集主機中參與群集的接口虛擬出來的,因此在訪問虛擬群集接口192.168.1.88時,需要使用到參與群集的接口172.16.10.101。在圖4中所示的接口列表中,根據(jù)每個網(wǎng)卡對應的MAC地址確定其接口編號。本例中,主機DC1中參與群集的接口編號為13。使用route add命令在本地路由中添加這條靜態(tài)路由,命令代碼如下:
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 256 if 13
需要提醒是的是,在每一個群集節(jié)點中,都需要添加這樣一條從群集接口到任意網(wǎng)段的靜態(tài)路由,否則這個群集主機將不可訪問,這個群集節(jié)點也就不能夠對客戶端提供服務。
4 實驗WEB負載平衡
在搭建好網(wǎng)絡負載平衡服務并確認同網(wǎng)段和不同網(wǎng)段都可以訪問群集IP地址后,就可以通過綁定到WEB站點的群集IP地址訪問使用WEB服務。
在本實驗中,不同的客戶端主機訪問同一個WEB站點(http://192.168.1.88)時顯示的頁面內容來自于兩臺不同的IIS服務器,因為對的請群集IP地址的訪問請被平衡分流到不同的IIS服務器。如果有的客戶端能根據(jù)群集IP地址訪問WEB站點,有的客戶端不能訪問WEB站點,則很有可能是某個群集節(jié)點中沒有添加靜態(tài)路由。
5 結束語
本文通過對網(wǎng)絡負載平衡實驗過程中出現(xiàn)的問題產(chǎn)生的原因進行分析,從技術上解決了群集IP地址無法訪問的問題,從而實現(xiàn)Web Farm網(wǎng)絡負載平衡。解決了這個問題,就可以實現(xiàn)其他各種服務和應用程序的網(wǎng)絡負載平衡功能。
參考文獻:
[1] 鄧文達, 易月娥. Windows Server 2012網(wǎng)絡管理項目教程[M]. 北京: 人民郵電出版社, 2013.
[2] 戴有煒. Windows Server 2012網(wǎng)絡管理與架構[M]. 北京: 清華大學出版社, 2014.
[3] 郝貴發(fā). NAT技術在負載均衡中的應用[J]. 網(wǎng)管員世界, 2011(14).
[4] 買京京. Web服務器集群負載均衡技術研究[D]. 太原: 中北大學, 2008.
[5] 微軟網(wǎng)站. 網(wǎng)絡負載平衡[EB/OL].https://technet.microsoft.com/zh-cn/library/cc770558.aspx.