Ubuntu下MySQL+DRBD+Heartbeat高性能服务集群配置(3)

三、            安装heartbeat(让切换更智能)

1.      安装heartbeat

apt-get install heartbeat

(ps: Heartbeat的主要配置文件有ha.cf、haresources和authkeys。在Heartbeat安装后,默认并没有这3个文件, 可以从官方网站下载得到,也可以直接从解压的源码目录中找到)

2.      配置ha.cf

logfacilitylocal0 #这个是设置heartbeat的日志,这里是用的系统日志

keepalive500ms #多长时间检测一次

deadtime10 #连续多长时间联系不上后认为对方挂掉了(单位是妙)

warntime5 #连续多长时间联系不上后开始警告提示

initdead100 #这里主要是给重启后预留的一段忽略时间段(比如:重启后启动网络等,

如果在网络还没有通,keepalive检测肯定通不过,但这时候并不能切换)

bcasteth0

auto_failbackoff #恢复正常后是否需要再自动切换回来

nodedrbd01 #节点名(必须是集群中机器的主机名,通过uname -n取得)

nodedrbd02 #节点名(必须是集群中机器的从机名,通过uname -n取得)

ping10.0.65.250(默认网关,可以通过route命令得到)

respawn root/usr/lib/heartbeat/ipfail #这里是配置ip绑定和切换的功能,

ipfail就是控制ip切换的程序

apiauthipfail gid=root uid=root #控制ip切换的时候所使用的用户

deadping5

3.      配置资源文件(/etc/ha.d/haresources)(参考了:?p=361)

Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源,文件每一行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件必须完全一致,此文件的一般格式为:

node-name network  <resource-group>

node-name表示主节点的主机名,必须和ha.cf文件中指定的节点名一致。network用于设定集群的IP地址、子网掩码和网络设备标识 等。需要注意的是,这里指定的IP地址就是集群对外服务的IP地址,resource-group用来指定需要Heartbeat托管的服务,也就是这些服务可以由Heartbeat来启动和关闭。如果要托管这些服务,就必须将服务写成可以通过start/stop来启动和关闭的脚步,然后放到/etc /init.d/或者/etc/ha.d/resource.d/目录下,Heartbeat会根据脚本的名称自动去/etc/init.d或者/etc /ha.d/resource.d/目录下找到相应脚步进行启动或关闭操作。

下面对配置方法进行具体说明:

drbd01IPaddr::192.68.100.120/24/eth0:0 drbddisk::r0Filesystem::/dev/drbd0::/mnt/data::ext4 mysql

(ps: 在上面的例子中,提供了对mysql资源的启动和关闭,所以需要在/etc/ha.d/resource.d这个目录下去创建一个控制该资源启动脚本,命令为: ln -s /etc/init.d/mysql /etc/ha.d/resource.d/mysql)

其中,drbd01是HA集群的主节点,IPaddr为heartbeat自带的一个执行脚本,Heartbeat首先将执行/etc/ha.d/resource.d/IPaddr192.68.100.120/24 start的操作,也就是虚拟出一个子网掩码为255.255.255.0,IP为192.68.100.120的地址。此IP为Heartbeat对外提供服务的网络地址,同时指定此IP使用的网络接口为eth0。接着,Heartbeat将执行共享磁盘分区的挂载操作," Filesystem::/dev/drbd0::/mnt/data::ext4"相当于在命令行下执行mount操作,即"mount-t ext4 /dev/drbd0 /mnt/data",最后mysql服务。

注意 主节点和备份节点中资源文件haresources要完全一样。

因此对于我们应该这样写

drbd01IPaddr::192.68.100.120/24/eth0:0 drbddisk::r0Filesystem::/dev/drbd0::/mnt/data::ext4 mysql

不要写成如下这样:

drbd01 drbddisk::r0Filesystem::/dev/drbd0::/mnt/data::ext4 mysql 192.68.100.120

会报heartbeat Cannotuse default route w/o netmask的错误。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9c9e5d63363be4d1c065adbebe2044dc.html