Linux 集群
2019-06-12-集群
Linux 集群
1.liunx 集群概述:
1.1 集群概念:
一组协同工作的服务器,对外表现为一个整体,更好的利用现有资源实现服务的高度可用
1.2 集群(Cluster)的分类:
- LBC(Load Balancing):负载均衡集群
- 减轻单台服务器的压力,将用户请求分担给多台主机一起处理
- 实现方法:
- 软件:LVS、RAC、Ngnix、
- LVS(Linux Virtual Server)
- 硬件:F5、BIG-IP
- HAC(High Availiablity):高可用集群
- 最大限度的保证用户的应用持久,不间断的提供服务
- 实现原理:心跳检测
- 实现方法:
- 软件:heartbeat linux-HA、RHCS、ROSE、keepalived
- 硬件:F5
- HPC(High-performance computing):高性能运算集群
2.负载均衡集群(LBC)
2.1LVS 相关原理:
LVS 运行在系统内核空间
netfilter的INPUT钩子上的框架,用户空间无法直接管理,用IPVSADM命令行工具管理集群服务;根据用户请求的套接字判断,分流至真实服务器的工作模块
- 管理集群服务: 增、改、删
1
2
3
4ipvsadm -A|E -t|u|f service-address [-s,scheduler] [-p [timeout]]
ipvsadm -D -t|u|f service-address
service-address: -t|u|f
-s,scheduler: # 指定集群调度算法, 默认:WLC - 管理集群的RS: 增、改、删
1
2ipvsadm -a|e -t|u|f service-address -r service-address [-g|i|m] [-w,weight]
ipvsadm -d -t|u|f service-address -r service-address
2.2LVS工作模式:
- NAT(多目标的DNAT) ✔
- 模式特点:
- 网络层,替换目标地址;
- 集群节点,必须在一个网络中;
- 真实服务器网关必须指向负载调度器;
- RIP通常都是私有IP,仅用于各个集群节点通信;
- 负载调度器必须位于客户端和真实服务器之间,充当网关;
- 支持端口映射,负载调度器操作系统必须是Linux ,真实服务器可以使用任意系统;
- 模式特点:
- DR(Direct Routing) ✔
- 模式特点:
- 数据链路层,更改MAC地址,关闭ARP广播;
- 集群节点,必须在一个网络中;
- 真实服务器网关指向路由器;
- RIP既可以是私网地址,又可以是公网地址;
- 不支持端口映射;
- 模式特点:
- TUN
- 模式特点:
- 集群节点不必位于同一个物理网络但必须都拥有公网IP(或都可以被路由)
- 真实服务器不能将网管指向负载调度器
- RIP必须是公网地址
- 负载调度器只负责入站请求
- 不支持端口映射功能
- 发送方和接收方必须支持隧道功能
- 模式特点:
3.集群通用算法
3.1静态调度算法:
- RR 轮询算法:第一台服务器开始到N台结束,然后循环 :laughing:
- WRR 加权算法:按权重比例实现多台主机之间进行调度 :smile:
- SH 源地址散列:将同一个IP用户请求,发送给同一个服务器
- DH 目标地址散列:将同一个目标地址的用户请求发送给通一个真实服务器(提高缓存服务率)
3.2动态调度算法:
- LC:Lest-connection,最少连接,将新的连接请求,分配给连接数最少的服务器 :smile:
- 活动连接*256 + 非活动连接
- WLC:加权最少连接,特殊的LC算法,权重越大承担请求越多 :smile:
- (活动连接*256 + 非活动连接)/ 权重
- SED:最短期望延迟,特殊的WLC算法
- (活动连接 + 1)*256 / 权重
- NQ:无需等待,特殊的SED算法,若有正是服务器的连接数等于0就直接分配不需要运算
- LBLC:特殊的DH算法,即提高缓存命中率,有考虑了服务器性能
- LBLCR:LBLCR缓存,尽可能提高负载均衡和缓存命中率折中方案
3.3持久化连接(类似于SH优先级最高)
- PCC:持久客户端连接
- 将来自于同一个客户端的所有请求统统定向此前选定的RS,只要IP相同,分配的服务器始终相同
- PPC:持久端口连接
- 将来自于同一个客户端对同一个服务(端口)的请求,始终定向此前选定的RS
- PMFC:持久防火墙标记连接
- 将来自同一个客户端指定服务(端口)的请求,始终定向至此选定的RS,不过它可以将2个不相关的端口定义为一个集群服务
3.4ipvsadm编译安装
1 | |
| ipvsadm 命令选项 | 说明 |
|---|---|
| -A | 添加虚拟服务器IP |
| -s | 设置调度算法 |
| -a | 添加真实主机 |
| -t | TCP_PORT |
| -u | UDP_PORT |
| -f | 标记 |
| -g | DR模式(直接路由) |
| -m | NAT模式 |
| -i | TUN模式 |
| -w | 权重 |
| -Ln | 以数字形式输出地址和端口 |
| -nS | 重定向保存文件 |
| -restore | 恢复 |
| -C | 清空定义所有内容 |
| -Z | 清空计数器 |
4.LVS工作模式构建:
4.1 NAT 模式构建:
1 | |
4.2负载调度器配置(VIP,DIP):
1 | |
4.3真实服务器配置:
1 | |
4.4DR 模式构建:
1 | |
4.5负载调度器配置
1 | |
4.6真实服务器
1 | |
5.高可用集群(HAC)
5.1Keeplived原理:
- 热备方式:VRRP 虚拟路由冗余协议
- 一主+多备,共用同一个IP,但优先级不同
- 支持故障自动切换
- 支持节点健康状态检查
5.2LVS-DR+Keeplived:
5.3负载调度器 1
1 | |
5.4负载调度器 2
1 | |
5.5真实服务器
1 | |
5.6Heartbeat+Nginx:
1 | |
Linux 集群
https://anyu967.github.io/posts/f8c8020d.html