云计算与并行计算复习培训讲学文档格式.docx
《云计算与并行计算复习培训讲学文档格式.docx》由会员分享,可在线阅读,更多相关《云计算与并行计算复习培训讲学文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
云计算模型使得用户可以随时随地通过他们的互连设备访问共享资源。
云计算避免了大量的数据移动,可以带来更好的网络带宽利用率。
而且,机器虚拟化进一步提高了资源利用率,增加了应用程序灵活性降
低了使用虚拟化数据中心资源的总体成本。
云计算使用虚拟化平台,通过按需动态配置硬件、软件和数据集,将弹性资源放在一起,主要思想是使用数据中心中的服务器集群和大规模数据库,将桌面计算移向基于服务的平台,利用其对提供商和用户的低成本和简单性。
云应用的所有计算任务被分配到数据中心的服务器上。
这些服务器主要是虚拟集群的虚拟机,由数据中心资源产生出来。
云平台是通过虚拟化分布的系统。
公有云和私有云都是在互联网上开发的。
公有云构建在互联网之上,任何已付费的用户都可以访问。
公有云属于服务提供商,用户通过订阅即可访问。
私有云构建在局域网内部,属于一个独立的组织。
由客户管理,而且其可访问范围限制在所属客户及其合作者之中。
混合云由公有云和私有云共同构成
公有云促进了标准化,节约了资金投入,为应用程序提供了很好的灵活性;
私有云尝试进行定制化,可以提供更高的有效性、弹性、安全性和隐私性;
混合云则处于两者中间,在资源共享方面进行了折中。
云的核心是服务器集群(或虚拟机集群)。
集群节点用作计算节点,少量的控制节点用于管理和监视云活动。
用户作业的调度需要为用户创建的虚拟集群分配任务。
数据中心和超级计算机在网络需求方面也不相同。
超级计算机使用客户设计的高带宽网络,如胖树或3D环形网络;
数据中心网络主要是基于IP的商业网络
云平台设计目标:
可扩展性、虚拟化、有效性和可靠性
2.云平台提供的服务类型
6层的云服务,范围从硬件、网络和配置到基础设施、平台和软件应用
上三层
Iaas(基础设施即服务)Paas(平台即服务)Saas(软件即服务)
硬件即服务(HaaS)网络即服务(NaaS)位置即服务(配置即服务)(LaaS)。
数据中心的虚拟化资源形成互联网云,向付费用户提供硬件,软件,存储,网络和服务以运行他们的应用。
云计算提供了一个虚拟化的按需动态供应硬件,软件和数据集的弹性资源平台.
①基础设施即服务(IaaS):
这个模型将用户需要的基础设施(即服务器,存储,网络和数据中心构造)组合在一起。
用户可以在使用客户机操作系统的多个虚拟机上配置和运行指定的应用。
②平台即服务(PaaS):
这个模型使用户能够在一个虚拟的平台上配置用户制定的应用。
PaaS包括中间件,数据库,开发工具和一些运行时支持(如Web2.0和Java)。
3.软件即服务(SaaS):
这是指面向数千付费云用户的初始浏览器的应用软件。
SaaS模型应用于业务流程,工业应用,客户关系管理,企业资源计划,人力资源和合作应用。
3.Google的核心技术(……包括默认文件?
?
大小)
谷歌的云计算应用程序的构成要素包括存储大量数据的GFS、为应用程序开发者提供的MapReduce编程框架、用于分布式应用程序锁服务的Chubby和为访问结构化或半结构化数据的BigTable存储服务。
GoogleMapReduce(Map:
对一组数据元素进行某种重复式的处理,Reduce:
对Map中间结果进行某种进一步的结果整理)(MapReduce把whatneedtodo与howtodo分开了)
(设计思想:
scaleoutnotup,assumefailuresarecommon,movingprocessingtodata,processdatasequentiallyandavoidrandomaccess)上升到架构:
统一架构,为程序员隐藏系统层细节。
GoogleGFSgooglegfs是一个基于分布式集群的大型分布式文件系统,为MapReduce计算框架提供底层数据存储和数据可靠性支撑。
Master上保存了GFS文件系统的三种元数据:
①命名空间,即整个分布式文件系统的目录结构。
②Chunk与文件名的映射表3.Chunk副本的位置信息,每个Chunk默认有3个副本。
GFS中每个数据块划分缺省为64MB。
每个数据块会分别在3个不同的地方复制副本;
每一个数据块,仅当3个副本都成功时,才认为数据保存成功。
每个数据块再划分为64KB的子块,每个子块有一个32位的校验和。
BigTable:
GFS是一个文件系统,难以提供对结构化数据的存储和访问管理。
为此Google在GFS之上又设计了一个结构化数据存储和访问管理系统-----BigTable,为应用程序提供比单纯文件系统更方便,更高层的数据操作能力。
BigTable对存储在表中的数据不做任何解释,一律视为字符串,具体数据结构的实现由用户自行定义。
BigTable查询模型(row:
string,column:
string,time:
int64)->
结果数据字符串。
支持查询,插入和删除操作。
4.怎样分析与计算系统的可用性
可用性表示系统对用户可用的时间百分比,即系统正常运行的时间百分比。
可用性分析:
HA(highaccessibility)是所有集群,网络,P2P网络和云计算系统所期望的。
如果系统有一个长的平均故障时间(MeanTimeToFailure,MTTF)和短的修复时间(MeanTimeToRepair,MTTR),那么这个系统就是高度可用的。
系统可用性形式化定义如下:
系统可用性=MTTF/(MTTF+MTTR)(大多数集群通过转移故障节点来达到高可用性的目的)。
5.虚拟化的基本概念,硬件虚拟化的基本类型,虚拟化软件,目前市场上开源的vmare版本所支持的指令集
虚拟化:
虚拟化是一种计算机体系结构技术,其中,多个虚拟机共享同一台物理硬件机器。
虚拟化的思想是分离软硬件以产生更好的系统性能。
虚拟化技术通过在同一个硬件主机上多路复用虚拟机的方式来共享昂贵的硬件资源
硬件虚拟化:
硬件虚拟化分为:
全虚拟化和基于主机的虚拟化。
全虚拟化不需要修改主机操作系统。
它依赖于二进制翻译来陷入和虚拟化一些敏感,不可虚拟化的指令执行。
客户操作系统和他们的应用由非临界和临界指令构成。
在基于主机的系统虚拟化中,主机操作系统和客户操作系统同时存在,虚拟化软件层处于两者之间。
主机操作系统仍旧负责管理硬件。
客户操作系统安装并运行在虚拟化层之上。
特定的应用可运行在虚拟机中。
半虚拟化:
半虚拟化需要修改客户操作系统。
半虚拟化虚拟机在用户程序中提供了特殊的API,要求真正修改操作系统。
完全虚拟化:
xen的完全虚拟化与半虚拟化的区别是,完全虚拟化需要cpu支持硬件虚拟化,而半虚拟化不需要cpu支持硬件虚拟化。
也就是,cpu支持了硬件虚拟化,xen配置完成后就是完全虚拟化,cpu不支持就是半虚拟化。
三种实现技术:
1、模拟软件emulation通过模拟器模拟所有的指令,不通知虚拟化出来的操作系统它的运行环境。
2、虚拟化一部分特权指令或者使用二进制日志转换技术。
3、让cpu支持硬件虚拟化。
被虚拟化出来的操作系统上执行的指令,会运行在被虚拟化出来的硬件上,就是完全虚拟化。
CPU,内存和I/O设备的虚拟化
VMM(虚拟机监视器),它负责管理计算机系统的硬件资源。
每次应用程序访问硬件时,VMM都会捕获该访问请求
CPU、内存和I/O设备的虚拟化
为支持虚拟化,处理器利用硬件辅助虚拟化,引入一种特殊的运行模式和指令,使得VMM和客户操作系统可运行在不同模式中,客户操作系统及其应用程序的所有敏感指令会陷入到VMM中。
虚拟化的硬件支持
现代操作系统和处理器允许多个进程同时运行。
如果处理器中没有保护机制,那么不同进程的所有指令都可以直接访问硬件,很容易导致系统崩溃。
因此,所有处理器都至少需要两种模式(用户模式和管理模式)来确保对临界区硬件的受控访问。
运行在管理模式的指令称为特权指令,其他指令为非特权指令。
CPU虚拟化
虚拟机的非特权指令直接在物理主机中运行
关键指令可以分为三类:
特权指令、控制敏感指令和行为敏感指令。
特权指令需要在特权模式中执行,当在特权模式之外执行特权指令时会发生陷入。
控制敏感指令尝试改变使用资源的配置。
行为敏感指令根据资源的配置情况会有不同的行为,包括在虚拟内存中进行的负载和存储操作。
VMM运行在管理模式时,CPU支持在用户模式运行虚拟机的特权指令和非特权指令,则该CPU体系结构是可虚拟化的。
RISC的所有控制敏感指令和行为敏感指令都是特权指令,RISC的CPU体系结构是天然可虚拟化的。
内存虚拟化
客户操作系统和VMM分别维护从虚拟内存到物理内存的映射和从物理内存到机器内存的映射,共两级映射。
客户操作系统仍旧负责从虚拟地址到虚拟机的物理内存地址的映射,VMM负责将客户物理内存映射到实际的机器内存上
I/O虚拟化
I/O虚拟化包括管理虚拟设备和共享的物理硬件之间I/O请求的路由选择。
实现I/O虚拟化有三种方式:
全设备模拟:
一个设备的所有功能或总线结构(如设备枚举、识别、中断和DMA)都可以在软件中复制。
半虚拟化:
是Xen所采用的方法,是广为熟知的分离式驱动模型,由前端驱动和后端驱动两部分构成。
前端驱动运行在DomainU中,而后端驱动运行在Domain0中,它们通过一块共享内存交互。
直接I/O虚拟化:
让虚拟机直接访问设备硬件。
它能获得近乎本地的性能,并且CPU开销不高。
6.KVM实现原理(怎样实现硬件虚拟化的监控),内存虚拟化的基本机制,I/O虚拟化实现方式
KVM的实现原理:
KVM是一个基于Linux的半虚拟化系统,是Linux2.6.20内核的一部分。
内存管理和调度由存在的Linux内核执行,KVM则负责其余部分,这使得KVM比其他需要控制整个机器的hypervisor简单许多。
KVM是一个基于硬件辅助的半虚拟化工具,对性能进行了改进,且支持未修改的客户操作系统,如Windows,Linux,Solaris和其他Unix变种。
特权指令需要在特权模式中执