webserver集群技术


收稿日期 :2003-03-19。 第 28 卷 第 4 期 2003 年 8 月 武 汉 大 学 学 报 · 信 息 科 学 版 Geomatics and Information Science of Wuhan University Vol .28 No .4 Aug.2003 文章编号:1671-8860(2003)04-0499-04 文献标识码:A Web Server 集群技术 姚世勇1  徐爱萍1 (1 武汉大学计算机学院 , 武汉市珞喻路 129 号 , 430079) 摘 要:以 LVS 为例构建了一个集群系统, 对部分 LVS 核心程序进行了修改, 并加入了一种新的分配算法, 在 试验中取得了较好的效果。 关键词:集群;负载平衡;LVS 中图法分类号:TP393 ;TP315 1  概  述 集群技术也称群集技术和机群技术, 是近几 年兴起的一项高性能计算技术 。它是将一组相互 独立的计算机通过高速的通信网络组成单一的计 算机系统 ,并以单一系统的模式加以管理 。一个 服务器集群包含多台拥有共享数据存储空间的服 务器, 各服务器之间通过内部局域网或国际互联 网进行相互通信 ;当其中一台服务器发生故障时, 它所运行的应用程序将由其他服务器自动接管。 在大多数情况下, 集群中所有的计算机都拥有一 个共同的名称, 集群系统内任意一台服务器都可 被所有的网络用户所使用 。 在集群系统中运行的服务器并不一定是高档 产品,但服务器的集群却可以提供相当高性能的不 停机服务,每一台服务器都可承担部分计算任务, 并且群集了多台服务器的性能,因此, 整体系统的 计算能力将有所提高。同时,每台服务器还能承担 一定的容错任务, 当其中某台服务器出现故障时, 系统可以在专用软件的支持下将这台服务器与系 统隔离,并通过各服务器之间的负载转移机制实现 新的负载平衡,同时向系统管理员发出报警信号。 集群系统通过功能整合和故障过渡技术实现系统 的高可用性和高可靠性,集群技术还能够提供相对 低廉的、强大灵活的系统扩充能力。 2  Web Server 集群系统的结构 网络服务器集群系统整个就像一台服务器, 各服务器间协同工作 , 看上去就像一个虚拟服务 器。而为了让它们更好地协同工作, 充分发挥集 群中每台服务器的功用, Web Server 集群系统可 由几台高档微机和一个分配器组成 。图 1 为一种 常用的集群结构图。 图 1 集群结构图 Fig .1 Structure of Web Server Cluster 为了实现 Web Server 集群 , 主要需要解决以 下问题:①如何实现请求分配;②如何平衡集群 中各 Server 的负载 , 使系统的效率较高;③ 如何 处理故障 ,使系统具有容错能力。 3  集群系统的实现 3 .1  请求分配 请求分配是由一台或多台被称为请求分配器 的运行 Linux 的PC 来完成的 ,整个 Cluster 有一个 统一的对外 IP 地址(称为虚拟 IP 地址), 所有访 问Cluster 的 Http 请求或其他请求都发向该 IP 地 DOI :10.13203/j .whugis2003.04.031 址,请求分配器集中接收这些请求后依据一定的分 配算法把它们分配到各台Web Server 上,处理结果 由各Web Server 直接传回用户。 为了提高请求分配器的效率和吞吐能力,请求 分配器可采用多线程和多路阻塞式 I/O 两种技术。 系统的连接监听进程每接收一个来自 C1ient 的TCP 连接 , 立即在内存生成一个 Worker 线程。 此后的工作包括建立与 Server 的 TCP 连接、接收 和发送数据 、数据变换和拆除连接等 , 均由该 Worker 线程完成 ,应答结束后, 系统立即从内存中 删除该Worker 线程 。 多路阻塞式 I O 是通过调用Select 系统原语实 现的。每个 Worker 线程用这种方法同时监视与 Client 和 Server 的两个 TCP 连接, 接收数据时,如 没有数据到达, Select 使线程处于一种开销极小的 休眠状态;一旦有数据到达 ,则立即退出休眠状态, 启动 Receive 过程接收数据。发送数据的过程与接 收数据的过程类似。采用了这两种技术,系统的吞 吐能力可提高近10 倍,平均应答时间缩短近 2/3 。 3 .2  负载均衡技术 一台服务器的处理能力是每秒几万个请求, 但若能将 10 台这样的服务器组成一个系统, 并将 所有请求平均分配到所有的服务器, 那么这个系 统就会拥有每秒处理几十万到几百万个请求的能 力,这就是负载均衡的基本思想, 即实现 Web Server 集群的关键技术 。 LVS(linux virtual server)是在 Linux 内核中实 现的基于 IP 层的负载均衡调度方法, 它实现了 VS NAT 、VS TUN 和 VS DR 三种 IP 负载均衡技 术。图 2 为基于 VS DR 的配置实例 ,VIP 为虚拟 IP 地址(即集群服务器对外的统一的 IP 地址); HIP 为主从分配器, 用于心跳检测的网络地址; DIP 为主从分配器的真实 IP 地址(它与分配器的 VIP 处在同一网卡上);RIP 为后端 Web 服务器的 真实网络地址 。 图 2 配置实例 Fig.2 An Example of Composition   分配器根据各Web 服务器的负载情况,根据一 定的调度算法,动态地选择一台Web 服务器,不修改 也不封装 IP 报文,而是将数据帧的MAC 地址改为选 出的Web 服务器的 MAC 地址并发出,并由该 Web 服务器根据 IP 报文的目的地址返回客户。 LVS 主要有轮转调度、加权轮转调度、最小连 接数调度 、加权最小连接数调度等几种调度算法, 且几乎都是以各 Web 服务器的当前 TCP 连接数 作为粒度的,但在实际中 ,这并不能使各服务器发 挥最大的功效 。为此 , 服务器的调度算法必须将 各Web 服务器的 CPU 频率 、CPU 个数、CPU 的使 用率、内存大小、网络流量等考虑在内。另外, 当 各Web 服务器的配置大体相同时 ,各服务器被选 择的概率几乎相等。当多个服务器请求同时到来 时,容易使各个服务器调度频繁, 使系统产生 Ping-Pong 效应。因此 ,有必要给各服务器一个多 级的最大负载饱和值 ,在饱和值内 ,下次的客户请 求任由该服务器来处理。 设Web 服务器簇中有 N 个服务器和S 种反 映服务器的参数 , R 、T 为 n ×s 矩阵(n 为后端 Web 服务器的个数, s 为负载均衡用到的参数, n 、 s ≥1), tij 为第 i 个节点的服务器的第 j 种参数的 剩余量,设 j =c(0 ≤c ≤s)为 CPU 的剩余量;rij 为 第i 个节点的第j 种参数被选中的概率 ,j =c(0 ≤ c ≤s)为当前的CPU 被选中率;Web 服务器分为 k 个级别 , D 为 n ×k 矩阵 ,Dij (1 ≤j ≤k)为第 i 个 500 武 汉 大 学 学 报· 信 息 科 学 版 2003 年 节点的服务器配置参数的第j 级别的最大负载饱 和值 。P 为N 维向量 , Pi 为服务器节点 i 的联合 概率 。 1)各 Web 服务器先 创建一 Daemon 进程 send_info , 该进程从本机的文件( proc stat , proc meminfo , proc net sockstat , proc net tcp)中读出各 服务器 的配 置情况 , 写入数 据结 构, 同 时该 Daemon 进程将此数据结构以一定的时间间隔发 往分配器 。数据结构如下 :   struct SeverInfo{ char ip[ 16] ;    Web 服务器的 RIP char name[ 22] ; Web 服务器名; char cputype[ 32] ; CPU 类型 int cpurate; CPU 频率 int use; 用户使用 CPU 资源数 int sys; 系统使用 CPU 资源数 int idle; CPU 资源空闲数 int phmem; 物理内存容量 int usemem ; 已使用内存量 int disk 硬盘容量 int usedisk 已使用硬盘量 int tcp ; tcp 连接数 int udp ; udp 连接数 int allrunoff 当前网络总流量即数据包 数(由分配器从交换机上 得到) int runoff 发往本服务器的数据包数 (由分配器从交换机上得 到) int http; 对外提供Http 服务 int ftp; 对外提供Ftp 服务 int smtp; 对外提供Smtp 服务 ...... } 2)在分配器上再创建一 Daemon 进程 disp_ bag , 接受从各 Web 服务器发来的数据 SeverInfo。 根据数据 ServerInfo 计算矩阵 T , 求出每个节点每 种参数的当前剩余量。根据 T 计算 R ,求出每个 节点的每种参数被选中的概率 : ric = tic ∑ n i =1 tic 当 j ≠c 时, rij = tij ∑ n i =1 tij ×r ic 。   3)计算矩阵 R 中各个节点 i 的各种参数的 联合概率Pi : Pi = ∑ s j =1 rij ∑ s j =1 ∑ n i =1 rij ×ric 若 Pi ≤Dij , 则由当前服务器继续提供客户服务; 若 Pi > Dij , 则由概率最大的服务器节点对外提 供服务。 3)为了保证系统在出现故障时能正常运行, 必须构造容错系统 。在分布式系统中, 容错主要 包括故障诊断和故障替换两部分。故障诊断是指 系统中能够正常工作的部分通过—定的方法测试 其他部分能否正常工作 ;故障替换则是指诊断出 系统中一些部分已不能正常工作后, 将原本应由 这些部分完成的工作转移到其他正常的部分, 其 设计思想如下 。 用心跳检测(heartbeat)来诊断故障 ,心跳检测 是指集群系统中, 监控节点定时地(如每间隔 5s) 向被监控节点发出检测信息包、被监控节点中的 心跳守护程序返回“我活着”的应答信息和有关的 状态信息 ,如被监控节点不能及时响应 ,就认为被 监控节点故障 。 故障替换采用主从两台或多台服务器, 在有 故障时 ,自动切换到后备服务器, 这种切换在 IP 地址切换技术的支持下对用户是透明的 ,实际上 就是传统容错计算机技术中的双机备份 。 主服务器与后备服务器都可以处于活动状态 (active)和非活动状态(inactive)两种状态之一。 当主服务器与后备服务器皆处于无故障正常状态 时, 主服务器为活动状态 , 执行系统的主应用程 序,也就是向客户机提供 IP 服务请求 。而非活动 状态服务器执行监督活动服务器的任务 ,也可以 同时执行一些其他非主导任务, 如从网络上检测 网络流量等。一旦非活动服务器检测到活动服务 器故障,就进行故障切换 ,原来非活动服务器成为 活动节点 ,启动主应用程序,启用虚拟 IP 地址 ,开 始响应客户机的 IP 服务请求 , 而原来活动服务器 则停止应用程序的执行和虚拟 IP 地址的使用。 当集群中一台服务器发生故障而由另一台节 点机来接替其服务时, 如果对外提供服务的 IP 地 址也要改变成新的地址,对使用来说是难以接受 的,为了保持集群内服务器的切换对公共网络用户 是透明的,必须保持提供服务的 IP 地址不改变, 这 个地址称为公共虚拟 IP(VIP)地址;提供服务的节 点切换时,该 VIP 随之移到新的服务节点,这种技 术称为 IP 地址切换(IPAT)。这是实现服务节点切 换的主要手段, 改变节点的 IP 地址只要修改其网 络配置文件就可以实现 。由于原来与该 IP 地址相 联接口的MAC 地址一般不修改,因此,随后要向网 络发布ARP 广播,让网络上各客户机、服务器修改 与该 IP 地址对应的MAC 地址。 501 第 4 期 姚世勇等:Web Server 集群技术 参 考 文 献 1  Zhang W S, Jin Y, Wu Q Y.LinuxDirector:A Connection Director for Scalable Internet Services.Journal of Computer Science and Technology, 2000 , 15(6) 2  徐志伟, 黄 凯.可扩展并行计算———技术、结构与编 程.北京:机械工业出版社, 2000 3  Yang C S , Luo M Y.Building an Adaptable, Fault Tolerant, and Highly Manageable Web Server on Clusters of Non- dedicated Workstations.IEEE, 2000 第一作者简介 :姚世勇 , 硕 士 。 研究方 向为计算 机网络 与分布 式 数据库 。 E-mail:xap_1000@263.net Technique of Web Server Cluster YAO Shiyong1  XU Aiping1 (1 School of Computer , Wuhan University , 129 Luoyu Road, Wuhan, China, 430079) Abstract :The background and content of the research on web server cluster system are introduced .The structure and all kind of key techniques to implement web server cluster system are described .The idea of most grading saturation and the algorithm of load balancing are presented .The way to constitute high efficiency scalability and availability web server cluster system is explained . Key words:cluster ;load balancing ;linux virtual server Author the first author :YAO Shiyong, master .His research orientation is computer net and distributed database. E-mail:xap_1000@263.net (责任编辑 : 洪伟) (上接第 483 页) terrain models ,uses a hidden quadtree and resolution choosing formula to set up data models , realizes a real-time interactive multi-resolution terrain model depending on eyes .Finally , the experiments are done and some useful results are given . Key words:multiresolution model ;spatial continuity ;temporal continuity ;quadtree About the first author:PENG Yipu, lecturer , post-doctoral fellow .He is engaged in the research on GIS. E-mail:pengdp@csru.edu.cn (责任编辑 : 袁丰) 502 武 汉 大 学 学 报· 信 息 科 学 版 2003 年
还剩3页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

勇敢勒小虎

贡献于2017-01-10

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf