首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >HeartBeat+LVS+Ldirectord高可用负载均衡解决方案

HeartBeat+LVS+Ldirectord高可用负载均衡解决方案

作者头像
星哥玩云
发布2022-06-30 20:45:46
发布2022-06-30 20:45:46
3140
举报
文章被收录于专栏:开源部署开源部署

1、通过Heartbeat来实现HA群集,已达到实时监控主Director的运行状态,一旦主状态死掉,处于备份状态的Director立即激活为主状态,实现高可用性。

2、通过了ldirectord实时监控Director后方的real server的运行状态,一旦real server的相关服务死掉,或者网卡坏掉的话,Director将不会再将客户的请求定向到该real server上。

3、LVS—DR

拓扑如下:

Server1的ip为192.168.2.100 接口lo:0的vip为192.168.2.1

Server2的ip为192.168.2.200 接口lo:0的vip为192.168.2.1

主Director的eth0的ip为192.168.2.10

Eth1的ip为192.168.3.1

备Director的eth0的ip为192.168.2.20

Eth1的ip为192.168.3.2

Vip 为192.168.2.1

Director1的配置

1、分别配置ip地址及主机名

Lo:0接口ip地址的配置

修改Director的主机名

Hostname director1 及编辑/etc/sysconfig/network

hosts文件如下:

其他的略

2、安装heartbeat所需的软件以实现HA如下:

heartbeat-2.1.4-9.el5.i386.rpm

heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

heartbeat-pils-2.1.4-10.el5.i386.rpm

heartbeat-stonith-2.1.4-10.el5.i386.rpm

libnet-1.1.4-3.el5.i386.rpm

perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck

yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-ldirectord-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck

3、将authkeys haresources ha.cf这三个文件拷贝到/etc/ha.d/目录下,并依次编辑如下:

cd /usr/share/doc/heartbeat-2.1.4/

cp authkeys haresources ha.cf /etc/ha.d/

cd /etc/ha.d/

vim ha.cf

bcast eth1 ---指明心跳探测接口

node Director1

node Director2

vim authkeys

auth 3

3 md5 0b8e3683637d469bd73abc7e19e2156c --md5验证 (后边的md5密文随意只要两个Director的一样)

chmod 600 authkeys

vim haresources

Director1 192.168.2.1/24/eth0 ldirectord::ldirectord.cf --Director1 是指明处于主状态的director,192.168.2.1 即vip ,ldirectord是heartbeat控制的服务 ,ldirectord.cf 是ldirectord要调用的参数。

4、将ldirectord.cf拷贝到/etc/ha.d/目录下

cd /usr/share/doc/heartbeat-ldirectord-2.1.4/

cp ldirectord.cf /etc/ha.d/

cd /etc/ha.d/

vim ldirectord.cf 修改如下:

Fallback=127.0.0.1:80 --当real server都死掉的话,vip指向本机

persistent=600 ---这个是持久连接

checktype=negotiate --检测类型 negotiate,表示DR发送请求,realserver恢复特定字符串才表示服务正常;connect,表示DR能够连线realserver即正常。

Ldirectord通过访问含有”OK”内容的.web.html这个web页面来达到监测后方的real server 的,当后方的server死掉或这是web服务停止,自然就就访问不到.web.html这个页面了。

5、确保ipvsadm没有规则,并处于stop状态和开机不启动

ipvsadm -C

service ipvsadm save

service ipvsadm stop

chkconfig ipvsadm off

如果是才按装ipvsadm执行一下service ipvsadm save就可以了

Director2的配置(2--5步)完全相同,(略)

Real server1的配置

1、安装httpd,配置好web服务

2、在/var/www/html/目录下新建上述的.web.html文件

cd /var/www/html/

touch .web.html

echo "OK" >.web.html

3、配置arp_ignore、arp_announce参数禁用arp广播响应

echo "net.ipv4.conf.eth0.arp_ignore = 1" >>/etc/sysctl.conf

echo "net.ipv4.conf.eth0.arp_announce = 2" >>/etc/sysctl.conf

sysctl -p

4、配置路由

route add -host 192.168.2.1 dev eth0

5、开启httpd服务

Real server2的配置与Real server1的配置一样

在director上依次启动heartbeat,

在Director1上增加了eth0:0接口如下:

规则也已启用

Director2上并没有这些,因为它是处于备份状态的

假如后方的一个server的httpd服务停了,主Director就访问不到.web.html这个页面了,就会将删除到该server的定向规则。

只是权重变为了“0”,并没有将这条规则删除,需要将静默模式改为no如下:

vim ldirectord.cf

quiescent=no

重启heartbeat 定向到停止httpd服务的规则被删除了如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档