本文主要包含lvs keepalived,lvs keepalived配置,lvs keepalived原理,lvs keepalived nginx,lvs keepalived mysql等服务器相关知识,网友希望可以进行参考
LVS-DR模式加上Keepalived 实现负载均衡高可用集群配置
共四台虚拟机:
LVS-DR-master :192.168.70.133 HA1)
LVS-DR-backup : 192.168.70.135 (HA2)
LVS-DR-VIP :192.168.70.70
LVS-DR-Realsever1 :192.168.70.137 (RS1)
LVS-DR-Realserver2:192.168.70.136 (RS2)
1.在RS1上配置DR模型,也就是绑定VIP
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
. /etc/rc.d/init.d/functions
VIP=192.168.70.70
host=`/bin/hostname`
case "$1" in
start)
# Start LVS-DR real server on this machine.
/sbin/ifconfig lo down
/sbin/ifconfig lo up
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
;;
stop)
# Stop LVS-DR real server loopback device(s).
/sbin/ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $VIP`
isrothere=`netstat -rn | grep "lo:0" | grep $VIP`
if [ ! "$islothere" -o ! "isrothere" ];then
# Either the route or the lo:0 device
# not found.
echo "LVS-DR real server Stopped."
else
echo "LVS-DR real server Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;;
esac执行该脚本
[root@zhu3 ~]# sh real-server.sh start
2.在RS2上的操作与同上
3.在RS1和RS2上创建不同的网页,并启动web服务
[root@zhu3 ~]# vim /var/www/jiang/zhu.html <html> <h1>192.168.70.137 is my name</h1> </html> ~ [root@zhu3 ~]# /opt/nginx/sbin/nginx [root@zhu3 ~]# /opt/php/sbin/php-fpm start Starting php_fpm done [root@zhu3 ~]#
[root@zhu4 ~]# vim /var/www/jiang/zhu.html <html> <h1>My name is192.168.70.136</h1> </html> [root@zhu4 ~]# /opt/nginx/sbin/nginx [root@zhu4 ~]# /opt/php/sbin/php-fpm start Starting php_fpm done
Real server服务器配置完成
4.安装ipvsadm和keepalived
5. HA1上keepalived配置文件
! Configuration File for keepalived
global_defs {
notification_email {
zhujiangtao@iwgame.com
}
notification_email_from admin@yahunet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.70.70
}
}
virtual_server 192.168.70.70 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
sorry_server 1127.0.0.1 80
real_server 192.168.70.137 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 2
nb_get_retry 3
delay_before_retry 1
}
}
real_server 192.168.70.136 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 2
nb_get_retry 3
delay_before_retry 1
}
}
}HA2上keepalived的配置文件
[root@zhu2 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
zhujiangtao@iwgame.com
}
notification_email_from admin@yahunet.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass chtopnet
}
virtual_ipaddress {
192.168.70.70
}
}
virtual_server 192.168.70.70 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
sorry_server 1127.0.0.1 80
real_server 192.168.70.137 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 2
nb_get_retry 3
delay_before_retry 1
}
}
real_server 192.168.70.136 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 2
nb_get_retry 3
delay_before_retry 1
}
}
}该文件与HA1上不同的地方有两项
state BACKUP #该项表示为备节点 priority 99 #该项应小于主HA1上的值
6 :HA1和HA2上先后启动keepalived

