可伸缩网络服务器群研究.docx

上传人:b****5 文档编号:6690768 上传时间:2023-01-09 格式:DOCX 页数:29 大小:761.39KB
下载 相关 举报
可伸缩网络服务器群研究.docx_第1页
第1页 / 共29页
可伸缩网络服务器群研究.docx_第2页
第2页 / 共29页
可伸缩网络服务器群研究.docx_第3页
第3页 / 共29页
可伸缩网络服务器群研究.docx_第4页
第4页 / 共29页
可伸缩网络服务器群研究.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

可伸缩网络服务器群研究.docx

《可伸缩网络服务器群研究.docx》由会员分享,可在线阅读,更多相关《可伸缩网络服务器群研究.docx(29页珍藏版)》请在冰豆网上搜索。

可伸缩网络服务器群研究.docx

可伸缩网络服务器群研究

可伸缩网络服务器群研究

学生姓名:

指导老师:

 

摘要

在实际应用中,很多业务系统具有很强动态性,仅以高峰时段业务要求配置服务器资源不利于资源复用和节能环保。

目前,动态扩展服务器有较成熟方案,但既支持动态扩展又支持动态缩减的高效、方便的服务器群的管理方案还比较匮乏,因此,研发可保持业务系统稳定运行的可伸缩的服务器群的部署方案和管理方法具有重要意义。

本文针对网络服务器群的可伸缩性问题进行了深入研究,在文中设计和实现了网络服务器群的可伸缩性系统,主要工作如下:

1)根据业务系统的特点,提出了可处理多种业务需求的服务器群架构的部署方案。

该架构为树形架构,包括若干个管理服务器和节点服务器。

管理服务器位于树形架构的根节点或者中间节点位置,节点服务器位于叶子节点位置。

2)本文根据服务器群的架构特点,具体的提出了该服务器群架构系统的管理方案。

该方案中的关键算法包括节点编码设计、管理服务器的分裂处理、节点服务器的分裂处理、管理服务器的合并处理以及节点服务器的合并处理。

3)设计并实现了可伸缩网络服务器群架构系统,该系统可以在服务需求增多时分裂出更多的服务器以增强性能,在服务需求量降低时可以合并到较少的服务器以达到节约时间的目的,从而提高服务器的利用率。

关键词:

可伸缩性;服务器架构;分裂;合并;

Abstract

Inpractice,manybusinesssystemsarehighlydynamic,configuringserverresourceswithonlyduringpeakbusinessrequirementsisnotconducivetoresourcereuseandenergysaving.Currently,thedynamicexpansionoftheserverhasmorematuresolution,buttheefficientandconvenientserverclustermanagementsolutionsthatsupportbothdynamicexpansionanddynamicreductionarestillrelativelyscarce,sotheresearchofscalableserverclusterdeploymentsolutionsandmanagementmethodswhichcanmaintainstableoperationofbusinesssystemsisimportant.Thispaperfocusesonthescalabilityissuesofthenetworkserverclusterinresearch,designandimplementation.Themaincontributionofthispaperisasfollows:

1)Accordingtothecharacteristicsofthebusinesssystem,thispaperputsforwardadeploymentsolutionofserverclusterarchitecturewhichcanhandleavarietyofbusinessrequirements.Thearchitectureisatreestructure,includinganumberofthemanageserversandnodeservers.Manageserverislocatedintherootnodeorintermediatenodeofthetreestructure,thenodeserverislocatedintheleafnode.

2)Accordingtothecharacteristicsofthisserverclusterarchitecture,thispaperputsforwardamanagementsolutionoftheserverclusterarchitecturesystem.Thekeyalgorithmsofthesolutionincludesdesignofnodeidentifier,splitandmergeofmanageserver,splitandmergeofnodeserver.

3)Designandimplementascalablenetworkserverclusterarchitecturesystem,thesystemcansplitupmoreserverstoenhanceperformancewhenthedemandofservicesisincreasing,andcanbecombinedintofewerserverstoconserveresourceswhenthedemandofservicesisreducing,therebyimprovingserverutilization,protectionofbusinessrequirementsareeffectivelydealtwith.

Keywords:

Scalability;ServerArchitecture;Split;Merge

目录

可伸缩网络服务器群研究1

摘要2

Abstract3

目录4

1绪论-1-

1.1课题研究的背景及意义-1-

1.2国内外的研究现状-2-

1.3本文研究的主要内容-3-

2可伸缩服务器群系统的概要设计-5-

2.1可伸缩技术概论-5-

2.2概要-8-

2.2.1系统目标-8-

2.2.2系统边界-8-

2.2.3系统定义-9-

2.3可伸缩网络服务器群系统架构-9-

2.4服务器功能模块结构-10-

3算法设计-14-

3.1节点编码设计-14-

3.2MS分裂与合并-15-

3.33NS分裂与合并-17-

4可伸缩服务器群系统的详细设计-19-

4.1系统程序类图-19-

4.2流程设计-23-

5系统测试和结果-25-

5.1测试方案-25-

5.2结果分析-25-

6结论-28-

6.1结论-28-

致谢-29-

参考文献-30-

1绪论

1.1课题研究的背景及意义

随着网络技术的不断进步和互联网的炙手可热的发展,互联网上的网络流量和用户数大幅度的提高。

据《第31次中国互联网络发展状况统计报告》指出,截止2012年12月底,中国网民数量达到5.64亿[1]。

由于上网人数的增多给网络带宽和服务器带来巨大的挑战,一些地区出现了服务端不能及时有效提供客户访问、不能提供可靠的不间断服务等问题,主要表现在一下方面:

1.一方面,网络硬件设备的不断进步,网络带宽的瓶颈逐渐缓解;另一方面,越来越多的瓶颈问题出现在服务器端,服务器的性能问题日趋突显。

2.由于访问次数的激增,很多网络服务不能够及时处理用户的请求,迫使用户进行长时间的等待,服务质量明显降低。

例如Yahoo新闻每天要发送6.25亿页面[2],这就意味着在信息量爆炸的当今社会,需要更强大的网络服务。

3.越来越多的网站需要提供7*24小时服务,这在电子商务等网站中尤为明显,任何时候的服务中断或者关键性数据的丢失都会造成直接的商业损失[3]。

这对网络服务的可靠性提出了越来越高的要求。

4.多数服务器集群都是针对业务量增加而扩展服务器,但实际应用中,多数业务具有很强的动态性,存在高峰时段和低峰时段。

在业务量低的情况下,保持大量服务器工作则不利于资源环保。

通过对上述研究背景进行分析可知,单台服务器由于中央处理器、输入/输出接口处理速度等方面的限制,已无法满足快速增长的数据量以及同时处理多种业务的请求,取而代之的是由多台服务器组成的服务器群系统。

因此,建立高性能的可伸缩的服务器群系统具有如下意义:

1.提高性价比

组成服务器群的PC服务器和标准网络设备可以大规模的生成,所以价格相比于其他大型服务器比较低廉。

如果整体性能随着结点数的增长而接近线性增加,则该系统具有很高的性价比[4]。

2.提高可用性

由于在服务器群系统中有多台服务器,一台服务器可以成为另外一台服务器的备份服务器。

当服务器发生故障时,可以激活另一台服务器代替工作,从而实现高效率的可用性。

3.可易用性

组成服务器群系统的单台服务器依旧是传统平台,因此软件不需要进行大规模的修改就可以运行,开发者也可以在自己平时就很熟悉的网络环境下进行工作,这种模式保障了服务器群系统具有很高的可易用性[5]。

4.可伸缩性

当需要处理的业务量过多时,服务器群系统可以通过增加一台服务器从而提高整个服务器群系统的性能。

它的优点是当业务量比较少时,服务器群系统可以通过服务器的合并从而减少资源浪费。

1.2国内外的研究现状

目前,国外最常见的服务器群集产品是WindowsServer2003服务器集群、OracleWebLogicServer服务器集群、LVS服务器集群。

群集服务是指在各个节点上执行群集操作的组件所构成的集合,而资源是指在群集内由群集服务管理的硬件和软件组件。

WindowsServer2003系列通过由对称多处理技术(SMP)支持的向上扩展和由群集支持的向外扩展来提供可伸缩性[6]。

该服务器集群中,各个服务器计算机都被称为节点。

在WindowsServer2003服务器集群中,该服务包括节点管理器、故障转移管理器、数据库管理器、全局更新管理器、检查点管理器、日志管理器、事件日志复制管理器以及备份/恢复管理器。

OracleWebLogicServer是一个Java应用服务器,WebLogicServer内核以可执行、可扩展和可靠的方式提供统一的安全、事务和管理服务[7]。

WebLogic群集架构可以有数种不同的变化,图2-3是其中的一种类型,若干个server组成一个群集,每个WebLogicServer在功能上,依照J2EE架构,又可分为Web层和业务逻辑层(执行EJB等元件)。

这两层可视需要拆开在不同的硬件/网段中执行。

WebLogicServer群集中,需要架设一个对clientrequests作分流/负载平衡的机制。

WebLogicServer除了本身具备Webserver功能,能够用来做网页/档案的处理之用外,同时还可兼做群集前段的负载平衡器[8]。

单一的Webserver作为负载平衡器的架构可能出现单点故障,为了避免这样的问题,群集通过在Webserverproxy这层采用多个server并列的方式。

WebLogic群集事实上是在一个应用域下设定执行的。

每个WebLogic应用域只需要一个管理服务器,便可同时监控、管理一个、甚至多个群集,以及其他单独执行的应用服务器[9]。

WebLogic域下负责执行生产系统的各个服务器,统称为受管理服务器。

虽然只有一个管理服务器,但这样的设计并不会有单一故障的问题,因为当管理服务器宕机或被关掉时,并不会影响各个受管理服务器的正常运行。

当管理服务器再度启动时,会自动和各管理服务器做状态的更新和同步。

LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是由章文嵩博士发起的自由软件项目,LVS自从1998年开始,发展到现在已经是一个成熟的技术项目[10]。

可以利用LVS技术实现高可伸缩的、高可用的网络服务,有许多比较著名网站和组织都在使用LVS架设的集群系统,例如:

Linux的门户网站()、向RealPlayer提供音频视频服务而闻名的Real公司()、全球最大的开源网站()等。

该集群主要由三部分组成:

负载调度器(loadbalancer)、服务器池(serverpool)和后端存储(backendstorage)。

调度器是服务器集群系统对外界的前端机,负责将客户的请求发送到一组服务器上执行,它可以是基于IP负载均衡技术的负载调度器,也可以是基于内容请求分发的负载调度器,还可以是两者的结合[11]。

服务器池是一组真正执行客户服务请求的服务器,执行的服务有FTP、DNS和WEB等。

后端存储为服务器池提供了一个共享的存储区,这样使服务器池可以拥有相同的内容并且能够提供相同的服务[12]。

1.3本文研究的主要内容

本文针对单台服务器架构已无法满足大数据和高响应服务的问题,提出了建立高性能、高可用和可伸缩的服务器群架构系统,主要就网络服务器群的可伸缩性问题进行了研究、设计和实现,主要工作如下:

1)根据业务系统的特点,提出了可处理多种业务需求的服务器群架构的部署方案。

该架构为树形架构,包括若干个管理服务器和节点服务器。

管理服务器位于树形架构的根节点或者中间节点位置,节点服务器位于树形架构的叶子节点位置。

2)根据本文服务器群的架构特点,提出了该服务器群架构系统的管理方案。

该方案中的关键算法包括节点编码设计、管理服务器的分裂处理、节点服务器的分裂处理、管理服务器的合并处理以及节点服务器的合并处理。

3)设计并实现了可伸缩网络服务器群架构系统,该系统可以在服务需求增多时分裂出更多的服务器以增强性能,在服务需求减少时可以合并到更少的服务器以节约资源,从而提高服务器的利用率,保障业务需求得到有效地处理。

2可伸缩服务器群系统的概要设计

2.1可伸缩技术概论

可伸缩性是当今计算机领域中经常用的专业词汇,对于不同的人应用起来,可伸缩性的定义也不同,可伸缩性的特性主要包含横向可伸缩性和纵向可伸缩性。

其中,横向可伸缩性是指系统向外扩展,即通过增加系统的处理节点来提高系统的整体处理能力[13]。

横向可伸缩性的一个最显著的优点是服务器成本低,即只通过价格便宜的计算机服务器搭建出一个处理能力非常强大的计算机集群。

这是不可思议的,还有一个优点是基本上不存在用户量或数据量增加就再次遇到系统性能增加的瓶颈,并且单个服务器节点出现故障对系统的整体影响比较小。

但是,横向可伸缩也存在了一些缺点,由于服务器节点的增多,系统整体复杂度也会得到提高,那么集群的维护难度将会增大,维护成本会很高[14]。

纵向可伸缩性是指向上扩展,即通过增加当前服务器节点的处理能力来提升系统的整体处理能力[14]。

纵向可伸缩性具体体现为升级现有服务器的配置,如增加内存,增加CPU,增加存储系统的硬件配置,或者更换更强的服务器和更高端的存储系统。

