linux内核支持浮动ip,Linux配置浮动IP实现WEB高可用

在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability)。

浮动IP的概念以及为什么需要浮动IP请参考:浮动IP(FLOAT IP)

本篇文章主要讲实际操作步骤:

可以是双机,也可以是多机,主服务器为172.24.8.55,浮动IP设置为172.24.8.80。

一、配置浮动IP:

利用单个网卡可以绑定多个IP地址的技术。

1、主服务器配置浮动IP

在主服务器上拷贝eth0位eth0:1,并做修改。

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1

编辑文件ifcfg-eth0:1:

vim /etc/sysconfig/network-scripts/ifcfg-eth0:1

修改DEVICE为eth0:1,NM_CONTROLLED设置为no,IPADDR改为浮动IP地址172.24.8.80,去掉网关信息,修改完如下:

DEVICE='eth0:1'

BOOTPROTO='static'

ONBOOT='yes'

NM_CONTROLLED='no'

TYPE='Ethernet'

IPADDR='172.24.8.80'

NETMASK='255.255.255.0'

然后启动该网卡,验证是否生效:

ifup eth0:1

查看是否有浮动IP地址:

ip addr

接着访问浮动IP地址172.24.8.80,能访问成功,即和主服务器172.24.8.55访问的一样,则说明配置成功。

2、从服务器配置浮动IP

配置步骤和主服务器完全一样,eth0:1的IP地址同样设置成浮动IP172.24.8.80,在启动网卡测试之前,需在主服务器关闭浮动IP:

ifdown eth0:1

然后在从服务器启动eth0:1

ifup eth0:1

测试步骤也和主服务器一样。

3、如果还有其他从服务器,配置步骤如上。

二、写脚本完成浮动IP的自动开启与关闭

利用crontab自动执行技术,定时检查IP地址的状态,并启动eth0:1或者关闭eth0:1。

1、从服务器脚本 slaveFloatIP.sh:

111917830_1_20170926100327327.gif

MASTER_IP='172.24.8.55'FLOAT_IP='172.24.8.80'c1=$(/usr/bin/ping $MASTER_IP -c 1|grep Unreachable|wc -l)c2=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l)c3=$(/usr/sbin/ip addr|grep eth0:1)if [ $c1 -gt 0 -a $c2 -gt 0]then /usr/sbin/ifup eth0:1elif [ $c1 -eq 0 -a $c2 -eq 0 -a '$c3']then /usr/sbin/ifdown eth0:1fi

111917830_1_20170926100327327.gif

ping 主服务器IP地址,如果ping不通,说明主服务器挂掉了,再ping浮动IP地址,如果ping不通,说明没启动浮动IP,则启动浮动IP。

当主服务器再上线,即能够ping通主服务器,同时能ping通浮动IP地址,再判断是否是该从服务器启动了浮动IP,如果是,则需要关闭,让主服务器启动浮动IP。

如果还有其他从服务器,只需拷贝该脚本。

2、主服务器脚本 masterFloatIP.sh:

111917830_1_20170926100327327.gif

FLOAT_IP='172.24.8.80'c=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l)if [ $c -gt 0]then /usr/sbin/ifup eth0:1fi

111917830_1_20170926100327327.gif

ping不通浮动IP地址,则启动eth0:1

3、使用crontab每隔5秒自动执行脚本。

crontab -e

进入文件编辑界面,主服务器配置如下:

111917830_1_20170926100327327.gif

* * * * * /root/masterFloatIP.sh* * * * * sleep 5; /root/masterFloatIP.sh* * * * * sleep 10; /root/masterFloatIP.sh* * * * * sleep 15; /root/masterFloatIP.sh* * * * * sleep 20; /root/masterFloatIP.sh* * * * * sleep 25; /root/masterFloatIP.sh* * * * * sleep 30; /root/masterFloatIP.sh* * * * * sleep 35; /root/masterFloatIP.sh* * * * * sleep 40; /root/masterFloatIP.sh* * * * * sleep 45; /root/masterFloatIP.sh* * * * * sleep 50; /root/masterFloatIP.sh* * * * * sleep 55; /root/masterFloatIP.sh

111917830_1_20170926100327327.gif

从服务器配置也是一样的,脚本路径改为 /root/slaveFloatIP.sh

关于crontab的介绍和使用请参考:crontab的介绍

到这里就完成了浮动IP的配置和主从服务器自动开启浮动IP。

完成后就可以通过浮动IP地址访问,服务器集群内只要有一台服务器正常运行,web就能访问,实现了web高可用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值