首页 > 文章中心 > 正文

Web集群技术应用

Web集群技术应用

摘要随着数字化校园建设的发展,高性能计算机集群系统的应用也变得越来越普及。介绍了数字化校园中集群服务系统的的概念和负载平衡特性,重点阐述了在数字化校园中以教务管理系统、科研管理系统、办公管理系统为例如何创建一个Web集群。

关键词数字化校园;负载平衡;Web集群;创建

1引言

数字化校园网上依托Web技术开设的许多功能,使得Web服务器不仅需要提供更多的应用服务,而且要对不同的请求作出快速响应。因此,加重了Web服务器负荷,导致其性能下降。为了解决这个问题,从而提高整个系统的高可靠性、高性能,可采用创建Web集群的具体解决方案。

2数字化校园的概念

数字校园建设是学校现代化建设的基础,是学校信息化建设的具体目标。数字化校园用层次化、整体的观点来实施校园信息化建设,将校园网上信息进行更好的组织和分类,让用户在网上快速发现自己需求的信息。为师生提供网上信息交流环境,让管理人员科学地、规范地管理自己的数据,并将这些信息方便地出去。它是以网络为基础,利用先进的信息化手段和工具,实现从环境(包括设备、教室等)、资源(如图书、讲义、课件等)到活动(包括教、学、管理、服务、办公等)的数字化,在传统校园的基础上,构建一个数字空间,拓展现实校园的时间和空间维度,提升传统校园的效率,扩展传统校园的功能,最终实现教育过程的全面信息化,从而达到提高教学质量、科研和管理水平与效率的目的。能否建立一个现代化的数字化校园已经成为衡量高校综合竞争实力的一项重要指标。

数字校园建设的主要内容是实现基于教学、科研、管理、生活的各种服务应用信息化建设工作,包括网络基本服务、数据仓库、各类应用支撑系统、信息服务系统、组织管理、学校社区服务、教学活动、公共服务、学术研究等,从而将校园网络及其应用系统构成整个校园的神经系统,完成实现校园的信息传递和服务。

3数字化校园中的Web集群

3.1集群的概念

集群(Clustering)广义来说,集群就是相互独立的一些系统的集会。它们利用高速通信网络将这些系统按某种结构进行高速互联,这样所构成的一个计算机组叫集群[1]。构成集群的目的是为了提高系统的整体性能、系统的可用性和规模的可扩展性。在集群系统中,每台服务器都承担相应的子任务,因而服务器的个数将与工作效率呈正比例增长。对程序员和用户来说,集群系统就是一个整体的并行系统[2]。

3.2负载平衡

负载平衡(LoadBalancing)是指在一个Web集群中的多台服务器之间均衡地分配客户请求。一般地,负载平衡能增加系统吞吐率,而同时保持较低的响应时间。通过使用嵌入到Windows2000Server中的NetworkLoadBalancing,主机能够检测每一个来访的IP报文,只有符合接收条件的才接收它。每个NetworkLoadBalancing主机可以指定它将处理的报文百分比。作为一个选项,报文也可以平等地在所有的主机之间进行分配。如果一个主机故障,则负载平衡机制就会在剩余的主机之间重新分配报文。

3.3Web集群

Web集群是由任意多台计算机组成的一种Web站点。当设计者创建Web集群时,可以选择三层Web体系结构(由Web服务器程序,COM+应用程序和数据库应用程序组成)。三层体系结构的优点是设计者可以将以下的各层次任务分散到不同的服务器上,而不是将它们都结合在一台服务器上(如图1)。

图1

使用若干台低成本服务器,设计者可以很容易地处理大量的客户请求,而不会产生任何不必要的延时。在多台计算机之间共享负载对于院校用户支持重量级应用程序是至关重要的:例如,处理行政事务,访问数据库,支持学校Intranet以及执行其它重要的日常活动。

4Web集群在数字化校园中的负载平衡特性

NetworkLoadBalancing和ClusterService可以增强任何设施的安全可靠性。将它们分组是一种功能强大的方法,用来将后端数据库和事务系统与基于Web的前端相结合,从而有效地提供给用户所需的可伸缩性、客户要求的高可用性。下面列出相应的解决方法(如图2),并给出如何将它们集成到一个三层配置中的实例。

