Linux lvs负载均衡

这篇具有很好参考价值的文章主要介绍了Linux lvs负载均衡。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LVS 介绍: 

Linux Virtual Server(LVS)是一个基于Linux内核的开源软件项目,用于构建高性能、高可用性的服务器群集。LVS通过将客户端请求分发到一组后端服务器上的不同节点来实现负载均衡,从而提高系统的可扩展性和可靠性。

LVS的核心组件:

  1. IPVS(IP Virtual Server):IPVS是LVS的核心模块,它实现了负载均衡的功能。IPVS模块通过拦截传入的流量并进行调度,将请求分发给后端的实际服务器。它存储和管理负载均衡配置,并在内核空间进行数据包的转发。
  2. 负载均衡器 LB(Load Balancer):负载均衡器是LVS的中心组件,它是位于客户端和后端服务器之间的设备或软件。负载均衡器接收客户端请求,并根据配置的负载均衡策略将请求转发给后端服务器,以实现负载分发和高可用性。

  3. 后端服务器 RS(Real Server):后端服务器是LVS集群中实际处理客户端请求的服务器节点。它们分担负载并提供服务响应。
  4. 负载均衡调度算法:LVS支持多种负载均衡调度算法,用于确定请求应该转发到哪个后端服务器上。常见的调度算法包括轮询(Round Robin)、最少连接(Least Connection)、源地址哈希(Source IP Hash)等。通过选择适当的调度算法,可以根据应用需求在后端服务器之间平衡负载。

LVS的工作原理:

  1. 客户端发送请求:
    客户端向LVS负载均衡器发送请求,请求的目标是负载均衡器的虚拟IP(Virtual IP)地址。

  2. 负载均衡器接收请求:
    负载均衡器接收到来自客户端的请求,并根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。

  3. 负载均衡算法选择后端服务器:
    LVS支持多种负载均衡调度算法,例如轮询(Round Robin)、最少连接(Least Connection)、源地址哈希(Source IP Hash)等。根据指定的算法,负载均衡器将请求转发给一个后端服务器。选择后端服务器时考虑服务器的负载情况、可用性和性能指标。

  4. 请求转发到后端服务器:
    负载均衡器将客户端请求转发给选定的后端服务器。根据配置的调度算法,请求可能会被平均地分发到多个后端服务器上,从而实现负载均衡。

  5. 后端服务器处理请求:
    后端服务器接收到来自负载均衡器的请求,并处理该请求。后端服务器执行请求所需的任务,并生成响应。

  6. 响应返回至客户端:
    后端服务器生成的响应流量经过负载均衡器,负载均衡器会将响应的目标地址重写为自己的地址,并将响应返回给客户端。

  7. 会话保持(可选):
    为了保持会话的连贯性,LVS可通过会话保持功能使来自同一客户端的请求始终被分发到同一后端服务器上。这可以通过IP地址、Cookie等方式实现。

LVS负载均衡方式:

  • NAT(Network Address Translation)方式:负载均衡器位于前端与客户端之间,调度器将客户端请求的源IP地址和端口转换为自己的IP地址和端口,并将请求转发到后端服务器。后端服务器的响应经过调度器再转发回客户端。
  • DR(Direct Routing)方式:负载均衡器位于前端与后端服务器之间,不会修改流量的目标地址。调度器将客户端请求的目标IP地址和端口保持不变,直接将请求转发到后端服务器。后端服务器的响应不经过调度器,直接返回给客户端。
  • TUN(IP Tunneling)方式:类似于DR方式,负载均衡器位于前端与后端服务器之间,并使用IP隧道将请求从客户端传递到后端服务器。负载均衡器将请求封装在一个新的IP包中,并将其发送到目标后端服务器上。后端服务器接收到请求后,解析IP隧道并响应客户端。也就是通过创建虚拟设备将数据包从调度器转发到后端服务器。

