《云计算及其实践教程》课件2 主流云平台.ppt

上传人(卖家):momomo 文档编号:7904272 上传时间:2024-09-03 格式:PPT 页数:149 大小:4.54MB
下载 相关 举报
《云计算及其实践教程》课件2 主流云平台.ppt_第1页
第1页 / 共149页
《云计算及其实践教程》课件2 主流云平台.ppt_第2页
第2页 / 共149页
《云计算及其实践教程》课件2 主流云平台.ppt_第3页
第3页 / 共149页
《云计算及其实践教程》课件2 主流云平台.ppt_第4页
第4页 / 共149页
《云计算及其实践教程》课件2 主流云平台.ppt_第5页
第5页 / 共149页
点击查看更多>>
资源描述

1、内容n2.1云平台综述n2.2Amazon云平台n2.3Google云平台n2.5Openstack云平台内容n2.1 云平台综述n云计算的出现,给业界带来了重大变革,而云平台的出现是该转变的最重要环节之一。n这种平台允许开发者们或是写好的程序放在“云”里运行,或使用“云”中提供的服务,或二者皆是。n云平台提供基于“云”的服务,供开发者创建应用时使用。开发者不需要构建自己的基础设施,完全可以依靠云平台来创建新的SaaS应用。云平台的直接用户是开发者,而不是最终的用户。2.2 Amazon云平台n2.2.1弹性计算云EC2n2.2.2简单存储服务S3n2.2.3简单数据库服务Simple DBn

2、2.2.4简单队列服务SQS2.2 Amazon云平台nAmazon依靠电子商务逐步发展起来,凭借其在电子商务领域积累的大量基础性设施、先进的分布式计算技术和巨大的用户群体,Amazon很早就进入了云计算领域,并在云计算、云存储等方面一直处于领先地位。n目前,Amazon的云计算服务主要包括:弹性计算云EC2、简单存储服务S3、简单数据库服务Simple DB、简单队列服务SQS、弹性MapReduce服务、内容推进服务CloudFront、电子商务服务DevPay和网上支付系统FPS(Flexible Payments Service,灵活支付服务)等 2.2.1弹性计算云EC2n亚马逊将他

3、们的云计算平台称为弹性计算云(Elastic Compute Cloud,EC2),它是最早提供远程云计算平台服务的公司。n亚马逊弹性计算云(Amazon EC2)是一个Web服务,提供可调整的云计算能力。n它旨在为开发人员提供简便的使用网络规模计算。n图2-1给出了EC2的基础架构,Amazon EC2呈现一个真实的虚拟计算环境,让用户使用Web服务接口实现各种功能,如:推出了各种操作系统的实例,加载用户的自定义应用程序环境,管理用户的网络访问权限,并可以在许多或几个系统中运行自己的映像文件 EC2的基础架构 SSHnLinux最常用的远程登录工具,保密传输n(Telnet不能保密传输)(1

4、)弹性计算云EC2的优势:n弹性 nAmazon EC2让用户可以在几分钟内提升或降低计算能力,而不是几小时或几天。n完全控制n用户可以完全控制自己的实例,用户有root权限去访问每一个实例,也可以与任意一个机器相互通信。(1)弹性计算云EC2的优势:n灵活 n用户可以选择多种类型的实例、操作系统和软件包。例如:用户选择的操作系统包括众多Linux发行版,微软Windows服务器和OpenSolaris。n同时使用亚马逊其他网络服务 nAmazon EC2 与亚马逊简单存储服务(Amazon S3),亚马逊简单数据库和亚马逊简单队列服务(Amazon SQS)一起工作,以提供一个完整的解决方案

5、(1)弹性计算云EC2的优势:n可靠nAmazon EC2提供一个高度可靠的环境。Amazon EC2服务水平协议的承诺是每个Amazon EC2区域的可用性达到99.95。n安全 nAmazon EC2 提供了许多保护用户的计算资源的机制,并能使用Web服务接口来配置防火墙设置,以控制网络访问和实例之间的群体。(1)弹性计算云EC2的优势:n廉价 nAmazon EC2能给用户带来亚马逊的规模经济利益,相对于自己所使用的计算量,用户的支付率非常低 n情形1:按需实例。按小时支付自己所使用的计算量,无需长期购买。n情形2:预留实例。用户可以选择通过低廉、一次性的付费购买所需要的实例,从而获得了

6、有关该实例每小时使用费的折扣。n情形3:竞价型实例。客户可以利用竞价型实例对未使用的 Amazon EC2 容量进行竞价,并可在竞价高于当前现货价格的期间内运行此类实例。(2)功能n亚马逊弹性块存储(Elastic Block Store,EBS)n实例自身也携带了一个存储模块(Instance Store),但是该模块的缺点在于它只是一个临时的存储空间。n对于需要长期保存或者比较重要的数据,则用户需要存储模块来完成,这个模块就是弹性块存储(Elastic Block Store,EBS)。n与S3不同,它是专门为EC2设计的,所以可以更好地和EC2配合使用。(2)功能n亚马逊弹性块存储(El

7、astic Block Store,EBS)nEBS允许用户创建卷(Volume),卷的功能和我们平常使用的移动硬盘非常类似。n亚马逊限制每个EBS最多创建20个卷,每一个卷可以作为一个设备挂载(Mounted as a Device)在任何一个实例上。n挂载以后就可以像使用EC2的一个固有模块一样来使用它,这点和S3是完全不同的。n因此用户需要使用EC2服务时,推荐使用EBS作为其存储对象。n当实例被终止时,EBS上的数据会继续保存下去直到用户自己删除它,这就和关机后移动硬盘上的数据还会长久保存是一个道理。n快照(Snapshot)是EBS提供的一个非常实用的功能,可以捕捉当前卷的状态,然后

8、数据就可以被存储在S3中。EBSn可理解为云硬盘,但云硬盘直接被用户使用,而EBS要和EC2一起使用。nEC2仅是一个运行的OS实例,一般无应用软件和数据。应用软件和数据要存储到EBS上。nEC2实例终止或毁坏后,EBS上的数据不会丢失,但实例存储(Instance Store)上的数据会丢失。nEC2实例终止或毁坏后,EBS上的数据可以挂载到别的EC2实例上,或挂载到新建的一个EC2实例上。(2)功能n多个地点放置实例nAmazon EC2提供了能够在多个地点放置实例的能力。Amazon EC2的位置是由区域和可用区组成。n通过在独立的可用区使用实例,可以保护用户的应用程序远离单一地区的失败

9、。(2)功能n弹性IP地址n弹性 IP 地址是专用于动态云计算的静态 IP 地址。n弹性 IP 地址与用户的账户关联而非特殊实例关联,用户可以控制该地址,直到选择彻底释放该地址。n与传统静态 IP 地址不同,使用弹性 IP 地址,用户可以用编程的方法将其公有 IP 地址重新映射到账户中的任何实例,从而掩盖实例故障或可用区域故障。(2)功能n亚马逊虚拟私有云(Virtual Private Cloud)nAmazon VPC 是公司现有 IT 基础设施和 AWS 云之间的一座安全且无缝的桥梁。n有了 Amazon VPC,企业可以通过虚拟专用网(VPN)连接将现有基础设施连至一组独立的 AWS

10、计算资源 虚拟私有云(Virtual Private Cloud,VPC)n公有云上的私有云n比普通的公有云更安全n用VPN构建:用VPN在公有云中划出安全的隔离区域n实现专有虚拟数据中心(2)功能n亚马逊监控服务(CloudWatch)nAmazon CloudWatch 是一种 Web 服务,用于监控通过 Amazon EC2 启动的 AWS 云资源和应用程序。n它可以显示资源利用情况、操作性能和整体需求模式 包括 CPU 利用率、磁盘读取和写入以及网络流量等度量值。n您可以获得统计数据、查看图表及设置度量数据警告。(2)功能n自动缩放(Auto Scaling)n有了 Auto Scal

11、ing,便可以根据您定义的条件自动扩展 Amazon EC2 容量。n使用 Auto Scaling,您可以确保所使用的 Amazon EC2 实例数量在需求高峰期实现无缝增长以保持性能,也可以在需求平淡期自动缩减,以最大程度降低成本。nAuto Scaling 特别适合每小时、每天或每周使用率都不同的应用程序。(2)功能n弹性负载平衡(Elastic Load Balancing)nElastic Load Balancing 在多个 Amazon EC2 上自动分配应用程序的传入流量。nElastic Load Balancing 可以检测出池内的不正常实例,并自动更改数据流动路线,使其指

12、向正常实例,直到不正常实例恢复正常为止。(2)功能n高性能计算(HPC)集群n集群计算的实例显著提高网络吞吐量,使他们很好的适应需要执行网络密集型操作的客户应用程序。n集群计算的实例是专门设计的,以提供高性能的网络能力,可以被编程到集群允许的应用程序中以获得低延迟网络性能的紧耦合、节点到节点的通信需要。(3)亚马逊机器映像(AMI)nAMI(Amazon Machine Image)是亚马逊机器映像,它是一个可以将用户的应用程序、配置等一起打包的加密机器映像。nAMI是用户云计算平台运行的基础,所以,用户使用EC2服务的第一步就是要创建一个自己的AMI,这和使用PC首先需要操作系统道理相同。n

13、亚马逊系统映像(AMI)预配置了一张可不断增加的操作系统列表。nAMI是存储在S3(亚马逊的简单存储服务)中的(3)亚马逊机器映像(AMI)nAMI(Amazon Machine Image)是亚马逊机器映像,它是一个可以将用户的OS和应用程序、配置等一起打包的加密机器映像。n映像(Image)在OpenStack中翻译为镜像,都指OS文件本身。所以有镜像库一说,即存OS文件的存储库。nAMI是用户云计算平台运行的基础,所以,用户使用EC2服务的第一步就是要创建一个自己的AMI,这和使用PC首先需要操作系统道理相同。n亚马逊系统映像(AMI)预配置了一张可不断增加的操作系统列表。nAMI是存储

14、在S3(亚马逊的简单存储服务)中的。S3就是AMI的镜像库。(4)实例(Instance)nInstance表示实例。当用户创建好AMI后,实际运行的系统就称为一个实例,实例和我们平时用的主机很像。EC2服务的计算能力是由实例提供的,因此可以说实例是EC2服务的核心内容之一。n每个实例自身携带一个存储模块(Instance Store),但是模块的设计并不是为了用户数据的长期存储,它只是一个临时存放区。当用户的实例重启后,它其中的内容还会存在,但如果出现故障或实例被终止后,存储在其中的数据将全部消失。因此对于一些重要的数据亚马逊建议保存在EBS中。(4)实例(Instance)n下面列举EC2

15、标准实例的几种类型:n小型实例(默认):1.7 GB 内存,1 个 EC2 计算单位(1 个虚拟核,含 1 个 EC2 计算单位),160 GB 本地实例存储,32 位或 64 位平台n中型实例:3.75 GB 内存,2 个 EC2 计算单位(1 个虚拟核,含 2 个 EC2 计算单位),410 GB 本地实例存储,32 位或 64 位平台 n大型实例:7.5 GB 内存,4 个 EC2 计算单位(2 个虚拟核,各含 2 个 EC2 计算单位),850 GB 本地实例存储,64 位平台n超大型实例:15 GB 内存,8 个 EC2 计算单位(4 个虚拟核,各含 2 个 EC2 计算单位),16

16、90 GB 本地实例存储,64 位平台n一个 EC2 计算单位(ECU)提供相当于一个 1.0-1.2 GHz 2007 Opteron 或 2007 Xeon 处理器的 CPU 容量。(5)EC2的区域概念 n区域(Zone)是EC2中独有的概念。n亚马逊将区域分为两种:地理区域(Region Zone)和可用区域(Availability Zone)。n其中地理区域是按照实际的地理位置划分的,而可用区域的划分则是为了隔绝各个区域之间的错误,这样某个可用区域的错误就不会影响到别的可用区域。n因此,可用区域实际就是人工隔绝出的一个“孤岛”。(5)EC2的区域概念 n从图2-2可以很明显地看出两

