LVS集群

集群实验:(nginx四层和七层+动静分离 ----- 23.10.18)

集群概念:为解决某个特定的问题,将多个计算机合起来,形成一个单系统

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

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

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

集群的类型:

1、负载均衡集群 LB ( loab blance )

多个主机组成,每个主机只承担一部分访问请求。靠负载均衡算法实现

2、高可用集群 HA ( high availiablity )

避免SPOF(single point of failure,既单点故障)。系统当中有一部分组件出现故障,可以保障整个系统继续运行

主从 ----- 同步(某些特定服务需要这个概念) ----- 负载均衡

3、高性能集群 HPC ( high-performance computing )

核心:快速转发、快速响应

集群的可靠性指标:

1、MTBF ( mean time between failure )

系统在正常运行期间无故障的平均时间,一般用小时或者天数来表示。MTBF的值越高,系统的稳定性就越好,系统的可靠性就越高,出现故障的概率就越小

2、MTTR

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

3、A

系统的可靠性指标。A值越高越好

A=MTBF/(MTBF+MTTR)×100%

1年=365天=8760小时

99.9% 8760*0.1%=8.76(h)

故障时间最多:8.76h

停机时间:故障时间

计划内停机:预定时间内的维护或者检修时间(根据企业或者服务需求配置自定义)

计划外停机:(运维人员关注的就是计划外停机)7*24h

发版期

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

1、可扩展性

集群必须要有很好的可扩展性,要具备随时可以添加/删除设备的能力****(动态扩缩容能力)****

2、可靠性

集群中如果有节点发生故障,可以快速检测并自动切换。

3、负载均衡

合理分配每台服务器的负载,避免单个节点过载,影响整体性能

4、可维护性

能够方便的进行配置、部署、维护、监控。降低成本

5、安全性

防止恶意攻击以及数据泄密、数据丢失

6、易用性

相关的工作人员可以方便的进入集群,能够快速的开发、部署、测试等

LVS集群( linux virtural server )

只能部署在Linux系统,通过内核层面实现负载均衡的软件

开发者:章文嵩发起的开源项目

主要作用:多个后端服务器组成一个高可用、高性能、负载均衡的而高性能集群。通过负载均衡的算法将客户端请求发送到后端服务器

阿里的SLB(server load balance)基于LVS+keepalived实现

lvs集群中的术语:

1、VS ( virtual server )

LVS服务的逻辑名称,外部访问LVS集群时提供的一个虚拟IP弟子和端口

2、DS ( director server )

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

3、RS ( real server )

LVS的后端的真实服务器的IP。接收到了调度器DS的请求之后,返回响应的结果

4、CIP ( client ip )

客户端的IP地址

5、VIP ( virtual ip server )

对外提供访问的统一的虚拟IP地址

6、DIP ( director ip server )

调度器在LVS内部使用的IP地址。用于和真实服务器进行通信

7、RIP

后端真实服务器的IP地址

LVS访问的大致流程:

step1:客户端都是访问vip

step2:DS接收到请求之后,根据调度算法选择好后端服务器(RS),请求发给RS

step3:RS处理请求并将响应发送到DS

step4:DS把RS的响应包装成自己的响应,发送到客户端。

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

LVS负载均衡方式:

NAT DR TUN(隧道模式)

其中NAT和DR时最常用的方式

1、NAT模式

最常用的LVS负载方式之一

地址转换

NAT模式:

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

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

3、配置转发策略,核心就是如果访问VIP,就会把请求的数据转发到后台的RS真实服务器

请求的格式:报文。调度器会修改请求的目标ip地址和端口

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

成公网地址,响应给用户

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

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

调度器的内网IP地址和 真实服务器的IP地址要在同一网段

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

DR模式(直接路由模式)

请求由路由器调度完成,但是响应客户端由RS真实服务器直接响应,不需要通过调度器

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

TUN(隧道协议)

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

设置LVS集群:

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

-A 添加虚拟服务器

-D 删除整个虚拟服务器

-s(小写) 指定负载调度的算法【静态调度 动态调度】

静态调度(固定调度)

rr 轮询;

wrr 加权轮询;

dh 目的地址hash;

sh 源地址hash

dh和sh都是根据IP地址查找静态hash表,获取需要真实的RS地址

动态调度:

lc 最小连接数调度

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

lblc 基于地址的小小连接数调度(将来自同一个目的地址的请求分配给RS,如果这台服务器尚未满负荷,就会把请求分配给连接数最小的RS,而且在下一次转发时会优先考虑这台RS)

-a 添加真实服务器

-d 删除真实服务器

-t 指定VIP地址的端口号

-r 指定RIP的端口号

-m 表示使用nat模式

-g 表示使用DR模式

-i 表示使用TUN模式

-w 设置真实服务器的权重

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

In 以数字和列表的形式查看Ivs的配置信息

相关推荐
梦游钓鱼34 分钟前
在window终端创建docker容器的问题
运维·docker·容器
孤寂大仙v40 分钟前
【Linux笔记】理解文件系统(上)
linux·运维·笔记
沉默的八哥1 小时前
K8S高可用Web应用部署方案
运维
winyh51 小时前
Vite 打包后Nginx部署配置
运维·nginx
pyliumy2 小时前
在基于Arm架构的华为鲲鹏服务器上,针对openEuler 20.03 LTS操作系统, 安装Ansible 和MySQL
服务器·架构·ansible
运维小贺2 小时前
Nginx常用的模块
运维·nginx·正则表达式
努力学习的小廉2 小时前
深入了解Linux —— 调试程序
linux·运维·服务器
努力学习的小廉3 小时前
深入了解Linux —— git三板斧
linux·运维·git
只做开心事3 小时前
Linux网络之数据链路层协议
linux·服务器·网络
AI学IT3 小时前
(安全防御)旁挂组网双机热备负载分担实验
运维·服务器·网络