一、heartbeat准备

1、接上文

2、 安装heartbeat-ldirectord组件包

[root@node1 heartbeat]# yum localinstall heartbeat-ldirectord-2.1.-.el6.x86_64.rpm

3、ldirectord组件简介

ldirectord依赖于自己的配置文件来生成ipvs的规则,因此,定义LVS集群、添加RS都是在ldirectord的配置文件中指定,而无需手动执行ipvsadm命令。ldirectord对LVS集群的director高可用,并对LVS进群的RS提供健康状态监测,若某节点出现故障,则会把它从集群系统中剔除,并在其回复正常后,将它重新加入集群系统。ldirectord还可以调用ipvsadm命令创建LVS路由表信息,只需要在/etc/ha.d/ldirectord.cf配置文件中指明即可。

4、基本信息

二、配置

RS:

、准备RS脚本
#!/bin/bash vip=192.168.0.17
interface="lo:0" case $ in
start)
echo > /proc/sys/net/ipv4/conf/all/arp_ignore
echo > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo > /proc/sys/net/ipv4/conf/all/arp_announce
echo > /proc/sys/net/ipv4/conf/eth0/arp_announce
ifconfig $interface $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev $interface
;;
stop)
echo > /proc/sys/net/ipv4/conf/all/arp_ignore
echo > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo > /proc/sys/net/ipv4/conf/all/arp_announce
echo > /proc/sys/net/ipv4/conf/eth0/arp_announce
ifconfig $interface down
;;
status)
if ifconfig lo: | grep $vip &> /dev/null; then
echo "ipvs is running."
else
echo "ipvs is stopped."
fi
;;
*)
echo "please input : `basename $0` {start|stop|status}"
exit
esac [root@node3 ~]# chmod +x rs.sh 、准备httpd
[root@node3 ~]# yum install httpd
[root@node3 ~]# echo "This is RS" > /var/www/html/index.html
[root@node3 ~]# service httpd start
[root@node3 ~]# curl 192.168.0.20
This is RS
[root@node3 ~]# ./rs.sh start

主备Director测试

[root@node1 ~]# ifconfig eth0: 192.168.0.17 broadcast 192.168.0.17 netmask 255.255.255.255 up
[root@node1 ~]# route add -host 192.168.0.17 dev eth0:
[root@node1 ~]# ipvsadm -A -t 192.168.0.17: -s rr
[root@node1 ~]# ipvsadm -a -t 192.168.0.17: -r 192.168.0.20 -g #del test
[root@node1 ~]# ipvsadm -C
[root@node1 ~]# route del -host 192.168.0.17
[root@node1 ~]# ifconfig eth0: down

主Director:node1配置

、cp样例配置文件
[root@node1 ~]# cd /usr/share/doc/heartbeat-ldirectord-2.1./
[root@node1 heartbeat-ldirectord-2.1.]# cp ldirectord.cf /etc/ha.d
[root@node1 heartbeat-ldirectord-2.1.]# cd /etc/ha.d 、配置文件
##全局配置
# Global Directives
##健康状态检测超时时间间隔
checktimeout=
##每一秒检查一次
checkinterval=
#fallback=127.0.0.1:
##自动装载配置文件
autoreload=yes
##日志文件
logfile="/var/log/ldirectord.log"
##日志文件级别
#logfile="local0"
##邮件通知警告信息
#emailalert="admin@x.y.z"
##邮件通知间隔1小时
#emailalertfreq=
##邮件通知所有的状态信息
#emailalertstatus=all
##是否工作于静默模式
quiescent=yes ##虚拟服务配置
# Sample for an http virtual service
##VIP
virtual=192.168.0.17:
##RS gate为dr类型
real=192.168.0.20: gate
#real=192.168.6.3: gate
#real=192.168.6.6: gate
##backserver
fallback=127.0.0.1: gate
##健康状态检查基于http协议
service=http
##请求的页面
request=".health.html"
##检查request=“”页面中的字符串是否一致
receive=""
##对多个虚拟主机进行检查
virtualhost=some.domain.com.au
##调度类型为rr
scheduler=rr
##持久连接时长
#persistent=
##掩码
#netmask=255.255.255.255
##基于tcp的检查,集群服务类型
protocol=tcp
##检查类型为交互式检查
##checktype:connect是传输层检查,ping是网络层检查,negotlate是应用层检查
##当checktype=negotlate时,ldirectord将基于指定的协议与各RS建立连接,完成应用层检查
checktype=negotia
##检查端口为80
checkport=
##请求的页面
request="index.html"
##请求的字符串检查
#receive="Test Page"
##对虚拟主机检查
#virtualhost= 、准备web服务,node1作为back server提供sorry server服务
[root@node1 ha.d]# vim /var/www/html/index.html
This is sorry server(node1)
[root@node1 ha.d]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.0.15 for ServerName
[ OK ]
[root@node1 ha.d]# curl 192.168.0.15
This is sorry server(node1) 、将配置文件cp给node2
[root@node1 ha.d]# scp ldirectord.cf node2:/etc/ha.d/

备Director:node2配置

[root@node2 ~]# vim /var/www/html/index.html
This is sorry server(node2)
[root@node2 ~]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.0.16 for ServerName
[ OK ]
[root@node2 ~]# curl 192.168.0.16
This is sorry server(node2)

