Linux配置浮动IP
在高可用集群环境中,一般都需要使用浮动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的更多相关文章
- Linux配置浮动IP实现WEB高可用
在高可用集群环境中,一般都需要使用浮动IP来实现web高可用(High Availability). 浮动IP的概念以及为什么需要浮动IP请参考:浮动IP(FLOAT IP) 本篇文章主要讲实际操作步 ...
- Linux系统浮动IP的配置
什么是浮动IP,为什么要配置浮动IP 首先说一下为什么要配置浮动IP. 原文链接:https://blog.csdn.net/readiay/article/details/53538085 现在有一 ...
- linux配置网卡IP地址命令详细介绍及一些常用网络配置命令
linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...
- 详述Linux配置静态IP、设置DNS和主机名(一)
Linux配置静态IP.设置DNS和主机名首先要找到配置文件,这是在Linux系统下进行工作的必须知道工作方式.后面一步步的跟着这个范例来进行配置相信你最终也会完成Linux配置静态IP.设置DNS和 ...
- Linux配置代理IP
Linux配置代理IP: vim /etc/profile http_proxy=http://username:password@ip:port/ https_proxy=http://userna ...
- Linux 配置多IP
这里以红帽Linux为例.假定原系统已配置一个IP,地址为:192.168.20.140,配置文件路径/etc/sysconfig/network-script/ifcfg-eth0.现在需要配置一个 ...
- Linux 配置静态Ip地址
注:所有红色字体标注均为 Linux 的 操作命令 ! 1, 使用root账户登录系统 2, 可以先使用 ifconfig : 查看网卡信息 eth0 为默认的第一个网卡 , 如果有第二个就会显示 ...
- Linux配置临时IP地址
# ifconfig 查看网卡信息,如下图所示: # ifconfig eth0 192.168.0.107 eth0表示第一块网卡,Linux中所有的设配都是文件,所以eth0是第一块网卡的文件名, ...
- Linux配置静态IP
在一块SSD的CentOS配置静态IP 1. 配置静态IP #vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" ...
随机推荐
- java⑿
1.插入: 插入算法: 前提是数组中的数据必须是有序的 public static void main(String[] args) { // 先定义一个int类型的数组 int[] nums = n ...
- Oracle 12c新特性
转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1) 多租户架构是Oracle 12c(12.1)的新增重磅特性 ...
- 继承,C++
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- vue-router-3-嵌套路由
<div id="app"> <router-view></router-view> </div> const User = { t ...
- Linux如何从零开始搭建rsync服务器(centOS6)
Step1:检查rsync是否已经安装 rmp -qa rsync 如果没有安装的话,通过yum install rsync -y Step2:给rsync服务添加本地用户,用于管理本地目录. u ...
- 第一章 使用功能测试协助安装Django
1.1 第一个简单的测试--断言 from selenium import webdriver browser = webdriver.Firefox() browser.get('http://lo ...
- DevExpress v18.1新版亮点——DevExtreme篇(二)
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExtreme JavaScript Controls v18.1 的新功能 ...
- Java NIO:浅析I/O模型(转)
原文链接:http://www.cnblogs.com/dolphin0520/p/3916526.html 以下是本文的目录大纲: 一.什么是同步?什么是异步? 二.什么是阻塞?什么是非阻塞? 三. ...
- 第四周四则运算3 PSP表格
PSP2.1 Personal Software Process Stages time Plan 计划 -Estimate 整数四则运算 分数四则运算 括号 括号四则运算 在主函数中调用 30m ...
- 福大软工 · BETA 版冲刺前准备之拖鞋旅游队
拖鞋旅游队BETA 版冲刺前准备 前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10083834.html 本次作业:https://edu.c ...