一、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. 2017 Multi-University Training Contest - Team 6—HDU6098&&HDU6106&&HDU6103

    HDU6098 Inversion 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6098 题目意思:题目很短,给出一个数组,下标从1开始,现在输出一个 ...

  2. Zipline Risk and Performance Metrics

    Risk and Performance Metrics 风险和性能指标 The risk and performance metrics are summarizing values calcula ...

  3. LeetCode_链表操作1—Swap Nodes in Pairs

    Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-& ...

  4. Android实现按两次back键退出应用

    重写onKeyDown()方法 System.currentTimeMillis():该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0 ...

  5. perl 常用命令

    过滤重复字符 perl -e '$_=<STDIN>; @in = split; if (@in < 100){ @out = grep {! $hash{$_}++ } @in;  ...

  6. cordova 入门

    1. npm install -g cordova On Windows, npm can usually be found at C:\Users\username\AppData\Roaming\ ...

  7. 【云安全与同态加密_调研分析(2)】国外云安全标准建议组织——By Me

    国际上比较有影响力的云安全组织: ◆2. 国外云安全标准建议组织(云安全建议白皮书)◆ ◆云安全标准建议组织(主要的)◆ ◆标准建议组织介绍◆ ◆相关建议白皮书制定◆ ◆建立的相关模型参考◆ ◆备注( ...

  8. linux文件修改管理

    Linux文件系统的层次结构 Linux文件系统的树状结构 目录是什么 顶层根目录的表示 文件系统中的两个特殊目录 Linux系统中的一些重要的目录 bin目录 sbin目录 家目录 dev目录 et ...

  9. -webkit-box

    父容器 display: flex; justify-content: center;/*主轴*/ align-items: center; /*交叉轴*/ display: -webkit-box; ...

  10. iClap:更智能的场景化工作方式

    8月31日,移动互联网企业运营解决方案整合平台DevStore团队正式推出新品——产品管理系统iClap,iClap集成了智能任务管理.Bug跟踪.简单发布.人才培养等功能,同时推出普通版和旗舰版两个 ...