Heartbeat3.0.5+pacemaker

Heartbeat3.0.5+pacemaker

        最近在部署openstack的双控制节点上需要切换资源,所以学习了一下heartbeat和pacemaker,本来想用heartbeat 2但是操作系统是ubuntu 12.10的,apt下来版本直接是3.0.5的,为了以后部署方便只能硬着头皮学了,网上关于3的内容不多,不过和2区别不大,个人感觉还是关于资源的设置比较麻烦一些。

       两台机器:10.1.1.2(compute-1)  10.1.1.3(compute-2)

安装heartbetat

1 apt-get install-y heartbeat
    会自动安装其他三个关键包:pacemaker、resource-agents、 cluster-agents


配置heartbeat

       在/etc/heartbeat下面配置,ubuntu下自动做了一个软连接/etc/heartbeat其实是/etc/ha.d的连接。进入/etc/heartbeat

1 cp /usr/share/doc/heartbeat/ha.cf.gz .
2 cp /usr/share/doc/heartbeat/authkeys .
3 gzip -d ha.cf.gz

       默认目录下并没有相关配置文件,可以自己手动建立,也可以直接修改软件包中自带的模板,因为使用pacemaker管理资源所以不需要拷贝haresources文件,如果使用了crm管理资源,而在配置文件目录含有haresources文件,日志中会提示haresources没有使用。

配置authkeys文件

1 auth 2
2 #1 crc
3 2 sha1 openstack
4 #3 md5 Hello!
       官方不建议使用crc验证,所以我们使用sha1进行验证, authkeys文件属性必须是600,否则日志会报错。

配置ha.cf文件(10.1.1.2)

01 #集群中的节点不会自动加入
02 autojoin    none
03  
04 #heartbeat会记录debug日志,如果启用use_logd,则此选项会被忽略
05 debugfile   /var/log/ha-debug
06  
07 #记录所有non-debug消息,如果启用use_logd,则此选项会被忽略
08 logfile    /var/log/ha-log
09  
10 #告诉heartbeat记录那些syslog
11 logfacility   local0
12  
13 #指定两个心跳检测包的时间间隔
14 keepalive 1
15  
16 #多久以后心跳检测决定集群中的node已经挂掉
17 deadtime   30
18  
19 #心跳包检测的延时事件,如果延时,只是往日志中记录warning日志,并不切换服务
20 warntime  10
21  
22 #在heartbeat启动后,在多长时间内宣布node是dead状态,因为有时候系统启动后,网络还需要一段时间才能启动
23 initdead  120
24  
25 #如果udpport指令在bcast ucast指令的前面,则使用哪个端口进行广播,否则使用默认端口
26 udpport   694
27  
28 #设置使用哪个网络接口发送UDP广播包,可以设置多个网络接口
29 #bcast  eth1 eth0
30  
31 #设置在哪个网络接口进行多播心跳检测
32 #mcast   eth0 239.0.0.1 694 1 0
33  
34 #设置使用哪个网络接口进行UDP单播心跳检测,在.3上为10.1.1.2
35 ucast  eth0 10.1.1.3
36  
37 #在主节点的服务恢复后,是否把从节点的服务切换回来
38 auto_failback off
39  
40 #告诉集群中有哪些节点,node名称必须是uname -n显示出来的名称,可以在一个node中设置多个节点,也可以多次设置node,每一个在集群中的node都必须被列出来
41 node  compute-1
42 node  compute-2
43  
44 #设置ping节点,ping节点用来检测网络连接
45 ping 10.1.1.254
46  
47 #开启Pacemaker cluster manager,因为历史原因,次选项默认是off,但是应该保持该选项值为respawn。在设置为respawn默认自动使用以下配置
48 pacemaker  respawn
49  
50 #默认配置文件中下面还有很多选项,由于暂时用不到所以暂时忽略

启动heartbeat

1 /etc/init.d/heartbeat start

两台机器上执行相同的操作即可,注意:ucast的ip设置即可。

查看heartbeat运行状况:crm_mon -1

Heartbeat3.0.5+pacemaker_第1张图片

      可以看到两台机器均在线,但是由于还没有配置资源所以没有资源信息。

      资源管理需求:两台机器作为两台WEB服务器,使用apache软件。对用户接口为VIP(10.1.1.6)。要求不论哪台机器故障、apache服务故障都会把资源切换到正常的服务器上,不影响用户访问。

配置pacemaker,使用交互命令crm,也可以使用非交互模式

1 crm configure property stonith-enabled=false
2 crm configure property no-quorum-policy=ignore
3 crm configure property start-failure-is-fatal=false
4 crm configure rsc_defaults migration-threshold=1
5 crm configure primitive vip ocf:heartbeat:IPaddr2 params ip=10.1.1.6 nic=br100op monitor interval=3s
6 crm configure primitive www lsb:apache2 op monitor interval="10s"
7 crm configure group group1 vip www

再次使用crm查看资源状态

Heartbeat3.0.5+pacemaker_第2张图片

       可以看到vip资源和web资源目前运行在compute-1上面,这时候不论是停止compute-1上的apache服务还是网络都会导致vip资源和web资源一起切换到compute-2上。

       关键的难点在crm上,关于crm的信息在下一篇中介绍。


你可能感兴趣的:(crm,heartbeat,pacemaker)