吴昌龙1, 2 王晶1, 2 沈奇威1, 2
(1. 北京邮电大学网络与交换技术国家重点实验室,100876,
2. 东信北邮信息技术有限公司,100191)
摘要
随着互联网的飞速发展,WEB站点的迅猛增长,市场对于WEB服务器集群的需求日益增长。企业通过采用WEB服务器集群可以以较低的成本投入,获得较高的性能、可靠性和可拓展性。但随着WEB服务器集群的发展,如何对各个子节点进行管理(包括新增、部署、移除)、监控(性能监控、故障报警)变得尤为重要。WEB服务器集群的管理平台可以有效解决上述问题,并进一步提高集群资源的利用率和可用性。本文分析了基于网络7层的WEB服务器集群的对管理平台的需求,提出满足这一需求的一种WEB服务器集群管理平台的设计方案。该设计方案包含WEB服务器软件套件和WEB服务器集群管理平台,可以实现对WEB服务器及WEB应用的自动化部署和生命周期管理,对集群节点的配置和日志进行集中管理。本文针对每一个部分,论述了功能要点以及设计思路。
关键词:WEB服务器集群 服务器集群 集群管理
A Design Scheme of Web Server Cluster Management Platform
Wu Changlong1, 2 Wang Jing1, 2 Shen Qiwei1, 2
(1.State Key Lab of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2. EBUPT Information Technology Co. Ltd, Beijing 100191, China)
【Abstract】With the rapid growth of Internet and websites, there will be large and mutative demand for web server cluster. With the help of web server cluster, enterprises can spend less money to achieve higher performance, reliability and scalability. But with the development of web server cluster, how to manage each child node (including add, deploy, remove), monitor (including performance monitoring, failure warning) is becoming more and more important. Web server cluster management platform can solve these problems above and improve the availability of cluster. This paper analyzes the demand for management platform based on web server cluster of network architecture level 7 and proposes a design scheme of web server cluster management platform which satisfies this demand. The design scheme includes a web server software set and web server cluster management platform, it can implement automatic deploy and life cycle management of web server and web application. This paper discusses the key functions and design ideas of each part of the design scheme respectively.
【Key words】Web Server Cluster Server Cluster Cluster Management
1 引言
随着互联网的飞速发展和计算机的日益普及,网站和WEB服务器迅猛增多。而将多台WEB服务器相互连接组成集群系统,可以发挥单台服务器无法比拟的高性能,因此集群系统在工业界的应用也越来越广泛。WEB服务器集群系统根据其实现技术(网络交换、转发机制)、功能需求(负载均衡、高可用性)可以分为多种。不过电信领域的业务对WEB服务器集群系统有特殊的要求:负载重,稳定性要求高,可拓展性要求高,而服务器硬件和操作系统版本不统一。基于这些特征,在电信领域的WEB服务器集群系统多为基于网络7层的软件负载均衡集群系统,它对硬件和操作系统要求不高,而部署的灵活性很高。而在WEB服务器集群系统中,如何对各个子节点进行管理(包括新增、部署、移除)、监控(性能监控、故障报警),以提高集群资源利用率和可用性,显得尤为重要。本文提出的一种WEB服务器集群管理平台的设计方案旨在对WEB服务器集群系统中各种WEB服务器进行有效管理,以求解决上述问题。
2 WEB服务器集群现状和集群管理平台需求分析
2.1 WEB服务器集群发展现状
WEB服务器集群系统是指通过特定的技术方法将若干台WEB服务器以一定的方式组织起来,构成一台对外逻辑单一的功能更强的WEB服务器,同时具备一定的可拓展性和相对于一台WEB服务器的更高的可靠性。业界对WEB服务器集群系统的研究涉及很多层面,前后产生了很多理论上的模型架构和工业界的产品,国内影响最大的莫过于章文嵩博士开发的LVS(Linux Virtual Server)系统架构,被Linux 2.6内核收录,同时也被互联网的很多公司,如淘宝等应用,以解决线上部署WEB服务器集群的问题。与此同时,Nginx作为网络7层的负载均衡器也越来越得到业界的认可,比如Nginx/HAProxy + Keepalived的双机负载均衡架构,因其对硬件和操作系统要求不高,也逐渐流行起来。而由于电信领域对WEB服务器要求的特点,实际上后者Nginx/HAProxy + Keepalived的双机负载均衡架构更为有效。
同时当前的WEB服务器集群,主要采用Apache、Nginx、Tomcat等开源WEB服务器构建,但是不同公司,不同团队在WEB服务器的维护细节上有很大差异,比如:WEB服务器版本、部署方法、配置方式、维护手段等,使得即使是同类同源的系统,正确的维护手段和经验也无法得到有效地继承和推广。由于不正确的部署和配置,乃至服务器本身的异常造成的故障在不同项目中重复出现。随着集群系统的复杂化趋势,这种状态有可能还会恶化。
2.2 集群管理平台需求分析
WEB服务器集群系统通常由如下几个部分组成:前端负载均衡器,WEB集群节点和后端的数据库节点、缓存服务器节点、文件服务器节点等。如何让集群系统快速部署、实时监控和有效管理,是WEB服务器集群系统非常值得研究的问题。
WEB服务器集群的安装与配置。可以根据用户需求,在指定集群节点自动安装所需软件(WEB服务器),完成节点的配置工作。
集群系统的资源集中管理。用户可以随时访问各个节点的配置文件、日志文件。通过更新配置文件来调整集群节点的工作效能。通过查看日志文件来查找集群系统的错误或告警。
集群系统的监控与诊断。对于持续运行的集群系统而言,将各个集群节点的CPU、内存、进程等相关信息做实时的监控,可以有效地诊断系统的瓶颈,进而提高系统的效率。
分布式命令。用户可以通过类似shell一样的命令对整个集群系统或指定的一组集群节点执行一系列操作。
3 平台设计
3.1 平台设计方案图
平台方案设计如图-1所示。设计方案分为WEB服务器集群管理平台和Webjoin软件套件。多台物理主机上的Webjoin软件套件可以灵活组成一个WEB服务器集群。通过在Webjoin软件套件中实现符合WEB服务器集群管理平台的接入规范的相关模块,集群管理平台即可对集群各个子节点进行管理。
3.1.1 Webjoin软件套件
Webjoin软件套件是定制化的应用服务器,集成Tomcat和Nginx,并提供统一的监控运维接口,增强的异常检测和异常处理能力,同时提供诸如定时任务、第三方进程监控等相关能力。Webjoin软件套件的目标对象是基于HTTP之上的应用,包括Web网站、WebService接口以及其他基于HTTP之上的应用。
3.1.2 WEB服务器集群管理平台
WEB服务器集群管理平台可以实现对集群系统内部的服务器及其WEB应用的控制,包括自动化部署、生命周期管理等等。集群管理平台主要分为管理界面、核心控制模块、消息通信模块和进程守护模块。
管理界面通过WEB站点方式为用户提供有好的操作界面。核心控制模块是平台的核心部分,负责维护其他子模块,控制逻辑、消息流。消息通信模块是负责核心控制模块、进程守护模块与集群系统的各个子节点之间通信的基础模块。进程守护模块负责守护核心控制模块以及集群系统的各个子节点的WEB服务器进程,可以控制这些进程的启动和关闭。
3.2 平台各功能模块功能具体分析
3.2.1 集群节点的WEB服务器管理
用户根据WEB集群系统设计的逻辑架构灵活划分集群节点的功能和职责,通过WEB服务器集群管理平台对集群节点的WEB服务器进行管理,如WEB服务器的自动化部署、重启、升级等。
3.2.1.1 WEB服务器的自动化部署
通过统一的管理平台界面可以调用自动化部署功能。自动化部署的功能实质上以侵入式的方式向集群节点植入Webjoin代理,然后启动为后台进程,接收部署指令,下载Webjoin Server及其配置,根据配置安装Webjoin Server并运行,同时向服务器反馈部署相关信息。
3.2.1.2 WEB服务器的生命周期管理
Web服务器的生命周期管理是指管理员可以远程实时地控制目标机器的Webjoin Server的状态,如:关闭、重启、升级等。另外还考虑到与配置合并,控制本身可以被认为是对配置项的更改。控制项主要有:状态控制,控制WEB服务器是否可以正常使用;日志控制:控制日志输出的等级;速度控制:控制WEB服务每秒的请求数以及响应数。
3.2.2 集群的WEB应用管理
用户根据WEB集群系统的实际架构和WEB应用对集群系统的性能要求,灵活配置WEB服务器集群,同时对WEB应用进行管理,如WEB应用的图片服务器配置、WEB应用的SESSION会话保持等。
3.2.2.1 WEB应用的自动化部署
WEB应用部署同WEB软件安装不同,应用部署不仅涉及到代码发布,配置发布,还经常涉及到数据表的创建。此外,WEB应用部署需要将代码发布到WEB服务器中,需要支持热部署,同时需要发布配置项到配置服务器中,最后如果有数据库,需要执行sql文件,创建相应的数据库、索引、存储过程等。
3.2.2.2 WEB应用的生命周期管理
Webjoin Server的配置管理主要分为两部分:对于即将安装的Webjoin Server服务器软件套件,可以在安装前修改默认的安装配置,然后执行上述的WEB软件安装流程;对于已经安装的Webjoin Server服务器软件套件,需要通过Webjoin代理向远端机器更新配置文件,然后通过更新脚本,逐步更新WEB软件的进程,当然得优先保证WEB软件对用户HTTP请求的响应,对于空闲的WEB进程进行更新,以此来逐步进行替换。具体来说,目标用户通过Server端的管理界面修改WEB软件的默认配置,然后执行WEB软件安装或已安装软件的配置更新。
3.2.3 集群平台的配置管理
Webjoin Server的配置管理主要分为两部分:对于即将安装的Webjoin Server服务器软件套件,可以在安装前修改默认的安装配置,然后执行上述的WEB软件安装流程;对于已经安装的Webjoin Server服务器软件套件,需要通过Webjoin代理向远端机器更新配置文件,然后通过更新脚本,逐步更新WEB软件的进程,当然得优先保证WEB软件对用户HTTP请求的响应,对于空闲的WEB进程进行更新,以此来逐步进行替换。具体来说,目标用户通过Server端的管理界面修改WEB软件的默认配置,然后执行WEB软件安装或已安装软件的配置更新。
3.2.4 集群平台的日志管理
由于是自动化管理,远端机器的Webjoin Server服务器软件套件和应用对用户并不可见,因此需要完备的日志系统来辅助用户调试发现系统运行过程中的bug。日志管理主要分为两部分:第一部分是基本的日志记录,主要是WEB服务器包括纳入套件的Tomcat和Nginx本身的日志;同时在基本的日志记录基础上,我们考虑到对日志进行染色,可以让用户更好地使用日志,针对某个或某些请求指定某些日志定向传输到目的地址,调测人员可以通过Server端的WEB站点对不同颜色的日志进行查看。例如染色规则可以定为:(客户端ID,应用ID)->Redis队列->染色服务器。
4 结束语
WEB服务器集群管理平台解决了快速部署和灵活配置WEB服务器集群的问题,同时加速对基于网络7层的基于内容的WEB服务器集群的推广。事实证明,对于服务器硬件和操作系统要求低的WEB服务器集群因其灵活性和可拓展性,在业界得到了非常好的评价。同时,采用基于该种WEB服务器集群的集群管理平台能够使WEB服务器集群进行快速地部署、实时地监控、有效地管理,在电信领域具有非常高的应用价值。
参考文献
[1] Chris Shiflett. HTTP Developer's Handbook [D]. Sams. 2003
[2] 赵京华.应用服务器集群管理系统的设计与实现 [D],北京邮电大学,2007
[3] 邓仲举.高可靠性集群部署的设计与实现[D],华中科技大学,2012
[4] 冯胜鹏.WEB方式集群管理系统的研究与实现[D],西北工业大学,2006
[5] 李双庆.Web服务器集群技术研究[D],重庆大学,2003
[6] 吴家祺.WEB服务器集群系统的设计与实现[D],南京航空航天大学,2005
[7] 丁宇光.基于Linux的Web服务器集群软件设计与实现[D],上海交通大学,2007
[8] 顾梦飞,徐炜民.一个基于Linux的集群部署方案[J],计算机应用与软件,2008:2-15
基金项目:国家973计划项目(No. 2013CB329100, 2013CB329102);国家自然科学基金(No. 61271019, 61101119, 61121001, 61072057, 60902051);长江学者和创新团队发展计划资助(No. IRT1049);.