引言
云计算作为一种先进的计算方式,在信息服务和科研领域火热升温,并对大规模数据运算和存储产生深远影响。一方面,大规模数据处理需求日益增长;另一方面,媒体数据总量也在急速增长,据国际数据公司(International DataCorporation,IDC)在2008年的调查报告中估计,2007年全球信息总量达到了281EB,2012年将达到1800EB。数据规模不断膨胀是信息社会发展的必然趋势,数据存储为信息生活提供巨大便利的同时,给现有的存储技术带来前所未有的压力。
设计无限大的存储空间、无限制的I/O带宽和更高的性价比的理想存储系统是缓解存储压力的总体目标,而本文研究目标更加具体,针对云存储运算环境,设计非结构化数据存储服务系统,并就该系统进行可靠性建模,设计可靠、高效的存储结构和算法,提升非结构化数据存储服务质量。
1 云存储现状与相关研究
云计算是一种以数据为中心的服务密集型计算,而云存储是云计算的底层数据支持环境,为云计算提供高可用、高可靠、运营成本低的数据存储服务。目前,云存储服务分为个人级应用和企业级应用。企业级的云存储服务主要用于空间租赁、远程数据容灾和视频监控存储支持。云存储服务延用传统的集群技术、网络计算和分布式存储技术,将网络中大量低廉的计算设备进行有机集成,避免了盲目扩张滥建。
目前,数据分为结构化数据和非结构化数据,两类数据区别在于:前者一般采用数据记录存储,而后者普遍采用文件系统存储。其中以二进制大对象(Binary Large Object,BLOB)数据为代表的非结构化数据存储应用频率最高,如MAIL服务中的附件管理、各种网络磁盘和视频监控数据管理等,这类数据的特征体现在:体积大、增长快、多样化。
迅速膨胀的非结构化数据引起了业界的广泛关注,运用云存储服务管理非结构化数据则是备受关注的焦点。文献[1]设计了一种存储中间件,使用关系数据库管理系统(Relational Database Management System,RDBMS)IBM DB2 9将海量二进制数据嵌入到XML文档中,最终将XML存储到数据库,这种方法不适合体积较大的BLOB数据;文献[2]通过建立数据生成和开发模型(DataGenerationand Exploitationmodel,DGE),借鉴结构化方法管理非结构化数据。实际应用中需了解数据建模和二次开发,技术层次要求高而难以掌控;文献[3]提出一种基于BUD(Bank of Unstructured Data)架构的新技术,该技术通过Free-Table在最终用户和物理实体间形成面向单元的云存储结构,而不再使用基于列存储的关系表管理非结构化数据,但仅提供了概念视图,并未最终实现;文献[4]则设计了称为Clouder的存储结构,系统在同一管理域中管理数以千计的对等网(Peer-to-Peer,P2P)存储节点,采用封装应用程序编程接口(Application ProgrammingInterface,API)实现存储接口,但功能不够丰富且可靠度差。
2 非结构化数据网络存储架构
2.1存储服务层次模型
以上研究为非结构化数据管理奠定了理论基础,仍急需一套切实可行的存储解决方案。本文提出分层的网络结构管理非结构化数据,由上至下划分为5个功能层,分别是应用层、会话层、数据层、路由层和物理层,如图1所示。
图1 非结构化数据存储网络结构
以上提出的5层中,应用层提供非结构化数据应用接口,这些接口由数据存储服务商开发的各类存储应用中展示出来,如各种在线存储、网络磁盘、视频数据托管和软件下载服务等。此时,用户面对的是虚拟的、容量可无限扩展的云存储空间,用户提交数据时无需考虑存储空间大小和数据的物理位置。
会话层负责用户管理、权限分配、空间分配以及存储安全策略,该层根据不同的安全级别,制定不同的安全方案以保证数据的安全性。
数据层的作用是统一管理非结构化数据及其元数据。非结构化数据体积从MB级至GB级,大小不等,而其元数据信息,如数据标识、文件长度、类型等属性信息,总长度不超过1KB,二者数据量上相差悬殊。因此,BLOB数据和元数据存储对网络带宽和计算资源的需求不同,两类数据应采用不同的存储策略。因此,图1中将数据层业务分解为BLOB数据存储区和Metadata存储区。
路由层主要负责云端节点、访问接口和后台存储设备间的互通性及存储路径计算。由于云存储系统是一种存在多个子网的存储区域自治系统(Autonomous System,AS),所使用的路由协议以内部网关协议(Interior Gateway Protocol,IGP)为主,包括路由信息协议版本1(Routing Information ProtocolVersion 1,RIP1)、路由信息协议版本2(Routing InformationProtocol Version 2,RIP2)、内部网关协议(Interior GatewayRouting Protocol,IGRP)、加强型内部网关协议(EnhancedInterior Gateway Routing Protocol,EIGRP)、中间系统到中间系统的路由协议(Intermediate System to Intermediate SystemRouting Protocol,IS-IS)和开放式最短路径优先(Open ShortestPath First,OSPF)协议等。前4种协议采用距离向量算法,后2种则采用链路状态算法。非结构化数据存储服务等大型计算中,采用距离向量算法路由协议已不能满足要求,而使用OSPF链路状态算法更为有效[5]。以上路由协议应用于存储系统的底层,为保证非结构化数据存储系统的可扩展性和较高的存储效率,还可借鉴基于优先级的随机线性码分布存储协议和分布式哈希表(Distributed Hash Table,DHT)技术。物理层为非结构化数据存储提供存储空间和计算资源,
并负责维护存储节点的物理通路。就本系统而言,可充分利用现有通信子网及设备,而无需在硬件上追加更多投资。
2.2非结构化数据分离式存储通路
目前,一些关系数据库,如微软公司的SQL Server 2000、甲骨文公司的Oracle 11g等对BLOB数据有着良好的支持,本设计采用RDBMS群集作为非结构化数据的物理存储底层。用户可通过Web应用程序或者客户端程序向存储系统提交数据,这些数据经由BLOB存取接口存储到关系表中,与之相关的元数据信息以数据记录形式保存于Metadata存储区,两类数据存储通路如图2所示。
图2 BLOB与Metadata数据流存储通路
图2 显示的数据存储通路与传统的基于文件的非结构化数据存储相比,具有以下突出优点。
1)BLOB数据以二进制流形式直接存储于关系表中,而不再采用文件系统管理方式[7]。以SQL Server 2000为例,所有的BLOB数据集中存储于主要数据文件(Master Data File,MDF)文件中,由于MDF文件在独立冗余磁盘阵列(Redundant Array of Independent Disk,RAID)中是连续存储的,尽管用户增删BLOB数据会增加数据碎片而影响存取效率,但可通过重建索引等手段快速维护,相对于文件系统的碎片整理更加高效。
2)两类数据分离式管理,利于存储资源的优化配置。可以将容量较大、计算能力较强的资源分配给BLOB数据存储区,而将响应率较高的资源分配给Metadata存储区。
3)分离式的存储通路实现了BLOB数据存取和元数据存取的功能分离,网络带宽得到了合理分配,可分担因高并发访问给系统带来的压力,有利于系统聚合I/O吞吐能力的提高和系统稳定运转。
数据通道分离的资源配置方法,使非结构化数据存储系统鲁棒性有了保障,满足了云计算所需的高强度存储需求。
3 存储系统可靠性分析
3.1可靠性分析方法与手段
非结构化数据存储网络是一个复杂的分布式存储系统,其特点在于:计算服务分布化、用户分布化和管理端分布化,硬件组成复杂。资源规划和配置合理与否,将直接影响可靠性和云存储服务质量。
目前,存储服务质量评估可从系统可靠性、服务可用性这两个角度着手,有些学者还从系统可生存性角度进行研究。通常借助于初等概率论、随机过程、可靠性原理、Markov链、模拟等进行系统建模和可靠性论证,有时还结合数据处理流图及拓扑图等工具进行较直观的分析。
3.2BLOB数据存取流程
依据图2所示的非结构化数据存储通路,提出了存储通路分离的思想,以下借助数据处理流图和系统网络拓扑图进行综合分析。非结构化数据存储系统通过协调处理用户、BLOB数据存储区及Metadata数据区间的关系以实现分布式存储,图3说明了一个典型的数据存储请求过程。
图3 BLOB数据访问请求处理流程
数据请求访问处理过程如下:
1)用户首次访问BLOB数据前,根据数据标识Guid向主元数据节点MA发出访问请求;
2)元数据群集对客户的访问请求进行认证和授权,并返回详细元数据信息及BLOB数据的位置信息给用户,若插入新数据,则先写入元数据至Metadata群集;
3)获得授权的用户直接向BLOB存储集群发起数据访问请求,并验证该BLOB数据的有效性及位置信息;
4)建立用户与指定BLOB存储节点间的数据连接,读/写RDBMS中存储的BLOB数据;
5)读/写结束后,更新Metadata存储区相关数据,并释放占用资源。
3.3系统可靠性分析
通常,评估系统的可靠性可从研究系统可用性、失效率和系统生命周期着手,统计学经常使用图4所示的“浴缸曲线”描述系统生存周期。由该曲线可知,非结构化数据存储系统生存周期将经历初期失效、工作期失效和老化期失效三个阶段。其中,早期失效和老化期失效服从典型的威布尔分布,而工作期失效则服从参数为λ的指数分布,若系统由多部件组成,其部件失效时间也服从负指数分布。本文则重点关注系统正常工作期的可靠性评估,并假定系统工作期失效率是恒定的。由曲线可知,系统可靠性与正常工作时间t有关,若用R(t)表示系统正常工作期的可靠度函数,其参数t的区间为(0,+∞),则系统在t时刻前正常运转而无需维修。事实上,经常使用系统平均无故障时间(Mean Time To Failure,MTTF)描述系统可靠性,则MTTF为函数R(t)在区间(0,+∞)上的定积分,如式(1)所示。又由R(t)服从参数为
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:面向云存储的非结构化数据存取(上)