加急见刊

论析河北文化信息资源共享中心共享工程平台负载均衡解决方案

佚名  2010-12-12

作者:吴秀红纪锋亚王小培

论文关键词:文化共享工程;负载均衡;W EB服务器;F5ZopePloneZeo

论文摘要:本文详细叙述了河北文化信息资源共享中心在共享.Y-程平台建设中实施的负载均衡方案,涉及到相关技术的介绍及硬件、软件以及实施解决方案的具体建设情况。

文化共享工程的数字资源已形成包括图书期刊、舞台艺术、音乐美术、影视作品、科普知识和文物鉴赏等内容的分布式文化信息资源库群。每年提供不少于1万册的电子图书,每年采集制作1000小时舞台艺术、知识讲座、影视节目等视频资源;到2010年,共计100Th的数字资源向人民大众服务。网络的各个核心部分随着业务量的提高、访问量和数据流量的快速增长,其处理能力和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量的需求。升级或更新原有的设备并不能解决真正的问题,必须采用多台服务器提供网络服务分担网络请求才能提供处理大量并发服务的能力。因此,负载均衡技术成为工程网络平台建设的关键。

1负载均衡技术

负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。其关键是采用何种技术在服务器之间进行均衡的负载分配。

从负载均衡所采用的设备对象可以分为:软件负载均衡、硬件负载均衡。

软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 onnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。

软件解决方案缺点也较多,因为每台服务器上安装额外的软件运行会消耗系统不定量的资源,越是功能强大的模块,消耗得越多,所以当连接请求特别大的时候,软件本身会成为服务器工作成败的一个关键;软件可扩展性并不是很好,受到操作系统的限制;由于操作系统本身的Bug,往往会引起安全问题。

硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外,有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。

一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。

2文化共享工程平台负载均衡的硬件实施方案

河北文化信息资源共享中心采用FS-BIG-2400作为负载均衡器。其作用于网络四一七层,覆盖智能化流量管理,优化,负载均衡,应用交换以及安全套接层虚拟专网SSL. VPN,具备智能,灵活、紧凑、安全、高可用、高可靠和高可扩展性的特点。

FS-BIG-2400利用虚拟IP地址(VIP由IP地址和TCP/UDP应用的端口组成,它是一个地址)来为用户的一个或多个目标服务器(称为节点:目标服务器的IP地址和TCP/UDP应用的端口组成,它可以是Internet的私网地址)提供服务。因此,它能够为大量的基于TCP/IP的网络应用提供服务器负载均衡服务。FS-BIG-2400连续地对目标服务器进行L4到L7合理性检查,当用户通过VIP请求目标服务器服务时,根据目标服务器之间性能和网络健康情况,选择性能最佳的服务器响应用户的请求。如果能够充分利用所有的服务器资源,将所有流量均衡的分配到各个服务器,就可以有效地避免“不平衡”现象的发生。

FS - BIG - 2400是一台对流量和内容进行管理分配的设备。它提供12种灵活的算法将数据流有效地转发到它所连接的服务器群。目前根据不同网站的访问方式以及资源访问的频率,在负载均衡器策略选择中,我们分别采用了轮询(RoundRobin )、比率(Ratio )、最少的连接方式(LeastConnection)和最快模式(Fastest)这四种算法。

例如对~w,dhhc.net的访间,其对应的内网解析地址为:192.168.1.10,端口号为800

在负载均衡器FS的pool中设置虚拟服务器的IP地址和端口号:192.168.1.10:80;

设置目标服务器即真正提供WEB服务的服务器(共3个)的IP地址和端口号分别是:

10,1,1,1:80对应192,168.1.10:80

10.1.1.2:80对应192,168.1,10:80

10.1,1,3:80对应192.168.1.10:80

为其分配最快模式(Fastest)的算法,这样在每一次访问到来时,就直接传递给响应最快的服务器。负载均衡技术实施一年多的时间中,极大提高了服务器处理能力和计算强度,对今后的业务的增长打下了良好的基础。尤其是2006年8月开始举办的“我的数字生活”活动以来,访问量和数据流量的快速增长,河北省图书馆网和河北文化信息资源共享中心网每月近巧万的访问人次,网页的访问量达到500000个,在此期间我们的整体网络一直都在提供持续、高质量的服务。再一次验证了我们这种方案的正确可行性。

3文化共享工程平台负载均衡的软件实施方案

河北文化信息资源共享中心采用ndcnc内容管理系统的zeo架构作为资源发布平台。通过增加业务服务器分散用户请求服务,提高了访问性能和系统的稳定性。

ndcnc系统是在Plone内容管理系统之上开发的内容管理系统。Plone本身是Zope应用的产品,是基于CMF框架结构开发而成的。

