LVS集群

集群:nginx四层和七层+动静分离

概念

为了解决某个特定问题将多个计算机组合起来形成一个单系统

集群的目的就是为了解决系统的性能瓶颈。

垂直扩展:向上扩展,增加单个机器的性能,升级硬件,是有瓶颈的。

水平扩展:向外扩展,增加设备,并行的运行多个服务,主要是通过网络和算法,来调度服务分配的问题

集群的类型

1.负载均衡集群:英文表示LB loab blance 多个主机组成,每个主机只承担一部分访问机制,主要靠负载均衡算法来实现。

2.高可用集群:HA high avavailiablity 避免SPOF(single point failuer) 单点故障,系统当中,有一部分组件出现故障,可以保证,整个系统继续运行

3.主从---同步(某些特定的服务需要这个概念)----还能实现负载均衡

4.HPC:high-performance computing 快速转发,快速响应。

集群的可靠性指标

MTBF:mean time between failusre :系统在正常运行期间无故障的平均时间,一般用小时,或者天数表示。MTBF值越高,系统的可靠性越高,出现故障的概率也越小

MTBF:系统从发生故障到恢复正常运行的平均时间,一般用小时或者天数表示,MTTR值越小,说明系统恢复故障的能力越强。

A:系统的可靠性指标A值越高越好,A值一般用百分号来表示

A值怎么算的?

A=MTBF /(MTBF+MTTR)

举例

99.9%A值

1年=365天=8750小时

99.9=8760*01%=8.76小时

淘宝的要求

99.999%=52.6分钟

99.9999=31秒

国家电网要求是98%

停机时间

计划内停机:指的是预定时间内的维护或者检修时间,自定义。

计划外停机:运维人员主要关注的就是计划外,如突然出现的意外 7*24小时待命

设计集群时需要考虑的一些原则

  1. 可扩展性:集群要随时可以添加或者删除设备的能力,(专业说法叫动态扩容与缩容)
  2. 可靠性:在集群中如果有节点发生故障,可以快速检测并且自动切换。
  3. 负载均衡:合理的分配负载,避免单个节点过载,影响整体的性能
  4. 可维护性:能够方便的进行配置,部署,维护,监控,降低成本。
  5. 安全性:防止恶意的攻击以及数据泄露,数据丢失。
  6. 易用性:相关的工作人员,可以方便的进入这个集群,以便快速的开发,部署,测试等等

LVS集群概念

1.Lvs:linux virtual server 是一个部署在linux 系统的通过内核层面实现负载均衡的软件

2.开发者姓名:章文嵩 ,由祂发起的开源项目

3.其主要作用:由多个后端服务器组成一个高可用,高性能,负载均衡的高性能集群,通过负载均衡的算法将客户端请求发送到都断服务器

4.阿里的SLB server load balance 基于LVS+keepalived 实现

5.Lvs集群当中的术语

Vs:(virtual server)lvs服务的逻辑名字,外部访问lvs集群时提供的一个虚拟ip地址和端口

DS:Director server : LVS集群当中的主服务器,也叫调度器,是整个LVS集群的核心,接收客户端的请求转发到后端RS

RS:real server lvs 的后端真实服务器的ip,接收到了DS的请求之后,返回响应结果。

CIP:client ip 客户端的ip地址

Vip:virtual ip 对外访问的同一虚拟IP地址。

DIP:Director ip 调度器在lvs内部使用的IP地址,用于和真是服务器进行通信

RIP:后端真实服务器的ip地址

Lvs访问的大致流程

  1. 客户端访问的都是访问vip
  2. DS接收到请求,根据调度算法选择好后端服务器(rs)请求发送给rs
  3. RS处理请求并将响应发送到DS调度器
  4. DS把RS的真实响应包装秤自己的响应,发送到客户端

客户端既不知道请求的真实服务器,也不知道响应的服务器是谁

Lvs的负载均衡方式

NAT

