LVS高并发与负载均衡

了解LVS,这一篇就够了 LVS介绍   作用 LVS 的优势与不足    1、优势    2、不足 LVS 核心组件和专业术语 核心组件: 专业术语: LVS负载均衡四种工作模式 直接路由(Direct routing)模式(LVS-DR)  LVS还有三种工作模式分别是 NAT模式(VS-NAT) IP隧道(Tunnel)模式(VS-TUN) FULL-NAT模式 四种模式的区别 LVS ipvsadm 命令的使用 LVS-server安装 阅读详情

本篇介绍lvs负载均衡器,并使用keepalived增强lvs的稳定性。

目录

一、负载均衡模型简介

1.1 逻辑模型简介

1.2 动态NAT模式实现

1.3 四层DR(直接路由)模式实现

1.4 隧道(ip嵌套ip)模式实现

1.5 隐藏VIP(对于后端服务器)的方法

二、lvs原理

三、lvs-DR模型实验

3.1 实验环境介绍

3.2 实验步骤

四、keepalived增强lvs稳定性实现


一、负载均衡模型简介

一个tomcat服务器最多为几千个并发客户端服务,当客户端超过这个数时就需要用到负载均衡,负载均衡就是后端有多个服务器,当新的客户端来时为它分配一个固定的后端服务器服务。

1.1 逻辑模型简介

VIP:虚拟服务器地址(域名解析后的ip地址,例如www.baidu.com经过DNS解析后的ip地址,是唯一的)。

DIP:负载均衡转发源的网络地址。1)和RIP通信:使用ARP协议获取RIP的MAC地址。

RIP:后端真实的服务器ip地址。为了实现高并发通常有多个。

CIP:客户端ip地址。

宏观拓扑图如下图所示:

负载均衡器只做转发,不做三次握手,实际通信是CIP和RIP之间的通信。

1.2 动态NAT模式实现

负载均衡器通过NAT方式重定向后端服务器ip地址实现负载均衡。

具体实施图如下图所示:

缺点:所有数据都要经过负载均衡器,带宽限制。

 

1.3 四层DR(直接路由)模式实现

为了解决上面所有收发的所有数据都经过负载均衡器导致的带宽不足,使用四层DR模式解决,后端服务器直接发送给客户端。

负载均衡器:将受到的CIP_VIP格式转换成CIP_VIP:RIP_MAC格式。

后端服务器:VIP与负载均衡的VIP相同,后端VIP位于内网中,对外不可见;后端服务器与负载均衡器位于同一局域网中,物理距离被限制。

1.4 隧道(ip嵌套ip)模式实现

为了解决后端服务器由于在同一内网中的物理距离限制,使用类似VPN的方式解决。详细如下:

1.5 隐藏VIP(对于后端服务器)的方法

由于后端服务器在后端,所有前端的负载均衡器不应该对VIP进行回应,只负责转发,所以需要进行隐藏。

在linux下,/proc/sys/net/ipv4/conf/*IF*/中可以对内核的网络功能进行配置

arp_ignore(ARP响应级别)设置为1,这是因为要隐藏VIP,不能将VIP地址告诉arp广播,只有当mac地址匹配时才会响应,若为0,当arp广播过来时会将本机所有网卡的ip地址发送出去,达不到隐藏的效果;

arp_announce(ARP通告级别)设置为2,设置为0时,会将本计算机上所有网卡上的ip地址发送出去;设置为2时,仅当匹配到网卡上的某个ip地址时会将这个ip地址发送出去,达到了隐藏效果。

详细如下:

注意:一块网卡可以配置多个ip地址。

二、lvs原理

lvs已经集成在linux操作系统内核中,所以不需要安装,但是需要安装ipvsadm对内核进行配置。

lvs监控配置

后端服务器添加

三、lvs-DR模型实验

3.1 实验环境介绍

准备3台虚拟机,一台作为lvs负载均衡器,两台作为后端服务器。

虚拟机名负载均衡中角色ip地址安装的软件eth0网络配置说明
node01LVS

eth0:192.168.182.140

eth0:0(即VIP):192.168.182.100

ipvsadmDIPeth0:0 VIP配置ipvsadm
node02RS01

