负载均衡之LVS:实现高可用集群(WEB集群)(2)

用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

VRRP

VirtualRouter Redundancy Protocol,能够动态分配可用的IP路由给参与的主机。在VRRP协议中,有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。该虚拟路由器对外表现为一个具有唯一固定IP地址和MAC地址的逻辑路由器。处于同一个VRRP组中的路由器具有两种互斥的角色:主控路由器和备份路由器,一个VRRP组中有且只有一台处于主控角色的路由器,可以有一个或者多个处于备份角色的路由器。VRRP协议使用选择策略从路由器组中选出一台作为主控,负责ARP相应和转发IP数据包,组中的其它路由器作为备份的角色处于待命状态。当由于某种原因主控路由器发生故障时,备份路由器能在几秒钟的时延后升级为主路由器。由于此切换非常迅速而且不用改变IP地址和MAC地址,故对终端使用者系统是透明的。

集群架构:负载均衡层+WEB服务层+数据库层

IP配置信息:

LVS—DR-Master 192.168.56.1 rango.sysu

LVS—DR-Backup 192.168.56.101 vm1.sysu

LVS-DR-VIP 10.0.0.227

WEB1-Realserver 192.168.56.102 vm2.sysu

WEB2-Realserver 192.168.56.103 vm3.sysu

GateWay 192.168.56.254

VIP:虚拟IP需要事先从IDC处获得,并将其绑定到Master的eth0上:

ifconfig eth0:0 10.0.0.227 broadcast 10.0.0.227 netmask 255.255.255.255 up

安装LVS和Keepalived

在Master和Backup上分别编译安装ipvsadmin、keepalived

ps:安装前准备:lsmod |grep ip_vs;

ln -s /usr/src/kernels/{uname -r}/ /usr/src/linux;

yum install libnl* popt*

安装ipvsadmin:

#tar zxvf ipvsadm-1.26.tar.gz

#cd ipvsadm-1.26

#make && make install

#find / -name ipvsadm # 查看ipvsadm的位置

安装keepalived:

#tar zxvf keepalived-1.2.9.tar.gz

#cd keepalived-1.2.9

#./configure && make && make install

#find / -name keepalived #查看keepalived位置

做成系统启动服务方便管理:

#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

#cp /usr/local/etc/sysconfig/keepalived/etc/sysconfig/

#mkdir /etc/keepalived

#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

#cp /usr/local/sbin/keepalived/usr/sbin/

#service keepalived start|stop

利用Keepalvied实现负载均衡和和高可用性

在主负载均衡服务器上配置keepalived.conf

在Backup服务器上配置keepalived.conf

集群所有机器开启路由转发:

vim /etc/sysctl.conf:net.ipv4.ip_forward = 1

sysctl -p

在Realserver上设置网关:

/etc/sysconfig/network-scripts/ifcfg-eth0:

GATEWAY=192.168.56.254

RealServer的启动脚本:lvs_rs.sh

#!/bin/bash

#description: start realserver

VIP=10.0.0.227

. /etc/rc.d/init.d/functions

case "$1" in

start)

echo "start LVS ofRealServer"

/sbin/ifconfig lo:0$VIP broadcast $VIP netmask 255.255.255.255 up

/sbin/route add -host$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

;;

stop)

/sbin/ifconfig lo:0down

/sbin/route del $VIP >/dev/null 2>&1

echo "close LVSDirectorserver"

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 "Usage: $0{start|stop}"

exit 1

esac

exit 0

启动:chmod +x lvs_rs.sh; lvs_rs.sh start

启动:分别在MASTER、BACKUP上执行service keepalived start启动keepalived就可实现负载均衡及高可用集群了

service keepalived start

查看lvs服务是否正常:#watch ipvsadm –ln

日志:监听日志,查看状态,测试LVS负载均衡及高可用性是否有效

#tail –n 12 /var/log/message

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24b7a81b5e2b6adb24ae92b8863a304e.html