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模式

配置:

复制代码
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模式的特点

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

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

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

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

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

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

DR模式的配置

复制代码
真实网卡
调度器和nginx2,nginx3
vim /etc/netplan/01-network-manager-all.yaml
	ens38
	dhcp:no
	addresses: [192.168.233.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 ens38
ipvsadm -A -t 192.168.233.100:80 -s wrr
ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.11:80 -g -w 3
ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.12:80 -g -w 8
 
nginx2和nginx3
vim /etc/sysctl.conf
	net.ipv4.conf.ens38.arp_ignore = 1
	net.ipv4.conf.ens38.arp_announce = 2
	net.ipv4.conf.ens38.arp_ignore = 1
	net.ipv4.conf.ens38.arp_announce = 2
sysctl -p
route add -host 192.168.233.100 dev ens38
systemctl restart nginx
相关推荐
rain bye bye1 天前
calibre LVS run不起来跑不通
lvs
rain bye bye2 天前
calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
服务器·数据库·lvs
2301_787328494 天前
25.负载均衡-Nginx、HAProxy、LVS 全解析
nginx·负载均衡·lvs
小任今晚几点睡12 天前
LVS深度解析:从原理到实战的负载均衡完全指南
负载均衡·lvs
Yyyy48220 天前
LVS TUN隧道模式
运维·网络·lvs
IT成长日记22 天前
【LVS入门宝典】LVS调度算法轮询(RR)深度解析:从原理到实战的公平调度之道
算法·lvs·rr·轮询调度算法
chen_note22 天前
LVS集群
nginx·lvs·haproxy·ipvsadm·lvs四种模式
Yyyy48222 天前
LVS三种模式及原理
服务器·php·lvs
Yyyy48222 天前
LVS、Nginx、HAProxy 的区别
运维·nginx·lvs
IT成长日记23 天前
【LVS入门宝典】LVS核心原理与实战:Real Server(后端服务器)高可用配置指南
linux·运维·服务器·负载均衡·lvs