纵向可伸缩性的优点有:

处理的节点少,维护简单,维护成本低,最重要的是系统集中在一台服务器,架构设计简单,容易开发。

但是,纵向可伸缩也存在了一些缺点:

首先,整个系统集中在一台服务器上,这样满足不了应用系统的需求,导致对服务器的硬件配置要很高,而高端设备的服务器价格都很贵,成本就提升了,这样不利于设备的维修和日常运用[15]。

其次,应用系统业务需求量可能无限增大,由于单台服务器的处理能力总是很有限的,所以容易遇到无法解决的性能瓶颈。

最后,整个系统集中在一台服务器上,一旦发生故障,后果影响很大。

1.可伸缩设计模式

可伸缩设计模式有多种,下面主要介绍其中的4种:

1)负载均衡模式此模式由调度器来决定由哪个服务器来处理下一个请求,基于不同的策略做不同的决定[16]。

在该模式中,由调度器决定由哪个服务器处理请求,这种状态下应用最好是无状态的,因为这样使得任何一个服务器都能同等处理请求。

当代几乎所有的中大型网站都应用了负载均衡器这个模式。

2)分散和聚合模式这种模式是通过调度器将请求广播到服务器群中的所有服务器。

每个服务器将单独计算其中一部分,并将结果返回给调度器,由调度器来汇总所有的计算结果并返回给客户端[17]该模式中,再由调度器将请求转发给池中的所有服务器,每个服务器处理请求的一部分并返回给调度器,调度器将服务器返回的结果加工组合为一个响应返回给客户端。

该模式在搜索引擎中使用处理用户的关键字,如Yahoo,Google等。

3)结果缓存模式在这种模式中,首先检查这个请求之前调度器会识别是否有处理过,并试图找出之前的处理结果并自动返回,这样就节省了处理时间[19]。

这种模式很简单,只是在调度器处理时加了一步查询结果缓存,如果之前已经处理过并且恰好可以使用之前的缓存,就返回之前的处理结果,从而达到节省处理时间的目的[20]。

该模式通常使用在大型企业应用。

4)共享空间模式的含义是所有的服务器都关注在一起共享的区域内的信息,并且都向这块区域提交自己的部分信息。

信息不断被完善,直到问题被解决为止[21]。

这个模式也叫“黑板模式”。

换而言之是在处理流程中,需要存在一个全局传递的对象,它可能包含了请求参数、中间状态、响应结果等各种丰富的信息,然后供流程中的各个组件对其进行操作[22]。

该模式在JavaSpace(JavaSpaces技术是进行分布式计算的一种简单机制)和GigaSpace(GigaSpace是一个虚拟化的中间件层)中都有使用。

2.负载均衡

负载均衡技术是现代网络技术中比较常用的技术,学术上对它有两种不同的定义,一种是将大量的和同时发送的数据流或并发访问在多个节点上进行处理,从而达到减少用户响应时间的目的。

另一种是将单一负载的运算分担在多个节点上进行并行处理,并且在所有节点都完成处理后将结果汇总反馈给用户,这就是常说的集群技术[23]。

下面是比较常用的负载均衡技术:

1)软件负载均衡技术

软件负载均衡技术是指在交互的网络系统中的多台服务器的操作系统上安装一个或多个相应的负载均衡软件从而实现负载均衡的一种技术。

它有很多优点,比如:

配置简单,成本低廉,可以满足一般的负载均衡需求。

但是,一旦单台服务器上安装了额外的软件,这就会不定的消耗系统不定量的资源。

越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键[25]。

2)硬件负载均衡技术

硬件负载均衡技术是指在多台服务器间安装相应的负载均衡设备,来平衡流量的消耗,即由负载均衡器来完成负载均衡技术。

一般来讲,硬件负载均衡技术在功能、性能上优于软件方式,但考虑到成本比较高,所以一般都应用于流量高的大型网站系统[26]。

3)本地负载均衡技术

本地负载均衡技术是指对本地服务器群进行负载均衡处理。

该技术能有效地解决数据流量过大、网络负荷过重的问题,其工作原理是首先通过对服务器进行性能优化,从而使流量能够平均分配在服务器群中的各个服务器上。

如果是给现有服务器扩充升级,只要简单地增加一个新的服务器到服务群中,而不需改变现有网络结构,停止现有的服务,这样使得维护和修理都十分的方便[12]。

4)全局负载均衡技术

