APP下载

私有云框架下的GIS栅格数据存储与显示研究*

2015-04-19梁星西安测绘总站陕西西安710054

地矿测绘 2015年2期
关键词:私有云

梁星(西安测绘总站,陕西西安 710054)



私有云框架下的GIS栅格数据存储与显示研究*

梁星
(西安测绘总站,陕西西安710054)

摘要:探讨了企业内部的私有云框架设计和局域网环境下分布式文件系统的建立,并分析了在分布式文件系统中如何对GIS栅格数据进行影像金字塔存储,然后提出了利用基于G/S模式的Map/Reduce技术实现数据下载的负载均衡策略。实现了局域网环境下GIS栅格数据的高性能访问,研究成果具有一定的实践意义。

关键词:私有云; GIS栅格数据;分布式文件系统;影像金字塔

0 引言

GIS栅格数据是海量数据,需要大量的存储空间。对于企业级栅格数据而言,共享主要采用文件映射、网络数据库和WebGIS等方式,但这些方法存在缺乏统一调度、网络传输受阻、服务器负荷大等问题。云构建方式无疑是目前海量栅格数据共享的最好方法。栅格数据存储在云端即分布式文件系统中,通过服务器统一调度,对大量客户端提供高性能访问服务。目前云计算研究主要在公有云方面,对私有云研究比较少。因此,本文提出私有云的企业级栅格数据共享思路。通过构建私有云框架、设计分布式文件系统以及栅格数据的金字塔存储,最终实现了局域网环境下的栅格数据的高性能访问。

1 国内外云GIS研究成果

国外的云GIS研究起步较早。不管是在产品的架构还是产品的最终运营模式,国外都有一些公司进行了较好的实践,能够在云计算的平台上提供具有空间属性的数据和服务。ESRI公司是地理信息行业一家实力强大的公司,多年来一直致力于研究云GIS平台。旗下产品ArcGIS Online能够将GIS平台部署在亚马逊弹性云中,并提供云GIS服务。

国内的GIS行业如雨后春笋般发展,云GIS当然也发展迅速。比较成熟的案例是国内的SuperMap SGS平台。它是一个在开源的基础上开发的云计算架构,能够完成对基础地理信息要素的全面集成,对OGC标准的WFS、WMS、WCS等进行较好的支持[1]。

2 私有云框架设计以及文件下载访问策略

相对于公有云拥有成千上万个客户,系统庞大,私有云的客户则唯一。私有云致力为某一目标客户构建,因此其能够最大程度地促进安全性的控制、数据的管理、服务质量的提升。一个企业由于拥有基础设施,因此它可以根据需要来确定如何在基础设施上部署应用程序。企业的数据管理中心的防火墙内可以部署私有云,安全的主机托管场所也可以部署私有云。本文设计的私有云框架示意图,见图1。

私有云框架由局域网云和若干客户端组成。局域网云运行于企业内部的局域网中,由一个总服务器和若干存储数据的数据节点组成。客户端通过连接总服务器获取分布式文件系统中的栅格文件信息和存储的数据节点列表;总服务器负责处理来自客户端的请求,当客户端要求下载栅格数据时,查询分布式文件系统是否有合法栅格数据和储存的数据节点列表,并向分布式数据服务器集群查询数据节点的可用性,最后将可用的数据节点的列表发送到客户端。客户端获得服务器发送过来数据节点的ID、IP地址、端口号、CPU状态、可用内存、剩余空间等信息,将栅格下载任务分成若干并行的小数据块并启动任务调度策略,向数据服务器集群请求并下载数据。客户端与分布式服务器集群的数据传输使用的是客户端聚合服务思想,能高效完成下载任务。

在私有云框架中,基础的数据传输部分采用“完成端口”模型架构。“完成端口”模型虽然是迄今为止最复杂的一种I/O模型,但是如果一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,会使系统达到最佳性能。在创建完成端口时,可以指定在CPU能够承受的的线程数在该完成端口上运行。当某个线程调用Sleep或者WaitForSingleObject函数时,会进入暂停状态,因此为了使系统达到最佳性能,在程序设计中往往会创建比之前指定的线程数要多的线程,一旦某个线程进入暂停状态,就会启用剩下的线程来取代它的位置。

