计算机集群技术概述
计算机集群技术探析

节 点 出现 故 障 时 , 行 在 出 故 障 的 节 点 上 的 应用 程序 就 会 转 移 D a c e ,V S的 IV , 运 ip t h r L s P S 这是单次连接一 级的中粒 度调度方 基 又 到 另外的没有 出现故 障的服 务器上 , 这样一来 , 由于两个节点 案 ; 于 内 容 的 负 载 平 衡 解 决 方 法 ( 称 为 第 七 层 调 度 或 基 于 的工 作 现 在 由一 个 服 务 器 来 承 担 , 自然 会 影 响服 务 器 的 性 能 。 应 用 层 的 调 度 ) 调 度 考 虑 服 务 器 的 负 载 , 考 虑 服 务 的 内容 , , 还 针 对 这 种 情 况 的解 决 方 案 是 , 正 常 操 作 时 , 一 个 节 点 处 于 如 Z u 在 另 e s负 载 调 度 器 、 Wb Rv r e P o y和 S E 以及 R s p e ,e e s — r x WB e—
织 起 来 进 行 协 同工 作 来 模 拟 一 台功 能 更 强 大 的 系 统 , 种 技 术 要 技 术 , 是 目前研 究 工 作 的 重 点 。现 有 的 调度 机 制 都 以 负 载 这 也 称 为 集 群 技 术 。所 谓 集 群 , 是共 同 为 客 户 机提 供 网 络 资 源 的 均衡 为基础 , 就 按照控制粒度 由粗 到细 的顺序有 如下几种 : 基于
一
组 服 务 器 系 统 , 中 的 每 一台 提 供 服 务 的计 算机 , 之 为 节 R — N 其 称 R D S的调 度 , 如 N S r u 和 D C W L g o p采 用 过 的解 CAgop E R r u
点 。 当一 个 节 点 不 可 用 或 者 不 能 处 理 客 户 的请 求 时 , 请 求 将 决 方 案 , 是 客 户机 一 级 的粗 粒度 调度 方 案 。其 好 处 是 实 现 简 该 这 会 转 到 另 外 的 可 用 节 点 来 处 理 , 些 对 于 客 户 端 来 说 , 根 本 单 , 要 问 题 是 负载 容 易 倾 斜 , 务 器 非 完 全 透 明 , 用 性 与 可 这 它 主 服 可 不 必 关心 这 此 要 使 用 的 资 源 的 具 体 位 置 , 集 群 系 统 会 自动 完 维护性 差; 基于负载均 衡器 的调度 , 通过 专 门的负载 均衡器将
浅谈计算机集群技术及并行计算

用程序 。当一个节点出现故障时 ,运行在出故障 的节点 上 的应用程序就会转移到另外的没有 出现故障的服务器
上 。这样一来 ,由于两个节点的工作现在 由一个服务器 来承担 ,自然会影 响服务器的性能。
3 4 信息 系统 T程 l2 1 0 0252
三 、并行 算法 的基本概 念
算 法就是求 解 问题 的方法 和步骤 。并行 算法 ,就
是在并行机上用很多个处理器联合求解问题的方法 和步 骤。实际上 ,在 自然界 中并行是客观存在的普遍现象 ,
R G O N O 数字地方 E I NL F
关键 问题在于能不能很好地利用 。由于人们 的思维能力 以及思考 问题的方法对并行不太 习惯 ,且并行算法理论
理 。一个客户端 ( l n )与集群相互作用时 ,集群像 Ci t e
提供 了对软件和硬件失败后 的接替 。它将服务器镜像到
备用系统或节点 中,当主节点上的系统崩溃时 ,冗余节
点就从替补角色转换到正式角色 ,并 自动投入应用 ,从 而保证 了系统运行的不 间断。 3系统具有很强的可伸缩性 :在系统的处理能 力需 . 要增加的时候 ,除了通过增加集群 中每个计算机节点 的 单机处理能力 ( 如通过增加c u P 数量 、增加 内存大小等 手段 )外 ,还可 以通过增加集群节点数 ,即通过 向集群 添加 新 的计算 机节点 ,使服务 随着 处理器 的添加 而伸 缩 ,从而增大应用程序吞吐量 ,以达到增加系统 的整体
<<
RG N NO 数 地 EI F 字 方 OL
浅谈计算机集群技术及并行计算
◆王 丹
摘要 :集群技术作为 当前研 究的一项新话题 ,其在各个领域 中得到广 泛应用 ,本文首先就计算机 集群技 术以及并行算法 ,然后 总结 了并行 算法
集群方案分析

