开篇:润墨网以专业的文秘视角,为您筛选了一篇云计算及其关键技术研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要:云计算是一种全新的IT服务模式,它是在网格计算的基础上发展而来的。本文比较了当今具有代表性的云计算定义,以谷歌的云计算为例,探讨了云计算的数据存储、数据管理等关键技术,指出了云计算的发展前景。
关键词:云计算;数据的存储;数据的管理
中图分类号:TP3
随着云计算技术的蓬勃发展,Google、亚马逊、微软、IBM等大型公司都开发了自己的云计算平台。其中Google公司的App Engine云计算开发平台为应用服务提供商开发和部署云计算服务提供接口。Amazon等公司的云计算平台提供可快速部署的虚拟服务器,实现了基础设施的按需分配。MapReduce等新型并行编程框架简化了海量数据处理模型。Salesforce公司的客户关系管理(CRM,customerrelationship management)服务等云计算服务将桌面应用程序迁移到互联网,实现应用程序的泛在访问。
作为一种全新的IT服务模式,云计算旨在实现大规模的分工协作与资源共享,以达到低成本、低能耗、高效率的计算目标。它以效用为先,以客户为中心,请求即响应(On-demand)与按用量收费(Pay-per-use)的服务模式,体现了计算机以人为本的服务理念,得到了产业界与学术界广泛的认可与关注。
1 云计算简介
到目前为止,云计算还没有统一的定义,各行各界的人从不同角度出发都有不同的理解,影响比较大的主要有以下几种:(1)IBM的技术白皮书“Cloud Computing”中的云计算定义:云计算用于描述平台以及应用程序类型的一个专业术语。云平台可以根据需要动态地提供、配置、重新配置以及取消提供服务器。云计算也指那些经过扩展后可通过因特网进行访问的应用程序;(2)NIST的Peter Mell和Tim Grance于2009年4月提出了云计算的定义:云计算指一种通过网络以便利的、按需付费的方式获取计算资源并提高其可用性的模式,这些资源来自一个可以共享的、可配置的资源池,并且以最省力和无人干预的方式获取和释放;(3)专业的IT名词百科,广义地将云计算定义为一切能够通过互联网提供的服务,而这些服务被分为三个层次:基础设施即服务(IaaS)、平台即服务(Paas)和软件即服务(SaaS);(4)云是一个包含大量虚拟资源的资源池。而虚拟资源可以根据负载动态地重新配置,达到更优的资源利用率。这种资源池一般是由基础设施提供商按照服务等级协议(SLA)采用时付费(Pay-Per-Use,PPU)的模式开发管理的。
我们可以看出云计算技术具有以下特点:(1)提供透明的弹。用户不需了解其具体的实现机制,就可以获得所需服务。而且服务的规模可以根据其应用的需要进行调整和弹性伸缩,有效地满足了实际应用和用户规模不断增长的需要;(2)根据需求提供服务。为用户提供资源的同时,可以根据用户需求,自动分配资源;(3)实现泛在访问。用户只需要通过各种终端设备(如笔记本电脑、上网本、PDA、智能手机等),就可以随时随地通过互联网进入云计算平台,方便快捷地获得所需的服务;(4)共享资源池。资源以共享资源池的方式进行统一管理,利用虚拟化技术,将资源分享给不同用户,而其中资源的放置、管理与分配策略对用户来说是透明的;(5)降低成本。云计算将计算设施从本地转移到网络中,将计算资源通过租用的方式提供给用户,使用户大量节省了架设基础设施的成本同时,由于自动化的管理和配置,云计算数据中心软件和硬件资源的利用率都得到了大幅提升,从而使供应商提供服务的成本下降。
2 关键技术
云计算的关键技术很多,在这里只对数据存储和数据管理技术进行介绍。
2.1 数据存储技术。在云计算环境中,数据存储既要考虑存储系统的I/O性能,又要保证文件系统的可靠性、可用性和经济性,因此,特采用分布存储的方式来存储数据,用冗余存储的方式来保证可靠性等等。
目前关于云计算的数据存储技术主要有谷歌的GFS和Hadoop的HDFS。
本文就以GFS为例。GFS文件系统,是一个面向大规模数据密集型的、可伸缩的分布式文件系统。其运行在廉价的硬件设备上,为客户机提供高性能的服务。为保证数据的可靠性,GFS采用了冗余存储的方式。将每一个数据块在系统中都保存了3个以上的备份,而所有文件和数据块副本的元数据都由元数据管理节点进行管理。为保证数据的一致性,对数据的任何修改都在备份上进行,并用版本号来确保所有备份相一致。当客户端从Master获取到目标数据块的位置后,就和块服务器直接交互进行读操作。
2.1.1 GFS系统架构。GFS文件系统由一个Master和大量ChunkServer组成,并且可以被多个客户端同时访问。Master用于保存文件系统的元数据信息,管理该域下面的所有ChunkServer,其中元数据包括:目录命名空间,文件名与数据块信息的映射,文件块的位置信息等等。在GFS中,文件并不是整体存储,而是将文件分成文件块,以文件块为单位存储。Chunk Server就是用于保存文件的块信息,块的大小统一为64MB,每一块数据由全局唯一64位ID进行标识,客户端通过该标识符来操作块数据。而Chunkserver接受Master的管理,负责存储具体的chunk。当客户端访问文件时,其首先向Master获取相关文件的元数据信息,然后再连接Chunkserver对文件数据进行读写。
2.1.2 GFS的读数据操作。(1)Client向MasterServer发送读操作请求,请求中包括文件名和Chunk索引;(2)MasterServer接收请求并通过Chunk映射表映射后,向Client作出响应,响应中包括Chunk句柄和Chunk副本的位置信息;(3)根据响应的内容,Client以文件名和Chunk索引为关键词进行缓存;(4)根据文件Chunk索引和位置信息,Client从多个ChunkServer中选择一个离自己最近的Chunk服务器发出数据访问请求。
而且数据访问还具有空间局部性的特征。以后如果Client再次访问同一个ChunkServer,它将不再向MasterServer发送访问请求,而是直接向ChunkServer发送数据读取请求。
2.1.3 GFS的写操作。将控制信号和数据流分开,当客户端获得了Master的写授权后,将数据传输给所有的数据副本,这些数据副本都收到修改的数据后,客户端发出写请求控制信号。在所有的数据副本更新完数据后,主副本向客户端发出写操作完成控制信号,GFS的写操作过程结束。
2.2 数据管理技术。通过云计算可实现海量数据的存储,而且可实现海量数据的数据管理功能。其中最著名的是谷歌的BigTable数据管理技术。关于BigTable数据管理技术,Google是这样定义的:“BigTable是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据。”
BigTable通过行值、列值、时间戳(版本号)来进行检索。其管理的数据的存储结构为:(row:string,column:string,time:int64)--->string
其中行值按照键进行字典排序,一张Tablet表包含一定数量的行,一行数据中可以设置大量的列值属性(列族),通过(名称:标识)格式进行设置,访问控制和统计分析也是基于列值来展开。而列族是若干列的集合,BigTable中的存取权限是控制在列族的粒度进行的。时间戳是一个64位的整数,表示数据的不同版本。为了保证数据结构的高可扩展性,BigTable规定索引表最多不能超过三级,在Chubby file中包含了Root Tablet的位置信息,而RootTablet有且仅有一个,其包含了所有METADATA tablets的位置信息,其中每个METADATA tablet又包含了许多UserTable的位置信息。在客户端读取数据时,首先从Chubby file中读取RootTablet的位置信息,再从RootTablet中读取相应的METADATA tablet的位置信息。紧接着从该METADATA tablet中读取UserTable的位置信息,然后从该UserTable中读取目标数据的位置信息。最后,根据此信息到服务器中的特定位置读取数据。
以上是对云计算的数据存储、数据管理关键技术的讨论,当然云计算还有许多问题有待解决,相信随着云计算的不断发展和广泛应用,云计算将会得到更大的完善,我们拭目以待。
参考文献:
[1]Boss G,Malladi P,Quan D,Legregni L.Hall H,Cloud computing.IBM.WhitePaper,2007.http://download.boulder.ibm.corn/ibmdl/pub/soRware/dw/wes/hipods/Cloud_comp uting_wp_final-80ct.pdf.
[2]Cloud computing.http:///wiki/Cloud_computing.
作者单位:西北民族大学 数学与计算机科学学院,兰州 730030