集群: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小时待命
设计集群时需要考虑的一些原则
- 可扩展性:集群要随时可以添加或者删除设备的能力,(专业说法叫动态扩容与缩容)
- 可靠性:在集群中如果有节点发生故障,可以快速检测并且自动切换。
- 负载均衡:合理的分配负载,避免单个节点过载,影响整体的性能
- 可维护性:能够方便的进行配置,部署,维护,监控,降低成本。
- 安全性:防止恶意的攻击以及数据泄露,数据丢失。
- 易用性:相关的工作人员,可以方便的进入这个集群,以便快速的开发,部署,测试等等
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访问的大致流程
- 客户端访问的都是访问vip
- DS接收到请求,根据调度算法选择好后端服务器(rs)请求发送给rs
- RS处理请求并将响应发送到DS调度器
- DS把RS的真实响应包装秤自己的响应,发送到客户端
客户端既不知道请求的真实服务器,也不知道响应的服务器是谁
Lvs的负载均衡方式
NAT
DR
TUN
其中NAT和DR最常用的方式
NAT模式
NAT模式是最常用的LVS负载方式之一
NAT主要功能就是地址转换
Nat模式
- 在调度器上配置双网卡,一个指内,一个指外
- 配置一个可以和公网进行通信的VIP
- 配置转发策略,如果访问公网的vip,就会把请求的数据转发到后台的RS,请求的格式是报文,而调度器会修改请求的目标IP地址和端口
- 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
客户端
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: python系列之:深入理解函数、方法以及函数和方法的区别
python系列之:python系列之:深入理解函数、方法以及函数和方法的区别 一、函数 二、函数参数 1.必需参数 2.关键字参数 3.默认参数 4.不定长参数 三、函数和方法的区别 一、函数 Python 定义函数使用 def 关键字,一般格式如下: de…