LVS集群

目录

前言

一、概述

二、LVS结构

三、工作模式

四、LVS负载均衡算法

五、命令解析

六、NET案列

七、dr模式



前言

LVS(Linux Virtual Server)集群是一种基于Linux操作系统的高可用性和负载均衡解决方案。它通过将网络流量分发到多个后端服务器上,实现了对网络服务的负载均衡,并提高了系统的可用性和性能。

LVS集群主要由以下几个组件组成:

1. 负载均衡器(Load Balancer):负载均衡器是集群的前端设备,它接收来自客户端的请求,并将请求按照一定的负载均衡算法转发到后端的真实服务器上。负载均衡器可以是硬件设备(如硬件负载均衡器)或软件设备(如LVS软件负载均衡器)。

2. 真实服务器(Real Server):真实服务器是承载实际服务的服务器。在LVS集群中,通常有多个真实服务器用于提供相同的服务,并共享负载。这些服务器可以是物理服务器或虚拟服务器。

3. 后端服务(Backend Service):后端服务是真实服务器提供的具体服务,可以是Web服务器、数据库服务器、应用服务器等。

4. 负载均衡算法(Load Balancing Algorithms):负载均衡器使用不同的算法来决定将请求转发到哪个真实服务器上。常见的负载均衡算法有轮询(Round Robin)、加权轮询(Weighted Round Robin)、最少连接(Least Connection)等。

LVS集群的工作原理是通过网络地址转换(NAT)或直接路由(Direct Routing)技术来将请求转发到真实服务器上。负载均衡器收到客户端请求后,根据负载均衡算法选择一个真实服务器,并将请求转发给它。真实服务器处理请求并将响应返回给客户端,完成整个过程。

LVS集群能够提供高可用性和性能扩展的好处。如果某个真实服务器出现故障或负载过高,负载均衡器可以自动将流量转发到其他健康的服务器上,保证服务的可用性。同时,通过共享负载,LVS集群能够将客户端请求均匀地分配到多个服务器上,提高整个系统的性能和吞吐量。

总而言之,LVS集群是一种高可用性和负载均衡方案,通过将网络流量分发到多个后端服务器上,提高了系统的可用性和性能。


一、概述

集群概述:
    1、负载均衡技术类型
        四层负载均衡器 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;
        七层负载均衡器 也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。
    2、 负载均衡实现方式
        硬件负载均衡产品:F5 、深信服 、Radware
        软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)

二、LVS结构

LVS结构
    三层结构
        负载调度器
        服务器池
        共享存储
    架构对象
        VS:Virtual Server,也称为 Director,负载均衡服务器
        RS:Real Server,真正的服务器,集群中各节点
        VIP:Director 向外部提供服务的 IP
        DIP:Director 向内部与 RS 通信的 IP
        RIP:真实服务器的 IP
        CIP:客户端的 IP

三、工作模式

LVS工作模式
    LVS-NAT(NAT模式)
    LVS-DR(直接路由模式)(应用最广泛)
    LVS-TUN(IP隧道(Tunnel)模式,不常用)
    FULL-NAT模式(双向转换模式,不常用)

四、LVS负载均衡算法

LVS负载均衡算法
    静态负载均衡
            rr(round robin,轮询 )
            wrr(weight round robin,加权轮询)
            sh(source hashing,源地址散列算法(HASH))
            dh(destination hashing,目标地址 HASH)
    动态负载均衡
        lc(leash-connection,最少连接 )
            简单算法:active * 256 + inactive (谁的小选谁)
        wlc(加权最少连接)
            简单算法:(active * 256 + inactive) / weight(谁的小选谁)
        sed(最少期望延迟)
            简单算法:(active + 1) * 256 / weight (谁的小选谁)
        nq(never queue,永不排队)
        LBLC(基于局部性的最少连接 )
        LBLCR(基于局部性的带复制功能的最少连接)

五、命令解析

ipvsadm命令详解
    -A
        添加虚拟服务节点
    -D
        删除虚拟服务节点
    -L
        查看虚拟服务节点列表
    -a
        添加真实服务节点
    -d
        删除真实服务节点
    -l
        查看真实服务节点列表
    -t
        指定虚拟服务器IP地址
    -s
        指定调度算法
    -r
        指定真实服务器节点IP地址
    -w
        指定权重值
    -g
        直接路由模式(默认)
    -i
        隧道模式(不常用)
    -m
        NAT模式

六、NET案列

LVS(Linux Virtual Server)的net模式是LVS集群中的一种负载均衡模式,它通过网络地址转换(NAT)技术将网络流量转发给真实服务器,实现负载均衡和高可用性。

在net模式下,负载均衡器和真实服务器位于不同的子网中,各自拥有独立的IP地址。具体工作方式如下:

1. 配置负载均衡器:负载均衡器需要配置两个网络接口,一个用于管理和负载均衡器的IP地址(VIP,Virtual IP),另一个用于处理转发数据包的网络接口。