17、者关系。nEC2系统中包含多个地理区域,而每个地理区域中又包含多个可用区域。n为了确保系统的稳定性,用户最好将自己的多个实例分布在不同的可用区域和地理区域中。n这样在某个区域出现问题时可以用别的实例代替,最大程度地保证了用户利益。图2-2 EC2中区域间关系 如何申请云环境进入进入http:/ AWS相关任意服务(比如EC2或S3)都需要进行账号的登录。信用卡信息创建EC2虚拟机的步骤n1.选择区域。n一般选择新加坡,其次选择东京n2.选择AMIn一年免费账户可同时选定两个AMI及其相关实例,一个为Linux系统,一个为Windows Server系统。n3.选定实例n一般为微型实例(配置为

18、613 MB 的内存、32 位和 64 位平台支持)创建EC2的步骤 n 1、打开aws面板,找到EC2选项,见下图 n2、点击上图中划红线框的EC2链接,跳转到如下页面,此页面主要是当前的运行实例、空间、秘钥数量等信息 n 3、点击上图中划红线的”Launch Instance“,页面跳转到如下页面,选择虚拟机 n4、点击上图中的”select“,进入如下的配置界面,这里选择的是微实例 n5、点击上图中的”Next:Configure Instance Details“,跳转到如下页面,选择默认 n6、点击上图中的”Next:Add Storage“,跳转到如下页面,参数都是默认 n7、点击

19、上图中的”Next:Tag Instane“,页面如下,在value中输入”201403“n8、点击上图中的”Next:Configure Security Group“,跳转到如下页面,选择一个安全组 n9、点击上图中的”Review and launch“,页面显示你的配置的详细信息 n10、点击上图中的”Launch“,此时需要你创建一个秘钥对,供登陆EC2使用,点击”3“下载按钮,保存秘钥对 n11、点击上图中的”Launch Instance“,稍等片刻,显示创建结果,显示如下 n12、回到EC2主界面,稍等一会儿,完成创建EC2后,结果页面如下所示 n13、现在就测试连接到Amaz

20、on linux虚拟机上,选择”201403“点击上图中”3“区域的Connect按钮,稍等,弹出如下窗口,选择下图中的“1“选项,然后把你刚才保存的秘钥路径填写在”2”的输入框。n14、点击上图中的”Launch SSH Client“,稍等,出现如下窗口,正确连接到了AWS虚拟机 好的,到此,EC2虚拟机能够连通,成功配置了Amazon的EC2服务。2.2.2 简单存储服务S3 nS3(Simple Storage Services)是Amazon推出的简单存储服务,n用户通过Amazon提供的服务接口可以将任意类型的文件临时或永久地存储在S3服务上,nS3的总体设计目标是可靠、易用及很低

21、的使用成本。nS3可以被想成在“云”上的一个很大的磁盘驱动器或一个SAN(存储区域网)S3的基本结构nS3的基本结构如图2-3所示,S3为任意类型的文件提供临时或永久的存储服务,基本概念有:n(1)对象:S3的基本存储单元(数据、元数据),数据类型任意;n(2)键:对象的唯一标识符;n(3)桶(Buckets):存储对象的容器(不能嵌套、在S3中名称唯一、每个用户最多创建100个桶)。图2-3 S3的基本结构图 S3与EBS存储的区别n(1)不要把S3 想象成某种文件系统。而EBS以文件系统形式存放文件。n很多人期望S3 表现得像个文件系统,结果都会碰到麻烦。n首先,名字空间有两层,在第一层有

22、若干桶。如果觉得方便,可以把这些桶想象成文件目录,它们存储的是放进S3的数据。n然而,与传统目录不同的是,没法按层次结构来管理它们不能把桶放到桶中。桶名字n也许更重要的一点是桶名字空间在所有Amazon 客户间共享。n设计桶名字需要特别留意,以免与其他桶冲突。换句话说,不要取“Documents”这样的桶名。nBuckets名字是全局唯一的,所有使用s3服务的人的桶名都不能有重名,而且命名根据url命名,因为毕竟这桶名会是url的一部分。n在对bucket和object进行操作时,例如bucket的名字是“bucketname”,那么Host url就是“”。S3与EBS存储的区别n(2)另外

23、,很重要的一点是Amazon S3 相对速度较慢。因此S3适合大容量批处理式的存储。而EBS适合快速实时数据处理。n事实上,对于部署在Internet 上的服务来说,它已经非常快了,但是,如果期望它有像本地磁盘或SAN 那样的响应速度,一定会非常失望。n因此,把S3 当做运行时存储介质来用不可取。S3与EBS存储的区别n(3)最后,访问S3 不是通过文件系统,而是通过Web Services。而EBS以文件系统形式存放文件n因此,需要专门编写程序来向Amazon S3 中存储数据(也有图形化界面可供操作)。nAmazon S3 使用户能将持久化数据放入云中,供以后再次取出,并且,当用户取回数据

