1电子工业出版社刘鹏主编《云计算》教材配套课件2概念回顾Google云计算背景分布式文件系统GFS并行数据处理模型MapReduce分布式锁服务Chubby分布式数据库BigTableGoogleAppEngineGoogle云计算技术小结2概念回顾3网格计算◦在动态变化、由多个机构组成的虚拟组织中协调资源共享和求解问题◦实现跨组织跨平台异构资源的共享云计算◦一种商业计算模型◦将计算任务分布在大量计算机构成的资源池上,使各种应用系统(用户)能够根据需要获取计算力、存储空间和信息服务4网格计算•异构资源•不同机构•虚拟组织•科学计算为主•高性能计算机•紧耦合问题•免费•标准化•科学界•异构资源•不同机构•虚拟组织•科学计算为主•高性能计算机•紧耦合问题•免费•标准化•科学界云计算•同构资源•单一机构•虚拟机•数据处理为主•服务器/PC•松耦合问题•按量计费•尚无标准•商业社会•同构资源•单一机构•虚拟机•数据处理为主•服务器/PC•松耦合问题•按量计费•尚无标准•商业社会云计算的商业化属性◦GoogleTrendsGridComputingvs.CloudComputing6GoogleTrends◦CloudComputingvs.云计算789大气“云”、星系“云”亚马逊弹性计算“云”EC2◦将闲置资源出租利用“云”计算的核心思想◦计算、服务在“云”端“云”的规模较大“云”具有可伸缩性“云”的边界模糊“云”飘忽不定,无法确定具体位置“云”的规模较大“云”具有可伸缩性“云”的边界模糊“云”飘忽不定,无法确定具体位置101112计算形式以螺旋式上升的形式完成了轮回巨型机时代•ManyPeoplevs.OneComputerPC时代•OnePersonvs.OneComputer云计算时代•ManyPeoplevs.“OneComputerinCloud”云计算时代与巨型机时代有何不同?13云计算的本质是分布式计算,但有集中管理某些特征优点◦更好的性能价格比,你不要花几十万美元就能获得高效能计算◦多数应用是分布式的。◦高可靠性:现代分布式系统具有高度容错机制。◦可扩展性:买一台性能更高的大型机,或者再买一台性能相同的大型机的费用都比添加几台PC的费用高得多。◦高度灵活性:能够兼容不同硬件厂商的产品,兼容低配置机器和外设而获得高性能计算14云安全病毒响应更及时体积更小、查杀病毒能力更强轻量级客户端适合于移动设备查杀“未知”病毒,保障用户彻底安全15云安全如何应对网络被破坏的情况?如何信任云端的自动病毒判断、防止误杀?如何处理好隐私文件扫描的问题?……….16云物流◦构建统一的“云计算”平台处理快递订单◦物流公司从该平台中获取订单◦发货人向该平台提供资源(订单),不关心如何实现物流配送◦订单是关键!星辰急便董事长陈平马云17Google云计算的背景1819Google和微软之间日益激烈的对立将是一场史诗般的企业战争,将对两家公司的成功和发展产生重要影响,并规定着消费者和企业如何工作、购物、通讯,以及“他们过的数字生活”Google认为这一切将发生在遥远的数据中心中的服务器,用户可以通过许多有线和无线设备访问这些服务,这就是所谓的“云计算”微软也认为未来在于Web,但它的重心仍然是其桌面PC软件2090%计算任务都能够通过“云计算”技术完成桌面软件正在向Web软件转型云计算是开放标准,业界不会有公司独裁中小企业、大学、消费者会相对迅速地转向基于Web的“云计算”技术新的赢利模式◦低廉的云计算给Google带来更多的流量,进而带来更多的广告收入承认“云计算”不会在一夜之间普及◦大公司通常会慢慢地改变自己的习惯◦其它问题,例如“飞机问题”,以及在不能上网时用户如何工作。GoogleCEO埃立克.施米特21在计算机上安装的传统软件是微软的根本比尔·盖茨(BillGates)接受媒体采访时曾提出:“我们致力于推动PC成为一切的中心”微软将自身的战略称为“软件加服务”微软将Google的乐观称作是一厢情愿。◦利用Web软件收发电子邮件、处理文档和电子表格、进行协作很方便吗?◦高速宽带连接会象Google断言的那样普及和可靠吗?◦企业、大学、消费者会让Google保存他们的资料吗?MicrosoftCEO史蒂夫.鲍尔默孰优孰劣,等待市场检验!22应用规模对于系统架构设计的重要性Google应用的特性◦海量用户+海量数据◦需要具备较强的可伸缩性◦如何又快又好地提供服务?秘密武器:云计算平台23应用向互联网迁移数据向互联网迁移计算能力向互联网迁移存储空间向互联网迁移“浏览器=操作系统”24SaaSGoogleDocsGoogleMapsGmailGoogleCalendarGoogleWave………PaaSGoogleAppEngine25Google在线文档26Google地图27Google邮件28Google日历29GoogleWave◦信息分享、协作、发布平台30隶属于PaaS的Google云计算◦属于部署在云端的应用执行环境◦支持Python和Java两种语言◦通过SDK提供Google的各种服务,如图形、MAIL和数据存储等◦用户可快速、廉价(可免费使用限定的流量和存储)地部署自己开发的应用(如创新的网站、游戏等)31应用场景特点应用(功能实现)在云端存储在云端计算在云端32Google云计算平台技术架构◦文件存储,GoogleDistributedFileSystem,GFS◦并行数据处理MapReduce◦分布式锁Chubby◦结构化数据表BigTableGoogle云计算应用MapReduceBigTableGFSChubby33分布式文件系统GFSGoogleDistributedFileSystem34什么是文件系统?◦FAT,FAT32,NTFS,EXT,……◦用于持久地存储数据的系统通常覆盖在底层的物理存储介质上◦硬盘、CD、磁带等数据组织的基本单元:文件◦具有文件名(1.txt)◦通常支持层次化嵌套(目录结构)35文件路径◦文件与目录的结合,用于定位文件◦绝对路径,/home/aaron/foo.txt◦相对路径,docs/someFile.doc规范路径◦定位文件的最短绝对路径◦/home/aaron/foo.txt,/home/../home/aaron/./foo.txt◦所有规范路径的集合构成了文件系统的目录结构36文件系统的存储内容◦主要内容:用户的实际数据◦元数据:驱动器元数据与文件元数据驱动器元数据•可用空间•格式信息•字符集•……..文件元数据•文件名•创建者•修改者•创建时间•修改时间•………37文件分块存储38文件系统设计的考虑因素◦最小存储单元较小可减少浪费空间,较大则可提高文件顺序读取速度(随机访问呢?)◦文件系统的设计目标是提高访问速度还是提高使用率?文件系统的安全性◦多用户环境下的文件安全◦读/写权限分配◦文件附带访问控制列表(ACL)文件系统缓存◦提高文件系统读写效率39Google需要一个支持海量存储的文件系统◦购置昂贵的分布式文件系统与硬件?是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统?40为什么不使用当时现存的文件系统?◦Google所面临的问题与众不同不同的工作负载,不同的设计优先级(廉价、不可靠的硬件)◦需要设计与Google应用和负载相符的文件系统41硬件出错是正常而非异常◦系统应当由大量廉价、易损的硬件组成◦必须保持文件系统整体的可靠性主要负载是流数据读写◦主要用于程序处理批量数据,而非与用户的交互或随机读写◦数据写主要是“追加写”,“插入写”非常少需要存储大尺寸的文件◦存储的文件尺寸可能是GB或TB量级,而且应当能支持存储成千上万的大尺寸文件42将文件划分为若干块(Chunk)存储◦每个块固定大小(64M)通过冗余来提高可靠性◦每个数据块至少在3个数据块服务器上冗余◦数据块损坏概率?通过单个master来协调数据访问、元数据存储◦结构简单,容易保持元数据一致性无缓存◦Why?43单一Master,若干ChunkServer1、文件存储方式2、数据读写流程GFSGFS的架构有什么问题吗?4445分布式系统设计告诉我们:◦这是单点故障◦这是性能瓶颈GFS的解决办法◦单点故障问题采用多个(如3个)影子Master节点进行热备,一旦主节点损坏,立刻选举一个新的主节点服务46GFS的解决办法◦性能瓶颈问题尽可能减少数据存取中Master的参与程度不使用Master读取数据,仅用于保存元数据客户端缓存元数据采用大尺寸的数据块(64M)数据修改顺序交由PrimaryChunkServer完成Simple,andgoodenough!47存储元数据文件系统目录管理与加锁与ChunkServer进行周期性通信◦发送指令,搜集状态,跟踪数据块的完好性数据块创建、复制及负载均衡◦对ChunkServer的空间使用和访问速度进行负载均衡,平滑数据存储和访问请求的负载◦对数据块进行复制、分散到ChunkServer上◦一旦数据块冗余数小于最低数,就发起复制操作48垃圾回收◦在日志中记录删除操作,并将文件改名隐藏◦缓慢地回收隐藏文件◦与传统文件删除相比更简单、更安全陈旧数据块删除◦探测陈旧的数据块,并删除49采用中心服务器模式◦可以方便地增加ChunkServer◦Master掌握系统内所有ChunkServer的情况,方便进行负载均衡◦不存在元数据的一致性问题50不缓存数据◦GFS的文件操作大部分是流式读写,不存在大量的重复读写,使用Cache对性能提高不大◦ChunkServer上的数据存取使用本地文件系统,如果某个Chunk读取频繁,文件系统具有Cache◦从可行性看,Cache与实际数据的一致性维护也极其复杂51在用户态下实现◦直接利用ChunkServer的文件系统存取Chunk,实现简单◦用户态应用调试较为简单,利于开发◦用户态的GFS不会影响ChunkServer的稳定性提供专用的访问接口◦未提供标准的POSIX访问接口◦降低GFS的实现复杂度52GFS的容错机制◦ChunkServer容错每个Chunk有多个存储副本(通常是3个),分别存储于不通的服务器上每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本)53GFS的容错机制◦Master容错三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及Chunk副本的位置信息前两类通过日志提供容错,Chunk副本信息存储于ChunkServer,Master出现故障时可恢复5455超过50个GFS集群每个集群包含数千个存储节点管理着PB(1015Byte)级的数据巨型、廉价、稳定的数据中心巨型、廉价、稳定的数据中心56简单的,就是最好的!简单的,就是最好的!57GFS有什么问题吗?GFS有什么问题吗?58欢迎访问中国云计算网站欢迎使用《云计算》教材电子工业出版社刘鹏主编本讲到此结束