好文档 - 专业文书写作范文服务资料分享网站

云计算的关键技术

天下 分享 时间: 加入收藏 我要投稿 点赞

云计算的关键技术

摘要:云计算是一种新兴的计算模型,它是在网格计算的基础上发展而来的,它是指通过网络以按需、易扩展的方式来获得所需的信息服务,因此,云计算又常常被称为云服务。本文介绍了云计算的发展历史,总结了云计算的关键技术:数据存储技术(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)HBase

HBase是一个分布式的、面向列的开源数据库,该技术来源于Changetal所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式。

(3)Sector/Sphere

Sector/Sphere是一个分页式存储系统与并行处理引擎。与HDFS/Hadoop及Google的GFS/MapReduce类似。Sector/Sphere由名字中描述的两部分组成。Sector是一个高效、高伸缩性并且安全的分页式文件系统。Sphere是一个高效的并行数据处理引擎,他处理来自Sector的数据文件,提供非常好用的接口定义处理流程。

(4)Amazon S3

Amazon S3,全名为亚马逊简易储存服务(Amazon Simple Storage Service),由亚马逊公司,利用他们的亚马逊网络服务系统所提供的网络线上储存服务。经由Web服务界面,包括REST, SOAP,与BitTorrent,提供用

户能够轻易把档案储存到网络服务器上。 (5)OpenStack

OpenStack的Swift(Swift)是开源的,用来创建可扩展的、冗余的、对象存储(引擎)。swift使用标准化的服务器存储PB级可用数据。但它并不是文件系统(filesystem) ,实时的数据存储系统(real-timedata storage system)。swift 看起来更像是一个长期的存储系统(long term storage system) ,为了获得、调用、更新一些静态的永久性的数据。比如说,适合存储一些类型的数据:虚拟机镜像,图片存储,邮件存储,文档的备份。没有“单点”或者主控结点(master point of control) ,swift看起来具有更强的扩展性、冗余和持久性。云计算是一项正在兴起中的技术。它的出现,有可能完全改变用户现有的以桌面为核心的使用习惯,而转移到以Web为核心,使用Web上的存储与服务。人类有可能因此迎来一个新的信息化时代!云计算绝不仅仅是一个计算的问题,它需要融合许许多多的技术与成果。现有的许多研究问题将来必然是云计算的一部分,例如Web数据集成、个人数据空间管理、数据外包服务、移动路网上的研究以及隐私问题的研究,都会成为未来云计算的重要组成部分。但是现实中云计算也面临着诸多挑战。首先,云计算和云数据管理中一个跨领域问题就是供应商要在功能和开发代价上作权衡。目前,早期的云计算提供的API比传统的数据库系统的限制多得多。他们只提供一个极小化的查询语言和有限的一致性保证。这给开发者带来更多的编程负担,同时对于一个功能完备的SQL数据库允许服务供应商提供更多的预期服务和服务级别协议也是很难达到的。其次,易管理性在云计算中极其重要,这也带来新的挑战。和传统的系统相比,受工作负载变化幅度大和多种多样的共享设备的因素影响,云计算中管理任务更加复杂。大多数情况下,由于云系统中机器数量太大,数据库管理员和系统管理员很难对所有机器进行全面周全的人工干预。所以迫切地需要自动管理的机制。本来混合负载就很难调优,但在云平台中这种调优是不可避免的。20世纪90年代末,研究学者们开始研究自我管理技术。

云数据管理系统需要自适应的在线技术,反过来系统中新的架构和API(包括区别于传统SQL语言和事务语义的灵活性)又促进了颠覆性的自适应方法的发展。接着,云计算和云数据管理的庞大规模同样带来了新的挑战。现有的SQL数据库不能简单地处理放置在云中的成千上万的数据。在存储方面,是用不同的事务实现技术,还是用不同的存储技术,或者二者都用来解决还不确定。在这个问题上,目前在数据库领域内有很多提议。就查询处理和优化而言,如果搜索一个涉及到数千条处理的计划空间需要花费很长时间,那么这是不可行的,所以需要在计划空间或搜索上设限。最后如何在云环境中编程还尚不清楚。因此,需要更多的了解云计算和云数据管理的限制问题(包括性能限制和应用需求)来帮助设计。此外,在云基础架构中,物理资源共享带来新的数据安全和隐私危机。它们不能再依靠机器或网络的物理边界得到保障。因此云计算为加速这方面现有的工作提供了难得的机遇。要想成功,关键在于能否准确瞄准云的应用场景以及能否准确把握服务供应商和顾客的实际动向。最后,随着云计算越来越流行,预计有新的应用场景出现,也会带来新的挑战。例如,可能会出现一些需要预载大量数据集(像股票价格、天气历史数据以及网上检索等)的特殊服务。从私有和公共环境中获取有用信息引起人们越来越多的注意。这样就产生新的问题:需要从结构化、半结构化或非结构的异构数据中提取出有用信息。同时,这也表明跨“云”服务必然会出现。在科学数据网格计算中,这个问题已经很普及。而联合云架构不会降低,只会增加问题的难度。综上所述,可以看出云计算和云数据管理平台服务本身在适当场景下巨大的优势,同时还有所面临的技术难题亟待解决。 三.编程模型:

为了使用户能更轻松地享受云计算带来的服务。让用户能利用该编程模型编写简单的程序来实现特定的目的,云计算上的编程模型必须十分简单。必须保证后台复杂的并行执行和任务调度向用户和编程人员透明。云计算大部分采用Map一Reduce l 的编程模式。现在大部分IT厂商提出的“云”计划中采用的编程模型,都是基于Map-Reduce的思想开发的编程工具。Map-Reduce不仅仅是一种编程模型,同时也是一种高效的任务调度模型。Map-Reduce这种编程模型并不仅适用于云计算,在多核和多处理器以及异构机群上同样有良好的性能。该编程模式仅适用于编写任务内部松耦合、能够高度并行化的程序。如何改进该编程模式,使程序员得能够轻松地编写紧耦合的程序,运行时能高效地调度和执行任务,是M印.Reduce编程模型未来的发展方向。Map-Reduce是一种处理和产生大规模数据集的编程模型,程序员在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中间结果进行归约。用户只需要指定m印和reduce函数来编写分布式的并行程序。当在集群上运行

Map-Reduce程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理集群内节点失败以及节点间通信的管理等。Map-Reduce是一种处理和产生大规模数据集的编程模型,程序员在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中间结果进行归约。用户只需要指定m印和reduce函数来编写分布式的并行程序。当在集群上运行M印.Reduce程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理集群内节点失败以及节点间通信的管理等。 四.任务调度模型:

任务调度是一种基于蚁群优化(Ant Colony Optimization)的计算资源分配算法。分配计算资源时,首先预测潜在可用节点的计算质量,然后根据云计算环境的特点,通过分析诸如带宽占用、线路质量和响应时间等因素对分配的影响,利用蚁群优化算法得到一组最优的计算资源.通过在Gridsim环境下的仿真分析和比较,这种算法能够在满足云计算环境要求的前提下,获得比其他一些针对网格的分配算法更短的响应时间和更好的运行质量,因而更加适合于云环境。该文核心内容如下:

2.1计算资源的分配流程参照Map/Reduce提出的云计算框架,云环境中的每个单元由一个单独的主作业调度节点(master Job Tracker)和该单元所辖各个节点集群中的一个从任务分配节点(slave Task Tracker)共同组成。主节点负责调度构成一个作业的所有任务,这些任务的数据资源分布在不同从节点的存储资源上的用户镜像分片中,主节点监控它们的执行,重新执行已经失败的任务,或者是做错误处理。从节点仅负责执行由主节点指派的任务。在接到主节点的指派之后,从节点开始为其下属的存储节点寻找合适的计算节点.首先,该从节点开始检测自身的计算资源余量,如果其剩余计算资源足以满足用户提交作业的用量,则优先分配自身的计 算资源,如果资源已经耗尽或者已不足以满足承诺给用户的最小计算资源量,则开始搜寻云环境中其他合适的计算资源。该研究介绍的蚁群分配算法将在这一环节中实现。搜索在一定

