LVS介绍

LVS介绍

LVS(Linux Virtual Server)是一种基于Linux操作系统的虚拟服务器技术,主要用于实现负载均衡和高可用性。它通过将客户端请求分发到多台后端服务器上,从而提高整体服务的处理能力和可靠性。lvs是基于集群的方式实现

集群和分布式

集群:多个相同的应用,部署在不同的服务器上,提供统一的服务,以及同样的功能,机器的性能大致相同

分布式:把不同的组件部署在不同的服务器上,组件之间(应用)依靠网络进行通信,实现定制化的功能

系统性能的扩展方式

系统性能的扩展方式:

1、垂直扩展,向上扩展,提升计算机的性能(硬件性能)。性能提升是有瓶颈。

2、水平扩展,向外扩展,增加设备的方式提供性能。

集群的类型

集群的类型:

1、负载均衡:LB(load balancing)

2、HA:high Availiablity 高可用,负载均衡的高可用,主备高可用(keepalive用的就是vrrp协议)

系统的可靠性指标

系统的可靠性指标:值范围:0-1

MTBF:平均无故障时间

MTTR:平均恢复时间

A=MTBF/(MTBF+MTTR)*100%

得出的结果A无限接近于1,才好

停机时间分为计划内停机时间和计划外的停机时间

计划内停机时间:这个是不算在故障时间内的

计划外的停机时间:这算在故障时间内

LVS集群的术语

VS:virtual server lvs的逻辑名字,外部访问lvs的ip地址和端口

DS:director server lvs集群当中的主服务器,调度器,是整个集群的核心,接受客户端的请求然后根据负载均衡的算法转发到后端的RS

RS:real server lvs集群中的真实服务器,也就是后端服务器,接受调度器转发过来的请求

CIP:client ip 客户端的ip地址

VIP:virtual ip 集群对外提供好的虚拟ip地址

DIP:调度器的ip地址

RIP:后端服务器的ip地址

LVS的负载均衡的方式

NAT模式:NAT方式是最常用的负载均衡方式之一

DR模式:直连路由模式,性能最高

TUN:隧道模式

NAT模式

NAT模式:NAT方式是最常用的负载均衡方式之一

NAT的性能较差,第一要进行转换,第二要进行数据包的路由

NAT模式的后端真实服务器10-30台之间

lvs的nat:调度器的压力很大,地址转换,负载均衡算法,数据包转发,响应,非常影响性能

工具:ipvsadm 管理和配置lvs集群的工具,集成在linux系统的内核当中

ipvsadm的操作命令

命令 含义
-E 修改
-A 添加虚拟服务器
-D 删除整个虚拟服务器,虚拟服务器对应的就是后台的真实服务器
-s 指定负载均衡的算法,加载时必须要声明算法,rr (轮询),wrr (加权轮询) ,lc (最小连接数),wlc(加权最小连接数)
-a 添加真实服务器
-m 表示集群使用nat模式
-g 表示使用DR模式
-i 表示使用tun模式
-w 设置权重
-l 列表形式
-n 数字化的显示ip和端口
-t 指定调度器的vip地址的ip和端口
-r 指定RIP的ip和端口

NAT实验

在虚拟机上实现nat模式

配置:

c 复制代码
apt -y install ipvsadm
modprobe ip_vs #加载模块
添加一个网卡
vim /etc/netplan/01-network-manager-all.yaml
	ens37:
	  ipv4:no
	  addresses;【12.0.0.10/24】
systemctl restart ipvsadm
systemctl status ipvsadm
ipvsadm -C#清空所有ipvsadm的策略
ipvsadm  -A -t 12.0.0.10:80 -s rr #添加虚拟服务器
ipvsadm -a -t 12.0.0.10:80 -r 192.168.42.30:80 -m  
ipvsadm -a -t 12.0.0.10:80 -r 192.168.42.40:80 -m 
#当访问12.0.0.10时,数据包可以转发到的真实服务器之一,-m 使用nat模式
vim  /etc/sysctl.conf
	第28行去掉注释
	net.ipv4.ip_forward=1
