“云存储”助力构建海关报关单证电子档案库
——基于OpenStack对象存储技术的集群存储系统的设计和实现

2013-08-05 12:01
海关与经贸研究 2013年1期
关键词:报关单云存储结构化

吴 非

一、构建海关报关单证电子档案库的必要性

目前海关对于报关单证的档案管理仍采用 “纸质归档、人工管理”的模式。海关业务现场将理单后的纸质报关单证移交到档案保管部门,归档、调档等工作全部由档案保管部门人工完成。近年来随着海关报关单量连年攀升,纸质档案的保存和调阅面临着巨大的压力。日常管理中,纸质报关单证存在着流转过程散失、火灾、水侵、损坏等风险,删改单、涉案调查等需要将纸质档案借出的,未知风险更不可测。此外,纸质报关单证档案管理无法满足档案实时在线调阅的要求,信息流转存在滞后性,且受纸质报关单调档环节多、流转时间长等因素制约,作为海关重要资源的原始报关单证的利用效率低下。

构建海关报关单证电子档案库是缓解纸质单证库存及管理压力的现实选择。通过企业级的高速扫描仪将完成理单的纸质报关单证转换为电子图像,并且结合光学文字识别(OCR)技术进一步精确捕捉扫描信息(如报关单号),从而形成报关单证电子档案,并统一保存到电子档案库。电子档案确立法律上的有效地位后,纸质档案可逐步退出,有效解决库存所需场地不足的问题。在此基础上可以实现报关单证档案的在线实时调阅,强化报关单证的二次利用。通过与现有海关应用系统进行对接,延伸系统应用,为海关各部门实现及时监控创造有利条件,有效提高防控三大风险的能力。

扫描后的电子文件数据量巨大。按上海海关业务量测算,日均报关单约7万份,扫描单证70万张,每张单证以300KB计,每日需要存储200GB,每年需要近50TB。考虑到电子档案需要长期存放和在线调阅的需求,后台存储无疑是此项目的关键。

二、非结构化数据和集群存储

(一)非结构化数据

非结构化数据是相对于结构化数据而言的,结构化数据一般存放在数据库中,具有统一的结构和格式,可以通过二维表结构逻辑来表达,其它如图片、音频、视频等无法使用统一结构来表示的数据则归为非结构化数据。通过扫描形成的海关报关单证电子档案属于非结构化数据。非结构化数据一般具有以下特点:

一是数据增长快。结构化数据往往是Byte或KB级别,而非结构化数据的增长量在MB级别,反映到存储容量上,存放结构化数据的数据库一般在GB级别,而非结构化数据动辄若干TB(1TB=1000GB),甚至达到PB(1PB=1000TB)级别。

二是吞吐需求高。对结构化数据的访问较一般的频度高,每次读写数据量小,每次数据库读写操作的数据量在若干Byte到KB,而非结构化数据的访问特点是读写相对不频繁,但一次读写操作涉及若干MB甚至GB的数据。

三是文件级别存储。结构化数据是以数据块(Block)进行存储,而一般情况下,非结构化数据存放的是文件(File)。

(二)集群存储和云存储

据IDC①IDC:International Data Corporation(国际数据公司),全球著名的信息技术、电信行业和消费科技市场咨询、顾问和活动服务专业提供商。在IT领域的市场跟踪数据已经成为行业标准。的报告显示,现在全球数据量每18个月就要翻一番,每年全球产生的数据量已经高达40EB(1EB=1000PB),这些数据主要来自非结构化数据。面对日益激增的非结构化数据需求,传统存储面临着越来越多的问题。SAN(Storage-Area Networks)用于块级别存储,如果要完成对文件级别的非结构化数据的读写,需要用文件服务器通过SCSI或FC协议来进行,这样无疑会增大了文件服务器的压力,服务器的处理能力也会成为整个系统架构的瓶颈。此外,SAN虽具有很高的性能,但构建和维护相对复杂。NAS(Network-Attached Storage)用于文件级别存储,通过自有的文件系统对文件进行控制,但是受到其聚合设备(NAS头)的性能限制,NAS的整体性能一般低于SAN。无论是SAN还是NAS,传统存储由于受到其物理架构的限制,比如磁盘控制器、总线、内存、NAS头以及所连接服务器等,最终会对存储整体的容量和性能带来无法逾越的瓶颈。一旦遇到存储瓶颈,一般是通过更换更为强大的存储硬件这种解决方案,但存储的切换往往需要经历设备选型、购置、安装调试、复制或重建数据、应用测试等一系列工作,耗时耗力。

