一.集群的定义
1.定义
2.分类
(1)负载均衡集群(LBC/LB)
(2)高可用集群(HAC)
二.使用集群的意义
1.高性价比和性能比
2.高可用性
3.可伸缩性强
4.持久和透明性高
三.常见的两种集群模式拓扑
1.LVS(-DR)集群模式
(1)工作架构
(2)LVS下的相关术语
(3)LVS的工作模式
VS/NAT:
VS/DR:
VS/TUN:
(4) LVS调度器算法
固定调度:
动态调度:
2.haproxy/nginx模式
四.常用集群软硬件列举
1.企业常用集群软件
2.企业常用集群硬件
一.集群的定义
1.定义
是一组协同工作的服务器,在外部访问者看来是一个整体。集群是一种并行或分布式系统,包括一个互连的整体计算机集合作为一种单一、同意的计算资源使用,使用集群管理服务,可以获得更高的性能、可靠性和灵活性,实现资源的高度可用。集群又可以分为负载均衡集群、高可用性集群、高性能计算机群、网络计算等类别。
2.分类
(1)负载均衡集群(LBC/LB)
也可以称服务器群,一般通过一个或多个前端负载均衡器将数据请求转发到后端部分服务器上,使客户访问请求压力在各服务器之间尽可能分摊,包括程序处理负载和网络流量负载,也可以实现访问请求在各节点间动态分配,灵活负载。
(2)高可用集群(HAC)
高可用集群下的服务器运行速度和响应速度较快,一般是已配置好的集群服务中有任意节点失效时,将其分配到的压力自动转移到其他正常节点上,一般情况下这个节点的失效不会影响整个集群的运行,如果主节点失效,次节点完全可以接替其身份和资源进一步正常处理主节点下的任务。
二.使用集群的意义
1.高性价比和性能比
以pc服务器或RISC服务器组成集群可以大规模降低部署成本,分开管理,在性能上也有很大的优势
2.高可用性
在硬件和软件上都有冗余,可以进一步检测到软硬件的故障,进而解决或屏蔽故障有正常运转的节点继续提供服务
3.可伸缩性强
集群系统的节点数可以到几千甚至几万个,在其上甚至可以简易地去开发应用程序
4.持久和透明性高
服务器对于客户端来说,部分服务器的加入和退出不会中断对用户的服务,对用户来说相对透明
三.常见的两种集群模式拓扑
1.LVS(-DR)集群模式
(1)工作架构
如图示,多台提供服务的服务器(组)和数据备份(共享存储)服务器位于局域网内,提供服务的服务器又连接到广域网,用户通过互联网/加速器能够进行访问。LVS模式下用户发出数据请求,LVS负载均衡服务器组收到后按自身算法1将请求通过广域网交给apache/nginx服务器组,apache/nginx服务器组处理好后直接将结果返还给用户,无需经过负载均衡组。
LVS-DR负载均衡服务器组所在层又可称为load balancer(包含director server),apache/nginx服务器群组所在层又可称为server array(包含real server——集群节点),后方的数据共享存储层可称为shared storage。
load balancer:位于整个集群系统最前端,由一台或多台负载调度器组成,LVS是安装在director server上的,其中包含有LVS功能设定的路由表,通过路由表把数据请求抓发给server array,还可以在direct server上安装对real server的监控板块,检测健康状态。
server array:由一组真实的应用服务器组成,每个real server之间通过lan或wan相连接,在真实场景中,director server可以充当real server。
shared storage:为所有的real server提供数据存储和空间共享服务,保持内容一致性,一般是由磁盘阵列设备、nfs文件共享系统、gfs文件系统或ocfs2文件系统等等组成
(2)LVS下的相关术语
虚拟IP地址——VIP,director server用来向客户端计算机提供服务的IP地址
真实IP地址——RIP,在集群节点上使用的IP地址
director server的IP地址——DIP,director用于连接外网的IP地址
客户端主机IP地址——CIP,客户端请求集群服务器的IP地址,用作发送给集群的数据请求的源IP地址
(3)LVS的工作模式
LVS的IP负载均衡通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件。主要作用是:安
装在Director Server上,同时在Director Server上虚拟出一个IP地址,客户端访问时也要通过这个IP地址。这个虚拟IP一般称为LVS的VIP,访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。当用户的请求到达负载调度器后,IPVS重点关注调度器如何将请求发送到提供服务的Real Server节点,Real Server节点如何返回数据给用户,IPVS实现负载均衡机制有DR、NAT、TUN三种。
VS/NAT:
网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(虚拟IP地址)改写成选定的Real Server地址,同时报文的目标端口也改成选定的Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server要原路经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户。
VS/DR:
直接路由技术实现虚拟服务器,应用最多,要求Director Server与Real Server都有一块网卡连在同一物理网段上。它的连接调度和管理与VS/NAT相同,但VS/DR通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户,节省了开销,性能最好。
VS/TUN:
IP隧道技术实现虚拟服务器,应用较少不要求Director Server与Real Server都有一块网卡连在同一物理网段上。它的连接调度和管理与VS/NAT方式相同,但调度器采用IP隧道技术将用户请求转发到某个Real Server,而这个Real Server将直接响应用户的请求,不再经过前端调度器,调度器只处理用户的报文请求,吞吐量较高。
(4) LVS调度器算法
调度器在收到入站请求时需要立即做出决定将请求分配给哪个服务器(节点)
固定调度:
rr:常用调度算法之一,轮询调度,在real server中均摊请求,此算法适用于处理性能相差不大的情况。
wrr:常用调度算法之一,加权轮循调度,依据不同real server的权重值分配任务,权值较高的real
server将优先分配,分配到的连接数也比权值较低的real server多,如果权值相同那么real serve
得到相同数目的连接。
dh:目的哈希调度,以目的地址为关键字查找一个静态hash表来分配real server。
sh:源地址哈希调度,以源地址为关键字查找一个静态hash表来分配real server。
动态调度:
lc:常用调度算法之一,最小连接数调度,会把新的连接请求发送到IPVS表中连接数最小的real
server。
wlc:常用调度算法之一,加权最小连接数调度,依次选取“TCP连接数/权重值”为最小的real server
作为下一个分配节点。
lblc:基于地址的最小连接数调度,如果这一台设备仍然可以处理请求就将来自同一目的地址的请
求分配给同一台real server,否则分配给连接数最小的real server,作为下次分配请求的首选real
server。
lblcr:基于地址带重复最小连接数调度,目的地址会对应一个real server子集,为请求分配子集中
连接数最小real server,如果服务器中所有子集均已满载,则从集群中选择一个连接数较小服务
器,将它加入到这个子集并分配连接,一定时间内不干预就会将子集中负载最大的节点从子集中移
除。
SED:最短期望的延迟算法,基于wlc算法,将连接交给wlc结果最小的real server。假如A、B、C
分别权重为1、2、3,连接数分别是1、2、3,使用sed算法后运算式如下:A(1+1)/1、B(1+2)/2、
C(1+3)/3,就会交给C服务器。
NQ:最少队列调度,如果有台real server的连接数=0就直接分配过去,此时不想需要进行SED运
算,如果不处于空闲状态需要进行SED的运算。
2.haproxy/nginx模式
如图示,大体与LVS差不多,但是haproxy/nginx模式下apache/nginx/图片服务器处理好的结果需要经过请求的原路返回给用户
四.常用集群软硬件列举
1.企业常用集群软件
LVS,keepalived,haproxy,nginx,apache,heartbeat
2.企业常用集群硬件
F5,Netscaler,Radware