• 集群(cluster)原理(转)


    簇(cluster),文件存取是以簇为单位的,若干个扇区合为一个簇。

    编辑摘要

    目录

     

    Cluster集群/Cluster 编辑

    一个计算机集群是指一组连接起来的电脑,它们共同工作对外界来说就像一个电脑一样。集群一般由局域网连接,但也有例外。集群一般用于单个电脑无法完成的高性能计算,拥有较高的性价比。

    baidu和google的后台服务器就是一个cluster

    Cluster技术发展多年了,但其实并没有一个非常准确的定义和分类,不同的人有不同的理解。

    其实,叫什么无所谓,只要能够对用户有益就可以了. :-)

    就个人理解而言,cluster有以下几种,当然前面说过,不同的人有不同的理解,大家可以充分讨论。我的这些分类更偏重于工程而不是技术性。

    HA集群

    实现高可用性,但对单个应用性能没有提高,市场上大部分产品都是属于这类,技术上也较简单。

    IP负载均衡集群

    利用IP技术实现对通用IP应用的支持。这种技术并不是很新,最早是在硬件上面采用的,Linux出现后才有了很多纯软件的模式,这也是open source带来的好处吧

    并行计算集群

    包括了一些象PVM,beowulf这样的信息传递机制和API库,也有任务调度产品,当然技术上最难的是并行编译/并行系统等更智能化的产品

    应用负载均衡集群

    虽然cluster的最高目的是实现真正的与应用程序无关的动态负载均衡,但由于技术上的限制,现在都只能在特殊的应用中实现,需要修改应用程序,所以并没有通用产品,大多是厂商有自己的并行版本。例如oracle paraller server.

    以上基本是按照工程或者说产品的角度划分的,和技术上划分应该有一定区别。

    媒体宣传稿/Cluster 编辑

    随着Internet/Intranet应用的日益广泛,计算机系统的重要性也日益上升。低故障率和高性能向来是人们追求的主要目标,但对于单台服务器来讲,这两个问题是无法解决的。l 可用性——很多服务器都宣称已经达到了99%的可用性。这个数字意味着什么呢?也就是说每年会有1%的非预计停机时间,让我们来具体算一下。365(天 / 年)× 24(小时 / 天) × 1% = 87.6 (小时 / 年)。这每年87.6小时的停机时间对于要求24×7连续服务的企业来说简直就是灾难。

    l 高性能——假设一般的桌面机每秒能够处理几千个请求,而IA服务器每秒能够处理几万个请求。那么对于需要每秒处理几十万个请求的企业来说,如果不采用集群技术,唯一的选择就是购买更加高档的中、小型计算机。如果这样做,虽然系统性能只提高了十倍,但其购买价格和维护费用就将会上升几十倍甚至更多。

    集群技术的出现和发展则很好的解决了这两个问题。

    集群/Cluster 编辑

    集群就是由一些互相连接在一起的计算机构成的一个并行或分布式系统,从外部来看,它们仅仅是一个系统,对外提供统一的服务。

    集群技术本身有很多种分类,市场上的产品也很多,都没有很标准的定义。一般可以分为以下几种:

    基于冗馀的集群

    严格来讲,这种冗馀系统并不能叫做真正的集群,因为它只能够提高系统的可用性,却无法提高系统的整体性能。

    有以下几种类型。

    A. 容错机

    特点是在一台机器内部对其所有的硬件部件都进行冗馀(包括硬盘、控制卡、总线、电源等等)。

    能够基本做到与软件系统无关,而且可实现无缝切换,但价格极其昂贵。

    典型市场产品:Compaq NonStop(Tandem),Micron(NetFrame),Straus

    B. 基于系统镜像的双机系统

    特点是利用双机,将系统的数据和运行状态(包括内存中的数据)进行镜像,从而实现热备份的目的。

    能够做到无缝切换,但因为采用软件控制,占用系统资源较大,而且由于两台机器需要完全一样的配置,所以性能价格比太低。

    典型市场产品:Novell SFT III,Marathon Endurance 4000 for NT

    C. 基于系统切换的双机系统

    特点是利用双机,将系统的数据(仅指硬盘数据)进行镜像,在主机失效的情况下从机将进行系统一级的切换。

    性能价格比适中,但无法实现无缝切换。

    典型市场产品:Legato(Vinca) StandbyServer for NetWare,Savoir(WesternMicro)SavWareHA(Sentinel),Compaq StandbyServer

    基于应用程序切换的集群

    特点是当集群中的某个节点故障时,其它节点可以进行应用程序一级的切换,所以所有节点在正常状态下都可以对外提供自己的服务,也被成为静态的负载均衡方式。

    性能价格比高,但也无法实现无缝切换,而且对单个应用程序本身无法做到负载均衡。

    典型市场产品:Legato(Vinca) Co-StandbyServer for NT,Novell HA Server,Microsoft Cluster Server,DEC Cluster for NT,Legato Octopus,Legato FullTime,NeoHigh Rose HA,SUN Clusters,Veritas Cluster Server (FirstWatch),CA SurvivIT,1776

    基于并行计算的集群

    主要应用于科学计算、大任务量的计算等环境。有并行编译、进程通讯、任务分发等多种实现方法。

    典型市场产品:TurboLinux enFuzion,Beowulf,Supercomputer Architectures,Platform

    基于动态负载均衡的集群

    所有节点对外提供相同的服务,这样可以实现对单个应用程序的负载均衡,而且同时提供了高可用性。

    性能价格比极高,但目前无法支持数据库。

    典型市场产品:TurboCluster Server,Linux Virtual Server,F5 BigIP,Microsoft Windows NT Load Balance Service

    负载均衡/Cluster 编辑

    负载均衡是提高系统性能的一种前沿技术。还是沿用前面的例子,一台IA服务器的处理能力是每秒几万个,显然无法在一秒钟内处理几十万个请求,但如果我们能够有10台这样的服务器组成一个系统,如果有办法将所有的请求平均分配到所有的服务器,那么这个系统就拥有了每秒处理几十万个请求的能力。这就是负载均衡的基本思想。

    实际上,目前市场上有多家厂商的负载均衡产品。由于其应用的主要技术的不同,也就有着不同的特点和不同的性能。

    轮询DNS

    轮询DNS方案可以说是技术上最简单也最直观的一种方案。当然,这种方案只能够实现负载均衡的功能,却无法实现对高可用性的保证。

    它的原理是在DNS服务器中设定对同一个Internet主机名的多个IP地址的映射。这样,在DNS收到查询主机名的请求时,会循环的将所有对应的IP地址逐个返回。这样,就能够将不同的客户端连接定位到不同的IP主机上,也就能够实现比较简单的负载均衡功能。但是,这种方案有两个比较致命的缺点:

    l 只能够实现对基于Internet主机名请求的负载均衡,如果是直接基于IP地址的请求则无能为力。

    l 在集群内有节点发生故障的情况下,DNS服务器仍会将这个节点的IP地址返回给查询方,也就仍会不断的有客户请求试图与已故障的节点建立连接。这种情况下,即使你手工修改DNS服务器的对应设置,将故障的IP地址删除,由于Internet上所有的DNS服务器都有缓存机制,仍会有成千上万的客户端连接不到集群,除非等到所有的DNS缓存都超时。

    硬件解决方案

    有些厂商提供对负载均衡的硬件解决方案,制造出带有NAT(网络地址转换)功能的高档路由器或交换机来实现负载均衡功能。NAT本身的原理就是实现多个私有IP地址对单个公共IP地址的转换。代表产品是Cicso公司和Alteon公司的某些高档硬件交换机系列。这种方案有如下缺点:

    l 由于采用了特殊的硬件,使得整个系统中存在非工业标准部件,极大的影响系统的扩充和维护、升级工作。

    l 价格极其昂贵,和软件的解决方案根本是数量级上的差别。

    l 一般只能实现对节点系统一级的状态检查,无法细化到服务一级的检查。

    l 由于采用NAT机制,集群管理节点本身要完成的工作量很大,很容易成为整个系统的瓶颈。

    l 此特殊硬件本身就是单一故障点。

    l 实现异地节点的集群非常困难。

    协商式处理(并行过滤)

    这种方案的原理是客户请求会同时被所有的节点所接收,然后所有节点按照一定的规则协商决定由哪个节点处理这个请求。此种方案中比较显着的特点就是整个集群中没有显着的管理节点,所有决定由全体工作节点共同协商作出。代表产品是Microsoft公司的Microsoft Load Balancing Service这种方案的特点是:

    l 由于各节点间要进行的通讯量太大,加重了网络的负担,一般需要增加节点通讯的专用网络,也就加大了安装和维护的难度和费用。

    l 由于每个节点都要接收所有的客户请求并进行分析,极大的加大了网络驱动层的负担,也就减低了节点本身的工作效率,同时也时网络驱动层很容易成为节点系统的瓶颈。

    l 由于要更改网络驱动层的程序,所以并不是一个通用的方案,只能够实现对特殊平台的支持。

    l 在小量节点的情况下协商的效率还可以接受,一旦节点数量增加,通讯和协商将变得异常复杂和低效,整个系统的性能会有非线性的大幅度下降。所以此类方案,一般在理论上也只允许最多十几个的节点。

    l 无法实现异地节点的集群。

    l 由于集群内没有统一的管理者,所以可能出现混乱的异常现象。

    流量分发

    流量分发的原理是所有的用户请求首先到达集群的管理节点,管理节点可以根据所有服务节点的处理能力和现状来决定将这个请求分发给某个服务节点。当某个服务节点由于硬件或软件原因故障时,管理节点能够自动检测到并停止向这个服务节点分发流量。这样,既通过将流量分担而增加了整个系统的性能和处理能力,又可以很好的提高系统的可用性。

    通过将管理节点本身做一个子集群可以消除由于管理节点自身的单一性带来的单一故障点。有些传统技术人员认为,因为所有的客户流量都将通过管理节点,所以管理节点很容易成为整个系统的瓶颈。但TurboCluster Server通过先进的直接路由或IP隧道转发机制巧妙的解决了问题。使得所有对客户响应的流量都由服务节点直接返回给客户端,而并不需要再次通过管理节点。众所周知,对于服务提供商而言,进入的流量要远远小于流出的流量,所以管理节点本身将不再是瓶颈。

    流量分发的具体实现方法有直接路由、IP隧道和网络地址转换三种方法。TurboCluster Server目前支持效率最高的前两种。由于这种先进的结构和技术,使得TurboCluster Server集群内的服务节点数并没有上限,而且对大量节点的协同工作的效率也能够非常好的保证。

    市场前景/Cluster 编辑

    集群技术已经发展了多年,其中的分支也非常多。目前集群技术正逐渐走向分层结构,以后也肯定会有专门用户前端、后端的集群产品出现。

    随着计算机应用地位的逐渐提升,系统安全和重要性的日益增加,集群技术必将会有着极为广阔的应用前景。

    1、什么是集群

    集群(cluster)就是一组计算机,他们作为整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意的增加和删除集群系统的节点。

    2、集群的优点

    <1>高扩展性

    <2>高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以防止单点失效

    <3>高性能:负载平衡集群允许系统同时接入更多的用户

    <4>高性能价比:可以采用廉价的复合工业标准的硬件来构造高性能的系统。

    3、集群系统的分类

    虽然,根据集群系统的不同特征可以有多种分类方法,但是一般把集群系统分为两类:

    <1>高可用性(High Availability)集群,简称HA集群。

    这类集群致力于提供高度可靠的服务。就是利用集群系统的容错性对外提供7*24小时不间断的服务,如高可用的文件服务器、数据库服务等关键应用。

    负载均衡集群:使任务可以在集群中尽可能平均的分摊不同计算机处理,充分利用集群的处理能力,提高对任务的处理效率。在实际应用中这几种集群类型可能混合使用,以提供更高稳定的服务,如在一个使用网络流量负载均衡的集群中,就会包含高可用的网络文件系统、高可用的网络服务。

    <3>性能计算(High Perfervidmance  Computing)集群,简称HPC集群,也称为计算集群。

    在这种集群运行的是专门开发的并行应用程序,它可以把一个问题的数据分不到多台计算机上,利用这些计算机的共同资源来完成任务,从而可以解决单机不能胜任的工作(如果问题规模太大,单机计算速度太慢)。

    这类集群致力于提供了单个计算机所不能提供的强大的计算能力。如天气预报、石油勘探与油藏模拟、分子模拟、生物计算等。

    4、什么是高可用性(HA)

    计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。工程上通常采用平均无故障时间(MTTF)来度量系统的可靠性,用平均时间(MTTR)来度量系统的可维护性。于是可用性定义为:MTTF/(MTTF+MTTR)*100%

    5、负载均衡服务器的高可用性

    为了屏蔽负载均衡服务器失效,需要建立一个备份机。主服务器和备份机上都运行High Availability监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器IP并继续提供服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,他就释放IP地址,这样的主管理器就开开始再次进行集群管理的工作了。为在主服务器失效的情况下系统能正常工作,我们在主、备份机之间实现负载集群系统配置信息的同步和备份,保持两者系统的基本一致。

    6、HA的容错备援运作过程

    自动侦测(Auto-Detect)阶段 由主机上的软件通过冗余侦测线,经由复杂的侦听程序。逻辑判断,互相侦测对方运行情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据引擎以及其他应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错我的判断,可设定安全侦测时间、包括侦测时间间隔、侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。

    自动切换(Auto-Switch)阶段 某一主机如果确认对方故障,则正常主机继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序以及服务。

    自动恢复(Auto-Recovery)阶段  在正常主机代替故障机工作后,故障机可离线进行修复工作。在故障主机修复后,通过冗余通讯线与原来主机连线,自动切换回修复完成的主机上。整个回复过程完成有EDI-HA自动完成,亦可依靠预先配置,选择回复动作为半自动或不回复。

    7、HA三种工作方式

    <1>主从方式(非对称方式)

    工作原理:主机工作,备机处于监控状况;当主机宕机时,备机接管主机的一切工作,待主机恢复正常后,按使用者的设定以自动或手动方式将服务切换到主机上运行,数据的一致性通过共享存储系统解决。

    <2>双机双工方式(互备互援)

    工作原理:两台主机同时运行各自的服务工作且互相检测情况,当任一台主机宕机时,另一台主机立即接管它的一切工作,保证工作实时,应用服务系统的关键数据存放在共享存储系统中。

    <3>集群工作方式(多服务器互备方式)

    工作原理:多台主机一起工作,各自运行一个或几个服务,各为服务定义一个或多个备用主机,当某个主机故障时,运行在其上的服务就可以被其它主机接管。

  • 相关阅读:
    Servlet的生命周期
    HTTP协议简单记录
    Tomcat和JavaWeb目录和流程
    02 html 表格表单
    01 初识HTML
    Python 利用pywin32批量将doc转换成docx再读取成一行存入excel
    power bi 数据红绿灯详细用法
    Linux和Windows启动后台程序
    MySQL导出数据字典
    适用于渗透测试不同阶段的工具收集整理
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/7660677.html
Copyright © 2020-2023  润新知