Table of Contents

 

一、集群简介

二、集群的七大优点

三、集群的分类

四、常用的集群软硬件及选型介绍


一、集群简介

     集群就是一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据。

二、集群的七大优点

1、高性能

    我们大家都知道淘宝的双11,双11的零点,用户并发量相当恐怖,以全世界现有的技术,即使是大型机,其计算能力也是有限的,很难单独处理完双11零点的用户并发,还可能因为,并发量太大,造成计算机宕机,因此对于这类复杂的计算业务,便需要使用计算机集群技术。集中成千上万台计算机进行处理。

2、价格有效性

    达到同样的性能需求的条件下,计算机集群架构比采用同等运算能力的大型计算机具有更高的性价比

    举例:早期的淘宝、支付宝数据库等核心系统就是使用上百万元的小型机服务器,后面因为维护成本太高,扩展设备费用成几何级数翻倍,就采用了PC服务器集群替换,把数据库从小机和oracle结合迁移到了MySQL开源数据库与PC服务器结合上来。成本下降了,扩展和维护也容易许多。

3、可伸缩性

    当服务负载、压力增长时,针对集群系统进行较简单的扩展即可满足需求,且不会降低服务质量。

4、高可用性

    单一的计算机系统总会面临设备损毁的问题,而在集群系统中,尽管部分硬件和软件也还是会发生故障,但整个系统的服务还是可以实现7*24可用的。

5、透明性

    多个独立计算机组成的松耦合集群系统构成一个虚拟的服务器,客户端访问集群系统时,就像访问一台高性能、高可用的服务器一样,集群中一部分服务器的上线和下线不会中断整个系统服务,这对用户也是透明的。

6、可管理性

    整个系统可能再物理上很大,但其实管理很容易

7、可编程性

    容易开发及修改各类应用程序

三、集群的分类

按功能和结构可以分为以下几类:

1、负载均衡集群(Load balancing cluters)

    负载均衡集群为企业提供了更为实用、性价比更高的系统架构解决方案。负载均衡集群可以把很多客户集中的访问请求负载压力尽可能平均的分摊在计算机集群中进行处理。每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间的动态分配,以实现负载均衡。

   负载均衡集群运行时,一般是通过一个或多个前端负载均衡器将客户请求分发到后端的一组服务器上,从而达到整个系统的高可用和高性能。

   负载均衡集群的作用:

                                       (1)分担用户访问请求及数据流量(负载均衡)

                                       (2)保持业务的连续性,即7*24小时的服务(高可用)

                                       (3)应用于Web业务及数据库从库等服务器的业务

下图便为负载均衡集群的图解:

集群软件架构 软件集群 硬件集群_服务器

负载均衡集群的典型的开源软件包括LVS、Nginx、Haproxy等,这些都可以充当上图的负载均衡器

2、高可用集群(High-availablility clusters)

    一般是指在集群中任意一个节点失效的情况下,该节点上的所有任务会自动转移到其他正常节点上,此过程不影响整个集群的运行。

    当集群中的一个节点故障之后,运行的集群系统会马上作出反应,将该系统的服务分配到集群中其他正在工作的系统上运行,高可用集群的主要的目的是使集群整体尽可能的可用。如果高可用集群中的主节点发生了故障,那么这段时间将由备用节点代替它,备节点通常是主节点的镜像,它可以完全接管主节点(包括IP地址及其他资源)提供服务,因此这对于用户是无感的,不会影响用户的访问。

    高可用集群的作用:

                                    (1)当一台机器宕机时,另外一台机器接管宕机的机器的IP资源和服务资源,提供服务。

                                    (2)常用于不易实现负载均衡的应用,比如负载均衡器,主数据库,主存储对之间。

下图便是实现了高可用的负载均衡集群,并且做了动静分离的:

集群软件架构 软件集群 硬件集群_高可用_02

高可用集群常用的开源软件包括keepalived,heartbeat等。

3、高性能计算集群(High-performance clusters)

也称并行计算。高性能集群对外就好比一个超级计算机,内部由数十上万个独立服务器组成。把任务分成多个小任务,发到集群节点进行计算,计算后返回结果,继续领新任务进行计算,如此往复。

4、网格计算集群(Grid computing)

不常用,略。

四、常用的集群软硬件及选型介绍

1、常用的集群软硬件

软件:Nginx、LVS、Haproxy、Keepalived、Heartbeat

硬件:F5、Netscaler、Radware、A10等,工作模式相当于Haproxy。

2、选型

(1)企业业务重要时,技术力量薄弱,可选择硬件负载均衡产品,此类公司多为传统的大型非互联网企业,如:银行、证券、金融业、宝马及奔驰公司等。

(2)对于门户网站来说:大多会并用软硬件来分担单一产品的风险,如:淘宝、腾讯、新浪等。

(3)中小型互联网企业,会使用开源免费的方案来解决问题,因此会雇佣专门的运维人员进行维护。如:51CTO等。

目前的互联网行业更倾向于使用开源免费的负载均衡软件

3、如何选择开源集群软件产品

    网站并发量和总访问量不是很大建议选用Nginx负载均衡,另外一个实现负载均衡的类似产品为Haproxy(支持L4和L7负载,同样优秀,但社区不如Nginx活跃)。

    如果要考虑Nginx的负载均衡的高可用功能,建议首选Keepalived软件。

 

如果是大型企业互联网公司,负载均衡产品可以使用LVS+Keepalived在前端做四层转发(一般是主备或主主,如果需要扩展可以使用DNS或前端使用OSPF),后端使用Nginx或者Haproxy做七层转发,再后面是应用服务器。

如果是数据库与存储的负载均衡和高可用,建议选择LVS+Heartbeat,LVS支持TCP转发且DR模式效率很高,Heartbeat可以配合drbd,不但可以进行VIP切换,还可以支持块设备级别的数据同步(drbd),以及资源服务管理。