LVS的赘述

  1. IPVS,ipvs ,ip_vs是负载均衡器中的内核代码
  2. LVS是完整的负载均衡器+后端服务器。这些组件组成了虚拟服务器。

LVS是一个4层负载均衡方案,标准的客户端-服务器网络语义也被保留下来了。每个客户端都认为直接连接到了后端服务器,同时后端服务器也认为直接连接到了客户端。客户端和后端服务器没有办法获知负载均衡器干预了网络连接。负载均衡器不会检查包的内容,不能够根据包的内容做出负载均衡的判断(例如包里面包含了cookie),LVS不是一个高性能计算集群或者分布式集群,后端服务器之间互相感知不到,不能够协同工作。

为什么要有LVS?

  1. 为了更高的吞吐量。在LVS里面,添加后端服务器的成本是线性的,但是如果采用替换替换为更高端单一的服务器达到相同的效果,成本会高很多,前者是横向扩展(scale out),后者是纵向扩展(scale up)
  2. 为了冗余。后端服务器可以从LVS上被管理员提出,然后做其他相关的服务器操作。
  3. 为了适应性。如果吞吐量被评为逐步增加的,或者事件性陡增,后端服务器的增加可以对用户透明。

LVS的三中各模式

LVS有三种模式:LVS-NAT,LVS-DR,LVS-TUN。下面对说说每个模式。

LVS-NAT

NAT是LVS软件实现第一种转发模式,搭建一个LVS集群DR模式的话,是最简单的,因为不需要对后端服务器做任何设置上的变更。LVS-NAT其实也是基于NAT技术的,网络数据流如下:

  1. LB收到client的请求后,改写目的IP地址为后端服务器真实IP和端口号,转发给后端服务器。
  2. 后端服务器处理完成后,回复给负载均衡器。
  3. 负载均衡服务器改写源IP为虚拟IP(其实就是LVS的ip),发送给客户端。

    如图所示:

lvs在nat模式中,是有1个内网IP,还有1个外网IP的。所有后端服务器的网关都指向LVS的内网IP。

LVS-DR

DR是direct Routing的缩写,是直连路由的。

请求流程如下:

  1. client首先发起Arp 广播,请求LVS1的MAC地址,LVS回复client,告诉它自己的MAC地址。此时arp广播,所以mac地址都是0
  2. Client连接lvs的80端口,发送TCP SYN。此时数据包的目标mac地址是lvs1,目的IP也是lvs1的外网IP。
  3. 负载均衡器转发报文,在转发之前修改mac地址,把目标mac地址由LVS的改为后端服务器WEB1的。
  4. web服务器处理client的请求,此时MAC地址为web服务器的,目标IP也是。
  5. web服务器处理完请求,回包的给client,此时回包的目的MAC是client的mac,目的IP也是client,回包不需要经过lvs服务器了。

LVS-DR模式简要概括就是:client发起请求经过lvs调度后,后端服务器响应数据直接发回给客户端,不再经过LVS了。

流程图如下:

LVS-Tun

这是LVS原创的一种转发模式,基于LVS-DR。LVS把原始的包(源客户端IP到虚拟IP)封装成ipip包,目的IP地址就是后端服务器的真实IP,然后进入OUTPUT链,并路由到后端服务器。后端服务器解封ipip包并处理,以源地址虚拟IP,目的地址客户端IP直接回复给客户端。这种模式就是为了解决服务器和负载均衡器不在同一个物理区域设计的(也就是跨网段)

3种模式对比

  • 从后端服务器要求来看,LVS-NAT只需要把后端服务器网关指向负载均衡器的内网地址,无任何其它的要求;LVS-DR模式要求后端服务器禁用对虚拟IP的arp响应。后端服务器的网关不指向LVS;LVS-Tun要求后端服务器支持ipip解封包,部分操作系统不支持。
  • 从吞吐量上来看,LVS-DR最高,LVS-NAT最低。
  • 从配置项来看,LVS-NAT最简单,其他两个比较复杂。

