• 1. 云计算的探讨和应用云计算的探讨和应用
  • 2. 2云计算概念 云计算关键技术 云计算与开源 中国电信云计算 云计算开源应用 1234目 录5
  • 3. 什么云计算Kevin Hartig:云是一个庞大的资源池,你按需购买;云是虚拟化的;云可以象自来水,电,煤气那样计费。 Jan Pritzker:云计算是用户友好的网格计算。 3农村城市化发展
  • 4. 云计算-网格计算的发展4网格计算云计算MPIMAP-Ruduce,Dryad异构资源同构资源不同机构单一机构虚拟组织虚拟机科学计算为主数据处理为主高性能服务器服务器、PC标准化无标准科学界商业应用
  • 5. 云计算的使用方式将计算和存储等资源以服务的方式提供,用户按需使用,按用量付费5
  • 6. 云计算 关键特征云计算-关键特征按需扩展和使用 快速获得服务通过互联网提供自助式服务按使用量付费 6
  • 7. 云计算-交付模型PC硬件资源 (PowerPC、x86、ARM)操作系统 Linux、Windows、UNIX 开发环境 C、C++、Java、Python、Perl等软件应用运行库 (.Net、JRE)Cloud 共享资源SaaS:通过互联网向最终用户提供软件应用服务。主要特征:多租户、数据分离、水平扩展、可个性配置、可伸缩。代表:Salesforce CRM、微软的Online服务、IBM Lotus Live。 PaaS:通过互联网向开发者提供运行平台托管服务,提供开发SDK,开发者开发应用后可直接运行在PaaS上。主要特征:运行平台托管、提供增强的平台能力。代表:Google的AppEngine、微软的Azure Platform、Salesforce的Force.com IaaS:应用虚拟化、自动化部署等技术,通过互联网向用户提供基础IT设施的技术方案与服务模式。主要特征是资源动态弹性供应、资源整合与共享、资源利用率高、节能降耗、管理成本下降。主要代表:Amazon的ec2、S37
  • 8. 云计算-部署模型公有云:简单来说,公有云服务指的是用户通过互联网从第三方供应商获取的云计算服务。 私有云:私有云具备公有云计算环境的许多优点,如灵活性强、以服务为基础等。 社区云:社区云由一群共享利益(如特定安全需求或共同目标)的企业管理和使用。 混合云:混合云是公有云和私有云的融合,且两者可互操作。8
  • 9. 云计算-架构这套架构主要可分为四层,其中有三层是横向的,分别是显示层、中间件层和基础设施层,通过这三层技术能够提供非常丰富的云计算能力和友好的用户界面,还有一层是纵向的,称为管理层,是为了更好地管理和维护横向的三层而存在的。接下来将一个个地给大家介绍每个层次的作用和属于这个层次的主要技术。9
  • 10. 10云计算概念 云计算关键技术 云计算与开源 中国电信云计算 云计算开源应用 1234目 录5
  • 11. 云计算关键技术-虚拟化技术11虚拟化领域服务器虚拟化 网络虚拟化应用虚拟化客户端虚拟化 降低系统复杂度,提高资源利用率,动态划分服务资源,动态部署资源池,统一管理,数据更加安全存储虚拟化网络容量的优化,网络各节点优化交付模式的改变,应用能力的按需提供降低终端成本,满足客户动态需求虚拟化是将底层物理设备与上层操作系统、软件分离的一种去耦合技术,它通过软件或固件管理程序(Hypervisor)构建虚拟层并对其进行管理,把物理资源映射成逻辑的虚拟资源,对逻辑资源的使用与物理资源相差很少或者没有区别。虚拟化的目标是实现IT 资源利用效率和灵活性的最大化。
  • 12. 云计算关键技术-分布式存储技术概念:分布式存储系统是分布式计算环境的基础架构之一,它把分散在网络中的存储资源以统一的视点呈现给用户,简化了用户访问的复杂性,加强了分布系统的可管理性,也为进一步开发分布式应用准备了条件。 基于云数据中心的分布式存储系统构建在大规模服务器群上,面临以下几个挑战: 1)服务器等组件的失效将是正常现象,需解决系统的容错问题; 2)提供海量数据的存储和快速读取; 3)多用户同时访问文件系统,需解决并发控制和访问效率问题; 4)服务器增减频繁,需解决动态扩展问题; 5)需提供类似传统文件系统的接口以兼容上层应用开发,支持创建、删除、打开、关闭、读写文件等常用操作。12
  • 13. 云计算关键技术-分布式存储技术(GFS)GFS的设计理念 服务器DOWN机作为常态 文件用块存储 每个块固定为64MB 通过冗余解决可靠性问题 每个块同时拷贝在3个块服务器上 主服务器负责协调访问和保存元数据 简单化的集中管理 定制化的API 无数据缓存 较大文件块和流式读取使得缓存效果不佳13
  • 14. 云计算关键技术-分布式存储技术(GFS)GFS体系结构14
  • 15. 云计算关键技术-并行编程模式 对于并行编程而言,核心的问题是如何把一个大的应用程序分解成若干可以并行处理的子程序。有两种可能处理的方法,一种是分割计算,即把应用程序的功能分割成若干个模块,由网络上多台机器协同完成;另一种是分割数据,即把数据集分割成小块,由网络上的多台计算机分别计算。目的是实现分布式计算,让几个物理上独立的组件作为一个单独的系统协同工作,这些组件可能指多个CPU,或者网络中的多台计算机。 15复杂,很难入门如何简单化
  • 16. 云计算关键技术-并行编程模式(Google)Map/Reduce 用于大规模数据并行处理 数据量大(超过1TB) 在成百上千个CPU上并行处理 用户只需实现下面接口 map (in_key, in_value) -> (out_key, intermediate_value) list reduce (out_key, intermediate_value list) -> out_value list 16
  • 17. 云计算关键技术-并行编程模式(流程)Cat input | grep xxx| sort |uniq –c |cat > output架构17
  • 18. 云计算关键技术-并行编程模式(原理)实现原理18
  • 19. 云计算关键技术-数据管理技术19分布式数据库是对海量数据进行存储和管理。分布式数据库是一组结构化的数据集,逻辑上属于同一系统,而物理上分散在用计算机网络连接的多个场地上,并统一由一个分布式数据库管理系统管理。与集中式或分散数据库相比,分布式数据库具有可靠性高、模块扩展容易、响应延迟小、负载均衡、容错能力强等优点。
  • 20. 云计算关键技术-数据管理技术1BigTable的设计理念 面向网页数据的发布、搜索和浏览等特定处理的需要,简化数据管理系统的设计,并提高性能 不支持关联 不支持SQL查询 简化数据的一致性管理 网页数据的管理对一致性要求不高 简化事务管理 网页数据的处理(搜索、发布)对事务管理要求不高 面向海量数据管理要求 设计分割和合并管理机制(基于元数据) 设计自动伸缩功能(根据数据量调整资源用量)20
  • 21. 云计算关键技术-数据管理技术2Bigtable基本架构21
  • 22. 云计算关键技术-分布式锁服务 在分布式系统中,对共享资源的并行操作可能会引起丢失修改、读脏数据、不可重复读等数据不一致问题,这时需要引入同步机制,控制进程的并发操作。22
  • 23. 云计算关键技术-分布式锁服务(Chubby)23基本架构组成:客户端+5个服务器(Chubby单元); 主服务器机制:5个服务器(Chubby单元),只有一个主服务器,租续期内所有的客户请求都是由主服务器来处理的; 客户端定位主服务器:DNS请求。Chubby的设计目标主要有以下几点。 1)高可用性和高可靠性。这是系统设计的首要目标,在保证这一目标的基础上再考虑系统的吞吐量和存储能力。 2)高扩展性。将数据存储在价格较为低廉的RAM,支持大规模用户访问文件。 3)支持粗粒度的建议性锁服务。提供这种服务的根本目的是提高系统的性能。 4)服务信息的直接存储。可以直接存储包括元数据、系统参数在内的有关服务信息,而不需要再维护另一个服务。 5)支持通报机制。客户可以及时地了解到事件的发生。 6)支持缓存机制。通过一致性缓存将常用信息保存在客户端,避免了频繁地访问主服务器。
  • 24. 云计算关键技术-分布式锁服务24Chubby客户端与服务器端的通信过程
  • 25. 25云计算概念 云计算关键技术 云计算与开源 中国电信云计算 云计算开源应用 1234目 录5
  • 26. 云计算商用-开源对比26
  • 27. 云计算开源-HadoopHadoop是Apache开源组织的一个分布式计算开源框架,在很多大型网站上都已经得到了应用,如亚马逊、Facebook和Yahoo等等。 Google的开源实现 HDFS是Google File System(GFS)的开源实现; MapReduce是Google MapReduce的开源实现; HBase是Google BigTable的开源实现。27
  • 28. 云计算开源-EucalyptusEucalyptus 项目(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)是 Amazon EC2 的一个开源实现,它与商业服务接口兼容。和 EC2 一样,Eucalyptus 依赖于 Linux 和 Xen 进行操作系统虚拟化。Eucalyptus 是加利福尼亚大学(Santa Barbara)为进行云计算研究而开发的 28OpenNebula
  • 29. 云计算开源- 10genMongoDB 10gen 既是一个云平台,又是一个可下载的开放源代码包,可用于创建您自己的私有云。10gen 是类似于 App Engine的一个软件栈,它提供与 App Engine 类似的功能 ― 但有一些不同之处。通过 10gen,可以使用 Python 以及JavaScript 和 Ruby编程语言开发应用程序。该平台还使用沙盒概念隔离应用程序,并且使用它们自己的应用服务器的许多计算机(当然,是在 Linux上构建)提供一个可靠的环境。 MongoDB是一个高性能的面向文件的开源数据存储项目。十分容易部署,管理和使用。可以通过网络访问,并且由C++语言编写。主要包含的功能特性有易存储对象类型的数据,完全索引支持,查询支持,复制和故障恢复支持,高效的二进制数据存储,自动处理碎片提高云层次上的扩展性。高性能,可扩展,适当的功能使这个项目的主要设计目标。29
  • 30. 30云计算概念 云计算关键技术 云计算与开源 中国电信云计算 云计算开源应用 1234目 录5
  • 31. 电信云计算总体发展规划初步构建包含IaaS、PaaS和AaaS的完整服务体系。IDC信息化应用云服务PaaS开放平台 战略合作SaaS/AaaSPaaSIaaS商务领航号百弹性存储服务弹性计算服务切入点产品平台发展规划合作厂家IBM 微软微软 IBM HadoopIBM VMWare Xen2009-2012SaaS软件服务天翼软件广场 /OneApp 移动互联网云服务内部试验平台SCE及开放API灾备与恢复弹性大容量数据库先试点后推广,初步形成价值链; 内部应用:以提升性能为目的IaaS先试点再规模发展; 内部应用:以提升资源效益为主IT系统整合移动互联网基础设施整合外部开放平台号百整合内部海量数据处理平台内部应用31
  • 32. 32云计算概念 云计算关键技术 云计算与开源 中国电信云计算 云计算开源应用 1234目 录5
  • 33. 亚马逊云计算AWS-商业应用  33弹性计算云EC2 一部具有无限采集能力的虚拟计算机,用户能够用来执行一些处理任务。 简单存储服务S3 一个很大的磁盘驱动或一个SAN。 简单数据库服务Simple DB 为复杂的,结构化数据建立的,支持数据的查找、删除、插入等操作。 微软Azure
  • 34. 虚拟化平台-Xen与KVM 34Xen: 是一个开放源代码虚拟机监视器,由剑桥大学开发。半虚拟化技术,可能需要修改操作系统内核才能支持,不过只要硬件支持就不用做修改,亚马逊使用了Xen提供的虚拟化解决方案. KVM: KVM 是指基于 Linux 内核的虚拟机(Kernel-based Virtual Machine)。 2006 年 10 月,由以色列的 Qumranet 组织开发的一种新的“虚拟机”实现方案。 2007 年 2 月发布的 Linux 2.6.20 内核第一次包含了 KVM 。增加 KVM 到 Linux 内核是 Linux 发展的一个重要里程碑,这也是第一个整合到 Linux 主线内核的虚拟化技术。
  • 35. Hadoop HDFS ->GFS分布式文件系统 35
  • 36. Hadoop HDFS ->GFS分布式文件系统(read) 36
  • 37. Hadoop HDFS ->GFS分布式文件系统(write) 37
  • 38. Hadoop HDFS 操作命令38
  • 39. Hadoop MapReduce ->google MapReduce 工作流39SHELL: ~> cat input | grep xxx | sort | uniq -c | cat > output mapReduce: Input | Map | Shuffle & Sort | Reduce | OutputInput:一个Hadoop MapReduce应用通常需要提供一对通过实现合适的接口或抽象类提供的Map和Reduce函数,还应该指明输入/输出的位置(路径)和其他一些运行参数。此外,此阶段还会把输入目录下的大数据文件切分为若干独立的数据块。 Map:MapReduce框架把应用作业的输入看为是一组 键值对,在Map这个阶段,框架会调用用户自定义的Map函数处理每一个 键值对,生成一批新的中间 键值对,这两组键值对的类型可能不同。 Shuffle & Sort:为了保证Reduce的输入是Map排好序的输出。在Shuffle阶段,框架通过HTTP为每个Reduce获得所有Map输出中与之相关的 键值对;而在Sort阶段,框架将按照key的值对Reduce的输入进行分组(因为不同map的输出中可能会有相同的key)。通常Shuffle和Sort两个阶段是同时进行的,Reduce的输入也是一边被取回,一边被合并的。 Reduce:此阶段会遍历中间数据,对每一个唯一key,执行用户自定义的Reduce函数(输入参数是),输出是新的 键值对。 Output:此阶段会把Reduce输出的结果写入输出目录的文件中。这样,一个典型的MapReduce过程就结束了。
  • 40. Hadoop MapReduce ->google MapReduce 执行过程40
  • 41. Hadoop MapReduce ->google MapReduce 并行执行41
  • 42. Hadoop MapReduce 执行例子监控42http://192.168.107.93:50030/jobtracker.jsp
  • 43. Hadoop ZooKeeper -> google chubby 全局锁系统43所有服务器在内存保存数据 启动时选择一个节点(server)作为集群Leader 集群其它节点为客户端提供服务,所有的更新需经由Leader 更新响应消息被发送给保存这些数据的服务器
  • 44. Hbase -> google BigTable 数据存储44基于HDFS的主备Master,多个RegionSvr通过ZK构成集群 数据按照三级索引组织,三次访问可以定位数据 数据写操作在内存完成,但是需要对文件实施合并操作
  • 45. 应用->Chukwa45收集器 转换器 结果集