首页 > 其他分享 >LVS负载均衡

LVS负载均衡

时间:2023-12-23 10:03:08浏览次数:21  
标签:负载 请求 LVS -- ipvsadm 调度 均衡 服务器

LVS(Linux virtual Server)

简介

​ Linux虚拟服务器。

原理

​ 在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如下所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器。

LVS的三种工作模式

基于NAT的LVS模式负载均衡

​ Nat(网络地址转换),使用两块网卡,一块网卡与内部网络通过交换机连接,另一块做为外网ip与外网连通。

​ 数据访问方向:用户通过互联网,访问LVS的外网ip,发送请求到VIP,LVS收到请求,通过算法调度后面的web服务器,转发请求到web服务器,web服务器收到请求后,返回数据到LVS,LVS将源IP、源端口,修改为VIP和自身的端口,修改完成后将响应数据包,再发送给用户。

基于TUN的LVS负载均衡

​ LVS调度器与服务器建立真实连接,LVS调度器将数据封装,通过隧道发送给服务器,服务器收到请求的数据包后,将数据直接通过公网发送响应包给用户。

​ 如果后台服务器数量大于10台,通过NAT返回响应包,LVS调度器将会成为整个集群的瓶颈,而TUN模式下的LVS,则减少了LVS的工作量。

基于DR的LVS负载均衡

​ NAT和TUN的结合,LVS依然是通过NAT的方式将数据请求包发送到真实的服务器,然后与服务器共享VIP地址,服务器将响应包的源地址设为VIP地址,通过route的方式将响应数据包直接返回给用户。

三种模式对比

LVS负载均衡调度算法

轮询调度

​ 依次循环的方式请求调度到不同的服务器。实现简单,

加权轮询调度

​ 根据服务器的性能,添加权值,权值越大,处理的请求越大。

最小连接调度

​ 把新的连接请求分配到当前连接数最小(处理请求最少)的服务器。

加权最小连接调度

​ 各个服务器相应的权值表示其处理性能。

基于局部的最少连接

​ 针对请求报文的目标IP地址的 负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群客户请求报文的目标IP地址是变化的。

带复制的基于局部性的最少连接

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

目标地址散列调度

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

源地址散列调度

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

最短的期望的延迟

​ 基于WLC算法。举个例子吧,ABC三台服务器的权重分别为1、2、3 。那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。

ipvsadm

语法
	 ipvsadm -A|E -t|u|f <集群服务地址> [-s <调度算法>] [-p <超时时间>] [-M <掩码>] [-b <标志>]
	 ipvsadm -D -t|u|f <集群服务地址>
     ipvsadm -C
     ipvsadm -R
     ipvsadm -S [-n]
     ipvsadm -a|e -t|u|f <集群服务地址> -r <真实服务器地址> [选项]
     ipvsadm -d -t|u|f <集群服务地址> -r <真实服务器地址>
     ipvsadm -L|l [options]
     ipvsadm -Z [-t|u|f <集群服务地址>]
     ipvsadm --set <超时时间>
     ipvsadm --start-daemon <主或备> [--mcast-interface <组播接口>] [--syncid <SID>]
     ipvsadm --stop-daemon <主或备>
     ipvsadm -h
