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

20170418-pirranha+lvs 实现高可用负载均衡集群

2017-04-18 00:00 253 查看
web服务器:

192.168.122.25 vm25

192.168.122.26 vm26

调度器:

192.168.122.37 vm37

192.168.122.38 vm38

配置好集群软件仓库

vm37 vm38 yum install piranha -y

piranha-passwd 为piranha设置密码

service piranha-gui restart

chkconfig piranha on

netstat -anutlp | grep httpd 可以看到监听了3636端口

这里将vm37设置为主,vm38设置为从

vm37 浏览器访问: 192.168.122.37:3636





指定主调度器,模式选择直接路由:



指定从调度器:



设置VIP:





设置真实ip (web server):





后端健康状态检测,这里使用脚本:



配置完后,vm37的 /etc/sysconfig/ha/lvs.cf里面就生成了刚刚配置的信息

拷贝到vm38的 /etc/sysconfig/ha/

scp /etc/sysconfig/ha/lvs.cf root@192.168.122.38:/etc/sysconfig/ha/

写健康状态检测的脚本

vim /usr/local/bin/check.sh

#!/bin/bash

#

hn="$1"

: ${hn?} 保证ip存在

> /dev/tcp/$hn/80

if [ $? -eq 0 ];then

echo "OK"

else

echo "KO"

fi

保存退出

chmod +x /usr/local/bin/check.sh

拷贝一份到vm38 :

scp /usr/local/bin/check.sh root@192.168.122.38:/usr/local/bin/

service pulse restart

chkconfig pulse on

web服务器vm25:

因为是直接路由所以要设置VIP和忽略arp,不转发,直接回包。

vim lvsrs

将VIP改为调度设置的VIP

#!/bin/bash

#

# lvsrs Startup script for the lvsrs Server

#

# chkconfig: 2345 86 14

# description: lvsrs script. It is used to serve \

#

VIP=192.168.122.99

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

case "$1" in

start)

echo " start LVS of REALServer"

/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 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

;;

stop)

echo "close LVS Directorserver"

/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

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

保存退出,

cp lvsrs /etc/init.d/

chmod +x /etc/init.d/lvsrs

service lvsrs start

chkconfig lvsrs on

拷贝一分到vm26:

scp /etc/init.d/lvsrs root@192.168.122.26:/etc/init.d/

service lvsrs start

chkconfig lvsrs on

ip addr show lo 查看设置上VIP没

调度器vm37:

yum install ipvsadm -y

执行: ipvsadm

可以看到VIP和web服务器

测试:

集群以外的客户端vm15(192.168.122.15):

yum install lynx -y

lynx -dump 192.168.122.99

可以看到vm25和vm26的网页内容 (轮循)

测试健康状态检测:

vm25或者vm26上将apache停了,如果成功就只会访问正常工作的这台。

这是在vm37上执行: ipvsadm 只会看到服务正常的web服务器

测试调度器的高可用:

vm15: ping 192.168.122.99 现实可以ping 通

在vm37上:

service pulse stop

可以看到vm15上不能ping通了,过一会儿又能ping通了

vm37: ip a 可以看到VIP没有了

vm38: ip a 可以看到VIP
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  piranha linux