51
Cloud Computin g 杨杨杨 [email protected]

Cloud Computing

  • Upload
    bat

  • View
    36

  • Download
    8

Embed Size (px)

DESCRIPTION

Cloud Computing. 杨圣洪 [email protected]. 一、基本概念. 很少有一种技术能够像“云计算”这样,在短短的两年间就产生巨大的影响力。 Google 、亚马逊、 IBM 和微软等 IT 巨头们以前所未有的速度和规模推动云计算技术和产品的普及。 一些学术活动迅速将云计算提上议事日程,支持和反对的声音不绝于耳。 那么, 云计算到底是什么? 发展现状如何? 它的实现机制是什么?. 1.1 云计算的概念. 云计算 ( Cloud Computing ) 2007年第3季诞生 - PowerPoint PPT Presentation

Citation preview

Page 1: Cloud Computing

Cloud Computing

杨圣洪[email protected]

Page 2: Cloud Computing

一、基本概念一、基本概念 很少有一种技术能够像“云计算”这样,在短短的两年间就产生巨大的影响力。 Google 、亚马逊、 IBM 和微软等 IT 巨头们以前所未有的速度和规模推动云计算技术和产品的普及。 一些学术活动迅速将云计算提上议事日程,支持和反对的声音不绝于耳。 那么, 云计算到底是什么? 发展现状如何? 它的实现机制是什么?

Page 3: Cloud Computing

1.1 1.1 云计算的概念云计算的概念 云计算 (Cloud Computing)2007 年第 3 季诞生 关注的程度远超网格计算 (Grid Computing)

云计算

网格计算

搜索量指数 Google Tronds

Page 4: Cloud Computing

一、基本概念一、基本概念 云计算是一种商业计算模型, 将计算任务分布在计算机构成的资源池上 . 使用户能够按需获取计算力、存储空间和信息服务。 资源池称为“云”。 “ 云”是一些可以自我维护和管理的虚拟计算资源,通常是一些大型服务器集群,包括计算服务器、存储服务器和宽带资源等。 云计算将计算资源集中起来,专门软件实现自动管,无需人为参与。 用户可以动态申请部分资源,支持各种应用程序的运转,无需为细节而烦恼。

Page 5: Cloud Computing

一、基本概念一、基本概念 它具有云的特征: 云一般都较大; 云的规模动态伸缩,边界是模糊的; 云在空中飘忽不定,无法也无需确定它的具体位置,但它确实存在于某处。 云计算的鼻祖之一亚马逊公司将大家曾经称为网格计算的东西,取了一个新名称“弹性计算云” (Elastic Computing Cloud) ,并取得了商业上的成功。

Page 6: Cloud Computing

一、基本概念一、基本概念 云计算是 并行计算 (Parallel Computing) 、 分布式计算 (Distributed Computing) 网格计算 (Grid Computing) 商业实现。 云计算是虚拟化 (Virtualization) 、 效用计算 (Utility Computing) 、 基础设施为服务 IaaS(Infrastructure as a Service) 平台作为服务 PaaS(Platform as a Service) 软件作为服务 SaaS(Software as a Service) 等概念混合演进并跃升的结果。

Page 7: Cloud Computing

一、基本概念一、基本概念 1) 超大规模 Google 云有 100 多万台服务器, 亚马逊、 IBM 、微软和 Yahoo 云几十万台服务器 .“ 云”能赋予用户前所未有的计算能力。 2) 虚拟化 支持用户在任意位置、使用各种终端获取服务。 请求的资源来自“云”,而不是固定有形的实体。 “ 应用”在“云”中某处运行,但用户无需了解应用运行的具体位置, 只需要一台笔记本或一个 PDA ,就可以通过网络服务来获取各种能力超强的服务。

Page 8: Cloud Computing

一、基本概念一、基本概念 3)高可靠性 “ 云”使用了数据多副本容错、 计算节点同构可互换等保障高可靠性, 使云计算比本地计算更加可靠。 4) 通用性 云计算不针对特定的应用, 在“云”中可构造出千变万化的应用, 在“云”可以同时支撑不同的应用运行。 5)高扩展性 “ 云”的规模可以动态伸缩,满足应用和用户规模增长的需要。

Page 9: Cloud Computing

