lvs + keepalived + httpd DR模式web层高可用方案架构
注意:lvs+keepalived 高可用方案中主备可以不需要绑定脚本,只需要keepalived的单个文件就可以整个集群.本实验为了方便理解采用了rpm 包安装的方式,对tar包情有独钟的可以绕过.本次讨论的重点是lvs+keepalived
1.1IP地址的配置:
lvs1master 192.168.80.145 主keepalived
lvs2 slave 192.168.80.144 备keepalived
realserver 192.168.80.146 web1
realserver 192.168.80.147 web2
realserver 192.168.80.149 web3 实验里面未添加(机器太烂)
GW 192.168.80.254 网关
1.2架构图:
http://blog.运维网.com/attachment/201307/111725672.jpg
安装支持包:
yum install openssl-devel kernel-devel
安装ipvsadm :
yum install ipvsadm
安装keepalived :
yum install keepalived
配置开机启动项:
chkconfig ipvsadm on
chkconfig keepalived on
配置keepalived :
vim /etc/keepalived/keepalived.confg内容如下:
! Configuration File for keepalived
global_defs {
notification_email {
# acassen@firewall.loc
# failover@firewall.loc
# sysadmin@firewall.loc
57674891@qq.com # 联系人
}
notification_email_from 57674891@qq.com
smtp_server smtp.qq.com
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER #从上直接改为BACKUP 即可。
interface eth0
virtual_router_id 51
priority 100 # 主上是100 从一定要设置比主小,90
advert_int 1
authentication {
auth_type PASS #密码验证类型
auth_pass 1111 #主从之间的验证密码,主从2端一定要一致
}
virtual_ipaddress {
# 192.168.200.16
# 192.168.200.17
# 192.168.200.18
#10.0.0.100
192.168.80.148 # 虚拟ip (vip)地址后面,下面可以继续叠加。
}
}
#--------------------------------------
virtual_server 192.168.80.148 80 { # 虚拟IP
delay_loop 6 #(每隔10秒查询realserver状态)
lb_algo rr #(lvs 算法) 更改算法在此处更改
lb_kind DR #(Direct Route)
persistence_timeout 5 #(同一IP的连接60秒内被分配到同一台realserver)
protocol TCP #(用TCP协议检查realserver状态)
real_server 192.168.80.146 80 { #web端地址
weight 1 #(权重)
TCP_CHECK {
connect_timeout 10 #(10秒无响应超时)
nb_get_retry 3
delay_before_retry 3
connect_port 80 #端口
}
}
real_server 192.168.80.147 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
#后面还有很多示例可以负载其他服务,再此不做演示
------------------------主ha配置完成-------------------------------------
backup 配置:
安装ipvsadm 和keepalived 是一样的
scp root@192.168.80.144:/etc/keepalived/keepalived.conf
修改keepalived 配置文件使之成为备ha,(仅需要修改2个地方)
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP #直接改为BACKUP 即可。
interface eth0
virtual_router_id 51
priority 90 #主上是100 从一定要设置比主小,90
advert_int 1 设置完成重启keepalived 即可,启动ipvsadm start
service keepalived start
------------------------备ha配置完成-------------------------------------
web 端:
vim /root/realserver.sh
#!/bin/bash
# description: Config realserver
#Written by : http://kerry.blog.运维网.com
#此脚本转自以上作者,尊重他人劳动成果。特此保留版权信息
SNS_VIP=192.168.80.148 # VIP 地址
/etc/rc.d/init.d/functions #如果提示权限不够 执行:chmod 777 /etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP dev lo:0
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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del $SNS_VIP >/dev/null 2>&1
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
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0 赋予可执行权限:
chmod a+x realserver.sh
加入开启自启动:
echo /root/realserver.sh &>>/etc/rc.local
启动脚本:
/root/realserver.sh & 查看本机的ip信息:
#
ifconfig http://blog.运维网.com/attachment/201307/112301100.jpg
把realserver.sh复制到其他的web端上同样操作,验证即可。
------------------------至此realserver配置完成-----------------------
测试部分:
任意客户端访问http://192.168.80.148应该都在146,147,149 三台主机之间切换
主lvs + keepalived 访问效果图:
ipvsadm –ln
http://blog.运维网.com/attachment/201307/112435444.jpg
ipvsadm –ln–-stats
http://blog.运维网.com/attachment/201307/112545828.jpg
backup 上的内容
ipvsadm –ln
http://blog.运维网.com/attachment/201307/112621886.jpg
ipvsadm –ln –stats:
http://blog.运维网.com/attachment/201307/112701464.jpg
主从切换日志内容:
停掉主上的keepalived
tail –F/var/log/message
http://blog.运维网.com/attachment/201307/112730751.jpg
backup日志
http://blog.运维网.com/attachment/201307/112826580.jpg
从接替主之后访问VIP 产生的效果:
http://blog.运维网.com/attachment/201307/112919754.png
主从切换正常,试验完成。
页:
[1]