1.概述

1.1 关于Heartbeat

Heartbeat是Linux-HA工程的组成部分,它实现了一个高可用集群系统。通过Heartbeat可以实现双机热备,以实现服务的持续性。

Heartbeat工作原理:Heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分。心跳监测可以通过网络链路和串口进行,而且支持冗余链路,它们之间相互发送报文来告诉自己当前状态,如果在指定的时间未收到对方发送的报文,那么就认为对方死亡,这时启动资源接管模块来接管运行对方主机上的资源或者服务。

Heartbeat3和Heartbeat2的最大差别在于:3按照模块把原来2拆分成多个子项目,并且提供了一个cluster-glue组件,专门用于ResoureManger的管理。

即:Heartbeat+cluster-glue+resource-agent

1.2 本篇博客实践环境

本篇博客主要在共享存储上安装Heartbeat的主体软件部分,配置部分分别放置在各个需要配置Heartbeat的节点上。由于这种做法,会需要几个特殊的细节处理。

即:将Heartbeat的三类源码包安装在/opt上,然后在node11.node12上进行/etc/heartbeat配置

注:本篇博客参考:http://www.cnblogs.com/knitmesh/p/5439665.html

2. 部署基础环境

2.1 通过YUM安装依赖环境

yum install -y gcc gcc-c++ autoconf automake libnet  libtool glib2-devel libxml2-devel bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel docbook-dtds docboot-style-xsl 

2.2 创建Heartbeat用户和组

注:这里采用了LDAP认证方式,在LDAP服务器上执行一下创建用户和组的操作,在其他节点上都能够认证该用户

groupadd haclient #创建组haclient
useradd -g haclient hacluster -M -s /sbin/nologin #创建用户hacluster

3. 编译安装

3.1下载源码包

Heartbeat的官方地址:http://www.linux-ha.org/wiki/Download

下载Cluster-Glue wget http://hg.linux-ha.org/glue/archive/glue-1.0.9.tar.bz2

下载Resource Agents wget https://github.com/ClusterLabs/resource-agents/tarball/v3.9.2

下载Heartbeat wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/958e11be8686.tar.bz2

3.2 编译安装

3.2.1 编译cluster-glue

#解压
tar -jxvf glue-1.0.9.tar.bz2
#进入解压后的目录
cd Reusable-Cluster-Components-glue--glue-1.0.9
#执行脚本
./autogen.sh
#执行configure
./configure --prefix=/opt/heartbeat/ --sysconfdir=/etc/heartbeat libdir=/opt/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
#编译
make
#安装
make install

3.2.2 编译resource agents

resource agents就是各种资源的ocf脚本,这些脚本被LRM调用从而实现各种资源的启动,停止,监控等

#解压
tar -zxvf v3.9.2
#进入解压后的目录
cd ClusterLabs-resource-agents-b735277
#执行脚本
./autogen.sh
#执行configure
./configure --prefix=/opt/heartbeat/ --sysconfdir=/etc/heartbeat libdir=/opt/heartbeat/lib64 CFLAGS=-I/opt/heartbeat/include LDFLAGS=-I/opt/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
#编译
make
#安装
make install

3.2.3 编译安装heartbeat

#解压
tar -jxvf 958e11be8686.tar.bz2
#进入解压目录
cd Heartbeat-3-0-958e11be8686
#执行脚本
./bootstarp
#执行configure
./configure --prefix=/opt/heartbeat --sysconfdir=/etc/heartbeat CFLAGS=-I/opt/heartbeat/include LDFLAGS=-L/opt/heartbeat/lib64 LIBS='/lib64/libuuid.so.1'
#创建库文件链接
ln -s /opt/heartbeat/lib64/\* /lib64
#修改源码文件,否则会make报错
vim /opt/heartbeat/include/heartbeat/glue_config.h,注释或者删除最后一行内容
vim lib/hbclient/Makefile,删掉-Werror字段
#编译
make
#安装
make install

4.相关文件复制

#复制配置源码中的配置文件到配置目录
cp doc/{ha.cf,haresource,authkeys} /etc/heartbeat/ha.d/
#拷贝heartbeat到/etc/init.d目录
#添加服务启动项
chkconfig --add heartbeat
chkconfig heartbeat on
#修改认证文件及属性
chmod 600 authkeys
#修改配置文件中软件启动路径
sed -i 's#/usr/lib/ocf#/opt/heartbeat/usr/lib/ocf#g' /etc/heartbeat/ha.d/shellfuncs
sed -i 's#/usr/lib/ocf#/opt/heartbeat/usr/lib/ocf#g' /etc/heartbeat/ha.d/resource.d/hto-mapfuncs
sed -i 's#/usr/lib/ocf#/opt/heartbeat/usr/lib/ocf#g' /opt/heartbeat/usr/lib/ocf/lib/heartbeat/ocf-shellfuncs
#创建脚本链接
ln -s /opt/heartbeat/usr/lib/ocf /usr/lib/ocf
#测试
service heartbeat status

5.配置和测试

5.1 node11配置

#进入配置目录
cd /etc/heartbeat/ha.d
#修改authkeys,内如如下:
auth 1
1 crc
#编辑ha.cf文件,内容如下:
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth1 192.168.10.12
auto_failback off
watchdog /dev/watchdog
node node11
node node12
ping 192.168.10.12
respawn hacluster /opt/heartbeat/libexec/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
#编辑haresources文件,最后一行添加:
node11 192.168.10.100 mysqld