一、基本概念一、基本概念 6) 按需服务 “ 云”是一个庞大的资源池,用户按需购买 , 像自来水、电和煤气那样计费。。 7)极其廉价 “ 云” 采用极其廉价的节点来构成; “ 云”采用自动化管理使管理成本降低; “ 云”的公用性和通用性使利用率提升; “ 云”设施可建在电力资源丰富的地区, 从而大幅降低能源成本。 因此“云”具有前所未有的性能价格比。

Page 10: Cloud Computing

云计算按照服务类型云计算按照服务类型 基础设施作为服务 IaaS (Infrastructure as a Service) 平台作为服务 PaaS (Platform as a Service) 软件作为服务 SaaS (Software as a Service)

将软件作为服务 SaaS(Software as a Service) 如:Salesforce online CRM

通 用

将平台作为服务 PaaS(Platform as a Service)

将基础设施作为服务 IaaS(Infrastructure as a Service)

如:Google App Engine Microsoft Windows Azure

如:Amazon EC2/S3

Page 11: Cloud Computing

基础设施作为服务基础设施作为服务 IaaSIaaS IaaS 将硬件设备等基础资源 封装成服务供用户使用, 如亚马逊云计算 AWS(Amazon Web Services) 的 弹性计算云 EC2 和 简单存储服务 S3 。 在 IaaS环境中,用户在使用裸机和磁盘, 既可以让它运行 Windows , 也可以让它运行 Linux ,可做任何事 但用户必须考虑如何才能让多台机器协同工作起来。 AWS 提供了节点之间互通消息的接口简单队列服务 SQS( Simple Queue Service)。 IaaS最大的优势在于它允许用户动态申请或释放节点,按使用量计费。

Page 12: Cloud Computing

平台作为服务平台作为服务 PaaSPaaS PaaS比 Iaas更具体一步 它提供用户应用程序的运行环境,如 Google App Engine , Microsoft Windows Azure PaaS 自身负责资源的动态扩展和容错管理, 用户应用程序不必考虑节点间的配合问题。 但用户的自主权降低, 必须使用特定的编程环境、特定的编程模型。 类似高性能集群计算机里进行 MPI编程,只适用于解决某些特定的计算问题。例如, Google App Engine 只用 Python 和 Java语言、 基于称为 Django 的 Web 应用框架、 调用 Google App Engine SDK开发在线服务。

Page 13: Cloud Computing

软件作为服务软件作为服务 SaaSSaaS SaaS 的针对性更强, 它将某些特定应用软件功能封装成服务,如 Salesforce 的客户关系管理 CRM(Client Relationship Management) 服务。 不像 PaaS ,即不提供计算或存储资源类型服务 . 不像 IaaS ,即不提供运行用户自定义应用程序的环境。 它只提供某些专门用途的服务供应用调用。 虚拟化数据存贮管理平台 虚拟化表单生成器 虚拟化的云安全服务

Page 14: Cloud Computing

软件作为服务软件作为服务 SaaSSaaS 随着云计算的深化发展,不同云计算解决方案之间相互渗透融合, 同一种产品往往横跨两种以上类型。例如, Amazon Web Services 是以 IaaS 发展的, 但新提供的弹性 MapReduce 服务模仿了 Google 的 MapReduce , 简单数据库服务 SimpleDB 模仿了 Google 的 Bigtable ,这两者属于 PaaS 的范畴, 而它新提供的电子商务服务 FPS 和 DevPay 以及网站访问统计服务 Alexa Web 服务,则属于 SaaS 的范畴

Page 15: Cloud Computing

22 、云计算的简史、云计算的简史 Google 、亚马逊、 IBM 、微软和 Yahoo 等大公司是云计算的先行者。 VMware 、 Salesforce 、 Facebook 、 YouTube 、 MySpace 是期望云能带效益的公司 . 亚马逊研发了弹性计算云 EC2 (Elastic Computing Cloud) 和简单存储服务 S3(Simple Storage Service) 为企业提供计算和存储服务。 Google 是最大的云计算技术的使用者。 Google 分布在 200点、超 100 万台服务器 Google地球、地图、 Gmail 、 Docs. Google App Engine 运行大型并行应用程序 三大法宝: GFS 、 MapReduce 和 Bigtable.

Page 16: Cloud Computing