集群方案分析摘要在部分项目实施过程中,用户提出了要求采用“双机”的方案。
目前业内双机技术方案比较多,能解决的问题、达到的目标、用户拥有成本也不相同。
本文试图给出主要技术方案的比较,供项目选型参考。
关键词计算机技术;集群方案;双机技术中图分类号tp3 文献标识码a 文章编号 1674-6708(2013)84-0183-021 集群的概念计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。
在某种意义上,他们可以被看作是一台计算机。
集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。
集群计算机通常用来改进单个计算机的计算速度和/或可靠性。
一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。
按功效,可将集群分为:1)高可用性集群 high-availability (ha) clusters;2)负载均衡集群 load balancing clusters;3)高性能计算集群 high-performance (hpc) clusters;4)网格计算 grid computing。
高可用性集群提供了尽可能大的平均无故障时间时间、尽可能小的平均故障恢复时间。
在集群内部署冗余设备,当系统中某台机器发生故障时,备用机器立刻启动接管任务。
我们通常说的双机热备就是一种高可用性集群。
负载均衡集群提供了根据各个节点的闲置能力情况,将并发访问分散到各个节点上的功能,以使得集群整体的处理能力最大化,或当个任务的等待时间最小。
高性能集群、网格计算着眼点在于如何将一个大型任务分解到集群的各个节点中协同处理。
主要应用领域包括天气预报、核试验仿真等。
在我司目前及未来的主要项目中,一般不包含此类大型任务处理的需求,而主要处理多用户并发的小任务。
这些并发小任务处理的性能问题特别适合使用负载均衡集群予以解决。
按照各种集群产品的技术路线,可将集群分为:1)系统层集群系统层集群是集群平台。
软件开发知识:利用集群技术构建高可用性的系统

软件开发知识:利用集群技术构建高可用性的系统随着互联网技术的不断发展,越来越多的企业和组织都在构建自己的高可用性系统,以保证业务的稳定性和数据的安全性。
其中的关键技术之一就是集群技术,通过多台服务器的联合工作,实现高可用性的系统构建。
本文将从以下四个方面深入阐述集群技术构建高可用性系统的要点和步骤。
首先,介绍集群技术的基本概念和原理。
其次,探讨如何利用集群实现系统的负载均衡和故障转移,同时介绍相关的软件和工具。
第三,详细解释如何选用适合的硬件设备和网络结构来搭建集群系统。
最后,对常见的集群系统故障进行分析,提出应对方法。
一、集群技术概述集群技术是一种将多台计算机联合起来构成一个高性能、高可用性、高扩展性的计算机系统的技术。
集群系统通常由多个相互独立的服务器节点组成,节点之间通过特定的网络通信协议进行数据的交换和共享。
在集群系统中,任何一个计算机节点都可以以工作节点的身份进入到整个集群体系中,从而实现任务的分配和执行。
而整个集群系统也可以通过编程、配置等方式实现负载均衡和故障转移,从而提高系统的可用性和稳定性。
二、集群技术实现高可用性系统的原理和步骤2.1负载均衡负载均衡是集群技术中最基本的概念之一。
在一个系统或服务中,用户的请求往往是随机分布的,不同请求的负载也会有所差异。
而通过负载均衡技术,可以将不同请求分配到不同计算机节点中进行处理,从而实现系统的负载均衡。
负载均衡可以分为硬件负载均衡和软件负载均衡两种类型。
硬件负载均衡一般采用专用网络交换机或路由器来实现,比如F5、NetScaler等;而软件负载均衡通常采用虚拟网络设备或软件来实现,比如Nginx、HAProxy等。
2.2故障转移故障转移指在集群系统中,如果某个节点出现了故障,如何及时将请求转发到其他节点,以保证系统的可用性和稳定性。
故障转移也可以分为硬件故障转移和软件故障转移两种类型。
硬件故障转移一般采用专用的硬件设备或热插拔设备来实现,比如磁盘阵列设备或高可用性存储系统。
服务器集群技术

