lvs介绍
lvs也是负载均衡的一种方式,lvs只能做四层的负载均衡。
lvs linux virtual server
lvs是基于集群的方式实现
集群和分布式:
分布式:把不同组件部署在不同的服务器上,组件之间(应用)依靠网络进行通信,实现定制化的功能。
集群:多个应用。相同的应用,部署在不同的服务器,提供统一的服务,以及同样的功能。机器的性能大致相同。
系统性能扩展方式:
单节点的扩展方式:垂直扩展,向上扩展,提升计算机的性能(硬件性能)。性能提示是有瓶颈的。
水平扩展,向外扩展,增加设备的方式提供性能。这就是集群的由来。
串行---------------------》并行
集群的类型:
负载均衡 LB load balancing
HA high Availiablity 高可用
负载均衡的高可用
主备高可用 keepalive 用的是vrrp协议
系统的可靠性指标:
值范围: 0-1
MTBF:平均无故障时间
MTTR:评价恢复时间
A=MTBF/(MTBF+MTTR)*100%
A的值要无限接近于1
停机时间:不算在故障时间范围之内。
计划内停机时间,这个是不算在故障时间
计划外的停机时间 算在故障时间内
lvs:
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:隧道模式 vpn(需要运营商提供vpn的地址)
NAT模式
NAT的性能较差,第一要进行转换,第二要进行数据包的路由
NAT模式的后端真实服务器10-30台之间。
NAT模式实验:数据流向如下图所示
工具:ipvsadm用来管理和配置lvs集群的工具,集成在linux系统的内核当中。
客户端 访问 12.0.0.10
nginx1 调度器 192.168.32.20 12.0.0.10
apt -y install ipvsadm
modprobe ip_vs 加载模块
配置网卡
添加策略
#当访问12.0.0.10时,数据包可以转发到的真实服务器之一,-m指定使用NAT模式
查看策略是否成功
配置服务器 打开nginx服务器的内核转换功能
地址转换
删除节点服务器
加权轮询 指定权限
nginx2 后端真实服务器1 192.168.32.21
修改网关 要与调度器的ip地址一致
打开nginx
nginx3 后端真实服务器2 192.168.32.22
修改网关 要与调度器的ip地址一致
打开nginx
ipvsadm的操作命令:
-A 添加虚拟服务器
-D 删除整个虚拟服务器,虚拟服务器对应的就是后台的真实服务器
-s 指定负载均衡点算法,加载时必须要声明算法
rr轮询 wrr加权轮询 lc最小连接数 wlc加权最小连接数
-a 添加真实服务器
-m 表示集群使用的是NAT模式
-g 表示使用的是DR模式
-i 表示使用的是隧道模式
-w 设置权重
-l 列表形式查看策略
-n 数字化查看策略
-C 删除所有策略
-t 指定调度器的vip地址的ip和端口
-r 指定RIP的IP地址和端口
lvs的nat:
调度器的压力很大,地址转换,负载均衡算法 数据包转发,响应。非常影响性能。
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地址,真实服务器的数据不通过调度器进行转发。
虚拟网卡
调度器
创建虚拟ip地址
真实服务器
物理网卡
调度器
添加物理网卡
真实服务器
添加物理网卡