图2

NetworkLoadBalancing平衡那些主要由入站TCP/IP通信产生的负载。管理员可以在第一层上建立LoadBalancing,并且在集群的Web服务器上平衡站点的访问。ClusterService是管理员对那些要求高可用性的数据库服务进行分组的理想选择,这些数据库服务可以是MicrosoftSQLServer7.0或其它数据敏感应用。管理员可以在第三层上建立ClusterService,以完成诸如用户访问数据库的任务。

5在数字化校园中创建Web集群

通过将这两个负载平衡的特性结合起来,这些特性将是三层体系结构应用程序的理想支持。例如,如果数字化校园平台建设基于Web的教务管理系统、科研管理系统、办公管理系统(如图3),则可以建立如下的集群。●在多台服务器上建立前端、用户界面(UI)层,使用NetworkLoadBalancing以平衡和分配客户TCP/IP连接。当通信量增加时,升级已有的集群或者添加计算机到配置中。这样就保证站点不论什么时候都能够处理访问请求。

●使用ClusterService,以便为应用程序和三层应用程序的数据服务层提供结点故障接管功能。这将创建一个可靠的平台用于数据库、消息和类似的应用服务。

●下面将举例说明如何创建Web集群服务器。

5.1硬件需求

为了建立用于基于Web的教务管理系统、科研管理系统、办公管理系统,设计者需要利用WebApplicationStressTool(该工具允许设计者模拟测试站点上具有几千个用户负载的情况)来确定实际需要多少台Web服务器来满足一个特定的应用。在测试了单台服务器之后,设计者可能会发现服务器CPU的利用率特别高,而高速缓存命中率很低,并且在队列服务器中还留有许多请求。与SystemMonitor工具相结合,设计者可以很容易地确定一台单一的Web服务器的负载极限。Web服务器的主要瓶颈在于HTTP层,为了打破该瓶颈,设计者应该增加Web服务器。例如,可以添加三台Web服务器以组成Web集群的第一层。

5.2创建第一层

随着三个新Web服务器的加入,设计者现在必须通过运行NetworkLoadBalancing来平衡这四个服务器间的请求负载。四台服务器从客户角度来看只是一台服务器。因为设计者只分配一个IP地址给一个集群中的三台服务器,因此管理集群十分容易。通过配置一台DNS服务器,设计者可以使用IP地址192.168.18.10建立。该IP地址代表了集群中的所有主机(此时为三台服务器)。

通过这种配置,设计者可以将站点拓扑结构由一台Web服务器改变为四台。现在可以使用WebApplicationStressTool再次测试应用程序,将会看到性能立即得到了改善。接下来,再次测试集群,但这次要使用几千个用户进行模拟,确认站点消耗的资源远小于单台计算机运行IIS5所消耗的资源。如果应用程序需要更高的可用性,则可以添加更多的主机,最多为32台。

通过建立一台开发服务器(例如),设计者可以在此服务器上内容和测试其应用程序,而后能够将所有的授权和开发移交给服务器。设计者在开发服务器()上安装了FrontPageServerExtensions后,用户就可以使用FrontPage连接到一台开发服务器,写入内容以及创建应用程序,而不用将应用程序引入到Web产品服务器上。

一旦数据已准备好用于产品,则使用SiteServer3.0的ContentDeployment特性将数据从阶段服务器复制到Web服务器产品上。在四台Web服务器间必须相同复制的单元是Web内容。当设计者需要复制数据时,ContentDeployment将很容易地实现该过程,从而可以节省大量时间。

当站点规模增长时,需要为每台服务器设置一个独立的日志文件。如果四台服务器在同一个Web集群中,则必须分析四个单独的日志文件,可以预先地将所有日志导入到一个源中来帮助简化任务。SiteServerUsageAnalyst给设计者提供了一种简易的方法将这些文件导入到一个源中,而后设计者可以生成定制报告来表示Web站点上的所有通信量。

设计者添加了服务器、创建了开发服务器并且简化了日志后,就将会注意到站点变得十分复杂。为了处理增加的复杂性和应用程序数量,设计者就需要创建其它层,以便维持Web站点的有效性和性能。

