heartbeat 编译安装配置

一、heartbeat介绍

heartbeat是HA高可用集群的一个重要组件,heartbeat实现了资源转移和心跳信息传递。它的常用组合方式为heartbeat v1,heartbeat v2+crm,heartbeat v3 + pacemaker,目前版本为v3版本。

二、编译前准备

heartbeat官方站点http://hg.linux-ha.org/

  Cluster Glue官方站点https://github.com/ClusterLabs/cluster-glue

  Resource Agents官方站点 https://github.com/ClusterLabs/resource-agents

node1:192.168.0.15

node2:192.168.0.16

配置集群前提:

(1)各节点时间一致,便于心跳信息传递,使用ntp实现

(2)节点间需要通过主机名互相通信,必须解析主机至IP地址

(a)建议名称解析功能使用hosts文件来实现

(b)通信中使用的名字与节点名字必须保持一致 “uname -n” 或hostname展示出的名字保持一致

(3)考虑仲裁设备是否会用到

(4)建立各节点之间的root用户能够给予密钥认证

(5)定义为集群中的资源,不能开机启动

#使用ntpdate命令同步时间,并建立周期性任务
#可使用任意节点服务器作为ntp时间服务器,如各节点可上公网,可直接指定公网ntp服务器
 
1、安装ntp
[[email protected] ~]# yum install -y ntp
[[email protected] ~]# vim /etc/ntp.conf           #修改配置文件允许本网段客户端获取地址
将下面的语句
restrict default kod nomodify notrap nopeer noquery
修改为
restrict default nomodify 
restrict 192.168.0.0 mask 255.255.255.0 nomodify
 
[[email protected] ~]# service ntpd start
Starting ntpd:                                             [  OK  ]
 
查看同步过程
[[email protected] ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*202.118.1.81    202.118.1.47     2 u   30   64    1   92.249    8.602   0.714
 202.112.31.197  .INIT.          16 u    -   64    0    0.000    0.000   0.000
 
2、客户端创建周期任务,每3秒同步时间
[[email protected] ~]# crontab -e
*/3 * * * * /usr/sbin/ntpdate 192.168.0.16 &> /dev/null
[[email protected] ~]# service crond start
 
 
#手动同步成功,因ntp一般为自动,手动前kill掉所有ntp进程即可
[[email protected] ~]# ntpdate 192.168.0.16
14 Nov 20:26:09 ntpdate[3786]: adjust time server 192.168.0.16 offset -0.004440 sec
 
3、时间同步
[[email protected] ~]# date; ssh 192.168.0.15 ‘date‘
Mon Nov 14 20:36:17 CST 2016
[email protected]‘s password: 
Mon Nov 14 20:36:20 CST 2016

[[email protected] ~]# vim /etc/hosts
192.168.0.15   node1
192.168.0.16   node2

1、生成密钥对
[[email protected] ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a8:ad:2c:23:83:60:ff:36:73:9d:09:24:37:ae:da:c9 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|     . =         |
|      * S        |
|..   o o         |
|+ . . o o o      |
|+ ooo*.. +       |
| o +*E+          |
+-----------------+
 
2、把公钥传输至远程服务器对应用户的家目录
[[email protected] ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
The authenticity of host ‘192.168.0.16 (192.168.0.16)‘ can‘t be established.
RSA key fingerprint is e5:84:6c:f7:c0:60:3d:0b:39:b6:1e:12:0d:48:8b:07.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.0.16‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
Now try logging into the machine, with "ssh ‘[email protected]‘", and check in:
 
  .ssh/authorized_keys
 
to make sure we haven‘t added extra keys that you weren‘t expecting.
 
3、测试
[[email protected] ~]# date; ssh [email protected] ‘date‘
Mon Nov 14 21:02:30 CST 2016
Mon Nov 14 21:02:30 CST 2016

三、编译安装  

 1、安装依赖包(node1和node2同步安装)

[[email protected] ~]# yum -y install autoconf automake gcc-c++ asciidoc libxslt-devel libtool libtool-ltdl-devel libxml2 libxml2-devel bzip2-devel glib2-devel mercurial *openssl* net-snmp OpenIPMI flex bison e2fsprogs-devel

2、源码编译安装

下载地址http://linux-ha.org/wiki/Download
#下载heartbeat
[[email protected] ~]# wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/958e11be8686.tar.bz2
#下载cluster glue
[[email protected] ~]# wget http://hg.linux-ha.org/glue/archive/0a7add1d9996.tar.bz2
#下载cluster resource agents    注意:需要翻墙
[[email protected] ~]# wget https://github.com/ClusterLabs/resource-agents/archive/v3.9.6.tar.gz

3、创建用户与组

[[email protected] ~]# groupadd haclient
[[email protected] ~]# useradd -g haclient hacluster -M -s /sbin/nologin

4、编译

cluster glue
[[email protected] ~]# tar xf 0a7add1d9996.tar.bz2 
[[email protected] ~]# cd Reusable-Cluster-Components-glue--0a7add1d9996/
[[email protected] Reusable-Cluster-Components-glue--0a7add1d9996]# ./autogen.sh
]# ./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64 LIBS=‘/lib64/libuuid.so.1‘ --with-daemon-user=hacluster --with-daemon-group=haclient
#LIBS如果是32位系统自行更改
]# make && make install

resource agents
[[email protected] ~]# tar xf resource-agents-3.9.6.tar.gz
[[email protected] ~]# cd resource-agents-3.9.6
[[email protected] resource-agents-3.9.6]# ./autogen.sh 
[[email protected] resource-agents-3.9.6]# ./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat libdir=/usr/local/heartbeat/lib64 CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib64 LIBS=‘/lib64/libuuid.so.1‘ --with-daemon-user=hacluster --with-daemon-group=haclient
[[email protected] resource-agents-3.9.6]# make && make install

heartbeat
[[email protected] ~]# tar xf 958e11be8686.tar.bz2 
[[email protected] ~]# cd Heartbeat-3-0-958e11be8686/
[[email protected] Heartbeat-3-0-958e11be8686]# ./bootstrap 
]# ./configure --prefix=/usr/local/heartbeat --sysconfdir=/etc/heartbeat CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib64 LIBS=‘/lib64/libuuid.so.1‘ --with-daemon-user=hacluster --with-daemon-group=haclient

