侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

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

2023-11-15 星期三 / 0 评论 / 0 点赞 / 58 阅读 / 5843 字

web服务器: 192.168.122.25 vm25 192.168.122.26 vm26 调度器: 192.168.122.37 vm37 192.168.122.38 vm38 配置好集群软件

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 [email protected]:/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 [email protected]:/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 [email protected]:/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 

 

 

 

广告 广告

评论区