最近在部署openstack的双控制节点上须要切换资源,因此学习了一下heartbeat和pacemaker,原本想用heartbeat 2可是操做系统是ubuntu 12.10的,apt下来版本直接是3.0.5的,为了之后部署方便只能硬着头皮学了,网上关于3的内容很少,不过和2区别不大,我的感受仍是关于资源的设置比较麻烦一些。 node
两台机器:10.1.1.2(compute-1) 10.1.1.3(compute-2) web
安装heartbetat shell
apt-get install -y heartbeat
会自动安装其余三个关键包:pacemaker、resource-agents、 cluster-agents apache
配置heartbeat ubuntu
在/etc/heartbeat下面配置,ubuntu下自动作了一个软链接/etc/heartbeat实际上是/etc/ha.d的链接。进入/etc/heartbeat 服务器
cp /usr/share/doc/heartbeat/ha.cf.gz . cp /usr/share/doc/heartbeat/authkeys . gzip -d ha.cf.gz
默认目录下并无相关配置文件,能够本身手动创建,也能够直接修改软件包中自带的模板,由于使用pacemaker管理资源因此不须要拷贝haresources文件,若是使用了crm管理资源,而在配置文件目录含有haresources文件,日志中会提示haresources没有使用。 网络
配置authkeys文件 学习
auth 2 #1 crc 2 sha1 openstack #3 md5 Hello!官方不建议使用crc验证,因此咱们使用sha1进行验证, authkeys文件属性必须是600,不然日志会报错。
配置ha.cf文件(10.1.1.2) spa
#集群中的节点不会自动加入 autojoin none #heartbeat会记录debug日志,若是启用use_logd,则此选项会被忽略 debugfile /var/log/ha-debug #记录全部non-debug消息,若是启用use_logd,则此选项会被忽略 logfile /var/log/ha-log #告诉heartbeat记录那些syslog logfacility local0 #指定两个心跳检测包的时间间隔 keepalive 1 #多久之后心跳检测决定集群中的node已经挂掉 deadtime 30 #心跳包检测的延时事件,若是延时,只是往日志中记录warning日志,并不切换服务 warntime 10 #在heartbeat启动后,在多长时间内宣布node是dead状态,由于有时候系统启动后,网络还须要一段时间才能启动 initdead 120 #若是udpport指令在bcast ucast指令的前面,则使用哪一个端口进行广播,不然使用默认端口 udpport 694 #设置使用哪一个网络接口发送UDP广播包,能够设置多个网络接口 #bcast eth1 eth0 #设置在哪一个网络接口进行多播心跳检测 #mcast eth0 239.0.0.1 694 1 0 #设置使用哪一个网络接口进行UDP单播心跳检测,在.3上为10.1.1.2 ucast eth0 10.1.1.3 #在主节点的服务恢复后,是否把从节点的服务切换回来 auto_failback off #告诉集群中有哪些节点,node名称必须是uname -n显示出来的名称,能够在一个node中设置多个节点,也能够屡次设置node,每个在集群中的node都必须被列出来 node compute-1 node compute-2 #设置ping节点,ping节点用来检测网络链接 ping 10.1.1.254 #开启Pacemaker cluster manager,由于历史缘由,次选项默认是off,可是应该保持该选项值为respawn。在设置为respawn默认自动使用如下配置 pacemaker respawn #默认配置文件中下面还有不少选项,因为暂时用不到因此暂时忽略
启动heartbeat 操作系统
/etc/init.d/heartbeat start
两台机器上执行相同的操做便可,注意:ucast的ip设置便可。
查看heartbeat运行情况:crm_mon -1
能够看到两台机器均在线,可是因为尚未配置资源因此没有资源信息。
资源管理需求:两台机器做为两台WEB服务器,使用apache软件。对用户接口为VIP(10.1.1.6)。要求不论哪台机器故障、apache服务故障都会把资源切换到正常的服务器上,不影响用户访问。
配置pacemaker,使用交互命令crm,也可使用非交互模式
crm configure property stonith-enabled=false crm configure property no-quorum-policy=ignore crm configure property start-failure-is-fatal=false crm configure rsc_defaults migration-threshold=1 crm configure primitive vip ocf:heartbeat:IPaddr2 params ip=10.1.1.6 nic=br100 op monitor interval=3s crm configure primitive www lsb:apache2 op monitor interval="10s" crm configure group group1 vip www
再次使用crm查看资源状态
能够看到vip资源和web资源目前运行在compute-1上面,这时候不管是中止compute-1上的apache服务仍是网络都会致使vip资源和web资源一块儿切换到compute-2上。
关键的难点在crm上,关于crm的信息在下一篇中介绍。