基于linux集群的web 服务的研究和构建

  • 格式:pdf
  • 大小:323.91 KB
  • 文档页数:4

!$%$&$%
直接路由: (,-./01 )2-32- 3,0 ;,-2<. =>/.,56 ( () 7 ;=)
将请求发送到真 () 7 ;= 通过改写请求报文的 ?:@ 地址, 实服务器, 而真实服务器将响应直接返回给客 户 。 同 () 7 489 技术一样, () 7 ;= 技术可极大地提高集群系统的伸缩性。这种 方法没有 *+ 隧道的开销,对集群中的真实服务器也没有必须 支持 *+ 隧道协议的要求,但是要求调度器与真实服务器都有 一块网卡连在同一物理网段上。
’,5/G (,-./01 )2-32- 的自由软件项目,发现基于 ’,5/G 虚拟服 务器 ( ’() )的集群体系结构能提 供 一 个 比 较 好 的 解 决 方 案 。
集 群 通 过 在 ’,5/G 内 核 中 采 用 基 于 *+ ’,5/G 虚 拟 服 务 器 ( ’() ) 层的内容请求分发的负载平衡调度解决方法, 将一组服务器构 成一个实现可伸缩的、 高可用、 高性能的网络服务虚拟服务器。 在 ’,5/G 虚拟服务器的集群构架体系的基础上, 通过增强系统 可管理性, 解决 D2C 服务程序文件数据一致性等问题, 充分挖 掘已有机器设备的潜力, 在给定的预算下获得符合应用要求的 高性能、 高可用性、 实用低成本 D2C 服务。 计算机工程与应用
实际 项 目 是 成 人 高 考 网 上 报 名 系 统 , 采 用 流 行 的 H 7 ) 构
图&
’() 集群通用的体系结构
架和 I)+ 技术。客户对系统提出的要求可归结为如下 # 点: ( 高性能要求: 由于系统需要在短期内处理大量学生的 &) 网上登陆报名工作, 如何及时处理用户的请求, 这对 D2C 服务 系统的性能是一个严峻的考验。 ( 高可靠性要求: 在系统开放期间, 要求系统能提供每天 !) 每星期 J 天的不间断服务, 这对 D2C 服务系统的可靠 !# 小时、 性也提出了很高的要求。 ( 价格合理性要求: 整个系统的构建是经济的, 低成本 %) 的, 能尽量利用现有硬件设备。 ( 较大可伸缩性要求: 考虑到在未来的几年里, 会有更多 #) 学生采用网上报名的方式, 系统的访问量可增长数十倍, 因此 整个系统应易于扩展, 以便满足未来的需求。
!$%
37/ 主要技术
即网络地址转换、 37/ 采用三种 ’0 负载均衡技术, ’0 隧道
!$%$& 37/ ’0 负载均衡技术
! 34(56 虚拟服务器集群技术研究 !$& 什么是 34(56 虚拟服务器( 37/)
37/ 实 际 上 是 一 种 34(56 操 作 系 统 上 基 于 ’0 层 的 负 载 均 衡 调 度 技 术 , 它 在 操 作 系 统 核 心 层 上 , 将 来 自 ’0 层 的 890 : ;<0 请求均衡地转 移 到 不 同 的 服 务 器 , 从 而 将 一 组 服 务 器 构
( <*Q)$AR 9AJQ5)*+ B(G ’(RA+JB)4A( 8*KL(A>A=@ , S5GB( ;(4C$, /LB(=LB4 !""#%%)
<(*=,+-=: 1 K>5H)*+ 4H B H*) AR 4()*+KA((*K)*G KAJQ5)*+H H*+C4(= B HQ*K4R4K (**G$9>5H)*+4(= KB( BGG+*HH )L+** 4HH5*H: L4=L Q*+RA+JB(K* , L4=L BCB4>B-4>4)@ B(G HKB>B-4>4)@$1R)*+ H)5G@4(= )L* K>5H)*+4(= )*KL(A>A=@ B(G B(B>@T4(= )L* K5H)AJ*+UH +*V54+*J*() AR KA(H)+5K)4A( AR L4=L Q*+RA+JB(K*, L4=L BCB4>B-4>4)@ B(G BQQ>4*G ,*- /*+C*+, E* 4()+AG5K* B 34(56I-BH*G K>5H)*+ J*)LAG$’( BGG4)4A(, E* GA B =+*B) G*B> )A *(LB(K* )L* JB(B=*B-4>4)@ B(G BCB4>B-4>4)@ AR )L* H@H)*J, HA )LB) E* KB( GA -*))*+ 4( )L* BHQ*K) AR J**)4(= )L* BQQ>4KB->* +*V54+*J*()$
!$%$!
’() 调度算法
负载均衡调度关心的是如何将请求流调度到各台服务器,
使得各台服务器尽可能地保持负载均衡。 负载调度算法设计的 好坏直接决定了集群在负载均衡上的表现,设计不好的算法, 会导致集群的负载失衡。 一个好的负载均衡算法也并不是万能 的, 它一般只在某些特定的应用环境下才能发挥最大效用。因 此在考察负载均衡算法的同时,也要注意算法本身的适用面, 并在采取集群部署的时候根据集群自身的特点进行综合考虑, 把不同的算法和技术结合起来使用。 ’() 已实现了 A 种基本调 度算法: 轮叫调度、 加权轮叫、 最少链接、 加权最少链接、 基于局 部性的最少链接、 带复制的基于局部性最少链接、 目标地址散 列、 源地址散列等。文章重点介绍一下前 # 种基本原理。
34(56 虚拟服务器
负载均衡
高可靠性
可伸缩性 中图分类号 80%P%
文章编号 &""!IN%%&I( !""# ) %#I"&ONI"#
文献标识码 1
)’*’+,-. +#/ 0’*"1# 23 !"#$%4(+*’/ &’( 5’,6’,
7.’#1 82#1 9"+# !’:"$ 82#1 ;$+#
, >’?@2,/*: K>5H)*+, 34(56 74+)5B> /*+C*+( 37/ ) >ABG -B>B(K* , L4=L BCB4>B-4>4)@ , HKB>B-4>4)@
&
引言
当今计算机技术已进入以网络为中心的时代, ’()*+(*) 用
真实服务器和调度器。由真正运 37/ 一般由两部分组成: 行网络服务的机器充当真实服务器的角色, 提供网络服务的真 实服务器的结点数目是可变的。 当整个系统收到的负载超过目 前所有结点的处理能力时, 可以再增加真实服务器来满足不断 增长的请求负载。对大多数网络服务来说, 不同请求之间不存 在很强的相关性, 请求可以在不同的结点上并行执行, 所以整 个系统的性能基本上可以随着真实服务器的数目的增加而线 性增长。 调度器是服务器集群系统的唯一入口点( /4(=>* ?()+@ , 它采用 ’0 负载均衡技术。 当客户请求到达时, 调度器会 0A4()) 根据真实服务器负载情况和设定的调度算法从真实服务器中 选出一个服务器, 再将该请求转发到选出的服务器, 并记录这 个调度; 当这个请求的其他报文到达, 该报文也会被转发到前 面选出的服务器。因为所有的操作都是在 34(56 操作系统核心 空间中完成的, 它的调度开销很小, 所以它具有很高的吞吐率。 整个服务器集群的结构对客户是透明的, 客户所能看到的是单 一的虚拟的服务器。图 & 显示的是 37/ 集群通用的体系结构。
成一个高性能、 高可用的虚拟服务器。
和直接路由。 它们的大致原理分别如下:
!$%$&$&
网络地址转换: 74+)5B> /*+C*+ C4B D*)EA+F 1GG+*HH
8+B(H>B)4A( ( 7/ : D18)
通过网络地址转换,调度器重写请求报文的目标地址, 根 据预设的调度算法, 将请求分派给后端的真实服务器; 真实服
%$!
解决方案
在对当前的服务器集群技术做出研究并仔细分析了用户
需求后,发现如果将当前的服务器集群技术应用于该项目中, 则可很好地满足用户提出的需求。 在该文项目中引入服务器集 群技术将会产生下列优点: ( 具有很高的性能: 网络服务的工作负载通常是大量相 &) 互独立的任务, 若采用集群技术, 通过一组服务器分而治之, 可 以获得很高的整体性能。 ( 具有高的性能 7 价格比: 集 群 就 是 将 普 通 +@ 机 、 服务 !) 器通过网络设备连接起来, 来提供统一的服务, 与性能相当的 单一服务器相比价格通常会便宜很多。 ( 具有好的可伸缩性: 集群具有很好的可伸缩性, 只需少 %) 量的工作就可方便地向集群增加或删除工作节点。 当现有集群 不能满足应用的要求时, 可向集群增加新的服务器来扩充集群 的处理能力。若系统采用了集群技术, 则该系统中的结点数目 可以增长到几千个, 乃至上万个, 其伸缩性远远超过单台超级 计算机。 ( 具有高可用性: 系统采用了集群技术, 在硬件和软件上 #) 都有冗余, 通过检测软硬件的故障, 将故障屏蔽, 由存活结点提 供服务, 这样可实现高可用性。 当前集群技术数不胜数, 文章对多种方案进行了调查和比 较。综合考虑成本,简单性,笔者研究了章文嵩博士成立的
!$%$!$&
轮叫调度( =>/5B =>C,5 )
调度器通过“ 轮叫” 调度算法将外部请求按顺序轮流分配 到集群中的真实服务器上, 它均等地对待每一台服务器, 而不 管服务器上实际的连接数和系统负载。
!$%$!$!