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. 【转】The Google File System 中文版
  2. python里遍历筛选xml文件_python xml.etree.ElementTree遍历xml所有节点实例详解
  3. MATLAB 添加自定义的模块到simulink库浏览器
  4. XCTF WEB xff_referer
  5. Spring Schedule配置及初始化
  6. Qt工作笔记-对qmake的认识【两篇转载结合】
  7. C#~异步编程再续~你必须要知道的ThreadPool里的throw
  8. 【XXE】XXE漏洞攻击与防御
  9. 特斯拉2020年第三季度共生产14.5万辆汽车 交付约14万辆
  10. 怎样在ppt中加入随机抽号_潮流女生怎样穿更时髦?经典中加入个性,减龄时尚还高级,快入坑...
  11. centos7 怎么封装自己的镜像_在Centos7系统上制作一个7系的Docker镜像
  12. java编译过程_java 程序编译和运行过程详解
  13. 论文复现:土卫六(Titan)大气参数计算
  14. 计算机硬盘容量1t,硬盘1tb等于多少gb 硬盘容量计算公式
  15. Diango+Vue+mysql开发数据看板视图
  16. android,adb相关
  17. [WP]第五届XMan选拔赛web
  18. 反映百度引擎权重的身分都有哪些
  19. 免费ftp服务器软件,实用的3款免费ftp服务器软件
  20. springboot项目多moudle打包到一个jar

热门文章

  1. c++操作xml文件
  2. 2021/3/6 OJ每日一题 小媛在努力
  3. kaptcha验证码使用
  4. Python抓取图片
  5. oracle 1555错误,日志ORA-1555错误解决
  6. 看完这篇让你高数不挂科之——泰勒公式
  7. lcd驱动分析(读书笔记)
  8. 【华为OD机试真题 java、python、c++】机房布局【2022 Q4 200分】
  9. js中Generator函数详解
  10. Jackson - 将 JSON字符串转换为 List