DR

TUN

其中NAT和DR最常用的方式

NAT模式

NAT模式是最常用的LVS负载方式之一

NAT主要功能就是地址转换

Nat模式

  1. 在调度器上配置双网卡,一个指内,一个指外

  2. 配置一个可以和公网进行通信的VIP

  3. 配置转发策略,如果访问公网的vip,就会把请求的数据转发到后台的RS,请求的格式是报文,而调度器会修改请求的目标IP地址和端口

  4. RS处理完请求之后,响应客户端,先到调度器,调度器再进行地址转换,把内网地址转换成公网地址,响应给用户

数据请求进入调度器做的请求报文中ip地址的修改

数据响应进入调度器,根据NAT配置进行地址转换

有一点要注意:调度器的内网ip地址和真实服务器的ip地址要在同一网站

Nat:对于客户端来说请求地址始终不变,客户端不需要修改任何配置,转发由调度器通过算法来完成,后端服务器只管接收响应,也不需要修改任何配置。

但是他会有个问题会导致性能损失和单点故障

DR

dr模式也叫直接路由模式,它的特点是请求由调度器完成,但是响应客户端由真是服务器直接响应,不需要通过调度器,

好处是:性能高,而且可以配置vip地址的高可用,不存在单点故障。

Tun:隧道模式隧道协议,把请求转发到后端服务器,需要在后端服务器配置隧道协议

设置lvs

Ipvsadm工具:管理ipvs内核模块的命令行工具,可用于配置和管理lvs集群

-A:添加虚拟服务器

-D:删除整个虚拟服务器

-S:指定负载调度的算法

静态调度

Rr:轮询

Wrr:加权轮询

Dh:目的地址hash

根据ip地址查找静态hash表,获取需要真实的RS的地址

Sh:源地址hash

动态调度

Lc:最小连接数

Wlc:加权最小连接数调度

权重高的。转发的就多,为了避免性能瓶颈,在跟上最小连接数分配,可以把请求往连接数量较小的服务器继续转

Lblc:基于地址的最小连接数调度

将来自同一个目的地址的请求分配给RS,如果这台服务器尚未满负荷,就会把请求分配给最小RS,贰仟在下一次转发时会优先考虑这台RS。

-a:添加真实服务器

-d:删除真实服务器

-t:指定vip地址的端口号

-r:指定RIP的端口号

-m:表示使用nat模式

-g:表示使用DR模式

-i:表示使用隧道模式(TUN模式)

-w:设置真是服务器的权重

-p60:设置连接保持的时间为60秒(默认不带)

-ln:以数字和列表的形式查看lvs的配置信息

Nat模式的部署方式

负载调度器:配置双网卡: 192.168.233.10(内网) 12.0.0.1(ens36)

二台后端web真实服务器:192.168.233.20 192.168.233.30

一台NFS共享服务器:192.168.233.40

客户端

相关推荐
0白露1 小时前
Apifox Helper 与 Swagger3 区别
开发语言
Tanecious.2 小时前
机器视觉--python基础语法
开发语言·python
叠叠乐2 小时前
rust Send Sync 以及对象安全和对象不安全
开发语言·安全·rust
战族狼魂3 小时前
CSGO 皮肤交易平台后端 (Spring Boot) 代码结构与示例
java·spring boot·后端
Tttian6224 小时前
Python办公自动化(3)对Excel的操作
开发语言·python·excel
xyliiiiiL4 小时前
ZGC初步了解
java·jvm·算法
杉之4 小时前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
hycccccch4 小时前
Canal+RabbitMQ实现MySQL数据增量同步
java·数据库·后端·rabbitmq
独好紫罗兰5 小时前
洛谷题单2-P5713 【深基3.例5】洛谷团队系统-python-流程图重构
开发语言·python·算法
天天向上杰5 小时前
面基JavaEE银行金融业务逻辑层处理金融数据类型BigDecimal
java·bigdecimal