heartbeat 安装使用

Hearbeat 软件未来发展说明(2.1.4以后):

hearbeat                   群集消息层 负责维护集群各节点间的相互通信及基本信息
cluster glue                 中间层 负责调度,包括两个模块:本地资源管理和stonith

resource agents       资源代理层         

实现各种资源的启动、停止、监控等

(pacemaker)资料待补充!


生产场景(主要是为了解决单点):

        1、四层:前端负载均衡器,配合lvs (keeplived有区别的)。

              注意是:hearbeat +lvs + ldirectord(健康检查)

        2、七层:配合haporxy、nginx,负载ip漂移!

        3、配合数据库主库的高可用。

        4、存储的高可用,比如nfs网络文件存储系统。

        5、单点的分布式文件系统。


实验准备: 虚拟机两台;配置各自的vip ;(虚拟网卡模拟直连)

                   网卡三块:eth0 外网  eth1 内网管理ip  eth2 用于服务器心跳 ;vip 应用程序挂载服务。

                   配置hosts,ping 测试;

                   添加心跳路由: route add -host 10.0.10.22 dev eth2

                 提示:防火墙一定要关闭,成败关键!


安装:

1、下载软件包:


      提示:普通的yum源无此软件

使用epel源安装:

wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm   #注意epel源使用和系统相同版本

rpm -qa |grep epel

安装heartbeat
yum install heartbeat* -y

提示:

yum 源跟新网址:http://mirrors.aliyun.com/help/centos

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

yum缓存保留修改设置:

sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf


2、安装检查 rpm -aq heartbeat
3、启动文件

/etc/init.d/heartbeat       #脚本文件

4、配置目录

/etc/ha.d/

5、服务资源

     控制目录

/etc/ha.d/resource.d/       #可以放到init.d

(脚本文件)

6、 核心配置 文件

ha.cf (参数配置文件) :基本参数
authkey(认证文件)     :高可用服务器之间根据对端的authkey,对对端认证
harresource(资源配置文件):配置启动ip资源及脚本程序,服务等

提示:配置文件模版 路径:   /usr/share/doc/heartbeat-3.0.4/                                              # 文件包括:haresources、ha.cf、authkeys


配置文件ha.cf配置 说明:

生产配置范例(/etc/ha.d/ha.cf):

#the start by kong 2015/7/5 
debugfile /var/log/ha-debug
logfile/var/log/ha-log
logfacilitylocal1
keepalive 2
deadtime 30
warntime 10
initdead 60
#bcasteth1
mcast eth2 225.0.0.7 694 1 0
auto_failback on
node A
node B
crmno
#the end by kong

#提示两台主机heartbaet 配置时相同的


debugfile /var/log/ha-debug

heartbeat 调试日志存放位置       #24 行
logfile /var/log/ha-log 普通log                                         # 29 行
logfacility local0 在syslog服务中配置通过locall设备接收日志      #34 行

keepalive  2

(心跳间隔时间)

指定心跳间隔时间为2秒(即每2秒在eth1上发一次广播)   # 48 行

deadtime  30

(宣布死亡时间)

指定若备用节点在30秒内没有收到主节点的心跳信号,则立即接管主节点的资源服务                             # 56 行

wamtime  10

(警告延迟时间)

指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务

initdead    120

(初始化死亡时间)

指定在 HEARTBEAT 首次运行后,需要等待120秒才启动主服务器的任何资源。该选项用于解决这种情况产生的时间间隔。取值至少

为deadtime的两倍。单机启动时会遇到vip绑定慢,为正常现象。该值设置长的原因。

#bcast eth1

(广播方式)

指明心跳使用以太网广播方式在eth1接口上进行广播。如使用两个实际网络传送心跳则 #bcast eth0 eth1

mcast eth2  255.0.0.1 694 1 0   (多播)

设置广播通信使用的端口,694 为默认使用端口 ;

   eth2 设备

   255.0.0.1 地址