eth0:192.168.182.141

lo:0(即VIP):192.168.182.100

http 80RIPlo:0 VIP启动httpd
node03RS02

eth0:192.168.182.142

lo:0(即VIP):192.168.182.100

http 80RIPlo:0 VIP启动httpd

3.2 实验步骤

1、虚拟机配置

创建3台虚拟机,使用NAT模式与物理机连接,虚拟网关为192.168.182.1,物理机ip地址(vmnet8)为192.168.182.2,三台虚拟机的eth0地址如上表所示,完成后能相互ping通。

2、配置lvs的VIP

其中,/24为子网掩码,表示24个1。

第二句是配置负载均衡的转发功能,如果为0,当收到的ip地址与自己的不匹配就会丢弃;为1时不丢弃,会查路由表然后转发出去。

ifconfig eth0:0 192.168.182.100/24
echo 1 > /proc/sys/net/ipv4/ip_forward

3、后端服务器RS的响应配置(RS01、RS02)

配置arp响应,命令如下:

注意:/proc中的配置文件修改时不要使用vi修改,最好使用echo 覆盖,为临时操作,重启失效。

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

4、后端服务器RS的VIP配置(RS01、RS02)

为两台后端服务器配置VIP,该地址为负载均衡器lvs的ip地址(VIP)。

注意:子网掩码为四个255是因为如果为3个255,那么后端服务器发送出去的目的地址192.168.182.xxx(客户端的ip)与子网掩码与运算后为192.168.182.0为自己的ip地址,发送不到客户端。

ifconfig lo:0 192.168.182.100 netmask 255.255.255.255

5、后端服务器上启动httpd(RS01、RS02)

安装httpd

yum install httpd -y

配置httpd的index主页

vi /var/www/html/index.html

# index.html中输入以下内容,即填写自己的ip地址,下面为第一台RS
from 192.168.182.141    

启动httpd

service httpd start

这时,使用物理机浏览器输入192.168.182.141或192.168.182.142就可以看到主页的内容,而192.168.182.100没有配置所以访问失败。

6、负载均衡器lvs配置

安装ipvsadm

yum install ipvsadm -y

配置负载均衡器

监控地址为192.168.182.100的80端口,轮询调度,命令如下:

ipvsadm -A -t 192.168.182.100:80 -s rr

查看配置情况

ipvsadm -ln

为负载均衡器配置后端服务器

第一个ip地址为负载均衡器的ip,第二个为后端服务器的ip地址,在此有两个后端服务器,添加两条

ipvsadm -a -t 192.168.100:80 -r 192.168.141:80 -g
ipvsadm -a -t 192.168.100:80 -r 192.168.142:80 -g

这时,用ipvsadm -ln 可以看到配置的情况。

7、测试

在本地浏览器输入192.168.182.100刷新会出现不同的后端服务器回应。

注意:第一次的时候,我用192.168.182.140作为VIP,与负载均衡器的eth0(DIP)一样,导致在负载均衡器自我收发,发送不到后端服务器,访问不成功。

四、keepalived增强lvs稳定性实现

lvs虽然能实现负载均衡,但是如果lvs故障则整个系统瘫痪,风险较大。

解决方法:使用多个lvs提高稳定性,使用keepalived保持存活。

实验模型:在第三节的基础上增加一台虚拟机(node04)作为lvs,这时2台作为lvs(node01、node04),2台作为后端服务器(node02、node03)

实验示意图如下:

安装keepalived

yum install keepalived

配置keepalived(node01中)

vi /etc/keepalived.conf
! Configuration File for keepalived

# 邮箱配置,当出现故障时会发送邮件给运维
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

# vrrp协议配置,相当于lvs
vrrp_instance VI_1 {
    state MASTER             # 配置为主lvs
    interface eth0           # 使用哪个网卡发送
    virtual_router_id 51     # 组id,两个必须设置成一样,表示位于同一组中
    priority 100             # 权重值,主lvs使用最大,备用的lvs要小于主lvs
    advert_int 1             # 组播信息发送间隔,两个必须设置成一样
    authentication {         # 设置验证信息,两个必须设置一样
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {      # 配置vip,相当于第三节中的ifconfig eth0:0 192.168.182.100/24
        192.168.182.100/24 dev eth0 label eth0:0
    }
}

# vip的配置,相当于ipvsadm -A -t 192.168.182.100:80 -s rr
virtual_server 192.168.182.100 80 {    # 配置成vip的地址和端口
    delay_loop 6
    lb_algo rr
    lb_kind DR                        # 使用DR模型
    nat_mask 255.255.255.0
    persistence_timeout 0             # 超时时间,为了显示实验切换效果,设置为0
    protocol TCP

    # 后端服务器的配置
    real_server 192.168.182.141 80 {   # 修改为后端服务器的配置
        weight 1
        HTTP_GET {                     # http请求默认主页
            url {
              path /
              status_code 200
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.182.142 80 {   # 修改为后端服务器的配置
        weight 1
        HTTP_GET {                     # http请求默认主页
            url {
              path /
              status_code 200
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

配置keepalived(node04中)

node04中的配置与node01中的配置几乎一样,只有两个地方不一样如下(截取部分配置):

# vrrp协议配置,相当于lvs
vrrp_instance VI_1 {
    state BACKUP             # 第一处不同!配置为备用lvs
    interface eth0           
    virtual_router_id 51
    priority 50              # 第二处不同!备用的lvs要小于主lvs
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {     
        192.168.182.100/24 dev eth0 label eth0:0
    }
}

启动keepalived服务(node01和node04)

service keepalived start

测试

首先,在master上查看eth0的ip地址:ip addr,会显示虚拟ip;

在本地浏览器输入192.168.182.100刷新会出现不同的后端服务器回应。

高并发-高可用-负载均衡LVS 随着互联网的快速发展,越来越多的互联网服务面临着极其庞大的并发量,面对庞大的并发,现在的人们是如何解决的呢?本文是我了解到的处理高并发时使用负载均衡的一些知识,我将其写为一篇文章分享给大家,希望能够对大家学习负载均衡有点帮助。 几个基本概念 该并发:短时间内对服务器进行大量的请求。 负载均衡:在高并发的场景下,我们会有专门的负载均衡服务器来将大量的请求分发到对应的应用服务器上,以此降低单台服务器的压力。 负载均衡的模型 四层负载均衡:在高并发场景下,通常在真正的应用服务器前会有一台四层负载均衡服务器, 阅读详情

相关推荐

高并发与负载均衡--lvs-DR模型试验

注意:搭建时注意主机IP(VIP)和分机IP(RIP)的先后顺序,首先先创建主机IP,再配置RIP。 LVS搭建 LVS主机VIP配置操作如下: [root@centos7-1 ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet...

724

高并发负载均衡---LVS

LVS是高并发负载均衡的核心技术,本文从为什么需要LVS,以及LVS为什么快,和如何实现LVS等角度切入,带你庖丁解牛式深入学习LVS。

ai15013602354的博客 1568

高并发负载均衡:LVS的DR模型试验搭建

11

qq_43409811的博客 439

网站高并发解决方案LVS

负载均衡 一.集群功能分类 1.LB load balance 负载均衡(增加处理能力),有一定高可用能力,但不是高可用集群,是以提高服务的并发处理能力为根本着眼点 软件负载均衡设备 LVS LVS(四层路由设备),是由中国人章文松研发的(阿里巴巴的副总裁)根据用户请求的IP与端口号,实现将用户的请求分发至不同的主机 HAproxy haproxy:主要功能是针对http协议实现负载均衡,也可以实现tcp(mysql,smtp)等协议的负载均衡...

weixin_46018506的博客 737

Claude Code vs Codex

Claude Code 提供了一个生产就绪(production-ready)的实现,包含良好的错误处理、优雅的关闭逻辑、详细注释和文档,以及内置测试。Claude Code 输出了一个可运行的 Next.js + TypeScript 前端,但错过了一些设计里的黄色主题元素;Codex 则生成自己的版本,没有导出设计中的图片,也没严格遵照设计主题。Codex 完成同样功能,但更简洁直接,文档和注释少一些但功能达标。任务都用同样的提示,使用 TypeScript 实现,并在一天内完成。

weixin_49869937的博客 2388

二阶锥松弛在配电网最优潮流计算中的应用(IEEE33节点配电网最优潮流算例matlab程序)(yalmip+cplex)

文献[7]建立了以支路潮流计算为基础的OPF模型,针对OPF中的非凸性约束,采用SOCR技术将其松弛为二阶锥约束,整个 OPF 模型则被转化为二阶锥规划( Second Order Cone Programming,SOCP)问题,对其求解可以得到全局最优解。其次结合辐射型配电网潮流特点建立支路潮流约束,并考虑配电网中的可控单元,包括分布式电源和离散、连续无功补偿装置,建立其出力约束,该模型为非凸非线性模型;式中,αj,t和βij,t分别为t时段内节点i电压的二次方和支路ij电流的二次方。

weixin_47365903的博客 1万+

大型网站高并发解决方案 LVS (一文让你搞懂什么是LVS及四层、七层负载均衡)

LVS是Linux Virtual Server的简写,也就是Linux 虚拟服务器,是一个虚拟的服务器集群系统,本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS 实际上相当于基于 IP 地址的虚拟化应用,为基于 IP 地址和内容请求分发的负载均衡提出了高效的解决方法,现在 LVS 已经是 Linux 内核标准的一部分。LVS是四层负载均衡四层负载均衡的优点:在响应请求时速度较反向服务器负载均衡要快。缺点:无法处理更高级的请求。

promsie_C的博客 1630

PCB中的CAF深度剖析与对策研究

摘要:本文系统研究了PCB板的导电阳极丝(CAF)问题,阐明了CAF是在电场作用下铜离子沿玻纤微裂通道迁移形成导电丝的现象,其形成需铜、水汽、电解质、偏压和迁移通道五个条件。CAF会导致PCB绝缘性能下降和信号传输异常,严重影响电子产品可靠性。研究提出了板材选择、钻孔工艺控制、叠板结构优化等预防措施,以及增大孔距、错位排列等设计注意事项,并介绍了IPC-TM-650-2.6.25测试标准。未来应在耐CAF材料、测试技术和制造工艺方面深入研究,以提升PCB可靠性。(150字)

2401_84691632的博客 1704

08--LVS网站高并发解决方案

一文看懂LVS负载均衡,展示了常见的lvs负载均衡部署超详细步骤,详细地记录了概念知识,有助于加强对基础理论和实操的理解。

qq_43387908的博客 1056

pgpool-II安装部署

文章介绍了pgpool-II的核心功能、架构组成以及实际部署的关键配置步骤

weixin_41690116的博客 1424

Tribon Vitesse开发教程(一)

Tribon Vitesse简介 Tribon Vitesse是Tribon提供给Python编程语言的编程接口,它是一系列的API。使用Python的语法调用这些API,结合Python语言自身的语法生成的程序叫做Vitesse程序。Vitesse是法语“速度”的意思,读作“为戴斯”。使用Tribon Vitesse可以直接访问Tribon产品信息模型和使用Tribon应用程序的功能,以控制设计

forevermemory的专栏 2593

高并发负载均衡——nginx与lvs

简单理解:Domain Name System,域名系统是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网。例如我们将程序发布到192.168.55.145 和144两台服务器上,通过DNS可以设置一个统一的访问入口,如www.Max1209.com对这两台服务器上的服务进行访问。用户直接访问www.Max1209.com主机名而不需记住机器IP,通过主机名,最终得到该主机名进行域名解析得到对应的IP地址进行访问。

happy_king_zi的博客 1651

vs2017配置liblas库+测试代码

之前已经配置好pcl(vs2017配置pcl),可以单独配置liblas,也可以在原有pcl属性表的基础上继续配置

孙悟空 4023

高并发的解决方案—负载均衡—LVS搭建

首先这是一个简单的架构图:一、如图,高并发可能发生的地方有两处1、用户请求应用时的负载均衡处,本文仅针对此处进行分析2、应用请求数据库时,分析待续二、负载均衡处可能出现的问题,session共享问题解决方案:1、session可放在cookie中,但将seesion放浏览器处不安全2、session可存放数据库中,但大量用户请求时,数据库压力会过大3、seesion放到缓存服务器集群中。三、负载均...

Dragon714的博客 1685

lammps多晶正弦粗糙界面建模

其中,30可以理解为正弦曲线的幅度,150为正弦曲线的基准坐标值,80控制周期,改变参数多试试就能找到规律。很久之前介绍过lammps粗糙界面建模,主要是在lammps中进行一维和二维的正弦粗糙面建模。运行完成后,会生成final.data,这个模型即为上表面为正弦波动的粗糙界面。新建1.py文件,粘贴下面内容后,运行:python 1.py。多晶需要在atomsk中进行,因此上述的方法就不再适用。最近有学员咨询多晶模型的正弦粗糙界面建模应该如何实现。在cmd窗口按顺序运行以下命令创建多晶模型。

lammps_jiayou的博客 388

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(上)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 2778

LVS集群高并发和负载均衡

LVS集群高并发和负载均衡 LVS是Linux Virtual Server的简写,Linux虚拟服务器,是一个虚拟的服务器集群系统。 ipvs:嵌入到linux的内核 ipvsadm:管理应用程序 类型 NAT:地址转换 DR:直接路由 TUN:隧道 LVS调度方法 四种静态: rr:轮询 wrr:加权轮询 dh: sh: 动态调度方法: lc:最少连接 wlc:加权最少连...

qq_43502858的博客 1115

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

高并发与负载均衡-lvs-功能配置介绍

[root@centos7-1 ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.159.10 netmask 255.255.255.0 broadcast 192.168.159.255 ...

269

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

04-高并发负载均衡-LVS

高并发负载均衡-LVS LVS介绍 SAP HANA 网络介绍 七层 MTU 1500 B 功能分层 整个互联网建立在下一跳的模式下 IP时逻辑上的两个端点 MAC是物理上连接的两个节点 端点间TCP传输过程中 确认机制 状态机制 不可分割 解析数据包需要成本 交换机:二层,只关心MAC地址 学习机制 路由器:三层,只关心IP和路由表 LVS服务器:四层,只关心PORT,状...

一个孤独漫步者的遐想的博客 302

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

高并发负载均衡(二)——Nginx 和LVS

高并发负载均衡(二)——Nginx 和LVS 在上一篇博客中介绍到实现负载均衡主要可以通过软、硬件两个方面进行,例如硬件上购买RadWare等硬件设备,或者通过软件策略实现负载均衡。软件策略上使用广泛有Nginx和LVS 在介绍两款工具之前,先聊聊负载均衡的应用场景 普通web应用部署到多台应用服务器上,客户端通过访问应用服务器发送请求,最简单的就是n对1模式,n个客户端访问同一个应...

go_pkqL00的博客 357

《Keepalived 与 LVS 整合部署:构建高并发负载均衡集群的实操步骤》

LVS基于IP层实现流量分发,支持多种算法如轮询($ \text{Round Robin} $)和最少连接($ \text{Least Connections} $)。Keepalived则通过VRRP协议管理虚拟IP,确保主备切换无缝。整合后,LVS处理负载均衡,Keepalived提供高可用性,形成双保险机制,适合电商、视频直播等高并发场景。

tggchjhjsjss的博客 724

高并发与负载均衡-lvs-3种模型推导

[root@centos7-1 ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.159.10 netmask 255.255.255.0 broadcast 192.168.159.255 inet6 fe80::20c:29f...

374

高并发负载均衡LVS搭建

前言 我们知道nginx是7层的代理,相对于lvs这种四层代理来说,肯定效率没有lvs来的好。一个nginx能够支撑的并发数是5w。那为什么lvs的效果会更好,可以先看下,我写的这篇关于lvs出现诞生的理论:xxx(后面补充) 今天主要是通过本地做一个实验,来验证下lvs通过DR(直接路由模型)进行负载均衡。 一、网络拓扑搭建 主要通过vmware搭建,网络地址规划如下 主机名 IP地址 虚拟IP地址(vip) 服务 node01 192.168.17.128 192.168.235.132

sinat_36759535的博客 780

3、高并发与负载均衡-lvs-功能配置介绍

weixin_43381828的博客 179
上一篇: 网络编程——3、服务器基础
下一篇: nginx集群与高并发
ACanswer
博客等级 码龄12年 280粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值