北京云服务器云主机

一、集群概念

集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性和可用性的服务平台。 从客户端看来,一个集群就是一个完整不可细分的实体,但事实上一个集群实体是由完成不同任务的服务节点个体所组成的。

简单的说,集群就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点。

二、集群分类

1.高可用性集群(High Availability)

高可用集群的出现是为了减少由计算机硬件和软件易错性所带来的损失。它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件和人为造成的故障对业务的影响降低到最小程度。如果某个节点失效,它的备援节点将在几秒钟的时间内接管它的职责。

有许多应用程序都必须一天二十四小时地不停运转,如所有的web服务器、工业控制器、ATM、医学与军事监测仪以及股票处理机等。对这些应用程序而言,暂时的停机都会导致数据的丢失和灾难性的后果。

因此,对于用户而言,集群永远不会停机。高可用集群软件的主要作用就是实现故障检查和业务切换的自动化。

结构图如下:简单认识集群(集群的简单知识)

1)Messaging Layer

信息层,心跳信息传输层,它是运行在每一个主机上的一个进程

2)CRM,Cluster Resources Manager

集群资源管理器,依赖于各自底层的心跳信息层。之所以有这一层是因为那些非ha_aware软件本身不具备集群高可用能力,才借助于CRM来实现的;而如果一个应用程序自己能够利用底层心跳信息传递层的功能完成集群事务决策的软件就叫ha_aware。

在这层中,其实还有一层叫做LRM(Local Resource Manager)本地资源管理层,这一层是真正去把CRM层的决策去落实的层次;就好比,CRM层是公司的董事长,LRM就是总经理,CRM负责整个公司的远景规划及战略实施,然后分配给总经理(LRM)去实施,总经理再分摊给下面的各小弟(RA)去完成,这些在上图中也可以直观的表现出来

pacemaker就是属于这一层的,而pacemaker的配置接口的crm(suse),所以我们安装的时候需要安装crmsh

3)RA,Resource Agent

资源代理就是能够接收CRM的调度,用于实现在节点上对某一个资源完成管理的工具,通常是一些脚本

(1)heartbeat legacy

heartbeat的传统类型,监听在udp的694端口上

(2)LSB,linux standard base

那些在/etc/rc.d/init.d/*的脚本就是属于LSB的

(3)OCF,Open Cluster Framework

开放集群架构,那些提供资源代理脚本的组织叫provider,pacemaker就是其中的一个provider

(4)STONITH

shoot the other node in the head,这个RA类型主要是做节点隔离的,专为配置stonith设备耐用。

2.负载均衡集群(Load Balancing)

LB的目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问量的Web服务。负载均衡集群往往也具有一定的高可用性特点。Turbolinux Cluster Server、Linux Virtual Server都属于负载均衡集群。

对于使用服务的用户(如网站)来说,Linux 虚拟服务器(LVS)集群看起来是一个服务器。事实上,该用户使用的是一对冗余 LVS 路由器之后的两个或多个服务器的集群。这对路由器把客户请求均衡地分配给集群系统。负载均衡集群的系统允许管理员使用常见廉价的硬件和 Linux 在满足可用性需求的同时还提供服务的连续持久的访问。

3.高性能计算集群

高性能计算集群通过将多台机器连接起来同时处理复杂的计算问题。模拟星球附近的磁场、预测龙卷风的出现、定位石油资源的储藏地等情况都需要对大量的数据进行处理。传统的处理方法是使用超级计算机来完成计算工作,但是超级计算机的价格比较昂贵,而且可用性和可扩展性不够强,因此集群成为了高性能计算领域瞩目的焦点。

按照计算关联程度的不同,又可以分为两种。

一种是任务片方式 DC (Distributed Computing),要把计算任务分成任务片,再把任务片分配给各节点,在各节点上分别计算后再把结果汇总,生成最终计算结果。

另一种是并行计算方式 PC (Parallel Computing),节点之间在计算过程中大量地交换数据,可以进行具有强耦合关系的计算。这两种超级计算集群分别适用于不同类型的数据处理工作。有了超级计算集群软件,企业利用若干台PC机就可以完成通常只有超级计算机才能完成的计算任务。这类软件有Turbolinux EnFusion、SCore等。

三、Linux集群目前活跃的解决套件

1.高可用性集群(HA)

○ RedHat Cluster Suite(RHCS)

○ Linux-HA(Heartbeat)

○ Keeplived

RHCS是由RedHat的集群套件系统,除了完成高可用性功能之外,它还具备负载均衡功能。

Heartbeat是一个免费的开放源代码的高可用集群系统,目前已经被Novell(SuSE Linux)、Mandriva Linux、 Debian GNU/Linux、Ubuntu Linux等广泛使用,基于心跳检测。

Keepalived是一个基于实现lvs高可用开发扩展的程序,目的是提供高可用,基于vrrp路由检测。

2.负载均衡集群(LB)

○ Linux Virtual Server(LVS)

○ haproxy

○ nginx

LVS是Linux Virtual Server(linux虚拟服务器),采用基于ip的四层负载均衡,有多种调度算法。

haproxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持4-7层的负载均衡,同时支持虚拟主机, 国内大型网站均有使用,提供多种调度算法。

Nginx是一个web服务器,工作于tcp七层,具有灵活的配置功能,一般用于流量不是很大的场合。

3.分布式高性能计算(DC)

○ OpenMosix

○ OpenSSI

4.并行式高性能计算(PC)

○ Beowulf

高性能计算集群系统主要用于大规模科学计算环境,在企业中应用较少,搭建高性能计算集群往往会针对具体计算内容专门设计系统结构及应用软件。

四、Linux集群的优势和劣势

1.优势

Linux是目前兼容硬件平台及各种文件系统最为完备的操作系统,良好的软硬件兼容性保证了LINUX系统能够适用于异构集群,同时开放源码的发展模式也保证了现有的集群软件能够方便地迁移至LINUX下运行。LINUX强大的终端管理能力及纯文本配置方式使得大规模的集群系统更加易于管理、配置。

LINUX系统的度可配置性可以保证系统能够为各种应用提供最大限度的优化能力,同时亦可保证整个系统的稳定性。对UNIX系统的兼容使得目前基于UNIX的集群系统可以在很小的修改下就能够成功运行于LINUX。

2.劣势

(1)Linux 集群系统多为文本控制方式,使用复杂。

(2)Linux集群软件大多基于GPL协议,用户担心无法得到完备的商业支持

(3)Linux集群的相关人才稀少,培训成本大

本文:简单认识集群(集群的简单知识),来源:一个有理想的代码狗。

©2021 北京云服务器云主机 nzdusdchart.com 联系我们