1. 环境
三台Cent0S6.5迷你版系统
Node1 : VPI=192.168.118.100 DIP= 192.168.118.138 DR集群服务器 MASTER
Node2 : RIP=192.168.118.135 VIP=192.168.118.100 RS服务器1 apache
Node3 : RIP=192.168.118.137 VIP=192.168.118.100 RS服务器2 apache
Node4 : VPI=192.168.118.100 DIP= 192.168.118.139 DR集群服务器 BACKUP
2. 配置集群服务器
l 安装ipvsadm
Yum install ipvsadm
l 安装Keppalivd
Yum install keepalived
l 配置keppalived
编辑/etc/keepalived/keepalived.conf
! ConfigurationFile for keepalived
global_defs{
notification_email {
root@localhost #发送提醒邮件的目标地址可有多个
}
notification_email_from test@localhost #发送邮件的from地址,可以随意写,邮件地址不存在都无所谓
smtp_server 127.0.0.1 #邮件服务的地址,一般写本地
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instanceVI_1 {
state MASTER #192.168.118.138为MASTER 192.168.118.139为BACKUP
interface eth1 #VIP需要绑定的网卡名称
virtual_router_id 51
priority 100 #优先级主的优先级要高
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.118.100/24 dev eth1 label eth1:1 #设置VIP
}
}
virtual_server 192.168.118.100 80 { 设置虚拟lvs服务,VIP PORT
delay_loop 6
lb_algo wrr #调度算法wrr
lb_kind DR #lvs的模式
nat_mask 255.255.255.0
persistence_timeout 0 #用户请求持续时间
protocol TCP
real_server 192.168.118.135 80 { #设置真实服务器的心跳机制 RID PORT
weight 2 #权重
HTTP_GET { #心跳检测的方式
url {
path / #心跳检查的地址
status_code 200 #心跳检查返回的状态
}
connect_timeout 2 #超时时间
nb_get_retry 3 #重复检查3次
delay_before_retry 3 #每隔3秒钟再次检查
}
}
real_server 192.168.118.137 80 { #第二个真实服务器设置
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
3. 配置RS
运行RS服务器运行以下的脚本
#!/bin/bash
#description : start realserver
VIP=192.168.118.100
case "$1" in
start)
echo " start LVS of REALServer"
echo "1">/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/eth0/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:0 $VIP broadcast $VIP netmask255.255.255.255 up
route add -host $VIP dev lo:0
;;
stop)
ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/eth0/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/eth0/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac