云计算及其关键技术(2)


  对比上述定义,可以发现,云计算定义主要从云计算用户的角度给出定义,即用户在不了解具体实现的情况下通过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是一个管理大型分布式数据密集型计算的可扩展的分布式文件系统。它使用廉价的商用硬件搭建系统并向大量用户提供容错的高性能的服务。

(责任编辑:adminadmin2008)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

开源发家史:Linux在为谁代言?

开源发家史:Linux在为谁代言?

开源,也被称为开放源代码(Open Source) 开源(Open Source) 开源运动起源于20实际60年...[详细]

作为码农,我们为什么要写作

作为码农,我们为什么要写作

在程序员这个行业,坚持做技术写作的人一直比较少。我和身边的朋友沟通后,发现他们除...[详细]

键盘敲击识别技术真的靠谱吗?

键盘敲击识别技术真的靠谱吗?

所有人都知道密码是靠不住的。于是现在有一个有意思的行为生物识别是你是如何打字的,...[详细]

干货!企业安全产品采购指南

干货!企业安全产品采购指南

作为一个安全行业的客户,怎么知道什么样的技术、产品和服务将会满足自身的需求?本文...[详细]

作为程序员,你必须了解这些关于计算机的知

作为程序员,你必须了解这些关于计算机的知识

存储-块设备,文件系统,集群文件系统,分布式文件系统,光纤SCSI,iSCSI,RAID等。 ...[详细]

返回首页 返回顶部