感谢支持
我们一直在努力

Ubuntu下基于HeartBeat的双机热备

1.  步骤 


1.1 准备实验环境


VMware WorkStation 上安装两个操作系统为Ubuntu 10.10的双网卡主机,主机硬件配置如下图1.1



1.1 主机配置


其中需要注意的是其中Network Adapter为“桥接”模式(Bridged)Network Adapter 2为自定义模式(Custom),接在VMNET2 ,如图1.2



1.2 Network Adapter 2设置


逻辑拓朴:


ubuntu1


eth0网卡对应外网ip 192.168.0.128 255.255.255.0 192.168.0.1


eth1网卡对应内网ip 192.168.1.2     255.255.255.0 192.168.1.1


ubuntu2


eth0网卡对应外网ip 192.168.0.130 255.255.255.0 192.168.0.1


eth1网卡对应内网ip 192.168.1.3     255.255.255.0 192.168.1.1


cluster


虚拟集群ip              192.168.0.129



其中集群 IP 不能和LAN(包括本机)的IP 冲突,并且不能在除/etc/ha.d/haresources文件以外的任何地方配置


 


1.2   HeartBeat 的配置


HeartBeat安装命令为


# apt-get install heartbeat


安装后在/usr/share/doc/heartbeat目录里找到ha.cfharesourcesauthkeys三个文件并放到/etc/ha.d 目录下。


另外建议安装apache2


# apt-get install apache2


1.2.1    Authkeys 文件配置


修改配置文件如下:


auth 3


3 md5 Hello! #其中Hello!为密钥


这个配置文件非常简单,就是在 auth 选择一个值。每个值对应一种算法,这个算法用于主节点和从节点间数据校验


这个配置文件权限必须是0600


# chmod 0600 authkeys


1.2.2  ha.cf 文件配置


修改配置文件如下:


#日志文件位置


logfile /var/log/ha-log 


#采用eth1 udp 广播用来发送心跳信息


bcast eth1


#主节点重启成功后,等到副节点down掉后拿回资源


auto_failback off


# 多长时间判定节点死亡,默认30


deadtime 10


#节点名称,先后顺序不重要,但是名称必须与uname n 保持一致


node ubuntu1


node ubuntu2


想修改主机名的话要修改/etc/hostname文件并重启


1.2.3 haresources 文件配置


此文件用于配置集群的 IP 和使用集群的服务


#配置方式一 (HA 服务启动时将集群IP 自动配置到主节点上)


ubuntu1 192.168.0.129/24/eth0


#配置方式二 (让apache 服务和集群ip地址绑定)


ubuntu1 192.168.0.129/24/eth0 apache2


其中ubuntu1为主机名,可以通过uname n查看;192.168.0.129为集群ip,24为掩码


本实验采取配置方式二,即把apache2 服务与集群绑定。


1.2.4 其他可选配置


heartbeat 的三个配置文件中还有一些其它可配置项,请自行参考官方文档。

2.截图


启动heartbeat服务


#service heartbeat start




如图2.1可以看到集群IP 自动配置到主节点Ubuntu1上了,而ubuntu2则没有(图2.2),并且集群ip已经可以访问(图2.3)



2.1 ubuntu1eth0网卡信息



2.2 ubuntu2eth0网卡信息



2.3 访问集群ip效果 


模拟ubuntu1宕机,我们可以停止heartbeat服务


#service heartbeat stop 


查看日志文件(/var/log/ha.log)


 Nov 24 23:19:52 ubuntu2 heartbeat: [1620]: WARN: node ubuntu1: is dead


mach_down[2020]: 2010/11/24_23:19:52 info: Taking over resource group 192.168.0.129/24/eth0


ResourceManager[2045]:        2010/11/24_23:19:52 info: Acquiring resource group: ubuntu1 192.168.0.129/24/eth0 apache2


IPaddr[2072]:  2010/11/24_23:19:53 INFO:  Resource is stopped


ResourceManager[2045]:        2010/11/24_23:19:53 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.129/24/eth0 start


IPaddr[2154]:  2010/11/24_23:19:53 INFO: Using calculated netmask for 192.168.0.129: 255.255.255.0


IPaddr[2154]:  2010/11/24_23:19:53 INFO: eval ifconfig eth0:0 192.168.0.129 netmask 255.255.255.0 broadcast 192.168.0.255


IPaddr[2130]:  2010/11/24_23:19:53 INFO:  Success


mach_down[2020]: 2010/11/24_23:19:53 info: /usr/share/heartbeat/mach_down: nice_failback: foreign resources acquired 


可以看到,节点2发现节点1异常,然后自动将集群IP配置给自己,并向全网发送广播,于是集群ip依然能够访问


3.体会


一开始的时候按照参考资料《利用VMware 实验基于heartbeat Debian Linux 高可用性集群服务v1.0haresources文件


配置成 ubuntu1 192.168.0.129 apache2


结果两个节点ifconfig eth0:0输出中都没有看到集群虚拟IP地址192.168.0.129,也打不开网页http://192.168.0.129


通过查看日志文件可以发现执行IPaddr 192.168.0.129 start的时候出错了


ResourceManager[2799]:        2010/11/24_05:05:59 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.129 start


IPaddr[2884]:  2010/11/24_05:05:59 ERROR: /usr/lib/heartbeat/findif failed [rc=1].


IPaddr[2872]:  2010/11/24_05:05:59 ERROR:  Generic error


ResourceManager[2799]:        2010/11/24_05:05:59 ERROR: Return code 1 from /etc/ha.d/resource.d/IPaddr


ResourceManager[2799]:        2010/11/24_05:05:59 CRIT: Giving up resources due to failure of 192.168.0.129


ResourceManager[2799]:        2010/11/24_05:05:59 info: Releasing resource group: ubuntu1 192.168.0.129


ResourceManager[2799]:        2010/11/24_05:05:59 info: Running /etc/ha.d/resource.d/IPaddr 192.168.0.129 stop


IPaddr[2957]:  2010/11/24_05:05:59 INFO:  Success


通过网上搜索该错误,终于发现是ipaddr去绑定IP地址时,用/usr/lib/heartbeat/findif找网络接口时失败了,解决方法如下:


haresources文件配置成ubuntu1 192.168.0.129/24/eth0 apache2


4.参考资料


PDF文件 《利用VMware 实验基于heartbeat Debian Linux 高可用性集群服务v1.0》 见 http://www.linuxidc.com/Linux/2011-09/43743.htm

赞(0) 打赏
转载请注明出处:服务器评测 » Ubuntu下基于HeartBeat的双机热备
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