Linux集群技术概论
1 集群的定义
集群是一组协同工作的服务集合,用来提供比单一服务更稳定、更高效、更具扩展性的服务平台,在外界看来,集群就是一个独立的服务实体,但实际上,在集群的内部,有两个或两个以上的服务实体在协调、配合完成一系列复杂的工作。
集群一般有两个或两个以上的服务器组建而成,每个服务器被称为一个集群节点,集群节点之间可以相互通信,通信的方式有两种,一种是基于RS232线的心跳监控,另一种是用一块单独的网卡来跑心跳,因而,集群具有节点间服务状态监控功能,同时还必须具有服务实体的扩展功能,可以灵活的增加和剔除某个服务实体。
在集群中,同样的服务可以由多个服务实体提供。因而,当一个节点出现故障时,集群的另一个节点可以自动接管故障节点的资源,从而保证服务持久、不间断运行。因而集群具有故障自动转移功能。
一个集群系统必须拥有共享的数据存储,因为集群对外提供的服务是一致的,任何一个集群节点运行一个应用时,应用的数据都集中存储在节点共享空间内,而每个节点的操作系统上仅运行应用的服务,同时存储应用程序文件。
综上所述,构建一个集群系统至少需要两台服务器,同时还需要有串口线、集群软件、共享存储设备(例如磁盘阵列)等。
基于Linux的集群以其极高的计算能力、可扩展性、可用性及更加优化的性价比在企业各种应用中脱颖而出。 成为目前大家都关心的Linux应用热点,熟练掌握Linux集群知识,可以用低价格做出高性能的应用。为企业、个人节省了成本。国内大型网站新浪、网易等都采用了linux集群系统构建高性能web应用,著名搜索引擎google采用了上万台linux服务器组成了一个超大集群,这些实例都说明了集群在linux应用中的地位和重要性。
2 集群的特点与功能
2.1 高可用性与可扩展性
1.高可用性
对于一些实时性很强的应用系统,必须保证服务的24小时不间断运行,而由于软件、硬件、网络、人为等各种原因,单一的服务运行环境很难达到这种要求,此时构建一个集群系统是个不错的选择,构建集群的一个最大优点是集群具有高可用性,在服务出现故障时,集群系统可以自动将服务从故障节点切换到另一个备用节点,从而提供不间断性服务,保证了业务的持续运行。
2.可扩展性
随着业务量的加大,现有的集群服务实体不能满足需求时,可以向此集群中动态的加入一个或多个服务节点,从而满足应用的需要,增强集群的整体性能。这就是集群的可扩展性。
2.2 负载均衡与错误恢复
1.负载均衡
集群系统最大的特点是可以灵活、有效的分担系统负载,通过集群自身定义的负载分担策略,将客户端的访问分配到下面的各个服务节点,例如,可以定义轮询分配策略,将请求平均的分配到各个服务节点,还可以定义最小负载分配策略,当一个请求进来时,集群系统判断哪个服务节点比较清闲,就将此请求分发到这个节点。
2.错误恢复
当一个任务在一个节点上还没有完成时,由于某种原因,执行失败,此时,另一个服务节点应该能接着完成此任务,这就是集群提供的错误恢复功能,通过错误的重定向,保证了每个执行任务都能有效的完成。
2.3心跳检测与漂移IP
1.心跳监测
为了能实现负载均衡、提供高可用服务和执行错误恢复,集群系统提供了心跳监测技术,心跳监测是通过心跳线实现的,可以做心跳线的设备有RS 232串口线,也可以用独立的一块网卡来跑心跳,还可以是共享磁盘阵列等,心跳线的数量应该为集群节点数减1,需要注意的是,如果通过网卡来做心跳的话,每个节点需要两块网卡,其中,一块作为私有网络直接连接到对方机器相应的网卡,用来监测对方心跳。另外一块连接到公共网络对外提供服务,同时心跳网卡和服务网卡的IP地址尽量不要在一个网段内。心跳监控的效率直接影响故障切换时间的长短,集群系统正是通过心跳技术保持着节点间的内部有效通信。
2.漂移IP地址
在集群系统中,除了每个服务节点自身的真实IP地址外,还存在一个漂移IP地址,为什么说是漂移IP呢,因为这个IP地址并不固定,例如在两个节点的双机热备中,正常状态下,这个漂移IP位于主节点上,当主节点出现故障后,漂移IP地址自动切换到备用节点,因此,为了保证服务的不间断性,在集群系统中,对外提供的服务IP一定要是这个漂移IP地址,虽然节点本身的IP也能对外提供服务,但是当此节点失效后,服务切换到了另一个节点,但是服务IP仍然是故障节点的IP地址,此时,服务就随之中断。
3 集群的分类
3.1 高可用集群
1.高可用的概念
高可用集群的英文全称是High Availability Cluster,简称HA Cluster, 高可用的含义是最大限度的可以使用,从集群的名字上可以看出,此类集群实现的功能是保障用户的应用程序持久、不间断的提供服务。
当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以自动、快速从一个节点切换到另一个节点,从而保证应用持续、不间断的对外提供服务,这就是高可用集群实现的功能,
2.常见的HA Cluster
我们常说的双机热备、双机互备、多机互备等都属于高可用集群的范畴,这类集群一般都有两个或两个以上节点组成。典型的双机热备结构如图1所示:
图1 双机热备结构
双机热备是最简单的应用模式,即经常说的active/standby方式,它使用两台服务器,一台作为主服务器(action),运行应用程序对外提供服务,另一台作为备机(standby),安装和主服务器一样的应用程序,但是并不启动服务,处于待机状态。主机和备机之间通过心跳技术相互监控,监控的资源可以是网络、操作系统、也可以是服务,用户可以根据自己的需要,选择需要监控的资源,当备机监控到主机的某个资源出现故障时,根据预先设定好的策略,首先将IP切换过来,然后将应用程序服务也接管过来,接着就由备机对外提供服务,由于切换过程时间非常端,用户根本感觉不到程序出了问题,而且还进行了切换,从而保障了应用程序持久、不间断的服务。
双机互备是在双机热备的基础上,两个相互独立的应用在两个机器上同时运行,互为主备,即两台服务器既是主机也是备机,当任何一个应用出现故障,另一台服务器都能在短时间内将故障机器的应用接管过来,从而保障了服务的持续、无间断运行。双机互备的好处是节省了设备资源,两个应用的双机热备至少需要四台服务器,而双机互备仅需两台服务器即可完成高可用集群功能,但是双机互备也有自身的缺点:在某个节点故障切换后,另一个节点上就同时运行了两个应用的服务,有可能出现负载过大的情况。
多机互备是双机热备的技术升级,通过多台机器组成一个集群,可以在多台机器之间设置灵活的接管策略,例如,某个集群环境有8台服务器组成,3台运行web应用,3台运行mail应用,因而,可以将剩余的一台作为3台web服务器的备机,另一台作为3台mail服务器的备机,通过这样的部署,合理充分的利用了服务器资源,同时也保证了系统的高可用性。
需要注意的是:高可用集群不能保证应用程序数据的安全性,它仅仅解决的是对外提供持久不间断的服务,把由于软件、硬件、网络、人为因素造成的故障而对应用造成的影响降低到最底程度。
3.高可用集群软件
高可用集群一般是通过高可用软件来实现的,在linux下常用的高可用软件有:开源heartbea HA、Redhat提供的RHCS、商业软件ROSE、keepalived等。在下面的章节中我们会详细介绍heartbea HA的配置和使用。
3.2 负载均衡集群
负载均衡系统的英文全称为Load Balance Cluster,简称LB Cluster,负载均衡集群也是有两台或者两台以上的服务器组成,分为前端负载调度和后端节点服务两个部分,负载调度部分负责把客户端的请求按照不同的策略分配给后端服务节点,而后端节点是真正提供应用程序服务的部分。
与HA Cluster不同的是,在负载均衡集群中,所有的后端节点都处于活动状态,它们都对外提供服务,分摊系统的工作负载。
负载均衡集群可以把一个高负荷的应用分散到多个节点来共同完成,适用于业务繁忙、大负荷访问的应用系统,但是它也有不足的地方:当一个节点出现故障时,前端调度系统并不知道此节点已经不能提供服务,仍然会把客户端的请求调度到故障节点上来,这样访问就会失败,为了解决这个问题,负载调度系统一般都引入了节点监控系统。
节点监控系统位于前端负载调度机上,负责监控下面的服务节点,当某个节点出现故障后,节点监控系统会自动将故障节点从集群中剔除,当此节点恢复正常后,节点监控系统又会自动将其加入集群中,而这一切,对用户来说是完全透明的。
图2显示了负载均衡集群的基本结构:
图2 负载均衡集群基本构架
负载均衡集群可以通过软件方式实现,也可以由硬件设备来完成,linux下典型的负载均衡软件有:开源LVS集群、Oracle的RAC集群等,硬件负载均衡器有F5 Networks等。关于LVS集群,在下面的章节我们会进行详细讲解。
3.3 科学计算集群
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力,包括数值计算和数据处理,并且倾向于追求综合性能。HPC与超级计算类似,但是又有不同,计算速度是超级计算追求的第一目标。最快的速度,最大的存储,最庞大的体积,最昂贵的价格代表了超级计算的特点,随着人们对计算速度需求的提高,超级计算也应用到了各个领域,对超级计算追求单一计算速度指标转变为追求高性能的综合指标。即高性能计算。
HPC应用领域非常广泛,典型应用有:生命科学研究、基因测试比对、数据挖掘应用、石油和天然气勘探、图像呈现等。
本篇文章来源于锋芒网(www.ixdba.net) 原文链接:http://www.ixdba.net/a/lb/2010/0920/766.html
- 大小: 22.6 KB
- 大小: 40.8 KB
分享到:
相关推荐
MHA 集群概述和部署 MHA(Master High Availability)是一种基于 MySQL 的高可用性解决方案,旨在提供高可用性和自动故障转移的 MySQL 集群解决方案。下面是 MHA 集群概述和部署的知识点: 一、MHA 集群概述 1. ...
Linux运维-6.集群-集群视频-1集群概念-01集群概述.mp4
Linux运维-运维课程d6-MySQL主从复制架构-02-MySQL集群概述.mp4
【容器云管理之K8S集群概述】 容器云管理已成为现代企业IT基础设施的重要组成部分,得益于虚拟化技术和容器化的快速发展。企业不再受制于物理硬件的限制,而是通过自动化配置实现业务架构的规模化,能自动扩展和...
14.1 MySQL高可用集群概述 14.2 heartbeat + DRBD高可用性方案的实现原理 14.3 部署MySQL高可用高扩展集群 14.3.1 配置之前的准备 14.3.2 DRBD的部署 14.3.3 DRBD的配置 14.3.4 DRBD的维护和管理 ...
#### 一、Kettle集群概述 Kettle是一款强大的开源ETL(Extract-Transform-Load)工具,广泛应用于数据抽取、转换和加载的过程中。为了提高处理大规模数据集的能力,Kettle提供了多线程和集群功能。其中,**Kettle...
一、MySQL集群概述 MySQL集群(MySQL Cluster)是MySQL数据库系统的一个特性,它通过将数据分布在多个节点之间来实现高可用性和高性能。这种架构允许数据在多个服务器上实时复制,从而提供故障转移和负载均衡。...
Redis 集群概述 Redis 集群是一种高可用性的 Redis 部署方式,通过将多个 Redis 节点组成集群,可以实现自动容错、负载均衡和高可用性。Redis 集群由多个主节点和从节点组成,主节点负责写入数据,而从节点负责同步...
#### 一、Oracle RAC 11g 集群概述 Oracle Real Application Clusters (RAC) 是一种集群技术,能够在一个或多个服务器上运行单个 Oracle 数据库实例。这种架构提供了高可用性和负载均衡功能,特别适合于关键业务...
vSAN 延展集群概述 vSAN 延展集群是一种基于分布式存储的集群解决方案,它可以将多个站点连接起来,提供高可用性和灾难恢复能力。在 vSAN 延展集群中,两个数据故障域包含一个或多个主机,第三个故障域包含一个观察...
#### 一、ArcGIS Server 10.1 集群概述 ArcGIS Server 10.1 的集群配置是一种高级部署方式,旨在提高系统的可用性和扩展性。通过将多台服务器组织成一个集群,系统能够更好地应对高负载情况,同时确保服务的连续性...
#### 二、Kettle动态集群概述 Kettle动态集群是一种分布式计算架构,它允许将任务分配给多个节点执行,从而提高处理效率。这种集群模式支持节点的动态加入与退出,增强了系统的灵活性与可扩展性。 #### 三、动态...
一、Hadoop HA高可用集群概述 在大数据处理中,高可用集群是非常重要的,Hadoop HA高可用集群可以提供高可靠性和高可用性,确保数据处理不中断。该集群由Hadoop、Zookeeper和HBase三个组件组成,每个组件都扮演着...
1. Redis集群概述 Redis集群是Redis提供的分布式数据库解决方案,它可以将数据自动切分到多个Redis节点上。集群通过分区来提供一定程度的可用性,在部分节点出现故障时仍然能够继续处理命令请求。对于Redis的集群...
#### 一、故障转移集群概述 **故障转移集群**是一种由多台独立计算机组成的集合体,它们通过协同工作来提高集群上运行的角色(即应用程序和服务)的可用性和可扩展性。这种集群中的服务器被称为节点,它们之间通过...
【Redis集群概述】 Redis集群是Redis数据库的一种高可用性解决方案,它通过分布式的方式来提供服务,以提高系统的可扩展性和容错性。Redis集群遵循主从复制的架构,至少需要3个主节点,每个主节点有一个副本,即...
#### 一、Hyper-V高可用性集群概述 Hyper-V高可用性集群是微软虚拟化技术中的一个重要组成部分,它旨在通过构建虚拟服务器集群来增强数据中心的灾难恢复能力、负载均衡、提升可用性和简化管理。这种集群结构不仅...
#### 一、SQL Server 集群概述 - **集群定义**:SQL Server 集群是一种高可用性解决方案,通过将多台服务器配置成一个集群来实现对应用程序和服务的故障转移。这种集群架构能够确保即使在某个节点发生故障的情况下...
#### 二、高性能计算集群概述 高性能计算集群是指通过网络连接多台计算节点(通常是PC或工作站),共同完成复杂的计算任务的系统。这些集群通常使用开放源代码的操作系统(如Linux)和集群管理软件来实现高性能计算...