深刻改变未来-云计算关键技术(一)

来源:互联网 发布:linux aio 编辑:程序博客网 时间:2024/05/29 18:16

说明:本博文内容大多来源于《云计算:深刻改变未来》一书。

概述

云计算是以数据为中心的一种数据密集型的超级计算,在数据存储、数据管理、编程模式、并发控制、系统管理等方面具有自身独特的技术。

云计算技术框架

云计算的出现,改变了信息服务的提供方式。深入剖析‘云’,会发现他不是一个单独的服务,而是一个服务集合,其技术框架包括:基础设施即服务(IaaS),平台即服务(PaaS),软件即服务(SaaS)三种形式,云计算以前所未有的规模为使用者提供IT服务能力。
这里写图片描述
简单来说,IaaS提供更多虚拟资源上的东西,比如虚拟机上的一些内存,硬盘等资源。PaaS则提供一些编程应用接口,为开发者提供了遍历。而SaaS则更上层,比如一个公司的管理软件,或者google docs等,这样SaaS的好处在于,公司可以不用来维护,不用做其他任何与软件甚至服务器相关的内容,只需要联入互联网就能按需付费获取服务。

虚拟机镜像是什么?

虚拟机镜像实际就是一个包含整个虚拟磁盘内容的文件,这个虚拟磁盘也就是虚拟机的系统盘,包含可以引导启动的操作系统。所谓定制化的镜像,就是在这个(虚拟)系统盘上安装好需要的软件,保存好需要的配置,最后清理掉不必要的临时文件和日志等数据。最简单直观的定制方式,就是用一个干净的镜像作为系统盘创建一台虚拟机,安装好需要的操作系统,然后就可以像平时的操作那样安装需要的软件,保存配置,再利用工具清理不需要的数据,最后关闭虚拟机,镜像就定制化完成了。当然,我们也可以使用已经制作好的镜像直接创建虚拟机,这样可以省略操作系统和一些软件的安装步骤。

虚拟化技术

虚拟化技术是一种调配计算资源的方法,它以应用系统的不同层面——硬件、软件、数据、网络、存储等一一隔离开来,从而打破数据中心、服务器、存储、网络、数据和应用中的物理设备之间的划分,实现架构动态化,并达到集中管理和动态使用物理资源以及虚拟资源,以提高系统结构的弹性和灵活性,降低成本、改进服务、减少管理风等目的。
该文中没有谈及具体的技术细节,但是写到虚拟化打开了云计算的大门,而云计算带给大家的从本质上讲正是虚拟化的服务。从虚拟化到云计算的过程,我们实现了跨系统的资源动态调度,将大量的计算资源组成IT资源池,用于动态创建高度虚拟化的资源供给用户使用,从而最终实现应用、数据和IT资源以服务的方式通过网络提供给用户,并以前所未见的高速和富有弹性地方式来完成任务。

海量分布式存储技术

为保证高可靠性和经济性,云计算采用分布式存储的方式来存储数据。云计算的数据存储系统主要有GFS(google file system)和hadoop开发团队开发的开源系统HDFS(Hadoop Distributed File System)。本节概述一下这两种海量分布式数据存储技术:GFS和HDFS。

分布式文件系统设计主要关注几个方面:
设计特点、分布式能力、性能、容灾、维护和扩展、成本

分布式文件系统主要关键技术:
全局名字空间、缓存一致性、安全性、可用性、可扩展性

GFS和过去的分布式文件系统拥有许多相同的目标,如性能、可伸缩性、可靠性以及可用性。然而它的设计还受到google应用负载和技术环境的影响,主要体现在一下4个方面:
1>集群中的节点失效是常态,而非异常,需要通过软件程序模块来监视系统的动态运行状况,侦测错误,并且将容错以及自动回复系统集成到系统中。
2>google系统中的文件大小与通常文件系统中的大小概念不大一样,其文件大小通常以G字节计算。所以,相对于传统的文件系统的设计预期和参数,例会I/O操作和块的尺寸都需要重新考虑。
3>google文件系统中的文件读写模式和传统的不同。大部分是追加模式而并非覆盖模式。
4>文件系统的某些操作不再透明,需要应用程序协同完成,应用程序和文件系统API的协同设计提高了整个系统的灵活性。

pig是雅虎共享给Apache Hadoop 项目的一个并行处理框架结构系统,其基本思路是将用户对海量数据的分析请求转化成map/reduce程序,在底层的Hadoop平台上进行处理后返回结果。Hive是Facebook贡献给Apache Hadoop的数据仓库框架,Hive提供更类似SQL的语法和更丰富的类型支持。但其缺少索引功能。HBase是google bigtable的一种开源实现,简单来说,他通过索引表的结果实现了从key到value的搞笑映射,从而提高了对基于主关键字进行的查询性能。

后面介绍了子表服务器,不知道缺乏哪方面的知识,这里不太能看懂,先过了。
这里写图片描述

并行编程模式

为了高效地利用云计算的资源,预计算的编程模型必须保证后台复杂的并行执行和任务调度向用户和编程人员透明。云计算采用mapreduce编程模式,将任务自动划分成多个子任务,通过map和reduce两部实现任务在大规模计算节点中的调度与分配。

数据管理技术

云计算系统对大数据集进行处理、分析,想用户提供高效的服务。因此,数据管理技术必须能够高效地技术必须能够高效的管理大数据集。如何在规模巨大的数据中找到特定数据,也是云计算数据管理技术所必须解决的问题。云系统的数据管理往往采用列存储的数据管理模式,保证海量数据存储和分析性能。云计算的数据管理技术最著名的是google的bigtable数据管理技术。同时Hadoop开发团队开发了类似的Hbase。

分布式资源管理技术

在多节点并发执行环境中,分布式资源管理系统是保证系统状态正确性的关键技术。系统状态需要在多节点之间同步。关键节点处出现故障时需要迁移服务,分布式资源管理技术通过锁机制协调多任务对于资源的使用,从而保证数据操作的一致性。Google的chubby是最著名的分布式资源管理系统。chubby的实质是一个锁服务。

云计算平台管理技术

原创粉丝点击