1.浮动IP概念
指可以再多个服务器或虚拟机实例之间动态迁移的IP.可以将原本固定的IP转换成动态的IP地址。简单来说,就是给两个相同功能(web)的实例,都绑定同一个IP,当一个实例挂掉之后,这个绑定的IP 会飘到另一个实例上,保证访问不会断
2.功能
动态迁移,负载均衡
3.应用场景
一般而言,在高可用集群中使用的比较多,例如LVS集群等,其实一个高可用集群一般而言都有浮动IP的,如果没有,机器宕机了还怎么玩?
浮动IP通过动态迁移和负载均衡机制提高了服务的高可用性和灵活性
4.浮动IP 配置
【在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability)】
利用单个网卡可以绑定多个IP地址的技术
主从环境中配置例子:1.在"主服务器"上配置浮动IP【从服务器上一样的配置】
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1
vim /etc/sysconfig/network-scripts/ifcfg-eth0:1
修改DEVICE为eth0:1,NM_CONTROLLED设置为no,IPADDR改为浮动IP地址10.xx.1.212,去掉网关信息,修改完如下:
DEVICE="eth0:1"
BOOTPROTO="static"
ONBOOT="yes"
NM_CONTROLLED="no"
TYPE="Ethernet"
IPADDR="10.xx.1.212"
NETMASK="255.255.255.0"
然后启动该网卡,验证是否生效:
ifup eth0:1
查看是否有浮动IP地址:
ip addr或者ip a
接着访问浮动IP地址10.xx.1.212,能访问成功,即和主服务器10.xx.1.22访问的一样,则说明配置成功。
2.主服务器写脚本测试浮动IP是否通
vi /root/masterFloatIP.sh
FLOAT_IP="192.168.122.13"
c=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l)
if [ $c -gt 0 ];
then
/usr/sbin/ifup ifcfg-ens33:1
fi
#给脚本添加执行权限
chmod +x masterFloatIP.sh
3.从服务器上写浮动ip测试脚本
vi slaveFloatIP.sh
MASTER_IP="192.168.122.131"
FLOAT_IP="192.168.122.13"
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 ens33:1)
if [ $c1 -gt 0 -o $c2 -gt 0 ];
then
/usr/sbin/ifup ifcfg-ens33:1
elif [ $c1 -eq 0 -a $c2 -eq 0 -a "$c3" ];
then
/usr/sbin/ifdown ifcfg-ens33:1
fi
#给脚本添加执行权限
chmod +x slaveFloatIP.sh
添加到定时任务中,定期检查浮动ip情况
crontab -e
进入文件编辑界面,“主服务器”配置如下:
每隔1小时执行一下脚本
* * * * * sleep 3600; /root/masterFloatIP.sh
* * * * * sleep 3600; /root/slaveFloatIP.sh