由于公司最近網(wǎng)站流量暴增,單臺服務器的連接數(shù)經(jīng)常過2W,為了讓用戶獲得更好的性能和網(wǎng)站的容災型,配置 負載平衡(負載均衡、NLB) 也成了首要任務。公司服務器是 Windows 2003 英文版本,用2臺服務器來配置負載均衡。
在 Google 和 Baidu 上面看了2天,發(fā)現(xiàn)有一些 負載平衡(負載均衡、NLB) 的配置經(jīng)驗還是蠻不錯的,所以把這些摘錄過來,做下備忘,并希望能幫助更多的人配置。
網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)概述
首先,我們先了解下 Windows 2003 自帶的 負載平衡(負載均衡)——Network Load Balancing,簡稱NLB。NLB是一種集成高可用性,高可靠性和高擴展性的集群。它不但能實現(xiàn)均衡負載,而且還能實現(xiàn)多種形式的冗余。NLB主要用于那些文件改動不大,并且不常駐內(nèi)存的環(huán)境,比如WEB服務、FTP服務、和VPN服務等。NLB不適合用于數(shù)據(jù)庫、郵件等服務,因為不能保證每個節(jié)點的數(shù)據(jù)是一樣的。
當用戶訪問集群的時候,集群能將訪問請求分攤到集群中的每個服務器上,以達到均衡負載的效果。這些服務器被稱為集群節(jié)點。在 負載平衡(負載均衡、NLB) 中,每個節(jié)點的文件一般都要求是一樣的。這樣每個節(jié)點返回給客戶的結(jié)果都是一致的。一般來說組建一個NLB要求至少兩個節(jié)點,其中一個節(jié)點不能使用,這全部負載將落入到剩下的那個節(jié)點上,即全載。Windows server 2003 最多支持32個節(jié)點。節(jié)點越多,可用性(availability),可靠性(reliability)就越高。
NLB能提供三種冗余功能,軟件冗余、硬件冗余、站點冗余。
網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)工作原理
每個NLB節(jié)點都有同一個虛擬IP地址。當訪問請求發(fā)向虛擬IP,NLB會負責把這個請求路由到其中的一個節(jié)點上,以達到均衡負載的作用。如圖所示:
接下來,開始著手配置NLB 的測試站點。假設,網(wǎng)站為web.gooduck.com。準備兩臺服務器server1和server2,分別安裝windows server 2003 Enterprise并安裝IIS組件。
Vir20 | Vir21 | Client | |
IP | 192.168.10.20 | 192.168.10.21 | 202.108.22.9 |
VIP | 202.108.22.5 |
在這里需要描述下,DNS解析web.goodluck.com為202.108.22.5,(測試地址,非真實)。當訪問web.goodluck.com時,NLB會把請求路由到192.168.10.20或者192.168.10.21上,由他們來處理請求。整個過程就像是202.108.22.5返回處理的結(jié)果。用戶是感覺不到其中的過程。
網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)測試站點的配置
1.配置vir20、vir21的IIS服務
在各服務器中,run中輸入inetmgr
在Default Web Site中創(chuàng)建default.htm文件,在其中輸入:Hello world!
右擊選擇”Browse”瀏覽結(jié)果
兩臺服務器都是執(zhí)行同樣的操作。
網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)通過單節(jié)點的配置方法
網(wǎng)絡負載平衡有兩種配置方法:
一種是通過配置每個節(jié)點的連接屬性;
一種是通過Network Load Balancing Manager(windows server 2003 新特性)。
這兩種方法各有所長,但是個人比較推薦第一種方法
網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)單節(jié)點的配置方法如下:
打開節(jié)點連接屬性,勾選Network Load Balancing。
點擊Properties,進一步設置
在Cluster Parameters頁面中,輸入虛擬IP地址202.108.22.5,DNS解析web.goodluck.com就是這個地址。
在單網(wǎng)卡的節(jié)點中,只能使用多播的方式來收發(fā)內(nèi)部IP流和NLB流。在有兩張網(wǎng)卡的情況中,就可以用單播的方式,這樣一張網(wǎng)卡負責NLB流,另外一張負責IP流。所以從訪問性能來說,單播的方式要比多播的方式快。現(xiàn)在的許多服務器有兩個網(wǎng)口。如果滿足條件,最好能使用單播模式。
進入到Host Parameters頁面。
priority設置成1,此節(jié)點在集群中為主節(jié)點。說明 網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)會在未達到負載極限的時候,首先把請求路由到優(yōu)先權(quán)高的節(jié)點上。在另外一個節(jié)點的值則不能為1。請注意這個值在每個節(jié)點上是唯一的。輸入節(jié)點的IP地址。
在Port Rules中
可以對流量進行篩選。表示,對于任何訪問http 80端口的任何訪問都接受。對于https 443端口的接受特定IP。如果要添加其他的規(guī)則單擊Add增加。
還可以設置節(jié)點的負載,默認選擇均衡。
Filtering mode:
Affinity(相似性)這是用于控制訪問請求路由。當使用None時,來自同一個IP的請求將得到不同節(jié)點的回應,這提高了集群的性能。如果Protocols使用UDP或Both,為了能正確的處理IP片段,應該盡量不要使用None。在處理http時建議選擇None以提高性能。Single模式,將來自相同的IP地址路由到同一個節(jié)點上,提訪問的高安全性。Class C模式將來自與節(jié)點同一個子網(wǎng)的訪問路由到同一個節(jié)點上。
OK結(jié)束。
接下來要在節(jié)點的TCP/IP中添加虛擬IP。
點擊OK完成NLB的設置。
兩臺服務器上都設置好后,進行測試。
在client上瀏覽web.goodluck.com。注意,client上一定要能正確解析web.goodluck.com。
可以修改hosts文件,手工添加解析。但一定要保證能和節(jié)點連通。
再來考慮,如果其中一個節(jié)點不能訪問,瀏覽是否會受到影響。
停止一個server1的IIS來測試下。修改server1和server2的default.htm內(nèi)容成“Hello world! The IIS of vir20 is stopped.”
可以看出vir21承擔了所有的訪問。
接下來開啟vir20,并且關(guān)閉vir21。看看會出現(xiàn)什么情況。同樣修改這兩臺的defualt.htm文件。“Hello world! The IIS of vir20 is working now.”
在vir21停止工作,vir20正常工作的時候,網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)依然正常工作。這樣就達到了均衡負載的要求了。
下面我們做一次簡單的測試。如果vir20和vir21兩個節(jié)點的內(nèi)容不同,顯示結(jié)果會如何。
在vir20中修改default.htm內(nèi)容為: ’Hello World! Here is vir20’ 。
vir21的default.htm內(nèi)容為:’Hello World! Here is vir21’ 。
注意:vir21的優(yōu)先級為1,vir20的優(yōu)先級為2。
Vir20和vir21的IIS服務都正常工作。瀏覽web.goodluck.com,發(fā)現(xiàn)IE顯示結(jié)果
顯示出兩個結(jié)果。
隔段時間刷新,結(jié)果也會發(fā)生變化。通過這個測試說明NLB把訪問請求路由到不同的的結(jié)點上。
為了使訪問者都能得到正確的結(jié)果,一定要保證訪問的文件必須一樣。在這里可以使用分布式文件系統(tǒng)(Distributed File System)來同步文件。在我的Blog上即將貼出。
網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)通過Network Load Balancing Manager的配置方法
網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群)第二種配置方法:使用Network Load Balancing Manager,這個工具是windows server 2003中新加上的工具,配置更為簡單。
首先配置vir20和vir21的TCP/IP屬性,在Advanced中增加虛擬IP,這一步直接影響到后面的配置效果。
在開始Run中輸入’nlbmgr’,打開NLBM。
右擊選擇New Cluster。
在Cluster Parameters配置集群的IP地址和域名,如下。
下一步,如果集群IP地址不止一個,或在其他的站點也有集群。就在其中添加其他集群的IP地址,這個lab中只有一個集群,所以這里不用添加,Next。
配置相應的規(guī)則如下。
接下來連接到節(jié)點,輸入節(jié)點的IP地址。這個地址是網(wǎng)卡的地址而不是虛擬IP地址。
配置節(jié)點IP及優(yōu)先級,如同上面所述。
增加完節(jié)點后,顯示如下
綠色的表示運行正常,如果出現(xiàn)黃色的感嘆號,查看詳細列表中的錯誤信息。多半是因為沒有把虛擬IP正常加入到節(jié)點的TCP/IP中。
到此 網(wǎng)絡負載平衡(網(wǎng)絡負載均衡、NLB、集群) 配置完成了。
|
新聞熱點
疑難解答