22 、云计算的简史、云计算的简史 IBM 在 2007 年 11月推出了 “蓝云”计算平台,为客户带来即买即用的云计算平台。 包括自我管理和自我修复的虚拟化计算软件 . 使来自全球的应用可以访问分布式的大型服务器池,使得数据中心在类似于互联网的环境下运行计算。 与 17 个欧洲组织合作开展名为 RESERVOIR 的云计算项目, 以“无障碍的资源和服务虚拟化”为口号,欧盟提供了 1.7亿欧元作为部分资金。 2008 年 8月, IBM宣布将投资约 4亿美元用于北卡罗来纳州和日本东京的云计算数据中心改造。 计划 2009 年在 10 个国家投资 3亿美元建设 13个云计算中心

Page 17: Cloud Computing

22 、云计算的简史、云计算的简史 微软紧跟云计算步伐,于 2008 年 10月推出了 Windows Azure (译为“蓝天”)操作系统。 Azure 是继Windows 取代 DOS 之后, 微软的又一次颠覆性转型——通过在互联网架构上打造新云计算平台, 让Windows真正由 PC延伸到“蓝天”上。 Azure 的底层是微软全球基础服务系统, 由遍布全球的第四代数据中心构成。 目前,微软已经配置了 220 个集装箱式数据中心,包括 44 万台服务器。

Page 18: Cloud Computing

22 、云计算的简史、云计算的简史 2008 年, IBM 在无锡和北京建云计算中心; 世纪互联推出了 CloudEx 产品线,提供互联网主机服务、在线存储虚拟化服务等; 中国移动研究院建 1024CPU 的云计算中心; 解放军理工大学的云存储系统MassCloud ,并以它支撑基于 3G 的大规模视频监控应用和数字地球系统。 云安全技术通过大量客户端的参与和大量服务器端的统计分析来识别病毒和木马,巨大成功。 瑞星、趋势、卡巴斯基、 McAfee 、 Symantec 、江民、 Panda 、金山、 360安全卫士等云安全系统

Page 19: Cloud Computing

33 、云计算实现机制、云计算实现机制

管理中间件

资源管理

任务管理

用户管理

负载均衡 故障检测

映像部署和管理

使用计费 用户环境配置 用户交互管理

故障恢复 监视统计

账号管理

安全管理

访问授权

综合防护

安全审计

服务接口 服务注册 服务查找 服务访问 服务工作流

SOA构建层

计算资源池 资源池

计算机 存储器 数据库 物理资源

存储资源池 网络资源池 数据资源池 软件资源池

软件 网络设施

身份认证

任务执行 任务调度 生命期管理

Page 20: Cloud Computing

33 、云计算实现机制、云计算实现机制 物理资源层、资源池层、管理中间件层、 SOA 构建层 (Service-Oriented Architecture). 物理资源层包括计算机、存储器、网络设施、数据库和软件等 . 资源池层是将大量相同类型的资源构成同构或接近同构的资源池,如计算资源池、数据资源池 构建资源池是物理资源的集成和管理工作, 例如研究在一个标准集装箱的空间 如何装下 2000 个服务器、解决散热和故障节点替换的问题并降低能耗。

Page 21: Cloud Computing

33 、云计算实现机制、云计算实现机制 管理中间件层负责对云计算的资源进行管理, 并对众多应用任务进行调度,使资源能够高效、安全地为应用提供服务。 SOA 构建层将云计算能力封装成标准的 Web Services 服务,并纳入到 SOA 体系进行管理和使用,包括服务接口、服务注册、服务查找、服务访问和服务工作流等。 管理中间件层和资源池层是云计算技术的最关键部分, SOA 构建层的功能更多依靠外部设施提供。

Page 22: Cloud Computing

33 、云计算实现机制、云计算实现机制 管理中间件层负责资源管理、任务管理、用户管理和安全管理等工作。 (1)负责均衡地使用云资源节点,检测节点的故障并试图恢复或屏蔽之,对资源的使用情况进行监视统计; (2)负责执行用户或应用提交的任务,包括完成用户任务映象( Image)的部署和管理、任务调度、任务执行、任务生命期管理等; (3) 用户管理是实现云计算商业模式的一个必不可少的环节,包括提供用户交互接口、管理和识别用户身份、创建用户程序的执行环境、对用户的使用进行计费等; (4)安全管理保障云计算设施的整体安全,包括身份认证、访问授权、综合防护和安全审计等。

Page 23: Cloud Computing

33 、云计算实现机制、云计算实现机制 管理中间件层负责资源管理、任务管理、用户管理和安全管理等工作。

Page 24: Cloud Computing