Plone系统是基于Zope内容管理框架(CMF) ( CMF的Zope技术2002年获得Linux Journal应用服务器大奖,是一款最先进的应用服务器软件。)面向对象Python语言开发的内容管理系统的开放源代码系统;通过语言接口可以使用C,VC+ + ,Java,Jython等其他语言;系统支持集群和负载平衡、数据库分布管理等应用;支持跨平台应用,包括Window。系统、Liunx系统、FreeBSD系统、Unix系统和Solari。系统,底层支持Unicode编码体系;具有丰富的功能和依存各种准则:Java和Python脚本语言、SQL语句、RDBMS连接、Session管理、全文检索、虚拟主机、数据分散管理、镜像网站、用户权限统一管理、i18n统一国际化功能和内容状态控制;支持以下标准协议:HTTP , XML -RPC,WebDAV,FTP,ICP和SOAP。

Zope是框架结构开源软件,Zope全面支持对象管理:系统内部任何事物按照对象操作,标准数据库使用对象数据库ZODB(ZODB是目前最具竟争力的对象数据库,支持Undo、版本和事务处理),提供其他关系数据库连接功能支持PostgreSQL,MySQL,SQL Server,Oracle和DB2等产

Zope和Plone是开源软件,开放源代码的最大好处就是即使开发者在不积极介人的情况下,用户自身也可以进行维护、开发、委托第三方服务;性能价格比高可以减少财政的压力;可靠性好;弹性大;安全性好,故障以及安全报告可以得到及时更新和反馈;代码透明且可被修改。

下图是Plone系统框架结构:

ZEO是一个允许多个tope程序共同使用一个tope对象数据库的系统。通过使用ZEO系统,你可以一台或多台服务器上运行多个ZOPE实例,这样就可以将所有对网站的请求分散在多个服务器上。我们可以随着访问者不断增多而添加新的服务器,这样就可以保证服务的稳定性和可靠性了。更重要的是,采用了这套系统后,当我们的某一台服务器出现故障时,在我们修复这台服务器的同时,其他的ZOPE实例服务器仍然可以保证网站的正常访问。而且,ZEO系统保证所有的ZOPE实例呈现的数据都保持高度一致,即全部从同一个ZOPE对象数据库提取数据。 ZEO是一个客户端朋及务端架构,客户端是一个ZOPE实例程序(zeoclient),服务端是ZEO存储服务器(ZEO Storage Server),下图是其结构示意图:

ZEO SERVER安装

安装Zope 2.7,比如安装到如下目录:

c:\ndcnc\zope

添加ZEO实例

例如:添加到d: \ ndcnc \ zeo,使用8000端口:

python c:\zope\bin\mkzeoinstance.py d:\ndcnc\zeo 8000

拷贝初始数据库Data. fs到实例var目录中,名字为master-main, fs

配置zeo.conf,修改数据库区域的设置:

path$INSTANCE/var/master-main. fs

配置zeo. bat

)set PYTHON=C:\zope\bin\python.exe

)set ZODB_HOME=C:\zope\lib\python

)set CONFIG_FILE=d:\ndcnc\zeo\etc\zeo.conf

)set PYTHONPATH= %ZODB_HOME%

@ set RUNZEO = % ZODB_ HOME %\ZEO\runzeo.PY

“%PYTHON %”“% RUNZEO %”一C“%CONFIG_FILE%”%1 %2%3 %4 %5 %6 %7

ZEO CLIENT安装

确保Zope 2. 7已经安装,比如安装到c八ndcnc \zope目录中

安装tope实例,如:

python c八ndcnc、zope\bin\mkzopeinstance. py

创建实例到目录:d八ndcnc \ clientl

配置etc/tope. conf,修改数据库区域的设置

mount-point/

server (zeo的ip) :9000

cache一size 1000000000

storage mam

name master-mam

var$INSTANCE/var

cache一size 100000

配置runzope.bat

)set PYTHON=C:\ndcnc\Python\python.exe

)set ZOPE_HOME=c:\ndcnc\zope

@set ZODB3_ HOME=C:\ndcnc\zope\lib\python

)set INSTANCE_HOME二d:\ndcnc\zeoclient

)set SOFTWARE_ HOME=c:\ndcnc\wpe\lib\ python

)set CONFIC;一FILE=d:\ndcnc\clientl\etc\ zeo. conf

)set PYTHONPATH= %SOFTWARE_HOME% ) set RUNZEO=%ZODB3_HOME% /ZEO/runzeo. PY

“%PYTHON%”“%RUNZEO %”一C“%CONFIGFILE%”%1 %2 %3 %4 %5 %6 %7

至此所有安装配置结束,测试服务器和客户端。

下载