操作系统的动态更新.pdf
复旦大学硕士学位论文操作系统的动态更新姓名:陈榕申请学位级别:硕士专业:计算机软件与理论指导教师:臧斌宇20070508操作系统的动态坐新摘要摘要随着盯架构不断被部署到关系国计民生的支撑行业中,提供2 4 x 7 的高可用性变得越发重要,对于运行着关键服务的系统任何形式的打断都将造成巨大损失。操作系统作为整个软件体系架构中的基础层与关键层,其可用性将直接影响到上层所有软件的可用性,因而如何提高操作系统的可用性成为提高软件可用性的关键问题之一。另一方面由于操作系统本身的庞大和复杂,现有的实现远远不够完善。为了修复安全隐患、纠正系统错误、提高软件性能和增加新的功能,操作系统在其生命周期中需要不断的被更新和维护。但现有基于“更新一重启”的静态更新方法需要重启操作系统,导致整个可用性的丧失。H P 实验室在2 0 0 1 年的研究报告中同样指出人为的系统维护是造成系统停机的最大原因。因此有效地降低系统维护引起的可用性丧失是提高操作系统可用性最直接有效的方法。动态更新技术(D y n a m i cu p d a t e,o rL i v eu p d a t e)能够在保持系统持续正常运行的情况下完成更新维护操作,是解决上述问题的最佳方法。但是在操作系统上实现动态更新技术面临多方面的困难。本文的主要工作是总结和分析了这些困难,并提出了一种利用系统虚拟化技术在当前通用操作系统上实现动态更新功能的有效方法。由于当6 n 通用操作系统在设计上并没有考虑到对动态更新的支持,以及本身极高的复杂性,导致实现动态更新功能存在诸多困难。首先,当前通用操作系统几乎都是使用面向过程语言开发的,很难找到合适的粒度来进行动态更新,同时也不存在一种简单直接的方法能将对旧版本数据和函数的访问重定向到新版本数据和函数上。其次,当前通用操作系统采用多线程并发执行,随意的更新可能导致系统中同时出现使用不同版本数据和函数的线程,造成系统状态不一致。而现有基于安全点(s a f cP o i n t)l 构解决方案又不适合像操作系统这样复杂的大型软件。最后,直接运行在物理硬件上的操作系统位于整个软件架构的底层,只能由自己来完成对自身的动态更新。这种既是更新对象又是更新主体的情况很可能导致更新操作无法完成,甚至造成系统死锁或者崩溃。为了克服这些困难,我们提出了一种利用系统虚拟化技术在现有通用操作系统上实现动态更新功能的方法。该方法依靠位于操作系统和物理硬件之间,完全控制着整个系统的虚拟机监控器实现动态更新操作。首先在函数粒度上由虚拟机监控器通过二进制代码重写(b i n a r yr e w r i t i n g)实现访问重定向,其次彻底摒弃对I V探作系统的动态更新捕要安全点的依赖,支持在任意时刻对操作系统进行动态更新,使用虚拟机监控器保持多线程闯不同版本数据的同步,维持系统状态的一致性。最后使用位于更底层的虚拟机监控器来完成对操作系统的动态更新,避免可能的死锁和系统崩溃。为了进一步完善动态更新系统,实现对虚拟机监控器的动态更新,我们在L u c o s 系统的基础上弓l 入自虚拟化技术。自虚拟化技术实现了对虚拟机监控器的按需动态插入和移除,使得操作系统能够在物理硬件和虚拟机监控器两种执行环境间自由切换执行。直接运行在物理硬件上的操作系统能够完成对此时处于不工作状态下的虚拟机监控器的动念更新,而处于工作状态下的虚拟机监控器能够实现对上层操作系统的动态更新。为了验证上述方案的可行性,我们以开源虚拟机监控器X e n 以及L i n u x 操作系统为基础实现了名为L u c o s(L i v eU p d a t eo fC o n t e m p o r a r yO p e r a t i n gS y s t e m)的动态更新系统,和名为M e r c u r y 的自虚拟化系统。实验结果表明,L u c o s 动态更新系统能够正确迅速的使用来自官方发布的补丁文件实现对L i n u x 操作系统的动态更新,并且在性能方面,相对于运行在X e n 上的L i n u x 操作系统仅仅存在不到l 的性能损失。而M e r c u r y 系统成功的实现了L i n u x 操作系统在两种执行环境上自由切换,并且运行在物理硬件上的L i n u x 操作系统能够实现对虚拟机监控器X e n 的动态更新。在性能方面两种执行环境下的M e r c u r y 系统相对于各自环境中的普通L i n u x 操作系统存在的性能差距都不到2。关键词:动态更新,操作系统,可用性,系统虚拟化,自虚拟化中图分类号:T P 3 1 6V操作系统的动态更新A b 虬r a dA b s t r a c tW i t ht h ew i d ed e p l o y m e n to fl Ti n f r a s t r u c t u r ei nm i s s i o n c r i t i c a ls e r v i c e s i ti sv i t a li m p o r t a n tt op r o v i d eh i g ha v a i l a b i l i t yt ot h e s es e r v i c e si na2 4 X 7m a n n e LA n yf o r mo fd i s m p t i o nt ot h e s es e r v i c e sw i l lc a u s ed i r ec o n s e q u e n c e O p e r a t i n gs y s t e m s,w h i c hs e r v ea st h ef u n d a m e n t a ll a y e ri nt h ew h o l es o f t w a r es t a c k,d i r e c t l yi n f l u e n c et h ea v a i l a b i l i t yo fs o f t w a r et h e r e o n,T h u s,t oi m p r o v et h ea v a i l a b i l i t yo fa p p l i c a t i o ns o f t w a r e,i ti su r g e n tt oe n h a n c et h ea v a i l a b i l i t yo fo p e r a t i n gs y s t e m s U n f o r t u n a t e l y,c o n t e m p o r a r yo p e r a t i n gs y s t e m sa r es t i l lf a rf r o mp e r f e c td u et ot h e i rl a r g ec o d e s i z ea n dc o m p l e x i t y T oc l o s es e c a d t yv u l n e r a b i l i t i e s,f i xb u g s,e n h a n c ep e r f o r m a n c ea n da d dn e wf e a t u r e s,a no p e r a t i n gs y s t e mn e e d st ob ef r e q u e n t l yu p d a t e da n du p g r a d e di ni t sw h o l el i f e c y c l e H o w e v e r,t r a d i t i o n a lu p d a t ea p p r o a c h e su s u a l l yi n v o l v ei ns t o p p i n gt h er u n n i n go p e r a t i n gs y s t e m s,a p p l y i n gt h ep a t c h e sa n dr e s t a r t i n gt h eo p e r a t i n gs y s t e m sa g a i n S u c hs t o p a n d r e s t a r ta p p r o a c h e si n e v i t a b l yd i m i n i s ht h ea v a i l a b i l i t yo fo p e r a t i n gs y s t e m s A si n d i c a t e db yH PL a bi n2 0 0 1,s y s t e mm a i n t e n a n c ec o n s t i t u t e st h em a i nr e a s o ni na l ls o r t so fs y s t e md o w n t i m eT h e r e f o r e,i ti st h em o s td i r e c ta n de f f e c t i v ew a yt oi m p r o v et h es y s t e ma v a i l a b i l i t yb yr e d u c i n gt h es e r v i c ed i s r u p t i o ni n c u r r e db ys y s t e mm a i n t e n a n c e D y n a m i cu p d a t e(o rl i v eu p d a t e)i sa l lo p t i m a ls o l u t i o nt ot h ea b o v ep r o b l e m s,b ya l l o w i n gt h er u n n i n gs o f t w a r et ob eu p d a t e do n-t h e f l y H o w e v e r,t h e r ea r em a n yc h a l l e n g e si na p p l y i n gd y n a m i cu p d a t et oa no p e r a t i n gs y s t e m I nt h i sd i s s e r t a t i o n,w ef i r s tm a k ea l li n-d e p t ha n a l y s i sa n ds u m m a r yo nt h ed i f f i c u l t i e sf a c i n gd y n a m i cu p d a t et oo p e r a t i n gs y s t e m s B a s eo na n a l y s i s,w ea l s op r o p o s ean o v e la p p r o a c hu s i n gs y s t e mv i r t u a l i z a t i o nt op r o v i d et h ed y n a m i cu p d a t ec a p a b i l i t yt oc o n t e m p o r a r yo p e r a t i n gs y s t e m s S u p p o r t i n gd y n a m i cu p d a t et oo p e r a t i n gs y s t e m sp o s e ss p e c i a lc h a l l e n g e s,d u et ot h ef a c tt h a tm o s to p e r a t i n gs y s t e m sa t en o td e s i g n e dw i t hd y n a m i cu p d a t ei nm i n da n dt h ei n h e r e n tc o m p l e x i t ya s s o c i a t e dw i t ho p e r a t i n gs y s t e m s F i r s t,t h e ya r eu s u a l l yi m p l e m e n t e du s i n gp r o c e d u r e-o r i e n t e dl a n g u a g e s H e n c e,t h e yo f t e nl a c kw e l l d e f i n e db o u n d a r i e st ob ed i v i d e di n t oi n d i v i d u a lc o m p o n e n t s,p r e v e n t i n gf r o mf i n d i n gp r o p e rd y n a m i cu p d a t eu n i t s M o r e o v e r,m o s tf u n c t i o nc a l l sa r eo f t e nm a d ed i r e c t l yr a t h e rt h a ng o i n gt h r o u g ha ni n d i r e c t i o nt a b l e,m a k i n gi td i f f i c u l tt or e d i r e c tf u n c t i o ni n v o c a t i o n sf r o mo l d e rv e r s i o n so fc o d et on e w e rv e r s i o n s V 1操作系统的动态业斩A b s t r a e tS e c o n d,m o s to p e r a t i n gs y s t e m sa r ee s s e n t i a l l ym u l t i t h r e a d e d C o n s e q u e n t l y,i ti sd i f f i c u l tt om a i n t a i nac o n s i s t e n ts t a t ei no p e r a t i n gs y s t e mw h e nt h e r ea r cm u l t i p l et h r e a d sc o n c u r r e n t l ye x e c u t i n gc o d et ob eu p d a t e da n dm o d i f y i n gt h ea s s o c i a t e dd a t a I ne x i s t i n ga p p r o a c h e s,aq u i e s c e n ts t a t eo ras a f ep o i n tn e e d st ob er e a c h e do re n f o r c e db e f o r ead y n a m i cu p d a t ec o u l db ea p p l i e d T h i sn e c e s s i t a t e sa ne f f i c i e n tw a yt ot r a c kt h ee x e c u t i o no ft h eo p e r a t i n gs y s t e m H o w e v e r,a sp o i n t e do u tb yp r e v i o u sr e s e a r c h e r s,i ti sg e n e r a l l yu n d e c i d a b l et of i n das a f ep o i n tf u rl a r g es o f t w a r e F i n a l l y,o p e r a t i n gs y s t e m sg e n e r a l l ym no nb a r eh a r d w a r ea n dl i ei nt h eb o t t o mo ft h ew h o l es o f t w a r es t a c k D y n a m i cu p d a t i n ga no p e r a t i n gs y s t e mm u s tb ed o n eb yi t s e l f U n f o r t u n a t e l y,i tm a yt r i g g e ra ne x e c u t i o no ft h ec o d et ob eu p d a t e dw h e na l lu p d a t ei si np r o g r e s sa n de n du pw i t had e a dl o c ko re v e nas y s t e mc r a s h B a s e do nt h ek e yi n s i g h ti n t ot h ed i f f i c u l t i e si na p p l y i n gd y n a m i cu p d a t et oo p e r a t i n gs y s t e m sa n daw i d ea n a l y s i so fe x i s t i n gd y n a m i cu p d a t ea p p r o a c h e s,w ep r o p o s eu s i n gs y s t e mv i r t u a l i z a t i o nt op r o v i d et h ed y n a m i cu p d a t ec a p a b i l i t yt oc o n t e m p o r a r yo p e r a t i n gs y s t e m s T h i sa p p r o a c hu t i l i z e sav i r t u a lm a c h i n em o n i t o r(V M M)t od y n a m i cu p d a t eo p e r a t i n gs y s t e m sr u n n i n gt h e r e o na n ds u c c e s s f u l l ys o l v e st h ep r o b l e m sf a c i n go p e r a t i n gs y s t e m s F i r s t,i ts u p p o r t sd y n a m i cu p d a t ei nt h eg r a n u l a r i t yo ff u n c t i o n sa n du s e sd y n a m i cb i n a r yr e w r i t i n gt or e d i r e c tf u n c t i o ni n v o c a t i o n s S e c o n d,i te l i m i n a t e st h en e e do faq u i e s c e n ts t a t eb yu s i n gt h eV M Mt om a i n t a i nt h ec o n s i s t e n c eb e t w e e nt h eo l da n dn e wv e r s i o n so fd a t aa n da l l o w sp a t c h e st ob ea p p l i e da ta n yt i m e F i n a l l y,u s i n gaV M Mt ou p d a t eo p e r a t i n gs y s t e m sa v o i d sp o s s i b l ed e a d l o c k so rs y s t e mc r a s h e sd u et os y s t e mi n c o n s i s t e n c y T of u r t h e rc o n s u m m a t eo u rd y n a m i cn p d a t es y s t e m,w ei n t r o d u c et h en o t i o no fs e l f-v i r t u a l i z a t i o nt os u p p o r td y n a m i cu p d a t et ot h eV M M S e l f v i n u a l i z a t i o na l l o w sd y n a m i c a l l ya t t a c h i n ga n dd e t a c h i n gaf u l l f l e d g e dV M Mb e t w e e na no p e r a t i n gs y s t e ma n dt h eb a r eh a r d w a r e,w i t h o u td i s r u p t i n ga p p l i c a t i o n st h e r e o n T h eo p e r a t i n gs y s t e mc a nf r e e l ys w i t c ht on l no nt h eb a r eh a r d w a r eo ft h eV M M,W h e na no p e r a t i n gs y s t e mr u n sd i r e c t l yo nt h eb a r eh a r d w a r e,t h eo p e r a t i n gs y s t e mc a ne a s i l yu p d a t et h eV M Ms i n c et h eV M Mi sc o m p l e t e l yi n a c t i v et h e n W h e nt h eV M Mi sa c t i v e,t h eV M Mc a nd y n a m i cu p d a t et h eo p e r a t i n gs y s t e m st h e r e o n T od e m o n s t r a t et h ea p p l i c a b i l i t yo fo u ra p p r o a c h,w eh a v ei m p l e m e n t e daV I l探作系统的动态史新A b s t r a c tw o r k i n gd y n a m i cu p d a t es y s t e ma n das e l f-v i r t u a l i z a t i o ns y s t e m,n a m e l yL u c o s(L i v eU p d a t eo fC o n t e m p o r a r yO p e r a t i n gS y s t e m)a n dM e r c u r ya c c o r d i n g l y,b o t ho fw h i c ha r eb u i l to nL i n u xr u n n i n go nX e nV M M A c c o r d i n gt oo u re x p e r i m e n t a lr e s u l t s,L u c o sc a ns u c c e s s f u l l ya p p l ys o m er e a l-l i f ek e r n e lp a t c h e sf r o mt h eu p g r a d eo fL i n u xk e r n e lf r o mv e r s i o n2 6 1 0t o2 6 1 1o nt h ef l y P e r f o r m a n c em e a s u r e m e n t ss h o wt h a tt h ei m p l e m e n t a t i o ni n c u r sn e g l i g i b l ep e r f o r m a n c eo v e r h e a d:l e s st h a n1 p e r f o r m a n c ed e g r a d a t i o nc o m p a r e dt oaX e n L i n u x(L i n u xr u n n i n go nX e nV M M)O nt h eo t h e rh a n d,M e r c u r ys y s t e ma l l o w sL i n u xt od y n a m i c a l l ys w i t c ht or n no nb o t he x e c u t i o ne n v i r o n m e n t s W h e nL i n u xr u n so nb a r eh a r d w a r e,i tc a ns u c c e s s f u l l yu p d a t et h ei n a c t i v eX e nV M M P e r f o r m a n c em e a s u r e m e n t si n d i c a t et h a tt h ep e r f o r m a n c eg a pi sl e s st h a n2 f o rL i n u xo ne a c he x e c u t i o ne n v i r o n m e n tc o m p a r e dt oo r i g i n a lo n e s(i c,u n m o d i f i e dL i n u xa n dX e n-L i n u x)K e y w o r d s:D y n a m i cU p d a t e(L i v eU p d a t e),O p e r a t i n gS y s t e m,A v a i l a b i l i t y,S y s t e mV i r t u a l i z a t i o n,S e l f-V i r t u a l i z a t i o nv I I I论文独创性声明本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除了特别加以标注和致谢的地方外,不包含其他人或其它机构已经发表或撰写过的研究成果。其他同志对本研究的启发和所做的贡献均已在论文中作了明确的声明并表示了谢意。作者签名:日期:论文使用授权声明本人完全了解复旦大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。保密的论文在解密后遵守此规定。作者签名:导师签名:日期:探作系统的动态受新第一章0 l 音1 1 研究背景第一章引言过去1 5 年来提高系统性能一直是计算机研究界的首要问题,但随着处理器性能按照摩尔定律(M o o r e sL a w)不断提升,性能问题已经不再是计算机界所要考虑的唯一的重要问题。对计算机可用性(A v a i l a b i l i t y)、可应变性(C h a n g e a b i l i t y)、可维护性(M a i n t a i n a b i l i t y)和演化成长能力(E v o l u t i o n a r yg r o w t h)等方面的研究【1】开始受到关注。可用性,即能够长期稳定连续的向用户提供服务的能力;可应变性,即能够迅速的针对用户需求的改变而做出调整以满足用户需求的能力;可维护性,即能够帮助系统管理员有效减少工作量和工作难度的能力:演化成长能力,即能够在不牺牲系统可用性和可维护性的情况下容易的扩展更新系统的能力。本文的研究将针对以上四点,尤其是系统可用性展刀:。随着r r 架构不断在关系国计民生的支撑行业中使用,服务中断所造成的损失也越柬越大【2 1 1。许多运行关键任务的系统都需要确保提供2 4 x 7 小时的高可用性,任何形式的打断都将造成巨大的损失。【表1】中列出了2 0 0 0 年各行业每小时停机带来的经济损失(H o u r l yD o w n t i m eC o s t s),其中还不包含诸如信誉受损、客户流失等无形资产的损失。I n d u s t r yH o u d yD o w n t i m eC o s t sB r o k e r a g eO p e r a t i o n s$6,4 5 0 0 0 0E n e r g y$2,8 1 7,8 4 6C r e d i tC a r dS a l e sA u t h o r i z a t i o n s$2,6 0 0,0 0 0T e l e c o m m u n i c a t i o n s$2,0 6 6,2 4 5M a n u f a c t u r i n g$1,6 1 0,6 5 4F i n a n c i a lI n s t i t u t i o n s$1,4 9 5,1 3 4I n f o r m a t i o nT e c h n o l o g y$l。3 4 4,4 6 1I n s u r a n c e$1,2 0 2,4 4 4R e t a i l$1,1 0 7,2 7 4P h a r m a c e u t i c a l s$1,0 8 2 2 5 2B a n k i n g$9 9 6,8 0 2F o o d B e v e r a g eP r o c e s s i n g$8 0 4,1 9 2C o n s u m e rP r o d u c t s$7 8 5,7 1 9C h e m i c a l s$7 0 4,1 0 1T r a n s p o r t a t i o n$6 6 8,5 8 6U t i l i t i e s$6 4 3,2 5 0H e a l t h c a r e$6 3 6,0 3 0第1 页共6 2 页探作系统的动态堑新第一章0 l 苫M e t a l s 小a t u r a lR e s o u r c e s$5 8 0,5 8 8P r o f e s s i o n a lS e r v i c e s$5 3 2,5 1 0E l e c t r o n i c s$4 7 7,3 6 6C o n s t r u c t i o na n dE n g i n e e r i n g$3 8 9,6 0 1M e d i a$3 4 0,4 3 2H o s p i t a l i t ya n dT r a v e l$3 3 0,6 5 4P a y P e r-V i e wT V$1 5 0 0 0 0H o m eS h o p p i n gT V$1 1 3,0 0 0C a t a l o gS a l e s$9 0,0 0 0A i r l i n eR e s e r v a t i o n s$9 0,0 0 01 c I 争T i c k e tS a l e s$6 9,0 0 0P a c k a g eS h i p p i n g$2 8,0 0 0A r MF e e s$1 4,5 0 0A v e r a g e$9 4 4,3 9 5表l:S o u r c e s:I TP e r f o r m a n c eE n g i n e e r i n ga n dM e a s u r e m e n tS t r a t e g i e s:Q u a n t i f y i n gP e d o r m a n c ea n dL o s s,M e l aG r o u p,O c t 2 0 0 0;F i b r eC h a n n e lI n d u s t r yA s s o c i a t i o n 图l:造成系统停机的原因比例操作系统作为整个软件体系结构中的基础层与关键层,其可用性将直接影响到上层所有软件的可用性,因而如何提高操作系统的可用性成为提高软件可用性的关键问题之一。I 图1 1 给出了1 9 8 5 1 9 9 3 年造成系统停机的原因比例,可以明显看出由于软件维护引起的系统停机时闯占到所有停机时间的比例持续增长,到1 9 9 3 年已经占到总停机时间的5 3 1 2 4 1。2 0 0 1 年H P 公司H A 实验室同样指出人为的系统维护引起的停机时间排在所用原因的第一位。因此有效地降低系统维护引起的服务中断是提高系统可用性最直接有效的方法。然而由于操作系统本身过于庞大而复杂,现有的实现远远不够完善而无懈可击。因此为了修复安全隐患、第2 页共6 2 页摄作系统的动态受新第一幸0 i 者纠J 下系统错误、提高软件性能或是增加新的功能,操作系统不可避免地在其生命周期中需要不断被更新和维护。但是当日U 基于“更新一重启”的静态更新方法需要重启系统,必然会造成操作系统可用性的丧失,以至于整个上层应用服务的中断。现有针对应用软件的动念更新技术(D y n a m i cu p d a t e,o rL i v eu p d a t e)J 2 能够在不影响软件正常运行的情况下完成对软件的更新操怍。该方法不但能提高操作系统可用性,同时很好的将可维护性、可应变性、演化成长能力与可用性结合起来。动态更新能够增强系统的可维护性,帮助系统管理员更好的维护运行中的操作系统,例如及时使用最新发布的安全补丁来修复系统漏洞;能够实现操作系统的在线应变,动态的修改操作系统使其适应需求变化,例如更新进程调度算法适应上层应用负载变动;能够实现对操作系统的在线演化成长,动态的升级操作系统,例如将操作系统的内核向高版本升级。但这些方法几乎都是针对应用软件设计,存在很多限制:或是要求软件在设计上提供对动念更新的支持:或是不支持对软件中数据结构的动态更新:亦或是只能支持对使用单线程模型的软件进行动态更新等。由于当前通用操作系统的设计并没有考虑到对动念更新的支持,再加上操作系统本身极高的复杂性,造成在操作系统上实现动态更新存在许多困难。1 由于通用操作系统几乎都是使用面向过程语言开发的,很难找到合适的粒度来进行动念更新,同时也不存在一种简单直接的方法能将原来对旧版本数据和函数的访闯重定向到新版本数据和函数上。2 当前的通用操作系统为了支持多任务(m u l t i t a s k)几乎都采用了多线程模型,同一时刻可能存在多个线程并发执行修改需要被更新的代码和数据,因此很容易造成在动态更新前后系统状态的不一致性。对此现有的更新方法是只在系统处于安全点时爿进行动态更新,安全点(S a f eP o i n tU p d a t eP o i n t)3 是指当前没有任何线程J 下在使用需要被更新的函数和数据。但是对安全点的检测需要额外的追踪手段,同时对于大型软件何时能够到达安全点是一个不确定的问题。3 直接运行在物理硬件上的操作系统必须由自己束完成对自身的动态更新,这种既是更新者又是被更新者的情况很容易导致对系统的更新无法完成甚至造成系统死锁或者崩溃。1 2 本文工作本课题在广泛深入的分析了现有动态更新技术和当前通用操作系统特性后,第3 亘f 共6 2 页探作系统的动态坐新第一章引音展开了对