lvs介绍与应用

news/2024/12/19 23:18:51/

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.yamlens37:ipv4:noaddresses;【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.10nginx2和nginx3
vim /etc/netplan/01-network-manager-all.yamlgateway4: 192.168.42.20
netplan apply
systemctl restart nginx客户端 12.0.0.11
vim /etc/netplan/01-network-manager-all.yamlens33:ipv4:noaddresses;【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.yamlens38dhcp:noaddresses: [192.168.233.100/24]
netplan apply调度器
vim /etc/sysctl.confnet.ipv4.conf.all.send_redirects=0net.ipv4.conf.default.send_redirects=0net.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 8nginx2和nginx3
vim /etc/sysctl.confnet.ipv4.conf.ens38.arp_ignore = 1net.ipv4.conf.ens38.arp_announce = 2net.ipv4.conf.ens38.arp_ignore = 1net.ipv4.conf.ens38.arp_announce = 2
sysctl -p
route add -host 192.168.233.100 dev ens38
systemctl restart nginx

http://www.ppmy.cn/news/1556499.html

相关文章

Linux系统安装node.js

一、node官网下载想要的node版本 https://nodejs.org/en/download/package-manager 二、将tar.xz文件解压 tar -xvf node-vxxx.tar.xz 三、改文件夹的名字,改成nodejs mv node-xxx nodejs 四、复制nodejs文件,并上传到linux 服务器 /usr/local 目录下…

采用qL-MPC技术进行小型固定翼无人机的路径跟随控制

来自论文"Predictive Path-Following Control for Fixed-Wing UAVs Using the qLMPC Framework in the Presence of Wind Disturbances" 控制架构 采用的是 ULTRA-Extra无人机,相关参数如下: 这里用于guidance law的无人机运动学模型为&#…

三、传输层,《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》

文章目录 一、概述和传输层服务1.1 传输服务和协议1.2 传输层 vs 网络层1.3 Internet 传输层协议 二、多路复用与解复用2.1 多路复用2.2 多路复用解复用工作原理2.3 无连接(UDP)多路解复用2.3.1 无连接多路解复用例子 2.4 面向连接(TCP&#…

【计算机网络】期末考试预习复习|中

作业讲解 转发器、网桥、路由器和网关(4-6) 作为中间设备,转发器、网桥、路由器和网关有何区别? (1) 物理层使用的中间设备叫做转发器(repeater)。 (2) 数据链路层使用的中间设备叫做网桥或桥接器(bridge)。 (3) 网络层使用的中间设备叫做路…

#. 判断元素是否存在传统题1000ms256MiB

题目描述 有一个集合M是这样生成的: (1) 已知k是集合M的元素;(2) 如果y是M的元素,那么,2y1和3y1都是M的元素;(3) 除了上述二种情况外,没有别的数能够成为M的一个元素。 问题:任意给定kk和xx&…

【c++笔试强训】(第三十八篇)

目录 不相邻取数(动态规划-线性dp) 题目解析 讲解算法原理 编写代码 空调遥控(⼆分/滑动窗⼝) 题目解析 讲解算法原理 编写代码 不相邻取数(动态规划-线性dp) 题目解析 1.题目链接:不相…

【C++算法】45.分治_快排_数组中的第K个最大元素

文章目录 题目链接:题目描述:解法C 算法代码: 题目链接: 215. 数组中的第K个最大元素 题目描述: 解法 这种题是典型的TOPK算法 TOPK算法有四种典型的问法: 第K大第K小前K大前K小 基于TOPK算法有两种办法&a…

docker 拉取镜像 | 创建容器 | 容器运行

拉取镜像 拉取镜像的命令:docker pull name (name换为你要拉取的镜像名) docker pull docker.1panel.live/hispark/qiankunbp:1.0.0 docker.1panel.live/hispark/qiankunbp:1.0.0为镜像名 拉取海思的镜像:(如果之前拉…