集群简介 简单地说,集群就是指⼀组(若⼲个)相互独⽴的计算机,利⽤⾼速通信⽹络组成的⼀个较⼤的计算机服务系统,每个集群节点(即集群中 的每台计算机)都是运⾏各⾃服务的独⽴服务器。这些服务器之间可以彼此通信,协同向⽤户提供应⽤程序,系统资源和数据,并以单⼀系 统的模式加以管理。当⽤户请求集群系统时,集群给⽤户的感觉就是⼀个单⼀独⽴的服务器,⽽实际上⽤户请求的是⼀组集群服务器。 举个例⼦: 打开⾕歌,百度的页⾯,看起来好简单,也许你觉得⽤⼏分钟就可以制作出相似的⽹页,⽽实际上,这个页⾯的背后是由成千上万台服务器 集群协同⼯作的结果。 若要⽤⼀句话描述集群,即⼀堆服务器合作做同⼀件事,这些机器可能需要统⼀协调管理,可以分布在⼀个机房,也可以分布在全国全球各 个地区的多个机房。 为什么要使⽤集群 (1)⾼性能 ⼀些国家重要的计算密集型应⽤(如天⽓预报,核试验模拟等),需要计算机有很强的运算处理能⼒。以全世界现有的技术,即使是⼤型 机,其计算能⼒也是有限的,很难单独完成此任务。因为计算时间可能会相当长,也许⼏天,甚⾄⼏年或更久。因此,对于这类复杂的计算 业务,便使⽤了计算机集群技术,集中⼏⼗上百台,甚⾄成千上万台计算机进⾏计算。 假如你配⼀个LNMP环境,每次只需要服务10个并发请求,那么单台服务器⼀定会⽐多个服务器集群要快。只有当并发或总请求数量超过单 台服务器的承受能⼒时,服务器集群才会体现出优势。 (2)价格有效性 通常⼀套系统集群架构,只需要⼏台或数⼗台服务器主机即可。与动辄价值上百万元的专⽤超级计算机相⽐便宜了很多。在达到同样性能需 求的条件下,采⽤计算机集群架构⽐采⽤同等运算能⼒的⼤型计算机具有更⾼的性价⽐。 早期的淘宝,⽀付宝的数据库等核⼼系统就是使⽤上百万元的⼩型机服务器。后因使⽤维护成本太⾼以及扩展设备费⽤成⼏何级数翻倍,甚 ⾄成为扩展瓶颈,⼈员维护也⼗分困难,最终使⽤PC服务器集群替换之,⽐如,把数据库系统从⼩机结合Oracle数据库迁移到MySQL开源 数据库结合PC服务器上来。不但成本下降了,扩展和维护也更容易了。 (3)可伸缩性 当服务负载,压⼒增长时,针对集群系统进⾏较简单的扩展即可满⾜需求,且不会降低服务质量。 通常情况下,硬件设备若想扩展性能,不得不增加新的CPU和存储器设备,如果加不上去了,就不得不购买更⾼性能的服务器,就拿我们现 在的服务器来讲,可以增加的设备总是有限的。如果采⽤集群技术,则只需要将新的单个服务器加⼊现有集群架构中即可,从访问的客户⾓ 度来看,系统服务⽆论是连续性还是性能上都⼏乎没有变化,系统在不知不觉中完成了升级,加⼤了访问能⼒,轻松地实现了扩展。集群系 统中的节点数⽬可以增长到⼏千乃⾄上万个,其伸缩性远超过单台超级计算机。 (4)⾼可⽤性 单⼀的计算机系统总会⾯临设备损毁的问题,如CPU,内存,主板,电源,硬盘等,只要⼀个部件坏掉,这个计算机系统就可能会宕机,⽆ 法正常提供服务。在集群系统中,尽管部分硬件和软件也还是会发⽣故障,但整个系统的服务可以是7*24⼩时可⽤的。 集群架构技术可以使得系统在若⼲硬件设备故障发⽣时仍可以继续⼯作,这样就将系统的停机时间减少到了最⼩。集群系统在提⾼系统可靠 性的同时,也⼤⼤减⼩了系统故障带来的业务损失,⽬前⼏乎100%的互联⽹⽹站都要求7*24⼩时提供服务。 (5)透明性 多个独⽴计算机组成的松耦合集群系统构成⼀个虚拟服务器。⽤户或客户端程序访问集群系统时,就像访问⼀台⾼性能,⾼可⽤的服务器⼀ 样,集群中⼀部分服务器的上线,下线不会中断整个系统服务,这对⽤户也是透明的。 (6)可管理性 整个系统可能在物理上很⼤,但其实容易管理,就像管理⼀个单⼀映像系统⼀样。在理想状况下,软硬件模块的插⼊能做到即插即⽤。 (7)可编程性 在集群系统上,容易开发及修改各类应⽤程序。 集群的常见分类 3.1 集群的常见分类 计算机集群架构按功能和结构可以分成以下⼏类: 负载均衡集群,简称LBC或者LB ⾼可⽤性集群,简称HAC ⾼性能计算集群,简称HPC ⽹格计算集群 提⽰: 负载均衡集群和⾼可⽤性集群是互联⽹⾏业常⽤的集群架构模式,也是我们要学习的重点。 3.2 不同种类的集群介绍 (1)负载均衡集群 -负载均衡集群为企业提供了更为实⽤,性价⽐更⾼的系统架构解决⽅案。负载均衡集群可以把很多客户集中的访问请求负载压⼒尽可能平 均地分摊在计算机集群中处理。客户访问请求负载通常包括应⽤程序处理负载和⽹络流量负载。这样的系统⾮常适合使⽤同⼀组应⽤程序为 ⼤量⽤户提供服务的模式,每个节点都可以承担⼀定的访问请求负载压⼒,并且可以实现访问请求在各节点之间动态分配,以实现负载均 衡。 -负载均衡集群运⾏时,⼀般是通过⼀个或多个前端负载均衡器将客户访问请求分发到后端的⼀组服务器上,从⽽达到整个系统的⾼性能和 ⾼可⽤性。⼀般⾼可⽤性集群和负载均衡集群会使⽤类似的技术,或同时具有⾼可⽤性与负载均衡的特点。 负载均衡集群的作⽤为: 分摊⽤户访问请求及数据流量(负载均衡) 保持业务连续性,即7*24⼩时服务(⾼可⽤性)。 应⽤于Web及数据库等服务器的业务 负载均衡集群典型的开源软件包括LVS,Nginx,Haproxy等。如下图所⽰: 提⽰: 不同的业务会有若⼲秒的切换时间,DB业务明显长于Web业务切换时间。 (2)⾼可⽤性集群 ⼀般是指在集群中任意⼀个节点失效的情况下,该节点上的所有任务会⾃动转移到其他正常的节点上。此过程并不影响整个集群的运⾏。 当集群中的⼀个节点系统发⽣故障时,运⾏着的集群服务会迅速作出反应,将该系统的服务分配到集群中其他正在⼯作的系统上运⾏。考虑 到计算机硬件和软件的容错性,⾼可⽤性集群的主要⽬的是使集群的整体服务尽可能可⽤。如果⾼可⽤性集群中的主节点发⽣了故障,那么 这段时间内将由备节点代替它。备节点通常是主节点的镜像。当它代替主节点时,它可以完全接管主节点(包括IP地址及其他资源)提供服 务,因此,使集群系统环境对于⽤户来说是⼀致的,即不会影响⽤户的访问。 ⾼可⽤性集群使服务器系统的运⾏速度和响应速度会尽可能的快。他们经常利⽤在多台机器上运⾏的冗余节点和服务来相互跟踪。如果某个 节点失败,它的替补者将在⼏秒钟或更短时间内接管它的职责。因此,对于⽤户⽽⾔,集群⾥的任意⼀台机器宕机,业务都不会受影响(理 论情况下)。 ⾼可⽤性集群的作⽤为: 当⼀台机器宕机时,另外⼀台机器接管宕机的机器的IP资源和服务资源,提供服务。 常⽤于不易实现负载均衡的应⽤,⽐如负载均衡器,主数据库,主存储对之间。 ⾼可⽤性集群常⽤的开源软件包括Keepalived,Heartbeat等,其架构图如下图所⽰: (3)⾼性能计算集群 ⾼性能计算集群也称并⾏计算。通常,⾼性能计算集群涉及为集群开发的并⾏应⽤程序,以解决复杂的科学问题(天⽓预报,⽯油勘探,核 反应模拟等)。⾼性能计算集群对外就好像⼀个超级计算机,这种超级计算机内部由数⼗⾄上万个独⽴服务器组成,并且在公共消息传递层 上进⾏通信以并⾏运⾏应⽤程序。在⽣产环境中实际就是把任务切成蛋糕,然后下发到集群节点计算,计算后返回结果,然后继续领新任务 计算,如此往复。 (4)⽹格计算集群 由于很少⽤到,在此略 特别提⽰: 在互联⽹的⽹站中,⽐较常⽤的就是负载均衡集群和⾼可⽤性集群 常⽤的集群软硬件介绍及选型 4.1 企业中常见的集群软硬件产品 互联⽹企业常⽤的开源集群软件有:Nginx,LVS,Haproxy,Keepalived,heartbeat。 互联⽹企业常⽤的商业集群硬件有:F5,Netscaler,Radware,A10等,⼯作模式相当于Haproxy的⼯作模式。 淘宝,赶集⽹,新浪等公司曾使⽤过Netscaler负载均衡产品。集群硬件Netscaler的产品图如下图所⽰: 集群硬件F5产品如下图所⽰: 4.2 对于集群软硬件产品如何选型 当企业业务重要,技术⼒量⼜薄弱,并且希望出钱购买产品及获取更好的服务时,可以选择硬件负载均衡产品,如 F5,Netscaler,Radware等,此类公司多为传统的⼤型⾮互联⽹企业,如银⾏,证券,⾦融业及宝马,奔驰公司等 对于门户⽹站来说,⼤多会并⽤软件及硬件产品来分担单⼀产品的风险,如淘宝,腾讯,新浪等。融资了的企业会购买硬件产品,如赶集⽹ 等⽹站。 中⼩型互联⽹企业,由于起步阶段⽆利润可赚或者利润很低,会希望通过使⽤开源免费的⽅案来解决问题,因此会雇佣专门的运维⼈员进⾏ 维护。例如:51CTO等 相⽐较⽽⾔,商业的负载均衡产品成本⾼,性能好,更稳定,缺点是不能⼆次开发,开源的负载均衡软件对运维⼈员的能⼒要求较⾼,如果 运维及开发能⼒强,那么开源的负载均衡软件是不错的选择,⽬前的互联⽹⾏业更倾向于使⽤开源的负载均衡软件。 4.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),以及资源服务的管理。 |
|