由于公司最近網站流量暴增,單臺服務器的連接數經常過2W,為了讓用戶獲得更好的性能和網站的容災型,配置負載平衡(負載均衡、NLB)也成了首要任務。公司服務器是Windows2003英文版本,用2臺服務器來配置負載均衡。
在Google和Baidu上面看了2天,發現有一些負載平衡(負載均衡、NLB)的配置經驗還是蠻不錯的,所以把這些摘錄過來,做下備忘,并希望能幫助更多的人配置。
網絡負載平衡(網絡負載均衡、NLB、集群)概述
首先,我們先了解下Windows2003自帶的負載平衡(負載均衡)——NetworkLoadBalancing,簡稱NLB。NLB是一種集成高可用性,高可靠性和高擴展性的集群。它不但能實現均衡負載,而且還能實現多種形式的冗余。NLB主要用于那些文件改動不大,并且不常駐內存的環境,比如WEB服務、FTP服務、和VPN服務等。NLB不適合用于數據庫、郵件等服務,因為不能保證每個節點的數據是一樣的。
當用戶訪問集群的時候,集群能將訪問請求分攤到集群中的每個服務器上,以達到均衡負載的效果。這些服務器被稱為集群節點。在負載平衡(負載均衡、NLB)中,每個節點的文件一般都要求是一樣的。這樣每個節點返回給客戶的結果都是一致的。一般來說組建一個NLB要求至少兩個節點,其中一個節點不能使用,這全部負載將落入到剩下的那個節點上,即全載。Windowsserver2003最多支持32個節點。節點越多,可用性(availability),可靠性(reliability)就越高。
NLB能提供三種冗余功能,軟件冗余、硬件冗余、站點冗余。
網絡負載平衡(網絡負載均衡、NLB、集群)工作原理
每個NLB節點都有同一個虛擬IP地址。當訪問請求發向虛擬IP,NLB會負責把這個請求路由到其中的一個節點上,以達到均衡負載的作用。如圖所示:
接下來,開始著手配置NLB的測試站點。假設,網站為web.gooduck.com。準備兩臺服務器server1和server2,分別安裝windowsserver2003Enterprise并安裝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返回處理的結果。用戶是感覺不到其中的過程。
網絡負載平衡(網絡負載均衡、NLB、集群)測試站點的配置
1.配置vir20、vir21的IIS服務
在各服務器中,run中輸入inetmgr
在DefaultWebSite中創建default.htm文件,在其中輸入:Helloworld!
右擊選擇”Browse”瀏覽結果
兩臺服務器都是執行同樣的操作。
網絡負載平衡(網絡負載均衡、NLB、集群)通過單節點的配置方法
網絡負載平衡有兩種配置方法:
一種是通過配置每個節點的連接屬性;
一種是通過NetworkLoadBalancingManager(windowsserver2003新特性)。
這兩種方法各有所長,但是個人比較推薦第一種方法
網絡負載平衡(網絡負載均衡、NLB、集群)單節點的配置方法如下:
打開節點連接屬性,勾選NetworkLoadBalancing。
點擊Properties,進一步設置
在ClusterParameters頁面中,輸入虛擬IP地址202.108.22.5,DNS解析web.goodluck.com就是這個地址。
在單網卡的節點中,只能使用多播的方式來收發內部IP流和NLB流。在有兩張網卡的情況中,就可以用單播的方式,這樣一張網卡負責NLB流,另外一張負責IP流。所以從訪問性能來說,單播的方式要比多播的方式快。現在的許多服務器有兩個網口。如果滿足條件,最好能使用單播模式。
進入到HostParameters頁面。
priority設置成1,此節點在集群中為主節點。說明網絡負載平衡(網絡負載均衡、NLB、集群)會在未達到負載極限的時候,首先把請求路由到優先權高的節點上。在另外一個節點的值則不能為1。請注意這個值在每個節點上是唯一的。輸入節點的IP地址。
在PortRules中
可以對流量進行篩選。表示,對于任何訪問http80端口的任何訪問都接受。對于https443端口的接受特定IP。如果要添加其他的規則單擊Add增加。
還可以設置節點的負載,默認選擇均衡。
Filteringmode:
Affinity(相似性)這是用于控制訪問請求路由。當使用None時,來自同一個IP的請求將得到不同節點的回應,這提高了集群的性能。如果Protocols使用UDP或Both,為了能正確的處理IP片段,應該盡量不要使用None。在處理http時建議選擇None以提高性能。Single模式,將來自相同的IP地址路由到同一個節點上,提訪問的高安全性。ClassC模式將來自與節點同一個子網的訪問路由到同一個節點上。
OK結束。
接下來要在節點的TCP/IP中添加虛擬IP。
點擊OK完成NLB的設置。
兩臺服務器上都設置好后,進行測試。
在client上瀏覽web.goodluck.com。注意,client上一定要能正確解析web.goodluck.com。
可以修改hosts文件,手工添加解析。但一定要保證能和節點連通。
再來考慮,如果其中一個節點不能訪問,瀏覽是否會受到影響。
停止一個server1的IIS來測試下。修改server1和server2的default.htm內容成“Helloworld!TheIISofvir20isstopped.”
可以看出vir21承擔了所有的訪問。
接下來開啟vir20,并且關閉vir21。看看會出現什么情況。同樣修改這兩臺的defualt.htm文件。“Helloworld!TheIISofvir20isworkingnow.”
在vir21停止工作,vir20正常工作的時候,網絡負載平衡(網絡負載均衡、NLB、集群)依然正常工作。這樣就達到了均衡負載的要求了。
下面我們做一次簡單的測試。如果vir20和vir21兩個節點的內容不同,顯示結果會如何。
在vir20中修改default.htm內容為:’HelloWorld!Hereisvir20’。
vir21的default.htm內容為:’HelloWorld!Hereisvir21’。
注意:vir21的優先級為1,vir20的優先級為2。
Vir20和vir21的IIS服務都正常工作。瀏覽web.goodluck.com,發現IE顯示結果
顯示出兩個結果。
隔段時間刷新,結果也會發生變化。通過這個測試說明NLB把訪問請求路由到不同的的結點上。
為了使訪問者都能得到正確的結果,一定要保證訪問的文件必須一樣。在這里可以使用分布式文件系統(DistributedFileSystem)來同步文件。在我的Blog上即將貼出。
網絡負載平衡(網絡負載均衡、NLB、集群)通過NetworkLoadBalancingManager的配置方法
網絡負載平衡(網絡負載均衡、NLB、集群)第二種配置方法:使用NetworkLoadBalancingManager,這個工具是windowsserver2003中新加上的工具,配置更為簡單。
首先配置vir20和vir21的TCP/IP屬性,在Advanced中增加虛擬IP,這一步直接影響到后面的配置效果。
在開始Run中輸入’nlbmgr’,打開NLBM。
右擊選擇NewCluster。
在ClusterParameters配置集群的IP地址和域名,如下。
下一步,如果集群IP地址不止一個,或在其他的站點也有集群。就在其中添加其他集群的IP地址,這個lab中只有一個集群,所以這里不用添加,Next。
配置相應的規則如下。
接下來連接到節點,輸入節點的IP地址。這個地址是網卡的地址而不是虛擬IP地址。
配置節點IP及優先級,如同上面所述。
增加完節點后,顯示如下
綠色的表示運行正常,如果出現黃色的感嘆號,查看詳細列表中的錯誤信息。多半是因為沒有把虛擬IP正常加入到節點的TCP/IP中。
到此網絡負載平衡(網絡負載均衡、NLB、集群)配置完成了。
以上就是關于Windows2003網絡負載平衡(網絡負載均衡、NLB、集群)概述,更多關于Win2003的內容,可以多多關注下錯新技術頻道,我們會不斷的更新。
新聞熱點
疑難解答