




已阅读5页,还剩70页未读, 继续免费阅读
(计算机软件与理论专业论文)一个网络负载平衡器的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着i n t e r n e t 的普及和它的快速增长,它在人们的日常生活中已经变得越来 越重要了,使用在生活中的方方面面。上网,已经成为人们生活中的一个重要组 成部分。伴随着它的快速增长,i n t e r n e t 上主机数的增多,使得网络拥塞也变得 越来越严重,超过了1 0 0 的年增长速度。对于服务器来说,由于网络负载的快速 增长,服务器很容易就过载。特别是对一些著名的w e b 网站来讲,更是这样。所 以说,一定要找一个有效可行的方法来解决这个问题。此外,随着计算机网络的 飞速扩展,对网络服务的性能提出了越来越高的要求,在解决系统服务瓶颈的同 时还要保证系统的稳定性与健壮性,因此网络服务的负载平衡集群技术在这方面 具有较高的理论和应用价值。 从计算机集群技术的提出到现在,这十多年的过程中,该技术逐渐的成熟, 但最初通常需要专业的硬件设备来实现本课题基于l i n u x 开发实现,通过软件方 法来实现最终的设计目标,比起已有的硬件实现的负载平衡系统,该课题完成的 结果可能运行速度相对较慢,但是算法结构简单和性价比较高的特点也使该题目 具有一定的理论和应用价值 本文主要论述了一种在t c p i p 栈中网络负载平衡系统的实现技术,它解决了 ( i ) 如何正确的捕获用户提出的应用请求并将之分流给真实的应用服务器。( 2 ) 如何在系统核心内部动态的对所分流的服务器进行正确的管理。本文描述了如何 在当前广为使用1 i n u x 操作系统下通过在t c p i p 核心栈添加核心模块和使用虚拟 设备驱动程序的管理方法来设计实现系统。 论文主要分五大部分,第一部分是系统概述。第二部分是技术基础,主要讲 解了与设计系统相关的网络技术和负载平衡技术。第三部分是系统环境,由于负 载平衡系统是与特定操作系统相关的,第三部分讲解了实现该系统的操作系统环 境及其网络实现和设备驱动程序的实现,这是本负载平衡系统的实现关键所在。 第四部分是负载平衡系统的具体实现方法,讲解该系统的模块构成和各个部分的 实现技术。第五部分是系统测试,通过测试数据体现该系统的优势。 摘要 关键词:负载平衡,l i n u x ,核心,t c p i p i i 一 垒! 堕! 坐 a b s t r a c t w i t ht h ee x p l o s i v eg r o w t ho ft h ei n t e m e ta n di t si n c r e a s i n g l yi m p o r t a n tr o l ei no u r l i v e s ,t h et r a f f i co nt h ei n t e m e ti si n c r e a s i n gd r a m a t i c a l l y , w h i c hh a sb e e ng r o w i n ga t o v e r1 0 0 a n n u a lr a t e t h ew o r k l o a do nt h es e r v e r si si n c r e a s i n gr a p i d l ys ot h a ts e r v e r s w i l lb ee a s i l yo v e r l o a d e df o ras h o r tt i m e ,e s p e c i a l l yf o rap o p u l a rw e bs e r v e r s ot h e r e m u s tb eam e t h o dt oo v e r c o m et h eo v e r l o a d i n gp r o b l e mo ft h es e r v e r s b e s i d e s ,w i t h t h er a p i d l yd e v e l o p so fn e t w o r k ,w es e tt h em o r ea n dm o r eh i g hr e q u e s tt ot h en e t w o r k s e r v i c ep e r f o r m a n c e a l s om u s tg u a r a n t e es y s t e md u r i n gs o l u t i o ns y s t e ms e r v i c e b o t t l e n e c ks t a b i l i t ya n dv i g o r o u sa n dh e a l t h y t h e r e f o r et h en e t w o r ks e r v i c el o a d b a l a n c ec o l o n yt e c h n o l o g yh a sah i g h e rt h e o r ya n dt h ea p p l i c a t i o nv a l u ei nt h i sa s p e c t p r o p o s e si nt h en o wm o r et h a n1 0y e a r sp r o c e s sa l o n gw i t ht h ec o m p u t e rc o l o n y t e c h n o l o g y , t h i st e c h n o l o g yg r a d u a l l yi sm a t u r e ,b u ta tt h eb e g i n n i n go ft h eu s u a ln e e d s p e c i a l i z e dh a r d w a r ee q m p m e n tr e a l i z e s t h i st o p i cb a s e do nt h el i n u xd e v e l o p m e n t r e a l i z a t i o n ,a c h i e v e st h ef m a ld e s i g ng o a lt h r o u g ht h es o f t w a r em e t h o d ,t h el o a d b a l a n c e ds y s t e mw h i c hc o m p a r e sw h i c hh a sh a dt h eh a r d w a r er e a l i z e s ,t h i st o p i c c o m p l e t e st h er e s u l tp o s s i b l er u n n i n gr a t ec o r r e l a t i o nt ob es l o w , b u tt h ea l g o r i t h m s t r u c t u r ei ss i m p l ea n dt h es e x u a lp r i c eq u i t eh i g hc h a r a c t e r i s t i ca l s oe n a b l et h i st o p i ct o h a v et h ec e r t a i nt h e o r ya n dt h ea p p l i c a t i o nv a l u e t h i sp a p e rd e s c r i b e sam e t h o dt od e s i g na n di m p l e m e n tan e t w o r ka p p l i c a t i o n w o r k l o a db a l a n c i n gs y s t e m i ts o l v e st w op r o b l e m s :( 1 ) h o wt oc o r r e c t l yc a p t u r et h e u s e r sr e q u e s t sa n ds e n di tt ot h er e a ls e r v e r ( 2 ) h o wt od y n a m i c a l l yc o n t r o la n d c o n f i g u r et h ew o r k l o a db a l a n c i n gs y s t e mi nt h ek e m e ll e v e lo ft h eo p e r a t i n gs y s t e m t h i sp a p e rd e m o n s t r a t e sh o wt od e s i g na n di m p l e m e n tt h es y s t e mb ya d d i n gk e m e l m o d u l e si n t ot h et c p i pk e r n e ls t a c km a du s i n gv i r t u a ld e v i c ed r i v e rt oc o n t r o la n d c o n f i g u r et h es y s t e m t h i sp a p e rc a nb es e p a r a t e di n t of i v ep a r t s t h ef i r s tp a r td e s c r i b e st h ew h o l es y s t e m i nb r i e f t h e ni td e s c r i b e st h er e l a t e dn e t w o r kt e c h n o l o g y , a n a l y s e st h et c p i pp r o t o c o l a n dg i v e sa ni n t r o d u c t i o nt os o m eo f t h el o a db a l a n c i n gm e t h o d s b e c a u s et h en e t w o r k l o a db a l a n c i n gs y s t e mi sd e s i g n e do nag i v e no p e r a t i n gs y s t e m ,s ot h i sp a p e ra n a l y s e s 1 1 1 a b c t r a c t h o wt h et c p i pp r o t o c o ls u i t ei sd e s i g n e da n di m p l e m e n t e di nl i n u xa n dh o wt od e s i g n t h ed e v i c ed r i v e ri nl i n u x b o t ho ft h e ma r ei m p o r t a n ti nt h ed e s i g na n di m p l e m e mo f t h en e t w o r kl o a db a l a n c i n gs y s t e m ,i nt h ee n do f t h ep a p e r , ig i v eas i m p l et e s to ft h e w h o l es y s t e m ,w h i c hg i v e so u tt h es y s t e m ss u p e r i o r i t y k e y w o r d s :w o r k l o a db a l a n c i n g , l i n u x ,k e r n e l ,t c p i p i v 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:墨照垒 日期:。g 年1 月f 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:羔吼堡 导师签名: 日期:0i 第一章引言 第一章引言 随着i t 领域的飞速发展,计算机网络的使用在人们的日常生活当中越来越普遍, 这也带来了计算机网络的高速扩充。同时,网络服务器所承受的网络流量的压力也急 剧加大。起初无法承受庞大网络流量的网络服务器就会被淘汰,换之以更高性能的大 型网络服务器,高昂的网络更新费用也是网络管理机构的主要支出之一,同时这种无 休止的淘汰无疑造成了极大的资源浪费。如何在提高网络服务的系统性能和很大程度 上降低网络更新费用之间找到一种平衡点呢? 基于对这个问题的思考和研究,以寻找 一种性价比较高的解决方案,在周明天老师的指导下,我拟定了“一个网络负载平衡 器的设计与实现”这个题目,作为自己的毕业设计课题。 简单的提高硬件性能并不能真正的解决上述问题,因为单台服务器的性能总是有 限的,一般来讲,一台比较好的p c 服务器所能提供的并发访问处理能力大约为1 0 0 0 个,更为高档的专用服务器能够支持3 0 0 0 - - 5 0 0 0 个并发访问,这样的能力还是无法 满足负载较大的网站的要求。尤其是网络请求具有突发性,当某些重大事件发生时, 网络访问就会急剧上升,从而造成网络瓶颈。并且采用单纯的提高硬件性能的方法, 服务器的升级过程是比较慢的,过程也比较复杂。必须采用多台服务器提供网络服务, 并将网络请求分配给这些服务器分担,才能提供处理大量并发服务的能力。 当使用多台服务器来分担负载的时候,可以将相同的一种服务使用多台的服务器 来提供,比如说,将整个系统的w w w 服务分担到4 5 台服务器上去同时向外部提供 服务以减少对单台服务器的冲击。也可以让不同的服务器用在不同的方面。按提供的 内容进行分割时,可以将一台服务器用于提供新闻页面,而另一台用于游戏页面;或 者可以按服务器的功能进行分割,将一台服务器用于提供静态页面访问,而另一些用 于提供c g i 等需要大量消耗资源的动态页面访问。由于网络访问的突发性,使得很难 确定哪些页面造成的负载太大,如果将服务的页面分割的过细就会造成很大的浪费。 事实上造成负载过大的页面常常是在变化的,如果要经常按照负载变化来调整页面所 在的服务器,那么势必对管理和维护造成极大的问题。因此这种分割方法只能是大方 向的调整,对于大负载的网站,根本的解决方法还需要应用负载平衡技术。 负载平衡的思路下多台服务器为对称方式,每台服务器都具备等价的地位,都可 以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将外部 发送来的请求均匀分配到对称结构中的某台服务器上,而接受到请求的服务器都独 电子科技大学硕士学位论文 立回应客户机的请求。由于建立内容完全致的服务器并不复杂,可以使用服务器同 步更新或者共享存储空间等方法来完成,因此负载平衡技术成为建立个高负载站点 的关键性技术。 负载平衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带 宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。每个主机运 行一个所需服务器程序的独立拷贝,诸如w e b 、f t p 、t e l n e t 或e - m a i l 服务器程序。 对于某些服务( 如运行在w e b 服务器上的那些服务) 而言,程序的一个拷贝运行在群 集内所有的主机上,而网络负载平衡则将工作负载在这些主机间进行分配。对于其他 服务( 例如e m a i l ) ,只有一台主机处理工作负载,针对这些服务,网络负载平衡允 许网络通讯量流到一个主机上,并在该主机发生故障时将通讯量移至其他主机。它主 要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性:为用 户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率; 避免了网络关键部位出现单点失效。 计算机网络集群的负载平衡技术使众多计算机通过网络协同起来完成同种工作, 使网络服务器具有了良好的可伸缩性,同时由于群集在一起的计算机的相互监听、相 互协作,服务系统的可用性能也大大提高了。 国外对服务器的负载平衡集群技术已经进行了多年的研究,也已经形成了一些好 的产品。其中有较大影响的有f 5n e t w o r k s 公司的b i g i p ,f o u n d r yn e t w o r k s 公司 的f o u n d r y ,a l t e o nn e t w o r k s 公司的w e b o ss o f t w a r es w i t c h 等。以上几种产品都是 市场较好的产品。 第二章相关技术基础 2 1 网络协议基础知识 第二章相关技术基础 2 1 1 网络协议的定义 通过通信信道和设备互连起来的多个不同地理位置的计算机系统,要使其能 协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、 怎样交流及何时交流,都必须遵循某种互相都能接受的规则。因此网络协议被定 义为为进行计算机网络中的数据交换而建立的规则、标准或约定的集合。协议总 是指某一层协议,准确地说,它是对同等实体之间的通信制定的有关通信规则约 定的集合。 网络协议的三个要素: 1 语义( s e m a n t i c s ) :确定通信双方“讲什么”,即由通信过程的说明构成, 要对发布请求、执行动作及返回应答予于解释,并确定用于协调与差错处理 的控制信息。 2 语法( s y n t a x ) :确定通信双方“如何讲”,即由逻辑说明构成,确定通信 采用的数据及控制信息的格式、编码及信号电平等。 3 定时( t i m i n g ) :确定事件的速度匹配和排序等。 2 1 2t c p lp 协议 2 1 2 1 什么是t c p i p 协议 t c p i p ( t r a n s p o r tc o n t r o lp r o t o c o l i n t e m e tp r o t o c 0 1 ) 起源于6 0 年代末美国政府 资助的一个分组交换网络研究项目,到现在已发展成为计算机之间最常应用的组 网形式。它是一个真正的开放系统,因为协议组件的定义及其多种实现可以不用 花钱或花很少的钱就可以公开地得到。它成为被称作“全球互联网”或“因特网” f i n t e m e t ) 的基础,该广域网( w a n ) 已包含超过1 0 0 万台遍布世界各地的计算机。 t c p i p 协议实际由许多协议组成,并以协议组的形式存在,其中主要的协议 有:传输控制协议( t c p ) 、用户数据报协议( u d p ) ,网间网际协议( i p ) 、网间 网控制报文协议( i c m p ) 和地址解析协议( a r p ) 等。 第= 章相关技术摹础 21 网络协议基础知识 第二章相关技术基础 21 1 网络协议的定义 通过通信信道和设备互连起来的多个不同地理位置的计算机系统,要使其能 协同工作实现信息交挟和资源共享,它们之问必须具有共同的语言。交流什么、 怎样交流及何时交流,都必须遵循某种瓦相都能接受的规则。因此网络协议被定 义为为进行计算机刚络中的数据交换而建立的规则、标准或约定的集合。协议总 是指某一层协议,准确地说,它足对同等实体之问的通信制定的有关通信规则约 定的集合。 网络协议的三个要素; 1 语义( s e m a n t i c s ) :确定通信双方“讲什么”,即由通信过程的说明构成, 要刘发布请求、执行动作及返回应答予于解释,并确定用于协调与差错处理 的控制信息。 2 语法( s y n t a x ) :确定通信烈方“如何讲”,即由逻辑说明构成,确定通信 采用的数据及控制信息的格式、编码及信号电平等。 3 定时( t i m i n g ) :确定事件的速度匹配和排序等。 21 2t c p l p 协议 21 21 什么是i c p i p 协议 t c p i p ( t r a n s p o r tc o m r o lp r o t o c o l i n t e m e tp r o t o c 0 1 ) 起源于6 0 年代末美国政府 资助的一个分组交换网络研究项目,到现在已发展成为计算机之间最常应用的组 网形式。它是一个真正的开放系统,因为哳议组件的定义及其多种实现可阻不用 花钱或花很少的钱就可以公开地得到。它成为被称作“全球互联网”或“因特网” f l m e m e t ) 的基础,该广域网( w a n ) 已包含超过1 0 0 万台遍布世界各地的计算机。 t c p i p 协议实际由许多协议组成,并吼阱议组的形式存在,其中主要的协议 璃:传输控制协议( t a p ) 、用户数据报协议( u d p ) ,网间网际协议( i p ) 、网问 网控制报文协议( i c m p ) 和地址解析协议( a r p ) 等。 网控制报文协议( i c m p ) 和地址解析协议( a r p ) 等。 电子科技大学硕士学位论文 以下简单介绍t c p i p 中的协议都具备什么样的功能,都是如何工作的: 1 网间网际协议l p 网际协议i p 是t c p i p 的心脏,也是网络层中最重要的协议。 i p 层接收由更低层( 网络接l z l 层例如以太网设备驱动程序) 发来的数据包, 并把该数据包发送到更高层一- t c p 或u d p 层;相反,i p 层也把从t c p 或u d p 层接收来的数据包传送到更低层。i p 数据包是不可靠的,因为i p 并没有做任何事 情来确认数据包是按顺序发送的或者没有被破坏。i p 数据包中含有发送它的主机 的地址( 源地址) 和接收它的主机的地址( 目的地址) 。 高层的t c p 和u d p 服务在接收数据包时,通常假设包中的源地址是有效的。 也可以这样说,i p 地址形成了许多服务的认证基础,这些服务相信数据包是从一 个有效的主机发送来的。l p 确认包含一个选项,叫作i ps o u r c er o u t i n g ,可以用 来指定一条源地址和目的地址之间的直接路径。对于一些t c p 和u d p 的服务来 说,使用了该选项的l p 包好象是从路径上的最后一个系统传递过来的,而不是来 自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系 统来进行平常是被禁止的连接。那么,许多依靠i p 源地址做确认的服务将产生问 题并且会被非法入侵。 2 传输控制协议t c p 如果i p 数据包中有已经封好的t c p 数据包,那么l p 将把它们向上传送到t c p 层。t c p 将包排序并进行错误检查,同时实现虚电路间的连接。t c p 数据包中包 括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。 t c p 将它的信息送到更高层的应用程序,例如t e l n e t 的服务程序和客户程序。 应用程序轮流将信息送回t c p 层,t c p 层便将它们向下传送到l p 层,设备驱动 程序和物理介质,最后到接收方。 面向连接的服务( 例如t e l n e t 、f t p 、r l o g i n 、xw i n d o w s 和s m t p ) 需要高 度的可靠性,所以它们使用了t c p 。d n s 在某些情况下使用t c p ( 发送和接收域 名数据库) ,但使用u d p 传送有关单个主机的信息。 3 用户数据报协议u d p u d p 与t c p 位于同一层,但对于数据包的顺序错误或重发。因此,u d p 不 被应用于那些使用虚电路的面向连接的服务,u d p 主要用于那些面向查询一应答 的服务,例如n f s 。相对于f t p 或t e l n e t ,这些服务需要交换的信息量较小。使 用u d p 的服务包括n t p ( 网落时间协议) 和d n s ( d n s 也使用t c p ) 。 欺骗u d p 包比欺骗t c p 包更容易,因为u d p 没有建立初始化连接( 也可以 4 第二章相关技术基础 称为握手) ( 因为在两个系统间没有虚电路) ,也就是说,与u d p 相关的服务面临 着更大的危险 4 网间网控制报文协议i c m p i c m p 与l p 位于同一层,它被用来传送i p 的的控制信息。它主要是用来提供 有关通向目的地址的路径信息。i c m p 的r e d i r e c t 信息通知主机通向其他系统的 更准确的路径,而u n r e a c h a b l e 信息则指出路径有问题。另外,如果路径不可用 了,i c m p 可以使t c p 连接体面地终止。p i n g 是最常用的基于l c m p 的服务。 5 地址解析协议a r p 地址解析协议a 1 2 j p 的目的是将i p 地址映射成物理地址。这在使信息通过网络 时特别重要。在一个消息( 或其他数据) 发送之前,被打包到i p 包里,或适合于 i n t e r n e t 传输的信息块。这包括两台计算机的i p 地址。在这个包离开发送计算机之 前,必须要找到目标的硬件地址。这就是a r p 最初用到的地方。 一个a r p 请求消息在网上广播。请求由一个进程接收,它回复物理地址。这 个回复消息由原先的那台发送广播消息计算机接收,从而传输过程就开始了。 6 t c p 和u d p 的端口结构 t c p 和u d p 服务通常有一个客户明臣务器的关系,例如,一个t e l n e t 服务进 程开始在系统上处于空闲状态,等待着连接。用户使用t e l n e t 客户程序与服务进 程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应, 客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。 两个系统间的多重t e l n e t 连接是如何相互确认并协调一致呢? t c p 或u d p 连接唯一地使用每个信息中的如下四项进行确认: 源l p 地址发送包的l p 地址。 目的i p 地琏接收包的i p 地址。 源端源系统上的连接的端口。 目的端口目的系统上的连接的端口。 端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端 口对应一个1 6 比特的数。服务进程通常使用一个固定的端口,例如,s m t p 使用 2 5 、x w i n d o w s 使用6 0 0 0 。这些端口号是广为人知的,因为在建立与特定的主机 或服务的连接时,需要这些地址和目的地址进行通讯。 21 2 2t o p i p 协议的层次结构 网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。t c p i p 电子科技大学硕士学位论文 通常被认为是一个四层协议系统,即网络接口层、网间网层、传输层和应用层四 层,如图2 1 所示。 0 r 三丽 厂i 1r i 而1 厂石i 1 :! ! ! !i i 胪 p 丽吲卜呵下石吲厂丽 应用层 传输层 网际层 网络接口 图2 1t c p i p 协议层次结构 1 、网络接口层( n e t w o r ki n t e r f a c el a y e r ) 有时也称作数据链路层或链路层, 通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。负责和网络 的直接通信。它必须理解正在使用的网络结构,诸如令牌环和以太网等,并且还 要提供允许网际层与之通信的接口。网际层负责和网络接口层之间的直接通信。 2 、网络层( i n t e m e t l a y e r ) 有时也称作互连网层。主要完成利用网际协议( i p ) 的路由和数据包传递。传输层上的所有协议均要使用i p 发送数据。网际协议定义 如下规则:如何寻址和定向数据包;如何处理数据包的分段和重新组装;如何提 供安全性信息;以及如何识别正在使用的服务类型等。 但是,由于i p 不是基于连接的协议,因此它不能保证在线路中传输的数据不 会丢失、破坏、重复或颠倒次序。这由网络模型中的高层,即传输层或应用层负 责。网络层中还有一些其他的协议:网间网控制报文协议( i c m p ) ,网间网组管 理协议( i g m p ) 以及地址解析协议( a r p ) 等。 3 、传输层( t r a n s p o r tl a y e r ) 主要为两台主机上的应用程序提供端到端的通 信。在t c p i p 协议组件中,有两个互不相同的传输协议:t c p ( 传输控制协议) 和u d p ( 用户数据报协议) 。 t c p 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交 给它的数据分威合适的小块交给下面的网络层,确认接收到的分组,设置发送最 后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应 用层可以忽略所有这些细节。 而另一方面,u d p 则为应用层提供一种非常简单的服务。它只是把称作数据 报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任 何必需的可靠性必须由应用层来提供。 4 、应用层( a p p l i c a t i o n l a y e r ) 作为应用程序和网络组件之问的接口而存在, 第二章相关技术基础 其中存在大量的协议,包括超文本传输协议( h y p e r t e x tt r a l l s f e rp r o t o c 0 1 h t t p ) 文件传输协议( f i l et r a n s f e rp r o t o c o l ,f t p ) ,简单网络管理协议( s i m p l en e n v o r k m a l l a g e m e n tp r o t o c o l ,s n m p ) 等等许多不同的协议。 l以太网头结构数据区校验区 i i p 数据包 l p 头结构数据区 t c p ,u d p 数据区 t c p i p 数据区 头结构 图2 - 2 t c p i p 协议族数据包的总体结构 图2 2 给出了在i n t e m e t 上传递的包的大致结构。t c p 利用i p 数据包传输它 自己的数据包,这时,i p 数据包中的数据是t c p 数据包本身。u d p 也利用i p 数 据包进行数据的传输,在这种情况下,接受方的i p 层必须能够知道接受到的i p 数 据包要送给传输层中的哪个协议。为此,每个i p 数据包头中包含一个字节,专门 用作协议标识符。接受方的i p 层利用这一标识符决定将数据包发送给传输层的哪 一个协议处理。和上面的情况类似,同一台主机上利用同一协议进行通信的应用 程序可能有许多,因此,也需要一种机制来标识应由哪一个应用程序处理同一种 数据包。为此,应用程序利用t c p i p 协议进行通信时,不仅要指定目标i p 地址, 还要指定应用程序的“端口”地址。端口可唯一标识应用程序,标准的网络应用 程序使用标准的端口地址,例如w e b 服务器的端口标准为8 0 。在网络接口中,i p 地址和端口地址合称为“套接字”。 i p 协议层可利用许多不同的物理介质传输i p 数据包,图中可以看到i p 数据包 进一步包装在以太网数据帧中传输。除以太网外,i p 数据包还可以在令牌环网等 其他物理介质上传输。以太网数据帧头中包含了数据帧的目标以太网地址,以太 网地址实际就是以太网卡的硬件地址或物理地址,一般由6 位整数组成,如 o o e 0 2 9 4 d e s 一6 9 。以太网卡的物理地址是唯一的,一些特殊的物理地址保留用 于广播等目的。以太网数据帧和i p 数据包一样,可以传输不同的协议数据,因此, 电子科技大学硕士学位论文 数据帧中也包含一个标识协议的整数。 由于在以太网中,数据在物理线路上真正的传输是通过物理地址或硬件地址 实现的,而i p 地址实际只是一种概念性的逻辑地址,因此,在类似以太网这样的 网络中,必须采用地址解析协议( a r p ) 将i p 地址翻译为实际的硬件地址。a r p 负责为i p 所请求的任意一个本地i p 地址找出其本地物理地址。a r p 使用本地广 播来寻找主机的物理地址,并在内存的高速缓冲区中维护最近所映射的物理地址。 如果目标i p 地址是本地地址,a r p 可发送一个本地广播请求获取目标i p 主机的 物理地址,并将物理地址返回给i p 。如果i p 发现目标i p 地址处于远程子网中,则 数据包必须发送到路由器,这是a r p 可替i p 找到路由器的物理地址。 图2 3 描述了l i n u x 的网络软件结构,和t c p i p 协议的结构类似,l i n u x 以 分层的软件结构实施t c p i p 协议组。并且采用了面向对象的方式来设计它的网络 部分。 网络应用程序 图2 - 3 网络软件结构 b s d 套接字由一般性的套接字管理软件n e t 套接字层支持。n e t 套接字管 理着基于i p 的t c p 或u d p 协议端。如前所述,t c p 是基于连接的协议,而u d p 是非基于连接的协议。在传输u d p 数据包时,操作系统不需要关心数据包是否安 第二章相关技术基础 全到达目的端。但对t c p 数据包来说,操作系统需要对数据包进行编号,数据包 的源端和目的端需要协调工作,以便保证数据包不会丢失,或以错误的顺序发送。 i p 层包含的代码实施了i n t e m e t 协议,i p 层需处理数据包的报文头信息,并且必须 将传入的数据包发送到t c p 或u d p 两者中正确的一层处理。在i p 层之下是操作 系统的网络设备层,其中包括以太网设备或p p p 设备等。和操作系统系统中的其 他设备不同,网络设备并不总代表实际的物理设备,例如,回环设备就是一个纯软 件设备。a r p 协议提供地址解析功能,因此它处于i p 层和网络设备层之间。 2 2 网络负载平衡集群技术介绍 2 2 1 集群技术 22 1 1 集群的定义 集群技术是一种计算机系统之间连接的方式,运用它可以将分散的计算系统 连接起来完成原来单独节点的计算系统无法完成的任务,最早的集群系统就是出 于这样的并行处理的目的出现的。但是随着计算机性能的发展和网络不安全因素 的出现,系统的稳定性和可靠性是人们主要面临解决的问题。人们开始使用集群 方式将两台以上的设备连接起来,当整个集群系统中发生单点或者局部多点故障 时,集群中其他的计算机将自动来接替出故障设备。所以,集群有如下的定义: 广义上说,相互独立的一些系统构成了一个组就是集群。一个客户与集群相 互作用时,集群的行为像是一个独立的系统一样。 从狭义上讲,集群是一些相互独立的计算机,这些计算机作为一个整体对外 提供服务。对于客户来说,这些计算机的行为就好像一个计算机一样。 2 2 12 集群类型 最常见的三种集群类型包括高性能科学集群,负载均衡集群和高可用性集群 l 、科学群集 科学集群是并行计算的基础。通常,科学群集涉及为群集开发的并行应用程 序,以解决复杂的科学问题。科学集群对外就好像一个超级计算机,这种超级计 算机内部由午至上万个独立处理器组成。但它却使用商业系统,并且在公共消息 传递层上进行通信以运行并行应用程序。 目前市场上有一种便宜的l i n u x 超级计算机问世了。这种超级计算机实际上是 电子科技大学硕士学位论文 一个计算机群集,其处理能力与真的超级计算机相仿,但是硬件以及运行维护费 用要比真正的超级计算机低很多,具有极高的性价比。 并行群集系统之所以可以达到如此高的带宽和低延迟,是因为它们通常绕过 使用网络协议,如t c w i p 。虽然网际协议对于广域网很重要,但它包含了太多的 开销,而这些开销在节点相互已知的封闭网络群集中是不必要的。节点之间可以 使用直接内存访问( d m a ) 来进行通讯,它类似于图形卡和其它外围设备在一台机 器中的工作方式。因此横跨群集,可以通过任何节点上的任何处理器直接访问分 布式共享内存。 同样也可以使用低开销的消息传递系统,在节点之间进行通信。消息传递接 口( m p i ) 是并行群集系统间消息传递层的最常见实现。m p i 存在几种衍生版本, 但在所有情况下,它为开发者访问并行应用程序提供了一个公共a p i ,这样开发 者就不必手工解决如何在群集的节点之间分发代码段。 2 、负载均衡群集 负载均衡群集为企业需求提供了更实用的系统。如名称所暗示的,负载均衡 群集使负载可以在计算机群集中尽可能平均地分摊处理。负载通常包括应用程序 处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序的大量用 户提供服务。每个节点都可以承担一定的处理负载,并且可以实现处理负载在节 点之间的动态分配,以实现负载均衡。对于网络流量负载,当网络服务程序接受 了太多入网流量,以致无法迅速处理,这时,网络流量就会发送给在其它节点上 运行的弼络服务程序。同时,还可以根据每个节点上不同的可用资源或网络的特 殊环境来进行优化。 与科学计算集群一样,负载均衡群集也在多节点之间分发计算处理负载。他 们之间的最大区别在于缺少跨节点运行的单并行程序。大多数情况下,负载均衡 群集中的每个节点都是运行单独软件的独立系统。但是,不管是在节点之间进行 直接通信,还是通过中央负载均衡服务器来控制每个节点的负载,在节点之间都 有一种公共关系。通常,使用特定的算法来分发该负载。 网络流量负载均衡是一个过程,它检查到某个群集的入网流量,然后将流量 分发到各个节点以进行适当处理。它最适合大型网络应用程序,如w e b 或f t p 服务器。负载均衡网络应用服务要求群集软件检查每个节点的当前负载,并确定 哪些节点可以接受新的作业。这最适合运行如数据分析等串行和批处理作业。那 些系统还可以配置成关注某特定节点的硬件或操作系统功能,这样,群集中的节点 就没有必要是一致的。 第二章相关技术基础 3 、高可用性群集 可用性( a v a i l a b i l i t y ) 当集群中的一个系统发生故障时,集群软件迅速做出反 映,将该系统的任务分配到集群中其它正在工作的系统上执行。 考虑到计算机硬件和软件的易错性,高可用性群集的目的主要是为了使群集 的整体服务尽可能可用。如果高可用性群集中的主节点发生了故障,那么这段时 间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时, 它可以完全接管其身份,并且因此使系统环境对于用户是一致的。 高可用性( h a ) 群集致力于使服务器系统的运行速度和响应速度尽可能快。它 们经常利用在多台机器上运行的冗余节点和服务,用来相互跟踪。如果某个节点 失败,它的替补将在几秒钟或更短时间内接管它的职责。因此,对于用户而言, 群集永远不会停机。 某些h a 群集也可以维护节点问冗余应用程序。因此,用户的应用程序将继 续运行,即使他或她使用的节点出了故障。正在运行的应用程序会在几秒之内迁 移到另一个节点,而所有用户只会察觉到响应稍微慢了一点。但是,这种应用程 序级冗余要求将软件设计成具有群集意识的,并且知道节点失败时应该做什么。 h a 群集也可以执行负载均衡,但通常主服务器运行作业,而系统使辅助服务 器保持闲置。辅助服务器通常是主服务器操作系统设置的镜像,尽管硬件本身稍 有不同。辅助节点对主服务器进行活动监控或心跳观察,以查看它是否仍在运行。 如果心跳计时器没有接收到主服务器的响应,则辅助节点将接管网络和系统身份。 在群集的这三种基本类型之间,经常会发生混合与交杂。可以发现高可用性 群集也可以在其节点之间均衡用户负载。同样,也可以从要编写应用程序的群集 中找到一个并行群集,它可以在节点之间执行负载均衡。从这个意义上讲,这种 集群类别的划分是一个相对的概念,不是绝对的。 2 2 1 3 采用集群的目的 采用集群技术的目的可以概括为以下几个方面: 1 、提高性能。一些计算密集型应用,如:天气预报,核试验模拟等,需要计 算机要有很强的运算处理能力,现有的技术,即使普通的大型机其计算也很难胜 任,这时,一般都使用计算机集群技术,集中几十台甚至上百台计算机的运算能 力来满足要求。提高处理性能一直是集群技术研究的一个重要目标之一。 2 、降低成本。通常一套象样的群集配置,其软硬件开销要超过$ 1 0 0 ,0 0 0 。但 电子科技大学硕士学位论文 但与价值上百万美元的专用超级计算机相比己经相当便宜。在达到同样性能的条 件下,采用计算机集群比采用同等运算能力的大型计算机具有更高的性价比。 3 、提高规模扩展性( s c a l a b i t r y ) 。目前,计划扩展系统能力的用户必须 购买昂贵的最新的服务器,才能获得额外所需的c p u ,驱动器和内存。如果该服 务系统采用集群技术,则只需要将新的服务器加入集群中即可,对于客户来看, 服务无论从连续性还是性能上都几乎没有变化,好像系统在不知不觉中完成了升 级。 4 、增强可靠性。据统计每年由于系统停运,全美国损失4 0 亿美元。在零售 业,平均每次停运损失1 4 0 0 0 0 美元,保安业每次停运平均损失4 5 0 0 0 0 美元,集 群技术使系统在故障发生时仍可以继续工作,将系统停运时间减到最小。集群系 统在提高了系统的可靠性的同时,也大大减小了故障损失。 2 21 4 集群技术的特点 集群技术最大的特点之一是能够实现负载均衡。以w e b 服务器为例,在一个 集群结构的服务器组中,必然有一台服务器充当管理者( c l u s t e rm a n a g e r ) 的角色, 它最先收到用户发来的h t t p 、f t p 或其他类型的w e b 请求,然后判断集群中哪 台服务器的负载最轻,就把这个请求发送过去。在用户访问率较低时,这种负载 平衡表现的不会很明显,而一旦用户的请求量增大后,那么这种优势就会显现出 来。 集群的另一个优点是容错性好,如果集群管理服务器发现集群中有一个节点 出现故障,那么它会将连在该节点上的连接重定向到其他节点机上。在重定向的 过程中,有时会出现些连接丢失的现象,因此重定向过程的时间长短以及用户 连接丢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论