范围内进行,目的是为了减小所带来的网络开销。如果仍然没有合适资源,则从节点报请主作业调度节点移走该节点集群中的用户数据镜像分片。

2.2计算资源优劣度评判条件将slave节点域看作是一个无向图G(V,E),其中V是区域Area中所有slave节点的集,E是连接各slave节点的网络集合。寻找合适的计算节点,也就是在E中的路径。e∈Area,其度量标准可以考虑如下几个因素:①预计执行时间:time_cost(e),指路径e尽头的计算资源处理该作业间。②网络带宽:bandwidth(e),指路径e所提供的网络最大带宽。③网络延迟:delay(e),指路径e产生的最大网络延迟。设资源选择的约束函数为选择资源和路径的过程就是寻找满足限制条件(2)的尽量小的res(e)的路径和资源的过程,其中A,B,C为三个约束条件的权重;TL,EL和DL为其边界限制条件。不同的云计算环境可能会有不同的取值。

2.3对各个计算资源完成本次作业执行速度的预测在云计算中,把任务分配给效率最高,开销最少的计算资源将会极大地提高整体的性能。所以,在分配中需要对潜在的可分配节点进行执行速度预估。针对云计算异构和变化的特点,著者设计了一个通过积累历史值来推算下一任务执行速度的预测模型。该模型对每一个节点完成下一个工作的效率时间进行单独的预测,希望无论计算资源处在怎样的负载程度,都能凭借这个模型得到相对精确的预测.由于每个计算节点当前的负载程度已知,并且上一次完成作业时的平均负载程度也能够查阅,所以,著者用如下模型来预测执行速度;其中 是指第m号计算资源第k次预测执行速度,单位可以为MIPS, ak为第k次预测时的系统负载程度,指第m号计算第k次实际的执行速度,ρ 是一个调节参数,用来在不同云环境中调节经验值和预测值的比重,以使该模型的预测达到最优。在每一个计算节点上,每完成一个作业,该节点自身将会记录本次作业完成的实际速度,并结合上次的预测结果来推算下次作业可能的执行速度。同时,系统负载a被一并记录,这是一个重要的参数,一般可以有几个量化指标,比如CPU的实际使用率、作业数或者线程数等。 结语:云计算具有广阔的发展前景,相关的各项关键技术也在迅速发展。首先,当前的云计算系统的能耗过大,因此,减少能耗,提高能源的使用效率,建造高效的冷却系统是当前面临的一个主要问题。例如,谷歌的数据中心的能耗相当于一个小型城市的总能耗 。因为,过大的能耗使得数据中心内发热量剧增,要保证云计算系统的正常运行,必须使用高效的冷却系统来保持数据中心在可接受的温度范围内。其次,云计算对面向市场的资源管理方式的支持有限。可以加强相应的服务等级协议,使用户和服务提供者能更好的协商提供的服务质量。另外,需要对云计算的接口进行标准化并且制定交互协议。这样可以支持不同云计算服务提供者之间进行交互,相 互合作提供更加强大和更好的服务。再者,需要开发出更易用的编程环境和编程工具,这样可以更加方便地创建

云计算的关键技术

云计算的关键技术摘要:云计算是一种新兴的计算模型,它是在网格计算的基础上发展而来的,它是指通过网络以按需、易扩展的方式来获得所需的信息服务,因此,云计算又常常被称为云服务。本文介绍了云计算的发展历史,总结了云计算的关键技术:数据存储技术(GoogleFilesystem)、数据管理技术(BigTable)、编程模型和任务调度等,分析了云计算和网格计算以及传统超级计算的
推荐度:
点击下载文档文档为doc格式
6df1g3oybn0h1ll029wr
领取福利

微信扫码领取福利

微信扫码分享