33 、云计算实现机制、云计算实现机制 用户交互接口向应用以 Web Services方式提供访问接口,获取用户需求。 服务目录是用户可以访问的服务清单。 系统管理模块负责管理和分配所有可用的资源,其核心是负载均衡。 配置工具负责在节点上准备任务运行环境。 监视统计模块负责监视节点的运行状态,并完成用户使用节点情况的统计。 执行过程,用户交互接口允许用户从目录中选取并调用一个服务,该请求传递给系统管理模块后,它将为用户分配恰当的资源,然后调用配置工具为用户准备运行环境。

Page 25: Cloud Computing

44 、网格计算与云计算、网格计算与云计算 网格 (Grid) 是 20世纪 90 年代中期发展起来的下一代互联网核心技术。 开创者 Ian Foster 将之定义为“在动态、多机构参与的虚拟组织中协同共享资源和求解问题 ". 网格中间件有 Globus Toolkit 、 UNICORE 、 Condor 、 gLite. 国际知名的网格平台有 TeraGrid 、 EGEE 、 CoreGRID 、 D-Grid 、 ApGrid 、 Grid3 、 GIG 中国国家网格 (CNGrid , 863-10主题 ) 和 中国空间信息网格 (SIG , 863-13主题 ) 教育部的中国教育科研网格 (ChinaGrid) 上海网格( ShanghaiGrid) 973 计划有“语义网格的基础理论、模型与方法研究” 863 计划有“高效能计算机及网格服务环境”、“网格地理信息系统软件及其重大应用”等, 国家自然科学基金重大研究计划有“网络计算应用支撑中间件”等项目。

Page 26: Cloud Computing

44 、网格计算与云计算、网格计算与云计算

Page 27: Cloud Computing

二、二、 GoogleGoogle 云计算原理云计算原理 Google拥有搜索业务, Google Maps 、 Google Earth 、Gmail 、 YouTube , Google Wave 。 数据量巨大,面向全球用户提供实时服务, 因此必须解决海量数据存储和快速处理问题。 Google开发简单且高效的软件,让百万台的廉价机器协同工作,被命名为 Google 云计算技术。 具体包括: Google文件系统 GFS 、分布式计算编程模型 MapReduce 、分布式锁服务 Chubby 和分布式结构化数据存储系统 Bigtable 等。 GFS 提供了海量数据的存储和访问的能力, MapReduce 使得海量信息的并行处理变得简单易行, Chubby保证了分布式环境下并发操作的同步问题, Bigtable 使得海量数据的管理和组织十分方便。

Page 28: Cloud Computing

11、、 GoogleGoogle文件系统文件系统 GFSGFS Google文件系统 (Google File System, GFS) 是一个大型的分布式文件系统。 它为 Google云计算提供海量存储 GFS 并不是一个开源的系统,仅仅能从公布的技术文档来获得了解,而无法进行深入的研究 . 当前主流分布式文件系统有 RedHat 的 GFS(Global File System) 、 IBM 的 GPFS Sun 的 Lustre 等。 用于高性能计算或大型数据中心,对硬件要求较高。 Lustre 推荐 OST 节点采用 RAID 技术或 SAN 存储区域网来容错,但 Lustre 自身不提供数据存储容错,一旦OST 发生故障就无法恢复,大大增加了存储成本 .

Page 29: Cloud Computing

11、、 GoogleGoogle文件系统文件系统 GFSGFS 正如李开复所说的那样,创新固然重要, 但有用的创新更重要。 创新的价值,取决于一项创新在新颖、有用和可行性这三个方面的综合表现。 Google GFS 的新颖之处是采用廉价的商用机器构建分布式文件系统,同时将 GFS 的设计与 Google 应用的特点紧密结合,并简化其实现, 使之可行,最终达到创意新颖、有用、可行的完美组合。 将容错的任务交由文件系统来完成,利用软件的方法解决系统可靠性问题,这样可以使得存储的成本成倍下降。

Page 30: Cloud Computing

11、、 GFSGFS--系统架构系统架构

Page 31: Cloud Computing

11、、 GFSGFS--系统架构系统架构 GFS 将整个系统的节点分为三类角色: Client(客户端)、 Master(主服务器)和 Chunk Server(数据块服务器)。 Client 是 GFS 提供给应用程序的访问接口,它是一组专用接口,不遵守 POSIX 规范,以库文件的形式提供。应用程序直接调用这些库函数,并与该库链接在一起。 Master 是 GFS 的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件系统的管理,是 GFS文件系统中的大脑。 Chunk Server负责具体的存储工作。 数据以文件的形式存储在 Chunk Server 上, Chunk Server 的个数可以有多个,它的数目直接决定了 GFS 的规模。 GFS 将文件按照固定大小进行分块,默认是 64MB ,每一块称为一个 Chunk(数据块 ) ,每个 Chunk 都有一个对应的索引号 (Index) 。

Page 32: Cloud Computing

11、、 GFSGFS--系统架构系统架构

Page 33: Cloud Computing

11、、 GFSGFS--系统架构系统架构 GFS 将整个系统的节点分为三类角色: Client(客户端 ) 、 Master(主服务器 ) 和 Chunk Server(数据块服务器 ). 客户端在访问 GFS时,首先访问Master 节点, 获取将要与之进行交互的 Chunk Server 信息, 然后直接访问这些 Chunk Server完成数据存取。 实现了控制流和数据流的分离。 Client 与 Master 之间只有控制流,而无数据流, 极大地降低了 Master 的负载,使之不成为系统性能的一个瓶颈。 Client 与 Chunk Server 之间直接传输数据流,同时由于文件被分成多个 Chunk 进行分布式存储, Client 可以同时访问多个 Chunk Server ,从而使得整个系统 I/O高度并行,系统整体性能得到提高。

Page 34: Cloud Computing

11、、 GFSGFS--系统架构系统架构 -- 特点特点 (1) 采用中心服务器模式 简化设计,降低实现难度。 Master 管理了分布式文件系统中的所有元数据。文件划分为 Chunk 进行存储, 对 Master 来说 ,每个 Chunk Server 只是一个存储空间。 Client 发起的所有操作都需要先通过Master才能执行。 增加新的 Chunk Server 只需要注册到 Master 上即可,Chunk Server 之间无任何关系。 如果采用完全对等的、无中心的模式,那么将 Chunk Server 的更新信息通知到每一个 Chunk Server 是难点 ,影响系统的扩展性。 Master 维护统一命名空间 ,掌握 Chunk Server 的情况 . 据此可实现整个系统范围内数据存储的负载均衡。 元数据的一致性问题自然解决。 但极易成为整个系统的瓶颈等。 GFS采用多种机制避免,如控制元数据的规模、对 Master 远程备份、控制信息和数据分流等。

Page 35: Cloud Computing

11、、 GFSGFS--系统架构系统架构 -- 特点特点 (2) 不缓存数据 简化设计,降低实现难度。 Master 管理了分布式文件系统中的所有元数据。文件划分为 Chunk 进行存储, 对 Master 来说 ,每个 Chunk Server 只是一个存储空间。 Client 发起的所有操作都需要先通过Master才能执行。 增加新的 Chunk Server 只需要注册到 Master 上即可,Chunk Server 之间无任何关系。 如果采用完全对等的、无中心的模式,那么将 Chunk Server 的更新信息通知到每一个 Chunk Server 是难点 ,影响系统的扩展性。 Master 维护统一命名空间 ,掌握 Chunk Server 的情况 . 据此可实现整个系统范围内数据存储的负载均衡。 元数据的一致性问题自然解决。 但极易成为整个系统的瓶颈等。 GFS采用多种机制避免,如控制元数据的规模、对 Master 远程备份、控制信息和数据分流等。

Page 36: Cloud Computing

11、、 GFSGFS--系统架构系统架构 -- 特点特点 (3) 在用户态下实现 文件系统作为操作系统的重要组成部分,其实现通常位于操作系统底层。如 Linux 的 Ext3. 1) 在用户态下实现,利用 POSIX编程接口存取数据,无需了 OS内部实现机制和接口,提高了通用性。 2)POSIX接口的功能丰富,不像内核编程那样受限。 3) 用户态下有多种调试工具,内核态中比较困难。 4) 用户态下, Master 和 Chunk Server 都以进程的方式运行,单个进程不会影响到整个操作系统。 在内核态下,如果处置不当,效率可能不高,还会影响到整个系统运行的稳定性。 5) 用户态下, GFS 和操作系统运行在不同的空间,两者耦合性降低,从而方便 GFS 自身和内核的单独升级。 Portal Operating System Interface of Unix

Page 37: Cloud Computing

11、、 GFSGFS--系统架构系统架构 -- 特点特点 (4) 只提供专用接口 通常的分布式文件系统一般都会提供一组与 POSIX 规范兼容的接口 . GFS采用了专用的文件系统访问接口 . 1)降低实现的难度。与 POSIX兼容的接口需要在内核一级实现,而 GFS 是在应用层实现的。 2)采用专用接口可根据应用特点对应用提供一些特殊支持,如支持多个文件并发追加等。 3) 专用接口直接和 Client 、 Master 、 Chunk Server交互,减少了操作系统之间上下文的切换,降低了复杂度,提高了效率 .

Page 38: Cloud Computing

22、、 GFSGFS--容错性容错性 (1) Master容错 Master 上保存了 GFS文件系统的三种元数据。 1)命名空间 (Name Space) ,整个文件系统的目录结构。 2)Chunk 与文件名的映射表。 3)Chunk副本位置信息,每个 Chunk默认有三个副本。 对前两种元数据, GFS 通过日志来提供容错功能。 副本位置则直接保存在各个 Chunk Server 上, Master启动或 Chunk Server向Master 注册时自动生成。 当Master 发生故障时,在磁盘数据保存完好情况下, 可以迅速恢复以上元数据。 为了防止Master彻底死机的情况, GFS还提供了 Master 远程的实时备份,这样在当前的 GFS Master出现故障无法工作的时候,另外GFS Master 可以迅速接替其工作

Page 39: Cloud Computing

22、、 GFSGFS--容错性容错性 (2) Chunk Server容错 GFS采用副本的方式实现 Chunk Server 的容错。 每一个 Chunk 有多个存储副本 (默认为三个 ) 分布存储在不同的 Chunk Server 上。 每 Chunk ,所有的副本全部写入成功,才视为成功写入。 在运行中若副本出现丢失或不可恢复等, Master会自动产生另一副本,从而确保副本保持一定的个数。 一式三份浪费磁盘空间,但磁盘成本不断下降,副本是最简单、最可靠、最有效,实现的难度也最小的一种方法。 GFS 的文件划分为多个 Chunk , Chunk 的默认大小是 64MB , 副本以文件的形式进行存储。 每个 Chunk 以 64KB 大小划分为多个 Block, Block 有 32bit校验和 . 当读取一个 Chunk时, Chunk Server会将读取的数据和校验和进行比较,如果不匹配会让 Client选择其他 Chunk Server 上的副本

Page 40: Cloud Computing

33、、 GFSGFS--系统管理技术系统管理技术 (1) 大规模集群安装技术 迅速地安装、部署 GFS系统,以及迅速地进行节点的系统升级等,都需要该技术。 (2) 故障检测技术 GFS 是构建在不可靠的廉价计算机之上,故障发生十分频繁,在最短的时间内发现并确定发生故障的 Chunk Server ,需要集群监控技术。 (3) 节点动态加入技术 Chunk Server加入时,若需要先安装系统,那么扩展将十分烦琐。为了做到裸机加入,能自动获取系统并安装运行,那么需要该技术。

Page 41: Cloud Computing

33、、 GFSGFS--系统管理技术系统管理技术 (1) 大规模集群安装技术 (2) 故障检测技术 (3) 节点动态加入技术 裸机加入,能自动获取系统并安装运行 (4) 节能技术 有关数据表明,服务器的耗电成本大于当初的购买成本,因此 GFS采用了多种机制来降低服务器的能耗 . 如对服务器主板进行修改,采用蓄电池代替昂贵的 UPS( 不间断电源系统 ) ,提高能量的利用率。 Rich Miller 认为,这个设计让 GFS 的 UPS 利用率达到 99.9% ,而一般数据中心只能达到 92%~ 95% 。

Page 42: Cloud Computing

33、、 GFSGFS-- 软件运行技术软件运行技术 (1) 并行数据处理MapReduce 是 Google 提出的一个软件架构, 是处理海量数据的并行编程模式, 用于大规模数据集 ( 大于 1TB)的并行运算。 “Map(映射 )” 、“ Reduce( 化简 )” 特别适合于, 非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习等。 MapReduce封装了并行处理、容错处理、本地化计算、负载均衡等细节。 通过接口可把大尺度的计算自动地并发和分布执行, 从而使并发编程变得非常容易。 从而普通 PC 能构成的巨大集群来达到极高的性能。 MapReduce 也具有较好的通用性,大量不同的问题都可以简单地通过MapReduce 来解决。

Page 43: Cloud Computing

33、、 GFSGFS-- 软件运行技术软件运行技术 (1) 并行数据处理MapReduce Map函数独立地是对部分原始数据操作,可并发进行。 Reduce 是对 Map 所产生结果合并,每个 Reduce 所处理的 Map 中间结果是互不交叉的,因此 Reduce 可并发。

Map

Reduce

Map Map …

原始数据 1 原始数据 2 原始数据 M

结果 1 结果 R

Reduce

Page 44: Cloud Computing
Page 45: Cloud Computing

33、、 GFSGFS-- 软件运行技术软件运行技术 1) 用户程序中的 MapReduce函数库首先把输入文件分成 M块,每块大概 16M~ 64MB ,接着在集群的机器上执行处理程序。 2)主控程序 Master 将 M 个 Map 任务和 R 个 Reduce 任务分派给空闲的 Worker 。 3)接受Map 任务的 Worker,读取并处理相关的输入块。中间结果 <key,value> 对暂时缓冲到内存 , 将被定时写到本地硬盘,中间结果在本地硬盘的位置信息将被发送回Master ,然后Master负责把这些位置信息传送给 Reduce Worker 。 4) Reduce调用远程过程来从Map Worker 的本地硬盘上读取缓冲的中间数据 .

Page 46: Cloud Computing
Page 47: Cloud Computing

33、、 GFSGFS-- 软件运行技术软件运行技术 (2) 分布式锁服务 Chubby Chubby 是 Google 设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。 GFS 使用 Chubby 来选取一个 GFS主服务器, Bigtable 使用 Chubby指定一个主服务器并发现、控制与其相关的子表服务器。 Google内部还使用 Chubby 进行名字服务 (Name Server) ,管理整个系统的目录树。 用到 Paxos 算法。 1)决议只有在被 proposers 提出后才能批准。 2)每次只批准一个决议。 3)只有决议确定被批准后 learners才能获取这个决议。

Page 48: Cloud Computing

33、、 GFSGFS-- 软件运行技术软件运行技术 (2) 分布式锁服务 Chubby 设计目标主要有以下几点。 1)高可用性和高可靠性。在此基础上再考虑系统的吞吐量和存储能力。 2)高扩展性。将数据存储在价格较为低廉的 RAM ,支持大规模用户访问文件。 3) 支持粗粒度的建议性锁服务,以提高系统的性能。 4) 服务信息直接存储。直接存储元数据、系统参数等服务信息,而不需要另一个进程来维护这些元信息。 5) 支持通报机制。 6) 支持缓存机制。通过一致性缓存将常用信息保存在客户端,避免了频繁地访问主服务器。

Page 49: Cloud Computing

33、、 GFSGFS-- 软件运行技术软件运行技术 (3) 分布式结构化数据表 Bigtable Bigtable 是 Google开发的基于 GFS 和 Chubby的分布式存储系统。 Web索引、卫星图像数据等在内的海量结构化和半结构化数据,都是存储在 Bigtable 中 . 动机主要有如下三个方面。 1)需要存储的数据种类繁多 . 2)海量的服务请求。 3)商用数据库无法满足 Google 的需求

Page 50: Cloud Computing

33、、 GFSGFS-- 软件运行技术软件运行技术 (3) 分布式结构化数据表 Bigtable-目标 1)广泛的适用性。 Bigtable 是为了满足一系列 Google 产品而并非特定产品的存储要求。2)很强的可扩展性。根据需要随时可以加入或撤销服务器。3)高可用性。对于客户来说,有时候即使短暂的服务中断也是不能忍受的。确保几乎所有的情况下系统都可用。4)简单性。底层系统的简单性既可以减少系统出错的概率,也为上层应用的开发带来便利。

Page 51: Cloud Computing

Bigtable主服务器

Bigtable客户端

Bigtable客户端 程序库

Bigtable子表服务器 Bigtable子表服务器 Bigtable子表服务器

处理数据 处理数据 处理数据

Google WorkQueue GFS Chubby

执行 Open ()

操作

负责故障处理及监控 保存子表数据及日志 负责元数据存储及 主服务器的选择

执行元数据操作及 负载平衡

1)选取并保证同一时间内只有一个主服务器2)获取子表的位置信息。3)保存 Bigtable 的模式信息及访问控制列表。