一, 集群概述
1. 集群是什么
定义: 一组协同工作的服务器, 对外表现为一个整体
集群的意义: 更好的利用现有资源实现服务的高度可用
集群的扩展方式:
垂直扩展: 更换服务器硬件
水平扩展: 添加更多的服务器节点
常见的集群拓扑
2. 集群的分类
2.1 负载均衡集群 - LBC(Load balancing clusters)
使用目的: 减轻单台服务器的压力, 将用户请求分担给多台主机一起处理
实现方法:
软件: LVA RAC Nginx
硬件: F5 BIG-IP
负载均衡集群架构拓扑
调度器分类
触发条件不同
四层: 传输层 IP + PORT
七层: 应用层 URL
实现原理不同
四层: TCP 连接只建立一次, 客户端和正式服务器
七层: TCP 连接建立两次, 客户端和负载调度器, 负载调度器和真实服务器
实现场景不同
四层: TCP 应用 如: 基于 C/S 架构的 ERP 系统
七层: THHP 应用 如: 根据用户访问域名的方式, 判断用户语言
安全性不同
四层: 转发 SYN 攻击
七层: 可以拦截 SYN 攻击
使用范围: 业务并发较大的应用程序
2.2 高可用集群 - HAC(High Available clusters)
使用目的: 最大限度的保证用户的应用持久, 不间断的提供服务
最大限度
99% 99 87.6 小时
99.9% 999 8.8 小时
99.99% 9999 53 分钟
99.999% 99999 5 分钟
实现原理: 心跳检测
实现方法
软件
- heartbeat Linux-HA
- RHCS
- ROSE
- keepalived
硬件
F5
特殊情况: 脑分裂
可能出现的问题: 数据不完整, 数据不可访问
解决方法: 预防: 冗余, 强制隔离: 电源交换机
使用范围: 需要持续提供服务的应用程序
2.3 高性能运算集群 - HPC(High Performance Computing)
使用目的: 提供单台计算机所不具备的计算能力
LBC 与 HPC 原理对比:
负载均衡集群通过提高单位时间内执行的任务数来提高效率
高性能运算集群通过缩短单个任务的执行时间来提高效率
使用范围: 天气计算, 火箭弹道演算
二, 负载均衡集群
1. LVS 相关原理
LVS 的组成
IPVS: 运行在内核空间
IPVSADM: 运行在用户空间, 管理集群服务的命令行工具
LVS 的原理: 根据用户请求的套接字判断, 分流至真实服务器的工作模块
2. LVS 工作方式
工作模式
2.1 LVS - DR 模式
工作逻辑图
模式特点
集群节点, 必须在一个网络中
真实服务器网关指向路由器
RIP 既可以是私网地址, 又可以是公网地址
负载调度器只负责入站请求
大大减轻负载调度器压力, 支持更多的服务器节点
2.2 LVS - NAT 模式
工作逻辑图
模式特点
集群节点, 必须在一个网络中
真实服务器必须将网关指向负载调度器
RIP 通常都是私有 IP, 仅用于各个集群节点通信
负载调度器必须位于客户端和真实服务器之间, 充当网关
支持端口映射
负载调度器操作系统必须是 Linux, 真实服务器可以使用任意系统
2.3 LVS - TUN 模式
模式特点
集群节点不必位于同一个物理网络但必须都拥有公网 IP(或都可以被路由)
真实服务器不能将网关指向负载调度器
RIP 必须是公网地址
负载调度器只负责入站请求
不支持端口映射功能
发送方和接收方必须支持隧道功能
来源: http://www.bubuko.com/infodetail-3372558.html