精华内容
下载资源
问答
  • 2020-10-31 15:57:19

    一. LVS 介绍

    1.LVS 是 Linux Virtual Server的简称,也就是 Linux 虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是**www.linuxvirtualserver.org。**现在LVS已经是 Linux标准内核的一部分,因此性能较高。

    2.LVS软件作用:通过LVS提供的负载均衡技术实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。
    二.LVS 优势与不足
    1.优势
    高并发连接:LVS基于内核工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。
    稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。

    成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。

    配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。

    支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用

    支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。

    应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等

    2、不足

    工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。
    三.LVS 核心组件和专业术语

    1. 核心组件

    LVS的管理工具和内核模块 ipvsadm/ipvs

    ipvsadm:用户空间的命令行工具,用于管理集群服务及集群服务上的RS等;

    ipvs:工作于内核上的程序,可根据用户定义的集群实现请求转发;
    2.专业术语

    **VS**:Virtual Server            #虚拟服务
    
    **Director, Balancer**          #负载均衡器、分发器
    
    **RS**:Real Server                #后端请求处理服务器 
    
    **CIP**: Client IP                      #用户端IP
    
    **VIP**:Director Virtual IP   #负载均衡器虚拟IP
    
    **DIP**:Director IP               #负载均衡器真实IP
    
    **RIP**:Real Server IP         #后端请求处理服务器IP
    

    3.图示
    在这里插入图片描述

     LVS工作内核模型
    
    1.当客户端的请求到达负载均衡器的内核空间时,首先会到达 PREROUTING 链。
    
    2. 当内核发现请求数据包的目的地址是本机时,将数据包送往 INPUT 链。
    
    3. LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将被放行至用户空间。
    
    4. 如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。
    
    5. 最后经由POSTROUTING链发往后端服务器。
    

    LVS负载均衡四种工作模式

    LVS/NAT:网络地址转换模式,进站/出站的数据流量经过分发器(IP负载均衡,他修改的是IP地址) 
     --利用三层功能
    LVS/DR  :直接路由模式,只有进站的数据流量经过分发器(数据链路层负载均衡,
    因为他修改的是目的mac地址)--利用二层功能mac地址
    LVS/TUN: 隧道模式,只有进站的数据流量经过分发器
    LVS/full-nat:双向转换:通过请求报文的源地址为DIP,目标为RIP来实现转发:
    对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发
    

    四.LVS 四种工作模式原理、以及优缺点比较
    1.NAT模式(LVS-NAT)

     原理:就是把客户端发来的数据包的IP头的目的地址,
     在负载均衡器上换成其中一台RS的IP地址,
     转发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,
     负载均衡器再把数据包的源IP地址改为自己的IP,将目的地址改为客户端IP地址即可。
     期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。
      优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。
      缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,
      负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。
      当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!
    

    在这里插入图片描述 2、直接路由(Direct Routing)模式(LVS-DR)

      原理:负载均衡器和RS都使用同一个IP对外服务。
      但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。
      也就是说,网关会把对这个服务IP的请求全部定向给DR,
      而DR收到数据包后根据调度算法,找出对应的RS,
      把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS。
      这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,
      则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。
        优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,
        应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,
        因此可以使用大多数操作系统做为物理服务器。
        缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。
    

    在这里插入图片描述
    3.IP隧道(Tunnel)模式(VS-TUN)

     原理:互联网上的大多Internet服务的请求包很短小,而应答包通常很大。
     那么隧道模式就是,把客户端发来的数据包,
     封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,
     还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。
     注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。
     所以,在RS的内核中,必须编译支持IPTUNNEL这个选项
    ​    优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。
    所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,
    就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。
    而且跑在公网上就能进行不同地域的分发。
    ​    缺点:隧道模式的RS节点需要合法IP,
    这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,
    服务器可能只局限在部分Linux系统上。
    

    在这里插入图片描述
    4、FULL-NAT模式

    原理:客户端对VIP发起请求,Director接过请求发现是请求后端服务。
    Direcrot对请求报文做full-nat,把源ip改为Dip,
    把目标ip转换为任意后端RS的rip,然后发往后端,
    rs接到请求后,进行响应,相应源ip为Rip目标ip还是DIP,
    又内部路由路由到Director,Director接到响应报文,进行full-nat。将源地址为VIP,目标地址改为CIP
    
    请求使用DNAT,响应使用SNAT
    
    lvs-fullnat(双向转换)
    
    通过请求报文的源地址为DIP,目标为RIP来实现转发:对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发:
    
    ​          CIP --> DIP           VIP --> RIP
    
    ​	  RIP --> VIP    	DIP-->CIP
    

    5.四者的区别

    lvs-nat与lvs-fullnat:请求和响应报文都经由Director
    
         lvs-nat:RIP的网关要指向DIP
    
         lvs-fullnat:双向转换
    
    lvs-dr与lvs-tun:请求报文要经由Director,但响应报文由RS直接发往Client
    
         lvs-dr:通过封装新的MAC首部实现,通过MAC网络转发
    
         lvs-tun:通过在原IP报文外封装新IP头实现转发,支持远距离通信 
    

    五.LVS ipvsadm 命令的使用
    1.LVS-server安装lvs管理软件

    yum -y install ipvsadm
    程序包:ipvsadm(LVS管理工具)
    
    主程序:/usr/sbin/ipvsadm
    
    规则保存工具:/usr/sbin/ipvsadm-save  > /path/to/file
    
    配置文件:/etc/sysconfig/ipvsadm-config
    

    2、命令选项

    -A --add-service #在服务器列表中新添加一条新的虚拟服务器记录
    -t #表示为tcp服务
    -u #表示为udp服务
    -s --scheduler #使用的调度算法, rr | wrr | lc | wlc | lblb | lblcr | dh | sh | sed | nq 默认调度算法是 wlc
    例:ipvsadm -A -t 192.168.1.2:80 -s wrr
    
    -a --add-server  #在服务器表中添加一条新的真实主机记录
    -t --tcp-service #说明虚拟服务器提供tcp服务
    -u --udp-service #说明虚拟服务器提供udp服务
    -r --real-server #真实服务器地址
    -m --masquerading #指定LVS工作模式为NAT模式
    -w --weight #真实服务器的权值
    -g --gatewaying #指定LVS工作模式为直接路由器模式(也是LVS默认的模式)
    -i --ip #指定LVS的工作模式为隧道模式
    -p #会话保持时间,定义流量呗转到同一个realserver的会话存留时间
    例:ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.10:80 -m -w 1
    
    -E -edit-service #编辑内核虚拟服务器表中的一条虚拟服务器记录。
    -D -delete-service #删除内核虚拟服务器表中的一条虚拟服务器记录。
    -C -clear #清除内核虚拟服务器表中的所有记录。
    -R -restore #恢复虚拟服务器规则
    -S -save #保存虚拟服务器规则到标准输出,输出为-R 选项可读的格式
    -e -edit-server #编辑一条虚拟服务器记录中的某条真实服务器记录
    -d -delete-server #删除一条虚拟服务器记录中的某条真实服务器记录
    -L|-l –list #显示内核虚拟服务器表
    
    --numeric, -n:#以数字形式输出地址和端口号
    --exact: #扩展信息,精确值 
    --connection,-c: #当前IPVS连接输出
    --stats: #统计信息
    --rate : #输出速率信息
    
    参数也可以从/proc/net/ip_vs*映射文件中查看
    -Z –zero #虚拟服务表计数器清零(清空当前的连接数量等)
    

    六.LVS 负载均衡集群企业级应用实战
    环境准备
    1.准备虚拟机
    准备 3 台纯净的虚拟机,两台 web 服务器
    2.LVS-server 安装lvs管理软件

    [root@lvs-server ~]# yum -y install ipvsadm
    程序包:ipvsadm(LVS管理工具)
    
    主程序:/usr/sbin/ipvsadm
    
    规则保存工具:/usr/sbin/ipvsadm-save > /path/to/file
    
    配置文件:/etc/sysconfig/ipvsadm-config
    

    3.LVS/DR 模式

    实验说明:
    1.网络使用NAT模式
    2.DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域
    3.所有节点网关均指定真实网关
    LVS/DR模式实施(部署)
    1.准备工作(集群中所有主机)关闭防火墙和selinux以及域名解析

    
    
    更多相关内容
  • Linux&&LVS负载均衡群集

    2021-01-09 12:56:43
    Linux&&LVS负载均衡群集概念群集的类型负载均衡的分层结构负载均衡的工作模式环境部署(NAT模式)负载调度器部署启动ip_vs模块LVS的负载调度算法使用ipvsadm管理工具NFS共享存储服务使用NFS发布共享资源在客户机中...
  • lvs负载均衡

    2021-01-20 12:41:35
    负载均衡 lvs 负责对数据进行转发 一次请求,一次响应 反向代理 nginx/haproxy 负责代替用户找数据,找到后再发送给用户 两次请求,两次响应 2. arp DNS 为域名解析,将域名解析为IP地址 arp协议 为地址解析协议 将...
  • lvs负载均衡集群
  • LVS负载均衡

    2015-03-06 23:07:02
    现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS...
  • LVS负载均衡介绍

    千次阅读 2021-11-18 08:30:19
    LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。 它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。 它易用,配置非常简单,且有多种负载.

     一、lvs是什么?

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。

    二、lvs的作用

    LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。
    它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。
    它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。
    另外可扩展性也非常好。

    因为lvs工作在网络层,所以相对于其他的负载均衡的解决办法(DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的)

    LVS的通过控制IP来实现负载均衡。IPVS是其具体的实现模块。

    三、lvs常见算法

    轮询调度RR:

      将外部请求按照顺序轮流分配到真实的服务器上

    加权轮询WRR:

      根据真实服务器的不同处理能力来调度访问请求

    最少链接数LC:

      调度器通过最少连接调度算法动态的将网络请求调度到以建立的连接数最少的服务器上

    (两台服务器配置差不多时使用)

    加权最少连接WLC:

      优化负载的性能,较高权重的服务器将承受较大比例的活动连接负载

      (两台服务器 有一台比较弱时 可以使用)

    基于局部性的最少连接 LBLC:

      针对目标的IP地址的负载均衡,应用于cache集群上。会根据请求的目标IP地址找出该目标IP地址最近使用的服务器,如果该服务器是可用的没有超载,则将请求发送到服务器上,若服务器不存在,或服务器处于一半的工作负载,则用最少连接数选出一个服务器

    带复制的基于局部性的最少连接(locality-Based Least Connections with Replication)

    也是针对目标IP地址的负载均衡,用于cache集群。它与LBLC算法不同之处是它要维护的是从一个目标IP地址到一组服务器的映射,而LBLC算法维护的是从一个目标IP地址到一台服务器的映射。

    目标地址散列(Destination IP Hashing)
        目标地址散列调度算法根据请求的目标IP地址,作为散列键(Hash KEY)从静态分配的散列表中找出对应的服务器,若服务器是可用的且未超载,则请求发送到该服务器,否则返回空。

    源地址散列

      根据请求的源IP地址,作为散列键从静态分配的散列表中找出对应的服务器,若服务器是可用的且未超载,则请求发送到该服务器,否则返回空。

    源IP端口散列  

       通过hash函数将来自用一个源IP地址和源端口号的请求映射到后端同一台服务器上。

       (适合按服务的类型分类)

    随机

      随机地将请求分发到不同的服务器上

      典型的负载均衡集群中,包括三层次的组件,前端至少一个负载均衡调度器(LB)负责相应并发来自客户端的访问请求;后端有大量真实服务器构成服务池(server pool)提供实际的应用服务

    透明性 一致性和伸缩性

    第一层:

    负载调度器,这是访问整个集群系统唯一入口,对外使用所有服务器共有VIP,也称为集群IP,通常会配置主备两台调度器实现热备份。

    第二层:

       服务器池,集群符提供的应用服务,由服务器池承担。每个节点具有独立的真实IP,只处理调度器分发过来的客户机请求。当某个节点失效时,负载调度器的容错机制会将它隔离,等排出错误后,在从新纳入服务器池

    第三层:

      共享存储,为服务池中的所有节点提供稳定的,一致的文件存取服务,保证整个集群的统一性

    工作模式: 调度技术可以基于IP、端口、内容进行分发。基于IP的效率最高。常见的有三种,地址转换、IP隧道和直接路由。

      地址转换:

    简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,及作为客户机的访问入口,也是各个节点回应客户机的访问出口。服务器节点使用的是私有IP地址

     

     

    IP隧道:

    简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器。服务器节点分散在不同的位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信。

     

     

    直接路由:

    简称DR模式,采用半开放式网络结构,与TUN模式的结构类似,但是节点并不是分散的,而是与调度器位于同一物理网络。通过本地网络连接,不需要建立专用IP隧道。

         dr模式

     LVS集群的管理工作主要包括创建虚拟服务器、添加服务器节点、查看集群节点状态、删除服务器节点和保存负载分配策略

    展开全文
  • LVS负载均衡器的原理简单介绍

    千次阅读 2022-02-14 16:59:34
    LVS(Linux Virtual Server)Linux虚拟服务器,通过虚拟IP来接受请求,通过一定的方法(由LVS的模式决定)转发到对应的real server(RS)实际服务器,达到流量分发、负载均衡的目的。该项目是由我国的章文嵩博士主导...

    LVS(Linux Virtual Server)Linux虚拟服务器,通过虚拟IP来接受请求,通过一定的方法(由LVS的模式决定)转发到对应的real server(RS)实际服务器,达到流量分发、负载均衡的目的。该项目是由我国的章文嵩博士主导立意的项目。

    原理

    LVS的负载均衡是基于底层IP协议来实现的,所以在了解其原理前,需要对计算机网络有一定的认知,OSI七层模型,已经个层的作用。
    在这里插入图片描述
    LVS的实现只用到了OSI的底三层,不同的LVS模式,采用的方法不同。由于LVS的转发只涉及到OSI的底层协议。如TCP协议通讯,LVS不与client端建立TCP连接(可以理解成省去了TCP的三次握手),直接与real server建立连接,LVS只做数据包的转发。对比传统的七层,作用于应用层的负载均衡器(如Nginx)有着显著的性能优势。
    有很多互联网公司,当在Nginx压力过大的情况下,都再用在Nginx的http服务器前面会搭建一个LVS负载均衡器来提升系统在并发情况下的高可用性。
    在这里插入图片描述

    LVS有三种工作模式:

    • 直接路由模式(DR)
    • 地址转换模式(NAT)
    • IP隧道模式(TUN)
      在后面继续聊LVS前,必需先了解相关专业术语。客户端(浏览器)ip地址CIP;LVS服务器需要提供两个IP地址,一个是虚拟IP地址,即客户端访问的IP地址(VIP),另外一个是LVS服务器对内网的真是IP地址(DIP);然后真实应用服务器也需要提供两个IP地址,一个是本机的局域网IP地址(RIP),然后还需要提供一个与VIP保持一致的虚拟IP地址(RVIP)。
      CIP:客户端地址,为源IP;
      VIP:也就是虚拟系统的对外IP,用户接受客户端请求的。
      DIP:LVS服务器所在局域网的主机IP地址,用来再局域网中地址通讯的。
      RIP:真实服务器的局域网IP地址,用户局域网内的主机路由;
      RVIP:真实服务器VIP,与LVS的VIP相同。用于处理目标IP为VIP的请求,该VIP需要对外不可见,不然会与本局域网的LVS的VIP地址冲突,可以修改linux内核ARP协议参数,来达到该IP对主机可见,但是对外不可见的目的。(ARP协议主要用于定位目标IP的mac地址)。

    直接路由模式

    直接路由模式,也是企业中用得最多的一种模式,由LVS来hold流量,然后转发连接请求到RServer,然后又RS处理并返回对应的处理结果到源IP(客户端)。结构图如图所示:
    在这里插入图片描述
    在用户请求过来时,达到LVS服务器,然后LVS通过相应的负载均衡算法,在不修改数据报文的情况下,将mac地址修改为对应真实服务器的mac地址。由真实服务器处理完数据包后,直接返回数据包到CIP,由于真实服务器具备VIP的网络接口能力,所以返回数据包的源地址可以是VIP,这样客户端CIP就能正常的处理。在计算机网络中,如果返回数据包的目标IP、源IP与请求数据包源IP、目标IP不一致,则会导致客户端不会处理该返回数据包,会直接丢弃。
    这里有个疑问点:为什么LVS能找到真实服务器的mac地址呢?
    首先得明白IP协议路由的原理,通过目标IP地址与本机的路由规则表进行掩码的与运算,得到下一跳的IP地址。ARP地址广播协议会使各主机保存自己路由表中相关IP地址的MAC地址,然后通过mac地址直接进行网络连接发送数据包。
    这里LVS就是通过拦截客户端访问的IP:PORT来与自己的IPVS配置进行判断,如果出发拦截则进行负载均衡的计算,得到真实的目标IP,再通过主机的ARP协议得到真实服务器的MAC地址,通过修改数据包的MAC地址来达到下一次将数据包发送到对应的真实服务器上。这种手段,在计算机网络中又叫做MAC欺骗

    优点:

    • 真实服务器响应数据包不需要通过LVS服务器转发,在网络带宽上效率是最优的。

    缺点:

    • 从LVS到真实服务器是通过MAC欺骗来实现的,所以在IP路由上只能伪装到下一跳MAC地址,这也就表明了LVS服务器与真实服务器需要处理统一局域网内,两者之间只能有一跳的距离。

    地址转换模式

    地址转换模式,与SNAT有点相似,都是对地址进行转换,从而使得网络中各数据包能够正常的传递。
    在这里插入图片描述
    CIP请求到LVS服务器后,首先是对CIP请求的ip地址和端口进行拦截,符合拦截规则的话则进行负载均衡,确定好某一台RS的IP后,将数据包中目标地址转换成RS的IP地址,在将该数据包通过IP路由规则转发给对应的下一跳主机。对于响应数据包,同样的线响应到LVS服务器,然后LVS对相应数据包的源地址进行修改,修改成LVS服务器的VIP地址,这样保证的数据包发送与处理的安全可靠性。
    RS真实服务器或者LVS到RS整个链路中需要具备能使得RS的响应数据包能到转发LVS服务器上,然后又LVS服务器进行源地址的转换。

    优点:

    • RS与LVS可以跨局域网部署,伸缩性强。很多人都说NAT不能跨子网部署,其实是能实现的,只是在同一子网内,部署起来很简单,RS只需要修改默认公网网关就行,返回数据包先到LVS服务器再由LVS服务器走子网网关出去。

    缺点:

    • 缺点很明显,就是请求数据包和相应数据包都走LVS,这样LVS的网络IO的压力将非常大,同事网络带宽也成为了主要瓶颈。

    IP隧道模式

    隧道模式是中和前面两种模式的优缺点。我们都知道DR模式不能跨局域网,而NAT模式LVS的性能存在瓶颈。所以TUN模式就需要做到返回数据包不用路由到LVS服务器,能使用到DR模式的有真是服务器直接返回给客户端;同时TUN模式也需要兼顾NAT模式的跨局域网的能力。这就有了IP隧道模式,即开辟一条LVS到真是服务器的IP隧道(有点类似一些VPN的实现)。
    在这里插入图片描述
    原理是由LVS拦截对应的请求后,用一个新的请求头包含住原来的请求数据包,新的请求头目标IP设置为某台真实服务器IP。那么就需要建立一条LVS与RS的IP隧道,使得新的数据包能根据现有网络的路由规则最后到达RS服务器上,然后RS进行处理。这样就具备了跨子网部署的能力
    真实服务器RS就需要具备VIP的相应网络接口用来处理源IP为CIP目标IP为VIP的数据包。处理完成后后RS的VIP网络接口将相应数据包发送回CIP。这样相应数据包就与CIP客户端直连了具备DR模式的能力
    优点:

    • 这就不需要多说了,同时兼备了NAT和DR的能力。

    缺点:

    • 需要所有服务器需要具备IP隧道的能力,即RS节点需要合法IP(LVS肯定有合法IP),这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

    三种模式的总结

    不管是使用哪种模式总有一定的局限性,具体还得根据自身业务来做规划。在搭建LVS的时候,DR、TUN需要真实服务器虚拟一个IP与LVS的VIP保持一致,且需要修改arp参数来对外隐藏,NAT需要RS或者RS到LVSIP路有中具备定向路由回LVS服务器上来做源地址的切换(NAT这个问题可以采用FULLNAT解决,即LVS上源地址和目标地址全换,那么从RS回来的数据包则不需要做定向路由到LVS上了)。
    采用LVS虽然一定程度上解决了流量压力大的问题(太大也hold不住,单台服务器始终存在瓶颈),但是LVS部署起来的成本还是很高的,且LVS既然是单台服务器就肯定会存在单点问题(服务器宕机)。生产上一般可以用keepalived采用主备的形式来保证高可用。当主LVS宕机时,备机上的keepalived就会将LVS的VIP漂移到备机上来,这样内部应用还是可以用的。

    展开全文
  • LVS 负载均衡配置参考

    2018-01-31 11:15:24
    LVS (Linux Virtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和 基于内容请求分发技术。
  • LVS负载均衡之DR模式

    2022-01-19 18:37:44
    LVS负载均衡之DR模式 一、LVS-DR数据包流量分析 客户端向目标VIP发送请求,负载均衡器接收 负载均衡器根据负载均衡算法选择后端真实服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为后端真实服务器的...

    LVS负载均衡之DR模式

    一、LVS-DR数据包流量分析

    1. 客户端向目标VIP发送请求,负载均衡器接收

    2. 负载均衡器根据负载均衡算法选择后端真实服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改为后端真实服务器的MAC地址,然后在局域网上发送

    3. 后端真实服务器收到这个帧,解封装后发现目标IP与本机匹配(事先绑定了VIP),于是处理这个报文。随后重新封装报文,将响应报文通过lo接口传送给物理网卡然后向外发出

    4. 客户端将收到回复报文。客户端认为得到正常的服务,而不会知道是哪一台服务器处理的

    5. 如果跨网段,则报文通过路由器经由 internet 返回给用户

    二、LVS-DR中的ARP问题

    1. 在LVS-DR负载均衡集样中,负载均衡与节点服务器都要配置相同的VIP地址。

    2. 在局域网中具有相同的IP地址,势必会造成各服务器ARP通信的紊乱。

    当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同网络上,它们都会接收到ARP广播。只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播。

    1. 对节点服务器进行处理,使其不响应针对VIP的ARP请求。

    使用虚接口 lo:0 承载VIP地址设置内核参数 arp_ignore=1:系统只响应目的IP为本地 IP 的ARP请求

    1. RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址。

    2. 发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址如:ens33

    3. 路由器收到ARP请求后,将更新ARP表项

    4. 原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址

    5. 路由器根据ARP表项,会将新来的请求报文转发给Realserver,导致Director的VIP失效

    解决方法:解决方法:对节点服务器进行处理,设置内核参数 arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。

    解决ARP的两个问题的设置方法
    修改 /etc/sysctl.conf 文件
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    

    三、LVS-DR 特性

    • Director Server和Real Server必须在同一-个物理网络中。
    • Real Server可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP进行直接访问。
    • Director Server作为群集的访问入口,但不作为网关使用。
    • 所有的请求报文经由Director Server,但回复响应报文不能经过Director Server
    • Real Server的网关不允许指向Director Server IP,即Real Server发送的数据包不允许经过Director Server。
    • Real Server上的10接口配置VIP的IP地址。

    四、LVS负载均衡DR模式部署

    1. DR服务器
    systemctl stop firewalld
    setenforce 0
    modprobe ip_vs
    cat /proc/net/ip_vs
    
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    
    

    cp ifcfg-ens33 ifcfg-ens33:0
    在这里插入图片描述

    ifup ifcfg-ens33:0
    

    vim/etc/sysctl.conf

    在这里插入图片描述

    [root@localhost network-scripts]# sysctl -p
    net.ipv4.ip_forward = 0
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    [root@localhost network-scripts]# yum install -y ipvsadm
    [root@localhost network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm
    [root@localhost network-scripts]# systemctl start ipvsadm
    [root@localhost network-scripts]# ipvsadm -C
    [root@localhost network-scripts]# ipvsadm -A -t 192.168.86.188:80 -s rr -p 10
    [root@localhost network-scripts]# ipvsadm -a -t 192.168.86.188:80 -r 192.168.86.40:80 -g
    [root@localhost network-scripts]# ipvsadm -a -t 192.168.86.188:80 -r 192.168.86.50:80 -g
    
    

    ipvsadm

    在这里插入图片描述

    1. web1服务器
    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# setenforce 0
    [root@localhost ~]# yum -y install httpd
    [root@localhost ~]# cd /etc/sysconfig/network-scripts
    [root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
    

    vim ifcfg-lo:0
    在这里插入图片描述

    [root@localhost network-scripts]# ifup lo:0
    [root@localhost network-scripts]# route add -host 192.168.86.188 dev lo:0
    [root@localhost network-scripts]# route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.86.2    0.0.0.0         UG    100    0        0 ens33
    192.168.86.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
    192.168.86.188  0.0.0.0         255.255.255.255 UH    0      0        0 lo
    192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 vi
    
    [root@localhost network-scripts]# cd /etc/rc.d
    [root@localhost rc.d]# vim rc.local
    
    

    在这里插入图片描述

    [root@localhost rc.d]# chmod +x /etc/rc.d/rc.local
    [root@localhost rc.d]# vim /etc/sysctl.conf
    

    在这里插入图片描述

    [root@localhost rc.d]# sysctl -p
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    [root@localhost rc.d]# cd /var/www/html
    [root@localhost html]# vim index.html
    [root@localhost html]# systemctl start httpd
    
    
    1. web2同web1同样配置,网页内容设不同

    2. 验证

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • Linux中级实战专题篇:LVS负载均衡集群部署
  • lvs负载均衡集群详解

    2017-10-24 15:55:36
    运维、系统工程师、架构工程师必备知识--lvs负载均衡集群详解
  • Linux之LVS负载均衡

    千次阅读 2022-04-02 09:01:15
    LVS负载均衡 企业中分为硬件和软件 硬件有公司f5 专门做负载均衡 产品叫big-IP,citrix,a10,redware 软件产品 lvs nginx haproxy perlbal httpd lvs支持的并发无极限 根据相应服务器性能决定 linux virtual ...
  • LVS群集详解 ...由国人章文嵩博士开发,通过LVS提供的负载均衡可实现一个高性能、高可用的服务器群集,从而以低成本实现最优的服务性能。 LVS 官网:http://www.linuxvirtualserver.org/ 阿里SLB...
  • 均衡负载压力到真实服务器(如apache)上.(2.检查后面真实服务器提供的服务是否正常.备份LVS用来监控主LVS和备份主服务器,在当故障出现时主LVS死机 fail掉了以后,就会启动自己来接管主LVS的工作。基中有一个叫Pu
  • LVS负载均衡器总结

    2021-02-23 23:17:37
    硬件:F5Big-IP,Citrix(思杰)Netscaler最常用,A10软件:LVS(4层):根据套接字来负载均衡。套接字=IP+端口Nginx(7层):更适合http,smtp,pop3,imap的负载均衡Haproxy(7层):根据用户请求的内容来调度。它支持4层和...
  • Linux企业运维——LVS负载均衡

    千次阅读 多人点赞 2021-07-21 12:33:41
    Linux企业运维——LVS负载均衡 (临时笔记,以后会详细修补) 文章目录Linux企业运维——LVS负载均衡1、LVS简介2、DR模式3、使用DR模式实现负载均衡4、问题解决5、LVS的10个调度算法简介 1、LVS简介 LVS(Linux ...
  • 文章目录集群简介集群的特点集群的分类负载均衡负载均衡集群技术的实现负载均衡分类四层负载均衡(基于IP+端口的负载均衡)七层的负载均衡(基于...LVS优缺点LVS 核心组件和专业术语LVS负载均衡四种工作模式NAT模式(VS...
  • Centos7搭建LVS负载均衡

    2020-09-02 21:07:47
    主机:192.168.111.51备机:192.168.111.52LVS VIP: 192.168.111.50 1、基础软件包 yum -y install gcc gcc-c++ make popt popt-devel libnl libnl-devel popt-static openssl-devel kernel-devel 建立一个内核...
  • 该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该...
  • [root@lvs-server ~] · 192.168.13.129 负载均衡器 [root@real-server1 ~] 192.168.13.133 第一台真实服务器 [root@real-server2 ~] 192.168.13.137 第二台真实服务器 2、LVS-server 安装lvs管理软件 [root@...
  • 1、负载均衡群集 (1)群集的概述 ■根据群集所针对的目标差异,可分为三种类型 ●负载均衡群集 ●高可用群集 ●高性能运算群集 ■负载均衡群集(load balance cluster) ●提高医用系统的响应能力、尽可能...
  • LVS负载均衡-集群搭建

    2021-07-19 16:12:48
    lvs 负载均衡根据目标地址和目标端口实现用户请求转发,本身不产生流量,只做用户请求转发,目前是负载均衡性能最好的集群系统。 2、实现虚拟网络服务的主要技术中,IP负载均衡技术是在负载调度器的实现技术中效率...
  • LVS调度算法 4种静态算法: 动态算法: LVS会“偷窥”真实服务器的最小连接数 LVS配置 LINUX的ipvs模块集成了LVS,但是只是系统调用 要想使用LVS,需要安装一个用户空间程序 ipvsadm 需要定义进来的和出去的...
  • lvs负载均衡源码

    2018-07-11 23:13:09
    lvs负载均衡源码,非常好,代码非常全面,简介,还有文档,说明
  • LVS负载均衡服务器.pdf

    2020-11-21 22:26:56
    介绍LVS负载均衡服务器搭建,这是基于Web服务器的负载均衡,搭建过程也非常简单。介绍各种方式的负载方案,配置直接使用。
  • 指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc) -a 表示添加真实服务器(节点服务器) -d 删除某一个节点 -t 指定 VIP地址及 TCP端口 -r 指定 RIP地址及 TCP端口 -m 表示...
  • LVS负载均衡理论以及算法概要

    千次阅读 2022-03-29 14:28:42
    LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 由章文嵩博士发起的自由软件项目,通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,647
精华内容 22,258
关键字:

lvs负载均衡