5.2 node12配置

#进入配置目录
cd /etc/heartbeat/ha.d
#修改authkeys,内如如下:
auth 1
1 crc
#编辑ha.cf文件,内容如下:
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth1 192.168.10.11
auto_failback off
watchdog /dev/watchdog
node node11
node node12
ping 192.168.10.11
respawn hacluster /opt/heartbeat/libexec/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
#编辑haresources文件,最后一行添加:
node11 192.168.10.100 mysqld

5.3 启动

node11上执行:service heartbeat start

node12上执行:service heartbeat start

任何节点上执行:ping 192.168.10.100

【源码安装】Heartbeat3.0.9的更多相关文章

  1. CentOS7源码安装Redis5.0.4非关系型数据库

    源码安装redis-5.0.4 一. 下载redis 1. 需要连接网络 二. 案例(另一种安装方法) [root@localhost ~]# wget http://download.redis.i ...

  2. 源码安装 qemu-2.0.0 及其依赖 glib-2.12.12

    源码安装qemu-2.0.0 下载源代码并解压 http://wiki.qemu-project.org/download/qemu-2.0.0.tar.bz2 .tar.gz 编译及安装: cd q ...

  3. CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)

    1.卸载系统已经存在的ftp服务器 因为是源码安装,所以不能通过rpm -qa的方式查看是否已经安装ftp服务器,可以通过find / | grep vsftp*方式查看系统中存在哪些与vsftpd相 ...

  4. ubuntu16.04下源码安装onos1.0.2

    由于工作需要,下载安装onos1.0.2的版本,大家看需求可以下载安装更高级的版本 参考链接:http://www.sdnlab.com/14650.html 1.系统环境 Ubuntu16.04 L ...

  5. Linux 6.8 源码安装MySQL8.0

    搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...

  6. CentOS7.4 源码安装MySQL8.0

    MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...

  7. 源码安装zabbix_agent4.0.3

    1.源码包下载地址:https://www.zabbix.com/download_sources 2.下载完后上传在任意目录用root用户创建以下脚本server_ip为服务端ip然后执行. gro ...

  8. 简单说说Ubuntu利用bzr源码安装OpenERP7.0的操作步骤

    1.修改Ubuntu国内更新源,具体方法自己baidu.google. 修改更新源后,更新系统 sudo apt-get update sudo apt-get upgrade 复制代码 2.安装Po ...

  9. centos7源码安装vim8.0

    centos 6和7通过yum安装的vim版本仍为7.4,若想尝鲜,可获取源码包编译安装. 准备工作 1.检查vim旧版本,若已存在,将其卸载. $ vim$ yum remove vim* -y 2 ...

  10. Debian系Linux源码安装Redis5.0.6

    一,先在官网下载源码包:https://redis.io/download 二,解压源码包,并cd到解压后的目录: 三,执行make MALLOC=libc: 接着cd src[解压的目录里有这个子目 ...

随机推荐

  1. Day12 CSS简单用法

    当我想要将html中的部分属性修改的时候,如果单个改的话,费时费力,这时候我就需要利用css和html结合起来了. <head> <meta charset="UTF-8& ...

  2. JMeter——简单的接口测试实例(一)

    场景:使用JMeter来实现接口测试 基本流程:添加线程组->添加http信息头管理器->添加http请求->添加断言->添加监听器->执行,查看结果 案例分析:下面以办 ...

  3. CDN公共资源

    SAE: http://lib.sinaapp.com/ Google: https://developers.google.com/speed/libraries/devguide?hl=zh-CN ...

  4. Spring Boot【快速入门】

    Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point for building all Sp ...

  5. MySQL-数据检索

    MySQL简介 1.什么是数据库 ? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅 ...

  6. SOFA 源码分析 —— 过滤器设计

    前言 通常 Web 服务器在处理请求时,都会使用过滤器模式,无论是 Tomcat ,还是 Netty,过滤器的好处是能够将处理的流程进行分离和解耦,比如一个 Http 请求进入服务器,可能需要解析 h ...

  7. QUIC协议的分析,性能测试以及在QQ会员实践

    WeTest 导读 你听过HTTPS.HTTP2.0.SPDY,但是这些应用层协议都是基于可靠的传输层协议TCP来实现的.那么,基于高效的UDP协议有没有一种相对可靠的应用层协议呢? Why QUIC ...

  8. NopCommerce是什么(转自CNSD)

    NopCommerce是什么 nopCommerce--最好的免费购物车!nopCommerce是一个开源的解决方案.它是一个具有综合功能.对于新在线业务来说亦易于使用的解决方案,同时它也是一个功能强 ...

  9. Hibernate二级缓存简述及基于Spring4,Hibernate5,Ehcache3的二级缓存配置

    Hibernate L2缓存 缓存的分类 L2缓存工作原理 放入二级缓存的数据 Ehcache 依赖 ehcache.xml 常用的memoryStoreEvictionPolicy(缓存算法) eh ...

  10. Linux(二十二)Ubuntu安装和配置

    Ubuntu的介绍 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu是基于GNU/Linux,支持x86.amd64(即x64)和ppc架构,由全球化的专业开发团队(Ca ...