auto failback on #用来定义当主节点回复后,是否将服务自动切回。 |建议人工
node  hostname #主节点主机名 。使用uname -n 查看
node  hostname2 #备用节点主机名。
crm no 是否开启集群资源管理功能


配置文件/etc/ha.d/authkeys  配置说明:

#如下为默认配置文件

#

#Authentication file.  Must be mode 600

#       提示:authkey权限必须为600

#

#Must have exactly one auth directive at the front.

#authsend authentication using this method-id

#

#Then, list the method and key that go with that method-id

#

#Available methods: crc sha1, md5.  Crc doesn't need/want a key.

#       提示:可以设置的认证方法 ,总计有三类

#You normally only have one authentication method-id listed in this file

#

#Put more than one to make a smooth transition when changing auth

#methods and/or keys.

#

#

#sha1 is believed to be the "best", md5 next best.

#       提示:sha1的方式是最好的

#crc adds no security, except from packet corruption.

#Use only on physically secure networks.

#

#auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello!

#默认是crc方法,这是不加密的,不够安全

生成方法:

[root@B ha.d]# echo kong|sha1sum     # 用的sha1

5e1d19b4602d90f43ab23a1470bb3d3a8939799a  -

编辑配置文件:

提示:两台机器配置相同

[root@A ha.d]# cat authkeys 

auth 1

1 sha1 5e1d19b4602d90f43ab23a1470bb3d3a8939799a

[root@A ha.d]# chmod 600 authkeys 


配置文件/etc/ha.d/haresource  配置说明(两台配置相同):

生产配置

   范例:

[root@A ha.d]# cat haresources 
#kong services
A   IPaddr::10.0.0.18/24/eth0
B   IPaddr::10.0.0.19/24/eth0


 #A  为主机名,表示初始状态会在  A  绑定ip 10.0.0.17
#IPaddr 为heartbeat 配置ip的默认脚本,其后的ip等都是脚本的参数
 #10.0.0.17/24 eth0

#为集群对外服务的vip,初始启动在A 上;

#24为子网掩码;

#eth0为ip绑定的实际物理网卡,为heartbeat提供对外服务的通信接口

           更多说明:

来自 Mysql+drdb+Heartbeat 文档


  wKiom1WZTFvBlINiAAONLLuubpw543.jpg

文件分析

haresource:

data-1-2 kong::test abc:test:ab   shipeng

分析:data-1-2 优先启动脚本:

/etc/ha.d/resource.d/kong test start

/etc/ha.d/resource.d/abc test ab start

/etc/ha.d/resource.d/shipeng start

放到haresource下面的内容都要支持 /etc/ha.d/resource.d/shipeng start/stop这样的控制模式。



启动服务

[root@A ha.d]# /etc/init.d/heartbeat  strat 
Usage: /etc/init.d/heartbeat {start|stop|status|restart|reload|force-reload}
[root@A ha.d]# /etc/init.d/heartbeat  start
Starting High-Availability services: INFO:  Resource is stopped
INFO:  Resource is stopped
Done.

服务器 A :


vip检查:

[root@A ha.d]# ip addr |grep -E "10.0.0.19|10.0.0.18"
    inet 10.0.0.18/24 brd 10.0.0.255 scope global secondary eth0


服务器 B :

[root@B ha.d]# ip a|grep -E "10.0.0.18|10.0.0.19"
    inet 10.0.0.19/24 brd 10.0.0.255 scope global secondary eth0


关停其中一台(B):

vip检查:

[root@A ha.d]# ip addr |grep -E "10.0.0.19|10.0.0.18"
    inet 10.0.0.18/24 brd 10.0.0.255 scope global secondary eth0
    inet 10.0.0.19/24 brd 10.0.0.255 scope global secondary eth0


提示:防火墙切记关闭





















本文出自 “思想大于技术” 博客,谢绝转载!

你可能感兴趣的:(heartbeat)