24、时,数据保证完整无误。n它主要的好处是只需不断将数据丢到Amazon S3 里面,永远不用担心存储空间耗尽,对大多数用户而言,S3 就是个短期或长期的备份设备。n而亚马逊限制每个EBS最多创建20个卷,每个卷的大小也不是无限大。S3支持的主要操作n目前S3支持的主要操作包括:Get、Put、List、Delete和Head,各个操作的含义如表2-1 操作目标GetPutListDeleteHead桶获取桶中对象创建或更新桶列出桶中所有键删除桶无对象获取对象数据和元数据创建或更新对象无删除对象获取对象元数据最终一致性数据模型n采用冗余存储,但保持数据最终一致性是S3的主要设计思路。nS3为了保证

25、用户数据的一致性而采取的一种折中手段,即在数据被充分传播到所有的存放节点之前返回给用户的仍是原数据,称为最终一致性数据模型。n如图2-4所示。图2-4 最终一致性数据模型 2.2.3 简单数据库服务Simple DB nAmazon SimpleDB(SDB)是一个用于存储、处理和查询结构化数据集的Web服务。n主要用于存储结构化的数据,并为这些数据提供查找、删除等基本的数据库功能。SDB基本结构图nSDB基本结构图如图2-5所示,其中包含了SDB中以下几个最重要的概念:n(1)用户账户(Customer Accout);n(2)域(Domain):数据容器;n(3)条目(Item):一个实际

26、的对象;n(4)属性(Attribute):条目的特征;n(5)值(Value):每个条目的某属性的具体内容。nSDB当前还不支持跨域查询 SDB基本结构图n这些术语可理解为类似于传统电子表格中的对应概念。n以下表2-2中显示的客户管理数据库详细信息为例,考虑它们在 Amazon SimpleDB 中的表示方式 n整个表就是一个名为“customers”的域。n各个客户就是表中的行或域中的项目。n联系信息用列标题(属性)来描述。n值位于各个单元格中。添加记录 nPUT(item,123),(First name,Bob),(Last name,Smith),(City,Springfield)

27、,(Zip,65801),(Telephone,222-333-4444)nPUT(item,456),(First name,James),(Last name,Johnson),(City,Seattle),(Zip,98104),(Telephone,333-444-5555)CustomerID名名姓姓城市城市邮编邮编电话电话123BobSmithSpringfield65801222-333-4444456JamesJohnsonSeattle98104333-444-5555nSDB不受模式限制,能够动态地插入数据和添加新的列或键。n例如,假设您开始采集客户的电子邮件地址,以便启用

28、对订单状态的实时警告。n与重建“customer”表、重写查询和重建索引等相比,您只需要向现有的“customer”域添加新的记录和任何其他属性。增加新的列后的customers域nPUT(item,789),(First name,Deborah),(Last name,Thomas),(City,New York),(Zip,10001),(Telephone,444-555-6666),(Email,)CustomerID名名姓姓城市城市邮编邮编TelephoneEmail123BobSmithSpringfield65801222-333-4444456JamesJohnsonSeat

29、tle98104333-444-5555789DeborahThomasNew York10001444-555-SDB和关系型数据库nSDB和关系型数据库有很多相同之处,但也有很大的不同。n传统的关系数据库采用表结构,SDB采用树状结构。如图2-6所示。nAmazon SimpleDB 不是关系数据库,它舍弃了复杂的事务处理和关系(即:联接)。nSDB不受模式限制,能够动态地插入数据和添加新的列或键。nAmazon SDB自动为数据编制索引。图2-6 SDB树状组织方式 S3与SDB的主要区别nS3是专为大型,非结构化的数据块设计的;SDB是为复杂的,结构化数据建立的,支持数据的查找、删除、

30、插入等操作。n为了优化使用 AWS 服务的成本,应将大型数据元或文件存储在 Amazon S3 中,而最好将小型数据元素或文件指针(可能指向 Amazon S3 数据元)保存在 Amazon SimpleDB 中 2.2.4 简单队列服务SQS n2007年7月,亚马逊公司推出了简单队列服务(Simple Queue Service,SQS),这项服务使托管主机可以存储计算机之间发送的消息。n所有基于Amazon的网络计算,其基础都是Amazon 简单队列服务(Simple Queue Service,SQS)。n和任何消息队列服务一样,SQS接收消息,把消息传递给订阅了消息队列的服务器。SQ

