洪敏慎
上海市防汛信息中心 上海 200050
摘要:本文利用集群文件系统与ArcGIS Server相结合,通过使用LoadRunner进行模拟实验,验证了一种低成本的高并发缓存地图服务实现手段。
关键词:ArcGIS Server;并发访问;集群文件系统
Abstract:In this paper, the cluster file system and ArcGIS Server are combined to verify a low-cost and high concurrent cache map service implementation method by using LoadRunner for simulation experiments.
Keywords:ArcGIS Server;Concurrent access; Cluster file system
0引言
GIS的体系架构经历了以主机为中心,以桌面PC机为中心到基于Internet技术的分布式WebGIS体系结构三个阶段[1]。WebGIS技术的发展以及B/S开发模式的快速发展促进了GIS技术的普及,使得普通人也能操作使用GIS工具。然而随着用户的普及、增多,造成了GIS服务器端的服务压力越来越大,在高负载的情况下,服务器对客户端的请求处理速度就会越来越慢,轻则由于产生一些错误而抛弃一部分请求,重则导致服务器宕机无法提供任何服务。
1 ArcGIS Server的集群与高并发
1.1 ArcGIS Server
ArcGIS Server是Esri公司发布的一套WebGIS服务器,通过普通的 web 协议 HTTP(s)公开服务。ArcGIS Server上发布的GIS资源称为GIS服务。ArcGIS Server站点的作用是通过网络接收服务的请求、在服务器执行请求,然后将结果发回到请求这些服务的客户端应用程序。ArcGIS Server提供了一组用于发布、维护GIS服务的工具。
ArcGIS Server由以下组件构成:
GIS 服务器 - GIS 服务器用来执行对 web 服务的请求,按照不同的请求它可以动态绘制地图、运行地处理工具、查询各种空间数据,以及执行能够通过服务执行的任何其他操作。GIS 服务器可由一台服务器或多台服务器共同组建。这些服务器都具有访问共同的数据和配置文件的权限。因此,能够根据实际需要增加或减少参与的服务器数量。GIS 服务器通过普通的 web 协议 HTTP 公开服务。安装 GIS 服务器后,即会获得一组可以在应用程序中使用的 web 服务。作为对 GIS 服务器的补充,可以使用企业级 Web 服务器获得更多功能,例如托管 web 应用程序的功能。GIS 服务器可按组(称为集群)进行组织。按照服务器管理员的配置,每个集群都运行一个专门的服务子集。例如,可以创建一个集群运行所有地图服务,然后创建服务器的另一个集群(可能具有更高的处理能力)来运行地理处理服务。
网络适配器(Web Adaptor) – 用于集成 GIS 服务器与现有的企业级网络服务器。网络适配器通过普通 URL接收网络服务请求并将这些请求发送到ArcGIS Server站点上的各个 GIS 服务器。还可以使用其他类型的“web 网关”技术,例如,HTTP 负载平衡器、网络路由器或第三方负载平衡软件等来公开ArcGIS Server站点。在一些应用场景中,可以将 网络适配器与已有的负载均衡解决方案结合使用。
Web 服务器 - Web 服务器用来托管 Web 应用程序,并为 ArcGIS Server 站点提供必要的的安全性保护和负载平衡能力。
数据服务器 -用以存储GIS数据、ArcGIS Server站点各种配置、运行信息并供每个GIS服务器访问。其中GIS数据可以独立存放只基于关系型数据库的空间数据引擎,而ArcGIS Serve站点配置运行信息只能以文件形式存放在数据服务器。无论选择哪一种方法,该数据都包含以服务形式发布到 GIS 服务器上的所有 GIS 资源。这些资源可以是地图文件、globe、定位器、地理数据库等。
图1 ArcGIS Server架构图
1.2传统部署方式及瓶颈
在ArcGIS Server架构中,可以方便的添加作为GIS计算节点的GIS Server节点来实现水平扩展,从而提高整个平台的服务质量。但是用来存放站点配置信息、切片缓存的数据服务器只能有一个。这就造成了当为了提高服务质量而扩展GIS Server节点数量时,数据服务器的I/O压力也就随之上升,各个GIS Server节点之间互相争夺数据服务器读写权限,从而使得数据服务器的I/O能力成为了整个系统服务能力的瓶颈。
按照ArcGIS Server产品白皮书建议,数据服务器大多采用NAS设备以NFS或者CIFS/SMB协议提供文件共享给各GIS Server节点访问使用,然而这种共享协议虽然实现了网络共享功能,但是本身并不支持并行访问,因此其I/O性能极其有限,并不能很好的应对当前互联网环境下的高并发应用场景。以至于在部署实践时往往会发生随着GIS Server节点的增加,整体服务质量不升反降的现象。
1.3 高并发
高并发是基于网络的分布式系统架构设计中必须重点考虑的能力,应该通过设计保证系统能够同时并行处理大量用户请求。常用一些指标来衡量高并发能力,如响应时间,吞吐量,并发用户数等。响应时间是系统对请求做出响应的时间。吞吐量是单位时间内处理的请求数量。并发用户数是同时承载正常使用系统功能的用户数量。
2集群文件系统
通过提高数据服务器的I/O能力进而提高整个ArcGIS Server平台的服务质量可以从软硬件两个方面入手。在硬件方面可以通过使用固态硬盘来代替普通机械硬盘从而获得高I/O能力,但是由于空间数据往往占用空间较大,在生产实践中大容量企业级固态硬盘的价格又相对较高,从而抬高了整个系统平台的造价成本。因此,本研究提出引入集群文件系统的软件技术方案,在不额外增加硬件投入的情况下提高ArcGIS Server平台的服务质量。
集群文件系统是指运行在通过特定的方式相互通信的多台计算机上,从而将这些计算机上指定的存储空间资源整合、虚拟化并对外提供文件访问服务的一种文件系统。集群文件系统与常见的NTFS、EXT等本地文件系统的设计初衷不同,集群文件系统是为了水平扩展计算资源,提供高性能的批处理和并行访问能力;而本地文件系统运行在单机环境,仅仅用于管理块和文件之间的映射以及文件属性。集群文件系统往往采用分布式锁管理并行访问,可以实现多个操作系统载入同一个文件系统的日志区同时对一个文件系统在同一时间内读写数据,从而实现直接从集群中任意一个或者多个节点同时收发数据,做到并行数据存取,加快速度。因此集群文件系统,具有高性能,高可扩展性,高吞吐量和易用性等特点[2]。
2.1 OCFS
Oracle Cluster File System(OCFS)是Oracle公司开发的用来存放数据库相关文件,如数据文件、控制文件、在线日志文件、归档日志文件等而开发的一种集群文件系统,其设计初衷是为了让Oracle 数据库RAC的用户回避直接与存储裸设备交互。目前OCFS已经升级至第二代,即OCFS2,除了原有的存放数据库相关的文件、oracle二进制文件和配置文件外,OCFS2被设计成为一种更为通用的文件系统,从而可以存放所有的数据文件。OCFS2是一种基于共享磁盘的集群文件系统,通过在共享磁盘上创建OCFS2文件系统,从而让集群中的其它节点可以对磁盘进行并行读写操作。OCFS2由一个位于VFS之下和Ext4同级别的实现文件系统功能和实现集群节点管理功能两部分组成。
2.2 GFS
Global File System (GFS)是一个基于Linux的,领先的,开放源代码的,POSIX兼容的集群文件系统和卷管理系统。GFS支持所有主要服务器和存储设备,如本地磁盘、iSCSI设备和光纤存储。和其它集群文件系统相比,GFS有着最强大的功能,广泛的支持和最好的性价比。GFS可使多台服务器可以同时读写在光纤存储/iSCSI上的同一个文件,提供了更高的文件并发访问性能,降低了系统的复杂性和数据冗余备份的成本,保证了系统的数据完整性和统一性。GFS具有防止单点故障的高可用性能力,可以为提供从一台到上百台运行Linux的服务器提供服务,同时可以方便地和Linux上的各种应用程序保持兼容,协同工作。当然GFS也可以仅仅作为集群中的共享文件系统使用,而集群管理功能由其他的专业集群管理软件提供。GFS文件系统可以直接构建在物理分区或者裸设备,也可以构建于LVM逻辑卷。而物理介质则可以为本地磁盘,iSCSI设备,或者光纤存储。GFS是基于64位构建的文件系统,因此理论最大容量支持可以达到8EB。GFS的出现,使得数据存储的架构复杂性极大的降低;对整个集群部署或者应用程序升级,只需一次操作便可完成;减少了冗余的数据备份;简化了备份操作和灾难恢复的工作量;无缝的改变集群规模,可动态增加服务器或者存储[3]。
3实验设计及测试环境
3.1实验整体设计
本次实验基于WebGIS的B/S模式,分别利用NFS、Ocfs和Gfs技术部署三套ArcGIS Server,然后利用测试工具模拟出大规模并发用户分别对部署在传统文件共享服务上的ArcGIS服务和部署在集群文件系统上的ArcGIS服务进行密集并发访问,从而获取相关服务质量数据。
3.2实验环境部署
本次实验全部在虚拟化环境上部署,ArcGIS Server软件采用10.4的linux版本,采用两台GIS服务器,一台负载均衡服务器,每台虚拟服务器2个虚拟CPU、4G内存的最小架构配置方案。数据存储方面采用NexentaStor作为软件定义存储方案,能同时提供iSCSI、NFS、SMB/CIFS等多种协议。NFS方案采用Redhat Linux6作为操作系统,系统自带NFS客户端;Ocfs方案采用Oracle Linux6作为操作系统,自带Ocfs2客户端, Gfs方案采用Redhat Linux6作为操作系统,自带Redhat版本的Gfs2客户端。
4实验数据及分析
4.1客户端测试工具及测试方法
LoadRunner 是一款的企业级负载测试工具,常用以预测系统行为和性能。LoadRunner能够模拟成千上万用户发出并发访问请求负载及实时性能检测从而来查找和确认系统中存在的问题,从而最大限度的缩短测试时间, 优化性能和加速应用系统的研发迭代周期。LoadRunner 由录制编辑脚本的Virtual User Generator、布置执行测试场景的Controller以及对测试结果进行分析Analysis三部分组成,。用 LoadRunner 进行负压力测试的流程通常由计划、脚本创建、场景定义、场景执行、监视执行和结果分析这五个阶段组成[4]。
ArcGIS Server的地图服务可以分为缓存地图服务和动态地图服务。缓存地图服务就是对服务进行预处理,提前在设计好的比例级别下把地图切割成小块的地图切片,也叫瓦片(Tile),也就是小块的图片,保存在服务器上,这样当接收到请求时服务器就可以直接把已经生成好的瓦片拼起来返回给客户端,而不再动态实时的生成图片了。缓存地图服务技术减少了GIS 服务器和数据库服务器的负担。 动态地图服务就是当客户端向GIS Server 发出请求,要求查看地图时,GIS Server 就会根据请求的范围生成图片,再把图片返回给客户端。另一个客户端如果请求查看另一个范围的地图时,GIS Server 又会生成一次图片并返回给客户端。由于这两种地图服务代表了两种不同的计算模型,因此需要分开测试并做比对,因此需要各自创建自身的测试脚本。
在场景定义阶段,为避免实验受到偶发因素的干扰,测试场景设置成每3分钟50个用户进行递增,在用户数稳定后,连续访问3分钟,用户数达到300个后停止。
4.2测试数据及分析
在整个测试过程结束后,选取总吞吐量、平均吞吐量表征系统处理性能;选取总点击次数、平均每秒点击次数、总错误数来表征系统稳定性;选取平均响应时间、最大响应时间、响应时间标准差、90%响应时间来表征系统响应时间。
在系统处理性能方面,通过对比表1中的数据发现Ocfs和Gfs两套集群文件系统平台的吞吐量达到了NFS平台的6-7倍;在系统稳定性方面,通过对比表2数据可以发现虽然三套测试平台全部没有错误发生,但是Ocfs平台和Gfs平台的点击次数是NFS共享平台的6-7倍,这意味着虽然在18分钟的测试中都没有错误,但是两套集群文件系统平台发送了更多的请求。在系统响应时间方面,通过对比表3中的数据可以发现集群文件系统的平均响应时间都控制在2秒,且标准差在1秒内,而NFS共享平台平均响应时间超过需要8秒,标准差接近5秒。由此可见,在访问已经完成切片缓存的地图服务的场景下,两种采用集群文件系统的测试平台的服务质量相对NFS平台具有巨大的优势。
通过对比表4中的数据发现,在系统处理性能方面三套平台差距不大;在系统稳定性方面NFS平台没有发生错误,而两套集群文件系统平台都有错误发生;在系统响应时间方面,虽然三套测试平台的平均响应时间差距不大,但是两套集群文件系统平台的最大响应时间都是NFS平台的2倍多。由此可见,在访问动态地图服务的场景下,两种采用集群文件系统的测试平台相对NFS平台并没有任何优势,反而在稳定性上有所落后。
5结论
通过对ArcGIS Server系统服务质量中用户关心的指标实验数据比对分析,验证了在同等的硬件及架构下,在缓存地图服务使用场景中,使用集群文件系统作为数据服务器存储的ArcGIS Server平台系统响应时间更短,系统可靠性更强,服务器的处理性能更好,能够以较低的成本极大的提高缓存地图服务的质量。
参考文献:
[1] 宋志豪,徐柱,穆永磊. 基于云计算和RIA的WebGIS研究和试验[J]. 科技创业月刊,2011(12):133-136
[2]马俊, 杨树军. 高性能集群文件系统的研究[J]. 计算机工程与设计, 2006, 27(013):2400-2402.
[3]畅文丁. 浅谈Linux集群文件系统(GFS)应用[J]. 中国传媒科技, 2011(08):111-113.
[4] 郝炜. 性能测试工具LoadRunner介绍[J]. 电脑知识与技术, 2008, 2(17):170-173+176.
作者介绍:
洪敏慎(1983.12.04),性别:男;籍贯:浙江鄞县;民族:汉;学历:本科、工程硕士;职称:工程师;研究方向:水务信息化;