RS准备测试页

[root@node3 ~]# echo "ok"  > /var/www/html/.health.html

启动服务

[root@node1 ~]# service heartbeat start; ssh node2 'service heartbeat start'

gui界面配置资源

1、定义资源组ipvs,定义集群ip资源(vip)

2、定义ipvs规则,lsb格式不提供参数,ocf格式的资源代理须提供配置文件

3、启动资源

4、验证node2节点

[root@node2 ~]# ipvsadm -L -n
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.17: rr
-> 192.168.0.20: Route [root@node2 ~]# ip add show eth0
: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c:::ea: brd ff:ff:ff:ff:ff:ff
inet 192.168.0.16/ brd 192.168.0.255 scope global eth0
inet 192.168.0.17/ brd 192.168.0.255 scope global secondary eth0
inet6 fe80::20c:29ff:fe15:ea32/ scope link
valid_lft forever preferred_lft forever

5、验证负载均衡集群效果

6、检测RS下线,director错误页面

[root@node3 ~]# mv /var/www/html/.health.html /var/www/html/a.html
[root@node2 ~]# ipvsadm -L -n
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.17: rr
-> 127.0.0.1: Local
-> 192.168.0.20: Route
 

ipvs+ldirectord实现高可用ipvs的更多相关文章

  1. keepalived高可用

    keepalived介绍 Keepalived是一个基于vrrp协议的高可用方案,vrrp协议的软件实现,原生设计的目的为了高可用ipvs服务. 1. vrrp协议 VRRP是一种容错协议,它通过把几 ...

  2. 4、keepalived高可用nginx负载均衡

    keepalived: HTTP_GET        //使用keepalived获取后端real server健康状态检测 SSL_GET(https)  //这里以为这后端使用的是http协议 ...

  3. 3、使用keepalived高可用LVS实例演示

    回顾: keepalived: vrrp协议的实现: 虚拟路由器: MASTER,BACKUP VI:Virtual Instance keepalived.conf GLOBAL VRRP LVS ...

  4. KeepAlived双主模式高可用集群

    keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提 ...

  5. centos7下用kubeadm安装k8s集群并使用ipvs做高可用方案

    1.准备 1.1系统配置 在安装之前,需要先做如下准备.三台CentOS主机如下: 配置yum源(使用腾讯云的) 替换之前先备份旧配置 mv /etc/yum.repos.d/CentOS-Base. ...

  6. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

  7. Heartbeat+LVS构建高可用负载均衡集群

    1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...

  8. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  9. 高并发场景 LVS 安装及高可用实现

    1.1 负载均衡介绍 1.1.1 负载均衡的妙用 负载均衡(Load Balance)集群提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力.提高网 ...

随机推荐

  1. Spark源码分析 -- PairRDD

    和一般RDD最大的不同就是有两个泛型参数, [K, V]表示pair的概念 关键的function是, combineByKey, 所有pair相关操作的抽象 combine是这样的操作, Turns ...

  2. 荣誉墙项目day28 django常用函数

    1.在网页上渲染字符串from django.http import HttpResponsereturn HttpResponse(u"hello world") 2.渲染网页f ...

  3. 13.Query for Null or Missing Fields-官方文档摘录

    1 插入数据 db.inventory.insertMany([ { _id: 1, item: null }, { _id: 2 } ]) 2 查询null值 db.inventory.find({ ...

  4. python爬虫防止IP被封的一些措施

    在编写爬虫爬取数据的时候,因为很多网站都有反爬虫措施,所以很容易被封IP,就不能继续爬了.在爬取大数据量的数据时更是瑟瑟发抖,时刻担心着下一秒IP可能就被封了. 本文就如何解决这个问题总结出一些应对措 ...

  5. CanvasRenderingContext2D.imageSmoothingEnabled

    https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled 这是一个 ...

  6. 如何通过 ClickBank 等类似虚拟平台进行在线销售并获得收益

    CLICKBANK在国内被广大赚友简称为CB,和淘金小站之前介绍过的PayDotCom一样,都是国外非常著名的CPS广告联盟.CLICKBANK成立于1998年,是全球四个最大的虚拟商品零售平台之一( ...

  7. Jmeter(七)Mongodb的增删改查

    1.启动JMeter,新建线程组,设置线程组属性 2.右键添加-MongoDB Source Config 设置属性Server Address List:192.168.0.99 MongoDB S ...

  8. NAND flash学习所获----(Zac)

    Nand Falsh外围电路:peripheral circuit 1.Nand flash里至少有2个state Machine(controller),即2个主控. 一个主控:负责处理前端事情. ...

  9. HDU1115&&POJ1385Lifting the Stone(求多边形的重心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1115# 大意:给你个n,有n个点,然后给你n个点的坐标,求这n个点形成的多边形的重心的坐标. 直接套模 ...

  10. 打开的文件符合PDF/A标准,且已在只读模式下打开,以防被修改

    PDF/A是一种用于长期归档和保留电子文档的ISO标准.您扫描到PDF的文档符合PDF/A的规范.您可以指定是否要用本查看模式查看文档. PDF/A 问题提示:“打开的文件符合PDF/A标准,且已在只 ...