一、簡介
VS/NAT原理圖:
二、系統環境
實驗拓撲:
系統平台:CentOS 6.3
Kernel:2.6.32-279.el6.i686
LVS版本:ipvsadm-1.26
keepalived版本:keepalived-1.2.4
三、安裝
0、安裝LVS前系統需要安裝popt-static,kernel-devel,make,gcc,openssl-devel,lftp,libnl*,popt*
1、在兩台Director Server上分別配置LVS+Keepalived
LVS install -------------
[root@CentOS-LVS_MASTER ~]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
[root@CentOS-LVS_MASTER ~]# ln -s /usr/src/kernels/2.6.32-279.el6.i686//usr/src/linux/
[root@CentOS-LVS_MASTER ~]# tar zxvf ipvsadm-1.26.tar.gz
[root@CentOS-LVS_MASTER ~]# cd ipvsadm-1.26
[root@CentOS-LVS_MASTER ipvsadm-1.26]# make && make install
Keepalived install -------------
[root@CentOS-LVS_MASTER ~]# wget http://www.keepalived.org/software/keepalived-1.2.4.tar.gz
[root@CentOS-LVS_MASTER ~]# tar zxvf keepalived-1.2.4.tar.gz
[root@CentOS-LVS_MASTER ~]# cd keepalived-1.2.4
[root@CentOS-LVS_MASTER keepalived-1.2.4]# ./configure && make && make install
######### 將keepalived做成啟動服務,方便管理##########
[root@CentOS-LVS_MASTER ~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
[root@CentOS-LVS_MASTER ~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@CentOS-LVS_MASTER ~]# mkdir /etc/keepalived/
[root@CentOS-LVS_MASTER ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@CentOS-LVS_MASTER ~]# cp /usr/local/sbin/keepalived /usr/sbin/
[root@CentOS-LVS_MASTER ~]# service keepalived start | stop
2、開啟路由轉發
[root@CentOS-LVS_MASTER ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@CentOS-LVS_MASTER ~]# sysctl -p
3、配置Keepalived
[root@CentOS-LVS_MASTER ~]# less /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_MASTER #BACKUP上修改為LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修改為BACKUP
interface eth0
virtual_router_id 51
priority 100 #BACKUP上修改為80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.227
}
}
vrrp_instance LAN_GATEWAY {
state MASTER #BACKUP上修改為LVS_BACKUP
interface eth1
virtual_router_id 52
priority 100 #BACKUP上修改為80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.10
}
}
virtual_server 10.0.0.227 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
# persistence_timeout 5
protocol TCP
real_server 192.168.10.4 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.10.5 80 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
BACKUP服務器同上配置,先安裝lvs再安裝keepalived,然后配置/etc/keepalived/keepalived.conf,只需將批注部分改一下即可。
4、分別在2台Real Server上面設置網關
把網關都設置成:192.168.10.10
5、在2台RealServer中分別配置HTTP
[root@WEB1 ~]# yum -y install httpd
[root@WEB1 ~]# cd /var/www/html/
[root@WEB1 html]# cat index.html
<h1>WEB1/192.168.10.4</h1>
[root@WEB1 html]# /etc/init.d/httpd start
另一台機器配置一樣,過程略。
6、分別在CentOS-LVS_MASTER、CentOS-LVS_BACKUP上執行service keepalived start啟動keepalived就可實現負載均衡及高可用集群了;
[root@CentOS-LVS_MASTER keepalived]# service keepalived start
四、測試
####高可用性測試####
模擬故障,將CentOS-LVS_MASTER上的keepalived服務停掉,然后觀察CentOS-LVS_BACKUP上的日志,信息如下
從日志中可知,主機出現故障后,備機立刻檢測到,此時備機變為MASTER角色,並且接管了主機的虛擬IP資源,最后將虛擬IP綁定在etho設備上。
將CentOS-LVS_MASTER 上的keepalived服務開啟后,CentOS-LVS_BACKUP的日志狀態。
從日志可知,備機在檢測到主機重新恢復正常后,釋放了虛擬IP資源重新成為BACKUP角色
####故障切換測試####
故障切換是測試當某個節點出現故障后,Keepalived監制模塊是否能及時發現然后屏蔽故障節點,同時將服務器轉移到正常節點來執行。
將WEB2節點服務停掉,假設這個節點出現故障,然后主、備機日志信息如下
從以上可以看出,Keepalived監控模塊檢測到192.168.10.5這台主機出現故障后,將WEB2從集群系統中剔除掉了。 此時訪問http://10.0.0.227只能看到WEB1了)
重新啟動WEB2節點的服務,日志信息如下:
Keepalived監控模塊檢測到192.168.10.5這台主機恢復正常后,又將此節點加入集群系統中,再次訪問就可以訪問到WEB2頁面了)
RHEL 5.4下部署LVS(DR)+keepalived實現高性能高可用負載均衡
http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html