云计算期末冲刺

云计算概述和Google云计算

云计算有哪些特点:超大规模,虚拟化,高可靠性,通用性,高可伸缩性
云计算按服务类型:Iaas,Paas,Saas
云计算体系结构:物理资源层,资源池层,管理中间件层,SOA构建层

1.Google云计算包括哪些内容: 答:GFS,MapReduce,chubby,Bigtable,Megastore,Dapper,Dremel,PowerDrill
2.主流分布式文件系统:Redhat的答:GFS(global),GPFS,都用于大型数据中心,依靠自身解决容错
Google文件系统GFS
采用廉价的商用机器构建分布式文件系统
Master是GFS的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件系统的管理。Chunk Server负责具体的存储工作,数据以文件形式存储在Chunk Server上,Chunk Server的数目决定了GFS的规模。Chunk默认大小64M。GFS的设计方法实现了控制流和数据流的分离。
3.GFS采用那些容错措施保证系统可靠性:
答:Master容错:Master上保存了GFS文件系统的三种元数据,命名空间,chunk与文件名的映射表,chunk副本的位置信息.chunk server容错:GFS采用副本的方式实现chunk server的容错。
分布式数据处理MapReduce
4.MapReduce与传统分布式程序设计相比的优点
答:封装了并行处理,容错处理,本地化计算,负载均衡等细节,还提供了一个简单而强大的接口,通过接口可以使编程容易,MapReduce还有较好的通用性

分布式锁服务Chubby
5.Chubby的设计目标,和Paxos算法在Chubby中起的作用

答:设计目标:高可用性和高可靠性,高扩展性,和支持粗粒度的建议性锁服务等等;Chubby中涉及的一致性问题都由Paxos解决,选择一个副本成为协调者,协调者从客户提交的值中选择一个广播给所有副本,协调者收到大多数副本的接受信息后就认为达到了一致性,提交消息。

满足以下三个条件就可以保证数据的一致性
:
1.决议只有被proposers提出后才能批准2.每次只批准一个决议3.只有决议被批准后learners才能获取这个决议
分布式结构化数据表Bigtable
6.BigTable的数据模型和系统架构
答:数据模型:BigTable是一个分布式多维映射表,表中的数据通过一个行关键字,一个列关键字,以及一个时间戳进行索引。表中的数据都是根据行关键字进行排序的,排序使用的是词典序。
子表是BigTable中数据划分和负载均衡的基本单位。
族同时也是Bigtable中访问控制的基本单位.
系统架构:BigTable主要由三部分组成:客户端程序库,一个主服务器,多个子表服务器,客户端主要与子表服务器通信,几乎不和主服务器通信,使得主服务器的负载大大降低,Bigtable中实际的数据是以子表的形式存储在子表服务器中的。
bigtable中的主服务器对子表服务器的监控是通过chubby完成的,子表服务器在初始化时都会从chubby中得到一个独占锁
Bigtable中GFS主要用来存储子表数据以及一些日志文件。
chubby在Bigtable中的作用:
选取并保证同一时间内只有一个主服务器;获取子表的位置信息;保存Bigtable的模式信息及访问控制列表;

SSTable是Google为Bigtable设计的内部数据存储格式,所有的SSTable文件都存储在GFS上,用户可以通过键值来查询相应的值;
子表数据存储及读写操作,由于读操作要使用SSTable,数量过多的SSTable显然会影响读的速度。
分布式存储系统Megastore
Megastore的数据模型是在模式中定义的且是强类型的,每个模式都由一系列表构成,表中有实体,实体有属性,属性包括必需的,可选的,可重复的三种类型
Megastore中所有的表要么是实体组根表,要么是子表。所有的子表必须有一个参照根表的外键,这个外键是通过Entity Group Key来声明的。
Megastore中的实体组都存储在Bigtable中,最底层的数据是存储在Bigtable中的。
Megastore提供三种方式的读:current,snapshot,inconsistent.
在开始某次current读之前,需要确保所有已经提交的写操作已经全部生效,然后应用程序再从最后一个成功提交的事务时间戳位置读取数据。snapshot读的时候可能还有部分事务提交了但未生效。inconsistent读时忽略日志状态直接读取最新的值。
Megastore事务中的写操作采用了预写式日志,也就是说只有当所有操作都在日志中记录下后写操作才会对数据执行修改。
Megastore中共有三种副本,分别是完整副本,见证者副本和只读副本
7.分布式存储系统Megastore的核心技术:复制,通过复制保证所有最新的数据都保存在有一定数量副本,能够很好的提高系统的可用性,复制的日志,数据读取,数据写入,协调者的可用性。
在一次current读之前,要保证至少有一个副本上的数据是最新的,也就是说所有之前提交到日志中么更新必须复制到该副本上,并保证在该副本上生效,这个过程成为追赶。
分布式系统的监控基础架构加粗样式Dapper
Dapper的基本设计目标:低开销,对应用层透明,可扩展性
8.Dapper的关键性技术:
答:轻量级的核心功能库:为了实现对应用层透明,设计人员将Dapper的核心监控实现限制在一个由通用线程,控制流,和RPC代码库组成的小规模库基础上。
二次抽样技术:监控开销的大小直接决定Dapper的成败,为了尽可能减小开销,设计了一种非常巧妙的二次抽样方案
海量数据的交互式分析工具Dremel
9.相比于行存储,列存储有什么优点
答:行存储写入效率高,保证数据的完整性,但是行存储数据有冗余现象,计算速度慢。而列存储读取过程不会产生冗余数据,这对数据完整性要求不高的大数据处理领域,比如互联网,犹为重要。列存储也可减少查询涉及的数据量以及便于数据压缩。
10.为什么MapReduce不适合实时数据处理
答:因为他的计算速度比较慢,计算出来的中间结果等等都会写到磁盘上,输出的结果也会到磁盘上,读写磁盘就意味着性能不能达到实时的要求。是一个离线批处理系统。但Dremel,spark等实时框架计算过程是用内存的,可以实时。
11.简述Dremel如何实现数据的无损表示
答:Dremel定义了两个变量,重复深度和定义深度。
Dremel的无损表示计算题重复深度和定义深度表格
内存大数据分析系统PowerDrill
12.PowerDrill能实现高效的数据处理,在存储部分主要依赖哪两方面的技术
数据字典和全局字典的优化,列式存储和内存计算。
Google应用程序引擎
13.Google App Engine提供哪些服务
答:图像操作API,邮件API,MemcacheAPI,用户API,数据库API
14.沙盒对开发人员的限制:无法写入,只能抓取,只有响应网络才能运行。