LVS名词解释:

  • VS:Virtual Server 虚拟服务器,通常是分发器,负载均衡集群对外提供的IP+Por
  • RS:Real Server 实际提供服务的真实服务器,可被DS划分到一个或多个负载均衡组.
  • DS:Director Server 负载均衡器,将流量分发到后端的真实服务器上.

  • BDS:Backup Director Server,为了保证负载均衡器的高可用衍生出的备份.

  • CIP:Client IP 客户的客户端IP。
  • VIP:Virtual Server IP,VS的IP。client请求服务的DIP(destination IP address),定义在DS上,client或其网关需要有其路由
  • DIP:Director IP 分发器的IP
  • RIP:Real Server IP 真实服务器的IP

CIP <–> VIP == DIP <–> RIP 客户端访问VIP,DIP将请求转发到RIP

1、NAT(Network Address Translation):

NAT 是通过网络地址转换的方法来实现调度的。

  Linux lvs负载均衡,负载均衡,linux,lvs,负载均衡 

  1. 客户端发送请求:客户端向LVS负载均衡器发送请求,请求的目标地址是VIP。

  2. 负载均衡器接收请求:负载均衡器接收到来自客户端的请求,该请求VIP和CIP。

  3. NAT转换:NAT模式下,负载均衡器会将请求包的VIP进行NAT转换,将其替换为负载均衡器的RIP。这样,在后续的网络通信中,响应流量将通过负载均衡器经过NAT转换返回给客户端。

  4. 负载均衡算法选择后端服务器:LVS负载均衡器根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。

  5. 请求转发到后端服务器:负载均衡器将经过NAT转换后的请求转发给选定的后端服务器。后端服务器接收到请求后,将其视为来自负载均衡器的请求。

  6. 后端服务器处理请求, 并生成响应

  7. 响应返回至客户端:响应经过负载均衡器,负载均衡器进行NAT转换将响应的RIP替换为VIP,然后将响应返回给客户端。

2、DR(Direct Routing):

DR通过修改目标MAC地址来实现调度。DR 模式中,input经过DR,output不经过DR。为了响应对整个群集的访问,DS与RS都需要配置有VIP地址, 且DS与RS要处在同一网段。

Linux lvs负载均衡,负载均衡,linux,lvs,负载均衡

 

  1. 客户端发送请求:客户端向LVS负载均衡器发送请求,请求的目标地址是VIP。

  2. 负载均衡器接收请求,并根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。

  3. 负载均衡器修改目标MAC地址:在DR模式下,负载均衡器会修改请求数据包的目标MAC地址为所选后端服务器的MAC地址,并将数据包转发给后端服务器。这样,数据包越过负载均衡器,直接到达后端服务器。

  4. 后端服务器接收到来自负载均衡器的请求,并进行相应的处理和计算。

  5. 后端服务器生成响应,并将响应发送回客户端。在DR模式下,响应数据包将直接发送到客户端,绕过负载均衡器。

3、TUN(IP Tunneling):

        在DR方式下,DS只修改数据包中数据链路层的MAC信息,IP信息不修改。于是DS通过MAC来定位RS,由此限制了DS和RS要处于同一网段。那么如果DS可以不通过MAC就可以定位到RS的话,也就不用限制RS和DS处于同一网段了。

        TUN模式下,负载均衡器通过建立IP隧道,将请求和响应数据通过隧道在负载均衡器和后端服务器之间进行传输。IP隧道可以理解为IP in IP, 即发送方在IP头的外部再包装一个IP头,接收方先解出第一层IP头,然后再按照正常流程处理剩下的的IP数据包。

Linux lvs负载均衡,负载均衡,linux,lvs,负载均衡 

  1. 客户端发送请求:客户端向LVS负载均衡器发送请求,请求的目标地址是VIP。
  2. 负载均衡器接收请求:负载均衡器接收到来自客户端的请求,并根据预先配置的负载均衡算法选择一个后端服务器来处理该请求。

  3. 负载均衡器建立隧道:在TUN模式下,负载均衡器会与所选后端服务器建立一个IP隧道,以便在负载均衡器和后端服务器之间传输请求和响应数据。
  4. 负载均衡器转发请求:负载均衡器将来自客户端的请求打包,并通过隧道发送给后端服务器。

  5. RS发现请求报文的IP地址是自己的eth0的IP地址,就剥掉IP隧道包头。

  6. RS处理请求,生成响应,并将响应通过隧道发送回客户端。

        LVS架构可以提供高性能和高可用性的负载均衡解决方案。通过将客户端请求分发到后端服务器上的多个节点,可以平衡系统负载并提供故障容错能力。同时,LVS具有开源、灵活和可定制的特点,可以根据实际需求进行配置和扩展。

        需要注意的是,LVS只提供负载均衡功能,并不处理应用层的逻辑。应用层的会话维护、数据同步等需要通过其他方式来实现,如使用Session Persistence和数据库复制等。

