使用Heartbeat和脚本使服务器服务失效后自动切换

使用Heartbeat和脚本使服务器服务失效后自动切换,第1张

使用Heartbeat和脚本使服务器服务失效后自动切换

基本概念:

集群:一组服务器,它们都参与心跳测试,并相互连接以统一它们的日常任务。

服务器(primary):配置时专门对接VIP提供服务的服务器。

备份:配置时检查服务器心跳的服务器,在服务器无效时连接VIP并提供服务。

有效:今天连接VIP,对外提供开放服务的服务器。

无效:今天的合理服务器由于各种情况无法提供服务或连接VIP。


示例:两台linux服务器组成一个集群,服务器设为A,备用为B,服务套接字eth0的IP地址为A:192.168.0.1/B:192.168.0.2,开放服务套接字eth0的IP(VIP)为192.168.0.254。为了更好的防止heartbeat因为网络拥塞而无法检查,另外一对插座eth1等。应该用。Eth1根据交叉线传输数据。服务器提供的服务器端口是TCP12345。插座配置并不详尽。/etc/hosts文档应该有一个与对等体的IP地址相匹配的IP地址。



首先,安装必要的手机软件。网上绝大多数的教材都是用百胜安装的。因为是内网服务器,所以只需要离线安装。免费下载heartbeat和libnet:

(对于邪恶的非法文件,请将压缩文件重命名为heartbeat.zip.001和heartbeat.zip.002,在windows下缓解压力后上传到服务器;或者在互联网技术上免费下载后提交)

整个安装过程如下:
1。压缩包解压heartbeat,会在这个文件目录下形成heartbeat的文件目录:

tar -xzf heartbeat-2.0.8.tar.gz

2.安装libnet
时,首先检查系统软件是否已经安装了libnet:

rpm -q libnet

如果已经安装,则必须升级。Apply-U主要参数:

rpm -Uv libnet-1.1.2.1-2.2.el4.rf.i386.rpm

如果没有,应用-i主要参数:

rpm -iv libnet-1.1.2.1-2.2.el4.rf.i386.rpm

安装成功后,检查一切是否正常:

rpm -q libnet

3.安装心跳:
br/]

cd ./heartbear-2.0.8 ./ConfigureMe configure ./make ./make install


4.复制配置文档:

cp /usr/share/doc/heartbeat-2.0.8/ha.cf haresources authkeys /etc/ha.d/

更改相关文档

/etc/ha.d/ha.cf配置:

debug:debugfile:heartbeat建议独立形成。

日志:日志文件logfile:heartbeat建议独立形成。

Keepalive:传出心跳数据信号之间的间隔时间。默认设置是EnterpriseS,可以应用ms。

Deadtime:服务器被宣布无效的时间。

Warntime:发出“心跳延迟”警告的时间。

Initdead:网络延迟有效时间

Udpport:广播节目和单播通信的端口号,可以默认设置,不矛盾。

Ucast端口号IP:应用单播通信,端口号为,对端IP地址为:

Auto_failback:占用模式,如果服务器恢复,将再次接管资源。

看门狗:如果没有形成心跳数据信号,重启。

节点:所有主计算机和备用计算机的名称。第一行是服务器,第二行是备用。该名称必须与uname-a一致..并且/etc/hosts中有一个IP地址与该名称匹配。

Ping:整个目标连接点。只有能ping通整体目标连接点,才能算作所有正常连接点。否则,打开ipfail。

respawnhacluster/usr/lib/heartbeat/ipfail:key,如果ping失败,打开IPfail,dockVIP。如果标注了,即使验证主连接点无效,也不能停靠VIP。


/etc/ha.d/haresource配置。该配置必须在集群中的主机器和备用机器之间保持一致,

NodeNameIPaddr::IP/mask/socket:ha生效后的所有资源。NodeName是指服务器的设备名,IPaddr是构成VIP的套接字,后面是IP地址和子网掩码。


/etc/ha.d/authkey配置,非常简单的配置:

auth 1 1 crc


更改此文件的最终权限是600:

chmod 600 /etc/ha.d/authkeys

配置更改后,运行DOS命令:

chkconfig --list|grep heartbeat

检查心跳服务是否在启动后自动加载。如果3和5是关闭的,让他们兴奋。

chkconfig --level 35 heartbeat on


二、安装完成后,应用程序脚本制作人员定期检查所有服务是否正常运行。这里应用了nc的端口扫描功能。如果TCP12345端口号打开,可以分辨出所有服务都正常。如果端口关闭,关闭打开的服务套接字Eth0,并将其与另一台服务器连接。直到TCP12345端口号恢复,再次打开Eth0端口号。因为主服务器Eth0插座关闭后,VIP退去,备用机可以对接VIP对外开放提供服务。

[root@SrvA ~]# cat nc_check.sh  #!/bin/bash declare -i EXIT_STATUS=0 while read port do  #IS PARAMETER A NUMBER?  expr $port  0 1>/dev/null 2>&1  if [ $? != 0 ];then   echo "$port Not a Number."   exit 1  fi  nc -z localhost $port 1>/dev/null 2>&1  if [ $? != 0 ];then   EXIT_STATUS="1"   echo "$port Failed"   /sbin/ifdown eth0 1>/dev/null 2>&1  else   EXIT_STATUS="0"   /sbin/ifup eth0 1>/dev/null 2>&1  fi done < /root/check_port exit $EXIT_STATUS


并在/root下创建文档check_port,写入必须检查的端口号,每行一个端口号:

[root@SrvA ~]# cat check_port 12345

脚本,如果端口号可以正常检查,失效后关闭,加载计划任务:

[root@SrvA ~]# crontab -l */1 * * * * /root/nc_check.sh 1>/tmp/log/nc_check.log 2>&1

最后,执行测试,ping移动客户端,关闭服务器端口号,查看备用机器是否可以对接:

来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 请求超时。 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 来源于 192.168.0.254 的回应: 字节数=32 時间<1ms TTL=64 192.168.0.254 的 Ping 统计数据:     数据文件: 已推送 = 3376,已接受 = 3367,遗失 = 9 (0% 遗失), 来回行程安排的可能時间(以ms为企业):     最短 = 0Ms,最多 = 108ms,均值 = 0Ms Control-C ^C

检查待机配置:

[root@SrvB ~]# ifconfig|grep 192.168.0.254    inet addr:192.168.0.254  Bcast:192.168.0.255  Mask:255.255.255.0


手动打开服务器端口号,一段时间后检查服务器是否可以再次对接VIP:

[root@SrvA ~]# ifconfig|grep 192.168.0.254    inet addr:192.168.0.254  Bcast:192.168.0.255  Mask:255.255.255.0 [root@SrvB ~]# ifconfig|grep 192.168.0.254


注:由于VIP对接时间很短,ping不丢失。


测试。这个脚本有一个缺点,就是ifdown会关闭开放服务的socket,管理人员无法按照远程登录管理方式进行服务,比较适合人力值班的情况。然后逐渐提升。


欢迎您的评论

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/778696.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-03
下一篇2022-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存