免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7443 | 回复: 4
打印 上一主题 下一主题

利用VMware实验基于heartbeat的Debian Linux高可用性集群服务v1.0 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-30 19:40 |只看该作者 |倒序浏览
利用VMware实验基于heartbeat的Debian Linux高可用性集群服务v1.0               
-----用你心中的温暖烛光,点燃你周围的另一支烛光,这个世界就亮了。
Qintel    cdut qintel#163.com(欢迎指出错误的地方)

本文在Google DOC中的位置:http://docs.google.com/View?docid=dhjp43kc_8cgsx3m
顺便给Google DOC作下广告,好处是可以多人编辑一个文档,类似wiki,这样大家群策群力,可以共同完善一个文档。

说明:本文没有关于heartbeat的详细配置说明,只是就较关键的,新手易出错的,几个地文写了一点心得,实验及成文历时约3天,20多个小时。
关键词:Heartbeatdebain 认证key生成,主、次节点,顺序,指定,Cluster IPCluster IP+服务


3、 我的实验环境:
一台接入LANPC,CPU:P4 3.0, 内存:512MB,一块普通以太网卡。主操作系统: winxp professional
VMwareWorkStation,在VMwareWorkStation上安装两个虚拟主机(也可安装并配置好一台后用VMàClone功能复制一台出来,这样更快捷,clone后的主机要注意网卡mac问题,不行的话就删掉网卡,重新添加),操作系统为Debian linux4.0,主机硬件配置如图:
其它硬件如软驱,声卡可删去不要。装好Linux操作系统后,光驱也可删去。其中Ethernet为“桥接”模式,Ethernet2为自定义模式,接在VMNET2上。
其中,VMwareDebian的安装设置本文不涉及,本文重点介绍的是hearbeat的配置。
下图是本次实验的逻辑拓朴图:其中集群IP不能和LAN(包括本机)的IP冲突,并且不能在除/etc/ha.d/haresources文件以外的任何地方配置。
#说明:在VMware上的GuestOS(debian)虚拟了2块网卡,一块和HostOS(winxp)在同一交换机,用于对外提供高可用性服务,另一块用于和其它节点发送心跳信息(通告彼此的运行信息),连接在VMware的虚拟交换机VMNET2上,此交换机可以认为是独立的。
4、 HeartBeat的配置
安装heartbeat除必要的编译器之外,需要其它一些软件的开发包支持:如e2fsprogslibnet。所以手动通过源码安装有些不方便,本实验采取通过Debianapt-get方式安装,可以自动解决包依赖关系。
本实验环境下安装命令为
# apt-get install heartbeat


安装后要配置三个文件(如没有可手动建立):ha.cfharesourcesauthkeys。这三个配置文件需要在/etc/ha.d目录下面,但是默认是没有这三个文件的,可以到官网上下这三个文件,也可以在源码包里找这三个文件,在源码目录下的DOC子目录里。
1.1 Authkeys文件的配置
配置文件的值如下:
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!

##其中Hello!为密钥
这个配置文件非常简单,就是在auth选择一个值。每个值对应一种算法,这个算法是在主节点和从节点间数据校验用的。这个配置文件权限必须是0600
root@debian:/# chmod 0600 authkeys

对安全性高的,可以用命令自动生成随机密钥
root@debian:/# dd if=/dev/urandom count=42>/dev/null | openssl dgst -sha1

结果如下:
f9c85a048681dcbf47457065bbff62e32cec186d

1.2 haresources文件的配置
此文件用于配置集群的IP和使用集群的服务。有以下几种配置方式
#配置方式一
----------------------------------------------------------
#debian202.115.138.65
#把此地址用于集群,只要HA服务启动则此IP就将被自动配置到主节点上。
#配置方式二  -------------------------------------------------------
debian202.115.138.65 apache
#apache服务和此集群地址绑定,如apacheHA服务没有启动,刚此IP也不启用。
#配置方式三 ---------------------------------------------------------
just.linux-ha.org135.9.216.110 135.9.215.111 135.9.216.112 httpd
#httpd服务和这三个集群地址绑定
#-------------------------------------------------------------------
还有一种共享文件系统集群的配置方法见参考文献[5]。 

此配置文件中只要配置了上面的任意一种方式即可工作,本实验中采取配置方式二,即把apache服务集群。配置文件中其它选项不配也可工作。
1.3 ha.cf文件的配置
auto_failbackoff
#说明:主节点重启成功后,资源是自动拿回到主节点还是等到副节点down调后拿回资源
node debian
node bebian2
#说明:节点名称,与uname n保持一致。是否主节点与此位置的先后顺序无关。而是在haresources里指定。
#bcasteth0
#说明:采用eth0udp广播用来发送心跳信息,建议在副节点不只一台时使用
ucasteth0 10.0.11.2
#说明:采用网卡eth0udp单播来通知心跳,ip应为对方IP(未验证)
#mcasteth0 225.0.0.1 694 1 0
#说明:采用udp多播播来通知心跳,建议在副节点不只一台时使用
#注:广播,单播,多播,以上三种任选其一即可。