服务器集群技术第一点:服务器集群技术概述服务器集群技术是一种计算机技术,通过将多个服务器组合成一个集群,共同提供计算、存储和网络服务,以提高系统的性能、可靠性和可扩展性。
集群中的每个服务器被称为节点,节点之间通过网络连接,协同工作,共同完成任务。
服务器集群技术的主要优点有:1.高可用性:当集群中的某个节点出现故障时,其他节点可以接管故障节点的任务,从而保证系统的正常运行。
通过配置高可用性软件,如heartbeat、corosync 等,可以实现节点之间的故障转移和负载均衡。
2.可扩展性:服务器集群技术可以根据系统的负载情况,动态地增加或减少节点,以满足不断变化的计算需求。
这使得集群可以随着业务的发展而扩展,而无需停机或重新配置系统。
3.负载均衡:通过负载均衡技术,可以将任务均匀地分配到集群中的各个节点,从而提高系统的处理能力和效率。
负载均衡可以通过软件实现,如LVS、HAProxy 等,也可以通过硬件设备实现,如 F5 负载均衡器。
4.数据冗余:在服务器集群中,可以通过数据冗余技术,将数据复制到多个节点,以提高数据的可靠性和安全性。
常见的数据冗余技术有 RAID、DNS 轮询等。
5.灵活性:服务器集群技术可以支持多种应用和服务,如 Web 服务、数据库服务、文件服务等。
此外,集群可以根据不同的业务需求,灵活地调整节点数量、配置和负载策略。
服务器集群技术的主要应用场景有:1.大型网站:为了应对高并发、高流量的需求,大型网站通常采用服务器集群技术,将网站的业务流量分发到多个服务器,提高网站的访问速度和稳定性。
2.云计算平台:云计算平台通过服务器集群技术,提供大规模、弹性可扩展的计算资源和服务,满足不同用户的计算需求。
3.分布式存储:分布式存储系统通过服务器集群技术,将数据分布存储到多个节点,提高数据的可靠性和可扩展性。
4.大数据处理:大数据处理框架如 Hadoop、Spark 等,通过服务器集群技术,实现大规模数据的分布式计算和存储。
服务器集群技术方案(2)

的计算机,利用高速通信网络组成一个单一的计算机系统,并以单一系统的模式加以管理。
其出发点是提供高可靠性、可扩充性和抗灾难性。
一个集群包含多台拥有共享数据存储空间的服务器,各服务器通过内部局域网相互通信。
当一台服务器发生故障时,它所运行的应用程序将由其它服务器自动接管。
在大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内的任一系统上运行的服务都可被所有的网络客户使用。
采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。
体系结构是否相同。
集群计算机按功能和结构可以分成以下几类:High-availability (HA) clustersLoad balancing clustersHigh-performance (HPC) clustersGrid computing普通是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。
还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
负载均衡集群运行时普通通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。
这样的计算机集群有时也被称为服务器群 (Server Farm) 。
普通高可用性集群和负载均衡集群会使用类似的技术,或者同时具有高可用性与负载均衡的特点。
Linux 虚拟服务器(LVS)项目在Linux 操作系统上提供了最常用的负载均衡软件。
高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,于是主要应用在科学计算领域。
比较流行的HPC 采用Linux 操作系统和其它一些免费软件来完成并行运算。
这一集群配置通常被称为Beowulf 集群。
这种集群通常运行特定的程序以发挥HPC cluster 的并行能力。
这种程序普通应用特定的运行库, 比如专为科学计算设计的MPI 库。
HPC 集群特殊适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或者影响到其它节点计算结果的情况。
集群CLUSTER种类介绍

