1.虚拟IP
在 TCP/IP 的架构下,所有想上网的电脑,不论是用何种方式连上网路,都必须要有一个唯一的 IP-address。事实上IP地址是主机硬件地址的一种抽象,简单的说,MAC地址是物理地址,IP地址是逻辑地址。

虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机。

虚拟IP一般用作达到HA(High Availability)的目的,比如让所有项目中数据库链接一项配置的都是这个虚IP,当主服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用服务器。

2.虚拟IP原理
ARP是地址解析协议,它的作用很简单,将一个IP地址转换为MAC地址,然后给传输层使用。

每台主机中都有一个ARP高速缓存,存储同一个网络内的IP地址与MAC地址的对应关 系,以太网中的主机发送数据时会先从这个缓存中查询目标IP对应的MAC地址,会向这个MAC地址发送数据。操作系统会自动维护这个缓存。

在Linux下可以使用arp命令操作ARP高速缓存。

比如存在物理机A(IP是192.168.192.54 )和物理机器B(IP是192.168.192.40),A作为对外服务的主服务器(比如数据库主库),B作为备份机器,两台服务器之间的通信是通过 Heartbeat,即主服务器会定时的给备份服务器发送数据包,告知主服务器服务正常,当备份服务器在规定时间内没有收到主服务器的 Heartbeat,就会认为主服务器宕机,则备份服务器就会升级为主服务器。假设物理机A的ARP缓存如下:


另外物理机器B(IP是192.168.192.40)的ARP缓存如下:

当机器B通过BeatHeart得知机器A对外服务质量低于预期的时候(比如发生故障,服务无响应),会将自己的ARP缓存发送出去,让路由器修改 路由表,告知虚拟地址应该指向我(物理机器B,192.168.192.40),这时候,外界再次访问虚拟IP的时候,机器B会变成主服务器,而A降级为 备份服务器。这就完成了主从机器的自动切换,这一切对外界是透明的。

3.IP漂移
上面的VIP自动切换的过程就称之为IP漂移。

我们可以通过Keepalived来实现这个过程。 Keepalived是一个基于VRRP协议(Virtual Router Redundancy Protocol,即虚拟路由冗余协议)来实现的LVS(负载均衡器)服务高可用方案,可以利用其来避免单点故障。一个LVS服务会有2台服务器运行 Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备 份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候, 备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

高可用之虚拟IP和IP漂移相关推荐

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

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

  2. keepalived高可用集群。

    keepalived故障切换转移原理 1vrrp协议:(vritual router redundancy protocol)虚拟路由冗余协议, 2故障转移. keepalived三大功能 1实现物理 ...

  3. Nginx(六):配置nginx高可用集群

    我们知道在我们使用nginx代理多态tomcat服务器时,如果某台tomcat服务器发生宕机,那么nginx的分配机制可以自动将其剔除.但是如果发生了nginx的宕机状况,又该如何解决呢. 1.配置高 ...

  4. LVS(DR)+keepalived实现高可用负载均衡

    一.lvs+keepalived 1.lvs LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将 ...

  5. keepalived高可用集群实战项目

    keepalived高可用集群实战项目 需要准备17台虚拟机 目录 客户端 路由器 powerDNS 防火墙 时间同步服务器 keepalived + LVS集群实现web服务高可用 配置web_A与 ...

  6. 【7W字长文】使用LVS+Keepalived实现Nginx高可用,一文搞懂Nginx

    往期文章一览 分布式会话与单点登录SSO系统CAS,包含完整示例代码实现 [15W字长文]主从复制高可用Redis集群,完整包含Redis所有知识点 使用LVS+Keepalived实现Nginx高可 ...

  7. corosync+pacemaker高可用

    简介   说到高可用,我们可能会用heartbeat和keepalived,也可能会用corosync+pacemaker,但他们之间有什么区别呢?我们在此主要谈下heartbeat和corosync ...

  8. Pacemaker+Corosync+Mfs+Iscsi+Fence实现高可用和Fence管理

    前言: 分布式文件系统(DIstributed File System)     时值文件系统管理的物理存储资源不一定直接连接在本地 的节点上,而是通过计算机网络与节点相连,简单的来讲,就是把一些分散 ...

  9. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

最新文章

  1. 亚洲首获奖!清华大学团队获ACM SIGCOMM 2021唯一最佳学生论文奖
  2. python基础知识~ 函数详解2
  3. 【城市沙龙】LiveVideoStack Meet|杭州:多媒体新黄金时代
  4. echarts 堆叠柱状图3d效果_【python可视化】:pyecharts:柱形图、堆叠条形图、极坐标堆叠柱形图、极坐标堆叠分类条形图...
  5. ajax17,17个使用AJAX技术的数据表格控件
  6. SCOM Rule 介绍 [SCOM中文系列之六]
  7. SpringBoot 多种定时任务实现方式
  8. 高级教师和一级教师最大的差异是什么?
  9. micropython入门教程-【chocho教程】micropython入门教程一
  10. [转载] python 函数参数类型检查
  11. Gridlayout
  12. Springboot的工作机制:1 Springboot初体验
  13. 作用JavaScript访问和操作数据库
  14. int i=-20; unsigned int j = 10; i+j;的问题
  15. ggplot制作条形图
  16. python做学生管理系统数据库模型_数据库建模:学生信息系统搭建实验
  17. c语言寄存器头文件共用重复定义,C语言头文件的使用
  18. 设置数字和字符串的格式(已更新)
  19. 计算机英语阅读教程翻译,e英语教程2 unit3 passageA 阅读 翻译及分析
  20. 六大云端 Jupyter Notebook 平台测评

热门文章

  1. cf edu #132 Div.2
  2. python 优劣解距离法(TOPSIS)
  3. win10默认安装路径修改_解放C盘!2种方法教你修改默认安装目录!
  4. 怎样进入加密的qq空间查看相册
  5. 论强势文化的属性---来自心灵的呼唤
  6. 【春招尾声】程序员の井沿理论
  7. 深度剖析ROC曲线以及AUC指标
  8. 机器学习之MATLAB代码--CEEMDAN+EEMD+EMD+VMD+IMF重构络(十八)
  9. C#连接sqlserver数据库,插入数据,并且读取数据库数据画折线图。
  10. 如何用一个鼠标控制多台电脑?