子命令
     --add-service     -A        添加一个集群服务,需要使用选项
     --edit-service    -E        编辑一个集群服务,需要使用选项
     --delete-service  -D        删除指定集群服务,需要使用选项
     --clear           -C        删除所有集群服务,包括真实服务器转发策略规则
     --restore         -R        从标准输入中恢复策略规则
     --save            -S        保存策略规则到标准输出
     --add-server      -a        添加一个真实服务器,需要使用选项
     --edit-server     -e        编辑一个真实服务器,需要使用选项
     --delete-server   -d        删除一个真实服务器,需要使用选项
     --list            -L|-l     查看集群服务列表,包括真实服务器转发策略规则
     --zero            -Z        计数器清零。清除连接数、包转发等数量统计信息
     --set <超时时间>            设置TCP、TCPFIN(TCP关闭连接状态)、UDP连接超时时间,用于
                                 会话保持。一般情况下TCP和UDP超时时间保持默认就好,TCPFIN
                                 可以根据情况设定,指定它则用户请求连接关闭,该连接则会变
                                 为非活跃(InActive)空闲等待状态,在空闲等待时间内,如果
                                 来自同一源IP的请求,则还会转发给后端的同一台真实服务器上
     --start-daemon              开启连接同步守护进程。在选项后面指定自己是Master(主)还
                                 是backup(备),主负载调度器会同步所有策略及连接状态到备
                                 负载调度器,当主故障,备可以接替其工作
     --stop-daemon               停止连接同步守护进程
     --help            -h        显示帮助信息

标签:负载,请求,LVS,--,ipvsadm,调度,均衡,服务器
From: https://blog.51cto.com/u_14871454/8944322

相关文章

  • 36. 干货系列从零用Rust编写负载均衡及代理,内网穿透中内网代理的实现
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • 08信息打点-系统篇&端口扫描&CDN 服务&负载均衡&WAF 防火墙
    一、获取网络信息-服务厂商&网络架构1、每个不同的厂商都有不同的防护策略,获取到厂商信息可以第一时间知道目标服务器的防护情况2、理解外网和内网外网,出口IP:171.40.78.83内网:192.168.1.1WEB内网192.168.1.1可以直接访问外网,外网出口(交换机)做一个映射反向代理,web流量给到171.......
  • Nginx+keepalived实现高可用负载群集
    Nginx+keepalived实现方式使用Nginx作为负载调度器,通过四层代理转发给web服务器处理请求,实现负载均衡; 在Nginx调度器上配置脚本监控(健康检查),实现主备热备份,当主失效切换至备工作。部署案列Web服务器1:192.168.19.23(VIP192.168.19.200)Web服务器2:192.168.19.28(VIP192.168......
  • 35. 干货系列从零用Rust编写负载均衡及代理,代理服务器的源码升级改造
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例
    前言目前生产环境的配置越来越多的使用云服务了,同时负载均衡也基本转向了云厂商提供的服务,但对于绝大多数应用来说,自建集群可能在费用上要更便宜一些,这篇文章也是之前整理的,再次新瓶装旧酒分享给各位。此示例演示在不使用docker的情况下配置负载均衡,内容keepalived+nginx+tomcat......
  • 负载均衡
    什么是负载均衡负载均衡,它在网络现有结构之上可以提供一种廉价,有效,透明的方法来扩展网络设备和服务器的宽带,并可以在一定程度上增加吞吐量,加强网络数据处理能力,提高网络灵活性和可用性。相当于在网络流中充当“交通指挥官”的角色,在服务器前处理所有服务端和客户端之间的请求,从而......
  • nginx负载均衡配置
    用nginx转发请求,分发至子节点,以达到多台服务共同承压的目的,首先要准备一台负载均衡服务器,这台服务器只做转发没有其他业务,转发规则有轮询、ip哈希等轮询按访问时间,一个接一个分发,如某一个挂掉则跳过#子节点定义upstreamserver_list{server43.139.180.197:96;server4......
  • LVS-DR模式
    DR数据包流向分析(1)客户端发送请求到DirectorServer(负载均衡器),请求的数据报文(源IP是CIP,目标IP是VIP)到达内核空间。(2)DirectorServer和RealServer在同一个网络中,数据通过二层数据链路层来传输。(3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据......
  • 34. 干货系列从零用Rust编写负载均衡及代理,异步测试在Rust中的实现
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • LVS负载均衡集群
    LVSCluster,集群,群集有多台主机构成,对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机特点:由堕胎主机构成,都干同一件事,对外展现为一个整体集群分类根据集群针对的目标差异,可分为三种类型负载均衡集群(LB)提高系统响应效率,处理更多的访问请求,减少响......