linux下的基本操作,熟悉开源集群技术,熟悉开源下的备份方案

Andy-xu 发布于 2014/07/02 08:31
阅读 1K+
收藏 3

使用heartbeat构建高可用集群:

实验环境:CentOS 6.4             

系统架构主要由两台主机组成,两台heartbeat主机作web站点发布网站,并且进行高可用测试。

实验准备:

1.在本地/etc/hosts文件中定义各个节点的解析。

2.关闭selinux和iptables

3.软件下载:heartbeat-3.0.4-1.el6.x86_64.rpm        heartbeat-devel-3.0.4-1.el6.x86_64.rpm 

ldirectord-3.9.2-1.2.x86_64.rpm                heartbeat-libs-3.0.4-1.el6.x86_64.rpm

# yum localinstall *.rpm    

# cd /usr/share/doc/heartbeat-3.0.4/

# cp authkeys haresources ha.cf /etc/ha.d/

# vim ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2                指定心跳间隔为2s
deadtime 30                备用节点在30s后自动接管资源
warntime 10                心跳延迟10s,10s内备用机不接受主节点心跳                    就会发出警告
initdead 60                重启后恢复网络的时间(至少deadtime的2倍)
udpport 666                 广播通信使用的端口
bcast   eth0                 使用广播()
auto_failback on               故障转换
watchdog /dev/watchdog             这个得加载一个模块
node    server66.example.com        主节点和辅助节点
node    server68.example.com
ping 192.168.0.253                      测试连通性,最好是网关

respawn选项是可选的,列出与heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程遇到故障可以自动重启。默认使用ipfail
respawn hacluster /usr/lib64/heartbeat/ipfail    检测和处理网络故障
#apiauth client-name gid=gidlist uid=uidlist
apiauth ipfail gid=haclient uid=hacluster         ipfail的运行用户和组

加载watchdog,软fence监控heartbeat并且重启

# modprobe softdog

# vi /etc/rc.local                                    设置开机自动加载

    modprobe softdog 

# vim authkeys        认证文件权限必须600
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!

# chmod 600 authkeys

# vim haresources

server68.example.com IPaddr::192.168.0.234/24/eth0 httpd


注意:heartbeat默认可用监控一下目录的服务:

/etc/init.d/     ;/etc/ha.d/resource.d/    ;/etc/ha.d/rc.d/

#/etc/init.d/heartbeat start            分别在两台heartbeat主机上启动服务

#tail -f /var/log/message

查看日志发现VIP启动了,并且访问每个主机的网页文件,并进行测试高可用,发现一台主机故障后,服务会被另外一台主机接管。

问题所在:heartbeat使用软件watchdog来做为一种解决脑列的方式,但是当内核崩溃了,watchdog也无能了(modprobe softdog),因为watchdog是基于内核级别的软件服务(相当于软fence一种硬件保护机制),因此要加强解决脑列这方面的问题。


加载中
0
Null--Null
Null--Null
lz发错地方了吧????
返回顶部
顶部