闫德生 佟敏
【摘要】 近年来,随着云计算和软件即服务(SaaS)的兴起,云存储成为信息存储领域的一个研究热点。云存储提供的是存储服务,存储服务通过网络将本地数据存放在存储服务提供商(SSP)提供的在线存储空间,从而避免了存储平台的重复建设,节约了昂贵的软硬件基础设施投资。本文对电信运营商现有云存储的相关技术进行分析与研究,为云存储技术在支撑系统的应用提供借鉴和参考。
【关键词】 云存储 虚拟化 CMDI SaaS
一、前言
云存储是在云计算概念上延伸和发展出来的,通过集群应用、网格技术或分布式文件系统等功能,将网络中各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能。云存储是一种实用型服务,利用现有的存储虚拟化、集群存储以及SAN+NAS等技术[缺少宾语,利用这些技术做什么,请补充]来实现。云存储借助存储虚拟化技术构建庞大的存储池,屏蔽底层存储差异,对外提供一致的服务。云存储提供的服务与SaaS有些类似,其提供的是存储管理和服务。云存储池可灵活调整,扩展方便,能根据客户需求定制。
二、云存储标准CDMI规范分析
存储行业标准组织SNIA公布的关于云存储的CDMI(Cloud Data Management Interface)标准,使大多数旧的非云存储产品访问演进成云存储访问方式,提供了访问云存储和管理云存储数据的方式,同时支持块存储和文件存储客户端。CDMI规范可以抽象为简单的表存储空间,将对象看作是可以通过URI(统一资源ID)来访问的唯一项目,还可用于行政管理和管理型应用程序,以便管理封装器、账号、安全访问和监视/账单信息。CDMI规范的不足之处在于并没有提供通过可靠性和质量来衡量云存储提供商所提供数据质量的方式,所以不能绝对防止数据丢失风险。
三、云存储与传统存储的比较
(1)传统的存储容量从10TB级到300TB级,最多可扩展到PB级;云存储支持海量数据的存储,可以实现存储容量从PB级到EB级的平滑扩容,支持的文件数目最多可达上百亿个,满足支撑系统中大量数据存储的要求。
(2)传统存储以级联方式进行容量扩容,且级联数目一般不超过4个;云存储支持SCALE OUT方式扩展,具有极好的扩展性,性能和容量随着节点数目成正比。
(3)传统存储采用FC磁盘保障数据可靠性,在保障利用率的同时,最多可容忍2块位于不同硬盘组的硬盘故障而不造成数据损坏;云存储具有良好的可靠性,最多可能同时容忍44块位于不同硬盘组的硬盘故障,能充分保证支撑系统的有效运营。
(4)传统存储中阵列的控制器是整个系统的瓶颈,系统性能受制于控制器和CACHE大小;云存储系统有多个元数据节点和多个数据节点,管理通道和数据通道相互分离,消除了系统瓶颈,具有很高的读写性能、IOPS和并发访问能力。
(5)传统存储支持的接口类型有限,而云存储支持多种类型的文件存储和对象存储接口。
(6)传统的存储系统升级时,将旧存储设备文件备份后停机换上新存储设备,这将导致服务的停止;云存储并不单独依赖一台存储服务器,系统将旧存储服务器上的文件迁移到其他存储服务器,待新存储服务器上线后,文件会重新迁移回新服务器,因此存储服务器硬件的更新、升级并不会影响存储服务的提供。
(7)传统的存储采用串行扩容,受到存储容量的限制;云存储采取的架构是并行扩容,扩容时只要采购新的存储服务器即可。
(8)传统的存储管理非常复杂,不同存储厂商有不同的管理界面;对云存储而言,再多的存储服务器都会被视为一台存储,都可以在一个管理界面上进行管理操控。
四、云存储结构模型与实现前提
4.1 云存储结构模型层次
云存储系统根据完成功能不同,可分为四个层次,从下到上依次为:数据存储层、数据管理层、数据服务层和用户访问层,如图1所示。
(1)数据存储层
云存储的数据存储层将不同类型的存储设备互连起来,实现海量数据的统一管理,同时实现对存储设备的集中管理、状态监控以及容量的动态扩展,其实质是一种面向服务的分布式存储系统。
(2)数据管理层
数据管理层为上层提供不同服务间公共管理的统一视图。通过设计统一的用户管理、安全管理、副本管理及策略管理等公共数据管理功能,将底层存储及上层应用无缝衔接起来,实现多存储设备之间的协同工作。
(3)数据服务层
数据服务层是云存储平台中可以灵活扩展的、直接面向用户的部分。根据用户需求,可以开发出不同的应用接口,如数据存储服务、空间租赁服务、公共资源服务、多用户数据共享服务、数据备份服务等。
(4)用户访问层
通过用户访问层,任何一个授权用户都可以在任何地方,使用一台联网的终端设备,按照标准的公用应用接口来登录云存储平台,享受云存储服务。
4.2 云存储实现前提
云存储系统是一个多设备、多应用、多服务协同工作的集合体,它的实现要以多种技术的发展为前提。
(1)宽带网络的发展
真正的云存储系统是一个多区域分布、遍布全国[缺少宾语,请补充],甚至于遍布更庞大的公用系统,使用者需要通过ADSL、DDN等宽带接入设备来连接云存储。宽带网络得到充足的发展,使用者才能获得足够大的数据传输带宽,实现大容量数据的传输。
(2)WEB2.0技术
Web2.0技术的核心是分享。通过Web2.0技术,云存储的使用者能通过PC、手机、移动多媒体等多种设备,实现数据、文档、图片和视频、音频等内容的集中存储和资料共享。Web2.0技术的发展使应用方式和服务更加灵活和多样。
(3)应用存储的发展
应用存储是一种在存储设备中集成了应用软件功能的存储设备,它不仅具有数据存储功能,还具有应用软件功能,是服务器和存储设备的集合体。应用存储技术的发展可以大量减少云存储中服务器的数据,降低系统建设成本,减少系统中由服务器造成的单点故障和性能瓶颈,减少数据传输环节,提高系统性能和效率,保证整体系统的高效稳定运行。
(4)集群技术和分布式文件系统
云存储系统是一个多存储设备、多应用、多服务协同工作的集合体,不同存储设备之间需要通过集群技术、分布式文件系统和网格计算等技术,实现存储设备之间的协同工作,使多个存储设备可以对外提供同一种服务,并提供更强大的数据访问性能。
(5)CDN[第一次出现英文缩写,请给出英文全称](Content Delivery Network)内容分发和数据加密技术
CDN内容分发系统和数据加密技术保证云存储中的数据不会被未授权的用户访问。同时,通过各种数据备份和容灾技术保证云存储中的数据不会丢失,保证云存储自身的安全和稳定。
五、支撑系统中云存储的应用方向
支撑系统中,按照存储系统外部接口的差异,国际标准化机构SNIA将云存储系统分为块存储、文件存储、对象存储和表存储四类。其中,块存储向应用数据库或文件系统直接提供原始存储块空间,以标准的Intel/Linux硬件组件作为基本存储单元,组件之间通过千兆以太网采用任意点对点拓扑技术相互连接;文件存储以标准文件系统接口形式向应用系统提供海量非结构化数据存储空间,通过NAS虚拟化或基于X86硬件集群和分布式文件系统集成在一起,实现少量非结构化数据处理能力;对象存储是基于X86集群为海量非结构化数据提供key-value键值查找数据文件的存储模式;表存储向应用系统提供高可扩展的表存储空间,包括交易型数据库和分析型数据库(日志详单存储和NoSQL),适合存储海量结构化或半结构化数据[1]。
根据数据存储方式,在支撑系统中建议采用如下的数据存取和调用方式:
(1)对于非结构化数据的存储,可采用分布式文件系统,基于POSIX/CIFS/NFS等标准文件系统接口协议进行数据存取,适用于传统NAS应用,可随机读写,完成文件在线备份和共享;
(2)对于高速数据存储需求的结构化、非结构化数据,可采用块存储方式,如直接使用裸卷的数据库,通过FC、iSCSI等标准接口进行数据存取;
(3)对于HTTP相关内容的存储宜采用对象存储方式,其适合于面向web的海量只读性数据的存储;
表存储服务主要存储需要进行查询、分析的非结构化数据和结构化数据,可存储在日志详单类数据存储系统中,依赖于数据表组织数据的数据库,能共享高并发访问的应用。其中,非结构化数据通过HDFS接口进行数据存取,利用MR接口进行数据查询、分析;结构化数据通过命令行、FTP接口进行数据存取,利用JDBC/SQL、MR接口进行数据查询、分析。
NoSQL数据库也以表存储服务方式存储,适用于不需要复杂系统查询,但要求查询速度快、存放数据量大的高并发访问应用[2]。
六、结束语
本文阐述了支撑系统中各种数据类型和场景适用的云存储技术。对于支撑系统应用[不通顺,对于支撑系统应用在做什么话没说完,建议补充],面对各类生产系统的存储要求,要求云存储系统按需提供不同空间容量、不同性能的存储资源,应积极采用虚拟化技术整合现有FC SAN资源,挖掘设备潜力,建立分级存储机制,使数据合理分布。在海量非结构化数据处理、日志详单处理、经营分析领域等积极实验和试点分布式存储解决方案。
参 考 文 献
[1] 云存储技术及其应用《中兴通讯技术》2010,16(4)
[2] 一种对等结构的云存储系统研究《电子学报 》2010年05期
[3] 基于HDFS的云存儲服务系统研究《大连海事大学》2010年