iptables -t nat -A POSTPOUTING -s 192.168.42.0/24 -o ens37 -j SNAT -- to 12.0.0.10

nginx2和nginx3
vim /etc/netplan/01-network-manager-all.yaml
	gateway4: 192.168.42.20
netplan apply
systemctl restart nginx

客户端 12.0.0.11
vim /etc/netplan/01-network-manager-all.yaml
	ens33:
	  ipv4:no
	  addresses;【12.0.0.10/24】
	  gateway4: 192.168.42.20
netplan apply

DR模式

DR模式:直连路由模式

DR模式虚拟出一个ip,这个虚拟访问用来访问的,客户端都是访问虚拟的ip地址。

虚拟IP地址也是在调度器上,调度器根据负载均衡算法选择一条RS,RS处理完请求之后直接响应给客户端,不是由调度器再来响应客户端

1、直接路由模式就是二层转发

调度器的ip和真实服务器的ip必须在同一网段,同一网段才能进行二层转发。

根据内核进行判断,数据包判断目标是本机的VIP,ipvs对数据包的请求进行分析,是否在集群的服务范围之内。

是的话,对数据包进行重新封装,源mac地址是vip地址,目标mac地址是真实服务器的地址。

源ip和目的ip地址都没有发生变化。

DR模式的特点

DR模式的特点:

1、调度器和真实服务器必须在同一网段

2、真实服务器的地址可以是内网也是公网,如果RIP是公网可以直接(没有人做公网)

3、vip地址在调度器上有,在真实服务器也需要配置

ARP根据mac地址,找到对应的ip地址,如果不配置调度服务器和真实服务器之间无法通信

修改内核的方式,让真实的物理地址来响应请求

4、所有真实服务器的网关不能指向到调度器的ip地址。真实服务器的服务器的数据不通过调度器进行转发

DR模式的配置

c 复制代码
真实网卡
调度器和nginx2,nginx3
vim /etc/netplan/01-network-manager-all.yaml
	ens37
	dhcp:no
	addresses: [192.168.42.100/24]
netplan apply

调度器
vim /etc/sysctl.conf
	net.ipv4.conf.all.send_redirects=0
	net.ipv4.conf.default.send_redirects=0
	net.ipv4.conf.ens37.send_redirects=0
sysctl -p
route add -host 192.168.42.100 dev ens37
ipvsadm -A -t 192.168.42.100:80 -s wrr
ipvsadm -a -t 192.168.42.100:80 -r 192.168.42.30:80 -g -w 3
ipvsadm -a -t 192.168.42.100:80 -r 192.168.42.40:80 -g -w 8
 
nginx2和nginx3
vim /etc/sysctl.conf
	net.ipv4.conf.ens37.arp_ignore = 1
	net.ipv4.conf.ens37.arp_announce = 2
	net.ipv4.conf.ens37.arp_ignore = 1
	net.ipv4.conf.ens37.arp_announce = 2
sysctl -p
route add -host 192.168.42.100 dev ens37
systemctl restart nginx
相关推荐
2401_871213309 小时前
lvs负载均衡
运维·负载均衡·lvs
TianyaOAO9 小时前
lvs介绍和DR模式
服务器·网络·lvs
学Linux的语莫3 天前
负载均衡,高可用,监控服务搭建总结
linux·服务器·分布式·ceph·lvs
马立杰5 天前
LVS能否实现两台服务器的负载均衡
linux·lvs
林清海笙9 天前
【射频IC进阶实践教程】2.6 LNA版图设计及DRC/LVS验证
网络·射频工程·集成电路·lvs·射频ic·射频电路设计·ic设计教程
马立杰11 天前
LVS的DR模式是否依赖内核的数据包转发
linux·lvs
马立杰13 天前
LVS默认的工作模式支持哪些负载均衡算法?
linux·服务器·lvs
学Linux的语莫14 天前
LVS-DR工作模式简介(相对nat性能更高)
linux·运维·服务器·ansible·lvs
LYK_HAHA16 天前
keepalived+lVS(dr)高可用集群
lvs·keepalived