一、什么是集群?
简略地说,集群就是指一组(若干个)互相独立的计算机,利用高速通信网络组成的一个较大的计算机服务零碎,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间能够彼此通信,协同向用户提供应用程序,系统资源和数据,并以繁多零碎的模式加以治理。当用户申请集群零碎时,集群给用户的感觉就是一个繁多独立的服务器,而实际上用户申请的是一组集群服务器。
举个例子:
关上谷歌,百度的页面,看起来好简略,兴许你感觉用几分钟就能够制作出类似的网页,而实际上,这个页面的背地是由成千上万台服务器集群协同工作的后果。
若要用一句话形容集群,即一堆服务器单干做同一件事,这些机器可能须要对立协调治理,能够散布在一个机房,也能够散布在全国寰球各个地区的多个机房。
二、为什么要应用集群?
(1)高性能
一些国家重要的计算密集型利用(如天气预报,核试验模仿等),须要计算机有很强的运算解决能力。以全世界现有的技术,即便是大型机器,其计算能力也是无限的,很难独自实现此工作。因为计算工夫可能会相当长,兴许几天,甚至几年或更久。因而,对于这类简单的计算业务,便应用了计算机集群技术,集中几十上百台,甚至成千上万台计算机进行计算。
什么是集群?为什么要应用集群架构?
如果你配一个 LNMP 环境,每次只须要服务 10 个并发申请,那么单台服务器肯定会比多个服务器集群要快。只有当并发或总申请数量超过单台服务器的承受能力时,服务器集群才会体现出劣势。
(2)价格有效性
通常一套零碎集群架构,只须要几台或数十台服务器主机即可。与动辄价值上百万元的专用超级计算机相比便宜了很多。在达到同样性能需求的条件下,采纳计算机集群架构比采纳等同运算能力的大型计算机具备更高的性价比。
晚期的淘宝,支付宝的数据库等外围零碎就是应用上百万元的小型机服务器。后因应用保护老本太高以及扩大设施费用成几何级数翻倍,甚至成为扩大瓶颈,人员保护也十分困难,最终应用 PC 服务器集群替换之,比方,把数据库系统从小机联合 Oracle 数据库迁徙到 MySQL 开源数据库联合 PC 服务器上来。岂但老本降落了,扩大和保护也更容易了。
(3)可伸缩性
当服务负载,压力增长时,针对集群零碎进行较简略的扩大即可满足需要,且不会升高服务质量。
通常状况下,硬件设施若想扩大性能,不得不减少新的 CPU 和存储器设施,如果加不下来了,就不得不购买更高性能的服务器,就拿咱们当初的服务器来讲,能够减少的设施总是无限的。如果采纳集群技术,则只须要将新的单个服务器退出现有集群架构中即可,从拜访的客户角度来看,零碎服务无论是连续性还是性能上都简直没有变动,零碎在人不知; 鬼不觉中实现了降级,加大了拜访能力,轻松地实现了扩大。集群零碎中的节点数目能够增长到几千乃至上万个,其伸缩性远超过单台超级计算机。
(4)高可用性
繁多的计算机系统总会面临设施损毁的问题,如 CPU,内存,主板,电源,硬盘等,只有一个部件坏掉,这个计算机系统就可能会宕机,无奈失常提供服务。在集群零碎中,只管局部硬件和软件还是会产生故障,但整个零碎的服务能够是 7 *24 小时可用的。
集群架构技术能够使得零碎在若干硬件设施故障产生时仍能够持续工作,这样就将零碎的停机工夫缩小到了最小。集群零碎在进步系统可靠性的同时,也大大减小了系统故障带来的业务损失,目前简直 100% 的互联网网站都要求 7 *24 小时提供服务。
(5)透明性
多个独立计算机组成的松耦合集群零碎形成一个虚构服务器。用户或客户端程序拜访集群零碎时,就像拜访一台高性能,高可用的服务器一样,集群中一部分服务器的上线,下线不会中断整个零碎服务,这对用户也是通明的。
(6)可管理性
整个零碎可能在物理上很大,但其实容易治理,就像治理一个繁多映像零碎一样。在现实情况下,软硬件模块的插入能做到即插即用。
(7)可编程性
在集群零碎上,容易开发及批改各类应用程序。
三、集群的常见分类
1、集群的常见分类
计算机集群架构按性能和构造能够分成以下几类:
负载平衡集群,简称 LBC 或者 LB
高可用性集群,简称 HAC
高性能计算集群,简称 HPC
网格计算集群
提醒:
负载平衡集群和高可用性集群是互联网行业罕用的集群架构模式,也是咱们要学习的重点。
2、集群的常见分类
(1)负载平衡集群
- 负载平衡集群为企业提供了更为实用,性价比更高的零碎架构解决方案。负载平衡集群能够把很多客户集中的拜访申请负载压力尽可能均匀地摊派在计算机集群中解决。客户拜访申请负载通常包含利用程序处理负载和网络流量负载。这样的零碎非常适合应用同一组应用程序为大量用户提供服务的模式,每个节点都能够承当肯定的拜访申请负载压力,并且能够实现拜访申请在各节点之间动态分配,以实现负载平衡。
负载平衡集群运行时,个别是通过一个或多个前端负载均衡器将客户拜访申请散发到后端的一组服务器上,从而达到整个零碎的高性能和高可用性。个别高可用性集群和负载平衡集群会应用相似的技术,或同时具备高可用性与负载平衡的特点。
负载平衡集群的作用为:
摊派用户拜访申请及数据流量(负载平衡)
放弃业务连续性,即 7 *24 小时服务(高可用性)。
利用于 Web 及数据库等服务器的业务
负载平衡集群典型的开源软件包含 LVS,Nginx,Haproxy 等。如下图所示:
提醒:
不同的业务会有若干秒的切换工夫,DB 业务显著长于 Web 业务切换工夫。
(2)高可用性集群
个别是指在集群中任意一个节点生效的状况下,该节点上的所有工作会主动转移到其余失常的节点上。此过程并不影响整个集群的运行。
当集群中的一个节点零碎产生故障时,运行者的集群服务会迅速作出反应,将该零碎的服务调配到集群中其余正在工作的零碎上运行。思考到计算机硬件和软件的容错性,高可用性集群的次要目标是使集群的整体服务尽可能可用。如果高可用性集群中的主节点产生了故障,那么这段时间内将由备份节点代替它。备节点通常是主节点的镜像。当它代替主节点时,它能够齐全接管主节点(包含 IP 地址及其他资源)提供服务,因而,使集群零碎环境对于用户来说是统一的,即不会影响用户的拜访。
高可用性集群使服务器零碎的运行速度和响应速度会尽可能的快。他们常常利用在多台机器上运行的冗余节点和服务器来互相跟踪。如果某个节点失败,它的替补者将在几秒钟或更短时间内接管它的职责。因而,对于用户而言,集群里的任意一台机器宕机,业务都不会受影响(实践状况下)。
高可用性集群的作用为:
当一台机器宕机时,另外一台机器接管宕机的机器的 IP 资源和服务资源,提供服务。
罕用于不易实现负载平衡的利用,比方负载均衡器,主数据库,主存储对之间。
高可用性集群罕用的开源软件包含 Keepalived,Heartbeat 等,其架构图如下图所示:
(3)高性能计算集群
高性能计算集群也称并行计算。通常,高性能计算集群波及为集群开发的并行应用程序,以解决简单的迷信问题(天气预报,石油勘探,核反应模仿等)。高性能计算集群对外就如同一个超级计算机,这种超级计算机外部由数十至上万个独立服务器组成,并且在公共消息传递层上进行通信以并行运行应用程序。在生产环境中理论就是把工作切成蛋糕,而后下发到集群节点计算,计算后返回后果,而后持续领新工作计算,如此往返。
(4)网格计算集群
因为很少用到,在此略过
特地提醒:
在互联网的网站中,比拟罕用的就是负载平衡集群和高可用性集群
四、罕用的集群软硬件介绍及选型
1、企业中常见的集群软硬件产品
互联网企业罕用的开源集群软件有:Nginx,LVS,Haproxy,Keepalived,heartbeat。
互联网企业罕用的商业集群硬件有:F5,Netscaler,Radware,A10 等,工作模式相当于 Haproxy 的工作模式。
淘宝,赶集网,新浪等公司曾应用过 Netscaler 负载平衡产品。集群硬件 Netscaler 的产品图如下图所示:
集群硬件 F5 产品如下图所示:
2、对于集群软硬件产品如何选型
当企业业务重要,技术力量又单薄,并且心愿出钱购买产品及获取更好的服务时,能够抉择硬件负载平衡产品,如 F5,Netscaler,Radware 等,此类公司多为传统的大型非互联网企业,如银行,证券,金融业及宝马,奔驰公司等
对于门户网站来说,大多会用软件及硬件产品来分担繁多产品的危险,如淘宝,腾讯,新浪等。融资了的企业会购买硬件产品,如赶集网等网站。
中小型互联网企业,因为起步阶段无利润可赚或者利润很低,会心愿通过应用开源收费的计划来解决问题,因而会雇佣专门的运维人员进行保护。例如:51CTO 等
相比较而言,商业的负载平衡产品成本高,性能好,更稳固,毛病是不能二次开发,开源的负载平衡软件对运维人员的能力要求较高,如果运维及开发能力强,那么开源的负载平衡软件是不错的抉择,目前的互联网行业更偏向于应用开源的负载平衡软件。
3、如何抉择开源集群软件产品
中小企业互联网公司网站在并发拜访和总访问量不是很大的状况下,倡议首选 Nginx 负载平衡,理由是 Nginx 负载平衡配置简略,使用方便,平安稳固,社区沉闷,应用的人逐步增多,成为风行趋势,另外一个实现负载平衡的相似产品为 Haproxy(反对 L4 和 L7 负载,同样优良,但社区不如 Nginx 沉闷)。
如果要思考 Nginx 负载平衡的高可用性能,倡议首选 Keepalived 软件,理由是装置和配置简略,使用方便,平安稳固,与 Keepalived 服务相似的高可用软件还有 Heartbeat(应用比较复杂,并不倡议初学者应用)
如果是大型企业互联网公司,负载平衡产品能够应用 LVS+Keepalived 在前端做四层转发(个别是主备或主主,如果须要扩大能够应用 DNS 或前端应用 OSPF),后端应用 Nginx 或者 Haproxy 做 7 层转发(能够扩大到百台),再前面是应用服务器,如果是数据库与存储的负载平衡和高可用,倡议抉择 LVS+Heartbeat,LVS 反对 TCP 转发且 DR 模式效率很高,Heartbeat 能够配合 drbd,岂但能够进行 VIP 的切换,还能够反对块设施级别的数据同步(drbd),以及资源服务的治理。