集群CLUSTER种类介绍⼀、集群CLUSTER 介绍计算机集群Cluster,可以把多台计算机连接在⼀起使⽤,平分资源或互为保障。
其好处不⾔⽽喻,群集中的每个计算机被称为⼀个节点,节点可添加可减少,在这些节点之上虚拟出⼀台计算机供⽤户使⽤;从使⽤⽤户的⾓度看始终是使⽤⼀台计算机,⽆所谓多少节点。
如Figure1所⽰,其中多台计算机可以共同分担资源,也可以互为保障,节点之间的⼯作⽅式取决于不同的群集技术,不同⼚商实现⽅式会有不同。
当下流⾏的群集技术可分为以下⼏种:HA⾼可⽤集群、负载均衡集群、并⾏计算群集。
⼆、HA⾼可⽤集群High availability Cluster⾼可⽤群集,简称HAC ;主要⽤于⾼可⽤解决⽅案的实现,节点间以主备形式,实现容灾;在⼤型故障(宕机,服务器故障)的情况下实现快速恢复,快速提供服务。
如下图所⽰:当前节点在Node01,所有业务在Node01上运⾏,若发⽣故障服务和资源会转移到Node02上。
⾼可⽤集群的另外⼀个特点是共享资源,多个节点服务器共享⼀个存储资源,该存储可在不同节点之间转移。
关于存储(Raid)知识可参考:⾼可⽤群集可实现以下三种⽅式:主从⽅式:主机⼯作,备机监控。
此⽅式不能有效的利⽤服务器资源互为主从:两服务器同时在线,⼀台服务器故障可切换到另⼀台上。
此⽅式有效的利⽤服务器资源,但当服务器故障时候,将导致⼀台服务器上运⾏多个业务。
多台服务器主从:⼤部分服务器在线使⽤,⼩部分监控;若有部分服务器故障,可切换到指定的⼩部分服务器上。
此⽅式为前两种⽅式的综合。
然后多台服务器群集,也增加了管理的复杂度。
微软的故障转移群集功能最早在Windows NT 4.0企业版中实现。
笔者所使⽤的Windows Server 2008 R2 Sp1企业版最多个可⽀持16个节点。
三、负载均衡集群Load Balancing负载均衡,不同节点之间相互独⽴,不共享任何资源;通过⼀定算法将客户端的访问请求平分到群集的各个节点上,充分利⽤每个节点的资源。
簇的四种定义

簇的四种定义今天,集群的概念在计算机科学中被广泛使用,它增加了计算的有效性和效率。
根据集群的概念,一个集群是指一组计算机系统相互协作,共同完成一个任务的一组计算系统,可以把它想象成一个服务器。
集群有四种定义:结构性、任务性、紧密性和故障容忍性。
首先,结构性集群是一组计算机系统,它们被组织成一个集群,并使用在共享计算机中提供的中央进程单元(CPU)、存储、软件和网络资源。
一般来说,每个成员计算机被称为节点,这些节点共同使群集拥有更强大和灵活的计算能力。
结构性集群适用于执行批量处理任务、高性能计算,如高精度分析和机器学习。
其次,任务型集群是一组计算机系统,它们被组织成一个集群,共同完成一个任务,而不是独立完成一个任务。
它只包含一部分计算机系统,而这部分计算机是支持共同完成一个任务的必要系统。
任务型集群通常用于分布式系统,这种类型的集群可以把一个任务分成多个子任务,分流到不同的计算机上去完成,最终获得较好的性能和更好的可用性。
紧密型集群是一组计算机系统,它们被组织成一个集群,其中所有计算机系统都与其他计算机系统有紧密的相互联系。
计算机系统可以彼此通信,在必要时可以互换数据。
紧密型集群通常用于分布式存储系统,它可以通过存储技术,通过分布式文件系统将系统里的文件存储在不同的位置,保证文件的安全性和可用性。
最后,故障容忍性集群是一组计算机系统,它们被组织成一个集群,其中每台计算机都能够自主处理和故障恢复,不受其他计算机的影响。
故障容忍性集群通常用于多层网络系统,如果某台计算机发生故障,其他计算机可以及时的接替,从而确保系统正常运行。
总之,从上面的讨论可以看出,集群有四种定义:结构性、任务性、紧密性和故障容忍性,它们的特点是相同的总体结构,即一个集群是指一组计算机系统相互协作,共同完成一个任务的一组计算系统,但它们各有不同的应用领域和技术特点,通过使用相应的集群技术,可以提升计算机系统的性能和可用性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机集群技术概述摘要:集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
本文就集群系统的定义、发展趋势、任务调度等问题进行了简要论述。
关键词:计算机;集群;任务调度;发展趋势1 集群的定义集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。
一个客户与集群相互作用时,集群像是一个独立的服务器。
集群配置是用于提高可用性和可缩放性。
2 采用集群的目的2.1 提高性能一些计算密集型应用,如:天气预报、核试验模拟等,需要计算机要有很强的运算处理能力,现有的技术,即使普通的大型机其计算也很难胜任。
这时,一般都使用计算机集群技术,集中几十台甚至上百台计算机的运算能力来满足要求。
提高处理性能一直是集群技术研究的一个重要目标之一。
2.2 降低成本通常一套较好的集群配置,其软硬件开销要超过100000美元。
但与价值上百万美元的专用超级计算机相比已属相当便宜。
在达到同样性能的条件下,采用计算机集群比采用同等运算能力的大型计算机具有更高的性价比。
2.3 提高可扩展性用户若想扩展系统能力,不得不购买更高性能的服务器,才能获得额外所需的CPU 和存储器。
如果采用集群技术,则只需要将新的服务器加入集群中即可,对于客户来看,服务无论从连续性还是性能上都几乎没有变化,好像系统在不知不觉中完成了升级。
2.4 增强可靠性集群技术使系统在故障发生时仍可以继续工作,将系统停运时间减到最小。
集群系统在提高系统的可靠性的同时,也大大减小了故障损失。
3 集群的分类3.1 科学集群科学集群是并行计算的基础。
通常,科学集群涉及为集群开发的并行应用程序,以解决复杂的科学问题。
科学集群对外就好像一个超级计算机,这种超级计算机内部由十至上万个独立处理器组成,并且在公共消息传递层上进行通信以运行并行应用程序。
3.2 负载均衡集群负载均衡集群为企业需求提供了更实用的系统。
负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。
负载通常包括应用程序处理负载和网络流量负载。
这样的系统非常适合向使用同一组应用程序的大量用户提供服务。
每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。
对于网络流量负载,当网络服务程序接受了高入网流量,以致无法迅速处理,这时,网络流量就会发送给在其它节点上运行的网络服务程序。
同时,还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。
与科学计算集群一样,负载均衡集群也在多节点之间分发计算处理负载。
它们之间的最大区别在于缺少跨节点运行的单并行程序。
大多数情况下,负载均衡集群中的每个节点都是运行单独软件的独立系统。
但是,不管是在节点之间进行直接通信,还是通过中央负载均衡服务器来控制每个节点的负载,在节点之间都有一种公共关系。
通常,使用特定的算法来分发该负载。
3.3 高可用性集群当集群中的一个系统发生故障时,集群软件迅速做出反映,将该系统的任务分配到集群中其它正在工作的系统上执行。
考虑到计算机硬件和软件的易错性,高可用性集群的主要目的是为了使集群的整体服务尽可能可用。
如果高可用性集群中的主节点发生了故障,那么这段时间内将由次节点代替它。
次节点通常是主节点的镜像。
当它代替主节点时,它可以完全接管其身份,因此使系统环境对于用户是一致的。
高可用性集群使服务器系统的运行速度和响应速度尽可能快。
它们经常利用在多台机器上运行的冗余节点和服务,用来相互跟踪。
如果某个节点失败,它的替补者将在几秒钟或更短时间内接管它的职责。
因此,对于用户而言,集群永远不会停机。
在实际的使用中,集群的这三种类型相互交融,如高可用性集群也可以在其节点之间均衡用户负载。
同样,也可以从要编写应用程序的集群中找到一个并行集群,它可以在节点之间执行负载均衡。
从这个意义上讲,这种集群类别的划分是一个相对的概念,不是绝对的。
4 集群的系统结构根据典型的集群体系结构,集群中涉及到的关键技术可以归属于四个层次:(1)网络层:网络互联结构、通信协议、信号技术等。
(2)节点机及操作系统层高性能客户机、分层或基于微内核的操作系统等。
(3)集群系统管理层:资源管理、资源调度、负载平衡、并行IPO、安全等。
(4)应用层:并行程序开发环境、串行应用、并行应用等。
集群技术是以上四个层次的有机结合,所有的相关技术虽然解决的问题不同,但都有其不可或缺的重要性。
集群系统管理层是集群系统所特有的功能与技术的体现。
在未来按需(On Demand)计算的时代,每个集群都应成为业务网格中的一个节点,所以自治性(自我保护、自我配置、自我优化、自我治疗)也将成为集群的一个重要特征。
自治性的实现,各种应用的开发与运行,大部分直接依赖于集群的系统管理层。
此外,系统管理层的完善程度,决定着集群系统的易用性、稳定性、可扩展性等诸多关键参数。
正是集群管理系统将多台机器组织起来,使之可以被称为“集群”。
5 集群系统的任务调度方法5.1 进程迁移进程迁移就是将一个进程从当前位置移动到指定的处理器上。
它的基本思想是在进程执行过程中移动它,使得它在另一个计算机上继续存取它的所有资源并继续运行,而且不必知道运行进程或任何与其它相互作用的进程的知识就可以启动进程迁移操作,这意味着迁移是透明的。
进程迁移是支持负载平衡和高容错性的一种非常有效的手段。
对一系列的负载平衡策略的研究表明:进程迁移是实现负载平衡的基础,进程迁移在很多方面具有适用性。
(1)动态负载平衡。
将进程迁移到负载轻或空闲的节点上,充分利用可用资源,通过减少节点间负载的差异来全面提高性能。
(2)容错性和高可用性。
某节点出现故障时,通过将进程迁移到其它节点继续恢复运行,这将极大的提高系统的可靠性和可用性。
在某些关键性应用中,这一点尤为重要。
(3)并行文件IO。
将进程迁移到文件服务器上进行IO,而不是通过传统的从文件服务器通过网络将数据传输给进程。
对于那些需向文件服务器请求大量数据的进程,则将有效地减少通讯量,极大地提高效率。
(4)充分利用特殊资源。
进程可以通过迁移来利用某节点上独特的硬件或软件能力。
(5)内存导引机制。
当一个节点耗尽它的主存时,内存导引机制将允许进程迁移到其它拥有空闲内存的节点,而不是让该节点频繁地进行分页或和外存进行交换。
这种方式适合于负载较为均衡,但内存使用存在差异或内存物理配置存在差异的系统。
5.2 进程迁移的实现角度进程迁移的实现复杂性及对OS 的依赖性阻碍了进程迁移的广泛使用,尤其是对透明的进程迁移的实现。
根据应用的级别,进程迁移可以作为OS 的一部分、用户空间、系统环境的一部分或者成为应用程序的一部分。
(1)用户级迁移:用户级实现较为简单,软件开发和维护也较为容易,因此,现有的很多系统都是采用用户级实现,如Condor和Utopia。
但由于在用户级无法获得Kernel的所有状态,因此,对于某类进程,无法进行迁移。
另外,由于Kernel空间和User空间之间存在着壁垒,打破这个边界获得Kernel提供的服务需要巨大的开销。
因此,用户级实现的效率远远低于内核级实现。
(2)应用级迁移:应用级迁移的实现较为简单,可移植性好,但是需要了解应用程序语义并可能需对应用程序进行修改或重新编译,透明性较差,这方面的系统有Freedman、Skordos等。
(3)内核级迁移:基于内核的实现可以充分利用OS提供的功能,全面的获取进程和OS状态,因此实现效率较高,能够为用户提供很好的透明性。
但是由于需要对OS进行修改,实现较为复杂。
这方面的典型系统有MOSIX和Sprite系统。
进程迁移的主要工作就在于提取进程状态,然后在目的节点根据进程状态再生该进程。
在现实中,一个进程拥有很多状态,并且随着操作系统的演化,进程状态也越来越多样。
一般来说,一个进程的状态可以分为以下几类:①进程执行状态。
表示当前运行进程的处理器状态,和机器高度相关。
包括内核在上下文切换时保存和恢复的信息,如通用和浮点寄存器值、栈指针、条件码等。
②进程控制。
操作系统系统用来控制进程的所有信,一般包括进程优先级、进程标识,父进程标识等。
一旦系统编排了进程控制信息,进程迁移系统必须冻结该进程的运行。
③进程Memory状态和进程地址空间。
包括进程的所有虚存信息,进程数据和进程的堆栈信息等,是进程状态的最主要的一部分。
④进程的消息状态。
包括进程缓冲的消息和连接(Link)的控制信息。
进程迁移中通讯连接的保持以及迁移后连接的恢复是进程迁移中一项较有挑战意义的问题。
⑤文件状态。
进程的文件状态包括文件描述符和文件缓冲符。
保持文件的Cache一致性和进程间文件同步访问也是进程迁移机制需要着重考虑的。
6 集群系统的发展趋势虽然集群系统的构建目前可以说是模块化的,从硬件角度来看可以分为节点机系统、通讯系统、存储系统等,软件角度则主要有操作系统、集群操作系统(COS)、并行环境、编译环境和用户应用软件等,目前高性能计算机的通讯、存储等硬件系统是伴随摩尔定律快速发展的,跟踪、测试、比较最新硬件设备构成的高性能计算机的可能方案也成了高性能计算机厂商的重要科研活动,而所有这些关键部件研发、系统方案科研以及厂商的自主部件研发的高度概括就是“整合计算”。
整合硬件计算资源的同时,伴随着整合软件资源,其中集群操作系统COS是软件系统中连接节点机操作系统和用户并行应用的重要“黏合剂”,也是高性能计算机厂商的技术杀手锏。
高性能集群系统目前在国内的应用领域主要集中在气象云图分析和石油勘探的领域。
这样的应用对于高性能集群系统来说进入门槛比较低,所以目前这些领域都采用了国内厂商构建的集群系统。
虽然对比要处理大量并发的小问题的用于商业计算的高可用性集群来说,高性能集群实现起来要简单一些。
但实际上,高性能集群的构建中仍有许多技术上的难点,尤其是高性能集群系统往往是针对一个很独特的科学计算的应用,而对这种应用的实现用高性能集群系统来计算,就必须要先建立数学模型,而这样的建模过程需要大量的对于这种应用模式的理解。
总结起来,可管理性、集群的监控、并行程序的实现、并行化的效率以及网络实现是构建高性能集群的几个难点。
这其中,并行化程序的实现就是指特定应用领域的特定应用程序在集群系统上的实现。
虽然有诸多的技术实现上的难点,但集群系统本身的优势仍然给了厂商们克服难点、攻克高性能集群的力量。
首先撇开一些具体的优势不说,从互联网中心服务器的变化来看,可以清晰地观察到集群结构是中心服务器的发展趋势。
20世纪90年代以前,中心服务器一般都用大型机(Mainframe),大型机上可以完成一切的应用和服务,用户从终端通过网络完成应用。