使用LVS-NAT+ipvsadm實現RHEL 5.7上的服務集羣
示意圖如下:
說明:
本文集羣配置是在VMware虛擬機裏實現,是對web服務進行負載均衡集羣。
在實際工作中,reserver1和realserver2的web服務的網頁數據是一模一樣的,本文爲了突出實驗效果,故意設置成不同的網頁,請注意,在實際工作中,一定要讓realserver1和realserver2的網頁數據保持一致。
共需要三臺虛擬linux主機,分別命名爲Director,RS1,RS2
其中director:
eth0 : 172.16.22.1 網卡選擇爲橋接
eth1 : 192.168.22.1 網卡選擇爲僅主機
RS1:
eth0 : 192.168.22.22 網卡選擇爲僅主機
RS2 :
eth0 : 192.168.22.23 網卡選擇爲僅主機
確保windows的防火牆以及虛擬機裏的三臺虛擬linux主機的防火牆完全關閉
具體實現過程:
1.在director主機上:
查看內核是否支持ipvs以及安裝定義ipvs規則的工具:ipvsadm
- # ifconfig eth0 172.16.22.1 255.255.0.0
- # ifconfig eth1 192.168.22.1 255.255.255.0
- # grep –i “vs” /boot/config-2.8.18-164.e15
- # yum install ipvsadm –y
- # vim /etc/selinux/config
- # setenforce 0
- # cat /proc/sys/net/ipv4/ip_forward #查看是否開啓轉發
- # sysctl –w net.ipv4.ip_forward=1
2.在RS1主機上:
- # ifconfig eth0 192.168.22.22 255.255.255.0
- # route add default gw 192.168.22.1
- # ping 192.168.22.1
- # setenforce 0
- # rpm –ivh httpd-2.2.3-31.el5.i386.rpm
- #echo
- “rs1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111” > /var/www/html/index.html
- # service httpd start
- # elinks -dump http://192.168.22.22 #測試本機是否可以訪問web服務
說明:此時本機可以正常訪問web服務。
3.在RS2主機上:
- # ifconfig eth0 192.168.22.22 255.255.255.0
- # route add default gw 192.168.22.1
- # ping 192.168.22.1
- # setenforce 0
- # rpm –ivh httpd-2.2.3-31.el5.i386.rpm
- #echo “rs2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222” > /var/www/html/index.html
- # service httpd start
- # elinks –dump http://192.168.22.23 #測試本機是否可以訪問web服務
說明:此時本機可以正常訪問web服務。
4.在director主機上添加ipvs規則,實現負載均衡集羣:
- # ipvsadm –A –t 172.16.22.1:80 –s rr
- # ipvsadm –a –t 172.16.22.1:80 –r 192.168.22.22 –m
- # ipvsadm –a –t 172.16.22.1:80 –r 192.168.22.23 –m
- # # ipvsadm –L -n
注意:虛擬機的VMnet1的ip改爲和RS1,RS2在一個網段即可。
如圖:把方框內的IP地址改爲和RS1,RS2在一個網段:
5.測試web負載均衡集羣
在windows瀏覽器中輸入:http://172.16.22.1,出現:
此時我們對web服務的負載均衡集羣已經實現了(由於我們設置的調度方法是rr:輪叫,所以這兩個realserver的網頁是交替出現的,具體調度方法請看:http://lihuan.blog.51cto.com/4391550/832560)。
補充知識:
ipvsadm 命令的常用選項:
-A 定義新的集羣服務
-E 修改或編輯已存在的集羣服務
-D 刪除某集羣服務 –D t|u|f service-address
-C 清空所有的集羣服務的定義和realserver定義
-R = ipvsadm-restore 重新載入規則
-S = ipvsadm-save 保存規則
-L|l 列出當前定義的集羣服務,加上-c選項,顯示連接詳情
-Z,--zero 清空所有服務
--status 輸出統計信息
--rate 輸出統計速率
例:# ipvsadm –L –n