#编译报错,路径重复,google后得出删除 glue_config.h 中配置文件路径即可
[[email protected] Heartbeat-3-0-958e11be8686]# make && make install
../include/config.h:390:1: error: this is the location of the previous definition
gmake[1]: *** [strlcpy.lo] Error 1
gmake[1]: Leaving directory `/root/Heartbeat-3-0-958e11be8686/replace‘
make: *** [all-recursive] Error 1

[[email protected] Heartbeat-3-0-958e11be8686]# vim /usr/local/heartbeat/include/heartbeat/glue_config.h
define HA_HBCONF_DIR "/usr/local/heartbeat/etc/ha.d/"
#删除最后一行即上行内容

5、复制配置文件至/etc//heartbeat/ha.d中

[[email protected] Heartbeat-3-0-958e11be8686]# cp doc/ha.cf /etc/heartbeat/ha.d/
[[email protected] Heartbeat-3-0-958e11be8686]# cp doc/haresources /etc/heartbeat/ha.d/
[[email protected] Heartbeat-3-0-958e11be8686]# cp doc/authkeys /etc/heartbeat/ha.d/

6、将heartbeat加入系统服务,并开机启动

[[email protected] ~]# chkconfig --add heartbeat
#之后可以用service来进行start|stop操作了
[[email protected] ~]# chkconfig heartbeat on

7、修改认证文件权限为600,不然heartbeat无法工作

[[email protected] ~]# chmod 600  /etc/heartbeat/ha.d/authkeys

8、为resource-agents建立脚本软连接

[[email protected] ~]# ln -s /usr/local/heartbeat/usr/lib/ocf /usr/lib/ocf

四、配置文件

1、配置authkeys文件,指明启用何种算法,使用何种密钥,本文件须更改权限为400
auth 2
#1 crc
2 sha1 2SIEok+gXAvB6G4seA8mhw
#3 md5 Hello!
 
生成随机字符串作为密钥
[[email protected] ~]# openssl rand -base64 16
2SIEok+gXAvB6G4seA8mhw==
 
 
2、配置ha.cf文件,定义高可用集群的基本工作方式
 
定义日志文件位置(二选一) logfacility为将日志交由syslog管理     
logfile        /var/log/ha-log
#logfacility     local0
多长时间发送一次心跳信息,默认为2秒
#keepalive 2
多长时间宣布某节点死亡,默认30秒
#deadtime 30
多长时间警告对方心跳信息延迟了,默认10秒
#warntime 10
第一次死去时间,避免因网络问题导致宣布死亡
#initdead 120
使用udp694端口传递心跳,并选择哪种方式传递心跳
#udpport        694
串行线缆传递心跳
#serial /dev/ttyS0      # Linux
#serial /dev/cuaa0      # FreeBSD
#serial /dev/cuad0      # FreeBSD 6.x
#serial /dev/cua/a      # Solaris
串行线缆的工作频率
#baud   19200
广播传递心跳
#bcast  eth0            # Linux
#bcast  eth1 eth2       # Linux
#bcast  le0             # Solaris
#bcast  le1 le2         # Solaris
多播传递心跳,网卡必须支持多播,ifconfig | grep MULTICAST
mcast eth0 225.0.0.1 694 1 0          #端口694,TTL为1,不允许回传为0
#启用网卡支持多播
[[email protected] ha.d]# ip link set eth0 multicast on
 
单薄传递心跳
#ucast eth0 192.168.1.2
自动故障转回
auto_failback on
指明节点
#node   ken3
#node   kathy
node    node1
node    node2
指明网关为ping node设备(仲裁设备)
#ping 10.10.10.254
ping 192.168.0.1
指明一个组为ping node设备(仲裁设备)
#ping_group group1 10.10.10.254 10.10.10.253
指明节点间传送的压缩算法
compression     bz2
指明节点间传送数据压缩的最小数据为2KB
compression_threshold 2

3、配置haresources文件,定义集群资源
直接加入资源
node1 192.168.0.17/24/eth0/192.168.0.255 httpd

4、将httpd设置为开机不启动
[[email protected] ha.d]# chkconfig httpd off

5、启动服务
[[email protected] ~]# service heartbeat start

以上所有配置均所有节点一致

时间: 2024-10-10 20:57:45

heartbeat 编译安装配置的相关文章

编译安装配置nginx1.6以及其一些基本配置等

实验环境: centos 6.6 [该节点IP为172.16.3.101] 配置好的yum源[可以把yum源指向搜狐或者阿里的镜像站点,也可以是自己的光盘] 编译安装配置nginx1.6 # 安装之前最好先把如下包组安装上 [[email protected] httpd-2.2.29]# yum grouplist | grep -i 'develop'    Additional Development    Development tools    Server Platform Deve

cloudera impala编译 安装 配置 启动

无论是采用GDB调试impala或者尝试修改impala源码,前提都是需要本地环境编译impala,这篇文章详细的分享一下impala编译方法以及编译过程遇到的棘手的问题: 前言: impala官方的git上其实是有impala编译的步骤的,但是在后来的git版本迭代中,被藏在了一个诡异的地方,https://github.com/cloudera/Impala/tree/v1.2.2,虽i然官方给出了步骤,但该博文并不是官方的一个简单翻译,其中涵盖了很多我加入的细节提醒和遇到的bug以及错误的

Heartbeat编译安装

Heartbeat 是一个高可用集群工具,CentOS 包含了该组件,可以直接Yum 进行安装,对于如何编译安装,在参考了其它文章后,进行了错误整理,将过程记录下来,提供给需要的朋友. 系统环境 CentOS 6.2   X64 HA-01  192.168.0.2 (node1) HA-02  192.168.0.3 (node2) Virtual IP  192.168.0.1 (虚拟服务器IP) 1.最小化(mininal )安装系统,完成后安装gcc编译器及依赖的软件包 yum inst

linux下编译安装配置php5.6.30过程

在第一次编译安装php5.6.30失败后,参考了http://www.phpworld.cn/system/php/11.html的一些内容,第二次编译安装成功,特此记录过程. 一.编译安装php5.6.30 安装环境: # cat /etc/redhat-release  CentOS release 6.8 (Final) # /application/nginx/sbin/nginx -v nginx version: nginx/1.6.3 下载php5.6.30安装包 wget htt

在centos下编译安装配置高性能Nginx

安装nginx的依赖包:pcre, pcre-devel 编译nginx事实上需要的依赖包是pcre-devel,可以执行yum install pcre-devel 安装它.不过这个包的编译安装很简单,正好我们拿它练练手,熟悉熟悉linux编译安装软件的一般过程. [tips] linux下从源码编译安装软件一般是三步:配置.编译.安装.具体一点说就依次是执行三条命令:configure, make, make install. 不多讲理论,实际操作一下就明白了. 在build目录下创建子目录

linux 6下编译安装配置LAMP平台

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富.轻量.快速开发等特点,微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站

mysql 5.6单机单实例源码编译安装配置

--linux 基础配置  指定机器名为sql1 --查看centos内核uname -acat /etc/issue --修改机器名 1. echo "192.168.33.190 sql1 localhost.localdomain localhost4 localhost4.localdomain4" >> /etc/hosts 2. vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=sql1 --修改ipvi /etc/

CentOS 5.9编译安装配置mysql-5.6.10

说明:操作系统:CentOS 5.9 64位MySQL版本:mysql-5.6.10MySQL安装目录:/usr/local/mysqlMySQL数据库存放目录:/data/mysql准备篇:一.配置好IP.DNS .网关,确保使用远程连接工具能够连接服务器,服务器yum命令可以正常使用二.配置防火墙,开启3306端口vi /etc/sysconfig/iptables  #编辑-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -

Nagios 编译安装配置

安装配置Nagios 监控端 1.安装前的准备工作 (1)解决安装Nagios的依赖关系: Nagios基本组件的运行依赖于httpd.gcc和gd.可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装: # yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server (2)添加nagios运行所需要的用户和组: # groupadd  na