31、S基本组成n如图2-7所示,SQS由三个基本部分组成:系统组件(Component)、队列(Queue)、消息(Message)。n消息是发送者创建的具有一定格式的文本数据,接收对象可以是一个或多个组件。n消息的大小是有限制的,截止2013年1月Amazon规定每条消息不得超过64 KB,但是消息的数量并未做限制。n队列是存放消息的容器,类似于S3中的桶,队列的数目也是任意的,创建队列时用户必须给其指定一个在SQS账户内唯一的名称。图2-7 简单的队列服务SQS 综合性例子n下面介绍了一家视频转码网站是如何搭配使用 Amazon EC2、Amazon SQS、Amazon S3 和 Amazo

32、n SimpleDB 的。n最终用户将需要转码的视频提交到网站。视频存储到 Amazon S3 中,一条消息(“请求消息”)则排入 Amazon SQS 队列(“传入队列”),消息中包含了指向视频和目标视频格式的指针。n在一组 Amazon EC2 实例上运行的转码引擎从传入队列中读取请求消息,使用其中的指针从 Amazon S3 中检索视频,并将视频转码为目标格式。n转换后视频放回到 Amazon S3 中,另一条消息(“回复消息”)排入另一个 Amazon SQS 队列(“传出队列”),其中包含了指向转换后视频的指针。综合性例子n同时,视频相关的元数据(如格式、创建日期和长度)可以索引到

33、Amazon SimpleDB 中,以方便查询。n在整个工作流中,一个专门的 Amazon EC2 实例可以持续监控传入队列,并根据传入队列中的消息数量,动态调整转码 Amazon EC2 实例的数量,来满足客户对响应时间的要求。2.3 Google云平台n2.3.1Google文件系统GFSn2.3.2分布式计算编程模型Map/Reducen2.3.3分布式锁服务Chubbyn2.3.4分布式数据存储系统Bigtablen2.3.5Google App Engine2.3 Google云平台 n图2-8 Google云计算的四个组件及其调用关系 2.3.1 Google文件系统GFS nGo

34、ogle文件系统(Google File System,GFS)是一个大型的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。n它运行于廉价的普通硬件上,但可以提供容错功能。2.3.1 Google文件系统GFS nGFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想 nGFS的观点认为:硬件出错是正常现象而非异常 n数据写主要是“追加写”,而“插入写”非常少 n存储的文件大小可能是GB或TB量级,而且应当能支持存储成千上万个文件 2.3.1 Google文件系统GFS nGFS的设计思想是:n首先将文件划分成若干块存储,每个块

35、的大小固定。默认是64MB,每一块称为一个Chunk(数据块)n其次,通过冗余来提高可靠性,即每个数据块至少在3个数据块服务器上冗余;n再次,通过单个Master来协调数据访问、元数据存储;(采用中心服务器模式)n最后,没有缓存。不缓存文件数据,缓存元数据 GFS的系统架构nGFS的系统架构如图2-9所示,是单一Master、若干ChunkServer的模式。nGFS将整个系统的节点分为三类角色:nClient(客户端):Client是GFS提供给应用程序的访问接口,它是一组专用接口 nMaster(主服务器):Master是GFS的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件

36、系统的管理,是GFS文件系统中的“大脑”。nChunk Server(数据块服务器):Chunk Server负责具体的存储工作。数据以文件的形式存储在Chunk Server上,Chunk Server的个数可以有多个,它的数目直接决定了GFS的规模。图2-9 GFS体系结构 n客户端在访问GFS时,首先访问Master节点,获取将要与之进行交互的Chunk Server信息,然后直接访问这些Chunk Server完成数据存取。nGFS的这种设计方法实现了控制流和数据流的分离。Client与Master之间只有控制流,而无数据流,这样就极大地降低了Master的负载,使之不成为系统性能的一

37、个瓶颈。nClient与Chunk Server之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个Chunk Server,从而使得整个系统的I/O高度并行,系统整体性能得到提高 2.3.2 分布式计算编程模型MapReduce nGoogle MapReduce架构设计师Jeffery Dean设计一个新的抽象模型,使我们只要执行简单的计算,而将并行化、容错、数据分布、负载均衡等的杂乱细节放在一个库里,使并行编程时不必关心它们,这就是MapReduce 2.3.2 分布式计算编程模型MapReduce nMapReduce是Google提出的一个

