L8.1 lvs+heartbeat-ldirectord实现高可用负载均衡
lvs+heartbeat-ldirectord实现高可用负载均衡
拓扑:
IPVS规则与heartbeat
ipvs规则不再使用ipvsadm配置,而是依靠heartbeat的包工具ldirectord去生成规则
并且ldirectord有检测后端RS健康状况的机制(利用权重,非常正常剔除(w=0),正常后添加)。
删除之前 heartbeat v2 crm lamp配置的约束和资源
节点分别停止heartbeat:/etc/init.d/heartbeat stop
规划
ipvs-ld节点: 192.168.0.190 node1
ipvs-ld点: 192.168.0.201 node2
RS: 192.168.0.193 node3 ,192.168.0.202 node4
lvs vip 192.168.0.199
ldirectord依赖于自己的配置文件生成ipvs规则,因此,定义集群服务,添加RS都在配置文件中指定,而无需手动执行ipvsadm命令;
ldirectord能对各RS的健康状态做检测,并能实现按需添加或者删除各RS。
1,两个节点安装 heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
[root@node2 heartbeat2]# rpm -ivh heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
error: Failed dependencies:
ipvsadm is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
perl(LWP::Debug) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
perl(LWP::UserAgent) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
perl(Mail::Send) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
[root@node2 heartbeat2]#yum install heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm -y
依赖包如下:
2,LVS,DR模式配置
配置RS
node3 ,node4主机分别同样配置主机:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig eth0:0 192.168.0.199 broadcast 192.168.0.199 netmask 255.255.255.255
sysctl -p
route add -host 192.168.0.199 dev eth0:0
/etc/init.d/httpd start
curl 192.168.0.194
配置DR主机ipvs
ifconfig eth0:0 192.168.0.199 broadcast 192.168.0.199 netmask 255.255.255.255
route add -host 192.168.0.199 dev eth0:0
[root@node1 ~]# ipvsadm -A -t 192.168.0.199:80 -s rr
[root@node1 ~]# ipvsadm -a -t 192.168.0.199:80 -r 192.168.0.202 -g -w 1
[root@node1 ~]# ipvsadm -a -t 192.168.0.199:80 -r 192.168.0.194 -g -w 1
访问测试成功:
3,测试出成功后,删除ipvs规则;
[root@node1 ~]# ipvsadm -C
[root@node1 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@node1 ~]# route del -host 192.168.0.199
[root@node1 ~]# ifconfig eth0:0 down
4,使用ldirectord文件配置规则
cd /usr/share/doc/heartbeat-ldirectord-2.1.4/
cp ldirectord.cf /etc/ha.d/
配置文件说明:
# Global Directives
checktimeout=3 #超时时间间隔
checkinterval=1 #向后端检查的时间,即每1秒检查一次,3秒超时。
#fallback=127.0.0.1:80 #sorry page
autoreload=yes #自己不用做reload,文件改变后自动装载。
logfile="/var/log/ldirectord.log" #自己的日志
#logfile="local0"
#emailalert="admin@x.y.z"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=yes
...
以ftp为列说明:
#virtual=192.168.6.240:21 #vip
# real=192.168.16.3:21 masq #rs
# real=192.168.16.5:21 masq #rs
# fallback=127.0.0.1:21 #sorry page
# service=ftp #表示用ftp协议检查
# checkport=21 #表示检查21号端口,在tcp层
# scheduler=wlc #调度算法
# scheduler=rr #调度算法
# #persistent=600 #持久连接时间为600秒。注视表示没开启持久连接
# #netmask=255.255.255.255
# protocol=tcp #集群服务协议类型
# checktype=negotiate #协商类型检查,表示下面的登录和密码
# login="anonymous" #用anonymous登录
# passwd="ldirectord@localhost" #密码
# request="welcome.msg" #请求获取到welcome.msg文件
# receive="test" #回答test字符串
以http说明:
virtual=192.168.6.240:80
real=192.168.6.2:80 gate
real=192.168.6.3:80 gate
real=192.168.6.6:80 gate
fallback=127.0.0.1:80 gate
service=http
request="index.html" #请求哪个页面
receive="Test Page" #必须返回哪个字符串,RS才算是正常的
virtualhost=some.domain.com.au #对虚拟主机单独检测
scheduler=rr
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
receive="Test Page"
virtualhost=www.x.y.z
常用的检测类型:
checktype = connect|external|negotiate|off|on|ping|checktimeoutN
ip层:connect: syn ,ack就行了
网络层:ping
应用层:negotiate
配置文件修改:
# Sample for an http virtual service
virtual=192.168.0.199:80
real=192.168.0.194:80 gate
real=192.168.0.202:80 gate
fallback=127.0.0.1:80 gate
protocol=tcp
checkport=80
checktype=negotiate
service=http
request=".health.html"
receive="OK"
scheduler=rr
#persistent=600
#netmask=255.255.255.255
将配置文件复制到node2节点
[root@node1 ha.d]# scp ldirectord.cf node2:/etc/ha.d/
两台DR添加sorry page:
vim /var/www/html/index.html
node1 sorry server
两台RS 添加.health.html
vim /var/www/html/.health.html
测试网页都能访问。
5,配置hb_gui crm
定义组ipvs
定义集群ip clusterip
定义 ipvs规则 ipsrules (使用ldirectord定义)
启动组
6,测试
注意:两个HA-DR应该开机自动启动httpd,sorry page页面展示
sorry server页面,两台RS,httpd都stop,HA-LVS权重Weight 为1
通过设置权重为0来剔除RS。
转载于:https://blog.51cto.com/disheng/1706848
L8.1 lvs+heartbeat-ldirectord实现高可用负载均衡相关推荐
- LVS(DR)+keepalived实现高可用负载均衡
一.lvs+keepalived 1.lvs LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将 ...
- 利用LVS+Keepalived 实现高性能高可用负载均衡服务器
作者:NetSeek [url]http://www.linuxtone.org[/url](IT运维专家网|集群架构|性能调优) 欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 ...
- 使用LVS和Keepalived搭建高可用负载均衡服务器集群
目录 1.什么是LVS和Keepalived 2.负载均衡服务器集群示例环境搭建及安装配置 2.1.环境网络拓扑结构 2.2.安装ipvsadm软件 2.3.安装keepalived 2.4.配置网络 ...
- DNS部署(四)之lvs+keepalived+bind架构高可用负载均衡DNS系统
1.网络拓扑 2.环境描述 系统描述 IP地址 作用 LB-master 192.168.1.105 主备负载均衡器(同时做web和DNS调度) LB-backup 192.168.1.106 DNS ...
- CentOS7下LVS+Keepalived实现高性能高可用负载均衡
一.规划 1 2 3 4 5 6 7 8 对外VIP:10.10.10.10 对内VIP:192.168.10.10 LVS_MASTER:10.10.10.28(eth0) ...
- ubuntu lvs keepalived mysql_ubuntu下LVS + Keepalived 实现mysql高可用负载均衡实现
$ sudo vim /etc/keepalived/keepalived.conf global_defs { router_id LVS_DEVEL } vrrp_instance VI_1 { ...
- LVS+Keepalived实现高可用负载均衡
本文来说下如何使用LVS+Keepalived 实现高可用负载均衡 文章目录 概述 LVS与Keepalived 相关术语 本文小结 概述 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的.此时 ...
- IPVS-DR+keepalived实现高可用负载均衡集群
IPVS-DR+keepalived高可用负载均衡集群方案前端的负载调度器采用双机热备方式,Keepalived主要用来监测RealServer的健康状态以及主负载均衡器和备份负载均衡器之间的故障转移 ...
- Linux下部署lvs+keepalived实现高可用负载均衡
lvs+keepalived是什么? keepalived工作原理 keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障. keepalive ...
最新文章
- Android 添加菜单项
- 1.2 初窥输入输出、控制语句
- Linux学习之crontab定时任务
- 学习vim 从常用按键开始
- SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt
- Python基础100题
- Pandas 排序之后索引问题
- oozie 调度pyspark
- Asp.Net异步加载
- 鲇鱼效应”也有副作用
- Windows socket程序演示
- Mac/Win Photoshop CC 2018(V19.0)安装破解激活图文教程(附破解补丁)
- 【Vue组件库】最常用的vue组件库
- 高性能服务器天梯,2019服务器CPU天梯图 多路CPU性能排名
- 国外服务器和网站,国外服务器网站好吗?国外服务器网站和国内有什么区别?...
- 睡前做什么有助于睡眠,不妨试试这几个帮助睡眠小妙招
- php字符串处理函数大全--有时候我们只需要知道名字。
- 小米路由器安装mysql_小米路由器安装和设置方法(图文教程)
- hashmap中的key是有序的么_Java中的HashMap,为什么输出竟然是有序的
- 双十一大促季,客服资源该如何合理配置
热门文章
- python 斐波那契数列
- 河南测绘职业学院招生计算机,河南测绘职业学院代码
- 学习Kotlin(四)对象与泛型
- python的全局变量能暂存数据吗_Python 中的全局变量 局部变量
- python组合数据类型有哪些_Python学习之组合数据类型
- python tensorflow pytorch 深度学习 车牌识别
- mysql为什么采用b树_为什么MongoDB采用B树索引,而Mysql用B+树做索引
- php多态的实际运用,7.9.1 PHP多态的应用实例
- netty框架_Netty实战:设计一个IM框架
- html编辑器自定义脚本,CKeditor富文本编辑器使用技巧之添加自定义插件的方法