一、LVS
1、lvs集群
lvs(linux virtual server ):阿里的章文嵩发起的开源项目,linux的内核层面实现负载均衡的软件。
主要作用:将多个后端服务器组成一个高可用,高性能的服务器集群,通过负载均衡的算法将客户端的请求分发到后端的服务器上,来实现高可用和负载均衡。
2、集群
集群:为了解决某个特定的问题,将多台计算机组合起来形成的单个系统。
1、系统的拓展方式
垂直扩展:向上扩展,增强,性能更强的计算机,瓶颈,计算机本身设备的限制,硬件本身的性能瓶颈。
水平扩展:向外扩展,增加设备,并行的运行多个服务,依靠网络解决内部通信的问题,cluster集群。
2、集群的类型:三种类型
LB:load balance 负载均衡集群,多个主机组成,每个主机只承担一部分的访问请求。
HA:high availiablity 高可用,这设计系统时,采取一定的措施确保系统当中某一组件或者部分出现故障,整个系统依然能够正常的运行,为了维护整个系统的可用性,可靠性,容错性。
HPC:high-performance computing 高性能 对响应时间,处理能力要求更高。
3、系统可靠性指标
MTBF:Mean time Between Failure 平均无故障时间
MTTR:Mean Time Resotration repair 平均故障恢复时间
A= MTBF/(MTBF+MTTR)
A指标的范围在0-1之间,A指标就是系统可用性的度量,0表示系统越不可以,1表示系统越可用。
A指标要无限接近于1(99.99%)
90%-95% 不合格 98-99% 接受范围内
都是以小时为单位:1年365天=8760小时
4、停机时间
计划内时间,计划内的时间可以不计,但是现在也算在内
计划外时间就是故障时间,从故障发生到故障解决的总时间,计划外时间是我们必须关注的一个指标
当天事必须当天解决-----------没有解决之间人是不可以离开的------------解决完之后必须生成报告,备案以及日报,周边,月报,年报等。
3、lvs适应场景
小集群不需要使用lvs,大集群适应lvs
1、lvs集群中的术语
vs vittual server lvs 服务的逻辑名称,也就是我们外部访问lvs集群时使用的ip地址和端口
DS director server lvs集群中的主服务器,也是调度器(nginx的代理服务器)是集群的核心,调度器就是用来接受客户端的请求转发到后端的服务器。
RS real server lvs集群中的真实服务器,后端服务器,用来接收DS转发来的请求,并且响应结果。
CIP Client ip 客户端的地址,发起请求的客户端地址。
VIP virtual ip lvs 集群使用的ip地址,对外提供集群访问的虚拟ip地址。
DIP dirextor ip 调度器在集群当中的地址,用于和RS通信。
RIP real ip 后端服务器在集群当中的ip地址。
2、lvs的工作方式
NAT模式 :响应要有调度器响应给客户端
DR模式 :直接路由模式 真实服务器直接响应给客户端
TUN: 隧道模式
常用的模式:NAT和DR模式
二、NAT模式
1、nat模式
nat模式是常用的lvs的模式之一。
在nat模式下,lvs会将来自客户端的请求报文中的目标ip地址和端口修改为lvs内部的ip地址和端口,然后把请求转发到后端服务器。
响应之后,响应结果返回客户端的过程中,响应报文经过lvs的处理,把目标ip和端口修改成客户端的ip地址和端口。
好处在于对客户端来说,请求的目标地址始终不变,客户端的配置不需要做特殊修改,只是调度器在对ip和端口进行转换,后端的服务器也不需要修改任何配置。
缺点:性能损失,请求和响应都需要调度器做地址转换,影响性能,net模式只能有一个调度,调度器故障,整个集群就不能正常工作。
2、地址转换
内网-----外网 转换的是源ip地址 snat
外网-----内网 转换的是目的ip dnat
1、客户端发起请求,访问的是vip地址,到达调度器
2、调度器接收到请求之后,根据负载均衡算法选一个后端服务器
3、把请求的地址转换成可以直接和内部RS通信的ip地址(源地址转换)
4、后端服务器处理请求
5、目的地址转换,转换成vip地址
6、调度器的vip响应给客户端。
3、lvs的工具
ipvsadm工具,用来配置和管理lvs集群的工具
-A 添加虚拟服务器 vip
-D 删除虚拟服务器地址
-s 指定负载均衡的调度算法
4、算法
rr默认轮询
wrr加权轮询
最小连接lc
加权最小连接 wlc
5、选项
-a 添加真实服务器
-d 删除真实服务器
-t 指定vip地址和端口
-r 指定rip真实服务器的地址和端口
-m 使用nat模式
-g 使用DR模式
-i 使用隧道模式
-w 设置权重
-p 60 设置连接保持时间
-l 列表查看
-n 数字化展示
6、实验
备配置
nginx1 RS1
nginx2 RS2
test1 调度器 ens33 ens36
test2 客户端
实现使用客户端访问真实服务器RS1,RS2