38、软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行计算。n“Map(映射)”、“Reduce(化简)”的概念和主要思想,都是从函数式编程语言和矢量编程语言借鉴来的 2.3.3 分布式锁服务Chubby nChubby是Google设计的提供粗粒度锁服务的一个文件系统,它基于松耦合分布式系统,解决了分布的一致性问题。n通过使用Chubby的锁服务,用户可以确保数据操作过程中的一致性。系统概述 nChubby系统提供粗粒度(Coarse-Grained)的锁服务,并且基于松耦合分布式系统设计可靠的存储,而没有采用细粒度(Fine-Grained)锁服务,两者的差异

39、在于持有锁的时间,细粒度的锁持有时间很短。nChubby系统提供建议性的锁,而不是强制性的锁;强调锁服务的可用性、可靠性。两者的根本区别在于用户访问某个被锁定的文件时,建议性的锁不会阻止访问,而强制性的锁则会阻止访问,实际上这是为了方便系统组件之间的信息交互。系统目标 nChubby系统的设计目标有以下几点 n支持粗粒度的锁服务 n高可用性和高可靠性 n直接存储服务信息 n高扩展性 整体架构 n如图2-10所示,Chubby基本架构:客户端和服务器端,两者通过远程过程调用(RPC)来连接。n客户端应用程序通过调用chubby程序库(Chubby Library),申请锁服务并获取相关信息,同时

40、,通过租约保持同服务器的连接。n所有应用都是通过调用chubby程序库中相关函数来完成。nChubby服务器组一般由五台服务器组成,其中一台服务器担任主服务器,负责与客户端的所有通信。其他服务器不断和主服务器通信获得用户操作,Chubby服务器组的所有机器都会执行用户操作,并将相应的数据存放到文件系统,以防止主服务器出现故障导致数据丢失。图2-10 Chubby的系统结构 2.3.4 分布式数据存储系统Bigtable nBigtable是Google开发的基于GFS、MapReduce和Chubby的分布式存储数据库系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据

41、。nGoogle的很多数据,包括Web索引、卫星图像数据等在内的海量结构化和半结构化数据,都是存储在Bigtable中的。Bigtable的组件nBigtable包括了三个主要的组件:客户端程序库(Client Library)、一个主服务器(Master Server)和多个子表服务器(Tablet Server)。n针对系统工作负载的变化情况,BigTable可以动态的向集群中添加(或者删除)子表服务器,其基本结构如图2-11所示。n主服务器主要进行一些元数据操作以及子表服务器之间负载调度问题,实际数据是存储在子表服务器上。图2-11 Bigtable 体系结构 Bigtable的组件n客

42、户访问Bigtable服务时,首先要利用其库函数执行Open()操作来打开一个锁(实际上就是获取了文件目录),锁打开以后客户端就可以和子表服务器进行通信。n和许多具有单个主节点分布式系统一样,客户端主要与子表服务器通信,几乎不和主服务器进行通信,这使得主服务器的负载大大降低。n一个BigTable集群存储了很多表,每个表包含了一个子表的集合,而每个子表包含了某个范围内的行的所有相关数据。Bigtable中存储数据都是以子表的形式保存在子表服务器上的,客户一般也只和Tablet服务器进行通信。子表地址结构n由于BigTable中的数据都是以子表的形式存储在各个子表服务器上的,所以子表的寻址成为了

43、BigTable系统的关键问题。nGoogle使用了一个三层的、类似B+树的结构存储Tablet的位置信息,如图2-12所示 Chubby 文件 根子表(元数据表中第一条记录)用户表 1 用户表 N 其他元数据子表 图2-12 子表地址结构 子表地址结构 n所有的子表地址都被记录在元数据表中,元数据表也是由一个个的元数据子表(Metadata tablet)组成的。n第一层是存储在Chubby中的根子表,它是元数据表中的第一个元数据子表,存储了其他元数据子表的地址;n第二层是根子表指向的其他元数据子表,表中每个子表的位置信息都存放在一个行关键字下面,而这个行关键字是由子表所在的表的标识符和子表

