加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

云计算及其核心技术

发布时间:2021-07-05 11:13:51 所属栏目:云计算 来源:互联网
导读:引言 云计算(Cloud Computing)是一种新近提出的计算模式。是分布式计算(Distributed Computing)、并行计算(Parallel Computing)和网格计算(Grid Computing)的发展。 目前,亚马逊、微软、谷歌、IBM、英特尔等公司纷纷提出了云计划。例如亚马逊的AWS(Amazon W
  引言
 
  云计算(Cloud Computing)是一种新近提出的计算模式。是分布式计算(Distributed Computing)、并行计算(Parallel Computing)和网格计算(Grid Computing)的发展。
 
  目前,亚马逊、微软、谷歌、IBM、英特尔等公司纷纷提出了“云计划”。例如亚马逊的AWS(Amazon Web Services)、IBM和谷歌联合进行的“蓝云”计划等。这对云计算的商业价值给予了巨大的肯定。同时学术界也纷纷对云计算进行深层次的研究。例如谷歌同华盛顿大学以及清华大学合作,启动云计算学术合作计划(Academic Cloud Computing Initiative),推动云计算的普及,加紧对云计算的研究。卡内基梅隆大学等对数据密集型的超级计算(Data Intensive SuperComputing,DISC)进行研究,本质上也是对云计算相关技术开展研究。
 
  IDC的调查显示,未来五年云计算服务将急速增长,预期2012年市场规模可达420亿美元。目前企业导入云计算已逐渐普及,并且有逐年成长趋势。估计在2012年,企业投入在云计算服务的支出将占整体IT成本的25%,甚至在2013年提高至IT总支出的三分之一。
 
  由此可见,在各大公司以及学术界的共同推动下,云计算技术将会持续发展。
 
  云计算有着广泛的应用前景。如表1所示。云计算在天文学、医学等各个领域有着广泛的应用前景。
 
  趋势科技和瑞星等安全厂商纷纷提出了“安全云”计划。如今,每天有2万多种新的病毒和木马产生,传统的通过更新用户病毒库的防毒模式,受到了严峻的挑战,该模式使用户端的病毒库过于庞大。趋势科技和瑞星的“安全云”将病毒资料库放在“云”端,与客户端通过网络相连,当“云”在网络上发现不安全链接时,可以直接形成判断,阻止其进入用户机器,从根本上保护机器的安全。
 
  表1云计算的应用领域
 
  
 
云计算的应用领域
 
 
  据趋势科技大中华区执行总裁张伟钦介绍,趋势科技已投入了大量资金,在全球数个地方建设了新型数据中心。同时,趋势科技还花费了1000多万美元,租借了34000多台服务器,构建了一个服务遍及全球的“安全云”。目前趋势科技已将公司中低端的部分产品线放到“云安全”计划中,而高端的大部分产品线,仍在准备过程中。
 
  谷歌提供的Gmail、Gongh Earth、Google Analytles等服务都基于其云计算服务器运行。谷歌基于云计算提供的翻译服务具有现今最好的性能。对互联网和美国人生活的一项研究显示,大约70%的在线用户使用以上“云计算”服务。
 
  1 云计算的定义
 
  目前,云计算没有统一的定义,当前云计算的定义主要包括如下几种。
 
  1)维基百科给云计算下的定义。云计算将IT相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet获取需要的服务。
 
  2)中国云计算网将云计算定义为:云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些科学概念的商业实现。
 
  3)在综合多个云计算的定义之后,给“云”下了如下定义。云是一个包含大量可用虚拟资源(例如硬件、开发平台以及I/O服务)的资源池。这些虚拟资源可以根据不同的负载动态地重新配置,以达到更优化的资源利用率。这种资源池通常由基础设施提供商按照服务等级协议(ServiceLevel Agreement,SLA)采用用时付费(Pay-Per-Use,PPU)的模式开发管理。
 
  对比上述定义,可以发现,云计算定义主要从云计算用户的角度给出定义,即用户在不了解具体实现的情况下通过Internet获取服务。从云计算的发展脉络的角度给出定义,主要说明了云计算的历史,从云计算提供者的角度来给出定义,定义了云计算的后台实现方式,以及管理模式。但是,这些定义都仅从一个方面定义云,并不完善。结合上述定义,可以总结出云计算的一些本质特征,即分布式的计算和存储特性,高扩展性,用户友好性,良好的管理性,用时付费等。云计算技术具有以下特点。
 
  1)云计算系统提供的是服务。服务的实现机制对用户透明,用户无需了解云计算的具体机制,就可以获得需要的服务。
 
  2)用冗余方式提供可靠性。云计算系统由大量商用计算机组成集群向用户提供数据处理服务。随着计算机数量的增加,系统出现错误的概率大大增加。在没有专用的硬件可靠性部件的支持下,采用软件的方式,即数据冗余和分布式存储来保证数据的可靠性。
 
  3)高可用性。通过集成海量存储和高性能的计算能力,云能提供较高的服务质量。云计算系统可以自动检测失效节点,并将失效节点排除,不影响系统的正常运行。
 
  4)高层次的编程模型。云计算系统提供高层次的编程模型。用户通过简单学习,就可以编写自己的云计算程序,在“云”系统上执行,满足自己的需求。现在云计算系统主要采用Map—Reduce模型。
 
  5)经济性。组建一个采用大量的商业机组成的集群相对于同样性能的超级计算机花费的资金要少很多。
 
  6)服务多样性。用户可以支付不同的费用,以获得不同级别的服务等。
 
  为了更好地定义云计算,必须从云计算的服务使用者,服务提供者,组织方式,内部实现机制等方面同时定义。
 
  根据现有定义的不足,本文定义云计算为:“云计算是由网格计算发展而来的,前台采用用时付费的方式通过Internet向用户提供服务。云系统后台由大量的集群使用虚拟机的方式,通过高速互联网络互连,组成大型的虚拟资源池。这些虚拟资源可自主管理和配置。用数据冗余的方式保证虚拟资源的高可用性。并具有分布式存储和计算、高扩展性、高可用性、用户友好性等特征。”
 
  2 云计算的关键技术
 
  云计算是一种新型的超级计算方式,以数据为中心,是一种数据密集型的超级计算。在数据存储、数据管理、编程模式等多方面具有自身独特的技术。同时涉及了众多其他技术,如表2所示。本章主要介绍云计算特有的技术,包括数据存储技术,数据管理技术,编程模式等。
 
  表2云计算涉及的关键技术
 
  
 
云计算涉及的关键技术
 
 
  2.1数据存储技术
 
  为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。
 
  另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。
 
  云计算的数据存储技术主要有谷歌的非开源的GFS(Google File System)和Hadoop开发团队开发的GFS的开源实现HDFS(Hadoop Distributed File System)。大部分IT厂商,包括雅虎、英特尔的“云”计划采用的都是HDFS的数据存储技术。
 
  云计算的数据存储技术未来的发展将集中在超大规模的数据存储、数据加密和安全性保证以及继续提高I/O速率等方面。
 
  以GFS为例。GFS是一个管理大型分布式数据密集型计算的可扩展的分布式文件系统。它使用廉价的商用硬件搭建系统并向大量用户提供容错的高性能的服务。
 
  GFS和普通的分布式文件系统有以下区别,如表3所示。
 
  表3 GFS与传统分布式文件系统的区别
 
  
 
 GFS与传统分布式文件系统的区别
 
 
  GFS系统由一个Master和大量块服务器构成。Master存放文件系统的所有元数据,包括名字空间、存取控制、文件分块信息、文件块的位置信息等。GFS中的文件切分为64MB的块进行存储。
 
  在GFS文件系统中,采用冗余存储的方式来保证数据的可靠性。每份数据在系统中保存3个以上的备份。为了保证数据的一致性,对于数据的所有修改需要在所有的备份上进行,并用版本号的方式来确保所有备份处于一致的状态。
 
  客户端不通过Master读取数据,避免了大量读操作使Master成为系统瓶颈。客户端从Master获取目标数据块的位置信息后,直接和块服务器交互进行读操作。
 
  GFS的写操作将写操作控制信号和数据流分开,如图1所示。
 
  
 
