您的位置:首页 > 运维架构 > 网站架构

lvs架构的DR模式+keepalived高可用 推荐

2013-10-16 22:07 561 查看



配置过程如下:分析架构:如果ld是单一节点,那么这个ld挂了,整个架构也就挂了,所以我们这里必须考虑到HighAvailabiliity(HA),我们这里就是通过keepalived这个高可用软件来实现的。1.客户端配置:
#ifconfigeth0192.168.18.106#routeadddefaultgw192.168.18.2542.Router端配置:#ifconfigeth0192.168.18.254#ifconfigeth0:0192.168.19.100打开包转发#echo1>/proc/sys/net/ipv4/ip_forward
3.分发器Master的配置:安装lvs到分发器上面配置好yum源,保证能够读取到介质中的Cluster目录!cat/etc/yum.repos.d/aa.repo
[aa]name=aabaseurl=file:///media/Serverenabled=1gpgcheck=0[Cluster]name=clusterbaseurl=file:///media/Clusterenabled=1gpgcheck=0#yum-yinstallipvsadm#ifconfigeth0192.168.19.300安装keepalived,并通过其绑定VTP
#tarzxfkeepalived-1[1].1.17.tar.gz#yuminstallgccopenssl-develkernel-develipvsadm-y(不装一会安装会有问题)#ln-s/usr/src/kernels/2.6.18-238.el5-i686//usr/src/linux(这条不能复制粘贴,因为要看你机器的内核版本,可以粘过去进行tab键补齐)#cdkeepalived-1.1.17#./configure--prefix=/usr/local/keepalived#make#makeinstall
安装后,把人家提供好的文件进行对应的复制!#cp/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/#cp/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/#mkdir-pv/etc/keepalivedmkdir:已创建目录“/etc/keepalived”#cp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/#ln-s/usr/local/keepalived/sbin/keepalived/sbin/删减自定义配置文件就行:
#vim/etc/keepalived/keepalived.conf
!ConfigurationFileforkeepalived
global_defs{router_iddr1}vrrp_sync_grouphttp{group{apache}}
vrrp_instanceapache{stateMASTERinterfaceeth0virtual_router_id51priority180advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{192.168.19.250}}virtual_server192.168.19.5080{delay_loop6lb_algorrlb_kindDR#persistence_timeout3600protocolTCPreal_server192.168.19.10180{weight1TCP_CHECK{connect_timeout3connect_port80}}real_server192.168.19.10280{weight1TCP_CHECK{connect_timeout3connect_port80}}}
启动服务#/etc/init.d/keepalivedstart4.分发器Backup的配置:安装lvs到分发器上面
配置好yum源,保证能够读取到介质中的Cluster目录!cat/etc/yum.repos.d/aa.repo
[aa]name=aabaseurl=file:///media/Serverenabled=1gpgcheck=0[Cluster]name=clusterbaseurl=file:///media/Clusterenabled=1gpgcheck=0#yum-yinstallipvsadm#ifconfigeth0192.168.19.200安装keepalived,并通过其绑定VTP
#tarzxfkeepalived-1[1].1.17.tar.gz#yuminstallgccopenssl-develkernel-develipvsadm-y(不装一会安装会有问题)#ln-s/usr/src/kernels/2.6.18-238.el5-i686//usr/src/linux(这条不能复制粘贴,因为要看你机器的内核版本,可以粘过去进行tab键补齐)#cdkeepalived-1.1.17#./configure--prefix=/usr/local/keepalived#make#makeinstall
安装后,把人家提供好的文件进行对应的复制!#cp/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/#cp/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/#mkdir-pv/etc/keepalivedmkdir:已创建目录“/etc/keepalived”#cp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/#ln-s/usr/local/keepalived/sbin/keepalived/sbin/删减自定义配置文件就行:
#vim/etc/keepalived/keepalived.conf
!ConfigurationFileforkeepalived
global_defs{router_iddr2#(这里名字注意要和master的不一样就行)}vrrp_sync_grouphttp{group{apache}}
vrrp_instanceapache{stateBACKUP#(这里要改成backup,备机)interfaceeth0virtual_router_id51priority100#(这里级别要比主机低点就好)advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{192.168.19.250}}virtual_server192.168.19.5080{delay_loop6lb_algorrlb_kindDR#persistence_timeout3600protocolTCPreal_server192.168.19.10180{weight1TCP_CHECK{connect_timeout3connect_port80}}real_server192.168.19.10280{weight1TCP_CHECK{connect_timeout3connect_port80}}}

5.realserver的配置:#ifconfigeth0192.168.19.100

绑定VTP:利用脚本来实现:
#!/bin/bash
VIP=192.168.19.250
ROUTE=192.168.19.100
start(){
ifconfiglo:0$VIP/32broadcast$VIPup
routeadd-host$VIPdevlo:0
routeadddefaultgw$ROUTE
echo1>/proc/sys/net/ipv4/conf/all/arp_ignore
echo2>/proc/sys/net/ipv4/conf/all/arp_announce
echostart;
}

stop(){
routedeldefaultgw$ROUTE
routedel-host$VIPdevlo:0
ifconfiglo:0down
echo0>/proc/sys/net/ipv4/conf/all/arp_ignore
echo0>/proc/sys/net/ipv4/conf/all/arp_announce
echostop;
}

case$1in

start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo'start|stop'
esac把这个脚本放到/etc/init.d/下面启动:/etc/init.d/vip.shstart其他realserver的配置同理6.到master主机上面验证:测试第一步:查看绑定的VTP
#ipaddsh1:lo:<LOOPBACK,UP,LOWER_UP>mtu16436qdiscnoqueuelink/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet127.0.0.1/8scopehostloinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_fastqlen1000link/ether00:0c:29:a6:09:10brdff:ff:ff:ff:ff:ffinet192.168.19.300/24brd192.168.19.255scopeglobaleth0inet192.168.19.250/32scopeglobaleth0cinet6fe80::20c:29ff:fea6:910/64scopelinkvalid_lftforeverpreferred_lftforever3:sit0:<NOARP>mtu1480qdiscnooplink/sit0.0.0.0brd0.0.0.0
测试第二步,查看realserver的连通性l#elinkshttp://192.168.19.102/index.html--dump102#elinkshttp://192.168.19.101/index.html--dump101
测试第三步,查看ipvsadm规则#ipvsadm-lnIPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.19.250:80rr->192.168.19.101:80Route100->192.168.19.102:80Route100
测试第四步,同客户端测试[root@~]#elinkshttp://192.168.19.250/index.html--dump101[root@~]#elinkshttp://192.168.19.250/index.html--dump102[root@~]#elinkshttp://192.168.19.250/index.html--dump101[root@~]#elinkshttp://192.168.19.250/index.html--dump102启动BACKUPld2#/etc/init.d/keepalivedstart启动keepalived:[确定]
关闭master上的keepalived,模拟失败再在client上测试,看访问能否继续!
如果没有问题,在realserver(192.168.19.101)上关闭服务ld1#ipvsadm-lnIPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.19.250:80rr->192.168.19.102:80Route100ld1#ipvsadm-lnIPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.19.250:80rr->192.168.19.101:80Route100->192.168.19.102:80Route100

解决无用的广播包太多,造成ld无法绑定vipld1上执行iptables-Fiptables-AINPUT-mttl--ttl-eq255-jREJECTiptables-IINPUT-s$ld2ip-jACCEPT
ld2上执行iptables-Fiptables-AINPUT-mttl--ttl-eq255-jREJECTiptables-IINPUT-s$ld1ip-jACCEPT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LVS+Keepalived