`
yangzb
  • 浏览: 3500102 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux集群技术概述

阅读更多

目前,越来越多的网站采用Linux操作系统,提供邮件、Web、文件存 储、数据库等服务。也有非常多的公司在企业内部网中利用Linux服务器提供这些服务。随着人们对Linux服务器依赖的加深,对其可靠性、负载能力和计 算能力也倍加关注。Linux集群技术应运而生,可以以低廉的成本,很好地满足人们的这些需要。

Linux竞争力很强的原因之一,是它可以运行于极为普及的PC机上,不需要购买昂贵的专用硬件设备。在几台运行Linux的PC机上,只要加入相应的集群软件,就可以组成具有超强可靠性、负载能力和计算能力的Linux集群。集群中的每台服务器称为一个节点。

按照侧重点的不同,可以把Linux集群分为三类。一类是高可用性集群,运行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外 提供服务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。这类集群中比较著名的有Turbolinux TurboHA、Heartbeat、Kimberlite等。第二类是负载均衡集群,目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访问 量的Web服务。负载均衡集群往往也具有一定的高可用性特点。Turbolinux Cluster Server、Linux Virtual Server都属于负载均衡集群。另一类是超级计算集群,按照计算关联程度的不同,又可以分为两种。一种是任务片方式,要把计算任务分成任务片,再把任务 片分配给各节点,在各节点上分别计算后再把结果汇总,生成最终计算结果。另一种是并行计算方式,节点之间在计算过程中大量地交换数据,可以进行具有强耦合 关系的计算。这两种超级计算集群分别适用于不同类型的数据处理工作。有了超级计算集群软件,企业利用若干台PC机就可以完成通常只有超级计算机才能完成的 计算任务。这类软件有Turbolinux EnFusion、SCore等。

高可用性集群与负载均衡集群的工作原理不同,适用于不同类型的服务。通常,负载均衡集群适用于提供静态数据的服务,如HTTP服务;而高可用性集群 既适用于提供静态数据的服务,如HTTP服务,又适用于提供动态数据的服务,如数据库等。高可用性集群之所以能适用于提供动态数据的服务,是由于节点共享 同一存储介质,如RAIDBox。也就是说,在高可用性集群内,每种服务的用户数据只有一份,存储在共用存储设备上,在任一时刻只有一个节点能读写这份数 据。

以Turbolinux TurboHA为例,集群中有两个节点A和B,设这个集群只提供Oracle服务,用户数据存放于共用存储设备的分区/dev/sdb3上。在正常状态 下,节点A提供Oracle数据库服务,分区/dev/sdb3被节点A加载在/mnt/oracle上。当系统出现某种故障并被TurboHA软件检测 到时,TurboHA会将Oracle服务停止,并把分区/dev/sdb3卸载。之后,节点B上的TurboHA软件将在节点B上加载该分区,并启动 Oracle服务。对于Oracle服务有一个虚拟的IP地址,当Oracle服务从节点A切换到节点B上时,虚拟的IP地址也会随之绑定到节点B上,因 此用户仍可访问此服务。

由以上分析可以看出,高可用性集群对一种服务而言不具有负载均衡功能,它可以提高整个系统的可靠性,但不能增加负载的能力。当然,高可用性集群可以 运行多种服务,并适当分配在不同节点上,比如节点A提供Oracle服务,同时节点B提供Sybase服务,这也可以看成是某种意义上的负载均衡,不过这 是对多种服务的分配而言。

负载均衡集群适用于提供相对静态的数据的服务,比如HTTP服务。因为通常负载均衡集群的各节点间通常没有共用的存储介质,用户数据被复制成多份, 存放于每一个提供该项服务的节点上。 下面以Turbolinux Cluster Server为例简要介绍一下负载均衡集群的工作机制。在集群中有一个主控节点,称为高级流量管理器(ATM)。假设这一集群仅被用来提供一项HTTP服 务,其余各节点均被设定为HTTP的服务节点。用户对于页面的请求全部发送到ATM上,因为ATM上绑定了这项服务对外的IP地址。ATM把接受到的请求 再平均发送到各服务节点上,服务节点接收到请求之后,直接把相应的Web页面发送给用户。这样一来,假如在1秒内有1000个HTTP页面请求,而集群中 有10个服务节点,则每个节点将处理100个请求。这样,在外界看来,好象有一台10倍速度的高速计算机在处理用户的访问。这也就是真正意义上的负载均 衡。


但是ATM要处理所有1000个页面请求,它会不会成为集群处理速度的瓶颈呢?由于对于页面的请求的数据量相对较少,返回页面内容的数据量 相对较大,因此这种方式还是很有效率的。ATM发生故障,也不会导致整个系统无法工作。Turbolinux Cluster Server可以设置一台或多台计算机为后备ATM节点,当主ATM节点故障时,在后备ATM中会产生出一个新的主ATM,接替它的工作。可以看出,这种 负载均衡集群也具有一定的高可用性。

HTTP页面相对是静态的,但有时也需要改动。Turbolinux Cluster Server提供了数据同步工具,可以很方便的把对页面的改动同步到所有提供该项服务的节点上。

下面介绍一下对于高可用性集群与负载均衡集群的组合使用。如果用户有一个由两个节点组成的最小集群,是否可以同时获得高可用性集群和负载均衡集群的 效益呢?答案是肯定的。由于高可用性集群适用于提供动态数据的服务,而负载均衡集群适用于提供静态数据的服务,所以我们不妨假设要同时提供 Oracle和HTTP服务。用户要在节点A和B上安装TurbolinuxTurboHA和TurbolinuxClusterServer软件。把节 点A作为Oracle正常工作的节点,节点B作为Oracle服务的后备节点,这是对TurboHA软件而言。对于ClusterServer软件而言, 要设置节点B为主ATM节点,节点A为后备ATM节点,而节点A和节点B同时又都是HTTP的服务节点。

这样一来,节点A和节点B都是身兼两职,而用户同时得到了一个具有高可用性的Oracle服务和一个具有负载均衡功能的HTTP服务。即使有一个节点发生故障,Oracle服务和HTTP服务都不会因此而中断。

但对于同一种服务,是不能同时获得高可用性与负载均衡能力的。对一种服务,要么是只有一份数据,放在共用存储设备上,一次被一个节点访问,获得高可用性;要么是把数据复制为多份,存储于每个节点的本地硬盘上,用户的请求同时发送到多个节点上,获得负载均衡能力。

对于高可用性集群,由于它在设计时的目的就是为了最大可能地减少服务中断时间,因此服务的切换受到很大的关注。当一个节点上的服务故障时,会被很快地检测到并被切换到其他节点上。但在切换时,不能忽略对数据完整性的保护。
在什么情况下数据完整性会被破坏呢?由于高可用性集群中至少有两个节点,连接在一个共用的存储设备上,对于非裸分区而言,如果被两个节点同时读写,就会造成文件系统被破坏。因此就需要利用I/O屏障来防止这一事件的发生。

I/O屏障的目的是为了保证故障节点不能再继续读写某一服务的共用分区,实现的方式有多种。Kimberlite使用硬件开关来实现,当一个节点发 生故障时,另一节点如果能侦测到,就会通过串行口发出命令,控制连接在故障节点电源上的硬件开关,通过暂时断电,而后又上电的方式使得故障节点被重启动。

I/O屏障有多种形式。对于支持SCSI Reserve/Release命令的存储设备,也可以用SG命令实现I/O屏障。正常节点应使用SCSI Reserve命令“锁住”共用存储设备,保证其不被故障节点读写。如果故障节点上的集群软件仍在运行,如发现共用存储设备已被对方锁住,就应把自己重启 动,以恢复正常工作状态。

以上介绍了Linux集群技术的基本原理,也介绍了几种著名的软件。总之,Linux集群技术最大的发挥了PC机和网络的优势,可以带来可观的性能,是一种大有前途的技术。

<!-- 操作-->
Tag: Linux   高性能   集群  
分享到:
评论

相关推荐

    Linux集群.pdf

    Linux 集群技术概述 Linux 集群是一种高性能的计算机集群系统,使用 Linux 操作系统作为集群的操作系统。 Linux 集群具备高可靠性、高速运算速度和灵活的扩展性等优点,广泛应用于科学计算、数据分析、云计算等领域...

    浅析Linux集群技术.pdf

    【Linux 集群技术概述】 ...综上所述,Linux集群技术已经成为许多企业和组织应对高并发、高可用性和高性能计算需求的重要手段。通过集群技术,企业可以构建出既经济又可靠的IT基础设施,满足日益增长的业务需求。

    基于LINUX的集群服务技术在校园网中的应用.pdf

    **Linux集群技术概述** Linux集群是一种将多台计算机(节点)连接起来,共同提供网络资源的技术。这些节点协同工作,对外表现为单一系统,管理员可以灵活地增减节点。集群主要分为三类:高可用性集群,保证服务在...

    Linux下集群技术的开发及其应用毕业论文.docx

    1. 集群技术概述 集群技术是指将多个独立的服务器连接起来,以提供高性能、可靠性和可扩展性的计算环境。集群系统可以提供高可用性、负载均衡和高性能计算等功能。在 Linux 系统中,有高可用集群、负载均衡集群和高...

    Linux集群技术

    ### Linux集群技术详解 #### 一、概述 随着互联网技术的迅速发展,用户对网络服务的需求不断攀升,尤其是对服务器的并发访问能力提出了更高的要求。为了解决这一问题,集群技术作为一种有效手段被广泛应用于提高...

    一个基于Linux的集群部署方案.pdf

    该方案通过研究Linux启动过程,结合远程启动技术,提出了一个基于Linux的集群部署方案,有效地解决了集群的安装、升级、备份等问题,提供了高性能、高可靠性、高可用性的系统支持。 集群管理 集群管理是指对多个...

    计算机集群技术概述.pdf

    操作系统层面,通常需要支持集群特性的操作系统,如Linux的Heartbeat或Windows Server的Cluster Service;网络层面,心跳网络用于监控节点状态,数据网络则负责数据传输;中间件如负载均衡器和分布式文件系统(如GFS...

    linux 集群系统

    根据提供的文件信息,我们可以深入探讨Linux集群系统以及与之相关的LVS(Linux Virtual Server)负载均衡技术,并结合文件中提及的IP网络链路带宽测量技术进行综合分析。 ### Linux集群系统 #### 一、概述 Linux...

    基于linux集群的并行计算

    #### Linux集群概述 Linux集群是指多台运行Linux操作系统的计算机(节点)通过网络连接形成的一个整体,共同完成特定的任务。这些节点之间可以通过高速网络进行通信与协作,从而表现出类似于单一高性能计算机的功能...

    Linux下Zookeeper集群的安装

    ### Linux下Zookeeper集群的安装详解 #### 一、Zookeeper概述及主要功能 ##### Zookeeper简介 Zookeeper是一款开源的分布式协调服务组件,属于Apache顶级项目之一。它主要用于简化分布式应用程序的开发过程,为...

    一种异构的Linux集群解决方案.pdf

    总的来说,这篇论文深入研究了Linux集群技术,分析了现有技术的局限性,并提出了一种创新的解决方案,旨在提高集群系统的实用性、可管理性和数据一致性。这对于Linux操作系统的研究者、系统开发者以及寻求高效集群...

    RedHat EnterPrise linux 高可用集群技术.pdf

    ### Red Hat Enterprise Linux 高可用集群技术解析 #### 绪论与背景 随着企业级应用对稳定性和可靠性的要求日益提高,Red Hat Enterprise Linux (RHEL) 推出了其高可用集群技术,以应对关键业务场景下的数据保护和...

    LINUX系统下的集群体系结构.pdf

    《LINUX系统下的集群体系结构》一文深入探讨了在LINUX环境下集群系统的概念、特点、分类以及具体的体系结构设计,对于理解现代IT基础设施中集群技术的应用与发展具有重要的指导意义。 ### 集群系统概述 集群系统,...

    Linux-服务器集群技术.ppt

    在本讲座中,我们将探讨集群概述、服务器集群系统、特别是Linux Virtual Server (LVS)以及实战应用和推荐。 首先,集群概述涉及到如何构建一个能够作为一个单一实体运行的多计算机系统。这种系统由多个互相连接的...

    linux redis集群部署

    ### Linux Redis 集群部署详解 #### 一、概述介绍 Redis自3.0版本开始支持集群功能,这一特性极大地扩展了Redis的应用场景,并提高了其在大规模分布式系统中的可用性和扩展性。以下是对Redis集群的一些核心特性的...

    2017老男孩Linux集群全网服务器数据备份方案超细实战视频课程

    ### 一、2017年老男孩Linux集群全网服务器数据备份方案概述 #### 1. Linux集群简介 - **定义**: Linux集群是指由多台运行Linux操作系统的计算机通过网络连接起来共同工作,对外提供统一的服务或计算能力的一种技术...

    浅谈Linux集群的研究动态及其创建.pdf

    【Linux 集群概述】 Linux 集群是一种由多台计算机组成的系统,它们协同工作,对外表现为单一的高性能、高可用性、高可扩展性的计算资源。Linux 集群的应用范围广泛,包括军事、银行、石油和天然气探测、计算机辅助...

    linux集群中MPI的并行计算环境简单配置

    以上步骤概述了在Linux集群中配置MPI并行计算环境的基本流程。通过这种方式,不仅可以显著提升大规模数据处理的效率,还能在成本控制和资源利用方面取得最佳平衡,对于追求高性能计算的组织和个人而言,无疑是一套...

    2020.9.26 Linux集群应用实战视频.txt

    ### 一、Linux集群概述 Linux集群是指由多台运行Linux操作系统的计算机通过网络连接而组成的一个系统,这个系统能够提供比单个计算机更强大的计算能力和更高的可用性。在企业级环境中,Linux集群被广泛应用于负载...

Global site tag (gtag.js) - Google Analytics