44、的最后一行编码而成的;n第三层便是所有用户子表。Bigtable的数据模型 nBigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map。Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组。n(row:string,column:string,time:int64)-stringBigtable的数据模型n假设我们想要存储海量的网页及相关信息,这些数据可以用于很多不同的项目,我们姑且称这个特殊的表为Webtable。n在Webtable里,我们使用URL作为行关键字,使用网页的某些属性作为列名,网页的内容存在“contents:”列中,

45、并用获取该网页的时间戳作为标识,如图2-13所示。Bigtable的数据模型n行名是一个反向URL。ncontents列族存放的是网页的内容,nanchor列族存放引用该网页的锚链接文本(即HTML的Anchor标记)。nCNN 的主页被Sports Illustrater和MY-look的主页引用,因此该行包含了名为“anchor:”和“anchhor:my.look.ca”的列。n每个锚链接只有一个版本(注意时间戳标识了列的版本,t9和t8分别标识了两个锚链接的版本);而contents列则有三个版本,分别由时间戳 t3,t5,和t6标识。图2-13 一个存储Web网页的例子的表的片断 行

46、行n表中的行关键字可以是任意的字符串(目前支持最大64KB的字符串,但是对大多数用户,10-100个字节就足够了)nBigtable通过行关键字的字典顺序来组织数据。n举例来说,在Webtable里,通过反转URL中主机名的方式,可以把同一个域名下的网页聚集起来组织成连续的行。n具体来说,我们可以把 com.google.maps/index.html下。n把相同的域中的网页存储在连续的区域可以让基于主机和域名的分析更加有效。列族列族n列关键字组成的集合叫做“列族”,列族是访问控制的基本单位。存放在同一列族下的所有数据通常都属于同一个类型 n列族在使用之前必须先创建 n一张表中的列族不能太多(

47、最多几百个),并且列族在运行期间很少改变。与之相对应的,一张表可以有无限多个列 n列关键字的命名语法如下:列族列族:限定词限定词。nanchor列族包含“anchor:”和“anchhor:my.look.ca”等两个列。时间戳时间戳 n在Bigtable中,表的每一个数据项都可以包含同一份数据的不同版本;不同版本的数据通过时间戳来索引。nBigtable时间戳的类型是64位整型。Bigtable可以给时间戳赋值,用来表示精确到毫秒的“实时”时间;用户程序也可以给时间戳赋值。n如果应用程序需要避免数据版本冲突,那么它必须自己生成具有唯一性的时间戳。n数据项中,不同版本的数据按照时间戳倒序排序,

48、即最新的数据排在最前面。n在Webtable的举例里,contents:列存储的时间戳信息是网络爬虫抓取一个页面的时间。2.3.5 Google App Engine n在推出自己产品的同时,Google倾力打造了一个平台,来继承自己的服务并供开发者使用,这就是Google App Engine平台。nApp Engine 是在Google 的基础架构上构建和运行网络应用程序的平台,提供了使用Google基础服务的编程结构。nGoogle App Engine是隶属于PaaS类型的云服务一个计算环境,支持Python和Java语言,可使用Google的基础服务,如BigTable和GFS等。n

49、用户仅需提供应用代码,无需自备服务器维护应用程序,可根据访问量和数据存储需要的增长轻松进行扩展。n如图2-14所示,Google App Engine架构可以分成四部分:n1)前端和静态文件。主要提供下列功能:负载均衡;静态文件的传输;HTML的生成;转发请求给应用服务器。n2)应用服务器(App Server)。它能同时运行多个应用的运行时(runtime),可以是python或java语言的应用。n3)服务群(Service Group)。服务群现在主要包括下列服务:Datastore(数据存储);Memcache;Images(图像);User(用户);URLFetch(网址抓取);Em

50、ail等。n4)应用管理节点(App Master)。它主要负责应用的启停和计费。图2-14 Google App Engine 架构 2.5 Openstack云平台n2.5.1计算服务Novan2.5.2存储服务Swiftn2.5.3镜像服务Glancen2.5.4身份服务Keystonen2.5.5用户界面服务Horizon 2.5 Openstack云平台 nOpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算 软件,以Apache许可证授权,并且是一个自由软件和开放源代码项目。nOpenStack是IaaS(基础设施即服务)软件,让任何人都可以自行建立和提

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《云计算及其实践教程》课件2 主流云平台.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|