lvs集群

lvs集群

linux virtual server 开源项目,linux的内核层面实现负载均衡的软件

主要作用:将多个后端服务器组成一个高可用,高性能的服务器集群,通过负载均衡的算法将客户端的请求分发到后端的服务器以上来实现高可用和负载均衡

阿里的SLB
serverloab balance lvs+keepalive实现的。

集群和分布式:

垂直扩展:向上扩展,增强,性能更强的计算机。瓶颈:计算机本身设备的限制,硬件本身的性能瓶颈。

水平扩展:向外扩展,增加设备。并行地运行多个服务,倚靠网络解决内部通信的问题,cluster 集群。

集群:为了解决某个特定的问题将多台计算机组合起来形成的单个系统。

集群的类型 三种类型:

1、LB:load balance 负载均衡集群,多个主机组成,每个主机只承担一部分的访问请求

2、HA:high availablity 高可用集群,在设计系统时,采取一定的措施,确保系统当中某一组件或者部分出现故障,整个系统依然能够正常的运行。为了维护系统的可用性,可靠性,容错性。

3、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%

都是以小时为单位:

1年365天=8760小时

停机时间:

计划内时间,计划内的时间可以忽略不计。但是现在也算在内

计划外时间,故障时间,从故障发生到故障解决的总时间,尤其是运维,计划外时间是我们必须关注的一个指标

运维精神:7*24小时待命(及时响应,及时处理,及时总结)

lvs使用场景:

小集群不需要使用lvs,大集群使用lvs

lvs集群中的术语:

VS virtual server lvs服务的逻辑名称,也就是我们外部访问Ivs集群时使用的ip地址和端口

DS director server lvs集群中的主服务器,也就是调度器(nginx的代理服务器),是集群的核心。

调度器就是用来接受客户端的请求转发到后端的服务器

RS Real server lvs集群中的真实服务器,后端服务器,用来接受DS调度器转发来的请求,并且响应

CIP:Clinet ip 客户端的地址,发起请求的客户端地址

VIP:virtual IP lvs集群使用的ip地址,对外提供集群访问的虚拟IP地址

DIP:Director IP 调度器在集群当中的地址,用于和RS通信

RIP:Real ip 后端服务器在集群当中的ip地址

在这里插入图片描述

lvs的工作方式

NAT模式 响应要由调度器响应给客户端

DR模块,直接路由模式 真实服务器直接响应给客户端

TUN 隧道模式

常用的模式:NAT和DR

NAT模式

nat模式是常用的lvs模式之一

在nat模式下,lvs会将来及客户端的请求报文中的目的ip地址和端口,修改为lvs内部的ip地址和端口。然后把请求转发到后端服务器。
响应结果返回客户端的过程中,响应报文经过lvs的处理,把目标ip和端口修改成客户端的ip地址和端口

好处在于,对于客户端来说,请求的目标地址始终不变,客户端的配置不需要做特殊修改,只是调度器在对ip和端口端口进行转换,后端的服务器也不需要更改任何配置

缺点:性能损失,请求和响应都需要调度器做地址转换,影响性能
nat模式只用有一个调度,调度器故障,整个集群就不能正常工作。

地址转换:

内网-----外网 转换的源ip snat

外网------内网 转换目的地址 dnat

在这里插入图片描述

lvs的工具

ipvsadm工具,用来配置和管理lvs集群的工具

-A 添加虚拟服务器 vip

-D 删除虚拟服务器

-S 指定负载均衡的调度算法

-C 清空原有的策略

算法:

rr 默认,轮询

加权轮询:wrr

最小连接:lc

加权最小连接:wlc

-a 添加真实服务器

-d 删除真实服务器

-t 指定vip的地址和端口

-r 指定rip的地址和端口

-m 使用nat模式

-g 使用DR模式

-i 使用隧道模式

-w 设置权重

-p 60:连接保持60,设置连接保持时间

-l 列表查看

-n 数字化展示

创建vip地址的时候才能指定负载均衡算法。不是在真实服务器添加算法,没有办法修改,只能推倒重来

nginx1 RS1 192.168.39.30
nginx2 RS2 192.168.39.40
test1 调度器
ens33 192.168.39.50
ens36 12.0.0.1
test2 客户端 12.0.0.10。

将test1调度器中的添加一个新的网卡ens36
将test1调度器里的ens33更改
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.39.50
#这里将他的IP地址作为网关使用
NETMASK=255.255.255.0
#GATEWAY=192.168.39.2
#DNS1=218.2.135.1

将test1调度器里的ens36更改
TYPE=Ethernet
DEVICE=ens36
ONBOOT=yes
BOOTPROTO=static
IPADDR=12.0.0.1
#这里将IP地址改为外网地址
NETMASK=255.255.255.0
#GATEWAY=12.0.0.2
#DNS1=218.2.135.1

systemctl restart network

将nginx1和nginx2中的网卡更改
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.39.30
NETMASK=255.255.255.0
GATEWAY=192.168.39.50
#这里将网关更改为我们指向的网关地址
DNS1=218.2.135.1

将nginx1和nginx2,/usr/local/nginx/html中的index.html更改

回到test1中,我们需要把test1的地址转换做好
iptables -t nat -vnL
#查看nat上是否有策略
iptables -t nat -A POSTROUTING -s 192.168.39.0/24 -o ens36 -j SNAT --to 12.0.0.1
#指定nat表中,添加指定网段192.168.39.0 从ens36这个网卡出去,控制类型为SNAT,转换成12.0.0.1
ipvsadm -C #清空原有策略
ipvsadm -A -t 12.0.0.1:80 -s rr #添加虚拟服务器指定的vip地址和端口,默认轮询算法
#先添加vip,虚拟服务器的ip和端口,然后再添加真实服务器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.39.40:80 -m
#添加真实的服务器地址和端口,-m使用nat模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.39.50:80 -m
ipvsadm-save >/etc/sysconfig/ipvsadm
#保存到/etc/sysconfig/ipvsadm,使其永久添加,注意这里重启会有bug,必须ipvsadm -ln检查
#遇到bug,只能推倒重做
#开启路由转发的功能
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值