集群化知识整理
集群是什么
一组协同工作的服务器
通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作
负载均衡集群
LBC
-
load balance cluster
-
将压力分担至不同节点
-
结构
-
负载调度器 nginx < ha-proxy < LVS < f5
- 更换更强的负载调度器为主
- 减轻单集群压力,分散业务
-
-
分类
-
软硬件
-
软件
- F5 思捷 安瑞科技
-
硬件
- Nginx Haproxy LVS Amoeba
-
-
触发条件/OSI 七层模型
-
二层
- IP MAC
- 链路级负载 数据包源地址
- 电信、联通
-
四层
- IP PORT
- ha-proxy、Nginx、LVS
-
七层
- 主机名 域名
- ha-proxy、Nginx
-
-
-
原理
-
四层负载均衡调度器
- 整个过程发起一个完整的TCP连接,由客户端与真实服务器建立完成
- 客户端与真实服务器建立完成
-
七层负载均衡调度器
- 整个过程发起了两个完整的TCP连接
- 客户端与负载调度器建立连接
- 负载调度器与真实服务器建立连接
-
-
优缺点
-
性能
- 四层 > 七层
-
精确度
- 七层 > 四层
-
覆盖面积
- 四层:tcp udp
- 七层:nginx (http、ssl)
-
安全性
- 四层 < 七层
-
LVS
-
linux virtual server
-
组成
- ipvs:内核态 核心代码 钩子函数(内核机制)
- ipvsadm:用户态 命令行管理工具
-
NAT
-
NAT(网络地址转换模式)
-
特征
- 1.负载调度器必须位于真实服务器与客户端之间,并充当真实服务器的网关
- 2.真实服务器与负载调度器必须位于同一广播域以及同一个网段
- 3.支持端口映射
- 4.真实服务器操作系统是任意的
- 5.入站出站数据报文都经过负载调度器
-
-
DR
-
DR(直接路由模式)
-
特征
- 1.负载调度器和真实服务器必须处于同一广播域
- 2.不支持端口映射
- 3.真实服务器和负载调度器必须都是linux系统
- 4.入站数据报文由负载调度器转发,出站数据报文由真实服务器转发
-
-
TUN
-
TUN(IP隧道模式)
-
特征
- 1.负载调度器与真实服务器通讯采用数据包二次封装实现
- 2.负载调度器与真实服务器必须拥有公网IP或者是能被公网访问
- 3.入站数据报文由负载调度器转发至真实服务器,出站数据由真实服务器传输至客户端
-
-
如何选择
- 访问量非常大,而且后端节点较为稳定,DR模式是所有模式中压力最小的
- 访问较大,而且后端比较灵活,选择NAT模式
- 访问较大,而且机器在多个不同的公网中存在,选择TUN模式
-
实现算法
-
静态调度算法
-
不考虑服务器当前连接状态,直接采用轮循算法
-
RR
-
Round-Robin
- 轮循
-
将每次用户的请求分配给后端的服务器,从第一台开始到第n台结束,然后继续循环。
-
-
WRR
-
Weighted Round-Robin
- 加权轮循
-
在轮询的基础上为各个服务器设置权值,可以解决服务器性能不一致的问题,性能好的服务器权值较大,处理更多的请求。
-
-
SH
-
Source Hashing
- 源地址散列
-
将同一个IP的用户请求,发送给同一个服务器
-
-
DH
-
Destination Hashing
- 目标地址散列
-
通过一个散列(Hash)函数将一个目的IP地址映射到一台服务器,是一种静态映射算法。
-
-
-
动态调度算法
-
计算服务器当前压力值,根据压力值判断负载集群
-
LC
-
Least-Connection
- 最小连接
-
将新的连接请求,分配给连接数最少的服务器
- 计算方法:活动连接x256 + 非活动连接
-
-
WLC
-
Weighted Least-Connection
- 加权最小连接
-
特殊的最小连接算法,权重越大承担的请求数越多
- 计算方法:活动连接x256 + 非活动连接 / 权重
-
-
SED
-
Shortest Expected Delay Scheduling
- 最短的期望的延迟
-
特殊的WLC算法
- 计算方法:活动连接 x 256 / 权重
-
-
NQ
-
Never Queue Scheduling
- 最少队列
-
特殊的SED算法,无需等待,如果有真实服务器的连接数等于0就直接分配,不需要运算
-
-
LBLC
-
Locality-Based Least Connections
- 基于局部性的最少链接
-
特殊的DH算法,不同的是,其结合了DH算法和LC算法的优势。
-
-
LBLCR
-
Locality-Based Least Connections with Replication
- 带复制的基于局部性最少链接
-
尽可能提高负载均衡和缓存命中率的折中方案
-
-
-
-
持久化连接算法
-
PCC
-
持久端口连接
- 将来自于同一个客户端的所有请求统统定向至此前选定的RS;也就是只要IP相同,分配的服务器始终相同。
-
-
PPC
-
持久客户端连接
- 将来自于同一个客户端对同一个服务(端口)的请求,始终定向至此前选定的RS
-
-
PFMC
-
持久防火墙标记连接
- 使用iptables的标记功能,可以实现给多个服务(端口)打上相同的标记,然后在ipvsadm使用-f选项,并使用上述防火墙标记即可将多个服务放到一个LVS集群中。
-
-
高可用集群
HAC
-
high availability cluster
-
当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
-
常见级别
- 99
- 999
- 9999
- 99999
-
实现原理
-
心跳检测
-
可能的问题
-
脑分裂
-
解决方案
- 冗余
- 电源交换机
-
-
-
-
-
实现方案
- 软件 hearbeat keepalived
- 硬件 ROSE 恩瑞科技
高性能运算集群
HPC
- high perfomance computing cluster
- 高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。
- 分布式计算
- 分布式存储
本文档于2020年11月12日由Vonmerlot整理成文。