需要存储的文件将呈指数级增长态势,这就要求存储系统的容量扩展能够跟得上数据量的增长,甚至无限扩容。扩容过程最好要简便易行,对应用系统乃至计算中心的整体运行的影响应降到最低。此外,用户数量不断增加,应用需求不断丰富,尤其是对于非结构化数据访问请求的日益增加,要求存储系统也必须随着容量的增加而拥有线性增长的吞吐性能,这些显然都是传统的存储架构无法达到的目标。为了应对这些问题,“集群存储”作为一种新兴的存储体系架构应运而生了。

根据百度百科词条的解释,“集群存储”是指 “由若干个 ‘通用存储设备’组成的用于存储的集群,组成集群存储的每个存储系统的性能和容量均可通过 ‘集群’的方式得到叠加和扩展。”通用存储设备被称为存储节点(node),除了用于存储的磁盘外,还有单独的处理器、控制器、内存等组件。集群存储由多个节点组成,通过存储网络连接。集群存储一般没有主控节点,所有节点在定位和功能上没有分别,数据访问是通过分布式的操作系统进行统一的调度,分散到各个节点上去完成的,因此比较容易做到负载均衡,从而实现访问性能最优。最重要的是,集群存储由于采用开放式的基础架构,变更或扩展每个存储节点时无需对整个集群存储的架构进行调整,能够做到方便灵活地进行存储的扩容,一般均可达到PB级别。

在云计算时代,云存储成为今后存储发展的必然趋势。对于云存储的准确定义,目前业界没有一个公认的、权威的表述,百度百科词条的解释可供参考:“云存储是从云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。”简单地说,云存储要实现的目标是使用者可以在任何地方、任何时间方便地通过联网设备存取数据资源。从这个角度看,集群存储实际上是云存储从概念到现实的一种落地表现形式。

从构建海关报关单证电子档案库的需求来看,这是一个针对大量非结构化数据存取的项目。虽然试点期间只考虑存放三年内的数据量,但是从电子档案长期保存的趋势看,对于今后的数据增长较难预测,存储容量需要平滑扩展,因此比较适合采用集群存储。

三、关键技术OpenStack对象存储

云存储的实现一般有两种方式:一种是通过专用软件对现有分散的传统存储进行整合;另一种就是使用专用集群存储,比如EMC Isilon。第一种将传统存储进行整合的方式需要详细了解计算中心内现有的存储资源,在此基础上做出一个整体的规划,以充分挖掘现有存储资源的潜力,提高使用效率。第二种方式需要单独购置专用集群存储,但成本一般比传统存储要高。

作为一个独立的具有探索性质的项目,既不能对现有运行的其他应用系统带来影响,也不可能在项目初期投入过多,这两种方式都不太适合,因此在项目的架构设计过程中,项目组考虑了一种基于对象存储技术的服务器集群存储——OpenStack对象存储,这种技术通过对单位成本较低的服务器进行堆叠,组成服务器集群存储,在投入成本可控的情况下实现存储容量的自由扩展和数据访问性能的线性提升。

(一)对象存储的概念

不同于传统的存储系统中用文件或数据块作为基本的存储单位,对象存储中的基本存储单位是对象(Object)。一个对象实际上就是文件的数据和一组属性信息(metadata)的组合,这些属性信息可以定义基于文件的RAID参数、数据分布和服务质量等内容。简单地说,对象也可理解为一个容器,容纳了文件数据和基本的存储属性。文件被分解为若干个存储对象,并分发到一个或多个被称为基于对象的存储设备(OSD,Objected-based Storage Devices)上去。每个OSD都有自己的本地处理能力、内存和网络①在OpenStack对象存储中,每个OSD实际上就是一台Linux服务器。,OSD是整个分布式存储网络的核心。

这种存储结构带来的好处是可以实现数据的智能化管理,因为对象本身包含了元数据甚至更多的属性,比如对象使用状况的统计信息,这些信息可以用于数据访问的服务质量控制,并在此基础上实现访问动态分配,最终达到OSD间的负载均衡。

(二)OpenStack对象存储技术

OpenStack是由美国国家航空航天局(NASA)和Rackspace②Rackspace:全球三大云计算中心之一,1998年成立。在全球拥有10个以上的数据中心,管理超过64000台服务器。合作研发的云平台管理项目,包括HP、Intel、AMD、Microsoft、Cisco在内的诸多IT企业均参与其中。Open-Stack对象存储是OpenStack云项目的子项目,目标是使用标准的服务器集群为数千万亿字节的存取数据提供冗余的、可伸缩的数据存储。不同于传统文件系统和实时数据存储系统,OpenStack对象存储技术最适合的用例就是永久类型的静态数据的长期存储,如图片存储、虚拟机镜像等。海关报关单证的电子档案正是此类典型用例。

1.OpenStack对象存储的架构

OpenStack一般由代理节点(Proxy node)、存储节点(Storage node)、认证节点(Auth node)组成。三种类型节点的作用大致如下:

①Proxy node部署代理服务(Proxy Server),负责架构内组件间的相互通信以及客户端与集群存储的交互。根据客户端的请求,查询具体对象的存放位置,并转发给相应的Storage node。

②Storage node部署存储服务(Storage Server)和一致性检查服务(Consistency Server),Storage Server具体负责对象在磁盘上的存放,接收Proxy Server对于客户端读取数据的请求;Consistency Server负责查找并解决由数据损坏和硬件故障引起的错误,保证数据备份间的一致性。

③Auth node部署认证服务,目的在于实现OpenStack各个项目间的认证管理。

2.数据冗余和集群无单点

整个集群中用于存放具体对象的部分可以被规划成多个区(zone),每个区中包含若干个节点。对象被存储在节点上,每个对象在多个不同节点上留有备份(默认情况,每个对象会留有3个副本),备份均匀地分布在集群服务器上,从而保证了系统的稳定性和数据的冗余。集群存储可以通过增加节点来线性地扩充存储空间,对象本身包含的元数据和其他属性可以让系统自动完成数据迁移,使各节点重新达到平衡状态。

在集群中,存储的数据往往实现了冗余,但元数据信息的存储一般是单点,一旦出现问题,同样会对数据访问带来影响。而OpenStack对象存储中的各个节点完全对称,元数据和对象一起完全随机均匀分布的,同时也有3个副本,因此整个集群中基本上不存在单点故障①OpenStack对象存储技术不存在单点故障的理论依据主要来源于NWR策略。NWR是一种在分布式存储系统中用于控制一致性级别的策略。N代表同一份数据副本的份数,W代表更新一个数据对象时需要确保成功更新的份数,R代表读取一个数据需要读取的副本的份数。公式W+R〉N,保证某个数据不被两个不同的事务同时读和写;公式W〉N/2保证两个事务不能并发写某一个数据。假如把N设置成为2,那么只要有一个存储节点发生损坏,就会有单点的存在,所以N必须大于2。默认情况下,OpenStack对象存储的N=3,W=2,R=2,符合NWR策略。。此外,当一个节点出现故障时,OpenStack对象存储会从其他正常节点上复制数据对故障节点进行恢复。

3.REST API接口

OpenStack对象存储不能像传统文件系统那样进行挂载和访问,只能通过REST API接口来访问数据。REST(Representational State Transfer)②REST是一种轻量级的Web Service架构风格,通过HTTP协议对资源进行操作,获取、创建、修改和删除资源正好对应HTTP协议的GET、POST、PUT和DELETE方法,REST把HTTP对一个URL资源的操作限制在这四个方法之内。的实现和操作完全通过HTTP协议,降低了开发的复杂性。REST还可以利用Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。

4.与传统存储比较的相对优势

如表1所示,和传统存储相比较,OpenStack对象存储技术具有以下一些基本特性和相对优势。

表1 OpenStack对象存储的特性和优势

四、搭建电子档案库的具体做法和应用成效

(一)生产作业子系统、存储子系统和查询应用子系统

图1 各子系统及服务分解

海关报关单证电子档案库项目在进行系统设计时,分为生产作业子系统、数据存储子系统和查询应用子系统,各子系统又可细分为若干服务,如图1所示。

1.生产作业子系统,通过高速扫描仪对纸质单证进行集中扫描,生成电子图像后,由光学文字识别软件识别出单证报关单号,并建立以报关单号为索引的电子图像集合,再由人工进行单证审核和扫描质量抽检等环节,形成可交付归档的电子图像包。该子系统由生产服务器、客户端微机和高速扫描仪组成。客户端主要完成扫描前的信息录入、单证审核、质检、抽检以及作业流程管理等工作。生产服务器负责暂存可交付的电子图像和相关录入信息,记录生产日志,并进行生产系统的运行监控。

2.数据存储子系统,将生产子系统生成的暂存在生产服务器上的电子图像包通过存储服务上传至后台服务器,通过数据加密服务进行加密,并调用集群存储的代理接口传输给后台的服务器集群存储。集群存储采用OpenStack对象存储技术,存储代理服务接收加密后的电子图像数据包,分解成相应的若干对象,每个对象复制成为3份后,存放在集群存储内的不同服务器节点上。

数据存储子系统由1台代理服务器、1台数据库服务器和5台存储服务器组成。代理服务器用来部署数据存储代理服务。数据库服务器部署的SQLite数据库是存放OpenStack对象存储账号和容器管理进程的组成部分,加解密的服务也部署在该台服务器上。5台存储服务器组成集群,集群共划分为5个zone,每个zone就是1台存储服务器,每台服务器配12块2TBSATA磁盘,5台存储服务器磁盘满配容量可达120TB,由于存放3份数据,因此可用容量为40TB。项目试点时,会根据不同关区区分进出口分步推进,因此在系统设计初期只投入了5台存储服务器,之后可以根据业务需要,增配磁盘或者服务器。