2. 配置真实服务器:真实服务器位于独立的子网中,需要配置一个与该子网相匹配的IP地址。

3. 转发数据包:当负载均衡器收到用户请求时,它会根据负载均衡算法选择一个真实服务器,并将请求数据包的目的地IP地址修改为该真实服务器的IP地址。然后,负载均衡器将数据包转发给真实服务器。

4. 真实服务器响应:当真实服务器接收到请求后,它会根据请求进行处理,并将响应数据包发送回负载均衡器。负载均衡器接收到响应后,将其源IP地址修改为VIP,再将响应转发回客户端。

net模式的优势包括:

- 独立子网:负载均衡器和真实服务器可以位于不同的子网中,提高了网络的灵活性和可扩展性。

- IP地址隐藏:真实服务器的IP地址对外部客户端来说是隐藏的,提高了网络的安全性。

- 负载均衡和高可用性:负载均衡器可以根据负载均衡算法选择最适合的真实服务器,实现负载均衡和高可用性。

需要注意的是,net模式要求负载均衡器和真实服务器位于不同的子网中,且负载均衡器需要正确配置网络地址转换规则(NAT)以实现请求和响应的转发。此外,负载均衡器需要具备足够的处理能力来处理大量的请求和响应。

总结来说,LVS的net模式通过网络地址转换(NAT)技术将网络流量转发给真实服务器,实现负载均衡和高可用性。它具有独立子网、IP地址隐藏和负载均衡高可用性等优势。

1、net模式

实验拓扑:按照如下要求配置,确保主机能访问外网并互相之间可以通信,最后用客户机访问网页时可以实现负载均衡

1、在192.168.115.131、192.168.115.134的主机上安装nginx,并书写简单的测试内容

####先安装epel源
yum -y install epel-release.noarch
####安装nginx
yum -y install nginx
####在192.168.115.131上书写页面,并启动nginx
echo nginx1 > /usr/share/nginx/html/index.html
systemctl start nginx
####在192.168.115.131上书写页面,并启动nginx
echo nginx1 > /usr/share/nginx/html/index.html
systemctl start nginx
###回到192.168.115.128的主机上对以上的操作验证
curl 192.168.115.131:80
curl 192.168.115.134:80

2、在192.168.115.128的主机上安装ipvsadm并进行配置

###安装ipvsadm
yum -y install ipvsadm
###开启路由转发功能
vim /etc/sysctl.conf
插入 net.ipv4.ip_forward = 1
使之生效 sysctl -p

 添加网卡并配置,用来外部进行访问

配置网卡

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37

vim cp /etc/sysconfig/network-scripts/ifcfg-ens37

 重启网络systemctl restart network 并用宿主机测试同联

3、做完这些我们开始在192.168.115.128上配置负载调度器

3.1、加载模块

##加载ip_vs模块
modprobe ip_vs
##查看模块
lsmod |grep ip_vs

3.2、启动ipvsadm服务
    systemctl start ipvsadm,启动失败因为缺少文件,我们创建一个 touch /etc/sysconfig/ipvsadm再次启动就OK了

 3.3、配置负载均衡策略

##添加虚拟服务器节点192.168.100.100:80是用来与外部通信的,并指定调度算法为轮询
ipvsadm -A -t 192.168.100.100:80 -s rr
##指定真实服务器ip并指定为net模式
ipvsadm -a -t 192.168.100.100:80 -r 192.168.115.131:80 -m
ipvsadm -a -t 192.168.100.100:80 -r 192.168.115.134:80 -m
##查看策略
ipvsadm -Ln

保存策略 ipvsadm -save > /etc/sysconfig/ipvsadm

 4、测试首先查看4台主机的网关,此时192.168.115.128作为路由服务功能了,接下来把两台web服务器的route改为192.168.115.128,否则是访问不到的

route add -net 0/0 gw 192.168.115.128

 访问使用ctrl+F5深度刷新,就可以交替看到内容

抓包

 

 

 七、dr模式

LVS(Linux Virtual Server)的DR(Direct Routing)模式是LVS集群中的一种负载均衡模式,它通过直接路由技术将网络流量转发给真实服务器,实现负载均衡和高可用性。

在DR模式下,负载均衡器和真实服务器在同一子网中,共享同一个IP地址。具体工作方式如下:

1. 配置负载均衡器:负载均衡器需要配置两个网络接口,一个用于管理和负载均衡器的IP地址(VIP,Virtual IP),另一个用于处理转发数据包的网络接口。

2. 配置真实服务器:真实服务器需要配置一个与负载均衡器同一子网的IP地址,并将其设为默认网关。

3. 转发数据包:当负载均衡器收到用户请求时,它会根据负载均衡算法选择一个真实服务器,并将请求目的地的MAC地址修改为该真实服务器的MAC地址。然后,负载均衡器将数据包转发到真实服务器的子网上。