Amazon云计算AWS

基础存储架构Dynamo
Amazon的系统采用完全的分布式,去中心化的架构,其中作为底层存储架构的Dynamo也同样采用了无中心模式
Dynamo只支持简单的键值方式的数据存储,不支持复杂的查询,适用于Amazon的购物车,S3等服务。Dynamo中存储的是数据值的原始形式,即按位存储,并不解析数据的具体内容。
Dynamo中的主要问题及解决方案:
数据均衡分布->改进的一致性哈希算法
数据备份->参数可调的quorum机制
数据冲突处理->向量时钟技术
弹性计算云EC2
主要包括:Amazon机器映像(AMI),实例,存储模块
EC2中的实例由AMI启动
简单的存储服务S3
桶:Amazon限制了每个用户创建桶的数量,但没有限制每个桶中对象的数量
对象:基本存储单位,由数据和元数据组成
非关系型数据库SimpleDB和DynamoDB
比较:SimpleDB限制了每一张表的大小,更适合小规模负载的工作,但是SimpleDB会自动对所有属性进行索引,提供更加强大的查询功能,与之相比,DynamoDB支持自动将数据和负载分到多个服务器上,并未限制存储在单个表中数据量的大小,适用于较大规模负载的工作
关系数据库服务RDS
简单队列服务SQS
SQS是Amazon为了解决云计算平台之间不同组件的通信而专门设计开发的
SQS由三个基本部分组成:系统组件,队列,和消息
消息由四部分组成:消息ID,接收句柄,消息体,消息体MD5摘要
消息的可见性超时值:如果用户未接收到数据或者接受到数据并没有执行删除操作,SQS将在队列中保留该消息,为了保证其他组件不会看见用户消息,将该消息堵塞,但并不是一直锁住,设置一个可见性超时值,过时间解开重传消息
内容推送服务CloudFront
在CDN技术中,DNS在对域名进行解析时,不再向用户返回网站服务器的IP,而是返回由智能CDN负载均衡系统选定的某个边缘节点的IP
课后题
1.在Dynamo中添加一个新的节点,原先各节点保存的数据是否需要改变,应该如何变化?
答:需要改变,原来存储在前驱结点上的那部分数据会迁移到新的节点上,而其他节点数据不变,同样删除节点时。被删除的节点数据会迁移到其前驱结点上,对其他节点没有影响
3.私有IP,公有IP,弹性IP的区别
答:私有IP由动态主机配置协议分配产生,公有IP与私有IP通过NAT技术相互转换,弹性IP与用户账号绑定,使用时可以代替公有IP实现与私有IP的转换

4.地理区域和可用区域的区别:地理区域是实际划分的地理位置,可用区域按照独立供电系统和冷却系统划分,EC2中包含多个地理区域,一个地理区域包含多个可用区域
5.传统数据库追求高一致性要求,事务外键关系约束要求高,等等,而非关系型NoSql数据之间无关系,容易扩展。

微软云计算Windows Azure

微软的云计算服务平台Window Azure属于Paas模式,一般面向的是软件开发商,包括四个组成部分:
1.Windows Azure:位于云计算平台最底层,是微软云计算技术的核心。它作为微软云计算操作系统,提供了一个在微软数据中心服务器上运行的应用程序和存储数据的Windows环境
2.SQL Azure:它是云中的关系数据库,为云计算中心基于SQL Server的关系型数据库
3.Windows Azure AppFabric:为在云中或本地系统中的应用提供基于云的基础架构服务
4.Windows Azure Marketplace:商店