3.查询应用子系统,通过REST API接口从存储子系统中读取并调阅相关的电子图像,通过B/S方式完成海关业务部门提出的调档、打印、流转、出证等具体工作。

(二)系统架构和安全设计

如图2所示,系统整体处于海关内部网络,数据存储子系统和查询应用子系统的服务器部署在主机房内,受场地限制,生产作业子系统部署在郊区纸质档案库房的扫描作业现场。试点初期,生产作业和数据存储子系统间通过30Mbps网络连接进行数据传输。海关用户通过个人办公电脑以浏览器方式进行单证图像调阅和流转。

图2 系统网络架构

根据上海海关信息系统安全等级保护的相关要求,各子系统均被划分为独立的安全域,并在网络、数据、应用、客户端及作业场地等层面实施了相关的安全控制策略。网络层面,各安全域间由防火墙隔离,在系统模块间通信多采用HTTPS方式,信息在每个环节的传输都采用TLS安全保护;数据层面,扫描文件在静态存储时,系统采用数据加密措施,加密算法为业界公认的AES-256,可以防止因为物理硬盘丢失而造成电子信息的泄露;应用层面,基于用户所在关区、部门、职务,设计完备的授权体系,系统提供用户登录及操作日志记录,以及报关单证电子档案借阅、归还、加锁等相关操作的日志;客户端层面,所有客户端操作均在浏览器环境下进行,工作人员只能从事自己权限内的工作,本地并不留存电子数据。客户端的外部接口均采用物理或软件方式禁用,与外网没有任何连接,以保证数据的安全性,防止数据外泄;作业场地层面,部署24小时视频监控。

(三)系统应用成效

项目上线后,日均处理报关单证12000份。每日生成的电子图像文件约20万个,数据容量60GB。报关单证电子档案库的建成极大地提升了海关对于报关单证这一宝贵资源的再次利用能力,删改单、稽查、缉私取证等以往需要耗费较多人工的调档过程变成了在线完成,调档时间从平均2天减少到不足2秒。据统计,单证档案的调阅率由原来的0.3%显著提高至3.5%。

电子档案的调阅在线完成,基本上可以杜绝纸质档案的借出,从源头上严格控制住纸质档案出库时所面临的被损毁甚至被篡改的风险。电子档案库开放访问接口,允许其他作业或监控分析系统调阅档案数据,可以进一步拓展应用范围,上海海关已经实现了电子档案库与海关廉政风险预警处置系统(HL2008)、报关单批量复审系统等的对接,为有效防控执法、廉政风险,提高相关应用系统使用效能提供了有效的辅助手段。

此外,除了现场批量扫描纸质报关单,系统还预留了电子图像数据导入接口,便于今后通过光盘或其它形式直接递交的电子图像归档入库。将电子档案库前推至通关作业环节前,甚至可以逐步实现与分类通关作业无纸化的无缝衔接,为实现最终全程通关无纸化这一目标积累有益的经验。

五、结语

海关报关单证电子档案库项目是上海海关对于应用集群存储系统乃至今后搭建云存储和云计算环境做出的有益探索和实践。与传统存储相比,应用OpenStack对象存储技术在存储设备投入相对较少的情况下,实现了海量非结构化数据的有效存储和冗余,并且在保证数据访问性能的前提下,具备良好的扩展性。

当然,作为新兴技术,集群存储、OpenStack对象存储等都还面临一些问题,比如海关各层面对于这些技术的认知程度还不高,技术应用范围还不够广泛,技术本身可能还需进一步完善等。但随着云计算时代的脚步日益临近,云存储必将成为今后存储服务的发展趋势。对此,海关科技部门确有必要提前准备,加强对于新知识、新技术、新产品的学习和研究,以迎接全新的技术管理理念和模式的变革。

〔1〕Lambert M.Surhone Marian T.Tennoe Susan F.Henssonow.Openstack 〔M〕.BetaScript Publishing.2011.

〔2〕Openstack维基.http://zh.wikipedia.org/wiki/OpenStack.

〔3〕Openstack Object Storage Administrator Manual-CACTUS.http://docs.openstack.org/cactus/openstack-objectstorage/admin/content/index.html.

猜你喜欢
报关单云存储结构化
促进知识结构化的主题式复习初探
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
“全国海关通关一体化”背景下 新版报关单结构分析及新增项目填报
租赁贸易货物报关单填制分析
释疑解惑
加工贸易下货物进出口报关单填写常见错误解析
基于云存储的气象数字化图像档案存储研究
云存储技术的起源与发展
基于云存储的数据库密文检索研究