1、Heartbeat介绍
Heartbeat是Linux-HA工程的一个组成部分,它实现了一个高可用集群系统。Heartbeat最核心的部分包括两个:心跳监测和资源接管,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需要启动资源接管模块来接管运行在对方主机上的资源或者服务。

heartbeat可以资源(VIP地址及程序服务)从一台有故障的服务器快速的转移到另一台正常的服务器提供服务,heartbeat和keepalived相似,heartbeat可以实现failover功能,但不能实现对后端的健康检查。

2、Heartbeat安装部署
##部署环境
data-1-1:
eth0:10.10.10.8
eth1:10.10.20.8(心跳线,不要配置网关)
eth0:10.10.10.18(VIP:对外访问地址)data-1-2:
eth0:10.10.10.9
eth1:10.10.20.9(心跳线,不要配置网关)
eth0:10.10.10.19(VIP:对外访问地址)##准备环境(两边操作一样)
因为是虚拟机,所以首先得按照上面的规划修改IP地址、主机名。
修改IP可以使用“setup”命令,有时还可能需要删除“/etc/udev/rules.d/70-persistent-net.rules”文件来调整eth*的名字。
修改主机名字其实就是修改这个文件“/etc/sysconfig/network”。“setup”命令可以修改ip、主机名、禁用防火墙等。
##关闭iptables
[root@data-1-1 tmp]# vi /etc/selinux/config
#SELINUX=enforcing
#SELINUXTYPE=targeted
SELINUX=disabled
[root@mysql9 ~]# service iptables stop
[root@mysql9 ~]# service ip6tables stop
[root@mysql9 ~]# chkconfig iptables off
[root@mysql9 ~]# chkconfig ip6tables off
##编辑/etc/hosts文件加入:
10.10.20.8  data-1-1
10.10.20.9  data-1-2
##修改完后,ping检查一下!##配置服务器间心跳连接路由(注意两台机器上面的不同之处)
##心跳连接路由规划使用eth1网卡(10.10.20.*),eth1网卡没有配网关和DNS。
[root@data-1-1 ~]# route add -host 10.10.20.9 dev eth1
[root@data-1-1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.20.9      0.0.0.0         255.255.255.255 UH    0      0        0 eth1
10.10.20.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth0
0.0.0.0         10.10.10.1      0.0.0.0         UG    0      0        0 eth0
[root@data-1-2 tmp]# route add -host 10.10.20.8 dev eth1
[root@data-1-2 tmp]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.20.8      0.0.0.0         255.255.255.255 UH    0      0        0 eth1
10.10.20.0      0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth0
0.0.0.0         10.10.10.1      0.0.0.0         UG    0      0        0 eth0##安装heartbeat(两边操作一样)
# yum  -y install heartbeat*
##提示找不到包。原因是针对centos6.x的heartbeat尚未发布,解决办法可以到第三方资源为库中找,这里使用epel
# wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-6.noarch.rpm
# rpm -ivh epel-release-6-6.noarch.rpm
# rpm -qa | grep epel
epel-release-6-8.noarch
##再安装heartbeat,这一次一键成功完成安装。
# yum -y install heartbeat*
##heartbeat的安装目录为/etc/ha.d目录下,在/etc/ha.d/resource.d目录下有很多命令。##配置heartbeat(两边操作一样)
##节点两端的配置文件(ha.cf authkeys haresources)完全相同,此时/etc/ha.d目录下没有这三个文件,可以从/usr/share/doc/heartbeat-3.0.4目录下找到这个三个文件的模板。
##1)、ha.cf
# vim /etc/ha.d/ha.cf
#log configure
debugfile /var/log/ha-debug            ##heartbeat的调试日志存放位置
logfile /var/log/ha-log                ##heartbeat的日志存放位置
logfacility local1                     ##在syslog服务中配置通过local1设备接收日志
#options configure
keepalive 2                            ##指定心跳间隔时间为2秒(即每2秒钟在eth1上发一次广播)
deadtime 30                            ##指定若设备节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的服务资源
warntime 10                            ##指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志写入一个警告日志,但此时不会切换服务
initdead 120                           ##指定在heartbeat首次运行后,需要等待120秒才启动主服务器的任何资源。该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍,单机启动时会遇到VIP绑定很慢,为正常现象。该值设置得长的原因。
#bcast  eth1                           ##指明心跳使用以太网广播方式在eth1接口上进行广播。如使用两个实际网络来传送心跳则#bcast eth0 eth1
mcast eth1 225.0.0.7 694 1 0           ##设置广播通信使用的端口,694为默认使用的端口号。
#node configure
auto_failback on                       ##用来定义当主节点恢复以后,是否将服务自动切回。
node    data-1-1                       ##主节点主机名,可以通过命令“uname -n”查看。
node    data-1-2                       ##备用节点主机名,可以通过命令“uname -n”查看。
crm no                                 ##是否开启cluster resource manager(集群资源管理)功能
##2)、配置authkeys
# vim /etc/ha.d/authkeys
auth 1
1 sha1 47e9336850f1db6fa58bc470bc9b7810eb397f04
# chmod 600 /etc/ha.d//authkeys   ##authkeys文件权限必须为600
##3)、配置haresources
# vim /etc/ha.d/haresources
data-1-1 IPaddr::10.10.10.18/24/eth0
data-1-2 IPaddr::10.10.10.19/24/eth0
##data-1-1为主机名,表示初始状态会在data-1-1绑定10.10.10.18。
##IPaddr为heartbeat配置IP的默认脚本(/etc/ha.d/resource.d/IPaddr),其后的ip等都是脚本的参数。
##10.10.10.18/24/eth0为集群对外服务的VIP,初始启动在data-1-1上,24为子网掩码,eth0为ip绑定的实际物理网卡,为heartbeat提供对外服务的通信接口。
##同理10.10.10.19/24/eth0为集群对外服务的VIP,初始启动在data-1-2上,24为子网掩码,eth0为ip绑定的实际物理网卡,为heartbeat提供对外服务的通信接口。##在data-1-1启动heartbeat
[root@data-1-1 ha.d]# service heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
INFO:  Resource is stopped
Done.
[root@data-1-1 ha.d]# service heartbeat status
heartbeat OK [pid 2510 et al] is running on data-1-1 [data-1-1]...
[root@data-1-1 ha.d]# ip addr | grep eth0   ##等到120秒
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.8/24 brd 10.10.10.255 scope global eth0inet 10.10.10.19/24 scope global eth0inet 10.10.10.18/24 scope global secondary eth0
[root@data-1-2 ha.d]# ip addr | grep eth0  ##data-1-1节点拥有vip地址,data-1-2节点没有
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.9/24 brd 10.10.10.255 scope global eth0##在data-1-2启动heartbeat
[root@data-1-2 ha.d]# service heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
INFO:  Resource is stopped
Done.
[root@data-1-2 ha.d]# service heartbeat status
heartbeat OK [pid 2306 et al] is running on data-1-2 [data-1-2]...
[root@data-1-2 ha.d]# ip addr | grep eth0     ##VIP回到了各自的主机上
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.9/24 brd 10.10.10.255 scope global eth0inet 10.10.10.19/24 scope global eth0
[root@data-1-1 htdocs]# ip addr | grep eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.8/24 brd 10.10.10.255 scope global eth0inet 10.10.10.18/24 scope global eth0##测试heartbeat 的 HA功能
##首先在data-1-2上面访问web服务:
[root@data-1-2 htdocs]# curl http://10.10.10.8/index.html
10.10.10.8 It works!
[root@data-1-2 htdocs]# curl http://10.10.10.9/index.html
10.10.10.9 It works!
[root@data-1-2 htdocs]# curl http://10.10.10.18/index.html
10.10.10.8 It works!
[root@data-1-2 htdocs]# curl http://10.10.10.19/index.html
10.10.10.9 It works!
##然后在data-1-1上面停掉heartbeat,模拟服务器故障:
[root@data-1-1 apache2]# service heartbeat stop
Stopping High-Availability services: Done.
[root@data-1-1 apache2]# ip addr | grep eth0         ##可以看见:10.10.10.18这个VIP已经没有了
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.8/24 brd 10.10.10.255 scope global eth0
[root@data-1-2 htdocs]# ip addr | grep eth0          ##10.10.10.18 VIP飘移到了data-1-2
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.9/24 brd 10.10.10.255 scope global eth0inet 10.10.10.19/24 scope global eth0inet 10.10.10.18/24 scope global secondary eth0
[root@data-1-2 htdocs]# curl http://10.10.10.18/index.html   ##接下来访问VIP都是访问的data-1-2的web服务
10.10.10.9 It works!
[root@data-1-2 htdocs]# curl http://10.10.10.19/index.html
10.10.10.9 It works!
##最后在data-1-1上面启动heartbeat,假设data-1-1已经修复好了:
[root@data-1-1 apache2]# service heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
INFO:  Resource is stopped
Done.
[root@data-1-1 apache2]# ip addr | grep eth0      ##可以看见10.10.10.18这个VIP已经回来了。
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.8/24 brd 10.10.10.255 scope global eth0inet 10.10.10.18/24 scope global eth0
[root@data-1-2 htdocs]# ip addr | grep eth0       ##可以看见:10.10.10.18这个VIP已经没有在data-1-2上了
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000inet 10.10.10.9/24 brd 10.10.10.255 scope global eth0inet 10.10.10.19/24 scope global eth0
[root@data-1-2 htdocs]# curl http://10.10.10.18/index.html    ##可以看见访问两个VIP,分别访问的是data-1-1和data-1-2上面的各自的web服务
10.10.10.8 It works!
[root@data-1-2 htdocs]# curl http://10.10.10.19/index.html
10.10.10.9 It works!

heartbeat 高可用工具相关推荐

  1. Haproxy+Heartbeat 高可用集群方案操作记录

    之前详细介绍了haproxy的基础知识点, 下面记录下Haproxy+Heartbeat高可用web集群方案实现过程, 以加深理解. 架构草图如下: 1) 基本环境准备 (centos6.9系统) 1 ...

  2. mysql 高可用工具_MySQL Utilities 高可用工具体验

    MySQL Utilities 高可用工具体验 MySQL Utilities是MySQL官方的工具集,其中包括高可用相关的几个工具. 以下是对当前最新版本1.6的使用体验. 前提条件 MySQL S ...

  3. 【架构】Heartbeat高可用服务(2)

    Heartbeat高可用服务 [13]Heartbeat发展情况及分支软件介绍 有关Heartbeat分3个分支的说明 自2.1.4版本后,Linux-HA将Heartbeat分包成三个不同的子项目: ...

  4. MySQL HA(High Availability) 数据库高可用工具Orchestrator安装

    目录 1.下载安装包 2.安装 backend MySQL server 3.在MySQL实例上授权 4.启动orchestrator 服务 5.参考 本文主要介绍如何在本地安装 MySQL HA(H ...

  5. postgresql高可用工具pha4pgsql

    postgresql有很多高可用工具,其中pha4pgsql为很不错的一款软件,值得使用,下面为官方链接地址,里面详细的信息供参考: https://github.com/ChenHuajun/pha ...

  6. centOS 7下安装与配置heartbeat高可用集群

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

  7. mysql+drbd+heartbeat高可用配置说明

    环境描述: 系统版本:Red Hat Enterprise Linux Server release 5.5 (Tikanga)x86_64 2.6.18-164.el5 mysql版本:mysql- ...

  8. memcached 高可用工具 memcached-ha

    为什么80%的码农都做不了架构师?>>>    MemcachedHA 包装一种memcached client 使系统达到对memcached的高可用控制.日本人开发的.项目地址: ...

  9. linux之heartbeat高可用的简单配置

    Heartbeat 系统环境: 防火墙关闭, seliux状态为disabled 各服务器之间组做好地址解析 Node3:172.25.44.3 Node4:172.25.44.4 物理真机:172. ...

  10. mysql heartbeat 高可用

    安装过程http://xiong51.blog.51cto.com/5239058/1826190 vim /etc/hosts 192.168.0.30 mysql1 192.168.0.31 my ...

最新文章

  1. 新视界,你好!_只愿与一人十指紧扣_新浪博客
  2. 死前真的会有「跑马灯」,人类首次同步测量大脑濒死状态
  3. Linux 查看当前用户id和组id
  4. android layout include merge,Android 布局优化之include与merge
  5. springweb拦截器
  6. ZooKeeper Dynamic Reconfiguration (dynamicConfigFile) ZooKeeper动态配置
  7. python 字符编码的两种方式写法:# coding=utf-8和# -*- coding:utf-8 -*-
  8. OpenCV3 Java 机器学习使用方法汇总
  9. asp.net core 使用Mysql和Dapper
  10. Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式
  11. 使用递归判断二叉树对称
  12. 企业监控服务器Cacti、nagios服务器
  13. CCF NOI1013 识别三角形
  14. Kafka之与Spring集成
  15. 计算机硬盘满了怎么解决,电脑磁盘满了怎样清理
  16. matlab解薛定谔方程,定态薛定谔方程的MATLAB求解(一)
  17. c语言写打开程序的脚本,详细解析C语言中的开方实现
  18. 计算机制作通知的具体步骤,步骤 10:创建通知模板和订阅(可选)
  19. 哮喘模型造模构建制备 治疗哮喘新药的药效学评估
  20. TPTP测试项目的性能

热门文章

  1. (亲测)使用cmd结束进程的3种方法
  2. 关于差分编码的思想及实现
  3. S-PTAM:Stereo Parallel Tracking and Mapping论文笔记
  4. 【行业案例分析】3C数码行业B2B供应链平台开发案例
  5. PIC单片机开发环境的搭建总结及新上手单片机平台如何实现快速开发的几点经验分享
  6. 设计一个RC高通滤波器或低通滤波器
  7. 将数据与OpenLayers结合在一起
  8. Chrome浏览器启动参数大全(命令行参数)
  9. ECShop 批量打印快递单
  10. toolchain安装教程支持_toolchain