诛仙手游兽神之叹攻略:[原]使用heartbeat配置双机互备集群

来源:百度文库 编辑:九乡新闻网 时间:2024/10/05 23:55:18

[原]使用heartbeat配置双机互备集群    

 heartbeat v2支持多个节点、多个应用及不对称集群的功能。这里以一个比较简单的例子,就是集群托管两个应用:httpd和mysqld,实现双机互备功能,来讲解一下具体的配置工作。

一、系统架构
还是以前一篇日志的架构为基础,但增加了一个mysqld的应用。

引用hatest3: 192.168.228.233,默认运行httpd;
hatest4: 192.168.228.234,默认运行mysqld;
httpd:192.168.228.235
mysqld: 192.168.228.236
共享盘柜: /dev/sdb1 —— /data
mysqld的实际数据放在模拟的盘柜/dev/sdb1上,以便机器切换后能保证数据的完整和持续。

二、增加mysqld应用
前面关于authkeys和ha.cf等的设定工作就不再重复了,httpd的配置也与前面的相同。接下来要做的,就是添加mysqld服务的托管工作。
1、准备盘柜
把盘柜分别挂载到机器上,在其中一台机器上进行分区和格式化的工作。
然后分别在参与集群的两台服务器上挂载和测试,看看能否分别看到盘柜上的数据信息。(不能同时挂载和读写)
若测试通过后,则准备完成。

2、添加资源组
打开hb_gui配置工具,登陆后,添加一个资源组:



3、添加IP资源


4、添加挂载点资源


5、添加启动资源

这里可以选择ocf格式的mysql或lsb格式的mysqld,我的建议是选择lsb格式,虽然其提供的参数比较少,但因为与系统兼容性更好,启动应用一般不会有问题。
当然,您也可以根据实际情况修改/usr/lib/ocf/resource.d/heartbeat/mysql脚本中对应的参数路径,让mysql脚本可以顺利运行。
一句话就是,要用该脚本启动、关闭和监控应用是正常的!

6、添加资源监控

对stop失败时的处理:


7、添加位置限制条件



修改权重为正值,并添加表达式:



8、添加顺序限制条件
通常情况下,httpd和mysqld两个应用的启动是没有什么先后顺序的。但某些特殊应用,例如tomcat等,可能存在数据库连接池的情况。也就是说,数据库的启动必须先于tomcat的启动,否则tomcat会提示找不到可用于连接数据库的地址池错误。
在这里,我们就添加一个顺序限制条件,来模拟该项动作。


(定义mysqld组比httpd组先启动)
这是确认“应用”后的状态,可见httpd组会被先停止:


9、启动资源组
在两个节点上分别停止heartbeat服务:

# service heartbeat stop
然后再一起启动:

# service heartbeat start
可以发现,mysqld组会比httpd组先启动:

然后全部启动完成:

同样的,您可以试试强制终止mysqld服务,会发现httpd组同样也会先停止,然后等待mysqld重启或切换到组中另一台服务器上后,httpd组才会重新启动,完全满足我们的要求。

当然,两组资源也是可以运行在同一台服务器上的,执行强制移动资源组的操作:

# crm_resource -M -r group_mysqld
结果:

※ 注意,图中红色标记的属性是在手动执行上述的命令后自动创建的,其目的就是为了限制group_mysqld组不要运行在默认的hatest4上(也就是移走)。删除该位置限制后,资源组即可恢复。