一、集群:
1.1 什么是集群?
一组通过高速网络会连的计算组,并以单一系统的模式加以管理;
将很多服务器集中起来一起,提供同一种服务,在客户端看起来只有一个服务器一样;
可以在付出较低成本的情况下获得在性能/可靠性/灵活性方面的相对较高的收益;
任务调度是集群系统中的核心技术
1.2 集群目的:
提高性能
降低成本
提高可扩展性
增强可靠性
1.3 集群分类:
高性能计算集群HPC
——通过以集群开发的并行应用程序,解决复杂的科学问题
——反复进行一个计算,一般用于科研等需要精算的领域
负责均衡LB集群
——客户端负载在计算机集群中尽可能平均分摊
——用 LVS、HAproxy、nginx 等软件实现
高可用 HA 集群
——避免单点故障,当一个系统发生故障时,可以快速迁移
——做备份,主服务器出问题后,备用服务器将会顶替上,用 Keepalived 等软件实现。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
二、LVS(LINUX 虚拟服务器)
LVS可以实现高可用、可伸缩的Web、Mail、Cache和Media等网络服务;
最终目标是利用Linux操作系统的LVS集群软件实现一个高可用、高性能、低成本的服务器应用集群。
2.1 LVS集群组成
前端:负载均衡层
——由一台或多台负载调度器构成
中间:服务器群组层
——由一组实际运行应用服务的服务器组成
底端:数据共享存储层
——提高共享存储空间的存储区域
2.2 LVS 术语
Director Server 调度服务器、分发服务器
——将负载分发到Real Server 的服务器上
Real Server :真实服务器
——真正提供应用服务的服务器
VIP:虚拟IP地址
——用于和公网的客户端设备连接的网卡,客户端访问的IP
RIP 真实IP地址
——集群节点上使用的IP地址
DIP 调度器IP
——调度服务器的一个网卡上的一个IP,用于和内网的真实服务器连接的IP
CIP 客户端IP
2.3 LVS 工作模式
NAT 模式:地址转换模式
LVS/NAT:通过网络地址转换实现的虚拟服务器;LVS服务器同时完成路由功能,所有数据的传递都是经过LVS;
大并发访问时,调度器的性能称为瓶颈;
主要用于: 服务器的ip都是私网地址,LVS服务器有外网IP和私网IP
优点: 只需要一个公网IP,适用于小规模集群
客户端 <—外网<—> LVS分发服务器(具有路由功能) <—内网—> 服务器 <—内网—> 后端存储设备
+++++++++++++++++++++++++++++++++++++++++++++++++++++
TUN 模式:隧道模式(生成情况下用的少)
通过隧道方式实现虚拟服务器
++++++++++++++++++++++++++++++++++++++++++++++++++
DR模式:直接路由模式 (重点)
LVS/DR: 通过路由技术实现发布,返回数据的时候不经过LVS服务器,在请求后客户端和服务端建立1对1连接,进行数据传递(常用);节点服务器需要配置VIP,注意MAC地址广播;
主要用于: 服务器的ip都有一个公网地址 ,LVS也有公网IP,这时候所有设备都能直接连接外网
优点: 综合性能高,可拓展性强,LVS服务器的压力也不会太大
不足: 每个服务器都需要一个公网IP,费用较高
客户端发出的请求:
客户端 —外网—> 路由 —内网—> LVS分发服务器(不需要路由功能) —内网—> 服务器 —内网—> 后端存储设备
服务端响应:
客户端 <—外网— 路由 <—内网— 服务器 <—内网— 后端存储设备
2.4 负载均衡调度算法
LVS 目前实现了10种调度算法
常用调度算法有4种:
——轮询 RR(Router Robin)
:将客户端请求平均分发到Real Server
——加权轮询 WRR( Weighted Router Robin)
: 根据Real server 权重值进行轮询调度
——最少连接 LC (Least Connections)
: 选择连接数最少的服务器
——加权最少连接 WLC (Weighted Least Connections)
: 根据Real Server 权重值,选择连接数最少的服务器
——源地址散列 (Source Hashing)
: 根据请求的目标IP地址,作为散列值(Hash Key)从静态分配的散列表找出对应的服务器
其他调度算法:
——基于局部性的最少链接
——带复制的基于局部性最少链接
—— 目标地址散列(Destination Hashing)
—— 最短的期望的延迟
—— 最少队列调度