
基本概念:
集群:一组服务器,它们都参与心跳测试,并相互连接以统一它们的日常任务。
服务器(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的文件目录:
2.安装libnet
时,首先检查系统软件是否已经安装了libnet:
如果已经安装,则必须升级。Apply-U主要参数:
如果没有,应用-i主要参数:
安装成功后,检查一切是否正常:
3.安装心跳:
br/]
4.复制配置文档:
更改相关文档
/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,管理人员无法按照远程登录管理方式进行服务,比较适合人力值班的情况。然后逐渐提升。
欢迎您的评论
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)