高可用与负载均衡(6)之聊聊LVS的三种模式的更多相关文章

  1. 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案

    今天直接开门见山了,直接说配置吧.首先介绍下我这的环境 如有问题,请联系我18500777133@sina.cn IP 安装软件 192.168.1.7 lvs1+keepalived master角 ...

  2. Mycat - 高可用与负载均衡实现,满满的干货!

    前言 开心一刻 和朋友去吃小龙虾,隔壁桌一个小女孩问妈妈:"妈妈,小龙虾回不了家,它妈妈会不会着急?" 她妈妈愣住了,我扒虾的手停下了,这么善良的问题,怎么下得了口.这是老板急忙过 ...

  3. Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...

  4. PostgreSQL 9.5 高可用、负载均衡和复制

    高可用.负载均衡和复制 1. 不同方案的比较 共享磁盘故障转移 共享磁盘故障转移避免了只使用一份数据库拷贝带来的同步开销. 它使用一个由多个服务器共享的单一磁盘阵列.文件系统(块设备)复制 DRBD是 ...

  5. Mysql读写分离 及高可用高性能负载均衡实现

    什么是读写分离,说白了就是mysql服务器读的操作和写的操作是分开的,当然这个需要两台服务器,master负责写,slave负责读,当然我们可以使用多个slave,这样我们也实现了简单意义上的高可用和 ...

  6. 搭建Keepalived+LNMP架构web动态博客 实现高可用与负载均衡

    环境准备: 192.168.193.80  node1 192.168.193.81 node2 关闭防火墙 [root@node1 ~]# systemctl stop firewalld #两台都 ...

  7. Dubbo入门到精通学习笔记(十六):Keepalived+Nginx实现高可用Web负载均衡

    文章目录 Keepalived+Nginx实现高可用Web负载均衡 Keepalived+Nginx实现高可用Web负载均衡 高可用架构篇 Keepalived + Nginx 实现高可用 Web 负 ...

  8. EMQ集群搭建实现高可用和负载均衡(百万级设备连接)

    一.EMQ集群搭建实现高可用和负载均衡 架构服务器规划 服务器IP 部署业务 作用 192.168.81.13 EMQTTD EMQ集群 192.168.81.22 EMQTTD EMQ集群 192. ...

  9. Keepalived + Nginx 实现高可用 Web 负载均衡

    一.Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前 ...

随机推荐

  1. 再记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)

    在此之前项目有发生过两次类似的状况,都得以解决,但最近又会发现偶尔CPU会跑满,虽然之前使用过WinDbg解决过两次问题但人的记忆是不可靠的,今天处理同样问题的时候还是遇到了一些障碍,这一次希望可以记 ...

  2. P值,“差异具有显著性”和“具有显著差异”

      P值是论文中最常用的一个统计学指标,可是其误用.解释错误的现象却很常见.因此,很有必要说明p值的意义.用法及常见错误.   P值指的是比较的两者的差别是由机遇所致的可能性大小.P值越小,越有理由认 ...

  3. java list随机打乱

    java list随机打乱package arrlist; import java.util.ArrayList; import java.util.Collections; import java. ...

  4. 将Table表格导出到Excel

    1.导出当前页 效果如下: 前台代码: @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta nam ...

  5. SWIFT--文档地址

    APPLE官方: https://developer.apple.com/library/prerelease/content/documentation/Swift/Conceptual/Swift ...

  6. Code.R团队展示

    团队成员: 031302620马凛凛(队长) 031302619吕昆明 031302319汪毓顺 031302404陈俊达 团队名称: Code.R 团队项目: 基于web的教师报课系统 团队成员风采 ...

  7. java定时器

    package com.lid;            import java.util.Calendar;      import java.util.Date;      import java. ...

  8. FastFDFS_Jave客户端调用(亲测可用)

    一.配置文件(fdfs_client.properties) 1 2 3 4 5 6 7 8 9 10 connect_timeout = 30 network_timeout = 60 charse ...

  9. 【BZOJ 1492】【NOI 2007】货币兑换Cash

    这是道CDQ分治的例题: $O(n^2)$的DP: f [1]←S* Rate[1] / (A[1] * Rate[1] + B[1]) Ans←SFor i ← 2 to n For j ←1 to ...

  10. 【BZOJ 3809】Gty的二逼妹子序列

    这个莫队如果用线段树来维护的话,复杂度是$O(n\sqrt{n}logn+qlogn)$ 很明显,可以看出来莫队每次$O(1)$的移动因为套上了线段树变成了$O(logn)$,但莫队移动的总数是非常大 ...