(计算机软件与理论专业论文)基于linux的数据库集群系统的研究.pdf_第1页
(计算机软件与理论专业论文)基于linux的数据库集群系统的研究.pdf_第2页
(计算机软件与理论专业论文)基于linux的数据库集群系统的研究.pdf_第3页
(计算机软件与理论专业论文)基于linux的数据库集群系统的研究.pdf_第4页
(计算机软件与理论专业论文)基于linux的数据库集群系统的研究.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(计算机软件与理论专业论文)基于linux的数据库集群系统的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华中科技大学硕士学位论文 摘要 集群系统以实现高可靠性为目标,它由一组互联的计算机组成,逸些单机协 灞王 乍对癸疆供一个单一、完整瓣诗冀爨滚。为了建立数箨疼集群系统,嚣要搽索 操作系统对数据库高可靠性和高性能的支持。l i n u x 负载均衡系统的成功为在l i n u x 上建立蘩攥痒集释系统羹定了鑫辩基穑。 基于l i n u x 内核的集群系统的主要优势表现为良好的并发憔和高可扩展性。虚 拟服务系统l v s 建立在l i n u x 内棱之上,采用了自负载调度嚣滕、服务器溘瑟、共 享存储层组成的三层体系结构,该结构具有良好的可伸缩性。通过将数据库服务器 日l 入蓟服务器池艨中,对多个数据库节点运用数据同步机制达到数据共率的目的, 我们可以建立基于l i n u x 姻数据艨集群系统。 针对决定集群设计的四大要潦一一商可靠性支持、单一系统映像、作业管理和 逶缮援铡在数摇黪系统中并没霉爨宠全实现豹超题,我嬲对l i n u x 受载澎簿系统系 统进行了改造,构筑了数据库集群系统的抽象模溅。 该摸鍪采雳三蒺体系缝稳:受载调凌晨、数据骚务臻与数攥弱步屡。系统蘩羯 无共享的存储结构,使用单一数据字典,通过事务日志传送保持数据同步。根据该 摸鍪,绩舍l v s 涤代璃,我们实现了蘸墅系统d m c 。该原警系统实蠛了并行查 询处理,提供了包括网络地址转换方式、i p 隧道方式与崽接路由方式三种方式的负 载均衡策略,并撩据应用需求实现了轮嘲调度、加权轮嘲、最少链揍等八种负躐调 度算法。 实验结果表明,基于l i n u x 建立的数据库集群系统肖效地增强了原有数据库系 绞麴d m 3 、m y s q l 熬著行牲积可扩展佳,逶爆予焘运操终衰度频繁,更掰操穆谯对 较少的数据库应用,适应了当前网站、论坛、决策支持系统等应用的发展需求。 关键词:巢群,数据库系统,集群数据魔,单一系统映像,虚拟服务器 华中科技大学硕士学位论文 a b s t r a c t c l u s t e r s y s t e m i s c o m p o s e db y as e to f c o m p u t e r s w h i c ha r e i n t e r c o n n e c t e dt op r o v i d eas i n g l ew h o l ec o m p u t i n gr e s o u r c e t h eg o a lo f c l u s t e r i n gt e c b n o o g y i st o i m p l e m e n tl a r g e s c a l e ,h i g hp e r f o r m a n c e a p p l i c a t i o ns y s t e m w ed i s c u s s e dh o wt oe s t a b l i s had a t a b a s es y s t e mb a s e d o nl i n u xv i r t u a ls e r v e r ,w h i c hi saf a m o u sc l u s t e rp r o j e c to nl i n u xo p e r a t i n g s y s t e m w ef i r s ta n a l y z eb ek e yt e c b n o l o g i e so fl i n u xc l u s t e rs y s t e m ,e s p i c i a l l y w ed i s c u s e st h el i n u xv i r t u a ls e r v e ri nd e t a i l s t h e nw e r e v i e wt h e c u r r e n tp o p u l a rd a t a b a s ec l u s t e r ss u c ha so r a c l e 9 ir a ca n di b mu d b b a s i n g o no u rr e s e a r c h ,w ep r o p o s ead a t a b a s es y s t e mp r o t o t y p e ,w h i c hi se s t a b l i s h e d o nl if l u xc l u s t e ra n du s et h ed b m s s u c ha sd m 4a n dm y s q la sr e a ld a t a b a s e s e r v e r s d m cc o m p r i s e st h r e el a y e r e dm o d u l e s :l o a db a n l a n o e r ,d a t as e r v e r s a n dd a t as y n c h r o n i z a t i o n f o c u s i n go nt h ek e yt e c h n o l o g i e se m p l o y e dw h e n d e p l o y i n g ac l u s t e rs y s t e ms u c ha ss s i ,d a t as y n c h r o n i z a t i o na n dl o a d b a l a n e i n g ,t h i sp a p e rg i v e ad e t a i l e dd i s s c u s i 0 1 1a n d g i v e i t ss o l u t i o n p e r s p e c t i v l y a c c o r d i n gt h ed m cm o d e la n db a s i n go nl i n u xv i r t u a ls e r v e r ,t h ep r o t o t y p e s y s t e mi si m p l e m e n t e dw i t hcp r o g r a m m i n gl a n g u a g e so nl i n u xo p e r a t i n gs y s t e m t h i ss y s t e mc a ni m p l e m e n ts s ii nt h r e ew a y sa n dc a np r o v i d e1 0 a db a l a n c i n g s t r a t e g i e si ne i g h td i f f e r e n tm e a n s i ti sac o s t e f f e c t i v es y s t e ma n dc a t e r s f o rt h e r e q u e s t s o fc u r r e n t a p p l i c a t i o n s u c ha sw e b a p p 、d s s ( d e e i s i o i l s u p p o r t i n gs y s t e m s ) a n do l t p ( o n l i n et r a n s a c t i o np r o c e s s i n g ) k e yw o r d s :c l u s t e r ,d a t a b a s es y s t e m s ,c l u s t e r e dd a t a b a s e s ,s s i ,l v s i i 独创性声明 工b 了z 上3 6 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:了罗较 日期:如。牛年争月g 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编八有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密口。 ( 请在以上方框内打“”) 学位论文作者签名:亥 日期:抛昨胡乃日 雠:海吲 日最b pl 年期6 7 日 华中科技大学硕士学位论文 l 绪论 1 1 问题的提出 集群技术氇称税群技术,趸逶a 年瑟兴超的一项离性麓诗簿技术“2 ”。逶过将 一组相互独立计算机用商速通信网络互连,集群系统对外呈现一个单一的计算 系统,并以单一系统模式蕊蔽管理。集群系统的出发点是疆徽篱可靠性、可扩充 性鄹抗灾难性。嶷群技术应用于数据库系统,可以实现大规模,高性能的数据库 系统。圈前数据库应用集中表现为数据库访问频繁“3 ,请求密集。主要是网络 类型爨盛翅,铡麴鄹站,论坛等。在这些网络类型的威_ 拜l 中,数据艨每秒镑要接 受几千次以上的落询,并需要经常追加数据,同时对数据的响应速度璎求比较高。 努一方蟊,这鏊森焉谤潮数攥黪翡搡佟多麦套 鸯搡馋,数据帮是分羲| :、定瓣、集 中倒入数据库,数据库的记录非常多,积累了大量的数据,假数据殿新操作不是 穰频繁。 由于访问比较频繁,而且为了支持更多的访问,网络服务器w e bs e r v e r 一 般都使用了负载均衡的熊群曙1 。但是对于数据庠来说,由于无法实现集群探作, 隧羞每秒镑豹谚求强几毽级数横式不羧壤搬,晌应单个请求瓣速度越来越攫,如 果库文件比较大,写操作的时候还会出现锁表时间过长等影响访问效率的事情。 在跌硬件、软件、簇痔、索雩| 戳及s q l 语旬这蔻个方瑟遴孬霞纯之嚣,润嚣 往往仍然不能解决。建立数据滕集群系统的需求就在这种背景下应落而生了。既 然负载罴由予过多的请求造成的,我们就采取分撵请求的方式,让一部分瓣请求 去访问另岁卜一台服务器,让单台服务器的负载降低,从而解决问题。 本课题来源华中科技大学数据库所大型通用数粥庠管理系统。课题的霞的是 蒸予l i n u x 操佟系统,瑷有静数据库篱理系统妇d m 3 、 4 y s q l 等,采用嘲终地址 转换技术( n e t w o r ka d d r e s st r a n s l a t i o n ,n a t ) 、i p 隧道技术“1 ( i pt u n n e l i n g ) 以及l i n u x 虚按黻务集赫技术( l i n u xv i r t u a ls e r v e r ,l v s ) 设嚣秘实褒令多 节点同步运行的篙可靠性数据库集群系统。 华中科技火学硕士学位论文 1 2 国内外研究概况 早在二十世纪七a + 年嫂,数字设蛰公司( d i g i t a le q u i p m e n tc o r p ,d e c ) 和t a n d e m 计算机公司就开始了集群系统的研究与开发工作。集群系统主要分为 弼荦孛:赢可蔫赣豢群帮离往靛集群。 高可用性集群( h i g ha v a i l a b i l i t y ,h a ) 是指当集群中的个系统发生故障 时,集群软件迅速做出反应,将该系统静任务分配到集群中其它正在工俸静系 统上执行,提供永不停机( n o n s t o p ) 的服务”“。高可用性集群的主要功能就是 提供不问断的服务。当前许多应用程序都必须天二十四小时不停地运转,如所 有数w e b 缀务器、工业接毒l 器、a t m 、,邋程逯诹转接爨、医学与军事监测仪以及 股票处理机等。对这些应用程序而言,暂时的停机都会导致数据的丢失等灾难性 豹嚣粟。 高性能集群( h i g hp e r f o r m a n c ec l u s t e r ,h p c ) 致力于提供单个计算机所不能 掇供的强大的计冀能力“。“。h p c 逶遗将多台梳器连接起来圈时处壤复杂的计算 闽题。如模拟星球附近的磁场、预测龙卷风的出现、定位石油资源的储藏地等情 况都需要对大量的数据进行处谶。传统的处理方法是使用超级计算枫来完成计算 工作,但楚超级计算规躲价撂比较昂贵,蔼虽爵用性期可扩展性不够强,因此集 群成为了商性能计算领域瞩目的焦点。 1 2 1 集群系统中的主要关键技术 i 。擎一系统浚豫 单一系统映像( s i n g l es y s t e mi m a g e ,s s i ) 是集群技术中十分蹩要的概念, 由k a ih u a n g 撵融“。如采一群互连瓣计算枫被设计成看怒采好像统一静黉源, 就说明它实现了s s i 。s s i 是用中间层实现的,处于整个集群臻统和用户层环境中 间,为管理和控制整个集群提供单一的窗口。s s l 支持的主要服务主要有三点。 ( 1 ) 蕈一入翻。一个髑户可以像连接到单一系统一榉连接至集群。整个系统对 用户是透明的,用户程序不必了解处理其请求的单个服务器节点的物理位鬣。但 在系绞交聱,爰户壤求爵以交互竣者莠嚣楚被撬行,最终结暴逮过s s i 逗强绘蠲户 华中科技大学硕士学位论文 程序。 ( 2 ) 单一管理。整个集群可以从用单一的g u i t 具创建的单一窗口进行管理和控 制。s s i 为用户提供整个系统资源的简单视图,监控每一个节点的运行情况。 ( 3 ) 资源访问透明。在使用集群的时候,用户并不知道为其服务的服务器具体 位置,所有的操作都感觉是在本地进行的。资源透明从方便用户的角度看,无需 处理繁杂的境像点、卷、域等定位的概念,仅有一个根,一个进程空间,一个i p 地址,一个i o 资源。 2 进程的放置 集群系统中,进程的到达时间和新到达进程所需的资源量都是不可预测的, 因此进程的放置和迁移是非常重要的问题。由于集群系统中的不可预测性,进程 有时就会被放置在不合适的机器上,进程迁移就给了系统一个弥补这样的错误的 机会。通过较好的算法将新创建的进程放置到合适的节点上执彳亍,并且对某些进 程进行迁移可以缩短任务的平均执行时间,因此从整体上提高了系统的性能。进 程的放置问题是非常复杂的,因为集群中的资源是异构的,例如:内存、c p u 、 进程间通讯等等。衡量这些资源耗费的方法也是不同的,例如:内存的单位是字 节,c p u 的单位是循环而通讯资源的单位是带宽。 进程的放置策略分为静态放置策略和动态放置策略“。静态放置策略通过预 先定义的规则对新创建的进程进行分配,它不使用运行时的信息。而动态放置策 略则根据系统状态的变化将进程重新放置到最适宜的节点上。常见的静态放置策 略有三种:时间片轮转法( r o u n dr o b i n ,r r ) ,自适应法( b e s t f i t ,b f ) 以及自 适应时间片轮转调度法( r o u n dr o b i nn e x t f i t ,n f ) 。 ( 1 ) 时间片轮转法将新创建的进程以轮转的形式放置到集群中的各节点上 “”。这种方法的缺陷在于如果新创建的进程所需的内存量大于将要分配到其上 的节点的可用内存大小,则会导致算法的失败“。 ( 2 ) 自适应法“2 ”是在r o u n dr o b i n 基础上的一种改进方法,在b e s t f i t 放 置策略中,新创建进程将被放置到具有最大可用内存的节点上。 ( 3 ) 自适应时间片轮转法“2 ”将以r o u n dr o b i n 的方式扫描各节点,并且将进 华中科技大学硕士学位论文 程发送到第一个商足够大癌存静节点上。它静缺点就怒可能会导致负载不均衡逾 分配到各个节点。 文献c 2 3 给出了三种进程放置策略的性熊比较。如图1 1 ( a ) 所示,假定进程 的平均大小是1 6 m b ,从该图可以看出,n f 算法能够鼹充分媳裂用内存资源。当 集群中的节点数增加时,b f 算法和r r 的算法的性能也随之有明显的下降,之所 以产生这耱壤况蹩因为当节点数增杰嚣露,集群中魏内存甚蠢也夔之藏比铡憩增 加,而且新增加的节点也会创建新的进程,这也就意味着大谶程的数量也会随之 氆多,遮藏大透稷对予b f 算法霹r r 算法而言楚禳难媛置静,因此会导致它稍豁 性能的下降。 图i i ( a ) 三种进程放置策略性能比较 n u m t e r 醴n d c l 懈 图i 。l ( b ) n f 、m s 策略性能比较 一种动态的进程放鼹策略叫做最小进程迁移法( m i g r a t es m a l l e s tp r o c e s s , 醚s ) ,它以轮转斡缮式搦搐袋毒豹节点,著虽姆毅送瑕放置剩下一个苇点上。与 r o u n d 轮转法不间的是,如果绥放置的节点的内存不足以提供给新来的进程使 藤,剜融s 算法褥迁移囊一个滋程。将簧被迁移靛逡程是该节点主繇骞遴稷中最 小的一个但是迁移走它刚好能满足新进程所需,而且也有其它的节点能够容纳这 个将被迁移的节点,这种方法有较小的网络开销,如莱不存在这样的节点,如其 它的所有节点都没有足够大的内存空阆,则算法失败。m s 算法和n f 算法的比较 如图卜l ( b ) 所示。当进程的平均大小为l m 时,两种算法都取得了将近1 0 0 的内 存秘焉率。毽是,当进程懿平均大小为1 6 m 时,挺s 冀法壤辩f 算法毫了2 0 多令酉 4 瓣瓣磷瓣蚶黼麟脯蹦 一誉iuo葡n器广1jo芒心差 辩 辩 期鼹 勰 嚣一韪罨婪净。蓉置 华中科技大学硕士学位论文 = = ;z = = _ = = = ;= = = = 一一 : 分点。 3 ,避程迁移 透稳迁移燕指将一个正在执行静进程获个节点( 源节点) 迁移蓟通过丽络 连接鲍另一个节点( 基摭苓点) 上,著使进程农鼹标节上从“麟点”处继续邋簟亍数 方法”“”。迸稷所在的原始节点上的操作系统应该将进程的所有状态包装越来, 这撵霾豁概裁可辍继续摭嚣| l 跫遴程。蓑毙或避鹱迁移需要迁移送程瀚捷态,笼萁 魁进程的地址空间,对淇它进程的访问( 如套接口、管道等) ,代码( 可以组成 越垃空闽戆一帮分) 戳及虢嚣犊态( 寄存器、壤棱等) 。涂了这些,还需要将委 烂对原始的进稔所有访问都熏新链按到新的进程拷贝上,不然迁移就不熙无缝 的,就会苷致错误。整个进程逶移操作盛须燕纛子搽作,这样才髓避免避稔静丢 失凌耆怒蠢嚣个拷贝妻搴憾滋发生。 早张2 0 世纪8 0 年代,人们就开始了进稳迁移的研究。大多数的研究主要着 鼹子蠡侮臻更好懿方法在鬣器之鬻黄送迸程熬状态。麓携豹避程迂移摇羲楚避程 迁移的原始和目标机器的体系结构相同,而辩构的进程迁移指的是不同体系结构 纳橇器之麓戆遂程迁移。遂疆迁移主要矮子五释蒋况。 ( 1 ) 失效的机器修复了错误。当失效的机器重新进入集群系统时,需嚣将某 戆该梳器上愿寒运行莳进程重耨迁移霞来。 2 ) 在集群系凌中进行负载共享。为了让个进程使用尽可戆多灼c p u 时间, 需要将它迁移到能提供大部分指令和i o 操伟的机器上执行。但是有时候熊载共 牵连寄缺陪,因为太帮分羹莲程翼嚣少邦分翡c p u 对窝,考虑到遴翟迁移豹开 销,如果对那蜷简单的可以在本地运行的进程进行避移是得不偿失的,但鼹对于 娜些需要大量赴瑾对阕戆程露船傍囊程拳,迁移遗稷是菲鬻霄效靛。 ( 3 ) 提高通讯性能。如果个进襁需要与其它进程频繁地进行通讯,这时将 邀些进程放置褥近一鼗就会瀛少通讯开销。撼体静迁移方法就是将一伞进程迂移 到其它进程所在懿c p u 上。 ( 4 ) 可用性。当网络上的篥台机瓣失效时,通过进程迁移可以将进程迁移到 其它氟器上魏续摭嚣,这释裁绦迂了豢统在遴饕灾难霹兹可雳搜。 华中科技大学硕士学位论文 ( 5 ) 重新配置。当对集群进行管理时,有时需要将服务从一个节点移到另一 个节点,透明的进程迁移可以在不停机的情况下迁移服务。 尽管进程迁移已经在实验环境中成功地实现了,但是它还没有被广泛地接 受。一个原因是占主流的平台如m s d o s 、m i c r o s o f tw i n d o w s 以及许多种类u n i x 的操作系统都没有对进程迁移的支持。另一个原因是因为进程迁移开销可能比不 迁移进程时的开销还要大。但是当前,两种新的计算领域又促进了进程迁移的发 展,一个是移动计算,另一个是广域计算。移动计算指的是那些便携式的小型计 算机的计算问题。而广域计算是指广域网中的机器的计算问题。 1 2 2 集群操作系统概述 集群系统采用的操作系统主要有u n i x 、w i n d o w s n t 和l i n n x 。u n i x 是服务器 或工作站上普遍使用的操作系统,它运行稳定、安全性也比较好,因此许多大的 公司都采用了基于u n i x 的集群系统解决方案。基于w i n d o w sn t 的集群系统解决 方案厂商主要有微软公司和数字设备公司。m i c r o s o f t 于1 9 9 5 年就开始了集群系 统的开发工作。w i n d o w s2 0 0 0 中已经增加了集群功能,该高可用性集群叫做 w o l f p a c k ”“2 “,也叫做m i c r o s o f tc l u s t e rs e r v e r ( m c s ) 。它主要是在企业级对 基于w i n d o w sn t 服务器的应用程序提供可用性和可升级性。w o l f p a c k 现在支持 两个服务器,一个用来对用户提供服务,另一个作为备份服务器使用。m i e r o s o f t 下一步的目标是将w o l f p a c k 支持的节点数扩展到1 6 个。w o l f p a e k 的缺陷在于它 只提供了两个节点的失败恢复功能,而没有采用复杂的应用程序资源管理功能, 因此在一定程度上影响了系统的高可用性、高可靠性和可升级性。 九十年代末期,l i n n x 操作系统不断走向成熟,它的健壮性不断增强,并且 提供了g n u 软件和标准化的并行虚拟机( p a r a l l e lv i r t u a lm a c h i n e ,p v m ) 、消 息传递机制( m e s s a g ep a s s i n gi n t e r f a c e ,m p i ) ,最重要的是l i n u x 在普通p c 机上提供了对高性能网络的支持,这样就大大推动了基于l i n u x 的集群系统的发 展。高性能集群系统m o s i x 。“2 ”为l i n u x 核心增添了集群计算的功能。m o s i x 集 群环境中,用户无需对应用程序进行修改,应用程序分配到不同的节点上运行”“。 6 华中科技大学硕士学位论文 m o s i x 自动将这些工作透明地交给别的节点来执行。 1 2 3 数据库集群系统 从概念意义的角度来说,传统的并行数据库系统运用了集群技术,因为并行 数据库系统同样以高性能、高可用性和高扩充性为目标,运用了s s i 、进程分配 和进程转移等集群关键技术,核心都包括单一系统映像、负载平衡以及任务转接 等问题o “。但数据库集群系统的建立并不局限于并行数据库的理论和方法,只 要能发挥多机协调处理数据的能力,能实现单一系统映像的多服务器协调工作的 数据库系统都可称为数据库集群系统。 1 并行数据库系统 。 并行数据库系统“”“3 是并行技术与数据库技术的结合,其发挥多处理机结构 的优势,将数据库在多个磁盘上分布存储,利用多个处理机对磁盘数据进行并行 处理,从而解决了磁盘“i o ”瓶颈问题,通过采用先进的并行查询技术,开发 查询间并行、查询内并行以及操作内并行,大大提高查询效率。其目标是提供一 个高性能、高可用性、高扩展性的数据库管理系统,而在性能价格比方面,较相 应大型机上的数据库管理系统高得多。并行数据库系统( p a r a l l e ld a t a b a s e s y s t e m ) 以高性能、高可用性和高扩充性为目标,充分利用多处理器平台的工作 能力,在联机事务处理( o n l i n et r a n s a c t i o np r o c e s s i n g ,o l t p ) 与决策支持 ( d e c is i o ns u p p o r t i n gs y s t e m s ,d s s ) 这两种典型应用环境中提供更快的响应 时间与更大的事务吞吐量”“。并行数据库系统作为一个新兴的方向,需要深入研 究的问题还很多,但可以预见,由于并行数据库系统可以充分地利用并行计算机 强大的处理能力,必将成为并行计算机最重要的支撑软件之一。 2 分布式数据库系统 分布式数据库系统”是分布式技术与数据库技术的结合,在数据库研究领域 中已有多年的历史和出现过一批支持分布数据管理的系统。从概念上讲,分布式 数据库是物理上分散在计算机网络各节点上,而逻辑上属于同一个系统的数据集 合。分布式数据库系统的主要目的在于实现场地的自治和数据的全局透明共享。 华中科技大学硕士学位论文 分布式数据库系统具有数据的分布性和数据库间的协调性两大特点。系统强调节 点的自治性而不强调系统的集中控制,且系统应保持数据的分布透明性,使应j j 程序编写时可完全不考虑数据的分布情况。无疑分布式是计算机应用的发展方 向,也是数据库技术应用的实际需求,其技术基础除计算机硬、软件技术支持外, 计算机通信与网络技术当然是其最重要的基础。但分布式系统结构、分布式数据 库由于其实现技术上的问题,当前并没有完全达到预期的目标。 3 数据库集群与分布式数据库 数据库集群系统与分布式数据库系统有很多相似点一它们都是用网络连接 各个数据处理节点,整个网络中的所有节点构成一个逻辑上统的整体,用户可 以对各个节点上的数据进行透明存取。但是它们仍具有明显的区别。 首先,数据库集群系统的目标是充分发挥集群计算机的优势,利用系统中的各 个节点并行地完成数据库任务,提高数据库系统的整体性能。而分布式数据库系统 的主要目的在于实现场地的自治和数据的全局透明共享,并不要求利用网络中的 各个节点来提高系统的处理性能。 其次,在集群数据库系统中,为了充分利用各个节点的处理能力,各节点间采 用高速网络互连( 节点间数据传输率通常达到l o o m b s ,甚至更高) ,节点间的数据 传输代价相对较低,因此当某些节点处于空闲状态时,可以将工作负载过大的节点 上的任务通过高速网络传给空闲节点,从而实现系统的负载平衡。但是在分布式数 据库中,各节点间一般通过低速局域网或广域网相连,网络带宽较低,因此分布式 数据库在进行查询处理时一般需要尽量减少节点问的数据传输量。集群数据库充 分体现了分布计算、集中管理的优势,更适用于大型w e b 服务器。 4 限制集群数据库系统性能的瓶颈 对于集群数据库系统,都要面对一个节点间数据传输效率的问题。特别是在 处理大量并发事务的系统中,为了能够保证真正的负载平衡,必然会有大量的数 据在集群中的不同节点机之间互相传递,节点机间的通信将成为一个制约集群系 统性能的,严重瓶颈。 绝大多数集群系统都使用了快速或千兆位以太网技术连接内部节点。首先因 华中科技大学硕士学位论文 为这些设备价格合理,在整个集群系统中大约占1 1 0 至1 5 的费用比例;二是 因为以太网技术已比较成熟,实现起来难度不大;三是因为网线插接方便,便于 扩展和更换设备,因此在集群系统中使用咀太网设备已经为大多数厂家和用户所 接受。但是由于以太网技术的一些先天弱点,导致了集群系统中节点问的数据传 输效率不高。 数据从网卡到达数据库管理系统通常要经过网卡驱动程序、t c p i p 层、操作 系统,最后到达数据库管理系统的应用软件层。而且,并不是所有的数据库软件 都能实现并行处理技术,对于某些数据库软件有时需要额外增加一层集群应用软 件才能使其达到并行处理的目的。也就是说对于有些数据库软件,数据还要在经 过一层应用软件的解析才能被数据库管理软件使用。每经过一层,数据处理都要 使用c p u ,极大地影响了系统的性能。 1 2 4 主流商业数据库o r a c l e 、d b 2 等的集群实现策略 当前流行的商用数据库系统大都支持集群,但采用的技术各有差异。从系统 实现的角度看,这些差异主要表现在体系结构、任务调度和数据分布三方面。表 1 1 简略列出了三种集群系统之间的主要区别。 表1 1 各种d b m s 集群策略的比较 d b m so r a c l ei b m 指标 r a cu d bd m c 体系结构s s 型s n 型s n 型 任务分配a n y c a s t 型 p a r a l l e l is m 型 a n y c a s t 型 数据字典单一字典全局+ 局部字典单一字典 数据分布共享磁盘哈希划分节点同步备份 o r a c l 9 i 实时应用集群系统( o r a c l er e a l t i m ea p p l ic a t i o n ,r a c ) 采用共 享存储的体系结构。“( s h a r i n gs t o r a g e ,s s ) ,集成了高速缓存融合技术,r a c 集群的实现是以昂贵的共享磁盘和高速缓存融合等硬件技术为基础的。i b m 并行 数据库集群系统u d b ( u n i v e r s a ld a t a b a s e ,u d b ) 是一种典型的无共享( s h a r in g 华中科技大学硕士学位论文 n o t h i n g ,s n ) 并行数据库系统,其实现很大程度上依赖于数据库模式的划分策略 及数据在各个节点的分布是否均衡,往往数据倾斜和数据重组的代价是巨大的。 在考察了国内外数据库集群系统的体系结构和实施策略之后,综合各种系统 的优缺点,本文提出了一种数据库集群系统模型,我们称之为d m c 。d m c 选择类 似于i b mu d b 的s n 体系结构,控制了系统实施的成本,采用单一的数据字典, 通过多节点同步备份保持数据库各个节点的一致性,查询采用a n y c a s t 型并行处 理。该系统是一种特别适用于查询操作高度频繁,更新操作相对较少的集群系统, 特别适应当前网络应用w e b a p p 、在联机事务处理o l t p 与决策支持系统d s s 等应 用的发展。 1 3 主要研究工作 1 3 1 研究思路 我们首先针对集群系统设计的关键要素进行分析,通过选取比较合适的集群 操作系统作为基础,运用已有的数据库技术和集群构造技术,设计出一个数据库 集群结构模型,以高可扩展性和高可靠性为目标,研究该模型关键模块的实施策 略,并初步实现该原型系统。 1 3 2 主要工作和预期目标 本文的主要工作将主要包括五个部分。 1 分析集群操作系统相关技术,特别对l v s 负载均衡系统系统的体系结构 与高可用性支持、高性能支持、以及单一系统映像等关键技术进行深入分析。探 讨在l v s 的基础之上建立数据库集群系统的可能性和优势。 2 采用l v s 技术,研究在d m 数据库或m y s q l 数据库服务器的基础上实现数 据库集群系统的关键要素和关键技术。 3 设计一个数据库集群结构模型,该模型以实现并行查询处理、负载平衡 并实现单一系统映像为目标,增强原有数据库系统的可靠性和可扩展性。并研究 该系统中关键模块的实施策略。 华中科技大学硕士学位论文 4 针对数据库高访问量的要求,研究多服务器之间的负载均衡策略。 5 针对服务器节点间的数据同步需求,研究数据库服务器的数据同步策略。 本课题的预期目标是基于l i n u x 系统,已有的数据库管理系统如d m 3 、m y s q 等,网络地址转换技术,i p 隧道技术以及l v s 虚拟服务等技术设计和实现一个多 节点同步运行的数据库集群系统。系统的预期设计目标是能够支持并行查询处 理,提供动态负载均衡策略并对外呈现单一系统映像。 华中科技大学硕士学位论文 = = = = = = = = = ;= = = = = = = = = = = = = = = = 一 2 l i n u x 负载均衡系统l v s 的分析 集群搡作系娩的选择,是数据库集群系统设计的首要方丽。本章将重点探讨 这个闯题。在分绥了l v s 系统鲍磺究蜚爨之磊,我鳃讨论了该系统褒采瘸弱邋矮 体系结构,重点分析了该系统的层次性和其存储体系。接着,由于高可用性是数 据瘁系统邋求载蓠要嚣标之一,我黧探讨tl v s 对离瑶鬻往戆支持。疆后,我翻 对l v s 的特点进行了总结。本章为后续的数据库集群系统的研究奠定了基础。 2 1 l v s 系统的研究背景 i n t e r n e t 的飞速发展给网络带宽和服务器带来巨大的挑战。从网络技术的发 震寒莠,羽络繁爽增长远麓予羚瑾器速发帮内存访运逮发茨璞筏,在主于阚上密 集波分复用将成为宽带i p 的主流技术。大部分网站都需要提供每天2 4 小时、每 鼙裙7 天瓣服务,对电予商务等两菇尤为突崮,任何黻务中瞬稻关键往的数撰丢 失都会造成直接的商业损失。例如,根据d e l l 的新闻发布,d e l l 现在每天在网 站上的交翁收入为一千豳百万美元,一个小时的服务中断都会造成平均五十八万 美元的损失。因此,当懿对曩硬 譬和软 牛方法实瑗商可 审缩、赢可蠲网络服务的 需求不断增长,邀种需求可以归结为四点。”。 ( 1 ) 露 聿缝校( s c a l a b i l i t y ) 。当黢务靛负载增长避,系统戆被扩震寒瀵是 需求,且不降低服务质爨。 ( 2 ) 离可甭佼( h v a i l a b i l i t y ) 。尽管部分硬件和软件会发生藏障,整个系统 的服务必须是每天2 4 小时每星期7 天可用的。 ( 3 ) 可管理憔( m a n a g e a b i l i t y ) 。熬个系统可能衣物理上很大,假容易管理。 ( 4 ) 份掺有效性( c o s t e f f e c t i v e n e s s ) ,蘩令系缀实现是经济的、易支付静。 在1 9 9 8 年5 月,成立了l i n u xv i r t u a ls e r v e r 的自由软件项目,进行l i n u x 瑕务器集簿豹开发工 睾。l v s 矮嚣是曩逡最早出现瓣囊垂软箨壤辇之一,舞在勰 华中科技大学硕士学位论文 = = = ;= = = = = = = = = = = = = = = = # = 一:= 决黼速发艘的w e b 商务中霞益凸琉的问惩,即如何在商限资金投入的情况下,最 大幅度的提高w e b 站点的潜在服务性能。该项目的目标是使用集群披术和l i n u x 操作系统实现一个高性能、高可用的服务器,它具有搬好的可伸缩性、可靠性和 可簿理性。 2 2 l v s 的体系结构 豺对燕可 孛续、褰可髑网终鼹务的爨袋,l v s 绘出了基予i p 爱襄基于内容请 求分发的暾载平衡调度解决方法,并在l i n u x 内核中实现了这些方法,将一组服 务器橡藏个实戮可律缀静、藏1 哥瑶丽络簸务豹负载秘衡系统。在l i n u x 受羧均 衡系统中,一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它 们的前端裔一个受载调废器。负载调度器能无缝绝将网络请求调度到真实服务器 上,从而使褥服务器集群的结构对客户熙透明的,客户访问集群系统提供的网络 服务就像访问一螽高性能、高可用的服务器一样。客户程序不受服务器集群的影 购不霉作经嚣修改。系绞豹秘缀悭通过在爨务繁嚣中透明地加入霸测涂一令节点 来达到,通过检测节点或服务进程故障和正确地重置系统达到商可用性。由于负 载谖凄授术是在l i n u x 肉棱中安嚣豹,掰臣又称之为l i n u x 寝苏驻务器”。 2 。2 。l l v s 昀邋用体系结构 l v s 采用i p 负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐 率,将请求均衡蛾转移剥不同的服务器。h 执行,且调度器自动屏蔽摔服务器的故 簿,从嚣梅一组鼹务器捻艘一个嵩性篾豹、裹可溺的负载均籀系统。艇个服务器 集群的结构对客户是透明的,币:i 且无需修改客户端和服务器端的程序。为此, 杰设计嚣季游要考露系统戆透臻性、可转维洼、菇可震瞧秘耍蛰理蛙。翔圈2 。1 爨 示,l v s 采用三层体系结构o “。 ( 1 ) 受载谲度器( 1 0 a db a l a n c e r ) ,它是熬个集辩对外藤的蘸臻梳,受黉将 客户的请求发送到一组服务器上执行,丽客户认为服务是来自一个i p 地址上的, 华中科技大学硕士学位论文 = = = = = = = = = = = = = = = = = = = ;= = = = = = = = = = = 。= = = 一 我们可称之为虚拟i p 地址。 ( 2 ) 服务器池( s e r v e rp 0 0 1 ) ,是一组真正执行客户请求的服务器,执行的 服务有w e b 、m a i l 、f t p 和d n s 等。 ( 3 ) 共享存储( s h a r e ds t o r a g e ) ,它为服务器池提供一个共享的存储区,这 样很容易使得服务器池拥有相同的内容,提供相同的服务。 图2 1l v s 的三层体系结构 其中,调度器是服务器集群系统的唯一入口点,它可以采用i p 负载均衡技 术、基于内容请求分发技术或者两者相结合。在i p 负载均衡技术中,需要服务 器池拥有相同的内容提供相同的服务。当客户请求到达时,调度器只根据服务器 负载情况和设定的调度算法从服务器池中选出一个服务器,将该请求转发到选出 的服务器,并记录这个调度;当这个请求的其他报文到达,也会被转发到前面选 出的服务器。所有的操作都是在l i n u x 操作系统核心空间中将完成的,它的调度 开销很小,所以它具有很高的吞吐率。 服务器池的节点数目是可变的,当整个系统收到的负载超过目前所有节点的 处理能力时,可以在服务器池中增加服务器来满足不断增长的请求负载a 对大多 1 4 华中科技大学硕士学位论文 数网络服务来说,请求间不存在很强的相关性,请求可以在不同的节点上并行执 行,所以整个系统的性能基本上可以随着服务器池的节点数目增加而线性增长。 负载调度器、服务器池和共享存储系统通过高速网络相连接,如l o o m b p s 交 换网络、m y r i n e t 和g i g a b i t 网络等。使用高速的网络,主要为避免当系统规模 扩大时互联网络成为整个系统的瓶颈。 2 2 2 体系结构分析 1 为什么是层次结构 层次的体系结构可以使得层与层之间相互独立,每一个层次提供不同的功 能,在一个层次可以重用不同的已有软件。例如,调度器层提供了负载平衡、可 伸缩性和高可用性等,在服务器层可以运行不同的网络服务,如w e b 服务、缓冲 服务器、邮件服务器和多媒体服务器等,来提供不同的可伸缩网络服务。明确的 功能划分和清晰的层次结构使得系统容易建设,以后整个系统容易维护,而且系 统的性能容易被扩展。 2 为什么是共享存储 共享存储如分布式文件系统在这个l v s 系统中是可选项。当网络服务需要有 相同的内容,共享存储是很好的选择,否则每台服务器需要将相同的内容复制到 本地硬盘上。当系统存储的内容越多,这种无共享结构的代价越大,因为每台服 务器需要一样大的存储空间,任何的更新需要涉及到每台服务器,系统的维护代 价会非常高。 共享存储为服务器组提供统一的存储空间,这使得系统的内容维护工作比较 轻松,如w e b m a s t e r 只需要更新共享存储中的页面,对所有的服务器都有效。分 布式文件系统提供良好的伸缩性和可用性,当分布式文件系统的存储空间增加 时,所有服务器的存储空间也随之增大。对于大多数i n t e r n e t 服务来说,它们 都是读密集型的应用,分布式文件系统在每台服务器使用本地硬盘作缓存,可以 使得访问分布式文件系统本地的速度接近于访问本地硬盘。此外,存储硬件技 术的发展也促使从无共享的集群向共享存储的集群迁移。 华中科技大学硕士学位论文 2 3 高可用性分析 集群系统的特点是它在软硬件上都有冗余。系统高可用性可以通过检测节点 或服务进程故障和正确地重置系统来实现,使得系统收到的请求能被存活的节点 处理。通常,我们在调度器上有资源监测进程来时刻监视各个服务器节点的健 康状况。当服务器对i c m pp i n g 不可达时或者探测她的网络服务在指定的时间没 有响应时,资源监测进程通知操作系统内核将该服务器从调度列表中删除或者失 效。这样,新的服务请求就不会被调度到坏的节点。资源监测进程能通过电子邮 件或传呼机向管理员报告故障。一旦监测进程检测到服务器恢复工作,调度器将 其加入调度列表进行调度。另外,通过系统提供的管理程序,管理员可发命令随 时可以将新机器加入服务来提高系统的处理性能,也可以将已有的服务器切出服 务,以便对服务器进行系统维护。 现在前端的调度器有可能成为系统的单一失效点( s i n g l ep o i n to f f a i l u r ) 。一般来说,调度器的可靠性较高,因为调度器上运行的程序较少而且 大部分程序早已经遍历过,但不能排除硬件老化、网络线路或者人为误操作等主 要故障。为了避免调度器失效而导致整个系统不能工作,需要设立一个从调度器 作为主调度器的备份。两个心跳( h e a r t b e a t ) 进程分别在主、从调度器上运行, 它们通过串口线和u d p 等心跳线来相互定时地汇报各自的健康状况。当从调度器 不能听得主调度器的心跳时,从调度器通过a r p 欺骗来接管集群对外的虚拟i p 地址( v i r t u a li pa d d r e s s ) ,同时接管主调度器的工作来提供负载调度服务。 当主调度器恢复时,这里有两种方法,一是主调度器自动变成从调度器,二 是从调度器释放虚拟i p 地址,主调度器收回虚拟i p 地址并提供负载调度服务。 这里,多条心跳线可以使得因心跳线故障导致误判,即从调度器认为主调度器已 经失效,其实主调度器还在正常工作的概论降到最低。通常,当主调度器失效时, 主调度器上所有已建立连接的状态信息将丢失,已有的连接会中断。客户需要重 新连接,从调度器才会将新连接调度到各个服务器上,这对客户会造成一定的不 便。为此,l v s 调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论