(计算机应用技术专业论文)高可用系统中资源监视研究与设计.pdf_第1页
(计算机应用技术专业论文)高可用系统中资源监视研究与设计.pdf_第2页
(计算机应用技术专业论文)高可用系统中资源监视研究与设计.pdf_第3页
(计算机应用技术专业论文)高可用系统中资源监视研究与设计.pdf_第4页
(计算机应用技术专业论文)高可用系统中资源监视研究与设计.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

高可用系统中资源监视研究与设计 摘要 随着越来越多的商用程序移植到i n t e r n e t 上,提供高可用性服 务就变的日益重要。群集系统的一大优点就是它具有软、硬件的 冗余。高可用性通过侦测结点或幽灵程序的失败情况以及重新配 置系统将任务和服务转移至群集系统中的其它结点以得到负载的 平衡。 群集系统中的高可用性是指一组计算机以一种方式协同工 作,即某一个结点机出现问题,其它计算机可以立即接管其任务 及它所提供的各种服务,而不会造成整个系统的不可用,用户的 感觉就像几乎什么也没发生。在高可用系统中主要需要有支持 r a s 特性的功能组件,它包含:资源监控、日志系统、系统健康 监控等。 事实上,高可用性是一个广阔的研究领域。一个好的高可用 性系统应包含一组可靠的通讯子系统、群集成员管理、q u o r a m 子 系统以及并发的控制子系统等等,这包含了许多工作。 本文的研究主要集中于高可用系统中的资源统一表示、资源 监视以及资源的失败迁移、日志系统的管理包括数据库高可用等。 关键词 : 高可用;资源:半对等模式;马尔可夫过程:可扩展标记语言;失败迁移 高可用系统中资源监视研究与设计 a b s t r a c t w - t hm o r ea n dm o r ea p p l i c a t i o n sh a v i n gb e e nt r a n s f o r m e do n t ot h e i n t e r n e t t h eh as e r v i c ei nc o m p u t e rc l u s t e r sp l a y sav e r yi m p o r t a n tr o l e a m o n gp l u r a l i t i e so fa d v a n t a g e so fc l u s t e r s ,r e d u n d a n c yo fh a r d w a r ea n d s o f t w a r ei st h em o s tp r o m i n e n t 。t h r o u g hw h i c ht h ec o m p u t e rs y s t e m sa r e a b l et op r o v i d ec o n s i s t e n ts e r v i c et ot h e i rc l i e n t s b yd e t e c t i n gs t a t u so f n o d e sa sw e l ia ss t a t u so fs e r v i c ep r o g r a m s ( d a e m o n s ) i nt h ec l u s t e r ,t h e h ac a r lr e d i s t r i b u t et a s k sa n dp r o g r e s s e sa m o n gt h en o d e st ob a l a n c et h e w o r k l o a dj nt h ec a s eo fs e r v i c e so rn o d e sb e i n gt o ob u s yo rf a i l e d t h eh ai nac o m p u t e rc l u s t e ri sd e f i n e dt h a tc o m p u t e r sc o o p e r a t ew i t h e a c ho t h e r i e i fo n en o d ej sf a i l e d ,o t h e rc o m p u t e r sc a nt a k eo v e ra l l t a s k sw h i c ha r er u n n i n go ni t o r i g i n a l l y t h e r e f o r e ,t h ee n t i r es y s t e mm a y s t i l ia v a i l a b l ea n du s e ma r en o ta w a r eo f s w i t c h i n g o fn o d e t h e c o m p o n e n t s i nah a s y s t e m s h o u l d s u p p o r t r a sf e a t u r e s ( r e l i a b i l i t y ,a v a i l a b i l i t ya n ds u p p o r t a b i l i t y ) ,i n c l u d i n g r e s o u r c e sm o n i t o r , i o g i cm a n a g e m e n t a n ds y s t e mh e a l t hm o n i t o re t c 1 nf a c t h ai saw i d ed o m a i na n daw e l l - d e s i g n e dh as y s t e ms h o u l d e m b r a c er e l i a b l ec o m m u n i c a t i o ns u b s y s t e m ,n o d e sm a n a g e m e n t q u o r a m s u b s y s t e ma n ds i m u l t a n e o u sc o n t r o l l i n gs u b s y s t e me t c t oa c h i e v et h eg o a l sa b o v e ,i nt h i s d i s s e r t a t i o n ,i tf o c u s e so nt h e u n i v e r s a l p r e s e n t a t i o n o f r e s o u r c e s ,r e s o u r c e sm o n i t o r i n g ,r e s o u r c e s f a i l o v e r ,l o g i cs y s t e ma n dh a i nd a t a b a s e s y s t e m s k e y w o r d s : h i g ha v a i l a b i l i t y ;r e s o u r c e s ;s e m i e q u a lm o d e l ;m a r k o vp r o c e s s e x t e n s i b l em a r k u pl a n g u a g e ;f a i l o v e r 2 学位论文独创性声明: 本人所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果。与我一同工作的同事对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。如不实,本人负全部责任。 论文作者( 签名) :i 型2 0 0 。年6 月9 日 学位论文使用授权说明 河海大学、中国科学技术信息研究所、国家图书馆、中国学术期刊( 光盘 版) 电子杂志社有权保留本人所送交学位论文的复印件或电子文档,可以采用 影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质论文的内容 相一致。除在保密期内的保密论文外,允许论文被查阅和借阅。论文全部或部 分内容的公布( 包括刊登) 授权河海大学研究生院办理。 论文作者( 签名) : 罕幺 t 2 0 0 0 年6 月9 日 高可用系统中资源监视研究与设计 第一章绪论 1 1 高可用和高性能 计算机群集系统的发展已有十余年历史了,其最初模型分化为两个不同的领域即高 性能( h p ) 和高可用( i a ) 。群集系统大体上可以定义为:“互相连接的并行或分布的 计算机集合,它们使用统一的计算资源”u j 。并行计算机系统侧重群集系统的高性能以 及延展方面的性能,一般被称作w s c s ( w o r k s t a t i o nc l u s t e r s ) 或n o w s ( n e t w o r ko f w o r k s t a t i o n s ) ,而事务任务关键系统则侧重于群集系统的高可用性,即被称作 i a 群 集系统。 理论上,群集模型应不仅能提供高性能而且提供高可用性,另外应该具有可管理性、 可延展性和高性价比,然而为了达到这一目的,群集系统软件仍需不断地改进。并行系 统领域里,群集系统主要是提供延展性以及通过使应用程序在系统内不同的结点机上同 时运行来增强处理能力,这同传统上的巨并行计算机( m p c s ,m a s s i v e l yp a r a l l e l c o m p u t e r s ) 相较最大的优点就是造价低。实际上,同8 0 年代的那些昂贵的、专用的、 巨大的并行计算机系统相比,群集系统在9 0 年代的出现就是满足人们对高性能的追求 且花费相对便宜的要求。群集系统继承了许多分式系统的研究成果,当然,群集系统和 分布式系统有着许多明显的不同,这使得前者的实现更容易一些。群集计算机是典型的 同质系统,其结点机具有紧密耦合的特点,更为重要的是,结点之间相互信任( 分布系 统必须处理那些不被信任的结点) 。 但群集系统并非无所不能的因为系统中存在为数众多的硬件部分增加了出错的可 能性。一个群集系统可能包括成千上万个结点,如果应用程序出现错误,则故障可能会 成急速上升。l e s l i el a m p o r t ( 分布式系统的创始者之一) 明确地指出:“分布式系统 中的错误使你根本不知道是什么原因造成计算机无法正常使用。” 群集系统中的错误,特别会对那些长期运行的程序产生不好的影响,如大规模的科 学计算等,因而在出现错误时,某种可以保证应用程序运行连续性的技术成为必需。 同样,在并行计算方面也有相同的需求,从事务或任务关键系统的角度看,群集系 统就是一组即统一又相互独立的计算机系统,它们共享名空间,而且被设计为具有容错 性和支持热结点增减的系统,这种结点的增减对用户是透明的,其问题的焦点并非在性 能上而是其可用性上。 在通常情况下,任务关键群集系统是由两台机器组成( 即主一从方式) 而且支持o 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 ) 型应用程序,如银行、保险以及其他类似的行业。 其概念异常简单:当主结点机上的某个部件发生故障( 软件或硬件) ,应用程序可以转 移至各用结点上以避免业务的停滞而保证程序的持续可用,这个过程称为“失败迁移” ( f a i l o v e r ) ,这当然不可避免地会造成系统性能下降,但能够保持业务的连续性,这与 组件级冗余并带有完全屏蔽错误的轮询系统颇为不同,这种组件冗余的容错服务系统首 先由t a n d e m 【2 j 开发出来,在任务失败时它能提供服务的连续性,而群集服务是在系统级 提供冗余而并非是组件级。 高可用群集系统起初演化自双结点冗余的配置,随着对计算性能要求的不断提高, 逐渐地它可以支持多个结点机,并且通过均衡负载对参与运算的结点机提供了额外的机 高可用系统中资源监视研究与设计 制以充分利用其聚合计算的性能优点,这使得高性能和高可用性的关系变得愈为密切。 虽然高性能和高可用性的发展并非是同步的,但事实上,高性能并行计算机和高可用性 的发展可谓是相辅相呈的。并行处理是将多个处理单元整合以达到高性能的目的,而只 有具有一定的容错性才能形成有效的并行计算,这是因为容错性使得应用程序运行的连 绩性得以保证;另外一方面,由于并行处理技术从本质上提供给了高可用系统一种重要 的因素即熬体架构的冗余,因此高性能技术又促进了高可用技术的发展。 1 2 任务,事务关键计算 现今,由于信息系统无所不在,而且公司及各种组织对其计算资源的极度依赖使 得 i a 技术的应用日益增加。这类敏感程序包括在线交易处理系统、电子商务、 i n t e r n e t y o w 、数据仓库、决策支持、电信交换、在线分析处理系统( o n l i n ea n a l y t i c a l p r o c e s s i n g ) 、控制系统,以及那些需要2 4 小时提供服务的系统等。这些系统的服务 器需要连续地向客户提供服务,因此高可用性也就成为必需,在这种要求下,任何服务 的中断都可能是致命的,无论它是以何种形式出现,比如丧失机会、信誉受损或失去客 户。随着各企业、组织对关键系统应用的要求极度地增加,特殊的用于保护系统服务正 常的卧系统的购置总成本( t o t a lc o s to w n e r s h i p ) 一般会小于意外情况所带来的损失。 一种为这些系统提供高可用性的有效方法就是应用群集模式。 群集系统的建立是基于近十年来可靠计算系统的发展之上的。历史上,最早用于关 键系统应用的保护机制之一便是离线备份,或称作冷备份。备份并不能使系统的可用性 得到提高,但是至少最近一段时间的数据可以存放于安全的地方。 冷备份概念的提升就是热备份。热备份所保护的数据并不是某一段时间的,而是基 于连续的基础之上的即使用镜像存储系统完全复制数据,这称作磁盘冗余阵列,或缩 写为r a i d ,它用于保护数据的完整性。但是这种保护也并不能增加系统的可用性,因为 如果服务器宕机,则在系统重新启动之前,必须手工将其恢复。 运行环境监测以前( 目前仍是) 被用来保护系统免受危害,包括稳压装置及在电源出 现问题的时候使用不问断电源( u p s ) ,当然,上述的保护措施只在出现瞬间错误的时 候是有效的,而电源的永久性损坏则只能通过冗余技术方可解决,即使用双电源系统。 一个集成了最好的高可用部件的,包括上述的某些技术,事务关键系统才能简单地 做到无缝运行,而其它的解决方案在于使用高级硬件冗余系统,像电信业及银行业那样, 这些系统的冗余存在于系统的所有层次,这包括电源、1 o 端口、c p u 、磁盘、网络适配 器以及物理网络,目的在于消除平台中任何一个部分出现失败所带来的危险。当某一个 运行关键应用的硬件失败时,备份的部件会顶替上来以保证关键应用程序的运行,这些 系统被笼统地称作容错系统,它们几乎可以不问断地提供系统的可用性做到 9 9 9 9 9 可用,其代表如t a n d e m c o m p a q 的不间断h i m a l a y a 服务器。 但上述可用性的获得均需专用的软、硬件的支撑,这样会限制用户利用随手可得的 相对便宜的部件以及统一工业标准所带来的好处。我们所追求的目标是融合了高可靠性 和高可延展性的解决方案并能利用便宜的组件来实现它,而群集技术可以满足这样的要 求。往这个方向迈进的第一步就是通过局域网将两个类似的系统( 一个是主结点,另一 个是从结点) 连接起来,从结点不仅需要备份数据( 通过镜像技术) ,而且在主结点出 现失败时需要立即进行接管,它标志着任务事务关键群集系统的出现。 事实上,群集系统本身就具有高性能和延展性,与纯失败迁移( f a i l o v e r ) 相比较, 群集系统中的结点可以任意地选择而毋须空等错误的出现,这样可以充分地利用系统的 处理能力,并配以合适的软件均衡群集系统中其它成员的负载,这标志着高可用可延展 高可用系统中资源监视研究与设计 的群集系统的出现。 简而言之,广义上来讲,当今的任务事务关键群集系统应包含了下列能力: 可用性:具有可迁移到其它系统上的能力: 延展性:具有根据负载的变化增加处理结点的能力; 高性能:具有分布负载的能力; 可管理性:具有将整个群集系统作为一个统一系统进行管理的能力。 可管理性自然地成为这些系统中其它性能的需要,而且是目前信息系统在控制购置 总成本方面的焦点,而实现阻上性能的软件被称作“群件”( c l u s t e r w a r e ) ; 1 3 高可用架构 高可用系统可以以多种方式进行配置,这主要根据互联系统的存储设备、客户端、 监视、资源共享层次、最大结点数、失败迁移的粒度、群集资源的并发应用能力等等。 然而,人们可以根据它们的主要特点来区分如失败迁移、互联以及存储的架构。 1 3 1 无共享与共享存储 无共享群集模型中,每个结点有它自己的存储空间并且只使用本身的存储资源,无 共享群集系统允许存取公共设各或资源,只要这些资源在某一时刻仅被单一的系统所拥 有并管理着,这样可以避免高速缓存一致方案和分布式锁管理( d i s t r i b u t el o c k m a n a g e r s ) 的复杂性。这种模型的好处是可以消除群集中某一单个结点存储系统产生的 失败。实际上,如果共享存储资源失败,所有的服务器都会无法存取数据。由于不存在 资源竞争和开销,所以这种模型具有相当的延展性,而且当本地磁盘在网络上被镜像时 可以用一些简单的策略来减少系统带宽开销。某一特殊的互联方式( 可能是第二块网卡) 可以用于支持数据镜像及隔离客户的连接链路,或者可以使用一种更为智能化的方式进 行数据镜像,比如只传输数据更改的部分而不是整个数据。v i n c a 公司的监视服务就是 使用的第一种技术【3 】。 共享存储模式中,所有的服务器共享相同的存储资源,但必须对磁盘的读写进行串 行化以保证数据的完整性,在这种情况下,必须使用分布式锁管理,相应地,延展性就 不得不做出一定的牺牲。 图1 1 :无共享存储 一翟麓鞫圈罗一囤 一 倡 。 一 盯 ,一 c | = 一 一。 专 三 一 回 上凋翮豳瀚罗一舒 高可用系统中资源监视研究与设计 1 3 2 活动监视与活动活动 活动监视配置方式也被称作热备份,在这种模式中,主服务器运行关键应用,而 从服务器作为各份运行在监视模式,这两台服务器没有必要完全一样:备份机器只要具 有必要的资源( 磁盘、内存、连接电缆等) 以支持应用的运行,它的性能并不需要太高, 只要在主服务器修复阶段( 失败后) 可以运行主要的应用程序就行了。而在活动活动 方式的配置下,所有的服务器都是活动的,而且不用空等失败的来临才接管应用,这种 方式被称作具备双向失败迁移能力,因为关键应用可以在任意一台服务器上运行,因其 所有结点均可以作为生产系统来运用,所以其性价比降低了。 另一种活动活动模式的扩展配置被叫做多路( n - w a y ) 方式,其多台服务器相互备 份。例如,服务器x 对服务器x 和y 来说就是备份,而相反也一样,当这三台服务器中 的任何一个出现失败,则关键应用就迁移到备份服务器上【”。 图1 + 2 :主从方式 一 1 7 肖。 ,一。一、 l 一型三坐二l 旦生l 一 夕 p 图1 3 :多路方式 1 4 高可用的实现模式 国内外针对计算机高可用性,实现模式不尽相同,下面列举w i n d o w sn t 系统和l i n u x 4 高可用系统中资源监视研究与设计 系统中实现高可用的方式。 1 4 1w i n d o w sn t 高可周的实现模式 w i n d o w sn t 将资源主要分为三种:资源、资源组和群集b ,它有三种主要模式”1 : 1 ) 共享硬盘模式:最早的服务器群集允许每个服务器访问每个硬盘,实现这种模 式需要昂贵的专用线缆和切换器,以及专用的软件和应用程序,这意味着每年在服务器 上开发的数百万应用程序中只有很少可以在群集上使用,而且负责协调到共享硬盘访问 的专用软件分布式加锁管理器( d i s t r i b u t e dl o c km a n a g e r ) 在扩展性上有其固有的 限制,在群集中增加服务器时d l m 拥塞会呈几何级数增长。 2 ) 镜像硬盘模式:一种比共享硬盘更为灵活的方法,每个服务器拥有自己的硬盘, 再用软件将硬盘上的数据拷贝到至少一台其他的服务器上。使负责灾难恢复的服务器上 保存有一份与主服务器同步的数据。如今有许多种硬盘镜像解决方法,如支持w i n d o w s n t 环境的o c t o p u s ,v i n c a 和l i f e k e e p e r p 。然而,镜像硬盘技术不能提供群集的扩展性, 更重要的是,镜像数据必然导致主服务器的性能下降,同时由于镜像数据总存在一定对 间差,2 个服务器上的数据不可能1 0 0 相同,因此无法保证数据的完整性。 3 ) 非共享模式:微软的群集服务器采用的是这种模式,即每个服务器拥有自己的 硬盘资源,在同一时刻服务器间不共享硬盘。在某个服务器失效时,非共享群集中的软 件可将硬盘拥有权从失效服务器传递给正常运行的服务器。与镜像硬盘模式相比,这种 模式只有一份数据,因而不需要进行数据拷贝,同时也没有数据的不同步问题,在性能 和数据完整性上有更好的表现,与共享硬盘模式相比,这种模式下不会有多个服务器同 时读写一块硬盘,不需要分布式加锁管理器。使群集具有更好的扩展性;同时对应用程 序而言,在工作时与非高可用性状态下没有区别。它支持标准化的硬件和软件,降低了 群集的成本。 i 4 2l i n u x 高可用实现模式 而在l i n u x 系统的高可用实现中,它主要是基于一种虚拟服务器的基础之上并利用 所谓的“心跳”检测的方法来侦测结点状态 6 - 1 1 1 1 2 1 】1 2 6 2 8 】,它包含四个模块,即“m o n ”、 “h e a r t b e a t ”、“f a k e ”和“c o d a ”,其中,“n ”是一个通用资源监视模块,“h e a r t b e a t ” 的功能是通过计算机网络或串行接口监视结点资源的活动与否,“f a k e ”是进行虚拟i p 地址切换的功能模块以及实现a r p 欺骗,而“c o d a ”模块是一个分布式的容错文件系统, 其原理见图1 4 : 高可用系统中资源监视研究与设计 h i g ha v a i l a b i l i t yo fl i n u xv i r t u a ls e r v e r 图1 4 :l i n u x 高可用群集服务 1 4 3 本文的高可用实现模式 鉴于本文所讨论的计算机系统高可用性主要是针对资源监视部分,所以实现方式 也主要是面向系统资源这一方面,并参考文献【1 2 】及文献【2 4 1 中关于资源失败迁移和回 复的若干问题来展开的。在文中所提到的实现模式中,包含了三个主要模块,即监视模 块和仲裁模块以及另外一个和数据库高可用性有关的高可用模块,这其中,前两个模块 是整个系统的核心部分,设计了一种所谓的半对等模式,具体的实现模式在第二章中有 详尽阐述。 1 5 本文的研究目的和组织结构 1 5 1 研究目的 本文所研究的主要目的包括以下几个方面: 第一,多结点、多系统环境下计算机资源的监视以及资源的统一表示问题 第二,资源状态包括结点的计算模型和状态转换关系: 第三,数据库资源的高可用性设计和实现问题。 6 高可用系统中资源监视研究与设计 1 5 2 组织结构 第一章介绍高可用系统和高性能之间的相互关系,高可用系统的若干实现方式以及 本文所要做的工作等; 第二章主要对高可用系统的一种半对等的设计模式做了详尽阐述,重点对系统架构 的实现层次以及两个主要模块一监视和仲裁模块进行了描述; 第三章就高可用系统中资源可用率模型和可用度模型进行了研究; 第四章对系统的数据通信格式和通信方法进行了探讨; 第五章提出了一种基于原子结构的资源表示方法并实现之: 第六章就数据库系统资源高可用性进行了研究,并提出了一种解决数据库系统资源 高可用的框架; 第七章是对本文研究工作的一个总结并提出了今后需要解决的问题包括以后系统 高可用的研究方向。 高可用系统中资源监视研究与设计 第二章资源高可用的半对等模式设计 2 1 系统逻辑架构 在整个高可用系统资源监视中,因为考虑到为了使其能够适应跨平台使用,故将它 进行分层设计,这样做的好处在于可以将具体的硬、软件监控的实现和实际的平台相分 离,即只是把一些高层控制逻辑抽象,并将针对系统的具体操作进行封装,使用包装技 术向程序员提供统一的调用形式,从而隐藏实现细节,做到只需修改部分代码就可重新 在其它平台上运行。 2 1 1 轻量级的监视系统 由于高可用系统资源监控,从不同的角度而言,实现上可以划分为若干层次,例如 比较侧重硬件方面,侧重软件方面,数据库方面或其它方面等等。鉴于目前各个平台的 复杂性,虽然下面对于高可用系统的讨论和设计也涉及到硬件方面,但还是将重点放在 软件的高可用性的研究,特别是针对一些系统上的服务( 或幽灵程序上) ,所以称这种 方式为轻量级的高可用系统资源监视系统。 2 1 2 层次结构 从整个系统的实现角度而言,将其划分为以下几个层次:资源状态表示层、系统状 态控制层、命令层、硬件系统抽象层、软件系统抽象层、硬件系统实现层、软件系统实 现层、数据库逻辑层、数据库实现层等几个大的层次结构,其中前三个层次又被称作资 源仲裁模块,而后面三个层次称作资源监视模块,它和资源仲裁模块是相互独立的,可 以驻留在不同的结点之上,而关于数据库的两个层次是与另外两个模块平行的结构,它 们之间仅通过数据交换来实现( x m l 方式) ,关于数据库方面的高可用性在第六章中会 具体地予以论述。这几个层次的概念模型见图2 1 : 8 高可用系统中资源监视研究与设计 图2 1 :系统概念模型示意图 下面分别就这几个层次的作用做一简单描述。 2 1 2 1 资源状态表示层 这个层的具体功用是将系统所监视的资源用图形的方式进行表示,使用户可以对所 监视的资源做到一目了然,资源的状态可被划分以下几种:健康、警告、严重警告、失 败等,分别使用不同的颜色加以区分。实际上这就是用户图形接口 g u i ) ,设计中一 般使用能够跨平台的语言实现,例如j a v a 。 2 1 2 2 系统状态控制层 这一层的主要任务是控制高可用系统中的结点状态,并可以在控制台上实现资源状 态的转换,当然这一般是针对结点机,不过对于具体的资源也可做类似的操作,它一般 也是用可跨平台的语言来实现之。 2 1 2 3 命令层 这是整个仲裁模块的核心层,任何相关的操作都必须通过它来进行转换,而且它是 沟通仲裁模块和监视模块的桥梁可以解析删l 文档中的资源状态或对其它命令进行解 释。 2 1 2 4 硬件系统抽象层 由于本高可用系统的设计考虑到在跨平台应用中尽可能地减少代码的修改量,所以 将对于具体硬件的一些监视操作和上层实现相隔离,当然后面所论述到软件系统抽象 层,也是基于此考虑,就像前面所提到的,把对硬件系统的实现代码用统一的类进行封 装,只是对外提供一致的接口调用,包括统一的成员变量函数等,这些功能函数的参数 及其返回值均具有统一的形式,这样做的好处在于进行平台移植时只需更改最少的代 码。 2 1 ,2 5 软件系统抽象层 这一层的功能和硬件系统抽象层所实现的基本类似,只是方向有所不同,它针对具 体系统的某些服务。例如,监视进程的状态、运行时间、所占用的内存大小咀及其它进 程信息,如进程号、优先级等,因为每种操作系统的实现方式和内核均不尽相同。 2 1 2 6 数据库逻辑层 数据库的高可用性在整个系统高可用性中占有极其重要的作用,因为对于一般的事 务任务关键( b u s i n e s s m i s s i o nc r i t i c a l ) 应用而言,绝大多数是基于数据库的,所 以各种数据系统其本身均支持数据库的高可用,但这种应用都需要其它软件进行支持, 如s q ls e r v e r2 0 0 0e n t e r p r i s ee d i t i o n ,使用它就必须安装m i c r o s o f t 群集服务,即 只能运行于w i n d o w s 操作系统的服务器版本之上,而不能在其它版本中运行,而且如果 高可用系统要支持多种流行数据库,如o r a c l e9 i 、m y s q l 、s y b a s e 、i b md b 2 等,则显 得力不从心了,最终可能是无法实现的,因此在设计中添加数据库逻辑层的目的就是为 了解决这一矛盾。但在设计中,这一层可以作为可选层,不一定必须实现,如采用r a i d , 而对于文献 4 1 中所提到的s h a r en o t h i n g 模式则必须予以实现,但必须有个先决条件 9 高可用系统中资源监视研究与设计 就是不能直接在结点中所安装的数据库系统上对现有数据库进行操作,而是所有针对它 的操作,如查询、修改、删除必须在统一的接口程序中进行,而客户端需要对数据库进 行操作也必须经过这个接口,转化为标准的s q l 语句进行,它应不支持存储过程的实现。 通过上述的约定就能够保证本系统可以运行于异质的数据库上,但对于结点数据库的恢 复则是一个比较麻烦的问题,这个问题将在后面的章节有所涉及。 它主要具有定义数据库、定义关系、数据库操作命令的转发以及向仲裁模块发送更 改信息的功能,这层可利用类似j a v a 的语言来实现之。 2 1 2 7 数据库实现层 这一层是和具体数据库系统打交道的层次结构,它的主要功能是实现数据库操作, 监视数据库状态,针对不同的数据库系统的具体实现,由于其机制不尽相同,可以考虑 使用0 d b c 或将它们的驱动程序动态配置来达到目的。 2 2 监视模块与仲裁模块 监视模块是服务器中监视系统硬、软件状态的程序部件,而仲裁模块是控制整个系 统状态的程序部件。 显然,监视模块一般是和某个系统中服务器硬、软件环境息息相关的,所以它和具 体的系统有关,但仲裁模块则和具体的环境无关,只是可以通过某种数据交换方式( 本 系统采用x m l 方式) 监视其它服务器运行的情况,以及根据系统内出现的状况控制其它 服务器。 之所以称作半对等模式,是因为系统内的服务结点( 运行监视模块) 的地位是等同 的而且是同质的,而仲裁结点( 运行仲裁模块) 存在主从之分,它们是可以异质的,这 样做的好处主要是可以将系统内资源进行统一表示并进行监视。 2 2 1 监视模块与仲裁模块之间的关系 设系统内的服务器集合为s ,它们都是同质的,即每台机器均被配置了类似的硬、 软件资源,除了i p 、m a c 地址有所不同。若系统中含有n 台服务器,则s = s l ,s2 , s 。) ,而其中任意一台服务器都驻留有资源监视模块,用以监测其运行状态:仲裁模 块( a r b i t e r ) 可以运行在任意的s ( 1 f n ) 上,而且在任意时间内,系统内应只存 在一个主仲裁模块,这个模块运行于系统内的某个结点机之上,并且它可以和任意的结 点上的监测模块进行通讯,而结点上的监测模块之间不应有任何直接的数据交换,如有 通讯请求,则它们必须通过这个仲裁模块,但当仲裁模块出现故障( f a u i t s ) 、错误 ( e r r o r s ) 或失败( f a i l u r e ) ,必须启动其它结点机上的备份仲裁模块,并重新启动 主仲裁模块,当然,以上的控制只能在其它结点的监测模块中实施。 虽然上述对系统监视模块和仲裁模块之间的控制逻辑的描述比较复杂,但这样可以 保证不仅做到结点及其资源的高可用,而且对于整个系统的仲裁控制也可达到高可用性 的要求。 这两个模块通过使用x m l 数据格式进行通讯、交换数据,并应用这种方式相互检测 1 0 高可用系统中资源监视研究与设计 其运行状态,若其中某个服务器上的系统状态出现异常,则由仲裁模块处理之,而如果 主仲裁模块运行状态有异常或完全失败,则由从仲裁模块替代之。 通过以上的描述可以看出,如果要保证系统运行正常,则必须用一些状态来刻划两 种模块的运行情况。 2 2 2 监视模块状态 根据文献“,可将监视模块的状态划分以下几种: 活动态( a c t i v e ) :服务器处于正常活动态,但在某一给定时刻系统内只有而且仅 有一个结点处于此状态: 监视态( s t a n d b y ) :系统内除了一个结点处于运行态,其它结点均处于监视态, 并随时可以切换至活动态; 转换态( t r a n s i t i o n ) :服务器正在从某一系统状态转换至另一状态。因此这个状 态可以处于任何两个系统状态转换之间,这一点与文献 1 3 1 不同; 恢复态( r e c o v e r y ) :服务器正处于修复状态,即服务器试图从失败中恢复; 失败态( f a i l e d ) :服务器完全无法工作,只能停止服务,等待修复。 2 2 3 仲裁模块状态 相比监视模块状态,仲裁模块与它相比可以设置类似的5 个状态,但可以简化转换 态的设计,只将其固定为失败态与活动态之间的转换情况,然而为了区别这两套状态, 必须将其状态设计的同监视模块不同。 2 。3 有限状态自动机表示两个模块的状态转换关系 2 3 1 确定有限状态自动机的定义 朗 根据文献的定义,有限状态自动机( f i n i t es t a t e sm a c h i n e ) 是一个5 元组 f s m = ( g ,aq o ,) 其中,1 ) 9 是一个有穷状态集合,称作状态集: 2 ) 是所有输入所组成的集合,称作字母表; 3 ) 占是状态转换函数集合,它的定义域为输入字母表集合和系统状态集合的笛 卡儿乘积,值域为系统状态集合,称作转移函数,即: j :q 斗q 高可用系统中资源监视研究与设计 对于确定状态自动机而言,也可以表示为: v f a3 q 】,q 2e q ,s ,有,( g l ,占) = q 2 4 ) q o o ,是起始状态; 5 ) f q 是接受状态集。 2 3 2 高可用系统中的确定有限状态自动机的设计 针对高可用系统中的实际情况,可以将上述确定有限状态自动机的定义做出适当地 修改,使之符合应用要求。 2 3 2 1 系统状态定义 根据上面的系统5 种状态描述,可以将监视模块状态集合q 1 定义为 q l = a c t i v e ,s t a n d b y ,t r a n s i t i o n ,r e c o v e r y ,f a i l e d 而将仲裁模块状态集合珐定义为 q 2 = a r b i t e r a c t i v e , a r b i t e r s t a n d b y ,a r b i t e r t r a n s i t i o 肠a r b i t e r r e c o v e r y ,a r b i t e r 一扣i e 田 通过这样的定义,就可避免两套状态之间的混淆。 2 3 2 2 系统状态转换函数 根据上述的系统状态,可以定义以下几个状态转换函数: 1 ) 活动态转换至监视态:一般这种转换只针对系统内某一主服务器停l e 对外继续 提供服务,由于不存在其它的主服务器处于活动态,因此将状态由活动态转换至监视态; 注意这种转换一般是用手工方式进行的,而不是系统出现故障引起的。 2 ) 监视态转至活动态:这种状态的切换必须经过转换态( t r a n s i t i o n ) ,否则可 能造成系统内出现多台服务器处于活动态,从而造成网络地址冲突,因此需要产生一定 的时间延迟等待其主服务器转换成其它状态的信号,这种状态的切换也是通过仲裁模块 的直接干预而实现的; 3 ) 恢复态转换至活动态:系统修复成功; 4 ) 恢复态转换至监视态:从服务器修复成功; 5 ) 恢复态转换至失败态:系统无法修复,经过若干次( 可以设定次数上限,如3 次) 尝试仍无法进入正常状态; 6 ) 活动态转换至失败态:系统状态不正常或资源( 含硬、软件) 的使用情况低于 ( 高于) 某个或某几个闽值( t h r e s h o l d s ) ; 7 ) 监视态转换至失败态:从服务器系统状态不正常或资源( 含硬、软件) 的使用 情况低于( 高于) 某个或某几个阈值。 上面的几种转换关系可以通过以下的示意予以说明 高可用系统中资源监视研究与设计 图2 2 :状态转换( 没有画出转换态) 2 3 2 3 状态转换输入字母表 由于系统内状态的切换不可能通过简单的方式设置,所以在设计中考虑使用一个闽 值集合作为其输入字母表,但对于仲裁模块以强伟4 方式( 手工) 将系统内的某个服务器 从运行态切换至监视态的操作则需要另外设置一个命令集合,其中只包含一个元素,即 c o m m a n d = s w i t c h s t a t e ) ,所以针对具体情况需要使用两个集合作为输入字母 表。 对于自动切换状态的操作,可以定义一个由实数构成的闭集,其范围在一1 和1 之间, 表示服务器的可用情况。令a v a i l i b i l i t y = - 1 ,1 】,并令系统当前可用度为 x a v a l i b l l l t y , 其中若x = 0 表示系统不可用,如果z - - 1 ,o ) 表示服务器处于监视态或修复态的 可用性,而x ( o ,1 】表示服务器处于活动态,若某个服务器从监视态或修复态转换至活 动态,只需将x 取绝对值就可以了。 2 3 2 4 起始状态与接受状态 对于一个特定的高可用系统的起始状态而言,如果假定某个结点是主服务器,则其 起始状态应为活动的;相反地,其它结点的起始状态则应是监视态。 本系统中不存在接受状态( 失败态不是接受状态) 。 以上高可用系统内的有限状态自动机的定义只是针对监视模块而言的,仲裁模块中 的自动机定义基本上与其类似,但由于仲裁某块可以侦测其它结点( 若仲裁模块同时驻 留于系统内的某个结点上,则也包括本机结点) 的系统状态,所以从它的角度观察整个 1 3 高可用系统中资源监视研究与设计 系统,可以看到系统内存在多个有限状态自动机,而且主仲裁模块与从仲裁模块之间也 存在直接的相互监视关系,这样可阻保证在主仲裁模块失效时,从模块可以立即参与工 作,以监视整个系统的运行情况。 2 4 资源可用度计算的设计 2 4 1 系统可周率和资源可用度 高可用系统中,系统可用率可以定义为平均故障时间( m e a n t i m eb e t w e e n f a i l e d , 以下简称为m t b f ) 同平均修复时间( m e a nt i m et or e p a i r ,以下简称m t t r ) 和m t b f 之 和的比例关系,即: m t b f ( m i t r + h f r b f 、 4 1 它是衡量整个系统可用率的指标,即系统可用的概率,第三章将利用随机过程论中的马 尔可夫过程予以详细描述。 与此不同的是,资源可用度是反映系统中某个或某些资源的使用情况,就硬件方面 而言,如c p u 、内存、外部存储设备等,而软件方面则指应用程序的运行状况,如h t t p 、 f t p 、s m t p 等计算机上运行的一些服务程序,本小节专门研究资源可用度的情况。 2 4 2 硬件资源可用度的计算设计 由于系统内硬件资源相当庞大,不仅包括了c p u 、内存、磁盘阵列,而且例如总线、 p c i 插槽、网络接口设备等都应被列监控范围之内,这使得监视模块的设计变得相当复 杂,因为每种硬件的生产厂商不同,其运行状态的侦错方法也千差万别,但为了简化系 统的设计,可将其转化为百分比,再设定其在资源可用度计算中的权重,并求和以计算 出可用度( 针对单个服务结点) ,定义如下: n 月 h r e s o u r c e a v a i l a b i l i t y = w , p ,w f = 1 2 1 ) 其中n 表示某个结点所要被监视的资源个数,w ,和p 分别表示单个资源所占的 权重( 可根据实际情况设定) 和可用度。 在实现时,鉴于硬件种类的不同,下面列出了一部分计算资源可用度的方法: 1 )c p u :使用情况的概率,1 0 0 表示c p u 空闲,而0 表示被完全使用: 2 )内存:可划分为物理内存和虚拟内存两种情况,均表示其还有多少可以使用的存 储空间的百分数; 3 )磁盘或磁盘阵列( p a i d ) :可分配的存储空间大小和整个容量的比例: 4 )网络接口卡( n i c ) :某一给定时间( 通常为l s ) 内接、发数据的数量与最大处理 能力的比值。 当然,如果出现物理损坏,则该资源完全不可用。例如,对于c p u 的计算正确性, 可以通过设定某些计算,看其计算解与预先期望的结果是否一致,而对于内存的错误 1 4 高可用系统中资源监视研究与设计 则通过对其进行奇偶性校验检查。若服务器中不存在其它冗余资源,则必须将上面的 公式修改为: 月n h r e s o u r c e a v a i l a b i l i t y = s ( s ) zw f 只,= 1 2 2 ) i _ lj = l 其中f ( s ) 是一个指示函数,它表示求资源有无物理损伤的函数,其定义域为结点内 的所有硬件资源集合,值域为 0 ,1 ,分别表示硬件资源有、无物理损伤。 在第三章中提供了具体的方法来计算和分析硬、软件可用度的方法。 2 4 3 软件资源可用度的计算设计 系统内软件资源主要是指向客户端提供的各种服务程序,在u n i x l i n u ) 被称作 d a e m o n ,即幽灵程序,而在m i c r o s o f tw i n d o w s 系统内主要是指系统服务,一般是控 制台程序。在被监视的这类程序中,网络服务占有重要的比例,在普通情况下,一般 是基于t c p i p 的应用。对于软件资源的可用度的计算,即可以简单地认为只要其有响 应,可用度就是1 0 0 ,若没有响应就是o 。 但是,也可以设置一定的响应时问,或平均响应时间( m e a nt i m eb e t w e e n f e e d b a c k 简称为m t b f ) 来计算软件资源的可用度情况。例如预先设定l s 为所期望 的平均响应时间,如果在此范围之内程序有响应,则认为可用度为1 0 0 ,否则令真实 响应时间为r t b f ( r e a lt i m eb e t w e e nf e e d b a c k ) ,这时计算软件可用度的公式就为: m t b f

温馨提示

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

评论

0/150

提交评论