图1 私有云框架Fig.1 Private cloud framework

3 分布式文件系统的建立及影像的金字塔存储

3.1分布式文件系统的建立

文件系统结构和文件数据组成了分布式文件系统。文件系统结构以记录为单元存储于总服务器中,主要包括系统目录数据、文件列表数据。它们的记录结构,如表1、2、3所示。

表1 系统目录记录格式Tab.1 System directory record format

表2 系统文件记录格式Tab.2 System files' record format

表3 数据节点的记录结构Tab.3 Data nodes' recording structure

文件数据分布式存储于数据节点,在数据节点中,对每一个文件进行分块,每个小文件分别存储到不同的数据节点上。分块之后的文件储存,如图2所示。

图2 数据节点的文件存储图Fig.2 File storage figure of data nodes

3.2影像的金字塔存储

在客户端用户需要浏览不同精度的栅格数据。当地图放大时,显示空间精度提高,显示范围减小;当地图缩小时,显示空间精度降低,显示范围变大。为提高数据查询速度和传输效率,分布式服务器中的栅格数据需建立影像金字塔。

传统算法的影像金字塔的构建过程一般是先将原始影像进行重采样生成较低分辨率的影像并保存为一个新的影像文件,然后对该影像文件再进行重采样生成更低分辨率的影像,依次进行,直到完成预定的分层。最后再对每层的影像进行切割并保存成切片文件。需要说明的是,由于影像的数据量非常大,所以在生成新的一层影像数据时,一般需要多次加载前一层的影像数据才能完成。

按照图2所示的流程建立影像金字塔,能够有效减少输入输出的次数,大多数运算是在内存中进行的。

图3 影像金字塔算法处理流程Fig.3 Algorithm processing flow of image pyramid

算法具体流程为:首先加载原始数据,然后按照设定的分辨率进行重采样计算,生成新的栅格数据。如果不想再生成其他分辨率的栅格数据,则退出程序,否则继续进行重采样计算。该算法依托内存中存储的数据进行多次采样计算,能够尽可能的减少执行输入输出步骤,节省执行时间。只有“加载原始影像数据”和“保存切片文件”需要执行输入输出步骤,其它处理都是在内存中一起完成的。经测试,在完成相同的影像金字塔切割任务时,本文算法比传统算法至少可以节省20%的时间。

4 栅格数据云下载与数据显示

4.1栅格数据云下载

栅格数据云下载采用G/S模式下的Map/Reduce技术。Map/Reduce的整个过程是由映射(Map)以及重组(Reduce)两个步骤所组成,运行时系统会将资料进行切割,并分配给不同的运算主机进行处理。

G/S模式,是一种在互联网中呈网状的空间信息的服务模式,即地学浏览器/分布式的空间数据服务器集群模式。它按照“请求”—“聚合”—“服务”的“客户端聚合服务”的工作机制,使用HGML对网络上的数据类型多样、数据量巨大的数据依次进行存储—组织—交换—调度—展示等步骤,最终在客户端实现数据和功能的合成,生成并提供所需的空间地理信息服务[2]。

由于IT行业的发展,PC机的运行性能有了成倍的增长。现在在客户端可以完成以前在服务器端完成的工作。基于“客户端聚合服务”工作机制,能够在不同的数据节点上只下载整体数据的一部分,在客户端完成整个数据的合成。在客户端获取到服务器发送过来的数据节点列表后,不再与服务器进行交互,因此能在很大程度上降低服务器的压力,提高整个私有云的运作效率。服务器根据客户区的大小和地图显示的分辨率这两个参数,查询当前分辨率下的合法数据。

4.2栅格数据显示

根据客户端浏览器的地图显示范围和显示分辨率,获取的始终为屏幕显示范围内的影像金字塔某级的栅格数据。在客户端使用MFC中的StretchDIBits函数实现该栅格数据显示。StretchDIBits函数原型为:

