負載均衡集羣配置過程詳解

在生產環境中,一臺機器的性能再好,也不可能抵擋住上萬人的同時訪問。這就需要我們搭建集羣來減輕單一主機的壓力,同時還可以提升服務的速度和質量。

LVS-NET負載均衡集羣:

NET模型的基本配置:

NET模型需要一個director和至少兩個realserver來提供集羣服務,其大致工作原理如圖所示:

Director有兩塊網卡,其中VIP指向外網,DIP指向內網。用戶訪問時訪問的是director,也就是一個集羣服務。但是用戶並不知道自己訪問的是一個集羣服務,用戶看到的只是director通過VIP提供的服務,所以用戶在發送請求時其目標IP指向的是VIPVIP在接收到用戶請求之後通過指定的算法將請求通過DIP轉發給realserverrealserver得到請求報文之後會在最短的時間內處理並將報文回傳給DIPDIP再將響應報文轉交給VIPVIP將響應報文送還給用戶。

下面是用NET模型提供web服務的配置過程:

配置環境:使用VMware虛擬機,Director和兩個realserver的系統均爲RHEL5.8

主機配置:Director主機配置兩塊網卡,realserver配置一塊網卡;Director一塊網卡指向外網,選擇Bridged;指向內網的網卡選擇Hots-Only。兩個realserver的網卡也選擇Host-Only

首先爲Director提供兩塊網卡,其中一塊用來當做VIP網卡使用,指向外網地址。

配置VIP地址爲:172.16.125.1; DIP網卡地址指向內網,地址爲:192.168.125.1

realserver 1地址爲192.168.125.3realserver 2地址爲192.168.125.4。將兩個realserver的網關指向192.168.125.1

做集羣最重要的是realserver之間的時間間差不能超過1秒鐘,可以使用ntpdate 192.168.125.1來讓realserver的時間與Director同步。realserver上的ntpdate服務要實現停止纔可以同步。

Director中開啓本地路由轉發功能,可以使用命令# echo 1 > /proc/sys/net/ipv4/ip_foeward 來實現。

查看Directoripvsadm包是否安裝,沒有安裝的話可以使用yum安裝。安裝後爲ipvsadm添加調度規則。

# ipvsadm -A -t 172.16.125.1:80 -s rr

# ipvsadm -a -t 172.16.125.1:80 -r 192.168.125.3 -m

# ipvsadm -a -t 172.16.125.1:80 -r 192.168.125.4 -m

realserver提供web服務,可以利用yum直接安裝使用,爲realserver 1 提供網頁在/var/www/http/下命名爲index.html,內容爲了測試爲host2.earl.com。爲realserver 2 提供網頁在/var/www/http/下命名爲index.html,內容爲host3.earl.com。啓動兩個realserverhttpd服務,在本地的物理機上就可以測試了。

以下爲網頁訪問效果:

realserver 1

realserver 2

LVS-DR模型的基本配置:

DR模型總體上來說和NET模型沒有什麼區別,只是將所有的請求報文交給Director處理,Director不再處理響應請求,響應請求直接由realserver交給路由器轉發回Client。這樣可以減輕Director的壓力,提高報文響應的速度。但是用戶請求的是目標IPVIP,如果RIP直接響應給用戶的話,用戶發現沒有對此IP發送請求,是不會接收的。所以我們還必須用VIP的地址來響應給用戶。可是VIP不處理響應報文,這裏就用到了網卡的別名。可以給RIP的網卡定義一個別名,將其地址設爲VIP的地址。由於是網卡的別名,是隱藏的地址,所以不會發生IP衝突。一般情況下別名的地址是不用來通信的,只用來響應用戶的請求的集羣服務。

配置環境:VMware Workstation 9.0

系統環境: RHEL 5.8

我們可以使用上邊的NET模型中的三臺虛擬機,只是要添加一臺虛擬機當做路由器來進行轉發功能。

配置路由IP地址:

內部路由接口:192.168.125.20

外部路由接口:172.16.125.10

realserver要使用VIP的地址直接響應給用戶的,所以給realserver的網卡配置上別名,不過在這之前將其RIP的網關指向路由設備使其能夠到外網中去(別忘了查看時間同步)

修改網關之後要修改內核參數,然後定義別名,並給別名添加路由條目(一定要先修改內核參數,然後在定義別名)

Realserver1Realserver2的步驟完全相同:

# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

# ifconfig eth0:0 172.16.125.1 netmask 255.255.255.255 broadcast 172.16.125.1

# route add -host 172.16.125.1 dev eth0:0

配置Director

DirectorVIP提供一條跟RIP的別名相同的路由條目

# route add -host 172.16.125.1 dev eth0

清空NET是用的ipvsadm規則,並重新制定規則

# ipvsadm -A -t 172.16.125.1:80 -s wlc

# ipvsadm -a -t 172.16.125.1 -r 192.168.125.3 -w 1

# ipvsadm -a -t 172.16.125.1 -r 192.168.125.4 -w 1

最後重啓realserverDirector的網絡服務,就可以測試了。

以上便是兩種LVS的負載均衡集羣配置全過程。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章