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

浮动IP的概念以及为什么需要浮动IP请参考:https://blog.csdn.net/readiay/article/details/53538085

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

可以是双机,也可以是多机,主服务器为10.61.1.22,从服务器为10.61.1.23,浮动IP设置为10.61.1.212。

一、配置浮动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地址10.61.1.212,去掉网关信息,修改完如下:

DEVICE="eth0:1"

BOOTPROTO="static"

ONBOOT="yes"

NM_CONTROLLED="no"

TYPE="Ethernet"

IPADDR="10.61.1.212"

NETMASK="255.255.255.0"

或者:

DEVICE=eth0:1

IPADDR=10.61.1.212

NETMASK=255.255.255.0

ONBOOT=yes

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

ifup eth0:1

查看是否有浮动IP地址:

ip addr或者ip a

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

2、在“从服务器”配置浮动IP

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

ifdown eth0:1

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

ifup eth0:1

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

3、其他“从服务器”配置浮动IP

如果还有其他从服务器,配置步骤如步骤“2”。

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

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

1、“从服务器”脚本

在root目录下

#生成脚本文件

touch slaveFloatIP.sh

#编写脚本

vim slaveFloatIP.sh

复制下面的的代码进去:

MASTER_IP="10.61.1.22"

FLOAT_IP="10.61.1.212"

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 -o $c2 -gt 0 ]

then

/usr/sbin/ifup eth0:1

elif [ $c1 -eq 0 -a $c2 -eq 0 -a "$c3" ]

then

/usr/sbin/ifdown eth0:1

fi

说明:

ping主服务器IP地址或者ping浮动IP地址,如果ping不通,说明主服务器挂掉了或者没启动浮动IP,则在从机上启动浮动IP。

当主服务器再上线,即能够ping通主服务器且能ping通浮动IP地址,则在从机上关闭浮动IP。

备注:

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

2、“主服务器”脚本

在root目录下

#生成脚本文件

touch masterFloatIP.sh

#编写脚本

vim masterFloatIP.sh

复制下面的的代码进去:

FLOAT_IP="10.61.1.212"

c=$(/usr/bin/ping $FLOAT_IP -c 1|grep Unreachable|wc -l)

if [ $c -gt 0 ]

then

/usr/sbin/ifup eth0:1

fi

说明:

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

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

使用crontab -e命令

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

* * * * * /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

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

4、结果

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

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

Linux配置浮动IP的更多相关文章

  1. Linux配置浮动IP实现WEB高可用

    在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 浮动IP的概念以及为什么需要浮动IP请参考:浮动IP(FLOAT IP) 本篇文章主要讲实际操作步 ...

  2. Linux系统浮动IP的配置

    什么是浮动IP,为什么要配置浮动IP 首先说一下为什么要配置浮动IP. 原文链接:https://blog.csdn.net/readiay/article/details/53538085 现在有一 ...

  3. linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

    linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...

  4. 详述Linux配置静态IP、设置DNS和主机名(一)

    Linux配置静态IP.设置DNS和主机名首先要找到配置文件,这是在Linux系统下进行工作的必须知道工作方式.后面一步步的跟着这个范例来进行配置相信你最终也会完成Linux配置静态IP.设置DNS和 ...

  5. Linux配置代理IP

    Linux配置代理IP: vim /etc/profile http_proxy=http://username:password@ip:port/ https_proxy=http://userna ...

  6. Linux 配置多IP

    这里以红帽Linux为例.假定原系统已配置一个IP,地址为:192.168.20.140,配置文件路径/etc/sysconfig/network-script/ifcfg-eth0.现在需要配置一个 ...

  7. Linux 配置静态Ip地址

    注:所有红色字体标注均为 Linux 的 操作命令 ! 1, 使用root账户登录系统 2, 可以先使用 ifconfig : 查看网卡信息   eth0 为默认的第一个网卡 , 如果有第二个就会显示 ...

  8. Linux配置临时IP地址

    # ifconfig 查看网卡信息,如下图所示: # ifconfig eth0 192.168.0.107 eth0表示第一块网卡,Linux中所有的设配都是文件,所以eth0是第一块网卡的文件名, ...

  9. Linux配置静态IP

    在一块SSD的CentOS配置静态IP 1. 配置静态IP #vi /etc/sysconfig/network-scripts/ifcfg-eth0   DEVICE="eth0" ...

随机推荐

  1. ssh三大框架整合

    spring+struts2+hibernate 参考1:数据库为oracle http://takeme.iteye.com/blog/1678268 参考2:数据库为mysql http://bl ...

  2. flask项目结构(二)创建flask,同步docker

    简介: 建立flask容易,那么部署就比较麻烦了,配这个,配那个,更新………… 所以我从构建,就考虑部署的问题,使用docker部署. 程序都打包进docker,本博客有相关文章. pycharn直接 ...

  3. list的四种遍历方式

    1.手先增强for循环和iterator遍历的效果是一样的,也就说 增强for循环的内部也就是调用iteratoer实现的,但是增强for循环 有些缺点,例如不能在增强循环里动态的删除集合内容.不能获 ...

  4. 四:(之一和之二) docker架构和底层技术分析(C/S架构)

    1.架构和底层技术 Docker Host提供了RESTUL api,使docker client可以通过这些命令调用dockerd. Registry是一个公用的存储镜像的容器,类似于github. ...

  5. C++基础知识:继承

    1.继承的概念 面向对象中的继承指类之间的父子关系子类拥有父类的所有成员变量和成员函数子类就是一种特殊的父类子类对象可以当作父类对象使用子类可以拥有父类没有的方法和属性 2.C++中的访问级别与继承p ...

  6. W phase 学习

    W phase 的组成:(相关文献发现W phase适用于6级以上的地震) P, PP,S,SS,SP,PS等等长周期的震相: 它的传播机制和whispering gallery 相似. 从简振理论来 ...

  7. E - Mahmoud and Ehab and the bipartiteness CodeForces - 862B (dfs黑白染色)

    Mahmoud and Ehab continue their adventures! As everybody in the evil land knows, Dr. Evil likes bipa ...

  8. 使用 DirectX 创建 3D 图形

    官方链接   https://msdn.microsoft.com/zh-cn/library/windows/desktop/hh465137.aspx 使用 Windows 运行时初始化 Dire ...

  9. git 继续前进篇

    * git 输入 git log (--all)命令后出现<END>标记? 按q退出历史记录列表即可 * 继续前一天的  继续推送到github  步骤看图 先 链接到 之前工作区 的 文 ...

  10. L305 发邮件15分钟

    发个邮件-不用那么纠结-把事情讲清楚就好-限制在15分钟写完-长的邮件25分钟-难点是讲清楚细节-比如软件调试bug-DFM-这里有些专业词汇 发现问题:发给客户的There are some qua ...