例如:
如果一个任务由10个子任务组成,每个子任务单独执行需1小时,则在一台服务器上执行改任务需10小时。
采用分布式方案,提供10台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是Hadoop的Map/Reduce分布式计算模型)
而采用集群方案,同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,10小后,10个任务同时完成,这样,整身来看,还是1小时内完成一个任务!
以下是摘抄自网络文章:
一、集群概念
1 两大关键特性
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:
· 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。
· 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。
2 两大能力
为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:
· 负载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。
· 错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。
负载均衡和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。
3 两大技术
实现集群务必要有以下两大技术:
· 集群地址--集群由多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。具有单一集群地址(也叫单一影像)是集群的一个基本特征。维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出,外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器适用于支持ACTIVE-STANDBY的集群环境,在那里,集群中只有一个服务实体工作,当正在工作的服务实体发生故障时,负载均衡器把后来的任务转向另外一个服务实体。
· 内部通信--为了能协同工作、实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下文信息的通信。
具有同一个集群地址使得客户端能访问集群提供的计算服务,一个集群地址下隐藏了各个服务实体的内部地址,使得客户要求的计算服务能在各个服务实体之间分布。内部通信是集群能正常运转的基础,它使得集群具有均衡负载和错误恢复的能力。
二、集群分类
Linux集群主要分成三大类(高可用集群, 负载均衡集群,科学计算集群)
高可用集群(High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)
具体包括:
Linux High Availability 高可用集群
(普通两节点双机热备,多节点HA集群,RAC, shared, share-nothing集群等)
Linux Load Balance 负载均衡集群
(LVS等)
Linux High Performance Computing 高性能科学计算集群
(Beowulf 类集群)
三、详细介绍
1 高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备","双机互备","双机"。
高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。
2 负载均衡集群(Load Balance Cluster)
负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
3 科学计算集群(High Performance Computing Cluster)
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
31 高性能计算分类
311 高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是这一类型应用。这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。
312 分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。
四、分布式(集群)与集群的联系与区别
分布式是指将不同的业务分布在不同的地方;而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)
高可用集群( High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)
1、高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如”双机热备”, “双机互备”, “双机”。高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。
2、负载均衡集群(Load Balance Cluster)
负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
3、科学计算集群(High Performance Computing Cluster)
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
高性能计算分类:
31、高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME – Search for Extraterrestrial Intelligence at Home )就是这一类型应用。
这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。
32、分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。
下面说说这几种集群的应用场景:
高可用集群这里不多作说明。
想Dubbo是比较偏向于负载均衡集群,用过的猿友应该知道(不知道的可以自行了解一下),Dubbo同一个服务是可以有多个提供者的,当一个消费者过来,它要消费那个提供者,这里是有负载均衡机制在里面的。
搜索引擎Elasticsearch比较偏向于科学计算集群的分布计算。
而到这里,可能不少猿友都知道,集群的一些术语:集群容错、负载均衡。
我们以Dubbo为例:
集群容错(>LZ说的应该是网格计算和云计算吧。
1、云计算
使用云计算,企业马上就能大幅提高自己的计算能力,而不需要投资新的基础设施,开展新的培训或者购买新的软件许可证,云计算最适合希望将数据中心基础设施全部外包的中小型企业,或者希望不用花费高额成本建立更大的数据中心就可获得更高负荷能力的大型企业,不论哪种情况服务消费者都在Internet上使用所需要的服务并只为所使用的服务付费。服务消费者不用守在PC旁边使用PC上的应用程序,或者购买针对特定智能手机、PDA 及其他设备的版本,消费者不必拥有云中的基础设施、软件或平台,因此降低了前期成本、资本支出和运营成本,消费者也不用关心云中的服务器和网络怎么维护,消费者可以访问任何地方的多台服务器,不需要知道使用的是哪一台服务器以及它们的位置。
2、网格计算
云计算是从网格计算演化来的,能够随需应变地提供资源。网格计算可以在云中,也可能不在,这取决于什么样的用户在使用它;如果用户是系统管理员和集成商,就会关心如何维护云,并升级、安装和虚拟化服务器与应用程序;如果用户是消费者,就不必关心系统是如何运行的。
网格计算要求软件的使用可以分为多个部分,将程序的片段作为大的系统映像传递给几千个计算机中,网格的一个问题是如果某个节点上的软件片段失效,可能会影响到其他节点上的软件片段;如果这个片段在其他节点上可以使用故障转移组件,那么就可以缓解问题,但是如果软件片段依赖其他软件片段完成一项或多项网格计算任务,那么问题仍然得不到解决,大型系统镜像以及用于 *** 作和维护的相关硬件可能造成很高的资本和运营支出。
3、云计算与网格计算相同点
云计算和网格计算都是可伸缩的,可伸缩性是通过独立运行在通过Web服务连接的各种 *** 作系统上的应用程序实例的负载平衡实现的;CPU和网络带宽根据需要分配和回收,系统存储能力根据特定时间的用户数量、实例的数量和传输的数据量进行调整。
两种计算类型都涉及到多承租和多任务,即很多用户可以执行不同的任务。访问一个或多个应用程序实例,通过大型的用户池共享资源来降低基础设施成本,提高峰值负荷能力。云计算和网格计算都提供了服务水平协议(SLA)以保证可用性,如果服务达不到承诺的正常运行时间,消费者将由于数据延迟而得到服务补偿。
4、云计算与网格计算不同点
从云计算的描述可知,所谓的云计算可以被看成是网格计算和虚拟化技术的融合:即利用网格分布式计算处理的能力,将IT资源构筑成1个资源池,再加上成熟的服务器虚拟化、存储虚拟化技术,以便用户可以实时地监控和调配资源。可以说云计算的概念涵盖了网格计算,并且加上了更多企业级安全的因素。云服务器又叫云主机,它其实可以简单的理解成是一台虚拟服务器,和VPS类似,但与VPS有所不同,VPS是在一台服务器上划分出来一部分的内存,硬盘,带宽搭建而成的,当母机出现故障时,上面所有的VPS都将无法正常使用,而云主机是在一组集群服务器上划分出来的多个类似独立主机的部分,集群中的每台机器都会有云主机的一个镜像备份,当其中一台机器出现故障时,系统会自动访问其他机器上的备份,所以云主机在稳定与安全方面都比较有保障,云主机有独立的内存,硬盘,系统,所以它的用途也有很多,比如说最常见的是用来架设网站。
云服务器跟传统的服务器用起来的效果差不多,是用来访网站,数据什么的,云服务器比较稳定,前期部署也比较快,后期升级时间短,几秒就能够升级好。
云服务器是云计算服务的重要组成部分,是面向各类互联网用户提供综合业务能力的服务平台。平台整合了传统意义上的互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。
云服务器服务包括两个核心产品
面向中小企业用户与高端用户的云服务器租用服务;
面向大中型互联网用户的d性计算平台服务。
服务器到大型公司租用,如:时代互联。云计算服务器(又称云服务器或云主机),是云计算服务体系中的一项主机产品,有效的解决了传统物理租机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。且主机服务配置与业务规模可根据用户的需要进行配置和调整。 用户申请的主机服务可以实现快速供应和部署(实时在线开通),实现了集群内d性可伸缩 计费方式灵活,用户无需支付押金,且有多种支付方式供用户选择。
现在对于云计算服务器没有一个明确的定义,也没有一个统一的标准。
云服务器关注的是高性能吞吐量计算能力,还有在一段时间内的工作量总和。因此,云服务器在架构上和传统的服务器有着很大的区别。
架构上,云服务器体系架构包含云处理器模块、网络处理模块、存储处理模块与系统件理模块等。这种架构的优势使得云服务器可以大大提高利用率,采用多个云处理器完成系统设计,引入低功耗管理理念完成对系统的集中冗余管理,同时在系统中省去了很多重复的硬件。
云服务器一般包括线程、核、处理器、网络、加速等功能单元全部计算的总和。因此,云计算一般都有着庞大的数据输入量或海量的工作集。云服务器还具备
以下特点,
高密度低成本基本上是云服务器的基本要求,云服务器和云计算中心高密度、低功耗、低成本的特点相符,即主要面向大规模部署的云应用。高密度服务器能够减少延迟、提高反应速度。
服务器虚拟化的能力,由于服务器虚拟化技术实现了将高负载节点中的某些虚拟机实时迁移到低负载的节点,把多个低负载的虚拟机合并到一个物理节点,并将多余的空闲物理节点关闭,以提高资源的使用效率,使负载达到均衡,从而使上层应用的性能得到了保障,同时还达到了减少能耗的目的。
云计算利用服务器虚拟化技术可实现对虚拟机的部署和配置,通过对虚拟机的快速部署和实时迁移能大大提高系统的效能,还可通过对虚拟机资源的调整来实现软件系统的可伸缩性,确保系统能迅速从故障中恢复并继续提供服务,提高了系统的可靠性与稳定性。
根据云计算的第一个特点“超大规模”来说,云计算服务器的横向扩展能力就变得至关重要,比如英特尔推出横向扩展的存储解决方案,结合硬件,可以对这种大量的文件访问提供更高数据库和更好的可扩展性,而英特尔万兆网卡可以结合英特尔虚拟化技术,为整个云计算的中心提供高效、安全以及更简化的方式,保证了云数据中心的灵活性。
云计算在某种形式上来说就是分布式计算、并行计算、网格计算等一脉相传的技术路线,从概念上来说,可以把云计算看成是“存储云”+“计算云”的有机结合。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)