全局负载均衡技术是指对分布在全国的多个服务器上进行负载均衡处理,该技术是通过对访问用户的IP地理位置判定,从而自动转向地域最近点进行负载均衡处理数据[27]。

全局负载均衡具有避免服务器、数据中心等的单点失效、避免由于ISP专线故障引起的单点失效等优点,该技术适用于拥有多个地域的服务器集群的大型网站系统。

3数据备份

数据备份是为数据提供安全保障的一种有效的方式,含义其是指为防止系统出现操作失误或系统故障导致数据丢失,而将从应用主机的全部或部分数据集合复制到其它的存储介质的过程。

常用的数据备份模式有:

定时磁带备份、定时双机备份、Active/Active双服务器互备份和Active/Standby双服务器热备份。

其中:

1)定时磁带备份

这种备份模式是通过磁带机或服务器硬盘定时备份,在出现故障时做停机处理,待外部管理员修复故障后,从磁带机或硬盘中恢复数据。

这种模式是比较落后的,因为在使用定时磁带备份数据模式时,还要考虑到备份介质的储存空间和定时设置等情况[28]。

2)定时双机备份

定时双机备份需要使用两台服务器。

一台为主服务器,采用高档机,机内配有RIAD磁盘阵列。

另一台为备用服务器,相比于前一台则采用低档机,不需要配有RIAD磁盘阵列,只需要能运行HIS系统服务器端软件。

两机是通过局域网相连的,只有在每天业务量小的时候将数据导出,并换在低档的备用服务器上恢复。

当两个主服务器出现故障时,由备用服务器接替工作[30]。

3)Active/Active双服务器互备份

在这种方式中,没有主服务器和备份服务器之分,两台主机互为备份和主机。

在正常运行状态下,两台主机各自可以运行不同应用,同时相互监测对方状况。

在出现故障时,当某一方的系统或者资源出现问题,另一台主机立即接管它的应用,充当备份主机的作用,从而保证了应用的正常运转[31]。

4)Active/Standby双服务器热备份

在Active/Standby双服务器热备份方式中,当主服务器运行应用时,备份服务器是处于空闲状态的,但是备份服务器仍然实时监测主服务器的运行状态。

在正常情况下,主服务器会兼顾监视备份服务器的状态,当备份服务器出现异常时,工作服务器会发出警告,提醒系统管理员解决故障,以确保主/备服务器切换的可靠性,机器处于正常状态;在出现故障时,为确保当正在运行着的一台服务器出现故障时,不能支持应用系统运行,那么这时另一台备份服务器被激活,接管主服务器的工作,这是备份服务器起主导作用,确保在短时间内应用完全恢复正常并能够使用[33]。

2.2概要

2.2.1系统目标

本系统的目标是通过精心设计实现一种可伸缩的网络服务器群架构系统,因此在设计服务器集群方案时,主要基于下列目标考虑:

1)可伸缩性:

这是本系统最根本的目标,力图随着业务的发展能够方便快捷地增加集群中的计算机数量。

通过调整硬、软件配置最终达到可适应不同的网络结构、不同的信息流量规模,使整个系统达到拓扑的目的。

2)负载平衡:

由于网络信息流量是在本地的多台服务器之间使用的,甚至可以在异地多台服务器之间都能得到比较好的并且均衡的分派,力求能够使请求流量能在多个机器间甚至多个服务进程之间,异地多台服务器之间得到比较好的并且均衡的分派。

3)容错:

支持数据的多备份容错。

当整个系统的的某一部分的服务器出错时,这一系统可以自动将客户端的请求分派到其它正常工作的服务器。

这一目标主要考虑到能够很好的支持数据的动态备份,甚至能够实现对异地的数据动态备份,用来维持整个系统的数据的一致。

4)可维护性:

由于整个系统比较庞大,一旦哪一环节系统的错误,有了这一特性可以对系统做到比较容易的管理和维护作用。

5)高可用性:

当整个运转系统的部分硬件或者软件发生故障,整个系统最应该保证用户的业务是连续的,并且具有持续可用的特性,即具有7*24的可用性。

2.2.2系统边界

可伸缩网络服务器群架构系统是一个通用的系统架构,可以方便地查看服务运行状态,进而高效地进行管理,并且该架构具有较高的可伸缩性。

可伸缩网络服务器群架构系统是为PSMQ消息服务组件服务的,它只起到提供服务器群

架构的部署方案,不处理任何的业务逻辑,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1