int StretchDIBits(HDC hdc,int XDest,int YDest,int nDest-Width,int nDestHeight,int XSrc,int Ysrc,int nSrcWidth,int nSrcHeight,CONST VOID * lpBits,CONST BITMAPINFO * lpBitsInfo,UINT iUsage,DWORD dwRop)[3];

根据StretchDIBits函数,事先计算显示栅格数据在屏幕分辨率下所需的位图大小。根据位图大小,创建对应的BITMAPINFO数据结构和lpBits字节数组。最后,将客户端下载的显示栅格数据逐行投影至字节数组中,实现栅格数据的显示。

5 系统测试

本次栅格数据下载的测试是依据客户端的显示区域大小和具体分辨率进行的。在3台CPU为酷睿双核T6400,内存为2G 的PC机上,设置6个数据节点。依次增加数据节点的个数,最大的数据节点数目为6。在客户端配置网卡为瑞昱RTL8186(P)/8111C(P)PCI-E Gigabit Ethernet NIC,最大下载速度为10 MB/s。由于实验条件的限制,测试结果受测试人员当时的状态,局域网的网络流量,测试机器的运行状态等诸多因素的影响。以下载大小为150 MB的GIS栅格数据为例,其下载速度与数据节点的数量关系,如表4所示。

表4 私有云栅格数据下载测试Tab.4 Raster data download test of private clouds

从表4可以看出:数据的下载速度随数据节点的个数增多而增加。当数据节点的数目由一个节点变为两个节点时,下载速度有了明显的提高,较好的体现了云下载的效果。但基于客户端网卡流量的限制,数据的下载速度会不断接近上限,即趋近10 MB/s的下载速度。

6 结束语

本文在“云计算”的热门研究背景下,以GIS栅格数据在私有云框架下的存储与显示为中心,系统阐述了企业级云框架的设计、分布式文件系统的建立、影像金字塔的构建以及基于G/S模式的Map/Reduce栅格数据下载模式。最后,以一幅GIS栅格数据为例,测试数据节点下载效率。测试表明,当数据节点增多时,栅格数据下载速度不断提高,直至客户端网卡的流量上限。因此,本文提出的私有云框架下的栅格数据云下载能够在企业内部环境下高效共享和显示GIS栅格数据,具有一定的理论价值和实践意义。

[参考文献]

[1]贾萍,刘聚海,王远.基于云计算及物联网的GIS综述[J].国土资源信息化,2012(6):12-13.

[2]薛静.基于虚拟化的云计算平台中安全机制的研究[D].西安:西北大学,2010.

[3]赵薇,耿晴.云计算在GIS系统模型中的应用[J].地理空间信息,2011(6):8-9.

Study on GIS Raster Data's Storage and Display Under Private Clouds Framework

LIANG Xing
(Xi'an Surverying Station,Xi'an Shanxi 710054,China)

Abstract:This paper discusses the design of the private clouds framework and the establishment of distributed file system on local area network for the company,proposes the way to store GIS raster data on the distributed file system using Image Pyramid Model,and studies the method of how to achieve load balancing when downloading data based on Map/Reduce technology under G/S model.We have achieved the high performance access of GIS raster data on local area network,and the research results have some certain practical significance.

Key words:private clouds; GIS raster data; distributed file system; image pyramid

作者简介:梁星(1989~),男,湖北当阳人,助理工程师,现主要从事地图制图与GIS开发方面的工作。

*收稿日期:2015-01-25

文章编号:1007-9394(2015)02-0001-03

文献标识码:A

中图分类号:P 208; P 209

猜你喜欢

私有云
企业创新私有云平台的搭建探究
高校私有云的架构和实施
虚拟网络建设思考与实现
基于虚拟化技术的云服务平台的构建与管理
私有云在医疗图像信息存取系统中的应用
金融私有云网络架构研究
高职院校私有云建设的关键技术研究
私有云的研究现状与发展趋势
利用JMX技术构建企业私有云平台的探索与研究
基于私有云的DRX技术教务管理系统优化设计