5.3创建第二层

当ASP应用程序与Windows2000组件一起相结合运行时,站点很快会变得更为复杂。ASP应用程序可以被认为是将表示层连接到应用和数据服务层的中介。ASP提供了一种丰富而强有力的开发环境。但如果真的要增加应用程序的整体性能,应考虑添加COM+组件。

使用ASP应用程序调用一个包含用户业务逻辑的组件,该组件驻留在第二层的应用程序服务器上。一个应用程序服务器可以简单地是一个Windows2000Server,它主要为组件提供处理器功能。

至此,驻留在第一层Web服务器上的ASP应用程序调用第二层应用程序服务器来处理业务逻辑。该处理过程的一部分会请求组件从位于第三层的后端数据库中提取数据。

5.4创建第三层

为了在第三层获得高可用性,设计者需要安装ClusterService。为了存储所有组成第三层的后端数据,大多数企业级用户都需要一台高端对称多处理(SymmetricMultiProcessing,SMP)服务器(例如,一个8个处理器的SMP,带有4GB的RAM),以运行SQLServer7.0等大型关系数据库。ClusterService可以处理任务紧急的数据库管理、文件和Intranet数据共享、消息机制以及通用业务应用程序。

最好再添加一台服务器用于故障处理,而不是仅仅依靠一台高端Windows2000Server。

综合起来,这两台服务器为访问请求提供了更高的可用性,并且简化了管理数据和应用程序的任务。ClusterService不仅允许设计者将两台服务器连接到一个集群中(如图4),而且也可以自动地检测并恢复服务器和应用程序故障。另外,它可以巧妙地处理服务器操作的工作负载,使管理员在不必关闭服务器的情况下进行维护规划。

图4

如果一个单独的应用程序故障(但服务器没有故障),则ClusterService将试图重启同一服务器上的该应用程序。如果仍然失败,则ClusterService将该应用程序的资源转移到另一台服务器上,并且在该服务器上重启该应用程序。

6总结

由于用户的应用程序需要很高的可用性、可伸缩性和性能,因此设计者需要创建一个三层Web体系结构,并且对每个层次使用具有高可用性的Microsoft技术。而后使用WebApplicationStressTool测试单台服务器并实现它。为了获得更高的可用性,则需要创建Web集群。一般情况下,可以算出三台服务器已经足够了。而后安装NetworkLoadBalancing,并且这三台服务器实质上被看作一台服务器。接下来,设计者应该添加第四台Web服务器作为开发阶段服务器,以便用户可以内容到该服务器上。为了复制已开发的内容,设计者在阶段服务器和Web服务器产品上应使用SiteServer3.0的ContentDeployment特性。为了增强第二层的性能,设计者要添加一个COM+应用程序,并且使用来自第一层的ASP应用程序来调用来自第二层的预编译组件。另外,这些第二层组件会调用第三层数据服务。运行SQL7.0的一个高端SMP服务器组成了系统的第三层。为了获得高的可用性,设计者应添加ClusterService来确保系统是一个具有容错能力的故障接管系统。这种拓扑结构提供了高可用性和可伸缩性,尽管存在可预见的故障(例如服务停止或硬件升级)或者不可预见的故障(例如硬件故障或软件完整性丢失)。

本论文不仅分析了集群技术在数字化校园网中的负载平衡特性,而且给出了其高性能应用的具体实现框架。Web集群技术在数字化校园网中的应用不仅能够大大地提高学校的资源利用率,而且能够有效地、及时地完成吞吐量大的科学计算和商业数据运算。Web集群技术随着服务器硬件系统与网络操作系统的发展将会在可用性、高可靠性和系统冗余等方面得到进一步地提高和完善。

参考文献

[1]胡凯.《集群计算》.计算机世界,2001-02

[2]LinuxClusteringwithCSM&GPFS,IBMRedbooks,http:///

[3]Microsoft公司.《Win2000DirectoryServices基础结构设计》.北京大学出版社,2001-05

[4]刘东远,骆珍仪.“在校园网实施部署集群服务”.中山大学学报论丛,2003年第23卷第3期,P212-215

[5]邓子梁.《图解精通Windows2000Server》.中国水利水电出版社,2001-11

文档上传者