heartbeat的三个配置文件中还有一些其它可配置项,但是比较关键的,比较容易弄错的就是上面提到的这几项,有了上面这几项,可保证在heartbeat 1.2系列的版本上正常运行。如果想要自己弄懂所有配置选项,那么自己参考:http://www.linux-ha.org/ConfiguringHeartbeat中的文档,特别是《Getting Started withLinux-HA(heartbeat)》文档,不熟悉的情况下看官方参考文档永远是个明智的选择。
2、 实验结果测试
Host OS winxp上通过浏览器,访问Cluster IPhttp://202.115.138.65/,服务正常。同时在主节点OS上,查看
# ifconfig -a | less

可发现Cluster IP被HA自动配置到了eth0:0上。
此时,关掉HA服务,或者关掉主节点,立即访问Cluster IPhttp://202.115.138.65/,发现服务中断,过大约30秒(时间可在/etc/ha.d/ha.cf)中配置,再次访问Cluster IPhttp://202.115.138.65/,发现服务又正常了。而此时在备用节点2上,
# ifconfig -a | less

可发现Cluster IP被HA自动配置到了节点2的eth0:0上。
通过查看节点2上的日志,日志里记录了heartbeat接受到的心跳信息,还有依据信息采取的措施。
# vim /var/log/syslog
摘录关键的几条日志如下:
l11438 Jul 30 18:36:31 debian2heartbeat[2002]: WARN: node debian: is dead
l11451 Jul 30 18:36:32 debian2heartbeat: info: /sbin/ifconfig eth3:0 202.115.138.65 netmask255.255.255.0^Ibroadcast 202.115.138.255
l11453 Jul 30 18:36:32 debian2heartbeat: /usr/lib/heartbeat/send_arp -i 1010 -r 5 -p/var/lib/heartbeat/rsctmp/send_arp/send_arp-202.115.138.65 eth3 202.115.138.65auto 202.115.138.65 ffffffffffff
l11455 Jul 30 18:36:32 debian2heartbeat: info: Running /etc/init.d/apache/start

可看到,节点2发现节点1异常,然后自动将集群IP配置给自己,并向全网发送arp广播,通知集群IP与本机Mac的对应起来,最后启动apache服务。
3、 结论
通过自己实验,发现heartbeat集群存在一些不完善的地方,比如:
1、
主节点1apache服务异常,OS正常时,节点2并不能自动替换节点1工作,即使不在cluster ip 上绑定apache服务也不行。
#配置方式一  -------------------------------------------------------
debian202.115.138.65
#把此地址用于集群,只要HA服务启动则此IP就将被自动配置到主节点上。

2、
如果选用配置方式二时
#配置方式二  -------------------------------------------------------
debian202.115.138.65 apache
#apache服务和此集群地址绑定,如apacheHA服务没有启动,刚此IP也不启用。

一定要保证IP后面的服务名在以下2个目录有,而且可用。如果没有同名,那整个集群将不能正常工作,culsterip将不被配置到任何一个节点上。

以下摘录heartbeat官方对此的说明:
l
inuxha1.linux-ha.org 192.168.85.3 httpd smb

#haresources配置文件
#Note: httpd and smb are the name of startupscripts for Apache and Samba, respectively. #Heartbeat will look for startupscripts of the same name in the following paths:
#/etc/ha.d/resource.d
#/etc/init.d


在除了观察到的这2种情况以外,hearbeat都能正常工作,当然这是实验环境中得出的结论,在商业环境中的大规模应用据向经验人土打听说会有更多问题。
附录:参考文献:
[1]Linux 集群大全, http://www.ibm.com/developerworks/cn/linux/cluster/lw-clustering.html
[2]The High Availability LinuxProjecthttp://linux-ha.org/
[3]Heartbeat依赖软件包libnethttp://www.packetfactory.net/libnet/
[4]How to generate authkeysautomatically
http://www.linux-ha.org/GeneratingAuthkeysAutomatically
[5]利用HeartbeatLinux上实现共享文件系统集群的配置,
http://www.sme-solution.com/cluster/HA/heartbeat_1.html
[6]主要Linux 平台高可用集群软件(HighAvailability Cluster- HA)简介及软件下载,
http://linux.chinaunix.net/bbs/thread-817188-1-1.html

[ 本帖最后由 qintel 于 2007-7-30 21:05 编辑 ]

评分

参与人数 1可用积分 +15 收起 理由
nntp + 15 原创内容

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2007-08-27 19:29 |只看该作者
呵呵,楼主好帖,谢谢分享!

论坛徽章:
0
3 [报告]
发表于 2007-08-27 20:09 |只看该作者
好帖,谢谢分享!:wink:

论坛徽章:
0
4 [报告]
发表于 2007-08-27 21:22 |只看该作者
很详细的文档。不错!

论坛徽章:
0
5 [报告]
发表于 2012-03-29 22:07 |只看该作者
怎样验证备机备份了主机的改变呢??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP