




已阅读5页,还剩70页未读, 继续免费阅读
(计算机应用技术专业论文)一种伺机性高吞吐量计算模型的研究与设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川大学计算机学院硕士学位论文 p7 7 8 7 8 7 一种伺机性高吞吐量计算模型的研究与设计 计算机应用技术专业 研究生张柏铖指导老师袁道华。教授 随着个人计算机功能越来越强大以及越来越普及,闲置的计算机资源也 随着增长。尤其在分布式计算更加普及后,很多典型的情景是:传统的集群 在全天候的运行期间内都致力于运行需要大量运算的程序,当中心的l i n u x 集群上运行大量计算的时候,而w i n d o w sp c 去常常无人使用而闲置。所以近 年来随着分布式技术的发展,怎样对闲置计算机资源进行利用的问题也得到 越来越多的关注。现在很多分布式系统都提出了利用闲置计算机资源的方案, 比如s e t i h o m e ,c o w 等分布式计算项目和计算体系结构,都是通过桌面个人 计算机闲置时进行计算工作。通常那些系统可以归结为伺机性系统和高吞吐 量系统,高吞吐量指可以处理大量独立任务,伺机性指抓住p c 机无人使用的 机会利用其闲置计算资源。 本文融合了当前几种技术提出了一个伺机性高吞吐量计算模型,目的是 可以在桌面w i n d o w sp c 机无人使用而闲置时伺机协助中心l i n u x 集群完成高 吞吐量计算任务。方法是通过把初始在l i n u x 集群上启动的应用在p c 机闲置 时透明迁移到p c 机中运行完成的。所以,首先l i f l u x 集群上的应用必须能够 透明迁移到客户端上。本文通过对迁移机制的比较,选择了类f e h a l 的s s i 实现透明迁移机制。其次,模型中专用集群应用必须可以在非专用的p c 机上 执行。非专用客户端执行方式有三种:本地执行模型。沙盒模型。专 门客户端编程模型。本文比较了这三种模型的优劣,并且通过对s u ng r i d e n g i n e 和c o n d o r 这两个成熟的高吞吐量系统的分析,采用了沙盒模型构成 客户端应用执行环境。最后,w i n d o w sp c 机要在闲置时协助集群计算,这就 必须要通过整个模型框架协作,结合以上两种技术完成。 本文提出了模型主要框架,整个模型由三个部分组成:主执行结点,客 户端和配置服务器。在主执行结点运行类f e h a l 的s s i 集群,客户端指部署 四川大学计算机学院硕士学位论文 了客户端软件的w i n d o w sp c 机。配置服务器主要为客户端服务,负责提供客 户端认证,配置信息,安装和升级服务。同时还讨论了客户端网络组建问题。 本文着重描述了客户端沙盒环境实现。为了构成沙盒环境,有三种实现 方式:用软件模拟一个完全p c 硬件然后在它之上引导一个客户操作系统。 运行专门的用户模式操作系统。在a p i 层模拟客户操作系统。通过对三 种实现方式比较,我们采取了运行定制的用户模式操作系统的方式实现沙盒 环境。本文描述了沙盒环境底层实现和服务模块实现,并且讨论了客户端安 装配置问题。 关键字:伺机性高吞吐量计算沙盒环境透明进程迁移机制 i i 四川大学计算机学院硕士学位论文 t h er e s e a r c ha n dd e s i g no fao p p o r t u n i s t i c h i g h - t h r o u g h p u tc o m p u t i n gm o d e l m a j o r :c o m p u t e ra p p l i c a t i o n p o s t g r a d u a t e :z h a n gb a i c h e n g s u p e r v i s o r :p r o l y u a nd a o h u a w i t l lt h e d e s k t o pc o m p u t e r sb e c o m i n gm o r ea n dm o r ep o w e r f u l a n d b e c o m i n gm o r ea n dm o r ep o p u l a r , t h eu n u s e dc o m p u t e rr e s o u r c e sa r ei n c r e a s i n g e s p e c i a l l yt h ed i s t r i b u t e dc o m p u t i n gh a sg o tm o r ep o p u l a r i t y , m a n yt y p i c a l e n v i r o n m e n t sa r et h a tt r a d i t i o n a lc l u s t e rf o c u so i lr u n i n gp r o g r a mt h a tn e e dp l e n t y o fc o m p u t a t i o n sa l ld a y , a n dw h e nl a r g e rc a l c u l a t i o nn m n i n go nac e n t r a ll i n u x c l u s t e r , m e a n w h i l et h e r ea r em a n yw i n d o w sp c si d l i n g s o 、航t 1 1t h ed i s t r i b u t e d c o m p u t i n gt e c h n o l o g yd e v e l o p i n g ,h o wt ou t i l i z ei d l ec o m p u t i n gr e s o u r c e sh a v e b e e nf o c u s e dm o r ea n dm o r ea t t e n t i o n n o wm a n yd i s t r i b u t e ds y s t e m sh a v e b e e n p r o p o s e dt ou t i l i z et h e s ei d l ec o m p u t e rr e s o u r c e s ,f o re x a m p l es e t i h o m e p r o j e c tp r o j e c ta n dc o wa r c h i t e c t u r e ,t h e s ep r o j e c t sa l lr u n n i n gd i s t r i b u t e d c o m p u t i n gw h e nd e s k t o pp ci si d l e i ng e n e r a lt h e s es y s t e m sc h a r a c t e r i z e da s o p p o r t u n i s t i ch i g h * t h r o u g h p u ts y s t e m s ,h i g h - t h r o u g h p u ts y s t e m sm e a nt h a tt h e y c a nh a n d l i n gm a n yi n d e p e n d e n tj o b s o p p o r t u n i s t i cm e a nt h a tt r yi tb e s tt o n t i l i z i r t ga sm o r ea sp o s s i b l ei d l ec o m p u t i n gr e s o u r c e sw h e n n o o n eu s ep c s s ow ec o m b i n i n gc u r r e n ts e v e r a l e m e r g i n gt e c h n o l o g i e st od e s i g na o p p o r t t m i s t i ch i g h - t h r o u g h p u tc o m p u t i n gm o d e l o u ra i mi st h a ti d l ew i n d o w sp c c a l lh e l pc o r el i n u xc l u s t e rc o m p l e t eh i g h t h r o u g h p u tc o m p u t i n g t h em e t h o di s t h a ta p p l i c a t i o n st h a ti n i t i a l l ys t a r t u po nl i n u xc l u s t e rc a l lt r a n s p a r e n tm i g r a t et o w i n d o w sp ca n dr u n n i n g f i r s t ,a p p l i c a t i o n st h a tr u n n i n go nl i n u xc l u s t e rw o u l d c a l lt r a n s p a r e n t l ym i g r a t et oc l i e n t w ec o m p a r e di m p l e m e n tm e t h o d so fp r o c e s s m i g r a t i o nf a c i l i t ya n dc h o o s el i k e f e h a ls s if a c i l i t y s e c o n d ,a p p l i c a t i o n s i t i 四川大学计算机学院硕士学位论文 w o u l dc f l l le x e c u t i o ni nn o n d e d i c a t e dc l i e n t s c o m m o n l yt h em o d e l st h a t a p p l i c a t i o ne x e c u t i o no nc l i e n tc a l lb ef a l li m ot h r e em a i nc a t e g o r i e s :n a t i v e e x e c u t i o nm o d e l s a n d b o x i n gm o d e l s p e c i a l l yc l i e n tp r o g r a mm o d e l i n t h i s a r t i c l e ,w ec o m p a r e d t h e s e m o d e l s ,a n da n a l y z e d t w ow e l l k n o w h i g h t h r o u g h p u ts y s t e m st h a ts u ng r i de n g i n ea n dc o n d o r ,f i n a l l yi no n rm o d e l w ec h o o s es a n d b o x i n gm o d e l f i n a l l y , t h r o u g hw h o l em o d e lw o r kt o g e t h e rt h o s e t w ot e c h n o l o g y ,w i n d o w sp cw o u l dc a nh e l pl i n u xw h i l et h e ya r ei d l e i n t h i sa r t i c l e ,w ed e s c r i b em a i na r c h i t e c t u r eo ft h em o d e l ,t h em o d e lc o n s i s t o ft h r e ec o m p o n e n t s :m a s t e re x e c u t i o nn o d e ,c l i e n t ,c o n f i g u r a t i o ns e r v e r l i k e f e h a lc l u s t e rr t u m i go nm a s t e re x e c u t i o nn o d e s ,c l i e n ti sw i n d o w sp ct h a t d e p l o y 、i t h c l i e n t s o f t w a r e c o n f i g u r a t i o n s e r v e r m a i n l yp r o v i d e c l i e n t a u t h o r i z e ,s e t u pa n du p d a t es e r v i c e s w ea l s od i s c u s s e dp r o b l e mo fn e t w o r ks e t u p o nc l i e n t w ee m p h a s i z e dt od e s c r i b e ds a n d b o x i n ge n v i r o n m e n ti m p l e m e n to nc l i e n t t oc o n s t r u c tas a n d b o x i n ge n v i r o n m e n t , g e n e r a l l yt h e r ea r et h r e eg e n e r a l s o l u t i o n s :e m u l a t eac o m p l e t ep ch a r d w a r ei ns o f t w a r ea n db o o tag u e s t o p e r a t i n gs y s t e mo nt o po fi t r u nas p e c i a l l yp r e p a r e du s e rm o d eg u e s t o p e r a t i n gs y s t e m e m u l a t et h eg u e s ts y s t e ma tt h ea p il e v e l c o m p a r e dt h e s e s o l u t i o n s ,w ea d o p tr u nas p e c i a l l yp r e p a r e du s e rm o d eg u e s to p e r a t i n gs y s t e mt o r e a l i z eas a n d b o x i n ge n v i r o n m e n t t h e n ,w ed e s c r i b ei m p l e m e n to fs a n d b o x i n g l o w l e v e la n ds e r v i c em o d u l e f i n a l l yd i s c u s si n s t a l l a t i o na n dc o n f i g u r a t i o no n c l i e i t k e y w o r d :o p p o l t u n i s t i ch i g h t h r o u g h p u tc o m p u t i n gs a n d b o x i n ge n v i r o n m e n t t r a n s p a r e n tp r o c e s sm i g r a t i o nf a c i l i t y v 四川火学计算机学院硕士学位论文 1 引言 随着个人计算机和服务器价格越来越便宜以及越来越普及,而功能却越 来越强大,出现了向分布式数据处理发展的趋势。现在,集群计算已经成为 计算机系统设计的一个热门的领域。同时,因为个人p c 和服务器计算能力的 日益强大,由于经常不能充分利用这些计算资源,闲置的计算资源也随着增 加。随着分布式技术的发展,闲置的计算资源也褥到了更大重视,很多分布 式方案都设计出了利用这些闲置的计算资源的手段,尽管这些方案的实现手 段各不相同,但是从总的特性上说来,这些方案一般都具有高吞吐量和伺机 性特征。前者提供了方便的处理多个独立任务的机制,可以进行大量计算, 后者则是伺机利用所有的闲置计算资源,只要有闲置的计算资源就尽力抓住 机会使用。所以伺机性计算和高吞吐量计算就可以在进行大量计算的同时利 用闲置的计算资源,达到充分利用计算资源的目的。 在很多实验和工程环境中,当在l i n u x 集群和s m p 服务器上全天候进行 大量计算的时候,而环境中的w i n d o w s 系统p c 机却常常闲置着。即使这些集 群和w i n d o w s 的p c 机拥有相同的硬件体系结构,但是因为使用了不同的平台, 因此拥有不同的编程模型,一个应用通常和开发平台是紧密联系在一起的, 所以在这种情况下跨平台操作是很困难的,所以集群是不能利用这些闲置计 算资源的,这样就造成大量计算资源的浪费。 因此利用现在已有的几种技术,本文提出了一种伺机性高吞吐量计算模 型。这种方法的目标是把现在的两种重要的平台w i n d o w s 和l i n u x 结合起来, 在上述的工程环境中,使闲置的w i n d o w sp c 机可以协助l i n u x 集群工作,达 到伺机性高吞吐量计算目的。 通常在使w i n d o w sp c 结点加入己知l i n u x 集群中有两种策略: 在每一台w i n d o w sp c 上安装集群代理( c l u s t e ra g e n t ) 。可以认为这 个代理相当于在系统中运行的一个应用程序,或者是个w i n d o w s 服务。 其操作由主节点( 使用l i n u x ) 完全控制。 使用双引导安装,或者使用l i n u xl i y e c d 。l t s p ( l i n u xt h i ns e r v e r p r o j e c t ) 也可以归类于此策略。其基本思想是将节点临时转换为l i n u x 系统,然后作为集群的成员连接到主节点。 四川大学计算机学院硕士学位论文 在我们的模型中,必须选择集群代理方法作为解决方案,因为本文的伺 机性运算指w i n d o w sp c 机在无人使用闲置时,通过运行屏幕保护程序加入计 算( s e r i f h o m e 项目使用了此类策略,非常有效) ,在非闲置时离开,不可能 退出w i n d o w s 系统转向l i n u x 系统。 我们使用了f e h a l 集群完成中心l i n u x 集群的工作,这种集群是内核扩 展式s s i 集群,可以通过对l i n u x 原始内核进行扩展,利用可加载模块实现 s s i 集群功能。这种集群实现方式易于集群中间件的实现,而且由于在内核 中实现,具有良好的进程迁移功能,使应用可以更好地从l i n u x 集群透明迁 移到闲置p c 机中运行。 在选择p c 机实现集群代理的方案时,由于难以将需要的单一系统映像 ( s i n g l es y s t e mi m a g e ,s s i ) 中间件移植到w i n d o w s 内核体系结构中,所 以我们的想法是在客户端p c 机上构建沙盒环境,把l i n u x 集群上的s s i 功能 加入沙盒中去,同时设计客户端p c 机的服务模块,实现在l i n u x 集群上启 动和运行的应用能够在w i n d o w sp c 机闲置时自动透明的迁移到p c 机上,在 p c 机沙盒环境中运行,如图l ,l 所示,在整个进程运行和迁移的过程中,应 用都不会感到迁移发生和环境的变化。所以我们就可以在不更改任何应用程 序和用户p c 系统的基础上伺机利用闲置w i n d o w sp c 机计算资源完成高吞吐 量计算。 图1 1 向闲置p c 迁移应用进程 四川大学计算机学院硕士学位论文 为了实现客户端p c 机上沙盒环境 些方法,并没有另外创建完全抽象的, 本文模型中采用的思路不同于别的一 纯虚拟的环境,而是把l i n u x 集群上 的专用已知环境复制到那些非专用的p c 机工作站上,这个环境可以模拟应用 开发和测试的环境,达到应用跨平台运行目的。在这里我们使用了剑桥大学 开发的类x e n 系统的半虚拟概念,这是指并不完全使用软件去模拟整个p c 硬件或者在a p i 层进行模拟,而是引导和封装专门的客户内核来实现专用环 境。 首先,通过对原始l i n u x 内核的集群s s i 功能扩展,我们得到具有中心 集群s s i 功能的客户内核,然后我们在非专用工作站上利用这个技术封装扩 展的l i n u x 内核,在这里,我们把非专用工作站w i n d o w s 系统称为宿主系统, 封装的扩展l i n u x 内核称为客户系统,通过设计使客户系统如一台独立机器 一样在沙盒中运转,就可以完成专用已知环境的复制。如果能完成环境复制, 我们就可以利用模型中其他组件服务协同工作,使客户端p c 机在闲置的时候 加入整个伺机性高吞吐量计算中去,达到利用闲置计算资源的目的。 所以,我们可以应用这个方法,使用闲置的w i n d o w sp c 机协助核心集群 工作来完成高吞吐量计算,动态扩大了核心集群的计算容量,而不用使整个 服务器升级或者重写应用,利用最小的代价达到充分利用计算资源的目的。 本文主要工作如下: ( 1 ) 分析了进程迁移机制,程序在客户端执行方式和现在已有的高吞吐 量集群实例,针对计算资源闲置,采用了扩展内核的f e h a ls $ i 实现方式,通过s s i 的透明迁移机制和客户端沙盒技术结合的方式 实现伺机性高吞吐量计算模型。 ( 2 ) 提出了整个模型的架构,对整个模型的组 牛进行了介绍,同时对客 户端网络组建进行了分析,针对组件提供的服务以及系统运作也进 行分析介绍。 ( 3 ) 对客户端沙盒环境的实现进行了设计。首先分析了当前几种沙盒实 现方式并进行了比较,提出了半虚拟方式客户系统沙盒环境实现, 同时分析了沙盒底层实现,并且在这个基础上在w i n d o w s 下设计了 服务模块,最后还对客户端安装配置问题进行设计分析。 本文目的是提出和设计一个伺机性高吞吐量集群计算模型,并且介绍相 四川大学计算机学院硕士学位论文 关的技术和原理。以下部分论文的结构如下: 第二章,介绍了背景和相关工作。 第三章,提出了模型框架设计。 第四章,对客户端沙盒环境组建进行分析。 第五章,对全文工作提出了总结,并指出下步工作以及优待解决和改 善的问题。 四川大学计算机学院硕士学位论文 2 背景和相关的工作 池 图2 1 2 1 术语 为了简化以下的描述,先把本文所使用的术语简单介绍一下。 集群( c l u s t e r ) :在本文中指紧密联系的,集中的类似服务器的l i n u x 集群系统,所以也可以称为核心集群( c o r ec l u s t e r ) 。 内核扩展型s s i 集群( k e r n e le x t e n s i o ns s i ) :指类f e t i a l 的通过对内 核修改实现的s s i 集群。 工作站( w o r k s t a t i o n ) :本文中指运行w i n d o w s 系统的用户p c 机,也称 为客户端。 池( p 0 0 1 ) :包括一些核心集群和工作站的系统。如图2 1 所示。 分布式资源管理( d r m ) :集群中经常使用的概念,在一组计算机资源上 控制分发和执行任务的系统。 闲置资源:本文指的是工作站上因为无人使用而闲置的计算资源。 四川大学计算机学院硕士学位论文 用户应用( u s e ra p p l i e a t i o n ) :由d r m 系统启动并且通过整个池进行处 理的用户进程。 透明迁移( t r a n s p a r e n tm i g r a t e ) :迁移指的是运行的进程从一个计算 机上转移到另一个计算机上。透明迁移指在迁移过程中和进程没有交互,进 程自身并没有感觉到迁移的过程。 半虚拟技术( p a r a v i r t u a l i z i n g ) :本文指非完全硬件虚拟,通过对客户 系统进行修改,在宿主系统上运行定制客户系统的虚拟技术。 2 2 伺机性高吞吐量计算 集群可以定义为一组互联的完整计算机,一起作为统一的计算资源而工 作,给人以一台机器的感觉。完整计算机指该系统在离开了集群以后,自己 仍然可以独立的运行。在典型的集群体系结构中,独立的计算机通过某种高 速局域网或者硬件设备连接起来。每台计算机都可以独立的操作。一个理想 的集群是,用户从来不会意识到集群系统底层的节点,在他她们看来,集群 是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和 删改集群系统的节点。如图2 2 所示。 图2 2 集群体系结构 在l i n u x 集群领域,主要有以下两种集群风格存在: 类b e o w u l f 的集群。b e o w u l f 工程。1 在n a s a 的衙性能计算和通信 6 四川大学计算机学院硕士学位论文 ( h p c c ) 工程的赞助下启动,可以提供并行计算能力。尽管b e o w u l f 软件的各个元素已经在很多不同的平台一h 得以实现,作为基础最明显 的选择是l i n u x ,大多数b e o w u l f 实现使用了l i n u x 工作站或p c 的 集群。在类b e o w u l f 集群中使用最多的概念是p v m m p i ( 并行虚拟机 和消息传递接口) ,事实上p v m 就是一组库,程序可以使用这些编译 库来改造程序适应并行系统,系统可以提供并行计算能力。但是这些 都要修改相应的源程序,系统内核并没有改变。 类f e h a l 风格的l i n u x 集群,f e h a l 一直是为b s d o s 平台开发的系 统,直到第七个d a t e f e h a l 原型才为g n u l i n u x 平台开发。它致力 于在l i n u x 系统上实现集群系统的单一系统映像s s i ( s i n g l es y s t e m i m a g e ) 。这种风格集群是在l i n u x 系统内核中实现的集群,大部分功 能都驻留在内核。为了访问,配置,管理统计信息,通常的做法是在 系统引导或者模块加载的时候创建一个p r o c 接口,接口可以提供从 用户级获得或者设置内核空间数据的方法。同时,通过传统的保留的 系统调用来执行a p i ,用于配置,请求和操作集群系统,因此用户程 序不用进行修改直接在集群上运行,对于用户进程来说整个系统是透 明的。 集群计算通常可以划分成三个主要的应用方面:高性能集群( h p c ) ,高 吞吐量集群( h t c ) ,高可用性集群( h a c ) 。1 。h p c 主要应用在使相同的工作 做的更快些,h t c 是在相同的时间里可以完成更多独立的工作,h a c 则是为了 使工作拥有更好的可靠性。本文主要针对的是科学和工程领域经常使用的高 吞吐量集群( h t c ) 。在高吞吐量集群中,我们关心的并不是一个单个的计算 完成的速度有多快,而是关注在给定的时间里能够尽可能多的完成更多的计 算任务。因此如果能使用到最多的可用计算资源,那我们的目的也能够更好 的实现。所以,在用户工作站闲置的时候,我们就要尽力利用这些闲置计算 资源,这也是构成伺机性高吞吐量计算系统“1 的初衷。 伺机性高吞吐量计算系统能够使用那些因为闲置而浪费的计算资源来供 自己使用。当用户工作站闲置的时候,工作站会加入到计算中来,应用就会 转移到这个工作站上执行。当然迁移是必须要付出代价的,但是和根本不使 璺型查兰盐苎塑堂堕堡圭堂垡堡壅 用闲置的工作站相比,付出的这些迁移代价还是值得的。这就要求构成高吞 吐量的系统需要有合适的进程迁移机制能够把应用迁移到用户工作站上,同 时迁移到用户工作站上的应用还必须有合适的客户端执行方式来支持应用的 平滑运行。 2 3 进程迁移机制 2 3 1 进程迁移机制分析 在伺机性高吞吐量计算模型中,我们需要利用进程迁移来把核心集群上的 应用迁移到闲置的客户端上去运行,在这里客户端就成为“特定结点”,这 样核心集群就可以利用闲置的计算资源来动态扩大计算容量,更好的完成高 吞吐量计算的任务。现在很多系统郡提供了进程迁移功能,我们首先对进程 迁移机制进行分析来决定我们的选择。 进程迁移旧指为了使一个进程能够在目标机器上执行,把该进程足够多 的状态从一台机器上转移到另一台机器上。这个概念导致了对跨越多个联网 系统的的负载平衡方法的研究。在分布式系统中,需要进程迁移机制的原因 很多,主要包括以下部分: 负载均分:通过将进程从负载较重的系统移动到负载较轻的系统,负载就 会得到平衡。 通信性能:交互密集的多个进程可以移动到同一个节点上,以减少因为它 们之间的交互而带来的通信开销。 可用性:需要长期运行的进程,在得到预先的错误通知时,或者在预定的 停机时间之前,为了能够存活下来,移动到别的机器上去。 特殊功能的使用:进程移动可以充分利用特定节点上独特的硬件或者软件 功能。 进程迁移的实现复杂性及对o s 的依赖性阻碍了进程迁移的广泛使用,尤 其是对透明的进程迁移实现。根据应用的级别,进程迁移可以作为o s 的一部 分、用户空间、系统环境的一部分或者成为应用程序的一部分,进程迁移实 现角度如图2 3 所示。 用户级迁移:用户级实现较为简单,软件开发和维护也较为容易,因此, 四川大学计算机学院硕士学位论文 现有的很多系统都是采用用户级实现。但由于在用户级无法获得k e r n e l 的所有状态,因此,对于某类进程,无法进行迁移。另外,由于k e r n e l 空间和u s e r 空间之间存在着壁垒,打破这个边界获得k e r n e l 提供的服务 需要巨大的开销。因此,用户级实现效率远远低于内核级实现。 应用级迁移:应用级迁移实现较为简单,可移植性好,但是需要了解应用 程序语义并可能需对应用程序进行修改或重编译,透明性较差。 内核级迁移:基于内核的实现可以充分利用0 s 提供的功能,全面的获取 进程和o s 状态,因此实现效率较高,能够为用户提供很好的透明性。但 是由于需要对o s 进行修改,实现较为复杂。 应用级迁移( 锌布式廊用) 终* * 用户应用程序 ( 系统库) 用户鼹褥螽耻移 用户空间 0 s 内核 传统的进程迁移内核空间 图2 3 进程迁移实现角度 2 3 2 进程迁移机制选择 通过以上对进程迁移机制的分析,我们最好选用内核级迁移来实现应用 的透明迁移,这可以通过选择集群中间件完成。不同的集群中间件提供了不 同的进程迁移机制,比如批调度器或者完全的远程执行包装器,在这里,我 们选择了s s i 嘲实现模型来完成进程迁移功能,这是因为它具有以下的优势: s s i 中间件隐藏了访问分散在节点间的资源( 文件、内存、c p u ) 的复杂 性。我们只是需要运行应用程序,中间件将透明地完成资源的管理。 s s i 中间件具有负载均衡和透明进程( t r a n s p a r e n tp r o c e s s ) 特性。利 用这些特性,除了极其需要进行调整情形,或者中间件无法实现公平, 0 塑型奎兰生篓! ! 堂堕堡主兰篁丝苎一 管理员不需要手工调整负载。进程迁移也方便了执行,因为我们不需要 进行显式的远程执行。 现在s s i 概念下的一些系统都提供了把一个应用进程从一个l i n u x 系统 迁移到另一个l i n u x 系统的功能。由于现在s s i 的研究也很热门,所以既有 已经存在了一段时间的系统,比如f e h a l 和0 p e n s s i 。1 ,也有一些最近新涌现 出来的系统,比如k e r r i g h e d ”1 和p l u r i x 。1 系统,这些系统都有不同的进程迁 移实现方式。面对这多种选择,我们要根据模型的要求来决定选择使用什么 样的系统,以下是我们提出的要求: 它必须可以不用重起整个集群就能让节点加入和脱离,支持动态结点加入 和脱离。 对已有的l i n u x 内核的修改必须是轻量级的,这样才能减少以后潜在冲突 的可能性。进程迁移功能尽可能在分离的内核模块执行。 在转发系统调用的时候,最好有一些c a c h i n g 机制来避免网络延迟。 内核的修改模式。因为本文中的客户端采用了半虚拟概念虚拟技术,这个 实现主要依靠的是内核底层的内存处理机制来把客户系统内部的访问和 宿主系统内部的访问分开。所以进程迁移机制最好依靠别的内核机制来实 现。 就以上的这些要求来说,所有的进程迁移机制都不是十分满足这样的要 求。k e r r i g h e d 不支持动态节点加入和脱离,p l u r i x 则过于依靠于j a v a 实现, 而且它们过分依赖底层内存处理机制。而o p e n s s i 则对核心集群有很高要求, 灵活性不够。所以,我们还是选择了f e h a l 实现机制的s s i 来构建整个系 统。因为除了c a c h i n g 机制不够完善,f e h a l 实现机制基本满足了以上要求。 它支持结点动态加入和脱离,使用了轻量级的内核修改方式,并且进程迁移 机制是独立于底层的内存管理实现的。而且这个方法拥有最为简单的配置, 这将降低集群部署的复杂度,可以用最简单的方式为我们提供了负载均衡和 透明进程迁移功能。所谓“最简单”,指的是内核补丁的大小相对较小,而且 没有引入很多特性。整个系统就可以在l i n u x 内核内部运行。 2 3 3f e h a ls s i 实现原理 因为计算模型设计和采用的s s i 实现有很大关系,为了更好的说明整个 四川大学计算机学硫硕士学位论文 计算模型的运作过程,对后面计算模型实现有更好认识,我们首先必须很好 的了解和我们需要相关的f e h a l 集群的透明迁移机制实现过程和集群内部实 现机制。 2 3 3 1 透明进程迁移实现 f e h a l 使用可加载模块,在内核级支持透明的进程迁移机制,这也是我 们的计算模型必须需要的。通常l i n u x 这种通过系统调用接口为进程提供服 务的系统中,实现透明性比较困难,而在f e h a l 中使用代理远程概念来实现 透明的进程迁移。为了实现透明性,系统需要能够定位进程,保持用户接口; 进程也不必了解它已经从一个节点迁移到另一个节点。一个简单的方法就是 在进程的”h o m e ”节点上维持一个进程结构,作为该进程代理,并且和进程环 境交互,在f e h a l 中,用户的工作站就是该进程的”h o m e ”节点,”h o m e ”节点 上代表该进程的结构被称为代理( d e p u t y ) 。代理( d e p u t y ) 的概念是基于这 样一个观察:只有进程的系统级是节点相关的,而用户级上下文是可迁移的。 用户级上下文和系统级上下文间定义了良好的接口,可以截获它们之间的交 互,并且通过网络传送这些交互动作。 在f e h a l 系统的实现中,进程在创建时所处的节点称为进程的唯一家乡 节点( u h n ) ,一个迁移进程是由用户级上下文( r e m o t e :远程) 和系统级上 下文( d e p u t y :代理) 这两部分组成的。r e m o t e 包含着程序代码、用户栈、 数据、进程的寄存器和内存映像,是对进程在用户态运行的封装。d e p u t y 则 是对进程在内核级运行的封装,包括进程依附资源的描述和系统代码运行时 的核心栈等。d e p u t y 是r e m o t e 在u h n 上的表示体。进程的整个用户空间是 驻留在远程节点上的,d e p u t y 并不拥有自己的内存映射。相反,它和内核线 程很相似,共享内核的映射空间。这样,r e m o t e 就是可以进行迁移到远端结 点上,而d e p u t y 包括进程系统上下文具有节点依赖性的那部分,因此是不能 被迁移的,只能保留在宿主节点上。迁移时就包括在远程节点上创建一个新 的进程结构,然后拷贝进程的页表和所有的脏页。迁移后,除了h o m e 节点外, 将没有其它的剩余相关性。进程在新节点上恢复运行,经过几次页故障,将 进程必须的一些页传送过来。 在f e h a l 中用户级上下文和系统级上下文之间具有良好定义的接口,因 为在l i n u x 中,进程只有通过系统调用才能进入核心态。所以我们能够截获 它们之间的每个互操作,并且通过网络转发操作。这功能由链接层( 1 i n k 四川大学计算机学院硕士学位论文 l a y e r ) 来实现,如图2 4 ,它拥有一个通讯通道来进行交互操作。r e m o t e 就 可以通过d e p u t y 进行节点依赖性的工作,如环境变量和i o 。 广 u 溯_ 【酬 、 广u 擀i e 涮 、 = 咎卵三三粤撩 觚e | l 删 图2 4 本地进程和迁移进程 所以在f e h f i l 中,具有很好的透明进程迁移机制,迁移进程可以使用远 方节点上的本地资源,但是通过u h n 和用户环境交互。所有迁移进程看起来 都像是在自己u h n 上运行,用户会话的所有进程可以共享u h n 的执行环境。 这样就可以支持我们把应用透明迁移到闲置的工作站上运行,同时也简化了 工作站上的系统安装。 2 3 3 2f e h a l 工作方式 f e h a l 是一个内核增强型补丁,是在内核中实现的s s i 集群,工作方式 如图2 5 所示。f e h a l 通过模块加载的时候仓q 建一个p r o c 接口,通过这个接 口提供从用户级获得或者设置内核空间数据的方法。目录p r o c h p c 就提供 了访问内核中f e h a l 结构的方法,然后系统提供的a p i 通过传统保留的系统 调用来执行,用于配置,请求和操作集群系统。a p i 都修改成通过p r o c 文件 系统的接口,同时还有若干个可以通过p r o c 接口进行控制的参数。从用户 空间的角度来看,就不需要修改应用程序代码,所有工作都在内核空间透明 地完成。 在结点p r o c h p c 目录中,包含了用于本地配置的文件和关于外部节点 信息的文件,f e h a l 在所有结点的p r o c h p c 目录中保存了所有的信息,所以 集群中每个节点都可以知道别的远端节点信息。这也是计算负载平衡算法的 基础。管理员和应用就可以通过p r o c h p c 接口交互,而且可以很方便的改 l2 型业查堂生竺塑兰堕婴主堂焦堡苎 变配置。 图2 5 集群工作方式 在p r o c h p c 目录下大部分文件都是纯文本文件,可以通过标准的命令 行指令比如“c a t ”来使用,也可以使用别的编辑器从f e h a l 的p r o c 接口读 数据。在用户应用中也能使用文件相关的函数( 这些函数都使用了“f o p e n ”, “r e a d ”和“f c l o s e ”系统调用) 从p r o c 接口读数据。同时用户还可以利 用对p r o c h p c 下一些文件直接写操作来和内核或者集群“通信”,控制集群 行为。比如以下命令e c h o1 p r o c h p c a d m i n b l o c k 这就将阻塞所有来自 外部结点的应用进程的迁移。 f e h a l 中的主要目录有以下几个:p r o c h p c a d m i n , 堕业查兰盐塞塑! 堂堕堡主兰垡堡塞 p r o c h p c n o d e s i d n ,p r o e p i d ,p r o c h p c r e m o t e 。在p r o c h p c a d m i n 中包含了本地结点管理信息,p r o c h p c n o d e s i d n 中则包含了这个集群i d 号为n 的远端结点信息,d r o o p i d 包含了本地进程信息, p r o c h p e r e m o t e 丑含了迁移来的远端结点进程信息。通过这些目录,可以 使用系统a p i 方便的进行集群的配置和管理。 由于集群的分布式控制方式,结点间无主从之分,这种设计允许动态配 置,节点可以自出的加入或退出网络系统而不会给其它节点带来影响。在 f e h a l 内核中根据一个集群图( c l u s t e rm a p ) 来工作,在集群中每一个结点 中都有一个相同的e t c h p c m a p 的配置文件,其中就包含了集群的配置信息。 其中的数据结构如下: i d ,a d d r e s s ,r a n g e s i z e ) ,i d 指结点在集群中 i d ,a d d r e s s 是结点的i p 地址,r a n g e s i z e 则是在此地址上连续地址的数目。 如以下的例子: i da d d r e s s r a n g e s i z e 11 9 2 1 6 8 1 1 05 则是指这个结点i d 等于l ,地址为1 9 2 1 6 8 1 1 0 ,同时集群中有地址范 围从1 9 2 1 6 8 1 1 0 到1 9 2 1 6 8 1 ,1 4 的5 个结点。结点的i d 则是根据i p 地 址最后八位来计算产生的。 结点就可以依靠这个配置文件来对整个集群配置得到了解。在f e h a l 中, 集群依靠一个称为a u t o d i s c o v e r y 的守护进程对这个配置文件进行管理,可 以支持结点的动态加入和离开。这个守护进程可以在结点初始引导时加载事 先写好的配置文件,使结点间互相知道情况。在新结点加入时,可以先写好 新加入结点的配簧文件之后,a u t o d i s c o v e r y 守护进程就可以持续向外发送 “a d dm e ”的消息,同时也接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论