云计算的关键技术摘要:云计算是一种新兴的计算模型,它是在网格计算的基础上发展而来的,它是指通过网络以按需、易扩展的方式来获得所需的信息服务,因此,云计算又常常被称为云服务。
本文介绍了云计算的发展历史,总结了云计算的关键技术:数据存储技术(Google File system)、数据管理技术(BigTable)、编程模型和任务调度等,分析了云计算和网格计算以及传统超级计算的区别,并指出了云计算的广阔发展前景。
关键词:云计算;编程模型;数据存储;数据管理;任务调度正文: 云计算(cloud computing)是一种新近提出的计算模式。
是分布式计算(Dist uted computing)、并行计算(Parallelcomputing)和网格计算(Grid computing)的发展。
目前,亚马逊、微软、谷歌、IBM、英特尔等公司纷纷提出了“云计划”。
例如亚马逊的Aws(Amazon web services)⋯,IBM和谷歌联合进行的“蓝云”计划等。
这对云计算的商业价值给予了巨大的肯定。
同时学术界也纷纷对云计算进行深层次的研究。
例如谷歌同华盛顿大学以及清华大学合作,启动云计算学术合作计划(Academic cloud ComputingInitiative),推动云计算的普及,加紧对云计算的研究。
卡内基梅隆大学等对数据密集型的超级计算(Data Intensive supercomputing,DIsc) 进行研究,本质上也是对云计算相关技术开展研究。
云计算有着广泛的应用前景。
如表1所示。
云计算在天文学、医学等各个领域有着广泛的应用前景。
趋势科技和瑞星等安全厂商纷纷提出了“安全云”计划。
在云计算关键技术研究过程中,主要对依赖于以下的技术支持,他们分别是数据存储技术(Google File system)、数据管理技术(BigTable)、编程模型和任务调度模型等,我们逐一进行介绍。
一.数据存储技术:为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,同时利用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本,这样避免当前的数据系统崩溃还有备用的数据可以马上回复工作。
另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。
因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。
云计算的数据存储技术主要有谷歌的非开源的GFs(Google File System) 和Hadoop开发团队开发的GFS的开源实现HDFs(Hadoop Dist uted nle system) 。
大部分IT厂商,包括雅虎、英特尔的“云”计划采用的都是HDFS的数据存储技术。
云计算的数据存储技术未来的发展将集中在超大规模的数据存储、数据加密和安全性保证以及继续提高L/O速率等方面。
以GFs为例。
GFs是一个管理大型分布式数据密集型计算的可扩展的分布式文件系统。
它使用廉价的商用硬件搭建系统并向大量用户提供容错的高性能的服务。
GFS系统由一个Master和大量块服务器构成。
Master存放文件系统的所有元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等。
GFs中的文件切分为64 MB的块进行存储。
在GFs文件系统中,采用冗余存储的方式来保证数据的可靠性。
每份数据在系统中保存3个以上的备份。
为了保证数据的一致性,对于数据的所有修改需要在所有的备份上进行,并用版本号的方式来确保所有备份处于一致的状态。
客户端不通过Master读取数据,避免了大量读操作使Master成为系统瓶颈。
客户端从Master获取目标数据块的位置信息后,直接和块服务器交互进行读操作。
GFs的写操作将写操作控制信号和数据流分开,如图所示:客户端在获取Master的写授权后,将数据传输给所有的数据副本,在所有的数据副本都收到修改的数据后,客户端才发出写请求控制信号。
在所有的数据副本更新完数据后,由主副本向客户端发出写操作完成控制信号。
当然,云计算的数据存储技术并不仅仅只是GFS,其他IT厂商,包括微软、Hado叩开发团队也在开发相应的数据管理工具。
本质上是一种分布式的数据存储技术,以及与之相关的虚拟化技术,对上层屏蔽具体的物理存储器的位置、信息等。
快速的数据定位、数据安全性、数据可靠性以及底层设备内存储数据量的均衡等方面都需要继续研究完善。
随着云存储已经成为未来存储发展的一种趋势,它是一切云技术的最基础,发展前景极其广阔。
但从未来云存储的发展趋势来看,云存储系统主要还需从安全性、便携性及数据访问等角度进行改进。
(1)安全性从云计算诞生,安全性一直是企业实施云计算首要考虑的问题之一。
同样在云存储方面,安全仍是首要考虑的问题,对于想要进行云存储的客户来说,安全性通常是首要的商业考虑和技术考虑。
但是许多用户对云存储的安全要求甚至高于它们自己的架构所能提供的安全水平。
既便如此,面对如此高的不现实的安全要求,许多大型、可信赖的云存储厂商也在努力满足它们的要求构建比多数企业数据中心安全得多的数据中心。
现在用户可以发现,云存储具有更少的安全漏洞和更高的安全环节,云存储所能提供的安全性水平要比用户自己的数据中心所能提供的安全水平还要高。
(2)便携性一些用户在托管存储的时候还要考虑数据的便携性。
一般情况下这是有保证的,一些大型服务提供商所提供的解决方案承诺其数据便携性可媲美最好的传统本地存储。
有的云存储结合了强大的便携功能可以将整个数据集传送到你所选择的任何媒介,甚至是专门的存储设备。
(3)性能和可用性过去的一些托管存储和远程存储总是存在着延迟时间过长的问题同样地,互联网本身的特性就严重威胁服务的可用性。
最新一代云存储有突破性的成就,体现在客户端或本地设备高速缓存上,将经常使用的数据保持在本地,从而有效地缓解互联网延迟问题。
通过本地高速缓存,即使面临最严重的网络中断,这些设备也可以缓解延迟性问题。
这些设备还可以让经常使用的数据像本地存储那样快速反应。
通过一个本地NAS网关,云存储甚至可以模仿终端NAS设备的可用性、性能和可视性,同时将数据予以远程保护。
随着云存储技术的不断发展,各厂商仍将继续努力实现容量优化和WAN(广域网)优化,从而尽量减少数据传输的延迟性。
(4)数据访问现有对云存储技术的疑虑还在于如果执行大规模数据请求或数据恢复操作,那么云存储是否可提供足够的访问性。
在未来的技术条件下,此点大可不必担心,现有的厂商可以将大量数据传输到任何类型的媒介,可将数据直接传送给企业,且其速度之快相当于复制、粘贴操作。
另外,云存储厂商还可以提供一套组件,在完全本地化的系统上模仿云地址,让本地NAS网关设备继续正常运行而无需重新设置。
未来,如果大型厂商构建了更多的地区性设施,那么数据传输将更加迅捷。
如此一来即便是客户本地数据发生了灾难性的损失,云存储厂商也可以将数据重新快速传输给客户数据中心二.数据管理技术:云计算系中的存储时一个分布式的,数据的存储量也是海量式的,这需要对大数据集进行处理、分析向用户提供高效的服务。
因此,数据管理技术必须能够高效地管理大数据集。
其次,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。
云计算的特点是对海量的数据存储、读取后进行大量的分析,数据的读操作频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。
因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式。
将表按列划分后存储。
云计算的数据管理技术中最著名的有以下几种:(1)BigTable:BigTable是谷歌在文献[11]提出的BigTable数据管理技术。
由于采用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。
BigTable中的数据项按照行关键字的字典序排列,每行动态地划分到记录板中。
每个节点管理大约100个记录板。
时间戳是一个64位的整数,表示数据的不同版本。
列族是若干列的集合,BigTable中的存取权限控制在列族的粒度进行。
BigTab1e在执行时需要三个主要的组件:链接到每个客户端的库,一个主服务器,多个记录板服务器。
主服务器用于分配记录板到记录板服务器以及负载平衡,垃圾回收等。
记录板服务器用于直接管理一组记录板,处理读写请求等。
为保证数据结构的高可扩展性,BigTable采用三级的层次化的方式来存储位置信息,如图3所示。
其中第一级的chubby file中包含Root Tablet的位置,Root Tablet有且仅有一个,包含所有METADATA tablets的位置信息,每个METADATA tablets包含许多user Table的位置信息。
当客户端读取数据时,首先从chubby file中获取RootTablet的位置,并从中读取相应METADATA tablet的位置信息。
接着从该METADATA tablet中读取包含目标数据位置信息的user Table的位置,然后从该user raJ)le中读取目标数据的位置信息项,据此信息到服务器中特定位置读取数据。
(2)HBaseHBase是一个分布式的、面向列的开源数据库,该技术来源于Changetal所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。
就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。
HBase是Apache的Hadoop项目的子项目。
HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式。
(3)Sector/SphereSector/Sphere是一个分页式存储系统与并行处理引擎。
与HDFS/Hadoop及Google的GFS/MapReduce类似。
Sector/Sphere由名字中描述的两部分组成。
Sector是一个高效、高伸缩性并且安全的分页式文件系统。
Sphere 是一个高效的并行数据处理引擎,他处理来自Sector的数据文件,提供非常好用的接口定义处理流程。
(4)Amazon S3Amazon S3,全名为亚马逊简易储存服务(Amazon Simple Storage Service),由亚马逊公司,利用他们的亚马逊网络服务系统所提供的网络线上储存服务。
经由Web服务界面,包括REST, SOAP,与BitTorrent,提供用户能够轻易把档案储存到网络服务器上。
(5)OpenStackOpenStack的Swift(Swift)是开源的,用来创建可扩展的、冗余的、对象存储(引擎)。