linux故障转移集群,Linux纯脚本故障转移集群

以前搞过微软的Cluster--MSCS(Exchagne2003),感觉原理非常简单,最近在做一个Oracle DG的项目,平台是Linux,总想模仿MSCS写个自动切换的脚本,搞了半天,搞出来了分享一下。

目的:实现主节点在物理失效的情况下的从节点的服务自动接管,集群资源为IP地址和Oracle数据库服务。

思路:集群用的IP地址进行定期的健康检查,当发现IP地址失效时夺取该IP地址并启动本节点对应的服务。

脚本:

config.sh

quorum_ip=172.17.100.254

cluster_ip=172.17.100.50

error_count=3

my_interface=eth1:1

net_mask=255.255.255.0

logfile=/var/log/cluster.log

clustercheck.sh

source config.sh

#echo $cluster_ip

res=`ping $cluster_ip -c $error_count|grep Unreachable|wc -l`

#echo $res

if [ $res -eq $error_count ];

then

echo "Cluster IP resource is not active!"    >>$logfile

echo "Check if this node is online:"        >>$logfile

qres=`ping $quorum_ip -c $error_count|grep Unreachable|wc -l`

if [ $qres -eq $error_count ];

then

echo "This node is offline!"            >>$logfile

sh deactiveservice.sh

ifconfig $my_interface down

else

echo "Active this node! `date`"            >>$logfile

ifconfig $my_interface $cluster_ip netmask $net_mask

sh activeservice.sh

exit 0

fi

else

echo "Cluster IP resource is active! `date`"    >>$logfile

actres=`arp -a |grep $cluster_ip|wc -l`

if [ $actres -eq 0 ];

then

echo "This node is the active node!"        >>$logfile

fi

fi

说明:

其实逻辑很简单,此脚本适用的环境也比较简单,此脚本检查的只是IP地址的有效性,并没有对Oracle监听进行更进一步的检查,所以适用的环境仅仅是IP地址失效的情况,包括主机实效导致的IP地址实效、网络失效导致的IP地址失效。

通过 ping $cluster_ip -c的命令检查集群IP地址的活跃性,如果活跃则认为集群健康,如果不活跃则去检查第三方节点以验证本节点是否脱网,如果未脱网则将集群IP绑定到本节点的服务网络适配器上,然后通过activeservice.sh 脚本启动集群提供的相应服务,当然也可以进行NFS、ISCSI的连接和mount,实现共享磁盘的切换;如果脱网则删除自己的集群IP绑定,执行deactiveservice.sh停止服务,释放其它集群资源。

当然,如果每个节点都支持IPMI等管理指令,可以在启动服务后给被接管的节点发送一个重新启动的命令,使对方自动重起获得新生。

当然也可以在通过其它机制完成重起操作,比如通过使用NFS更改对方的文件信号,对方通过定期判断信号状态自行重起等等。

非常简单,原理也非常清晰,肯定有很多没想到的,在实践中慢慢完善吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值