写控制信号和写数据流
 
 
  图1 写控制信号和写数据流
 
  即客户端在获取Master的写授权后,将数据传输给所有的数据副本,在所有的数据副本都收到修改的数据后,客户端才发出写请求控制信号。在所有的数据副本更新完数据后,由主副本向客户端发出写操作完成控制信号。
 
  当然,云计算的数据存储技术并不仅仅只是GFS,其他IT厂商,包括微软、Hadoop开发团队也在开发相应的数据管理工具。本质上是一种分布式的数据存储技术,以及与之相关的虚拟化技术,对上层屏蔽具体的物理存储器的位置、信息等。快速的数据定位、数据安全性、数据可靠性以及底层设备内存储数据量的均衡等方面都需要继续研究完善。
 
  2.2数据管理技术
 
  云计算系统对大数据集进行处理、分析向用户提供高效的服务。因此,数据管理技术必须能够高效地管理大数据集。其次,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。
 
  云计算的特点是对海量的数据存储、读取后进行大量的分析,数据的读操作频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式。将表按列划分后存储。
 
  云计算的数据管理技术中最著名的是谷歌提出的BigTable数据管理技术。由于采用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。
 
  以BigTable为例。BigTable数据管理方式设计者——Gongle给出了如下定义:“BigTable是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据。”
 
  BigTable对数据读操作进行优化,采用列存储的方式,提高数据读取效率。BigTable管理的数据的存储结构为:->string。BigTable的基本元素是:行,列,记录板和时间戳。其中,记录板是一段行的集合体。如图2所示。
 
  
 
BigTable的逻辑结构
 
 
  图2 BigTable的逻辑结构
 
  BigTable中的数据项按照行关键字的字典序排列,每行动态地划分到记录板中。每个节点管理大约100个记录板。时间戳是一个64位的整数,表示数据的不同版本。列族是若干列的集合,BigTable中的存取权限控制在列族的粒度进行。
 
  BigTable在执行时需要三个主要的组件:链接到每个客户端的库,一个主服务器,多个记录板服务器。主服务器用于分配记录板到记录板服务器以及负载平衡,垃圾回收等。记录板服务器用于直接管理一组记录板,处理读写请求等。
 
  为保证数据结构的高可扩展性,BigTable采用三级的层次化的方式来存储位置信息,如图3所示。
 
  其中第一级的Chubby file中包含Root Tablet的位置,Root Tablet有且仅有一个,包含所有METADATA tablets的位置信息,每个METADATA tablets包含许多User Table的位置信息。
 
  
 
BigTable中存储记录板位置信息的结构
 
 
  图3 BigTable中存储记录板位置信息的结构
 
  当客户端读取数据时,首先从Chubby file中获取RootTablet的位置,并从中读取相应METADATA tablet的位置信息。接着从该METADATA tablet中读取包含目标数据位置信息的User Table的位置,然后从该User Table中读取目标数据的位置信息项。据此信息到服务器中特定位置读取数据。
 
  这种数据管理技术虽然已经投入使用,但是仍然具有部分缺点。例如,对类似数据库中的Join操作效率太低,表内数据如何切分存储,数据类型限定为string类型过于简单等。而微软的DryadLINQ系统则将操作的对象封装为.NET类,这样有利于对数据进行各种操作,同时对Join进行了优化,得到了比BigTable+MapReduee更快的Join速率和更易用的数据操作方式。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!