LVS NAT模式配置: 

环境说明:

主机名称  网卡信息(ens160为nat、ens192为仅主机) 安装应用  系统
Client客户端 192.168.100.200(ens160) RHEL8
DS DIP:192.168.253.142(ens160)–VIP:192.168.227.128(ens224)   ipvsadm RHEL8
RS1 RIP:192.168.253.143(ens160)–192.168.253.142 httpd RHEL8
RS2 RIP:192.168.253.144(ens160)–192.168.253.142 httpd RHEL8

1、DR、RS1、RS2三台主机都关闭防火墙和selinux

DS:
[root@DS ~]#  systemctl stop firewalld
[root@DS ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@DR ~]# vim /etc/sysconfig/selinux 
SELINUX=disabled

RS1
[root@RS1 ~]# systemctl stop firewalld
[root@RS1 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@RS1 ~]#  vi /etc/sysconfig/selinux
SELINUX=disabled

RS2
[root@RS2 ~]#  systemctl stop firewalld
[root@RS2 ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@RS2 ~]#  vi /etc/sysconfig/selinux
SELINUX=disabled

2、配置IP信息

DS:添加ens224网卡信息

[root@DR ~]#  nmcli connection add con-name ens224 ifname ens224 type ethernet
Connection 'ens224' (922bcff0-35fd-43c2-a608-edb0d58ccec3) successfully added.
[root@DR ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
IPADDR=192.168.253.142
PREFIX=24
DNS1=8.8.8.8
[root@DR ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens224
IPADDR=182.168.227.128
PREFIX=24
DNS1=8.8.8.8
[root@DR ~]# systemctl restart NetworkManager
[root@DR ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@DR ~]# nmcli connection up ens224
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

RS1: 

[root@RS1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens160
IPADDR=192.168.253.143
PREFIX=24
GATEWAY=192.168.253.142
DNS1=8.8.8.8
[root@RS1 ~]# systemctl restart NetworkManager
[root@RS1 ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

RS2:

[root@RS2 ~]#  vim /etc/sysconfig/network-scripts/ifcfg-ens160
IPADDR=192.168.253.144
PREFIX=24
GATEWAY=192.168.253.142
DNS1=8.8.8.8
[root@RS2 ~]# systemctl restart NetworkManager
[root@RS2 ~]# nmcli connection up ens160
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

3、后端RS1和RS2部署WEB服务器

[root@RS1 ~]# yum -y install httpd
[root@RS1 ~]# echo RS1 > /var/www/html/index.html
[root@RS1 ~]# systemctl restart httpd
[root@RS1 ~]#  systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@RS2 ~]# yum -y install httpd
[root@RS2 ~]# echo RS2 > /var/www/html/index.html
[root@RS2 ~]# systemctl restart httpd
[root@RS2 ~]# systemctl enable httpd

4、配置DS

4.1、开启IP转发功能

[root@DR ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@DR ~]# sysctl -p
net.ipv4.ip_forward = 1

4.2、安装ipvsadm并添加规则

[root@DR ~]# yum -y install ipvsadm
[root@DR ~]# ipvsadm -A -t 192.168.227.128:80 -s rr
[root@DR ~]#  ipvsadm -a -t 192.168.227.128:80 -r 192.168.253.143:80 -m
[root@DR ~]#  ipvsadm -a -t 192.168.227.128:80 -r 192.168.253.144:80 -m
[root@DR ~]#  ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.227.128:80 rr
  -> 192.168.253.143:80           Masq    1      0          0         
  -> 192.168.253.144:80           Masq    1      0          0         
[root@DR ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@DR ~]# systemctl restart ipvsadm.service
[root@DR ~]#  systemctl enable ipvsadm.service
Created symlink /etc/systemd/system/multi-user.target.wants/ipvsadm.service → /usr/lib/systemd/system/ipvsadm.service.

5、客户端测试: 

[root@RS3 ~]# curl http://192.168.227.128
RS2
[root@RS3 ~]# curl http://192.168.227.128
RS1
[root@RS3 ~]# curl http://192.168.227.128
RS2
[root@RS3 ~]# curl http://192.168.227.128
RS1

配置信息转载自: LVS 教程文章来源地址https://www.toymoban.com/news/detail-625476.html

到了这里,关于Linux lvs负载均衡的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NGINX负载均衡及LVS-DR负载均衡集群

    原理 : 1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链 3. IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群 服务进

    2024年02月13日
    浏览(50)
  • LVS负载均衡集群

    -A:添加虚拟服务器 -D:删除整个虚拟服务器 -s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc) -a:表示添加真实服务器(节点服务器) -d:删除某一个节点 -t:指定 VIP地址及 TCP端口 -r:指定 RIP地址及 TCP端口 -m:表示使用 NAT群集模式

    2023年04月26日
    浏览(65)
  • 高并发负载均衡---LVS

    目录 前言 一:负载均衡概述 二:为啥负载均衡服务器这么快呢? ​编辑 2.1 七层应用程序慢的原因 2.2 四层负载均衡器LVS快的原因 三:LVS负载均衡器的三种模式 3.1 NAT模式  3.1.1 什么是NAT模式 3.1.2 NAT模式实现LVS的缺点 3.1.3 NAT模式的注意事项 3.2 DR模式  3.2.1 什么是MAC欺骗?

    2024年02月13日
    浏览(40)
  • 【LVS负载均衡群集】

    Cluster,集群、群集 由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机 问题 * 互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求

    2024年02月08日
    浏览(43)
  • LVS负载均衡群集

    1.1企业群集应用概述 群集的含义 Cluster,集群、群集 由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。 问题 互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经

    2024年02月08日
    浏览(77)
  • LVS 负载均衡群集

    本章展示: 了解群集的结构与工作模式 了解 LVS 负载均衡群集原理 学会配置 NFS 共享服务 学会构建 LVS-NAT 负载均衡群集 1.1 LVS 群集应用基础 群集的称呼来自于英文单词“Cluster”,表示一群、一串的意思,用在服务器领域则表 示大量服务器的集合体,以区分于单个服务器。

    2024年01月16日
    浏览(51)
  • LVS负载均衡-DR

    1.DR模式中每台主机都有一个VIP地址 虚拟网址放在lo网卡上(回环网卡) arp_ignore=1 Arp_announce=2 系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址 2.内核参数修改   3.vim /etc/rc.conf   开机自启动   Chmod +x /etc/rc.d/rc.conf 4.实验 五台虚拟机(两台web服务虚拟

    2023年04月25日
    浏览(52)
  • 负载均衡策略 LVS

    (1) 概念: LB:负载均衡 (Load Balancing) 是一种分发网络流量的技术,LB 负载均衡的基本原理是将传入的网络流量分发到多个后端服务器,以确保这些服务器都承担相似的工作负载,从而避免某一台服务器过载而其他服务器处于空闲状态。 (2) 负载均衡产品分类: ① 软件负载均

    2024年02月08日
    浏览(45)
  • 【集群】LVS负载均衡群集

      互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求。   如果使用小型机、大型机,价格比较昂贵,所以大多数企业会使用多台相对廉价的普通服务器构建服务群集。通过整合多

    2024年02月08日
    浏览(49)
  • LVS 负载均衡集群

    集群(Cluster)是一组相互连接的计算机或服务器,它们通过网络一起工作以完成共同的任务或提供服务。集群的目标是通过将多台计算机协同工作,提高计算能力、可用性、性能和可伸缩性,适用于大量高并发的场景。 负载均衡器:减少响应延迟,提供并发处理能力 高可用

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包