4. 真实服务器响应:当真实服务器接收到请求后,它会根据请求的目标IP地址进行处理。由于真实服务器与负载均衡器在同一子网中,它可以直接将响应数据包发送回客户端,跳过负载均衡器。

DR模式的优势包括:

- 低延迟:由于真实服务器直接响应客户端请求,跳过了负载均衡器,可降低延迟。

- 高吞吐量:负载均衡器只需处理请求的转发,而不需要处理响应,可提高整个系统的吞吐量。

- 真实服务器可扩展性:由于真实服务器不需要处理转发的数据包,它可以处理更多的客户端请求。

- 真实服务器的原始IP地址:DR模式下,真实服务器使用自己的原始IP地址与客户端通信,更容易进行网络通信和故障排查。

需要注意的是,DR模式要求负载均衡器和真实服务器在同一子网中,并且真实服务器需要配置额外的网络接口和设置默认网关。此外,负载均衡器需要正确地设置转发规则和负载均衡算法,以确保请求正确地转发给真实服务器。

总结来说,LVS的DR模式通过直接路由技术将网络流量转发给真实服务器,实现负载均衡和高可用性。它具有低延迟、高吞吐量和真实服务器可扩展性等优势。

1、基于上个实验的基础我们继续实验再此之前我们移除ens37的网卡,重置策略,取消路由功能

###在192.168.115.128上删除策略
ipvsadm -C

 vim /etc/sysctl.conf
##删除 net.ipv4.ip_forwd = 1

 2、删除2台web服务器的网关

 3、负载调度器配置

#调整ARP参数
vim /etc/sysctl.conf
#插入
net.ipv4.conf.all.send_redirects = 0 
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects = 0
#使它生效	
sysctl -p

配置虚拟IP地址
	cd /etc/sysconfig/network-scripts/
	cp ifcfg-ens33 ifcfg-ens33:0

 4、同理配置2台web服务器的APR参数,这么做的目的是把ip禁锢在本地,不让别人知道,这样LVS集群对客户端来说就只有一个ip了

##调整ARP参数
vim /etc/sysctl.conf
##插入
net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2
##是之生效	
sysctl -p

 配置虚拟ip

配置虚拟IP地址
	cd /etc/sysconfig/network-scripts/
	cp ifcfg-lo ifcfg-lo:0
	vim ifcfg-lo:0
改为
DEVICE=lo:0
IPADDR=192.168.115.200
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback:0

重启负载调度器的网络主要看这里

重启两台web服务器的网络主要看这里

5、在负载调度器上配置

配置负载分配策略
[root@localhost network-scripts]# ipvsadm -A -t 192.168.115.200:80 -s rr
[root@localhost network-scripts]# ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.131:80 -g
[root@localhost network-scripts]# ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.134:80 -g

 6、为web服务器添加回环路由

##添加回环路由
route add -host 192.168.115.200/32 dev lo:0

 7、访问

 8、在宿主机上抓包发现对于宿主机来说访问的始终是192.168.115.200这个地址,所以用户就会认为是192.168.115.200这个服务器在提供服务,实际上啊是两台web服务器在发送内容


总结

  在进行本次实验时要了解LVS并理解NET、DR的工作原理,这可以有效的便于实验。在配置net模式时较为简单,值得注意的是dr模式:配置时要按照顺序往下走,注意网关,注意APR的参数,注意如何配置策略,用的是哪个ip以及配置策略的命名、保存策略。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
LVS(Linux Virtual Server)是一个开源项目,可以在Linux内核中实现一个高性能、高可用性的服务器集群。其中,NAT模式是LVS集群的一种常见部署方式,可以将外部请求通过LVS集群中的虚拟IP地址映射到后端真实服务器上。 以下是LVS集群搭建NAT模式的步骤: 1. 安装LVS软件包 在LVS集群中,需要安装ipvsadm和keepalived这两个软件包来实现负载均衡和高可用性。可以使用以下命令安装: ``` sudo apt-get install ipvsadm keepalived ``` 2. 配置LVS集群LVS集群中,需要至少有一个Director服务器和多个Real服务器。Director服务器是LVS集群中的核心部分,负责接收外部请求并将它们转发到Real服务器上。Real服务器是LVS集群中的后端服务器,负责处理来自Director服务器的请求。 在Director服务器上,需要进行以下配置: - 配置网络接口,将其绑定到虚拟IP地址上; - 配置ipvsadm规则,将请求映射到Real服务器上; - 配置keepalived,实现高可用性。 在Real服务器上,需要关闭iptables和ARP扫描功能,并配置正确的网络接口。 3. 测试LVS集群 在完成LVS集群的配置后,可以使用curl等工具测试其性能和可用性。例如,可以使用以下命令发送一个HTTP请求: ``` curl http://<虚拟IP地址>/ ``` 如果一切正常,请求应该被转发到Real服务器上,并返回正确的响应。 以上是LVS集群搭建NAT模式的基本步骤,具体的操作细节和配置方法可以参考LVS官方文档或相关的教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值