Windows Azure
Windows Azure应用程序包括Web Role实例,Worker Role实例和VM Role实例
Web Role:基于Web Role可以使基于Web的应用创建过程变得简单
Worker Role:设计用来运行各种各样基于Windows的代码
VM Role:运行系统提供的Windows Server 2008 R2镜像
应用通过Web Role与用户相互作用,然后利用Worker Role进行任务处理

1.(Windows Azure storage)
Windows Azure存储服务目前提供了四种主要的数据存储结构:Blob类型(存储二进制数据),Table类型(结构化数据),Queue类型(支持应用程序组件之间的通信),File类型(支持虚拟机和云服务,共享文件数据)

全局命名空间
存储名空间被划分为三部分:账户名,分区名和对象名。
账户名的DNS翻译可以定位数据存储的数据中心和主存储集群,分区名使用账户名定位存储集群后,在集群内将数据访问请求进一步定位到存储节点,对象名用来对分区中多个对象进行区分

(Windows Azure storage)WAS产品系统由存储域和位置服务构成,存储域包括以下三层:文件流层,分区层,前端
WAS通过文件流层进行域内数据复制和分区层进行域间数据复制,实现必要的数据容灾保护机制,域内复制专门为硬件失效而设计,在大规模系统内这类失效比较普遍,而域间复制提供跨地域冗余来防止地域灾难
文件流层流信息只能追加写,已有的数据不能再修改

2.Windows Azure CDN
这个CDN存储了距离用户较近的站点的Blobs副本,Blob所存放容器都能够被标记为private或public Read,对于private的容器中的Blobs,所有存储账户的读写请求都必须标记,而对于public read型的Blobs,允许任何应用读数据.Windows Azure CDN只对存储在Public READ型Blobs起作用
还有CDN技术好处,相比于传统技术的优点。
SQL Azure
提供了关系型数据库存储服务,包括三部分:SQL Azure数据库,SQL Azure报表服务,SQL Azure数据同步。
SQL Azure数据同步服务使用轮辐式模型,所有的变化将会首先被复制到SQL. Azure数据库hub上,再传送到其他spoke上
AppFabric
关键技术:服务总线,访问控制,高速缓存
高速缓存服务保存每个应用角色实例
近期访问数据条款副本的缓存

SQL Azure数据同步技术有几种?分别如何实现。
1.SQL Azure数据库与SQL Server数据库之间的数据同步。
2.SQL Azure数据库之间的同步。不同数据中心运行应用。

SQL Azure和SQL Serve相同点和不同点:
相同:SQL Azure提供表格数据流接口进行访问数据库和SQL Server中的实例访问数据库相似。
不同:物理管理,逻辑管理,服务提供,Transact-SQL支持,编程方式等方面不同

虚拟化技术

数据中心的虚拟化是通过服务器虚拟化,存储虚拟化,和网络虚拟化实现的。
服务器虚拟化

根据虚拟化层次,将服务器虚拟化分为寄居虚拟化和裸机虚拟化
虚拟化层称为虚拟监控器VMM
1.寄居虚拟化
需要宿主操作系统,没有独立的Hypervisor层
2.裸机虚拟化
不需要在服务器上先安装操作系统,有独立的Hypervisor层
当虚拟机中的操作系统通过特权指令访问关键系统资源时,Hypervisor将接管其请求,并进行相应的模拟处理,为了使这种机制能够有效的运行,每条特权指令的执行都需要产生自陷,以便Hypervisor能够捕获该指令,执行。
解决某些x86特权指令在低特权级上下文执行时不能产生自陷的方案主要有基于动态指令转换或硬件辅助的完全虚拟化技术和半虚拟化技术
服务器虚拟化的底层实现:CPU虚拟化,内存虚拟化,I/O设备虚拟化
虚拟机迁移
从虚拟机迁移的源与目的地角度来看包括:物理机到虚拟机的迁移,虚拟机到虚拟机的迁移,虚拟机到物理机的迁移
虚拟机的迁移包括它的完整的状态和资源的迁移,为保证迁移后的虚拟机能够在新的计算机上恢复且继续运行,必须向目的计算机传送足够多的信息,如磁盘,内存,CPU状态,I/O设备。其中内存的迁移最有难度和挑战性,因为内存中的信息必不可少且数据量比较大,CPU状态和I/O设备虽然也很重要,但是它们只占迁移总数据量很少的一部分,而磁盘迁移最简单,以共享方式共享数据,非真正的迁移。
虚拟机迁移的六大步骤记一记

存储虚拟化
存储虚拟化是指将存储网络中的各个分散且异构的存储设备按照一定的策略映射成一个统一的连续编址的逻辑存储空间,称为虚拟存储池
实现存储虚拟化的方式有三种:基于主机的存储虚拟化,基于存储设备的存储虚拟化,基于网络的存储虚拟化

网络虚拟化
数据中心网络虚拟化分为核心层,接入层,和虚拟机网络虚拟化
桌面虚拟化是指利用虚拟化技术将用户桌面的镜像文件存放到数据中心

你可能感兴趣的:(笔记)