集群简介

1. 集群的定义

   集群是一种并行或分布式系统,该系统包括一个互连的整体计算机集合作为单一、同意的计算机资源使用。通过集群技术,我们可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面更高的提升。

   计算机集群简称集群,是一组计算机系统,它通过一组松散集成的计算机软件和硬件连接起来,高度紧密地协作完成提供业务及计算等相关工作。

   集群,是指一组相互独立的计算机,利用高速通信网络组成的一个计算机系统,每个集群节点都是运行其自己进程的一个独立服务器。这些进程可以彼此通信,对网络客户机来说就像形成了一个单一系统,协同起来向用户提供应用程序、系统资源和数据,并以单一系统的模式加以管理。用户客户机请求集群系统时,集群像是一个单一的服务器,实际上集群是一组服务器。

2. 企业网站集群架构

  • LVS 集群架构图

   wKiom1guoz3BTEWLAAYO9m4_7pc706.png-wh_50

  • Haproxy/Nginx 集群架构图

   wKioL1guo0CR0PcFAAVkvDp4lFk967.png-wh_50

  • lvs+haproxy/nginx集群架构图

   wKioL1guo0TyDB2WAAe7mS4aNv4982.png-wh_50                                       spacer.gif

  • 门户网站集群架构

  wKiom1guo0fAFGLxAAbYFn6jFrE509.png-wh_50


3. 为什么要使用集群

特点:

1. 高性能(Performance)

  一些国家重要的计算密集型应用,如:天气预报、核试验模拟等,这些工作需要计算机有很强的运算处理能力。以全世界现有的技术,即使是大型机,其计算能力也很难胜任。因为运算时间可能会相当长,也许几天,甚至几年或更久。这样复杂计算业务,一般都会使用计算机集群技术,几种几十台甚至上百上千台计算机的运算能力来满足要求。

  大家耳熟能详的大型网站,如京东商城,淘宝网,谷歌都不是几台大型机可以搞定的,都是成千上万台服务器组成的高性能集群。

2. 价格有效性(Cost-effectiveness)

  通常一套系统集群架构,只需要几台或数十台服务器主机即可。与动则价值上百万的专用超级计算机相比便宜了很多。在达到同样性能需求的条件下,采用计算机集群架构比采用同等运算能力的大型计算机具有更高的性价比。

  早期的淘宝和支付宝的数据库等核心系统就是用的上百万的小机服务器,后因成本太贵,以及扩展设备成几何级数翻倍,甚至发展到扩展瓶颈,人员维护也困难。最终使用集群架构替换之,特别的是把数据库系统从小机结合 oracle 数据库迁移到 mysql 开源数据库结合 pc 服务器上来了。不但成本下降了,扩展也容易了,维护更容易了。

3. 可伸缩性(Scalability)

  通常情况,硬件设备若想扩展性能能力,不得不购买新的 CPU 和存储器设备,加不上去了,就不得不购买更高性能的服务器。如果采用集群技术,只需要将新的单个服务器加入现有集群架构中即可,对于访问的用户来看,系统服务无论从连续性还是性能上都几乎没有变化,系统在不知不觉中完成了升级,加大了访问能力,轻松实现了扩展,集群系统中的节点数且可以增长到几千上万。

4. 高可用性(Availability)

  单一的计算机系统总会面临设备损毁的问题,如 CPU、内存、主办、电源、硬盘等只要一个部件坏掉,这个计算机就可能宕机,无法提供正常的服务。集群技术可以使得系统在若干硬件设备故障发生时仍可以继续工作,这样就将系统停机时间减少到最小。集群在提高可靠性同时也减小了系统故障带来的业务损失。

5. 可管理型(Manageability)

  是集群系统变得易管理,就像一个单一映像系统一样。理想状况下,软硬件模块的插入能做到即插即用。

6. 可编程性(Programmability)

  集群系统上,容易开发应用程序,门户网站要求这个。

4. 集群分类

  • 负载均衡集群(Load Balancing clusters),LBC

    负载均衡集群为企业提供了更为实用,性价比更高的系统架构解决方案。负载均衡集群可以把很多客户集中访问请求负载压力尽可能平均地分摊在计算机集群中处理。客户访问请求负载通常包括应用程序处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序为大量用户提供服务。每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求再各个节点之间动态分配,以实现负载均衡。

    负载均衡运行时,一般通过一个或者多个前端负载均衡器将客户访问请求分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群。一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。

    负载均衡的作用:分担访问流量(负载均衡)和保持业务连续性(高可用性)

    负载均衡的软件:LVS,Haproxy,Nginx

  • 高可用性集群(High-availability clusters),HAC

    一般是指当集群中的一个节点失效的情况下,节点上的所有任务会自动转移到其他正常的节点上。该过程并不影响整个集群的运行。不同的业务会有若干秒的切换时间,DB 业务明细长于 Web 业务切换时间。

    当集群中的一个节点系统发生故障时,运行着的集群服务会迅速作出反应,将该系统的服务分配到集群中其它正在工作的系统上运行。如果高可用性集群主节点发生了故障,那么这段时间将由此节点代替它。此节点是主节点的镜像。当它代替主节点时,可以完全接管主节点的身份,因此使集群系统环境对于用户来说是一致的,不会影响用户的访问。

    负载均衡的作用:当一台机器宕机另一台机器接管(接管 IP 资源和服务资源)

    负载均衡的软件:Keepalived、Heartbeat

  • 高性能计算集群(High-performance(HPC)clusters),HPC

    高性能计算集群也称并行计算,通常高性能计算集群涉及为集群开发的并行应用程序以解决复杂的科学问题(天气预报、石油勘探、核反应模拟等)。高性能计算集群对外就好像一个超级计算机,这种超级计算机内部由数十甚至上万个独立服务器组成,并且在公共消息传递层上进行通信以运行并行应用程序。实际是把任务切成蛋糕然后下发到集群节点计算,计算后返回结果,然后继续领新任务计算。

  • 网络计算(Grid computing)

    很少很少遇到,略过。