lvs集群
linux virtual server
章文嵩发起的开源i项目,阿里。linux的内核层面实现负载均衡的软件
主要作用:将多个后端服务器组成一个高可用,高性能的服务器集群,通过
负载均衡的算法将客户端的请求分发到后端的服务器上。来实现高可用和负载均衡。
阿里的SLB
server loab balance lvs+keepalive实现的
集群和分布式:
主要应对系统的拓展方式 :
垂直扩展:向上扩展,增强计算机硬件的设备性能 两个瓶颈 计算机本身设备得限制 (显卡被焊死) 硬件本身的性能瓶颈
水平扩展:向外扩展,增加设备。并行地运行多个服务,依靠网络解决内部通信得问题 ,cluster集群。
集群:为了解决某个特定问题将多台计算机组合起来形成得单个系统
1.1集群的类型,三种类型
LB:load balance 负载均衡集群,多个主机组成,每个主机只承担一部分的访问请求
HA:high availiablity高可用 ,在设计系统时,采取一定的措施确保系统当中某一组线或者部分
出现故障,整个系统依然能够正常的运行,为了维护整个系统的可用性,可靠性,容错性。
负载均衡可以包含高可用 高可用未必包含负载均衡
HPC:high-performance computing 高性能 对响应时间,处理能力要求更高。
MTBF:Mean time Between Failure 平均无故障时间
MTTR:Mean Time Resotration repair 平均故障恢复时间
A=MTBF/(MTBF+MTTR)
0-1
A指标要在0-1之间,A指标就是系统可用性的度量,0表示系统越不可用,1表示系统越可用
A指标要无线接近于1
99.99%
90-95%不合格
炸1-2次
指标都是以小时为单位
1年365天=8760小时
90 (1-90%)*365=36.5天
停机时间:
计划内时间,计划内的时间可以忽略不记,但是现在也算在内
计划外时间,就是故障时间,从故障发生到故障解决的总时间
尤其是运维计划外时间必须关注的一个指标
当天事必须当天解决--------没有解决之前人是不可以离开的------------解决完之后必须生成报告,备案。
日报,周报,月报,年报
运维精神 7*24小时待命 (及时响应,及时处理,及时总结)
lvs适用场景
小集群不需要适用lvs,大集群适用lvs
1.2lvs集群中的术语
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 Director ip 调度器在集群当中的地址 用于和RS通信
RIP REAL ip 后端服务器在集群当中的ip地址
1.3lvs的工作方式
NAT模式 响应要有调度器响应给客户端
DR模式(直接路由模式)由真实服务器直接响应给客户端
TUN 隧道模式 需要打开一个专门的vpn
常用的模式 NAT和DR模式
nat特点: 地址转换
NAT模式是常用的lvs模式之一
在nat模式下lvs会将来自客户端的请求报文中的目的IP地址和端口,修改为lvs内部的ip地址和端口然后把请求转发到后端服务器
响应结果返回客户端的过程中 ,响应报文也是要经过lvs的处理,把目标ip和端口修改成客户端的ip地址和端口
好处在于,对于客户端来说,请求的目标地址始终不变,客户端的配置不需要做特殊修改只是调度器在对ip地址进行转换,后端的服务器也不需要更改任何配置。
缺点:性能损失,请求和响应都需要调度器做地址转换,影响性能,NAT模式只能有一个调度器,如果调度器故障,整个集群就不能正常工作。
内网------外网是源ip
外网-------内网是目的
NAT地址转换
lvs的工具
ipvsadm工具,用来配置和管理lvs集群的工具。
-A 添加虚拟服务器 vip
-D 删除虚拟服务器地址
-s 指定负载均衡的调度算法
算法:
rr默认,轮询
加权轮询 wrr
最小连接 lc
加权最小连接 wlc
-a 添加真实服务器
-d 删除真实服务器
-t 指定vip的地址和端口
-r 指定rip的地址和端口(真实服务器)
-m 使用nat模式
-g 使用dr模式
-i 使用隧道模式
-w 设置权重
-p 60连接保持时间 设置连接保持时间
-l 列表查看
-n 数字化展示
部署lvs NAT模式
第一步 关防火墙 安全机制
systemctl stop firewalld
setenforce 0
systemctl restart nginx
第二步 手动加载 ip_vs 模块
modprobe ip_vs
cat /proc/net/ip_vs
cat /proc/net/ip_vs //查看当前系统中ip_vs模块的版本信息
安装ipvsadm
第三步配置调度器网卡
用本机ip地址做网关
修改服务器的网卡
把网关指向内网的网卡的ip地址
指定表名查看有没有策略
iptables -t nat -vnL
iptables -t nat -A POSTROUTING -s 192.168.183.0/24 -o ens36 -j SNAT --to 12.0.0.1 地址转换
ipvsadm -C #清空原有策略
ipvsadm -A -t 12.0.0.1:80 -s wlc #指定好的vip的地址和端口
先添加vip,虚拟服务器的ip和端口,然后再添加真实服务器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.183.110 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.183.120 -m
-a 添加真实服务器
-t 指定vip地址
-r 指定真实服务器的地址和端口
-m 指定模式为nat模式
先指定vip 然后vip转发到哪个服务器
如何查看
ipvsadm -ln
ipvsadm-save >/etc/sysconfig/ipvsadm #保存策略
保存之后重启再查看
出bug只能删除重来
ipvsadm -D -t 192.168.183.10:80 #删除服务
ipvsadm -d -r 192.168.183.10:80 -t 12.0.0.1:80 #删除节点服务器
开启路由转发功能
vim /etc/sysctl.conf
**开启路由转发功能**
vim /etc/sysctl.conf
测试是否开启
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7ac9083583d645ecb8a83a2b3d09bf14.png)